[llvm] r186634 - Debug Info: enable verifying by default and disable testing cases that fail.

Eric Christopher echristo at gmail.com
Thu Jul 18 20:56:39 PDT 2013


Also this appears to have broken the dragonegg bots. :)

-eric

On Thu, Jul 18, 2013 at 6:08 PM, Eric Christopher <echristo at gmail.com> wrote:
>> Debug Info: enable verifying by default and disable testing cases that fail.
>>
>> 1> Use DebugInfoFinder to find debug info MDNodes.
>> 2> Add disable-debug-info-verifier to disable verifying debug info.
>> 3> Disable verifying for testing cases that fail (will update the testing cases
>>    later on).
>> 4> MDNodes generated by clang can have empty filename for TAG_inheritance and
>>    TAG_friend, so DIType::Verify is modified accordingly.
>>
>
> Cool, looks about like what I'd expected from when we discussed it.
> I'd have preferred you split out the change to verify :)
>
>> Note that DebugInfoFinder does not list all debug info MDNode.
>
> Seems like we should fix this? :)
>
>> For example, clang can generate:
>> metadata !{i32 786468}, which will fail to verify.
>
> This doesn't seem related to "not listing" all of the debug info, but
> a problem because of:
>
>> This MDNode is used by debug info but not included in DebugInfoFinder.
>> This MDNode is generated as a temporary node in DIBuilder::createFunction
>>   Value *TElts[] = { GetTagConstant(VMContext, DW_TAG_base_type) };
>>   MDNode::getTemporary(VMContext, TElts)
>>
>
> This is the "we need a temporary placeholder" problem basically.
> You'll see it in GVs, subprograms etc when we construct the CU as
> well. Theoretically the verifier should catch these as "not
> important". What's actually going on here that's causing it to fail?
>
> -eric
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list