aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2021-01-05 13:25:56 +0000
committerNick Alcock <nick.alcock@oracle.com>2021-01-05 14:53:39 +0000
commit57f97d0e6dd4dfbb54f2f39c5e59d5860040d0b6 (patch)
tree8761b8146292351d0056509f56eb08a73b082804
parentb09ad6eae985c6cf3138775de8e712bc116b4166 (diff)
downloadbinutils-57f97d0e6dd4dfbb54f2f39c5e59d5860040d0b6.zip
binutils-57f97d0e6dd4dfbb54f2f39c5e59d5860040d0b6.tar.gz
binutils-57f97d0e6dd4dfbb54f2f39c5e59d5860040d0b6.tar.bz2
libctf, ld: CTF dumper changes for consistency
In most places in CTF dumper output, we emit 0x... for hex strings, but in three places (top-level type IDs, string table offsets, and the file magic number) we don't emit the 0x. This is very confusing if by chance there are no hex digits in the output. Add 0x consistently to everything, and adjust tests accordingly. While we're at it, improve the indentation of the output so that subsequent lines in aggregate output are indented by at least as many columns as the colon in the type output. (Subsequent indentation is still 4 spaces at a time.) ld/ChangeLog 2021-01-05 Nick Alcock <nick.alcock@oracle.com> * 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. * testsuite/ld-ctf/conflicting-cycle-1.parent.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-2.A-1.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-2.A-2.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-2.parent.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-3.C-1.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-3.C-2.d: Likewise. * testsuite/ld-ctf/conflicting-cycle-3.parent.d: Likewise. * testsuite/ld-ctf/conflicting-enums.d: Likewise. * testsuite/ld-ctf/conflicting-typedefs.d: Likewise. * testsuite/ld-ctf/cross-tu-cyclic-conflicting.d: Likewise. * testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d: Likewise. * testsuite/ld-ctf/cross-tu-into-cycle.d: Likewise. * testsuite/ld-ctf/cross-tu-noncyclic.d: Likewise. * testsuite/ld-ctf/cycle-1.d: Likewise. * testsuite/ld-ctf/cycle-2.A.d: Likewise. * testsuite/ld-ctf/cycle-2.B.d: Likewise. * testsuite/ld-ctf/cycle-2.C.d: Likewise. * testsuite/ld-ctf/data-func-conflicted.d: Likewise. * testsuite/ld-ctf/diag-cttname-null.d: Likewise. * testsuite/ld-ctf/diag-cuname.d: Likewise. * testsuite/ld-ctf/diag-parlabel.d: Likewise. * testsuite/ld-ctf/diag-wrong-magic-number-mixed.d: Likewise. * testsuite/ld-ctf/function.d: Likewise. * testsuite/ld-ctf/slice.d: Likewise. * testsuite/ld-ctf/super-sub-cycles.d: Likewise. libctf/ChangeLog 2021-01-05 Nick Alcock <nick.alcock@oracle.com> * ctf-dump.c (ctf_dump_format_type): Add 0x to hex type IDs. (ctf_dump_header): Add 0x to the hex magic number. (ctf_dump_str): Add 0x to the hex string offsets. (ctf_dump_membstate_t) <cdm_toplevel_indent>: New. (ctf_dump_type): Adjust. Free it when we're done. (type_hex_digits): New. (ctf_dump_member): Align output depending on the width of the type ID being generated. Use printf padding, not a loop, to generate indentation.
-rw-r--r--ld/ChangeLog31
-rw-r--r--ld/testsuite/ld-ctf/array.d6
-rw-r--r--ld/testsuite/ld-ctf/conflicting-cycle-1.B-1.d10
-rw-r--r--ld/testsuite/ld-ctf/conflicting-cycle-1.B-2.d12
-rw-r--r--ld/testsuite/ld-ctf/conflicting-cycle-1.parent.d6
-rw-r--r--ld/testsuite/ld-ctf/conflicting-cycle-2.A-1.d12
-rw-r--r--ld/testsuite/ld-ctf/conflicting-cycle-2.A-2.d14
-rw-r--r--ld/testsuite/ld-ctf/conflicting-cycle-2.parent.d14
-rw-r--r--ld/testsuite/ld-ctf/conflicting-cycle-3.C-1.d12
-rw-r--r--ld/testsuite/ld-ctf/conflicting-cycle-3.C-2.d14
-rw-r--r--ld/testsuite/ld-ctf/conflicting-cycle-3.parent.d8
-rw-r--r--ld/testsuite/ld-ctf/conflicting-enums.d10
-rw-r--r--ld/testsuite/ld-ctf/conflicting-typedefs.d18
-rw-r--r--ld/testsuite/ld-ctf/cross-tu-cyclic-conflicting.d38
-rw-r--r--ld/testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d34
-rw-r--r--ld/testsuite/ld-ctf/cross-tu-into-cycle.d22
-rw-r--r--ld/testsuite/ld-ctf/cross-tu-noncyclic.d24
-rw-r--r--ld/testsuite/ld-ctf/cycle-1.d12
-rw-r--r--ld/testsuite/ld-ctf/cycle-2.A.d14
-rw-r--r--ld/testsuite/ld-ctf/cycle-2.B.d14
-rw-r--r--ld/testsuite/ld-ctf/cycle-2.C.d14
-rw-r--r--ld/testsuite/ld-ctf/data-func-conflicted.d6
-rw-r--r--ld/testsuite/ld-ctf/diag-cttname-null.d8
-rw-r--r--ld/testsuite/ld-ctf/diag-cuname.d12
-rw-r--r--ld/testsuite/ld-ctf/diag-parlabel.d12
-rw-r--r--ld/testsuite/ld-ctf/diag-wrong-magic-number-mixed.d14
-rw-r--r--ld/testsuite/ld-ctf/function.d6
-rw-r--r--ld/testsuite/ld-ctf/slice.d14
-rw-r--r--ld/testsuite/ld-ctf/super-sub-cycles.d30
-rw-r--r--libctf/ChangeLog12
-rw-r--r--libctf/ctf-dump.c50
31 files changed, 287 insertions, 216 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index dee8378..21ba58a 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,34 @@
+2021-01-05 Nick Alcock <nick.alcock@oracle.com>
+
+ * 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.
+ * testsuite/ld-ctf/conflicting-cycle-1.parent.d: Likewise.
+ * testsuite/ld-ctf/conflicting-cycle-2.A-1.d: Likewise.
+ * testsuite/ld-ctf/conflicting-cycle-2.A-2.d: Likewise.
+ * testsuite/ld-ctf/conflicting-cycle-2.parent.d: Likewise.
+ * testsuite/ld-ctf/conflicting-cycle-3.C-1.d: Likewise.
+ * testsuite/ld-ctf/conflicting-cycle-3.C-2.d: Likewise.
+ * testsuite/ld-ctf/conflicting-cycle-3.parent.d: Likewise.
+ * testsuite/ld-ctf/conflicting-enums.d: Likewise.
+ * testsuite/ld-ctf/conflicting-typedefs.d: Likewise.
+ * testsuite/ld-ctf/cross-tu-cyclic-conflicting.d: Likewise.
+ * testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d: Likewise.
+ * testsuite/ld-ctf/cross-tu-into-cycle.d: Likewise.
+ * testsuite/ld-ctf/cross-tu-noncyclic.d: Likewise.
+ * testsuite/ld-ctf/cycle-1.d: Likewise.
+ * testsuite/ld-ctf/cycle-2.A.d: Likewise.
+ * testsuite/ld-ctf/cycle-2.B.d: Likewise.
+ * testsuite/ld-ctf/cycle-2.C.d: Likewise.
+ * testsuite/ld-ctf/data-func-conflicted.d: Likewise.
+ * testsuite/ld-ctf/diag-cttname-null.d: Likewise.
+ * testsuite/ld-ctf/diag-cuname.d: Likewise.
+ * testsuite/ld-ctf/diag-parlabel.d: Likewise.
+ * testsuite/ld-ctf/diag-wrong-magic-number-mixed.d: Likewise.
+ * testsuite/ld-ctf/function.d: Likewise.
+ * testsuite/ld-ctf/slice.d: Likewise.
+ * testsuite/ld-ctf/super-sub-cycles.d: Likewise.
+
2021-01-05 Alan Modra <amodra@gmail.com>
* testsuite/ld-scripts/sysroot-prefix.exp: Exclude some targets.
diff --git a/ld/testsuite/ld-ctf/array.d b/ld/testsuite/ld-ctf/array.d
index 82e9939..e07d63e 100644
--- a/ld/testsuite/ld-ctf/array.d
+++ b/ld/testsuite/ld-ctf/array.d
@@ -10,7 +10,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Data object section: .* \(0x8 bytes\)
@@ -29,7 +29,7 @@ Contents of CTF section .ctf:
Types:
#...
- [0-9a-f]*: .*\[10\] .*
+ 0x[0-9a-f]*: .*\[10\] .*
#...
- [0-9a-f]*: .*\[10\] .*
+ 0x[0-9a-f]*: .*\[10\] .*
#...
diff --git a/ld/testsuite/ld-ctf/conflicting-cycle-1.B-1.d b/ld/testsuite/ld-ctf/conflicting-cycle-1.B-1.d
index 40636f0..99b0564 100644
--- a/ld/testsuite/ld-ctf/conflicting-cycle-1.B-1.d
+++ b/ld/testsuite/ld-ctf/conflicting-cycle-1.B-1.d
@@ -14,7 +14,7 @@
CTF archive member: .*/B.c:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Parent name: .ctf
@@ -30,12 +30,12 @@ CTF archive member: .*/B.c:
Function objects:
Variables:
- b -> 80000001: struct B \(size 0x[0-9]*\)
+ b -> 0x80000001: struct B \(size 0x[0-9]*\)
Types:
- 8[0-9a-f]*: struct B .*
- \[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct B \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
+ 0x8[0-9a-f]*: struct B .*
+ *\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct B \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
Strings:
#...
diff --git a/ld/testsuite/ld-ctf/conflicting-cycle-1.B-2.d b/ld/testsuite/ld-ctf/conflicting-cycle-1.B-2.d
index c6fdceb..32bc5c2 100644
--- a/ld/testsuite/ld-ctf/conflicting-cycle-1.B-2.d
+++ b/ld/testsuite/ld-ctf/conflicting-cycle-1.B-2.d
@@ -14,7 +14,7 @@
CTF archive member: .*/B-2.c:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Parent name: .ctf
@@ -30,13 +30,13 @@ CTF archive member: .*/B-2.c:
Function objects:
Variables:
- b -> 80000001: struct B \(.*
+ b -> 0x80000001: struct B \(.*
Types:
- 8[0-9a-f]*: struct B \(.*
- \[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct B \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:32 \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
+ 0x8[0-9a-f]*: struct B \(.*
+ *\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct B \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:32 \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
Strings:
#...
diff --git a/ld/testsuite/ld-ctf/conflicting-cycle-1.parent.d b/ld/testsuite/ld-ctf/conflicting-cycle-1.parent.d
index 558eb36..4cbe9b6 100644
--- a/ld/testsuite/ld-ctf/conflicting-cycle-1.parent.d
+++ b/ld/testsuite/ld-ctf/conflicting-cycle-1.parent.d
@@ -13,7 +13,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Type section: .* \(0xac bytes\)
@@ -29,8 +29,8 @@ Contents of CTF section .ctf:
#...
Types:
#...
- [0-9a-f]*: struct B \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 9\) struct B \(.*
+ 0x[0-9a-f]*: struct B \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 9\) struct B \(.*
#...
CTF archive member: .*:
#...
diff --git a/ld/testsuite/ld-ctf/conflicting-cycle-2.A-1.d b/ld/testsuite/ld-ctf/conflicting-cycle-2.A-1.d
index 79282a2..5e5fade 100644
--- a/ld/testsuite/ld-ctf/conflicting-cycle-2.A-1.d
+++ b/ld/testsuite/ld-ctf/conflicting-cycle-2.A-1.d
@@ -16,7 +16,7 @@
CTF archive member: .*/A.c:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Parent name: .*
@@ -29,13 +29,13 @@ CTF archive member: .*/A.c:
Function objects:
Variables:
- a -> 80000001: struct A \(size 0x[0-9a-f]*\)
+ a -> 0x80000001: struct A \(size 0x[0-9a-f]*\)
Types:
- 8[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
+ 0x8[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
Strings:
- 0:
+ 0x0:
#...
diff --git a/ld/testsuite/ld-ctf/conflicting-cycle-2.A-2.d b/ld/testsuite/ld-ctf/conflicting-cycle-2.A-2.d
index 4f6d44e..ff6785cf 100644
--- a/ld/testsuite/ld-ctf/conflicting-cycle-2.A-2.d
+++ b/ld/testsuite/ld-ctf/conflicting-cycle-2.A-2.d
@@ -16,7 +16,7 @@
CTF archive member: .*/A-2.c:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Parent name: .*
@@ -29,14 +29,14 @@ CTF archive member: .*/A-2.c:
Function objects:
Variables:
- a -> 80000001: struct A \(size 0x[0-9a-f]*\)
+ a -> 0x80000001: struct A \(size 0x[0-9a-f]*\)
Types:
- 8[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:32 \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
+ 0x8[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:32 \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
Strings:
- 0:
+ 0x0:
#...
diff --git a/ld/testsuite/ld-ctf/conflicting-cycle-2.parent.d b/ld/testsuite/ld-ctf/conflicting-cycle-2.parent.d
index 95aa17d..d111ef7 100644
--- a/ld/testsuite/ld-ctf/conflicting-cycle-2.parent.d
+++ b/ld/testsuite/ld-ctf/conflicting-cycle-2.parent.d
@@ -15,7 +15,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Type section: .* \(0x94 bytes\)
@@ -28,13 +28,13 @@ Contents of CTF section .ctf:
Function objects:
Variables:
- cycle_1 -> [0-9a-f]*: struct cycle_1 \* \(size 0x[0-9a-f]*\) -> [0-9a-f]*: struct cycle_1 \(size 0x[0-9a-f]*\)
+ cycle_1 -> 0x[0-9a-f]*: struct cycle_1 \* \(size 0x[0-9a-f]*\) -> 0x[0-9a-f]*: struct cycle_1 \(size 0x[0-9a-f]*\)
Types:
#...
- [0-9a-f]*: struct cycle_1 \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct cycle_1 \(aligned at 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct cycle_1 \* next \(aligned at 0x[0-9a-f]*\)
+ 0x[0-9a-f]*: struct cycle_1 \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct cycle_1 \(aligned at 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(aligned at 0x[0-9a-f]*\)
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct cycle_1 \* next \(aligned at 0x[0-9a-f]*\)
#...
diff --git a/ld/testsuite/ld-ctf/conflicting-cycle-3.C-1.d b/ld/testsuite/ld-ctf/conflicting-cycle-3.C-1.d
index 48078b9..df61153 100644
--- a/ld/testsuite/ld-ctf/conflicting-cycle-3.C-1.d
+++ b/ld/testsuite/ld-ctf/conflicting-cycle-3.C-1.d
@@ -15,7 +15,7 @@
CTF archive member: .*/C.c:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Parent name: .*
@@ -28,13 +28,13 @@ CTF archive member: .*/C.c:
Function objects:
Variables:
- c -> 80000001: struct C \(size 0x[0-9a-f]*\)
+ c -> 0x80000001: struct C \(size 0x[0-9a-f]*\)
Types:
- 8[0-9a-f]*: struct C \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct C \(aligned at 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
+ 0x8[0-9a-f]*: struct C \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct C \(aligned at 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
Strings:
- 0:
+ 0x0:
#...
diff --git a/ld/testsuite/ld-ctf/conflicting-cycle-3.C-2.d b/ld/testsuite/ld-ctf/conflicting-cycle-3.C-2.d
index 854a719..e1cfd0c 100644
--- a/ld/testsuite/ld-ctf/conflicting-cycle-3.C-2.d
+++ b/ld/testsuite/ld-ctf/conflicting-cycle-3.C-2.d
@@ -15,7 +15,7 @@
CTF archive member: .*/C-2.c:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Parent name: .*
@@ -28,14 +28,14 @@ CTF archive member: .*/C-2.c:
Function objects:
Variables:
- c -> 80000001: struct C \(size 0x[0-9a-f]*\)
+ c -> 0x80000001: struct C \(size 0x[0-9a-f]*\)
Types:
- 8[0-9a-f]*: struct C \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct C \(aligned at 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
+ 0x8[0-9a-f]*: struct C \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 6\) struct C \(aligned at 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(aligned at 0x[0-9a-f]*\)
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 1\) int wombat:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
Strings:
- 0:
+ 0x0:
#...
diff --git a/ld/testsuite/ld-ctf/conflicting-cycle-3.parent.d b/ld/testsuite/ld-ctf/conflicting-cycle-3.parent.d
index 28525b6..11d2a04 100644
--- a/ld/testsuite/ld-ctf/conflicting-cycle-3.parent.d
+++ b/ld/testsuite/ld-ctf/conflicting-cycle-3.parent.d
@@ -14,7 +14,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Type section: 0x0 -- 0x57 \(0x58 bytes\)
@@ -30,9 +30,9 @@ Contents of CTF section .ctf:
Types:
#...
- [0-9a-f]*: int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
+ 0x[0-9a-f]*: int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
#...
Strings:
- 0:
+ 0x0:
#...
diff --git a/ld/testsuite/ld-ctf/conflicting-enums.d b/ld/testsuite/ld-ctf/conflicting-enums.d
index 8b16b4c..b93d812 100644
--- a/ld/testsuite/ld-ctf/conflicting-enums.d
+++ b/ld/testsuite/ld-ctf/conflicting-enums.d
@@ -10,7 +10,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Types:
@@ -20,16 +20,16 @@ Contents of CTF section .ctf:
CTF archive member: .*enum.*\.c:
#...
Types:
- 8[0-9a-f]*: enum day_of_the_week \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 8\) enum day_of_the_week \(aligned at 0x[0-9a-f]*\)
+ 0x8[0-9a-f]*: enum day_of_the_week \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 8\) enum day_of_the_week \(aligned at 0x[0-9a-f]*\)
Strings:
#...
CTF archive member: .*enum.*\.c:
#...
Types:
- 8[0-9a-f]*: enum day_of_the_week \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 8\) enum day_of_the_week \(aligned at 0x[0-9a-f]*\)
+ 0x8[0-9a-f]*: enum day_of_the_week \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x8[0-9a-f]*\) \(kind 8\) enum day_of_the_week \(aligned at 0x[0-9a-f]*\)
Strings:
#...
diff --git a/ld/testsuite/ld-ctf/conflicting-typedefs.d b/ld/testsuite/ld-ctf/conflicting-typedefs.d
index 09d6c3c..309e453 100644
--- a/ld/testsuite/ld-ctf/conflicting-typedefs.d
+++ b/ld/testsuite/ld-ctf/conflicting-typedefs.d
@@ -10,24 +10,24 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Types:
- 1: .*int .*
- .*
- [0-9]:.*int .*
- .*
- [0-9]: word .*
- \[0x0\] \(ID 0x[0-9]\) \(kind 10\) word \(aligned at 0x[48]\)
+ 0x1: .*int .*
+ .*
+ 0x[0-9]:.*int .*
+ .*
+ 0x[0-9]: word .*
+ *\[0x0\] \(ID 0x[0-9]\) \(kind 10\) word \(aligned at 0x[48]\)
Strings:
#...
CTF archive member: .*typedef.*\.c:
#...
Types:
- 80000001: word .*
- \[0x0\] \(ID 0x80000001\) \(kind 10\) word \(aligned at 0x[48]\)
+ 0x80000001: word .*
+ *\[0x0\] \(ID 0x80000001\) \(kind 10\) word \(aligned at 0x[48]\)
Strings:
#...
diff --git a/ld/testsuite/ld-ctf/cross-tu-cyclic-conflicting.d b/ld/testsuite/ld-ctf/cross-tu-cyclic-conflicting.d
index aa36533..3c975eb 100644
--- a/ld/testsuite/ld-ctf/cross-tu-cyclic-conflicting.d
+++ b/ld/testsuite/ld-ctf/cross-tu-cyclic-conflicting.d
@@ -14,20 +14,20 @@ Contents of CTF section \.ctf:
#...
Types:
#...
- [0-9a-f]*: long int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
+ 0x[0-9a-f]*: long int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
#...
- [0-9a-f]*: struct B .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
+ 0x[0-9a-f]*: struct B .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
#...
- [0-9a-f]*: int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
+ 0x[0-9a-f]*: int \[0x0:0x[0-9a-f]*\] \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
#...
- [0-9a-f]*: struct A .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 9\) struct A .*
+ 0x[0-9a-f]*: struct A .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 9\) struct A .*
#...
- [0-9a-f]*: struct C .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C .*
+ 0x[0-9a-f]*: struct C .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C .*
#...
Strings:
@@ -36,10 +36,10 @@ Contents of CTF section \.ctf:
CTF archive member: .*/ld/testsuite/ld-ctf/cross-tu-cyclic-1\.c:
#...
Types:
- 80.*[0-9a-f]*: struct A .*
- \[0x0\] \(ID 0x80.*\) \(kind 6\) struct A .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
+ 0x80.*[0-9a-f]*: struct A .*
+ *\[0x0\] \(ID 0x80.*\) \(kind 6\) struct A .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
Strings:
#...
@@ -47,11 +47,11 @@ CTF archive member: .*/ld/testsuite/ld-ctf/cross-tu-cyclic-1\.c:
CTF archive member: .*/ld/testsuite/ld-ctf/cross-tu-cyclic-2\.c:
#...
Types:
- 80.*[0-9a-f]*: struct A .*
- \[0x0\] \(ID 0x80.*\) \(kind 6\) struct A .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* bar .*
+ 0x80.*[0-9a-f]*: struct A .*
+ *\[0x0\] \(ID 0x80.*\) \(kind 6\) struct A .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* bar .*
Strings:
#...
diff --git a/ld/testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d b/ld/testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d
index 39f5c18..9b0d738 100644
--- a/ld/testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d
+++ b/ld/testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d
@@ -14,7 +14,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
@@ -29,22 +29,22 @@ Contents of CTF section .ctf:
Types:
#...
- [0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo \(aligned at 0x[0-9a-f]*\)
- [0-9a-f]*: long int .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int:[0-9].*
- [0-9a-f]*: struct B \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(aligned at 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int foo:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* bar \(aligned at 0x[0-9a-f]*\)
- [0-9a-f]*: struct B \* \(size 0x[0-9a-f]*\) -> [0-9a-f]*: struct B \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* \(aligned at 0x[0-9a-f]*\)
- [0-9a-f]*: struct A \* \(size 0x[0-9a-f]*\) -> [0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* \(aligned at 0x[0-9a-f]*\)
- [0-9a-f]*: int .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:.*
+ 0x[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]\) \(kind 6\) struct A \(aligned at 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo \(aligned at 0x[0-9a-f]*\)
+ 0x[0-9a-f]*: long int .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int:[0-9].*
+ 0x[0-9a-f]*: struct B \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(aligned at 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int foo:[0-9]* \(aligned at 0x[0-9a-f]*, format 0x1, offset:bits 0x0:0x[0-9a-f]*\)
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* bar \(aligned at 0x[0-9a-f]*\)
+ 0x[0-9a-f]*: struct B \* \(size 0x[0-9a-f]*\) -> 0x[0-9a-f]*: struct B \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* \(aligned at 0x[0-9a-f]*\)
+ 0x[0-9a-f]*: struct A \* \(size 0x[0-9a-f]*\) -> 0x[0-9a-f]*: struct A \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* \(aligned at 0x[0-9a-f]*\)
+ 0x[0-9a-f]*: int .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int:.*
Strings:
#...
diff --git a/ld/testsuite/ld-ctf/cross-tu-into-cycle.d b/ld/testsuite/ld-ctf/cross-tu-into-cycle.d
index 6bfdc40..a21fedc 100644
--- a/ld/testsuite/ld-ctf/cross-tu-into-cycle.d
+++ b/ld/testsuite/ld-ctf/cross-tu-into-cycle.d
@@ -16,7 +16,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
@@ -31,16 +31,16 @@ Contents of CTF section .ctf:
conflicty -> .*
Types:
- [0-9a-f]*: struct A .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
- [0-9a-f]*: struct B .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* next .*
- [0-9a-f]*: struct B \* .*
- \[0x0\] .*
- [0-9a-f]*: struct A \* .*
- \[0x0\] .*
+ 0x[0-9a-f]*: struct A .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
+ 0x[0-9a-f]*: struct B .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* next .*
+ 0x[0-9a-f]*: struct B \* .*
+ *\[0x0\] .*
+ 0x[0-9a-f]*: struct A \* .*
+ *\[0x0\] .*
Strings:
#...
diff --git a/ld/testsuite/ld-ctf/cross-tu-noncyclic.d b/ld/testsuite/ld-ctf/cross-tu-noncyclic.d
index 418119a..d96e5d2 100644
--- a/ld/testsuite/ld-ctf/cross-tu-noncyclic.d
+++ b/ld/testsuite/ld-ctf/cross-tu-noncyclic.d
@@ -12,7 +12,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Type section: .* \(0x74 bytes\)
@@ -29,18 +29,18 @@ Contents of CTF section .ctf:
Types:
#...
- [0-9a-f]*: struct A .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:[0-9]* .*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
+ 0x[0-9a-f]*: struct A .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) long int a:[0-9]* .*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* foo .*
#...
- [0-9a-f]*: struct B .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int foo:[0-9]* .*
+ 0x[0-9a-f]*: struct B .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int foo:[0-9]* .*
#...
- [0-9a-f]*: struct B \* \(size 0x[0-9a-f]*\) -\> [0-9a-f]*: struct B .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* .*
+ 0x[0-9a-f]*: struct B \* \(size 0x[0-9a-f]*\) -> 0x[0-9a-f]*: struct B .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* .*
#...
- [0-9a-f]*: struct A \* \(size 0x[0-9a-f]*\) -> [0-9a-f]*: struct A .*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* .*
+ 0x[0-9a-f]*: struct A \* \(size 0x[0-9a-f]*\) -> 0x[0-9a-f]*: struct A .*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* .*
#...
diff --git a/ld/testsuite/ld-ctf/cycle-1.d b/ld/testsuite/ld-ctf/cycle-1.d
index 8e9530b..5787093 100644
--- a/ld/testsuite/ld-ctf/cycle-1.d
+++ b/ld/testsuite/ld-ctf/cycle-1.d
@@ -12,7 +12,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Type section: .* \(0xa8 bytes\)
@@ -28,9 +28,9 @@ Contents of CTF section .ctf:
#...
Types:
#...
- [0-9a-f]*: struct cycle_1 \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct cycle_1 \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct cycle_1 \* next \(.*
+ 0x[0-9a-f]*: struct cycle_1 \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct cycle_1 \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct cycle_1 \* next \(.*
#...
diff --git a/ld/testsuite/ld-ctf/cycle-2.A.d b/ld/testsuite/ld-ctf/cycle-2.A.d
index a909b90..ddb5381 100644
--- a/ld/testsuite/ld-ctf/cycle-2.A.d
+++ b/ld/testsuite/ld-ctf/cycle-2.A.d
@@ -11,7 +11,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Type section: .* \(0x6c bytes\)
@@ -25,16 +25,16 @@ Contents of CTF section .ctf:
Variables:
#...
- a -> [0-9a-f]*: struct A \(.*
+ a -> 0x[0-9a-f]*: struct A \(.*
#...
Types:
#...
- [0-9a-f]*: struct A \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
+ 0x[0-9a-f]*: struct A \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
#...
Strings:
- 0:
+ 0x0:
#...
- [0-9a-f]*: A
+ 0x[0-9a-f]*: A
#...
diff --git a/ld/testsuite/ld-ctf/cycle-2.B.d b/ld/testsuite/ld-ctf/cycle-2.B.d
index 320e17c..1d1cdc5 100644
--- a/ld/testsuite/ld-ctf/cycle-2.B.d
+++ b/ld/testsuite/ld-ctf/cycle-2.B.d
@@ -11,7 +11,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Type section: .* \(0x6c bytes\)
@@ -25,16 +25,16 @@ Contents of CTF section .ctf:
Variables:
#...
- b -> [0-9a-f]*: struct B \(.*
+ b -> 0x[0-9a-f]*: struct B \(.*
#...
Types:
#...
- [0-9a-f]*: struct B \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
+ 0x[0-9a-f]*: struct B \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
#...
Strings:
- 0:
+ 0x0:
#...
- [0-9a-f]*: B
+ 0x[0-9a-f]*: B
#...
diff --git a/ld/testsuite/ld-ctf/cycle-2.C.d b/ld/testsuite/ld-ctf/cycle-2.C.d
index df43606..4d8f145 100644
--- a/ld/testsuite/ld-ctf/cycle-2.C.d
+++ b/ld/testsuite/ld-ctf/cycle-2.C.d
@@ -11,7 +11,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Type section: .* \(0x6c bytes\)
@@ -25,16 +25,16 @@ Contents of CTF section .ctf:
Variables:
#...
- c -> [0-9a-f]*: struct C \(.*
+ c -> 0x[0-9a-f]*: struct C \(.*
#...
Types:
#...
- [0-9a-f]*: struct C \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
+ 0x[0-9a-f]*: struct C \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
#...
Strings:
- 0:
+ 0x0:
#...
- [0-9a-f]*: C
+ 0x[0-9a-f]*: C
#...
diff --git a/ld/testsuite/ld-ctf/data-func-conflicted.d b/ld/testsuite/ld-ctf/data-func-conflicted.d
index 1fa8bb2..62855f8 100644
--- a/ld/testsuite/ld-ctf/data-func-conflicted.d
+++ b/ld/testsuite/ld-ctf/data-func-conflicted.d
@@ -10,7 +10,7 @@
Contents of CTF section \.ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Data object section: .* \(0xc bytes\)
@@ -34,7 +34,7 @@ Contents of CTF section \.ctf:
CTF archive member: .*/data-func-1\.c:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Parent name: \.ctf
@@ -59,5 +59,5 @@ CTF archive member: .*/data-func-1\.c:
Variables:
Types:
- 80000001: foo_t .* -> .* int .*
+ 0x80000001: foo_t .* -> .* int .*
#...
diff --git a/ld/testsuite/ld-ctf/diag-cttname-null.d b/ld/testsuite/ld-ctf/diag-cttname-null.d
index 4523dbc..00db425 100644
--- a/ld/testsuite/ld-ctf/diag-cttname-null.d
+++ b/ld/testsuite/ld-ctf/diag-cttname-null.d
@@ -9,7 +9,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Data objects:
@@ -17,7 +17,7 @@ Contents of CTF section .ctf:
#...
Types:
#...
- [0-9a-f]*: struct \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
+ 0x[0-9a-f]*: struct \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
#...
diff --git a/ld/testsuite/ld-ctf/diag-cuname.d b/ld/testsuite/ld-ctf/diag-cuname.d
index 45e9a7e..19a4bfd 100644
--- a/ld/testsuite/ld-ctf/diag-cuname.d
+++ b/ld/testsuite/ld-ctf/diag-cuname.d
@@ -9,7 +9,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Compilation unit name: \(\?\)
@@ -29,12 +29,12 @@ Contents of CTF section .ctf:
Types:
#...
- [0-9a-f]*: struct A \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
+ 0x[0-9a-f]*: struct A \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
#...
Strings:
- 0:
+ 0x0:
#...
- [0-9a-f]*: \(\?\)
+ 0x[0-9a-f]*: \(\?\)
#...
diff --git a/ld/testsuite/ld-ctf/diag-parlabel.d b/ld/testsuite/ld-ctf/diag-parlabel.d
index f0f4024..b2b047c 100644
--- a/ld/testsuite/ld-ctf/diag-parlabel.d
+++ b/ld/testsuite/ld-ctf/diag-parlabel.d
@@ -9,7 +9,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Compilation unit name: .*A.c
@@ -28,12 +28,12 @@ Contents of CTF section .ctf:
Types:
#...
- [0-9a-f]*: struct A \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
+ 0x[0-9a-f]*: struct A \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
#...
Strings:
- 0:
+ 0x0:
#...
- [0-9a-f]*: A
+ 0x[0-9a-f]*: A
#...
diff --git a/ld/testsuite/ld-ctf/diag-wrong-magic-number-mixed.d b/ld/testsuite/ld-ctf/diag-wrong-magic-number-mixed.d
index cb39498..8fc1cc8 100644
--- a/ld/testsuite/ld-ctf/diag-wrong-magic-number-mixed.d
+++ b/ld/testsuite/ld-ctf/diag-wrong-magic-number-mixed.d
@@ -10,7 +10,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Variable section: 0x0 -- 0x17 \(0x18 bytes\)
@@ -25,16 +25,16 @@ Contents of CTF section .ctf:
Variables:
#...
- b -> [0-9a-f]*: struct B \(.*
+ b -> 0x[0-9a-f]*: struct B \(.*
#...
Types:
#...
- [0-9a-f]*: struct B \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
+ 0x[0-9a-f]*: struct B \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct C \* c \(.*
#...
Strings:
- 0:
+ 0x0:
#...
- [0-9a-f]*: B
+ 0x[0-9a-f]*: B
#...
diff --git a/ld/testsuite/ld-ctf/function.d b/ld/testsuite/ld-ctf/function.d
index f5303d7..241adc2 100644
--- a/ld/testsuite/ld-ctf/function.d
+++ b/ld/testsuite/ld-ctf/function.d
@@ -9,7 +9,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Compilation unit name: .*function.c
@@ -22,6 +22,6 @@ Contents of CTF section .ctf:
#...
Types:
#...
- [0-9a-f]*: int \(\*\) \(char, int, float, void \*, void \(\*\)\(\*\) \(int\)\) \(size 0x0\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 5\) int \(\*\) \(char, int[0-9]*, float, void \*, void \(\*\)\(\*\) \(int\)\) \(aligned at 0x[0-9a-f]*\)
+ 0x[0-9a-f]*: int \(\*\) \(char, int, float, void \*, void \(\*\)\(\*\) \(int\)\) \(size 0x0\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 5\) int \(\*\) \(char, int[0-9]*, float, void \*, void \(\*\)\(\*\) \(int\)\) \(aligned at 0x[0-9a-f]*\)
#...
diff --git a/ld/testsuite/ld-ctf/slice.d b/ld/testsuite/ld-ctf/slice.d
index b493ce0..e42ffdf 100644
--- a/ld/testsuite/ld-ctf/slice.d
+++ b/ld/testsuite/ld-ctf/slice.d
@@ -9,7 +9,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Compilation unit name: .*slice.c
@@ -23,10 +23,10 @@ Contents of CTF section .ctf:
#...
Types:
#...
- [0-9a-f]*: struct slices \(size 0x[0-9a-f]*\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct slices \(aligned at 0x1\)
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int one:1 \(aligned at 0x1, format 0x1, offset:bits 0x0:0x1\)
- \[0x1\] \(ID 0x[0-9a-f]*\) \(kind 1\) int two:2 \(aligned at 0x1, format 0x1, offset:bits 0x1:0x2\)
- \[0x3\] \(ID 0x[0-9a-f]*\) \(kind 1\) int six:6 \(aligned at 0x1, format 0x1, offset:bits 0x3:0x6\)
- \[0x9\] \(ID 0x[0-9a-f]*\) \(kind 1\) int ten:10 \(aligned at 0x2, format 0x1, offset:bits 0x9:0xa\)
+ 0x[0-9a-f]*: struct slices \(size 0x[0-9a-f]*\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct slices \(aligned at 0x1\)
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 1\) int one:1 \(aligned at 0x1, format 0x1, offset:bits 0x0:0x1\)
+ *\[0x1\] \(ID 0x[0-9a-f]*\) \(kind 1\) int two:2 \(aligned at 0x1, format 0x1, offset:bits 0x1:0x2\)
+ *\[0x3\] \(ID 0x[0-9a-f]*\) \(kind 1\) int six:6 \(aligned at 0x1, format 0x1, offset:bits 0x3:0x6\)
+ *\[0x9\] \(ID 0x[0-9a-f]*\) \(kind 1\) int ten:10 \(aligned at 0x2, format 0x1, offset:bits 0x9:0xa\)
#...
diff --git a/ld/testsuite/ld-ctf/super-sub-cycles.d b/ld/testsuite/ld-ctf/super-sub-cycles.d
index e4707d3..65a43a4 100644
--- a/ld/testsuite/ld-ctf/super-sub-cycles.d
+++ b/ld/testsuite/ld-ctf/super-sub-cycles.d
@@ -9,7 +9,7 @@
Contents of CTF section .ctf:
Header:
- Magic number: dff2
+ Magic number: 0xdff2
Version: 4 \(CTF_VERSION_3\)
#...
Compilation unit name: .*super-sub-cycles.c
@@ -18,18 +18,18 @@ Contents of CTF section .ctf:
#...
Types:
#...
- [0-9a-f]*: struct A \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B b \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C c \(.*
- \[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct D d \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct D d \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct X x \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct Y y \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct Z z \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct Y \* y \(.*
- \[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct D \* d \(.*
+ 0x[0-9a-f]*: struct A \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct A \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct B b \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct C c \(.*
+ *\[0x0\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct A \* a \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct D d \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct D d \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct B \* b \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct X x \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct Y y \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 6\) struct Z z \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct Y \* y \(.*
+ *\[0x[0-9a-f]*\] \(ID 0x[0-9a-f]*\) \(kind 3\) struct D \* d \(.*
#...
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index cc8e34a..99f9022 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,5 +1,17 @@
2021-01-05 Nick Alcock <nick.alcock@oracle.com>
+ * ctf-dump.c (ctf_dump_format_type): Add 0x to hex type IDs.
+ (ctf_dump_header): Add 0x to the hex magic number.
+ (ctf_dump_str): Add 0x to the hex string offsets.
+ (ctf_dump_membstate_t) <cdm_toplevel_indent>: New.
+ (ctf_dump_type): Adjust. Free it when we're done.
+ (type_hex_digits): New.
+ (ctf_dump_member): Align output depending on the width of the type
+ ID being generated. Use printf padding, not a loop, to generate
+ indentation.
+
+2021-01-05 Nick Alcock <nick.alcock@oracle.com>
+
* ctf-decl.c (ctf_decl_push): Don't print array decls backwards.
2021-01-04 Nicolas Boulenguez <nicolas@debian.org>
diff --git a/libctf/ctf-dump.c b/libctf/ctf-dump.c
index 621ff25..ee22f77 100644
--- a/libctf/ctf-dump.c
+++ b/libctf/ctf-dump.c
@@ -47,6 +47,7 @@ typedef struct ctf_dump_membstate
{
char **cdm_str;
ctf_dict_t *cdm_fp;
+ char *cdm_toplevel_indent;
} ctf_dump_membstate_t;
static int
@@ -115,7 +116,7 @@ ctf_dump_format_type (ctf_dict_t *fp, ctf_id_t id, int flag)
goto err;
}
- if (asprintf (&bit, " %s%lx: ", nonroot_leader, id) < 0)
+ if (asprintf (&bit, " %s0x%lx: ", nonroot_leader, id) < 0)
goto oom;
str = str_append (str, bit);
free (bit);
@@ -236,7 +237,7 @@ ctf_dump_header (ctf_dict_t *fp, ctf_dump_state_t *state)
};
const char *verstr = NULL;
- if (asprintf (&str, "Magic number: %x\n", hp->cth_magic) < 0)
+ if (asprintf (&str, "Magic number: 0x%x\n", hp->cth_magic) < 0)
goto err;
ctf_dump_append (state, str);
@@ -454,26 +455,51 @@ ctf_dump_var (const char *name, ctf_id_t type, void *arg)
return 0;
}
+/* Report the number of digits in the hexadecimal representation of a type
+ ID. */
+
+static int
+type_hex_digits (ctf_id_t id)
+{
+ int i = 0;
+
+ if (id == 0)
+ return 1;
+
+ for (; id > 0; id >>= 4, i++);
+ return i;
+}
+
/* Dump a single member into the string in the membstate. */
static int
ctf_dump_member (const char *name, ctf_id_t id, unsigned long offset,
- int depth, void *arg)
+ int depth, void *arg)
{
ctf_dump_membstate_t *state = arg;
char *typestr = NULL;
char *bit = NULL;
ctf_encoding_t ep;
int has_encoding = 0;
- ssize_t i;
- for (i = 0; i < depth; i++)
- *state->cdm_str = str_append (*state->cdm_str, " ");
+ /* Align neatly. */
+
+ if (depth == 0)
+ {
+ if (asprintf (&state->cdm_toplevel_indent, " %*s",
+ type_hex_digits (id), "") < 0)
+ goto oom;
+ }
+
+ if (asprintf (&bit, "%s%*s", state->cdm_toplevel_indent, depth * 4, "") < 0)
+ goto oom;
+ *state->cdm_str = str_append (*state->cdm_str, bit);
+ free (bit);
if ((typestr = ctf_type_aname (state->cdm_fp, id)) == NULL)
{
if (id == 0 || ctf_errno (state->cdm_fp) == ECTF_NONREPRESENTABLE)
{
- if (asprintf (&bit, " [0x%lx] (type not represented in CTF)",
+ if (asprintf (&bit, "[0x%lx] (type not represented in CTF)",
offset) < 0)
goto oom;
@@ -491,7 +517,7 @@ ctf_dump_member (const char *name, ctf_id_t id, unsigned long offset,
has_encoding = 1;
ctf_type_encoding (state->cdm_fp, id, &ep);
- if (asprintf (&bit, " [0x%lx] (ID 0x%lx) (kind %i) %s%s%s:%i "
+ if (asprintf (&bit, "[0x%lx] (ID 0x%lx) (kind %i) %s%s%s:%i "
"(aligned at 0x%lx", offset, id,
ctf_type_kind (state->cdm_fp, id), typestr,
(name[0] != 0 && typestr[0] != 0) ? " " : "", name,
@@ -501,7 +527,7 @@ ctf_dump_member (const char *name, ctf_id_t id, unsigned long offset,
}
else
{
- if (asprintf (&bit, " [0x%lx] (ID 0x%lx) (kind %i) %s%s%s "
+ if (asprintf (&bit, "[0x%lx] (ID 0x%lx) (kind %i) %s%s%s "
"(aligned at 0x%lx", offset, id,
ctf_type_kind (state->cdm_fp, id), typestr,
(name[0] != 0 && typestr[0] != 0) ? " " : "", name,
@@ -540,7 +566,7 @@ ctf_dump_type (ctf_id_t id, int flag, void *arg)
{
char *str;
ctf_dump_state_t *state = arg;
- ctf_dump_membstate_t membstate = { &str, state->cds_fp };
+ ctf_dump_membstate_t membstate = { &str, state->cds_fp, NULL };
size_t len;
if ((str = ctf_dump_format_type (state->cds_fp, id, flag)) == NULL)
@@ -558,6 +584,7 @@ ctf_dump_type (ctf_id_t id, int flag, void *arg)
_("cannot visit members dumping type 0x%lx"), id);
goto err;
}
+ free (membstate.cdm_toplevel_indent);
/* Trim off the last linefeed added by ctf_dump_member(). */
len = strlen (str);
@@ -568,6 +595,7 @@ ctf_dump_type (ctf_id_t id, int flag, void *arg)
return 0;
err:
+ free (membstate.cdm_toplevel_indent);
free (str);
return 0; /* Swallow the error. */
}
@@ -583,7 +611,7 @@ ctf_dump_str (ctf_dict_t *fp, ctf_dump_state_t *state)
fp->ctf_str[CTF_STRTAB_0].cts_len;)
{
char *str;
- if (asprintf (&str, "%lx: %s",
+ if (asprintf (&str, "0x%lx: %s",
(unsigned long) (s - fp->ctf_str[CTF_STRTAB_0].cts_strs),
s) < 0)
return (ctf_set_errno (fp, errno));