summaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2015-11-25 08:23:47 -0500
committermidipix <writeonce@midipix.org>2015-11-25 08:23:47 -0500
commit53d53a0ccce9d64620df27dbec3aa58eb09d7f79 (patch)
treec08dc394e2df656b7a895dfe4e76ffab111dc76c /gcc/varasm.c
parent03eb6861cfd16615fa181ec278443c7fbde8f513 (diff)
downloadcbb-gcc-4.6.4-53d53a0ccce9d64620df27dbec3aa58eb09d7f79.tar.bz2
cbb-gcc-4.6.4-53d53a0ccce9d64620df27dbec3aa58eb09d7f79.tar.xz
midipix targets: GOT entries: account for a re-established section directive.
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
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)