int *foo __attribute__((btf_decl_tag ("my_foo")));
-/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_decl_tag\"" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_const_value: \"my_foo\"" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 1 } } */
+/* { dg-final { scan-assembler-times {(?n)DIE \(.*\) DW_TAG_GNU_annotation} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)( DW_AT_name: "btf_decl_tag"|"btf_decl_tag..".*DW_AT_name)} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)( DW_AT_const_value: "my_foo"|"my_foo..".*DW_AT_const_value)} 1 } } */
+/* { dg-final { scan-assembler-times { DW_AT_GNU_annotation} 1 } } */
int * __attribute__((btf_type_tag("__user"))) ptr;
-/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_const_value: \"__user\"" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 1 } } */
+/* { dg-final { scan-assembler-times {(?n)DIE \(.*\) DW_TAG_GNU_annotation} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)( DW_AT_name: "btf_type_tag"| "btf_type_tag..".*DW_AT_name)} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)( DW_AT_const_value: "__user"|"__user..".*DW_AT_const_value)} 1 } } */
+/* { dg-final { scan-assembler-times { DW_AT_GNU_annotation} 1 } } */
/* Ideally, verify that AT_GNU_annotation in the subprogram DIE refers to
the decl_tag annotation DIE, and the AT_GNU_annotation in the return
type refers to the type_tag... */
-/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_decl_tag\"" 1 } } */
+/* { dg-final { scan-assembler-times {(?n)( DW_AT_name: "btf_type_tag"|"btf_type_tag..".*DW_AT_name)} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)( DW_AT_name: "btf_decl_tag"|"btf_decl_tag..".*DW_AT_name)} 1 } } */
/* Only 2 DW_TAG_GNU_annotation DIEs should be generated, one each for "tag1"
and "tag2", and they should be reused. */
-/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 2 } } */
-/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 2 } } */
-/* { dg-final { scan-assembler-times " DW_AT_const_value: \"tag1\"" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_const_value: \"tag2\"" 1 } } */
+/* { dg-final { scan-assembler-times {(?n)DIE \(.*\) DW_TAG_GNU_annotation} 2 } } */
+/* { dg-final { scan-assembler-times { DW_AT_name: "btf_type_tag"} 2 } } */
+/* { dg-final { scan-assembler-times {(?n)( DW_AT_const_value: "tag1"|"tag1..".* DW_AT_const_value)} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)( DW_AT_const_value: "tag2"|"tag2..".*DW_AT_const_value)} 1 } } */
/* Each attribute-ed type shall refer via DW_AT_GNU_annotation to the
appropriate annotation DIE, including the annotation DIE for "tag2" which
is always chained to the DIE for "tag1" in this construction. */
-/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 5 } } */
+/* { dg-final { scan-assembler-times { DW_AT_GNU_annotation} 5 } } */
volatile union U volatile_u;
/* One annotation DIE may be shared by all three annotated types. */
-/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 3 } } */
+/* { dg-final { scan-assembler-times {(?n)DIE \(.*\) DW_TAG_GNU_annotation} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)( DW_AT_name: "btf_type_tag"|"btf_type_tag..".* DW_AT_name)} 1 } } */
+/* { dg-final { scan-assembler-times { DW_AT_GNU_annotation} 3 } } */
int arr[8] __attribute__((btf_type_tag("tagged_arr")));
-/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_const_value: \"tagged_arr\"" 1 } } */
-/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 1 } } */
+/* { dg-final { scan-assembler-times {(?n)DIE \(.*\) DW_TAG_GNU_annotation} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)( DW_AT_name: "btf_type_tag"|"btf_type_tag..".*)} 1 } } */
+/* { dg-final { scan-assembler-times {(?n)( DW_AT_const_value: "tagged_arr"|"tagged_arr..".*DW_AT_const_value)} 1 } } */
+/* { dg-final { scan-assembler-times { DW_AT_GNU_annotation} 1 } } */