llvm/llvm-project

missing parenthesis for function-like macro invocation could have better diagnostic

Open

#123.038 aberto em 15 de jan. de 2025

Ver no GitHub
 (4 comments) (0 reactions) (1 assignee)C++ (10.782 forks)batch import
clang:diagnosticsgood first issue

Métricas do repositório

Stars
 (26.378 stars)
Métricas de merge de PR
 (Mesclagem média 1d 2h) (1.000 fundiu PRs em 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.

Guia do colaborador