From 2f0ef2c69e99e1096a2a72c7a29025a736b044b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= Date: Mon, 2 Jul 2018 23:37:25 +0200 Subject: [PATCH] Fix gcc segfault. --- src/share/vm/opto/output.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/share/vm/opto/output.cpp b/src/share/vm/opto/output.cpp index d46cb87..0eb9eda 100644 --- a/src/share/vm/opto/output.cpp +++ b/src/share/vm/opto/output.cpp @@ -1787,6 +1787,8 @@ uint Scheduling::_total_instructions_per_bundle[Pipeline::_max_instrs_per_cycle+ // Initializer for class Scheduling +volatile const void *eePointer = Pipeline_Use::elaborated_elements; + Scheduling::Scheduling(Arena *arena, Compile &compile) : _arena(arena), _cfg(compile.cfg()), @@ -1829,7 +1831,7 @@ Scheduling::Scheduling(Arena *arena, Compile &compile) memset(_current_latency, 0, node_max * sizeof(unsigned short)); // Clear the bundling information - memcpy(_bundle_use_elements, Pipeline_Use::elaborated_elements, sizeof(Pipeline_Use::elaborated_elements)); + memcpy(_bundle_use_elements, (void *)eePointer, 11*sizeof(Pipeline_Use_Element)); // Get the last node Block* block = _cfg->get_block(_cfg->number_of_blocks() - 1); @@ -1880,8 +1882,8 @@ void Scheduling::step_and_clear() { _bundle_use.reset(); memcpy(_bundle_use_elements, - Pipeline_Use::elaborated_elements, - sizeof(Pipeline_Use::elaborated_elements)); + (void *)eePointer, + 11*sizeof(Pipeline_Use_Element)); } // Perform instruction scheduling and bundling over the sequence of -- 2.18.0