r183550 - PR16273: Weaken a bogus assertion.

Richard Smith richard-llvm at metafoo.co.uk
Fri Jun 7 13:03:02 PDT 2013


Author: rsmith
Date: Fri Jun  7 15:03:01 2013
New Revision: 183550

URL: http://llvm.org/viewvc/llvm-project?rev=183550&view=rev
Log:
PR16273: Weaken a bogus assertion.

Modified:
    cfe/trunk/lib/Sema/SemaTemplate.cpp
    cfe/trunk/test/SemaCXX/trailing-return-0x.cpp

Modified: cfe/trunk/lib/Sema/SemaTemplate.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplate.cpp?rev=183550&r1=183549&r2=183550&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaTemplate.cpp (original)
+++ cfe/trunk/lib/Sema/SemaTemplate.cpp Fri Jun  7 15:03:01 2013
@@ -256,7 +256,8 @@ void Sema::LookupTemplateName(LookupResu
     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.

Modified: cfe/trunk/test/SemaCXX/trailing-return-0x.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/trailing-return-0x.cpp?rev=183550&r1=183549&r2=183550&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/trailing-return-0x.cpp (original)
+++ cfe/trunk/test/SemaCXX/trailing-return-0x.cpp Fri Jun  7 15:03:01 2013
@@ -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>());
+  };
+}
+





More information about the cfe-commits mailing list