Without this, perlhead.swg does `#pragma GCC diagnostic pop` if `__GNUC__ >= 10` - without any prior `#pragma GCC diagnostic push`. There's also a mismatch between the conditions that trigger `#pragma GCC diagnostic ignored` (where the `push` should be) and the attempt to `#pragma GCC diagnostic pop`.
94 lines
1.9 KiB
Text
94 lines
1.9 KiB
Text
#ifdef __cplusplus
|
|
/* Needed on some windows machines---since MS plays funny games with the header files under C++ */
|
|
#include <math.h>
|
|
#include <stdlib.h>
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if __GNUC__ >= 10
|
|
#if defined(__cplusplus)
|
|
#pragma GCC diagnostic push
|
|
#pragma GCC diagnostic ignored "-Wvolatile"
|
|
#endif
|
|
#endif
|
|
|
|
#include "EXTERN.h"
|
|
#include "perl.h"
|
|
#include "XSUB.h"
|
|
|
|
#if __GNUC__ >= 10
|
|
#if defined(__cplusplus)
|
|
#pragma GCC diagnostic pop
|
|
#endif
|
|
#endif
|
|
|
|
/* PERL_REVISION was added in Perl 5.6. */
|
|
#if !defined PERL_REVISION || (PERL_REVISION-0 == 5 && PERL_VERSION-0 < 8)
|
|
# error SWIG requires Perl >= 5.8.0
|
|
#endif
|
|
|
|
#if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)
|
|
#define PerlIO_exportFILE(fh,fl) (FILE*)(fh)
|
|
#endif
|
|
|
|
#ifndef SvIOK_UV
|
|
# define SvIOK_UV(sv) (SvIOK(sv) && (SvUVX(sv) == SvIVX(sv)))
|
|
#endif
|
|
|
|
#ifndef SvUOK
|
|
# define SvUOK(sv) SvIOK_UV(sv)
|
|
#endif
|
|
|
|
#ifndef IVSIZE
|
|
# ifdef LONGSIZE
|
|
# define IVSIZE LONGSIZE
|
|
# else
|
|
# define IVSIZE 4 /* A bold guess, but the best we can make. */
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef INT2PTR
|
|
# if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
|
|
# define PTRV UV
|
|
# define INT2PTR(any,d) (any)(d)
|
|
# else
|
|
# if PTRSIZE == LONGSIZE
|
|
# define PTRV unsigned long
|
|
# else
|
|
# define PTRV unsigned
|
|
# endif
|
|
# define INT2PTR(any,d) (any)(PTRV)(d)
|
|
# endif
|
|
|
|
# define NUM2PTR(any,d) (any)(PTRV)(d)
|
|
# define PTR2IV(p) INT2PTR(IV,p)
|
|
# define PTR2UV(p) INT2PTR(UV,p)
|
|
# define PTR2NV(p) NUM2PTR(NV,p)
|
|
|
|
# if PTRSIZE == LONGSIZE
|
|
# define PTR2ul(p) (unsigned long)(p)
|
|
# else
|
|
# define PTR2ul(p) INT2PTR(unsigned long,p)
|
|
# endif
|
|
#endif /* !INT2PTR */
|
|
|
|
#ifndef SvPV_nolen
|
|
# define SvPV_nolen(x) SvPV(x,PL_na)
|
|
#endif
|
|
|
|
#ifndef get_sv
|
|
# define get_sv perl_get_sv
|
|
#endif
|
|
|
|
#ifndef ERRSV
|
|
# define ERRSV get_sv("@",FALSE)
|
|
#endif
|
|
|
|
#ifndef pTHX_
|
|
#define pTHX_
|
|
#endif
|
|
|
|
#include <string.h>
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|