------- 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