<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">