diff options
author | Christian Bruel <christian.bruel@st.com> | 2015-10-16 15:52:51 +0200 |
---|---|---|
committer | Christian Bruel <chrbr@gcc.gnu.org> | 2015-10-16 15:52:51 +0200 |
commit | 63b0cb0436382abe256360ca3e83c02041b8ffe2 (patch) | |
tree | dd02fa210573226e6a7f1a92dd5a6db115002160 /gcc/function.c | |
parent | 1df7c326c72121e3f18743dadb6880a102b018ed (diff) | |
download | gcc-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.c | 3 |
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)) |