<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/147153>147153</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
WERROR isn't being respected when compiling llvm from scratch
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
renhiyama
</td>
</tr>
</table>
<pre>
My cmake command:
```
cmake /llvm/llvm -G Ninja -DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;compiler-rt;libc;libclc;lldb;openmp;" \
-DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx" \
-DLLVM_TARGETS_TO_BUILD="X86" \
-DLLVM_USE_LINKER=lld \
-DCMAKE_INSTALL_BINDIR=/Core/Bin \
-DCMAKE_INSTALL_LIBDIR=/Core/LibKit \
-DCMAKE_INSTALL_DOCDIR=/Construct/StoreRoom/Docs \
-DCMAKE_INSTALL_INCLUDEDIR=/Core/APIHeader \
-DCMAKE_INSTALL_MANDIR=/Construct/StoreRoom/Manual \
-DLLVM_ENABLE_WERROR=OFF
```
Although the llvm docs mention:
>LLVM_ENABLE_WERROR:BOOL
> Stop and fail the build, if a compiler warning is triggered. Defaults to OFF.
I was getting an error:
```
[517/8088] Building CXX object projects/libc/src/stdio/printf_core/CMakeFiles/libc.src.stdio.printf_core.converter.dir/converter.cpp.o
FAILED: projects/libc/src/stdio/printf_core/CMakeFiles/libc.src.stdio.printf_core.converter.dir/converter.cpp.o
/usr/bin/c++ -DLIBC_NAMESPACE=__llvm_libc_20_1_7_ -I/tmp/build/projects/libc/src/stdio/printf_core -I/llvm/libc/src/stdio/printf_core -I/llvm/libc -isystem /tmp/build/projects/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -fpie -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -fext-numeric-literals -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -std=c++17 -MD -MT projects/libc/src/stdio/printf_core/CMakeFiles/libc.src.stdio.printf_core.converter.dir/converter.cpp.o -MF projects/libc/src/stdio/printf_core/CMakeFiles/libc.src.stdio.printf_core.converter.dir/converter.cpp.o.d -o projects/libc/src/stdio/printf_core/CMakeFiles/libc.src.stdio.printf_core.converter.dir/converter.cpp.o -c /llvm/libc/src/stdio/printf_core/converter.cpp
In file included from /llvm/libc/src/__support/uint128.h:12,
from /llvm/libc/src/__support/FPUtil/FPBits.h:27,
from /llvm/libc/src/stdio/printf_core/core_structs.h:16,
from /llvm/libc/src/stdio/printf_core/converter.h:13,
from /llvm/libc/src/stdio/printf_core/converter.cpp:9:
In member function 'constexpr __llvm_libc_20_1_7_::cpp::optional<__llvm_libc_20_1_7_::BigInt<Bits, Signed, WordType> > __llvm_libc_20_1_7_::BigInt<Bits, Signed, WordType>::div_uint_half_times_pow_2(__llvm_libc_20_1_7_::multiword::half_width_t<WordType>, size_t) [with long unsigned int Bits = 16512; bool Signed = false; WordType = long unsigned int]',
inlined from 'static constexpr __llvm_libc_20_1_7_::BlockInt __llvm_libc_20_1_7_::FloatToString<long double>::grab_digits(__llvm_libc_20_1_7_::UInt<Bits>&) [with long unsigned int Bits = 16512]' at /llvm/libc/src/__support/float_to_string.h:653:57,
inlined from 'constexpr void __llvm_libc_20_1_7_::FloatToString<long double>::init_convert()' at /llvm/libc/src/__support/float_to_string.h:691:62:
/llvm/libc/src/__support/big_int.h:795:26: error: iteration 258 invokes undefined behavior [-Werror=aggressive-loop-optimizations]
795 | remainder[pos - 1] = val[pos - 1];
| ~~~~~~~~~~~~~~~~~~~^~~~~~
/llvm/libc/src/__support/big_int.h:794:16: note: within this loop
794 | for (; pos > 0; --pos) {
| ~~~~^~~
cc1plus: all warnings being treated as errors
```
I looked around for a while, and found out that adding another flag: `-DCMAKE_CXX_FLAGS="-Wno-error"`
And it still has the same issue.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzEWE1z2zjS_jXwBQWVRJqWdPCBFKWM3ki2xx-vsycWSDalnoAAFwBlO4f97VtNUrbjxDuZyW5FZYsigH660V_ohnQOdxrgnEUJi9IT2fq9secW9B6fZC1PclM-nW-feFHLz8ALU9dSlyyM2ThmZ-Phbxz30yxYKXWohwcXH_gF6j8kF-liG39cZsndepNmt_-4WrIwvQYF0gFn0YKNYy7Szeb_t9nyIk42y-zq-vL_lovbGxamLAgKJfWOhUn3FN4Y5QQ8eitZmChV0oypG1RghfU0hnkxPFTRr8lZmJgGdN2wMGFBcGTL-RvO13cXt-vtcuCsMG_1A9KWO7jHR5nj8-9XOAPIbXz9YXl7k91e9pvtUT7Nzr7L8u5mmW3WFx-X1yxMlSpfwHp9rS9ubuPNJkvWF-n6usNaLYwFFqwS1F_hfU2wWSdvCTaYf0T_H2jSy8UrGu28bQvPgtWNNxaujSGzpqZw7wm5vlhs7tLlW77x1fo3kCXY9-i28cWf8t1K3Ur1fVe5X15fXxL95Wr1xitj5fem3e253wPvXLKkDdSgPRo9eHG4_B5anFxebvppzm-8abjUJa8kqg4sb1GVLFhwrLjkR-_jD9Jq1DuOjnuLux1YKEc8hUq2yjvuDb9crUYEO47X_EE6vgPviUJqDtYa-21osSiJJlMWrGbj2YxFKU-IN9EsPn3iJv8DCs8ba-jpKPTI-YOVs923L9GwYNVY1L7Kit4mi638DCtUcFw_crYYdWtHr1aOCqMPYD3YUYmWBauX96JpRoaN41W83ixTFsa_RgJO-glWraO5HDWtYEHCgoScZJ0ssot4u7y5iheUcbKMfCAjdlkwzibZNONizYKVrxui7226-gs76cmPOe-vLuYC3ZPzUPMfkAF1odoSuKiu1gsuKm2Eg1pqj4VA7cE2xiG5NRfVAR3mqNA_CdQKNTixx7IEzcX94GVpKT0IjzX0WAoroDdROuDiXipFaynHcnGvjWh166AUjbSyBg-Wi_sHix6E8xb1znFxX0jnxT8pTjuKGp1DvRMVgioFavQoFX4B67hooOwk71cqo3fdFxf3WDcKC_Sikkr5ve3Ct8eTTzmIVr8glf2ENlq3auBaKOmcqKGWRQHO9YMWylYTR1GbA_RjDTiHNX4hEV9GtYHHAhov_FNDQyUo8EAsxAGtb6USpTe0e9fuduC8MAewFsuBng5I0P5ZAwokhapAXYL2srfPfeFl-bwf1zaNsZ52U5Uod9o4j4UThVHEqKpaXRCdcNA9Ha2TXr56vwy5SC_SZXL34ej3v99cXt9m6-3VhoWvR36_Wy8-ZvTzuDJO0-zibrPJFr8tFx9vuKgaHJyCvNGj7l96xQwCkNXkozhA4Y0VfVS6l7n-zBRe5gqGIemedLG3RpvWfW_eeo9cVN7iAaUSsvVGHKTtHIeFaSO9BzuIYmpyEPJE0ZjO-bmoj-MKZPV28o0_dzFAdniWuzcY1ULi9WAFj17otgaLhVDowUrljv7z7MLv-Ozb-Oi4U9AiF86XLEyHXDWZcrFNudje_qIsKrarX8N5VHJhftWmC_7jufstPZ3fmleogA-JueSVNfV7kFk2hDmdVqj9JJiN9iyMJwELjgXZV58fBVtd3XlU3Y8EvetAg-nfAH1v0xayviTrsSdn_0Xso0I74PB_AEyWCuN5X1StNa-hzsHyY0rlLJgWVHLCY2P5d8oDIgzjHoWFsenyn1QsXLy7OMHdWnsWLsgcVCHeUIPV1Yr3xpa3Tw1QTUn_P4nRry3xkJFHZXupqoyOcJc15iELWDB7l0HdKo8Pxpb9a0f6gKXfZ8T1NY9gwR1-gcyzYM5ZlDyg3_PurG511zqWHLXnJChnYconZ9EkYGHCc2PUIHc3UUnlgCaO6N3oN0gsStlr_-3rl-fgmjo6RAv-A1ZLlCk-r7V_f8VKGelvzU2XoVm46IQpTZurF_XurMyzEnedId5X6N0re5HWzv6Suro9c-l_JOArEjrzJusPli52zqKQhXF0VNtbnb0o62Cw_Dl90HGcDQHGghkL5j8p-nxC38HQ9_w5SI67DLXviKfziNLdGfUfx-6Jd6d0F91BNOOoD-YzON7qEqpOKzns5QEN9aPJSzksdztLFeEBhDKmERTqNX7pgBwZiNxxOo84my6GxGShllTXWRYljXFc8Am1Z2TWg1RfDbIweU5tBPCvbz8sWvbPv6GF0z4xhzHXxgM9ye9Qc79Hx2k_g_inz-JXpIBgRgFJYlI6GtOLEI1xnfNOvxW5k5GN46KYNKp1xIgKq6HrdTwHaku9BUnlrHS9UdzbhpZ6X2XMZ1pjTUt9tbFc8oc9KqCM07Xa3YRpPfd76bksy75NNn5PGVzJHbFnZ-PjfcLi06dstYk_DDc3XZHWWzcIhusAXXL03HlUiu-l6zp5J2vg6FwLo5PyPCzn4VyewPlkGk2mwXw2m5zsz0_nRZ5X89O8Kk7Ls2Iajs-qYjYt5_Ooyot5dILnwTiIxtNxNInC2XgymkXzWTWX1SyajecyCtjpmLxFjciwI2N3Jx3L88npdBKFJ0rmoNzxEs6e0yqRtzvHTscKnXcvdB69gvP-moKj0yyY-kHxFlwDBan-YQ96uJWgie7qo8sGrrDSF_uT1qrzvfcN2ZAFKxasduj3bT4qTP31LZ4YqjNqQUlkqroGqQ_nwb8DAAD__4dam30">