xref: /llvm-project/clang/test/Coverage/unresolved-ctor-expr.cpp (revision 482c41e992c1edf8833a4577b56ff9dda49fbc83)
1b0e61de7SAaron Ballman // RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 -fcoverage-mapping %s
2b0e61de7SAaron Ballman // expected-no-diagnostics
3b0e61de7SAaron Ballman 
4b0e61de7SAaron Ballman // GH62105 demonstrated a crash with this example code when calculating
5b0e61de7SAaron Ballman // coverage mapping because some source location information was being dropped.
6b0e61de7SAaron Ballman // Demonstrate that we do not crash on this code.
7*482c41e9SMital Ashok namespace std { template <typename E> class initializer_list { const E *a, *b; }; }
8b0e61de7SAaron Ballman 
9b0e61de7SAaron Ballman template <typename> struct T {
10b0e61de7SAaron Ballman   T(std::initializer_list<int>, int = int());
11b0e61de7SAaron Ballman   bool b;
12b0e61de7SAaron Ballman };
13b0e61de7SAaron Ballman 
14b0e61de7SAaron Ballman template <typename> struct S1 {
fooS115b0e61de7SAaron Ballman   static void foo() {
16b0e61de7SAaron Ballman     class C;
17b0e61de7SAaron Ballman     (void)(0 ? T<C>{} : T<C>{});
18b0e61de7SAaron Ballman   }
19b0e61de7SAaron Ballman };
20b0e61de7SAaron Ballman 
bar()21b0e61de7SAaron Ballman void bar() {
22b0e61de7SAaron Ballman   S1<int>::foo();
23b0e61de7SAaron Ballman }
24b0e61de7SAaron Ballman 
25