diff --git a/SWIG/Examples/test-suite/common.mk b/SWIG/Examples/test-suite/common.mk index 16ae8defc..e3e2efb94 100644 --- a/SWIG/Examples/test-suite/common.mk +++ b/SWIG/Examples/test-suite/common.mk @@ -42,6 +42,7 @@ DYNAMIC_LIB_PATH = $(RUNTIMEDIR):. # Broken C++ test cases. (Can be run individually using make testcase.cpptest.) CPP_TEST_BROKEN += \ + preproc_4 \ cast_operator \ arrayref \ abstract_typedef \ diff --git a/SWIG/Examples/test-suite/preproc_4.i b/SWIG/Examples/test-suite/preproc_4.i new file mode 100644 index 000000000..f061cc256 --- /dev/null +++ b/SWIG/Examples/test-suite/preproc_4.i @@ -0,0 +1,39 @@ +%module preproc_4 + +%{ + inline int hello0() + { + return 0; + } + + inline int hello1() + { + return 1; + } + + inline int hello2() + { + return 2; + } +%} + +#define ARITH_RTYPE(A1, A2) A2 + +#define HELLO_TYPE(A, B) ARITH_RTYPE(A, ARITH_RTYPE(A,B)) + + +// +// These two work fine +// +int hello0(); +ARITH_RTYPE(double,int) hello1(); + + + +// +// This doesn't work with 1.3.17+ ( but it was ok in 1.3.16 ) +// it gets expanded as (using -E) +// +// ARITH_RTYPE(double,int) hello2(); +// +HELLO_TYPE(double,int) hello2();