https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112952

--- Comment #5 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Georg-Johann Lay
<g...@gcc.gnu.org>:

https://gcc.gnu.org/g:ebae82f35033be6e022dce65cea0148ddf9df025

commit r12-10085-gebae82f35033be6e022dce65cea0148ddf9df025
Author: Georg-Johann Lay <a...@gjlay.de>
Date:   Mon Jan 8 12:20:45 2024 +0100

    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.

    (cherry picked from commit c131b1d5da412b9b0f0681fc5704cdc9b7cafb04)

Reply via email to