<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/75337>75337</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang][OpenMP] SPEC CPU 2017 603.bwaves crashes when linked using lld
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ceseo
</td>
</tr>
</table>
<pre>
Using the most recent Flang + OpenMP on **AArch64**, 603.bwaves (_fpspeed_) segfaults in a `__kmpc_global_thread_num` call.
This happens in an `OMP PARALLEL DO PRIVATE` clause.
Looking at the disassemble, looks like a wrong relocation:
```
(gdb) disassemble
Dump of assembler code for function __kmpc_global_thread_num@plt:
0x0000aaaaaaac8fe0 <+0>: adrp x16, 0xaaaaaaae9000
0x0000aaaaaaac8fe4 <+4>: ldr x17, [x16, #2752]
=> 0x0000aaaaaaac8fe8 <+8>: add x16, x16, #0xac0
0x0000aaaaaaac8fec <+12>: br x17
```
It's branching to an invalid address. So I'm not sure if this is an OpenMP or lld bug.
I'm trying to create a small reproducer for this and will update this issue if I can manage that.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8lN9v4ygQx_8a8jLaCIMduw9-SJpEqtRVo_1xr9EYsM0FgwW4zf73Jxz3mupuN4pAhOEz84VvBkPQnVWqJsWOFPsVTrF3vhYqKLdqnPxV_wzadhB7BYMLEbwSykY4GrQdELaDl1HZrydwFgjbErbdbr3oN_ltQdgjbChfN2_4qgIQVp3bMYxKyTNhDxBU1-JkYgBtAYFs6Pl8GUZx7oxr0Jxj7xXKs50GsqEg0Jg1oXtCt7fxR68D9DiOyt4INiFevp7gtP22fX4-PMP-BU7fnv7a_jjMBINTUJ8Yz85dkkCMs0apA4aghsaoVLtx7hLA6IsChDfvbAdeGScwamcJ396TyIYu39uSVZ1sksp75ry1n4YRXAvvv3oQTiponYd2siKx4bcXkdPRxH9TAwC9Ukop3j6iahUFwh8J21HCD4SnEACUfkzzNdskXfS6xKsHSunvUfmCyu9QRnq4ZmXCkGK3AAnjrCwYKfaLer4n_PBfYLUAq0-1Sbir7YNIryj-UJxYWBn7gDUeFlb5_68yj0-RsDJA49GKfra3S-bR9hWNlqkgr0JYw3cHT4SVA1gXIUxegW4hJtfpkA68e9-DMRKaqftkrdvR6H8tGYRXGJORwoDGgFejd3ISys8vP2PRSnjTxsA0yhS75ArTnPkJBFoY0GKXtjCuV7Lm8oE_4ErVWUlZXvI856u-rirBylbRXHKalZgXGW-qnCmOvCwEe1jpmlHGM5bxjGcl42smseIttm1eNUgxIzlVA2qzNuZ1WDvfreY66rLgvFwZbJQJ713D1ynoSzN1geTU6BDDx7Goo5n7y9wzkkOK3e3iSLGH76fDIzyefgKjWXnfK4TH0KsAb72yYLS9KAnT3IuMkavJm7qPcQzpn8COhB07HfupWQs3EHZMyZfpy-jd30pEwo6zgEDYcdbwTwAAAP__Qcp_fA">