Workaround build bug with GCC 6.2.1
authorPhilipp Rudo <prudo@linux.vnet.ibm.com>
Fri, 24 Nov 2017 10:05:57 +0000 (11:05 +0100)
committerSergio Durigan Junior <sergiodj@redhat.com>
Fri, 24 Nov 2017 16:16:37 +0000 (11:16 -0500)
Building GDB with GCC 6.2.1 gives multiple errors like

gdb/dtrace-probe.c: In member function ‘void dtrace_probe::build_arg_exprs(gdbarch*)’:
gdb/dtrace-probe.c:627:8: error: types may not be defined in a for-range-declaration [-Werror]
    for (struct dtrace_probe_arg &arg : m_args

Fix it by removing the 'struct' keyword.

A similar Bug was already fixed for GCC 6.3.1
https://sourceware.org/ml/gdb-patches/2017-10/msg00442.html

gdb/ChangeLog:

* dtrace-probe.c (dtrace_probe::build_arg_exprs)
(dtrace_probe::is_enabled, dtrace_probe::enable)
(dtrace_probe::disable): Remove keyword 'struct' at for-range
variable
* probe.c (gen_ui_out_table_header_info)
(print_ui_out_not_applicables):  Remove keyword 'struct' at
for-range variable

gdb/ChangeLog
gdb/dtrace-probe.c
gdb/probe.c

index 891abe6..5acd913 100644 (file)
@@ -1,3 +1,13 @@
+2017-11-24  Philipp Rudo  <prudo@linux.vnet.ibm.com>
+
+       * dtrace-probe.c (dtrace_probe::build_arg_exprs)
+       (dtrace_probe::is_enabled, dtrace_probe::enable)
+       (dtrace_probe::disable): Remove keyword 'struct' at for-range
+       variable
+       * probe.c (gen_ui_out_table_header_info)
+       (print_ui_out_not_applicables):  Remove keyword 'struct' at
+       for-range variable
+
 2017-11-24  Alan Hayward  <alan.hayward@arm.com>
 
        * configure.tgt: Add arch/aarch64.o
index ace3d30..1c88f89 100644 (file)
@@ -624,7 +624,7 @@ dtrace_probe::build_arg_exprs (struct gdbarch *gdbarch)
   /* Iterate over the arguments in the probe and build the
      corresponding GDB internal expression that will generate the
      value of the argument when executed at the PC of the probe.  */
-  for (struct dtrace_probe_arg &arg : m_args)
+  for (dtrace_probe_arg &arg : m_args)
     {
       struct cleanup *back_to;
       struct parser_state pstate;
@@ -684,7 +684,7 @@ dtrace_probe::is_enabled () const
 {
   struct gdbarch *gdbarch = this->get_gdbarch ();
 
-  for (const struct dtrace_probe_enabler &enabler : m_enablers)
+  for (const dtrace_probe_enabler &enabler : m_enablers)
     if (!gdbarch_dtrace_probe_is_enabled (gdbarch, enabler.address))
       return false;
 
@@ -796,7 +796,7 @@ dtrace_probe::enable ()
 
   /* Iterate over all defined enabler in the given probe and enable
      them all using the corresponding gdbarch hook.  */
-  for (const struct dtrace_probe_enabler &enabler : m_enablers)
+  for (const dtrace_probe_enabler &enabler : m_enablers)
     if (gdbarch_dtrace_enable_probe_p (gdbarch))
       gdbarch_dtrace_enable_probe (gdbarch, enabler.address);
 }
@@ -826,7 +826,7 @@ dtrace_probe::disable ()
 
   /* Iterate over all defined enabler in the given probe and disable
      them all using the corresponding gdbarch hook.  */
-  for (struct dtrace_probe_enabler &enabler : m_enablers)
+  for (dtrace_probe_enabler &enabler : m_enablers)
     if (gdbarch_dtrace_disable_probe_p (gdbarch))
       gdbarch_dtrace_disable_probe (gdbarch, enabler.address);
 }
index 1be8faa..e20bf31 100644 (file)
@@ -367,7 +367,7 @@ gen_ui_out_table_header_info (const std::vector<bound_probe> &probes,
   std::vector<struct info_probe_column> headings
     = spops->gen_info_probes_table_header ();
 
-  for (const struct info_probe_column &column : headings)
+  for (const info_probe_column &column : headings)
     {
       size_t size_max = strlen (column.print_name);
 
@@ -410,7 +410,7 @@ print_ui_out_not_applicables (const static_probe_ops *spops)
    std::vector<struct info_probe_column> headings
      = spops->gen_info_probes_table_header ();
 
-  for (const struct info_probe_column &column : headings)
+  for (const info_probe_column &column : headings)
     current_uiout->field_string (column.field_name, _("n/a"));
 }