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

    <tr>
        <th>Summary</th>
        <td>
            While building project with fshort-wchar facing compilation error : "segmented_iterator.h:72:46: error: template argument ‘(sizeof (_Tp) * 0)’ involves template parameter(s) "
        </td>
    </tr>

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

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

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

<pre>
    In my C++ project using cmake i need to compile my project with -fshort-wchar force project to use wchar 2 bytes in place of 4 bytes. For that As per steps mention in this issue thread : https://discourse.llvm.org/t/fshort-wchar-and-std-wstring/68668/3 
i tried to build LLVM Project locally but failed to build generating below compilation.

Environment:
- Ubuntu 22.04
- GCC 11.04.0 x86_64 -linux-gnu
-  Tried to build with code branches llvmorg-14.0.6, llvmorg-17.0.4, llvmorg-16.0.6 
 
Tried by using same steps mention in issue thread: 

1. 
```c++
$ git -C temp/libcxx3/src clone https://github.com/llvm/llvm-project.git
$ git -C temp/libcxx3/src/llvm-project checkout llvmorg-17.0.4
``` 

2. 
 ```c++

$ cmake -S temp/libcxx3/src/llvm-project/runtimes -B temp/libcxx3/obj -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" -DCMAKE_CXX_FLAGS="-fshort-wchar -fvisibility=hidden" -DCMAKE_INSTALL_PREFIX=temp/libcxx3/out -DLIBCXX_ENABLE_SHARED=OFF -DLIBCXX_ABI_NAMESPACE=__short_wchar -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS=ON
``` 
Configuration logs:
[cmake command log.txt](https://github.com/llvm/llvm-project/files/13408192/cmake.command.log.txt)

3. 
```c++
$ cmake --build temp/libcxx3/obj -t cxx -t cxxabi -t unwind
``` 
During building above command receiving issue while compiling cxa_default_handlers.cpp file:
```c++
[ 92%] Built target generate-cxxabi-headers
[ 92%] Building CXX object libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/cxa_aux_runtime.cpp.o
[ 92%] Building CXX object libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/cxa_default_handlers.cpp.o
In file included from /home/shrihari/temp/libcxx3/obj/include/c++/v1/__algorithm/for_each_segment.h:13,
                 from /home/shrihari/temp/libcxx3/obj/include/c++/v1/__algorithm/copy.h:13,
                 from /home/shrihari/temp/libcxx3/obj/include/c++/v1/__memory/uninitialized_algorithms.h:13,
                 from /home/shrihari/temp/libcxx3/obj/include/c++/v1/__memory/ranges_uninitialized_algorithms.h:22,
                 from /home/shrihari/temp/libcxx3/obj/include/c++/v1/memory:896,
                 from /home/shrihari/temp/libcxx3/src/llvm-project/libcxxabi/src/cxa_default_handlers.cpp:13:
/home/shrihari/temp/libcxx3/obj/include/c++/v1/__iterator/segmented_iterator.h:72:46: error: template argument ‘(sizeof (_Tp) * 0)’ involves template parameter(s)
   72 | struct __has_specialization<_Tp, sizeof(_Tp) * 0> : true_type {};
      |                                  ~~~~~~~~~~~~^~~
gmake[3]: *** [libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/build.make:90: libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/cxa_default_handlers.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/Makefile2:967: libcxxabi/src/CMakeFiles/cxxabi_static_objects.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:1242: libcxx/src/CMakeFiles/cxx.dir/rule] Error 2
gmake: *** [Makefile:520: cxx] Error 2
``` 

Build command logs:
[cmake build command logs.txt](https://github.com/llvm/llvm-project/files/13408241/cmake.build.command.logs.txt)


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMV1tzozgW_jXyyykokLCNH_yAjZl1bZJOdTKz2SdKgAyaFsglCceeh_7tWwJ8S5yd6Zru3qVcQRHn8p2rjqjWvGwYm6PxAo3jEW1NJdVcb1luVFvjIBxlsjjM1w3UB1givEB4AVslf2e5gVbzpoS8pl8YcGgYK8BIyGW95YJZhiPhKzcVOBtdSWWc17yiCjZS5exEYCS0mkH_CUN2MEwDb2AraM5AbiDo91xIpAJTUQORhi1ToA3baqhZY7hsLIupuAaudcvAVIrRAhCJoDJmqxGJEE4QTgquc9kqzVwhdrUrVYlwYhBOLiE6tCkcbQrnVRvFG0syCSeTEOGEAPJi5EUcjOK91VnLRQF3d7_dw-NglJA5FeIAWWtgQ7m4JCxZwxQ11n8ZE_J18Bq1Vri98P7vqtlxJRtroIXf7Tnwa9Y2pgWMXS847v2yXILvu17gerAPJ-kkAEfwpt07ZdMeieD5GnAXmVwWDDJFm7xiGqxLpCodP3A9d4Lw8rwzdT03uNqZWJrBG8Or15AdhvTQtGbvo3QZIBufS5N99_jvxOt_eZ94wy4OoOQGnCUYVm8RTgTP8v2eIJxolUMuZMPeBLzkpmozN5e1JRe748sZEtAtuflL0t_wQV6x_ItszVsfXeO_Mg-7J3_dtu-Eo68s5-mvIEE4UW1jeM00OIv3HDL7HZzY5me6eogWd6v0868Pz-v71RMiMcK4p0Rk0S9oxvt127zypkAYgxMv76N_rtLly0ua3EW_DIzXZe1sdlzzjAtuDojEFS8K1lxyrx-enqO7u_Tx8ypZvyASv0faGot0vbCKBqxP_4g-r2JE4k9Jcv4YLdbpQ3S_enqMlitE4jTtoKQDlDi1dI-Pabx-6qT8tn5aL9Z36-d_p9HDw6fn6Hn96cGa8enhdsCWstnwslVdWYKQpT7VIBov-vDksq5pU9ivrtkbNI4RDr8t-2zj4YJphBOfBF7ozzDCSSfeHcS7R_F4dpkl5M9LZUgip6_323lhIN_vhxfNuF0Ncb_plrhVXeOyEu2CZnJ3doRiOeM7u98X-WtlT4O-v3XnxZ6mBdvQVpi0ok0hmNJuvt2C9cHZv7cNGi_AOmeMxjEsWi4MGKpKZo4NlTm9CU7FaMGU_oCtg718eQGZ9a36lPTH2lre0y8sGaLSf0u1oYbnac-j3YKr7htNabtPh-qzlrjy56i95cWj7nXT-RN4k4u2YAVslKwB4aSSNbPqKsUrqqzmWzmBcDJwWl1DCHCy8xFO0pSKUipuKpvIG6lSRvMq1ay0Dd6tEIl8gvBy6HJvnx8FJJfbw09VXrNaqgPCSdvwhhtOBf-DFWdM-n-DRtGmZDr9r6Aw_hmgBkgkCmeT76Lv5rH3vog-qo0-GqcO8338zo3tO9LW5FABrDhtds6eYkSiYGLHHKaUVHZh9QhqGFBVtpYJ0Aqj0EOzEOFQ8z-Y3ADCYfq8RXgGCEfg2d4_EM2ANzspdkyfJW2pojUzTFkBp3MCAKYY0HQJ2qg2N5CmFdWpnfC73OiONkSWnaIl9JrfKiarbog2qmWpOWwZoOkCTWNEFpcxtUr-9Pl68aDx6uvXXkJpTyk0XhB7ftp5EEf9D9B48TfaZHdGuZ1wEs08K_rHNN1xDCsbXPCvDcK3DLpSaNe2VdssmU2mfxMiFeKMBV9j8b8Ji48DfAbzIZJBr2oF-0DxW41HJYhEY9yFxMp_y3t7eO5O0cuZ68ZElr2j-V6DGQ7802DWZ9bFeKZvzGejYk6KGZnREZv7U88LJrOxH46qebiZ4k0QFhvi-TnZ4OkkCDZ-SAqcZeMZoSM-xx4mvo89LyQhCV3sTyczHAbTCSEY4xAFHqspF6cr7Kgbt-ZTHJLJSNCMCd1d6zFu2Gs_iyFs03Gk5p2RWVtqFHiCa6PPUgw3gs3_1Q1tpwnv6iJ_fY-neTfUna-vfZODPuz4_6snWkSjVon5N-dB5z-bCJ1__xMAAP__HQtZZQ">