tstellar / rpms / llvm

Forked from rpms/llvm 5 years ago
Clone
3946039
From 6a61834d1c41971f80669a0484f1a0d2d8a1c286 Mon Sep 17 00:00:00 2001
3946039
From: Eli Friedman <eli.friedman@gmail.com>
3946039
Date: Sun, 8 May 2011 01:59:22 +0000
3946039
Subject: [PATCH] PR9869: Add explicit destructor declarations to Operator
3946039
 subclasses, to allow compiling Operator.h with gcc 4.6 in
3946039
 C++0x mode.
3946039
3946039
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131062 91177308-0d34-0410-b5e6-96231b3b80d8
3946039
---
3946039
 include/llvm/Operator.h |   34 ++++++++++++++++++++++++++--------
3946039
 1 files changed, 26 insertions(+), 8 deletions(-)
3946039
3946039
diff --git a/include/llvm/Operator.h b/include/llvm/Operator.h
3946039
index ff2a0ad..e9aa499 100644
3946039
--- a/include/llvm/Operator.h
3946039
+++ b/include/llvm/Operator.h
3946039
@@ -186,28 +186,46 @@ public:
3946039
 };
3946039
 
3946039
 class AddOperator
3946039
-  : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Add> {};
3946039
+  : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Add> {
3946039
+  ~AddOperator(); // DO NOT IMPLEMENT
3946039
+};
3946039
 class SubOperator
3946039
-  : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Sub> {};
3946039
+  : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Sub> {
3946039
+  ~SubOperator(); // DO NOT IMPLEMENT
3946039
+};
3946039
 class MulOperator
3946039
-  : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {};
3946039
+  : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> {
3946039
+  ~MulOperator(); // DO NOT IMPLEMENT
3946039
+};
3946039
 class ShlOperator
3946039
-  : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Shl> {};
3946039
+  : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Shl> {
3946039
+  ~ShlOperator(); // DO NOT IMPLEMENT
3946039
+};
3946039
 
3946039
   
3946039
 class SDivOperator
3946039
-  : public ConcreteOperator<PossiblyExactOperator, Instruction::SDiv> {};
3946039
+  : public ConcreteOperator<PossiblyExactOperator, Instruction::SDiv> {
3946039
+  ~SDivOperator(); // DO NOT IMPLEMENT
3946039
+};
3946039
 class UDivOperator
3946039
-  : public ConcreteOperator<PossiblyExactOperator, Instruction::UDiv> {};
3946039
+  : public ConcreteOperator<PossiblyExactOperator, Instruction::UDiv> {
3946039
+  ~UDivOperator(); // DO NOT IMPLEMENT
3946039
+};
3946039
 class AShrOperator
3946039
-  : public ConcreteOperator<PossiblyExactOperator, Instruction::AShr> {};
3946039
+  : public ConcreteOperator<PossiblyExactOperator, Instruction::AShr> {
3946039
+  ~AShrOperator(); // DO NOT IMPLEMENT
3946039
+};
3946039
 class LShrOperator
3946039
-  : public ConcreteOperator<PossiblyExactOperator, Instruction::LShr> {};
3946039
+  : public ConcreteOperator<PossiblyExactOperator, Instruction::LShr> {
3946039
+  ~LShrOperator(); // DO NOT IMPLEMENT
3946039
+};
3946039
   
3946039
   
3946039
   
3946039
 class GEPOperator
3946039
   : public ConcreteOperator<Operator, Instruction::GetElementPtr> {
3946039
+  ~GEPOperator(); // DO NOT IMPLEMENT
3946039
+
3946039
   enum {
3946039
     IsInBounds = (1 << 0)
3946039
   };
3946039
-- 
3946039
1.7.6.4
3946039