comparison gcc/config/alpha/elf.h @ 63:b7f97abdc517 gcc-4.6-20100522

update gcc from gcc-4.5.0 to gcc-4.6
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Mon, 24 May 2010 12:47:05 +0900
parents 77e2b8dfacca
children f6334be47118
comparison
equal deleted inserted replaced
56:3c8a44c06a95 63:b7f97abdc517
1 /* Definitions of target machine for GNU compiler, for DEC Alpha w/ELF. 1 /* Definitions of target machine for GNU compiler, for DEC Alpha w/ELF.
2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2007, 2008, 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2007, 2008,
3 2009 Free Software Foundation, Inc. 3 2009, 2010 Free Software Foundation, Inc.
4 Contributed by Richard Henderson (rth@tamu.edu). 4 Contributed by Richard Henderson (rth@tamu.edu).
5 5
6 This file is part of GCC. 6 This file is part of GCC.
7 7
8 GCC is free software; you can redistribute it and/or modify 8 GCC is free software; you can redistribute it and/or modify
270 entries in an ELF object file under SVR4. These macros also output 270 entries in an ELF object file under SVR4. These macros also output
271 the starting labels for the relevant functions/objects. */ 271 the starting labels for the relevant functions/objects. */
272 272
273 /* Write the extra assembler code needed to declare an object properly. */ 273 /* Write the extra assembler code needed to declare an object properly. */
274 274
275 #ifdef HAVE_GAS_GNU_UNIQUE_OBJECT
276 #define USE_GNU_UNIQUE_OBJECT 1
277 #else
278 #define USE_GNU_UNIQUE_OBJECT 0
279 #endif
280
275 #undef ASM_DECLARE_OBJECT_NAME 281 #undef ASM_DECLARE_OBJECT_NAME
276 #define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \ 282 #define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
277 do { \ 283 do { \
278 HOST_WIDE_INT size; \ 284 HOST_WIDE_INT size; \
279 ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \ 285 \
280 size_directive_output = 0; \ 286 /* For template static data member instantiations or \
281 if (!flag_inhibit_size_directive \ 287 inline fn local statics and their guard variables, use \
282 && DECL_SIZE (DECL) \ 288 gnu_unique_object so that they will be combined even under \
283 && (size = int_size_in_bytes (TREE_TYPE (DECL))) > 0) \ 289 RTLD_LOCAL. Don't use gnu_unique_object for typeinfo, \
284 { \ 290 vtables and other read-only artificial decls. */ \
285 size_directive_output = 1; \ 291 if (USE_GNU_UNIQUE_OBJECT && DECL_ONE_ONLY (DECL) \
286 ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \ 292 && (!DECL_ARTIFICIAL (DECL) || !TREE_READONLY (DECL))) \
287 } \ 293 ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "gnu_unique_object"); \
288 ASM_OUTPUT_LABEL(FILE, NAME); \ 294 else \
295 ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
296 \
297 size_directive_output = 0; \
298 if (!flag_inhibit_size_directive \
299 && (DECL) && DECL_SIZE (DECL)) \
300 { \
301 size_directive_output = 1; \
302 size = int_size_in_bytes (TREE_TYPE (DECL)); \
303 ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \
304 } \
305 \
306 ASM_OUTPUT_LABEL (FILE, NAME); \
289 } while (0) 307 } while (0)
290 308
291 /* Output the size directive for a decl in rest_of_decl_compilation 309 /* Output the size directive for a decl in rest_of_decl_compilation
292 in the case where we did not do so before the initializer. 310 in the case where we did not do so before the initializer.
293 Once we find the error_mark_node, we know that the value of 311 Once we find the error_mark_node, we know that the value of