Remove unreachable code. (replace with llvm_unreachable to help GCC where necessary)
authorDavid Blaikie <dblaikie@gmail.com>
Tue, 17 Jan 2012 04:43:56 +0000 (04:43 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Tue, 17 Jan 2012 04:43:56 +0000 (04:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148284 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Host.cpp
lib/Transforms/Scalar/ObjCARC.cpp
lib/Transforms/Utils/BasicBlockUtils.cpp
lib/Transforms/Utils/CmpInstAnalysis.cpp
lib/VMCore/ConstantsContext.h
lib/VMCore/Core.cpp
lib/VMCore/Instruction.cpp
tools/llvm-mc/llvm-mc.cpp
tools/llvm-rtdyld/llvm-rtdyld.cpp
utils/TableGen/CodeGenDAGPatterns.cpp
utils/TableGen/X86DisassemblerTables.cpp

index 3f3cdca27f0e1cc64f52b9140bb6c6f14c684d0f..0f0696438ca6f609772e47575ee63e5aff35364d 100644 (file)
@@ -61,6 +61,8 @@ static bool GetX86CpuIDAndInfo(unsigned value, unsigned *rEAX,
     *rECX = registers[2];
     *rEDX = registers[3];
     return false;
+  #else
+    return true;
   #endif
 #elif defined(i386) || defined(__i386__) || defined(__x86__) || defined(_M_IX86)
   #if defined(__GNUC__)
@@ -87,9 +89,14 @@ static bool GetX86CpuIDAndInfo(unsigned value, unsigned *rEAX,
       mov   dword ptr [esi],edx
     }
     return false;
+// pedantic #else returns to appease -Wunreachable-code (so we don't generate
+// postprocessed code that looks like "return true; return false;")
+  #else
+    return true;
   #endif
-#endif
+#else
   return true;
+#endif
 }
 
 static void DetectX86FamilyModel(unsigned EAX, unsigned &Family,
index 756e56579d82dca6c97b7b4e8a78c87abe80482d..03b287f17550442552150c1e5580a9101385c961 100644 (file)
@@ -1886,7 +1886,6 @@ Depends(DependenceKind Flavor, Instruction *Inst, const Value *Arg,
   }
 
   llvm_unreachable("Invalid dependence flavor");
-  return true;
 }
 
 /// FindDependencies - Walk up the CFG from StartPos (which is in StartBB) and
index ef4a47361e2e4306010c48692461022cda899328..3859a1aec4a745f62bc9e70a0a03e3791e53ff16 100644 (file)
@@ -249,7 +249,6 @@ unsigned llvm::GetSuccessorNumber(BasicBlock *BB, BasicBlock *Succ) {
     if (Term->getSuccessor(i) == Succ)
       return i;
   }
-  return 0;
 }
 
 /// SplitEdge -  Split the edge connecting specified block. Pass P must 
index e336e9a5a2c24bc1cea3803efaaa4ff9422e3b9e..8983e0c4f05785de55ac79a48e59795934b1a5dd 100644 (file)
@@ -59,7 +59,6 @@ unsigned llvm::getICmpCode(const ICmpInst *ICI, bool InvertPred) {
       // True -> 7
     default:
       llvm_unreachable("Invalid ICmp predicate!");
-      return 0;
   }
 }
 
index cfcdf134ab84078ad3532c30c3eccf896714f30c..4ee4296d448915273ff0b528ee40b09b3b0b6e23 100644 (file)
@@ -458,7 +458,6 @@ struct ConstantCreator<ConstantExpr, Type, ExprMapKeyType> {
       return new CompareConstantExpr(Ty, Instruction::FCmp, V.subclassdata,
                                      V.operands[0], V.operands[1]);
     llvm_unreachable("Invalid ConstantExpr!");
-    return 0;
   }
 };
 
index 35315df220fae190c98166c23b37dc1fb42de4f7..82edb3a4e66caf4b5fac474aa7b1d778c81cd4a7 100644 (file)
@@ -1092,8 +1092,7 @@ LLVMLinkage LLVMGetLinkage(LLVMValueRef Global) {
     return LLVMCommonLinkage;
   }
 
-  // Should never get here.
-  return static_cast<LLVMLinkage>(0);
+  llvm_unreachable("Make GCC's unreachability happy");
 }
 
 void LLVMSetLinkage(LLVMValueRef Global, LLVMLinkage Linkage) {
index 8c8fbf9acd46ece8e613802d4ee31f74de3161ac..e0e07099c5242ed8cc8df8a9294c04d789148055 100644 (file)
@@ -166,8 +166,6 @@ const char *Instruction::getOpcodeName(unsigned OpCode) {
 
   default: return "<Invalid operator> ";
   }
-
-  return 0;
 }
 
 /// isIdenticalTo - Return true if the specified instruction is exactly
index 25bc443a8171f6bf0056f8e67b351aa4bca5757d..ccb0cbd50433a2e49b6a066b5ba9e1b68e093b05 100644 (file)
@@ -526,6 +526,4 @@ int main(int argc, char **argv) {
   case AC_EDisassemble:
     return DisassembleInput(argv[0], true);
   }
-
-  return 0;
 }
index 9fec7c464c5dbb8cfa1e89c383f6c7c603aca18e..990582d7f45957e29c732d22efa44e385c1ed9cb 100644 (file)
@@ -163,6 +163,4 @@ int main(int argc, char **argv) {
   case AC_Execute:
     return executeInput();
   }
-
-  return 0;
 }
index ac55320448b0092176431b8ec574470c5d66bed8..3880133d8f223c2a2d3b976bd1a6e7510e75880b 100644 (file)
@@ -18,6 +18,7 @@
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Support/Debug.h"
+#include "llvm/Support/ErrorHandling.h"
 #include <set>
 #include <algorithm>
 using namespace llvm;
@@ -912,7 +913,7 @@ bool SDTypeConstraint::ApplyTypeConstraint(TreePatternNode *N,
       EnforceVectorSubVectorTypeIs(NodeToApply->getExtType(ResNo), TP);
   }
   }
-  return false;
+  llvm_unreachable("Make GCC's unreachability happy");
 }
 
 //===----------------------------------------------------------------------===//
index 61e94521f598639e36c0702dd5adca20338f38c3..1336eed80153046a42e912deed299de502a543ad 100644 (file)
@@ -102,7 +102,6 @@ static inline bool inheritsFrom(InstructionContext child,
     return false;
   default:
     llvm_unreachable("Unknown instruction class");
-    return false;
   }
 }