This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/28722] Fortran front-end produces mismatch trees
- From: "fxcoudert at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 2 Oct 2006 15:24:35 -0000
- Subject: [Bug fortran/28722] Fortran front-end produces mismatch trees
- References: <bug-28722-6528@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from fxcoudert at gcc dot gnu dot org 2006-10-02 15:24 -------
Here's a detailed analysis of the current testsuite failures with Andrew's
patches from PR22368 (all patches applied) on i686-linux.
First testcase (from actual_array_constructor_1.f90):
subroutine bar(a)
character(len=*) :: a
call foo((/ a, 'g' /))
end
The error message issued is
actual_array_constructor_1.f90: In function ?bar?:
actual_array_constructor_1.f90:3: error: statement types mismatch
(*D.941)[S.9D.942]{lb: 0 sz: _a.8D.939} = D.946;
charD.14[1:_aD.902]
charD.14[1:1]
actual_array_constructor_1.f90:3: internal compiler error: verify_stmts failed
Second testcase:
interface
pure function double (string)
character (len = *), intent (in) :: string
character (len = len (string)) :: double
end function double
end interface
print *, f5("foo")
contains
function f5 (string)
character (len = *) :: string
character (len = len (double (string))) :: f5
f5 = ''
end function f5
end
returns (at -O1):
char_result_1.f90: In function ?MAIN__?:
char_result_1.f90:1: error: statement types mismatch
D.949_16 = stringD.939_11;
charD.14[1:3] &
charD.14[1:_stringD.907] &
char_result_1.f90:1: internal compiler error: verify_stmts failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Third testcase:
real c
if (loc(c) == 0) call abort
end
produces:
loc_2.f90: In function ?MAIN__?:
loc_2.f90:2: error: types mismatch in comparsion
<unnamed type>
int4D.2
D.903 == 0;
loc_2.f90:2: internal compiler error: verify_stmts failed
Fourth testcase:
call foo("g")
contains
subroutine foo (s)
character(*), optional :: s
if (present(s)) call abort
end subroutine
end
produces
missing_optional_dummy_1.f90: In function ?MAIN__?:
missing_optional_dummy_1.f90:1: error: types mismatch in comparsion
charD.14[1:_sD.904] *
charD.14[1:1] *
sD.913_1 != 0B;
missing_optional_dummy_1.f90:1: internal compiler error: verify_stmts failed
--
fxcoudert at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |fxcoudert at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2006-10-02 15:24:35
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28722