Issue 97377
Summary clang recursive module tuple failure
Labels clang
Assignees
Reporter mmoult
    [files.tar.gz](https://github.com/user-attachments/files/16060923/files.tar.gz)

I am unable to compile the attached files using CMake and Ninja. Here is the error(s) I get:

```
again/main.cpp:7:11: error: no matching function for call to 'get'
    7 |     auto [a, s] = again.next("something");
      |           ^
again/main.cpp:7:11: note: in implicit initialization of binding declaration 'a'
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_pair.h:855:5: note: candidate template ignored: could not match 'pair' against 'tuple'
 855 |     get(pair<_Tp1, _Tp2>& __in) noexcept
      | ^
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_pair.h:860:5: note: candidate template ignored: could not match 'pair' against 'tuple'
 860 |     get(pair<_Tp1, _Tp2>&& __in) noexcept
      | ^
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_pair.h:865:5: note: candidate template ignored: could not match 'pair' against 'tuple'
 865 |     get(const pair<_Tp1, _Tp2>& __in) noexcept
      | ^
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_pair.h:870:5: note: candidate template ignored: could not match 'pair' against 'tuple'
 870 |     get(const pair<_Tp1, _Tp2>&& __in) noexcept
      | ^
...
```

The code has no issues compiling if I change tuple -> pair, but that shouldn't be an issue. The same code compiles without any errors if I change again.cxx from module syntax to a header file (and change the CMakeFile and main import to correspond). This indicates to me there is a bug with the module compilation.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to