This is the mail archive of the gcc-patches@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] |
The attached patch has been built and tested on i386-*-freebsd. It short circuits the dependency checking on arrays in a WHERE statement (and maybe others) when an array section is present. That is, integer :: z(4) = (/1,1,-1,-1/) where (z < 0) z(:) = 1 will lead to an ICE gfc_dep_resolver. The short circuiting causes the allocation of temporary array to hold the mask from the z < 0 conditional. Note the -fdump-tree-original code generated from the above is quite ugly in comparison to integer :: z(4) = (/1,1,-1,-1/) where (z < 0) z = 1 There may be a better way to fix this problem. Thus, the CC to Roger, who wrote gfc_dep_resolver. 2006-12-13 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/30207 * fortran/dependency.c (gfc_dep_resolver): Short circuit dependency checking with an array section. * gfortran.fortran-torture/execute/where21.f90: New test. -- Steve
Attachment:
depend.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |