------- Comment #2 from kargl at gcc dot gnu dot org 2005-11-14 17:25 ------- Gfortran is doing the right thing with respect to a BOZ-literal-constant (other than a BOZ can only be used in a DATA statement per the F95 standard, so the code is invalid).
If you look at the definition of BOZ in the standard, you'll find that a BOZ is converted to an integer of the largest available kind. In this case, it appears that integer(8) is the largest kind, so it's converted to that type and kind. The program assigns this integer(8) value to an integer(4), which explains the (int8) cast in the if statement. -- kargl at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kargl at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24828