Fix syntax error when preprocessor macros are defined inside of enum lists
Fixes SF Bug 428, Patch 333
This commit is contained in:
parent
2a3e687c19
commit
857e447654
5 changed files with 220 additions and 22 deletions
|
|
@ -514,6 +514,7 @@ C_TEST_CASES += \
|
|||
empty \
|
||||
enums \
|
||||
enum_forward \
|
||||
enum_macro \
|
||||
extern_declaration \
|
||||
funcptr \
|
||||
function_typedef \
|
||||
|
|
|
|||
92
Examples/test-suite/enum_macro.i
Normal file
92
Examples/test-suite/enum_macro.i
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
%module enum_macro
|
||||
|
||||
%inline %{
|
||||
enum Greeks1
|
||||
{
|
||||
#define GREEK1 -1
|
||||
alpha1=1,
|
||||
beta1,
|
||||
theta1
|
||||
};
|
||||
|
||||
enum Greeks2
|
||||
{
|
||||
alpha2 = 2,
|
||||
#define GREEK2 -2
|
||||
beta2,
|
||||
theta2
|
||||
};
|
||||
|
||||
enum Greeks3
|
||||
{
|
||||
alpha3,
|
||||
beta3,
|
||||
#define GREEK3 -3
|
||||
theta3
|
||||
};
|
||||
|
||||
enum Greeks4
|
||||
{
|
||||
alpha4 = 4,
|
||||
beta4 = 5,
|
||||
theta4 = 6
|
||||
#define GREEK4 -4
|
||||
};
|
||||
|
||||
enum Greeks5
|
||||
{
|
||||
#define GREEK5 -5
|
||||
alpha5,
|
||||
beta5,
|
||||
};
|
||||
|
||||
enum Greeks6
|
||||
{
|
||||
alpha6,
|
||||
#define GREEK6 -6
|
||||
beta6,
|
||||
};
|
||||
|
||||
enum Greeks7
|
||||
{
|
||||
alpha7,
|
||||
beta7,
|
||||
#define GREEK7 -7
|
||||
};
|
||||
|
||||
enum Greeks8
|
||||
{
|
||||
#define GREEK8 -8
|
||||
theta8
|
||||
};
|
||||
|
||||
enum Greeks9
|
||||
{
|
||||
theta9
|
||||
#define GREEK9 -9
|
||||
};
|
||||
|
||||
enum Greeks10
|
||||
{
|
||||
#define GREEK10 -10
|
||||
theta10,
|
||||
};
|
||||
|
||||
enum Greeks11
|
||||
{
|
||||
theta11,
|
||||
#define GREEK11 -11
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
theta12 = 0
|
||||
#define GREEK12 -12
|
||||
} Greeks12;
|
||||
%}
|
||||
|
||||
|
||||
enum Greeks13
|
||||
{
|
||||
#define GREEK13 -13
|
||||
};
|
||||
|
||||
93
Examples/test-suite/java/enum_macro_runme.java
Normal file
93
Examples/test-suite/java/enum_macro_runme.java
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
|
||||
import enum_macro.*;
|
||||
|
||||
public class enum_macro_runme {
|
||||
|
||||
static {
|
||||
try {
|
||||
System.loadLibrary("enum_macro");
|
||||
} catch (UnsatisfiedLinkError e) {
|
||||
System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String argv[])
|
||||
{
|
||||
{
|
||||
Greeks1 a = Greeks1.alpha1;
|
||||
a = Greeks1.beta1;
|
||||
a = Greeks1.theta1;
|
||||
if (a.swigValue() != 3)
|
||||
throw new RuntimeException("Greeks1");
|
||||
}
|
||||
{
|
||||
Greeks2 a = Greeks2.alpha2;
|
||||
a = Greeks2.beta2;
|
||||
a = Greeks2.theta2;
|
||||
if (a.swigValue() != 4)
|
||||
throw new RuntimeException("Greeks2");
|
||||
}
|
||||
{
|
||||
Greeks3 a = Greeks3.alpha3;
|
||||
a = Greeks3.beta3;
|
||||
a = Greeks3.theta3;
|
||||
if (a.swigValue() != 2)
|
||||
throw new RuntimeException("Greeks3");
|
||||
}
|
||||
{
|
||||
Greeks4 a = Greeks4.alpha4;
|
||||
a = Greeks4.beta4;
|
||||
a = Greeks4.theta4;
|
||||
if (a.swigValue() != 6)
|
||||
throw new RuntimeException("Greeks4");
|
||||
}
|
||||
{
|
||||
Greeks5 a = Greeks5.alpha5;
|
||||
a = Greeks5.beta5;
|
||||
if (a.swigValue() != 1)
|
||||
throw new RuntimeException("Greeks5");
|
||||
}
|
||||
{
|
||||
Greeks6 a = Greeks6.alpha6;
|
||||
a = Greeks6.beta6;
|
||||
if (a.swigValue() != 1)
|
||||
throw new RuntimeException("Greeks6");
|
||||
}
|
||||
{
|
||||
Greeks7 a = Greeks7.alpha7;
|
||||
a = Greeks7.beta7;
|
||||
if (a.swigValue() != 1)
|
||||
throw new RuntimeException("Greeks7");
|
||||
}
|
||||
{
|
||||
Greeks8 a = Greeks8.theta8;
|
||||
if (a.swigValue() != 0)
|
||||
throw new RuntimeException("Greeks8");
|
||||
}
|
||||
{
|
||||
Greeks9 a = Greeks9.theta9;
|
||||
if (a.swigValue() != 0)
|
||||
throw new RuntimeException("Greeks9");
|
||||
}
|
||||
{
|
||||
Greeks10 a = Greeks10.theta10;
|
||||
if (a.swigValue() != 0)
|
||||
throw new RuntimeException("Greeks10");
|
||||
}
|
||||
{
|
||||
Greeks11 a = Greeks11.theta11;
|
||||
if (a.swigValue() != 0)
|
||||
throw new RuntimeException("Greeks11");
|
||||
}
|
||||
{
|
||||
Greeks12 a = Greeks12.theta12;
|
||||
if (a.swigValue() != 0)
|
||||
throw new RuntimeException("Greeks12");
|
||||
}
|
||||
{
|
||||
Greeks13 a = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue