<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59853>59853</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            flang fails to build on AArch64 with error: '(((const char*)(& vaArgs)) == 0)' 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>
          ohno-fj
      </td>
    </tr>
</table>

<pre>
    I built flang in the same way as usual, but I got an error. Is there a problem with my build method?   

The details are as follows:   
- hash value of the source
```
    $ git show | head -1
    commit 41005b7ab2ece511a441d489e9130b82f4fab4cd
    $
```
- compiler version
```
    $ c++ --version | head -1
    c++ (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
    $
```
- built machine
```
 AArch64
```
- options for cmake 
```
    cmake \
      -S ../llvm -B ../build \
      -G Ninja ../llvm \
 -DLLVM_PARALLEL_COMPILE_JOBS=9 \
      -DLLVM_PARALLEL_LINK_JOBS=3 \
 -DCMAKE_BUILD_TYPE=Release \
      -DFLANG_ENABLE_WERROR=On \
 -DLLVM_ENABLE_ASSERTIONS=ON \
      -DLLVM_TARGETS_TO_BUILD=host \
      -DCMAKE_INSTALL_PREFIX=/home/users/release \
 -DLLVM_LIT_ARGS=-v \
 -DLLVM_ENABLE_PROJECTS="mlir;flang;clang;openmp" \
 -DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi"
`
```
- log of ninja (The following is an excerpt from the log)
```
FAILED: tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/constant.cpp.o
/usr/bin/c++ -DFLANG_INCLUDE_TESTS=1 -DFLANG_LITTLE_ENDIAN=1 -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/users/ea01/ea0178/LLVM_20230105/llvm-project/build/tools/flang/lib/Evaluate -I/home/users/ea01/ea0178/LLVM_20230105/llvm-project/flang/\
lib/Evaluate -I/home/users/ea01/ea0178/LLVM_20230105/llvm-project/flang/include -I/home/users/ea01/ea0178/LLVM_20230105/llvm-project/build/tools/flang/include -I/home/users/ea01/ea0178/LLVM_20230105/llvm-project/build/include -I/home/users/ea01/ea0178/LLVM_20230105/llvm-project/llvm/include -isystem /home/users/ea0\
1/ea0178/LLVM_20230105/llvm-project/llvm/../mlir/include -isystem /home/users/ea01/ea0178/LLVM_20230105/llvm-project/build/tools/mlir/include -isystem /home/users/ea01/ea0178/LLVM_20230105/llvm-project/build/tools/clang/include -isystem /home/users/ea01/ea0178/LLVM_20230105/llvm-project/llvm/../clang/include -fPIC \
-fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-co\
mment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -Werror -Wno-deprecated-copy -Wno-ctad-maybe-unsupported -fno-strict-aliasing -fno-semantic-interposition -O3 -DNDEBUG -fno-exceptions -fno-rtti -UNDEBUG -std=c++17 -MD -MT tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvalu\
ate.dir/constant.cpp.o -MF tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/constant.cpp.o.d -o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/constant.cpp.o -c /home/users/ea01/ea0178/LLVM_20230105/llvm-project/flang/lib/Evaluate/constant.cpp
In file included from /home/users/llvm-project/flang/include/flang/Common/idioms.h:26,
 from /home/users/llvm-project/flang/include/flang/Common/indirection.h:23,
 from /home/users/llvm-project/flang/include/flang/Evaluate/formatting.h:22,
 from /home/users/llvm-project/flang/include/flang/Evaluate/constant.h:12,
 from /home/users/ea01/ea0178/LLVM_20230105/llvm-project/flang/lib/Evaluate/constant.cpp:9:
/home/users/llvm-project/flang/include/flang/Common/enum-class.h: In static member function 'static std::string_view Fortran::evaluate::ComplexPart::EnumToString(Fortran::evaluate::ComplexPart::Part)':
/home/users/llvm-project/flang/include/flang/Evaluate/variable.h:357:3: in 'constexpr' expansion of 'Fortran::common::EnumNames<2>(((const char*)(& vaArgs)))'
/home/users/llvm-project/flang/include/flang/Common/enum-class.h:51:16: error: '(((const char*)(& vaArgs)) == 0)' is not a constant expression
 } else if (!start) {
 ^~~~~~
/home/users/llvm-project/flang/include/flang/Common/enum-class.h: In static member function 'static std::string_view Fortran::evaluate::DescriptorInquiry::EnumToString(Fortran::evaluate::DescriptorInquiry::Field)':
/home/users/llvm-project/flang/include/flang/Evaluate/variable.h:412:3: in 'constexpr' expansion of 'Fortran::common::EnumNames<5>(((const char*)(& vaArgs)))'
/home/users/llvm-project/flang/include/flang/Common/enum-class.h:51:16: error: '(((const char*)(& vaArgs)) == 0)' is not a constant expression
/home/users/llvm-project/flang/include/flang/Common/enum-class.h: In static member function 'static std::string_view Fortran::semantics::MiscDetails::EnumToString(Fortran::semantics::MiscDetails::Kind)':
/home/users/llvm-project/flang/include/flang/Semantics/symbol.h:373:3: in 'constexpr' expansion of 'Fortran::common::EnumNames<11>(((const char*)(& vaArgs)))'
/home/users/llvm-project/flang/include/flang/Common/enum-class.h:51:16: error: '(((const char*)(& vaArgs)) == 0)' is not a constant expression
/home/users/llvm-project/flang/include/flang/Common/enum-class.h: In static member function 'static std::string_view Fortran::semantics::GenericKind::EnumToString(Fortran::semantics::GenericKind::OtherKind)':
/home/users/llvm-project/flang/include/flang/Semantics/symbol.h:443:3: in 'constexpr' expansion of 'Fortran::common::EnumNames<4>(((const char*)(& vaArgs)))'
/home/users/llvm-project/flang/include/flang/Common/enum-class.h:51:16: error: '(((const char*)(& vaArgs)) == 0)' is not a constant expression
/home/users/llvm-project/flang/include/flang/Common/enum-class.h: In static member function 'static std::string_view Fortran::semantics::GenericKind::EnumToString(Fortran::semantics::GenericKind::DefinedIo)':
/home/users/llvm-project/flang/include/flang/Semantics/symbol.h:444:3: in 'constexpr' expansion of 'Fortran::common::EnumNames<4>(((const char*)(& vaArgs)))'
/home/users/llvm-project/flang/include/flang/Common/enum-class.h:51:16: error: '(((const char*)(& vaArgs)) == 0)' is not a constant expression
/home/users/llvm-project/flang/include/flang/Common/enum-class.h: In static member function 'static std::string_view Fortran::semantics::Symbol::EnumToString(Fortran::semantics::Symbol::Flag)':
/home/users/llvm-project/flang/include/flang/Semantics/symbol.h:526:3: in 'constexpr' expansion of 'Fortran::common::EnumNames<57>(((const char*)(& vaArgs)))'
/home/users/llvm-project/flang/include/flang/Common/enum-class.h:51:16: error: '(((const char*)(& vaArgs)) == 0)' is not a constant expression
At global scope:
cc1plus: error: unrecognized command line option '-Wno-ctad-maybe-unsupported' [-Werror]
cc1plus: error: unrecognized command line option '-Wno-deprecated-copy' [-Werror]
cc1plus: all warnings being treated as errors
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltz4jgW_jXKyylRWIYAD3kw2GQ8wyUFZLP7RMm2jNUjSx5JzmUf9rdvyTYk3el0T2-Trp2aTqUAWUffuX06EkLUGH6QjF2h4RQNwwta20LpK1VIhfMPF4nKnq5iSGouLOSCygNwCbZgYGjJ4IE-ATVQm5oKRGaQ1BZiOCgLVALTWukexMbJawYUKq0SwUp44LaA8qmBzaBktlAZ8ucAgPoh6gft665gkDFLuTBA3XgDuRJCPRjkBydZDAU1BdxTUTNQeWubqnXKOqzLfvffNMENJAM4cAumUA-ARjMoGM0Ae88SqSpLbmHg9fvDZEQTwlI29Dw6GHjZYDxhE8_vJ2OSD3KaDNLsI-jPqsUOsuKCabhn2nAlv2hdisgUkSlg3Em_YWYnhsj4ejZDZALjnt_zgPS9iecRz3VsWAa_UNv24CEikz9jbZvwkqYFl28EMgh0Wly-BaAqy5V0GdOQlvR3Bm863HUPZ8-PAPAWej1E5kLcl4CnbaPly6eS17Di8gN9If8sgcPF4h_L_U2wCRaLaLGfrZc38SLa_7qebpEfTl6BfSK_iFe_HYX9j3Bny-C3aD-9jRfhfvevmwj54YYJRs1rV8L5Ilhd76NVMF1E-7tos1lvkB-u5WtDO5lgu402u3i9cnrXqzes3AWb62i33e_WrR3IDwtl7Gvp1tZ4td0Fi8X-ZhPN438iP0RkXqiSITKvDdMGkbl-5UGnahHv9sHm2pmD7980-2az_jWa7bYNNikF18ifNlUD-dO0e1cVk2WFCHkTZnO72sXLqIM5ThysLfKngifp4-PpA004IuSZWp8no1AHVxpkQxNExq6ytKWEu4Jmmmr1mDJdWci1KpsiItThNFk-QZwH8SIKXRWySgkXuNZJMhc8QWQeuWpErYvsbEl_Z3MumJNSyYfeXGmrqTyK9DKuEZmnShpLpe2lVdVTnVKXF9eZcOlEjjWho1O8mi1uw2i_i7ZNxL1TzyLe7RbRPlqFcbDqeq6d2P6XYLvf7HYx8sM-4HAfRtPba_fhenW7365vN7PItfbbXTjbz9aOMKvdfhnMNuvtc8d8vVkGrx8v4mX8_DR-zS5G-173NhojMm9yTvrE73v9YTd3caXVB5ba42xHZP7lGJ9D0xH5RMj3U8FlKursLJBvxecdVJwR0jVfInLzZCwr4bPAp4T8Dxqa5aCpQX9W2_cE_4cpSj_N8tk0vYzbKy35TTx7Ltg4lwobVlJpeYq5tExXynC35APO77nhCRfcPmEuBZfM4IJnGZOA75pNIfLDjFqGLS8Z4DsqhOt5tJoCvpMK17I2LMMV1bRklmnAdw-aW4aN1VweDOC7lBqL_6ipaEeU3BguDzjnTGSYS245FfzfTBvAFcsaO1tJoeSheQF8x8tK8JRbnFMhbKFVfSg6PPqUMFzLZ6Ss7UgFNQaXrKRpyoxpH0rlVo_KYvtUOYcyJphlWCqJ77m2NRU4s0p3COoUxrJk0p4cEIxmzgcuMyYt7YKZcXqQylieGpwq4VDyvJap68aGpe02C-cZtfRFuw10i52xSrOUWpbhVFVPnRmWZic3TV1VSlvnZJNZq3lqMRWcuqjCF9O99gGHq24lcYJtLDqzpMLaWg749ihibIb8sFvNvBHgZQh4ufvOpfQU07fWVMDL-Tst170MsHonbMDp98_sN016qasNXywh54JBN_Gzdj_02oIvL28vnsxUWSq3f-EZV6XpFcgPyCUix63f-fBlxnXL_1aJfz4lL0KWK11Sa7k8tFrIu2g5Jcbp8L6u410I4QcT5Aenzeh3Z4jJumwLaOMWxBKMq3MplKxMmIZjXQNERl1PUy0C5Adt6d_fc_YA3cRpO9jR-qY1U2Ul2OMNdd8W3INI1uVObZvRiIy_ZWjziUwQGZ0jDC-ifE81p4lgTRj8oYP3XUB443mTA_ZYaURGwB4rKpsTAJW7zo_sT9vInvxc0ZIZ5M8I8iNExu1_AwdpQTUiQePOGJFLuKeBPpimPemcfK9EDz1H4kvnYbf8B86Vb7EQ3HdBP4R-a6r7ziaVBQpHwrpAaWaeT1YAjUJgwjDgLnBjRDxj24QCGk2PQsPoP-7vr0XykJlU88oqHcs_aq6fvpXqbwDM3e7p_Rk_8Mi5GT_8yfj_Y_Yet46mbS65ScP2YPfrxP3a2N-4PCNltydtZG6eykSJtkaP_HMz1vN-UvavQ9lrJpnmaUO2b6Xsq7FrWzD9Q3g7GJydt4OftP2b0jZkOZcsi9UPoO3gJ23_xrTdNlT4Zsa-HDYX9PDuPB2Sy7NvZEc_iRoEFg5CJVSASVXFThlMU68StfnImFpqlqqDbI5oXVSpzEBwybqfoJ21XzjwdAah4fR4MD0Mz6Dpk_PWr6ugQsAD1bI5204YlwewmjkAoKY1wHz2h8iL7MrPJv6EXrAr73JEJiPfG5KL4mo4yT0_o2mWj5Ixm1zmlyxLLwcTNhwk3mScXvCr7nTosk8GwyHppSQZZt6Ijgb9zB8PczTos5Jy0XMU6il9uODG1OxqOBkP_QtBEybM8dKIvmp4ltQHgwZ9wY01z8Mst4JdtXdH8uYyh1XdzQ8lj7cI2ishP4JhF7UWV4W1VVM0yByR-YHbok56qSqffwX5ZOI0vrsJ1bj_3wAAAP__YyXwQw">