Morris Hafner 77f8a9115e
[CIR] Support more declarations without any codegen (#151076)
This patch adds or completes support for a couple of top level
declaration types that don't emit any code: Most notably these include
Concepts, static_assert and type aliases.
2025-07-31 16:33:20 +02:00

33 lines
710 B
C++

// RUN: %clang_cc1 -std=c++20 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir %s -o %t.cir
// RUN: FileCheck --input-file=%t.cir %s --check-prefix=CIR
// These declarations shouldn't emit any code. Therefore the module is expected to be empty.
template<typename T>
concept some_concept = true;
template<some_concept T>
class class_template {};
; // Empty declaration
template<typename T>
void function_template();
static_assert(true, "top level static assert");
template<typename T>
using type_alias = T;
namespace N {
using ::class_template; // UsingShadow
}
template<typename T>
struct deduction_guide {};
deduction_guide() -> deduction_guide<int>;
// CIR: module {{.*}} {
// CIR-NEXT: }