From 8dc6ba9a12c04444196c8231833a55b0630d2838 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 14 Nov 2003 06:38:46 +0000 Subject: [PATCH] Fix PR 110: the constant folding code assumes that if something is not a constant expression, but is of (for example) ubyte type, then it is a ConstantUInt. This was not true for placeholders. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9994 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Bytecode/Reader/ReaderInternals.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/Bytecode/Reader/ReaderInternals.h b/lib/Bytecode/Reader/ReaderInternals.h index 81ccde97fff..c75c6557648 100644 --- a/lib/Bytecode/Reader/ReaderInternals.h +++ b/lib/Bytecode/Reader/ReaderInternals.h @@ -14,7 +14,7 @@ #ifndef READER_INTERNALS_H #define READER_INTERNALS_H -#include "llvm/Constant.h" +#include "llvm/Constants.h" #include "llvm/DerivedTypes.h" #include "llvm/Function.h" #include "llvm/ModuleProvider.h" @@ -201,10 +201,8 @@ public: unsigned getID() { return ID; } }; -struct ConstantPlaceHolderHelper : public Constant { - ConstantPlaceHolderHelper(const Type *Ty) - : Constant(Ty) {} - virtual bool isNullValue() const { return false; } +struct ConstantPlaceHolderHelper : public ConstantExpr { + ConstantPlaceHolderHelper(const Type *Ty) : ConstantExpr(Instruction::UserOp1, Constant::getNullValue(Ty), Ty) {} }; typedef PlaceholderDef ConstPHolder;