llvm/llvm-project
Voir sur GitHubc11: Accepts ill-formed program with inline function definition containing modifiable variable with static storage duration.
Open
#39 524 ouverte le 28 déc. 2018
bugzillacclang:diagnosticsconfirmedgood first issue
Métriques du dépôt
- Stars
- (26 378 stars)
- Métriques de merge PR
- (Merge moyen 1j 2h) (1 000 PRs mergées en 30 j)
Description
| Bugzilla Link | 40177 |
| Version | trunk |
| OS | All |
| CC | @hfinkel,@zygoloid |
Extended Description
Test case (prog.c):
inline void f() { static int x; }
int main() { }
Compilation command line:
clang prog.c -Wall -Wextra -std=c11 -pedantic-errors
Observed behaviour:
No error message outputed. Only a warning message outputed.
Expected behaviour:
An error message outputed.
The program violates 6.7.4/3:
"An inline definition of a function with external linkage shall not contain
a definition of a modifiable object with static or thread storage duration,
and shall not contain a reference to an identifier with internal linkage."
Since -pedantic-errors is used we should get an error instead of a warning.
Note:
GCC gives the expected error message.