IRgen/Darwin: Fix refacto introduced in Triple changes.
llvm-svn: 130233
This commit is contained in:
parent
a4fa5ce911
commit
a59b0a6e3c
|
@ -266,7 +266,7 @@ static bool PersonalityHasOnlyCXXUses(llvm::Constant *Fn) {
|
||||||
/// when it really needs it.
|
/// when it really needs it.
|
||||||
void CodeGenModule::SimplifyPersonality() {
|
void CodeGenModule::SimplifyPersonality() {
|
||||||
// For now, this is really a Darwin-specific operation.
|
// For now, this is really a Darwin-specific operation.
|
||||||
if (Context.Target.getTriple().isOSDarwin())
|
if (!Context.Target.getTriple().isOSDarwin())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// If we're not in ObjC++ -fexceptions, there's nothing to do.
|
// If we're not in ObjC++ -fexceptions, there's nothing to do.
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm \
|
||||||
|
// RUN: -fexceptions -fobjc-exceptions -fobjc-nonfragile-abi \
|
||||||
|
// RUN: -o %t %s
|
||||||
|
// RUN: FileCheck < %t %s
|
||||||
|
//
|
||||||
|
// <rdar://problem/7471679> [irgen] [eh] Exception code built with clang (x86_64) crashes
|
||||||
|
|
||||||
|
// Check that we don't emit unnecessary personality function references.
|
||||||
|
struct t0_A { t0_A(); };
|
||||||
|
struct t0_B { t0_A a; };
|
||||||
|
|
||||||
|
// CHECK: define {{.*}} @_Z2t0v(){{.*}} {
|
||||||
|
// CHECK-NOT: objc_personality
|
||||||
|
// CHECK: }
|
||||||
|
t0_B& t0() {
|
||||||
|
static t0_B x;
|
||||||
|
return x;
|
||||||
|
}
|
Loading…
Reference in New Issue