<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63054>63054</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang i686-w64-mingw32 can not build wolfssl with turn on optimization
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
calvin2021y
</td>
</tr>
</table>
<pre>
I try buildwolfssl + quickjs project, get this bugs:
1) if build without asan, must use `-O0` other ways crashed at runtime.
2) if link with asan(all objects file is build without asan, just link with asan), then I can turn on optimization without crash
try adjust `on/off LTO`, `-fstack-protector-strong`/`-fno-stack-protector`, `-g`. Does not affect test results
I am cross build from linux, try ucrt and msvcrt, try llvm 14, 15, 16. Does not affect test results
here is the crash logs:
```sh
(lldb) Process 12600 stopped
* thread #1, stop reason = Exception 0xc0000005 encountered at address 0xa3ad1d: Access violation reading location 0xffffffff
frame #0: 0x00a3ad1d test.exe`wc_AesInit(aes=<unavailable>, heap=<unavailable>, devId=<unavailable>) at aes.c:9577:5Process 12600 launched: 'C:\Users\admin\test.exe' (i386)
(lldb) bt
* thread #1, stop reason = Exception 0xc0000005 encountered at address 0xa3ad1d: Access violation reading location 0xffffffff
* frame #0: 0x00a3ad1d test.exe`wc_AesInit(aes=<unavailable>, heap=<unavailable>, devId=<unavailable>) at aes.c:9577:5 frame #1: 0x00abcf39 test.exe`SetKeys(enc=0x30966aec, dec=0x00000000, keys=<unavailable>, specs=<unavailable>, side=<unavailable>, heap=<unavailable>,
devId=<unavailable>, rng=<unavailable>, tls13=<unavailable>) at keys.c:2551:17
frame #2: 0x00abc8bc test.exe`SetKeysSide(ssl=<unavailable>, side=<unavailable>) at keys.c:3056:15
frame #3: 0x00a69019 test.exe`SendChangeCipher(ssl=<unavailable>) at internal.c:20345:20
frame #4: 0x009fe29f test.exe`wolfSSL_connect(ssl=<unavailable>) at ssl.c:13565:32
frame #5: 0x00a9234a test.exe`wolfssl_connect_step2(cf=0x2e897490, data=<unavailable>) at wolfssl.c:720:9
frame #6: 0x00a91d47 test.exe`wolfssl_connect_common(cf=0x2e897490, data=<unavailable>, nonblocking=<unavailable>, done=<unavailable>) at wolfssl.c:1225:14
frame #7: 0x00a919c3 test.exe`wolfssl_connect_nonblocking(cf=<unavailable>, data=<unavailable>, done=<unavailable>) at wolfssl.c:1257:10
frame #8: 0x00a15fbf test.exe`ssl_connect_nonblocking(cf=0x2e897490, data=0x3094cc08, done=<unavailable>) at vtls.c:375:10
frame #9: 0x00a1546d test.exe`ssl_cf_connect(cf=0x2e897490, data=0x3094cc08, blocking=<unavailable>, done=0x2e4fedff) at vtls.c:1547:14
frame #10: 0x00a22b28 test.exe`cf_setup_connect(cf=<unavailable>, data=<unavailable>, blocking=<unavailable>, done=<unavailable>) at connect.c:1196:14
frame #11: 0x00a9eee2 test.exe`cf_hc_baller_connect(b=0x3087ba50, cf=0x2e936988, data=<unavailable>, done=<unavailable>) at cf-https-connect.c:135:15
frame #12: 0x00a9e6d7 test.exe`cf_hc_connect(cf=0x2e936988, data=0x3094cc08, blocking=<unavailable>, done=0x2e4fedff) at cf-https-connect.c:290:16
frame #13: 0x00a218ce test.exe`Curl_conn_connect(data=0x3094cc08, sockindex=0, blocking=<unavailable>, done=0x2e4fedff) at cfilters.c:351:14
frame #14: 0x009f6fae test.exe`multi_runsingle(multi=<unavailable>, nowp=<unavailable>, data=0x3094cc08) at multi.c:2109:16
frame #15: 0x009f84c0 test.exe`multi_socket(multi=0x308a9610, checkall=<unavailable>, s=836, ev_bitmask=1, running_handles=0x2e4feea8) at multi.c:3270:16
frame #16: 0x009f8585 test.exe`curl_multi_socket_action(multi=<unavailable>, s=<unavailable>, ev_bitmask=<unavailable>, running_handles=<unavailable>) at multi.c:3392:12
```
Try add `__attribute__((noinline))` to function `wc_AesInit`, `SetKeys`, `SetKeysSide`, `SendChangeCipher`, seems still crash.
Is this a LLVM bugs or wolfssl code bugs ? (the code test work for a lot other platform, and with `-O0` work well).
If it is a LLVM bugs, what I can do to help location the bugs ?
https://github.com/mstorsjo/llvm-mingw/issues/347
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMmN1u47oRx5-GuSESUKQ-L3yR45wAi25xCuxpbw2KGlncUKRLUnbSpy9Iybb8uZtuL44ROIkozfz-M0ORQ-6cXGuABcp-Q9nLAx98Z-xCcLWVmhKafDzUpvlYfMHefuB6kKrZGdU6pzCiv-F_D1K8fXd4Y813EB7RJV6Dx76TDtfD2iH2jMgLItN3gmiFZTvawTvpOzN4zB3X4UncD87jwQFGOXn8g6CcYOM7sHjHPxwWlrsOGsw9toP2socnPJqlk1kl9Vu0OpksuVLY1IHM4VYqwBHrqu_vwfe5gSoM-Q40_oIF19gPVmOjsdl42cv_cC-NPpiKfHO1IWK8iYZRToxG9NW0Lf765x8oJ8FykNk6z8Xb48YaD8Ib--i8NXod73iNN2jzeHbP9Hh8Ptz5hDF-MeCwNh7ztgXhsQfnsQU3KO_mUF8w77Gwxu0j0VrTB-HDe7QZoAdhPea6wb3bCusP15Xa9jhJw_9JFr_zz7juwMYM-A7GYGFlLkokaIs_h1jSUqmmDin-hzUCnMMJzQnBzpvNBpr9Xc_YdxZ4gxFlSYAL49gCd0ZjxF7w7-8CNjFj5F2Q-MkwaGEG7cGOhcWbxgYP5J0z3iQNYs_4WUSnW2nUmPDgReo1VkbwyV47fUYYjDFuLe8hsJBgg7wTMlqM0XmCd0A52YnVM7gvWvpQq-AQe0FsOWi-5VLxWgFivwclHfDNrbEGtl-a64NVVATuSSD2XGVFgdhzdhpDxQctOog6ES2WIRnZ8p8OrEPZkje91ChbHpBpgREtJSvzMDfO01P7v2QuAs5fNRsnlZIc2GrRsmrO9g383-DDIVqCFoi9kHdGqjznIEav4zUyfcK1t3D7DUq3AXF7UDbwv0gfw30nAEts9frWkFcuYXcCF-TEyNEsC3FKiitTjc4CWNbiSgC_BXG0dE59Xv4pByNZHjiyKxzswJFXJDlLpG6WHddrWMpNB_YeTHQow4TQXI3iCUuz-HvyenCZ7l1WLdCqPalro9pv376uhNE6rtE_8Ojc6CxhWR6cMXpFYnaQWFGW8nN_zqm9v5XzsKGIlqKNRUqhrIq0ikXacM_vkEyWIk1Bw9StrqDkR5SkSYt7KML0fViHP8eyxNroWhnxJm8XcGP0vbqZS0koDeFL0vMkFjMllWD3lMyJJjnXse6o-hRyFuASciX-5YE6ydr6pPR-QHw1AfHVlgpByp9g3Ho1Tcciu8VXzfjSvLnga2cz42exfrIagqW0haZtz3mTLC3mNXCyDhwXKUprWs6JRbty4IfNOfOnk_-L9Ty5H7UkVX5Ty3FRqwCAnmnpxKrmSoGd6amnaJdFzbOYgkNWKpZXZfmLdS3ax877jXs80RDfaIe3-ZGfzvjzprjkv1I8F5j_n-K5Ck6rUC1JfgF-XIRoUgqYgy8HO87LGfxVUhdBG3gPI7-GLpUHO83VcQW_Wi6zdSxv-Ql1PygvV3bQTuq1Cst4vHL7nb27vU27FBsxo8ExrAmp5nE9gcyOkGUqyCVkiBv4GWGsZ17lyVjPHYg3rm7vQRB7KVke_oTtqpa-5-4NsZe4lbaD1lKvVx3XjYq71CnawC9lMFqQmzLymYyszE5KO1TIXMuKi7C9_lHQb-4qT3Rc3xxe6Lo1gWfyWEXj6nTWO84byj9jF96EZnm14t5bWQ8eVitES0RLbaRWUkPs9SuUE-wNbgcd1eLTruDYde-344c2fr69nF082-tNBhxA77DzUqmxD346adDdeHzC8dev__p7PEXBxu5XYyxMA-NFxF5Dc1PGdjpcjX33ztg33BqLOVbGT-cnG8V9a2wf3Ie-Ph5xHA9Z4jM7UArR6pSlxdLjU5hgY9dxPx2JNCZErAO1OfZggWiPeHIAEN5eocWkr4i-rqXvhvpJmB7R1955Y913g-irUtv-sZd6vUP0VTo3gEP0laXFQ7NgTcUq_gCLJC-zPMmzgj10i4anokjqAvI2rdssTzlLs5QlQIuqbWn5IBeUUEZykiQkrRh7SosiAWBNzmja1q1AKYGeS_UUnD8Zu36Ijhc5I1n6oHgNyu2PyOwiEsZYpERJ593xMS-9goVQXK-xzMv8cZenoxhGY7y08fsjqCmjMRlXT5YeBqsWd4IWvO4DdjiBO4Yswv83AAD__2viFk4">