diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index eaaddc8bf43a..ce147f76da19 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2008-03-24 Tom Tromey + + * lex.c (handle_pragma_interface): Don't copy the filename. + (handle_pragma_implementation): Copy filename using xstrdup. + 2008-03-21 Paolo Carlini * cp-tree.h (IS_AGGR_TYPE): Rename to MAYBE_CLASS_TYPE_P. diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index adf793b1d426..45523059af34 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -518,7 +518,7 @@ handle_pragma_interface (cpp_reader* dfile ATTRIBUTE_UNUSED ) else if (fname == 0) filename = lbasename (input_filename); else - filename = ggc_strdup (TREE_STRING_POINTER (fname)); + filename = TREE_STRING_POINTER (fname); finfo = get_fileinfo (input_filename); @@ -566,7 +566,7 @@ handle_pragma_implementation (cpp_reader* dfile ATTRIBUTE_UNUSED ) } else { - filename = ggc_strdup (TREE_STRING_POINTER (fname)); + filename = TREE_STRING_POINTER (fname); if (cpp_included_before (parse_in, filename, input_location)) warning (0, "#pragma implementation for %qs appears after " "file is included", filename); @@ -580,7 +580,7 @@ handle_pragma_implementation (cpp_reader* dfile ATTRIBUTE_UNUSED ) if (ifiles == 0) { ifiles = XNEW (struct impl_files); - ifiles->filename = filename; + ifiles->filename = xstrdup (filename); ifiles->next = impl_file_chain; impl_file_chain = ifiles; }