First part of PR9968: the __range variable in a dependent C++11 for-range statement is implicitly used by that statement.
llvm-svn: 133572
diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp
index 9af9c8d..0ba4f99 100644
--- a/clang/lib/Sema/SemaStmt.cpp
+++ b/clang/lib/Sema/SemaStmt.cpp
@@ -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,