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
This commit is contained in:
parent
cb887ed2d4
commit
02b4bd8eca
10 changed files with 91 additions and 7 deletions
|
|
@ -31,3 +31,5 @@ pp_expressions_bad.i:64: Warning 202: Could not evaluate expression '"1" == ~"1"
|
|||
pp_expressions_bad.i:64: Warning 202: Syntax error: attempt to apply unary operator to string
|
||||
pp_expressions_bad.i:67: Warning 202: Could not evaluate expression '"1" == +"1"'
|
||||
pp_expressions_bad.i:67: Warning 202: Syntax error: attempt to apply unary operator to string
|
||||
pp_expressions_bad.i:71: Warning 202: Could not evaluate expression '(4 <=> 2) < 0'
|
||||
pp_expressions_bad.i:71: Warning 202: Spaceship operator (<=>) not allowed in preprocessor expression
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue