On 01/07/2026 12:57, Jakub Jelinek wrote:
> On Wed, Jul 01, 2026 at 12:53:10PM +0100, Richard Earnshaw (foss) wrote:
>>> --- gcc/config/aarch64/aarch64-sve-builtins-shapes.cc.jj 2026-06-02
>>> 08:15:04.502142863 +0200
>>> +++ gcc/config/aarch64/aarch64-sve-builtins-shapes.cc 2026-07-01
>>> 11:45:24.805837917 +0200
>>> @@ -5434,7 +5434,7 @@ struct write_zt_def : public overloaded_
>>> return c.require_immediate_range (0, 0, 0);
>>> }
>>> };
>>> -SHAPE (write_zt);
>>> +SHAPE (write_zt)
>>
>> A missing semicolon here can confuse context aware editors and cause them to
>> mess up subsequent indentation. Would changing the definition of SHAPE to
>> something like:
>>
>> #define SHAPE(NAME) \
>> static CONSTEXPR const NAME##_def NAME##_obj; \
>> namespace shapes { const function_shape *const NAME = &NAME##_obj; } \
>> extern int __dummy_shape ATTRIBUTE_UNUSED
>>
>> work? That would allow for a terminating semicolon at the point of use.
>> Multiple extern declarations should be harmless.
>
> Sorry, I've already committed it (based on Tamar's ack).
> The file was full of
> using luti2_def = luti_base<2>;
> SHAPE (luti2)
>
> using luti4_def = luti_base<4>;
> SHAPE (luti4)
> and further (just grep ^SHAPE), so I didn't even think about changing the
> macro:
No worries; I'll knock up a new patch to fix it (and arm-mve as well).
R.
> SHAPE (mmla)
> SHAPE (adr_index)
> SHAPE (adr_offset)
> SHAPE (binary)
> SHAPE (binary_int_opt_n)
> SHAPE (binary_int_opt_single_n)
> SHAPE (binary_lane)
> SHAPE (binary_long_lane)
> SHAPE (binary_long_opt_n)
> SHAPE (binary_n)
> SHAPE (binary_narrowb_opt_n)
> SHAPE (binary_narrowt_opt_n)
> SHAPE (binary_opt_n)
> SHAPE (binary_opt_single_n)
> SHAPE (binary_pred)
> SHAPE (binary_rotate)
> SHAPE (binary_scalar)
> SHAPE (binary_single)
> SHAPE (binary_to_uint)
> SHAPE (binary_uint)
> SHAPE (binary_uint_n)
> SHAPE (binary_uint_opt_n)
> SHAPE (binary_uint64_n)
> SHAPE (binary_uint64_opt_n)
> SHAPE (binary_wide)
> SHAPE (binary_wide_opt_n)
> SHAPE (binary_za_int_m)
> SHAPE (binary_za_m)
> SHAPE (binary_za_slice_lane)
> SHAPE (binary_za_slice_int_opt_single)
> SHAPE (binary_za_slice_opt_single)
> SHAPE (binary_za_slice_uint_opt_single)
> SHAPE (binary_za_uint_m)
> SHAPE (binaryxn)
> SHAPE (bool_inherent)
> SHAPE (clamp)
> SHAPE (clast)
> SHAPE (compare)
> SHAPE (compare_opt_n)
> SHAPE (compare_ptr)
> SHAPE (compare_scalar)
> SHAPE (compare_scalar_count)
> SHAPE (compare_wide_opt_n)
> SHAPE (count_inherent)
> SHAPE (count_pat)
> SHAPE (count_pred)
> SHAPE (count_pred_c)
> SHAPE (count_vector)
> SHAPE (create)
> SHAPE (dot_za_slice_int_lane)
> SHAPE (dot_za_slice_lane)
> SHAPE (dot_half_za_slice_lane)
> SHAPE (dot_za_slice_uint_lane)
> SHAPE (dupq)
> SHAPE (ext)
> SHAPE (extq)
> SHAPE (extract_pred)
> SHAPE (fold_left)
> SHAPE (get)
> SHAPE (get_neonq)
> SHAPE (set_neonq)
> SHAPE (dup_neonq)
> SHAPE (inc_dec)
> SHAPE (inc_dec_pat)
> SHAPE (inc_dec_pred)
> SHAPE (inc_dec_pred_scalar)
> SHAPE (inherent)
> SHAPE (inherent_b)
> SHAPE (inherent_za)
> SHAPE (inherent_za_slice)
> SHAPE (inherent_zt)
> SHAPE (inherent_mask_za)
> SHAPE (ldr_za)
> SHAPE (ldr_zt)
> SHAPE (load)
> SHAPE (load_ext)
> SHAPE (load_ext_gather_index)
> SHAPE (load_ext_gather_index_restricted)
> SHAPE (load_ext_gather_offset)
> SHAPE (load_ext_gather_offset_restricted)
> SHAPE (load_gather_sv)
> SHAPE (load_gather_sv_restricted)
> SHAPE (load_gather_vs)
> SHAPE (load_gather64_sv_index)
> SHAPE (load_gather64_sv_offset)
> SHAPE (load_gather64_vs_index)
> SHAPE (load_gather64_vs_offset)
> SHAPE (load_replicate)
> SHAPE (load_za)
> SHAPE (luti2_lane_zt)
> SHAPE (luti4_lane_zt)
> SHAPE (luti4_zt)
> SHAPE (pattern_pred)
> SHAPE (pmov_from_vector)
> SHAPE (pmov_from_vector_lane)
> SHAPE (pmov_to_vector_lane)
> SHAPE (prefetch)
> SHAPE (prefetch_gather_index)
> SHAPE (prefetch_gather_offset)
> SHAPE (ptest)
> SHAPE (rdffr)
> SHAPE (read_za)
> SHAPE (read_za_m)
> SHAPE (read_za_slice)
> SHAPE (reduction)
> SHAPE (reduction_neonq)
> SHAPE (reduction_wide)
> SHAPE (reinterpret)
> SHAPE (select_pred)
> SHAPE (set)
> SHAPE (setffr)
> SHAPE (shift_left_imm)
> SHAPE (shift_left_imm_long)
> SHAPE (shift_left_imm_to_uint)
> SHAPE (shift_right_imm)
> SHAPE (shift_right_imm_narrowb)
> SHAPE (shift_right_imm_narrowt)
> SHAPE (shift_right_imm_narrowb_to_uint)
> SHAPE (shift_right_imm_narrowt_to_uint)
> SHAPE (shift_right_imm_narrowxn)
> SHAPE (store)
> SHAPE (store_scatter_index)
> SHAPE (store_scatter_index_restricted)
> SHAPE (store_scatter_offset)
> SHAPE (store_scatter_offset_restricted)
> SHAPE (store_scatter64_index)
> SHAPE (store_scatter64_offset)
> SHAPE (store_za)
> SHAPE (storexn)
> SHAPE (str_za)
> SHAPE (str_zt)
> SHAPE (tbl_tuple)
> SHAPE (ternary_bfloat)
> SHAPE (ternary_mfloat8)
> SHAPE (ternary_bfloat_lane)
> SHAPE (ternary_bfloat_lanex2)
> SHAPE (ternary_mfloat8_lane)
> SHAPE (ternary_mfloat8_lane_group_selection)
> SHAPE (ternary_bfloat_opt_n)
> SHAPE (ternary_mfloat8_opt_n)
> SHAPE (ternary_intq_uintq_lane)
> SHAPE (ternary_intq_uintq_opt_n)
> SHAPE (ternary_lane)
> SHAPE (ternary_lane_rotate)
> SHAPE (ternary_long_lane)
> SHAPE (ternary_long_opt_n)
> SHAPE (ternary_opt_n)
> SHAPE (ternary_qq_or_011_lane)
> SHAPE (ternary_qq_lane_rotate)
> SHAPE (ternary_qq_opt_n_or_011)
> SHAPE (ternary_qq_rotate)
> SHAPE (ternary_rotate)
> SHAPE (ternary_shift_left_imm)
> SHAPE (ternary_shift_right_imm)
> SHAPE (ternary_uint)
> SHAPE (ternary_uintq_intq)
> SHAPE (ternary_uintq_intq_lane)
> SHAPE (ternary_uintq_intq_opt_n)
> SHAPE (tmad)
> SHAPE (unary)
> SHAPE (unary_convert)
> SHAPE (unary_convert_narrowt)
> SHAPE (unary_convertxn_narrowt)
> SHAPE (unary_convertxn)
> SHAPE (unary_convertxn_narrow)
> SHAPE (unary_lane)
> SHAPE (unary_long)
> SHAPE (unary_n)
> SHAPE (unary_narrowb)
> SHAPE (unary_narrowt)
> SHAPE (unary_narrowb_to_uint)
> SHAPE (unary_narrowt_to_uint)
> SHAPE (unary_pred)
> SHAPE (unary_to_int)
> SHAPE (unary_to_uint)
> SHAPE (unary_uint)
> SHAPE (unary_widen)
> SHAPE (unary_za_m)
> SHAPE (unary_za_slice)
> SHAPE (unaryxn)
> SHAPE (write_za)
> SHAPE (write_za_m)
> SHAPE (write_za_slice)
>
>
> Jakub
>