------- Comment #1 from jv244 at cam dot ac dot uk 2009-08-24 19:06 ------- No obvious wrong line numbers in the '-fdump-tree-original-lineno' output for the module:
s1 (integer(kind=4)[0:D.1561] * restrict a, integer(kind=4) & restrict n) { integer(kind=8) ubound.0; integer(kind=8) ubound.1; integer(kind=8) stride.2; integer(kind=8) ubound.3; integer(kind=8) stride.4; integer(kind=8) ubound.5; integer(kind=8) stride.6; integer(kind=8) offset.7; integer(kind=8) size.8; integer(kind=8) D.1561; bit_size_type D.1562; <unnamed-unsigned:64> D.1563; ubound.0 = (integer(kind=8)) [bugs.f90 : 4] *n; stride.2 = NON_LVALUE_EXPR <ubound.0>; stride.2 = MAX_EXPR <stride.2, 0>; ubound.1 = (integer(kind=8)) [bugs.f90 : 4] *n; stride.4 = stride.2 * NON_LVALUE_EXPR <ubound.1>; stride.4 = MAX_EXPR <stride.4, 0>; ubound.3 = (integer(kind=8)) [bugs.f90 : 4] *n; stride.6 = stride.4 * NON_LVALUE_EXPR <ubound.3>; stride.6 = MAX_EXPR <stride.6, 0>; ubound.5 = (integer(kind=8)) [bugs.f90 : 4] *n; size.8 = stride.6 * NON_LVALUE_EXPR <ubound.5>; size.8 = MAX_EXPR <size.8, 0>; D.1561 = size.8 + -1; D.1562 = (bit_size_type) size.8 * 32; D.1563 = (<unnamed-unsigned:64>) size.8 * 4; offset.7 = (~NON_LVALUE_EXPR <stride.2> - NON_LVALUE_EXPR <stride.4>) - NON_LVALUE_EXPR <stride.6>; [bugs.f90 : 7] (*a)[(((NON_LVALUE_EXPR <stride.2> + 1) + NON_LVALUE_EXPR <stride.4>) + NON_LVALUE_EXPR <stride.6>) + offset.7] = 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40823