summaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c11
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)