https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90536
Thomas Koenig <tkoenig at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2019-05-19 CC| |tkoenig at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- With your test case, I get $ gfortran a.f90 a.f90:32:24: 32 | byte b2 / '89'X/ | 1 Error: Arithmetic overflow converting INTEGER(16) to INTEGER(1) at (1). This check can be disabled with the option '-fno-range-check' $ gfortran a.f90 a.f90:32:24: 32 | byte b2 / '89'X/ | 1 Error: Arithmetic overflow converting INTEGER(16) to INTEGER(1) at (1). This check can be disabled with the option '-fno-range-check' $ gfortran -fno-range-check a.f90 $ gfortran -Wall -fno-range-check a.f90 a.f90:32:24: 32 | byte b2 / '89'X/ | 1 Warning: Conversion from 'INTEGER(16)' to 'INTEGER(1)' at (1) [-Wconversion] a.f90:34:13: 34 | b1 = 6 | 1 Warning: Conversion from 'INTEGER(4)' to 'INTEGER(1)' at (1) [-Wconversion] a.f90:35:13: 35 | b2 = 7 | 1 Warning: Conversion from 'INTEGER(4)' to 'INTEGER(1)' at (1) [-Wconversion] $ gfortran -Wall -Wno-conversion -fno-range-check a.f90 $ so the compiler tells you which option causes the warning. Following general gcc conventions, -Wno-conversion can turn this warning off. Having said that, the fact that "b1 = 6" triggers a warning when -fno-range-check is in effect is certainly unintentional. Let's see.