From 9fd33f249f6ad3f845cf2d0f6210d3f70b823bc4 Mon Sep 17 00:00:00 2001 From: Serge Guelton Date: Mon, 13 Nov 2017 21:55:01 +0000 Subject: [PATCH] Fix -Werror when compiling rL318083 (ter) Statically assert the result and remove a runtime comparison, a direct consequence of the optimization introduced in rL318083. llvm-svn: 318091 --- llvm/lib/IR/Value.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/llvm/lib/IR/Value.cpp b/llvm/lib/IR/Value.cpp index 5df0c6d81cfc..bfd39114b3fd 100644 --- a/llvm/lib/IR/Value.cpp +++ b/llvm/lib/IR/Value.cpp @@ -50,6 +50,7 @@ Value::Value(Type *ty, unsigned scid) : VTy(checkType(ty)), UseList(nullptr), SubclassID(scid), HasValueHandle(0), SubclassOptionalData(0), SubclassData(0), NumUserOperands(0), IsUsedByMD(false), HasName(false) { + static_assert(ConstantFirstVal == 0, "!(SubclassID < ConstantFirstVal)"); // FIXME: Why isn't this in the subclass gunk?? // Note, we cannot call isa before the CallInst has been // constructed. @@ -57,7 +58,7 @@ Value::Value(Type *ty, unsigned scid) assert((VTy->isFirstClassType() || VTy->isVoidTy() || VTy->isStructTy()) && "invalid CallInst type!"); else if (SubclassID != BasicBlockVal && - (SubclassID < ConstantFirstVal || SubclassID > ConstantLastVal)) + (/*SubclassID < ConstantFirstVal ||*/ SubclassID > ConstantLastVal)) assert((VTy->isFirstClassType() || VTy->isVoidTy()) && "Cannot create non-first-class values except for constants!"); static_assert(sizeof(Value) == 2 * sizeof(void *) + 2 * sizeof(unsigned),