diff options
author | dim <dim@FreeBSD.org> | 2014-05-26 20:45:44 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2014-05-26 20:45:44 +0000 |
commit | a3e27ae6a965c81405d106372cb1f9d3a6da6626 (patch) | |
tree | a889320dbbd323fb029d54cc5ef8a03ca448a203 /contrib/llvm/patches | |
parent | 0c09b104cdf0b55f5402b37cb18a67d0480c6a5f (diff) | |
download | FreeBSD-src-a3e27ae6a965c81405d106372cb1f9d3a6da6626.zip FreeBSD-src-a3e27ae6a965c81405d106372cb1f9d3a6da6626.tar.gz |
MFC r265925:
Upgrade our copy of llvm/clang to 3.4.1 release. This release contains
mostly fixes, for the following upstream bugs:
http://llvm.org/PR16365 http://llvm.org/PR17473 http://llvm.org/PR18000
http://llvm.org/PR18068 http://llvm.org/PR18102 http://llvm.org/PR18165
http://llvm.org/PR18260 http://llvm.org/PR18290 http://llvm.org/PR18316
http://llvm.org/PR18460 http://llvm.org/PR18473 http://llvm.org/PR18515
http://llvm.org/PR18526 http://llvm.org/PR18600 http://llvm.org/PR18762
http://llvm.org/PR18773 http://llvm.org/PR18860 http://llvm.org/PR18994
http://llvm.org/PR19007 http://llvm.org/PR19010 http://llvm.org/PR19033
http://llvm.org/PR19059 http://llvm.org/PR19144 http://llvm.org/PR19326
Diffstat (limited to 'contrib/llvm/patches')
-rw-r--r-- | contrib/llvm/patches/patch-r262809-clang-r203007-destructor-calling-conv.diff | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/contrib/llvm/patches/patch-r262809-clang-r203007-destructor-calling-conv.diff b/contrib/llvm/patches/patch-r262809-clang-r203007-destructor-calling-conv.diff deleted file mode 100644 index 5341b8b..0000000 --- a/contrib/llvm/patches/patch-r262809-clang-r203007-destructor-calling-conv.diff +++ /dev/null @@ -1,61 +0,0 @@ -Pull in r203007 from upstream clang trunk (by Rafael Espindola): - - Don't produce an alias between destructors with different calling conventions. - - Fixes pr19007. - -Introduced here: http://svn.freebsd.org/changeset/base/262809 - -Index: tools/clang/lib/CodeGen/CGCXX.cpp -=================================================================== ---- tools/clang/lib/CodeGen/CGCXX.cpp -+++ tools/clang/lib/CodeGen/CGCXX.cpp -@@ -92,7 +92,13 @@ bool CodeGenModule::TryEmitBaseDestructorAsAlias(c - if (!ClassLayout.getBaseClassOffset(UniqueBase).isZero()) - return true; - -+ // Give up if the calling conventions don't match. We could update the call, -+ // but it is probably not worth it. - const CXXDestructorDecl *BaseD = UniqueBase->getDestructor(); -+ if (BaseD->getType()->getAs<FunctionType>()->getCallConv() != -+ D->getType()->getAs<FunctionType>()->getCallConv()) -+ return true; -+ - return TryEmitDefinitionAsAlias(GlobalDecl(D, Dtor_Base), - GlobalDecl(BaseD, Dtor_Base), - false); -Index: tools/clang/test/CodeGenCXX/ctor-dtor-alias.cpp -=================================================================== ---- tools/clang/test/CodeGenCXX/ctor-dtor-alias.cpp -+++ tools/clang/test/CodeGenCXX/ctor-dtor-alias.cpp -@@ -1,5 +1,5 @@ --// RUN: %clang_cc1 %s -triple x86_64-linux -emit-llvm -o - -mconstructor-aliases -O1 -disable-llvm-optzns | FileCheck %s --// RUN: %clang_cc1 %s -triple x86_64-linux -emit-llvm -o - -mconstructor-aliases | FileCheck --check-prefix=NOOPT %s -+// RUN: %clang_cc1 %s -triple i686-linux -emit-llvm -o - -mconstructor-aliases -O1 -disable-llvm-optzns | FileCheck %s -+// RUN: %clang_cc1 %s -triple i686-linux -emit-llvm -o - -mconstructor-aliases | FileCheck --check-prefix=NOOPT %s - - // RUN: %clang_cc1 -cc1 -triple x86_64--netbsd -emit-llvm \ - // RUN: -mconstructor-aliases -O2 %s -o - | FileCheck --check-prefix=CHECK-RAUW %s -@@ -133,6 +133,22 @@ namespace test8 { - zed foo; - } - -+namespace test9 { -+struct foo { -+ __attribute__((stdcall)) ~foo() { -+ } -+}; -+ -+struct bar : public foo {}; -+ -+void zed() { -+ // Test that we produce a call to bar's destructor. We used to call foo's, but -+ // it has a different calling conversion. -+ // CHECK-DAG: call void @_ZN5test93barD2Ev -+ bar ptr; -+} -+} -+ - // CHECK-RAUW: @_ZTV1C = linkonce_odr unnamed_addr constant [4 x i8*] [{{[^@]*}}@_ZTI1C {{[^@]*}}@_ZN1CD2Ev {{[^@]*}}@_ZN1CD0Ev {{[^@]*}}] - // r194296 replaced C::~C with B::~B without emitting the later. - |