llvm/llvm-project

Can not use C99 function names as variable names in C89

Open

#15.522 aperta il 4 feb 2013

Vedi su GitHub
 (11 commenti) (0 reazioni) (0 assegnatari)C++ (10.782 fork)batch import
bugzillacclang:frontendconfirmedgood first issuerejects-valid

Metriche repository

Star
 (26.378 star)
Metriche merge PR
 (Merge medio 1g 2h) (1000 PR mergiate in 30 g)

Descrizione

Bugzilla Link 15150
Version unspecified
OS All
Reporter LLVM Bugzilla Contributor
CC @gribozavr

Extended Description

The following code doesn't compile in clang, but does in gcc:

int logf = 5;
int main() {
        return logf;
}
# gcc test.c -o test -std=c89
# ./test; echo $?
5
# clang test.c -o test -std=c89
test.c:1:5: error: redefinition of 'logf' as different kind of symbol
int logf = 5;
    ^
test.c:1:5: note: previous definition is here
test.c:4:16: warning: incompatible pointer to integer conversion returning 'float (float)' from a function with result type 'int' [-Wint-conversion]
        return logf;
               ^~~~
1 warning and 1 error generated.

Guida contributor