forked from OSchip/llvm-project
Objective-C IRGen. Fixes an assertion crash caused by inconsistent
linkage related to generation of OBJC_SELECTOR_REFERENCES symbol needed in generation of call to 'super' in a class method. // rdar://18150301 llvm-svn: 216676
This commit is contained in:
parent
33375375a4
commit
85b99da72a
|
@ -6794,8 +6794,7 @@ CGObjCNonFragileABIMac::GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF,
|
|||
// If this is a class message the metaclass is passed as the target.
|
||||
llvm::Value *Target;
|
||||
if (IsClassMessage)
|
||||
Target = EmitMetaClassRef(CGF, Class,
|
||||
(isCategoryImpl && Class->isWeakImported()));
|
||||
Target = EmitMetaClassRef(CGF, Class, Class->isWeakImported());
|
||||
else
|
||||
Target = EmitSuperClassRef(CGF, Class);
|
||||
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
// RUN: %clang_cc1 -triple x86_64-apple-ios6.0.0 -emit-llvm -o - %s | FileCheck %s
|
||||
// rdar://18150301
|
||||
|
||||
@interface Query
|
||||
+ (void)_configureCI;
|
||||
@end
|
||||
|
||||
__attribute__((visibility("default"))) __attribute__((availability(ios,introduced=7.0)))
|
||||
@interface ObserverQuery : Query @end
|
||||
|
||||
@implementation ObserverQuery
|
||||
+ (void)_configureCI {
|
||||
[super _configureCI];
|
||||
}
|
||||
@end
|
||||
|
||||
// CHECK: @"OBJC_METACLASS_$_ObserverQuery" = global %struct._class_t
|
||||
// CHECK: @"\01L_OBJC_SELECTOR_REFERENCES_" = private externally_initialized global
|
Loading…
Reference in New Issue