re PR fortran/83224 (creating character array from elements shorter than declared does not pad with whitespace properly and aborts)
2017-12-01 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83224 * frontend-passes.c (realloc_string_callback): Handle case for which the RHS is an array expression. 2017-12-01 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83224 * gfortran.dg/dependency_50.f90: New test. From-SVN: r255294
This commit is contained in:
parent
663c725aa2
commit
852f7e6f4a
@ -1,3 +1,9 @@
|
||||
2017-12-01 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/83224
|
||||
* frontend-passes.c (realloc_string_callback): Handle
|
||||
case for which the RHS is an array expression.
|
||||
|
||||
2017-11-28 Janne Blomqvist <jb@gcc.gnu.org>
|
||||
|
||||
PR fortran/53796
|
||||
|
@ -249,7 +249,7 @@ realloc_string_callback (gfc_code **c, int *walk_subtrees ATTRIBUTE_UNUSED,
|
||||
return 0;
|
||||
|
||||
expr1 = co->expr1;
|
||||
if (expr1->ts.type != BT_CHARACTER || expr1->rank != 0
|
||||
if (expr1->ts.type != BT_CHARACTER
|
||||
|| !gfc_expr_attr(expr1).allocatable
|
||||
|| !expr1->ts.deferred)
|
||||
return 0;
|
||||
@ -270,8 +270,9 @@ realloc_string_callback (gfc_code **c, int *walk_subtrees ATTRIBUTE_UNUSED,
|
||||
if (!found_substr)
|
||||
return 0;
|
||||
}
|
||||
else if (expr2->expr_type != EXPR_OP
|
||||
|| expr2->value.op.op != INTRINSIC_CONCAT)
|
||||
else if (expr2->expr_type != EXPR_ARRAY
|
||||
&& (expr2->expr_type != EXPR_OP
|
||||
|| expr2->value.op.op != INTRINSIC_CONCAT))
|
||||
return 0;
|
||||
|
||||
if (!gfc_check_dependency (expr1, expr2, true))
|
||||
|
@ -1,3 +1,8 @@
|
||||
2017-12-01 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/83224
|
||||
* gfortran.dg/dependency_50.f90: New test.
|
||||
|
||||
2016-11-17 Kirill Yukhin <kirill.yukhin@gmail.com>
|
||||
|
||||
* gcc.target/i386/avx512f-vpcompressb-2.c: Fix popcnt for 32-bit mode.
|
||||
|
12
gcc/testsuite/gfortran.dg/dependency_50.f90
Normal file
12
gcc/testsuite/gfortran.dg/dependency_50.f90
Normal file
@ -0,0 +1,12 @@
|
||||
! { dg-do run }
|
||||
! PR 83224 - dependency mishandling with an array constructor
|
||||
! Original test case by Urban Jost
|
||||
program dusty_corner
|
||||
implicit none
|
||||
character(len=:),allocatable :: words(:)
|
||||
|
||||
words=[character(len=3) :: 'one', 'two']
|
||||
words=[character(len=5) :: words, 'three']
|
||||
if (any(words /= [ "one ", "two ", "three"])) call abort
|
||||
|
||||
end program dusty_corner
|
Loading…
Reference in New Issue
Block a user