From: Daniel Dunbar Date: Tue, 8 Dec 2009 21:12:32 +0000 (+0000) Subject: Update CGExprConstant for change to emit padding values as undef. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=88b172cd206aa94f8eab071787f4a7ec2442c407;p=clang Update CGExprConstant for change to emit padding values as undef. - This fixes 2003-05-21-BitfieldHandling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90876 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGExprConstant.cpp b/lib/CodeGen/CGExprConstant.cpp index 9289f78d55..d428983f01 100644 --- a/lib/CodeGen/CGExprConstant.cpp +++ b/lib/CodeGen/CGExprConstant.cpp @@ -167,7 +167,11 @@ class ConstStructBuilder { } // Or in the bits that go into the previous byte. - Tmp |= cast(Elements.back())->getValue(); + if (llvm::ConstantInt *Val = dyn_cast(Elements.back())) + Tmp |= Val->getValue(); + else + assert(isa(Elements.back())); + Elements.back() = llvm::ConstantInt::get(CGM.getLLVMContext(), Tmp); if (FitsCompletelyInPreviousByte)