aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/array.c
diff options
context:
space:
mode:
authorDamian Rouson <damian@sourceryinstitute.org>2018-01-26 20:14:09 +0000
committerAlessandro Fanfarillo <afanfa@gcc.gnu.org>2018-01-26 13:14:09 -0700
commitf8862a1b2afad9d107ad505de2bf554705ebdb38 (patch)
tree77fadaa9edcf35dc620e4fc70fd49c750295acd5 /gcc/fortran/array.c
parentdeece1aa0135de487e7846025efbc8f6cd79ffe2 (diff)
downloadgcc-f8862a1b2afad9d107ad505de2bf554705ebdb38.zip
gcc-f8862a1b2afad9d107ad505de2bf554705ebdb38.tar.gz
gcc-f8862a1b2afad9d107ad505de2bf554705ebdb38.tar.bz2
Partial Failed Images patch
Co-Authored-By: Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> Co-Authored-By: Soren Rasmussen <s.c.rasmussen@gmail.com> From-SVN: r257105
Diffstat (limited to 'gcc/fortran/array.c')
-rw-r--r--gcc/fortran/array.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/gcc/fortran/array.c b/gcc/fortran/array.c
index caa0b7f..22a5ddc 100644
--- a/gcc/fortran/array.c
+++ b/gcc/fortran/array.c
@@ -158,6 +158,7 @@ gfc_match_array_ref (gfc_array_ref *ar, gfc_array_spec *as, int init,
bool matched_bracket = false;
gfc_expr *tmp;
bool stat_just_seen = false;
+ bool team_just_seen = false;
memset (ar, '\0', sizeof (*ar));
@@ -235,8 +236,21 @@ coarray:
if (m == MATCH_ERROR)
return MATCH_ERROR;
+ team_just_seen = false;
stat_just_seen = false;
- if (gfc_match(" , stat = %e",&tmp) == MATCH_YES && ar->stat == NULL)
+ if (gfc_match (" , team = %e", &tmp) == MATCH_YES && ar->team == NULL)
+ {
+ ar->team = tmp;
+ team_just_seen = true;
+ }
+
+ if (ar->team && !team_just_seen)
+ {
+ gfc_error ("TEAM= attribute in %C misplaced");
+ return MATCH_ERROR;
+ }
+
+ if (gfc_match (" , stat = %e",&tmp) == MATCH_YES && ar->stat == NULL)
{
ar->stat = tmp;
stat_just_seen = true;