]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/39224 (ABI attribute doesn't work with long double)
authorH.J. Lu <hongjiu.lu@intel.com>
Wed, 18 Feb 2009 21:40:08 +0000 (21:40 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Wed, 18 Feb 2009 21:40:08 +0000 (13:40 -0800)
2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>

PR target/39224
* config/i386/i386.c (ix86_return_in_memory): Properly check
ABI.

From-SVN: r144272

gcc/ChangeLog
gcc/config/i386/i386.c

index 8f44f45a292a25065f204fc96fba47aa13b4f039..b6b912439bc7887cd5625f9ae637429c8400ebfa 100644 (file)
@@ -1,3 +1,9 @@
+2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/39224
+       * config/i386/i386.c (ix86_return_in_memory): Properly check
+       ABI.
+
 2009-02-18  Jason Merrill  <jason@redhat.com>
 
        PR target/39179
index da36f17671a7fd5c8f97c38e3b316b01507ecde2..e41f501c35ac90ce6993e032a8057ca3a434cd62 100644 (file)
@@ -6211,10 +6211,13 @@ ix86_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
 #else
   const enum machine_mode mode = type_natural_mode (type, NULL);
  
-  if (TARGET_64BIT_MS_ABI)
-    return return_in_memory_ms_64 (type, mode);
-  else if (TARGET_64BIT)
-    return return_in_memory_64 (type, mode);
+  if (TARGET_64BIT)
+    {
+      if (ix86_function_type_abi (fntype) == MS_ABI)
+       return return_in_memory_ms_64 (type, mode);
+      else
+       return return_in_memory_64 (type, mode);
+    }
   else
     return return_in_memory_32 (type, mode);
 #endif