summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlly Betts <olly@survex.com>2023-04-20 14:53:30 +1200
committerOlly Betts <olly@survex.com>2023-04-20 14:53:30 +1200
commitc538bd24c4a0ae64b25862e1062d4d143b409f15 (patch)
tree0542223e539a3903b9ca2f90780213ad7768af09
parent752ec61d274fd6154a8ca65b5b6fa996e459a468 (diff)
downloadswig-c538bd24c4a0ae64b25862e1062d4d143b409f15.tar.gz
Restore handling for '<<' in array size
I accidentally dropped this in 8fb15fcc922a302b88937a68e089223fb90640f9.
-rw-r--r--Source/Swig/typesys.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Source/Swig/typesys.c b/Source/Swig/typesys.c
index 05e2a1b6e..eb6fc1074 100644
--- a/Source/Swig/typesys.c
+++ b/Source/Swig/typesys.c
@@ -1700,7 +1700,8 @@ void SwigType_remember_clientdata(const SwigType *t, const_String_or_char_ptr cl
if (t) {
char *ct = Char(t);
const char *lt = strchr(ct, '<');
- if (lt && lt[1] != '(') {
+ /* Allow for `<<` operator in constant expression for array size. */
+ if (lt && lt[1] != '(' && lt[1] != '<') {
/* We special case `<<` above, but most cases aren't handled, for example:
*
* unsigned char myarray[std::numeric_limits<unsigned char>::max()]; // #2486