1
1
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -std=c++20 -fclangir -mconstructor-aliases -clangir-disable-emit-cxx-default -emit-cir %s -o %t.cir
2
2
// RUN: FileCheck --input-file=%t.cir %s
3
- // XFAIL: *
4
-
5
3
6
4
enum class EFMode { Always, Verbose };
7
5
@@ -38,10 +36,10 @@ class B : public A
38
36
};
39
37
40
38
// Class A
41
- // CHECK: ![[ClassA:ty_.*]] = !cir.struct<class "A" {!cir.ptr<!cir.ptr<!cir.func<!cir.int<u, 32> ()>>>} #cir.record.decl.ast>
39
+ // CHECK: ![[ClassA:ty_.*]] = !cir.struct<class "A" {!cir.ptr<!cir.ptr<!cir.func<!u32i ()>>>} #cir.record.decl.ast>
42
40
43
41
// Class B
44
- // CHECK: ![[ClassB:ty_.*]] = !cir.struct<class "B" {!cir.struct<class "A" {!cir.ptr<!cir.ptr<!cir.func<!cir.int<u, 32> ()>>>} #cir.record.decl.ast> }>
42
+ // CHECK: ![[ClassB:ty_.*]] = !cir.struct<class "B" {![[ClassA]] }>
45
43
46
44
// CHECK: cir.func @_Z4bluev()
47
45
// CHECK: %0 = cir.alloca !ty_22PSEvent22, !cir.ptr<!ty_22PSEvent22>, ["p", init] {alignment = 8 : i64}
@@ -63,7 +61,7 @@ class B : public A
63
61
// CHECK: cir.call @_ZN1BD2Ev(%0) : (!cir.ptr<!ty_22B22>) -> ()
64
62
65
63
// operator delete(void*) declaration
66
- // CHECK: cir.func private @_ZdlPv (!cir.ptr<!void>)
64
+ // CHECK: cir.func private @_ZdlPvm (!cir.ptr<!void>, !u64i )
67
65
68
66
// B dtor => @B::~B() #2
69
67
// Calls dtor #1
@@ -75,7 +73,7 @@ class B : public A
75
73
// CHECK: %1 = cir.load %0 : !cir.ptr<!cir.ptr<![[ClassB]]>>, !cir.ptr<![[ClassB]]>
76
74
// CHECK: cir.call @_ZN1BD2Ev(%1) : (!cir.ptr<![[ClassB]]>) -> ()
77
75
// CHECK: %2 = cir.cast(bitcast, %1 : !cir.ptr<![[ClassB]]>), !cir.ptr<!void>
78
- // CHECK: cir.call @_ZdlPv (%2) : (!cir.ptr<!void>) -> ()
76
+ // CHECK: cir.call @_ZdlPvm (%2, %3 ) : (!cir.ptr<!void>, !u64i ) -> ()
79
77
// CHECK: cir.return
80
78
// CHECK: }
81
79
0 commit comments