[llvm-dev] aarch64 does not emit DW_AT_Location

kamlesh kumar via llvm-dev llvm-dev at lists.llvm.org
Tue Jan 21 04:17:21 PST 2020


Hi Momchil,
I am using something like this and we do not get Location information.

#include<stdio.h>
typedef struct {
double a,b,c,d,e;
}mystruct;

void foo(mystruct ms){
printf("%llu\n",(unsigned long long) &ms);
}




On Tue, Jan 21, 2020 at 5:33 PM Momchil Velikov <momchil.velikov at gmail.com>
wrote:

> Hi Kamlesh,
>
> Does it also happen when the parameters are used? From what I quickly
> tried, if the parameter is used, clang emits
> the location, as expected, e.g. `(DW_OP_breg0 (x0): 0)`
>
> On Tue, Jan 21, 2020 at 11:55 AM kamlesh kumar via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>>
>> Hi Devs,
>> debug info emitted by llvm does not contain DW_AT_Location for Formal
>> parameter
>> if it is an aggregate like below case
>> 1) aggregate contain more than 4 homogeneous and size more than 128 bits
>> i.e.
>> typedef struct{
>> int a,b,c,d,e;
>> }mystruct;
>> void foo(mystruct ms){
>> }
>>
>> 2) aggregate contain hetrogeneous type and size more than 128 bits.
>> i.e.
>> typedef struct{
>> int a,b;
>> float c,d,e;
>> }mystruct;
>> void foo(mystruct ms){
>>
>> }
>>
>> This occur only when aarch64 is used, not with arm and x86.
>> like to know community thoughts wether this can be considered as bug or it
>> 's an abi restriction.
>>
>>
>> ./kamlesh
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
>
> --
> Compiler scrub, Arm
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200121/6fb8cf53/attachment.html>


More information about the llvm-dev mailing list