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

    <tr>
        <th>Summary</th>
        <td>
            Failt to build flang-new on Raspberry Pi 5: `-Werror=restrict`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          zaikunzhang
      </td>
    </tr>
</table>

<pre>
    Hi, 

I tried building flang-new on Raspberry Pi 5 but failed. 

Thank you for taking a look.

Best regards,
Zaikun

== Information about my Pi:
```
$ uname -a && lscpu
Linux zPi-6 6.1.0-rpi8-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.73-1+rpt1 (2024-01-25) aarch64 GNU/Linux
Architecture:            aarch64
  CPU op-mode(s):        32-bit, 64-bit
  Byte Order:            Little Endian
CPU(s):                  4
  On-line CPU(s) list:   0-3
Vendor ID:               ARM
  Model name:            Cortex-A76
    Model:               1
    Thread(s) per core:  1
    Core(s) per cluster: 4
    Socket(s):           -
    Cluster(s):          1
    Stepping:            r4p1
    CPU(s) scaling MHz:  62%
    CPU max MHz:         2400.0000
    CPU min MHz:         1500.0000
    BogoMIPS:            108.00
    Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
Vulnerabilities:         
  Gather data sampling:  Not affected
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Not affected
  Retbleed:              Not affected
  Spec rstack overflow:  Not affected
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:            Mitigation; __user pointer sanitization
  Spectre v2:            Mitigation; CSV2, BHB
  Srbds:                 Not affected
  Tsx async abort:       Not affected
```

=== Buiding script: a [script](https://github.com/llvm/llvm-project/files/14831123/compile.txt)
composed according to the [official documentation](https://github.com/llvm/llvm-project/blob/main/flang/docs/GettingStarted.md)

=== Error messages (the following segment repeats many times):
```
431 |         return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
      |                                        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
In static member function ‘static std::char_traits<char>::char_type* std::char_traits<char>::copy(char_type*, const char_type*, std::size_t)’,
    inlined from ‘static void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy(_CharT*, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:423:21,
    inlined from ‘std::__cxx11::basic_string<_CharT, _Traits, _Allocator>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.tcc:532:22,
    inlined from ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:2171:19,
    inlined from ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::insert(size_type, const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:1928:22,
    inlined from ‘std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const _CharT*, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:3541:36,
    inlined from ‘std::string Fortran::semantics::ComponentIterator<componentKind>::const_iterator::BuildResultDesignatorName() const [with Fortran::semantics::ComponentKind componentKind = Fortran::semantics::ComponentKind::Direct]’ at /tmp/tmp.SdSZSxOXXI/flang-new/llvm-project/flang/lib/Semantics/tools.cpp:1355:16:
/usr/include/c++/12/bits/char_traits.h:431:56: error: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ accessing 9223372036854775810 or more bytes at offsets [2, 9223372036854775807] and 1 may overlap up to 9223372036854775813 bytes at offset -3 [-Werror=restrict]
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWFtv4zjS_TXMS8GGRF1sP_jBl7g7-DrdQZyebzAvBkWVbG4oUiCpJM7D_vYFJfnu6cnszA72Ihi2VTosnjrFS1HMWrFWiGOSTEkyv2G122gzfmfiuVbvG6bWN5nOt-PPgtAZkGBOgkn7fQfOCMwhq4XMhVpDIZla9xS-glbwyGyVoTFbeBCQQFY7KJiQmPdPnDxtmHqGra6h0AYce_aOGEitn_vHuClaBwbXzOSW0Flr_KUheQwj0ZxEc7hThTYlc0IrYJmuHZSeB4l2sDToPu0tjaFWrEToMSA0JTQFaXlVt4-_CFW_wfuD6KWQ9sN-0DOVGPqvHh2EFAiNQljeP8DD4-3t_cMTzDETTEFIoonHD6JeSOjUVC4EQoc0oHEvCHs0IXQEjBm-SWP49PU7oYumq7bXieEb4ZC72iCJJnB0dW1aHMDs4TvoqlfqHAkdWkJHR_iI9jLhfO7SuPnXNZpuHcI3k6M5c_5FOCcRblUuWKft7OH7pePDtSfyTfWkUAgHPEhhXdso6EUt7idUuTZwN790Nnm83_m61zlK8Ek5g820cfjWmwzSHbQDX7oLD4injUGW71hVaIDrTtcj1MzbjjGytq5VKD6glpo_o7uqSO_IV9f2Cuyox6XDqhJqfUbexNUxrYOeljPpp8j95_emSUoJTU6QULK3_ePuonEQ9IMgCM6QQp0jw-QCOdVrfX_3sDyjGAbD_jFsIdnaXuagqIBZUeaAL846UwJDC1VZSwl2w0L_RYEbHlFgTpeCWyiqTddoUwGvapG3dyYvQRpecch5pTtIXnWjqpYKDcuEFE7gCZEdx0_MbdBAzhwDy8pK7nT_qh2wokDuMN-B75zMoKylExvhjr1dA38JXXF1alwD3-dXZPpVMEqX61d10eIquBQarGMSmyAPba6BH9FlEjH_kOdlhRyMdYw_g35BU0j9-qvSNWDrtEHIthWz-3DvhRPrZlUm0bSB1ZI58YKwbNDTBg25sCyTmMOLYFAZ7uSxZ2cQXsIz1qeeV6vaooFKC-XQgGVKOPHePj73RH_oabb8ifq1c_p5um9psusJvCbFk30DZreK-23IuB9l5HxPOtrP_JY2rUWzyVpuRNU4YkCSaXebzAkdbpyrPDNCF4Qu1sJt6qzPdUnoQsqX3U-vMvpvyB2hi0JItIQuwngYhSGNCF1wXVZCYt-9Ob9qNSS8TVvMgXGuTcPCaXAb9AR0UQgumIRc87pE5Vrt_jlCmdQZoYuSCeXp-XqC0EWuuWf5CZ0Tar10zDjM-2W-J3iu1a0x2kCJ1rI1Wr_nerKFllK_Nhri2jMFgxUyZ6FkagtOlNit1FcTEkchkMFsn26DrjbKTzcn-Iozv8_N-IaZldtWSOiERLeEDlcrXx85oVYllrzaNiYb-kG1Wlna_irfr-96elhP4aS337j-fnaR5PbC1BZtO8ZQYpmhgaJWvKmTyC0lw4CMht1z6_zSQKJJG5NhwtkuQh_Z0aM23I810I0CJzLRGXCtrINz696hFe-4asZjx3G0LwF98EL5qiOHwujyIowXLfKDp9WKv72FYXuTMSv4yjrT7AOz1WzDzFOTkKeWvP87kVLzPf_VctWFsEMf8T8xtZybYEZ-nrwKt-kQ4MdoK8t011dj-y0Fpx2dUzDzJua0OYIm871UwBwQuqitIXQhFJe1LxMXnNBp81mE1M-8Jt7FsST9DYkmMY1INKHhhwT_YyK3Idz64vvPy9f9ymAlGW_KukNKTvLz35o_xzmJJknktzhK_4IM_tnZ-99N3aaZdAMvXfixxe7fK3NCWTTuPHEXufpPTk84osO_amJ1S-MhMl2haYye5_DKHPjDa3Dz-XB-PpKWf2k2oiT2wUbp78lG2x4W2jjDVGfDkiknuG1vZ772VajcnesUj2Z8Z_s_ofKj0kZZtxJ7mLdNayHzR7S1dHO0Yq38o6-s9EuaV7dN3E7jD_HwfcIJg0bcD7dtTXNhfMV9Kb8rq_a7v8yXvyzfvv38892uFO8pfL1yiOiqdCl86b7cd00XTmtp-7yq_GyJksT_pIfy-qO5PhpbbUkS-Uwn3hOgr_T9n31yfb3nq9ErdXf36LASHRmkVmuoVfMuNAehTqpNf_BBa_1YGVEaRQMaROkwiQeDZBgG4M8a7WHXofU66qKw6GdGMm0K_ItGwYAkc2AqhxBKtm2O1JJVUFf-ZHXZR3TuG3qR9977_06AuUE_mNuUnp5ebvJxlI-iEbvBcTgIaRimw3R0sxlnA2SjLA6DQZTGSTqgBaODNEhylhQ4GIU3YkwDGgdxEAVxEAaDfhIWaZjmEU-ieJBmAxIHWDIh-35I9LVZ3whraxwPB3E8vJEsQ2mb98qUKnyF5iGhlCTzGzNuhlFWry2JAymsswcvTjiJ4wUT0nk9mhfMP3q73AyANLiiRhrc1EaOf_dBtKHqB18Tyj8CAAD__8Fr3NI">