On Thu, Dec 09, 2021 at 05:59:54PM +0100, Jakub Jelinek via Gcc-patches wrote: > > /tmp/6140018_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/config/aarch64/aarch64-sve-builtins.cc:3920:0: > > ./gt-aarch64-sve-builtins.h: In function 'void > > gt_pch_p_19registered_function(void*, void*, gt_pointer_operator, void*)': > > ./gt-aarch64-sve-builtins.h:86:44: error: no matching function for call to > > 'gt_pch_nx(aarch64_sve::function_instance*, void (*&)(void*, void*, void*), > > void*&)' > > gt_pch_nx (&((*x).instance), op, cookie); > > Fixed thusly, compile tested on x86_64-linux, committed to trunk.
Here is a small cleanup. IMHO we should use gt_pointer_operator instead of specifying manually void (*) (void *, void *) or void (*) (void *, void *, void *) so that next time we want to change it, we don't have to trace all the spots. I was afraid it wouldn't work due to header dependencies, but it works well. gengtype generated files also use gt_pointer_operator. Ok for trunk (tested on x86_64-linux and cross to aarch64-linux)? 2021-12-10 Jakub Jelinek <ja...@redhat.com> * machmode.h (gt_pch_nx): Use gt_pointer_operator as type of second argument instead of equivalent void (*) (void *, void *, void *). * poly-int.h (gt_pch_nx): Likewise. * wide-int.h (gt_pch_nx): Likewise. * config/aarch64/aarch64-sve-builtins.cc (gt_pch_nx): Likewise. --- gcc/machmode.h.jj 2021-12-09 15:40:06.145023853 +0100 +++ gcc/machmode.h 2021-12-10 13:40:47.858430024 +0100 @@ -1199,7 +1199,7 @@ gt_pch_nx (pod_mode<T> *) template<typename T> void -gt_pch_nx (pod_mode<T> *, void (*) (void *, void *, void *), void *) +gt_pch_nx (pod_mode<T> *, gt_pointer_operator, void *) { } --- gcc/poly-int.h.jj 2021-12-09 15:40:06.159023652 +0100 +++ gcc/poly-int.h 2021-12-10 13:41:05.476178926 +0100 @@ -2717,7 +2717,7 @@ gt_pch_nx (poly_int_pod<N, C> *) template<unsigned int N, typename C> void -gt_pch_nx (poly_int_pod<N, C> *, void (*) (void *, void *, void *), void *) +gt_pch_nx (poly_int_pod<N, C> *, gt_pointer_operator, void *) { } --- gcc/wide-int.h.jj 2021-12-09 15:40:06.218022803 +0100 +++ gcc/wide-int.h 2021-12-10 13:41:35.405752355 +0100 @@ -3338,7 +3338,7 @@ gt_pch_nx (generic_wide_int <T> *) template<typename T> void -gt_pch_nx (generic_wide_int <T> *, void (*) (void *, void *, void *), void *) +gt_pch_nx (generic_wide_int <T> *, gt_pointer_operator, void *) { } @@ -3356,7 +3356,7 @@ gt_pch_nx (trailing_wide_ints <N> *) template<int N> void -gt_pch_nx (trailing_wide_ints <N> *, void (*) (void *, void *, void *), void *) +gt_pch_nx (trailing_wide_ints <N> *, gt_pointer_operator, void *) { } --- gcc/config/aarch64/aarch64-sve-builtins.cc.jj 2021-12-09 17:56:53.445371821 +0100 +++ gcc/config/aarch64/aarch64-sve-builtins.cc 2021-12-10 13:42:03.112357466 +0100 @@ -3913,7 +3913,7 @@ gt_pch_nx (function_instance *) } inline void -gt_pch_nx (function_instance *, void (*) (void *, void *, void *), void *) +gt_pch_nx (function_instance *, gt_pointer_operator, void *) { } Jakub