diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/cp/decl.c | 5 | 
2 files changed, 9 insertions, 1 deletions
| diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 30eb866..14a787b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2005-04-22  Per Bothner  <per@bothner.com> + +	* decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if +        input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__. +  2005-04-22  Alexandre Oliva  <aoliva@redhat.com>  	PR c++/21087 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 2a3c30c..5d52a26 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -4543,6 +4543,7 @@ make_rtl_for_nonlocal_decl (tree decl, tree init, const char* asmspec)  {    int toplev = toplevel_bindings_p ();    int defer_p; +  const char *filename;    /* Set the DECL_ASSEMBLER_NAME for the object.  */    if (asmspec) @@ -4592,17 +4593,19 @@ make_rtl_for_nonlocal_decl (tree decl, tree init, const char* asmspec)    /* We try to defer namespace-scope static constants so that they are       not emitted into the object file unnecessarily.  */ +  filename = input_filename;    if (!DECL_VIRTUAL_P (decl)        && TREE_READONLY (decl)        && DECL_INITIAL (decl) != NULL_TREE        && DECL_INITIAL (decl) != error_mark_node +      && filename != NULL        && ! EMPTY_CONSTRUCTOR_P (DECL_INITIAL (decl))        && toplev        && !TREE_PUBLIC (decl))      {        /* Fool with the linkage of static consts according to #pragma  	 interface.  */ -      struct c_fileinfo *finfo = get_fileinfo (lbasename (input_filename)); +      struct c_fileinfo *finfo = get_fileinfo (lbasename (filename));        if (!finfo->interface_unknown && !TREE_PUBLIC (decl))  	{  	  TREE_PUBLIC (decl) = 1; | 
