diff options
author | Ben Gamari <ben@smart-cactus.org> | 2016-01-03 13:25:37 +0100 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2016-01-03 16:55:39 +0100 |
commit | 0490fede24b4fc5d5d1b23e9a47899e50b14988c (patch) | |
tree | 3b7e19b6ca31c2f3ad1b5cfc7c9124b5c498d658 /rts/Linker.c | |
parent | 256c2cfc1e3690cb4b07154b3a81d89d45625685 (diff) | |
download | haskell-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.c | 4 |
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 |