public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug debug/114186] New: Incorrect CTF generated for multidimensional array @ 2024-03-01 6:34 ibhagat at gcc dot gnu.org 2024-03-01 18:29 ` [Bug debug/114186] " ibhagat at gcc dot gnu.org ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: ibhagat at gcc dot gnu.org @ 2024-03-01 6:34 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114186 Bug ID: 114186 Summary: Incorrect CTF generated for multidimensional array Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: ibhagat at gcc dot gnu.org Target Milestone: --- $ cat array.c int a[5][9][3]; $ gcc -O0 -gctf -dA -S array.c Excerpt from array.s: ... .long 0x17 # ctv_name .long 0x5 # ctv_typeidx => a variable of type id = 5 .long 0x1 # ctt_name .long 0x6000000 # ctt_info .long 0x4 # ctt_size or ctt_type .long 0x1000020 # ctf_encoding_data => type id = 1, type = int .long 0x5 # ctt_name .long 0x6000000 # ctt_info .long 0x8 # ctt_size or ctt_type .long 0x40 # ctf_encoding_data => type id = 2, type = long unsigned int .long 0 # ctt_name .long 0x12000000 # ctt_info .long 0 # ctt_size or ctt_type .long 0x1 # cta_contents .long 0x2 # cta_index .long 0x5 # cta_nelems => type id = 3, nelems = 5, array contents (cta_contents) of type with type id = 1 .long 0 # ctt_name .long 0x12000000 # ctt_info .long 0 # ctt_size or ctt_type .long 0x3 # cta_contents .long 0x2 # cta_index .long 0x9 # cta_nelems => type id = 4, nelems = 9, array contents (cta_contents) of type with type id = 3 .long 0 # ctt_name .long 0x12000000 # ctt_info .long 0 # ctt_size or ctt_type .long 0x4 # cta_contents .long 0x2 # cta_index .long 0x3 # cta_nelems => type id = 5, nelems = 3, array contents (cta_contents) of type with type id = 4 In other words, the data type of the variable is being emitted as if it were int a[3][9][5] ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug debug/114186] Incorrect CTF generated for multidimensional array 2024-03-01 6:34 [Bug debug/114186] New: Incorrect CTF generated for multidimensional array ibhagat at gcc dot gnu.org @ 2024-03-01 18:29 ` ibhagat at gcc dot gnu.org 2024-03-02 0:26 ` ibhagat at gcc dot gnu.org 2024-03-05 23:40 ` cvs-commit at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: ibhagat at gcc dot gnu.org @ 2024-03-01 18:29 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114186 --- Comment #1 from Indu Bhagat <ibhagat at gcc dot gnu.org> --- This in turn affects BTF generation too, because GCC internally uses the CTFC (CTF container) to create BTF info. $ bpftool btf dump file array.o [1] INT 'int' size=4 bits_offset=0 nr_bits=32 encoding=SIGNED [2] INT 'long unsigned int' size=8 bits_offset=0 nr_bits=64 encoding=(none) [3] ARRAY '(anon)' type_id=1 index_type_id=2 nr_elems=5 [4] ARRAY '(anon)' type_id=3 index_type_id=2 nr_elems=9 [5] ARRAY '(anon)' type_id=4 index_type_id=2 nr_elems=3 [6] VAR 'a' type_id=5, linkage=global [7] DATASEC '.bss' size=0 vlen=1 type_id=6 offset=0 size=540 (VAR 'a') ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug debug/114186] Incorrect CTF generated for multidimensional array 2024-03-01 6:34 [Bug debug/114186] New: Incorrect CTF generated for multidimensional array ibhagat at gcc dot gnu.org 2024-03-01 18:29 ` [Bug debug/114186] " ibhagat at gcc dot gnu.org @ 2024-03-02 0:26 ` ibhagat at gcc dot gnu.org 2024-03-05 23:40 ` cvs-commit at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: ibhagat at gcc dot gnu.org @ 2024-03-02 0:26 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114186 Indu Bhagat <ibhagat at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2024-03-02 Ever confirmed|0 |1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug debug/114186] Incorrect CTF generated for multidimensional array 2024-03-01 6:34 [Bug debug/114186] New: Incorrect CTF generated for multidimensional array ibhagat at gcc dot gnu.org 2024-03-01 18:29 ` [Bug debug/114186] " ibhagat at gcc dot gnu.org 2024-03-02 0:26 ` ibhagat at gcc dot gnu.org @ 2024-03-05 23:40 ` cvs-commit at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2024-03-05 23:40 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114186 --- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Indu Bhagat <ibhagat@gcc.gnu.org>: https://gcc.gnu.org/g:5d24bf3afd1bea3e51b87fb7ff24c21e29913999 commit r14-9325-g5d24bf3afd1bea3e51b87fb7ff24c21e29913999 Author: Cupertino Miranda <cupertino.miranda@oracle.com> Date: Thu Feb 29 10:56:13 2024 -0800 ctf: fix incorrect CTF for multi-dimensional array types PR debug/114186 DWARF DIEs of type DW_TAG_subrange_type are linked together to represent the information about the subsequent dimensions. The CTF processing was so far working through them in the opposite (incorrect) order. While fixing the issue, refactor the code a bit for readability. co-authored-By: Indu Bhagat <indu.bhagat@oracle.com> gcc/ PR debug/114186 * dwarf2ctf.cc (gen_ctf_array_type): Invoke the ctf_add_array () in the correct order of the dimensions. (gen_ctf_subrange_type): Refactor out handling of DW_TAG_subrange_type DIE to here. gcc/testsuite/ PR debug/114186 * gcc.dg/debug/ctf/ctf-array-6.c: Add test. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-03-05 23:40 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2024-03-01 6:34 [Bug debug/114186] New: Incorrect CTF generated for multidimensional array ibhagat at gcc dot gnu.org 2024-03-01 18:29 ` [Bug debug/114186] " ibhagat at gcc dot gnu.org 2024-03-02 0:26 ` ibhagat at gcc dot gnu.org 2024-03-05 23:40 ` cvs-commit at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).