diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2024-01-08 12:20:45 +0100 |
---|---|---|
committer | Georg-Johann Lay <avr@gjlay.de> | 2024-01-08 12:30:22 +0100 |
commit | c131b1d5da412b9b0f0681fc5704cdc9b7cafb04 (patch) | |
tree | 52dbcea6801d40e1c838d91513073574c471b18a /gcc/tree-vect-loop-manip.cc | |
parent | cde6f1085b7027f6a42fdb71c786d422606a8765 (diff) | |
download | gcc-c131b1d5da412b9b0f0681fc5704cdc9b7cafb04.zip gcc-c131b1d5da412b9b0f0681fc5704cdc9b7cafb04.tar.gz gcc-c131b1d5da412b9b0f0681fc5704cdc9b7cafb04.tar.bz2 |
AVR: PR target/112952: Fix attribute "address", "io" and "io_low"
so they work with all combinations of -f[no-]data-sections -f[no-]common.
The patch also improves some diagnostics and adds additional checks, for
example these attributes must only be applied to variables in static storage.
gcc/
PR target/112952
* config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
range when diagnosing attribute "io" and "io_low" are out of range.
(avr_eval_addr_attrib): Don't ICE on empty address at that place.
(avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
in contexts other than static storage.
(avr_asm_output_aligned_decl_common): Move output of decls with
attribute "address", "io", and "io_low" to...
(avr_output_addr_attrib): ...this new function.
(avr_asm_asm_output_aligned_bss): Remove output for decls with
attribute "address", "io", and "io_low".
(avr_encode_section_info): Rectify handling of decls with attribute
"address", "io", and "io_low".
gcc/testsuite/
PR target/112952
* gcc.target/avr/attribute-io.h: New file.
* gcc.target/avr/pr112952-0.c: New test.
* gcc.target/avr/pr112952-1.c: New test.
* gcc.target/avr/pr112952-2.c: New test.
* gcc.target/avr/pr112952-3.c: New test.
Diffstat (limited to 'gcc/tree-vect-loop-manip.cc')
0 files changed, 0 insertions, 0 deletions