diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-06-07 20:03:01 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-06-07 20:03:01 +0000 |
commit | 5ed79566d603c3070055153b4f52630f33558b88 (patch) | |
tree | 7db9655bec0259183e978639c1e8fe9e7a84a735 | |
parent | 705d841bb696e3823fc3d85928b0c226346f7d9e (diff) | |
download | bcm5719-llvm-5ed79566d603c3070055153b4f52630f33558b88.tar.gz bcm5719-llvm-5ed79566d603c3070055153b4f52630f33558b88.zip |
PR16273: Weaken a bogus assertion.
llvm-svn: 183550
-rw-r--r-- | clang/lib/Sema/SemaTemplate.cpp | 3 | ||||
-rw-r--r-- | clang/test/SemaCXX/trailing-return-0x.cpp | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index 8621a2d42dc..9531b2e91df 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -256,7 +256,8 @@ void Sema::LookupTemplateName(LookupResult &Found, assert(!SS.isSet() && "ObjectType and scope specifier cannot coexist"); LookupCtx = computeDeclContext(ObjectType); isDependent = ObjectType->isDependentType(); - assert((isDependent || !ObjectType->isIncompleteType()) && + assert((isDependent || !ObjectType->isIncompleteType() || + ObjectType->castAs<TagType>()->isBeingDefined()) && "Caller should have completed object type"); // Template names cannot appear inside an Objective-C class or object type. diff --git a/clang/test/SemaCXX/trailing-return-0x.cpp b/clang/test/SemaCXX/trailing-return-0x.cpp index bd601db2ac1..f7e3433a760 100644 --- a/clang/test/SemaCXX/trailing-return-0x.cpp +++ b/clang/test/SemaCXX/trailing-return-0x.cpp @@ -94,3 +94,11 @@ namespace DR1608 { auto f() -> decltype((*this)[0]); // expected-error {{cannot be overloaded}} }; } + +namespace PR16273 { + struct A { + template <int N> void f(); + auto g()->decltype(this->f<0>()); + }; +} + |