https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117820
--- Comment #6 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- With kind=4 we do treat the sign bit as part of the value. program test integer(4) :: x x = -huge(x) - 1_4 print '("-huge -1 = <",B32.32,">")', x print '(" zero = <",B32.32,">")', 0_4 print *,"-------" print '("-huge -1 = <",B32.0,">")', x print '(" zero = <",B32.0,">")', 0_4 print *,"-------" print '("-huge -1 = <",B0.0,">")', x print '(" zero = <",B0.0,">")', 0_4 end program $ ./a.out -huge -1 = <10000000000000000000000000000000> zero = <00000000000000000000000000000000> ------- -huge -1 = <10000000000000000000000000000000> zero = < > ------- -huge -1 = <10000000000000000000000000000000> zero = < > We are not being consistent.