This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/54730] [4.6/4.7/4.8 Regression] ICE in gfc_typenode_for_spec, at fortran/trans-types.c:1066
- From: "mikael at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 03 Mar 2013 17:34:48 +0000
- Subject: [Bug fortran/54730] [4.6/4.7/4.8 Regression] ICE in gfc_typenode_for_spec, at fortran/trans-types.c:1066
- Auto-submitted: auto-generated
- References: <bug-54730-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54730
--- Comment #12 from Mikael Morin <mikael at gcc dot gnu.org> 2013-03-03 17:34:48 UTC ---
Author: mikael
Date: Sun Mar 3 17:34:42 2013
New Revision: 196414
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=196414
Log:
fortran/
PR fortran/54730
* gfortran.h (struct gfc_undo_change_set): New field 'previous'.
(gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
gfc_restore_last_undo_checkpoint): New prototypes.
* symbol.c (default_undo_chgset_var): Update initialization.
(single_undo_checkpoint_p, gfc_new_undo_checkpoint,
free_undo_change_set_data, pop_undo_change_set,
gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
New functions.
(save_symbol_data): Handle multiple change sets. Make sure old_symbol
field's previous value is not overwritten. Clear gfc_new field.
(restore_old_symbol): Restore previous old_symbol field.
(gfc_restore_last_undo_checkpoint): New function, using body renamed
from gfc_undo_symbols. Restore the previous change set as current one.
(gfc_undo_symbols): New body.
(gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
Call enforce_single_undo_checkpoint.
(gfc_symbol_done_2): Ditto. Free change set data.
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/symbol.c