Daniel,
I've made a start on this but its going to take a while:-)
I applied the patch - one failure has creapt into decl.c because of
the use of XCNEW instead of getmem at
***************
*** 6626,6632 ****
gcc_assert (gfc_current_block ()->f2k_derived);
++sym->refs;
f = gfc_getmem (sizeof (gfc_finalizer));
- f->procedure = sym;
f->where = gfc_current_locus;
f->next = gfc_current_block ()->f2k_derived->finalizers;
gfc_current_block ()->f2k_derived->finalizers = f;
--- 6627,6634 ----
gcc_assert (gfc_current_block ()->f2k_derived);
++sym->refs;
f = gfc_getmem (sizeof (gfc_finalizer));
+ f->proc_sym = sym;
+ f->proc_tree = NULL;
f->where = gfc_current_locus;
f->next = gfc_current_block ()->f2k_derived->finalizers;
gfc_current_block ()->f2k_derived->finalizers = f;
It helps reviewers a lot to provide a contextual diff, say "svn diff
-x -cp", which is one of the reasons that I applied the patch.