Fix #define error when value contains char in compound expression
This commit is contained in:
parent
9e53432aef
commit
256e283fc3
2 changed files with 6 additions and 4 deletions
|
|
@ -51,7 +51,7 @@
|
|||
// Expressions - runtime tests check the type for any necessary type promotions of the expressions
|
||||
|
||||
#define INT_AND_BOOL 0xFF & true
|
||||
//#define INT_AND_CHAR 0xFF & 'A' /* FIXME compile error */
|
||||
#define INT_AND_CHAR 0xFF & 'A'
|
||||
#define INT_AND_INT 0xFF & 2
|
||||
#define INT_AND_UINT 0xFF & 2u
|
||||
#define INT_AND_LONG 0xFF & 2l
|
||||
|
|
@ -60,8 +60,7 @@
|
|||
#define INT_AND_ULLONG 0xFF & 2ull
|
||||
|
||||
#define BOOL_AND_BOOL true & true // Note integral promotion to type int
|
||||
//#define CHAR_AND_CHAR 'A' & 'B' // Note integral promotion to type int
|
||||
/* FIXME ABOVE */
|
||||
#define CHAR_AND_CHAR 'A' & 'B' // Note integral promotion to type int
|
||||
|
||||
|
||||
#define EXPR_MULTIPLY 0xFF * 2
|
||||
|
|
@ -88,6 +87,9 @@
|
|||
#define EXPR_LOR 0xFF || 1
|
||||
#define EXPR_CONDITIONAL true ? 2 : 2.2
|
||||
|
||||
#define EXPR_CHAR_COMPOUND_ADD 'A' + 12
|
||||
#define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6
|
||||
#define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p')
|
||||
|
||||
/// constant assignment in enum
|
||||
#if defined(SWIGCSHARP)
|
||||
|
|
|
|||
|
|
@ -5828,7 +5828,7 @@ definetype : { /* scanner_check_typedef(); */ } expr {
|
|||
if ($$.type == T_STRING) {
|
||||
$$.rawval = NewStringf("\"%(escape)s\"",$$.val);
|
||||
} else if ($$.type != T_CHAR && $$.type != T_WSTRING && $$.type != T_WCHAR) {
|
||||
$$.rawval = 0;
|
||||
$$.rawval = NewStringf("%s", $$.val);
|
||||
}
|
||||
$$.qualifier = 0;
|
||||
$$.bitfield = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue