mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-05 13:41:18 +08:00
re PR fortran/29431 (Not Implemented: complex character array constructors)
2006-11-09 Paul Thomas <pault@gcc.gnu.org> PR fortran/29431 * trans-array.c (get_array_ctor_strlen): If we fall through to default, use a constant character length if it is available. 2006-11-09 Paul Thomas <pault@gcc.gnu.org> PR fortran/29431 * gfortran.dg/array_constructor_13.f90: New test. From-SVN: r118631
This commit is contained in:
parent
217b58895e
commit
012019922e
@ -1,3 +1,9 @@
|
||||
2006-11-09 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/29431
|
||||
* trans-array.c (get_array_ctor_strlen): If we fall through to
|
||||
default, use a constant character length if it is available.
|
||||
|
||||
2006-11-09 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/29744
|
||||
|
@ -1416,7 +1416,7 @@ get_array_ctor_strlen (gfc_constructor * c, tree * len)
|
||||
|
||||
case EXPR_ARRAY:
|
||||
if (!get_array_ctor_strlen (c->expr->value.constructor, len))
|
||||
is_const = FALSE;
|
||||
is_const = false;
|
||||
break;
|
||||
|
||||
case EXPR_VARIABLE:
|
||||
@ -1425,7 +1425,15 @@ get_array_ctor_strlen (gfc_constructor * c, tree * len)
|
||||
break;
|
||||
|
||||
default:
|
||||
is_const = FALSE;
|
||||
is_const = false;
|
||||
|
||||
/* Hope that whatever we have possesses a constant character
|
||||
length! */
|
||||
if (!(*len && INTEGER_CST_P (*len)) && c->expr->ts.cl)
|
||||
{
|
||||
gfc_conv_const_charlen (c->expr->ts.cl);
|
||||
*len = c->expr->ts.cl->backend_decl;
|
||||
}
|
||||
/* TODO: For now we just ignore anything we don't know how to
|
||||
handle, and hope we can figure it out a different way. */
|
||||
break;
|
||||
|
@ -1,3 +1,8 @@
|
||||
2006-11-09 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/29431
|
||||
* gfortran.dg/array_constructor_13.f90: New test.
|
||||
|
||||
2006-11-09 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/29744
|
||||
|
24
gcc/testsuite/gfortran.dg/array_constructor_13.f90
Normal file
24
gcc/testsuite/gfortran.dg/array_constructor_13.f90
Normal file
@ -0,0 +1,24 @@
|
||||
! { dg-do compile }
|
||||
! Tests patch for PR29431, which arose from PR29373.
|
||||
!
|
||||
! Contributed by Tobias Schlueter <tobi@gcc.gnu.org>
|
||||
!
|
||||
implicit none
|
||||
CHARACTER(len=6), DIMENSION(2,2) :: a
|
||||
|
||||
! Reporters original triggered another error:
|
||||
! gfc_todo: Not Implemented: complex character array
|
||||
! constructors.
|
||||
|
||||
a = reshape([to_string(1.0), trim("abcdef"), &
|
||||
to_string(7.0), trim("hijklm")], &
|
||||
[2, 2])
|
||||
print *, a
|
||||
|
||||
CONTAINS
|
||||
FUNCTION to_string(x)
|
||||
character*6 to_string
|
||||
REAL, INTENT(in) :: x
|
||||
WRITE(to_string, FMT="(F6.3)") x
|
||||
END FUNCTION
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user