1 // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -std=c++20 %s -emit-llvm -o - | FileCheck %s
2 
3 namespace PR50787 {
4 // This code would previously cause a crash.
5 extern int x_;
6 consteval auto& X() { return x_; }
7 constexpr auto& x1 = X();
8 auto x2 = X();
9 
10 // CHECK: @_ZN7PR507872x_E = external global i32, align 4
11 // CHECK-NEXT: @_ZN7PR507872x1E = constant i32* @_ZN7PR507872x_E, align 8
12 // CHECK-NEXT: @_ZN7PR507872x2E = global i32* @_ZN7PR507872x_E, align 4
13 }
14 
15 namespace PR51484 {
16 // This code would previously cause a crash.
17 struct X { int val; };
18 consteval X g() { return {0}; }
19 void f() { g(); }
20 
21 // CHECK: define dso_local void @_ZN7PR514841fEv() #0 {
22 // CHECK: entry:
23 // CHECK-NOT: call i32 @_ZN7PR514841gEv()
24 // CHECK:  ret void
25 // CHECK: }
26 }
27