Olly Betts
346ede21c3
Fix spaceship preproc tests for previous change
2022-07-27 18:17:31 +12:00
Olly Betts
02b4bd8eca
Fix spaceship operator bugs, document, add tests
...
Remove some erroneously added brackets_increment() calls.
Reject <=> in preprocessor expressions with a clear error message (it
seems it isn't supported here - clang and gcc don't at least).
The type returned by `<=>` is not `bool`. We pretend it's
`int` for now, which should work for how it's likely to be used
in constant expressions.
Fixes #1622
2022-07-27 09:12:40 +12:00
Olly Betts
4986b8793d
Emit preprocessor expr error for unary + on string
...
Previously other unary operators on a string all gave an error, but
unary + was handled as a no-op and so didn't.
2022-02-24 09:50:22 +13:00
Olly Betts
0deb8a855d
Add another testcase for #1384
...
A string in parentheses could be treated as an integer (depending on
the state the stack was left in by previously evaluated expressions).
2022-02-24 08:30:32 +13:00
William S Fulton
72964a1faf
Don't accept some invalid preprocessor code
...
Whitespace or non-numeric characters are required after a preprocessor
directive that requires an expression.
2018-01-16 08:07:37 +00:00
William S Fulton
532999f4f2
Improve error message when preprocessor expressions result in a floating point constant
...
Instead of a syntax error, the error is now:
Warning 202: Error: 'Floating point constant in preprocessor expression'
2018-01-15 08:09:14 +00:00
William S Fulton
ea5b55ecf4
Fix floating point division by zero in preprocessor expressions.
...
Closes #1183
2018-01-15 07:51:18 +00:00