diff --git a/gcc/config/bpf/core-builtins.cc b/gcc/config/bpf/core-builtins.cc index d4aca38d9381bd255fd9af617df84018dce68939..152da94a9761644398b68dd137a3c3a99e86423d 100644 --- a/gcc/config/bpf/core-builtins.cc +++ b/gcc/config/bpf/core-builtins.cc @@ -698,10 +698,13 @@ compute_field_expr (tree node, unsigned int *accessors, access_node, false, callback); return n; + case VAR_DECL: + accessors[0] = 0; + return 1; + case ADDR_EXPR: case CALL_EXPR: case SSA_NAME: - case VAR_DECL: case PARM_DECL: return 0; default: diff --git a/gcc/testsuite/gcc.target/bpf/core-builtin-1.c b/gcc/testsuite/gcc.target/bpf/core-builtin-1.c index b4f9998afb8f9b03c5292ce6e82b5cc4d1b6b997..0706005f0e5ee9f775d67307c3d0c71a99f49969 100644 --- a/gcc/testsuite/gcc.target/bpf/core-builtin-1.c +++ b/gcc/testsuite/gcc.target/bpf/core-builtin-1.c @@ -24,16 +24,16 @@ unsigned long ula[8]; unsigned long func (void) { - /* 1 */ + /* 0:1 */ int b = _(my_s.b); - /* 2 */ + /* 0:2 */ char c = _(my_s.c); - /* 2:3 */ + /* 0:2:3 */ unsigned char uc = _(my_u.uc[3]); - /* 6 */ + /* 0:6 */ unsigned long ul = _(ula[6]); return b + c + uc + ul; @@ -55,10 +55,10 @@ u_ptr (union U *pu) return x; } -/* { dg-final { scan-assembler-times "ascii \"1.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ -/* { dg-final { scan-assembler-times "ascii \"2.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ -/* { dg-final { scan-assembler-times "ascii \"2:3.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ -/* { dg-final { scan-assembler-times "ascii \"6.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii \"0:1.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii \"0:2.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii \"0:2:3.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii \"0:6.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ /* { dg-final { scan-assembler-times "ascii \"0:2.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ /* { dg-final { scan-assembler-times "ascii \"0:2:3.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ diff --git a/gcc/testsuite/gcc.target/bpf/core-builtin-2.c b/gcc/testsuite/gcc.target/bpf/core-builtin-2.c index b72e2566b71026f807f029aca3e8a70531333546..04b3f6b2652a822fc538608644bccc9c119db003 100644 --- a/gcc/testsuite/gcc.target/bpf/core-builtin-2.c +++ b/gcc/testsuite/gcc.target/bpf/core-builtin-2.c @@ -16,11 +16,12 @@ struct S foo; void func (void) { + /* 0:1:3:2 */ char *x = __builtin_preserve_access_index (&foo.u[3].c); *x = 's'; } /* { dg-final { scan-assembler-times "\[\t \]0x4000002\[\t \]+\[^\n\]*btt_info" 1 } } */ -/* { dg-final { scan-assembler-times "ascii \"1:3:2.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii \"0:1:3:2.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ /* { dg-final { scan-assembler-times "bpfcr_type" 1 } } */ diff --git a/gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-1.c b/gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-1.c index 8ce4a6e70de7e478bc6127a6db75a8ab1ad07cce..c53daf81c5fc559dc2f5a5fc7e2f8b37d96a7cc7 100644 --- a/gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-1.c +++ b/gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-1.c @@ -31,16 +31,16 @@ func (void) int ic; __builtin_preserve_access_index (({ - /* 1 */ + /* 0:1 */ b = my_s.b; - /* 2 */ + /* 0:2 */ ic = my_s.c; - /* 2:3 */ + /* 0:2:3 */ uc = my_u.uc[3]; - /* 6 */ + /* 0:6 */ ul = ula[6]; })); @@ -65,10 +65,10 @@ u_ptr (union U *pu) return x; } -/* { dg-final { scan-assembler-times "ascii \"1.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ -/* { dg-final { scan-assembler-times "ascii \"2.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ -/* { dg-final { scan-assembler-times "ascii \"2:3.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ -/* { dg-final { scan-assembler-times "ascii \"6.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii \"0:1.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii \"0:2.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii \"0:2:3.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii \"0:6.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ /* { dg-final { scan-assembler-times "ascii \"0:2.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ /* { dg-final { scan-assembler-times "ascii \"0:2:3.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */