<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/135193>135193</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Build fails on SLES15 SP1: APFloat.cpp: ... error: llvm::fltSemantics ... is not a constant expression
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
eyalroz
</td>
</tr>
</table>
<pre>
I'm building LLVM - master branch - on a SLES15 SP1 machine, with Python 3.13.2 built from source (otherwise the build can't happen). The GCC version is 7.4.1.
CMake configuration is:
```
cmake -G "Unix Makefiles" -DLLVM_ENABLE_PROJECTS=clang -B build2 -S llvm -DCMAKE_BUILD_TYPE=Release -DPython3_EXECUTABLE=`which python3`
```
during the build of APFloat.cpp, I get the following errors:
```
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:130:61: error: ‘const llvm::fltSemantics{15, -14, 11, 16, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semIEEEhalf = {15, -14, 11, 16};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:131:60: error: ‘const llvm::fltSemantics{127, -126, 8, 16, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semBFloat = {127, -126, 8, 16};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:132:65: error: ‘const llvm::fltSemantics{127, -126, 24, 32, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semIEEEsingle = {127, -126, 24, 32};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:133:67: error: ‘const llvm::fltSemantics{1023, -1022, 53, 64, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semIEEEdouble = {1023, -1022, 53, 64};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:134:69: error: ‘const llvm::fltSemantics{16383, -16382, 113, 128, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semIEEEquad = {16383, -16382, 113, 128};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:135:61: error: ‘const llvm::fltSemantics{15, -14, 3, 8, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semFloat8E5M2 = {15, -14, 3, 8};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:138:59: error: ‘const llvm::fltSemantics{7, -6, 4, 8, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semFloat8E4M3 = {7, -6, 4, 8};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:145:59: error: ‘const llvm::fltSemantics{3, -2, 5, 8, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semFloat8E3M4 = {3, -2, 5, 8};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:146:64: error: ‘const llvm::fltSemantics{127, -126, 11, 19, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semFloatTF32 = {127, -126, 11, 19};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:152:50: error: ‘const llvm::fltSemantics{4, -2, 3, 6, (llvm::fltNonfiniteBehavior)2, IEEE, true, true}’ is not a constant expression
4, -2, 3, 6, fltNonfiniteBehavior::FiniteOnly};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:154:49: error: ‘const llvm::fltSemantics{2, 0, 4, 6, (llvm::fltNonfiniteBehavior)2, IEEE, true, true}’ is not a constant expression
2, 0, 4, 6, fltNonfiniteBehavior::FiniteOnly};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:156:49: error: ‘const llvm::fltSemantics{2, 0, 2, 4, (llvm::fltNonfiniteBehavior)2, IEEE, true, true}’ is not a constant expression
2, 0, 2, 4, fltNonfiniteBehavior::FiniteOnly};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:157:76: error: ‘const llvm::fltSemantics{16383, -16382, 64, 80, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semX87DoubleExtended = {16383, -16382, 64, 80};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:158:53: error: ‘const llvm::fltSemantics{0, 0, 0, 0, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semBogus = {0, 0, 0, 0};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:159:66: error: ‘const llvm::fltSemantics{-1, 0, 0, 128, IEEE754, IEEE, true, true}’ is not a constant expression
static constexpr fltSemantics semPPCDoubleDouble = {-1, 0, 0, 128};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:161:71: error: ‘const llvm::fltSemantics{1023, -969, 106, 128, IEEE754, IEEE, true, true}’ is not a constant expression
53 + 53, 128};
^
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semIEEEquad]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4038:37: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary !
(!significand_mask ||
^~~~~~~~~~~~~~~~~
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semIEEEdouble]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4042:39: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary !
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semIEEEsingle]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4046:39: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary !
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semBFloat]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4050:35: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary !
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semIEEEhalf]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4054:37: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary !
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semFloat8E5M2]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4058:39: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary !
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semFloat8E4M3]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4066:39: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary !
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semFloat8E3M4]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4082:39: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary !
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semFloatTF32]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4086:38: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary !
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semFloat6E3M2FN]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4090:41: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary !
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semFloat6E2M3FN]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4094:41: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary !
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp: In instantiation of ‘void llvm::detail::IEEEFloat::initFromIEEEAPInt(const llvm::APInt&) [with const llvm::fltSemantics& S = llvm::semFloat4E2M1FN]’:
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4098:41: required from here
/usr/local/src/llvm-project/llvm/lib/Support/APFloat.cpp:4008:10: error: in argument to unary
gmake[2]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/build.make:121: lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o] Error 1
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsW1tz2roW_jXiZQ0eW5IvPPBgwHRyTmiZknZ6njLCFlinxqK2nDT7Yf_2PZK5JSGZ2dQu7Nl4GIwtW1rr-z5dloRYWYplznkfuQPkjjqsUqks-vyJZYX8ozOXyVP_BmF_BfNKZInIl3B7-3UCXVixUvEC5gXL4xS6IHNgMLuNZo4Ls6kDKxanIucID-FRqBSmTyqVORDLIRY2uSlYFHIFpayKmAPCgVQpLx5FyUGlvC4QYpYj7CtI2XrNc4R7FtylHD4Mh_DAi1LIHEQJvkUtx0J2iOxwOGHfOcQyX4hlVTBVP4KITkOevfnYYbzSz3U_AML4Sy5-gn5vITJeIoyhO9J-3kcfw8FtdD_9_Ok_0fBuhsgozli-hO6gtg9DdwZZ9rCC7mg4Cf8b3Q--3NyO7u_-N40QGX3mGWclh-6odp_cR9-i4Zc7nSkiI-TZj6mIU1jXqbVhh0YmVaEx3-MhFxBOx5lkyorXa43uDSy5Mk8sZJbJR_08LwpZHPEZ4XFVFgiPMxmzDOFxWcT6KntYddeF_D-P1eZSn8Qc4fGsWq9loW8flktCh9iIhJ6DSFgXp3-gCKPARr0glnmpDDDaCBIuMjXjK5YrEZfIHziutrzrUH1yHPPtGWeiKPJduv2pz6qo-O7sj7ZF9DTvuVTAwBTGcgX857rgpRYFskMoFVMirlN1ChwaASVf6RJSli0AkRG8aZU_QmSg8_uVA7lR0_Br5D37NPixX3uKDejBmfAfGId26B83qgn4W0Afa_TdJtDHBm2CzyL_UuTLjL9Bwc6yRqpAS0QQTYR_GhE2JrW_Njbwu-bSo2ehIpHV_ICKN21rjIxW6KCajt5pdHgk2PjskQDXjbC54eDgLJT8qFiyI-Rd6xokpRVa3Ib6arJrmn8rGcaZIHIn-GhfvbHqUnvqAJHQPa1O1O2xaY3pWaGnE7KF_rVNDQDfPOzUPR32uqLX7e5ZYScTuoX9tU2XCbunmxraxMhoMwTvnQf8uzHBbwyMdoY11ew3T4OrB6juaeEB3SutHnToL4SDZy981AF2LhQf8JQ9CFkg3MON0KOPoyYcLdXYMzb3PuXZ0y9Q0gIJuhrQ05og47u9a2TPwMExC9qloAUGvCYYwDsQzsXA3oJ_HAM6NvO9piKCOjgL7N_eJ3wL_JGJ0KKfiucJfy8w2BnZaFjQHkVmgEpOosjeSXT_9XsnkeSyKrdcvLLmlwhoAWndEnmnVYau89y5cwTF0-mwrgSjZ5MVx0xrTvrN02AiYf_EcHg7MdPzzMDUsb2W2Dj9cAkgPNhMGTU-PdECI3CTg6hBEPWKjVzsGXmQIjkgJOGKiaz-rUE2GdWXugccF9JM3oTTm1wh_IrPzX0P4R4gd2AWp97lHHswM0rfpx_MDyF3T-lmwaU5XKhtJg-Imd8EKPiPShQ8qRfOUl7wpouzdXHO87BB5MCKZbXiuQIlocpZ8QQIO4d6Qlr-TimWuViImOXJ_YqV3wH5Q_05FB5yoz9fHFct7aZ_W1YT1VEh6V2omq4iqJdj2haBdxXBpYqgXhJtWQBmWsgsCVwFcGkC2P4noW0J0EseVvy7JbBf7GpbBMG1I7hwEdAJaVkE3nU0cOkiIBPasgiCa1xw2SK4G5O2e4PANATBVQOXqgEvIhM8_tiyDHqaEupcZXC5MsAT0r4M6FUGFy0DGuGJ074MgguVgR0uV-w7R-7A9IskBITD-qOhfVmQ2RQyrjd3jG9vv042SVYitO1mb4VlMiShg42_fzOLA1csidwRRNoBcF7swOgkfZL0SI91eN_xKcU9L6BuJ-3bjPuLxdyZJyQIbBL3Ek6x7RHPx67ru6wj-tjGrk0d26EutV3LjunCd1nCF3PPnvscUZuvmMgsDbYli2VHlGXF-w5xnR7pZGzOs3K70afoG4bm1bJE1M5Eqcr9e0qojPcHZsPJgomsBJkf7O3R6LyoRJZlwZ6y42o2D7236NWpiqyfKrU2O1fwGOHxUqi0mluxXB2I6Lm0jJOak42fD338VwAAAP__P5CiNA">