http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56726



H.J. Lu <hjl.tools at gmail dot com> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

                 CC|                            |hjl.tools at gmail dot com



--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> 2013-03-25 20:04:44 
UTC ---

(In reply to comment #0)

> Observed malloc alignment for the i386 ABI is double POINTER_SIZE. 

> BITS_PER_WORD, the current default, is usually too small.  (It's right only on

> X32.)

> 

> Proposed patch:

> 

> --- gcc/config/i386/i386.h      (revision 197055)

> +++ gcc/config/i386/i386.h      (working copy)

> @@ -815,6 +815,14 @@

>     x86_field_alignment (FIELD, COMPUTED)

>  #endif

> 

> +/* The maximum alignment 'malloc' honors.

> +

> +   This value is taken from glibc documentation for memalign().  It may

> +   be up to double the very conservative GCC default.  This should be safe,

> +   since even the GCC 4.8 default of BIGGEST_ALIGNMENT usually worked.  */

> +

> +#define MALLOC_ABI_ALIGNMENT (POINTER_SIZE * 2)

> +



This isn't correct for x32, whose pointer size is 4 bytes with malloc

aligned to 16 bytes.

Reply via email to