On Wed, Mar 27, 2019 at 10:35:33PM +0100, Janus Weil wrote: > > the attached patch implements some missing constraints from Fortran > 2008 concerning procedure pointer initialization (cf. the standard > quote in comment #18), thus fixing two accepts-invalid and > ICE-on-invalid problems. > > It regtests cleanly on x86_64-linux-gnu. Ok for trunk?
Looks OK to me. Just minor comment. If there are numbered constraints in either F2008 or F2018 for each of the if() conditionals, can you add a comment. Perhaps, something like. /* F2008:C1089. */ > + if (attr.proc == PROC_INTERNAL) > + { > + gfc_error ("Internal procedure %qs is invalid in " > + "procedure pointer initialization at %L", > + rvalue->symtree->name, &rvalue->where); > + return false; > + } /* F2008:C1142. */ > + if (attr.dummy) > + { > + gfc_error ("Dummy procedure %qs is invalid in " > + "procedure pointer initialization at %L", > + rvalue->symtree->name, &rvalue->where); > + return false; > + } > } -- Steve 20170425 https://www.youtube.com/watch?v=VWUpyCsUKR4 20161221 https://www.youtube.com/watch?v=IbCHE-hONow