Commit graph

13 commits

Author SHA1 Message Date
Olly Betts
6f952806e4 Enable testcase for %
This was commented out with a FIXME, but actually works.  Probably
fixed back in 2009 by 02eb6a81d1!
2022-01-25 14:09:49 +13:00
Olly Betts
f2de21eb83 Parse common cases of < and > comparisons
Adding full support for these in expressions seems hard to do without
introducing conflicts into the parser grammar, but in fact all reported
cases have had parentheses around the comparison and we can support that
with a few restrictions on the left side of `<`.

Fixes #80 and #635.  Also https://sourceforge.net/p/swig/bugs/1139/
2022-01-25 14:09:41 +13:00
Olly Betts
0863eca5e7 Fix constants involved parenthesised char literals
Fixes https://sourceforge.net/p/swig/bugs/1168/
2017-10-08 13:43:02 +13:00
William S Fulton
9e2a12416c Fix type promotion wrapping some non-trivial constant expressions
This was previously an integral type instead of a floating point type:
2017-09-18 07:06:27 +01:00
William S Fulton
90ba174fce Fix generated code for constant expressions containing wchar_t L literals.
Such as:
  # define __WCHAR_MAX    (0x7fffffff + L'\0')

Reported on swig-user mailing list.
2017-09-17 19:02:55 +01:00
Jiulong Wang
256e283fc3 Fix #define error when value contains char in compound expression 2016-10-02 13:01:16 -07:00
William S Fulton
5ba14168f7 preproc_constants warning suppression when using clang 2015-02-11 19:25:22 +00:00
William S Fulton
a831f39096 preproc_constants warning suppression when using clang
Suppresses:
  warning: use of logical '&&' with constant operand [-Wconstant-logical-operand]
2015-02-03 19:28:45 +00:00
David Nadlinger
2faef96e0a D: Fix preproc_constants/preproc_constants_c test cases. 2014-11-06 23:04:35 +01:00
William S Fulton
04b60a1508 CFFI - Fix some string constants are incorrect
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13963 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-12-14 08:00:22 +00:00
William S Fulton
aae9c18e6e Apply patch #3392264 from Sebastien Bine to parse (unsigned) long long types in enum value assignment.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12926 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-03-16 07:30:14 +00:00
William S Fulton
2726424a7f Fix constant expressions containing <= or >=
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11687 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-09-11 18:47:05 +00:00
William S Fulton
7c6aca2ebc true and false supported in constant expressions (C++ only). && || == != < > <= >= operators now return type bool (C++ only) and type int for C as per C/C++ standards.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11677 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-09-02 22:33:04 +00:00