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

            Bug ID: 101827
           Summary: Wrong stringop-overflow warning
           Product: gcc
           Version: 10.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jellby at yahoo dot com
  Target Milestone: ---

When trying to compile OpenMolcas with gcc 10.1 and link-time optimization I
get:

../src/slapaf_util/outofplane_list.f: In function ‘outofplane_list’:            
../src/slapaf_util/outofplane_list.f:524: error: writing 1 byte into a region
of size 0 [-Werror=stringop-overflow=]
  524 |                      Lbls(3)(iE3+1:iE3+1)='('                           
      |                                                                         
../src/slapaf_util/outofplane_list.f:45:32: note: at offset 0 to object ‘lbls’
with size 40 declared here
   45 |       Character*(LENIN4) Lbls(4)                                        
      |                                ^                                        
[...]
lto1: all warnings being treated as errors                                      
lto-wrapper: fatal error: /usr/bin/gfortran returned 1 exit status              


How is "Lbls(3)(iE3+1:iE3+1)" a region of size 0? Similar constructs elsewhere
don't raise the flag. Does the compiler believe "iE3+1" is beyond the length of
the string? But then it says nothing without -flto.

Reply via email to