Work around gcc10 FAIL: S-records with constructors
authorAlan Modra <amodra@gmail.com>
Sat, 21 Sep 2019 08:43:52 +0000 (18:13 +0930)
committerAlan Modra <amodra@gmail.com>
Sun, 22 Sep 2019 11:43:10 +0000 (21:13 +0930)
gcc10 on x86_64 and powerpc64le recognises that the loop in
Foo::operator= can be turned into a call to memmove, which then
results in an undefined symbol when linking.  Avoid that by making the
loop smaller.

* testsuite/ld-srec/sr3.cc (FOO_MSG_LEN): Set to 4.

ld/ChangeLog
ld/testsuite/ld-srec/sr3.cc

index 57d4df713aa6da903674a6eb3fb91bea13b821f3..eb7981ea48accfd5abac89838c723343282550cb 100644 (file)
@@ -1,3 +1,7 @@
+2019-09-22  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/ld-srec/sr3.cc (FOO_MSG_LEN): Set to 4.
+
 2019-09-20  Nelson Chu <nelson.chu@sifive.com>
 
        * testsuite/ld-riscv-elf/weakref32.s: Add relaxable undef weak code.
index 0b5fa7ec89355b92e9cbfb64447164f3376d2780..29f8019468dce6797e5c3ed2036547f4e181bc0c 100644 (file)
@@ -1,6 +1,6 @@
 // This file is compiled and linked into the S-record format.
 
-#define FOO_MSG_LEN 80
+#define FOO_MSG_LEN 4
 
 class Foo {
     static int foos;