summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Gibbs <andyg1001@hotmail.co.uk>2015-12-03 08:20:20 +0000
committerAndy Gibbs <andyg1001@hotmail.co.uk>2015-12-03 08:20:20 +0000
commit81b1a27e537fe0dd9071c49dc53b427829c4064d (patch)
treed37558259e543e481e9211a0118457b89d7d4328
parent9606d19a65254ae2a399895f7db84d788b63f926 (diff)
downloadbcm5719-llvm-81b1a27e537fe0dd9071c49dc53b427829c4064d.tar.gz
bcm5719-llvm-81b1a27e537fe0dd9071c49dc53b427829c4064d.zip
Fix class SCEVPredicate has virtual functions and accessible non-virtual destructor.
It is not enough to simply make the destructor virtual since there is a g++ 4.7 issue (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53613) that throws the error "looser throw specifier for ... overridding ~SCEVPredicate() noexcept". llvm-svn: 254592
-rw-r--r--llvm/include/llvm/Analysis/ScalarEvolution.h2
-rw-r--r--llvm/lib/Analysis/ScalarEvolution.cpp2
2 files changed, 3 insertions, 1 deletions
diff --git a/llvm/include/llvm/Analysis/ScalarEvolution.h b/llvm/include/llvm/Analysis/ScalarEvolution.h
index da8c68aa683..f674cc7ee56 100644
--- a/llvm/include/llvm/Analysis/ScalarEvolution.h
+++ b/llvm/include/llvm/Analysis/ScalarEvolution.h
@@ -183,7 +183,7 @@ namespace llvm {
protected:
SCEVPredicateKind Kind;
- ~SCEVPredicate() = default;
+ virtual ~SCEVPredicate();
SCEVPredicate(const SCEVPredicate&) = default;
SCEVPredicate &operator=(const SCEVPredicate&) = default;
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index d04028b15e2..9a0570d47f0 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -9643,6 +9643,8 @@ SCEVPredicate::SCEVPredicate(const FoldingSetNodeIDRef ID,
SCEVPredicateKind Kind)
: FastID(ID), Kind(Kind) {}
+SCEVPredicate::~SCEVPredicate() {}
+
SCEVEqualPredicate::SCEVEqualPredicate(const FoldingSetNodeIDRef ID,
const SCEVUnknown *LHS,
const SCEVConstant *RHS)
OpenPOWER on IntegriCloud