forked from OSchip/llvm-project
Fix decl type merges when they have
__string/__weak attributes. llvm-svn: 69229
This commit is contained in:
parent
9074ed8c6a
commit
3453f7d410
|
@ -2937,8 +2937,8 @@ QualType ASTContext::mergeTypes(QualType LHS, QualType RHS) {
|
|||
if (LHSCan.getCVRQualifiers() != RHSCan.getCVRQualifiers())
|
||||
return QualType();
|
||||
|
||||
Type::TypeClass LHSClass = LHSCan->getTypeClass();
|
||||
Type::TypeClass RHSClass = RHSCan->getTypeClass();
|
||||
Type::TypeClass LHSClass = LHSCan.getUnqualifiedType()->getTypeClass();
|
||||
Type::TypeClass RHSClass = RHSCan.getUnqualifiedType()->getTypeClass();
|
||||
|
||||
// We want to consider the two function types to be the same for these
|
||||
// comparisons, just force one to the other.
|
||||
|
@ -2963,7 +2963,7 @@ QualType ASTContext::mergeTypes(QualType LHS, QualType RHS) {
|
|||
if (LHSClass != RHSClass) {
|
||||
const ObjCInterfaceType* LHSIface = LHS->getAsObjCInterfaceType();
|
||||
const ObjCInterfaceType* RHSIface = RHS->getAsObjCInterfaceType();
|
||||
|
||||
|
||||
// 'id' and 'Class' act sort of like void* for ObjC interfaces
|
||||
if (LHSIface && (isObjCIdStructType(RHS) || isObjCClassStructType(RHS)))
|
||||
return LHS;
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
// RUN: clang-cc -triple i386-apple-darwin9 -fobjc-gc -fsyntax-only -verify %s
|
||||
|
||||
@interface INTF @end
|
||||
|
||||
extern INTF* p2;
|
||||
extern __strong INTF* p2;
|
||||
|
||||
extern __strong id p1;
|
||||
extern id p1;
|
||||
|
||||
extern id CFRunLoopGetMain();
|
||||
extern __strong id CFRunLoopGetMain();
|
||||
|
||||
extern __strong INTF* p3;
|
||||
extern id p3;
|
||||
|
Loading…
Reference in New Issue