diff options
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp | 6 | 
1 files changed, 2 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp index c991bae93ba..73b75797d6b 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp @@ -5137,10 +5137,8 @@ void SelectionDAGLowering::visitInlineAsm(CallSite CS) {      // BasicBlocks are labels, currently appearing only in asm's.      if (OpInfo.CallOperandVal) {        // Strip bitcasts, if any.  This mostly comes up for functions. -      ConstantExpr* CE = NULL; -      while ((CE = dyn_cast<ConstantExpr>(OpInfo.CallOperandVal)) && -             CE->getOpcode()==Instruction::BitCast) -        OpInfo.CallOperandVal = CE->getOperand(0); +      OpInfo.CallOperandVal = OpInfo.CallOperandVal->stripPointerCasts(); +        if (BasicBlock *BB = dyn_cast<BasicBlock>(OpInfo.CallOperandVal)) {          OpInfo.CallOperand = DAG.getBasicBlock(FuncInfo.MBBMap[BB]);        } else {  | 

