Skip to content

Commit 1736a32

Browse files
committed
One more test case
1 parent 32180c9 commit 1736a32

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

clang/test/CIR/IR/invalid-vtable.cir

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,19 @@ module {
5555
cir.func private dso_local @_ZN1S3keyEv(%arg0: !cir.ptr<!rec_S>)
5656
cir.func private dso_local @_ZN1S6nonKeyEv(%arg0: !cir.ptr<!rec_S>)
5757
}
58+
59+
// -----
60+
61+
!rec_Q = !cir.record<struct "Q" {!cir.vptr}>
62+
!rec_S = !cir.record<struct "S" {!cir.vptr}>
63+
!rec_S2 = !cir.record<struct "S2" {!rec_Q, !rec_S}>
64+
!u8i = !cir.int<u, 8>
65+
!rec_anon_struct = !cir.record<struct {!cir.array<!cir.ptr<!u8i> x 4>, !cir.ptr<!u8i>}>
66+
module {
67+
// expected-error @below {{expected constant array subtype}}
68+
cir.global external @_ZTV2S2 = #cir.vtable<{#cir.const_array<[#cir.ptr<null> : !cir.ptr<!u8i>, #cir.ptr<null> : !cir.ptr<!u8i>, #cir.global_view<@_ZN1S3keyEv> : !cir.ptr<!u8i>, #cir.global_view<@_ZN1S6nonKeyEv> : !cir.ptr<!u8i>]> : !cir.array<!cir.ptr<!u8i> x 4>, #cir.ptr<null> : !cir.ptr<!u8i>}> : !rec_anon_struct {alignment = 8 : i64}
69+
70+
cir.func private dso_local @_ZN1S3keyEv(%arg0: !cir.ptr<!rec_S>)
71+
cir.func private dso_local @_ZN1S6nonKeyEv(%arg0: !cir.ptr<!rec_S>)
72+
cir.func private dso_local @_ZN2S23keyEv(%arg0: !cir.ptr<!rec_S2>)
73+
}

0 commit comments

Comments
 (0)