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

    <tr>
        <th>Summary</th>
        <td>
            RISCV.cpp: fails to build in `: error: class template argument deduction failed:` with gcc 7
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:RISC-V
      </td>
    </tr>

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

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

<pre>
    with 7.5.0-3 on linux bionic:

```

/opt/sccache//sccache /usr/bin/g++-7 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/clang/lib/Basic -I/build/source/clang/lib/Basic -I/build/source/clang/include -Itools/clang/include -Iinclude -I/build/source/llvm/include -fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-nonnull -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -fdebug-prefix-map=/build/source/build-llvm=build-llvm -fdebug-prefix-map=/build/source/= -no-canonical-prefixes -no-canonical-prefixes -fno-common -Woverloaded-virtual -fno-strict-aliasing -O3 -DNDEBUG  -fno-exceptions -funwind-tables -std=c++1z -MD -MT tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/Targets/RISCV.cpp.o -MF tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/Targets/RISCV.cpp.o.d -o tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/Targets/RISCV.cpp.o -c /build/source/clang/lib/Basic/Targets/RISCV.cpp
/build/source/clang/lib/Basic/Targets/RISCV.cpp: In function 'std::vector<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > > resolveTargetAttrOverride(const std::vector<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >&, int)':
/build/source/clang/lib/Basic/Targets/RISCV.cpp:272:60: error: class template argument deduction failed:
   auto ResolvedFeature = std::vector(++I, FeaturesVec.end());
 ^
/build/source/clang/lib/Basic/Targets/RISCV.cpp:272:60: error: no matching function for call to 'vector(__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > > >&, std::vector<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::const_iterator)'
In file included from /usr/include/c++/7/vector:64:0,
                 from /usr/include/c++/7/functional:61,
                 from /build/source/llvm/include/llvm/ADT/SmallVector.h:24,
 from /build/source/clang/include/clang/Basic/LLVM.h:24,
 from /build/source/clang/include/clang/Basic/Sanitizers.h:17,
 from /build/source/clang/include/clang/Basic/CodeGenOptions.h:16,
 from /build/source/clang/include/clang/Basic/TargetInfo.h:19,
 from /build/source/clang/lib/Basic/Targets/RISCV.h:16,
 from /build/source/clang/lib/Basic/Targets/RISCV.cpp:13:
/usr/include/c++/7/bits/stl_vector.h:411:2: note: candidate: template<class _Tp, class _Alloc, class _InputIterator, class> vector(_InputIterator, _InputIterator, const _Alloc&)-> std::vector<_Tp, _Alloc>
  vector(_InputIterator __first, _InputIterator __last,
  ^~~~~~
/usr/include/c++/7/bits/stl_vector.h:411:2: note: template argument deduction/substitution failed:
/build/source/clang/lib/Basic/Targets/RISCV.cpp:272:60: note: couldn't deduce template parameter '_Tp'
   auto ResolvedFeature = std::vector(++I, FeaturesVec.end());
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWF9T2zoW_zTKi0aZWA5x8pAHk-BOZkrZAQqzTx5ZOnZ0K0teSU7hPuxn35HtxNDSXrqFuTcTDJKOfjp_fzqYOScrDbBGZ-fobDthrd8bu3aP6gDOW5gURjyuv0q_x8n0bDojMTYaK6nbB1xIoyVHcYpmWzQ7Phez4ft0kmam8YhmjnPG94BoNg4wolnrLKJZITWiWYXoOaLnJMFkm3_49Dm_ufp8vbkIo_zmdrvJN1efbm7TT7f5Zbq5vroZF7Kr68v0--mPu8vdOLvzxiiHaMYV0xWimZIFotk5c5JjsgtqtFKJoJ9pLYf_S1JqrloBL5w2rox_vYSk1KF-Kl46z_gX0ljjgXtjifPW6AqT-9LYmnlM7sFaY1G87SeIA95a6R8xudeGtLp1IAg3dc20IEpqIMxWbQ067BXMA_GyhuC27Or6dpf9e3A8ircUk_Jfuw0mpTbEQc20l5xI7cE2xkkvjcakPEgnC6mkfyRShwMc2UshQD_R7ck5AUvJEsKICAeY3DOlguyDt-yZ1g2zrAYPFpP7r1Z6CNZLXTlM7jlznvynZarfUUvnpK5IKUEJIrX0kin5J1iHSQOi07yXVEZX3QOTe1k3SnLpScmU8ntr2mo_4LHHAkirRyTRL2ijdavUcQAPHBpP_GMTDBGgwEOQIQdpfcsUEd7YXjjEoPd6r68CJoLKUgvQng3eFJJV2jgvuSPcqLC5LFvNw3KIbfjtghzz7NkYirYijYVSPpCaNSjevpRf3QTpsizejoPXA6B4i0mwhulAA0wNW8D9cLocjA_23ZsDWGWYAHF00ZBe3kruCVOShUBichVjsv20vTj__AH3Ir2vB3tb_VVqQTwrVDjDeYHiLe85JPoTk8stJpe3-CdVj2i2uWRfIJMKgogp_ph2Yt3qVMjATbfMVuDD8vXuZnM35U0zNZhcZu-DPBWYmPdSmuNXstzLECdO_w2IOMU7jY_5jBFNusClKE4PHb-heHOayXP-8BBF_aAIqHlf_yje8D2zKL5AdINP8kwpw9mvg-DjjwVn1AF6xVPv7dUBrJUCEF1yo53H_yBtEV0EPKk9oitEk_FC_s0I0YSiOF3MQrAG_k4xV8w57KFuFPOAT1eIANH2sSyZVCBOWmCMWesNvu59KjJgvrWAA39860W67Ot2FwwaBN0d8Clo0S2uwjc-H5DR2cU7WqoNrpnn-0BCp0QtjcU8XFPehKQ96Z3nlW5DzI7h0-ESVrn0YIfYfpM4r0qT9Fmm_P259iTf_kFa9TKdf0eH97XQpUdgGqkAD82UwKU19dh2DtMhZ_r0QzRLEM2OhqWLOYrTGaKbU0Y__7wO7phDTAXI6K_h_qInHCfS7S2i2U3NlLrrdJ7uQ1LPxyN-CPlNW_pk5lgxHz_eXb4l3g0LnVRoyDrUKHkT1I0R8AH0Vd8W9MiLN0HuGWOnS9Ojrn4B9efc88tKvobKovgp__88IwvZbXde5Ycxb-Zd0dGeAj10pM-0kKF1D4Mj94c67C6D_LYJ5TwM0lDMT8Y73bR-d6rKYT5U7kie38m8sKtjzyP6AtEVCRjfs9CgzSAZXxyL7Aen4TwvpXX--1NxnivWLRwh0NnFf8Pnrd37k9s07G8L56VvX7pc3_LiOwXbtEpoRJNBDRj1G_8PQzTpHJ289yV_ep8wEetYrOIVm8A6SmazZbScL-hkv56didW8XC6KJF7xgnORxFEULQvBozmPVmcTuaYzGkcRnc9W8ZzSaVxGCYhyycql4KslQ_MZ1EyqaeDTqbHVRDrXwjqJ41k8UawA5boXJJQWjH8JesZpcCO5Q5Sis-3ErsNWUrSVQ_OZks67EcxLr2D9rPcNYXShh-iih6XG6Df6rMUMd29oKs5xMmmtWu-9b1xY6l60VNLv22LKTT3eGZ2-jTV_APchh4PBITs6m_8XAAD__4EKx98">