=?utf-8?q?“Amr?= <[email protected]>,
=?utf-8?q?“Amr?= <[email protected]>,
=?utf-8?q?“Amr?= <[email protected]>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/[email protected]>
================
@@ -39,449 +46,517 @@ void f(D *d) {}
// Trigger vtable and VTT emission for D.
void D::y() {}
-// CIR: !rec_A2Ebase = !cir.record<struct "A.base" packed {!cir.vptr, !s32i}>
-// CIR: !rec_B2Ebase = !cir.record<struct "B.base" packed {!cir.vptr, !s32i}>
-// CIR: !rec_C2Ebase = !cir.record<struct "C.base" {!cir.vptr, !s64i}>
-// CIR: !rec_A = !cir.record<class "A" packed padded {!cir.vptr, !s32i,
!cir.array<!u8i x 4>}>
-// CIR: !rec_B = !cir.record<class "B" packed padded {!cir.vptr, !s32i,
!cir.array<!u8i x 4>, !rec_A2Ebase, !cir.array<!u8i x 4>}>
-// CIR: !rec_C = !cir.record<class "C" {!cir.vptr, !s64i, !rec_A2Ebase}>
-// CIR: !rec_D = !cir.record<class "D" {!rec_B2Ebase, !rec_C2Ebase, !s64i,
!rec_A2Ebase}>
+// CIR-COMMON: !rec_A2Ebase = !cir.record<struct "A.base" packed {!cir.vptr,
!s32i}>
+// CIR-COMMON: !rec_B2Ebase = !cir.record<struct "B.base" packed {!cir.vptr,
!s32i}>
+// CIR-COMMON: !rec_C2Ebase = !cir.record<struct "C.base" {!cir.vptr, !s64i}>
+// CIR-COMMON: !rec_A = !cir.record<class "A" packed padded {!cir.vptr, !s32i,
!cir.array<!u8i x 4>}>
+// CIR-COMMON: !rec_B = !cir.record<class "B" packed padded {!cir.vptr, !s32i,
!cir.array<!u8i x 4>, !rec_A2Ebase, !cir.array<!u8i x 4>}>
+// CIR-COMMON: !rec_C = !cir.record<class "C" {!cir.vptr, !s64i, !rec_A2Ebase}>
+// CIR-COMMON: !rec_D = !cir.record<class "D" {!rec_B2Ebase, !rec_C2Ebase,
!s64i, !rec_A2Ebase}>
+
+// CIR-NO-RTTI: !rec_anon_struct = !cir.record<struct
{!cir.array<!cir.ptr<!u8i> x 5>, !cir.array<!cir.ptr<!u8i> x 4>,
!cir.array<!cir.ptr<!u8i> x 4>}>
+// CIR-NO-RTTI: !rec_anon_struct1 = !cir.record<struct
{!cir.array<!cir.ptr<!u8i> x 4>, !cir.array<!cir.ptr<!u8i> x 4>}>
-// CIR: !rec_anon_struct = !cir.record<struct {!cir.array<!cir.ptr<!u8i> x
5>, !cir.array<!cir.ptr<!u8i> x 4>, !cir.array<!cir.ptr<!u8i> x 4>}>
-// CIR: !rec_anon_struct1 = !cir.record<struct {!cir.array<!cir.ptr<!u8i> x
4>, !cir.array<!cir.ptr<!u8i> x 4>}>
+// CIR-RTTI: !rec_anon_struct = !cir.record<struct {!cir.ptr<!u8i>,
!cir.ptr<!u8i>, !u32i, !u32i, !cir.ptr<!u8i>, !s64i, !cir.ptr<!u8i>, !s64i}>
+// CIR-RTTI: !rec_anon_struct1 = !cir.record<struct
{!cir.array<!cir.ptr<!u8i> x 5>, !cir.array<!cir.ptr<!u8i> x 4>,
!cir.array<!cir.ptr<!u8i> x 4>}>
+// CIR-RTTI: !rec_anon_struct2 = !cir.record<struct
{!cir.array<!cir.ptr<!u8i> x 4>, !cir.array<!cir.ptr<!u8i> x 4>}>
----------------
andykaylor wrote:
```suggestion
// CIR-RTTI: ![[REC_TYPE_INFO_VTABLE:.*]] = !cir.record<struct
{!cir.ptr<!u8i>, !cir.ptr<!u8i>, !u32i, !u32i, !cir.ptr<!u8i>, !s64i,
!cir.ptr<!u8i>, !s64i}>
// CIR-COMMON: ![[REC_D_VTABLE:.*]] = !cir.record<struct
{!cir.array<!cir.ptr<!u8i> x 5>, !cir.array<!cir.ptr<!u8i> x 4>,
!cir.array<!cir.ptr<!u8i> x 4>}>
// CIR-COMMON: ![[REC_B_OR_C_IN_D_VTABLE:.*]] = !cir.record<struct
{!cir.array<!cir.ptr<!u8i> x 4>, !cir.array<!cir.ptr<!u8i> x 4>}>
```
The names for the anonymous records change, but if you use a variable, it lets
you combine a false difference.
https://github.com/llvm/llvm-project/pull/160002
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits