Author: lattner
Date: Mon Mar  1 15:06:03 2010
New Revision: 97498

URL: http://llvm.org/viewvc/llvm-project?rev=97498&view=rev
Log:
fix PR5933: don't warn about unused variables if a function has other errors in 
it.

Modified:
    cfe/trunk/lib/Sema/SemaDecl.cpp
    cfe/trunk/test/Sema/warn-unused-variables.c

Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=97498&r1=97497&r2=97498&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDecl.cpp Mon Mar  1 15:06:03 2010
@@ -553,7 +553,8 @@
     if (!D->getDeclName()) continue;
 
     // Diagnose unused variables in this scope.
-    if (ShouldDiagnoseUnusedDecl(D))
+    if (ShouldDiagnoseUnusedDecl(D) &&
+        NumErrorsAtStartOfFunction == getDiagnostics().getNumErrors())
       Diag(D->getLocation(), diag::warn_unused_variable) << D->getDeclName();
     
     // Remove this name from our lexical scope.

Modified: cfe/trunk/test/Sema/warn-unused-variables.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/warn-unused-variables.c?rev=97498&r1=97497&r2=97498&view=diff
==============================================================================
--- cfe/trunk/test/Sema/warn-unused-variables.c (original)
+++ cfe/trunk/test/Sema/warn-unused-variables.c Mon Mar  1 15:06:03 2010
@@ -17,3 +17,9 @@
        (void)sizeof(i);
        return;
 }
+
+// PR5933
+int f2() {
+  int X = 4;  // Shouldn't have a bogus 'unused variable X' warning.
+  return Y + X; // expected-error {{use of undeclared identifier 'Y'}}
+}


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to