aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDoug Evans <dje@gnu.org>1996-05-24 16:27:46 +0000
committerDoug Evans <dje@gnu.org>1996-05-24 16:27:46 +0000
commit91fddd7c9f3c7faaac55caa3ea329bfde10b225e (patch)
treedc9270d29bd798b757f05bc03303ac956f9989c3 /gcc
parent88306d12bb3131654511eb2e369626dd2e9d1a70 (diff)
downloadgcc-91fddd7c9f3c7faaac55caa3ea329bfde10b225e.zip
gcc-91fddd7c9f3c7faaac55caa3ea329bfde10b225e.tar.gz
gcc-91fddd7c9f3c7faaac55caa3ea329bfde10b225e.tar.bz2
varasm.c (asm_output_bss): New argument DECL.
* varasm.c (asm_output_bss): New argument DECL. Use ASM_DECLARE_OBJECT_NAME if defined. (asm_output_aligned_bss): Likewise. (assemble_variable): Pass DECL to ASM_OUTPUT{,_ALIGNED}_BSS. From-SVN: r12087
Diffstat (limited to 'gcc')
-rw-r--r--gcc/varasm.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 11bab79..5702646 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -305,14 +305,21 @@ bss_section (decl, name)
support is localized here. */
static void
-asm_output_bss (file, name, size, rounded)
+asm_output_bss (file, decl, name, size, rounded)
FILE *file;
+ tree decl;
char *name;
int size, rounded;
{
ASM_GLOBALIZE_LABEL (file, name);
bss_section ();
+#ifdef ASM_DECLARE_OBJECT_NAME
+ last_assemble_variable_decl = decl;
+ ASM_DECLARE_OBJECT_NAME (file, name, decl);
+#else
+ /* Standard thing is just output label for the object. */
ASM_OUTPUT_LABEL (file, name);
+#endif /* ASM_DECLARE_OBJECT_NAME */
ASM_OUTPUT_SKIP (file, rounded);
}
@@ -326,15 +333,22 @@ asm_output_bss (file, name, size, rounded)
support is localized here. */
static void
-asm_output_aligned_bss (file, name, size, align)
+asm_output_aligned_bss (file, decl, name, size, align)
FILE *file;
+ tree decl;
char *name;
int size, align;
{
ASM_GLOBALIZE_LABEL (file, name);
bss_section ();
ASM_OUTPUT_ALIGN (file, floor_log2 (align / BITS_PER_UNIT));
+#ifdef ASM_DECLARE_OBJECT_NAME
+ last_assemble_variable_decl = decl;
+ ASM_DECLARE_OBJECT_NAME (file, name, decl);
+#else
+ /* Standard thing is just output label for the object. */
ASM_OUTPUT_LABEL (file, name);
+#endif /* ASM_DECLARE_OBJECT_NAME */
ASM_OUTPUT_SKIP (file, size);
}
@@ -1304,7 +1318,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
{
#ifdef ASM_OUTPUT_SHARED_BSS
if (flag_shared_data)
- ASM_OUTPUT_SHARED_BSS (asm_out_file, name, size, rounded);
+ ASM_OUTPUT_SHARED_BSS (asm_out_file, decl, name, size, rounded);
else
#endif
if (output_bytecode)
@@ -1314,10 +1328,10 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
else
{
#ifdef ASM_OUTPUT_ALIGNED_BSS
- ASM_OUTPUT_ALIGNED_BSS (asm_out_file, name, size,
+ ASM_OUTPUT_ALIGNED_BSS (asm_out_file, decl, name, size,
DECL_ALIGN (decl));
#else
- ASM_OUTPUT_BSS (asm_out_file, name, size, rounded);
+ ASM_OUTPUT_BSS (asm_out_file, decl, name, size, rounded);
#endif
}
}