Apply upstream patch for Operator.h C++0x incompatibility (# 737365)

This commit is contained in:
Michel Alexandre Salim 2011-09-30 16:33:35 +02:00
parent 03709243e8
commit 3946039b09
2 changed files with 82 additions and 1 deletions

View File

@ -0,0 +1,74 @@
From 6a61834d1c41971f80669a0484f1a0d2d8a1c286 Mon Sep 17 00:00:00 2001
From: Eli Friedman <eli.friedman@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

View File

@ -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@fedoraproject.org> - 2.9-4
- Apply upstream patch for Operator.h C++0x incompatibility (# 737365)
* Sat Aug 6 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-3
- Disable LLVM test suite on ppc64 architecture (# 728604)
- Disable clang test suite on ppc* architectures (-)