---
gcc/config/bpf/core-builtins.cc | 5 ++++-
gcc/testsuite/gcc.target/bpf/core-builtin-1.c | 16 ++++++++--------
gcc/testsuite/gcc.target/bpf/core-builtin-2.c | 3 ++-
.../gcc.target/bpf/core-builtin-exprlist-1.c | 16 ++++++++--------
4 files changed, 22 insertions(+), 18 deletions(-)
diff --git a/gcc/config/bpf/core-builtins.cc b/gcc/config/bpf/core-
builtins.cc
index cdfb356660e..fc6379cf028 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 b4f9998afb8..0706005f0e5 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 b72e2566b71..04b3f6b2652 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 8ce4a6e70de..c53daf81c5f 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 } } */