On 03/09/2017 08:28 PM, David Malcolm wrote:
The root cause is an out-of-bounds memory write in the RTL dump
reader when handling SYMBOL_REFs with SYMBOL_FLAG_HAS_BLOCK_INFO set.

Such SYMBOL_REFs are normally created by varasm.c:create_block_symbol,
which has:

Hmm, I don't actually recall seeing this stuff. It's for section anchors apparently.

OK for trunk in stage 4?

gcc/ChangeLog:
        PR bootstrap/79952
        * read-rtl-function.c (function_reader::read_rtx_operand): Update
        x with result of extra_parsing_for_operand_code_0.
        (function_reader::extra_parsing_for_operand_code_0): Convert
        return type from void to rtx, returning x.  When reading
        SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
        larger size containing struct block_symbol.

Looks OK for now, but longer term I think we should make it possible to reconstruct this data.


Bernd

Reply via email to