[cfe-commits] r167547 - in /cfe/trunk: lib/Parse/Parser.cpp test/SemaCXX/decltype.cpp
David Blaikie
dblaikie at gmail.com
Wed Nov 7 11:08:05 PST 2012
Author: dblaikie
Date: Wed Nov 7 13:08:05 2012
New Revision: 167547
URL: http://llvm.org/viewvc/llvm-project?rev=167547&view=rev
Log:
PR12713 - crash on invalid due to unmatched parens in decltype
Modified:
cfe/trunk/lib/Parse/Parser.cpp
cfe/trunk/test/SemaCXX/decltype.cpp
Modified: cfe/trunk/lib/Parse/Parser.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/Parser.cpp?rev=167547&r1=167546&r2=167547&view=diff
==============================================================================
--- cfe/trunk/lib/Parse/Parser.cpp (original)
+++ cfe/trunk/lib/Parse/Parser.cpp Wed Nov 7 13:08:05 2012
@@ -1940,8 +1940,8 @@
}
P.Diag(P.Tok, DID);
P.Diag(LOpen, diag::note_matching) << LHSName;
- if (P.SkipUntil(Close))
- LClose = P.Tok.getLocation();
+ if (P.SkipUntil(Close, /*StopAtSemi*/ true, /*DontConsume*/ true))
+ LClose = P.ConsumeAnyToken();
return true;
}
Modified: cfe/trunk/test/SemaCXX/decltype.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/decltype.cpp?rev=167547&r1=167546&r2=167547&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/decltype.cpp (original)
+++ cfe/trunk/test/SemaCXX/decltype.cpp Wed Nov 7 13:08:05 2012
@@ -36,3 +36,10 @@
C(decltype(undeclared; // expected-error {{undeclared identifier}} \
// expected-error {{expected ')'}} expected-note {{to match this '('}}
};
+
+template<typename>
+class conditional {
+};
+
+void foo(conditional<decltype((1),int>) { // expected-note 2 {{to match this '('}} expected-error {{expected ')'}}
+} // expected-error {{expected function body after function declarator}} expected-error 2 {{expected '>'}} expected-error {{expected ')'}}
More information about the cfe-commits
mailing list