]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb: fix color_option_def compile error (clang)
authorAndrew Oates <andrew@andrewoates.com>
Sun, 16 Feb 2025 15:16:25 +0000 (16:16 +0100)
committerTom de Vries <tdevries@suse.de>
Sun, 16 Feb 2025 15:16:25 +0000 (16:16 +0100)
color_option_def was added in commit 6447969d0 ("Add an option with a
color type."), but not used.

The color_option_def constructor passes the wrong number of arguments
to the option_def constructor.  Since color_option_def is a template and
never actually instantiated, GCC does not fail to compile this.  clang
generates an error (see below).

This passes nullptr to the extra_literals_ option_def ctor argument,
which matches what filename_option_def above it does.

clang's generated error:
  ../../gdb/cli/cli-option.h:343:7: error: no matching constructor for initialization of 'option_def'
      : option_def (long_option_, var_color,
        ^           ~~~~~~~~~~~~~~~~~~~~~~~~
  ../../gdb/cli/cli-option.h:50:13: note: candidate constructor not viable: requires 8 arguments, but 7 were provided
    constexpr option_def (const char *name_,
              ^
  ../../gdb/cli/cli-option.h:37:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 7 were provided
  struct option_def
         ^
  ../../gdb/cli/cli-option.h:37:8: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 7 were provided

Approved-By: Tom de Vries <tdevries@suse.de>
gdb/cli/cli-option.h

index ac614c326d4dc375af35e075e906a5c673224732..38dcd8219c5ed82a6c5ebd5c7f70a7b2f2a776c8 100644 (file)
@@ -340,7 +340,7 @@ struct color_option_def : option_def
                    const char *set_doc_,
                    const char *show_doc_ = nullptr,
                    const char *help_doc_ = nullptr)
-    : option_def (long_option_, var_color,
+    : option_def (long_option_, var_color, nullptr,
                  (erased_get_var_address_ftype *) get_var_address_cb_,
                  show_cmd_cb_,
                  set_doc_, show_doc_, help_doc_)