about summary refs log tree commit diff
path: root/llvm_mode/split-switches-pass.so.cc
diff options
context:
space:
mode:
Diffstat (limited to 'llvm_mode/split-switches-pass.so.cc')
-rw-r--r--llvm_mode/split-switches-pass.so.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/llvm_mode/split-switches-pass.so.cc b/llvm_mode/split-switches-pass.so.cc
index 1341c7f9..12be8a95 100644
--- a/llvm_mode/split-switches-pass.so.cc
+++ b/llvm_mode/split-switches-pass.so.cc
@@ -48,7 +48,11 @@ namespace {
 #if __clang_major__ >= 4
       StringRef getPassName() const override {
 #else
+ #ifndef __GNUG__
       const char * getPassName() const override {
+ #else
+      StringRef getPassName() const override {
+ #endif
 #endif
         return "splits switch constructs";
       }
@@ -254,8 +258,12 @@ bool SplitSwitchesTransform::splitSwitches(Module &M) {
     /* Prepare cases vector. */
     CaseVector Cases;
     for (SwitchInst::CaseIt i = SI->case_begin(), e = SI->case_end(); i != e; ++i)
-#if __clang_major__ < 7
+#if __clang_major__ < 5
+ #ifndef __GNUG__
       Cases.push_back(CaseExpr(i.getCaseValue(), i.getCaseSuccessor()));
+ #else
+      Cases.push_back(CaseExpr(i->getCaseValue(), i->getCaseSuccessor()));
+ #endif
 #else
       Cases.push_back(CaseExpr(i->getCaseValue(), i->getCaseSuccessor()));
 #endif