From: <ol...@us...> - 2009-12-04 05:46:43
|
Revision: 11774 http://swig.svn.sourceforge.net/swig/?rev=11774&view=rev Author: olly Date: 2009-12-04 05:46:31 +0000 (Fri, 04 Dec 2009) Log Message: ----------- Fix handling of modulo operator (%) in constant expressions (SF#2818562). Modified Paths: -------------- trunk/CHANGES.current trunk/Examples/test-suite/common.mk trunk/Source/CParse/parser.y Added Paths: ----------- trunk/Examples/test-suite/constant_expr.i Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-12-04 04:56:10 UTC (rev 11773) +++ trunk/CHANGES.current 2009-12-04 05:46:31 UTC (rev 11774) @@ -2,6 +2,10 @@ ============================ 2009-12-04: olly + Fix handling of modulo operator (%) in constant expressions + (SF#2818562). + +2009-12-04: olly [PHP] "empty" is a reserved word in PHP, so rename empty() method on STL classes to "is_empty()" (previously this was automatically renamed to "c_empty()"). Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-12-04 04:56:10 UTC (rev 11773) +++ trunk/Examples/test-suite/common.mk 2009-12-04 05:46:31 UTC (rev 11774) @@ -441,6 +441,7 @@ arrays \ char_constant \ const_const \ + constant_expr \ empty \ enums \ extern_declaration \ Added: trunk/Examples/test-suite/constant_expr.i =================================================================== --- trunk/Examples/test-suite/constant_expr.i (rev 0) +++ trunk/Examples/test-suite/constant_expr.i 2009-12-04 05:46:31 UTC (rev 11774) @@ -0,0 +1,11 @@ +%module constant_expr; +/* Tests of constant expressions. */ + +%inline %{ + +/* % didn't work in SWIG 1.3.40 and earlier. */ +const int X = 123%7; +#define FOO 12 % 6 +double d_array[12 % 6]; + +%} Modified: trunk/Source/CParse/parser.y =================================================================== --- trunk/Source/CParse/parser.y 2009-12-04 04:56:10 UTC (rev 11773) +++ trunk/Source/CParse/parser.y 2009-12-04 05:46:31 UTC (rev 11774) @@ -1647,7 +1647,7 @@ %token NATIVE INLINE %token TYPEMAP EXCEPT ECHO APPLY CLEAR SWIGTEMPLATE FRAGMENT %token WARN -%token LESSTHAN GREATERTHAN MODULO DELETE_KW +%token LESSTHAN GREATERTHAN DELETE_KW %token LESSTHANOREQUALTO GREATERTHANOREQUALTO EQUALTO NOTEQUALTO %token QUESTIONMARK %token TYPES PARMS @@ -1668,7 +1668,7 @@ %left GREATERTHAN LESSTHAN GREATERTHANOREQUALTO LESSTHANOREQUALTO %left LSHIFT RSHIFT %left PLUS MINUS -%left STAR SLASH MODULUS +%left STAR SLASH MODULO %left UMINUS NOT LNOT %left DCOLON @@ -5745,7 +5745,7 @@ $$.val = NewStringf("%s/%s",$1.val,$3.val); $$.type = promote($1.type,$3.type); } - | expr MODULUS expr { + | expr MODULO expr { $$.val = NewStringf("%s%%%s",$1.val,$3.val); $$.type = promote($1.type,$3.type); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |