[clang] Reapply "[Clang][Sema] Refactor collection of multi-level template argument lists (#106585, #111173)" (PR #111852)

Utkarsh Saxena via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 6 20:01:43 PST 2024


usx95 wrote:

For module related compilation issue: I added the reproducer here: https://github.com/usx95/llvm-project/commit/8886dbecaf04f5c117e70d50e342bf264947cc64

Fails with:
<details>
```
sh module-reproducer/args.sh
In module 'libB':
module-reproducer/flume_test_utils.h:26:10: error: no viable conversion from returned value of type 'vector<std::basic_string<char>>' to function return type 'vector<S>'
   26 |   return ret;
      |          ^~~
module-reproducer/access_boundaries_test.cc:5:6: note: in instantiation of function template specialization 'N::Friend<S>' requested here
    5 |   N::Friend<S>({});
      |      ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:598:7: note: candidate constructor not viable: no known conversion from 'std::vector<basic_string<char, char_traits<char>, allocator<char>>>' to 'const vector<S> &' for 1st argument
  598 |       vector(const vector& __x)
      |       ^      ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:617:7: note: candidate constructor not viable: no known conversion from 'std::vector<basic_string<char, char_traits<char>, allocator<char>>>' to 'vector<S> &&' for 1st argument
  617 |       vector(vector&&) noexcept = default;
      |       ^      ~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:675:7: note: candidate constructor not viable: no known conversion from 'std::vector<basic_string<char, char_traits<char>, allocator<char>>>' to 'initializer_list<value_type>' (aka 'initializer_list<S>') for 1st argument
  675 |       vector(initializer_list<value_type> __l,
      |       ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:539:7: note: explicit constructor is not a candidate
  539 |       vector(const allocator_type& __a) _GLIBCXX_NOEXCEPT
      |       ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:553:7: note: explicit constructor is not a candidate
  553 |       vector(size_type __n, const allocator_type& __a = allocator_type())
      |       ^
1 error generated.
```
</details>

https://github.com/llvm/llvm-project/pull/111852


More information about the cfe-commits mailing list