https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118114
Bug ID: 118114
Summary: std::call_once crashes on LoongArch when program is
built with -fPIC -mtls-dialect=desc
Product: gcc
Version: 14.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: uwu at icenowy dot me
Target Milestone: ---
Created attachment 59911
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59911&action=edit
The source code, available as a cpp file
When building the following quite minimal program with the flags described in
the title on LoongArch, the program cannot be executed and will crash:
```
// build with `g++ -fPIC test.cpp -mtls-dialect=desc`
#include <mutex>
#include <iostream>
std::once_flag flag;
void co()
{
std::cout << "co" << std::endl;
}
int main()
{
std::call_once(flag, co);
std::call_once(flag, co);
}
```
Removing either flag can make the built program runs successfully and output
`co` as expected.