aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/testsuite/ld-ctf/unshared-strings-A.c19
-rw-r--r--ld/testsuite/ld-ctf/unshared-strings-B.c21
-rw-r--r--ld/testsuite/ld-ctf/unshared-strings.d45
3 files changed, 85 insertions, 0 deletions
diff --git a/ld/testsuite/ld-ctf/unshared-strings-A.c b/ld/testsuite/ld-ctf/unshared-strings-A.c
new file mode 100644
index 0000000..690f129
--- /dev/null
+++ b/ld/testsuite/ld-ctf/unshared-strings-A.c
@@ -0,0 +1,19 @@
+struct A;
+struct B
+{
+ int foo;
+ struct A *a;
+};
+struct C;
+typedef struct C aaa;
+struct A
+{
+ aaa *wurblefrotz;
+};
+struct C
+{
+ struct B *foo;
+};
+
+static struct A *foo __attribute__((used));
+
diff --git a/ld/testsuite/ld-ctf/unshared-strings-B.c b/ld/testsuite/ld-ctf/unshared-strings-B.c
new file mode 100644
index 0000000..51796cc
--- /dev/null
+++ b/ld/testsuite/ld-ctf/unshared-strings-B.c
@@ -0,0 +1,21 @@
+struct A;
+struct B
+{
+ int foo;
+ struct A *a;
+};
+struct C;
+typedef struct C C1;
+typedef C1 C2;
+struct A
+{
+ C2 *wurblefritz;
+};
+
+struct C
+{
+ struct B *foo;
+};
+
+static struct A *foo __attribute__((used));
+
diff --git a/ld/testsuite/ld-ctf/unshared-strings.d b/ld/testsuite/ld-ctf/unshared-strings.d
new file mode 100644
index 0000000..32bed29
--- /dev/null
+++ b/ld/testsuite/ld-ctf/unshared-strings.d
@@ -0,0 +1,45 @@
+#as:
+#source: unshared-strings-A.c
+#source: unshared-strings-B.c
+#objdump: --ctf
+#ld: -shared
+#name: Verify proper sharing (and non-sharing) of strings
+
+.*: +file format .*
+
+Contents of CTF section .ctf:
+
+ Header:
+ Magic number: 0xdff2
+ Version: 5 \(CTF_VERSION_4\)
+#...
+ Strings:
+ 0x0:
+ 0x[0-9a-f]*: A
+#...
+ 0x[0-9a-f]*: C1
+ 0x[0-9a-f]*: C2
+#...
+ 0x[0-9a-f]*: aaa
+#...
+CTF archive member: .*/unshared-strings-A.c:
+#...
+ Types:
+ 0x[0-9a-f]*: \(kind 6\) struct A .*
+ \[0x0\] wurblefrotz: ID .*
+
+ Strings:
+ 0x0: .ctf
+#...
+ 0x[0-9a-f]*: wurblefrotz
+
+CTF archive member: .*/unshared-strings-B.c:
+#...
+ Types:
+ 0x[0-9a-f]*: \(kind 6\) struct A .*
+ \[0x0\] wurblefritz: ID .*
+
+ Strings:
+ 0x0: .ctf
+#...
+ 0x[0-9a-f]*: wurblefritz