[Bug testsuite/126927] FAIL: gcc.target/x86_64/abi/ms-sysv/ms-sysv.c

"cvs-commit at gcc dot gnu.org via Gcc-bugs" <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126927

--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by H.J. Lu <[email protected]>:

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

commit r17-3405-gff1ab0ed4b5221f4d7d3eff2e7aadb826e2c9d9a
Author: H.J. Lu <[email protected]>
Date:   Tue Aug 18 22:55:38 2026 +0800

    ms-sysv: Add call_do_test_unaligned

    We can't use

    void
    test (long a, long b, long c, long d, long e)
    {
      ...
      __asm__ __volatile__ ("subq $8,%%rsp":::"cc");
      ret = do_test_unaligned (a, b, c, d, e);
      __asm__ __volatile__ ("addq $8,%%rsp":::"cc");
      ...
    }

    to call do_test_unaligned, which is marked with ms_abi attribute, with
    an unaligned stack since GCC may save a function argument on stack and
    retrieve it from stack to pass it to do_test_unaligned.  When it happens,
    stack adjustment in asm statements can lead to a random value in the
    outgoing argument.  Add an assembly function, call_do_test_unaligned, to
    call do_test_unaligned with an unaligned stack.

            PR testsuite/126927
            * gcc.target/x86_64/abi/ms-sysv/do-test.S (call_do_test_unaligned):
            New.
            * gcc.target/x86_64/abi/ms-sysv/gen.cc (make_do_tests_decl):
            Replace do_test_unaligned with call_do_test_unaligned.
            (make_do_test): Remove asm statements with stack adjustment.

    Signed-off-by: H.J. Lu <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.