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:
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

Reply via email to