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.