// RUN: %clang_cc1 -std=c++26 -triple x86_64-linux-gnu -emit-llvm -o - %s | FileCheck %s namespace std { using size_t = decltype(sizeof(0)); template struct tuple_size; template struct tuple_element; template struct tuple_size : tuple_size {}; template struct tuple_element { using type = const typename tuple_element::type; }; } // namespace std using u8 = unsigned char; template struct Range { template constexpr friend u8 get(Range) noexcept { return I; } }; namespace std { template struct tuple_size> { static constexpr std::size_t value = N; }; template struct tuple_element> { using type = u8; }; } // namespace std const u8 &f() { static constexpr auto [I] = Range<1>(); return I; } // CHECK: @[[TMP:_ZGR.*]] = internal constant i8 0, align 1 // CHECK-LABEL: define {{.*}} @_Z1fv( // CHECK: ret ptr @[[TMP]]