[Bug libfortran/81985] New: several sanitizer undefined runtime errors in sanitized libgfortran

zeccav at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Aug 25 15:21:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81985

            Bug ID: 81985
           Summary: several sanitizer undefined runtime errors in
                    sanitized libgfortran
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libfortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zeccav at gmail dot com
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
             Build: trunk 251201

! test case mvbits_1.f90
! several sanitizer undefined runtime errors in sanitized libgfortran
! must be compiled and run
!../../../gcc/libgfortran/intrinsics/mvbits.c:48:30: runtime error: left shift
of negative value -1
!../../../gcc/libgfortran/intrinsics/mvbits.c:48:30: runtime error: left shift
of negative value -1
!../../../gcc/libgfortran/intrinsics/mvbits.c:46:61: runtime error: left shift
of 1 by 31 places cannot be represented in type 'int'
!../../../gcc/libgfortran/intrinsics/mvbits.c:46:50: runtime error: signed
integer overflow: -2147483648 - 1 cannot be represented in type 'int'
!../../../gcc/libgfortran/generated/pow_i4_i4.c:66:10: runtime error: signed
integer overflow: 32768 * 65536 cannot be represented in type 'int'
!../../../gcc/libgfortran/intrinsics/mvbits.c:48:30: runtime error: left shift
of negative value -1
!../../../gcc/libgfortran/generated/pow_i4_i4.c:69:8: runtime error: signed
integer overflow: 65536 * 65536 cannot be represented in type 'int'
!../../../gcc/libgfortran/intrinsics/mvbits.c:46:61: runtime error: left shift
of 1 by 63 places cannot be represented in type 'long int'
!../../../gcc/libgfortran/intrinsics/mvbits.c:46:50: runtime error: signed
integer overflow: -9223372036854775808 - 1 cannot be represented in type 'long
int'
!../../../gcc/libgfortran/generated/pow_i8_i8.c:66:10: runtime error: signed
integer overflow: 2147483648 * 4294967296 cannot be represented in type 'long
int'
!../../../gcc/libgfortran/intrinsics/mvbits.c:48:30: runtime error: left shift
of negative value -1
!../../../gcc/libgfortran/generated/pow_i8_i8.c:69:8: runtime error: signed
integer overflow: 4294967296 * 4294967296 cannot be represented in type 'long
int'
implicit none
integer(1) i1,j1
integer(2) i2,j2
integer(4) i4,j4
integer(8) i8,j8
integer ibits,n

ibits=bit_size(1_1)
do n=1,ibits
   i1=-1
   call mvbits(1_1, 0,n,i1,0)
   j1=-1-2_1**n+2
   if(i1.ne.j1)call abort
enddo
ibits=bit_size(1_2)
do n=1,ibits
   i2=-1
   call mvbits(1_2, 0,n,i2,0)
   j2=-1-2_2**n+2
   if(i2.ne.j2)call abort
enddo
ibits=bit_size(1_4)
do n=1,ibits
   i4=-1
   call mvbits(1_4, 0,n,i4,0)
   j4=-1-2_4**n+2
   if(i4.ne.j4)call abort
enddo
ibits=bit_size(1_8)
do n=1,ibits
   i8=-1
   call mvbits(1_8, 0,n,i8,0)
   j8=-1-2_8**n+2
   if(i8.ne.j8)call abort
enddo
end


More information about the Gcc-bugs mailing list