From b4b6ea46807ec9c01ed4f4f18a50840358d16c28 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Tue, 5 Jan 2021 13:25:56 +0000 Subject: libctf, ld: fix formatting of forwards to unions and enums The type printer was unconditionally printing these as if they were forwards to structs, even if they were forwards to unions or enums. ld/ChangeLog 2021-01-05 Nick Alcock * testsuite/ld-ctf/enum-forward.c: New test. * testsuite/ld-ctf/enum-forward.c: New results. libctf/ChangeLog 2021-01-05 Nick Alcock * ctf-types.c (ctf_type_aname): Print forwards to unions and enums properly. --- ld/ChangeLog | 5 +++++ ld/testsuite/ld-ctf/enum-forward.c | 2 ++ ld/testsuite/ld-ctf/enum-forward.d | 20 ++++++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 ld/testsuite/ld-ctf/enum-forward.c create mode 100644 ld/testsuite/ld-ctf/enum-forward.d (limited to 'ld') diff --git a/ld/ChangeLog b/ld/ChangeLog index 213aed0..b939f61 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,10 @@ 2021-01-05 Nick Alcock + * testsuite/ld-ctf/enum-forward.c: New test. + * testsuite/ld-ctf/enum-forward.c: New results. + +2021-01-05 Nick Alcock + * testsuite/ld-ctf/array.d: Adjust for dumper changes. * testsuite/ld-ctf/conflicting-cycle-1.B-1.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-1.B-2.d: Likewise. diff --git a/ld/testsuite/ld-ctf/enum-forward.c b/ld/testsuite/ld-ctf/enum-forward.c new file mode 100644 index 0000000..e0a64b8 --- /dev/null +++ b/ld/testsuite/ld-ctf/enum-forward.c @@ -0,0 +1,2 @@ +enum vibgyor; +char * (*get_color_name) (enum vibgyor); diff --git a/ld/testsuite/ld-ctf/enum-forward.d b/ld/testsuite/ld-ctf/enum-forward.d new file mode 100644 index 0000000..a83651e --- /dev/null +++ b/ld/testsuite/ld-ctf/enum-forward.d @@ -0,0 +1,20 @@ +#as: +#source: enum-forward.c +#objdump: --ctf=.ctf +#ld: -shared +#name: Forwards to enums + +.*: +file format .* + +Contents of CTF section .ctf: + + Header: + Magic number: 0xdff2 + Version: 4 \(CTF_VERSION_3\) +#... + Type section: .* \(0x48 bytes\) +#... + Data objects: + get_color_name -> 0x[0-9a-f]*: \(kind 3\) char \*\*\(\*\) \(enum vibgyor\) \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\) -> 0x[0-9a-f]*: \(kind 5\) char \*\(\*\) \(enum vibgyor\) \(aligned at 0x[0-9a-f]*\) + +#... -- cgit v1.1