2017_12_27 Louis Krupp <louis.krupp@zoho.com>
PR fortran/83092 * expr.c (gfc_apply_init): Check that typespec has character type before using character length field. 2017_12_27 Louis Krupp <louis.krupp@zoho.com> PR fortran/83092 * gfortran.dg/init_char_with_nonchar_ctr.f90: New test. From-SVN: r256011
This commit is contained in:
parent
467e6f1bb1
commit
aefd636b3c
4 changed files with 46 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2017_12_27 Louis Krupp <louis.krupp@zoho.com>
|
||||
|
||||
PR fortran/83092
|
||||
* expr.c (gfc_apply_init): Check that typespec has character type
|
||||
before using character length field.
|
||||
|
||||
2017-12-26 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/83540
|
||||
|
|
|
@ -4208,6 +4208,7 @@ gfc_apply_init (gfc_typespec *ts, symbol_attribute *attr, gfc_expr *init)
|
|||
if (init->expr_type == EXPR_CONSTANT)
|
||||
gfc_set_constant_character_len (len, init, -1);
|
||||
else if (init
|
||||
&& init->ts.type == BT_CHARACTER
|
||||
&& init->ts.u.cl
|
||||
&& mpz_cmp (ts->u.cl->length->value.integer,
|
||||
init->ts.u.cl->length->value.integer))
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2017_12_27 Louis Krupp <louis.krupp@zoho.com>
|
||||
|
||||
PR fortran/83092
|
||||
* gfortran.dg/init_char_with_nonchar_ctr.f90: New test.
|
||||
|
||||
2017-12-27 Kugan Vivekanandarajah <kuganv@linaro.org>
|
||||
|
||||
* gcc.target/aarch64/advsimd-intrinsics/vld1x2.c: New test.
|
||||
|
|
34
gcc/testsuite/gfortran.dg/init_char_with_nonchar_ctr.f90
Normal file
34
gcc/testsuite/gfortran.dg/init_char_with_nonchar_ctr.f90
Normal file
|
@ -0,0 +1,34 @@
|
|||
! { dg-do compile }
|
||||
|
||||
! Initialization of character by non-character constructor
|
||||
|
||||
subroutine s1
|
||||
type t
|
||||
integer :: n = 0
|
||||
end type
|
||||
type t2
|
||||
character :: c = t() ! { dg-error "Can't convert TYPE\\(t\\) to CHARACTER\\(1\\)" }
|
||||
end type
|
||||
end subroutine
|
||||
|
||||
subroutine s2
|
||||
type t
|
||||
end type
|
||||
type t2
|
||||
character :: c(1) = [t()] ! { dg-error "Can't convert TYPE\\(t\\) to CHARACTER\\(1\\)" }
|
||||
end type
|
||||
end subroutine
|
||||
|
||||
subroutine s3
|
||||
type t
|
||||
integer :: a = 1
|
||||
character :: c = t() ! { dg-error "Can't convert TYPE\\(t\\) to CHARACTER\\(1\\)" }
|
||||
end type
|
||||
end subroutine
|
||||
|
||||
subroutine s4
|
||||
type t
|
||||
integer, allocatable :: a
|
||||
character :: c = t() ! { dg-error "Can't convert TYPE\\(t\\) to CHARACTER\\(1\\)" }
|
||||
end type
|
||||
end subroutine
|
Loading…
Add table
Reference in a new issue