comparison gcc/fortran/dependency.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 /* Dependency analysis 1 /* Dependency analysis
2 Copyright (C) 2000-2017 Free Software Foundation, Inc. 2 Copyright (C) 2000-2018 Free Software Foundation, Inc.
3 Contributed by Paul Brook <paul@nowt.org> 3 Contributed by Paul Brook <paul@nowt.org>
4 4
5 This file is part of GCC. 5 This file is part of GCC.
6 6
7 GCC is free software; you can redistribute it and/or modify it under 7 GCC is free software; you can redistribute it and/or modify it under
238 return -2; 238 return -2;
239 239
240 /* Special case: String arguments which compare equal can have 240 /* Special case: String arguments which compare equal can have
241 different lengths, which makes them different in calls to 241 different lengths, which makes them different in calls to
242 procedures. */ 242 procedures. */
243 243
244 if (e1->expr_type == EXPR_CONSTANT 244 if (e1->expr_type == EXPR_CONSTANT
245 && e1->ts.type == BT_CHARACTER 245 && e1->ts.type == BT_CHARACTER
246 && e2->expr_type == EXPR_CONSTANT 246 && e2->expr_type == EXPR_CONSTANT
247 && e2->ts.type == BT_CHARACTER 247 && e2->ts.type == BT_CHARACTER
248 && e1->value.character.length != e2->value.character.length) 248 && e1->value.character.length != e2->value.character.length)
1429 r_start = r_ar->start[n]; 1429 r_start = r_ar->start[n];
1430 r_end = r_ar->end[n]; 1430 r_end = r_ar->end[n];
1431 r_stride = r_ar->stride[n]; 1431 r_stride = r_ar->stride[n];
1432 1432
1433 /* If l_start is NULL take it from array specifier. */ 1433 /* If l_start is NULL take it from array specifier. */
1434 if (NULL == l_start && IS_ARRAY_EXPLICIT (l_ar->as)) 1434 if (l_start == NULL && IS_ARRAY_EXPLICIT (l_ar->as))
1435 l_start = l_ar->as->lower[n]; 1435 l_start = l_ar->as->lower[n];
1436 /* If l_end is NULL take it from array specifier. */ 1436 /* If l_end is NULL take it from array specifier. */
1437 if (NULL == l_end && IS_ARRAY_EXPLICIT (l_ar->as)) 1437 if (l_end == NULL && IS_ARRAY_EXPLICIT (l_ar->as))
1438 l_end = l_ar->as->upper[n]; 1438 l_end = l_ar->as->upper[n];
1439 1439
1440 /* If r_start is NULL take it from array specifier. */ 1440 /* If r_start is NULL take it from array specifier. */
1441 if (NULL == r_start && IS_ARRAY_EXPLICIT (r_ar->as)) 1441 if (r_start == NULL && IS_ARRAY_EXPLICIT (r_ar->as))
1442 r_start = r_ar->as->lower[n]; 1442 r_start = r_ar->as->lower[n];
1443 /* If r_end is NULL take it from array specifier. */ 1443 /* If r_end is NULL take it from array specifier. */
1444 if (NULL == r_end && IS_ARRAY_EXPLICIT (r_ar->as)) 1444 if (r_end == NULL && IS_ARRAY_EXPLICIT (r_ar->as))
1445 r_end = r_ar->as->upper[n]; 1445 r_end = r_ar->as->upper[n];
1446 1446
1447 /* Determine whether the l_stride is positive or negative. */ 1447 /* Determine whether the l_stride is positive or negative. */
1448 if (!l_stride) 1448 if (!l_stride)
1449 l_dir = 1; 1449 l_dir = 1;
1905 } 1905 }
1906 1906
1907 /* Determine if an array ref, usually an array section specifies the 1907 /* Determine if an array ref, usually an array section specifies the
1908 entire array. In addition, if the second, pointer argument is 1908 entire array. In addition, if the second, pointer argument is
1909 provided, the function will return true if the reference is 1909 provided, the function will return true if the reference is
1910 contiguous; eg. (:, 1) gives true but (1,:) gives false. 1910 contiguous; eg. (:, 1) gives true but (1,:) gives false.
1911 If one of the bounds depends on a dummy variable which is 1911 If one of the bounds depends on a dummy variable which is
1912 not INTENT(IN), also return false, because the user may 1912 not INTENT(IN), also return false, because the user may
1913 have changed the variable. */ 1913 have changed the variable. */
1914 1914
1915 bool 1915 bool