1*2ea5d167SHristo Hristov //===----------------------------------------------------------------------===// 2*2ea5d167SHristo Hristov // 3*2ea5d167SHristo Hristov // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*2ea5d167SHristo Hristov // See https://llvm.org/LICENSE.txt for license information. 5*2ea5d167SHristo Hristov // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*2ea5d167SHristo Hristov // 7*2ea5d167SHristo Hristov //===----------------------------------------------------------------------===// 8*2ea5d167SHristo Hristov 9*2ea5d167SHristo Hristov // UNSUPPORTED: c++03, c++11, c++14, c++17, c++20, c++23 10*2ea5d167SHristo Hristov 11*2ea5d167SHristo Hristov // <complex> 12*2ea5d167SHristo Hristov 13*2ea5d167SHristo Hristov // template<size_t I, class T> struct tuple_element; 14*2ea5d167SHristo Hristov 15*2ea5d167SHristo Hristov #include <cassert> 16*2ea5d167SHristo Hristov #include <complex> 17*2ea5d167SHristo Hristov #include <concepts> 18*2ea5d167SHristo Hristov 19*2ea5d167SHristo Hristov template <typename T> test()20*2ea5d167SHristo Hristovvoid test() { 21*2ea5d167SHristo Hristov using C = std::complex<T>; 22*2ea5d167SHristo Hristov 23*2ea5d167SHristo Hristov // expected-error-re@*:* 3 {{static assertion failed {{.*}}Index value is out of range.}} 24*2ea5d167SHristo Hristov [[maybe_unused]] std::tuple_element<3, C> te{}; 25*2ea5d167SHristo Hristov } 26*2ea5d167SHristo Hristov test()27*2ea5d167SHristo Hristovvoid test() { 28*2ea5d167SHristo Hristov test<float>(); 29*2ea5d167SHristo Hristov test<double>(); 30*2ea5d167SHristo Hristov test<long double>(); 31*2ea5d167SHristo Hristov } 32