case Intrinsic::dbg_stoppoint: {
MachineDebugInfo *DebugInfo = DAG.getMachineDebugInfo();
DbgStopPointInst &SPI = cast<DbgStopPointInst>(I);
- if (DebugInfo && DebugInfo->Verify(SPI.getContext())) {
+ if (DebugInfo && SPI.getContext() && DebugInfo->Verify(SPI.getContext())) {
std::vector<SDOperand> Ops;
Ops.push_back(getRoot());
case Intrinsic::dbg_region_start: {
MachineDebugInfo *DebugInfo = DAG.getMachineDebugInfo();
DbgRegionStartInst &RSI = cast<DbgRegionStartInst>(I);
- if (DebugInfo && DebugInfo->Verify(RSI.getContext())) {
+ if (DebugInfo && RSI.getContext() && DebugInfo->Verify(RSI.getContext())) {
std::vector<SDOperand> Ops;
unsigned LabelID = DebugInfo->RecordRegionStart(RSI.getContext());
case Intrinsic::dbg_region_end: {
MachineDebugInfo *DebugInfo = DAG.getMachineDebugInfo();
DbgRegionEndInst &REI = cast<DbgRegionEndInst>(I);
- if (DebugInfo && DebugInfo->Verify(REI.getContext())) {
+ if (DebugInfo && REI.getContext() && DebugInfo->Verify(REI.getContext())) {
std::vector<SDOperand> Ops;
unsigned LabelID = DebugInfo->RecordRegionEnd(REI.getContext());
case Intrinsic::dbg_func_start: {
MachineDebugInfo *DebugInfo = DAG.getMachineDebugInfo();
DbgFuncStartInst &FSI = cast<DbgFuncStartInst>(I);
- if (DebugInfo && DebugInfo->Verify(FSI.getSubprogram())) {
+ if (DebugInfo && FSI.getSubprogram() &&
+ DebugInfo->Verify(FSI.getSubprogram())) {
std::vector<SDOperand> Ops;
unsigned LabelID = DebugInfo->RecordRegionStart(FSI.getSubprogram());
Value *DbgInfoIntrinsic::StripCast(Value *C) {
if (Value *CO = CastOperand(C)) {
- return StripCast(CO);
+ C = StripCast(CO);
} else if (GlobalVariable *GV = dyn_cast<GlobalVariable>(C)) {
if (GV->hasInitializer())
if (Value *CO = CastOperand(GV->getInitializer()))
- return StripCast(CO);
+ C = StripCast(CO);
}
- return C;
+ return dyn_cast<GlobalVariable>(C);
}
//===----------------------------------------------------------------------===//