Open Quuxplusone opened 15 years ago
Attached ginit.bc
(664 bytes, application/octet-stream): bugpoint-reduced-simplified.bc
I'm tempted to say bugpoint is at fault here; we don't have a debug info verifier, but it appears the debug info is invalid.
Subregion is external, thus DbgGV->hasInitializer() = false (DebugInfo.cpp:108)
which makes that TAG is improper (0 != RequiredTag(46)).
In DIDescriptor::DIDescriptor (DebugInfo.cpp) we can see the condition:
82 if (GV && getTag() != RequiredTag)
83 DbgGV = 0;
which makes isNull() = true.
Is this still a problem with the mdnodification of debug info?
(In reply to comment #4)
> Is this still a problem with the mdnodification of debug info?
>
No in the sense that bugpoint doesn't remove metadata and leave the dbginst
behind, Yes in the sense that the attached malformed .bc still crashes opt.
opt -verify doesn't catch that this is an invalid.bc, and opt -inline still
crashes on that malformed .bc:
opt: /home/edwin/llvm2.6/llvm-2.6/lib/Transforms/Utils/InlineFunction.cpp:218:
const llvm::DbgRegionEndInst* findFnRegionEndMarker(const llvm::Function*):
Assertion `SP.isNull() == false && "Invalid llvm.dbg.func.start"' failed.
ginit.bc
(664 bytes, application/octet-stream)