forked from OSchip/llvm-project
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
This commit is contained in:
parent
984f42eed5
commit
89aa7eb2ab
|
@ -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();
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -Wunused-const-variable -x c-header -ffreestanding -verify %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -Wunused-const-variable -x c++-header -ffreestanding -verify %s
|
||||
// expected-no-diagnostics
|
||||
static const int unused[] = { 2, 3, 5, 7, 11, 13 };
|
Loading…
Reference in New Issue