<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/142780>142780</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
-fno-builtin wont works if -O0
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Duiccni
</td>
</tr>
</table>
<pre>
The code I tried to compile is given in the bottom used clang version 20.1.5 Target: x86_64-pc-windows-msvc
without -O flag it gives error:
test-0bfdf5.o : error LNK2019: unresolved external symbol memset referenced in function _entry
CCC\test.exe : fatal error LNK1120: 1 unresolved externals
clang: error: linker command failed with exit code 1120 (use -v to see invocation)
which i believe it shoudnt becouse of -fno-builtin flag i used
with -O flag it works just fine
```// C:\"Program Files"\LLVM\bin\clang.exe CCC\test.c -o CCC\test.exe -lkernel32 -luser32 -nostdlib -nostartfiles -fno-builtin -O "-Wl,/subsystem:windows" "-Wl,/entry:_entry"
#undef UNICODE
#include <Windows.h>
HWND hwnd;
HINSTANCE hInstance;
char* className = "MyWindowClass";
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
if (uMsg == WM_CLOSE) {
return -1;
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
void _entry() {
hInstance = GetModuleHandle(NULL);
WNDCLASS wc = {0};
wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.lpszClassName = className;
RegisterClassA(&wc);
hwnd = CreateWindowExA(0, className, "My Window", WS_VISIBLE | WS_SYSMENU | WS_CAPTION, 0, 0, 320, 320, NULL, NULL, hInstance, NULL);
MSG msg;
loop:
while (PeekMessageA(&msg, hwnd /*NULL*/, 0, 0, PM_REMOVE)) {
DWORD r = DispatchMessageA(&msg);
if (r == -1) {
MessageBoxA(NULL, "WM_CLOSE", "Info", 0); // I expect it not to be work because hwnd set to hwnd not null
goto end;
}
}
Sleep(500);
goto loop;
end:
DestroyWindow(hwnd);
UnregisterClassA(className, hInstance);
ExitProcess(0);
}```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxsVltv4jwT_jXmZhRkDOFwwUUa6C5aDlVpF31XVUgmibeOjWwH2u_Xv7ITAqxWQo09Hs8888zBTYzhhUSck_CJhIteUttS6fmi5mkqee-osu_5W4mQqgxhBVZzzMAqSFV14gKBGyj4GSVwCbZEOCprVQW1wQxSkcgCzqgNVxIY7Q_6IbwlukBLhhF8Tccf41FwSoMLl5m6mKAy55TQ6MJtqWoLwQ5ykRTArfdhALVWmgwjQt3PorEBPeZZHvYVOIv-HNbbX4wOZk5QS41GiTNmgF8WtUwEmO_qqARUWBm0oDFHjTLFzEWQ1zK1DuwHSqu_CY3iOCZh7Fz18Qu9lzyxibj5GgwYdeLBv7wZQiNPQwfPLQSXn6gdh1UiM8gTLjADFzbgF7cN2c4uEDatDUJwdpwbRODyrNLEYSRs1vBwKXlaAocjCo5ndHSZUtWZtHDEVLn7Kocglyo41lxYF6en1Wep5fue7IvSnwb-1MZCziU2XsiYtj_2TNgzxC4PYUwYe9Gq0EkFz1ygIYyRMF6vf29IGB-5JGHs4_fs3ZGZQqDgL3ID8YlaohgyCERtULuFVMZmgh-bVaJt7tw8hhPsgDAWHARhMWHPpj6ab2OxIsOoLS3C2INKk95h1OaZsTZINqxlhjm8b1fxbrHspFymos5c_uNDY7FfkmF7_vOwXUB5kRkZPrntart_i7bxEsqVNDaRKTYHaZlowiLXF8Zsk8qZWzhYm-_GaOwOHBivTmi0fl3u39dvEEfr9VMU_4JG70WrlLDpzS-L4X21fYN6Ywq3ObxEr9EGLi-JTionWDcC0QpmQCbOBQDw3BfZxhQOjQN02HzE691-eaem0dZaQjBokAEAmSyaRXu0wPwB2xXWFdENSoehjdIbIjQ6K55d-45NHzB2PHrCfqDdqKwW-DORmUDCptv39fpmkEZw2C7idbTfwyVtOJ48Uefoiv6S9sUplweZObhe5Q79ndaj57_yeTVk_h8_ZLTLb6f2igU3FrXXi3x440vaQfZJ9FdjjYnFBsvyy2lSx9nNIoubgmnxumJx-d5__F7tV0_rJZCJ3-7_t98st-_XbRy9vK12W6dLuz9Ddv9pSLx9b8F2wjuGATb7H1CZohEJpU7NYHaklO5lIGz6gvi5QWOSAtugq6YamnjdIIkay5Hf3IN72Xy8Lje7364MH4oBABaH3esCtGdswc0psWn5Dz-zjv-uzvW1yIPBndH27pPyjF8JIIzdWoG1kpXMVbujjQdoB-IK8OuEqXUTVCrrBvYR_Sx1YzhxY9iH7V4dq5q105O1EB1KACiUVYDXYdLIum7rugX2AvFE2DSk9D5Sf7vJhpN4O1GXswUaq9X3tXbaLr3efpf67zp9KLy7iniohOUXt65x0A2vKX1o7eur0cvmw2w2nCU9nA8moxkdjWk47ZXzWZjT0WyQHac0zcOUhuGY5eMkHdGczWZJ1uNzRllIx3Q0GNHJcNgfjEIazibTUT7EkIZIRhSrhIu-EOeqr3TR48bUOB-M2GRKeyI5ojD-_xvGJF7An_p3atHTc3cpONaFISMquLHmZsZyK3D-8NJclLy-jzyHYEd7tRbz0tqTcTz7Sii4LetjP1UVYc_OWPsJTlr9wdQS9uwhGMKeW4znOfsvAAD__x023IU">