diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2009-04-04 16:41:30 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2009-04-04 16:41:30 +0000 |
commit | 6f85546f7c47327ca9f4599ea4c11180df915967 (patch) | |
tree | 16a6be0b3367cd91654917ba4f032f220f8dbd6a /gcc | |
parent | c6803d43effa943273a5c6db91a4ec1d39076932 (diff) | |
download | gcc-6f85546f7c47327ca9f4599ea4c11180df915967.zip gcc-6f85546f7c47327ca9f4599ea4c11180df915967.tar.gz gcc-6f85546f7c47327ca9f4599ea4c11180df915967.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-common.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/common_align_2.f90 | 30 |
4 files changed, 41 insertions, 5 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index f629bf2..2f611ff 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +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 diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c index 92edd20..6cf9d5b 100644 --- a/gcc/fortran/trans-common.c +++ b/gcc/fortran/trans-common.c @@ -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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8289452..be66288 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +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 diff --git a/gcc/testsuite/gfortran.dg/common_align_2.f90 b/gcc/testsuite/gfortran.dg/common_align_2.f90 new file mode 100644 index 0000000..e3b70d7 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/common_align_2.f90 @@ -0,0 +1,30 @@ +! { 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 + |