summaryrefslogtreecommitdiff
path: root/rts/Linker.c
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2016-01-03 13:25:37 +0100
committerBen Gamari <ben@smart-cactus.org>2016-01-03 16:55:39 +0100
commit0490fede24b4fc5d5d1b23e9a47899e50b14988c (patch)
tree3b7e19b6ca31c2f3ad1b5cfc7c9124b5c498d658 /rts/Linker.c
parent256c2cfc1e3690cb4b07154b3a81d89d45625685 (diff)
downloadhaskell-0490fede24b4fc5d5d1b23e9a47899e50b14988c.tar.gz
Linker: ARM: Ensure that cache flush covers all symbol extras
Previously part of the last symbol extra wasn't covered. Differential Revision: https://phabricator.haskell.org/D1728
Diffstat (limited to 'rts/Linker.c')
-rw-r--r--rts/Linker.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/rts/Linker.c b/rts/Linker.c
index cb90c97a22..82e00e1af2 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -2758,7 +2758,9 @@ ocFlushInstructionCache( ObjectCode *oc )
}
// Jump islands
- __clear_cache(oc->symbol_extras, &oc->symbol_extras[oc->n_symbol_extras]);
+ // Note the (+1) to ensure that the last symbol extra is covered by the
+ // flush.
+ __clear_cache(oc->symbol_extras, &oc->symbol_extras[oc->n_symbol_extras+1]);
}
#endif