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

--- Comment #2 from CVS 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:4073ce2c4e5584c1be58fbe76dd66285de2529bb

commit r13-7154-g4073ce2c4e5584c1be58fbe76dd66285de2529bb
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Wed Apr 12 16:53:23 2023 +0200

    i386: Fix up z operand modifier diagnostics on inline-asm [PR109458]

    On the following testcase, we emit weird diagnostics.
    User used the z modifier, but diagnostics talks about Z instead.
    This is because z is implemented by doing some stuff and then falling
    through into the Z case.

    The following patch adjusts the Z diagnostics, such that it prints whatever
    modifier user actually uses in places which could happen with either
    modifier.

    Furthermore, in case of the non-integer operand used with operand code
%<z%>
    warning the warning location was incorrect (and of function), so I've used
    warning_for_asm to get it a proper location in case it is a user
inline-asm.

    2023-04-12  Jakub Jelinek  <ja...@redhat.com>

            PR target/109458
            * config/i386/i386.cc: Include rtl-error.h.
            (ix86_print_operand): For z modifier warning, use warning_for_asm
            if this_is_asm_operands.  For Z modifier errors, use %c and code
            instead of hardcoded Z.

            * gcc.target/i386/pr109458.c: New test.

Reply via email to