diff --git a/gcc/opts-common.c b/gcc/opts-common.c index 6cb5602896d9..5e10edeb4cfc 100644 --- a/gcc/opts-common.c +++ b/gcc/opts-common.c @@ -766,6 +766,7 @@ decode_cmdline_option (const char *const *argv, unsigned int lang_mask, werror_arg[0] = 'W'; size_t warning_index = find_opt (werror_arg, lang_mask); + free (werror_arg); if (warning_index != OPT_SPECIAL_unknown) { const struct cl_option *warning_option diff --git a/gcc/opts.c b/gcc/opts.c index fc5f61e13cce..24bb64198c89 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -3401,8 +3401,11 @@ char * gen_producer_string (const char *language_string, cl_decoded_option *options, unsigned int options_count) { - return concat (language_string, " ", version_string, " ", - gen_command_line_string (options, options_count), NULL); + char *cmdline = gen_command_line_string (options, options_count); + char *combined = concat (language_string, " ", version_string, " ", + cmdline, NULL); + free (cmdline); + return combined; } #if CHECKING_P