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.

贡献者指南