From fcc207bfd70c14e46f15a0d39db9ff3699afb87f Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Wed, 9 Nov 2005 12:33:59 +0000 Subject: [PATCH] re PR c/24644 (gcc-4.1 compiled ppc64 kernels do not boot) 2005-11-09 Andrew Pinski 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 | 8 ++++++++ gcc/c-decl.c | 5 ++--- gcc/dwarf2out.c | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e763fdf..48deb17 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2005-11-09 Andrew Pinski + + 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 PR 24624 diff --git a/gcc/c-decl.c b/gcc/c-decl.c index f7cad3b..003b813 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -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. */ diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 4cdb480..28e0031 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -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))); } -- 2.7.4