re PR c/24644 (gcc-4.1 compiled ppc64 kernels do not boot)
authorAndrew Pinski <pinskia@physics.uc.edu>
Wed, 9 Nov 2005 12:33:59 +0000 (12:33 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Wed, 9 Nov 2005 12:33:59 +0000 (04:33 -0800)
2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c/24644
        * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
        a linkage name for a variable if it a register variable.
        * c-decl.c (grokdeclarator): Global register variables
        should be set as PUBLIC.

From-SVN: r106693

gcc/ChangeLog
gcc/c-decl.c
gcc/dwarf2out.c

index e763fdf..48deb17 100644 (file)
@@ -1,3 +1,11 @@
+2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c/24644
+       * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
+       a linkage name for a variable if it a register variable.
+       * c-decl.c (grokdeclarator): Global register variables
+       should be set as PUBLIC.
+
 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        PR 24624
index f7cad3b..003b813 100644 (file)
@@ -4694,11 +4694,10 @@ grokdeclarator (const struct c_declarator *declarator,
        /* At file scope, the presence of a `static' or `register' storage
           class specifier, or the absence of all storage class specifiers
           makes this declaration a definition (perhaps tentative).  Also,
-          the absence of both `static' and `register' makes it public.  */
+          the absence of `static' makes it public.  */
        if (current_scope == file_scope)
          {
-           TREE_PUBLIC (decl) = !(storage_class == csc_static
-                                  || storage_class == csc_register);
+           TREE_PUBLIC (decl) = storage_class != csc_static;
            TREE_STATIC (decl) = !extern_ref;
          }
        /* Not at file scope, only `static' makes a static definition.  */
index 4cdb480..28e0031 100644 (file)
@@ -10809,7 +10809,8 @@ add_name_and_src_coords_attributes (dw_die_ref die, tree decl)
       if ((TREE_CODE (decl) == FUNCTION_DECL || TREE_CODE (decl) == VAR_DECL)
          && TREE_PUBLIC (decl)
          && DECL_ASSEMBLER_NAME (decl) != DECL_NAME (decl)
-         && !DECL_ABSTRACT (decl))
+         && !DECL_ABSTRACT (decl)
+         && !(TREE_CODE (decl) == VAR_DECL && DECL_REGISTER (decl)))
        add_AT_string (die, DW_AT_MIPS_linkage_name,
                       IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)));
     }