diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-10-17 21:40:42 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-10-17 21:40:42 +0000 |
commit | 4bbd1acf8b9bfa849470b3bafaaf6e966fe51078 (patch) | |
tree | c792f0ef1e3948657077e00551db5dca1b98f038 /clang/test/SemaTemplate/instantiate-expr-2.cpp | |
parent | 965fe98af630f95f3ab2a4057dda915157c0b81c (diff) | |
download | bcm5719-llvm-4bbd1acf8b9bfa849470b3bafaaf6e966fe51078.tar.gz bcm5719-llvm-4bbd1acf8b9bfa849470b3bafaaf6e966fe51078.zip |
When type-checking a C++ "new" expression, don't type-check the actual
initialization if any of the constructor/initialization arguments are
type-dependent. Fixes PR5224.
llvm-svn: 84365
Diffstat (limited to 'clang/test/SemaTemplate/instantiate-expr-2.cpp')
-rw-r--r-- | clang/test/SemaTemplate/instantiate-expr-2.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/instantiate-expr-2.cpp b/clang/test/SemaTemplate/instantiate-expr-2.cpp index 146e63c5bb0..194593ac400 100644 --- a/clang/test/SemaTemplate/instantiate-expr-2.cpp +++ b/clang/test/SemaTemplate/instantiate-expr-2.cpp @@ -178,3 +178,18 @@ namespace N10 { template class A<int>; } + +namespace N12 { + // PR5224 + template<typename T> + struct A { typedef int t0; }; + + struct C { + C(int); + + template<typename T> + static C *f0(T a0) {return new C((typename A<T>::t0) 1); } + }; + + void f0(int **a) { C::f0(a); } +} |