// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -std=c++20 %s -emit-llvm -o - | FileCheck %s namespace PR50787 { // This code would previously cause a crash. extern int x_; consteval auto& X() { return x_; } constexpr auto& x1 = X(); auto x2 = X(); // CHECK: @_ZN7PR507872x_E = external global i32, align 4 // CHECK-NEXT: @_ZN7PR507872x1E = constant i32* @_ZN7PR507872x_E, align 8 // CHECK-NEXT: @_ZN7PR507872x2E = global i32* @_ZN7PR507872x_E, align 4 } namespace PR51484 { // This code would previously cause a crash. struct X { int val; }; consteval X g() { return {0}; } void f() { g(); } // CHECK: define dso_local void @_ZN7PR514841fEv() #0 { // CHECK: entry: // CHECK-NOT: call i32 @_ZN7PR514841gEv() // CHECK: ret void // CHECK: } }