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

Reply via email to