[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#10164: 24.0.91; Instant crash enabling linum-mode
From: |
Dan Nicolaescu |
Subject: |
bug#10164: 24.0.91; Instant crash enabling linum-mode |
Date: |
Wed, 30 Nov 2011 07:52:40 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) |
Eli Zaretskii <eliz@gnu.org> writes:
>> Date: Tue, 29 Nov 2011 19:05:20 -0700
>> From: Tim Crews <tim.crews@code-affinity.com>
>>
>> Start Emacs with runemacs -Q --no-init-file
>> C-x C-f foo.txt
>> M-x linum-mode
>> (Emacs doesn't crash yet)
>> Type anything. Emacs instantly crashes.
>
> Arrgh! This is GCC 4.6.x "as-is" code reordering in action. Emacs
> crashes here:
>
> xassert (!row->enabled_p
> || row->mode_line_p
> || verify_row_hash (row));
>
> Evidently, it calls verify_row_hash before it tests row->mode_line_p.
Are you sure? Without interprocedural analysis the compiler cannot know
that `verify_row_hash' does not alter row->enabled_p, so it cannot
change the evaluation order.
BTW, the argument for row_hash should be const.
bug#10164: 24.0.91; Instant crash enabling linum-mode, Eli Zaretskii, 2011/11/30