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.
<rdar://problem/10813350>

llvm-svn: 150572
This commit is contained in:
Bill Wendling 2012-02-15 09:14:08 +00:00
parent 24e51b7f29
commit dfb45f4d68
1 changed files with 1 additions and 1 deletions

View File

@ -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<GlobalValue>(CV);
const GlobalValue *GV = dyn_cast<GlobalValue>(CV->stripPointerCasts());
assert(GV && "C++ constructor pointer was not a GlobalValue!");
const MCExpr *E = MCSymbolRefExpr::Create(Mang->getSymbol(GV),