From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17703 invoked by alias); 18 Feb 2009 02:16:34 -0000 Received: (qmail 17644 invoked by alias); 18 Feb 2009 02:16:20 -0000 Date: Wed, 18 Feb 2009 02:16:00 -0000 Message-ID: <20090218021620.17643.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/39082] union with long double doesn't follow x86-64 psABI In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "hjl at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-02/txt/msg01548.txt.bz2 ------- Comment #8 from hjl at gcc dot gnu dot org 2009-02-18 02:16 ------- Subject: Bug 39082 Author: hjl Date: Wed Feb 18 02:16:03 2009 New Revision: 144257 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144257 Log: gcc/ 2009-02-17 H.J. Lu PR target/39082 * c.opt (Wabi): Support C and ObjC. (Wpsabi): New. * c-opts.c (c_common_handle_option): Handle OPT_Wabi. * config/i386/i386.c (classify_argument): Warn once about the ABI change when passing union with long double. * doc/invoke.texi: Update -Wabi for warning psABI changes. gcc/testsuite/ 2009-02-17 H.J. Lu PR target/39082 * g++.dg/compat/struct-layout-1_generate.c (dg_options): Add -Wno-abi for x86. * gcc.dg/compat/struct-layout-1_generate.c (dg_options): Likewise. * gcc.target/i386/pr39082-1.c: New. * gcc.target/x86_64/abi/abi-x86_64.exp (additional_flags): Add -Wno-abi. * gcc.target/x86_64/abi/args.h (XMM_T): Add _m64 and _m128 if CHECK_M64_M128 is defined. (check_f_arguments): Add "do". (check_vector_arguments): New. (check_m64_arguments): Likewise. (check_m128_arguments): Likewise. * gcc.target/x86_64/abi/defines.h: Include . (CHECK_M64_M128): Define. * gcc.target/x86_64/abi/test_m64m128_returning.c: New. Based on abitest. * gcc.target/x86_64/abi/test_passing_m64m128.c: Likewise. * gcc.target/x86_64/abi/test_passing_structs.c: Define __m128 tests only if CHECK_M64_M128 is defined. * gcc.target/x86_64/abi/test_passing_structs.c (m128_struct): New. (m128_2_struct): Likewise. (check_struct_passing5): Likewise. (check_struct_passing6): Likewise. (main): Test struct with __m128 if CHECK_M64_M128 is defined. * gcc.target/x86_64/abi/test_passing_unions.c (un4): New. (un5): Likewise. (check_union_passing4): Likewise. (main): Test union with __m128 if CHECK_M64_M128 is defined. Added: trunk/gcc/testsuite/gcc.target/i386/pr39082-1.c trunk/gcc/testsuite/gcc.target/x86_64/abi/test_m64m128_returning.c trunk/gcc/testsuite/gcc.target/x86_64/abi/test_passing_m64m128.c Modified: trunk/gcc/ChangeLog trunk/gcc/c-opts.c trunk/gcc/c.opt trunk/gcc/config/i386/i386.c trunk/gcc/doc/invoke.texi trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c trunk/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c trunk/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp trunk/gcc/testsuite/gcc.target/x86_64/abi/args.h trunk/gcc/testsuite/gcc.target/x86_64/abi/defines.h trunk/gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs.c trunk/gcc/testsuite/gcc.target/x86_64/abi/test_passing_unions.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082