aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorChristian Bruel <christian.bruel@st.com>2015-10-16 15:52:51 +0200
committerChristian Bruel <chrbr@gcc.gnu.org>2015-10-16 15:52:51 +0200
commit63b0cb0436382abe256360ca3e83c02041b8ffe2 (patch)
treedd02fa210573226e6a7f1a92dd5a6db115002160 /gcc/function.c
parent1df7c326c72121e3f18743dadb6880a102b018ed (diff)
downloadgcc-63b0cb0436382abe256360ca3e83c02041b8ffe2.zip
gcc-63b0cb0436382abe256360ca3e83c02041b8ffe2.tar.gz
gcc-63b0cb0436382abe256360ca3e83c02041b8ffe2.tar.bz2
re PR target/67745 ([ARM] wrong alignments when __attribute__ ((optimize,target,align) is used)
2015-10-16 Christian Bruel <christian.bruel@st.com> PR target/67745 * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P. (FUNCTION_BOUNDARY_P): New macro: * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function): New hook. * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document. * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook. * gcc/target.def (TARGET_RELAYOUT_FUNCTION): Likewise. * gcc/function.c (allocate_struct_function): Call relayout_function hook. * gcc/passes.c (rest_of_decl_compilation): Likewise. From-SVN: r228912
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/function.c b/gcc/function.c
index db5bc1c..f774214 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -4840,6 +4840,9 @@ allocate_struct_function (tree fndecl, bool abstract_p)
for (tree parm = DECL_ARGUMENTS (fndecl); parm;
parm = DECL_CHAIN (parm))
relayout_decl (parm);
+
+ /* Similarly relayout the function decl. */
+ targetm.target_option.relayout_function (fndecl);
}
if (!abstract_p && aggregate_value_p (result, fndecl))