aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@gcc.gnu.org>2014-06-19 09:16:34 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2014-06-19 09:16:34 +0200
commit7f6c4159bf807be2450ea3952ecb6ed7ea8e33d0 (patch)
treed7a03ca2513c1c3ab47867b5d0d5cf274a580a17 /gcc
parent29d0a43c96c6c9671c0fe8a05b8cfb2791d5d5cd (diff)
downloadgcc-7f6c4159bf807be2450ea3952ecb6ed7ea8e33d0.zip
gcc-7f6c4159bf807be2450ea3952ecb6ed7ea8e33d0.tar.gz
gcc-7f6c4159bf807be2450ea3952ecb6ed7ea8e33d0.tar.bz2
trans-intrinsic.c (conv_co_minmaxsum): Fix argument passing.
gcc/fortran/ 2014-06-19 Tobias Burnus <burnus@net-b.de> * trans-intrinsic.c (conv_co_minmaxsum): Fix argument passing. gcc/testsuite/ 2014-06-19 Tobias Burnus <burnus@net-b.de> * gfortran.dg/coarray/collectives_2.f90: Extend and make valid. libgfortran/ 2014-06-19 Tobias Burnus <burnus@net-b.de> * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max, _gfortran_caf_co_min): Fix stat setting. From-SVN: r211816
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/trans-intrinsic.c10
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gfortran.dg/coarray/collectives_2.f9029
4 files changed, 38 insertions, 13 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 7b21c6e..903e9ab 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2014-06-19 Tobias Burnus <burnus@net-b.de>
+
+ * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
+ passing.
+
2014-06-18 Tobias Burnus <burnus@net-b.de>
* gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index 52a2788..548fd9f 100644
--- a/gcc/fortran/trans-intrinsic.c
+++ b/gcc/fortran/trans-intrinsic.c
@@ -8300,13 +8300,11 @@ conv_co_minmaxsum (gfc_code *code)
gcc_unreachable ();
if (code->resolved_isym->id == GFC_ISYM_CO_SUM)
- fndecl = build_call_expr_loc (input_location, fndecl, 6, array,
- null_pointer_node, image_index, stat, errmsg,
- errmsg_len);
+ fndecl = build_call_expr_loc (input_location, fndecl, 5, array,
+ image_index, stat, errmsg, errmsg_len);
else
- fndecl = build_call_expr_loc (input_location, fndecl, 7, array,
- null_pointer_node, image_index, stat, errmsg,
- strlen, errmsg_len);
+ fndecl = build_call_expr_loc (input_location, fndecl, 6, array, image_index,
+ stat, errmsg, strlen, errmsg_len);
gfc_add_expr_to_block (&block, fndecl);
gfc_add_block_to_block (&block, &post_block);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8a14203..2d04521 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,9 +1,14 @@
+2014-06-19 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.dg/coarray/collectives_2.f90: Extend
+ and make valid.
+
2014-06-18 Tom de Vries <tom@codesourcery.com>
* gcc.target/aarch64/fuse-caller-save.c: New test.
2014-06-18 Radovan Obradovic <robradovic@mips.com>
- Tom de Vries <tom@codesourcery.com>
+ Tom de Vries <tom@codesourcery.com>
* gcc.target/arm/fuse-caller-save.c: New test.
diff --git a/gcc/testsuite/gfortran.dg/coarray/collectives_2.f90 b/gcc/testsuite/gfortran.dg/coarray/collectives_2.f90
index a2f5939..3ff9383 100644
--- a/gcc/testsuite/gfortran.dg/coarray/collectives_2.f90
+++ b/gcc/testsuite/gfortran.dg/coarray/collectives_2.f90
@@ -7,7 +7,7 @@ program test
intrinsic co_max
intrinsic co_min
intrinsic co_sum
- integer :: val(3)
+ integer :: val(3), tmp_val(3)
integer :: vec(3)
vec = [2,3,1]
if (this_image() == 1) then
@@ -21,13 +21,24 @@ program test
else
val(3) = 101
endif
+ tmp_val = val
call test_min
+ val = tmp_val
call test_max
+ val = tmp_val
call test_sum
contains
subroutine test_max
- call co_max (val(vec))
- !write(*,*) "Maximal value", val
+ integer :: tmp
+ call co_max (val(::2))
+ if (num_images() > 1) then
+ if (any (val /= [42, this_image(), 101])) call abort()
+ else
+ if (any (val /= [42, this_image(), -55])) call abort()
+ endif
+
+ val = tmp_val
+ call co_max (val(:))
if (num_images() > 1) then
if (any (val /= [42, num_images(), 101])) call abort()
else
@@ -40,20 +51,26 @@ contains
if (this_image() == num_images()) then
!write(*,*) "Minimal value", val
if (num_images() > 1) then
- if (any (val /= [-99, num_images(), -55])) call abort()
+ if (any (val /= [-99, 1, -55])) call abort()
else
- if (any (val /= [42, num_images(), -55])) call abort()
+ if (any (val /= [42, 1, -55])) call abort()
endif
+ else
+ if (any (val /= tmp_val)) call abort()
endif
end subroutine test_min
subroutine test_sum
integer :: n
- call co_sum (val, result_image=1)
+ n = 88
+ call co_sum (val, result_image=1, stat=n)
+ if (n /= 0) call abort()
if (this_image() == 1) then
n = num_images()
!write(*,*) "The sum is ", val
if (any (val /= [42 + (n-1)*(-99), (n**2 + n)/2, -55+(n-1)*101])) call abort()
+ else
+ if (any (val /= tmp_val)) call abort()
end if
end subroutine test_sum
end program test