2021-12-29  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102332
	* expr.c (gfc_get_variable_expr): Avoid NULL pointer dereferences
	during handling of errors with invalid uses of CLASS variables.
	* match.c (select_type_set_tmp): Likewise.
	* primary.c (gfc_match_varspec): Likewise.
	* resolve.c (resolve_variable): Likewise.
	(resolve_select_type): Likewise.

2021-12-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/103828
	* trans-decl.c (generate_local_decl): Do not call
	gfc_conv_scalar_char_value(), but check the type tree.
	* trans-expr.c (gfc_conv_scalar_char_value): Rename to
	conv_scalar_char_value, do not alter type tree.
	(gfc_conv_procedure_call): Adjust call to renamed
	conv_scalar_char_value() function.
	* trans-types.c (gfc_sym_type): Take care of
	CHARACTER(C_CHAR), VALUE arguments.
	* trans.h (gfc_conv_scalar_char_value): Remove prototype.

2021-12-28  Martin Liska  <mliska@suse.cz>

	* gfortran.texi: Replace http:// with https.
	* intrinsic.texi: Likewise.

2021-12-22  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103778
	* check.c (is_c_interoperable): A BOZ literal constant is not
	interoperable.

2021-12-22  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103776
	* match.c (match_case_selector): Reject expressions in CASE
	selector which are not scalar.

2021-12-18  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103412
	* check.c (gfc_check_sizeof): Reject BOZ type argument.

2021-12-14  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103717
	* frontend-passes.c (doloop_code): Prevent NULL pointer
	dereference when checking for passing a do-loop variable to a
	contained procedure with an interface mismatch.

2021-12-14  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103718
	PR fortran/103719
	* frontend-passes.c (doloop_contained_procedure_code): Add several
	checks to prevent NULL pointer dereferences on valid and invalid
	code called within do-loops.

2021-12-14  Manfred Schwarb  <manfred99@gmx.ch>

	PR fortran/91497
	* simplify.c (simplify_min_max): Disable conversion warnings for
	MIN1 and MAX1.

2021-12-13  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/103576
	* openmp.c (is_scalar_intrinsic_expr): Fix condition.
	(resolve_omp_atomic): Fix/update checks, accept compare.
	* trans-openmp.c (gfc_trans_omp_atomic): Handle compare.

2021-12-11  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103606
	* resolve.c (resolve_fl_procedure): Do not access CLASS components
	before class container has been built.

2021-12-10  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103418
	* check.c (variable_check): Replace previous check of procedure
	dummy arguments with INTENT(IN) attribute when passed to intrinsic
	procedures by gfc_check_vardef_context.
	* expr.c (gfc_check_vardef_context): Correct check of INTENT(IN)
	dummy arguments for the case of sub-components of a CLASS pointer.

2021-12-08  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103609
	* symbol.c (gfc_sym_get_dummy_args): Catch NULL pointer
	dereference.

2021-12-08  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103610
	* array.c (spec_dimen_size): Fix simplification of SHAPE:
	dimensions must be non-negative.

2021-12-08  Chung-Lin Tang  <cltang@codesourcery.com>

	* trans-openmp.c (gfc_trans_omp_array_section): Do not generate
	GOMP_MAP_ALWAYS_POINTER map for main array maps of ARRAY_TYPE type.

2021-12-07  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103607
	* frontend-passes.c (do_subscript): Ensure that array bounds are
	of type INTEGER before performing checks on array subscripts.

2021-12-07  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103588
	* array.c (gfc_ref_dimen_size): Do not generate internal error on
	failed simplification of stride expression; just return failure.

2021-12-07  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103591
	* match.c (match_case_selector): Check type of upper bound in case
	range.

2021-12-04  Tobias Burnus  <tobias@codesourcery.com>

	* dump-parse-tree.c (show_omp_clauses): Handle
	weak/compare/fail clause.
	* gfortran.h (gfc_omp_clauses): Add weak, compare, fail.
	* openmp.c (enum omp_mask1, gfc_match_omp_clauses,
	OMP_ATOMIC_CLAUSES): Update for new clauses.
	(gfc_match_omp_atomic): Update for 5.1 atomic changes.
	(is_conversion): Support widening in one go.
	(is_scalar_intrinsic_expr): New.
	(resolve_omp_atomic): Update for 5.1 atomic changes.
	* parse.c (parse_omp_oacc_atomic): Update for compare.
	* resolve.c (gfc_resolve_blocks): Update asserts.
	* trans-openmp.c (gfc_trans_omp_atomic): Handle new clauses.

2021-12-03  Harald Anlauf  <anlauf@gmx.de>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/103505
	* array.c (match_array_element_spec): Try to simplify array
	element specifications to improve early checking.
	* expr.c (gfc_try_simplify_expr): New.  Try simplification of an
	expression via gfc_simplify_expr.  When an error occurs, roll
	back.
	* gfortran.h (gfc_try_simplify_expr): Declare it.

2021-12-03  Tobias Burnus  <tobias@codesourcery.com>

	* trans-stmt.c (gfc_trans_allocate): Set e3_has_nodescriptor to true
	only for non-named arrays.

2021-12-02  Chung-Lin Tang  <cltang@codesourcery.com>

	PR fortran/90030
	* trans-openmp.c (gfc_omp_finish_clause): Remove fold_convert to pointer
	to char_type_node, add gcc_assert of POINTER_TYPE_P.
	(gfc_trans_omp_array_section): Likewise.
	(gfc_trans_omp_clauses): Likewise.

2021-11-30  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102787
	* array.c (expand_constructor): When encountering a constant array
	expression or array section within a constructor, simplify it to
	enable better expansion.

2021-11-30  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103473
	* simplify.c (simplify_minmaxloc_nodim): Avoid NULL pointer
	dereference when shape is not set.

2021-11-30  Harald Anlauf  <anlauf@gmx.de>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/101565
	* check.c (gfc_check_image_index): Verify that SUB argument to
	IMAGE_INDEX is of type integer.

2021-11-30  Richard Biener  <rguenther@suse.de>

	* frontend-passes.c (gfc_expr_walker): Add comment to
	indicate tail recursion.

2021-11-30  Richard Biener  <rguenther@suse.de>

	* target-memory.c (gfc_element_size): Remove unreachable return.

2021-11-30  Thomas Schwinge  <thomas@codesourcery.com>

	* openmp.c (resolve_oacc_loop_blocks): Remove "gang reduction on
	an orphan loop" checking.
	(oacc_is_parallel, oacc_is_kernels, oacc_is_serial)
	(oacc_is_compute_construct): Remove.

2021-11-30  Frederik Harwath  <frederik@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* openmp.c (oacc_is_parallel_or_serial): Evolve into...
	(oacc_is_compute_construct): ... this function.
	(resolve_oacc_loop_blocks): Use "oacc_is_compute_construct"
	instead of "oacc_is_parallel_or_serial" for checking that a
	loop is not orphaned.

2021-11-30  Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* openmp.c (oacc_is_serial, oacc_is_parallel_or_serial): New.
	(resolve_oacc_loop_blocks): Use oacc_is_parallel_or_serial instead of
	oacc_is_parallel.

2021-11-30  Cesar Philippidis  <cesar@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* openmp.c (oacc_is_parallel, oacc_is_kernels): New 'static'
	functions.
	(resolve_oacc_loop_blocks): Emit an error on orphan OpenACC gang
	reductions.

2021-11-30  Richard Biener  <rguenther@suse.de>

	* decl.c (gfc_insert_parameter_exprs): Only return after
	resetting type_param_spec_list.

2021-11-30  Richard Biener  <rguenther@suse.de>

	* frontend-passes.c (gfc_expr_walker): Remove unreachable
	break.
	* scanner.c (skip_fixed_comments): Remove unreachable
	gcc_unreachable.
	* trans-expr.c (gfc_expr_is_variable): Refactor to make
	control flow more obvious.

2021-11-29  Eric Gallager  <egallager@gcc.gnu.org>

	PR other/103021
	* Make-lang.in: Use ETAGS variable in TAGS target.

2021-11-26  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103411
	* check.c (gfc_check_reshape): Improve check of size of source
	array for the RESHAPE intrinsic against the given shape when pad
	is not given, and shape is a parameter.  Try other simplifications
	of shape.

2021-11-23  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103392
	* simplify.c (simplify_bound): Do not try to simplify
	LBOUND/UBOUND for arrays with POINTER or ALLOCATABLE attribute.

2021-11-23  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/87711
	PR fortran/87851
	* trans-array.c (arg_evaluated_for_scalarization): Add LEN_TRIM to
	list of intrinsics for which an optional KIND argument needs to be
	removed before scalarization.

2021-11-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/103315
	* trans-types.c (gfc_get_array_descr_info): Use DW_OP_deref_size 1
	instead of DW_OP_deref for DW_AT_rank.

2021-11-21  Harald Anlauf  <anlauf@gmx.de>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/99061
	* trans-intrinsic.c (gfc_lookup_intrinsic): Helper function for
	looking up gfortran builtin intrinsics.
	(gfc_conv_intrinsic_atrigd): Use it.
	(gfc_conv_intrinsic_cotan): Likewise.
	(gfc_conv_intrinsic_cotand): Likewise.
	(gfc_conv_intrinsic_atan2d): Likewise.

2021-11-18  Harald Anlauf  <anlauf@gmx.de>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/101329
	* check.c (is_c_interoperable): Reject NULL() as it is not
	interoperable.

2021-11-16  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103286
	* resolve.c (resolve_select): Choose appropriate range limit to
	avoid NULL pointer dereference when generating error message.

2021-11-16  Mikael Morin  <mikael@gcc.gnu.org>

	* interface.c (gfc_dummy_arg_get_name): New function.
	* gfortran.h (gfc_dummy_arg_get_name): Declare it.
	* trans-array.c (arg_evaluated_for_scalarization): Pass a dummy
	argument wrapper as argument instead of an actual argument
	and an index number.  Check it’s non-NULL.  Use its name
	to identify it.
	(gfc_walk_elemental_function_args): Update call to
	arg_evaluated for scalarization.  Remove argument counting.

2021-11-16  Mikael Morin  <mikael@gcc.gnu.org>

	* gfortran.h (gfc_actual_arglist::missing_arg_type): Remove.
	* interface.c (gfc_compare_actual_formal): Remove
	missing_arg_type initialization.
	* intrinsic.c (sort_actual): Ditto.
	* trans-expr.c (gfc_conv_procedure_call): Use associated_dummy
	and gfc_dummy_arg_get_typespec to get the dummy argument type.

2021-11-16  Mikael Morin  <mikael@gcc.gnu.org>

	* interface.c (gfc_dummy_arg_get_typespec,
	gfc_dummy_arg_is_optional): New functions.
	* gfortran.h (gfc_dummy_arg_get_typespec,
	gfc_dummy_arg_is_optional): Declare them.
	* trans.h (gfc_ss_info::dummy_arg): Use the wrapper type
	as declaration type.
	* trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
	use gfc_dummy_arg_get_typespec function to get the type.
	(gfc_walk_elemental_function_args): Remove proc_ifc argument.
	Get info about the dummy arg using the associated_dummy field.
	* trans-array.h (gfc_walk_elemental_function_args): Update declaration.
	* trans-intrinsic.c (gfc_walk_intrinsic_function):
	Update call to gfc_walk_elemental_function_args.
	* trans-stmt.c (gfc_trans_call): Ditto.
	(get_proc_ifc_for_call): Remove.

2021-11-16  Mikael Morin  <mikael@gcc.gnu.org>

	* gfortran.h (gfc_dummy_arg_kind, gfc_dummy_arg): New.
	(gfc_actual_arglist): New field associated_dummy.
	(gfc_intrinsic_arg): Remove field actual.
	* interface.c (get_nonintrinsic_dummy_arg): New.
	(gfc_compare_actual): Initialize associated_dummy.
	* intrinsic.c (get_intrinsic_dummy_arg): New.
	(sort_actual):  Add argument vectors.
	Use loops with indices on argument vectors.
	Initialize associated_dummy.

2021-11-16  Mikael Morin  <mikael@gcc.gnu.org>

	* intrinsic.c (sort_actual): initialise variable and use it earlier.

2021-11-15  Tobias Burnus  <tobias@codesourcery.com>

	* openmp.c (OMP_TARGET_CLAUSES): Add thread_limit.
	* trans-openmp.c (gfc_split_omp_clauses): Add thread_limit also to
	teams.

2021-11-12  Tobias Burnus  <tobias@codesourcery.com>

	* parse.c (decode_omp_directive): Fix permitting 'nowait' for some
	combined directives, add missing 'omp end ... loop'.
	(gfc_ascii_statement): Fix ST_OMP_END_TEAMS_LOOP result.
	* openmp.c (resolve_omp_clauses): Add missing combined loop constructs
	case values to the 'if(directive-name: ...)' check.
	* trans-openmp.c (gfc_split_omp_clauses): Put nowait on target if
	first leaf construct accepting it.

2021-11-12  Martin Jambor  <mjambor@suse.cz>

	* trans-types.c (gfc_get_array_descr_info): Use build_debug_expr_decl
	instead of building DEBUG_EXPR_DECL manually.

2021-11-12  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/97896
	* intrinsic.c (add_sym_4ind): Remove.
	(add_functions): Use add_sym4 instead of add_sym4ind.
	Don’t special case the index intrinsic.
	* iresolve.c (gfc_resolve_index_func): Use the individual arguments
	directly instead of the full argument list.
	* intrinsic.h (gfc_resolve_index_func): Update the declaration
	accordingly.
	* trans-decl.c (gfc_get_extern_function_decl): Don’t modify the
	list of arguments in the case of the index intrinsic.
	* trans-array.h (gfc_get_intrinsic_for_expr,
	gfc_get_proc_ifc_for_expr): New.
	* trans-array.c (gfc_get_intrinsic_for_expr,
	arg_evaluated_for_scalarization): New.
	(gfc_walk_elemental_function_args): Add intrinsic procedure
	as argument.  Count arguments.  Check arg_evaluated_for_scalarization.
	* trans-intrinsic.c (gfc_walk_intrinsic_function): Update call.
	* trans-stmt.c (get_intrinsic_for_code): New.
	(gfc_trans_call): Update call.

2021-11-12  Jakub Jelinek  <jakub@redhat.com>

	* types.def (BT_FN_VOID_UINT_UINT): Remove.
	(BT_FN_BOOL_UINT_UINT_UINT_BOOL): New.

2021-11-11  Tobias Burnus  <tobias@codesourcery.com>

	* gfortran.h (struct gfc_omp_clauses): Rename num_teams to
	num_teams_upper, add num_teams_upper.
	* dump-parse-tree.c (show_omp_clauses): Update to handle
	lower-bound num_teams clause.
	* frontend-passes.c (gfc_code_walker): Likewise
	* openmp.c (gfc_free_omp_clauses, gfc_match_omp_clauses,
	resolve_omp_clauses): Likewise.
	* trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses,
	gfc_trans_omp_target): Likewise.

2021-11-11  Jakub Jelinek  <jakub@redhat.com>

	* trans-openmp.c (gfc_trans_omp_clauses): Use
	OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead of OMP_CLAUSE_NUM_TEAMS_EXPR.

2021-11-10  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/103137
	PR fortran/103138
	* check.c (gfc_check_shape): Avoid NULL pointer dereference on
	missing ref.
	* simplify.c (gfc_simplify_cshift): Avoid NULL pointer dereference
	when shape not set.
	(gfc_simplify_transpose): Likewise.

2021-11-09  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	PR fortran/68800
	* class.c (generate_finalization_wrapper): Do not leak
	finalization wrappers if they will not be used.
	* expr.c (gfc_free_actual_arglist): Formatting fix.
	* gfortran.h (gfc_free_symbol): Pass argument by reference.
	(gfc_release_symbol): Likewise.
	(gfc_free_namespace): Likewise.
	* symbol.c (gfc_release_symbol): Adjust acordingly.
	(free_components): Set procedure pointer components
	of derived types to NULL after freeing.
	(free_tb_tree): Likewise.
	(gfc_free_symbol): Set sym to NULL after freeing.
	(gfc_free_namespace): Set namespace to NULL after freeing.

2021-11-09  Martin Liska  <mliska@suse.cz>

	* symbol.c (gfc_get_ultimate_derived_super_type): Remove.

2021-11-09  Aldy Hernandez  <aldyh@redhat.com>

	* misc.c (gfc_dummy_typename): Make sure ts->kind is
	non-negative.

2021-11-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* intrinsic.c (add_subroutines): Change keyword "operator"
	to the correct one, "operation".
	* check.c (gfc_check_co_reduce): Change OPERATOR to
	OPERATION in error messages.
	* intrinsic.texi: Change OPERATOR to OPERATION in
	documentation.

2021-11-07  Sandra Loosemore  <sandra@codesourcery.com>

	* interface.c (gfc_compare_actual_formal): Continue checking
	all arguments after encountering an error.
	* intrinsic.c (do_ts29113_check): Likewise.
	* resolve.c (resolve_operator): Continue resolving on op2 error.

2021-11-06  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102715
	* decl.c (add_init_expr_to_sym): Reject rank mismatch between
	array and its initializer.

2021-11-05  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102817
	* expr.c (simplify_parameter_variable): Copy shape of referenced
	subobject when simplifying.

2021-11-05  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/69419
	* match.c (gfc_match_common): Check array spec of a symbol in a
	COMMON object list and reject it if it is a coarray.

2021-11-05  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	PR fortran/100972
	* decl.c (gfc_match_implicit_none): Fix typo in warning.
	* resolve.c (resolve_unknown_f): Reject external procedures
	without explicit EXTERNAL attribute whe IMPLICIT none (external)
	is in effect.

2021-11-05  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* decl.c (gfc_insert_kind_parameter_exprs): Make static.
	* expr.c (gfc_build_init_expr): Make static
	(gfc_build_default_init_expr): Move below its static helper.
	* gfortran.h (gfc_insert_kind_parameter_exprs, gfc_add_saved_common,
	gfc_add_common, gfc_use_derived_tree, gfc_free_charlen,
	gfc_get_ultimate_derived_super_type,
	gfc_resolve_oacc_parallel_loop_blocks, gfc_build_init_expr,
	gfc_iso_c_sub_interface): Delete.
	* symbol.c (gfc_new_charlen, gfc_get_derived_super_type): Make
	static.

2021-11-05  Sandra Loosemore  <sandra@codesourcery.com>

	PR fortran/35276
	* gfortran.texi (Mixed-Language Programming): Talk about C++,
	and how to link.

2021-11-04  Sandra Loosemore  <sandra@codesourcery.com>

	* gfortran.texi (Projects): Add bullet for helping with
	incomplete standards compliance.
	(Proposed Extensions): Delete section.

2021-11-04  Sandra Loosemore  <sandra@codesourcery.com>

	* intrinsic.texi (Introduction to Intrinsics): Genericize
	references to standard versions.
	* invoke.texi (-fall-intrinsics): Likewise.
	(-fmax-identifier-length=): Likewise.

2021-11-04  Sandra Loosemore  <sandra@codesourcery.com>

	* gfortran.texi (Interoperability with C): Copy-editing.  Add
	more index entries.
	(Intrinsic Types): Likewise.
	(Derived Types and struct): Likewise.
	(Interoperable Global Variables): Likewise.
	(Interoperable Subroutines and Functions): Likewise.
	(Working with C Pointers): Likewise.
	(Further Interoperability of Fortran with C): Likewise.  Rewrite
	to reflect that this is now fully supported by gfortran.

2021-11-04  Sandra Loosemore  <sandra@codesourcery.com>

	* gfortran.texi (About GNU Fortran): Consolidate material
	formerly in other sections.  Copy-editing.
	(Preprocessing and conditional compilation): Delete, moving
	most material to invoke.texi.
	(GNU Fortran and G77): Delete.
	(Project Status): Delete.
	(Standards): Update.
	(Fortran 95 status): Mention conditional compilation here.
	(Fortran 2003 status): Rewrite to mention the 1 missing feature
	instead of all the ones implemented.
	(Fortran 2008 status): Similarly for the 2 missing features.
	(Fortran 2018 status): Rewrite to reflect completion of TS29113
	feature support.
	* invoke.texi (Preprocessing Options): Move material formerly
	in introductory chapter here.

2021-11-04  Sandra Loosemore  <sandra@codesourcery.com>

	* gfortran.texi (Standards): Move discussion of specific
	standard versions here....
	(Fortran standards status): ...from here, and delete this node.

2021-10-31  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* symbol.c (gfc_get_typebound_proc): Revert memcpy.

2021-10-31  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* resolve.c (resolve_fl_procedure): Initialize
	allocatable_or_pointer.

2021-10-30  Manfred Schwarb  <manfred99@gmx.ch>

	* intrinsic.texi: Remove entries for SHORT and LONG intrinsics.

2021-10-30  Manfred Schwarb  <manfred99@gmx.ch>

	* check.c (gfc_check_intconv): Change error message.

2021-10-30  Manfred Schwarb  <manfred99@gmx.ch>

	* intrinsic.texi (REAL): Fix entries in Specific names table.

2021-10-30  Manfred Schwarb  <manfred99@gmx.ch>

	* intrinsic.texi: Adjust @columnfractions commands to improve
	appearance for narrow 80 character terminals.

2021-10-30  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* parse.c (clean_up_modules): Free gsym.

2021-10-30  Harald Anlauf  <anlauf@gmx.de>

	* gfortran.texi (bug reports): credit Gerhard Steinmetz for
	  numerous bug reports.

2021-10-30  Steve Kargl  <kargl@gcc.gnu.org>

	PR fortran/99853
	* resolve.c (resolve_select): Generate regular gfc_error on
	invalid conversions instead of an gfc_internal_error.

2021-10-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* symbol.c (free_tb_tree): Free type-bound procedure struct.
	(gfc_get_typebound_proc): Use explicit memcpy for clarity.

2021-10-27  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* intrinsic.h (gfc_check_sum, gfc_resolve_atan2d, gfc_resolve_kill,
	gfc_resolve_kill_sub): Delete declaration.

2021-10-27  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* trans-types.h (gfc_convert_function_code): Delete.

2021-10-27  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* trans-stmt.h (gfc_trans_deallocate_array): Delete.

2021-10-27  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* trans-array.c (gfc_trans_scalarized_loop_end): Make static.
	* trans-array.h (gfc_trans_scalarized_loop_end,
	gfc_conv_tmp_ref, gfc_conv_array_transpose): Delete declaration.

2021-10-27  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* constructor.c (gfc_constructor_get_base): Make static.
	(gfc_constructor_expr_foreach, gfc_constructor_swap): Delete.
	* constructor.h (gfc_constructor_get_base): Remove declaration.
	(gfc_constructor_expr_foreach, gfc_constructor_swap): Delete.

2021-10-27  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* decl.c (gfc_match_old_kind_spec, set_com_block_bind_c,
	set_verify_bind_c_sym, set_verify_bind_c_com_block,
	get_bind_c_idents, gfc_match_suffix, gfc_get_type_attr_spec,
	check_extended_derived_type): Make static.
	(gfc_match_gcc_unroll): Add comment.
	* match.c (gfc_match_small_int_expr): Delete definition.
	* match.h (gfc_match_small_int_expr): Delete declaration.
	(gfc_match_name_C, gfc_match_old_kind_spec, set_com_block_bind_c,
	set_verify_bind_c_sym, set_verify_bind_c_com_block,
	get_bind_c_idents, gfc_match_suffix,
	gfc_get_type_attr_spec): Delete declaration.

2021-10-27  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* expr.c (is_non_empty_structure_constructor): Make static.
	* gfortran.h (gfc_check_any_c_kind): Delete.
	* match.c (gfc_match_label): Make static.
	* match.h (gfc_match_label): Delete declaration.
	* scanner.c (file_changes_cur, file_changes_count,
	file_changes_allocated): Make static.
	* trans-expr.c (gfc_get_character_len): Make static.
	(gfc_class_len_or_zero_get): Make static.
	(VTAB_GET_FIELD_GEN): Undefine.
	(gfc_get_class_array_ref): Make static.
	(gfc_finish_interface_mapping): Make static.
	* trans-types.c (gfc_check_any_c_kind): Delete.
	(pfunc_type_node, dtype_type_node, gfc_get_ppc_type): Make static.
	* trans-types.h (gfc_get_ppc_type): Delete declaration.
	* trans.c (gfc_msg_wrong_return): Delete.
	* trans.h (gfc_class_len_or_zero_get, gfc_class_vtab_extends_get,
	gfc_vptr_extends_get, gfc_get_class_array_ref, gfc_get_character_len,
	gfc_finish_interface_mapping, gfc_msg_wrong_return,
	gfc_get_function_decl): Delete declaration.

2021-10-27  Tobias Burnus  <tobias@codesourcery.com>

	* trans-stmt.c (gfc_trans_select_rank_cases): Fix condition
	for allocatables/pointers.

2021-10-26  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102956
	* symbol.c (gfc_check_conflict): Add conflict check for PDT KIND
	and LEN type parameters.

2021-10-26  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102917
	* decl.c (match_attr_spec): Remove invalid integer kind checks on
	KIND and LEN attributes of PDTs.

2021-10-26  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102816
	* resolve.c (resolve_structure_cons): Reject invalid array spec of
	a DT component referenced in a structure constructor.

2021-10-26  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/102885
	* trans-decl.c (gfc_conv_cfi_to_gfc): Properly handle nonconstant
	character lenghts.

2021-10-25  Andrew MacLeod  <amacleod@redhat.com>

	* trans-decl.c (gfc_conv_cfi_to_gfc): Initialize rank to NULL_TREE.

2021-10-22  Eric Gallager  <egallager@gcc.gnu.org>

	PR other/102663
	* Make-lang.in: Allow dvi-formatted documentation
	to be installed.

2021-10-22  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/92621
	* trans-expr.c (gfc_trans_assignment_1): Add STRIP_NOPS.

2021-10-21  Chung-Lin Tang  <cltang@codesourcery.com>

	* decl.c (gfc_match_end): Add COMP_OMP_STRICTLY_STRUCTURED_BLOCK case
	together with COMP_BLOCK.
	* parse.c (parse_omp_structured_block): Change return type to
	'gfc_statement', add handling for strictly-structured block case, adjust
	recursive calls to parse_omp_structured_block.
	(parse_executable): Adjust calls to parse_omp_structured_block.
	* parse.h (enum gfc_compile_state): Add
	COMP_OMP_STRICTLY_STRUCTURED_BLOCK.
	* trans-openmp.c (gfc_trans_omp_workshare): Add EXEC_BLOCK case
	handling.

2021-10-21  Sandra Loosemore  <sandra@codesourcery.com>

	PR fortran/94070
	* expr.c (gfc_simplify_expr): Handle GFC_ISYM_SHAPE along with
	GFC_ISYM_LBOUND and GFC_ISYM_UBOUND.
	* trans-array.c (gfc_conv_ss_startstride): Likewise.
	(set_loop_bounds): Likewise.
	* trans-intrinsic.c (gfc_trans_intrinsic_bound): Extend to
	handle SHAPE.  Correct logic for zero-size special cases and
	detecting assumed-rank arrays associated with an assumed-size
	argument.
	(gfc_conv_intrinsic_shape): Deleted.
	(gfc_conv_intrinsic_function): Handle GFC_ISYM_SHAPE like
	GFC_ISYM_LBOUND and GFC_ISYM_UBOUND.
	(gfc_add_intrinsic_ss_code): Likewise.
	(gfc_walk_intrinsic_bound): Likewise.

2021-10-20  Chung-Lin Tang  <cltang@codesourcery.com>

	* openmp.c (gfc_match_omp_clause_reduction): Add 'openmp_target' default
	false parameter. Add 'always,tofrom' map for OMP_LIST_IN_REDUCTION case.
	(gfc_match_omp_clauses): Add 'openmp_target' default false parameter,
	adjust call to gfc_match_omp_clause_reduction.
	(match_omp): Adjust call to gfc_match_omp_clauses
	* trans-openmp.c (gfc_trans_omp_taskgroup): Add call to
	gfc_match_omp_clause, create and return block.

2021-10-19  Tobias Burnus  <tobias@codesourcery.com>

	* trans-types.c (create_fn_spec): For allocatable/pointer
	character(len=:), use 'w' not 'R' as fn spec for the length dummy
	argument.

2021-10-19  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/92482
	* trans-expr.c (gfc_conv_procedure_call): Use TREE_OPERAND not
	build_fold_indirect_ref_loc to undo an ADDR_EXPR.

2021-10-18  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/102086
	PR fortran/92189
	PR fortran/92621
	PR fortran/101308
	PR fortran/101309
	PR fortran/101635
	PR fortran/92482
	* decl.c (gfc_verify_c_interop_param): Remove 'sorry' for
	scalar allocatable/pointer and len=*.
	* expr.c (is_CFI_desc): Return true for for those.
	* gfortran.h (CFI_type_kind_shift, CFI_type_mask,
	CFI_type_from_type_kind, CFI_VERSION, CFI_MAX_RANK,
	CFI_attribute_pointer, CFI_attribute_allocatable,
	CFI_attribute_other, CFI_type_Integer, CFI_type_Logical,
	CFI_type_Real, CFI_type_Complex, CFI_type_Character,
	CFI_type_ucs4_char, CFI_type_struct, CFI_type_cptr,
	CFI_type_cfunptr, CFI_type_other): New #define.
	* trans-array.c (CFI_FIELD_BASE_ADDR, CFI_FIELD_ELEM_LEN,
	CFI_FIELD_VERSION, CFI_FIELD_RANK, CFI_FIELD_ATTRIBUTE,
	CFI_FIELD_TYPE, CFI_FIELD_DIM, CFI_DIM_FIELD_LOWER_BOUND,
	CFI_DIM_FIELD_EXTENT, CFI_DIM_FIELD_SM,
	gfc_get_cfi_descriptor_field, gfc_get_cfi_desc_base_addr,
	gfc_get_cfi_desc_elem_len, gfc_get_cfi_desc_version,
	gfc_get_cfi_desc_rank, gfc_get_cfi_desc_type,
	gfc_get_cfi_desc_attribute, gfc_get_cfi_dim_item,
	gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm):
	New define/functions to access the CFI array descriptor.
	(gfc_conv_descriptor_type): New function for the GFC descriptor.
	(gfc_get_array_span): Handle expr of CFI descriptors and
	assumed-type descriptors.
	(gfc_trans_array_bounds): Remove 'static'.
	(gfc_conv_expr_descriptor): For assumed type, use the dtype of
	the actual argument.
	(structure_alloc_comps): Remove ' ' inside tabs.
	* trans-array.h (gfc_trans_array_bounds, gfc_conv_descriptor_type,
	gfc_get_cfi_desc_base_addr, gfc_get_cfi_desc_elem_len,
	gfc_get_cfi_desc_version, gfc_get_cfi_desc_rank,
	gfc_get_cfi_desc_type, gfc_get_cfi_desc_attribute,
	gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm):
	New prototypes.
	* trans-decl.c (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi):
	Remove global vars.
	(gfc_build_builtin_function_decls): Remove their initialization.
	(gfc_get_symbol_decl, create_function_arglist,
	gfc_trans_deferred_vars): Update for CFI.
	(convert_CFI_desc): Remove and replace by ...
	(gfc_conv_cfi_to_gfc): ... this function
	(gfc_generate_function_code): Call it; create local GFC var for CFI.
	* trans-expr.c (gfc_maybe_dereference_var): Handle CFI.
	(gfc_conv_subref_array_arg): Handle the if-noncontigous-only copy in
	when the result should be a descriptor.
	(gfc_conv_gfc_desc_to_cfi_desc): Completely rewritten.
	(gfc_conv_procedure_call): CFI fixes.
	* trans-openmp.c (gfc_omp_is_optional_argument,
	gfc_omp_check_optional_argument): Handle optional
	CFI.
	* trans-stmt.c (gfc_trans_select_rank_cases): Cleanup, avoid invalid
	code for allocatable/pointer dummies, which cannot be assumed size.
	* trans-types.c (gfc_cfi_descriptor_base): New global var.
	(gfc_get_dtype_rank_type): Skip rank init for rank < 0.
	(gfc_sym_type): Handle CFI dummies.
	(gfc_get_function_type): Update call.
	(gfc_get_cfi_dim_type, gfc_get_cfi_type): New.
	* trans-types.h (gfc_sym_type): Update prototype.
	(gfc_get_cfi_type): New prototype.
	* trans.c (gfc_trans_runtime_check): Make conditions more consistent
	to avoid '<logical> AND_THEN <long int>' in conditions.
	* trans.h (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi): Remove
	global-var declaration.

2021-10-18  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/102745
	* intrinsic.c (gfc_convert_type_warn): Fix checks by checking CLASS
	and do typcheck in correct order for type extension.
	* misc.c (gfc_typename): Print proper not internal CLASS type name.

2021-10-15  Harald Anlauf  <anlauf@gmx.de>
	    Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/102685
	* decl.c (match_clist_expr): Set rank/shape of clist initializer
	to match LHS.
	* resolve.c (resolve_structure_cons): In a structure constructor,
	compare shapes of array components against declared shape.

2021-10-14  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102717
	* simplify.c (gfc_simplify_reshape): Replace assert by error
	message for negative elements in SHAPE array.

2021-10-14  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102716
	* check.c (gfc_check_shape): Reorder checks so that invalid KIND
	arguments can be detected.

2021-10-14  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* gfortran.h (enum gfc_statement): Add ST_OMP_DECLARE_VARIANT.
	(enum gfc_omp_trait_property_kind): New.
	(struct gfc_omp_trait_property): New.
	(gfc_get_omp_trait_property): New macro.
	(struct gfc_omp_selector): New.
	(gfc_get_omp_selector): New macro.
	(struct gfc_omp_set_selector): New.
	(gfc_get_omp_set_selector): New macro.
	(struct gfc_omp_declare_variant): New.
	(gfc_get_omp_declare_variant): New macro.
	(struct gfc_namespace): Add omp_declare_variant field.
	(gfc_free_omp_declare_variant_list): New prototype.
	* match.h (gfc_match_omp_declare_variant): New prototype.
	* openmp.c (gfc_free_omp_trait_property_list): New.
	(gfc_free_omp_selector_list): New.
	(gfc_free_omp_set_selector_list): New.
	(gfc_free_omp_declare_variant_list): New.
	(gfc_match_omp_clauses): Add extra optional argument.  Handle end of
	clauses for context selectors.
	(omp_construct_selectors, omp_device_selectors,
	omp_implementation_selectors, omp_user_selectors): New.
	(gfc_match_omp_context_selector): New.
	(gfc_match_omp_context_selector_specification): New.
	(gfc_match_omp_declare_variant): New.
	* parse.c: Include tree-core.h and omp-general.h.
	(decode_omp_directive): Handle 'declare variant'.
	(case_omp_decl): Include ST_OMP_DECLARE_VARIANT.
	(gfc_ascii_statement): Handle ST_OMP_DECLARE_VARIANT.
	(gfc_parse_file): Initialize omp_requires_mask.
	* symbol.c (gfc_free_namespace): Call
	gfc_free_omp_declare_variant_list.
	* trans-decl.c (gfc_get_extern_function_decl): Call
	gfc_trans_omp_declare_variant.
	(gfc_create_function_decl): Call gfc_trans_omp_declare_variant.
	* trans-openmp.c (gfc_trans_omp_declare_variant): New.
	* trans-stmt.h (gfc_trans_omp_declare_variant): New prototype.

2021-10-13  Tobias Burnus  <tobias@codesourcery.com>

	* dump-parse-tree.c (show_omp_clauses): Handle ancestor modifier,
	avoid ICE for GFC_OMP_ATOMIC_SWAP.
	* gfortran.h (gfc_omp_clauses): Change 'anecestor' into a bitfield.

2021-10-12  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/102541
	* check.c (gfc_check_present): Handle optional CLASS.
	* interface.c (gfc_compare_actual_formal): Likewise.
	* trans-array.c (gfc_trans_g77_array): Likewise.
	* trans-decl.c (gfc_build_dummy_array_decl): Likewise.
	* trans-types.c (gfc_sym_type): Likewise.
	* primary.c (gfc_variable_attr): Fixes for dummy and
	pointer when 'class%_data' is passed.
	* trans-expr.c (set_dtype_for_unallocated, gfc_conv_procedure_call):
	For assumed-rank dummy, fix setting rank for dealloc/notassoc actual
	and setting ubound to -1 for assumed-size actuals.

2021-10-10  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/99348
	PR fortran/102521
	* decl.c (add_init_expr_to_sym): Extend initialization of
	parameter arrays from scalars to handle derived types.

2021-10-09  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/65454
	* module.c (read_module): Handle old and new-style relational
	operators when used in USE module, ONLY: OPERATOR(op).

2021-10-08  Sandra Loosemore  <sandra@codesourcery.com>

	PR fortran/54753
	* interface.c (gfc_compare_actual_formal): Add diagnostic
	for F2018:C839.  Refactor shared code and fix bugs with class
	array info lookup, and extend similar diagnostic from PR94110
	to also cover class types.

2021-10-08  Martin Liska  <mliska@suse.cz>

	* options.c (gfc_post_options): Use new macro
	OPTION_SET_P.

2021-10-06  Tobias Burnus  <tobias@codesourcery.com>

	* resolve.c (resolve_values): Only show
	deprecated warning if attr.referenced.

2021-10-04  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/54753
	* resolve.c (can_generate_init, resolve_fl_variable_derived,
	resolve_symbol): Only do initialization with intent(out) if not
	inside of an interface block.

2021-10-01  Martin Sebor  <msebor@redhat.com>

	PR c/102103
	* array.c: Remove an unnecessary test.
	* trans-array.c: Same.

2021-10-01  Jakub Jelinek  <jakub@redhat.com>

	* gfortran.h (gfc_omp_clauses): Add order_reproducible bitfield.
	* dump-parse-tree.c (show_omp_clauses): Print REPRODUCIBLE: for it.
	* openmp.c (gfc_match_omp_clauses): Set order_reproducible for
	explicit reproducible: modifier.
	* trans-openmp.c (gfc_trans_omp_clauses): Set
	OMP_CLAUSE_ORDER_REPRODUCIBLE for order_reproducible.
	(gfc_split_omp_clauses): Also copy order_reproducible.

2021-09-30  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102458
	* simplify.c (simplify_size): Resolve expressions used in array
	specifications so that SIZE can be simplified.

2021-09-30  Harald Anlauf  <anlauf@gmx.de>

	* expr.c: The correct reference to Fortran standard is: F2018:10.1.12.

2021-09-30  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/71703
	PR fortran/84007
	* trans-intrinsic.c (gfc_conv_same_type_as): Fix handling
	of UNLIMITED_POLY.
	* trans.h (gfc_vtpr_hash_get): Renamed prototype to ...
	(gfc_vptr_hash_get): ... this to match function name.

2021-09-29  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102520
	* array.c (expand_constructor): Do not dereference NULL pointer.

2021-09-27  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/94070
	* trans-array.c (gfc_tree_array_size): New function to
	find size inline (whole array or one dimension).
	(array_parameter_size): Use it, take stmt_block as arg.
	(gfc_conv_array_parameter): Update call.
	* trans-array.h (gfc_tree_array_size): Add prototype.
	* trans-decl.c (gfor_fndecl_size0, gfor_fndecl_size1): Remove
	these global vars.
	(gfc_build_intrinsic_function_decls): Remove their initialization.
	* trans-expr.c (gfc_conv_procedure_call): Update
	bounds of pointer/allocatable actual args to nonallocatable/nonpointer
	dummies to be one based.
	* trans-intrinsic.c (gfc_conv_intrinsic_shape): Fix case for
	assumed rank with allocatable/pointer dummy.
	(gfc_conv_intrinsic_size): Update to use inline function.
	* trans.h (gfor_fndecl_size0, gfor_fndecl_size1): Remove var decl.

2021-09-26  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/101334
	* trans-intrinsic.c (gfc_conv_associated): Support assumed-rank
	'pointer' with scalar/array 'target' argument.

2021-09-24  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102458
	* expr.c (is_non_constant_intrinsic): Check for intrinsics
	excluded in constant expressions (F2018:10.1.2).
	(gfc_is_constant_expr): Use that check.

2021-09-24  Sandra Loosemore  <sandra@codesourcery.com>

	PR fortran/101333
	* interface.c (compare_parameter): Enforce F2018 C711.

2021-09-24  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/55534
	* scanner.c (load_file): Return void, call (gfc_)fatal_error for
	all errors.
	(include_line, include_stmt, gfc_new_file): Remove exit call
	for failed load_file run.

2021-09-23  Sandra Loosemore  <sandra@codesourcery.com>

	PR fortran/101320
	* decl.c (gfc_verify_c_interop_param): Handle F2018 C1557,
	aka TS29113 C516.

2021-09-23  Harald Anlauf  <anlauf@gmx.de>
	    Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/93834
	* trans-intrinsic.c (gfc_conv_allocated): Cleanup. Handle
	coindexed scalar coarrays.

2021-09-23  Sandra Loosemore  <sandra@codesourcery.com>

	PR fortran/101319
	* interface.c (gfc_compare_actual_formal): Extend existing
	assumed-type diagnostic to also check for argument with type
	parameters.

2021-09-23  Sandra Loosemore  <sandra@codesourcery.com>

	PR fortran/101334
	* check.c (gfc_check_associated): Allow an assumed-rank
	array for the pointer argument.
	* interface.c (compare_parameter): Also give rank mismatch
	error on assumed-rank array.

2021-09-23  Sandra Loosemore  <sandra@codesourcery.com>

	* trans-stmt.c (trans_associate_var): Check that result of
	GFC_DECL_SAVED_DESCRIPTOR is not null before using it.

2021-09-22  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/55534
	* cpp.c (gfc_cpp_register_include_paths, gfc_cpp_post_options):
	Add new bool verbose_missing_dir_warn argument.
	* cpp.h (gfc_cpp_post_options): Update prototype.
	* f95-lang.c (gfc_init): Remove duplicated file-not found diag.
	* gfortran.h (gfc_check_include_dirs): Takes bool
	verbose_missing_dir_warn arg.
	(gfc_new_file): Returns now void.
	* options.c (gfc_post_options): Update to warn for -I and -J,
	only, by default but for all when user requested.
	* scanner.c (gfc_do_check_include_dir):
	(gfc_do_check_include_dirs, gfc_check_include_dirs): Take bool
	verbose warn arg and update to avoid printing the same message
	twice or never.
	(load_file): Fix indent.
	(gfc_new_file): Return void and exit when load_file failed
	as all other load_file users do.

2021-09-22  Tobias Burnus  <tobias@codesourcery.com>

	* trans-expr.c (gfc_simple_for_loop): New.
	* trans.h (gfc_simple_for_loop): New prototype.

2021-09-21  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/55534
	* cpp.c: Define GCC_C_COMMON_C for #include "options.h" to make
	cpp_reason_option_codes available.
	(gfc_cpp_register_include_paths): Make static, set pfile's
	warn_missing_include_dirs and move before caller.
	(gfc_cpp_init_cb): New, cb code moved from ...
	(gfc_cpp_init_0): ... here.
	(gfc_cpp_post_options): Call gfc_cpp_init_cb.
	(cb_cpp_diagnostic_cpp_option): New. As implemented in c-family
	to match CppReason flags to -W... names.
	(cb_cpp_diagnostic): Use it to replace single special case.
	* cpp.h (gfc_cpp_register_include_paths): Remove as now static.
	* gfortran.h (gfc_check_include_dirs): New prototype.
	(gfc_add_include_path): Add new bool arg.
	* options.c (gfc_init_options): Don't set -Wmissing-include-dirs.
	(gfc_post_options): Set it here after commandline processing. Call
	gfc_add_include_path with defer_warn=false.
	(gfc_handle_option): Call it with defer_warn=true.
	* scanner.c (gfc_do_check_include_dir, gfc_do_check_include_dirs,
	gfc_check_include_dirs): New. Diagnostic moved from ...
	(add_path_to_list): ... here, which came before cmdline processing.
	Take additional bool defer_warn argument.
	(gfc_add_include_path): Take additional defer_warn arg.
	* scanner.h (struct gfc_directorylist): Reorder for alignment issues,
	add new 'bool warn'.

2021-09-20  Tobias Burnus  <tobias@codesourcery.com>

	* gfortran.h (gfc_omp_clauses): Add order_unconstrained.
	* dump-parse-tree.c (show_omp_clauses): Dump it.
	* openmp.c (gfc_match_omp_clauses): Match unconstrained/reproducible
	modifiers to ordered(concurrent).
	(OMP_DISTRIBUTE_CLAUSES): Accept ordered clause.
	(resolve_omp_clauses): Reject ordered + order on same directive.
	* trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses): Pass
	on unconstrained modifier of ordered(concurrent).

2021-09-17  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102366
	* trans-decl.c (gfc_finish_var_decl): Disable the warning message
	for variables moved from stack to static storange if they are
	declared in the main, but allow the move to happen.

2021-09-17  Sandra Loosemore  <sandra@codesourcery.com>

	* intrinsic.texi (ISO_C_BINDING): Change C_FLOAT128 to correspond
	to _Float128 rather than __float128.
	* iso-c-binding.def (c_float128): Update comments.
	* trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Likewise.
	(build_round_expr): Likewise.
	(gfc_build_intrinsic_lib_fndcecls): Likewise.
	* trans-types.h (gfc_real16_is_float128): Likewise.

2021-09-16  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102287
	* trans-expr.c (gfc_conv_procedure_call): Wrap deallocation of
	allocatable components of optional allocatable derived type
	procedure arguments with INTENT(OUT) into a presence check.

2021-09-14  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102311
	* resolve.c (resolve_entries): Attempt to recover cleanly after
	rejecting mismatched function entries.

2021-09-14  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/102313
	* parse.c (gfc_ascii_statement): Add missing ST_OMP_END_SCOPE.

2021-09-13  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/82314
	* decl.c (add_init_expr_to_sym): For proper initialization of
	array-valued named constants the array bounds need to be
	simplified before adding the initializer.

2021-09-13  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/85130
	* expr.c (find_substring_ref): Handle given substring start and
	end indices as signed integers, not unsigned.

2021-09-09  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/98490
	* trans-expr.c (gfc_conv_substring): Do not generate substring
	bounds check for implied do loop index variable before it actually
	becomes defined.

2021-09-08  liuhongt  <hongtao.liu@intel.com>

	* options.c (gfc_post_options): Issue an error for
	-fexcess-precision=16.

2021-09-07  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/101327
	* expr.c (find_array_element): When bounds cannot be determined as
	constant, return error instead of aborting.

2021-09-07  Marcel Vollweiler  <marcel@codesourcery.com>

	* openmp.c (gfc_match_omp_flush): Parse 'seq_cst' clause on 'flush'
	directive.
	* trans-openmp.c (gfc_trans_omp_flush): Handle OMP_MEMORDER_SEQ_CST.

2021-09-03  Tobias Burnus  <tobias@codesourcery.com>

	* decl.c (gfc_verify_c_interop_param): Reject pointer with
	CONTIGUOUS attributes as dummy arg. Reject character len > 1
	when passed as byte stream.

2021-09-01  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/56985
	* resolve.c (resolve_common_vars): Fix grammar and improve wording
	of error message rejecting an unlimited polymorphic in COMMON.

2021-08-31  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/100950
	* simplify.c (substring_has_constant_len): Minimize checks for
	substring expressions being allowed.

2021-08-31  Marcel Vollweiler  <marcel@codesourcery.com>

	* gfortran.h: Add variable for 'ancestor' in struct gfc_omp_clauses.
	* openmp.c (gfc_match_omp_clauses): Parse device-modifiers 'device_num'
	and 'ancestor' in 'target device' clauses.
	* trans-openmp.c (gfc_trans_omp_clauses): Set OMP_CLAUSE_DEVICE_ANCESTOR.

2021-08-30  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102113
	* match.c (gfc_match_goto): Allow for whitespace in parsing list
	of labels.

2021-08-30  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/101349
	* resolve.c (resolve_allocate_expr): An unlimited polymorphic
	argument to ALLOCATE must be ALLOCATABLE or a POINTER.  Fix the
	corresponding check.

2021-08-28  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/87737
	* resolve.c (resolve_entries): For functions of type CHARACTER
	tighten the checks for matching characteristics.

2021-08-25  Lewis Hyatt  <lhyatt@gmail.com>

	PR other/93067
	* cpp.c (gfc_cpp_post_options): Call new function
	diagnostic_initialize_input_context().

2021-08-24  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/98411
	* trans-decl.c (gfc_finish_var_decl): Adjust check to handle
	implicit SAVE as well as variables in the main program.  Improve
	warning message text.

2021-08-23  Tobias Burnus  <tobias@codesourcery.com>

	* openmp.c (gfc_match_dupl_check, gfc_match_dupl_memorder,
	gfc_match_dupl_atomic): New.
	(gfc_match_omp_clauses): Use them; remove duplicate
	'release'/'relaxed' clause matching; improve error dignostic
	for 'default'.

2021-08-23  Tobias Burnus  <tobias@codesourcery.com>

	* dump-parse-tree.c (show_omp_clauses): Handle 'strict' modifier
	on grainsize/num_tasks
	* gfortran.h (gfc_omp_clauses): Add grainsize_strict
	and num_tasks_strict.
	* trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses):
	Handle 'strict' modifier on grainsize/num_tasks.
	* openmp.c (gfc_match_omp_clauses): Likewise.

2021-08-20  Tobias Burnus  <tobias@codesourcery.com>

	* error.c
	(error_uinteger): Take 'long long unsigned' instead
	of 'long unsigned' as argumpent.
	(error_integer): Take 'long long' instead of 'long'.
	(error_hwuint, error_hwint): New.
	(error_print): Update to handle 'll' and 'w'
	length modifiers.
	* simplify.c (substring_has_constant_len): Use '%wd'
	in gfc_error.

2021-08-20  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/100950
	* simplify.c (substring_has_constant_len): Fix format string of
	gfc_error, pass HOST_WIDE_INT bounds values via char buffer.

2021-08-20  Tobias Burnus  <tobias@codesourcery.com>

	* dump-parse-tree.c (show_omp_clauses): Handle 'at', 'severity'
	and 'message' clauses.
	(show_omp_node, show_code_node): Handle EXEC_OMP_ERROR.
	* gfortran.h (gfc_statement): Add ST_OMP_ERROR.
	(gfc_omp_severity_type, gfc_omp_at_type): New.
	(gfc_omp_clauses): Add 'at', 'severity' and 'message' clause;
	use more bitfields + ENUM_BITFIELD.
	(gfc_exec_op): Add EXEC_OMP_ERROR.
	* match.h (gfc_match_omp_error): New.
	* openmp.c (enum omp_mask1): Add OMP_CLAUSE_(AT,SEVERITY,MESSAGE).
	(gfc_match_omp_clauses): Handle new clauses.
	(OMP_ERROR_CLAUSES, gfc_match_omp_error): New.
	(resolve_omp_clauses): Resolve new clauses.
	(omp_code_to_statement, gfc_resolve_omp_directive): Handle
	EXEC_OMP_ERROR.
	* parse.c (decode_omp_directive, next_statement,
	gfc_ascii_statement): Handle 'omp error'.
	* resolve.c (gfc_resolve_blocks): Likewise.
	* st.c (gfc_free_statement): Likewise.
	* trans-openmp.c (gfc_trans_omp_error): Likewise.
	(gfc_trans_omp_directive): Likewise.
	* trans.c (trans_code): Likewise.

2021-08-20  Jakub Jelinek  <jakub@redhat.com>

	* types.def (BT_FN_VOID_CONST_PTR_SIZE): New DEF_FUNCTION_TYPE_2.
	* f95-lang.c (ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST): Define.

2021-08-19  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/100950
	* simplify.c (substring_has_constant_len): New.
	(gfc_simplify_len): Handle case of substrings with constant
	bounds.

2021-08-18  Tobias Burnus  <tobias@codesourcery.com>

	* match.h (gfc_match_omp_nothing): New.
	* openmp.c (gfc_match_omp_nothing): New.
	* parse.c (decode_omp_directive): Match 'nothing' directive.

2021-08-17  Tobias Burnus  <tobias@codesourcery.com>

	* dump-parse-tree.c (show_omp_node, show_code_node): Handle
	EXEC_OMP_SCOPE.
	* gfortran.h (enum gfc_statement): Add ST_OMP_(END_)SCOPE.
	(enum gfc_exec_op): Add EXEC_OMP_SCOPE.
	* match.h (gfc_match_omp_scope): New.
	* openmp.c (OMP_SCOPE_CLAUSES): Define
	(gfc_match_omp_scope): New.
	(gfc_match_omp_cancellation_point, gfc_match_omp_end_nowait):
	Improve error diagnostic.
	(omp_code_to_statement): Handle ST_OMP_SCOPE.
	(gfc_resolve_omp_directive): Handle EXEC_OMP_SCOPE.
	* parse.c (decode_omp_directive, next_statement,
	gfc_ascii_statement, parse_omp_structured_block,
	parse_executable): Handle OpenMP's scope construct.
	* resolve.c (gfc_resolve_blocks): Likewise
	* st.c (gfc_free_statement): Likewise
	* trans-openmp.c (gfc_trans_omp_scope): New.
	(gfc_trans_omp_directive): Call it.
	* trans.c (trans_code): handle EXEC_OMP_SCOPE.

2021-08-16  Tobias Burnus  <tobias@codesourcery.com>

	* dump-parse-tree.c (show_omp_clauses): Handle 'filter' clause.
	(show_omp_node, show_code_node): Handle (combined) omp masked construct.
	* frontend-passes.c (gfc_code_walker): Likewise.
	* gfortran.h (enum gfc_statement): Add ST_OMP_*_MASKED*.
	(enum gfc_exec_op): Add EXEC_OMP_*_MASKED*.
	* match.h (gfc_match_omp_masked, gfc_match_omp_masked_taskloop,
	gfc_match_omp_masked_taskloop_simd, gfc_match_omp_parallel_masked,
	gfc_match_omp_parallel_masked_taskloop,
	gfc_match_omp_parallel_masked_taskloop_simd): New prototypes.
	* openmp.c (enum omp_mask1): Add OMP_CLAUSE_FILTER.
	(gfc_match_omp_clauses): Match it.
	(OMP_MASKED_CLAUSES, gfc_match_omp_parallel_masked,
	gfc_match_omp_parallel_masked_taskloop,
	gfc_match_omp_parallel_masked_taskloop_simd,
	gfc_match_omp_masked, gfc_match_omp_masked_taskloop,
	gfc_match_omp_masked_taskloop_simd): New.
	(resolve_omp_clauses): Resolve filter clause.
	(gfc_resolve_omp_parallel_blocks, resolve_omp_do,
	omp_code_to_statement, gfc_resolve_omp_directive): Handle
	omp masked constructs.
	* parse.c (decode_omp_directive, case_exec_markers,
	gfc_ascii_statement, parse_omp_do, parse_omp_structured_block,
	parse_executable): Likewise.
	* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
	* st.c (gfc_free_statement): Likewise.
	* trans-openmp.c (gfc_trans_omp_clauses): Handle filter clause.
	(GFC_OMP_SPLIT_MASKED, GFC_OMP_MASK_MASKED): New enum values.
	(gfc_trans_omp_masked): New.
	(gfc_split_omp_clauses): Handle combined masked directives.
	(gfc_trans_omp_master_taskloop): Rename to ...
	(gfc_trans_omp_master_masked_taskloop): ... this; handle also
	combined masked directives.
	(gfc_trans_omp_parallel_master): Rename to ...
	(gfc_trans_omp_parallel_master_masked): ... this; handle
	combined masked directives.
	(gfc_trans_omp_directive): Handle EXEC_OMP_*_MASKED*.
	* trans.c (trans_code): Likewise.

2021-08-15  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/99351
	* match.c (sync_statement): Replace %v code by %e in gfc_match to
	allow for function references as STAT and ERRMSG arguments.
	* resolve.c (resolve_sync): Adjust checks of STAT= and ERRMSG= to
	being definable arguments.  Function references with a data
	pointer result are accepted.
	* trans-stmt.c (gfc_trans_sync): Adjust assertion.

2021-08-12  Tobias Burnus  <tobias@codesourcery.com>

	* gfortran.h (gfc_omp_proc_bind_kind): Add OMP_PROC_BIND_PRIMARY.
	* dump-parse-tree.c (show_omp_clauses): Add TODO comment to
	change 'master' to 'primary' in proc_bind for OpenMP 5.1.
	* intrinsic.texi (OMP_LIB): Mention OpenMP 5.1; add
	omp_proc_bind_primary.
	* openmp.c (gfc_match_omp_clauses): Accept
	'primary' as alias for 'master'.
	* trans-openmp.c (gfc_trans_omp_clauses): Handle
	OMP_PROC_BIND_PRIMARY.

2021-08-11  Sandra Loosemore  <sandra@codesourcery.com>

	* iso-c-binding.def (c_float128, c_float128_complex): Check
	float128_type_node instead of gfc_float128_type_node.
	* trans-types.c (gfc_init_kinds, gfc_build_real_type):
	Update comments re supported 128-bit floating-point types.

2021-08-11  Richard Biener  <rguenther@suse.de>

	* trans-common.c (create_common): Set TREE_THIS_VOLATILE on the
	COMPONENT_REF if the field is volatile.

2021-08-07  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/68568
	* primary.c (gfc_expr_attr): Variable attribute can only be
	inquired when symtree is non-NULL.

2021-07-28  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/101564
	* expr.c (gfc_check_vardef_context): Add check for KIND and LEN
	parameter inquiries.
	* match.c (gfc_match): Fix comment for %v code.
	(gfc_match_allocate, gfc_match_deallocate): Replace use of %v code
	by %e in gfc_match to allow for function references as STAT and
	ERRMSG arguments.
	* resolve.c (resolve_allocate_deallocate): Avoid NULL pointer
	dereferences and shortcut for bad STAT and ERRMSG argument to
	(DE)ALLOCATE.  Remove bogus parts of checks for STAT and ERRMSG.

2021-07-26  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
	    Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/93308
	PR fortran/93963
	PR fortran/94327
	PR fortran/94331
	PR fortran/97046
	* trans-decl.c (convert_CFI_desc): Only copy out the descriptor
	if necessary.
	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Updated attribute
	handling which reflect a previous intermediate version of the
	standard. Only copy out the descriptor if necessary.

2021-07-23  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/101536
	* check.c (array_check): Adjust check for the case of CLASS
	arrays.

2021-07-21  Thomas Schwinge  <thomas@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* dump-parse-tree.c (show_attr): Update.
	* gfortran.h (symbol_attribute): Add 'oacc_routine_nohost' member.
	(gfc_omp_clauses): Add 'nohost' member.
	* module.c (ab_attribute): Add 'AB_OACC_ROUTINE_NOHOST'.
	(attr_bits, mio_symbol_attribute): Update.
	* openmp.c (omp_mask2): Add 'OMP_CLAUSE_NOHOST'.
	(gfc_match_omp_clauses): Handle 'OMP_CLAUSE_NOHOST'.
	(OACC_ROUTINE_CLAUSES): Add 'OMP_CLAUSE_NOHOST'.
	(gfc_match_oacc_routine): Update.
	* trans-decl.c (add_attributes_to_decl): Update.
	* trans-openmp.c (gfc_trans_omp_clauses): Likewise.

2021-07-21  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/101514
	* target-memory.c (gfc_interpret_derived): Size of array component
	of derived type can only be computed here for explicit shape.
	* trans-types.c (gfc_get_nodesc_array_type): Do not dereference
	NULL pointers.

2021-07-21  Tobias Burnus  <tobias@codesourcery.com>

	* decl.c (gfc_verify_c_interop_param): Update for F2008 + F2018
	changes; reject unsupported bits with 'Error: Sorry,'.
	* trans-expr.c (gfc_conv_procedure_call): Fix condition to
	For using CFI descriptor with characters.

2021-07-18  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/101084
	* io.c (resolve_tag_format): Extend FORMAT check to unknown type.

2021-07-14  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/100949
	* trans-expr.c (gfc_trans_class_init_assign): Call
	gfc_conv_expr_present only for dummy variables.

2021-07-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/100227
	* frontend-passes.c (traverse_io_block): Adjust test for
	when a variable is eligible for the transformation to
	array slice.

2021-06-28  Martin Sebor  <msebor@redhat.com>

	* trans-array.c (trans_array_constructor): Replace direct uses
	of TREE_NO_WARNING with warning_suppressed_p, and suppress_warning.
	* trans-decl.c (gfc_build_qualified_array): Same.
	(gfc_build_dummy_array_decl): Same.
	(generate_local_decl): Same.
	(gfc_generate_function_code): Same.
	* trans-openmp.c (gfc_omp_clause_default_ctor): Same.
	(gfc_omp_clause_copy_ctor): Same.
	* trans-types.c (get_dtype_type_node): Same.
	(gfc_get_desc_dim_type): Same.
	(gfc_get_array_descriptor_base): Same.
	(gfc_get_caf_vector_type): Same.
	(gfc_get_caf_reference_type): Same.
	* trans.c (gfc_create_var_np): Same.

2021-06-23  Tobias Burnus  <tobias@codesourcery.com>

	* dump-parse-tree.c (show_omp_clauses): Fix enum type used
	for dumping gfc_omp_defaultmap_category.

2021-06-23  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/100337
	* trans-intrinsic.c (conv_co_collective): Check stat for null ptr
	before dereferrencing.

2021-06-18  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/100283
	PR fortran/101123
	* trans-intrinsic.c (gfc_conv_intrinsic_minmax): Unconditionally
	convert result of min/max to result type.

2021-06-16  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/95501
	PR fortran/95502
	* expr.c (gfc_check_pointer_assign): Avoid NULL pointer
	dereference.
	* match.c (gfc_match_pointer_assignment): Likewise.
	* parse.c (gfc_check_do_variable): Avoid comparison with NULL
	symtree.

2021-06-16  Harald Anlauf  <anlauf@gmx.de>

	Revert:
	2021-06-16  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/95501
	PR fortran/95502
	* expr.c (gfc_check_pointer_assign): Avoid NULL pointer
	dereference.
	* match.c (gfc_match_pointer_assignment): Likewise.
	* parse.c (gfc_check_do_variable): Avoid comparison with NULL
	symtree.

2021-06-16  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/95501
	PR fortran/95502
	* expr.c (gfc_check_pointer_assign): Avoid NULL pointer
	dereference.
	* match.c (gfc_match_pointer_assignment): Likewise.
	* parse.c (gfc_check_do_variable): Avoid comparison with NULL
	symtree.

2021-06-15  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/92568
	* dump-parse-tree.c (show_omp_clauses): Update for defaultmap.
	* f95-lang.c (LANG_HOOKS_OMP_ALLOCATABLE_P,
	LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
	* gfortran.h (enum gfc_omp_defaultmap,
	enum gfc_omp_defaultmap_category): New.
	* openmp.c (gfc_match_omp_clauses): Update defaultmap matching.
	* trans-decl.c (gfc_finish_decl_attrs): Set GFC_DECL_SCALAR_TARGET.
	* trans-openmp.c (gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New.
	(gfc_omp_scalar_p): Take 'ptr_alloc_ok' argument.
	(gfc_trans_omp_clauses, gfc_split_omp_clauses): Update for
	defaultmap changes.
	* trans.h (gfc_omp_scalar_p): Update prototype.
	(gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New.
	(struct lang_decl): Add scalar_target.
	(GFC_DECL_SCALAR_TARGET, GFC_DECL_GET_SCALAR_TARGET): New.

2021-06-14  Tobias Burnus  <tobias@codesourcery.com>

	* resolve.c (resolve_variable): Remove *XCNEW used to
	nullify nullified memory.

2021-06-09  Martin Liska  <mliska@suse.cz>

	* intrinsic.texi: Add missing @headitem to tables with a header.

2021-06-09  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/100965
	* trans-openmp.c (gfc_omp_finish_clause): Gimplify OMP_CLAUSE_SIZE.

2021-06-08  Tobias Burnus  <tobias@codesourcery.com>

	PR middle-end/99928
	* trans-openmp.c (gfc_add_clause_implicitly): New.
	(gfc_split_omp_clauses): Use it.
	(gfc_free_split_omp_clauses): New.
	(gfc_trans_omp_do_simd, gfc_trans_omp_parallel_do,
	gfc_trans_omp_parallel_do_simd, gfc_trans_omp_distribute,
	gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_taskloop,
	gfc_trans_omp_master_taskloop, gfc_trans_omp_parallel_master): Use it.

2021-06-08  Martin Liska  <mliska@suse.cz>

	* intrinsic.texi: Fix typo.
	* trans-expr.c (gfc_trans_pointer_assignment): Likewise.

2021-06-05  José Rui Faustino de Sousa  <jrfsousa@gmail.com>

	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.

2021-06-04  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/99839
	* frontend-passes.c (inline_matmul_assign): Do not inline matmul
	if the assignment to the resulting array if it is not of canonical
	type (real/integer/complex/logical).

2021-06-04  Tobias Burnus  <tobias@codesourcery.com>

	* dump-parse-tree.c (show_code_node): Handle
	EXEC_OMP_(TARGET_)(,PARALLEL_,TEAMS_)LOOP.

2021-06-04  Tobias Burnus  <tobias@codesourcery.com>

	* scanner.c (skip_fixed_omp_sentinel): Set openacc_flag if
	this is not an (OpenMP) continuation line.
	(skip_fixed_oacc_sentinel): Likewise for openmp_flag and OpenACC.
	(gfc_next_char_literal): gfc_error_now to force error for mixed OMP/ACC
	continuation once per location and return '\n'.

2021-06-04  Tobias Burnus  <tobias@codesourcery.com>

	PR middle-end/99928
	* openmp.c (gfc_match_omp_clauses): Fix typo in error message.

2021-06-04  Tobias Burnus  <tobias@codesourcery.com>

	PR middle-end/99928
	* dump-parse-tree.c (show_omp_clauses): Handle bind clause.
	(show_omp_node): Handle loop directive.
	* frontend-passes.c (gfc_code_walker): Likewise.
	* gfortran.h (enum gfc_statement): Add
	ST_OMP_(END_)(TARGET_)(|PARALLEL_|TEAMS_)LOOP.
	(enum gfc_omp_bind_type): New.
	(gfc_omp_clauses): Use it.
	(enum gfc_exec_op): Add EXEC_OMP_(TARGET_)(|PARALLEL_|TEAMS_)LOOP.
	* match.h (gfc_match_omp_loop, gfc_match_omp_parallel_loop,
	gfc_match_omp_target_parallel_loop, gfc_match_omp_target_teams_loop,
	gfc_match_omp_teams_loop): New.
	* openmp.c (enum omp_mask1): Add OMP_CLAUSE_BIND.
	(gfc_match_omp_clauses): Handle it.
	(OMP_LOOP_CLAUSES, gfc_match_omp_loop, gfc_match_omp_teams_loop,
	gfc_match_omp_target_teams_loop, gfc_match_omp_parallel_loop,
	gfc_match_omp_target_parallel_loop): New.
	(resolve_omp_clauses, resolve_omp_do, omp_code_to_statement,
	gfc_resolve_omp_directive): Handle omp loop.
	* parse.c (decode_omp_directive case_exec_markers, gfc_ascii_statement,
	parse_omp_do, parse_executable): Likewise.
	(parse_omp_structured_block): Remove ST_ which use parse_omp_do.
	* resolve.c (gfc_resolve_blocks): Add omp loop.
	* st.c (gfc_free_statement): Likewise.
	* trans-openmp.c (gfc_trans_omp_clauses): Handle bind clause.
	(gfc_trans_omp_do, gfc_trans_omp_parallel_do, gfc_trans_omp_distribute,
	gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_directive):
	Handle loop directive.
	(gfc_split_omp_clauses): Likewise; fix firstprivate/lastprivate
	and (in_)reduction for taskloop.
	* trans.c (trans_code): Handle omp loop directive.

2021-06-01  Tobias Burnus  <tobias@codesourcery.com>

	PR middle-end/99928
	* dump-parse-tree.c (show_omp_node, show_code_node): Handle
	(parallel) master taskloop (simd).
	* frontend-passes.c (gfc_code_walker): Set in_omp_workshare
	to false for parallel master taskloop (simd).
	* gfortran.h (enum gfc_statement):
	Add ST_OMP_(END_)(PARALLEL_)MASTER_TASKLOOP(_SIMD).
	(enum gfc_exec_op): EXEC_OMP_(PARALLEL_)MASTER_TASKLOOP(_SIMD).
	* match.h (gfc_match_omp_master_taskloop,
	gfc_match_omp_master_taskloop_simd,
	gfc_match_omp_parallel_master_taskloop,
	gfc_match_omp_parallel_master_taskloop_simd): New prototype.
	* openmp.c (gfc_match_omp_parallel_master_taskloop,
	gfc_match_omp_parallel_master_taskloop_simd,
	gfc_match_omp_master_taskloop,
	gfc_match_omp_master_taskloop_simd): New.
	(gfc_match_omp_taskloop_simd): Permit 'reduction' clause.
	(resolve_omp_clauses): Handle new combined directives; remove
	inscan-reduction check to reduce multiple errors; add
	task-reduction error for 'taskloop simd'.
	(gfc_resolve_omp_parallel_blocks,
	resolve_omp_do, omp_code_to_statement,
	gfc_resolve_omp_directive): Handle new combined constructs.
	* parse.c (decode_omp_directive, next_statement,
	gfc_ascii_statement, parse_omp_do, parse_omp_structured_block,
	parse_executable): Likewise.
	* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
	* st.c (gfc_free_statement): Likewise.
	* trans.c (trans_code): Likewise.
	* trans-openmp.c (gfc_split_omp_clauses,
	gfc_trans_omp_directive): Likewise.
	(gfc_trans_omp_parallel_master): Move after gfc_trans_omp_master_taskloop;
	handle parallel master taskloop (simd) as well.
	(gfc_trans_omp_taskloop): Take gfc_exec_op as arg.
	(gfc_trans_omp_master_taskloop): New.

2021-05-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* gfortran.texi (BOZ literal constants): Fix typo.

2021-05-28  Tobias Burnus  <tobias@codesourcery.com>

	* dump-parse-tree.c (show_iterator): New.
	(show_omp_namelist): Handle iterators.
	(show_omp_clauses): Handle affinity.
	* gfortran.h (gfc_free_omp_namelist): New union with 'udr' and new 'ns'.
	* match.c (gfc_free_omp_namelist): Add are to choose union element.
	* openmp.c (gfc_free_omp_clauses, gfc_match_omp_detach,
	gfc_match_omp_clause_reduction, gfc_match_omp_flush): Update
	call to gfc_free_omp_namelist.
	(gfc_match_omp_variable_list): Likewise; permit preceeding whitespace.
	(enum omp_mask1): Add OMP_CLAUSE_AFFINITY.
	(gfc_match_iterator): New.
	(gfc_match_omp_clauses): Use it; update call to gfc_free_omp_namelist.
	(OMP_TASK_CLAUSES): Add OMP_CLAUSE_AFFINITY.
	(gfc_match_omp_taskwait): Match depend clause.
	(resolve_omp_clauses): Handle affinity; update for udr/union change.
	(gfc_resolve_omp_directive): Resolve clauses of taskwait.
	* st.c (gfc_free_statement): Update gfc_free_omp_namelist call.
	* trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Likewise
	(handle_iterator): New.
	(gfc_trans_omp_clauses): Handle iterators for depend/affinity clause.
	(gfc_trans_omp_taskwait): Handle depend clause.
	(gfc_trans_omp_directive): Update call.

2021-05-27  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/100602
	* trans-intrinsic.c (gfc_conv_intrinsic_size): Use CLASS data
	attributes for CLASS arrays for generation of runtime error.

2021-05-27  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/100656
	* trans-array.c (gfc_conv_ss_startstride): Do not call check for
	presence of a dummy argument when a symbol actually refers to a
	non-dummy.

2021-05-25  Tobias Burnus  <tobias@codesourcery.com>
	    Johannes Nendwich  <a08727063@unet.univie.ac.at>

	* intrinsic.texi (GERROR, GETARGS, GETLOG, NORM2, PARITY, RANDOM_INIT,
	RANDOM_NUMBER): Fix typos and copy'n'paste errors.

2021-05-24  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/86470
	* trans-expr.c (gfc_copy_class_to_class): Add unshare_expr.
	* trans-openmp.c (gfc_is_polymorphic_nonptr,
	gfc_is_unlimited_polymorphic_nonptr): New.
	(gfc_omp_clause_copy_ctor, gfc_omp_clause_dtor): Handle
	polymorphic scalars.

2021-05-23  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/100551
	* trans-expr.c (gfc_conv_procedure_call): Adjust check for
	implicit conversion of actual argument to an unlimited polymorphic
	procedure argument.

2021-05-23  Tobias Burnus  <tobias@codesourcery.com>

	* intrinsic.texi (ATOMIC_ADD, ATOMIC_FETCH_ADD): Use the
	proper variable name in the description.

2021-05-22  Andre Vehreschild  <vehre@gcc.gnu.org>
	    Steve Kargl  <kargl@gcc.gnu.org>

	PR fortran/98301
	* trans-decl.c (gfc_build_builtin_function_decls): Move decl.
	* trans-intrinsic.c (conv_intrinsic_random_init): Use bool for
	lib-call of caf_random_init instead of logical (4-byte).
	* trans.h: Add tree var for random_init.

2021-05-20  Marcel Vollweiler  <marcel@codesourcery.com>

	* openmp.c (gfc_match_omp_clauses): Support map-type-modifier 'close'.

2021-05-18  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/100642
	* openmp.c (omp_code_to_statement): Add missing EXEC_OMP_DEPOBJ.

2021-05-17  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/98411
	* trans-decl.c (gfc_finish_var_decl): Add check for explicit SAVE
	attribute.

2021-05-17  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/100633
	* resolve.c (gfc_resolve_code): Reject nonintrinsic assignments in
	OMP WORKSHARE.

2021-05-14  Tobias Burnus  <tobias@codesourcery.com>

	* dump-parse-tree.c (show_omp_node, show_code_node): Handle
	EXEC_OMP_PARALLEL_MASTER.
	* frontend-passes.c (gfc_code_walker): Likewise.
	* gfortran.h (enum gfc_statement): Add ST_OMP_PARALLEL_MASTER and
	ST_OMP_END_PARALLEL_MASTER.
	(enum gfc_exec_op): Add EXEC_OMP_PARALLEL_MASTER..
	* match.h (gfc_match_omp_parallel_master): Handle it.
	* openmp.c (gfc_match_omp_parallel_master, resolve_omp_clauses,
	omp_code_to_statement, gfc_resolve_omp_directive): Likewise.
	* parse.c (decode_omp_directive, case_exec_markers,
	gfc_ascii_statement, parse_omp_structured_block,
	parse_executable): Likewise.
	* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
	* st.c (gfc_free_statement): Likewise.
	* trans-openmp.c (gfc_trans_omp_parallel_master,
	gfc_trans_omp_workshare, gfc_trans_omp_directive): Likewise.
	* trans.c (trans_code): Likewise.

2021-05-14  Tobias Burnus  <tobias@codesourcery.com>

	* resolve.c (resolve_symbol): Handle implicit SAVE of main-program
	for vars in 'omp threadprivate' and 'omp declare target'.

2021-05-10  Martin Liska  <mliska@suse.cz>

	* decl.c (variable_decl): Use startswith
	function instead of strncmp.
	(gfc_match_end): Likewise.
	* gfortran.h (gfc_str_startswith): Likewise.
	* module.c (load_omp_udrs): Likewise.
	(read_module): Likewise.
	* options.c (gfc_handle_runtime_check_option): Likewise.
	* primary.c (match_arg_list_function): Likewise.
	* trans-decl.c (gfc_get_symbol_decl): Likewise.
	* trans-expr.c (gfc_conv_procedure_call): Likewise.
	* trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Likewise.

2021-05-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/46991
	PR fortran/99819
	* class.c (gfc_build_class_symbol): Remove the error that
	disables assumed size class arrays. Class array types that are
	not deferred shape or assumed rank are given a unique name and
	placed in the procedure namespace.
	* trans-array.c (gfc_trans_g77_array): Obtain the data pointer
	for class arrays.
	(gfc_trans_dummy_array_bias): Suppress the runtime error for
	extent violations in explicit shape class arrays because it
	always fails.
	* trans-expr.c (gfc_conv_procedure_call): Handle assumed size
	class actual arguments passed to non-descriptor formal args by
	using the data pointer, stored as the symbol's backend decl.

2021-05-05  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/100274
	* interface.c (gfc_compare_actual_formal): Continue checks after
	emitting warning for argument length mismatch.
	* trans-expr.c (gfc_conv_procedure_call): Check for NULL pointer
	dereference.

2021-05-04  Tobias Burnus  <tobias@codesourcery.com>

	PR testsuite/100397
	* trans-openmp.c (gfc_trans_omp_depobj): Fix pasto in enum values.

2021-04-28  Tobias Burnus  <tobias@codesourcery.com>

	* openmp.c (gfc_match_omp_variable_list): Gobble whitespace before
	checking whether a '%' or parenthesis-open follows as next character.

2021-04-28  José Rui Faustino de Sousa  <jrfsousa@gmail.com>

	PR fortran/82376
	* trans-expr.c (gfc_conv_procedure_call): Evaluate function result
	and then pass a pointer.

2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>
	    Tom de Vries  <vries@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* lang.opt (Wopenacc-parallelism): New.

2021-04-24  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/100154
	* check.c (variable_check): Allow function reference having a data
	pointer result.
	(arg_strlen_is_zero): New function.
	(gfc_check_fgetputc_sub): Add static check of character and status
	arguments.
	(gfc_check_fgetput_sub): Likewise.
	* intrinsic.c (add_subroutines): Fix argument name for the
	character argument to intrinsic subroutines fget[c], fput[c].

2021-04-24  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/100218
	* expr.c (gfc_check_vardef_context): Extend check to allow pointer
	from a function reference.

2021-04-22  Martin Liska  <mliska@suse.cz>

	PR testsuite/100159
	PR testsuite/100192
	* frontend-passes.c (optimize_expr): Fix typos and missing comments.

2021-04-22  Michael Meissner  <meissner@linux.ibm.com>

	PR fortran/96983
	* trans-intrinsic.c (build_round_expr): If int type is larger than
	long long, do the round and convert to the integer type.  Do not
	try to find a floating point type the exact size of the integer
	type.

2021-04-21  Tobias Burnus  <tobias@codesourcery.com>

	* dump-parse-tree.c (show_omp_namelist): Handle depobj + mutexinoutset
	in the depend clause.
	(show_omp_clauses, show_omp_node, show_code_node): Handle depobj.
	* gfortran.h (enum gfc_statement): Add ST_OMP_DEPOBJ.
	(enum gfc_omp_depend_op): Add OMP_DEPEND_UNSET,
	OMP_DEPEND_MUTEXINOUTSET and OMP_DEPEND_DEPOBJ.
	(gfc_omp_clauses): Add destroy, depobj_update and depobj.
	(enum gfc_exec_op): Add EXEC_OMP_DEPOBJ
	* match.h (gfc_match_omp_depobj): Match 'omp depobj'.
	* openmp.c (gfc_match_omp_clauses): Add depobj + mutexinoutset
	to depend clause.
	(gfc_match_omp_depobj, resolve_omp_clauses, gfc_resolve_omp_directive):
	Handle 'omp depobj'.
	* parse.c (decode_omp_directive, next_statement, gfc_ascii_statement):
	Likewise.
	* resolve.c (gfc_resolve_code): Likewise.
	* st.c (gfc_free_statement): Likewise.
	* trans-openmp.c (gfc_trans_omp_clauses): Handle depobj + mutexinoutset
	in the depend clause.
	(gfc_trans_omp_depobj, gfc_trans_omp_directive): Handle EXEC_OMP_DEPOBJ.
	* trans.c (trans_code): Likewise.

2021-04-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/100110
	* trans-decl.c (gfc_get_symbol_decl): Replace test for host
	association with a check that the current and symbol namespaces
	are the same.

2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>

	* lang.opt (fopenacc-kernels=): Remove.

2021-04-16  José Rui Faustino de Sousa  <jrfsousa@gmail.com>

	PR fortran/100094
	* trans-array.c (gfc_trans_deferred_array): Add code to initialize
	pointers and allocatables with correct TKR parameters.

2021-04-16  José Rui Faustino de Sousa  <jrfsousa@gmail.com>

	PR fortran/100018
	* resolve.c: Add association check before de-referencing pointer.

2021-04-16  Harald Anlauf  <anlauf@gmx.de>
	    Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/63797
	* module.c (write_symtree): Do not write interface of intrinsic
	procedure to module file for F2003 and newer.

2021-04-15  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/99307
	* symbol.c: Remove trailing white space.
	* trans-array.c (gfc_trans_create_temp_array): Create a class
	temporary for class expressions and assign the new descriptor
	to the data field.
	(build_class_array_ref): If the class expr can be extracted,
	then use that for 'decl'. Class function results are reliably
	handled this way. Call gfc_find_and_cut_at_last_class_ref to
	eliminate largely redundant code. Remove dead code and recast
	the rest of the code to extract 'decl' for remaining cases.
	Call gfc_build_spanned_array_ref.
	(gfc_alloc_allocatable_for_assignment): Use class descriptor
	element length for 'elemsize1'. Eliminate repeat set of dtype
	for class expressions.
	* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Include
	additional code from build_class_array_ref, and use optional
	gfc_typespec pointer argument.
	(gfc_trans_scalar_assign): Make use of pre and post blocks for
	all class expressions.
	* trans.c (get_array_span): For unlimited polymorphic exprs
	multiply the span by the value of the _len field.
	(gfc_build_spanned_array_ref): New function.
	(gfc_build_array_ref): Call gfc_build_spanned_array_ref and
	eliminate repeated code.
	* trans.h: Add arg to gfc_find_and_cut_at_last_class_ref and
	add prototype for gfc_build_spanned_array_ref.

2021-04-14  Martin Liska  <mliska@suse.cz>

	* intrinsic.texi: The table has first column empty and it makes
	trouble when processing makeinfo --xml output.

2021-04-09  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99817
	* trans-types.c (gfc_get_function_type): Also generate hidden
	coarray argument for character arguments.

2021-04-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/99818
	* interface.c (compare_parameter): The codimension attribute is
	applied to the _data field of class formal arguments.

2021-04-01  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/99840
	* simplify.c (gfc_simplify_transpose): Properly initialize
	resulting shape.

2021-03-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/99602
	* trans-expr.c (gfc_conv_procedure_call): Use the _data attrs
	for class expressions and detect proc pointer evaluations by
	the non-null actual argument list.

2021-03-27  Steve Kargl  <kargl@gcc.gnu.org>

	* misc.c (gfc_typename): Fix off-by-one in buffer sizes.

2021-03-26  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99651
	* intrinsic.c (gfc_intrinsic_func_interface): Set
	attr.proc = PROC_INTRINSIC if FL_PROCEDURE.

2021-03-24  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99369
	* resolve.c (resolve_operator): Make 'msg' buffer larger
	and use snprintf.

2021-03-23  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/93660
	* trans-decl.c (build_function_decl): Add comment;
	increment hidden_typelist for caf_token/caf_offset.
	* trans-types.c (gfc_get_function_type): Add comment;
	add missing caf_token/caf_offset args.

2021-03-22  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99688
	* match.c (select_type_set_tmp, gfc_match_select_type,
	gfc_match_select_rank): Fix 'name' buffersize to avoid out of bounds.
	* resolve.c (resolve_select_type): Likewise.

2021-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.c (inline_limit_check): Add rank_a
	argument. If a is rank 1, set the second dimension to 1.
	(inline_matmul_assign): Pass rank_a argument to inline_limit_check.
	(call_external_blas): Likewise.

2021-03-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/99345
	* frontend-passes.c (doloop_contained_procedure_code):
	Properly handle EXEC_IOLENGTH.

2021-03-15  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/99545
	* trans-stmt.c (gfc_trans_allocate): Mark the initialization
	assignment by setting init_flag.

2021-03-14  Harald Anlauf  <anlauf@gmx.de>
	    Paul Thomas  <pault@gcc.gnu.org>

	* trans-expr.c (gfc_conv_procedure_call): Fix runtime checks for
	CLASS arguments.
	* trans-intrinsic.c (gfc_conv_intrinsic_size): Likewise.

2021-03-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/99125
	* trans-array.c (gfc_conv_expr_descriptor): For deferred length
	length components use the ss_info string length instead of
	gfc_get_expr_charlen. Make sure that the deferred string length
	is a variable before assigning to it. Otherwise use the expr.
	* trans-expr.c (gfc_conv_string_length): Make sure that the
	deferred string length is a variable before assigning to it.

2021-03-12  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99514
	* resolve.c (resolve_symbol): Accept vars which are in DATA
	and hence (either) implicit SAVE (or in common).

2021-03-10  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/99205
	* data.c (gfc_assign_data_value): Reject non-constant character
	length for lvalue.
	* trans-array.c (gfc_conv_array_initializer): Restrict loop to
	elements which are defined to avoid NULL pointer dereference.

2021-03-10  Tobias Burnus  <tobias@codesourcery.com>

	* intrinsic.texi (MIN): Correct 'maximum' to 'minimum'.

2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>

	PR fortran/96983
	* trans-intrinsic.c (build_round_expr): Do not implicitly assume
	that __float128 is the 128-bit floating-point type.

2021-03-08  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/49278
	* data.c (gfc_assign_data_value): Reject variable with PARAMETER
	attribute in DATA statement.

2021-03-05  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99355
	PR fortran/57871
	* invoke.texi (-freal{4,8}-real-*): Extend description.
	* primary.c (match_real_constant): Also promote real literals
	with '_kind' number.

2021-03-04  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99355
	* decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Avoid
	redoing kind conversions.
	* primary.c (match_real_constant): Likewise.

2021-02-28  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/99303
	* openmp.c (gfc_omp_requires_add_clause): Fix up diagnostic message
	wordings.
	(resolve_omp_clauses): Likewise.

2021-02-28  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/99300
	* frontend-passes.c (doloop_code): Replace double space in diagnostics
	with a single space.

2021-02-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/98342
	* trans-expr.c (gfc_conv_derived_to_class): Add optional arg.
	'derived_array' to hold the fixed, parmse expr in the case of
	assumed rank formal arguments. Deal with optional arguments.
	(gfc_conv_procedure_call): Null 'derived' array for each actual
	argument. Add its address to the call to gfc_conv_derived_to_
	class. Access the 'data' field of scalar descriptors before
	deallocating allocatable components. Also strip NOPs before the
	calls to gfc_deallocate_alloc_comp. Use 'derived' array as the
	input to gfc_deallocate_alloc_comp if it is available.
	* trans.h : Include the optional argument 'derived_array' to
	the prototype of gfc_conv_derived_to_class. The default value
	is NULL_TREE.

2021-02-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/99124
	* resolve.c (resolve_fl_procedure): Include class results in
	the test for F2018, C15100.
	* trans-array.c (get_class_info_from_ss): Do not use the saved
	descriptor to obtain the class expression for variables. Use
	gfc_get_class_from_expr instead.

2021-02-23  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/99206
	* simplify.c (gfc_simplify_reshape): Set string length for
	character arguments.

2021-02-22  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99171
	* trans-openmp.c (gfc_omp_is_optional_argument): Regard optional
	dummy procs as nonoptional as no special treatment is needed.

2021-02-21  Harald Anlauf  <anlauf@gmx.de>

	* trans-expr.c (gfc_conv_procedure_call): Do not add clobber to
	allocatable intent(out) argument.

2021-02-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/98686
	* match.c (gfc_match_namelist): If BT_UNKNOWN, check for
	IMPLICIT NONE and and issue an error, otherwise set the type
	to its IMPLICIT type so that any subsequent use of objects will
	will confirm their types.

2021-02-19  Harald Anlauf  <anlauf@gmx.de>

	* symbol.c (gfc_add_flavor): Reverse order of conditions.

2021-02-19  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99010
	* dependency.c (gfc_dep_resolver): Fix coarray handling.

2021-02-19  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99146
	* interface.c:

2021-02-19  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99027
	* simplify.c (simplify_bound_dim): Honor DIMEN_ELEMENT
	when using dim=.

2021-02-17  Julian Brown  <julian@codesourcery.com>

	* openmp.c (resolve_omp_clauses): Disallow selecting components
	of arrays of derived type.

2021-02-17  Julian Brown  <julian@codesourcery.com>

	* trans-openmp.c (gfc_trans_omp_clauses): Handle element selection
	for arrays of derived types.

2021-02-16  Tobias Burnus  <tobias@codesourcery.com>

	* expr.c (gfc_is_simplify_contiguous): Handle REF_INQUIRY, i.e.
	%im and %re which are EXPR_VARIABLE.
	* openmp.c (resolve_omp_clauses): Diagnose %re/%im explicitly.

2021-02-16  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99111
	* io.c (resolve_tag_format): Reject BT_DERIVED/CLASS/VOID
	as (array-valued) FORMAT tag.

2021-02-12  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/99043
	* trans-expr.c (gfc_conv_procedure_call): Don't reset
	rank of assumed-rank array.

2021-02-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/98897
	* match.c (gfc_match_call): Include associate names as possible
	entities with typebound subroutines. The target needs to be
	resolved for the type.

2021-02-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/99060
	* primary.c (gfc_match_varspec): Test for non-null 'previous'
	before using its name in the error message.

2021-02-11  Tobias Burnus  <tobias@codesourcery.com>

	* intrinsic.texi (FINDLOC): Add 'MASK' to argument table.
	(MAXLOC, MAXVAL, MINLOC, MINVAL): For 'MASK', remove 'an
	array' as scalars are also permitted.

2021-02-10  Julian Brown  <julian@codesourcery.com>

	PR fortran/98979
	* openmp.c (resolve_omp_clauses): Omit OpenACC update in
	contiguity check and stride-specified error.

2021-02-04  Julian Brown  <julian@codesourcery.com>

	* openmp.c (resolve_omp_clauses): Omit OpenACC update in
	contiguity check and stride-specified error.

2021-02-04  Julian Brown  <julian@codesourcery.com>

	* trans-openmp.c (gfc_trans_omp_clauses): Use class_pointer attribute
	for BT_CLASS.

2021-02-04  Julian Brown  <julian@codesourcery.com>

	* trans-openmp.c (gfc_trans_omp_clauses): Fix dereferencing for
	BT_DERIVED members.

2021-02-04  Tobias Burnus  <tobias@codesourcery.com>

	* openmp.c (resolve_omp_clauses): Explicitly diagnose
	substrings as not permitted.

2021-02-03  Jeff Law  <law@redhat.com>

	* intrinsic.texi (ANINT): Fix typo.

2021-02-03  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/98913
	* dependency.c (gfc_dep_resolver): Treat local access
	to coarrays like any array access in dependency analysis.

2021-01-28  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/86470
	* trans.c (gfc_call_malloc): Allocate area of size 1 if passed
	size is NULL (as documented).

2021-01-27  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/93924
	PR fortran/93925
	* trans-expr.c (gfc_conv_procedure_call): Suppress the call to
	gfc_conv_intrinsic_to_class for unlimited polymorphic procedure
	pointers.
	(gfc_trans_assignment_1): Similarly suppress class assignment
	for class valued procedure pointers.

2021-01-27  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/98472
	* trans-array.c (gfc_conv_expr_descriptor): Include elemental
	procedure pointers in the assert under the comment 'elemental
	function' and eliminate the second, spurious assert.

2021-01-25  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/70070
	* data.c (create_character_initializer): Check substring indices
	against bounds.
	(gfc_assign_data_value): Catch error returned from
	create_character_initializer.

2021-01-25  Tobias Burnus  <tobias@codesourcery.com>

	* intrinsic.texi (CO_BROADCAST, CO_MIN, CO_REDUCE, CO_SUM): Fix typos.

2021-01-25  Steve Kargl  <kargl@gcc.gnu.org>

	PR fortran/98517
	* resolve.c (resolve_charlen): Check that length expression is
	present before testing for scalar/integer..

2021-01-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/98565
	* trans-intrinsic.c (gfc_conv_associated): Do not add a _data
	component for scalar class function targets. Instead, fix the
	function result and access the _data from that.

2021-01-21  Jorge D'Elia  <jdelia@cimec.unl.edu.ar>

	* intrinsic.texi (CO_MAX): Fix typo.

2021-01-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/96320
	* decl.c (gfc_match_modproc): It is not an error to find a
	module procedure declaration within a contains block.
	* expr.c (gfc_check_vardef_context): Pure procedure result is
	assignable. Change 'own_scope' accordingly.
	* resolve.c (resolve_typebound_procedure): A procedure that
	has the module procedure attribute is almost certainly a
	module procedure, whatever its interface.

2021-01-19  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/98476
	* openmp.c (resolve_omp_clauses): Change use_device_ptr
	to use_device_addr for unless type(c_ptr); check all
	list item for is_device_ptr.

2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* dump-parse-tree.c (show_omp_clauses): Handle detach clause.
	* frontend-passes.c (gfc_code_walker): Walk detach expression.
	* gfortran.h (struct gfc_omp_clauses): Add detach field.
	(gfc_c_intptr_kind): New.
	* openmp.c (gfc_free_omp_clauses): Free detach clause.
	(gfc_match_omp_detach): New.
	(enum omp_mask1): Add OMP_CLAUSE_DETACH.
	(enum omp_mask2): Remove OMP_CLAUSE_DETACH.
	(gfc_match_omp_clauses): Handle OMP_CLAUSE_DETACH for OpenMP.
	(OMP_TASK_CLAUSES): Add OMP_CLAUSE_DETACH.
	(resolve_omp_clauses): Prevent use of detach with mergeable and
	overriding the data sharing mode of the event handle.
	* trans-openmp.c (gfc_trans_omp_clauses): Handle detach clause.
	* trans-types.c (gfc_c_intptr_kind): New.
	(gfc_init_kinds): Initialize gfc_c_intptr_kind.
	* types.def
	(BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
	to...
	(BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
	...this.  Add extra argument.

2021-01-14  Harald Anlauf  <anlauf@gmx.de>

	* gfortran.h (gfc_resolve_substring): Add prototype.
	* primary.c (match_string_constant): Simplify substrings with
	constant starting and ending points.
	* resolve.c: Rename resolve_substring to gfc_resolve_substring.
	(gfc_resolve_ref): Use renamed function gfc_resolve_substring.

2021-01-14  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/98661
	* resolve.c (resolve_component): Derived type components with
	ALLOCATABLE or POINTER attribute shall have a deferred shape.

2021-01-14  Harald Anlauf  <anlauf@gmx.de>

	Revert:
	2021-01-14  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/98661
	* resolve.c (resolve_component): Derived type components with
	ALLOCATABLE or POINTER attribute shall have a deferred shape.

2021-01-14  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/98661
	* resolve.c (resolve_component): Derived type components with
	ALLOCATABLE or POINTER attribute shall have a deferred shape.

2021-01-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/93794
	* trans-expr.c (gfc_conv_component_ref): Remove the condition
	that deferred character length components only be allocatable.

2021-01-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/98458
	* simplify.c (is_constant_array_expr): If an array constructor
	expression has elements other than constants or structures, try
	fixing the expression with gfc_reduce_init_expr. Also, if shape
	is NULL, obtain the array size and set it.

2021-01-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/93701
	* resolve.c (find_array_spec): Put static prototype for
	resolve_assoc_var before this function and call for associate
	variables.

2021-01-06  Harald Anlauf  <anlauf@gmx.de>

	* resolve.c (resolve_component): Add check for valid CLASS
	reference before trying to access CLASS data.

2021-01-04  Martin Liska  <mliska@suse.cz>

	* ChangeLog-2018: Remove duplicate ChangeLog entries.

2021-01-01  Harald Anlauf  <anlauf@gmx.de>

	* class.c (gfc_find_vtab): Add check on attribute is_class.

2021-01-01  Jakub Jelinek  <jakub@redhat.com>

	* gfortranspec.c (lang_specific_driver): Update copyright notice
	dates.
	* gfc-internals.texi: Bump @copying's copyright year.
	* gfortran.texi: Ditto.
	* intrinsic.texi: Ditto.
	* invoke.texi: Ditto.

2021-01-01  Jakub Jelinek  <jakub@redhat.com>

	* ChangeLog-2020: Rotate ChangeLog.  New file.

Copyright (C) 2021 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
