MaskRay added a comment.

In D94391#2494531 <https://reviews.llvm.org/D94391#2494531>, @dblaikie wrote:

> In D94391#2494316 <https://reviews.llvm.org/D94391#2494316>, @MaskRay wrote:
>
>> I removed `CurLoc` from call sites and tried a stage 2 build. There is such 
>> a difference:
>>
>>   0x00062228:   DW_TAG_structure_type
>>                   DW_AT_calling_convention        (DW_CC_pass_by_value)
>>                   DW_AT_name      ("__va_list_tag")
>>                   DW_AT_byte_size (0x18)
>>                   DW_AT_decl_file 
>> ("/home/maskray/llvm/clang/tools/driver/driver.cpp")
>>                   DW_AT_decl_line (23)
>>
>> driver.cpp:23 is a `#include`. So this looks strange. The 
>> DW_AT_decl_file/DW_AT_decl_line attributes are undesired due to `CurLoc` 
>> getLineNumber.
>
> I don't understand what you're describing - could you describe it in more 
> detail/help me connect the dots?

The ObjC example `debug-info-blocks.m` is: `CurLoc` has been advanced to the 
closing brace. Then `getLineNumber` is called on `ImplicitVarParameter` and the 
code attaches the location of `}` to this implicit parameter which misses 
SourceLocation. The location is a bit arbitrary - perhaps the location of `^{` 
is better.

A worse example is that `CurLoc` moves further away and `getLineNumber` is used 
to attach the line information to a far-away structure. This may potentially 
unintentionally apply to future AST nodes.

The `DW_AT_decl_file` `__va_list_tag` example is about attaching the line of a 
`#include` to some declaration deep in the included hierarchy.

> It sounds like you're saying you removed the CurLoc fallback and then did a 
> stage 2 build of clang and found an example of worse debug info (I'm not sure 
> what file/line this struct was attributed to currently/without the change you 
> were experimenting with) - that would suggest to me that the CurLoc fallback 
> is helping, by providing a better location than the one you've mentioned here?

Clarified the description.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D94391/new/

https://reviews.llvm.org/D94391

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to