[Bug target/94134] pdp11-aout puts initial variable into .text section rather than .data
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Mar 17 18:57:20 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94134
--- Comment #14 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:f1125cf88ac0c97d819e4f81d556fbcd1161270e
commit r9-8391-gf1125cf88ac0c97d819e4f81d556fbcd1161270e
Author: Jakub Jelinek <jakub@redhat.com>
Date: Wed Mar 11 18:35:13 2020 +0100
pdp11: Fix handling of common (local and global) vars [PR94134]
As mentioned in the PR, the generic code decides to put the a variable into
lcomm_section, which is a NOSWITCH section and thus the generic code
doesn't
switch into a particular section before using
ASM_OUTPUT{_ALIGNED{,_DECL}_}_LOCAL, on many targets that results just in
.lcomm (or for non-local .comm) directives which don't need a switch to
some
section, other targets put switch_to_section (bss_section) at the start of
that macro.
pdp11 doesn't do that (and doesn't have bss_section), and so emits the
lcomm/comm variables in whatever section is current (it has only
.text/.data
and for DEC assembler rodata).
The following patch fixes that by putting it always into data section, and
additionally avoids emitting an empty line in the assembly for the lcomm
vars.
2020-03-11 Jakub Jelinek <jakub@redhat.com>
PR target/94134
* config/pdp11/pdp11.c (pdp11_asm_output_var): Call
switch_to_section
at the start to switch to data section. Don't print extra newline
if
.globl directive has not been emitted.
* gcc.c-torture/execute/pr94134.c: New test.
More information about the Gcc-bugs
mailing list