This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/24978] ICE in gfc_assign_data_value_range
- From: "dfranke at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Dec 2007 17:40:15 -0000
- Subject: [Bug fortran/24978] ICE in gfc_assign_data_value_range
- References: <bug-24978-8649@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #12 from dfranke at gcc dot gnu dot org 2007-12-21 17:40 -------
Getting rid of the ICEs does not seem to be too difficult. Unfortunately,
internal reworking seems to be necessary to actually solve every aspect of this
PR.
I will attach two sets of testcases; a list of valid DATA-statements and a list
of invalid ones. Neither list claims to be exhaustive, however, they might be
useful for anyone going to tackle this.
Some notes:
* the invalid testcases sport at least three different ICEs, two asserts in
data.c (gfc_assign_data_value,gfc_assign_data_value_range) and one deep
down (middle-end/back-end?) in varasm.c. I assume that the latter one will
go away as soon as the splay-tree look ups are fixed for all the testcases,
no additional investigation necessary.
* DATA statements are handled in inverse ordering to their specification. For
me it helped a lot to get them in native ordering, i.e. by declaration.
* resolve.c (resolve_data_variables) states: "[...] data lists should
only be resolved once." -- they seem to be resolved twice. To be seen in
integer :: b(3)
data b(-2) / 1 /
end
where the out-of-bounds warning is printed twice.
* out-of-bounds checks need to be errors for DATA-statements
Unassigning myself.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24978