Fix a bug where we'd try to look beyond the current cached tokens when
not in backtracking mode.  This was just using the wrong predicate.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61666 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Lex/Preprocessor.h b/include/clang/Lex/Preprocessor.h
index efe057e..54dc1b6 100644
--- a/include/clang/Lex/Preprocessor.h
+++ b/include/clang/Lex/Preprocessor.h
@@ -414,7 +414,7 @@
   /// invoked.
   void AnnotateCachedTokens(const Token &Tok) {
     assert(Tok.isAnnotationToken() && "Expected annotation token");
-    if (CachedLexPos != 0 && InCachingLexMode())
+    if (CachedLexPos != 0 && isBacktrackEnabled())
       AnnotatePreviousCachedTokens(Tok);
   }
   
diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp
index a4b97e1..5e50bf8 100644
--- a/lib/Parse/ParseExprCXX.cpp
+++ b/lib/Parse/ParseExprCXX.cpp
@@ -68,8 +68,8 @@
       SourceLocation CCLoc = ConsumeToken();
       
       // ::new and ::delete aren't nested-name-specifiers, and 
-      // MaybeParseCXXScopeSpecifier is never called in a context where one could
-      // exist.  This means that if we see it, we have a syntax error.
+      // MaybeParseCXXScopeSpecifier is never called in a context where one
+      // could exist.  This means that if we see it, we have a syntax error.
       if (Tok.is(tok::kw_new) || Tok.is(tok::kw_delete)) {
         Diag(Tok, diag::err_invalid_qualified_new_delete)
           << Tok.is(tok::kw_delete);
diff --git a/test/SemaCXX/qualified-id-lookup.cpp b/test/SemaCXX/qualified-id-lookup.cpp
index d0bb338..064f5c9 100644
--- a/test/SemaCXX/qualified-id-lookup.cpp
+++ b/test/SemaCXX/qualified-id-lookup.cpp
@@ -53,3 +53,14 @@
   int v3 = ::i1;
 }
 
+typedef int f2_type;
+namespace a {
+  typedef int f2_type(int, int);
+
+  void test_f2() {
+    ::f2_type(1, 2); // expected-error {{function-style cast to a builtin type can only take one argument}}
+  }
+}
+
+
+