diff options
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r-- | gcc/varasm.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index 34890b338..dcd0f8d56 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -104,6 +104,11 @@ static alias_set_type const_alias_set; static bool saw_no_split_stack; + +#ifdef TARGET_ASSEMBLY_GOT_ENTRIES +extern int flag_got_established_section; +#endif + static const char *strip_reg_name (const char *); static int contains_pointers_p (tree); #ifdef ASM_OUTPUT_EXTERNAL @@ -7042,7 +7047,13 @@ output_section_asm_op (const void *directive) void switch_to_section (section *new_section) { +#ifdef TARGET_ASSEMBLY_GOT_ENTRIES + if (flag_got_established_section) + flag_got_established_section = 0; + else if (in_section == new_section) +#else if (in_section == new_section) +#endif return; if (new_section->common.flags & SECTION_FORGET) |