ping!
2012/10/11 Janus Weil <ja...@gcc.gnu.org>: > Hi all, > > here is an OOP patch for the above PR, which has two disconnected parts: > > 1) It fixes a problem with ASSOCIATED, when it is fed a CLASS-valued > function as argument (i.e. the ICE in the bug title). This is the > trans-intrinsic part of the patch. Instead of adding the _data > component to the expr first and translating then, we now translate > first and then add the _data component. > > 2) It fixes an error with SELECT TYPE (which is a 4.8 regression), by > respecting the POINTER argument of the selector when building the > temporaries for the select type branches. This is the match.c part of > the patch, which looks much more complicated than it is, because I > merged two functions into one, which do essentially the same. I think > they were at some point split up by Paul, but I see no advantage this, > to be honest. > > Regtested on x86_64-unknown-linux-gnu. Ok for trunk? > > Cheers, > Janus > > > 2012-10-11 Janus Weil <ja...@gcc.gnu.org> > > PR fortran/54881 > * match.c (select_derived_set_tmp,select_class_set_tmp): Removed and > unified into ... > (select_type_set_tmp): ... this one. Set POINTER argument according to > selector. > * trans-intrinsic.c (gfc_conv_associated): Use 'gfc_class_data_get' > instead of 'gfc_add_data_component'. > > 2012-10-11 Janus Weil <ja...@gcc.gnu.org> > > PR fortran/54881 > * gfortran.dg/associated_6.f90: New. > * gfortran.dg/select_type_30.f03: New.