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

    <tr>
        <th>Summary</th>
        <td>
            libc build fails in printf_core
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          liam-clink
      </td>
    </tr>
</table>

<pre>
    cmake invocation:
```
cmake -S ../llvm/ -B . -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_ENABLE_PROJECTS="bolt;llvm;clang;lld;lldb;clang-tools-extra;cross-project-tests;polly;pstl;libclc;libc" -DLLVM_ENABLE_RUNTIMES="openmp;libcxx;libcxxabi;libunwind;compiler-rt" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DLIBCXX_USE_COMPILER_RT=YES -DLIBCXXABI_USE_COMPILER_RT=YES -DLLVM_USE_LINKER=lld -DLIBCXXABI_USE_LLVM_UNWINDER=YES -DLLVM_INSTALL_UTILS=On -DLLVM_LIBC_FULL_BUILD=ON -DCMAKE_INSTALL_PREFIX=$HOME/llvm15_temp
```

```
[1921/5860] Building CXX object projects/libc/src/stdio/printf_core/CMakeFiles/libc.src.stdio.printf_core.parser.dir/parser.cpp.o
FAILED: projects/libc/src/stdio/printf_core/CMakeFiles/libc.src.stdio.printf_core.parser.dir/parser.cpp.o 
/home/liam/gcc-12.2.0/bin/g++ -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/liam/Documents/GitHub/llvm-project/build/projects/libc/src/stdio/printf_core -I/home/liam/Documents/GitHub/llvm-project/libc/src/stdio/printf_core -I/home/liam/Documents/GitHub/llvm-project/build/include -I/home/liam/Documents/GitHub/llvm-project/llvm/include -I/home/liam/Documents/GitHub/llvm-project/build/projects/libc/include -I/home/liam/Documents/GitHub/llvm-project/libc -I/home/liam/Documents/GitHub/llvm-project/build/projects/libc -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-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wmisleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -fpie -ffreestanding -fno-builtin -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -std=c++17 -MD -MT projects/libc/src/stdio/printf_core/CMakeFiles/libc.src.stdio.printf_core.parser.dir/parser.cpp.o -MF projects/libc/src/stdio/printf_core/CMakeFiles/libc.src.stdio.printf_core.parser.dir/parser.cpp.o.d -o projects/libc/src/stdio/printf_core/CMakeFiles/libc.src.stdio.printf_core.parser.dir/parser.cpp.o -c /home/liam/Documents/GitHub/llvm-project/libc/src/stdio/printf_core/parser.cpp
In file included from /home/liam/Documents/GitHub/llvm-project/libc/src/stdio/printf_core/parser.cpp:11:
/home/liam/Documents/GitHub/llvm-project/libc/src/stdio/printf_core/parser.h:109:13: error: explicit specialization in non-namespace scope 'class __llvm_libc::printf_core::Parser'
  109 |   template <>
      | ^
/home/liam/Documents/GitHub/llvm-project/libc/src/stdio/printf_core/parser.h:110:29: error: explicit template argument list not allowed
  110 |   static constexpr TypeDesc TYPE_DESC<double>{sizeof(double),
      | ^~~~~~~~~~~~~~~~~
/home/liam/Documents/GitHub/llvm-project/libc/src/stdio/printf_core/parser.h:112:13: error: explicit specialization in non-namespace scope 'class __llvm_libc::printf_core::Parser'
  112 |   template <>
      | ^
/home/liam/Documents/GitHub/llvm-project/libc/src/stdio/printf_core/parser.h:113:29: error: explicit template argument list not allowed
  113 |   static constexpr TypeDesc TYPE_DESC<long double>{sizeof(long double),
      | ^~~~~~~~~~~~~~~~~~~~~~
/home/liam/Documents/GitHub/llvm-project/libc/src/stdio/printf_core/parser.h:115:13: error: explicit specialization in non-namespace scope 'class __llvm_libc::printf_core::Parser'
  115 |   template <>
      | ^
/home/liam/Documents/GitHub/llvm-project/libc/src/stdio/printf_core/parser.h:116:29: error: explicit template argument list not allowed
  116 |   static constexpr TypeDesc TYPE_DESC<void *>{sizeof(void *),
      | ^~~~~~~~~~~~~~~~~
/home/liam/Documents/GitHub/llvm-project/libc/src/stdio/printf_core/parser.h:118:13: error: explicit specialization in non-namespace scope 'class __llvm_libc::printf_core::Parser'
  118 |   template <>
      | ^
/home/liam/Documents/GitHub/llvm-project/libc/src/stdio/printf_core/parser.h:119:29: error: explicit template argument list not allowed
  119 |   static constexpr TypeDesc TYPE_DESC<void>{0, PrimaryType::Integer};
      | 
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWFtz4jjT_jXKjUqULYXTBReATZZvOaSAfMleuWS5Ae3Ikl9JziRz8f72t2QDycxkq3Z2ZzJDUcbqbvXh6cdtG-6cPGiAEepOUDe54rU_GjtSkpdEKKk_XOWmeB6Jkn8ALPWjEdxLoxEboyhB0Rj1otO3WbZ2ZIs7HURnSj2WiM4wmeAOJjd4JfWfHJNkuhz_nmaTu_kiyXZ_3KaIJRtQwB1gkiwW_7_MduPNTbrbZrt1a4ZY8jDonbXpajxZpNntZv1_6XS3RSxBlOZGecQmTUw2EYrrQ7Ms2mN-FhJvjHIEnrzlQWaNc6Sy5k8Qnnhw3iE2qYxSz-HXeRX2y1wocTpBlH6RyOZutZsv01MipgJdVifjp6fLCc9le17rj1KHtIQpK6nAEutbpy0w02y6Xt7OF-kGseQgxIvi4eEzFaITRCchmfkk6O626UWfbXaIJX-k24t6PJn_tUWoJigX89XvjXOliq92tlar-_kqaWxe7Z2vtrvxYpHd7eaLgMNanzXBRTa7WywunVyvLhWdt91u0tn8ocHv-rf1Mj2RJ-5mHsrqTaq9LexO4iGNEZ11B70IdRM8qaUqpD7g6cMDNnnoMj5124UoTUNnzjZHX0iD6KyyUvt9JowFRGfTJf8AM6ngbN9xVnQa284ry07FrQPbKaQNLtqFqKqOaVObjeeLNEFs_N7h8QkaOjuaEhonPFyWByFITDu0EyE6y6UOogujspvVXbZd322maVhl210SaBnatdply_F0s96-KGbrzXL8tXgxX85fpPOvMkiMqEvQDRI30v9W56e-n6_HkFjoXwPK3wbtn4b6UX7PJUgtVF388_Taafovvfw1nv82PZmL75wUJvvb-RSTvTbEQcm1l4JI7cFWxslwH8Jk_yidzKWS_plIraQGR46yKEBjcg_WGotYUnAPxMsSMLnnSgVNGP-Y3GtDal07KEjFLS_Bg8Xk_qOVHojzVuqDw-RecOfJf2qu2h2ldE7qA9lLUAWRWnrJlfwE1mFSQdHk2Voqow_NAZN7WVZKCunJnivlj9bUh-PJH3_OgdT6xVPRKoTizpESSi4EONcKLRS1DkFIaR6hlVXgnCzlp5DVi1QbeBJQeeKfqyAqQIEHoo0mj9L6mitSeBMKdvXhAM4T8wjWyuK0X5gydA6T-1I6BTzMUSJ1AdrzE_qF5AdtnJfCEWFUcLbf11oENXHQ_Lpgxz1_tV4zTJJVkk7ubjDZVxLCNgvgPNfNtG56HmjhpW4XbSknd03bwl2UeJ4rOIm4e9biaI02tXtLb72XmDhfIJaIdtTFfUyWCSbL3buPZbKcvXfMToGJef9CBf4h8_izOO1Nbq7xXqrwpNrMsgLvrSnfIzobx_HLQ_GPjXcM0aJhOLLwPHGacmMMT-2Ewa4C0QyS9jKVGodrXvMSXMUFYCdMBRjRfjNgcJaFXLImAzZGbPw6bCO4bSIj2m8LxDiOhhj1pxjj8ICmuAeM2BSx9GwQPsEAddP3AyWOEBvT4dugXBLl9tAExko6j7XxmCtlPkJxKS6OTsW5MOgEFkY7D0-VxbvnChJwAof3lixJt1PEpoWpcwWh-P7EyU9g9ogOTkI6RHT6Bij__eLzjiDRn8ucmP6KzGHfiTnsm5jTPBq8SZ_Xmr_LofcmUvcnE6n7KxKp952I1PsmIj0aWWBEx1-w6CL-BcfQ4CezZ_Arsmf4ndgz_Gb2tMyJEJ3iWytLbp-DaYveXHs4gEX9BLHJVwB9_kfMVTFixZAN-RWM4l6_ywbXccyujqPe9X7fp3ncFbRbUNbrQZQX-YDG_SFELI-v5IhGlEU0YlFEB4x1xJ51-11GWZz3Bozv0XUEJZeqE0DuGHu4ks7VMOpF18P-leI5KHf-I9OOmk7k9cGh6ygA5V62eekVjJpXzObVE--5VC7Q7FVrrmqrRkfvKxdAoDNEZwfpj3XeEaZ8eR__ouFNRoERTVL_CwAA__9DePiw">