summaryrefslogtreecommitdiffstats
path: root/clang/test/Parser/MicrosoftExtensions.cpp
diff options
context:
space:
mode:
authorFrancois Pichet <pichet2000@gmail.com>2011-03-27 19:41:34 +0000
committerFrancois Pichet <pichet2000@gmail.com>2011-03-27 19:41:34 +0000
commit4e7a2c09b22bb04819702ac6b8ea8b59ca396fa5 (patch)
tree8d80d1f74cc1776970e0bf38be575ef0c58dd60c /clang/test/Parser/MicrosoftExtensions.cpp
parent5f3601d35adb604c11c88ac62d239134b214d9bf (diff)
downloadbcm5719-llvm-4e7a2c09b22bb04819702ac6b8ea8b59ca396fa5.tar.gz
bcm5719-llvm-4e7a2c09b22bb04819702ac6b8ea8b59ca396fa5.zip
Improve recovery (error + fix-it) when parsing type dependent template name without the "template" keyword.
For example: typename C1<T>:: /*template*/ Iterator<0> pos; Also the error is downgraded to an ExtWarn in Microsoft mode. llvm-svn: 128387
Diffstat (limited to 'clang/test/Parser/MicrosoftExtensions.cpp')
-rw-r--r--clang/test/Parser/MicrosoftExtensions.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/clang/test/Parser/MicrosoftExtensions.cpp b/clang/test/Parser/MicrosoftExtensions.cpp
index fd0d7d50d0e..ec297f27013 100644
--- a/clang/test/Parser/MicrosoftExtensions.cpp
+++ b/clang/test/Parser/MicrosoftExtensions.cpp
@@ -111,3 +111,27 @@ CtorCall& CtorCall::operator=(const CtorCall& that)
}
return *this;
}
+
+template <class A>
+class C1 {
+public:
+ template <int B>
+ class Iterator {
+ };
+};
+
+template<class T>
+class C2 {
+ typename C1<T>:: /*template*/ Iterator<0> Mypos; // expected-warning {{use 'template' keyword to treat 'Iterator' as a dependent template name}}
+};
+
+template <class T>
+void f(){
+ typename C1<T>:: /*template*/ Iterator<0> Mypos; // expected-warning {{use 'template' keyword to treat 'Iterator' as a dependent template name}}
+}
+
+int main() {
+ f<int>();
+}
+
+
OpenPOWER on IntegriCloud