summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/Sema.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erikjv@me.com>2016-10-28 08:28:42 +0000
committerErik Verbruggen <erikjv@me.com>2016-10-28 08:28:42 +0000
commit89aa7eb2ab30118dfd9c8bf5b2398cd4bc70d53e (patch)
treecf1cec7cd50488db1c818cebd32ce634a26a4a9c /clang/lib/Sema/Sema.cpp
parent984f42eed5252a487ac274e16ffcb7c48d9032f5 (diff)
downloadbcm5719-llvm-89aa7eb2ab30118dfd9c8bf5b2398cd4bc70d53e.tar.gz
bcm5719-llvm-89aa7eb2ab30118dfd9c8bf5b2398cd4bc70d53e.zip
Sema: do not warn about unused const vars if main file is a header
If we pass a header to libclang, e.g. because it's open in an editor in an IDE, warnings about unused const vars are not useful: other files that include the header might use those constants. So when -x *-header is passed as command-line option, suppress this warning. llvm-svn: 285386
Diffstat (limited to 'clang/lib/Sema/Sema.cpp')
-rw-r--r--clang/lib/Sema/Sema.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp
index 2a3be84263c..c2622ecab4b 100644
--- a/clang/lib/Sema/Sema.cpp
+++ b/clang/lib/Sema/Sema.cpp
@@ -865,8 +865,11 @@ void Sema::ActOnEndOfTranslationUnit() {
Diag(DiagD->getLocation(), diag::warn_unneeded_internal_decl)
<< /*variable*/1 << DiagD->getDeclName();
} else if (DiagD->getType().isConstQualified()) {
- Diag(DiagD->getLocation(), diag::warn_unused_const_variable)
- << DiagD->getDeclName();
+ const SourceManager &SM = SourceMgr;
+ if (SM.getMainFileID() != SM.getFileID(DiagD->getLocation()) ||
+ !PP.getLangOpts().IsHeaderFile)
+ Diag(DiagD->getLocation(), diag::warn_unused_const_variable)
+ << DiagD->getDeclName();
} else {
Diag(DiagD->getLocation(), diag::warn_unused_variable)
<< DiagD->getDeclName();
OpenPOWER on IntegriCloud