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 Ballmanvoid bar() { 22b0e61de7SAaron Ballman S1<int>::foo(); 23b0e61de7SAaron Ballman } 24b0e61de7SAaron Ballman 25