From 3946039b0988b4ae0b3f88e5ac7506873ba905db Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Fri, 30 Sep 2011 16:33:35 +0200 Subject: [PATCH] Apply upstream patch for Operator.h C++0x incompatibility (# 737365) --- llvm-2.9-PR9869_operator_destructor.patch | 74 +++++++++++++++++++++++ llvm.spec | 9 ++- 2 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 llvm-2.9-PR9869_operator_destructor.patch diff --git a/llvm-2.9-PR9869_operator_destructor.patch b/llvm-2.9-PR9869_operator_destructor.patch new file mode 100644 index 0000000..982d0ea --- /dev/null +++ b/llvm-2.9-PR9869_operator_destructor.patch @@ -0,0 +1,74 @@ +From 6a61834d1c41971f80669a0484f1a0d2d8a1c286 Mon Sep 17 00:00:00 2001 +From: Eli Friedman +Date: Sun, 8 May 2011 01:59:22 +0000 +Subject: [PATCH] PR9869: Add explicit destructor declarations to Operator + subclasses, to allow compiling Operator.h with gcc 4.6 in + C++0x mode. + +git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131062 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + include/llvm/Operator.h | 34 ++++++++++++++++++++++++++-------- + 1 files changed, 26 insertions(+), 8 deletions(-) + +diff --git a/include/llvm/Operator.h b/include/llvm/Operator.h +index ff2a0ad..e9aa499 100644 +--- a/include/llvm/Operator.h ++++ b/include/llvm/Operator.h +@@ -186,28 +186,46 @@ public: + }; + + class AddOperator +- : public ConcreteOperator {}; ++ : public ConcreteOperator { ++ ~AddOperator(); // DO NOT IMPLEMENT ++}; + class SubOperator +- : public ConcreteOperator {}; ++ : public ConcreteOperator { ++ ~SubOperator(); // DO NOT IMPLEMENT ++}; + class MulOperator +- : public ConcreteOperator {}; ++ : public ConcreteOperator { ++ ~MulOperator(); // DO NOT IMPLEMENT ++}; + class ShlOperator +- : public ConcreteOperator {}; ++ : public ConcreteOperator { ++ ~ShlOperator(); // DO NOT IMPLEMENT ++}; + + + class SDivOperator +- : public ConcreteOperator {}; ++ : public ConcreteOperator { ++ ~SDivOperator(); // DO NOT IMPLEMENT ++}; + class UDivOperator +- : public ConcreteOperator {}; ++ : public ConcreteOperator { ++ ~UDivOperator(); // DO NOT IMPLEMENT ++}; + class AShrOperator +- : public ConcreteOperator {}; ++ : public ConcreteOperator { ++ ~AShrOperator(); // DO NOT IMPLEMENT ++}; + class LShrOperator +- : public ConcreteOperator {}; ++ : public ConcreteOperator { ++ ~LShrOperator(); // DO NOT IMPLEMENT ++}; + + + + class GEPOperator + : public ConcreteOperator { ++ ~GEPOperator(); // DO NOT IMPLEMENT ++ + enum { + IsInBounds = (1 << 0) + }; +-- +1.7.6.4 + diff --git a/llvm.spec b/llvm.spec index 94c2647..b2ada29 100644 --- a/llvm.spec +++ b/llvm.spec @@ -15,7 +15,7 @@ Name: llvm Version: 2.9 -Release: 3%{?dist} +Release: 4%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -32,6 +32,9 @@ Patch0: llvm-2.6-timestamp.patch # clang link failure if system GCC version is unknown # http://llvm.org/bugs/show_bug.cgi?id=8897 Patch1: clang-2.9-add_gcc_vers.patch +# Operator.h incompatibility with GCC 4.6 in C++0x mode +# http://llvm.org/bugs/show_bug.cgi?id=9869 +Patch2: llvm-2.9-PR9869_operator_destructor.patch BuildRequires: bison BuildRequires: chrpath @@ -214,6 +217,7 @@ mv clang-%{version}%{?prerel} tools/clang # llvm patches %patch0 -p1 -b .timestamp +%patch2 -p2 -b .pr9869_operator_destructor # clang patches pushd tools/clang @@ -462,6 +466,9 @@ exit 0 %changelog +* Fri Sep 30 2011 Michel Salim - 2.9-4 +- Apply upstream patch for Operator.h C++0x incompatibility (# 737365) + * Sat Aug 6 2011 Michel Salim - 2.9-3 - Disable LLVM test suite on ppc64 architecture (# 728604) - Disable clang test suite on ppc* architectures (-)