Successfully identified regression in *gcc* in CI configuration tcwg_gnu/gnu-master-arm-check_bootstrap. So far, this commit has regressed CI configurations: - tcwg_gnu/gnu-master-arm-check_bootstrap
Culprit: <cut> commit c1f76af469388d3df815c82de566387da5ae000f Author: Indu Bhagat indu.bhagat@oracle.com Date: Thu May 20 11:19:04 2021 -0700
CTF/BTF testsuites
This commit adds a new testsuite for the CTF debug format.
2021-06-28 Indu Bhagat indu.bhagat@oracle.com David Faust david.faust@oracle.com
gcc/testsuite/
* lib/gcc-dg.exp (gcc-dg-frontend-supports-ctf): New procedure. (gcc-dg-debug-runtest): Add -gctf support. * gcc.dg/debug/btf/btf-1.c: New test. * gcc.dg/debug/btf/btf-2.c: Likewise. * gcc.dg/debug/btf/btf-anonymous-struct-1.c: Likewise. * gcc.dg/debug/btf/btf-anonymous-union-1.c: Likewise. * gcc.dg/debug/btf/btf-array-1.c: Likewise. * gcc.dg/debug/btf/btf-bitfields-1.c: Likewise. * gcc.dg/debug/btf/btf-bitfields-2.c: Likewise. * gcc.dg/debug/btf/btf-bitfields-3.c: Likewise. * gcc.dg/debug/btf/btf-cvr-quals-1.c: Likewise. * gcc.dg/debug/btf/btf-enum-1.c: Likewise. * gcc.dg/debug/btf/btf-forward-1.c: Likewise. * gcc.dg/debug/btf/btf-function-1.c: Likewise. * gcc.dg/debug/btf/btf-function-2.c: Likewise. * gcc.dg/debug/btf/btf-int-1.c: Likewise. * gcc.dg/debug/btf/btf-pointers-1.c: Likewise. * gcc.dg/debug/btf/btf-struct-1.c: Likewise. * gcc.dg/debug/btf/btf-typedef-1.c: Likewise. * gcc.dg/debug/btf/btf-union-1.c: Likewise. * gcc.dg/debug/btf/btf-variables-1.c: Likewise. * gcc.dg/debug/btf/btf.exp: Likewise. * gcc.dg/debug/ctf/ctf-1.c: Likewise. * gcc.dg/debug/ctf/ctf-2.c: Likewise. * gcc.dg/debug/ctf/ctf-anonymous-struct-1.c: Likewise. * gcc.dg/debug/ctf/ctf-anonymous-union-1.c: Likewise. * gcc.dg/debug/ctf/ctf-array-1.c: Likewise. * gcc.dg/debug/ctf/ctf-array-2.c: Likewise. * gcc.dg/debug/ctf/ctf-array-3.c: Likewise. * gcc.dg/debug/ctf/ctf-array-4.c: Likewise. * gcc.dg/debug/ctf/ctf-attr-mode-1.c: Likewise. * gcc.dg/debug/ctf/ctf-attr-used-1.c: Likewise. * gcc.dg/debug/ctf/ctf-bitfields-1.c: Likewise. * gcc.dg/debug/ctf/ctf-bitfields-2.c: Likewise. * gcc.dg/debug/ctf/ctf-bitfields-3.c: Likewise. * gcc.dg/debug/ctf/ctf-bitfields-4.c: Likewise. * gcc.dg/debug/ctf/ctf-complex-1.c: Likewise. * gcc.dg/debug/ctf/ctf-cvr-quals-1.c: Likewise. * gcc.dg/debug/ctf/ctf-cvr-quals-2.c: Likewise. * gcc.dg/debug/ctf/ctf-cvr-quals-3.c: Likewise. * gcc.dg/debug/ctf/ctf-cvr-quals-4.c: Likewise. * gcc.dg/debug/ctf/ctf-enum-1.c: Likewise. * gcc.dg/debug/ctf/ctf-enum-2.c: Likewise. * gcc.dg/debug/ctf/ctf-file-scope-1.c: Likewise. * gcc.dg/debug/ctf/ctf-float-1.c: Likewise. * gcc.dg/debug/ctf/ctf-forward-1.c: Likewise. * gcc.dg/debug/ctf/ctf-forward-2.c: Likewise. * gcc.dg/debug/ctf/ctf-func-index-1.c: Likewise. * gcc.dg/debug/ctf/ctf-function-pointers-1.c: Likewise. * gcc.dg/debug/ctf/ctf-function-pointers-2.c: Likewise. * gcc.dg/debug/ctf/ctf-function-pointers-3.c: Likewise. * gcc.dg/debug/ctf/ctf-functions-1.c: Likewise. * gcc.dg/debug/ctf/ctf-int-1.c: Likewise. * gcc.dg/debug/ctf/ctf-objt-index-1.c: Likewise. * gcc.dg/debug/ctf/ctf-pointers-1.c: Likewise. * gcc.dg/debug/ctf/ctf-pointers-2.c: Likewise. * gcc.dg/debug/ctf/ctf-preamble-1.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-1.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-2.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-3.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-4.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-5.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-6.c: Likewise. * gcc.dg/debug/ctf/ctf-str-table-1.c: Likewise. * gcc.dg/debug/ctf/ctf-struct-1.c: Likewise. * gcc.dg/debug/ctf/ctf-struct-2.c: Likewise. * gcc.dg/debug/ctf/ctf-struct-array-1.c: Likewise. * gcc.dg/debug/ctf/ctf-struct-pointer-1.c: Likewise. * gcc.dg/debug/ctf/ctf-struct-pointer-2.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-1.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-2.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-3.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-struct-1.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-struct-2.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-struct-3.c: Likewise. * gcc.dg/debug/ctf/ctf-union-1.c: Likewise. * gcc.dg/debug/ctf/ctf-variables-1.c: Likewise. * gcc.dg/debug/ctf/ctf-variables-2.c: Likewise. * gcc.dg/debug/ctf/ctf.exp: Likewise. </cut>
Results regressed to (for first_bad == c1f76af469388d3df815c82de566387da5ae000f) # reset_artifacts: -10 # build_abe bootstrap: 0 # build_abe check_bootstrap: 1 # # Comparing directories # # REFERENCE: base-artifacts/sumfiles # # CURRENT: /home/tcwg-buildslave/workspace/tcwg_gnu_3/artifacts/build-c1f76af469388d3df815c82de566387da5ae000f/sumfiles # # # Comparing 12 common sum files: # g++.sum # gcc.sum # gfortran.sum # go.sum # gotools.sum # libatomic.sum # libffi.sum # libgo.sum # libgomp.sum # libitm.sum # libstdc++.sum # objc.sum # Comparing: # REFERENCE:/tmp/gxx-sum1.3784533 # CURRENT: /tmp/gxx-sum2.3784533 # # ` +---------+---------+ # o RUN STATUS: | REF | RES | # +------------------------------------------+---------+---------+ # | Passes [PASS] | 460026 | 460487 | # | Unexpected fails [FAIL] | 192 | 195 | # | Errors [ERROR] | 0 | 0 | # | Unexpected passes [XPASS] | 15 | 15 | # | Expected fails [XFAIL] | 2737 | 2737 | # | Unresolved [UNRESOLVED] | 104 | 104 | # | Unsupported [UNSUPPORTED] | 22890 | 22896 | # | Untested [UNTESTED] | 10 | 10 | # +------------------------------------------+---------+---------+ # # REF PASS ratio: 0.952238 # RES PASS ratio: 0.952266 # # o REGRESSIONS: # +------------------------------------------+---------+ # | PASS now FAIL [PASS => FAIL] | 1 | # | FAIL appears [ => FAIL] | 2 | # +------------------------------------------+---------+ # | TOTAL_REGRESSIONS | 3 | # +------------------------------------------+---------+ # # - PASS now FAIL [PASS => FAIL]: # # Executed from: g++.dg/dg.exp # g++:c-c++-common/missing-header-1.c -std=gnu++14 (test for excess errors) # # # - FAIL appears [ => FAIL]: # # Executed from: g++.dg/dg.exp # g++:c-c++-common/missing-header-1.c -std=gnu++14 expected multiline pattern lines 5-7 not found: "\s*#include "this-file-does-not-exist.h".*\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~~\ncompilation terminated..*\n" # Executed from: gcc.dg/debug/ctf/ctf.exp # gcc:gcc.dg/debug/ctf/ctf-skip-types-2.c (test for excess errors) # # # # o IMPROVEMENTS TO BE CHECKED: # +------------------------------------------+---------+ # | PASS disappears [PASS => ] | 1 | # | New PASS [ => PASS] | 463 | # | UNSUPPORTED appears [ =>UNSUP] | 6 | # +------------------------------------------+---------+ # | TOTAL_IMPROVEMENTS_TO_BE_CHECKED | 470 | # +------------------------------------------+---------+ # # - PASS disappears [PASS => ]: # # Executed from: g++.dg/dg.exp # g++:c-c++-common/missing-header-1.c -std=gnu++14 expected multiline pattern lines 5-7 was found: "\s*#include "this-file-does-not-exist.h".*\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~~\ncompilation terminated..*\n" # # # - New PASS [ => PASS]: # # Executed from: g++.dg/dg.exp # g++:g++.dg/ipa/ipa-sra-4.C -std=gnu++14 (test for excess errors) # g++:g++.dg/ipa/ipa-sra-4.C -std=gnu++17 (test for excess errors) # g++:g++.dg/ipa/ipa-sra-4.C -std=gnu++2a (test for excess errors) # Executed from: gcc.dg/debug/debug.exp # gcc:gcc.dg/debug/20000503-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/20010207-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/20011223-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/20020104-2.c -gctf (test for excess errors) # gcc:gcc.dg/debug/20020220-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/20020220-1.c -gctf execution test # gcc:gcc.dg/debug/20020224-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/20020327-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/20030605-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/20031231-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/20041023-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/20041219-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/20050907-1.c -gctf (test for excess errors) # Executed from: gcc.dg/debug/btf/btf.exp # gcc:gcc.dg/debug/btf/btf-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-2.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-2.c scan-assembler-times 0.*btf_flags 1 # gcc:gcc.dg/debug/btf/btf-2.c scan-assembler-times 0x1.*btf_version 1 # gcc:gcc.dg/debug/btf/btf-2.c scan-assembler-times 0xeb9f.*btf_magic 1 # gcc:gcc.dg/debug/btf/btf-anonymous-struct-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-anonymous-struct-1.c scan-assembler-times [\t ]0[\t ]+[^\n]*btt_name 1 # gcc:gcc.dg/debug/btf/btf-anonymous-struct-1.c scan-assembler-times [\t ]0x4000001[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-anonymous-struct-1.c scan-assembler-times [\t ]0x4000002[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-anonymous-union-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-anonymous-union-1.c scan-assembler-times [\t ]0[\t ]+[^\n]*btt_name 1 # gcc:gcc.dg/debug/btf/btf-anonymous-union-1.c scan-assembler-times [\t ]0x4000001[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-anonymous-union-1.c scan-assembler-times [\t ]0x5000002[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-array-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-array-1.c scan-assembler-times 0x3000000[\t ]+[^\n]*btt_info 5 # gcc:gcc.dg/debug/btf/btf-array-1.c scan-assembler-times [\t ]0[\t ]+[^\n]*bta_nelems 1 # gcc:gcc.dg/debug/btf/btf-array-1.c scan-assembler-times [\t ]0x2[\t ]+[^\n]*bta_nelems 2 # gcc:gcc.dg/debug/btf/btf-array-1.c scan-assembler-times [\t ]0x3[\t ]+[^\n]*bta_nelems 1 # gcc:gcc.dg/debug/btf/btf-array-1.c scan-assembler-times [\t ]0x5[\t ]+[^\n]*bta_nelems 1 # gcc:gcc.dg/debug/btf/btf-bitfields-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-bitfields-1.c scan-assembler-times [\t ]0x13000040[\t ]+[^\n]*btm_offset 1 # gcc:gcc.dg/debug/btf/btf-bitfields-1.c scan-assembler-times [\t ]0x700002a[\t ]+[^\n]*btm_offset 1 # gcc:gcc.dg/debug/btf/btf-bitfields-1.c scan-assembler-times [\t ]0x84000004[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-bitfields-1.c scan-assembler-times [\t ]0xa000020[\t ]+[^\n]*btm_offset 1 # gcc:gcc.dg/debug/btf/btf-bitfields-2.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-bitfields-2.c scan-assembler-times [\t ]0x1f000000[\t ]+[^\n]*btm_offset 1 # gcc:gcc.dg/debug/btf/btf-bitfields-2.c scan-assembler-times [\t ]0x20000020[\t ]+[^\n]*btm_offset 1 # gcc:gcc.dg/debug/btf/btf-bitfields-2.c scan-assembler-times [\t ]0x84000002[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-bitfields-2.c scan-assembler-times btm_name 2 # gcc:gcc.dg/debug/btf/btf-bitfields-3.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-bitfields-3.c scan-assembler-times [\t ]0x1[\t ]+[^\n]*btm_type 1 # gcc:gcc.dg/debug/btf/btf-bitfields-3.c scan-assembler-times [\t ]0x2[\t ]+[^\n]*btm_type 1 # gcc:gcc.dg/debug/btf/btf-bitfields-3.c scan-assembler-times [\t ]0x6000004[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-bitfields-3.c scan-assembler-times [\t ]0x84000002[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-bitfields-4.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-bitfields-4.c scan-assembler-times [\t ]0x4000003[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-cvr-quals-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-cvr-quals-1.c scan-assembler-times [\t ]0x2000000[\t ]+[^\n]*btt_info 2 # gcc:gcc.dg/debug/btf/btf-cvr-quals-1.c scan-assembler-times [\t ]0x9000000[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-cvr-quals-1.c scan-assembler-times [\t ]0xa000000[\t ]+[^\n]*btt_info 2 # gcc:gcc.dg/debug/btf/btf-cvr-quals-1.c scan-assembler-times [\t ]0xb000000[\t ]+[^\n]*btt_info 2 # gcc:gcc.dg/debug/btf/btf-cvr-quals-1.c scan-assembler-times ascii "int.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-datasec-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-datasec-1.c scan-assembler-times 0[\t ]+[^\n]*bts_offset 7 # gcc:gcc.dg/debug/btf/btf-datasec-1.c scan-assembler-times 0xf000001[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-datasec-1.c scan-assembler-times 0xf000003[\t ]+[^\n]*btt_info 2 # gcc:gcc.dg/debug/btf/btf-datasec-1.c scan-assembler-times ascii ".bss.0"[\t ]+[^\n]*btf_aux_string 1 # gcc:gcc.dg/debug/btf/btf-datasec-1.c scan-assembler-times ascii ".data.0"[\t ]+[^\n]*btf_aux_string 1 # gcc:gcc.dg/debug/btf/btf-datasec-1.c scan-assembler-times ascii ".rodata.0"[\t ]+[^\n]*btf_aux_string 1 # gcc:gcc.dg/debug/btf/btf-enum-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-enum-1.c scan-assembler-times [\t ]0x6000003[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-enum-1.c scan-assembler-times [\t ]0x6000004[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-enum-1.c scan-assembler-times ascii "IDUNNO.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-enum-1.c scan-assembler-times ascii "NO.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-enum-1.c scan-assembler-times ascii "QAD.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-enum-1.c scan-assembler-times ascii "QED.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-enum-1.c scan-assembler-times ascii "QOD.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-enum-1.c scan-assembler-times ascii "QUD.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-enum-1.c scan-assembler-times ascii "YES.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-enum-1.c scan-assembler-times bte_value 7 # gcc:gcc.dg/debug/btf/btf-forward-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-forward-1.c scan-assembler-times [\t ]0x7000000[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-forward-1.c scan-assembler-times [\t ]0x87000000[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-function-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-function-1.c scan-assembler-times [\t ]0xd000002[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-function-1.c scan-assembler-times ascii "alpha.0"[\t ]+[^\n]*btf_aux_string 1 # gcc:gcc.dg/debug/btf/btf-function-1.c scan-assembler-times ascii "bravo.0"[\t ]+[^\n]*btf_aux_string 1 # gcc:gcc.dg/debug/btf/btf-function-1.c scan-assembler-times farg_name 2 # gcc:gcc.dg/debug/btf/btf-function-1.c scan-assembler-times farg_type 2 # gcc:gcc.dg/debug/btf/btf-function-2.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-function-2.c scan-assembler-times [\t ]0[\t ]+[^\n]*farg_name 1 # gcc:gcc.dg/debug/btf/btf-function-2.c scan-assembler-times [\t ]0[\t ]+[^\n]*farg_type 1 # gcc:gcc.dg/debug/btf/btf-function-2.c scan-assembler-times [\t ]0xd000002[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-function-2.c scan-assembler-times farg_name 2 # gcc:gcc.dg/debug/btf/btf-function-2.c scan-assembler-times farg_type 2 # gcc:gcc.dg/debug/btf/btf-function-3.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-function-3.c scan-assembler-times [\t ]0[\t ]+[^\n]*farg_type 1 # gcc:gcc.dg/debug/btf/btf-function-3.c scan-assembler-times [\t ]0xd000003[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-function-3.c scan-assembler-times farg_name 3 # gcc:gcc.dg/debug/btf/btf-function-3.c scan-assembler-times farg_type 3 # gcc:gcc.dg/debug/btf/btf-int-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times [\t ]0x10000..[\t ]+[^\n]*bti_encoding 3 # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times [\t ]0x1000000[\t ]+[^\n]*btt_info 8 # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times [\t ]0x20000..[\t ]+[^\n]*bti_encoding 1 # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times [\t ]0x30000..[\t ]+[^\n]*bti_encoding 1 # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times ascii "int.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times ascii "long int.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times ascii "long unsigned int.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times ascii "short int.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times ascii "short unsigned int.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times ascii "signed char.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times ascii "unsigned char.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-int-1.c scan-assembler-times ascii "unsigned int.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-pointers-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-pointers-1.c scan-assembler-times [\t ]0x2000000[\t ]+[^\n]*btt_info 2 # gcc:gcc.dg/debug/btf/btf-pointers-1.c scan-assembler-times ascii "int.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-pointers-1.c scan-assembler-times ascii "st.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-pointers-2.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-pointers-2.c scan-assembler-times [\t ]0x1000000[\t ]+[^\n]*btt_info 0 # gcc:gcc.dg/debug/btf/btf-pointers-2.c scan-assembler-times [\t ]0x2000000[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-struct-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-struct-1.c scan-assembler-times [\t ]0x4000002[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-struct-1.c scan-assembler-times [\t ]0x4000003[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-struct-1.c scan-assembler-times btm_name 5 # gcc:gcc.dg/debug/btf/btf-struct-2.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-struct-2.c scan-assembler-times [\t ]0x4000002[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times [\t ]0x2[\t ]+[^\n]*btv_type 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times [\t ]0x3[\t ]+[^\n]*btv_type 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times [\t ]0x4[\t ]+[^\n]*btv_type 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times [\t ]0x6[\t ]+[^\n]*btv_type 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times [\t ]0x8000000[\t ]+[^\n]*btt_info 7 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times [\t ]0x8[\t ]+[^\n]*btv_type 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times [\t ]0xb[\t ]+[^\n]*btv_type 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times [\t ]0xf[\t ]+[^\n]*btv_type 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times ascii "CBAR.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times ascii "CBARP.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times ascii "arena_t.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times ascii "bar_int.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times ascii "foo_int.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times ascii "my_int.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-typedef-1.c scan-assembler-times ascii "node_t.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-union-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-union-1.c scan-assembler-times [\t ]0x5000004[\t ]+[^\n]*btt_info 1 # gcc:gcc.dg/debug/btf/btf-union-1.c scan-assembler-times btm_name 4 # gcc:gcc.dg/debug/btf/btf-variables-1.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-variables-1.c scan-assembler-times [\t ]0xe000000[\t ]+[^\n]*btv_info 6 # gcc:gcc.dg/debug/btf/btf-variables-2.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-variables-2.c scan-assembler-times [\t ]0xe000000[\t ]+[^\n]*btv_info 3 # gcc:gcc.dg/debug/btf/btf-variables-2.c scan-assembler-times ascii "baz.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-variables-2.c scan-assembler-times ascii "foo.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-variables-2.c scan-assembler-times ascii "myst.0"[\t ]+[^\n]*btf_string 1 # gcc:gcc.dg/debug/btf/btf-variables-3.c (test for excess errors) # gcc:gcc.dg/debug/btf/btf-variables-3.c scan-assembler-times [\t ]0[\t ]+[^\n]*btv_linkage 3 # gcc:gcc.dg/debug/btf/btf-variables-3.c scan-assembler-times [\t ]0x1[\t ]+[^\n]*btv_linkage 3 # gcc:gcc.dg/debug/btf/btf-variables-3.c scan-assembler-times [\t ]0xe000000[\t ]+[^\n]*btv_info 6 # Executed from: gcc.dg/debug/debug.exp # gcc:gcc.dg/debug/const-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/const-2.c -gctf (test for excess errors) # gcc:gcc.dg/debug/const-3.c -gctf scan-assembler-not dontgenerate # gcc:gcc.dg/debug/const-3.c -gctf (test for excess errors) # gcc:gcc.dg/debug/crash1.c -gctf (test for excess errors) # Executed from: gcc.dg/debug/ctf/ctf.exp # gcc:gcc.dg/debug/ctf/ctf-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-2.c scan-assembler-times 0.*CTF preamble flags 0 # gcc:gcc.dg/debug/ctf/ctf-2.c scan-assembler-times 0x4.*CTF preamble version 0 # gcc:gcc.dg/debug/ctf/ctf-2.c scan-assembler-times 0xdff2.*CTF preamble magic number 0 # gcc:gcc.dg/debug/ctf/ctf-anonymous-struct-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-anonymous-struct-1.c scan-assembler-times 0x1a000001[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-anonymous-struct-1.c scan-assembler-times 0x1a000002[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-anonymous-struct-1.c scan-assembler-times [\t ]0[\t ]+[^\n]*ctt_name 1 # gcc:gcc.dg/debug/ctf/ctf-anonymous-union-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-anonymous-union-1.c scan-assembler-times 0x1a000001[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-anonymous-union-1.c scan-assembler-times 0x1e000002[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-anonymous-union-1.c scan-assembler-times [\t ]0[\t ]+[^\n]*ctt_name 1 # gcc:gcc.dg/debug/ctf/ctf-array-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-array-1.c scan-assembler-times 0x12000000[\t ]+[^\n]*ctt_info 5 # gcc:gcc.dg/debug/ctf/ctf-array-1.c scan-assembler-times [\t ]0[\t ]+[^\n]*cta_nelems 1 # gcc:gcc.dg/debug/ctf/ctf-array-1.c scan-assembler-times [\t ]0x2[\t ]+[^\n]*cta_nelems 2 # gcc:gcc.dg/debug/ctf/ctf-array-1.c scan-assembler-times [\t ]0x3[\t ]+[^\n]*cta_nelems 1 # gcc:gcc.dg/debug/ctf/ctf-array-1.c scan-assembler-times [\t ]0x5[\t ]+[^\n]*cta_nelems 1 # gcc:gcc.dg/debug/ctf/ctf-array-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-array-2.c scan-assembler-times 0x12000000[\t ]+[^\n]*ctt_info 5 # gcc:gcc.dg/debug/ctf/ctf-array-2.c scan-assembler-times [\t ]0[\t ]+[^\n]*cta_nelems 3 # gcc:gcc.dg/debug/ctf/ctf-array-2.c scan-assembler-times [\t ]0x5[\t ]+[^\n]*cta_nelems 1 # gcc:gcc.dg/debug/ctf/ctf-array-3.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-array-4.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-array-4.c scan-assembler-times 0x12000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-array-4.c scan-assembler-times [\t ]0x1[\t ]+[^\n]*cta_nelems 1 # gcc:gcc.dg/debug/ctf/ctf-attr-mode-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-attr-mode-1.c scan-assembler-times [\t ]0x22000003[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-attr-mode-1.c scan-assembler-times [\t ]0x2a000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-attr-mode-1.c scan-assembler-times [\t ]0x3[\t ]+[^\n]*ctv_typeidx 1 # gcc:gcc.dg/debug/ctf/ctf-attr-mode-1.c scan-assembler-times ascii "B1.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-attr-mode-1.c scan-assembler-times ascii "B2.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-attr-mode-1.c scan-assembler-times ascii "B3.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-attr-mode-1.c scan-assembler-times cte_value 3 # gcc:gcc.dg/debug/ctf/ctf-attr-used-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-attr-used-1.c scan-assembler-times ascii "keep_this.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-attr-used-1.c scan-assembler-times ascii "lose_this.0"[\t ]+[^\n]*ctf_string 0 # gcc:gcc.dg/debug/ctf/ctf-bitfields-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-bitfields-1.c scan-assembler-times [\t ]0[\t ]+[^\n]*ctt_name 2 # gcc:gcc.dg/debug/ctf/ctf-bitfields-1.c scan-assembler-times [\t ]0x2[\t ]+[^\n]*cts_bits 1 # gcc:gcc.dg/debug/ctf/ctf-bitfields-1.c scan-assembler-times [\t ]0x3[\t ]+[^\n]*cts_bits 1 # gcc:gcc.dg/debug/ctf/ctf-bitfields-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-bitfields-2.c scan-assembler-times [\t ]0x10[\t ]+[^\n]*cts_bits 2 # gcc:gcc.dg/debug/ctf/ctf-bitfields-2.c scan-assembler-times [\t ]0x21[\t ]+[^\n]*cts_bits 2 # gcc:gcc.dg/debug/ctf/ctf-bitfields-2.c scan-assembler-times [\t ]0x2[\t ]+[^\n]*cts_type 3 # gcc:gcc.dg/debug/ctf/ctf-bitfields-2.c scan-assembler-times [\t ]0x6[\t ]+[^\n]*cts_type 3 # gcc:gcc.dg/debug/ctf/ctf-bitfields-2.c scan-assembler-times [\t ]0xf[\t ]+[^\n]*cts_bits 2 # gcc:gcc.dg/debug/ctf/ctf-bitfields-2.c scan-assembler-times ascii "long long int.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-bitfields-2.c scan-assembler-times ascii "long long unsigned int.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-bitfields-3.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-bitfields-3.c scan-assembler-times [\t ]0x1[\t ]+[^\n]*cts_bits 2 # gcc:gcc.dg/debug/ctf/ctf-bitfields-3.c scan-assembler-times [\t ]0x2[\t ]+[^\n]*cts_type 2 # gcc:gcc.dg/debug/ctf/ctf-bitfields-3.c scan-assembler-times ascii "_Bool.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-bitfields-4.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-bitfields-4.c scan-assembler-times [\t ]0x2[\t ]+[^\n]*cts_type 2 # gcc:gcc.dg/debug/ctf/ctf-bitfields-4.c scan-assembler-times [\t ]0x5[\t ]+[^\n]*cts_bits 1 # gcc:gcc.dg/debug/ctf/ctf-bitfields-4.c scan-assembler-times [\t ]0xa[\t ]+[^\n]*cts_bits 1 # gcc:gcc.dg/debug/ctf/ctf-bitfields-4.c scan-assembler-times ctm_name 2 # gcc:gcc.dg/debug/ctf/ctf-complex-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-complex-1.c scan-assembler-times ascii "complex double.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-complex-1.c scan-assembler-times ascii "complex float.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-complex-1.c scan-assembler-times ascii "complex long double.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-1.c scan-assembler-times [\t ]0[\t ]+[^\n]*ctt_name 7 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-1.c scan-assembler-times [\t ]0x2e000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-1.c scan-assembler-times [\t ]0x32000000[\t ]+[^\n]*ctt_info 2 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-1.c scan-assembler-times [\t ]0x36000000[\t ]+[^\n]*ctt_info 2 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-1.c scan-assembler-times [\t ]0xe000000[\t ]+[^\n]*ctt_info 2 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-1.c scan-assembler-times ascii "int.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-2.c scan-assembler-times [\t ]0x32000000[\t ]+[^\n]*ctt_info 2 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-2.c scan-assembler-times ascii "int.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-3.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-3.c scan-assembler-times [\t ]0x12000000[\t ]+[^\n]*ctt_info 2 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-3.c scan-assembler-times [\t ]0x2e000000[\t ]+[^\n]*ctt_info 5 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-3.c scan-assembler-times [\t ]0x32000000[\t ]+[^\n]*ctt_info 3 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-3.c scan-assembler-times ascii "unsigned char.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-4.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-4.c scan-assembler-times [\t ]0[\t ]+[^\n]*ctt_name 2 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-4.c scan-assembler-times [\t ]0x32000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-cvr-quals-4.c scan-assembler-times [\t ]0xe000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-debug-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-debug-1.c scan-assembler 0xdff2.*CTF preamble magic number # gcc:gcc.dg/debug/ctf/ctf-debug-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-debug-2.c scan-assembler 0xdff2.*CTF preamble magic number # gcc:gcc.dg/debug/ctf/ctf-enum-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-enum-1.c scan-assembler-times ascii "BLUE.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-enum-1.c scan-assembler-times ascii "GREEN.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-enum-1.c scan-assembler-times ascii "RED.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-enum-1.c scan-assembler-times ascii "YELLOW.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-enum-1.c scan-assembler-times cte_value 4 # gcc:gcc.dg/debug/ctf/ctf-enum-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-enum-2.c scan-assembler-times ascii "GFS_MONOTONIC.0"[\t ]+[^\n]*ctf_string 0 # gcc:gcc.dg/debug/ctf/ctf-enum-2.c scan-assembler-times ascii "GFS_RUNTIME.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-enum-2.c scan-assembler-times ascii "GFS_STATIC.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-enum-2.c scan-assembler-times cte_value 2 # gcc:gcc.dg/debug/ctf/ctf-file-scope-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-file-scope-1.c scan-assembler-times ascii "SFOO.0"[\t ]+[^\n]*ctf_string 0 # gcc:gcc.dg/debug/ctf/ctf-file-scope-1.c scan-assembler-times ascii "foo.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-file-scope-1.c scan-assembler-times ascii "gfoo.0"[\t ]+[^\n]*ctf_string 0 # gcc:gcc.dg/debug/ctf/ctf-float-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-float-1.c scan-assembler-times ascii "double.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-float-1.c scan-assembler-times ascii "float.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-float-1.c scan-assembler-times ascii "long double.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-forward-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-forward-1.c scan-assembler-times [\t ]0x26000000[\t ]+[^\n]*ctt_info 2 # gcc:gcc.dg/debug/ctf/ctf-forward-1.c scan-assembler-times [\t ]0x6[\t ]+[^\n]*ctt_size or ctt_type 2 # gcc:gcc.dg/debug/ctf/ctf-forward-1.c scan-assembler-times [\t ]0x7[\t ]+[^\n]*ctt_size or ctt_type 2 # gcc:gcc.dg/debug/ctf/ctf-forward-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-forward-2.c scan-assembler-times [\t ]0x26000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-forward-2.c scan-assembler-times [\t ]0x8[\t ]+[^\n]*ctt_size or ctt_type 1 # gcc:gcc.dg/debug/ctf/ctf-forward-2.c scan-assembler-times ascii "vibgyor.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-func-index-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-func-index-1.c scan-assembler-times ascii "bar.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-func-index-1.c scan-assembler-times ascii "foo.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-func-index-1.c scan-assembler-times funcinfo_func_type 2 # gcc:gcc.dg/debug/ctf/ctf-func-index-1.c scan-assembler-times funcinfo_name 2 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-function-pointers-1.c scan-assembler-times [\t ]0x16000001[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-1.c scan-assembler-times [\t ]0x16000002[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-1.c scan-assembler-times [\t ]0x16000003[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-1.c scan-assembler-times ascii "__foo_fn.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-1.c scan-assembler-times ascii "destroy.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-1.c scan-assembler-times ascii "func.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-function-pointers-2.c scan-assembler-times [\t ]0x16000001[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-2.c scan-assembler-times ascii "func.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-2.c scan-assembler-times ascii "rcu_callback_t.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-3.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-function-pointers-3.c scan-assembler-times [\t ]0x16000001[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-3.c scan-assembler-times ascii "fn.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-3.c scan-assembler-times ascii "foo_init_callback.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-4.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-function-pointers-4.c scan-assembler-times [\t ]0x16000001[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-function-pointers-4.c scan-assembler-times ascii "var_assign_func_t.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-functions-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-functions-1.c scan-assembler-times [\t ]0[\t ]+[^\n]*dtu_argv 1 # gcc:gcc.dg/debug/ctf/ctf-functions-1.c scan-assembler-times [\t ]0x16000002[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-functions-1.c scan-assembler-times dtu_argv 2 # gcc:gcc.dg/debug/ctf/ctf-int-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-int-1.c scan-assembler-times ascii "int.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-int-1.c scan-assembler-times ascii "long int.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-int-1.c scan-assembler-times ascii "short int.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-objt-index-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-objt-index-1.c scan-assembler-times ascii "a.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-objt-index-1.c scan-assembler-times ascii "a1.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-objt-index-1.c scan-assembler-times ascii "b.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-objt-index-1.c scan-assembler-times ascii "d_instance.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-objt-index-1.c scan-assembler-times objtinfo_name 4 # gcc:gcc.dg/debug/ctf/ctf-objt-index-1.c scan-assembler-times objtinfo_var_type 4 # gcc:gcc.dg/debug/ctf/ctf-pointers-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-pointers-1.c scan-assembler-times [\t ]0xe000000[\t ]+[^\n]*ctt_info 2 # gcc:gcc.dg/debug/ctf/ctf-pointers-1.c scan-assembler-times ascii "foo_struct.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-pointers-1.c scan-assembler-times ascii "int.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-pointers-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-pointers-2.c scan-assembler-times [\t ]0xe000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-preamble-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-preamble-1.c scan-assembler 0.*CTF preamble flags # gcc:gcc.dg/debug/ctf/ctf-preamble-1.c scan-assembler 0x4.*CTF preamble version # gcc:gcc.dg/debug/ctf/ctf-preamble-1.c scan-assembler 0xdff2.*CTF preamble magic number # gcc:gcc.dg/debug/ctf/ctf-skip-types-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-skip-types-1.c scan-assembler-times [\t ]0x2000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-skip-types-1.c scan-assembler-times ascii "unknown.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-skip-types-3.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-skip-types-8.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-skip-types-8.c scan-assembler-times [\t ]0x1a000003[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-skip-types-8.c scan-assembler-times [\t ]0x2a000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-skip-types-8.c scan-assembler-times [\t ]0x32000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-skip-types-8.c scan-assembler-times ascii "c1.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-skip-types-8.c scan-assembler-times ascii "comp_type.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-skip-types-8.c scan-assembler-times ascii "comp_type_t.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-skip-types-8.c scan-assembler-times ctm_name 3 # gcc:gcc.dg/debug/ctf/ctf-str-table-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-str-table-1.c scan-assembler-times ascii ".0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-struct-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-struct-1.c scan-assembler-times [\t ]0x1a000002[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-struct-1.c scan-assembler-times [\t ]0x1a000004[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-struct-1.c scan-assembler-times ctm_name 6 # gcc:gcc.dg/debug/ctf/ctf-struct-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-struct-2.c scan-assembler-times ascii "dmx_dtdef.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-struct-2.c scan-assembler-times ascii "dmx_dtdef_t.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-struct-2.c scan-assembler-times ascii "dtd_name.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-struct-2.c scan-assembler-times ascii "dtd_type.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-struct-array-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-struct-array-1.c scan-assembler-times [\t ]0x32000000[\t ]+[^\n]*ctt_info 3 # gcc:gcc.dg/debug/ctf/ctf-struct-array-1.c scan-assembler-times ascii "cmodel.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-struct-array-1.c scan-assembler-times ascii "cmodel_t.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-struct-array-1.c scan-assembler-times ascii "cname.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-struct-array-1.c scan-assembler-times ascii "cpointer.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-struct-array-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-struct-array-2.c scan-assembler-times 0x12000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-struct-array-2.c scan-assembler-times [\t ]0[\t ]+[^\n]*ctm_offset 1 # gcc:gcc.dg/debug/ctf/ctf-struct-array-2.c scan-assembler-times [\t ]0x4[\t ]+[^\n]*cta_nelems 1 # gcc:gcc.dg/debug/ctf/ctf-struct-array-2.c scan-assembler-times [\t ]0x4[\t ]+[^\n]*ctm_offset 1 # gcc:gcc.dg/debug/ctf/ctf-struct-pointer-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-struct-pointer-1.c scan-assembler-times [\t ]"bar.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-struct-pointer-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-struct-pointer-2.c scan-assembler-times [\t ]"bar.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times 0x2a000000[\t ]+[^\n]*ctt_info 7 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times [\t ]0x2[\t ]+[^\n]*ctv_typeidx 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times [\t ]0x4[\t ]+[^\n]*ctv_typeidx 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times [\t ]0x5[\t ]+[^\n]*ctv_typeidx 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times [\t ]0x9[\t ]+[^\n]*ctv_typeidx 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times [\t ]0xa[\t ]+[^\n]*ctv_typeidx 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times [\t ]0xc[\t ]+[^\n]*ctv_typeidx 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times [\t ]0xf[\t ]+[^\n]*ctv_typeidx 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times ascii "CINT.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times ascii "CINTP.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times ascii "bar_int.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times ascii "foo_int.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times ascii "my_array.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times ascii "my_int.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-1.c scan-assembler-times ascii "my_node_t.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-typedef-2.c scan-assembler-times 0x2a000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-2.c scan-assembler-times ascii "foo_void_type.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-2.c scan-assembler-times ascii "void.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-3.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-typedef-3.c scan-assembler-times 0x2a000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-3.c scan-assembler-times ascii "foo.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-3.c scan-assembler-times ascii "foo_type.0"[\t ]+[^\n]*ctf_string 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-struct-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-typedef-struct-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-typedef-struct-3.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-typedef-struct-3.c scan-assembler-times [\t ]0x2a000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-struct-3.c scan-assembler-times [\t ]0x32000000[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-typedef-struct-3.c scan-assembler-times [\t ]0x4[\t ]+[^\n]*ctv_typeidx 1 # gcc:gcc.dg/debug/ctf/ctf-union-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-union-1.c scan-assembler-times [\t ]0x1e000004[\t ]+[^\n]*ctt_info 1 # gcc:gcc.dg/debug/ctf/ctf-union-1.c scan-assembler-times ctm_name 4 # gcc:gcc.dg/debug/ctf/ctf-variables-1.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-variables-1.c scan-assembler-times ctv_name 7 # gcc:gcc.dg/debug/ctf/ctf-variables-2.c (test for excess errors) # gcc:gcc.dg/debug/ctf/ctf-variables-2.c scan-assembler-times ascii "bstatic.0"[\t ]+[^\n]*ctf_string 0 # gcc:gcc.dg/debug/ctf/ctf-variables-2.c scan-assembler-times ctv_name 0 # Executed from: gcc.dg/debug/debug.exp # gcc:gcc.dg/debug/debug-3.c -gctf (test for excess errors) # gcc:gcc.dg/debug/debug-4.c -gctf (test for excess errors) # gcc:gcc.dg/debug/debug-5.c -gctf (test for excess errors) # gcc:gcc.dg/debug/debug-7.c -gctf (test for excess errors) # gcc:gcc.dg/debug/dwarf2-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/dwarf2-2.c -gctf (test for excess errors) # gcc:gcc.dg/debug/enum-1.c -gctf scan-assembler JTI_MAX # gcc:gcc.dg/debug/enum-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr16676.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr26881.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr29558.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr29609-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr29609-1.c -gctf execution test # gcc:gcc.dg/debug/pr29609-2.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr29609-2.c -gctf execution test # gcc:gcc.dg/debug/pr32610.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr33316.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr36690-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr36690-1.c -gctf execution test # gcc:gcc.dg/debug/pr36690-2.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr36690-2.c -gctf execution test # gcc:gcc.dg/debug/pr36690-3.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr36690-3.c -gctf execution test # gcc:gcc.dg/debug/pr37616.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr37616.c -gctf execution test # gcc:gcc.dg/debug/pr39412.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr41264-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr41343-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr41717.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr41893-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr41893-2.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr42244.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr42767.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr43972.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr45849.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr46409.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr46782.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr47498.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr47501.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr49032.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr49294.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr49522.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr55730.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr57351.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr65771.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr66068.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr66432.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr78587.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr80321.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr85252.c -gctf (test for warnings, line 10) # gcc:gcc.dg/debug/pr85252.c -gctf (test for warnings, line 8) # gcc:gcc.dg/debug/pr85252.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr89704.c -gctf (test for excess errors) # gcc:gcc.dg/debug/pr97714.c -gctf (test for excess errors) # gcc:gcc.dg/debug/redecl-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/redecl-2.c -gctf (test for excess errors) # gcc:gcc.dg/debug/redecl-3.c -gctf (test for excess errors) # gcc:gcc.dg/debug/redecl-4.c -gctf (test for excess errors) # gcc:gcc.dg/debug/redecl-5.c -gctf (test for excess errors) # gcc:gcc.dg/debug/tls-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/trivial.c -gctf (test for excess errors) # gcc:gcc.dg/debug/trivial.c -gctf execution test # gcc:gcc.dg/debug/vta-1.c -gctf (test for excess errors) # gcc:gcc.dg/debug/vta-2.c -gctf (test for excess errors) # gcc:gcc.dg/debug/vta-3.c -gctf (test for excess errors) # Executed from: gcc.dg/ipa/ipa.exp # gcc:gcc.dg/ipa/ipa-sra-23.c (test for excess errors) # gcc:gcc.dg/ipa/ipa-sra-24.c (test for excess errors) # gcc:gcc.dg/ipa/pr93385.c (test for excess errors) # gcc:gcc.dg/ipa/pr93385.c execution test # # # - UNSUPPORTED appears [ =>UNSUP]: # # Executed from: g++.dg/dg.exp # g++:g++.dg/ipa/ipa-sra-4.C -std=gnu++98 # Executed from: gcc.dg/debug/ctf/ctf.exp # gcc:gcc.dg/debug/ctf/ctf-skip-types-4.c # gcc:gcc.dg/debug/ctf/ctf-skip-types-5.c # gcc:gcc.dg/debug/ctf/ctf-skip-types-6.c # gcc:gcc.dg/debug/ctf/ctf-skip-types-7.c # Executed from: gcc.dg/debug/debug.exp # gcc:gcc.dg/debug/pr35154.c -gctf # # # # # Regressions found # # Regressions in 12 common sum files found
from (for last_good == b7e215a8ee81d44281d9e0a2a25eceb47b6911dd) # reset_artifacts: -10 # build_abe bootstrap: 0 # build_abe check_bootstrap: 1
Artifacts of last_good build: https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_bootstrap/67/... Artifacts of first_bad build: https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_bootstrap/67/... Build top page/logs: https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_bootstrap/67/
Configuration details:
Reproduce builds: <cut> mkdir investigate-gcc-c1f76af469388d3df815c82de566387da5ae000f cd investigate-gcc-c1f76af469388d3df815c82de566387da5ae000f
git clone https://git.linaro.org/toolchain/jenkins-scripts
mkdir -p artifacts/manifests curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_bootstrap/67/... --fail curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_bootstrap/67/... --fail curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_bootstrap/67/... --fail chmod +x artifacts/test.sh
# Reproduce the baseline build (build all pre-requisites) ./jenkins-scripts/tcwg_gnu-build.sh @@ artifacts/manifests/build-baseline.sh
cd gcc
# Reproduce first_bad build git checkout --detach c1f76af469388d3df815c82de566387da5ae000f ../artifacts/test.sh
# Reproduce last_good build git checkout --detach b7e215a8ee81d44281d9e0a2a25eceb47b6911dd ../artifacts/test.sh
cd .. </cut>
History of pending regressions and results: https://git.linaro.org/toolchain/ci/base-artifacts.git/log/?h=linaro-local/c...
Artifacts: https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_bootstrap/67/... Build log: https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_bootstrap/67/...
Full commit (up to 1000 lines): <cut> commit c1f76af469388d3df815c82de566387da5ae000f Author: Indu Bhagat indu.bhagat@oracle.com Date: Thu May 20 11:19:04 2021 -0700
CTF/BTF testsuites
This commit adds a new testsuite for the CTF debug format.
2021-06-28 Indu Bhagat indu.bhagat@oracle.com David Faust david.faust@oracle.com
gcc/testsuite/
* lib/gcc-dg.exp (gcc-dg-frontend-supports-ctf): New procedure. (gcc-dg-debug-runtest): Add -gctf support. * gcc.dg/debug/btf/btf-1.c: New test. * gcc.dg/debug/btf/btf-2.c: Likewise. * gcc.dg/debug/btf/btf-anonymous-struct-1.c: Likewise. * gcc.dg/debug/btf/btf-anonymous-union-1.c: Likewise. * gcc.dg/debug/btf/btf-array-1.c: Likewise. * gcc.dg/debug/btf/btf-bitfields-1.c: Likewise. * gcc.dg/debug/btf/btf-bitfields-2.c: Likewise. * gcc.dg/debug/btf/btf-bitfields-3.c: Likewise. * gcc.dg/debug/btf/btf-cvr-quals-1.c: Likewise. * gcc.dg/debug/btf/btf-enum-1.c: Likewise. * gcc.dg/debug/btf/btf-forward-1.c: Likewise. * gcc.dg/debug/btf/btf-function-1.c: Likewise. * gcc.dg/debug/btf/btf-function-2.c: Likewise. * gcc.dg/debug/btf/btf-int-1.c: Likewise. * gcc.dg/debug/btf/btf-pointers-1.c: Likewise. * gcc.dg/debug/btf/btf-struct-1.c: Likewise. * gcc.dg/debug/btf/btf-typedef-1.c: Likewise. * gcc.dg/debug/btf/btf-union-1.c: Likewise. * gcc.dg/debug/btf/btf-variables-1.c: Likewise. * gcc.dg/debug/btf/btf.exp: Likewise. * gcc.dg/debug/ctf/ctf-1.c: Likewise. * gcc.dg/debug/ctf/ctf-2.c: Likewise. * gcc.dg/debug/ctf/ctf-anonymous-struct-1.c: Likewise. * gcc.dg/debug/ctf/ctf-anonymous-union-1.c: Likewise. * gcc.dg/debug/ctf/ctf-array-1.c: Likewise. * gcc.dg/debug/ctf/ctf-array-2.c: Likewise. * gcc.dg/debug/ctf/ctf-array-3.c: Likewise. * gcc.dg/debug/ctf/ctf-array-4.c: Likewise. * gcc.dg/debug/ctf/ctf-attr-mode-1.c: Likewise. * gcc.dg/debug/ctf/ctf-attr-used-1.c: Likewise. * gcc.dg/debug/ctf/ctf-bitfields-1.c: Likewise. * gcc.dg/debug/ctf/ctf-bitfields-2.c: Likewise. * gcc.dg/debug/ctf/ctf-bitfields-3.c: Likewise. * gcc.dg/debug/ctf/ctf-bitfields-4.c: Likewise. * gcc.dg/debug/ctf/ctf-complex-1.c: Likewise. * gcc.dg/debug/ctf/ctf-cvr-quals-1.c: Likewise. * gcc.dg/debug/ctf/ctf-cvr-quals-2.c: Likewise. * gcc.dg/debug/ctf/ctf-cvr-quals-3.c: Likewise. * gcc.dg/debug/ctf/ctf-cvr-quals-4.c: Likewise. * gcc.dg/debug/ctf/ctf-enum-1.c: Likewise. * gcc.dg/debug/ctf/ctf-enum-2.c: Likewise. * gcc.dg/debug/ctf/ctf-file-scope-1.c: Likewise. * gcc.dg/debug/ctf/ctf-float-1.c: Likewise. * gcc.dg/debug/ctf/ctf-forward-1.c: Likewise. * gcc.dg/debug/ctf/ctf-forward-2.c: Likewise. * gcc.dg/debug/ctf/ctf-func-index-1.c: Likewise. * gcc.dg/debug/ctf/ctf-function-pointers-1.c: Likewise. * gcc.dg/debug/ctf/ctf-function-pointers-2.c: Likewise. * gcc.dg/debug/ctf/ctf-function-pointers-3.c: Likewise. * gcc.dg/debug/ctf/ctf-functions-1.c: Likewise. * gcc.dg/debug/ctf/ctf-int-1.c: Likewise. * gcc.dg/debug/ctf/ctf-objt-index-1.c: Likewise. * gcc.dg/debug/ctf/ctf-pointers-1.c: Likewise. * gcc.dg/debug/ctf/ctf-pointers-2.c: Likewise. * gcc.dg/debug/ctf/ctf-preamble-1.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-1.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-2.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-3.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-4.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-5.c: Likewise. * gcc.dg/debug/ctf/ctf-skip-types-6.c: Likewise. * gcc.dg/debug/ctf/ctf-str-table-1.c: Likewise. * gcc.dg/debug/ctf/ctf-struct-1.c: Likewise. * gcc.dg/debug/ctf/ctf-struct-2.c: Likewise. * gcc.dg/debug/ctf/ctf-struct-array-1.c: Likewise. * gcc.dg/debug/ctf/ctf-struct-pointer-1.c: Likewise. * gcc.dg/debug/ctf/ctf-struct-pointer-2.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-1.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-2.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-3.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-struct-1.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-struct-2.c: Likewise. * gcc.dg/debug/ctf/ctf-typedef-struct-3.c: Likewise. * gcc.dg/debug/ctf/ctf-union-1.c: Likewise. * gcc.dg/debug/ctf/ctf-variables-1.c: Likewise. * gcc.dg/debug/ctf/ctf-variables-2.c: Likewise. * gcc.dg/debug/ctf/ctf.exp: Likewise. --- gcc/testsuite/gcc.dg/debug/btf/btf-1.c | 6 ++ gcc/testsuite/gcc.dg/debug/btf/btf-2.c | 10 +++ .../gcc.dg/debug/btf/btf-anonymous-struct-1.c | 23 ++++++ .../gcc.dg/debug/btf/btf-anonymous-union-1.c | 23 ++++++ gcc/testsuite/gcc.dg/debug/btf/btf-array-1.c | 31 ++++++++ gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-1.c | 34 +++++++++ gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-2.c | 26 +++++++ gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-3.c | 43 ++++++++++++ gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-4.c | 23 ++++++ gcc/testsuite/gcc.dg/debug/btf/btf-cvr-quals-1.c | 52 ++++++++++++++ gcc/testsuite/gcc.dg/debug/btf/btf-datasec-1.c | 45 ++++++++++++ gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c | 30 ++++++++ gcc/testsuite/gcc.dg/debug/btf/btf-forward-1.c | 24 +++++++ gcc/testsuite/gcc.dg/debug/btf/btf-function-1.c | 18 +++++ gcc/testsuite/gcc.dg/debug/btf/btf-function-2.c | 18 +++++ gcc/testsuite/gcc.dg/debug/btf/btf-function-3.c | 22 ++++++ gcc/testsuite/gcc.dg/debug/btf/btf-int-1.c | 44 ++++++++++++ gcc/testsuite/gcc.dg/debug/btf/btf-pointers-1.c | 25 +++++++ gcc/testsuite/gcc.dg/debug/btf/btf-pointers-2.c | 13 ++++ gcc/testsuite/gcc.dg/debug/btf/btf-struct-1.c | 22 ++++++ gcc/testsuite/gcc.dg/debug/btf/btf-struct-2.c | 19 +++++ gcc/testsuite/gcc.dg/debug/btf/btf-typedef-1.c | 82 ++++++++++++++++++++++ gcc/testsuite/gcc.dg/debug/btf/btf-union-1.c | 16 +++++ gcc/testsuite/gcc.dg/debug/btf/btf-variables-1.c | 33 +++++++++ gcc/testsuite/gcc.dg/debug/btf/btf-variables-2.c | 27 +++++++ gcc/testsuite/gcc.dg/debug/btf/btf-variables-3.c | 36 ++++++++++ gcc/testsuite/gcc.dg/debug/btf/btf.exp | 41 +++++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-1.c | 6 ++ gcc/testsuite/gcc.dg/debug/ctf/ctf-2.c | 10 +++ .../gcc.dg/debug/ctf/ctf-anonymous-struct-1.c | 23 ++++++ .../gcc.dg/debug/ctf/ctf-anonymous-union-1.c | 26 +++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-array-1.c | 31 ++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-array-2.c | 38 ++++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-array-3.c | 17 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-array-4.c | 13 ++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-mode-1.c | 22 ++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-used-1.c | 22 ++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-1.c | 30 ++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-2.c | 39 ++++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-3.c | 16 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-4.c | 19 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-complex-1.c | 21 ++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-1.c | 65 +++++++++++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-2.c | 30 ++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-3.c | 25 +++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-4.c | 23 ++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-1.c | 7 ++ gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-2.c | 7 ++ gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-1.c | 21 ++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-2.c | 27 +++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-file-scope-1.c | 25 +++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-float-1.c | 16 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-1.c | 40 +++++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-2.c | 16 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-func-index-1.c | 25 +++++++ .../gcc.dg/debug/ctf/ctf-function-pointers-1.c | 24 +++++++ .../gcc.dg/debug/ctf/ctf-function-pointers-2.c | 22 ++++++ .../gcc.dg/debug/ctf/ctf-function-pointers-3.c | 21 ++++++ .../gcc.dg/debug/ctf/ctf-function-pointers-4.c | 18 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-functions-1.c | 34 +++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-int-1.c | 17 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-objt-index-1.c | 30 ++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-pointers-1.c | 26 +++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-pointers-2.c | 25 +++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-preamble-1.c | 11 +++ gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-1.c | 38 ++++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-2.c | 17 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-3.c | 20 ++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-4.c | 19 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-5.c | 19 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-6.c | 18 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-7.c | 18 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-8.c | 27 +++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-str-table-1.c | 26 +++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-1.c | 25 +++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-2.c | 32 +++++++++ .../gcc.dg/debug/ctf/ctf-struct-array-1.c | 65 +++++++++++++++++ .../gcc.dg/debug/ctf/ctf-struct-array-2.c | 15 ++++ .../gcc.dg/debug/ctf/ctf-struct-pointer-1.c | 21 ++++++ .../gcc.dg/debug/ctf/ctf-struct-pointer-2.c | 22 ++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-1.c | 68 ++++++++++++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-2.c | 20 ++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-3.c | 24 +++++++ .../gcc.dg/debug/ctf/ctf-typedef-struct-1.c | 14 ++++ .../gcc.dg/debug/ctf/ctf-typedef-struct-2.c | 17 +++++ .../gcc.dg/debug/ctf/ctf-typedef-struct-3.c | 32 +++++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-union-1.c | 14 ++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-1.c | 25 +++++++ gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-2.c | 16 +++++ gcc/testsuite/gcc.dg/debug/ctf/ctf.exp | 41 +++++++++++ gcc/testsuite/lib/gcc-dg.exp | 64 +++++++++++++---- 91 files changed, 2376 insertions(+), 15 deletions(-)
diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-1.c new file mode 100644 index 00000000000..bcbc9492439 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-1.c @@ -0,0 +1,6 @@ +/* { dg-do compile } */ +/* { dg-options "-gbtf" } */ + +void func(void) +{ +} diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-2.c b/gcc/testsuite/gcc.dg/debug/btf/btf-2.c new file mode 100644 index 00000000000..70e2ff1e053 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-2.c @@ -0,0 +1,10 @@ +/* Check the BTF header information. */ + +/* { dg-do compile } */ +/* { dg-options "-gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "0xeb9f.*btf_magic" 1} } */ +/* { dg-final { scan-assembler-times "0x1.*btf_version" 1 } } */ +/* { dg-final { scan-assembler-times "0.*btf_flags" 1 } } */ + +int foo; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-struct-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-struct-1.c new file mode 100644 index 00000000000..89a5701bba0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-struct-1.c @@ -0,0 +1,23 @@ +/* Test BTF generation of anonymous struct. + + We expect two BTF struct records: + - struct foo, with two fields "a" and "bar" + - struct <anonymous> with one field "b" + + The anonymous struct should have a name of 0, pointing to the null string + at the start of the string table. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* Struct type with 2 members (struct foo). */ +/* { dg-final { scan-assembler-times "[\t ]0x4000002[\t ]+[^\n]*btt_info" 1 } } */ +/* Struct type with 1 member (anon struct). */ +/* { dg-final { scan-assembler-times "[\t ]0x4000001[\t ]+[^\n]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0[\t ]+[^\n]*btt_name" 1 } } */ + +struct foo +{ + int a; + struct { int b; } bar; +} myfoo; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-union-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-union-1.c new file mode 100644 index 00000000000..f3b120bb458 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-union-1.c @@ -0,0 +1,23 @@ +/* Test BTF generation of anonymous union. + + We expect a named struct type and an anonymous union type record to + be generated. The anonymous union record should have a name of 0, + pointing to the null string at the start of the string table. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* Struct type with 1 member. */ +/* { dg-final { scan-assembler-times "[\t ]0x4000001[\t ]+[^\n]*btt_info" 1 } } */ +/* Union type with 2 members. */ +/* { dg-final { scan-assembler-times "[\t ]0x5000002[\t ]+[^\n]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0[\t ]+[^\n]*btt_name" 1 } } */ + +struct foo +{ + union + { + int value; + char ascii; + }; +} myfoo; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-array-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-array-1.c new file mode 100644 index 00000000000..ab55445bd35 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-array-1.c @@ -0,0 +1,31 @@ +/* BTF generation for array type. + + Unsized arrays are encoded with a 0 for the number of elements. + + In this testcase, 5 distinct BTF records for arrays are expected + b1 : cta_nelems = 2 + c1 : cta_nelems = 3 + a1 : cta_nelems = 2, 5 + buf : cta_nelems = 0. */ + +/* { dg-do compile ) */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "0x3000000[\t ]+[^\n]*btt_info" 5 } } */ + +/* { dg-final { scan-assembler-times "[\t ]0x2[\t ]+[^\n]*bta_nelems" 2 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x3[\t ]+[^\n]*bta_nelems" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x5[\t ]+[^\n]*bta_nelems" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0[\t ]+[^\n]*bta_nelems" 1 } } */ + +int b1[2] = {0,1}; +int c1[5] = {0,1,2,3,4}; +int a1[2][3] = { {3,4,5}, {2,3,4} }; + +/* Variable length struct using arrays. */ +struct my_array +{ + int flags; + int length; + int buf[]; +} my_array_obj; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-1.c new file mode 100644 index 00000000000..c6bf52130dc --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-1.c @@ -0,0 +1,34 @@ +/* Basic tests for BTF bitfields. + + The structure containing bitfield members should be marked with KIND_FLAG=1 + The bitfield member offsets should be encoded as: + (bit_size << 24) | bit_offset + - (0xa << 24) | 0x20 + - (0x7 << 24) | 0x2a + - (0x13 << 24) | 0x40 - note that this is aligned to 0x40. */ + +/* { dg-do compile ) */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "[\t ]0x84000004[\t ]+[^\n]*btt_info" 1 } } */ + +/* { dg-final { scan-assembler-times "[\t ]0xa000020[\t ]+[^\n]*btm_offset" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x700002a[\t ]+[^\n]*btm_offset" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x13000040[\t ]+[^\n]*btm_offset" 1 } } */ + +struct bitt { + int a; + unsigned int bitfield_a : 10; + unsigned int bitfield_b : 7; + unsigned int bitfield_c : 19; +} bitty; + +struct no_bitt { + int a; + int b; +} no_bitty; + +int main () +{ + return bitty.bitfield_b + bitty.a; +} diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-2.c b/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-2.c new file mode 100644 index 00000000000..9665ab67145 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-2.c @@ -0,0 +1,26 @@ +/* Test BTF generation for struct with 0 size bitfield. + + We expect a struct with 2 members to be generated. The size 0 bitfield + should not have any entry in the member list. */ + +/* { dg-do compile ) */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* Struct with bitfield members, and 2 members. */ +/* { dg-final { scan-assembler-times "[\t ]0x84000002[\t ]+[^\n]*btt_info" 1 } } */ + +/* Bitfield size 31 (0x1f) at offset 0. */ +/* { dg-final { scan-assembler-times "[\t ]0x1f000000[\t ]+[^\n]*btm_offset" 1 } } */ + +/* Bitfield size 32 (0x20) at offset 32. */ +/* { dg-final { scan-assembler-times "[\t ]0x20000020[\t ]+[^\n]*btm_offset" 1 } } */ + +/* Only 2 members. */ +/* { dg-final { scan-assembler-times "btm_name" 2 } } */ + +struct foo +{ + unsigned a : 31; + unsigned : 0; + unsigned c : 32; +} myfoo; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-3.c b/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-3.c new file mode 100644 index 00000000000..440623c3b16 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-3.c @@ -0,0 +1,43 @@ +/* Test BTF generation for enum-type bitfields + + It is allowed to have a bitfield type be an enum type. + We expect the following types: + + [1] enum 'foo'(1U#B) size=4U#B + 'BAR' value=0 + 'BAZ' value=1 + 'QUZ' value=2 + 'QUX' value=3 + [2] int 'unsigned int' size=4 offset=0 bits=32 + [3] struct 'bitt' size=4 + member 'f' type=1 bitfield_size=2 bit_offset=0 + member 'data' type=2 bitfield_size=14 bit_offset=2 + */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* Enum with 4 members. */ +/* { dg-final { scan-assembler-times "[\t ]0x6000004[\t ]+[^\n]*btt_info" 1 } } */ +/* Struct with bitfield members, and 2 members. */ +/* { dg-final { scan-assembler-times "[\t ]0x84000002[\t ]+[^\n]*btt_info" 1 } } */ + +/* Bitfield "f" points to type ID 1. */ +/* { dg-final { scan-assembler-times "[\t ]0x1[\t ]+[^\n]*btm_type" 1 } } */ + +/* Bitfield "data" points to type ID 2. */ +/* { dg-final { scan-assembler-times "[\t ]0x2[\t ]+[^\n]*btm_type" 1 } } */ + +enum foo +{ + BAR = 0, + BAZ = 1, + QUZ = 2, + QUX = 3 +}; + +struct bitt +{ + enum foo f : 2; + unsigned data : 14; +} bitty; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-4.c b/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-4.c new file mode 100644 index 00000000000..af91845726f --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-4.c @@ -0,0 +1,23 @@ +/* Test BTF generation for non-representable bitfields. + + Due to the limitations of BTF, we only have 24 bits in which to store + the bitfield offset (in bits, from the beginning of the struct). + + In this test, we construct a structure such that the bitfield will have + an offset so large as to be unrepresentable in BTF. We expect that the + resulting BTF will describe the rest of the structure, ignoring the + non-representable bitfield. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* Struct with 3 members and no bitfield (kind_flag not set). */ +/* { dg-final { scan-assembler-times "[\t ]0x4000003[\t ]+[^\n]*btt_info" 1 } } */ + +struct bigly +{ + int a; + int b[((0xffffff + 1) / (8 * sizeof (int)))]; + unsigned unsup : 7; + char c; +} big; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-cvr-quals-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-cvr-quals-1.c new file mode 100644 index 00000000000..79e9f52a479 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-cvr-quals-1.c @@ -0,0 +1,52 @@ +/* Test BTF generation of BTF_KIND_{CONST,VOLATILE,RESTRICT} records. + + BTF const, volatile and restrict records are nameless type records pointing + to the type they modify. + + Types: + [1] int 'int' size=4U offset=0 bits=32 SIGNED + [2] const <anonymous> type=1 + [3] volatile <anonymous> type=1 + [4] const <anonymous> type=3 + [5] ptr <anonymous> type=1 + [6] restrict <anonymous> type=5 + [7] ptr <anonymous> type=2 + [8] restrict <anonymous> type=7 + + Note: + - Type id 3 describes a volatile int. + - Type id 2 describes a const int. + - Type id 4 describes a const volatile int by modifying id 3. + - Type id 6 describes a restrict pointer to int. + - Type id 8 describes a restrict pointer to const int. + */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "ascii "int.0"[\t ]+[^\n]*btf_string" 1 } } */ + +/* types 5 and 7 are pointers, to 'int' and 'const int' respectively. */ +/* { dg-final { scan-assembler-times "[\t ]0x2000000[\t ]+[^\n]*btt_info" 2 } } */ + +/* type 3 has VOLATILE qualifier */ +/* { dg-final { scan-assembler-times "[\t ]0x9000000[\t ]+[^\n]*btt_info" 1 } } */ + +/* types 2 and 4 have CONST qualifier. */ +/* { dg-final { scan-assembler-times "[\t ]0xa000000[\t ]+[^\n]*btt_info" 2 } } */ + +/* types 6 and 8 have RESTRICT qualifier. */ +/* { dg-final { scan-assembler-times "[\t ]0xb000000[\t ]+[^\n]*btt_info" 2 } } */ + +const int a = 10; + +volatile int b; + +int * restrict c; + +const volatile int d = 20; + +const int * restrict e; + +const int * f; +int const * g; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-datasec-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-datasec-1.c new file mode 100644 index 00000000000..88ae4c4edfd --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-datasec-1.c @@ -0,0 +1,45 @@ +/* BTF generation of BTF_KIND_DATASEC records. + + We expect 3 DATASEC records: one for each of .data, .rodata and .bss. + .rodata: the consts; c,e,my_cstruct + .bss: a,b,bigarr + .data: d + + The type IDs of the variables placed in each section are not deterministic + so we cannot check them. + */ + +/* { dg-do compile ) */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* Check for two DATASEC entries with vlen 3, and one with vlen 1. */ +/* { dg-final { scan-assembler-times "0xf000003[\t ]+[^\n]*btt_info" 2 } } */ +/* { dg-final { scan-assembler-times "0xf000001[\t ]+[^\n]*btt_info" 1 } } */ + +/* The offset entry for each variable in a DATSEC should be 0 at compile time. */ +/* { dg-final { scan-assembler-times "0[\t ]+[^\n]*bts_offset" 7 } } */ + +/* Check that strings for each DATASEC have been added to the BTF string table. */ +/* { dg-final { scan-assembler-times "ascii ".data.0"[\t ]+[^\n]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii ".rodata.0"[\t ]+[^\n]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii ".bss.0"[\t ]+[^\n]*btf_aux_string" 1 } } */ + +int a; +long long b; +const long unsigned int c; + +int d = 137; + +const int e = -55; + +int bigarr[20][10]; + +struct c_struct { + long x; + char c; +}; + +const struct c_struct my_cstruct = { + 99, + '?' +}; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c new file mode 100644 index 00000000000..728493b0804 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c @@ -0,0 +1,30 @@ +/* Test BTF generation for enums. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "[\t ]0x6000004[\t ]+[^\n]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x6000003[\t ]+[^\n]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "QAD.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "QED.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "QOD.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "QUD.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "YES.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "NO.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "IDUNNO.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "bte_value" 7 } } */ + +enum foo +{ + QAD, + QED, + QOD, + QUD, +} a; + +enum barsigned +{ + YES=1000, + NO=-1000, + IDUNNO=0, +} b; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-forward-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-forward-1.c new file mode 100644 index 00000000000..c894fa26bc7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-forward-1.c @@ -0,0 +1,24 @@ +/* Test BTF generation of forwards. + + Check that the KIND_FLAG (bit 31) of btt_info is set (1) for the forward to + union, and not set (0) for forward to struct. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "[\t ]0x87000000[\t ]+[^\n]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x7000000[\t ]+[^\n]*btt_info" 1 } } */ + +typedef struct _fwd_st +{ + struct unk_struct_type *data[4]; +} fwd_st_t; + +fwd_st_t struct_container; + +typedef struct _fwd_un +{ + union unk_union_type *options[4]; +} fwd_un_t; + +fwd_un_t union_container; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-function-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-function-1.c new file mode 100644 index 00000000000..9fa1498bd8e --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-function-1.c @@ -0,0 +1,18 @@ +/* Test BTF generation for functions. + + We expect to see one BTF_KIND_FUNC_PROTO with 2 named arguments. + The parameter names should appear in the auxilliary string table. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "[\t ]0xd000002[\t ]+[^\n]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times "farg_name" 2 } } */ +/* { dg-final { scan-assembler-times "farg_type" 2 } } */ +/* { dg-final { scan-assembler-times "ascii "alpha.0"[\t ]+[^\n]*btf_aux_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "bravo.0"[\t ]+[^\n]*btf_aux_string" 1 } } */ + +int funfoo (int alpha, long bravo) +{ + return 0; +} diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-function-2.c b/gcc/testsuite/gcc.dg/debug/btf/btf-function-2.c new file mode 100644 index 00000000000..3c7fda9ee35 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-function-2.c @@ -0,0 +1,18 @@ +/* Test BTF generation for functions with varargs. + + We expect one BTF_KIND_FUNC_PROTO with two arguments. The second argument + should have "farg_name" and "farg_type" both of 0, representing varargs. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "[\t ]0xd000002[\t ]+[^\n]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times "farg_name" 2 } } */ +/* { dg-final { scan-assembler-times "farg_type" 2 } } */ +/* { dg-final { scan-assembler-times "[\t ]0[\t ]+[^\n]*farg_name" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0[\t ]+[^\n]*farg_type" 1 } } */ + +int fmt (const char * format, ...) +{ + return 0; +} diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-function-3.c b/gcc/testsuite/gcc.dg/debug/btf/btf-function-3.c new file mode 100644 index 00000000000..35f96a2152c --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-function-3.c @@ -0,0 +1,22 @@ +/* Test BTF generation for a function with an unrepresentable parameter. + + BTF has no encoding for floating point types, among others. Function + parameters of unrepresentable types are emitted as 'void' types. + + We expect one BTF_KIND_FUNC_PROTO with 3 parameters, one of which + has type_id=0. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "[\t ]0xd000003[\t ]+[^\n]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times "farg_name" 3 } } */ +/* { dg-final { scan-assembler-times "farg_type" 3 } } */ + +/* Exactly one function parameter should have type_id=0. */ +/* { dg-final { scan-assembler-times "[\t ]0[\t ]+[^\n]*farg_type" 1 } } */ + +int foo (int a, float f, long b) +{ + return 0; +} diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-int-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-int-1.c new file mode 100644 index 00000000000..2381decd6ff --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-int-1.c @@ -0,0 +1,44 @@ +/* Tests for BTF integer base types. + + 0 f ff 00 ff + | 0 | encoding | offset | 00 | bits | + encoding: + signed 1 << 24 + char 2 << 24 + + All offsets in this test should be 0. + This test does _not_ check number of bits, as it may vary between targets. + */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* Check for 8 BTF_KIND_INT types. */ +/* { dg-final { scan-assembler-times "[\t ]0x1000000[\t ]+[^\n]*btt_info" 8 } } */ + +/* Check the signed/char flags, but not bit size. */ +/* { dg-final { scan-assembler-times "[\t ]0x10000..[\t ]+[^\n]*bti_encoding" 3 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x20000..[\t ]+[^\n]*bti_encoding" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x30000..[\t ]+[^\n]*bti_encoding" 1 } } */ + +/* Check that there is a string entry for each type name. */ +/* { dg-final { scan-assembler-times "ascii "unsigned char.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "signed char.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "short unsigned int.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "short int.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "unsigned int.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "int.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "long unsigned int.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "long int.0"[\t ]+[^\n]*btf_string" 1 } } */ + +unsigned char a = 11; +signed char b = -22; + +unsigned short c = 33; +signed short d = 44; + +unsigned int e = 55; +signed int f = -66; + +unsigned long int g = 77; +signed long int h = 88; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-pointers-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-pointers-1.c new file mode 100644 index 00000000000..a14ac0f89b2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-pointers-1.c @@ -0,0 +1,25 @@ +/* Test BTF generation for pointer types. + + Two pointer types are expected: + - int * + - struct st * + */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "[\t ]0x2000000[\t ]+[^\n]*btt_info" 2 } } */ +/* { dg-final { scan-assembler-times "ascii "int.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "st.0"[\t ]+[^\n]*btf_string" 1 } } */ + +int foo = 10; +int *pfoo = &foo; + +struct st +{ + int a; + int *pb; + struct st * next; +}; + +struct st * bar; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-pointers-2.c b/gcc/testsuite/gcc.dg/debug/btf/btf-pointers-2.c new file mode 100644 index 00000000000..c77b224d711 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-pointers-2.c @@ -0,0 +1,13 @@ +/* Test BTF generation for pointers to void. + + In this test, we expect that the pointer references type ID 0, the reserved + void typeid, and that no intermediate type is generated for void. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "[\t ]0x2000000[\t ]+[^\n]*btt_info" 1 } } */ + +/* { dg-final { scan-assembler-times "[\t ]0x1000000[\t ]+[^\n]*btt_info" 0 } } */ + +void *ptr; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-struct-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-struct-1.c new file mode 100644 index 00000000000..bc3281437c9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-struct-1.c @@ -0,0 +1,22 @@ +/* Test BTF generation of struct type. + + Two BTF_KIND_STRUCT records are expected. + - struct foo with 3 members + - struct data with 2 members */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "[\t ]0x4000003[\t ]+[^\n]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x4000002[\t ]+[^\n]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times "btm_name" 5 } } */ + +struct foo +{ + int after; + int before; + struct { + unsigned short n_valid; + int set[10]; + } data; +} my_foo; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-struct-2.c b/gcc/testsuite/gcc.dg/debug/btf/btf-struct-2.c new file mode 100644 index 00000000000..24514fcb31e --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-struct-2.c @@ -0,0 +1,19 @@ +/* Test BTF generation for struct type with a member which refers to an + unsupported type. + + BTF does not support floating point types (among other things). When + generating BTF for a struct (or union) type, members which refer to + unsupported types should be skipped. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* Expect a struct with only 2 members - 'f' should not be present. */ +/* { dg-final { scan-assembler-times "[\t ]0x4000002[\t ]+[^\n]*btt_info" 1 } } */ + +struct with_float +{ + int a; + float f; + char c; +} instance; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-typedef-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-typedef-1.c new file mode 100644 index 00000000000..472cc63f600 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-typedef-1.c @@ -0,0 +1,82 @@ +/* Test BTF generation for BTF_KIND_TYPEDEF records. + + 7 typedef records are expected. We expect the following types (among others): + [1] int 'int' size=4 offset=0 bits=32 SIGNED + [2] typedef 'my_int' type=1 + [3] typedef 'foo_int' type=1 + [4] typedef 'bar_int' type=1 + .. + [6] typedef 'CBAR' type=5 + .. + [8] typedef 'CBARP' type=7 + [9] struct '_node' size=16 + .. + [11] typedef 'node_t' type=9 + [12] struct '_arena' + .. + [15] typedef 'arena_t' type=12 + [16] var 'a' type=2 linkage=1 (global) + [17] var 'suitcase' type=15 linkage=1 (global) + [18] var 'b' type=3 linkage=1 (global) + [19] var 'c' type=4 linkage=1 (global) + [20] var 'd' type=11 linkage=1 (global) + [21] var 'destination' type=6 linkage=1 (global) + [22] var 'ticket' type=8 linkage=1 (global) + + Note that the order of the variables is not guaranteed, so we do not check + particular variables have exactly the right typedef. Instead, we check: + 1. 7 typedef records are generated, along with the correct strings for them. + 2. There is one variable pointing to each typedef. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "[\t ]0x8000000[\t ]+[^\n]*btt_info" 7 } } */ + +/* { dg-final { scan-assembler-times "ascii "my_int.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "foo_int.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "bar_int.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "CBAR.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "CBARP.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "node_t.0"[\t ]+[^\n]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii "arena_t.0"[\t ]+[^\n]*btf_string" 1 } } */ + +/* { dg-final { scan-assembler-times "[\t ]0x2[\t ]+[^\n]*btv_type" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x3[\t ]+[^\n]*btv_type" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x4[\t ]+[^\n]*btv_type" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x6[\t ]+[^\n]*btv_type" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0x8[\t ]+[^\n]*btv_type" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0xb[\t ]+[^\n]*btv_type" 1 } } */ +/* { dg-final { scan-assembler-times "[\t ]0xf[\t ]+[^\n]*btv_type" 1 } } */ + +typedef int my_int; +typedef int foo_int; +typedef int bar_int; + +typedef const bar_int CBAR; +typedef const bar_int * CBARP; + +typedef struct _node +{ + foo_int name_off; + bar_int info; + struct _node * next; +} node_t; + + +typedef struct _arena +{ + node_t nodes[16]; + my_int vardata; + bar_int flags; +} arena_t; + +my_int a; +foo_int b; +bar_int c; +node_t d; + +CBAR destination; +CBARP ticket = &destination; + +arena_t suitcase; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-union-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-union-1.c new file mode 100644 index 00000000000..d66843717b3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-union-1.c @@ -0,0 +1,16 @@ +/* Test BTF generation for union type. */ + +/* { dg-do compile ) */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* One union type with 4 members */ +/* { dg-final { scan-assembler-times "[\t ]0x5000004[\t ]+[^\n]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times "btm_name" 4 } } */ + +union onion +{ + int redness; + char *name; + unsigned short freshness; + unsigned short flavor; +} my_onion; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-variables-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-variables-1.c new file mode 100644 index 00000000000..a79ed1d53b7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-variables-1.c @@ -0,0 +1,33 @@ +/* BTF generation for variables. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* We expect 6 variables */ +/* { dg-final { scan-assembler-times "[\t ]0xe000000[\t ]+[^\n]*btv_info" 6 } } */ + +unsigned int x1; + +struct st +{ + int a; + int b; +}; + +union { + long int value; + struct st * pointer; +} bar; + </cut>