Commit 6f85546f by Paul Thomas

re PR fortran/37614 (Change position of padding for aligned COMMONs)

2009-04-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37614
	* trans-common.c (translate_common): Do not offset the whole
	coomon block.

2009-04-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37614
	* gfortran.dg/common_align_2.f90: New test.

From-SVN: r145541
parent c6803d43
2009-04-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/37614
* trans-common.c (translate_common): Do not offset the whole
coomon block.
2009-04-03 Tobias Burnus <burnus@net-b.de>
PR fortran/39594
......
......@@ -1124,11 +1124,6 @@ translate_common (gfc_common_head *common, gfc_symbol *var_list)
s->sym->name, &common->where);
}
}
else
{
/* Offset the whole common block. */
apply_segment_offset (common_segment, offset);
}
/* Apply the offset to the new segments. */
apply_segment_offset (current_segment, offset);
......
2009-04-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/37614
* gfortran.dg/common_align_2.f90: New test.
2009-04-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/8781
......
! { dg-do run }
! Tests the fix for PR37614, in which the alignement of commons followed
! g77 rather than the standard or other compilers.
!
! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
!
subroutine foo (z)
real(8) x, y, z
common i(8)
equivalence (x, i(3)),(y,i(7))
if ((i(1) .ne. 42) .or. (i(5) .ne. 43)) call abort
if ((i(2) .ne. 0) .or. (i(2) .ne. 0)) call abort
if ((x .ne. z) .or. (y .ne. z)) call abort
end subroutine
subroutine bar
common i(8)
i = 0
end subroutine
real(8) x, y
common i, x, j, y ! { dg-warning "Padding" }
call bar
i = 42
j = 43
x = atan (1.0)*4.0
y = x
call foo (x)
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment