forked from OSchip/llvm-project
27 lines
750 B
C++
27 lines
750 B
C++
// 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: }
|
|
}
|