summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/ms-delayed-default-template-args.cpp
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2016-05-24 21:23:54 +0000
committerReid Kleckner <rnk@google.com>2016-05-24 21:23:54 +0000
commit9a96e4207423804b7589ac958aae2bfbd41425df (patch)
treeccc7c25a46e0b2fe6662b636ba3219ed589afba5 /clang/test/SemaTemplate/ms-delayed-default-template-args.cpp
parent3270bdbb038d51c98a059d0d517d0d4465ebb920 (diff)
downloadbcm5719-llvm-9a96e4207423804b7589ac958aae2bfbd41425df.tar.gz
bcm5719-llvm-9a96e4207423804b7589ac958aae2bfbd41425df.zip
[ms] Allow more unqualified lookup of types in dependent base classes
Summary: In dependent contexts where we know a type name is required, such as a new expression, we can recover by forming a DependentNameType. This generalizes our existing compatibility hack for default arguments for template type parameters. Works towards parsing atlctrlw.h, which is PR26748. Reviewers: avt77, rsmith Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D20500 llvm-svn: 270615
Diffstat (limited to 'clang/test/SemaTemplate/ms-delayed-default-template-args.cpp')
-rw-r--r--clang/test/SemaTemplate/ms-delayed-default-template-args.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/ms-delayed-default-template-args.cpp b/clang/test/SemaTemplate/ms-delayed-default-template-args.cpp
index ca9ddb0d9d1..0c054694247 100644
--- a/clang/test/SemaTemplate/ms-delayed-default-template-args.cpp
+++ b/clang/test/SemaTemplate/ms-delayed-default-template-args.cpp
@@ -55,6 +55,15 @@ struct Foo {
typedef int Weber;
}
+// MSVC accepts this, but Clang doesn't.
+namespace test_scope_spec {
+template <typename T = ns::Bar> // expected-error {{use of undeclared identifier 'ns'}}
+struct Foo {
+ static_assert(sizeof(T) == 4, "Bar should have gotten int");
+};
+namespace ns { typedef int Bar; }
+}
+
#ifdef __clang__
// These are negative test cases that MSVC doesn't compile either. Try to use
// unique undeclared identifiers so typo correction doesn't find types declared
OpenPOWER on IntegriCloud