https://sourceware.org/bugzilla/show_bug.cgi?id=18663

            Bug ID: 18663
           Summary: gold/testsuite/script_test_1.cc is incompatible with
                    GCC 5
           Product: binutils
           Version: 2.26 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gold
          Assignee: ccoutant at gmail dot com
          Reporter: hjl.tools at gmail dot com
                CC: ian at airs dot com
  Target Milestone: ---

gold/testsuite/script_test_1.cc has

extern char a, b, c, d, e, f, g;
int sym = 3;
int common_sym;

int
main(int, char**)
{
  assert(reinterpret_cast<intptr_t>(&a) == 123);
  assert(reinterpret_cast<intptr_t>(&b) == reinterpret_cast<intptr_t>(&a) * 2);
  assert(reinterpret_cast<intptr_t>(&c)
         == reinterpret_cast<intptr_t>(&b) + 3 * 6);
  assert(reinterpret_cast<intptr_t>(&d)
         == (reinterpret_cast<intptr_t>(&b) + 3) * 6);
  assert(reinterpret_cast<int*>(&e) == &sym);
  assert(reinterpret_cast<intptr_t>(&f)
         == reinterpret_cast<intptr_t>(&sym) + 10);
  assert(reinterpret_cast<int*>(&g) == &common_sym);
  return 0;
}

GCC 5 will fold many asserts, assuming each symbol has a different
address, which leads to abort.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to