From: Chris Lattner Date: Sat, 8 Jan 2005 06:24:30 +0000 (+0000) Subject: 1ULL << 64 is undefined, don't do it. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=623f70dd4c5525888aca400c27832282913b539e;p=oota-llvm.git 1ULL << 64 is undefined, don't do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19365 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 357275eb244..4ad651718f5 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -218,8 +218,9 @@ SelectionDAG::~SelectionDAG() { SDOperand SelectionDAG::getConstant(uint64_t Val, MVT::ValueType VT) { assert(MVT::isInteger(VT) && "Cannot create FP integer constant!"); // Mask out any bits that are not valid for this constant. - Val &= (1ULL << MVT::getSizeInBits(VT)) - 1; - + if (VT != MVT::i64) + Val &= ((uint64_t)1 << MVT::getSizeInBits(VT)) - 1; + SDNode *&N = Constants[std::make_pair(Val, VT)]; if (N) return SDOperand(N, 0); N = new ConstantSDNode(Val, VT);