On May 16, 2020 11:41:51 AM GMT+02:00, Erick Ochoa <erick.oc...@theobroma-systems.com> wrote: >Adds wrapper for gimple_return_retval to accept gimple* > >Most functions interact with GIMPLE IL using arguments of type gimple*. > >Functions interacting with GIMPLE_RETURN instructions still use >greturn* >types as arguments. This patch adds wrappers around functions taking >greturn* as inputs. The wrapper takes gimple* as arguments.
That's backwards. The gimple * variants are legacy and should go away. Code should use the strongly typed accessors instead. Richard. >ChangeLog: > >2020-05-16 Erick Ochoa <erick.oc...@theobroma-systems.com> > > * gcc/gimple.h (gimple_return_retval): New function > (gimple_return_retval_ptr): same > (gimple_return_set_retval): same > * gcc/gimple.texi (gimple_return_retval): Fix documentation > (gimple_return_retval_ptr): same > (gimple_return_set_retval): same > >diff --git a/gcc/doc/gimple.texi b/gcc/doc/gimple.texi >index 5e0fc2e0dc5..d4a73b8397c 100644 >--- a/gcc/doc/gimple.texi >+++ b/gcc/doc/gimple.texi >@@ -2234,11 +2234,15 @@ Set @code{REGION} to be the region number for >@code{GIMPLE_RESX} @code{G}. > Build a @code{GIMPLE_RETURN} statement whose return value is retval. > @end deftypefn > >-@deftypefn {GIMPLE function} tree gimple_return_retval (const greturn >*g) >+@deftypefn {GIMPLE function} tree gimple_return_retval (const gimple >*g) > Return the return value for @code{GIMPLE_RETURN} @code{G}. > @end deftypefn > >-@deftypefn {GIMPLE function} void gimple_return_set_retval (greturn >*g, @ >+@deftypefn {GIMPLE function} {tree *} gimple_return_retval_ptr (gimple >*g) >+Return the return value for @code{GIMPLE_RETURN} @code{G}. >+@end deftypefn >+ >+@deftypefn {GIMPLE function} void gimple_return_set_retval (gimple *g, >@ > tree retval) > Set @code{RETVAL} to be the return value for @code{GIMPLE_RETURN} >@code{G}. > @end deftypefn >diff --git a/gcc/gimple.h b/gcc/gimple.h >index ca7fec6247e..730803f0924 100644 >--- a/gcc/gimple.h >+++ b/gcc/gimple.h >@@ -6502,6 +6502,14 @@ gimple_return_retval_ptr (greturn *gs) > return &gs->op[0]; > } > >+static inline tree * >+gimple_return_retval_ptr (gimple *gs) >+{ >+ GIMPLE_CHECK (gs, GIMPLE_RETURN); >+ greturn *gr = dyn_cast <greturn *> (gs); >+ return gimple_return_retval_ptr (gr); >+} >+ > /* Return the return value for GIMPLE_RETURN GS. */ > > static inline tree >@@ -6510,6 +6518,15 @@ gimple_return_retval (const greturn *gs) > return gs->op[0]; > } > >+static inline tree >+gimple_return_retval (const gimple *gs) >+{ >+ GIMPLE_CHECK (gs, GIMPLE_RETURN); >+ const greturn *gr = dyn_cast <const greturn *> (gs); >+ return gimple_return_retval (gr); >+} >+ >+ > > /* Set RETVAL to be the return value for GIMPLE_RETURN GS. */ > >@@ -6519,6 +6536,14 @@ gimple_return_set_retval (greturn *gs, tree >retval) > gs->op[0] = retval; > } > >+static inline void >+gimple_return_set_retval (gimple *gs, tree retval) >+{ >+ GIMPLE_CHECK (gs, GIMPLE_RETURN); >+ greturn *gr = dyn_cast <greturn *> (gs); >+ gimple_return_set_retval (gr, retval); >+} >+ > > /* Returns true when the gimple statement STMT is any of the OMP >types. */