thanks Richard,

addressed your concern.

diff --git a/gcc/rtl.h b/gcc/rtl.h
index 0872cc4..7206c8a 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2238,6 +2238,16 @@ struct address_info {
   enum rtx_code base_outer_code;
 };

+/* This is used for passing args in emit_library_* functions */
+struct libcall_arg {
+  rtx value;
+  machine_mode mode;
+  bool unsigned_p;
+  constexpr
+  libcall_arg (rtx v, machine_mode m, bool u) : value(v), mode(m),
+                                                unsigned_p(u) {}
+};
+
 /* This is used to bundle an rtx and a mode together so that the pair
    can be used with the wi:: routines.  If we ever put modes into rtx
    integer constants, this should go away and then just pass an rtx in.  */

On 16/06/20 2:34 pm, Richard Sandiford wrote:
Thanks for doing this.

Kamlesh Kumar via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 0872cc4..c023ff0 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2238,6 +2238,18 @@ struct address_info {
    enum rtx_code base_outer_code;
  };
+/* This is used for passing args in emit_library_* functions */
+typedef struct libcall_arg {
There's not really any need for a typedef here.  We should just
use “libcall_arg” directly.

+  rtx value;
+  machine_mode mode;
+  bool unsigned_p;
+  libcall_arg (rtx v, machine_mode m, bool u) {
+    value = v;
+    mode = m;
+    unsigned_p = u;
+  }
Please use member initialisation for the fields instead.

Now that we're C++11, the constructor might as well be constexpr.

Thanks,
Richard

+} libcall_arg_t;
+
  /* This is used to bundle an rtx and a mode together so that the pair
     can be used with the wi:: routines.  If we ever put modes into rtx
     integer constants, this should go away and then just pass an rtx in.  */

Reply via email to