Skip to content

Commit 41f7dde

Browse files
authored
Add hint for Cpp1 prefix operators (#419)
1 parent 1394723 commit 41f7dde

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
main: () =
2+
{
3+
v := 1;
4+
p := &v;
5+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
pure2-cpp1-prefix-expression.cpp2...
2+
pure2-cpp1-prefix-expression.cpp2(4,10): error: use postfix 'var&' for address, not '&var'
3+

source/parse.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3851,6 +3851,20 @@ class parser
38513851
if ((n->expr = postfix_expression())) {
38523852
return n;
38533853
}
3854+
switch (curr().type())
3855+
{
3856+
break; case lexeme::PlusPlus:
3857+
error("only postfix 'var++' increment is supported, not '++var'", false);
3858+
break; case lexeme::MinusMinus:
3859+
error("only postfix 'var--' decrement is supported, not '--var'", false);
3860+
break; case lexeme::Multiply:
3861+
error("use postfix 'ptr*' to dereference, not '*ptr'", false);
3862+
break; case lexeme::Ampersand:
3863+
error("use postfix 'var&' for address, not '&var'", false);
3864+
break; case lexeme::Tilde:
3865+
error("use postfix 'var~' for bitwise complement, not '~var'", false);
3866+
break; default: ;
3867+
}
38543868
return {};
38553869
}
38563870

0 commit comments

Comments
 (0)