Thank you. I fixed the typo and committed.
On Thu, Aug 14, 2014 at 1:49 PM, Teresa Johnson <tejohn...@google.com> wrote: > On Thu, Aug 14, 2014 at 1:46 PM, Yi Yang <ahyan...@google.com> wrote: >> Patch v2. >> >> Trunk no longer set SECTION_NAME for implicit section names, so this >> probably does not apply to trunk. It's probably not necessary for >> trunk either. >> >> Tested for Google 4.8(albeit unnecessary) and 4.9 branch. >> >> diff --git gcc/bb-reorder.c gcc/bb-reorder.c >> index a1b3e65..b9a829e 100644 >> --- gcc/bb-reorder.c >> +++ gcc/bb-reorder.c >> @@ -2554,7 +2554,7 @@ gate_handle_partition_blocks (void) >> we are going to omit the reordering. */ >> && optimize_function_for_speed_p (cfun) >> && !DECL_ONE_ONLY (current_function_decl) >> - && !DECL_SECTION_NAME (current_function_decl)); >> + && !DECL_HAS_EXPLICIT_SECTION_NAME_P(current_function_decl)); >> } >> >> /* This function is the main 'entrance' for the optimization that >> diff --git gcc/tree.h gcc/tree.h >> index b656b7b..308eef8 100644 >> --- gcc/tree.h >> +++ gcc/tree.h >> @@ -2405,6 +2405,11 @@ extern void decl_value_expr_insert (tree, tree); >> #define DECL_HAS_IMPLICIT_SECTION_NAME_P(NODE) \ >> (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.implicit_section_name_p) >> >> +/* Speficy whether the section name was explicitly set with >> decl_attributes. */ > > Typo "Specify". > > Otherwise looks ok to me. > > Thanks, > Teresa > >> +#define DECL_HAS_EXPLICIT_SECTION_NAME_P(NODE) \ >> + (DECL_SECTION_NAME(NODE) != NULL_TREE \ >> + && !DECL_HAS_IMPLICIT_SECTION_NAME_P(NODE)) >> + >> extern tree decl_debug_expr_lookup (tree); >> extern void decl_debug_expr_insert (tree, tree); >> >> -- >> >> On Thu, Aug 14, 2014 at 11:25 AM, Teresa Johnson <tejohn...@google.com> >> wrote: >>> On Wed, Aug 13, 2014 at 9:03 PM, Yi Yang <ahyan...@google.com> wrote: >>>> This bug is caused by my last patch, which did not differentiate >>>> between explicit section names (via attributes) and implicit section >>>> names (via -ffunction-section). >>>> >>>> This patch fixes that. >>>> >>>> -- >>>> >>>> diff --git gcc/bb-reorder.c gcc/bb-reorder.c >>>> index 8f8c420..2115b01 100644 >>>> --- gcc/bb-reorder.c >>>> +++ gcc/bb-reorder.c >>>> @@ -2505,7 +2505,7 @@ gate_handle_partition_blocks (void) >>>> we are going to omit the reordering. */ >>>> && optimize_function_for_speed_p (cfun) >>>> && !DECL_ONE_ONLY (current_function_decl) >>>> - && !DECL_SECTION_NAME (current_function_decl)); >>>> + && !DECL_HAS_EXPLICIT_SECTION_NAME_P(current_function_decl)); >>>> } >>>> >>>> /* This function is the main 'entrance' for the optimization that >>>> diff --git gcc/tree.h gcc/tree.h >>>> index 817507f..738675a 100644 >>>> --- gcc/tree.h >>>> +++ gcc/tree.h >>>> @@ -3201,6 +3201,11 @@ struct GTY(()) tree_parm_decl { >>>> #define DECL_HAS_IMPLICIT_SECTION_NAME_P(NODE) \ >>>> (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.implicit_section_name_p) >>>> >>>> +/* Speficy whether the section name was explicitly set with >>>> decl_attributes. */ >>>> +#define DECL_HAS_EXPLICIT_SECTION_NAME_P(NODE) \ >>>> + (DECL_HAS_IMPLICIT_SECTION_NAME_P(NODE)? false: \ >>>> + !!DECL_SECTION_NAME(NODE)) >>> >>> Personally, I think it is clearer to simply write this as: >>> >>> #define DECL_HAS_EXPLICIT_SECTION_NAME_P(NODE) \ >>> (DECL_SECTION_NAME(NODE) != NULL_TREE \ >>> && !DECL_HAS_IMPLICIT_SECTION_NAME_P(NODE)) >>> >>> Teresa >>> >>>> + >>>> struct GTY(()) tree_decl_with_vis { >>>> struct tree_decl_with_rtl common; >>>> tree assembler_name; >>>> -- >>> >>> >>> >>> -- >>> Teresa Johnson | Software Engineer | tejohn...@google.com | 408-460-2413 > > > > -- > Teresa Johnson | Software Engineer | tejohn...@google.com | 408-460-2413