http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46982
Harald Anlauf <anlauf at gmx dot de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |anlauf at gmx dot de --- Comment #3 from Harald Anlauf <anlauf at gmx dot de> --- (In reply to Dominique d'Humieres from comment #2) > Still present at revision 200321. Is the test in comment #0 valid or not? Probably a case where the standard is not intuitive: size(transfer(something_type(),(/0/))) is a constant expression, but size(transfer(something,(/0/))) apparently is not, simply because "something" is not constant. IMO it also appears not to qualify as a specification expression. Replacing type(something_type),save :: something by type(something_type),parameter :: something = something_type() would change something into a constant and make the code compile. So I think that the code in comment #0 is not legal.