diff options
| author | José Rui Faustino de Sousa <jrfsousa@gmail.com> | 2021-06-05 11:12:50 +0000 | 
|---|---|---|
| committer | José Rui Faustino de Sousa <jrfsousa@gmail.com> | 2021-06-05 11:12:50 +0000 | 
| commit | d514626ee2566c68b8a79c7b99aaf791d69e1b2f (patch) | |
| tree | b33c075825af5105b83798f664f0314cfed294d0 /gcc/tree-iterator.c | |
| parent | 96963713f6a648a0ed890450e02ebdd8ff583b14 (diff) | |
| download | gcc-d514626ee2566c68b8a79c7b99aaf791d69e1b2f.zip gcc-d514626ee2566c68b8a79c7b99aaf791d69e1b2f.tar.gz gcc-d514626ee2566c68b8a79c7b99aaf791d69e1b2f.tar.bz2  | |
Fortran: Fix some issues with pointers to character.
gcc/fortran/ChangeLog:
	PR fortran/100120
	PR fortran/100816
	PR fortran/100818
	PR fortran/100819
	PR fortran/100821
	* trans-array.c (gfc_get_array_span): rework the way character
	array "span" was calculated.
	(gfc_conv_expr_descriptor): improve handling of character sections
	and unlimited polymorphic objects.
	* trans-expr.c (gfc_get_character_len): new function to calculate
	character string length.
	(gfc_get_character_len_in_bytes): new function to calculate
	character string length in bytes.
	(gfc_conv_scalar_to_descriptor): add call to set the "span".
	(gfc_trans_pointer_assignment): set "_len" and antecipate the
	initialization of the deferred character length hidden argument.
	* trans-intrinsic.c (gfc_conv_associated): set "force_no_tmp" to
	avoid the creation of a temporary.
	* trans-types.c (gfc_get_dtype_rank_type): rework type detection
	so that unlimited polymorphic objects get proper type infomation,
	also important for bind(c).
	(gfc_get_dtype): add argument to pass the rank if necessary.
	(gfc_get_array_type_bounds): cosmetic change to have character
	arrays called character instead of unknown.
	* trans-types.h (gfc_get_dtype): modify prototype.
	* trans.c (get_array_span): rework the way character array "span"
	was calculated.
	* trans.h (gfc_get_character_len): new prototype.
	(gfc_get_character_len_in_bytes): new prototype.
	Add "unlimited_polymorphic" flag to "gfc_se" type to signal when
	expression carries an unlimited polymorphic object.
libgfortran/ChangeLog:
	PR fortran/100120
	* intrinsics/associated.c (associated): have associated verify if
	the "span" matches insted of the "elem_len".
	* libgfortran.h (GFC_DESCRIPTOR_SPAN): add macro to retrive the
	descriptor "span".
gcc/testsuite/ChangeLog:
	PR fortran/100120
	* gfortran.dg/PR100120.f90: New test.
	PR fortran/100816
	PR fortran/100818
	PR fortran/100819
	PR fortran/100821
	* gfortran.dg/character_workout_1.f90: New test.
	* gfortran.dg/character_workout_4.f90: New test.
Diffstat (limited to 'gcc/tree-iterator.c')
0 files changed, 0 insertions, 0 deletions
