Issue 107887
Summary [clang] Crash on invalid template deduction guide
Labels clang
Assignees
Reporter aeubanks
    ```
$ cat /tmp/a.ii
namespace a {
template <class> struct pair;
}
template <class _T2> pair() -> pair<_T2>;

$ clang++ "-cc1" "-triple" "x86_64-unknown-linux-gnu"  "-x" "c++" a.ii -fsyntax-only
a.ii:4:22: error: no template named 'pair'; did you mean 'a::pair'?
    4 | template <class _T2> pair() -> pair<_T2>;
      | ^~~~
      |                      a::pair
a.ii:2:25: note: 'a::pair' declared here
    2 | template <class> struct pair;
 |                         ^
a.ii:4:32: error: no template named 'pair'; did you mean 'a::pair'?
    4 | template <class _T2> pair() -> pair<_T2>;
      |                                ^~~~
      | a::pair
a.ii:2:25: note: 'a::pair' declared here
 2 | template <class> struct pair;
      | ^
a.ii:4:22: error: deduction guide must be declared in the same scope as template 'a::pair'
    4 | template <class _T2> pair() -> pair<_T2>;
 |                      ^
a.ii:2:25: note: template is declared here
 2 | template <class> struct pair;
      | ^

clang++: ../../clang/lib/Sema/SemaDeclCXX.cpp:11468: bool clang::Sema::CheckDeductionGuideDeclarator(Declarator &, QualType &, StorageClass &): Assertion `Qualifiers && "expected QualifiedTemplate"' failed.
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to