diff options
Diffstat (limited to 'libgfortran/generated/parity_l16.c')
-rw-r--r-- | libgfortran/generated/parity_l16.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libgfortran/generated/parity_l16.c b/libgfortran/generated/parity_l16.c index d9e0a8efcdc..8aae3038e7b 100644 --- a/libgfortran/generated/parity_l16.c +++ b/libgfortran/generated/parity_l16.c @@ -52,8 +52,15 @@ parity_l16 (gfc_array_l16 * const restrict retarray, int continue_loop; /* Make dim zero based to avoid confusion. */ - dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; + dim = (*pdim) - 1; + + if (unlikely (dim < 0 || dim > rank)) + { + runtime_error ("Dim argument incorrect in PARITY intrinsic: " + "is %ld, should be between 1 and %ld", + (long int) dim + 1, (long int) rank + 1); + } len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) |