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

--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:047b7f9a5665a5cb1267861deece3e5d6ce5c5fb

commit r15-7780-g047b7f9a5665a5cb1267861deece3e5d6ce5c5fb
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Sun Mar 2 11:30:35 2025 +0100

    avr: Fix up avr_print_operand diagnostics [PR118991]

    As can be seen in gcc/po/gcc.pot:
     #: config/avr/avr.cc:2754
     #, c-format
     msgid "bad I/O address 0x"
     msgstr ""

    exgettext couldn't retrieve the whole format string in this case,
    because it uses a macro in the middle.  output_operand_lossage
    is c-format function though, so we can't use %wx to print HOST_WIDE_INT,
    and HOST_WIDE_INT_PRINT_HEX_PURE is on some hosts %lx, on others %llx
    and on others %I64x so isn't really translatable that way.

    As Joseph mentioned in the PR, there is no easy way around this
    but go through a temporary buffer, which the following patch does.

    2025-03-02  Jakub Jelinek  <ja...@redhat.com>

            PR translation/118991
            * config/avr/avr.cc (avr_print_operand): Print ival into
            a temporary buffer and use %s in output_operand_lossage to make
            the diagnostics translatable.

Reply via email to