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:
Olly Betts 2022-07-27 13:45:08 +12:00
commit 54ddefe410
3 changed files with 4 additions and 11 deletions

View file

@ -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 {

View file

@ -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);
}