diff options
Diffstat (limited to 'gcc/ada/gcc-interface/misc.c')
-rw-r--r-- | gcc/ada/gcc-interface/misc.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c index b67b845..9d65249 100644 --- a/gcc/ada/gcc-interface/misc.c +++ b/gcc/ada/gcc-interface/misc.c @@ -355,7 +355,7 @@ internal_error_function (const char *msgid, va_list *ap) pp_format_verbatim (global_dc->printer, &tinfo); /* Extract a (writable) pointer to the formatted text. */ - buffer = (char*) pp_formatted_text (global_dc->printer); + buffer = xstrdup (pp_formatted_text (global_dc->printer)); /* Go up to the first newline. */ for (p = buffer; *p; p++) @@ -394,9 +394,12 @@ gnat_init (void) gnat_init_decl_processing (); /* Add the input filename as the last argument. */ - gnat_argv[gnat_argc] = (char *) main_input_filename; - gnat_argc++; - gnat_argv[gnat_argc] = 0; + if (main_input_filename) + { + gnat_argv[gnat_argc] = xstrdup (main_input_filename); + gnat_argc++; + gnat_argv[gnat_argc] = NULL; + } global_dc->internal_error = &internal_error_function; @@ -547,7 +550,7 @@ gnat_printable_name (tree decl, int verbosity) if (verbosity == 2 && !DECL_IS_BUILTIN (decl)) { - Set_Identifier_Casing (ada_name, (char *) DECL_SOURCE_FILE (decl)); + Set_Identifier_Casing (ada_name, DECL_SOURCE_FILE (decl)); return ggc_strdup (Name_Buffer); } |