2015-10-07 Christian Bruel PR target/67745 * function.c (allocate_struct_function): Relayout function's alignment. Index: gcc/function.c =================================================================== --- gcc/function.c (revision 228515) +++ gcc/function.c (working copy) @@ -4840,6 +4840,12 @@ allocate_struct_function (tree fndecl, b for (tree parm = DECL_ARGUMENTS (fndecl); parm; parm = DECL_CHAIN (parm)) relayout_decl (parm); + + /* Similarly, relayout function's alignment if not forced. */ + if (!DECL_USER_ALIGN (fndecl) + && (TREE_CODE (fntype) != METHOD_TYPE + || TARGET_PTRMEMFUNC_VBIT_LOCATION != ptrmemfunc_vbit_in_pfn)) + DECL_ALIGN (fndecl) = FUNCTION_BOUNDARY; } if (!abstract_p && aggregate_value_p (result, fndecl))