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

Reply via email to