[cfe-commits] r133572 - in /cfe/trunk: lib/Sema/SemaStmt.cpp test/SemaCXX/for-range-unused.cpp

Richard Smith richard-llvm at metafoo.co.uk
Tue Jun 21 16:07:19 PDT 2011


Author: rsmith
Date: Tue Jun 21 18:07:19 2011
New Revision: 133572

URL: http://llvm.org/viewvc/llvm-project?rev=133572&view=rev
Log:
First part of PR9968: the __range variable in a dependent C++11 for-range statement is implicitly used by that statement.

Added:
    cfe/trunk/test/SemaCXX/for-range-unused.cpp
Modified:
    cfe/trunk/lib/Sema/SemaStmt.cpp

Modified: cfe/trunk/lib/Sema/SemaStmt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaStmt.cpp?rev=133572&r1=133571&r2=133572&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaStmt.cpp (original)
+++ cfe/trunk/lib/Sema/SemaStmt.cpp Tue Jun 21 18:07:19 2011
@@ -1406,6 +1406,9 @@
       if (LoopVar->isInvalidDecl())
         NoteForRangeBeginEndFunction(*this, BeginExpr.get(), BEF_begin);
     }
+  } else {
+    // The range is implicitly used as a placeholder when it is dependent.
+    RangeVar->setUsed();
   }
 
   return Owned(new (Context) CXXForRangeStmt(RangeDS,

Added: cfe/trunk/test/SemaCXX/for-range-unused.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/for-range-unused.cpp?rev=133572&view=auto
==============================================================================
--- cfe/trunk/test/SemaCXX/for-range-unused.cpp (added)
+++ cfe/trunk/test/SemaCXX/for-range-unused.cpp Tue Jun 21 18:07:19 2011
@@ -0,0 +1,22 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++0x -Wunused
+
+// PR9968: We used to warn that __range is unused in a dependent for-range.
+
+template <typename T>
+  struct Vector {
+    void doIt() {
+      // FIXME: PR10168: Only warn once for this!
+      int a; // expected-warning 2{{unused variable 'a'}}
+
+      for (auto& e : elements)
+        ;
+    }
+
+    T elements[10];
+  };
+
+
+int main(int, char**) {
+  Vector<int>    vector;
+  vector.doIt(); // expected-note {{requested here}}
+}





More information about the cfe-commits mailing list