diff options
| author | Jordan Rose <jordan_rose@apple.com> | 2012-06-20 21:09:10 +0000 |
|---|---|---|
| committer | Jordan Rose <jordan_rose@apple.com> | 2012-06-20 21:09:10 +0000 |
| commit | dc753b625ff21ea2ea91747bb92ea8da29a0f340 (patch) | |
| tree | c8800ea4e07589561f056541645b00c8dcfb0cd7 | |
| parent | 0187a05e35d244997b2f8b4578c33025d8d3b6db (diff) | |
| download | bcm5719-llvm-dc753b625ff21ea2ea91747bb92ea8da29a0f340.tar.gz bcm5719-llvm-dc753b625ff21ea2ea91747bb92ea8da29a0f340.zip | |
Reword -Winternal-linkage-in-inline, and rename it to -Wstatic-in-inline.
Now that this is a C-only warning, we can use "static" instead of "internal
linkage", which is a term developers are probably more familiar with.
This makes for a better warning message. The warning name was changed to match,
since "internal linkage" is not mentioned in the warning text anymore.
llvm-svn: 158853
| -rw-r--r-- | clang/include/clang/Basic/DiagnosticSemaKinds.td | 10 | ||||
| -rw-r--r-- | clang/test/Sema/inline.c | 18 |
2 files changed, 14 insertions, 14 deletions
diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 1e9069a7db9..1b26b7b1a74 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -3022,13 +3022,11 @@ def warn_undefined_internal : Warning< def note_used_here : Note<"used here">; def warn_internal_in_extern_inline : ExtWarn< - "%select{function|variable}0 %1 has internal linkage but is used in an " - "inline function with external linkage">, - InGroup<DiagGroup<"internal-linkage-in-inline"> >; + "static %select{function|variable}0 %1 is used in an inline function with " + "external linkage">, InGroup<DiagGroup<"static-in-inline"> >; def ext_internal_in_extern_inline : Extension< - "%select{function|variable}0 %1 has internal linkage but is used in an " - "inline function with external linkage">, - InGroup<DiagGroup<"internal-linkage-in-inline"> >; + "static %select{function|variable}0 %1 is used in an inline function with " + "external linkage">, InGroup<DiagGroup<"static-in-inline"> >; def note_convert_inline_to_static : Note< "use 'static' to give inline function %0 internal linkage">; def note_internal_decl_declared_here : Note< diff --git a/clang/test/Sema/inline.c b/clang/test/Sema/inline.c index 7f1815e467d..6c95a7a14b4 100644 --- a/clang/test/Sema/inline.c +++ b/clang/test/Sema/inline.c @@ -8,15 +8,17 @@ // Check the use of static variables in non-static inline functions. static int staticVar; // expected-note + {{'staticVar' declared here}} static int staticFunction(); // expected-note + {{'staticFunction' declared here}} +static struct { int x; } staticStruct; // expected-note + {{'staticStruct' declared here}} -inline int useStatic () { // expected-note 2 {{use 'static' to give inline function 'useStatic' internal linkage}} - staticFunction(); // expected-warning{{function 'staticFunction' has internal linkage but is used in an inline function with external linkage}} - return staticVar; // expected-warning{{variable 'staticVar' has internal linkage but is used in an inline function with external linkage}} +inline int useStatic () { // expected-note 3 {{use 'static' to give inline function 'useStatic' internal linkage}} + staticFunction(); // expected-warning{{static function 'staticFunction' is used in an inline function with external linkage}} + (void)staticStruct.x; // expected-warning{{static variable 'staticStruct' is used in an inline function with external linkage}} + return staticVar; // expected-warning{{static variable 'staticVar' is used in an inline function with external linkage}} } extern inline int useStaticFromExtern () { // no suggestions - staticFunction(); // expected-warning{{function 'staticFunction' has internal linkage but is used in an inline function with external linkage}} - return staticVar; // expected-warning{{variable 'staticVar' has internal linkage but is used in an inline function with external linkage}} + staticFunction(); // expected-warning{{static function 'staticFunction' is used in an inline function with external linkage}} + return staticVar; // expected-warning{{static variable 'staticVar' is used in an inline function with external linkage}} } static inline int useStaticFromStatic () { @@ -48,11 +50,11 @@ inline int useStaticMainFile () { // Check that the warnings show up when explicitly requested. #pragma clang diagnostic push -#pragma clang diagnostic warning "-Winternal-linkage-in-inline" +#pragma clang diagnostic warning "-Wstatic-in-inline" inline int useStaticAgain () { // expected-note 2 {{use 'static' to give inline function 'useStaticAgain' internal linkage}} - staticFunction(); // expected-warning{{function 'staticFunction' has internal linkage but is used in an inline function with external linkage}} - return staticVar; // expected-warning{{variable 'staticVar' has internal linkage but is used in an inline function with external linkage}} + staticFunction(); // expected-warning{{static function 'staticFunction' is used in an inline function with external linkage}} + return staticVar; // expected-warning{{static variable 'staticVar' is used in an inline function with external linkage}} } #pragma clang diagnostic pop |

