Magellan Linux

Contents of /trunk/llvm/patches/llvm-2.9-PR9869-operator-destructor.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1553 - (show annotations) (download)
Tue Nov 8 10:00:12 2011 UTC (12 years, 5 months ago) by niro
File size: 2627 byte(s)
added llvm fixes
1 From 6a61834d1c41971f80669a0484f1a0d2d8a1c286 Mon Sep 17 00:00:00 2001
2 From: Eli Friedman <eli.friedman@gmail.com>
3 Date: Sun, 8 May 2011 01:59:22 +0000
4 Subject: [PATCH] PR9869: Add explicit destructor declarations to Operator
5 subclasses, to allow compiling Operator.h with gcc 4.6 in
6 C++0x mode.
7
8 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131062 91177308-0d34-0410-b5e6-96231b3b80d8
9 ---
10 include/llvm/Operator.h | 34 ++++++++++++++++++++++++++--------
11 1 files changed, 26 insertions(+), 8 deletions(-)
12
13 diff --git a/include/llvm/Operator.h b/include/llvm/Operator.h
14 index ff2a0ad..e9aa499 100644
15 --- a/include/llvm/Operator.h
16 +++ b/include/llvm/Operator.h
17 @@ -186,28 +186,46 @@ public:
18 };
19
20 class AddOperator
21 - : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Add> {};
22 + : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Add> {
23 + ~AddOperator(); // DO NOT IMPLEMENT
24 +};
25 class SubOperator
26 - : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Sub> {};
27 + : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Sub> {
28 + ~SubOperator(); // DO NOT IMPLEMENT
29 +};
30 class MulOperator
31 - : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {};
32 + : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {
33 + ~MulOperator(); // DO NOT IMPLEMENT
34 +};
35 class ShlOperator
36 - : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Shl> {};
37 + : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Shl> {
38 + ~ShlOperator(); // DO NOT IMPLEMENT
39 +};
40
41
42 class SDivOperator
43 - : public ConcreteOperator<PossiblyExactOperator, Instruction::SDiv> {};
44 + : public ConcreteOperator<PossiblyExactOperator, Instruction::SDiv> {
45 + ~SDivOperator(); // DO NOT IMPLEMENT
46 +};
47 class UDivOperator
48 - : public ConcreteOperator<PossiblyExactOperator, Instruction::UDiv> {};
49 + : public ConcreteOperator<PossiblyExactOperator, Instruction::UDiv> {
50 + ~UDivOperator(); // DO NOT IMPLEMENT
51 +};
52 class AShrOperator
53 - : public ConcreteOperator<PossiblyExactOperator, Instruction::AShr> {};
54 + : public ConcreteOperator<PossiblyExactOperator, Instruction::AShr> {
55 + ~AShrOperator(); // DO NOT IMPLEMENT
56 +};
57 class LShrOperator
58 - : public ConcreteOperator<PossiblyExactOperator, Instruction::LShr> {};
59 + : public ConcreteOperator<PossiblyExactOperator, Instruction::LShr> {
60 + ~LShrOperator(); // DO NOT IMPLEMENT
61 +};
62
63
64
65 class GEPOperator
66 : public ConcreteOperator<Operator, Instruction::GetElementPtr> {
67 + ~GEPOperator(); // DO NOT IMPLEMENT
68 +
69 enum {
70 IsInBounds = (1 << 0)
71 };
72 --
73 1.7.6.4
74