// RUN: %clang_cc1 -std=c++20 -triple x86_64-elf-gnu %s -emit-llvm -o - | FileCheck %s namespace GH56652{ struct foo {}; template struct bar { using type = T; template inline static constexpr auto b = true; }; template concept C = requires(T a) { T::template b; }; template auto fn(T) { if constexpr (!C) return foo{}; else return T{}; } auto a = decltype(fn(bar{})){}; } namespace GH116319 { template struct a { template static constexpr auto b = 2; template static void c() noexcept(noexcept(b)) {} }; void test() { a<>::c(); } } // CHECK: %"struct.GH56652::bar" = type { i8 } // CHECK: $_ZN8GH1163191aILi0EE1cIiEEvv = comdat any // CHECK: @_ZN7GH566521aE = global %"struct.GH56652::bar" undef