This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/29892] New: substring out of bounds: Missing variable name for variables with parameter attribute
- From: "burnus at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 19 Nov 2006 11:53:40 -0000
- Subject: [Bug fortran/29892] New: substring out of bounds: Missing variable name for variables with parameter attribute
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
see also: http://gcc.gnu.org/ml/fortran/2006-11/msg00511.html
With -fbounds-check, an error message is shown if the character substrings
exceed the size of the variable. This error message contains also the name of
the variable, but this piece of information is not always passed to
gfc_conv_substring.
There are two places where gfc_conv_substring is called:
a) In gfc_conv_variable
b) In gfc_conv_substring_expr, here the name is always unknown.
I checked it against the regression test suite. The result:
First case, gfc_conv_variable: None found.
Secondly, gfc_conv_substring_expr (tested by adding the following to
gfc_conv_substring_expr:
printf("ERROR: gfc_conv_substring_expr: NO NAME"
"(in file '%s', at line %d)\n", expr->where.lb->file->filename,
expr->where.lb->linenum); ):
Several matches of this kind:
- gfortran.dg/char_cshift_1.f90
a(i1, i2, i3) = 'ab'(i1:i1) // 'cde'(i2:i2) // 'fghi'(i3:i3)
=> Unsolvable as no name exists
Solvable case: gfortran.dg/pr29067.f:
character(len=16),parameter :: s = "", s2 = "1234567890123456"
print *, s(9:16)
print *, s2(9:16)
The problem is that s and s2 have the parameter type
--
Summary: substring out of bounds: Missing variable name for
variables with parameter attribute
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: diagnostic
Severity: enhancement
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29892