@@ -101,6 +101,10 @@ void function() {
101101 constexpr static mixed_partial_bitfields p_bf3 = {1 , 0 , 1 , 15 };
102102}
103103
104+ // Anonymous struct type definitions for bitfields
105+ // CIR-DAG: !rec_anon_struct = !cir.record<struct {!u8i, !u8i, !u8i, !u8i}>
106+ // CIR-DAG: !rec_anon_struct1 = !cir.record<struct {!u8i, !u8i, !cir.array<!u8i x 2>}>
107+
104108// CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE1e = #cir.zero : !rec_empty
105109// CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE1s = #cir.const_record<{#cir.int<0> : !s32i, #cir.int<-1> : !s32i}> : !rec_simple
106110// CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE2p1 = #cir.const_record<{#cir.int<10> : !s32i, #cir.int<20> : !s32i, #cir.const_array<[#cir.int<99> : !s8i, #cir.int<88> : !s8i, #cir.int<77> : !s8i]> : !cir.array<!s8i x 3>, #cir.int<40> : !s32i}> : !rec_Point
@@ -128,15 +132,32 @@ void function() {
128132// CIR-DAG-SAME: #cir.zero : !rec_packed_and_aligned
129133// CIR-DAG-SAME: ]> : !cir.array<!rec_packed_and_aligned x 2>
130134
131- // Byte-aligned bitfield checks
132- // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE6ba_bf1 = #cir.const_record<{#cir.int<255> : !u8i, #cir.int<170> : !u8i, #cir.int<52> : !u8i, #cir.int<18> : !u8i}> : !rec_anon_struct
133- // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE6ba_bf2 = #cir.const_record<{#cir.int<255> : !u8i, #cir.int<127> : !u8i, #cir.const_array<[#cir.zero : !u8i, #cir.zero : !u8i]> : !cir.array<!u8i x 2>}> : !rec_anon_struct
134- // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE6ba_bf3 = #cir.const_record<{#cir.int<42> : !u8i}> : !rec_single_byte_bitfield
135-
136- // Partial bitfield checks
137- // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE5p_bf1 = #cir.const_record<{#cir.int<17> : !u8i, #cir.int<3> : !u8i, #cir.const_array<[#cir.zero : !u8i, #cir.zero : !u8i]> : !cir.array<!u8i x 2>}> : !rec_anon_struct
138- // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE5p_bf2 = #cir.const_record<{#cir.int<127> : !u8i, #cir.const_array<[#cir.zero : !u8i, #cir.zero : !u8i, #cir.zero : !u8i]> : !cir.array<!u8i x 3>}> : !rec_signed_partial_bitfields
139- // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE5p_bf3 = #cir.const_record<{#cir.int<125> : !u8i}> : !rec_mixed_partial_bitfields
135+ // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE6ba_bf1 = #cir.const_record<{
136+ // CIR-DAG-SAME: #cir.int<255> : !u8i,
137+ // CIR-DAG-SAME: #cir.int<170> : !u8i,
138+ // CIR-DAG-SAME: #cir.int<52> : !u8i,
139+ // CIR-DAG-SAME: #cir.int<18> : !u8i
140+ // CIR-DAG-SAME: }> : !rec_anon_struct
141+ // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE6ba_bf2 = #cir.const_record<{
142+ // CIR-DAG-SAME: #cir.int<255> : !u8i,
143+ // CIR-DAG-SAME: #cir.int<127> : !u8i,
144+ // CIR-DAG-SAME: #cir.const_array<[#cir.zero : !u8i, #cir.zero : !u8i]> : !cir.array<!u8i x 2>
145+ // CIR-DAG-SAME: }> : !rec_anon_struct1
146+ // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE6ba_bf3 = #cir.const_record<{
147+ // CIR-DAG-SAME: #cir.int<42> : !u8i
148+ // CIR-DAG-SAME: }> : !rec_single_byte_bitfield
149+ // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE5p_bf1 = #cir.const_record<{
150+ // CIR-DAG-SAME: #cir.int<17> : !u8i,
151+ // CIR-DAG-SAME: #cir.int<3> : !u8i,
152+ // CIR-DAG-SAME: #cir.const_array<[#cir.zero : !u8i, #cir.zero : !u8i]> : !cir.array<!u8i x 2>
153+ // CIR-DAG-SAME: }> : !rec_anon_struct1
154+ // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE5p_bf2 = #cir.const_record<{
155+ // CIR-DAG-SAME: #cir.int<127> : !u8i,
156+ // CIR-DAG-SAME: #cir.const_array<[#cir.zero : !u8i, #cir.zero : !u8i, #cir.zero : !u8i]> : !cir.array<!u8i x 3>
157+ // CIR-DAG-SAME: }> : !rec_signed_partial_bitfields
158+ // CIR-DAG: cir.global "private" internal dso_local @_ZZ8functionvE5p_bf3 = #cir.const_record<{
159+ // CIR-DAG-SAME: #cir.int<125> : !u8i
160+ // CIR-DAG-SAME: }> : !rec_mixed_partial_bitfields
140161
141162// CIR-LABEL: cir.func dso_local @_Z8functionv()
142163// CIR: cir.return
0 commit comments