Revert "Modify fix for << in array size"
This reverts commit 0ff9a0959a.
The modified fix breaks Java and C#, where C constant expressions
get used in the generated target language code in some cases.
Revert this fix for now.
This commit is contained in:
parent
6e931b0399
commit
54ddefe410
3 changed files with 4 additions and 11 deletions
|
|
@ -6803,11 +6803,7 @@ exprcompound : expr PLUS expr {
|
|||
$$.type = promote($1.type,$3.type);
|
||||
}
|
||||
| expr LSHIFT expr {
|
||||
/* To avoid confusing SWIG's type system, we replace `<<` with
|
||||
* `SWIG_LSHIFT` here, then define the latter as a macro in
|
||||
* the generated wrapper file.
|
||||
*/
|
||||
$$.val = NewStringf("%s SWIG_LSHIFT %s",COMPOUND_EXPR_VAL($1),COMPOUND_EXPR_VAL($3));
|
||||
$$.val = NewStringf("%s << %s",COMPOUND_EXPR_VAL($1),COMPOUND_EXPR_VAL($3));
|
||||
$$.type = promote_type($1.type);
|
||||
}
|
||||
| expr RSHIFT expr {
|
||||
|
|
|
|||
|
|
@ -1702,7 +1702,9 @@ void SwigType_remember_clientdata(const SwigType *t, const_String_or_char_ptr cl
|
|||
|
||||
if (t) {
|
||||
char *ct = Char(t);
|
||||
if (strchr(ct, '<') && !(strstr(ct, "<("))) {
|
||||
const char *lt = strchr(ct, '<');
|
||||
/* Allow for `<<` operator in constant expression for array size. */
|
||||
if (lt && lt[1] != '(' && lt[1] != '<') {
|
||||
Printf(stdout, "Bad template type passed to SwigType_remember: %s\n", t);
|
||||
assert(0);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue