decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if input_filename is...
authorPer Bothner <per@bothner.com>
Fri, 22 Apr 2005 19:01:29 +0000 (12:01 -0700)
committerPer Bothner <bothner@gcc.gnu.org>
Fri, 22 Apr 2005 19:01:29 +0000 (12:01 -0700)
* decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
        input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.

From-SVN: r98582

gcc/cp/ChangeLog
gcc/cp/decl.c

index 30eb8662ea3de5e69774bfcb05e3ec9c7ade976a..14a787ba7e66ff021befe84e5d74f17ac149ebb7 100644 (file)
@@ -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
index 2a3c30cd71d5106c2158e44eba31ec35372b7b2c..5d52a2600f5378379741a0572b1fee575a564617 100644 (file)
@@ -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;