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

--- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Georg-Johann Lay <[email protected]>:

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

commit r17-3634-gbe9d4883aaaccecee8022e2a47986e0aadc729f3
Author: Georg-Johann Lay <[email protected]>
Date:   Sun Aug 23 12:28:06 2026 +0200

    AVR: target/127032 - Tag object files with the bit sizes of [long] double

    This patch outputs .gnu_attribute tags for the bit sizes
    of long double (12 = Tag_GNU_AVR_BITS_LONG_DOUBLE) resp.
    double (8 = Tag_GNU_AVR_BITS_DOUBLE).

    The recently introduced gimple mini-pass avr_pass_has
    now scans the code for the presence of [long] double,
    and avr_file_end performs similar scans on the varpool.

    There are cases where libgcc shares multilibs when they
    don't depend on -m[long-]double=X, so that just emitting
    .gnu_attribute *.X according to -m[long-]double=X is too strict.

    The patch uses the .gnu_attribute's as introduced in
    https://sourceware.org/PR34557 for Binutils 2.48.

    The patch passes without new regressions.

            PR target/127032
    gcc/
            * config/avr/avr.md (Tag_GNU_AVR_BITS_LONG_DOUBLE)
            (Tag_GNU_AVR_BITS_DOUBLE): New define_constants.
            * config/avr/avr.cc (avr_uses_long_double_p)
            (avr_uses_double_p): New static variables.
            (avr_find_double): New function.
            (avr_file_end) [HAVE_AS_AVR_GNU_ATTRIBUTE]: Run avr_find_double
            on each varpool node.  Output .gnu_attribute according to
            avr_uses_long_double_p and avr_uses_double_p.
            * config/avr/avr-passes.cc (gimple-walk.h): Include.
            (avr_pass_has) <op_callback>: New static method.
            <scan_bb>: Use it in walk_gimple_op.
            <execute>: Set up walk_stmt_info and pass it to scan_bb.
            * config/avr/avr-passes.def (avr_pass_has): Adjust comment.
            * config/avr/avr-protos.h (avr_find_double): New proto.

Reply via email to