This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/24978] ICE in gfc_assign_data_value_range



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]