llvm/llvm-project
View on GitHubmissing parenthesis for function-like macro invocation could have better diagnostic
Open
#123,038 opened on Jan 15, 2025
clang:diagnosticsgood first issue
Repository metrics
- Stars
- (26,378 stars)
- PR merge metrics
- (Avg merge 1d 2h) (1,000 merged PRs in 30d)
Description
Consider:
$ cat /tmp/a.c
#define FOO() 42
int x = FOO;
The compiler will error because we forgot to use parens for FOO:
$ clang -c /tmp/a.c
/tmp/a.c:2:9: error: use of undeclared identifier 'FOO'
2 | int x = FOO;
| ^
1 error generated.
It would be nice if the compiler diagnostic included a note pointing out that FOO does exist, but as a function-like macro it requires parenthesis.