This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug testsuite/79427] New: g++.dg/tls/thread_local-order2.C fails starting with r245249


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?

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]