This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug testsuite/79427] New: g++.dg/tls/thread_local-order2.C fails starting with r245249
- From: "seurer at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 08 Feb 2017 16:29:58 +0000
- Subject: [Bug testsuite/79427] New: g++.dg/tls/thread_local-order2.C fails starting with r245249
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79427
Bug ID: 79427
Summary: g++.dg/tls/thread_local-order2.C fails starting with
r245249
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: testsuite
Assignee: unassigned at gcc dot gnu.org
Reporter: seurer at gcc dot gnu.org
Target Milestone: ---
FAIL: g++.dg/tls/thread_local-order2.C -std=c++11 execution test
FAIL: g++.dg/tls/thread_local-order2.C -std=c++14 execution test
It looks like on BE the destructors are firing in an unepected order.
Taking out the #define of printf I get this output on power BE:
A(1)
A(0)
~A(0)
Program received signal SIGABRT, Aborted.
And this output on power LE:
A(1)
A(0)
~A(1)
~A(0)
BTW, the comment in the test case says "The standard says that a1 should be
destroyed before a0 even though that isn't reverse order of construction."
Where does it say this in the standard?