This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 10/07/2015 07:50 PM, Bernd Schmidt wrote:
On 10/07/2015 07:37 PM, Bernd Schmidt wrote:On 10/07/2015 12:45 PM, Christian Bruel wrote:On 10/07/2015 12:18 PM, Bernd Schmidt wrote:On 10/07/2015 09:04 AM, Christian Bruel wrote:+ /* 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; }Hmm, more questions are coming to mind - are other places that set DECL_ALIGN for functions redundant after this change? It looks like the main place where it's set is make_node_stat where it's also set to FUNCTION_BOUNDARY. That's small enough not to bother changing it,
Yes it is. I thought about poisoning it but make_node_stat is used for synthesized functions as well and we need to keep the default correct.
but it raises another issue: we don't allocate a struct function for mere declarations, so does that mean they can have an incorrect DECL_ALIGN?
Probably at the time of start_decl, because DECL_ALIGN will have the boundary given by the global target_flags at that time. But this shouldn't be a problem since what matters is the DECL_ALIGN recomputed with the definition when there is something to layout.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |