aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2021-01-19 12:45:18 +0000
committerNick Alcock <nick.alcock@oracle.com>2021-01-19 12:45:18 +0000
commitc98de297b37ffee7bdb48682eec73e4a608c3974 (patch)
tree899d9d782bd3e1f5aa6be02f4350933de686d9e8 /ld
parent148521232871c8017c973b3c0cc29c8ac7b96134 (diff)
downloadfsf-binutils-gdb-c98de297b37ffee7bdb48682eec73e4a608c3974.zip
fsf-binutils-gdb-c98de297b37ffee7bdb48682eec73e4a608c3974.tar.gz
fsf-binutils-gdb-c98de297b37ffee7bdb48682eec73e4a608c3974.tar.bz2
libctf, ld: fix data symbol test with newer GCC
GCC 11+ spots that the extern var_1 and var_666 declarations in this test are unused, and removes them, thus stopping them from appearing as conflicted data symbols and rendering the test pointless. Use them in a function unique to this TU to prevent them from being eliminated. ld/ChangeLog 2021-01-19 Nick Alcock <nick.alcock@oracle.com> * testsuite/ld-ctf/data-func-2.c: Stop removal of the extern foo_t symbols by the optimizer. * testsuite/ld-ctf/data-func-conflicted.d: Adjust accordingly.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/testsuite/ld-ctf/data-func-2.c4
-rw-r--r--ld/testsuite/ld-ctf/data-func-conflicted.d4
3 files changed, 12 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 035e6aa..aae8938 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,9 @@
+2021-01-19 Nick Alcock <nick.alcock@oracle.com>
+
+ * testsuite/ld-ctf/data-func-2.c: Stop removal of the extern foo_t
+ symbols by the optimizer.
+ * testsuite/ld-ctf/data-func-conflicted.d: Adjust accordingly.
+
2021-01-19 Nelson Chu <nelson.chu@sifive.com>
* testsuite/ld-elf/elf.exp (riscv_little_endian): Added. Return true
diff --git a/ld/testsuite/ld-ctf/data-func-2.c b/ld/testsuite/ld-ctf/data-func-2.c
index d00d230..575b06e 100644
--- a/ld/testsuite/ld-ctf/data-func-2.c
+++ b/ld/testsuite/ld-ctf/data-func-2.c
@@ -3,3 +3,7 @@ typedef char foo_t;
/* Conflicting, and indexed. */
extern foo_t var_1;
extern foo_t *var_666;
+
+int other_func(foo_t *);
+
+int ignore (void) { other_func (&var_1); other_func (var_666); }
diff --git a/ld/testsuite/ld-ctf/data-func-conflicted.d b/ld/testsuite/ld-ctf/data-func-conflicted.d
index 6b1e914..1e7c19a 100644
--- a/ld/testsuite/ld-ctf/data-func-conflicted.d
+++ b/ld/testsuite/ld-ctf/data-func-conflicted.d
@@ -14,9 +14,9 @@ Contents of CTF section \.ctf:
Version: 4 \(CTF_VERSION_3\)
#...
Data object section: .* \(0xc bytes\)
- Function info section: .* \(0x40 bytes\)
+ Function info section: .* \(0x44 bytes\)
Object index section: .* \(0xc bytes\)
- Type section: .* \(0xe8 bytes\)
+ Type section: .* \(0xf4 bytes\)
String section: .*
#...
Data objects: