http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58003

            Bug ID: 58003
           Summary: internal compiler error: in convert_mpz_to_unsigned,
                    at fortran/simplify.c:165
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: cngilbreth at gmail dot com

The following program triggers an internal compiler error when compiled with
-fno-range-check:

program test
  use iso_fortran_env
  implicit none

  integer, parameter :: wt = int32

  write (*,'(a)') "Testing popcnt ..."
  if (bit_size(1_wt) >= 64) then
     write (*,*) popcnt(int(z'0F00F00080000001',wt)) == 10
  end if
  if (bit_size(1_wt) >= 32) then
     write (*,*) popcnt(int(z'800F0001',wt)) == 6
  end if

end program test


(Is this valid Fortran?)


$ gfortran -fno-range-check test.f90
f951: internal compiler error: in convert_mpz_to_unsigned, at
fortran/simplify.c:165

f951: internal compiler error: Abort trap: 6
gfortran: internal compiler error: Abort trap: 6 (program f951)
Abort trap: 6


$ gfortran --version
GNU Fortran (GCC) 4.8.0
Copyright (C) 2013 Free Software Foundation, Inc.

Reply via email to