X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fconfig%2Falpha%2Felf.h;h=57ab91e2f3cb0c7bfd56d553310d975241fef71d;hp=d2bf732543d0dcf61ee425d764a0818d5e995cb7;hb=6834c43a3100068ce10f4b1b60c5bbb486e2a353;hpb=b2af2a9379ee112dba523c35b735c160547845a2 diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h index d2bf732543d..57ab91e2f3c 100644 --- a/gcc/config/alpha/elf.h +++ b/gcc/config/alpha/elf.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for DEC Alpha w/ELF. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2007, 2008, - 2009 Free Software Foundation, Inc. + 2009, 2010 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu). This file is part of GCC. @@ -284,10 +284,12 @@ do { \ HOST_WIDE_INT size; \ \ /* For template static data member instantiations or \ - inline fn local statics, use gnu_unique_object so that \ - they will be combined even under RTLD_LOCAL. */ \ - if (USE_GNU_UNIQUE_OBJECT \ - && !DECL_ARTIFICIAL (DECL) && DECL_ONE_ONLY (DECL)) \ + inline fn local statics and their guard variables, use \ + gnu_unique_object so that they will be combined even under \ + RTLD_LOCAL. Don't use gnu_unique_object for typeinfo, \ + vtables and other read-only artificial decls. */ \ + if (USE_GNU_UNIQUE_OBJECT && DECL_ONE_ONLY (DECL) \ + && (!DECL_ARTIFICIAL (DECL) || !TREE_READONLY (DECL))) \ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "gnu_unique_object"); \ else \ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \