aboutsummaryrefslogtreecommitdiff
path: root/gdb/macrotab.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/macrotab.c')
-rw-r--r--gdb/macrotab.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/gdb/macrotab.c b/gdb/macrotab.c
index 21ec152..37ae0f2 100644
--- a/gdb/macrotab.c
+++ b/gdb/macrotab.c
@@ -564,14 +564,17 @@ new_macro_definition (macro_table *t, macro_kind kind,
d->argc = argv.size ();
/* Bcache all the arguments. */
- std::vector<const char *> cached_argv;
+ if (d->argc > 0)
+ {
+ std::vector<const char *> cached_argv;
- for (const auto &arg : argv)
- cached_argv.push_back (macro_bcache_str (t, arg.c_str ()));
+ for (const auto &arg : argv)
+ cached_argv.push_back (macro_bcache_str (t, arg.c_str ()));
- /* Now bcache the array of argument pointers itself. */
- d->argv = macro_bcache (t, cached_argv.data (),
- cached_argv.size () * sizeof (const char *));
+ /* Now bcache the array of argument pointers itself. */
+ d->argv = macro_bcache (t, cached_argv.data (),
+ cached_argv.size () * sizeof (const char *));
+ }
}
else
d->argc = special_kind;