[Bug target/39082] union with long double doesn't follow x86-64 psABI

2009-02-18 Thread hjl dot tools at gmail dot com


--- 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

2009-02-18 Thread hjl dot tools at gmail dot com


--- 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

2009-02-18 Thread ebotcazou at gcc dot gnu dot org


--- 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

2009-02-18 Thread ebotcazou at gcc dot gnu dot org


--- 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

2009-02-18 Thread hjl dot tools at gmail dot com


--- 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

2009-02-18 Thread ebotcazou at gcc dot gnu dot org


--- 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

2009-02-17 Thread hjl dot tools at gmail dot com


--- 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

2009-02-17 Thread hjl at gcc dot gnu dot org


--- 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

2009-02-13 Thread mmitchel at gcc dot gnu dot org


--- 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

2009-02-13 Thread hjl dot tools at gmail dot com


--- 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

2009-02-10 Thread mmitchel at gcc dot gnu dot org


--- 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

2009-02-10 Thread hjl dot tools at gmail dot com


--- 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

2009-02-06 Thread hjl dot tools at gmail dot com


--- 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

2009-02-03 Thread hjl dot tools at gmail dot com


--- 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

2009-02-03 Thread Joey dot ye at intel dot com


--- 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