<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/135126>135126</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [llvm] [unknown-windows-msvc] The [[__gnu__::__init_priority__]]attribute causes the constructor of the global function to be called multiple times
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          MacroModel
      </td>
    </tr>
</table>

<pre>
    The [[__gnu__::__init_priority__]]attribute causes the constructor of the global function to be called multiple times

```ps
clang version 21.0.0git (git@github.com:trcrsired/llvm-project.git 38b0c053bae7fdb45b185e1b3c1a43eae50dfdca)
Target: x86_64-unknown-windows-gnu
Thread model: posix
InstalledDir: D:/tool-chain/x86_64-windows-gnu/llvm/bin
```

global.cppm:

```cpp

module;

#include <iostream>

export module global;

export namespace global {

 struct Test
    {
        Test()
        {
 ::std::cout<<"test\n";
        }
    };

 [[__gnu__::__init_priority__(500)]] // This attribute causes a bug, if you remove this attribute everything works fine!
    inline Test test{};
}
```

```ps
clang -c -Qunused-arguments -m64 --target=x86_64-windows-msvc -g -Wall -Wextra -Werror -O0 -std=c++26 -fms-runtime-lib=dll_dbg -Ithird-parties\fast_io\include -Isrc -DUWVM_VERSION_X=2 -DUWVM_VERSION_Y=0 -DUWVM_VERSION_Z=0 -DUWVM_VERSION_S=0 -DUWVM_USE_DEFAULT_INT -DUWVM_USE_DEFAULT_JIT -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DDEBUG -D_DEBUG -fexceptions -fcxx-exceptions -finput-charset=UTF-8 -fexec-charset=UTF-8 -Wno-braced-scalar-init --sysroot=D:\tool-chain\windows-msvc-sysroot -fno-rtti -fno-unwind-tables -march=native -fmodule-output=global.pcm .\global.cppm
```

global1.cpp:

```cpp
import global;

void test() {}
```

```ps
clang -c -Qunused-arguments -m64 --target=x86_64-windows-msvc -g -Wall -Wextra -Werror -O0 -std=c++26 -fms-runtime-lib=dll_dbg -Ithird-parties\fast_io\include -Isrc -DUWVM_VERSION_X=2 -DUWVM_VERSION_Y=0 -DUWVM_VERSION_Z=0 -DUWVM_VERSION_S=0 -DUWVM_USE_DEFAULT_INT -DUWVM_USE_DEFAULT_JIT -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DDEBUG -D_DEBUG -fexceptions -fcxx-exceptions -finput-charset=UTF-8 -fexec-charset=UTF-8 -Wno-braced-scalar-init --sysroot=D:\tool-chain\windows-msvc-sysroot -fno-rtti -fno-unwind-tables -march=native -fmodule-file=global=global.pcm .\global1.cpp
```

global2.cpp:

```cpp
import global;

int main()
{
    void test();
    test();
}
```

```ps
clang -c -Qunused-arguments -m64 --target=x86_64-windows-msvc -g -Wall -Wextra -Werror -O0 -std=c++26 -fms-runtime-lib=dll_dbg -Ithird-parties\fast_io\include -Isrc -DUWVM_VERSION_X=2 -DUWVM_VERSION_Y=0 -DUWVM_VERSION_Z=0 -DUWVM_VERSION_S=0 -DUWVM_USE_DEFAULT_INT -DUWVM_USE_DEFAULT_JIT -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DDEBUG -D_DEBUG -fexceptions -fcxx-exceptions -finput-charset=UTF-8 -fexec-charset=UTF-8 -Wno-braced-scalar-init --sysroot=D:\tool-chain\windows-msvc-sysroot -fno-rtti -fno-unwind-tables -march=native -fmodule-file=global=global.pcm .\global2.cpp
```

link

```ps
clang++ -o test.exe .\global.o .\global1.o .\global2.o -m64 --target=x86_64-windows-msvc -g -nostdlib -lntdll -lShell32 -fuse-ld=lld --sysroot=D:\tool-chain\windows-msvc-sysroot
```

run

```ps
test
test
```


</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsV01v4zYQ_TX0haBBUZKjHHywrbhw0c2iG2fT9iJQFCWxS5ECPxzn3xeUlMTxOsC2QNEeEgix9GaGIh_fDDXUWtEozpcgXYM0n1HvWm2Wnygz-pOuuJyVunpa7lsOB491UTTKFwWIVyBeFYVQwhW9EdoI91QUIM1BmlPnjCi945BRb7mFruWQaWWd8cxpA3U9QI3UJZWw9oo5oRV0GpYhRkpewc5LJ3rJoRMdtwCvwrXA49UHgEmqGnjgxoZgEs3xHDfCQUCyRjiQhIfWl3OmOxCvnGHGCsMrQLZSHjrUG_0nZ24eQuKsxAyncUn5VV2VSVpGWcqjMmYRTWJOeYqrumIUkGuAV3tqGu5AvILHbFEsEuTVN6UfFXoUqtKPFjXKB7fWcFrBLtAYnHttxRHg1U5ZN6wxFybgeSCTbJ3WErGWCgXIdhr4dMBx2oBsS6FOuRipGbmcs74Piz2ji_X9iHS68pKDeD05kFgoJn3FIYg3QltnOO1AfDOa-bHXxsExaNqtl9jJqGjHbU_Zy26Cq8kBjtsN99y68AjhZIPT32Ag2cjpMzi5jPqyrhpvmPYOxJtwEeJCXLpRgJBxNq-x-cuL8peJ_phwSZZiHKYyKBgCsgVkC_etsPA7OVNY-gaQDRQ1fNIeGt7pA4furTM_cPPkWqEa-KjNNwtroTgg0TRFoaRQfCABDiu6Wr_OeljI2Q5fEj9iEP3qlbe8QtQ0vuPKWYi6RQIRcpNM8zMxdfbAIGogeqBSQvTAj87Q8GuMNhB9xhANxOcMkDUga7KAqO4sMl6FXERSlCDOKymLqmwg2rlWmAr11DjBLUg3NbWuEBqkm2dxoZ01DKL8_uHrp-LrzZe73efb4jcQ5-Qc_B3EOT4H_7gE3p2C93c3RX6zXd3_si92t_tL8M-7ABcPu9uYhP-3-zDAEa9wGOVhd_v15sspkt-s738KEdNNzY-M96FOWYhqdjyiN4BQvXchfY0dOL_fb1E2RHH2PfygNCoNZbxCllFJDQp6hAjZJ2u0Dp5DVUg3J1Uh3Zzu4LMrRLXSyDgnxjuvghdytJQ8SIEa1oI4V9SJAw8bOWQz0t71IafyqXD0rINzkG5O68g7RSYK1veKjOiGsnBWLA5aVKPKh3yHk9g_NP6h8X9R47UIZ13-rMXLUh_V_I7Uyd-XulAOdsMhPp1sr4feWRa8Hl7n2EdufOTG_yE3yOXckEJ9e1eTo2Yg0oOq5_zIT88V_Sbz9Jt36R8WrtLWVVKUEEnlqiBieddyKWMCUe0tRzLIV8rqHzH6_YKNV5fW68Yv2-nnLGZWLePqOr6mM76MrpKEpBnOslm7jGq2yErCFklJrlhWxXUdXV3XLC2rZFHX6UwsCSYpTiKME5zhbJ5WPFvgKIrrDCf4moME844KOQ8NwVybZias9XwZxWlEFjNJSy7t0NERovgjHKzhaznNZ2Y5ND-lbyxIsBTW2ddhnHByaAWHTiN8Bqfr894mMBVM_3lLOPNGLlvnejv2T4BsTxq-l27ptNcDZDtwYQHZTmQdluSvAAAA__9CAKuI">