summaryrefslogtreecommitdiff
path: root/libgfortran/m4/ifunction.m4
diff options
context:
space:
mode:
Diffstat (limited to 'libgfortran/m4/ifunction.m4')
-rw-r--r--libgfortran/m4/ifunction.m442
1 files changed, 6 insertions, 36 deletions
diff --git a/libgfortran/m4/ifunction.m4 b/libgfortran/m4/ifunction.m4
index 6785eb3c43f..66b1d98b1ad 100644
--- a/libgfortran/m4/ifunction.m4
+++ b/libgfortran/m4/ifunction.m4
@@ -107,19 +107,8 @@ name`'rtype_qual`_'atype_code (rtype * const restrict retarray,
(long int) rank);
if (unlikely (compile_options.bounds_check))
- {
- for (n=0; n < rank; n++)
- {
- index_type ret_extent;
-
- ret_extent = GFC_DESCRIPTOR_EXTENT(retarray,n);
- if (extent[n] != ret_extent)
- runtime_error ("Incorrect extent in return value of"
- " u_name intrinsic in dimension %ld:"
- " is %ld, should be %ld", (long int) n + 1,
- (long int) ret_extent, (long int) extent[n]);
- }
- }
+ bounds_ifunction_return ((array_t *) retarray, extent,
+ "return value", "u_name");
}
for (n = 0; n < rank; n++)
@@ -294,29 +283,10 @@ void
if (unlikely (compile_options.bounds_check))
{
- for (n=0; n < rank; n++)
- {
- index_type ret_extent;
-
- ret_extent = GFC_DESCRIPTOR_EXTENT(retarray,n);
- if (extent[n] != ret_extent)
- runtime_error ("Incorrect extent in return value of"
- " u_name intrinsic in dimension %ld:"
- " is %ld, should be %ld", (long int) n + 1,
- (long int) ret_extent, (long int) extent[n]);
- }
- for (n=0; n<= rank; n++)
- {
- index_type mask_extent, array_extent;
-
- array_extent = GFC_DESCRIPTOR_EXTENT(array,n);
- mask_extent = GFC_DESCRIPTOR_EXTENT(mask,n);
- if (array_extent != mask_extent)
- runtime_error ("Incorrect extent in MASK argument of"
- " u_name intrinsic in dimension %ld:"
- " is %ld, should be %ld", (long int) n + 1,
- (long int) mask_extent, (long int) array_extent);
- }
+ bounds_ifunction_return ((array_t *) retarray, extent,
+ "return value", "u_name");
+ bounds_equal_extents ((array_t *) mask, (array_t *) array,
+ "MASK argument", "u_name");
}
}