[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #15 from hjl dot tools at gmail dot com 2009-02-18 17:43 --- (In reply to comment #13) > Created an attachment (id=17325) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17325&action=view) [edit] > Ada testcase > > (botca...@red) ~ $ gcc -S p.ads > p.ads:16: note: The ABI of passing union with long double has changed in GCC > 4.4 > A new patch is at http://gcc.gnu.org/ml/gcc-patches/2009-02/msg00855.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #14 from hjl dot tools at gmail dot com 2009-02-18 15:10 --- (In reply to comment #12) > > I believe that warning is turned on for C ObjC C++ ObjC++ only. > > Wrong. A patch is posted at http://gcc.gnu.org/ml/gcc-patches/2009-02/msg00834.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #13 from ebotcazou at gcc dot gnu dot org 2009-02-18 14:51 --- Created an attachment (id=17325) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17325&action=view) Ada testcase (botca...@red) ~ $ gcc -S p.ads p.ads:16: note: The ABI of passing union with long double has changed in GCC 4.4 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #12 from ebotcazou at gcc dot gnu dot org 2009-02-18 14:38 --- > I believe that warning is turned on for C ObjC C++ ObjC++ only. Wrong. spgn_numerics.ads: In function 'Test_Gip_Stat': spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 test_gip_stat.adb:13:09: warning: variable "GS2" is never read and never assigned expr.ads:699: note: The ABI of passing union with long double has changed in GCC 4.4 expr-arithmetic_expr.adb:1740:07: warning: variable "Local_Expr" is never read and never assigned expr-named_entity_ref.adb:299:12: warning: variable "Junk" is read but never assigned spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 expr.ads:699: note: The ABI of passing union with long double has changed in GCC 4.4 expr.ads:699: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 spgn_numerics.ads:25: note: The ABI of passing union with long double has changed in GCC 4.4 [...] -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #11 from hjl dot tools at gmail dot com 2009-02-18 14:08 --- (In reply to comment #10) > Please make sure the warning is issued only for appropriate languages (it is > not > needed in Ada for example and the wording doesn't make sense). TIA. > I believe that warning is turned on for C ObjC C++ ObjC++ only. Did you run into any problems? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #10 from ebotcazou at gcc dot gnu dot org 2009-02-18 09:51 --- Please make sure the warning is issued only for appropriate languages (it is not needed in Ada for example and the wording doesn't make sense). TIA. -- ebotcazou at gcc dot gnu dot org changed: What|Removed |Added CC||ebotcazou at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #9 from hjl dot tools at gmail dot com 2009-02-18 04:40 --- Fixed. -- hjl dot tools at gmail dot com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- 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
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #7 from mmitchel at gcc dot gnu dot org 2009-02-13 16:41 --- In that case, this isn't a high-priority bug. That doesn't mean that it can't be fixed before 4.4; that's up to the x86 maintainers. But, it shouldn't block the release. -- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #6 from hjl dot tools at gmail dot com 2009-02-13 15:51 --- I checked gcc 3.4.6. The bug is there. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #5 from mmitchel at gcc dot gnu dot org 2009-02-11 01:45 --- Is this a regression? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #4 from hjl dot tools at gmail dot com 2009-02-10 21:44 --- The updated patch is at http://gcc.gnu.org/ml/gcc-patches/2009-02/msg00477.html -- hjl dot tools at gmail dot com changed: What|Removed |Added URL|http://gcc.gnu.org/ml/gcc- |http://gcc.gnu.org/ml/gcc- |patches/2009- |patches/2009- |02/msg00259.html|02/msg00477.html http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #3 from hjl dot tools at gmail dot com 2009-02-06 14:33 --- The updated patch is at http://gcc.gnu.org/ml/gcc-patches/2009-02/msg00259.html -- hjl dot tools at gmail dot com changed: What|Removed |Added URL|http://gcc.gnu.org/ml/gcc- |http://gcc.gnu.org/ml/gcc- |patches/2009- |patches/2009- |02/msg00137.html|02/msg00259.html Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #2 from hjl dot tools at gmail dot com 2009-02-04 02:32 --- A patch is posted at http://gcc.gnu.org/ml/gcc-patches/2009-02/msg00137.html -- hjl dot tools at gmail dot com changed: What|Removed |Added CC||ubizjak at gmail dot com URL||http://gcc.gnu.org/ml/gcc- ||patches/2009- ||02/msg00137.html Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-02-04 02:32:35 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082
[Bug target/39082] union with long double doesn't follow x86-64 psABI
--- Comment #1 from Joey dot ye at intel dot com 2009-02-04 02:17 --- GCC doesn't follow x86-64 psABI on this case. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39082