From: Bill Wendling Date: Wed, 15 Feb 2012 09:14:08 +0000 (+0000) Subject: Strip the pointer casts from the constants here. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4a1ff2fb3ecaa2576ecf9ed84816b174c235ac1d;p=oota-llvm.git Strip the pointer casts from the constants here. The c'tor list is stored as a list of 'void ()*'s, so all of the functions are bitcast to that. However, the dyn_cast doesn't automagically look through bitcasts. Do that for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150572 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/ARMAsmPrinter.cpp b/lib/Target/ARM/ARMAsmPrinter.cpp index 234cf5166fb..2297390f664 100644 --- a/lib/Target/ARM/ARMAsmPrinter.cpp +++ b/lib/Target/ARM/ARMAsmPrinter.cpp @@ -302,7 +302,7 @@ void ARMAsmPrinter::EmitXXStructor(const Constant *CV) { uint64_t Size = TM.getTargetData()->getTypeAllocSize(CV->getType()); assert(Size && "C++ constructor pointer had zero size!"); - const GlobalValue *GV = dyn_cast(CV); + const GlobalValue *GV = dyn_cast(CV->stripPointerCasts()); assert(GV && "C++ constructor pointer was not a GlobalValue!"); const MCExpr *E = MCSymbolRefExpr::Create(Mang->getSymbol(GV),