On 05/02/14 11:15, Pedro F. Giffuni wrote:
Author: pfg
Date: Fri May  2 16:15:34 2014
New Revision: 265231
URL: http://svnweb.freebsd.org/changeset/base/265231

Log:
   gcc: fix strict alignment.
From the OpenBSD log: x86-64 ABI requires arrays greater than 16 bytes to be aligned to
   16byte boundary.  However, GCC 16-byte aligns arrays of >=16 BITS,
   not BYTES.
This diff improves bug detectability for code which has local arrays
   of [16 .. 127] bits:  in those cases SSP will now detect even 1-byte
   overflows.
Obtained from: OpenBSD (CVS rev 1.4)
   MFC after:   1 week

I only plan to merge this to 10/stable since I am not really using 9/stable
and I don't like running "risks" before a release.

The fix looks interesting though so feel free to try to convince me
if you have tested it :).

Pedro.
Modified:
   head/contrib/gcc/config/i386/i386.c

Modified: head/contrib/gcc/config/i386/i386.c
==============================================================================
--- head/contrib/gcc/config/i386/i386.c Fri May  2 15:52:50 2014        
(r265230)
+++ head/contrib/gcc/config/i386/i386.c Fri May  2 16:15:34 2014        
(r265231)
@@ -14408,7 +14408,7 @@ ix86_local_alignment (tree type, int ali
        if (AGGREGATE_TYPE_P (type)
           && TYPE_SIZE (type)
           && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
-          && (TREE_INT_CST_LOW (TYPE_SIZE (type)) >= 16
+          && (TREE_INT_CST_LOW (TYPE_SIZE (type)) >= 128
               || TREE_INT_CST_HIGH (TYPE_SIZE (type))) && align < 128)
        return 128;
      }


_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to