diff options
-rw-r--r-- | lib/CodeGen/CGCXX.cpp | 3 | ||||
-rw-r--r-- | test/CodeGenCXX/apple-kext-symbols.cpp | 20 |
2 files changed, 1 insertions, 22 deletions
diff --git a/lib/CodeGen/CGCXX.cpp b/lib/CodeGen/CGCXX.cpp index 09e0aa63b6..f6fc202eaa 100644 --- a/lib/CodeGen/CGCXX.cpp +++ b/lib/CodeGen/CGCXX.cpp @@ -176,9 +176,8 @@ bool CodeGenModule::TryEmitDefinitionAsAlias(GlobalDecl AliasDecl, void CodeGenModule::EmitCXXConstructors(const CXXConstructorDecl *D) { // The constructor used for constructing this as a complete class; // constucts the virtual bases, then calls the base constructor. - if (!D->getParent()->isAbstract() || getLangOptions().AppleKext) { + if (!D->getParent()->isAbstract()) { // We don't need to emit the complete ctor if the class is abstract. - // But kexts somehow manage to violate this assumption. EmitGlobal(GlobalDecl(D, Ctor_Complete)); } diff --git a/test/CodeGenCXX/apple-kext-symbols.cpp b/test/CodeGenCXX/apple-kext-symbols.cpp deleted file mode 100644 index f9aeafc3ad..0000000000 --- a/test/CodeGenCXX/apple-kext-symbols.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fapple-kext -emit-llvm -o - %s | FileCheck %s - -// rdar://problem/9429976 -namespace test0 { - struct A { - A(); - virtual ~A(); - virtual void foo() = 0; - }; - - // CHECK: define void @_ZN5test01AC1Ev( - // CHECK: define void @_ZN5test01AC2Ev( - A::A() {} - - // CHECK: define void @_ZN5test01AD0Ev( - // CHECK: define void @_ZN5test01AD1Ev( - // CHECK: define void @_ZN5test01AD2Ev( - A::~A() {} -} - |