diff options
-rw-r--r-- | lib/Sema/Sema.cpp | 3 | ||||
-rw-r--r-- | test/SemaCXX/warn-unused-filescoped.cpp | 14 |
2 files changed, 17 insertions, 0 deletions
diff --git a/lib/Sema/Sema.cpp b/lib/Sema/Sema.cpp index 0c5e8db1aa..a639d3bc46 100644 --- a/lib/Sema/Sema.cpp +++ b/lib/Sema/Sema.cpp @@ -363,6 +363,9 @@ static bool ShouldRemoveFromUnused(Sema *SemaRef, const DeclaratorDecl *D) { return !SemaRef->ShouldWarnIfUnusedFileScopedDecl(DeclToCheck); } + if (D->getLinkage() == ExternalLinkage) + return true; + return false; } diff --git a/test/SemaCXX/warn-unused-filescoped.cpp b/test/SemaCXX/warn-unused-filescoped.cpp index 1e0802e42d..4cb38d997b 100644 --- a/test/SemaCXX/warn-unused-filescoped.cpp +++ b/test/SemaCXX/warn-unused-filescoped.cpp @@ -118,3 +118,17 @@ namespace unused { } } x; // expected-warning {{unused variable}} } + +namespace test6 { + typedef struct { + void bar(); + } A; + + typedef struct { + void bar(); // expected-warning {{unused member function 'bar'}} + } *B; + + struct C { + void bar(); + }; +} |