Author: ahatanak Date: Thu Feb 25 01:08:33 2016 New Revision: 261829 URL: http://llvm.org/viewvc/llvm-project?rev=261829&view=rev Log: [Sema] Remove assert in TreeTransform<Derived>::TransformObjCObjectType.
The assert isn't correct since TypeLoc::ObjCObjectTypeLoc doesn't indicate whether the type is a dependent type. The function returns false for a type like "<SomeProtocol>" which is a synonym for "id<SomeProtocol>". rdar://problem/23838912 Differential Revision: http://reviews.llvm.org/D17355 Added: cfe/trunk/test/SemaObjCXX/base-type-as-written.mm Modified: cfe/trunk/lib/Sema/TreeTransform.h Modified: cfe/trunk/lib/Sema/TreeTransform.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/TreeTransform.h?rev=261829&r1=261828&r2=261829&view=diff ============================================================================== --- cfe/trunk/lib/Sema/TreeTransform.h (original) +++ cfe/trunk/lib/Sema/TreeTransform.h Thu Feb 25 01:08:33 2016 @@ -5932,7 +5932,6 @@ TreeTransform<Derived>::TransformObjCObj } ObjCObjectTypeLoc NewT = TLB.push<ObjCObjectTypeLoc>(Result); - assert(TL.hasBaseTypeAsWritten() && "Can't be dependent"); NewT.setHasBaseTypeAsWritten(true); NewT.setTypeArgsLAngleLoc(TL.getTypeArgsLAngleLoc()); for (unsigned i = 0, n = TL.getNumTypeArgs(); i != n; ++i) Added: cfe/trunk/test/SemaObjCXX/base-type-as-written.mm URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjCXX/base-type-as-written.mm?rev=261829&view=auto ============================================================================== --- cfe/trunk/test/SemaObjCXX/base-type-as-written.mm (added) +++ cfe/trunk/test/SemaObjCXX/base-type-as-written.mm Thu Feb 25 01:08:33 2016 @@ -0,0 +1,9 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s +// Make sure we don't crash in TreeTransform<Derived>::TransformObjCObjectType. + +@protocol P1 +@end + +template <class T1><P1> foo1(T1) { // expected-warning {{protocol has no object type specified; defaults to qualified 'id'}} + foo1(0); +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits