Fix gdb build with -std=gnu++11
authorPedro Alves <palves@redhat.com>
Thu, 13 Jun 2019 07:58:54 +0000 (08:58 +0100)
committerPedro Alves <palves@redhat.com>
Thu, 13 Jun 2019 07:58:54 +0000 (08:58 +0100)
The options framework series broken the build with gcc 4.8, or any
other compiler were we end up forcing -std=gnu++11, causing errors
like these:

 ../../binutils-gdb/gdb/compile/compile.c: In function gdb::option::option_def_group make_compile_options_def_group(compile_options*):
 ../../binutils-gdb/gdb/compile/compile.c:266:44: error: could not convert (const gdb::option::option_def*)(& compile_command_option_defs) from const gdb::option::option_def* to gdb::array_view<const gdb::option::option_def>
    return {compile_command_option_defs, opts};
     ^
   CXX    copying.o
 ../../binutils-gdb/gdb/compile/compile.c:267:1: error: control reaches end of non-void function [-Werror=return-type]
  }
  ^

This is a C++11 vs C++14 difference -- C++14 relaxed the rules for
eliding braces.

This commit fixes it by adding the missing (in C++11) braces.  Tested
with g++ 4.8.

gdb/ChangeLog:
2019-06-13  Pedro Alves  <palves@redhat.com>

* compile/compile.c (make_compile_options_def_group): Add braces
around array_view initializer.
* thread.c (make_thread_apply_all_options_def_group)
(make_thread_apply_all_options_def_group): Likewise.

gdb/ChangeLog
gdb/compile/compile.c
gdb/thread.c

index 307a84ddae1d4b4339ded8f868a94ea97fb4f8e3..029acd14dc91acabea6440969ec2bedf9b64c566 100644 (file)
@@ -1,3 +1,10 @@
+2019-06-13  Pedro Alves  <palves@redhat.com>
+
+       * compile/compile.c (make_compile_options_def_group): Add braces
+       around array_view initializer.
+       * thread.c (make_thread_apply_all_options_def_group)
+       (make_thread_apply_all_options_def_group): Likewise.
+
 2019-06-13  Pedro Alves  <palves@redhat.com>
 
        * NEWS (New commands): Mention "maint test-options
index b467254fe83071dfa0fcc3b279fb094e675ddf6f..25d0bfe60223a4d3f7214a03fc901fb40dcf1c34 100644 (file)
@@ -263,7 +263,7 @@ static const gdb::option::option_def compile_command_option_defs[] = {
 static gdb::option::option_def_group
 make_compile_options_def_group (compile_options *opts)
 {
-  return {compile_command_option_defs, opts};
+  return {{compile_command_option_defs}, opts};
 }
 
 /* Handle the input from the 'compile file' command.  The "compile
index 947427aa046fb6e05bbab988c669c62fc46e9716..695572f3fb91b13611f3c250f6be2fb492c59946 100644 (file)
@@ -1531,8 +1531,8 @@ make_thread_apply_all_options_def_group (int *ascending,
                                         qcs_flags *flags)
 {
   return {{
-    { ascending_option_def.def (), ascending},
-    { thr_qcs_flags_option_defs, flags },
+    { {ascending_option_def.def ()}, ascending},
+    { {thr_qcs_flags_option_defs}, flags },
   }};
 }
 
@@ -1542,7 +1542,7 @@ make_thread_apply_all_options_def_group (int *ascending,
 static inline gdb::option::option_def_group
 make_thread_apply_options_def_group (qcs_flags *flags)
 {
-  return {thr_qcs_flags_option_defs, flags};
+  return {{thr_qcs_flags_option_defs}, flags};
 }
 
 /* Apply a GDB command to a list of threads.  List syntax is a whitespace