[llvm] Apply upstream patch for Operator.h C++0x incompatibility (# 737365)
Michel Alexandre Salim
salimma at fedoraproject.org
Fri Sep 30 14:34:04 UTC 2011
commit 3946039b0988b4ae0b3f88e5ac7506873ba905db
Author: Michel Alexandre Salim <salimma at fedoraproject.org>
Date: Fri Sep 30 16:33:35 2011 +0200
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 deletions(-)
---
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 <eli.friedman at gmail.com>
+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<OverflowingBinaryOperator, Instruction::Add> {};
++ : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Add> {
++ ~AddOperator(); // DO NOT IMPLEMENT
++};
+ class SubOperator
+- : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Sub> {};
++ : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Sub> {
++ ~SubOperator(); // DO NOT IMPLEMENT
++};
+ class MulOperator
+- : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {};
++ : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {
++ ~MulOperator(); // DO NOT IMPLEMENT
++};
+ class ShlOperator
+- : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Shl> {};
++ : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Shl> {
++ ~ShlOperator(); // DO NOT IMPLEMENT
++};
+
+
+ class SDivOperator
+- : public ConcreteOperator<PossiblyExactOperator, Instruction::SDiv> {};
++ : public ConcreteOperator<PossiblyExactOperator, Instruction::SDiv> {
++ ~SDivOperator(); // DO NOT IMPLEMENT
++};
+ class UDivOperator
+- : public ConcreteOperator<PossiblyExactOperator, Instruction::UDiv> {};
++ : public ConcreteOperator<PossiblyExactOperator, Instruction::UDiv> {
++ ~UDivOperator(); // DO NOT IMPLEMENT
++};
+ class AShrOperator
+- : public ConcreteOperator<PossiblyExactOperator, Instruction::AShr> {};
++ : public ConcreteOperator<PossiblyExactOperator, Instruction::AShr> {
++ ~AShrOperator(); // DO NOT IMPLEMENT
++};
+ class LShrOperator
+- : public ConcreteOperator<PossiblyExactOperator, Instruction::LShr> {};
++ : public ConcreteOperator<PossiblyExactOperator, Instruction::LShr> {
++ ~LShrOperator(); // DO NOT IMPLEMENT
++};
+
+
+
+ class GEPOperator
+ : public ConcreteOperator<Operator, Instruction::GetElementPtr> {
++ ~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 <salimma at fedoraproject.org> - 2.9-4
+- Apply upstream patch for Operator.h C++0x incompatibility (# 737365)
+
* Sat Aug 6 2011 Michel Salim <salimma at fedoraproject.org> - 2.9-3
- Disable LLVM test suite on ppc64 architecture (# 728604)
- Disable clang test suite on ppc* architectures (-)
More information about the scm-commits
mailing list