
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.
33 lines
710 B
C++
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: }
|