Warn about more than the first unused variable when -Werror is set.

To do this, thread DiagnosticErrorTrap's hasUnrecoverableErrorOccurred through
to Scope.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178294 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Matt Beaumont-Gay 2013-03-28 21:46:45 +00:00
parent edd2cb381e
commit 59d8ccb45e
3 changed files with 12 additions and 2 deletions

View File

@ -241,6 +241,10 @@ public:
bool hasErrorOccurred() const { return ErrorTrap.hasErrorOccurred(); }
bool hasUnrecoverableErrorOccurred() const {
return ErrorTrap.hasUnrecoverableErrorOccurred();
}
/// isClassScope - Return true if this scope is a class/struct/union scope.
bool isClassScope() const {
return (getFlags() & Scope::ClassScope);

View File

@ -1389,7 +1389,7 @@ void Sema::ActOnPopScope(SourceLocation Loc, Scope *S) {
if (!D->getDeclName()) continue;
// Diagnose unused variables in this scope.
if (!S->hasErrorOccurred())
if (!S->hasUnrecoverableErrorOccurred())
DiagnoseUnusedDecl(D);
// If this was a forward reference to a label, verify it was defined.

View File

@ -0,0 +1,6 @@
// RUN: %clang_cc1 -fsyntax-only -Wunused-variable -Werror -verify %s
void f() {
int i; // expected-error{{unused}}
int j; // expected-error{{unused}}
}