Fix static const char member variables wrappers with %javaconst(1).

This fixes the case when an integer is used as the initializer, such as:

  struct W { static const char w = 100; };

The "valuetype" attribute has been added to the "cdecl" Node which enables
us to distinguish the declared type from the type of the initializer.
This commit is contained in:
William S Fulton 2016-01-27 08:54:44 +00:00
commit 7339de974d
4 changed files with 55 additions and 2 deletions

View file

@ -20,6 +20,9 @@ static const char globcharB = '\102'; // B
static const char globcharC = '\x43'; // C
static const char globcharD = 0x44; // D
static const char globcharE = 69; // E
static const char globcharAE1 = 'Æ'; // AE (latin1 encoded)
static const char globcharAE2 = '\306'; // AE (latin1 encoded)
static const char globcharAE3 = '\xC6'; // AE (latin1 encoded)
struct CharTestClass {
static const char memberchar0 = '\0';
@ -30,5 +33,40 @@ struct CharTestClass {
static const char membercharC = '\x43'; // C
static const char membercharD = 0x44; // D
static const char membercharE = 69; // E
static const char membercharAE1 = 'Æ'; // AE (latin1 encoded)
static const char membercharAE2 = '\306'; // AE (latin1 encoded)
static const char membercharAE3 = '\xC6'; // AE (latin1 encoded)
};
%}
#if defined(SWIGJAVA)
%javaconst(1);
#endif
%inline %{
static const char x_globchar0 = '\0';
static const char x_globchar1 = '\1';
static const char x_globchar2 = '\n';
static const char x_globcharA = 'A';
static const char x_globcharB = '\102'; // B
static const char x_globcharC = '\x43'; // C
static const char x_globcharD = 0x44; // D
static const char x_globcharE = 69; // E
static const char x_globcharAE1 = 'Æ'; // AE (latin1 encoded)
static const char x_globcharAE2 = '\306'; // AE (latin1 encoded)
static const char x_globcharAE3 = '\xC6'; // AE (latin1 encoded)
struct X_CharTestClass {
static const char memberchar0 = '\0';
static const char memberchar1 = '\1';
static const char memberchar2 = '\n';
static const char membercharA = 'A';
static const char membercharB = '\102'; // B
static const char membercharC = '\x43'; // C
static const char membercharD = 0x44; // D
static const char membercharE = 69; // E
static const char membercharAE1 = 'Æ'; // AE (latin1 encoded)
static const char membercharAE2 = '\306'; // AE (latin1 encoded)
static const char membercharAE3 = '\xC6'; // AE (latin1 encoded)
};
%}