llvm/llvm-project

Can not use C99 function names as variable names in C89

Open

#15,522 建立於 2013年2月4日

在 GitHub 查看
 (11 留言) (0 反應) (0 負責人)C++ (26,378 star) (10,782 fork)batch import
bugzillacclang:frontendconfirmedgood first issuerejects-valid

描述

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.

貢獻者指南

Can not use C99 function names as variable names in C89 · llvm/llvm-project#15522 | Good First Issue