2026-08-07  Release Manager

	* GCC 16.2.0 released.

2026-07-14  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2026-06-30  Jakub Jelinek  <jakub@redhat.com>

	PR c/125935
	* c-decl.cc (c_init_decl_processing): Use "bool" rather than "_Bool"
	as the name of boolean_type_node for C23+.

2026-07-05  Kees Cook  <kees@kernel.org>

	Backported from master:
	2026-06-19  Kees Cook  <kees@kernel.org>

	PR c/125604
	* c-typeck.cc (build_unary_op): Unwrap .ACCESS_WITH_SIZE
	from the operand before further processing.

2026-07-05  Martin Uecker  <uecker@tugraz.at>

	Backported from master:
	2026-06-03  Martin Uecker  <uecker@tugraz.at>

	PR c/123569
	* c-parser.cc (mark_exp_read_cond): New function.
	(c_parser_unary_expression): Use mark_exp_read_cond.
	(c_parser_postfix_expression_after_primary): Likewise.
	* c-typeck.cc (build_unary_op): Remove dead code and
	add checking assertion.

2026-06-13  Martin Uecker  <uecker@tugraz.at>

	Backported from master:
	2026-06-03  Martin Uecker  <uecker@tugraz.at>

	PR c/125252
	* c-typeck.cc (ptr_to_tagged_member): Return type of member.
	(c_type_canonical): Use incomplete type.

2026-06-13  Martin Uecker  <uecker@tugraz.at>

	Backported from master:
	2026-04-25  Martin Uecker  <uecker@tugraz.at>

	PR c/124303
	* c-decl.cc (finish_struct): Check for consistency of
	declarations after completing variants.

2026-06-13  Martin Uecker  <uecker@tugraz.at>

	Backported from master:
	2026-05-06  Martin Uecker  <uecker@tugraz.at>

	PR c/124985
	* c-decl.cc (pushtag): Update comment.
	(declspecs_add_type): Mark TYPE_STUB_DECL as used.
	* c-typeck.cc (function_to_pointer_conversion): Fix grammar in comment.

2026-05-15  Andi Kleen  <ak@gcc.gnu.org>

	PR c/124532
	* c-parser.cc (struct attr_state): Add reset method.
	(c_parser_compound_statement_nostart): Rename a to astate.
	Reset state before iterating statements.

2026-04-30  Release Manager

	* GCC 16.1.0 released.

2026-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/124969
	* c-typeck.cc (build_access_with_size_for_counted_by): Use
	size_one_node instead of build_one_cst (size_type_node).  Punt
	if element_size is NULL_TREE.

2026-04-09  Dhruv Chawla  <dhruvc@nvidia.com>

	* Make-lang.in (create_fdas_for_cc1): Use $(AFDO_PROFILER) when passing
	--profiler to create_gcov. Ensure that perf.data contains profile for
	cc1. Make the console output more useful.

2026-04-01  Martin Uecker  <uecker@tugraz.at>

	PR c/124635
	* c-typeck.cc (c_reconstruct_complex_type): Copy
	TYPE_REVERSE_STORAGE_ORDER.

2026-03-24  Martin Uecker  <uecker@tugraz.at>

	PR c/123424
	* c-decl.cc (c_update_variably_modified): New function.
	(finish_struct): Call c_update_variably_modified.
	* c-tree.h (c_variably_modified_p): Recurse if necessary.
	* c-typeck.cc (c_verify_type): Update.
	(c_set_type_bits): Use c_variably_modified_p.
	(mark_decl_used): Dito.
	(build_function_call_vec): Dito.
	(c_build_qualified_type): Dito.
	* c-objc-common.cc (c_var_p): Dito.

2026-03-18  Dhruv Chawla  <dhruvc@nvidia.com>

	* Make-lang.in (cc1.fda): Add `--print-autofdo-gcov-version` to
	profile_merger invocation.
	(create_fdas_for_cc1): Add `--print-autofdo-gcov-version` to
	create_gcov invocations.

2026-03-10  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR c/123461
	* c-decl.cc (declspecs_add_type): Move mark_decl_used
	call after the check for error mark node.

2026-03-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR c/97991
	* c-parser.cc (c_parser_consume_token): Allow
	CPP_PRAGMA if inside a pragma.

2026-03-03  Martin Uecker  <uecker@tugraz.at>

	PR c/122572
	* c-decl.cc (finish_struct): Add distinct canonical type.
	* c-tree.h (c_type_canonical): Prototype for new function.
	* c-typeck.cc (c_type_canonical): New function.
	(ptr_to_tagged_member): New function.

2026-03-03  Martin Uecker  <uecker@tugraz.at>

	PR c/122572
	* c-typeck.cc (tagged_types_tu_compatible_p): Fix check.

2026-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR c/123365
	* c-decl.cc (build_compound_literal): Call relayout_decl
	after completing the type.

2026-02-13  Dhruv Chawla  <dhruvc@nvidia.com>

	* Make-lang.in (cc1.fda): Likewise.

2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>

	PR middle-end/123892
	* c-decl.cc: Replace CONST_CAST with const_cast<>.
	* c-parser.cc: Likewise.

2026-02-05  Michal Jires  <mjires@suse.cz>

	PR testsuite/123559
	* c-decl.cc (c_write_global_declarations_1): Check and suppress
	OPT_Wunused.
	* c-typeck.cc (build_asm_expr): Suppress OPT_Wunused.

2026-02-05  Jakub Jelinek  <jakub@redhat.com>

	Revert:
	2026-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR c/101312
	* c-tree.h (c_build_lang_qualified_type): Declare.
	* c-objc-common.h (LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Define.
	* c-objc-common.cc (c_build_lang_qualified_type): New function.

2026-01-28  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR c++/102846
	PR c/102846
	* c-decl.cc (lookup_name_fuzzy): Lookup function-like macro and
	notify of misuse there.

2026-01-28  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>

	PR c/123583
	* c-parser.cc (c_parser_maybe_reclassify_token): Reclassify only
	C_ID_ID and C_ID_TYPENAME tokens.

2026-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR c/101312
	* c-tree.h (c_build_lang_qualified_type): Declare.
	* c-objc-common.h (LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Define.
	* c-objc-common.cc (c_build_lang_qualified_type): New function.

2026-01-27  Qing Zhao  <qing.zhao@oracle.com>

	PR c/123500
	* c-typeck.cc (build_c_cast): Exclude call to .ACCESS_WITH_SIZE from
	-Wbad-function-cast warnings.

2026-01-16  Jakub Jelinek  <jakub@redhat.com>
	    Peter Damianov  <peter0x44@disroot.org>

	PR c/123437
	* c-typeck.cc (build_binary_op): Don't use RDIV_EXPR
	resultcode if both types are integral, _BitInt or
	newly VECTOR_TYPE of ENUMERAL_TYPE.

2026-01-14  Qing Zhao  <qing.zhao@oracle.com>

	* c-decl.cc (grokfield): Call verify_counted_by_for_top_anonymous_type
	for named field.
	(verify_counted_by_attribute): Change the prototype to a recursive
	routine.
	(verify_counted_by_for_top_anonymous_type): New routine.
	(finish_struct): Set C_TYPE_FIELDS_HAS_COUNTED_BY and call the routine
	verify_counted_by_attribute only for named structure.
	* c-parser.cc (c_parser_declaration_or_fndef): Call
	verify_counted_by_for_top_anonymous_type for the decl.
	(c_parser_parameter_declaration): Call
	verify_counted_by_for_top_anonymous_type for the parameter.
	(c_parser_type_name): Call verify_counted_by_for_top_anonymous_type
	for the type.
	* c-tree.h (C_TYPE_FIELDS_HAS_COUNTED_BY): New flag.
	(verify_counted_by_for_top_anonymous_type): New routine.
	* c-typeck.cc (build_counted_by_ref): Locate the root named structure,
	build a chain of component_ref starting from the root structure.

2026-01-13  Martin Uecker  <uecker@tugraz.at>

	PR c/123309
	* c-typeck.cc (transparent_union_replacement): New function.
	(composite_type_internal): Rewrite logic.
	(type_lists_compatible_p): Remove dead code for NULL arguments.

2026-01-10  Martin Uecker  <uecker@tugraz.at>

	PR c/123435
	PR c/123463
	* c-typeck.cc (comptypes_internal): Test for qualifiers first.

2026-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/123475
	* c-typeck.cc (c_find_var_r): New function.
	(convert_lvalue_to_rvalue): If c_build_function_call_vec
	folded __atomic_load (&expr, &tmp, SEQ_CST); into
	(void) (tmp = __atomic_load_<N> (&expr, SEQ_CST)), drop
	TREE_ADDRESSABLE flag from tmp and set TARGET_EXPR
	initializer just to the rhs of the MODIFY_EXPR.

2026-01-08  Qing Zhao  <qing.zhao@oracle.com>

	* c-parser.cc (has_counted_by_object): Support pointers.
	(get_counted_by_ref): Support pointers.
	(c_parser_postfix_expression): Support pointers.

2026-01-07  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (OMP_GROUPPRIVATE_CLAUSE_MASK,
	c_parser_omp_groupprivate): New.
	(c_parser_pragma): Call it.
	(c_maybe_parse_omp_decl): Uncomment PRAGMA_OMP_GROUPPRIVATE
	check.

2026-01-03  Martin Uecker  <uecker@tugraz.at>

	PR c/121507
	* c-decl.cc (start_function): Adapt condition.

2026-01-03  Martin Uecker  <uecker@tugraz.at>

	PR c/121081
	* c-typeck.cc (composite_type_internal): Properly copy
	atomic qualifier.

2026-01-03  Martin Uecker  <uecker@tugraz.at>

	PR c/117687
	* c-typeck.cc (parser_build_binary_op,build_conditional_expr,
	convert_for_assignment): Adapt conditions.

2025-12-23  Dhruv Chawla  <dhruvc@nvidia.com>

	* Make-lang.in: Bump GCOV version to 3.

2025-12-19  Jakub Jelinek  <jakub@redhat.com>

	* gimple-parser.cc (c_parser_gimple_switch_stmt): Fix comment typo,
	statment -> statement.

2025-12-19  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_parser_omp_clause_uses_allocators): Accept
	multiple clause-argument-specifications separated by ';'.

2025-12-18  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_parser_omp_assumption_clauses): Add
	no_openmp_constructs clause.

2025-12-18  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (OMP_TARGET_CLAUSE_MASK): Add
	device_type clause.

2025-12-13  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_omp_clause_reduction): Provide fixit hints
	for -Wdeprecated-openmp diagnostics.
	(c_parser_omp_clause_linear): Likewise.
	(c_parser_omp_clause_depend): Likewise.  Add HERE argument.
	(c_parser_omp_clause_map): Provide fixit hints for -Wdeprecated-openmp
	diagnostics.  Reset num_commas after the diagnostics.
	(c_parser_omp_clause_proc_bind): Provide fixit hints for
	-Wdeprecated-openmp diagnostics.
	(c_parser_omp_all_clauses): Move -Wdeprecated-openmp diagnostics
	for to vs. enter here, add fixit hints for it.  Adjust
	c_parser_omp_clause_depend caller.
	(c_parser_omp_depobj): Adjust c_parser_omp_clause_depend caller.
	(c_parser_omp_master): Add MASTER_LOC argument.  Provide fixit hints
	for -Wdeprecated-openmp diagnostics.
	(c_parser_omp_parallel): Adjust c_parser_omp_master caller.
	(c_parser_omp_declare_target): Don't emit -Wdeprecated-openmp
	warning for to vs. enter here.
	(c_parser_omp_metadirective): Provide fixit hints for
	-Wdeprecated-openmp diagnostics.
	(c_parser_omp_construct): Adjust c_parser_omp_master caller.

2025-12-12  Chung-Lin Tang  <cltang@baylibre.com>
	    Tobias Burnus  <tburnus@baylibre.com>
	    Andrew Stubbs  <ams@baylibre.com>

	* c-parser.cc (c_parser_omp_clause_uses_allocators): New function.
	(c_parser_omp_clause_name, c_parser_omp_all_clauses,
	OMP_TARGET_CLAUSE_MASK): Handle uses_allocators.
	* c-typeck.cc (c_finish_omp_clauses): Likewise.

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

	PR testsuite/123098
	* c-parser.cc (c_parser_omp_clause_reduction): Only emit
	-Wdeprecated-openmp warning for CPP_MINUS if is_omp.

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

	* c-parser.cc (c_parser_omp_clause_reduction,
	c_parser_omp_clause_linear, c_parser_omp_clause_depend,
	c_parser_omp_clause_map, c_parser_omp_clause_proc_bind,
	c_parser_omp_master, c_parser_omp_declare_target,
	c_parser_omp_metadirective): Formatting fixes.

2025-12-11  supers1ngular  <supers1ngular@baylibre.com>

	* c-parser.cc (c_parser_omp_clause_reduction): Deprecate '-'
	operator for reductions.
	(c_parser_omp_clause_linear): Deprecate modifiers with parens.
	(c_parser_omp_clause_depend): Deprecate 'sink' and 'source'
	modifiers for 'depend' clause.
	(c_parser_omp_clause_map): Map clause modifiers comma-separated.
	(c_parser_omp_declare_target): Deprecate synonymous omp declare
	target for omp begin declare target. Deprecate 'to' clause.
	(c_parser_omp_metadirective): Deprecate default clause on
	metadirectives.

2025-12-11  supers1ngular  <supers1ngular@baylibre.com>

	* c-parser.cc (c_parser_omp_clause_proc_bind): Deprecate master
	affinity.
	(c_parser_omp_master): Deprecate master construct.
	(c_parser_transaction): Whitespace.

2025-12-09  Qing Zhao  <qing.zhao@oracle.com>

	PR c/122982
	* c-typeck.cc (build_access_with_size_for_counted_by): Call
	c_fully_fold on the first parameter.

2025-12-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/123018
	* c-decl.cc (finish_struct): Diagnose bit-fields with vector type.

2025-12-05  Richard Biener  <rguenther@suse.de>

	* gimple-parser.cc (c_parser_gimple_postfix_expression):
	Parse optional clique : base specifier on __MEM.

2025-12-05  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_parser_omp_clause_dyn_groupprivate): New.
	(OMP_TARGET_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_DYN_GROUPPRIVATE;
	sort clauses alphabetically.
	(c_parser_omp_clause_name, c_parser_omp_all_clauses):
	Handle 'dyn_groupprivate' clause.
	* c-typeck.cc (c_finish_omp_clauses): Likewise.

2025-11-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/121506
	* c-typeck.cc (c_type_tag): If TYPE_NAME is TYPE_DECL
	with non-NULL DECL_NAME, return that.

2025-11-26  Alejandro Colomar  <alx@kernel.org>

	* c-parser.cc (c_parser_maxof_or_minof_expression): New func.
	(c_parser_unary_expression): Add RID_MAXOF & RID_MINOF cases.
	* c-tree.h (c_expr_maxof_type): New prototype.
	(c_expr_minof_type): New prototype.
	* c-typeck.cc (c_expr_maxof_type): New function.
	(c_expr_minof_type): New function.

2025-11-22  Sandra Loosemore  <sloosemore@baylibre.com>
	    Julian Brown  <julian@codesourcery.com>

	* c-decl.cc (current_omp_declare_variant_attribute): Define.
	* c-lang.h (struct c_omp_declare_variant_attr): Declare.
	(current_omp_declare_variant_attribute): Declare.
	* c-parser.cc (struct omp_begin_declare_variant_map_entry): New.
	(omp_begin_declare_variant_map): New.
	(c_parser_skip_to_pragma_omp_end_declare_variant): New.
	(c_parser_translation_unit): Check for "omp begin declare variant"
	with no matching "end".  Record base functions for variants.
	(c_parser_declaration_or_fndef): Handle functions in "omp begin
	declare variant" block.
	(c_finish_omp_declare_variant): Merge context selectors with
	surrounding "omp begin declare variant".
	(JOIN_STR): Define.
	(omp_start_variant_function): New.
	(omp_finish_variant_function): New.
	(c_parser_omp_begin): Handle "omp begin declare variant".
	(c_parser_omp_end): Likewise.

2025-11-10  Alejandro Colomar  <alx@kernel.org>

	* c-parser.cc (c_parser_sizeof_expression): Remove function.
	(c_parser_countof_expression): Remove function.
	(c_parser_unary_expression): Store the 'rid', and pass it
	directly to the function calls, without calling wrappers.

2025-11-10  Tejas Belagod  <tejas.belagod@arm.com>

	* c-typeck.cc (build_binary_op): Support vector boolean types.

2025-11-04  Alejandro Colomar  <alx@kernel.org>

	* c-decl.cc (start_function):
	Rename warn_parm_array_mismatch => warn_parms_array_mismatch.
	* c-parser.cc (c_parser_declaration_or_fndef):
	Rename warn_parm_array_mismatch => warn_parms_array_mismatch.

2025-11-01  Martin Uecker  <uecker@tugraz.at>

	* c-decl.cc (build_compound_literal): Add error.
	* c-parser.cc (c_parser_braced_init): Take bool argument for
	variable size instead of DECL.
	(c_parser_initializer,c_parser_initval): Adapt.
	(c_parser_postfix_expression_after_paren_type): Change
	error to pedwarn.
	* c-typeck.cc (process_init_element): Add error for
	variable-size compound literal with static or constexpr.

2025-11-01  Martin Uecker  <uecker@tugraz.at>

	PR c/97986
	* c-parser.cc (c_parser_postfix_expression): Adapt.
	* c-tree.h (c_build_va_arg): Adapt prototype.
	* c-typeck.cc (c_build_va_arg): Handle UB.

2025-10-30  Qing Zhao  <qing.zhao@oracle.com>

	* c-typeck.cc (build_access_with_size_for_counted_by): When the element
	type is void, assign size one as the element_size.

2025-10-27  H.J. Lu  <hjl.tools@gmail.com>

	PR c/122427
	* c-decl.cc (diagnose_mismatched_decls): For FUNCTION_DECL, if
	OLDDECL has TYPE_ATTRIBUTES and NEWDECL doesn't, try the type
	with the OLDDECL attributes.

2025-10-24  Joseph Myers  <josmyers@redhat.com>

	* c-parser.cc (c_parser_next_tokens_start_typename)
	(c_parser_next_tokens_start_declaration): Add argument for token
	to start from
	(c_parser_next_tokens_start_declaration): Check for whether static
	assertion followed by semicolon.
	(c_parser_check_balanced_raw_token_sequence): Declare earlier.
	(c_parser_compound_statement_nostart, c_parser_for_statement): Use
	c_parser_next_tokens_start_declaration not
	c_token_starts_declaration on second token.
	(c_parser_unary_expression): Handle static assertions.
	* c-parser.h (c_parser_next_tokens_start_declaration): Add
	argument.

2025-10-21  Martin Uecker  <uecker@tugraz.at>

	* c-decl.cc (build_array_declarator): Remove error.
	(grokgenassoc): New function.
	(grokdeclarator): Add error.
	* c-parser.cc (c_parser_generic_selection): Use grokgenassoc.
	* c-tree.h (grokgenassoc): Add prototype.

2025-10-21  Paul-Antoine Arras  <parras@baylibre.com>

	PR c/120180
	PR fortran/122306
	* c-parser.cc (c_parser_pragma): Accept a subset of non-executable
	OpenMP directives in intervening code.
	(c_parser_omp_error): Reject 'error at(execution)' in intervening code.
	(c_parser_omp_metadirective): Return early if only one selector matches
	and it resolves to 'omp nothing'.

2025-10-21  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_parser_omp_assumption_clauses): Switch to
	'unknown' not 'invalid' directive name for end directives.

2025-10-08  Joseph Myers  <josmyers@redhat.com>

	* c-typeck.cc (in_generic, save_maybe_used, restore_maybe_used):
	New.
	(mark_decl_used, record_maybe_used_decl, pop_maybe_used): Use
	in_generic.
	(struct maybe_used_decl): Move to c-tree.h.
	* c-tree.h (struct maybe_used_decl): Move from c-typeck.cc.
	(in_generic, save_maybe_used, restore_maybe_used): Declare.
	* c-parser.cc (c_parser_generic_selection): Increment and
	decrement in_generic.  Use pop_maybe_used, save_maybe_used and
	restore_maybe_used.

2025-10-08  Martin Uecker  <uecker@tugraz.at>

	* c-parser.cc (c_parser_generic_selection): Change
	error_at to pedwarn_c23.

2025-10-08  Alfie Richards  <alfie.richards@arm.com>

	PR target/122180
	* c-decl.cc (pushdecl): Add TARGET_HAS_FMV_TARGET_ATTRIBUTE check.

2025-10-07  Joseph Myers  <josmyers@redhat.com>

	PR c/26581
	* c-decl.cc (c_finish_incomplete_decl): Give error for tentative
	definition of incomplete array for C2y with internal linkage.
	(finish_decl): Do not set DO_DEFAULT based on -pedantic.  Use
	pedwarn_c23 for missing array sizes for internal linkage.

2025-10-02  Alfie Richards  <alfie.richards@arm.com>

	* c-decl.cc (maybe_mark_function_versioned): Add diagnostic.
	* c-parser.cc (c_finish_omp_declare_simd): Add diagnostic.

2025-10-02  Alfie Richards  <alfie.richards@arm.com>

	* c-decl.cc (maybe_mark_function_versioned): New function.
	(merge_decls): Preserve DECL_FUNCTION_VERSIONED in merging.
	(duplicate_decls): Add check and diagnostic for unmergable version decls.
	(pushdecl): Add FMV target_version logic.
	(lookup_name): Don't resolve non-default versions.
	(start_decl): Mark and mangle versioned functions.
	(start_function): Mark and mangle versioned functions.
	(c_parse_final_cleanups): Add call to process_same_body_aliases.

2025-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* Make-lang.in: Add c_FDAS
	(create_fdas_for_cc1): Be sure that build fails if create_gcov fails.

2025-09-30  Martin Uecker  <uecker@tugraz.at>

	PR target/121933
	* c-typeck.cc (mark_decl_used): Set DECL_NONLOCAL
	only for VAR_DECL, FUNC_DECL, PARM_DECL.

2025-09-26  Alejandro Colomar  <alx@kernel.org>

	* c-decl.cc (c_scope): Rename {warned > had}_forward_parm_decls.
	(mark_forward_parm_decls): Add
	-Wmultiple-parameter-fwd-decl-lists.

2025-09-26  Joseph Myers  <josmyers@redhat.com>

	PR c/88642
	* c-typeck.cc (constructor_braced_scalar): New variable.
	(struct constructor_stack): Add braced_scalar field.
	(really_start_incremental_init): Handle constructor_braced_scalar
	and braced_scalar field.
	(push_init_level): Handle constructor_braced_scalar and
	braced_scalar field.  Give permerror rather than warning for
	nested braces around scalar initializer.
	(pop_init_level): Handle constructor_braced_scalar and
	braced_scalar field.

2025-09-24  Joseph Myers  <josmyers@redhat.com>

	* c-typeck.cc (really_atomic_lvalue): For a COMPOUND_LITERAL_EXPR,
	check C_DECL_REGISTER on the COMPOUND_LITERAL_EXPR_DECL.

2025-09-23  Alfie Richards  <alfie.richards@arm.com>

	* c-objc-common.cc (c_tree_printer): Add printing of target_clone and
	target_version in decl diagnostics.

2025-09-20  Joseph Myers  <josmyers@redhat.com>

	* c-typeck.cc (really_atomic_lvalue): Return false for incomplete
	types.
	(convert_lvalue_to_rvalue): Call require_complete_type for
	qualified void for C2y.

2025-09-17  Richard Biener  <rguenther@suse.de>

	* gimple-parser.cc (c_parser_parse_gimple_body): Initialize
	SSA operands for each stmt.
	(c_parser_gimple_compound_statement): Append stmts without
	updating SSA operands.

2025-09-16  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR c/121421
	* c-parser.cc (c_parser_declaration_or_fndef): Error out for gimple
	and rtl functions as nested functions.

2025-09-13  Joseph Myers  <josmyers@redhat.com>

	* c-typeck.cc (c_mark_addressable): New parameter
	override_register.
	(build_array_ref): Update calls to c_mark_addressable.  Give error
	in C2Y mode for negative array indices when array expression is an
	array not a pointer.  Use pedwarn_c23 for subscripting register
	array; diagnose that also for register compound literal.
	* c-tree.h (c_mark_addressable): Update prototype.

2025-09-10  Martin Uecker  <uecker@tugraz.at>

	* c-tree.h: Add new macro C_DECL_NONLOCAL_CONTEXT and prototype
	for mark_decl_used.
	* c-typeck.cc (mark_decl_used): New function.
	(function_to_pointer_conversion): Mark exempt functions.
	(record_maybe_used_decl): Add `address' parameter.
	(build_external_ref): Change to mark_decl_used.
	(pop_maybe_used): Call mark_decl_used.
	(c_mark_addressable): Ditto.
	(c_finish_goto_label): Ditto.
	(c_finish_return): Add warning.
	* c-decl.cc (declspecs_add_type): Ditto.
	(grokdeclarator): Don't set C_DECL_REGISTER on function
	declarators.

2025-09-08  H.J. Lu  <hjl.tools@gmail.com>

	PR c/107419
	* c-decl.cc (c_decl_attributes): Update TLS model with the
	default TLS access model if the default TLS access model is
	stronger.
	(grokdeclarator): Set a tentative TLS model which will be
	updated by c_decl_attributes later.

2025-09-05  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.cc (pushtag): Remove ()s around string literal
	in call to diagnostic function.
	(diagnose_mismatched_decls): Likewise.
	(c_check_switch_jump_warnings): Likewise.
	(grokdeclarator): Likewise.
	(warn_cxx_compat_finish_struct): Likewise.
	(build_enumerator): Formatting fix.
	(declspecs_add_type): Remove ()s around string literal
	in call to diagnostic function, simplify
	"both %<something%> and %<something%>" starting format
	strings to "both %qs and %qs" with appropriate arguments.
	Formatting fixes.
	* c-typeck.cc (build_external_ref): Remove ()s around string
	literal in call to diagnostic function.
	(build_conditional_expr): Likewise.
	* c-parser.cc (c_parser_transaction): Use G_() around string
	literals.  Formatting fix.
	(c_parser_transaction_expression): Likewise.

2025-08-26  Sandra Loosemore  <sloosemore@baylibre.com>

	PR middle-end/118839
	* c-parser.cc (c_finish_omp_declare_variant): Error if variant
	is the same as base.

2025-08-26  Sandra Loosemore  <sloosemore@baylibre.com>

	* c-parser.cc (c_finish_omp_declare_variant): Rework diagnostic
	code.  Do not record variant if there are errors.  Make check for
	a missing "match" clause unconditional.

2025-08-21  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR c/121478
	* c-fold.cc (c_fully_fold_internal): Fold nullptr_t ==/!= nullptr_t.
	* c-typeck.cc (convert_arguments): Handle conversion from nullptr_t
	for varargs.
	(convert_for_assignment): Handle conversions from nullptr_t to
	pointer type specially.

2025-08-18  Indu Bhagat  <indu.bhagat@oracle.com>

	* c-parser.cc (c_parser_declaration_or_fndef): Use
	'sanitize_code_type' instead of 'unsigned int'.

2025-08-15  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/120778
	PR target/121520
	* c-decl.cc (c_init_decl_processing): Use cpp_warn instead of
	cpp_lookup and NODE_WARN bit setting.

2025-08-15  Qing Zhao  <qing.zhao@oracle.com>

	* c-tree.h (handle_counted_by_for_component_ref): New prototype of
	build_component_ref and handle_counted_by_for_component_ref.
	* c-parser.cc (c_parser_postfix_expression): Call the new prototypes
	of build_component_ref and handle_counted_by_for_component_ref,
	update comments.
	* c-typeck.cc (default_function_array_read_conversion): Likewise.
	(convert_lvalue_to_rvalue): Likewise.
	(default_conversion): Likewise.
	(handle_counted_by_p): Update comments.
	(handle_counted_by_for_component_ref): Delete one argument.
	(build_component_ref): Delete one argument. Delete the call to
	handle_counted_by_for_component_ref completely.
	(build_array_ref): Generate call to .ACCESS_WITH_SIZE for array.

2025-08-15  Qing Zhao  <qing.zhao@oracle.com>

	* c-decl.cc (verify_counted_by_attribute): Change the 2nd argument
	to a vector of fields with counted_by attribute. Verify all fields
	in this vector.
	(finish_struct): Collect all the fields with counted_by attribute
	to a vector and pass this vector to verify_counted_by_attribute.
	* c-tree.h (handle_counted_by_for_component_ref): New prototype of
	handle_counted_by_form_component_ref.
	* c-parser.cc (c_parser_postfix_expression): Call the new prototype
	of handle_counted_by_for_component_ref.
	* c-typeck.cc (default_function_array_read_conversion): Only generate
	call to .ACCESS_WITH_SIZE for a pointer field when it's a read.
	(convert_lvalue_to_rvalue): Likewise.
	(default_conversion): Likewise.
	(handle_counted_by_p): New routine.
	(check_counted_by_attribute): New routine.
	(build_counted_by_ref): Handle pointers with counted_by.
	(build_access_with_size_for_counted_by): Handle pointers with counted_by.
	(handle_counted_by_for_component_ref): Add one more argument.
	(build_component_ref): Call the new prototype of
	handle_counted_by_for_component_ref.

2025-08-07  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/120778
	* c-decl.cc (c_init_decl_processing): Mark cpp nodes corresponding
	to keywords as NODE_WARN if warn_keyword_macro.

2025-08-06  Alexandre Oliva  <oliva@adacore.com>

	* c-tree.h (C_BOOLEAN_TYPE_P): Cover hardbools as well.
	* c-typeck.cc (convert_lvalue_to_rvalue): New overload and
	wrapper.
	(build_atomic_assign, build_modify_expr): Use it.
	(build_asm_expr, handle_omp-array_sections_1): Simplify with
	it.
	(build_unary_op): Handle hardbools.

2025-08-06  Martin Uecker  <uecker@tugraz.at>

	PR c/108931
	* c-typeck.cc (composite_type_cond): Renamed from
	composite_type with argument for condition
	(composite_type): New function.
	(composite_type_internal): Implement new logic.
	(build_conditional_expr): Pass condition.
	(common_pointer_type): Adapt.
	(pointer_diff): Adapt.
	(build_binary_op): Adapt.

2025-08-06  Martin Uecker  <uecker@tugraz.at>

	PR c/121217
	* c-typeck.cc (tagged_types_tu_compatible_p): Add check.

2025-08-06  Kwok Cheung Yeung  <kcyeung@baylibre.com>

	* c-parser.cc (c_parser_omp_clause_from_to): Parse 'iterator' modifier.
	* c-typeck.cc (c_finish_omp_clauses): Finish iterators for to/from
	clauses.

2025-08-06  Kwok Cheung Yeung  <kcyeung@baylibre.com>
	    Andrew Stubbs  <ams@baylibre.com>

	* c-parser.cc (c_parser_omp_variable_list): Use location of the
	map expression as the clause location.
	(c_parser_omp_clause_map): Parse 'iterator' modifier.
	* c-typeck.cc (c_finish_omp_clauses): Finish iterators.  Apply
	iterators to generated clauses.

2025-08-02  Martin Uecker  <uecker@tugraz.at>

	* c-decl.cc (get_parm_array_spec): Remove.
	(push_parm_decl): Do not add `arg spec` attribute.
	(build_arg_spec_attribute): New function.
	(grokdeklarator): Add `arg spec` attribute.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* c-errors.cc: Update usage of "diagnostic_info" to explicitly
	refer to "diagnostics::diagnostic_info".

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* c-errors.cc: Update for diagnostic_t becoming
	enum class diagnostics::kind.
	* c-parser.cc: Likewise.
	* c-typeck.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.cc: Update for renaming of diagnostic_option_id to
	diagnostics::option_id.
	* c-errors.cc: Likewise.
	* c-tree.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* c-objc-common.cc: Update for diagnostic_context becoming
	diagnostics::context.
	* c-tree.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* c-errors.cc: Update to add "m_" prefix to fields of
	diagnostic_info throughout.

2025-07-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* c-typeck.cc (build_asm_expr): Pass null pointer to
	parse_{input,output}_constraint().

2025-07-16  Kwok Cheung Yeung  <kcyeung@baylibre.com>

	* c-typeck.cc (handle_omp_array_sections): Use OMP_ITERATOR_DECL_P.
	(c_finish_omp_clauses): Likewise.

2025-07-15  Jakub Jelinek  <jakub@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c/44677
	* c-parser.cc (c_parser_unary_expression): Clear DECL_READ_P
	after default_function_array_read_conversion for
	-Wunused-but-set-{parameter,variable}={2,3} on
	PRE{IN,DE}CREMENT_EXPR argument.
	(c_parser_postfix_expression_after_primary): Similarly for
	POST{IN,DE}CREMENT_EXPR.
	* c-decl.cc (pop_scope): Use OPT_Wunused_but_set_variable_
	instead of OPT_Wunused_but_set_variable.
	(finish_function): Use OPT_Wunused_but_set_parameter_
	instead of OPT_Wunused_but_set_parameter.
	* c-typeck.cc (mark_exp_read): Handle {PRE,POST}{IN,DE}CREMENT_EXPR
	and don't handle it when cast to void.
	(build_modify_expr): Clear DECL_READ_P after build_binary_op
	for -Wunused-but-set-{parameter,variable}=3.

2025-07-10  Qing Zhao  <qing.zhao@oracle.com>

	* c-typeck.cc (build_access_with_size_for_counted_by): Update comments.
	Adjust the arguments per the new design.

2025-07-10  Qing Zhao  <qing.zhao@oracle.com>

	PR middle-end/121000
	* c-typeck.cc (build_access_with_size_for_counted_by): Update comments.
	Pass TYPE_SIZE_UNIT of the element as the 6th argument.

2025-07-07  Qing Zhao  <qing.zhao@oracle.com>

	Revert:
	2025-07-07  Qing Zhao  <qing.zhao@oracle.com>

	* c-decl.cc (verify_counted_by_attribute): Change the 2nd argument
	to a vector of fields with counted_by attribute. Verify all fields
	in this vector.
	(finish_struct): Collect all the fields with counted_by attribute
	to a vector and pass this vector to verify_counted_by_attribute.
	* c-typeck.cc (build_counted_by_ref): Handle pointers with counted_by.
	Add one more argument, issue error when the pointee type is a structure
	or union including a flexible array member.
	(build_access_with_size_for_counted_by): Handle pointers with counted_by.
	(handle_counted_by_for_component_ref): Call build_counted_by_ref
	with the new prototype.

2025-07-01  Qing Zhao  <qing.zhao@oracle.com>

	* c-decl.cc (verify_counted_by_attribute): Change the 2nd argument
	to a vector of fields with counted_by attribute. Verify all fields
	in this vector.
	(finish_struct): Collect all the fields with counted_by attribute
	to a vector and pass this vector to verify_counted_by_attribute.
	* c-typeck.cc (build_counted_by_ref): Handle pointers with counted_by.
	Add one more argument, issue error when the pointee type is a structure
	or union including a flexible array member.
	(build_access_with_size_for_counted_by): Handle pointers with counted_by.
	(handle_counted_by_for_component_ref): Call build_counted_by_ref
	with the new prototype.

2025-06-23  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (OACC_WAIT_CLAUSE_MASK): Add if clause.

2025-06-12  Jakub Jelinek  <jakub@redhat.com>

	* c-lang.h (union lang_type::maybe_objc_info): New type.
	(struct lang_type): Use union maybe_objc_info info member
	instead of tree objc_info.
	* c-decl.cc (finish_struct): Allocate struct lang_type using
	ggc_internal_cleared_alloc instead of ggc_cleared_alloc,
	and use sizeof (struct lang_type) for ObjC and otherwise
	offsetof (struct lang_type, info) as size.
	(finish_enum): Likewise.

2025-06-11  Martin Uecker  <uecker@tugraz.at>

	PR c/120510
	* c-typeck.cc (composite_type_internal): Activate checking
	assertions for all types and also inputs.
	(comptypes_for_composite_check): New helper function.
	(function_types_compatible_p): Add exception.

2025-06-11  Martin Uecker  <uecker@tugraz.at>

	* c-typeck.cc (function_types_compatible_p): Remove unused
	variables and return true/false instead of 1/0.
	(type_lists_compatible_p): Return false instead of 0.

2025-06-11  Martin Uecker  <uecker@tugraz.at>

	PR c/120303
	* c-parser.cc (c_parser_generic_selection): Handle error
	condition.

2025-06-09  Martin Uecker  <uecker@tugraz.at>

	PR c/120510
	* c-typeck.cc (remove_qualifiers): New function.
	(composite_type_internal): Use it.
	(comp_target_types): Use it.
	(type_lists_compatible_p): Use it.
	(find_anonymous_field_with_type): Use it.
	(convert_to_anonymous_field): Use it.
	(convert_for_assignment): Use it.

2025-06-09  Martin Uecker  <uecker@tugraz.at>

	PR c/120510
	* c-typeck.cc (composite_type_internal): Activate checking
	assertion for arrays.
	(common_pointer_type): Remove qualifiers also from arrays.

2025-06-09  Martin Uecker  <uecker@tugraz.at>

	PR c/120510
	* c-typeck.cc (composite_types_internal): Handle arrays
	declared with atomic for function arguments.

2025-06-03  Martin Uecker  <uecker@tugraz.at>

	* c-typeck.cc (composite_type_internal,composite_type): Move
	checking assertions.

2025-06-03  Martin Uecker  <uecker@tugraz.at>

	PR c/116892
	* c-decl.cc (finish_enum): Propagate TYPE_PACKED.

2025-06-02  Sandra Loosemore  <sloosemore@baylibre.com>

	* c-parser.cc (c_parser_omp_context_selector): Call
	convert_lvalue_to_rvalue and c_objc_common_truthvalue_conversion
	on the expression for OMP_TRAIT_PROPERTY_BOOL_EXPR.

2025-06-01  Martin Uecker  <uecker@tugraz.at>

	PR c/120380
	* c-objc-common.cc (get_aka_type): Ignore attributes for tagged types.

2025-05-30  Qing Zhao  <qing.zhao@oracle.com>

	PR c/120354
	* c-decl.cc (finish_struct): Or the results for TYPE_INCLUDES_FLEXARRAY.

2025-05-30  Qing Zhao  <qing.zhao@oracle.com>

	PR c/120353
	* c-decl.cc (finish_struct): Copy TYPE_INCLUDES_FLEXARRAY marking
	to all the variant types of the current structure type.

2025-05-30  Julian Brown  <julian@codesourcery.com>

	* c-decl.cc (c_omp_mapper_id, c_omp_mapper_decl, c_omp_mapper_lookup,
	c_omp_extract_mapper_directive, c_omp_map_array_section,
	c_omp_scan_mapper_bindings_r, c_omp_scan_mapper_bindings): New
	functions.
	* c-objc-common.h (LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES,
	LANG_HOOKS_OMP_MAPPER_LOOKUP, LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE,
	LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define langhooks for C.
	* c-parser.cc (c_parser_omp_clause_map): Add declare_mapper_p
	parameter; handle mapper modifier.
	(c_parser_omp_all_clauses): Update call to c_parser_omp_clause_map.
	(c_parser_omp_target): Instantiate explicit mappers and record bindings
	for implicit mappers.
	(c_parser_omp_declare_mapper): Parse "declare mapper" directives.
	(c_parser_omp_declare): Support "declare mapper".
	(c_parser_omp_declare_reduction): Use inform not error_at.
	* c-tree.h (c_omp_finish_mapper_clauses, c_omp_mapper_lookup,
	c_omp_extract_mapper_directive, c_omp_map_array_section,
	c_omp_mapper_id, c_omp_mapper_decl, c_omp_scan_mapper_bindings,
	c_omp_instantiate_mappers): Add prototypes.
	* c-typeck.cc (c_finish_omp_clauses): Handle GOMP_MAP_PUSH_MAPPER_NAME
	and GOMP_MAP_POP_MAPPER_NAME.
	(c_omp_finish_mapper_clauses): New function (langhook).

2025-05-30  Martin Uecker  <uecker@tugraz.at>

	PR c/120381
	* c-typeck.cc (composite_type_internal): Stop recursion for
	swapped pairs.

2025-05-29  Sandra Loosemore  <sloosemore@baylibre.com>

	* c-parser.cc (c_parser_skip_to_closing_brace): New, copied from
	the equivalent function in the C++ front end.
	(c_parser_skip_to_end_of_block_or_statement): Pass false to
	the error flag.
	(c_parser_omp_context_selector): Immediately return error_mark_node
	after giving an error that the integer trait property is invalid,
	similarly to C++ front end.
	(c_parser_omp_context_selector_specification): Likewise handle
	error return from c_parser_omp_context_selector similarly to C++.
	(c_parser_omp_metadirective): Do not call
	c_parser_skip_to_end_of_block_or_statement after an error.

2025-05-29  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c/120180
	* c-parser.cc (c_parser_omp_metadirective): Only consume the
	token if it is the expected close paren.

2025-05-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/117025
	* c-parser.cc (c_parser_sizeof_or_countof_expression): Use
	C2Y rather than C23 in pedwarn_c23.

2025-05-27  Alejandro Colomar  <alx@kernel.org>

	PR c/117025
	* c-parser.cc (c_parser_sizeof_or_countof_expression):
	Add -Wpedantic diagnostic for _Countof in <= C23 mode.

2025-05-27  Alejandro Colomar  <alx@kernel.org>
	    Martin Uecker  <uecker@tugraz.at>

	PR c/117025
	* c-tree.h (in_countof): Add global variable declaration.
	(c_expr_countof_expr): Add function prototype.
	(c_expr_countof_type): Add function prototype.
	* c-decl.cc (start_struct, finish_struct): Add support for
	_Countof.
	(start_enum, finish_enum): Add support for _Countof.
	* c-parser.cc (c_parser_sizeof_expression): New macro.
	(c_parser_countof_expression): New macro.
	(c_parser_sizeof_or_countof_expression): Rename function and add
	support for _Countof.
	(c_parser_unary_expression): Add RID_COUNTOF entry.
	* c-typeck.cc (in_countof): Add global variable.
	(build_external_ref): Add support for _Countof.
	(record_maybe_used_decl): Add support for _Countof.
	(pop_maybe_used): Add support for _Countof.
	(is_top_array_vla): New function.
	(c_expr_countof_expr, c_expr_countof_type): New functions.

2025-05-02  Jakub Jelinek  <jakub@redhat.com>

	PR c/120057
	* c-typeck.cc (check_constexpr_init): Handle RAW_DATA_CST.

2025-05-02  Florian Weimer  <fweimer@redhat.com>

	PR c/120055
	* c-typeck.cc (convert_arguments): Check if fundecl is null
	before checking for builtin function declaration.

2025-05-01  Christopher Bazley  <chris.bazley@arm.com>

	PR c/119317
	* c-decl.cc (c_get_loop_names): Do not prematurely
	end the search for a label that names a loop or
	switch statement upon encountering a DEBUG_BEGIN_STMT.
	Instead, ignore any instances of DEBUG_BEGIN_STMT.

2025-05-01  Florian Weimer  <fweimer@redhat.com>

	PR c/119950
	* c-typeck.cc (convert_arguments): Check for built-in
	function declaration before warning.

2025-04-28  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.cc: Drop include of "make-unique.h".
	Replace uses of ::make_unique with std::make_unique.
	* c-objc-common.cc: Likewise.
	* c-parser.cc: Likewise.

2025-04-28  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.cc: Include "make-unique.h".
	(lookup_name_fuzzy): Use ::make_unique rather than "new" when
	making suggest_missing_header and suggest_missing_option.
	* c-parser.cc: Include "make-unique.h"
	(c_parser_error_richloc): Use ::make_unique rather than "new" when
	making suggest_missing_header.

2025-04-28  Andrew Pinski  <quic_apinski@quicinc.com>

	PR c/119432
	* gimple-parser.cc (gimple_binary_identifier_code): Add
	__ROTATE_LEFT and __ROTATE_RIGHT.

2025-04-28  Andrew Pinski  <quic_apinski@quicinc.com>

	* gimple-parser.cc (gimple_binary_identifier_code): New variable.
	(c_parser_gimple_binary_expression): Use gimple_binary_identifier_code
	instead of doing if statements on the strings.

2025-04-27  H.J. Lu  <hjl.tools@gmail.com>

	PR c/48274
	PR middle-end/112877
	PR middle-end/118288
	* c-decl.cc (start_decl): Remove the
	targetm.calls.promote_prototypes call.
	(store_parm_decls_oldstyle): Likewise.
	(finish_function): Likewise.
	* c-typeck.cc (convert_argument): Likewise.
	(c_safe_arg_type_equiv_p): Likewise.

2025-04-15  Qing Zhao  <qing.zhao@oracle.com>

	PR c/119717
	* c-typeck.cc (build_access_with_size_for_counted_by): Fully fold the
	parameters for call to .ACCESS_WITH_SIZE.

2025-04-08  Martin Uecker  <uecker@tugraz.at>

	PR c/119612
	* c-tree.h (c_type_tag): Add prototype.
	* c-typeck.cc (c_type_tag): New function.
	(tagged_types_tu_compatible_p, composite_type_internal): Use
	c_type_tag.
	* c-decl.cc (c_struct_hasher::hash, previous_tag): Use c_type_tag.

2025-04-02  Jakub Jelinek  <jakub@redhat.com>

	PR c/119582
	* c-typeck.cc (pointer_diff, build_binary_op): Call c_fully_fold on
	__sanitizer_ptr_sub or __sanitizer_ptr_cmp arguments.

2025-04-02  Sandra Loosemore  <sloosemore@baylibre.com>

	PR middle-end/118965
	* c-parser.cc (c_parser_omp_clause_init_modifiers): Adjust
	error message.
	(c_parser_omp_clause_init): Remove code for recognizing clauses
	without modifiers.  Diagnose missing target/targetsync modifier.
	(c_finish_omp_declare_variant): Diagnose missing target/targetsync
	modifier.

2025-03-28  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in (c.srcextra): Don't depend on anything and don't copy
	anything.

2025-03-27  Martin Uecker  <uecker@tugraz.at>

	PR c/118765
	* c-decl.cc (merge_decls): For TYPE_DECLS copy
	DECL_ORIGINAL_TYPE from the old declaration.
	* c-typeck.cc (tagged_types_tu_compatible_p): Add
	checking assertions.

2025-03-21  Paul-Antoine Arras  <parras@baylibre.com>
	    Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_parser_omp_clause_destroy): Make addressable.
	(c_parser_omp_clause_init): Make addressable.

2025-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/119350
	* c-typeck.cc (pop_init_level): Don't ignore empty brackets for
	flag_isoc23, still set constructor_type to NULL in that case but
	emit a pedwarn_init in that case.

2025-03-19  Martin Uecker  <uecker@tugraz.at>

	PR c/118765
	* c-decl.cc (finish_struct,finish_enum): Swap direction when
	copying TYPE_STRUB_DECL in redefinitions.

2025-03-19  Martin Uecker  <uecker@tugraz.at>

	PR c/118061
	* c-typeck.cc (tagged_types_tu_compatible_p): Handle
	errors in types of struct members.

2025-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR c/119311
	* c-parser.cc (c_parser_if_body): Pass result of c_parser_all_labels
	as last argument to c_parser_statement_after_labels.
	(c_parser_else_body): Likewise.

2025-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR c/116545
	* c-parser.cc (c_parser_declaration_or_fndef): Parse
	__attribute__((musttail)) return.
	(c_parser_handle_musttail): Diagnose attribute arguments.
	(c_parser_statement_after_labels): Parse
	__attribute__((musttail)) return.

2025-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR c/117178
	* c-typeck.cc (output_init_element): Pass field to digest_init
	only for record/union types, otherwise pass constructor_fields
	if non-NULL and constructor_decl if constructor_fields is NULL.

2025-03-11  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c/118579
	* c-parser.cc (c_parser_omp_variable_list): Capture location
	information when KIND is OMP_CLAUSE_ERROR.
	(c_parser_oacc_data_clause_deviceptr): Use the improved location
	for diagnostics, and remove the FIXME.
	(c_finish_omp_declare_variant): Likewise.
	(c_parser_omp_threadprivate): Likewise.

2025-03-07  Kees Cook  <kees@kernel.org>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c/117178
	* c-typeck.cc (digest_init): Add DECL argument.  Adjust wording of
	pedwarn_init for too long strings and provide details on the lengths,
	for string literals where just the trailing NULL doesn't fit warn for
	warn_cxx_compat with OPT_Wc___compat, wording which mentions "for C++"
	and provides details on lengths, otherwise for
	warn_unterminated_string_initialization adjust the warning, provide
	details on lengths and don't warn if get_attr_nonstring_decl (decl).
	(build_c_cast, store_init_value, output_init_element): Adjust
	digest_init callers.

2025-03-07  Andrew Pinski  <quic_apinski@quicinc.com>

	PR c/60440
	* c-typeck.cc (c_finish_return): Mark the current function
	for supression of the -Wreturn-type if there was an error
	on the return statement.

2025-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR c/119001
	* c-typeck.cc (pop_init_level): Don't clear constructor_type
	if DECL_CHAIN of constructor_fields is NULL but p->type is UNION_TYPE.
	Formatting fix.
	(process_init_element): Diagnose non-static initialization of flexible
	array member in union or FAM in union initialization in nested context.

2025-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR c/119000
	* c-parser.cc (c_parser_omp_atomic): For omp write call
	default_function_array_read_conversion on the rhs expression.
	Merge the two adjacent if (code == NOP_EXPR) blocks.

2025-02-11  Sandra Loosemore  <sloosemore@baylibre.com>

	* c-parser.cc (c_finish_omp_declare_variant): Update call to
	omp_check_context_selector.
	(c_parser_omp_metadirective): Likewise.

2025-02-07  Jakub Jelinek  <jakub@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/86769
	* c-parser.cc (c_parser_while_statement): Add 2 further NULL_TREE
	operands to build_stmt.
	(c_parser_for_statement): Likewise.

2025-02-04  Richard Biener  <rguenther@suse.de>

	PR c/118742
	* gimple-parser.cc (gimple_parser_build_unary_op): New
	wrapper around build_unary_op.
	(c_parser_gimple_unary_expression): Use it.

2025-01-30  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_finish_omp_declare_variant): Modify how
	append_args is saved internally.

2025-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR c/116357
	* c-decl.cc (grokdeclarator): Use c_build_qualified_type with
	TYPE_UNQUALIFIED instead of TYPE_MAIN_VARIANT.

2025-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR c/118639
	* c-parser.cc (c_parser_omp_variable_list): Remove first variable
	and emit "expected identifier" error regardless of it.

2025-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/118604
	* c-parser.cc (c_parser_omp_metadirective): Rewrite
	condition for clauses other than when, default and otherwise.

2025-01-21  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.cc (names_builtin_p): Return 1 for RID_C23_VA_START and
	RID_VA_ARG.

2025-01-16  Sandra Loosemore  <sloosemore@baylibre.com>

	* c-parser.cc (c_parser_omp_assumption_clauses): Give a more specific
	error message for invalid directives vs unknown names.

2025-01-16  Sandra Loosemore  <sloosemore@baylibre.com>

	* c-decl.cc (c_decl_attributes): Don't add "omp declare target
	block".

2025-01-16  Sandra Loosemore  <sloosemore@baylibre.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	PR middle-end/112779
	PR middle-end/113904
	* c-parser.cc (struct c_parser): Add omp_metadirective_state field.
	(c_parser_skip_to_end_of_block_or_statement): Add metadirective_p
	parameter and handle skipping over the parentheses in a "for"
	statement.
	(struct omp_metadirective_parse_data): New.
	(mangle_metadirective_region_label): New.
	(c_parser_label): Mangle label names in a metadirective body.
	(c_parser_statement_after_labels): Likewise.
	(c_parser_pragma): Handle PRAGMA_OMP_METADIRECTIVE.
	(c_parser_omp_context_selector): Allow arbitrary expressions in
	device_num and condition properties.
	(c_parser_omp_assumption_clauses): Handle C_OMP_DIR_META.
	(analyze_metadirective_body): New.
	(c_parser_omp_metadirective): New.

2025-01-14  Sandra Loosemore  <sloosemore@baylibre.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>
	    Marcel Vollweiler  <marcel@codesourcery.com>

	PR middle-end/114596
	PR middle-end/112779
	PR middle-end/113904
	* c-parser.cc (c_finish_omp_declare_variant): Update for changes
	to omp-general.h interfaces.

2025-01-14  David Malcolm  <dmalcolm@redhat.com>

	PR c/116871
	* c-typeck.cc (pedwarn_permerror_init): Return bool for whether a
	warning was emitted.  Only call print_spelling if we warned.
	(pedwarn_init): Return bool for whether a warning was emitted.
	(permerror_init): Likewise.
	(warning_init): Return bool for whether a
	warning was emitted.  Only call print_spelling if we warned.
	(class pp_element_quoted_decl): New.
	(maybe_inform_typedef_location): New.
	(convert_for_assignment): For OPT_Wincompatible_pointer_types,
	move auto_diagnostic_group to cover all cases.  Use %e and
	pp_element rather than %qT and tree to colorize the types.
	Capture whether a warning was emitted, and, if it was,
	show various notes: for a pointer to a function, show the
	function decl, for typedef types, and show the decls.

2025-01-12  David Malcolm  <dmalcolm@redhat.com>

	PR c/118112
	* c-typeck.cc (inform_declaration): Add "function_expr" param and
	use it for cases where we couldn't show the function decl to show
	field decls for callbacks.
	(build_function_call_vec): Add missing auto_diagnostic_group.
	Update for new param of inform_declaration.
	(convert_arguments): Likewise.  For the "too many arguments" case
	add the expected vs actual counts to the message, and if we have
	it, add the location_t of the first surplus param as a secondary
	location within the diagnostic.  For the "too few arguments" case,
	determine the minimum number of arguments required and add the
	expected vs actual counts to the message, tweaking it to "at least"
	for variadic functions.

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

	PR c/118376
	* c-parser.cc (c_parser_postfix_expression): Call
	set_c_expr_source_range before break in the __builtin_stdc_rotate_*
	case.

2025-01-09  Martin Uecker  <uecker@tugraz.at>

	PR c/117866
	* c-decl.cc (get_parm_info): Change condition for warning.

2025-01-09  Jason Merrill  <jason@redhat.com>
	    Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>

	PR c/116060
	* c-typeck.cc (convert_for_assignment): Make sure left hand side and
	right hand side has identical named types to aid diagnostic output.

2025-01-03  Sandra Loosemore  <sloosemore@baylibre.com>

	* c-parser.cc (struct c_parser): Change in_omp_attribute_pragma
	field to be of type struct omp_attribute_pragma_state.
	(struct omp_attribute_pragma_state): New.
	(c_parser_skip_until_found): Use the new way to restore state
	on EOF.
	(c_parser_skip_to_pragma_eol): Likewise.
	(c_parser_handle_statement_omp_attributes): Create an
	omp_attribute_pragma_state to hold the restore state.  Do not
	store state in tok.flags.
	(omp_maybe_parse_omp_decl): Likewise.

2025-01-02  David Malcolm  <dmalcolm@redhat.com>

	PR c/117629
	* c-decl.cc (declspecs_add_type): Special-case attempts to use
	bool as a typedef name or declaration name.
	* c-errors.cc (get_std_for_keyword): New.
	(add_note_about_new_keyword): New.
	* c-parser.cc (report_bad_enum_name): New, split out from...
	(c_parser_enum_specifier): ...here, adding handling for RID_FALSE
	and RID_TRUE.
	* c-tree.h (add_note_about_new_keyword): New decl.

2024-12-18  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_parser_omp_clause_init_modifiers): New;
	split of from ...
	(c_parser_omp_clause_init): ... here; call it.
	(c_finish_omp_declare_variant): Parse 'append_args' clause.
	(c_parser_omp_clause_interop): Set tree used/read.

2024-12-18  Jakub Jelinek  <jakub@redhat.com>

	PR c/41045
	* c-typeck.cc (build_asm_expr): Reject - constraint modifier inside
	of a function.

2024-12-18  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.cc (build_asm_expr): Diagnose invalid ":" constraint
	uses.

2024-12-12  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (OMP_DISPATCH_CLAUSE_MASK): Add has_device_addr clause.
	(c_finish_omp_declare_variant): Add an 'inform' telling the user that
	'need_device_addr' is invalid for C.

2024-12-09  Heiko Eißfeldt  <heiko@hexco.de>

	PR c/114541
	* gimple-parser.cc (c_parser_gimple_parse_bb_spec):
	Use strtoul with ERANGE check instead of atoi to avoid UB
	and detect invalid __BB#.

2024-12-06  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.cc: Include "gcc-urlifier.h".
	(start_decl): Use auto_urlify_attributes with OPT_Wattributes.
	(start_function): Likewise.
	* c-parser.cc: Include "gcc-urlifier.h".
	(c_parser_statement_after_labels): Use auto_urlify_attributes with
	OPT_Wattributes.
	* c-typeck.cc: Include "gcc-urlifier.h".
	(maybe_warn_nodiscard): Use auto_urlify_attributes with
	OPT_Wunused_result.

2024-12-06  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_get_builtin_args, c_parser_expression,
	c_parser_expr_list): Use RAW_DATA_UCHAR_ELT macro.
	* c-typeck.cc (digest_init): Use RAW_DATA_UCHAR_ELT and
	RAW_DATA_SCHAR_ELT macros.
	(add_pending_init, maybe_split_raw_data): Use RAW_DATA_UCHAR_ELT
	macro.

2024-12-05  Jakub Jelinek  <jakub@redhat.com>

	PR c/107980
	* c-parser.cc (c_parser_postfix_expression): Handle RID_C23_VA_START.

2024-12-05  Jakub Jelinek  <jakub@redhat.com>

	PR c/41045
	* c-parser.cc (c_parser_asm_string_literal): Add forward declaration.
	(c_parser_asm_definition): Parse also extended asm without
	clobbers/labels.
	* c-typeck.cc (build_asm_expr): Allow extended asm outside of
	functions and check extra restrictions.

2024-12-03  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_parser_omp_allocate): Only check scope if
	not in_omp_decl_attribute. Remove setting the alignment.

2024-11-30  Martin Uecker  <uecker@tugraz.at>

	PR c/117806
	* c-typeck.cc (composite_type_internal): Call decl_attributes.

2024-11-30  Andrew Pinski  <quic_apinski@quicinc.com>

	PR c/117749
	* gimple-parser.cc (c_parser_gimple_declaration): Check
	declarator to be non-null.

2024-11-29  Martin Uecker  <uecker@tugraz.at>

	PR c/117828
	* c-typeck.cc (tagged_types_tu_compatible_p): Add check.

2024-11-29  Tejas Belagod  <tejas.belagod@arm.com>

	* c-typeck.cc (process_init_element): Add check to restrict
	constructor length to the minimum vector length allowed.

2024-11-28  Jakub Jelinek  <jakub@redhat.com>

	PR c++/116416
	* c-parser.cc (c_parser_braced_init): Set CONSTRUCTOR_ZERO_PADDING_BITS
	for flag_isoc23 empty initializers.
	* c-typeck.cc (constructor_zero_padding_bits): New variable.
	(struct constructor_stack): Add zero_padding_bits member.
	(really_start_incremental_init): Save and clear
	constructor_zero_padding_bits.
	(push_init_level): Save constructor_zero_padding_bits.  Or into it
	CONSTRUCTOR_ZERO_PADDING_BITS from previous value if implicit.
	(pop_init_level): Set CONSTRUCTOR_ZERO_PADDING_BITS if
	constructor_zero_padding_bits and restore
	constructor_zero_padding_bits.

2024-11-28  David Malcolm  <dmalcolm@redhat.com>

	PR c/82892
	* c-decl.cc (lookup_name_fuzzy): Provide hints for missing
	command-line options.

2024-11-28  David Malcolm  <dmalcolm@redhat.com>

	PR c++/87850
	* c-typeck.cc (compatible_types_for_indirection_note_p): New
	function.
	(convert_for_assignment): Call maybe_emit_indirection_note for
	pointer vs non-pointer diagnostics.

2024-11-27  Joseph Myers  <josmyers@redhat.com>

	PR c/91193
	* c-parser.cc (c_parser_maybe_reclassify_token): Define earlier.
	(c_parser_declaration_or_fndef): Call
	c_parser_maybe_reclassify_token before parsing old-style parameter
	definitions.

2024-11-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/117745
	* c-parser.cc (c_parser_sizeof_expression): If type_name is NULL,
	just expr.set_error () and goto sizeof_expr instead of doing error
	recovery manually.

2024-11-27  Joseph Myers  <josmyers@redhat.com>

	PR c/117781
	* c-parser.cc (c_parser_typeof_specifier): Do not remove _Atomic
	from array element type for typeof_unqual.

2024-11-27  Florian Weimer  <fweimer@redhat.com>

	* c-parser.cc (c_parser_compound_statement_nostart): Use
	OPT_Wfree_labels for warning about labels on declarations.
	(c_parser_compound_statement_nostart): Use OPT_Wfree_labels
	for warning about labels at end of compound statements.

2024-11-26  David Malcolm  <dmalcolm@redhat.com>

	PR c/94370
	* c-typeck.cc (c_build_functype_attribute_variant): Reword
	warning message to avoid double-negative.

2024-11-26  Joseph Myers  <josmyers@redhat.com>

	PR c/98195
	PR c/117755
	* c-typeck.cc (build_atomic_assign): Always create a TARGET_EXPR
	for newval even in case of error from binary operation.
	(build_modify_expr): Check early for incomplete type of rhs.

2024-11-24  Andrew Pinski  <quic_apinski@quicinc.com>

	PR c/117741
	* gimple-parser.cc (c_parser_gimple_compound_statement): Handle
	CPP_CLOSE_PAREN/CPP_CLOSE_SQUARE with an error and skipping the token.

2024-11-22  Andrew Pinski  <quic_apinski@quicinc.com>

	PR bootstrap/117737
	* c-aux-info.cc (INCLUDE_MEMORY): Remove.
	* c-convert.cc (INCLUDE_MEMORY): Remove.
	* c-decl.cc (INCLUDE_MEMORY): Remove.
	* c-errors.cc (INCLUDE_MEMORY): Remove.
	* c-fold.cc (INCLUDE_MEMORY): Remove.
	* c-lang.cc (INCLUDE_MEMORY): Remove.
	* c-objc-common.cc (INCLUDE_MEMORY): Remove.
	* c-parser.cc (INCLUDE_MEMORY): Remove.
	* c-typeck.cc (INCLUDE_MEMORY): Remove.
	* gimple-parser.cc (INCLUDE_MEMORY): Remove.

2024-11-22  Joseph Myers  <josmyers@redhat.com>

	PR c/112841
	* c-parser.cc (c_parser_typeof_specifier): Call strip_array_types
	when checking for type qualifiers for typeof_unqual.

2024-11-22  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_parser_omp_clause_interop): New.
	(c_parser_omp_clause_name, c_parser_omp_all_clauses,
	c_parser_omp_dispatch_body): Handle 'interop' clause.
	* c-typeck.cc (c_finish_omp_clauses): Likewise.

2024-11-22  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (INCLUDE_STRING): Define.
	(c_parser_pragma): Handle 'interop' directive.
	(c_parser_omp_clause_name): Handle init, use, and destroy clauses.
	(c_parser_omp_all_clauses): Likewise; use C_ORT_OMP_INTEROP, if
	'use' is permitted, for c_finish_omp_clauses.
	(c_parser_omp_clause_destroy, c_parser_omp_modifier_prefer_type,
	c_parser_omp_clause_init, c_parser_omp_clause_use,
	OMP_INTEROP_CLAUSE_MASK, c_parser_omp_interop): New.
	* c-typeck.cc (c_finish_omp_clauses): Add missing OPT_Wopenmp to
	a warning; handle new clauses.

2024-11-21  Joseph Myers  <josmyers@redhat.com>

	PR c/114816
	* c-decl.cc (grokparms): Do not warn for void parameter type here.
	(get_parm_info): Give errors for void parameters even when named.

2024-11-20  Joseph Myers  <josmyers@redhat.com>

	PR c/114266
	* c-decl.cc (build_compound_literal): Diagnose array of unknown
	size with empty initializer for C23.

2024-11-20  Paul-Antoine Arras  <parras@baylibre.com>

	* c-parser.cc (c_parser_omp_dispatch): New function.
	(c_parser_omp_clause_name): Handle nocontext and novariants clauses.
	(c_parser_omp_clause_novariants): New function.
	(c_parser_omp_clause_nocontext): Likewise.
	(c_parser_omp_all_clauses): Handle nocontext and novariants clauses.
	(c_parser_omp_dispatch_body): New function adapted from
	c_parser_expr_no_commas.
	(OMP_DISPATCH_CLAUSE_MASK): Define.
	(c_parser_omp_dispatch): New function.
	(c_finish_omp_declare_variant): Parse adjust_args.
	(c_parser_omp_construct): Handle PRAGMA_OMP_DISPATCH.
	* c-typeck.cc (c_finish_omp_clauses): Handle OMP_CLAUSE_NOVARIANTS and
	OMP_CLAUSE_NOCONTEXT.

2024-11-20  Joseph Myers  <josmyers@redhat.com>

	PR c/115515
	* c-typeck.cc (check_constexpr_init): Do not call int_fits_type_p
	for arguments that are not integer constant expressions.

2024-11-19  Joseph Myers  <josmyers@redhat.com>

	PR c/114869
	* c-decl.cc (c_init_decl_processing): Register nullptr_type_node
	as typeof (nullptr) not nullptr_t.

2024-11-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/117456
	* c-parser.cc (c_parser_postfix_expression): Use LROTATE_EXPR
	or RROTATE_EXPR only if type_has_mode_precision_p or if arg1
	has BITINT_TYPE with precision larger than MAX_FIXED_MODE_SIZE.
	Otherwise build BIT_IOR_EXPR of LSHIFT_EXPR and RSHIFT_EXPR
	and wrap it into a COND_EXPR depending on if arg2 is 0 or not.
	* c-fold.cc (c_fully_fold_internal): Check for suppression of
	-Wshift-count-overflow warning.

2024-11-19  Martin Uecker  <uecker@tugraz.at>

	PR c/117490
	* c-typeck.cc (tagged_types_tu_compatible): Form equivalence
	classed for tagless types in C23.

2024-11-18  Joseph Myers  <josmyers@redhat.com>

	PR c/112556
	* c-typeck.cc (convert_for_assignment): Allow conversion of
	ENUMERAL_TYPE and BOOLEAN_TYPE null pointer constants to pointers.

2024-11-17  Florian Weimer  <fweimer@redhat.com>

	PR c/95445
	* c-decl.cc (start_function): Warn about parameters
	after parameter-less declaration.
	* c-typeck.cc (build_function_call_vec): Pass fntype
	to convert_arguments.
	(convert_arguments): Change argument to fntype and
	compute typelist.  Warn about parameter list mismatches
	on first parameter.

2024-11-16  Martin Uecker  <uecker@tugraz.at>

	PR c/117548
	* c-decl.cc (finish_struct): Add checking assertion.
	* c-typeck.cc (c_type_original): New function.
	(composite_types_internal): Get tag from original type.

2024-11-15  Florian Weimer  <fweimer@redhat.com>

	* c-decl.cc (store_parm_decls_newstyle): Use
	OPT_Wmissing_parameter_name for missing parameter name
	warning.
	* c-errors.cc (pedwarn_c11): Enable fine-grained warning
	control via the option_id argument.

2024-11-15  Jakub Jelinek  <jakub@redhat.com>

	* c-tree.h (enum c_typespec_keyword): Add cts_dfloat64x and adjust
	comment.
	* c-parser.cc (c_keyword_starts_typename, c_token_starts_declspecs,
	c_parser_declspecs, c_parser_gnu_attribute_any_word): Handle
	RID_DFLOAT64X.
	(c_parser_postfix_expression): Handle _Decimal64x arguments in
	__builtin_tgmath.
	(warn_for_abs): Handle BUILT_IN_FABSD64X.
	* c-decl.cc (declspecs_add_type): Handle cts_dfloat64x and
	RID_DFLOAT64X.
	(finish_declspecs): Handle cts_dfloat64x.
	* c-typeck.cc (c_common_type): Handle dfloat64x_type_node.

2024-11-13  Martin Uecker  <uecker@tugraz.at>

	PR c/117059
	* c-typeck.cc (parse_build_binary_op): Add warning.
	(build_conditional_expr): Add warning.
	(convert_for_assignment): Add warning.

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

	* c-decl.cc (names_builtin_p): Change return type from
	bool to int, adjust return statments.

2024-11-09  Martin Uecker  <uecker@tugraz.at>

	PR c/116284
	PR c/117391
	* c-tree.h (c_type_unspecified_p): New inline function.
	* c-typeck.cc (c_build_array_type_unspecified): New function.
	(comptypes_interal): Remove useless code.
	(composite_type_internal): Update.
	* c-decl.cc (grokdeclarator): Revise.

2024-11-08  Marek Polacek  <polacek@redhat.com>

	PR c/117019
	* c-parser.cc (c_parser_declaration_or_fndef): Adjust declaration.
	(c_parser_external_declaration): Adjust a call to
	c_parser_declaration_or_fndef.
	(c_parser_declaration_or_fndef): New bool parameter.  Return a tree
	instead of void.  Adjust for N3356.  Adjust a call to
	c_parser_declaration_or_fndef.
	(c_parser_compound_statement_nostart): Adjust calls to
	c_parser_declaration_or_fndef.
	(c_parser_selection_header): New.
	(c_parser_paren_selection_header): New.
	(c_parser_if_statement): Call c_parser_paren_selection_header
	instead of c_parser_paren_condition.
	(c_parser_switch_statement): Call c_parser_selection_header instead of
	c_parser_expression.
	(c_parser_for_statement): Adjust calls to c_parser_declaration_or_fndef.
	(c_parser_objc_methodprotolist): Likewise.
	(c_parser_oacc_routine): Likewise.
	(c_parser_omp_loop_nest): Likewise.
	(c_parser_omp_declare_simd): Likewise.

2024-11-05  Andrew Pinski  <quic_apinski@quicinc.com>

	PR c/117445
	* gimple-parser.cc (c_parser_gimple_statement): Remove
	support for comparisons before the querry (`?`) token.

2024-11-01  David Malcolm  <dmalcolm@redhat.com>

	PR bootstrap/117361
	* Make-lang.in (s-selftest-c): Use GCC_FOR_SELFTESTS.
	(selftest-c-gdb): Likewise.
	(selftest-c-valgrind): Likewise.

2024-10-31  Martin Uecker  <uecker@tugraz.at>

	PR c/117145
	PR c/117245
	PR c/100420
	* c-decl.cc (c_build_pointer_type): Move to c-typeck.cc
	(grokdeclarator): Simplify logic.
	(match_builtin_function_types): Adapt.
	(push_decl): Adapt.
	(implicitly_declare): Adapt.
	(c_update_type_canonical): Adapt.
	(c_make_fname_decl): Adapt.
	(start_function): Adapt.
	* c-objc-common.h: Add LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE.
	* c-tree.h: Add prototypes.
	* c-typeck.cc (c_verify_type): New function.
	(c_set_type_bits). New function.
	(c_build_pointer_type): Moved from c-decl.cc.
	(c_build_pointer_type_for_mode): New function.
	(c_build_function_type): New function.
	(c_build_array_type): New function.
	(c_build_type_attribute_variant): New function.
	(c_reconstruct_complex_type): New function.
	(c_build_functype_attribute_variant): Renamed.
	(array_to_pointer_conversion): Simplify logic.
	(composite_type_internal): Simplify logic..
	(build_unary_op): Simplify logic..
	(comptypes_verify): Add checking assertions.
	(c_build_qualified_type): Add checking assertions.
	(c_build_function_call_vec): Adapt.
	(qualify_type): Adapt.
	(build_functype_attribute_variant): Adapt.
	(common_pointer_type): Adapt.
	(c_common_type): Adapt.
	(convert_for_assignment): Adapt.
	(type_or_builtin_type): Adapt.
	(build_access_with_size_for_counted_by): Adapt.
	(build_conditional_expr): Adapt.
	(build_modify_expr): Adapt.
	(build_binary_op): Adapt.
	(build_omp_array_section): Adapt.
	(handle_omp_array_sections): Adapt.
	(c_finish_omp_clauses): Adapt.
	* c-parser.cc (c_parser_typeof_specifier): Adapt.
	(c_parser_generic_selection): Adapt.

2024-10-30  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_postfix_expression): Diagnose if
	first __builtin_stdc_* argument has char type even when
	-funsigned-char.

2024-10-29  David Malcolm  <dmalcolm@redhat.com>

	PR other/116613
	* c-objc-common.cc: Include "make-unique.h".
	(c_initialize_diagnostics): Use unique_ptr for pretty_printer.
	Use context->set_format_decoder.

2024-10-29  Jakub Jelinek  <jakub@redhat.com>

	PR c/117030
	* c-parser.cc: Include asan.h and c-family/c-ubsan.h.
	(c_parser_postfix_expression): Handle __builtin_stdc_rotate_left
	and __builtin_stdc_rotate_right.
	* c-fold.cc (c_fully_fold_internal): Handle LROTATE_EXPR and
	RROTATE_EXPR.

2024-10-25  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.cc: Remove trailing whitespace.
	* gimple-parser.cc: Likewise.
	* c-parser.cc: Likewise.
	* c-decl.cc: Likewise.

2024-10-24  David Malcolm  <dmalcolm@redhat.com>
	    Gaius Mulley  <gaiusmod2@gmail.com>

	PR other/116613
	* c-aux-info.cc: Add #define INCLUDE_MEMORY.
	* c-convert.cc: Likewise.
	* c-errors.cc: Likewise.
	* c-fold.cc: Likewise.
	* c-lang.cc: Likewise.
	* c-objc-common.cc: Likewise.
	(pp_markup::element_quoted_type::print_type): Use unique_ptr.
	* c-typeck.cc: Add #define INCLUDE_MEMORY.
	* gimple-parser.cc: Likewise.

2024-10-23  Joseph Myers  <josmyers@redhat.com>

	* c-decl.cc (c_struct_parse_info): Add member refloc.
	(start_struct): Store refloc in struct_parse_info.
	(finish_struct): Give "originally defined" message for C23 struct
	redefinition errors.

2024-10-22  Jakub Jelinek  <jakub@redhat.com>

	PR c/117190
	* c-parser.cc (c_parser_initval): Revert 2024-10-17 changes.
	Instead peek the 4th token and if it is not CPP_NUMBER,
	handle it like 3rd token CPP_CLOSE_BRACE for orig_len == INT_MAX.
	Also, check (2 + 2 * i)th raw token for the orig_len == INT_MAX
	case and punt if it is not CPP_NUMBER.

2024-10-19  Joseph Myers  <josmyers@redhat.com>

	* c-tree.h (c_arg_info): Add c23_empty_parens.
	* c-decl.cc (grokparms): Set c23_empty_parens.
	(build_arg_info): Clear c23_empty_parens.
	(store_parm_decls_newstyle): Do not give -Wtraditional warning for
	ISO C function definition if c23_empty_parens.

2024-10-18  Alejandro Colomar  <alx@kernel.org>

	* c-decl.cc (one_element_array_type_p, get_parm_array_spec)
	* c-fold.cc (c_fold_array_ref):
	Rename array_type_nelts => array_type_nelts_minus_one

2024-10-17  Jakub Jelinek  <jakub@redhat.com>

	PR c/117177
	* c-parser.cc (c_parser_initval): Instead of doing
	orig_len == INT_MAX checks before consuming tokens to set
	last = 1, check it after consuming it and if not followed
	by CPP_COMMA CPP_NUMBER, call process_init_element once
	more with the last CPP_NUMBER.

2024-10-16  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.cc (c_get_loop_names): Add checking assert that
	c is non-NULL in the loop.
	(c_finish_bc_name): Likewise.

2024-10-16  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_expression): Initialize next.original_type
	to integer_type_node for the CPP_EMBED case.

2024-10-16  Jakub Jelinek  <jakub@redhat.com>

	* c-tree.h (c_maybe_optimize_large_byte_initializer): Declare.
	* c-parser.cc (c_parser_initval): Attempt to optimize large char array
	initializers into RAW_DATA_CST.
	* c-typeck.cc (c_maybe_optimize_large_byte_initializer): New function.

2024-10-16  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_braced_init): Handle CPP_EMBED.
	(c_parser_get_builtin_args): Likewise.
	(c_parser_expression): Likewise.
	(c_parser_expr_list): Likewise.
	* c-typeck.cc (digest_init): Handle RAW_DATA_CST.  Formatting fix.
	(init_node_successor): New function.
	(add_pending_init): Handle RAW_DATA_CST.
	(set_nonincremental_init): Formatting fix.
	(output_init_element): Handle RAW_DATA_CST.  Formatting fixes.
	(maybe_split_raw_data): New function.
	(process_init_element): Use maybe_split_raw_data.  Handle
	RAW_DATA_CST.

2024-10-15  Qing Zhao  <qing.zhao@oracle.com>

	PR c/116016
	* c-decl.cc (names_builtin_p): Add RID_BUILTIN_COUNTED_BY_REF.
	* c-parser.cc (has_counted_by_object): New routine.
	(get_counted_by_ref): New routine.
	(c_parser_postfix_expression): Handle New RID_BUILTIN_COUNTED_BY_REF.
	* c-tree.h: New routine handle_counted_by_for_component_ref.
	* c-typeck.cc (handle_counted_by_for_component_ref): New routine.
	(build_component_ref): Call the new routine.

2024-10-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/117022
	* c-tree.h: Implement C2Y N3355 - Named loops.
	(C_DECL_LOOP_NAME, C_DECL_SWITCH_NAME, C_DECL_LOOP_SWITCH_NAME_VALID,
	C_DECL_LOOP_SWITCH_NAME_USED, IN_NAMED_STMT): Define.
	(c_get_loop_names, c_release_loop_names, c_finish_bc_name): Declare.
	(c_start_switch): Add NAME argument.
	(c_finish_bc_stmt): Likewise.
	* c-lang.h (struct language_function): Add loop_names and
	loop_names_hash members.
	* c-parser.cc (c_parser_external_declaration,
	c_parser_declaration_or_fndef, c_parser_struct_or_union_specifier,
	c_parser_parameter_declaration): Adjust c_parser_pragma caller.
	(get_before_labels): New function.
	(c_parser_compound_statement_nostart): Call get_before_labels when
	needed, adjust c_parser_pragma and c_parser_statement_after_labels
	callers.
	(c_parser_statement): Call get_before_labels first and pass it to
	c_parser_statement_after_labels.
	(c_parser_bc_name): New function.
	(c_parser_statement_after_labels): Add BEFORE_LABELS argument.  Pass
	it down to c_parser_switch_statement, c_parser_while_statement,
	c_parser_do_statement, c_parser_for_statement and c_parser_pragma.
	Call c_parser_bc_name for RID_BREAK and RID_CONTINUE and pass it as
	another argument to c_finish_bc_stmt.
	(c_parser_if_body, c_parser_else_body): Call get_before_labels
	early and pass it to c_parser_statement_after_labels.
	(c_parser_switch_statement): Add BEFORE_LABELS argument.  Call
	c_get_loop_names, if named, pass switch_name to c_start_switch,
	mark it valid and set IN_NAMED_STMT bit in in_statement before
	parsing body, otherwise clear IN_NAMED_STMT bit before that parsing.
	Run c_release_loop_names at the end.
	(c_parser_while_statement, c_parser_do_statement,
	c_parser_for_statement): Add BEFORE_LABELS argument.  Call
	c_get_loop_names, if named, mark it valid and set IN_NAMED_STMT bit
	in in_statement before parsing body, otherwise clear IN_NAMED_STMT
	before that parsing, arrange for the loop name if used to be
	another *_STMT argument.
	(c_parser_objc_class_instance_variables,
	c_parser_objc_methodprotolist): Adjust c_parser_pragma callers.
	(c_parser_pragma): Add BEFORE_LABELS argument.  Pass it down to
	c_parser_for_statement, c_parser_while_statement or
	c_parser_do_statement.
	(c_parser_omp_loop_nest, c_maybe_parse_omp_decl): Adjust
	c_parser_pragma callers.
	* c-decl.cc (loop_names, loop_names_hash): New static variables.
	(add_stmt): Set STATEMENT_LIST_HAS_LABEL after push_stmt_list rather
	than before it.
	(c_push_function_context): Save and clear loop_names and
	loop_names_hash.
	(c_pop_function_context): Release or delete, restore and clear
	loop_names and loop_names_hash.
	(c_get_loop_names, c_release_loop_names, c_finish_bc_name): New
	functions.
	* c-typeck.cc (c_start_switch): Add SWITCH_NAME argument, pass it down
	to build_stmt.
	(c_finish_bc_stmt): Add NAME argument.  Mark of IN_NAMED_STMT bit
	of in_statement in swtiches.  Use label for IN_OBJC_FOREACH only if
	name is NULL.  If name is non-NULL and C_DECL_LOOP_NAME and
	C_DECL_SWITCH_NAME are both set, assume outer ObjC foreach and
	dig labels from DECL_CHAIN of name.  Pass NAME to build_stmt
	otherwise.

2024-10-07  qing zhao  <qing.zhao@oracle.com>

	PR c/116735
	* c-decl.cc (verify_counted_by_attribute): Remove the attribute
	when error.

2024-10-07  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_parser_omp_allocate): Set alignment for alignof;
	accept static variables and fix predef allocator check.

2024-09-25  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_parser_omp_declare_target): Set target-used bit
	in omp_requires_mask.

2024-09-24  Tobias Burnus  <tburnus@baylibre.com>

	* c-parser.cc (c_parser_omp_requires): Handle self_maps clause.

2024-09-20  Martin Uecker  <uecker@tugraz.at>

	PR c/116726
	* c-typeck.cc (tagged_types_tu_compatible_p): Restore value
	of the cache after recursing into comptypes_internal.

2024-09-09  David Malcolm  <dmalcolm@redhat.com>

	* c-errors.cc (pedwarn_c23): Use "diagnostic_option_id option_id"
	rather than "int opt".  Update for renaming of diagnostic_info
	field.
	(pedwarn_c11): Likewise.
	(pedwarn_c99): Likewise.
	(pedwarn_c90): Likewise.
	* c-tree.h (pedwarn_c90): Likewise for decl.
	(pedwarn_c99): Likewise.
	(pedwarn_c11): Likewise.
	(pedwarn_c23): Likewise.

2024-09-09  David Malcolm  <dmalcolm@redhat.com>

	PR other/116613
	* c-objc-common.cc (c_initialize_diagnostics): Rename
	diagnostic_context's "printer" field to "m_printer".

2024-09-06  Jason Merrill  <jason@redhat.com>

	PR c++/46457
	PR c++/81665
	* c-objc-common.h (c_objc_attribute_table): Add
	c_common_clang_attribute_table.

2024-09-03  David Malcolm  <dmalcolm@redhat.com>

	* c-objc-common.cc (print_type): Prefix all output_buffer fields
	with "m_".

2024-09-02  Richard Sandiford  <richard.sandiford@arm.com>

	* c-typeck.cc (build_asm_expr): Rename ASM_INPUT_P to ASM_BASIC_P.

2024-08-31  Jakub Jelinek  <jakub@redhat.com>

	PR c/116130
	* c-decl.cc (handle_std_unsequenced_attribute): New function.
	(handle_std_reproducible_attribute): Likewise.
	(std_attributes): Add entries for "unsequenced" and "reproducible"
	attributes.
	(c_warn_type_attributes): Add TYPE argument.  Allow unsequenced
	or reproducible attributes if it is FUNCTION_TYPE.
	(groktypename): Adjust c_warn_type_attributes caller.
	(grokdeclarator): Likewise.
	(finish_declspecs): Likewise.
	* c-parser.cc (c_parser_declaration_or_fndef): Likewise.
	* c-tree.h (c_warn_type_attributes): Add TYPE argument.

2024-08-29  David Malcolm  <dmalcolm@redhat.com>

	* c-objc-common.cc (c_tree_printer): Convert final param from
	const char ** to pp_token_list &.

2024-08-02  Martin Uecker  <uecker@tugraz.at>

	* c-decl.cc (grokdeclarator, finish_struct): Set and
	propagate TYPE_TYPELESS_STORAGE.

2024-07-23  Andi Kleen  <ak@linux.intel.com>

	PR c/83324
	* c-parser.cc (struct attr_state): Define with musttail_p.
	(c_parser_statement_after_labels): Handle [[musttail]].
	(c_parser_std_attribute): Dito.
	(c_parser_handle_musttail): Dito.
	(c_parser_compound_statement_nostart): Dito.
	(c_parser_all_labels): Dito.
	(c_parser_statement): Dito.
	* c-tree.h (c_finish_return): Add musttail_p flag.
	* c-typeck.cc (c_finish_return): Handle musttail_p flag.

2024-07-20  Andi Kleen  <ak@gcc.gnu.org>

	Revert:
	2024-07-20  Andi Kleen  <ak@linux.intel.com>

	PR c/83324
	* c-parser.cc (struct attr_state): Define with musttail_p.
	(c_parser_statement_after_labels): Handle [[musttail]].
	(c_parser_std_attribute): Dito.
	(c_parser_handle_musttail): Dito.
	(c_parser_compound_statement_nostart): Dito.
	(c_parser_all_labels): Dito.
	(c_parser_statement): Dito.
	* c-tree.h (c_finish_return): Add musttail_p flag.
	* c-typeck.cc (c_finish_return): Handle musttail_p flag.

2024-07-20  Andi Kleen  <ak@linux.intel.com>

	PR c/83324
	* c-parser.cc (struct attr_state): Define with musttail_p.
	(c_parser_statement_after_labels): Handle [[musttail]].
	(c_parser_std_attribute): Dito.
	(c_parser_handle_musttail): Dito.
	(c_parser_compound_statement_nostart): Dito.
	(c_parser_all_labels): Dito.
	(c_parser_statement): Dito.
	* c-tree.h (c_finish_return): Add musttail_p flag.
	* c-typeck.cc (c_finish_return): Handle musttail_p flag.

2024-07-14  Alejandro Colomar  <alx@kernel.org>

	PR c/115185
	* c-typeck.cc (digest_init): Separate warnings about character
	arrays being initialized as unterminated character sequences
	with string literals, from -Wc++-compat, into a new warning,
	-Wunterminated-string-initialization.

2024-07-13  David Malcolm  <dmalcolm@redhat.com>

	* c-objc-common.cc: Include "tree-pretty-print-markup.h".
	(print_type): Add optional "highlight_color" param and use it
	to show highlight colors in "aka" text.
	(pp_markup::element_quoted_type::print_type): New.
	* c-typeck.cc: Include "tree-pretty-print-markup.h".
	(comp_parm_types): New.
	(build_function_call_vec): Pass it to check_function_arguments.
	(inform_for_arg): Use %e and highlight colors to contrast actual
	versus expected.
	(convert_for_assignment): Use highlight_colors::actual for the
	rhs_label.
	(build_binary_op): Use highlight_colors::lhs and highlight_colors::rhs
	for the ranges.

2024-07-10  Marek Polacek  <polacek@redhat.com>

	PR c/115642
	* c-typeck.cc (c_cast_expr): Return error_mark_node if build_c_cast
	failed.

2024-07-10  Marek Polacek  <polacek@redhat.com>

	PR c/115549
	* c-decl.cc (c_decl_attributes): If lookup_last_decl returns
	error_mark_node, use NULL_TREE as last_decl.

2024-07-09  Martin Uecker  <uecker@tugraz.at>

	PR c/114727
	* c-typeck.cc (tagged_types_tu_compatible): Add test.

2024-07-09  Martin Uecker  <uecker@tugraz.at>

	PR c/115696
	* c-typeck.cc (comptypes_verify): Bail out for
	identical, empty, and erroneous input types.

2024-07-09  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_omp_tile_sizes): Use c_parser_expr_list.

2024-06-27  Martin Uecker  <uecker@tugraz.at>

	* c-parser.cc (c_parser_direct_declarator_inner): Add
	error message.

2024-06-26  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.cc (c_parser_require): Pass *global_dc to
	gcc_rich_location::add_location_if_nearby.

2024-06-25  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c/115587
	* c-parser.cc (c_parser_omp_loop_nest): Move initializations to
	point of declaration.

2024-06-25  Jakub Jelinek  <jakub@redhat.com>
	    Martin Uecker  <uecker@tugraz.at>

	PR c/114930
	PR c/115502
	* c-decl.cc (c_update_type_canonical): Assert t is main variant
	with 0 TYPE_QUALS.  Simplify and don't use check_qualified_type.
	Deal with the case where build_qualified_type returns
	TYPE_STRUCTURAL_EQUALITY_P type.

2024-06-18  Martin Uecker  <uecker@tugraz.at>

	PR c/115109
	* c-decl.cc (build_enumerator): When redeclaring an
	enumerator convert value to previous type.  For redeclared
	enumerators use underlying type for computing the next value.

2024-06-13  Joseph Myers  <josmyers@redhat.com>

	* c-typeck.cc (build_unary_op): Use pedwarn_c23 for complex
	increment and decrement.

2024-06-12  David Malcolm  <dmalcolm@redhat.com>

	* c-objc-common.cc (print_type): Update for fields of
	pretty_printer becoming private.
	(c_tree_printer): Likewise.

2024-06-11  Joseph Myers  <josmyers@redhat.com>

	* c-errors.cc (pedwarn_c23): New.
	* c-parser.cc (disable_extension_diagnostics)
	(restore_extension_diagnostics): Save and restore
	warn_c23_c2y_compat.
	(c_parser_generic_selection): Handle type name as controlling
	operand.  Allow incomplete and function types subject to
	pedwarn_c23 calls.
	* c-tree.h (pedwarn_c23): New.

2024-06-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/114493
	* c-decl.cc (c_fixup_may_alias): New function.
	(finish_struct): Call it if "may_alias" attribute is
	specified.

2024-06-05  Jakub Jelinek  <jakub@redhat.com>
	    Frederik Harwath  <frederik@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* c-parser.cc (c_parser_skip_std_attribute_spec_seq): New function.
	(check_omp_intervening_code): Reject imperfectly nested tile.
	(c_parser_compound_statement_nostart): If want_nested_loop, use
	c_parser_omp_next_tokens_can_be_canon_loop instead of just checking
	for RID_FOR keyword.
	(c_parser_omp_clause_name): Handle full and partial clause names.
	(c_parser_omp_clause_allocate): Remove spurious semicolon.
	(c_parser_omp_clause_full, c_parser_omp_clause_partial): New
	functions.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FULL and
	PRAGMA_OMP_CLAUSE_PARTIAL.
	(c_parser_omp_next_tokens_can_be_canon_loop): New function.
	(c_parser_omp_loop_nest): Parse C23 attributes.  Handle tile/unroll
	constructs.  Use c_parser_omp_next_tokens_can_be_canon_loop instead
	of just checking for RID_FOR keyword.  Only add_stmt (body) if it is
	non-NULL.
	(c_parser_omp_for_loop): Rename tiling variable to oacc_tiling.  For
	OMP_CLAUSE_SIZES set collapse to list length of OMP_CLAUSE_SIZES_LIST.
	Use c_parser_omp_next_tokens_can_be_canon_loop instead of just
	checking for RID_FOR keyword.  Remove spurious semicolon.  Don't call
	c_omp_check_loop_binding_exprs if stmt is NULL.  Skip generated loops.
	(c_parser_omp_tile_sizes, c_parser_omp_tile): New functions.
	(OMP_UNROLL_CLAUSE_MASK): Define.
	(c_parser_omp_unroll): New function.
	(c_parser_omp_construct): Handle PRAGMA_OMP_TILE and
	PRAGMA_OMP_UNROLL.
	* c-typeck.cc (c_finish_omp_clauses): Adjust wording of some of the
	conflicting clause diagnostic messages to include word clause.
	Handle OMP_CLAUSE_{FULL,PARTIAL,SIZES} and diagnose full vs. partial
	conflict.

2024-05-31  Qing Zhao  <qing.zhao@oracle.com>

	* c-typeck.cc (build_access_with_size_for_counted_by): Add the 6th
	argument to .ACCESS_WITH_SIZE.

2024-05-31  Qing Zhao  <qing.zhao@oracle.com>

	* c-parser.cc (c_parser_postfix_expression): Ignore the counted-by
	attribute when build_component_ref inside offsetof operator.
	* c-tree.h (build_component_ref): Add one more parameter.
	* c-typeck.cc (build_counted_by_ref): New function.
	(build_access_with_size_for_counted_by): New function.
	(build_component_ref): Check the counted-by attribute and build
	call to .ACCESS_WITH_SIZE.
	(build_unary_op): When building ADDR_EXPR for
	.ACCESS_WITH_SIZE, use its first argument.
	(lvalue_p): Accept call to .ACCESS_WITH_SIZE.
	(digest_init): Fold call to .ACCESS_WITH_SIZE to its first
	argument when require_constant is TRUE.

2024-05-31  Qing Zhao  <qing.zhao@oracle.com>

	* c-decl.cc (flexible_array_member_type_p): Renamed and moved to...
	(add_flexible_array_elts_to_size): Use renamed function.
	(is_flexible_array_member_p): Use renamed function.
	(verify_counted_by_attribute): New function.
	(finish_struct): Use renamed function and verify counted_by
	attribute.
	* c-tree.h (lookup_field): New prototype.
	* c-typeck.cc (lookup_field): Expose as extern function.
	(tagged_types_tu_compatible_p): Check counted_by attribute for
	structure type.

2024-05-31  Martin Uecker  <uecker@tugraz.at>

	* c-decl.cc (finish_struct): Do not set TYPE_CANONICAL for
	structure or unions with variable size.
	* c-objc-common.cc (c_get_alias_set): Do not set alias set to zero.
	* c-typeck.cc (comptypes_verify): New function.
	(comptypes,comptypes_same_p,comptypes_check_enum_int): Add assertion.
	(comptypes_equiv_p): Add assertion that ensures that compatible
	types have the same equivalence class.
	(tagged_types_tu_compatible_p): Remove now unneeded special case.

2024-05-31  Martin Uecker  <uecker@tugraz.at>

	PR tree-optimization/115157
	PR tree-optimization/115177
	* c-decl.cc (shadow_tag-warned,parse_xref_tag,start_enum,
	finish_enum): Set SET_TYPE_STRUCTURAL_EQUALITY / TYPE_CANONICAL.
	* c-objc-common.cc (get_alias_set): Remove special case.
	(get_aka_type): Add special case.

2024-05-29  Martin Uecker  <uecker@tugraz.at>

	* c-typeck.cc (comptypes_internal): Add flag to track
	whether a struct is the target of a pointer.
	(tagged_types_tu_compatible): When forming equivalence
	classes, treat nested pointed-to structs as equivalent.

2024-05-28  David Malcolm  <dmalcolm@redhat.com>

	PR bootstrap/115167
	* c-objc-common.cc: Replace include of "gcc-rich-location.h" with
	"c-family/c-type-mismatch.h".
	* c-typeck.cc: Likewise.

2024-05-24  Martin Uecker  <uecker@tugraz.at>

	PR c/114831
	* c-typeck.cc (array_to_pointer_conversion, build_unary_op):
	Propagate flag to pointer target.

2024-05-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/115103
	* c-typeck.cc (c_finish_omp_clauses): Diagnose grainsize
	used together with num_tasks.

2024-05-06  Qing Zhao  <qing.zhao@oracle.com>

	PR c/53548
	* c-decl.cc (add_flexible_array_elts_to_size): Handle the cases
	when the DECL is union.

2024-05-06  Qing Zhao  <qing.zhao@oracle.com>

	PR c/53548
	* c-decl.cc (finish_struct): Change errors to pedwarns for the cases
	flexible array members in union or alone in structures.

2024-04-30  Richard Biener  <rguenther@suse.de>

	* gimple-parser.cc (c_parser_gimple_binary_expression):
	Parse __{CEIL,FLOOR,ROUND}_{DIV,MOD} and __EXACT_DIV.

2024-04-19  Martin Uecker  <uecker@tugraz.at>
	    Jakub Jelinek  <jakub@redhat.com>

	PR lto/114574
	PR c/114361
	* c-decl.cc (shadow_tag_warned): For flag_isoc23 and code not
	ENUMERAL_TYPE use SET_TYPE_STRUCTURAL_EQUALITY.
	(parser_xref_tag): Likewise.
	(start_struct): For flag_isoc23 use SET_TYPE_STRUCTURAL_EQUALITY.
	(c_update_type_canonical): New function.
	(finish_struct): Put NULL as second == operand rather than first.
	Assert TYPE_STRUCTURAL_EQUALITY_P.  Call c_update_type_canonical.
	* c-typeck.cc (composite_type_internal): Use
	SET_TYPE_STRUCTURAL_EQUALITY.  Formatting fix.

2024-04-09  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.cc (previous_tag): Fix duplicated words in comment; the the
	-> the.
	(diagnose_mismatched_decls): Fix duplicated words in comment;
	about about -> about.

2024-04-05  Martin Uecker  <uecker@tugraz.at>

	Revert:
	2024-04-02  Martin Uecker  <uecker@tugraz.at>

	PR c/114361
	* c-decl.cc (finish_struct): Set TYPE_CANONICAL when completing
	strucute types.

2024-04-02  Martin Uecker  <uecker@tugraz.at>

	PR c/114361
	* c-decl.cc (finish_struct): Set TYPE_CANONICAL when completing
	strucute types.

2024-03-14  Chung-Lin Tang  <cltang@baylibre.com>

	* c-parser.cc (c_parser_oacc_data_clause): Add parsing support for
	'readonly' modifier, set OMP_CLAUSE_MAP_READONLY if readonly modifier
	found, update comments.
	(c_parser_oacc_cache): Add parsing support for 'readonly' modifier,
	set OMP_CLAUSE__CACHE__READONLY if readonly modifier found, update
	comments.

2024-03-08  Jakub Jelinek  <jakub@redhat.com>

	PR debug/113918
	* c-tree.h (c_type_dwarf_attribute): Declare.
	* c-objc-common.h (LANG_HOOKS_TYPE_DWARF_ATTRIBUTE): Redefine.
	* c-objc-common.cc: Include dwarf2.h.
	(c_type_dwarf_attribute): New function.

2024-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR c/114042
	* c-parser.cc (c_parser_postfix_expression): Diagnose
	__builtin_stdc_bit_* argument with ENUMERAL_TYPE or BOOLEAN_TYPE
	type or if signed here rather than on the replacement builtins
	in check_builtin_function_arguments.

2024-02-22  Jakub Jelinek  <jakub@redhat.com>

	PR c/114007
	* c-parser.cc (c_parser_std_attribute): Remove loose_scope_p argument.
	Instead of checking it, parse 2 CPP_COLONs with the first one with
	COLON_SCOPE flag the same as CPP_SCOPE.
	(c_parser_std_attribute_list): Remove loose_scope_p argument, don't
	pass it to c_parser_std_attribute.
	(c_parser_std_attribute_specifier): Adjust c_parser_std_attribute_list
	caller.

2024-02-13  Tobias Burnus  <tburnus@baylibre.com>

	PR middle-end/113904
	* c-parser.cc (c_parser_omp_context_selector): Handle splitting of
	OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.

2024-02-10  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.cc (get_parm_array_spec): Use HOST_WIDE_INT_PRINT_UNSIGNED
	instead of "%lu" and casts to unsigned long or unsigned long long.

2024-02-08  Joseph Myers  <josmyers@redhat.com>

	PR c/113776
	* c-typeck.cc (c_objc_common_truthvalue_conversion): Return an
	integer constant expression for boolean conversion of floating
	constant.

2024-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR c/113740
	* c-decl.cc (finish_struct): Only use build_bitint_type if
	bit-field has width larger or equal to minimum _BitInt
	precision.

2024-01-31  Joseph Myers  <josmyers@redhat.com>

	PR c/112571
	* c-decl.cc (start_enum): Clear ENUM_FIXED_UNDERLYING_TYPE_P when
	defining without a fixed underlying type an enumeration previously
	declared with a fixed underlying type.

2024-01-31  Martin Uecker  <uecker@tugraz.at>

	PR c/113438
	* c-typeck.cc (composite_type_internal): Set TYPE_STUB_DECL.

2024-01-31  Joseph Myers  <josmyers@redhat.com>

	PR c/111059
	PR c/111911
	* c-tree.h (c_objc_common_truthvalue_conversion): Add third
	argument.
	* c-convert.cc (c_convert): For conversions to boolean, pass third
	argument to c_objc_common_truthvalue_conversion rather than
	converting here.
	* c-typeck.cc (build_c_cast): Ensure arguments with integer
	operands are marked as such for conversion to boolean.
	(c_objc_common_truthvalue_conversion): Add third argument TYPE.

2024-01-21  Martin Uecker  <uecker@tugraz.at>

	PR c/113492
	* c-decl.cc (grokdeclarator): Use c_common_unsigned_type instead of
	unsigned_type_for to create the unsigned type for bitfields declared
	with int when using -funsigned-bitfields.

2024-01-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/113315
	* c-typeck.cc (build_array_ref): If index has BITINT_TYPE type with
	precision larger than sizetype precision, convert it to sizetype.

2024-01-11  Julian Brown  <julian@codesourcery.com>

	* c-parser.cc (c_parser_braced_init, c_parser_conditional_expression):
	Don't allow OpenMP array section.
	(c_parser_postfix_expression): Don't allow array section in statement
	expression.
	(c_parser_postfix_expression_after_primary): Add support for OpenMP
	array section parsing.
	(c_parser_expr_list): Don't allow OpenMP array section here.
	(c_parser_omp_variable_list): Change ALLOW_DEREF parameter to
	MAP_LVALUE.  Support parsing of general lvalues in "map", "to" and
	"from" clauses.
	(c_parser_omp_var_list_parens): Change ALLOW_DEREF parameter to
	MAP_LVALUE.  Update call to c_parser_omp_variable_list.
	(c_parser_oacc_data_clause): Update calls to
	c_parser_omp_var_list_parens.
	(c_parser_omp_clause_reduction): Use OMP_ARRAY_SECTION tree node
	instead of TREE_LIST for array sections.
	(c_parser_omp_target): Allow GOMP_MAP_ATTACH.
	* c-tree.h (c_omp_array_section_p): Add extern declaration.
	(build_omp_array_section): Add prototype.
	* c-typeck.cc (c_omp_array_section_p): Add flag.
	(mark_exp_read): Support OMP_ARRAY_SECTION.
	(build_omp_array_section): Add function.
	(build_external_ref): Tweak error path for OpenMP array sections.
	(handle_omp_array_sections_1): Use OMP_ARRAY_SECTION tree code instead
	of TREE_LIST.  Handle more kinds of expressions.
	(c_oacc_check_attachments): Use OMP_ARRAY_SECTION instead of TREE_LIST
	for array sections.
	(c_finish_omp_clauses): Use OMP_ARRAY_SECTION instead of TREE_LIST.
	Check for supported expression types.

2024-01-09  Tamar Christina  <tamar.christina@arm.com>

	PR c/113267
	* c-parser.cc (c_parser_for_statement): Skip the pragma is no cond.

2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* c-parser.cc (c_parser_omp_clause_name): Move handling of indirect
	clause to correspond to alphabetical order.

2023-12-30  Martin Uecker  <uecker@tugraz.at>

	* c-typeck.cc (tagged_types_tu_compatible_p): Revise.

2023-12-22  Martin Uecker  <uecker@tugraz.at>

	* c-typeck.cc (composite_type_internal): Adapted from
	composite_type to support structs and unions.
	(composite_type): New wrapper function.
	(build_conditional_operator): Return composite type.
	* c-decl.cc (finish_struct): Allow NULL for
	enclosing_struct_parse_info.

2023-12-21  Martin Uecker  <uecker@tugraz.at>

	* c-decl.cc (c_struct_hasher): Hash stable for struct
	types.
	(c_struct_hasher::hash, c_struct_hasher::equal): New
	functions.
	(finish_struct): Set TYPE_CANONICAL to first struct in
	equivalence class.
	* c-objc-common.cc (c_get_alias_set): Let structs or
	unions with variable size alias anything.
	* c-tree.h (comptypes_equiv): New prototype.
	* c-typeck.cc (comptypes_equiv): New function.
	(comptypes_internal): Implement equivalence mode.
	(tagged_types_tu_compatible): Implement equivalence mode.

2023-12-21  Martin Uecker  <uecker@tugraz.at>

	* c-tree.h (c_parser_enum_specifier): Add parameter.
	* c-decl.cc (start_enum): Allow redefinition.
	(finish_enum): Diagnose conflicts.
	(build_enumerator): Set context.
	(diagnose_mismatched_decls): Diagnose conflicting enumerators.
	(push_decl): Preserve context for enumerators.
	* c-typeck.cc (tagged_types_tu_compatible_p): Adapt.
	* c-parser.cc (c_parser_enum_specifier): Remember when
	seen is from an enum type which is not yet defined.

2023-12-21  Martin Uecker  <uecker@tugraz.at>

	* c-decl.cc (previous_tag): New function.
	(parser_xref_tag): Find earlier definition.
	(get_parm_info): Turn off warning for C23.
	(start_struct): Allow redefinitons.
	(finish_struct): Diagnose conflicts.
	* c-tree.h (comptypes_same_p): Add prototype.
	* c-typeck.cc (comptypes_same_p): New function.
	(comptypes_internal): Activate comparison of tagged types.
	(convert_for_assignment): Ignore qualifiers.
	(digest_init): Add error.
	(initialized_elementwise_p): Allow compatible types.

2023-12-20  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_postfix_expression_after_primary): Grow
	sizeof_arg and sizeof_arg_loc arrays to 6 elements.  Call
	warn_for_calloc if warn_calloc_transposed_args for functions with
	alloc_size type attribute with 2 arguments.
	(c_parser_expr_list): Use 6 instead of 3.
	* c-typeck.cc (build_c_cast): Call warn_for_alloc_size for casts
	of calls to functions with alloc_size type attribute.
	(convert_for_assignment): Likewise.

2023-12-19  Sandra Loosemore  <sandra@codesourcery.com>

	* c-parser.cc (omp_construct_selectors): Delete.
	(omp_device_selectors): Delete.
	(omp_implementation_selectors): Delete.
	(omp_user_selectors): Delete.
	(c_parser_omp_context_selector): Adjust for new representations
	and simplify dispatch logic.  Uniformly warn instead of sometimes
	error when an unknown selector is found.  Adjust error messages
	for extraneous/incorrect score.
	(c_parser_omp_context_selector_specification): Likewise.
	(c_finish_omp_declare_variant): Adjust for new representations.

2023-12-19  Sandra Loosemore  <sandra@codesourcery.com>

	* c-parser.cc (c_parser_omp_context_selector): Adjust for new
	namelist property representation.

2023-12-19  Sandra Loosemore  <sandra@codesourcery.com>

	* c-parser.cc (c_parser_omp_context_selector): Use new constructors.

2023-12-18  Richard Biener  <rguenther@suse.de>

	PR c/111975
	* gimple-parser.cc (c_parser_gimple_postfix_expression):
	Parse TARGET_MEM_REF extended operands for __MEM.

2023-12-13  Jason Merrill  <jason@redhat.com>

	* c-typeck.cc (convert_for_assignment): Adjust call to
	warn_for_address_of_packed_member.

2023-12-13  Julian Brown  <julian@codesourcery.com>

	* c-parser.cc (c_parser_oacc_all_clauses): Add TARGET_P parameter. Use
	to select region type for c_finish_omp_clauses call.
	(c_parser_oacc_loop): Update calls to c_parser_oacc_all_clauses.
	(c_parser_oacc_compute): Likewise.
	(c_parser_omp_target_data, c_parser_omp_target_enter_data): Support
	ATTACH kind.
	(c_parser_omp_target_exit_data): Support DETACH kind.
	(check_clauses): Handle GOMP_MAP_POINTER and GOMP_MAP_ATTACH here.
	* c-typeck.cc (handle_omp_array_sections_1,
	handle_omp_array_sections, c_finish_omp_clauses): Use
	c_omp_address_inspector class and OMP address tokenizer to analyze and
	expand map clause expressions.  Fix some diagnostics.  Fix "is OpenACC"
	condition for C_ORT_ACC_TARGET addition.

2023-12-13  Julian Brown  <julian@codesourcery.com>

	* c-typeck.cc (c_finish_omp_clauses): Add braces and reindent
	OMP_CLAUSE_TO/OMP_CLAUSE_FROM/OMP_CLAUSE__CACHE_ stanza.

2023-12-11  Martin Uecker  <uecker@tugraz.at>

	PR c/112488
	* c-decl.cc (add_decl_expr): Revise.
	(finish_struct): Create DECL_EXPR.
	* c-parser.cc (c_parser_struct_or_union_specifier): Call
	finish_struct with expression for VLA sizes.
	* c-tree.h (finish_struct): Add argument.

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

	* c-parser.cc (c_parser_omp_requires): Handle acquires/release
	in atomic_default_mem_order clause.
	(c_parser_omp_atomic): Update.

2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>

	* c-decl.cc (std_attribute_table): Add extra braces to work
	around PR 16333 in older compilers.

2023-12-05  Richard Biener  <rguenther@suse.de>

	PR c/86869
	* c-typeck.cc (c_build_qualified_type): Preserve address-space
	info for ARRAY_TYPE.

2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>

	* c-tree.h (std_attribute_table): Declare.
	* c-decl.cc (std_attribute_table): Change type to
	scoped_attribute_specs, using...
	(std_attributes): ...this as the underlying array.
	(c_init_decl_processing): Remove call to register_scoped_attributes.
	* c-objc-common.h (c_objc_attribute_table): New global.
	(LANG_HOOKS_ATTRIBUTE_TABLE): Use it.
	(LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Delete.
	(LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Delete.

2023-12-01  Florian Weimer  <fweimer@redhat.com>

	PR other/44209
	* c-decl.cc (grokparms): Issue permerror for
	OPT_Wdeclaration_missing_parameter_type instead of a pedwarn.

2023-12-01  Florian Weimer  <fweimer@redhat.com>

	PR c/96284
	* c-typeck.cc (build_conditional_expr): Upgrade most pointer
	type mismatches to a permerror.
	(convert_for_assignment): Use permerror_opt and
	permerror_init for OPT_Wincompatible_pointer_types warnings.

2023-12-01  Florian Weimer  <fweimer@redhat.com>

	PR c/96284
	* c-typeck.cc (c_finish_return): Use permerrors
	for OPT_Wreturn_mismatch diagnostics.

2023-12-01  Florian Weimer  <fweimer@redhat.com>

	* c-decl.cc (grokdeclarator): Do not skip -Wimplicit-int
	warnings or errors in system headers.

2023-12-01  Florian Weimer  <fweimer@redhat.com>

	* c-decl.cc (warn_defaults_to): Remove.
	(grok_declarator, start_function): Call permerror_opt
	instead of warn_defaults_to.
	(store_parm_decls_oldstyle): Call permerror_opt for
	OPT_Wimplicit_int.

2023-12-01  Florian Weimer  <fweimer@redhat.com>

	PR c/91092
	PR c/96284
	* c-decl.cc (implicit_decl_permerror): Rename from
	implicit_decl_warning.  Call permerror_opt instead of
	pedwarn and warning_at.
	(implicitly_declare): Adjust callers.

2023-12-01  Florian Weimer  <fweimer@redhat.com>

	PR c/96284
	PR c/106416
	* c-typeck.cc (build_conditional_expr): Use permerror_opt for
	pointer/integer type mismatches, based on -Wint-conversion.
	(pedwarn_permerror_init, permerror_init): New function.
	(pedwarn_init): Call pedwarn_permerror_init.
	(convert_for_assignment): Use permerror_opt and
	permerror_init for -Wint-conversion warnings.

2023-11-29  Alexandre Oliva  <oliva@adacore.com>

	* c-typeck.cc (convert_lvalue_to_rvalue): Decay hardbools.
	* c-convert.cc (convert): Convert to hardbool through
	truthvalue.
	* c-decl.cc (check_bitfield_type_and_width): Skip enumeral
	truncation warnings for hardbool.
	(finish_struct): Propagate hardbool attribute to bitfield
	types.
	(digest_init): Convert to hardbool.

2023-11-28  Jason Merrill  <jason@redhat.com>

	PR c++/94264
	PR c++/53220
	* c-typeck.cc (array_to_pointer_conversion): Adjust -Wc++-compat
	diagnostic.

2023-11-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/112741
	* gimple-parser.cc (c_parser_parse_gimple_body): Also
	set DECL_SEEN_IN_BIND_EXPR_Pfor locals.

2023-11-27  Alex Coplan  <alex.coplan@arm.com>
	    Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/60512
	* c-lang.cc (c_family_register_lang_features): New.
	* c-objc-common.cc (struct c_feature_info): New.
	(c_register_features): New.
	* c-objc-common.h (c_register_features): New.

2023-11-24  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.cc (c_parser_omp_clause_num_threads,
	c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
	c_parser_omp_clause_priority, c_parser_omp_clause_schedule,
	c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
	c_parser_omp_clause_dist_schedule, c_parser_omp_depobj,
	c_parser_omp_scan_loop_body, c_parser_omp_assumption_clauses):
	Add OPT_Wopenmp to warning_at.

2023-11-24  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.cc (c_parser_omp_depobj): Accept optionally an argument
	to the destroy clause.

2023-11-23  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_postfix_expression): Handle RID_BUILTIN_STDC.
	* c-decl.cc (names_builtin_p): Likewise.

2023-11-14  Jakub Jelinek  <jakub@redhat.com>

	PR c/111309
	* c-typeck.cc (convert_arguments): Don't promote first argument
	of BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.

2023-11-10  Martin Uecker  <uecker@tugraz.at>

	* c-typeck.cc (struct comptypes_data): Add anon_field flag.
	(comptypes, comptypes_check_unum_int,
	comptypes_check_different_types): Remove old cache.
	(tagged_tu_types_compatible_p): Rewrite.

2023-11-09  Florian Weimer  <fweimer@redhat.com>

	* c-typeck.cc (c_finish_return): Use pedwarn with
	OPT_Wreturn_mismatch for missing/extra return expressions.

2023-11-07  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* c-decl.cc (c_decl_attributes): Add attribute for indirect
	functions.
	* c-lang.h (c_omp_declare_target_attr): Add indirect field.
	* c-parser.cc (c_parser_omp_clause_name): Handle indirect clause.
	(c_parser_omp_clause_indirect): New.
	(c_parser_omp_all_clauses): Handle indirect clause.
	(OMP_DECLARE_TARGET_CLAUSE_MASK): Add indirect clause to mask.
	(c_parser_omp_declare_target): Handle indirect clause.  Emit error
	message if device_type or indirect clauses used alone.  Emit error
	if indirect clause used with device_type that is not 'any'.
	(OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK): Add indirect clause to mask.
	(c_parser_omp_begin): Handle indirect clause.
	* c-typeck.cc (c_finish_omp_clauses): Handle indirect clause.

2023-11-07  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc: Use flag_isoc23 instead of flag_isoc2x and c23_auto_p
	instead of c2x_auto_p.  Refer to C23 instead of C2X in diagnostics
	and comments.
	* c-errors.cc: Use flag_isoc23 instead of flag_isoc2x and
	warn_c11_c23_compat instead of warn_c11_c2x_compat.  Refer to C23
	instead of C2X in comments.
	* c-parser.cc: Use flag_isoc23 instead of flag_isoc2x,
	warn_c11_c23_compat instead of warn_c11_c2x_compat, c23_auto_p
	instead of c2x_auto_p and D_C23 instead of D_C2X.  Refer to C23
	instead of C2X in diagnostics and comments.
	* c-tree.h: Refer to C23 instead of C2X in comments.
	(struct c_declspecs): Rename c2x_auto_p to c23_auto_p.
	* c-typeck.cc: Use flag_isoc23 instead of flag_isoc2x and
	warn_c11_c23_compat instead of warn_c11_c2x_compat.  Refer to C23
	instead of C2X in diagnostics and comments.

2023-11-06  Joseph Myers  <joseph@codesourcery.com>

	PR c/107954
	* c-errors.cc (pedwarn_c11): Use OPT_Wc11_c23_compat instead of
	OPT_Wc11_c2x_compat.
	* c-typeck.cc (build_conditional_expr, convert_for_assignment):
	Use OPT_Wc11_c23_compat instead of OPT_Wc11_c2x_compat.

2023-11-04  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.h (c_maybe_parse_omp_decl): Declare.
	* c-parser.cc (struct c_parser): Add in_omp_decl_attribute member.
	(c_parser_std_attribute): Uncoment omp::decl handling.
	(c_parser_omp_var_list_parens): If parser->in_omp_decl_attribute
	don't expect any arguments, instead create clause or TREE_LIST for
	that decl.
	(c_maybe_parse_omp_decl): New function.
	(c_parser_omp_declare_target): If parser->in_omp_decl_attribute and
	first token isn't name or comma invoke c_parser_omp_var_list_parens.
	* c-decl.cc (c_decl_attributes): Uncomment omp::decl handling and
	use *node rather than non-existing *decl.

2023-11-04  Jakub Jelinek  <jakub@redhat.com>

	* c-tree.def: New file.
	* c-tree.h (struct c_tree_token_vec): Forward declare.
	(c_tree_size): Declare.
	* c-lang.h (struct c_omp_declare_target_attr): Add attr_syntax member.
	(struct c_omp_begin_assumes_data): New type.
	(current_omp_begin_assumes): Change type from int to
	vec<c_omp_begin_assumes_data, va_gc> *.
	* c-lang.cc: Include c-family/c-pragma.h and c-parser.h.
	* c-parser.h (struct c_tree_token_vec_struct): New type.
	(C_TOKEN_VEC_TOKENS): New macro.
	* c-parser.cc (struct c_parser): Add omp_attrs_forbidden_p and
	in_omp_attribute_pragma members.
	(c_parser_skip_until_found): Handle CPP_PRAGMA_EOL when
	parser->in_omp_attribute_pragma.
	(c_parser_skip_to_pragma_eol): Likewise.
	(c_parser_translation_unit): Adjust for current_omp_begin_assumes
	being a vector rather than counter.
	(c_parser_declaration_or_fndef): Handle omp::directive and
	omp::sequence attributes on attribute declaration and declare simd
	or declare variant directives in those on function declarations.
	(c_parser_check_balanced_raw_token_sequence): Forward declare.
	(c_parser_omp_directive_args, c_parser_omp_sequence_args): New
	functions.
	(c_parser_std_attribute): Handle omp::directive and omp::sequence
	attributes.
	(struct c_omp_attribute_data): New type.
	(c_parser_handle_statement_omp_attributes,
	c_parser_handle_directive_omp_attributes): New functions.
	(c_parser_compound_statement_nostart): Handle omp::directive and
	omp::sequence attributes on statements.  Formatting fix.
	(c_parser_all_labels): Handle omp::directive and omp::sequence
	attributes on statements.
	(c_parser_statement): Clear parser->omp_attrs_forbidden_p.
	(c_parser_omp_variable_list): Handle parser->tokens
	!= &parser->tokens_buf[0] by saving/restoring it.
	(c_parser_omp_structured_block): Set parser->omp_attrs_forbidden_p.
	(c_parser_omp_section_scan): New function.
	(c_parser_omp_structured_block_sequence, c_parser_omp_sections_scope):
	Use it.
	(c_parser_omp_parallel): Set parser->omp_attrs_forbidden_p.
	(c_parser_omp_task): Likewise.
	(c_parser_omp_declare_simd): Handle function declaration after
	std attributes.
	(c_finish_omp_declare_simd): Don't assert all kinds are the same.
	(c_parser_omp_declare_target): Also push attr_syntax flag.
	(c_parser_omp_begin): Likewise.  Adjust for current_omp_begin_assumes
	type change.
	(c_parser_omp_end): Adjust for current_omp_begin_assumes type
	change.  Diagnose mixing of attribute vs. pragma syntax on end assumes
	or end declare target.
	(c_parser_omp_declare_reduction): Handle parser->tokens
	!= &parser->tokens_buf[0] by saving/restoring it.
	* c-decl.cc: Include c-parser.h.
	(current_omp_begin_assumes): Change type from int to
	vec<c_omp_begin_assumes_data, va_gc> *.
	(struct c_tree_token_vec): New type.  Add static assertions
	for sizeof and offsetof.
	(union lang_tree_node): Add c_token_vec member and adjust GTY
	desc for it.
	(c_tree_size): New function.
	(c_decl_attributes): Diagnose invalid omp::directive attribute
	uses.
	* c-objc-common.h (LANG_HOOKS_TREE_SIZE): Redefine.

2023-11-02  Martin Uecker  <uecker@tugraz.at>

	PR c/112347
	* c-typeck.cc (convert_for_assignment): Add missing check.

2023-11-01  Martin Uecker  <uecker@tugraz.at>

	PR c/71219
	* c-typeck.cc (convert_for_assignment): Add warning.

2023-10-26  liuhongt  <hongtao.liu@intel.com>

	* c-typeck.cc (build_vec_cmp): Pass type of arg0 to
	truth_type_for.

2023-10-25  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.cc (c_parser_omp_clause_name): Return
	'PRAGMA_OACC_CLAUSE_SELF' for "self".
	(c_parser_oacc_data_clause, OACC_UPDATE_CLAUSE_MASK): Adjust.
	(c_parser_oacc_all_clauses): Remove 'bool compute_p' formal
	parameter, and instead locally determine whether we're called for
	an OpenACC compute construct or OpenACC 'update' directive.
	(c_parser_oacc_compute): Adjust.

2023-10-25  Chung-Lin Tang  <cltang@codesourcery.com>

	* c-parser.cc (c_parser_oacc_compute_clause_self): New function.
	(c_parser_oacc_all_clauses): Add new 'bool compute_p = false'
	parameter, add parsing of self clause when compute_p is true.
	(OACC_KERNELS_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_SELF.
	(OACC_PARALLEL_CLAUSE_MASK): Likewise,
	(OACC_SERIAL_CLAUSE_MASK): Likewise.
	(c_parser_oacc_compute): Adjust call to c_parser_oacc_all_clauses to
	set compute_p argument to true.
	* c-typeck.cc (c_finish_omp_clauses): Add OMP_CLAUSE_SELF case.

2023-10-20  Florian Weimer  <fweimer@redhat.com>

	PR c/109827
	PR other/44209
	* c-typeck.cc (build_conditional_expr): Use OPT_Wint_conversion
	for pointer/integer mismatch warnings.

2023-10-20  Florian Weimer  <fweimer@redhat.com>

	PR c/109826
	PR other/44209
	* c-typeck.cc (build_conditional_expr): Use
	OPT_Wincompatible_pointer_types for pointer mismatches.
	Emit location information for the operand.

2023-10-19  Andrew Pinski  <pinskia@gmail.com>

	PR c/100532
	* c-typeck.cc (convert_argument): After erroring out
	about an incomplete type return error_mark_node.

2023-10-19  Andrew Pinski  <pinskia@gmail.com>

	PR c/104822
	* c-typeck.cc (convert_for_assignment): Check for null pointer
	before warning about an incompatible scalar storage order.

2023-10-18  Andrew Pinski  <pinskia@gmail.com>

	PR c/101364
	* c-decl.cc (diagnose_arglist_conflict): Test for
	error mark before calling of c_type_promotes_to.

2023-10-18  Andrew Pinski  <pinskia@gmail.com>

	PR c/101285
	* c-typeck.cc (c_safe_arg_type_equiv_p): Return true for error
	operands early.

2023-10-17  Martin Uecker  <uecker@tugraz.at>

	PR c/111708
	* c-decl.cc (grokdeclarator): Add error.

2023-10-03  David Malcolm  <dmalcolm@redhat.com>

	* c-objc-common.cc (c_tree_printer): Update for "m_" prefixes to
	text_info fields.

2023-09-30  Eugene Rozenfeld  <erozen@microsoft.com>

	* Make-lang.in: Make create_fdas_for_cc1 target not .PHONY

2023-09-20  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_postfix_expression_after_primary): Parse
	__builtin_classify_type call with typename as argument.

2023-09-19  Richard Biener  <rguenther@suse.de>

	PR c/111468
	* gimple-parser.cc (c_parser_gimple_binary_expression): Handle __LTGT.

2023-09-19  Richard Biener  <rguenther@suse.de>

	PR c/111468
	* gimple-parser.cc (c_parser_gimple_binary_expression): Add
	return type argument.
	(c_parser_gimple_statement): Adjust.
	(c_parser_gimple_paren_condition): Likewise.
	(c_parser_gimple_binary_expression): Use passed in return type,
	add support for - as POINTER_DIFF_EXPR, __UN{LT,LE,GT,GE,EQ},
	__UNORDERED and __ORDERED.

2023-09-12  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.cc (struct c_omp_loc_tree): New.
	(c_check_omp_allocate_allocator_r): New; checking moved from ...
	(c_parser_omp_allocate): ... here. Call it via walk_tree. Avoid
	ICE with tree_to_shwi for invalid too-large value.

2023-09-12  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.cc (c_parser_omp_construct): Move call to
	c_parser_omp_allocate to ...
	(c_parser_pragma): ... here.
	(c_parser_omp_allocate): Avoid ICE is allocator could not be
	parsed; set 'omp allocate' attribute for stack/automatic variables
	and only reject static variables; add several additional
	restriction checks.
	* c-tree.h (c_mark_decl_jump_unsafe_in_current_scope): New prototype.
	* c-decl.cc (decl_jump_unsafe): Return true for omp-allocated decls.
	(c_mark_decl_jump_unsafe_in_current_scope): New.
	(warn_about_goto, c_check_switch_jump_warnings): Add error for
	omp-allocated decls.

2023-09-12  Martin Uecker  <uecker@tugraz.at>

	* c-typeck.cc (struct comptypes_data): Add structure.
	(tagged_types_tu_compatible_p,
	function_types_compatible_p, type_lists_compatible_p,
	comptypes_internal): Add structure to interface, change
	return type to bool, and adapt calls.
	(comptarget_types): Change return type too bool.
	(comptypes, comptypes_check_enum_int,
	comptypes_check_different_types): Adapt calls.

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

	PR c/102989
	* c-decl.cc (finish_declspecs): Emit pedwarn_c11 on _BitInt.
	* c-typeck.cc (c_common_type): Emit sorry for common type between
	_Complex integer and larger _BitInt and return the _Complex integer.

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

	PR c/102989
	* c-convert.cc (c_convert): Handle BITINT_TYPE like INTEGER_TYPE.
	* c-decl.cc (check_bitfield_type_and_width): Allow BITINT_TYPE
	bit-fields.
	(finish_struct): Prefer to use BITINT_TYPE for BITINT_TYPE bit-fields
	if possible.
	(declspecs_add_type): Formatting fixes.  Handle cts_bitint.  Adjust
	for added union in *specs.  Handle RID_BITINT.
	(finish_declspecs): Handle cts_bitint.  Adjust for added union
	in *specs.
	* c-parser.cc (c_keyword_starts_typename, c_token_starts_declspecs,
	c_parser_declspecs, c_parser_gnu_attribute_any_word): Handle
	RID_BITINT.
	(c_parser_omp_clause_schedule): Handle BITINT_TYPE like INTEGER_TYPE.
	* c-tree.h (enum c_typespec_keyword): Mention _BitInt in comment.
	Add cts_bitint enumerator.
	(struct c_declspecs): Move int_n_idx and floatn_nx_idx into a union
	and add bitint_prec there as well.
	* c-typeck.cc (c_common_type, comptypes_internal):
	Handle BITINT_TYPE.
	(perform_integral_promotions): Promote BITINT_TYPE bit-fields to
	their declared type.
	(build_array_ref, build_unary_op, build_conditional_expr,
	build_c_cast, convert_for_assignment, digest_init, build_binary_op):
	Handle BITINT_TYPE.
	* c-fold.cc (c_fully_fold_internal): Handle BITINT_TYPE like
	INTEGER_TYPE.
	* c-aux-info.cc (gen_type): Handle BITINT_TYPE.

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

	* c-decl.cc (declspecs_add_type): Use pedwarn_c11 rather than pedwarn
	for _FloatN{,x} diagnostics and append " before C2X" to the diagnostic
	text.

2023-09-05  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.cc (c_parser_omp_clause_allocate): Handle
	error_mark_node.

2023-08-25  Sandra Loosemore  <sandra@codesourcery.com>

	* c-parser.cc (struct c_parser): Add omp_for_parse_state field.
	(struct omp_for_parse_data): New.
	(check_omp_intervening_code): New.
	(add_structured_block_stmt): New.
	(c_parser_compound_statement_nostart): Recognize intervening code,
	nested loops, and other things that need special handling in
	OpenMP loop constructs.
	(c_parser_while_statement): Error on loop in intervening code.
	(c_parser_do_statement): Likewise.
	(c_parser_for_statement): Likewise.
	(c_parser_postfix_expression_after_primary): Error on calls to
	the OpenMP runtime in intervening code.
	(c_parser_pragma): Error on OpenMP pragmas in intervening code.
	(c_parser_omp_loop_nest): New.
	(c_parser_omp_for_loop): Rewrite to use recursive descent, calling
	c_parser_omp_loop_nest to do the heavy lifting.

2023-08-24  Richard Sandiford  <richard.sandiford@arm.com>

	* c-parser.cc (c_parser_std_attribute): Conditionally allow
	two colons to be used in place of ::.
	(c_parser_std_attribute_list): New function, split out from...
	(c_parser_std_attribute_specifier): ...here.  Allow the attribute-list
	to start with __extension__.  When it does, also allow two colons
	to be used in place of ::.

2023-08-22  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.cc (c_parser_omp_clause_defaultmap): Parse
	'all' as category.

2023-08-17  Jose E. Marchesi  <jose.marchesi@oracle.com>

	PR c/106537
	* c-typeck.cc (build_binary_op): Warning on comparing distinct
	pointer types only when -Wcompare-distinct-pointer-types.

2023-08-15  Chung-Lin Tang  <cltang@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.cc (OACC_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.

2023-08-11  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_typeof_specifier): Handle
	__typeof_unqual and __typeof_unqual__ as !is_std.

2023-08-11  Martin Uecker  <uecker@tugraz.at>

	PR c/84510
	* c-typeck.cc (build_c_cast): Add warning.

2023-08-05  Martin Uecker  <uecker@tugraz.at>

	* c-parser.cc (c_parser_generic_selection): Inhibit evaluation
	warnings branches that are known not be taken during parsing.

2023-08-04  Tamar Christina  <tamar.christina@arm.com>

	* c-parser.cc (c_parser_while_statement, c_parser_do_statement,
	c_parser_for_statement, c_parser_statement_after_labels,
	c_parse_pragma_novector, c_parser_pragma): Wire through novector and
	default to false.

2023-08-02  Eric Feng  <ef2648@columbia.edu>

	PR analyzer/107646
	* c-parser.cc: New functions on stashing values for the
	analyzer.

2023-08-01  Lewis Hyatt  <lhyatt@gmail.com>

	* c-parser.cc (pragma_lex_discard_to_eol): New function.
	(c_init_preprocess): New function.

2023-07-31  Hamza Mahfooz  <someguy@effective-light.com>

	PR c/65213
	* c-decl.cc (start_decl): Handle
	-Wmissing-variable-declarations.

2023-07-31  Chung-Lin Tang  <cltang@codesourcery.com>

	* c-parser.cc (c_parser_oacc_host_data): Add checking requiring OpenACC
	host_data construct to have an use_device clause.

2023-06-29  Qing Zhao  <qing.zhao@oracle.com>

	PR c/77650
	* c-decl.cc (finish_struct): Issue warnings for new option.

2023-06-29  Qing Zhao  <qing.zhao@oracle.com>

	* c-decl.cc (finish_struct): Set TYPE_INCLUDES_FLEXARRAY for
	struct/union type.

2023-06-29  Richard Biener  <rguenther@suse.de>

	PR c/110454
	* c-typeck.cc (convert_argument): Sink formal_prec compute
	to where TYPE_PRECISION is valid to use.

2023-06-29  Eugene Rozenfeld  <erozen@microsoft.com>

	* Make-lang.in: Pass correct stage cc1 when processing
	profile data collected while building target libraries

2023-06-16  David Malcolm  <dmalcolm@redhat.com>

	PR c/107583
	* c-parser.cc (c_parser_declspecs): Add hints to "unknown type
	name" error.

2023-06-12  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.cc (c_parser_omp_clause_map): Reword error message for
	clearness especially with 'omp target (enter/exit) data.'

2023-06-06  Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.cc (c_parser_omp_clause_defaultmap,
	c_parser_omp_clause_map): Parse 'present'.
	(c_parser_omp_clause_to, c_parser_omp_clause_from): Remove.
	(c_parser_omp_clause_from_to): New; parse to/from clauses with
	optional present modifer.
	(c_parser_omp_all_clauses): Update call.
	(c_parser_omp_target_data, c_parser_omp_target_enter_data,
	c_parser_omp_target_exit_data): Handle new map enum values
	for 'present' mapping.

2023-05-30  Tobias Burnus  <tobias@codesourcery.com>

	PR c/109999
	* c-parser.cc (c_parser_oacc_all_clauses,
	c_parser_omp_all_clauses): Improve error wording.

2023-05-23  Martin Uecker  <uecker@tugraz.at>

	PR c/109450
	* c-decl.cc (add_decl_expr): New function.
	(grokdeclarator): Add decl expr for size expression in
	types pointed to by parameters declared as arrays.

2023-05-23  Martin Uecker  <uecker@tugraz.at>

	PR c/70418
	PR c/106465
	PR c/107557
	PR c/108423
	* c-decl.cc (start_decl): Make sure size expression are
	evaluated only in correct context.
	(grokdeclarator): Size expression in fields may need a bind
	expression, make sure DECL_EXPR is always created.
	(grokfield, declspecs_add_type): Pass along size expressions.
	(finish_struct): Remove unneeded DECL_EXPR.
	(start_function): Evaluate size expressions for nested functions.
	* c-parser.cc (c_parser_struct_declarations,
	c_parser_struct_or_union_specifier): Pass along size expressions.
	(c_parser_declaration_or_fndef): Evaluate size expression.
	(c_parser_objc_at_property_declaration,
	c_parser_objc_class_instance_variables): Adapt.
	* c-tree.h (grokfield): Adapt declaration.

2023-05-19  Martin Uecker  <uecker@tugraz.at>

	* c-decl.cc (set_type_context): Remove.
	(pop_scope, diagnose_mismatched_decls, pushdecl):
	Remove dead code.
	* c-typeck.cc (comptypes_internal): Remove dead code.
	(same_translation_unit_p): Remove.
	(tagged_types_tu_compatible_p): Some fixes.

2023-05-19  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (diagnose_mismatched_decls): Do not handle
	thread-local declarations as tentative definitions for C2x.
	(finish_decl): Do not allow thread-local definition with
	incomplete type for C2x.

2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* c-convert.cc (c_convert): Ditto.
	* c-decl.cc (merge_decls): Ditto.
	* c-parser.cc (c_parser_omp_clause_reduction): Ditto.
	(c_parser_omp_declare_reduction): Ditto.
	* c-typeck.cc (build_component_ref): Ditto.
	(convert_argument): Ditto.
	(pointer_diff): Ditto.
	(build_unary_op): Ditto.
	(build_c_cast): Ditto.
	(build_modify_expr): Ditto.
	(store_init_value): Ditto.
	(constexpr_init_fits_real_type): Ditto.
	(check_constexpr_init): Ditto.
	(c_finish_return): Ditto.
	(handle_omp_array_sections_1): Ditto.
	(c_finish_omp_clauses): Ditto.
	* gimple-parser.cc (c_finish_gimple_return): Ditto.

2023-05-16  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (check_for_loop_decls): Use pedwarn_c11 for
	diagnostics.

2023-05-15  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (grokdeclarator): Ignore _Atomic on function return
	type for C2x.

2023-04-30  Andrew Pinski  <apinski@marvell.com>

	* c-typeck.cc (process_init_element): Print out array type
	for excessive elements.

2023-04-30  Andrew Pinski  <apinski@marvell.com>

	PR c/107926
	* c-typeck.cc (process_init_element): Move the check
	for string cst until after the error message.

2023-04-28  Eugene Rozenfeld  <erozen@microsoft.com>

	* Make-lang.in: Merge perf data collected when compiling cc1 and runtime libraries

2023-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/109409
	* c-parser.cc (c_parser_initializer): Move diagnostics about
	initialization of variable sized object with non-empty initializer
	after c_parser_expr_no_commas call and ret.set_error (); after it.

2023-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/107682
	PR c/109412
	* c-typeck.cc (pop_init_level): If constructor_type is FUNCTION_TYPE,
	reject empty initializer as invalid.

2023-04-26  Richard Biener  <rguenther@suse.de>

	* gimple-parser.cc (c_parser_parse_gimple_body): Avoid
	last_stmt.

2023-04-25  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.cc (c_parser_omp_scan_loop_body): Handle
	zero exec statements before/after 'omp scan'.

2023-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR c/107041
	* c-decl.cc (diagnose_mismatched_decls): Avoid -Wenum-int-mismatch
	warning on acc_on_device declaration.

2023-03-28  David Malcolm  <dmalcolm@redhat.com>

	PR c/107002
	* c-typeck.cc (parser_build_binary_op): Update for new param of
	check_for_xor_used_as_pow.

2023-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/108079
	* c-decl.cc (pop_scope): Suppress OPT_Wunused_variable warning
	after diagnosing it.

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

	PR sanitizer/108894
	* c-decl.cc (strict_flex_array_level_of): Move to c-common.cc
	and rename to c_strict_flex_array_level_of.
	(is_flexible_array_member_p): Adjust caller.

2023-02-18  Martin Uecker  <uecker@tugraz.at>

	PR c/108375
	* c-decl.cc (decl_jump_unsafe): Use c_type_variably_modified_p.
	(diagnose_mismatched_decl): Dito.
	(warn_about_goto): Dito:
	(c_check_switch_jump_warnings): Dito.
	(finish_decl): Dito.
	(finish_struct): Dito.
	(grokdeclarator): Set C_TYPE_VARIABLY_MODIFIED.
	(finish_struct): Set C_TYPE_VARIABLY_MODIFIED.
	* c-objc-common.cc (c_var_mod_p): New function.
	(c_var_unspec_p): Remove.
	* c-objc-common.h: Set lang hook.
	* c-parser.cc (c_parser_declararion_or_fndef): Use c_type_variably_modified_p.
	(c_parser_typeof_specifier): Dito.
	(c_parser_has_attribute_expression): Dito.
	(c_parser_generic_selection): Dito.
	* c-tree.h: Define C_TYPE_VARIABLY_MODIFIED and define c_var_mode_p.
	* c-typeck.cc: Remove c_vla_mod_p and use C_TYPE_VARIABLY_MODIFIED.

2023-02-16  Patrick Palka  <ppalka@redhat.com>

	* c-parser.h: Mechanically drop static from static inline
	functions via s/^static inline/inline/g.

2023-02-10  Joseph Myers  <joseph@codesourcery.com>

	* c-convert.cc (c_convert): Allow conversion of a null pointer
	constant to nullptr_t.
	* c-typeck.cc (null_pointer_constant_p): Remove static.
	(convert_for_assignment): Allow conversion of a null pointer
	constant to nullptr_t.
	(digest_init): Handle NULLPTR_TYPE among scalar conversions.
	* c-tree.h (null_pointer_constant_p): Declare.

2023-02-09  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.cc (c_parser_omp_allocate): Parse align
	clause and check for restrictions.

2023-02-08  Joseph Myers  <joseph@codesourcery.com>

	* c-typeck.cc (check_constexpr_init): Remove argument
	null_pointer_constant.  Only check pointer initializers for being
	null.
	(digest_init): Update calls to check_constexpr_init.

2023-02-02  Joseph Myers  <joseph@codesourcery.com>

	* c-typeck.cc (build_binary_op): Allow comparisons between
	pointers and nullptr_t values that are not null pointer constants.

2023-02-02  Joseph Myers  <joseph@codesourcery.com>

	* c-typeck.cc: Include "realmpfr.h".
	(constexpr_init_fits_real_type): Do not allow signaling NaN
	conversions to different types with the same mode.  Handle
	conversions from binary to decimal types.
	(check_constexpr_init): Do not disallow real initializers for
	complex types.  Do not disallow binary initializers for decimal
	floating types.

2023-01-31  Marek Polacek  <polacek@redhat.com>

	PR c++/107593
	PR c++/108597
	* c-objc-common.cc (instantiation_dependent_expression_p): New.

2023-01-27  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.cc (c_parser_declaration_or_fndef): Do not allow braces
	around auto initializer.

2023-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/105593
	* c-parser.cc (c_parser_initializer): Check warning_enabled_at
	at the DECL_SOURCE_LOCATION (decl) for OPT_Winit_self instead
	of warn_init_self.

2023-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108365
	* c-typeck.cc (build_binary_op): Use may_shorten_divmod for integral
	division or modulo.

2023-01-13  Qing Zhao  <qing.zhao@oracle.com>

	* c-decl.cc (strict_flex_array_level_of): ... here.

2023-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR c/105972
	* c-parser.cc (c_parser_declaration_or_fndef): Disable debug non-bind
	markers for K&R function parameter declarations of nested functions.

2023-01-09  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (build_compound_literal): Call record_inline_static.

2023-01-06  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.cc (c_parser_postfix_expression): Handle integer
	generic arguments to functions passed to __builtin_tgmath as
	_Float32x if any argument has _FloatNx or _Complex _FloatNx type.
	Do not handle integer arguments to some narrowing functions as
	_Float64.

2022-12-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/108043
	* c-parser.cc (c_parser_postfix_expression_after_paren_type): Diagnose
	compound literals with function type.

2022-12-07  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (declspecs_add_type, declspecs_add_scspec): Check for
	auto, constexpr and a type used together.

2022-12-06  Qing Zhao  <qing.zhao@oracle.com>

	* c-decl.cc (is_flexible_array_member_p): Call new function
	strict_flex_array_level_of.

2022-11-24  Florian Weimer  <fweimer@redhat.com>

	PR c/107805
	* c-decl.cc (declspecs_add_type): Propagate error_mark_bode
	from type to specs.

2022-11-17  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* c-decl.cc (start_function): Set the result decl source
	location to the location of the typespec.

2022-11-17  David Malcolm  <dmalcolm@redhat.com>

	PR analyzer/107711
	* c-parser.cc (ana::c_translation_unit::consider_macro): Pass NULL
	to cpp_create_reader, rather than ident_hash, so that the new
	reader gets its own hash table.

2022-11-15  David Malcolm  <dmalcolm@redhat.com>

	PR analyzer/106302
	* c-parser.cc: Include "analyzer/analyzer-language.h" and "toplev.h".
	(class ana::c_translation_unit): New.
	(c_parser_translation_unit): Call ana::on_finish_translation_unit.

2022-11-12  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (start_underspecified_init)
	(finish_underspecified_init): Handle name == NULL_TREE for
	compound literals.
	(merge_decls): Merge C_DECL_DECLARED_CONSTEXPR.
	(shadow_tag_warned): Check for constexpr.
	(start_decl): Add parameter do_push.
	(build_compound_literal): Set C_DECL_DECLARED_CONSTEXPR.
	(grokdeclarator): Handle constexpr.
	(finish_struct): Set C_TYPE_FIELDS_NON_CONSTEXPR.
	(declspecs_add_scspec): Handle constexpr.
	* c-parser.cc (c_token_starts_compound_literal)
	(c_token_starts_declspecs, c_parser_declaration_or_fndef)
	(c_parser_declspecs, c_parser_gnu_attribute_any_word)
	(c_parser_compound_literal_scspecs)
	(c_parser_postfix_expression_after_paren_type): Handle constexpr.
	Update calls to start_init.
	(c_parser_declaration_or_fndef, c_parser_initializer)
	(c_parser_initval): Pass true for new argument of
	convert_lvalue_to_rvalue.  Call convert_lvalue_to_rvalue for
	constexpr compound literals.
	(c_parser_static_assert_declaration_no_semi)
	(c_parser_enum_specifier, c_parser_struct_declaration)
	(c_parser_alignas_specifier, c_parser_initelt, c_parser_label):
	Call convert_lvalue_to_rvalue on expressions required to be
	integer constant expressions.
	(c_parser_omp_declare_reduction): Update call to start_init.
	* c-tree.h (C_TYPE_FIELDS_NON_CONSTEXPR)
	(C_DECL_DECLARED_CONSTEXPR): New macros.
	(struct c_declspecs): Add constexpr_p.
	(start_decl, convert_lvalue_to_rvalue, start_init): Update
	prototypes.
	* c-typeck.cc (require_constant_value, require_constant_elements):
	Change to bool.
	(require_constexpr_value, maybe_get_constexpr_init)
	(constexpr_init_fits_real_type, check_constexpr_init): New.
	(convert_lvalue_to_rvalue): Add new parameter for_init.  Call
	maybe_get_constexpr_init.
	(store_init_value): Update call to digest_init.
	(digest_init): Add parameters int_const_expr, arith_const_expr and
	require_constexpr.  Check constexpr initializers.
	(constructor_top_level): Remove.
	(struct initializer_stack): Remove top_level.  Add
	require_constexpr_value.
	(start_init): Remove parameter top_level.  Add parameters
	init_require_constant and init_require_constexpr.  Save
	require_constexpr_value on stack.
	(pop_init_level): Use a null pointer constant for zero initializer
	of pointer initialized with {}.
	(output_init_element): Update call to digest_init.  Avoid passing
	null pointer constants of pointer type through digest_init a
	second time when initializing a constexpr object.

2022-11-03  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (in_underspecified_init, start_underspecified_init)
	(finish_underspecified_init): New.
	(shadow_tag_warned, parser_xref_tag, start_struct, start_enum):
	Give errors inside initializers of underspecified declarations.
	(grokdeclarator): Handle (erroneous) case of C2X auto on a
	parameter.
	(declspecs_add_type): Handle c2x_auto_p case.
	(declspecs_add_scspec): Handle auto possibly setting c2x_auto_p in
	C2X mode.
	(finish_declspecs): Handle c2x_auto_p.
	* c-parser.cc (c_parser_declaration_or_fndef): Handle C2X auto.
	* c-tree.h (C_DECL_UNDERSPECIFIED): New macro.
	(struct c_declspecs): Add c2x_auto_p.
	(start_underspecified_init, finish_underspecified_init): New
	prototypes.
	* c-typeck.cc (build_external_ref): Give error for underspecified
	declaration referenced in its initializer.

2022-10-28  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (grokdeclarator): Pass
	arg_info->no_named_args_stdarg_p to build_function_type.
	(grokparms): Check arg_info->no_named_args_stdarg_p before
	converting () to (void).
	(build_arg_info): Initialize no_named_args_stdarg_p.
	(get_parm_info): Set no_named_args_stdarg_p.
	(start_function): Pass TYPE_NO_NAMED_ARGS_STDARG_P to
	build_function_type.
	(store_parm_decls): Count (...) functions as prototyped.
	* c-parser.cc (c_parser_direct_declarator): Allow '...' after open
	parenthesis to start parameter list.
	(c_parser_parms_list_declarator): Always allow '...' with no
	arguments, call pedwarn_c11 and set no_named_args_stdarg_p.
	* c-tree.h (struct c_arg_info): Add field no_named_args_stdarg_p.
	* c-typeck.cc (composite_type): Handle
	TYPE_NO_NAMED_ARGS_STDARG_P.
	(function_types_compatible_p): Compare
	TYPE_NO_NAMED_ARGS_STDARG_P.

2022-10-28  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_omp_all_clauses): Allow optional
	comma before the first clause.
	(c_parser_omp_allocate, c_parser_omp_atomic, c_parser_omp_depobj,
	c_parser_omp_flush, c_parser_omp_scan_loop_body,
	c_parser_omp_ordered, c_finish_omp_declare_variant,
	c_parser_omp_declare_target, c_parser_omp_declare_reduction,
	c_parser_omp_requires, c_parser_omp_error,
	c_parser_omp_assumption_clauses): Likewise.

2022-10-28  Joseph Myers  <joseph@codesourcery.com>

	PR c/61469
	* c-convert.cc (c_convert): Handle enums with underlying boolean
	type like bool.
	* c-decl.cc (shadow_tag_warned): Allow shadowing declarations for
	enums with enum type specifier, but give errors for storage class
	specifiers, qualifiers or alignment specifiers in non-definition
	declarations of such enums.
	(grokdeclarator): Give error for non-definition use of type
	specifier with an enum type specifier.
	(parser_xref_tag): Add argument has_enum_type_specifier.  Pass it
	to lookup_tag and use it to set ENUM_FIXED_UNDERLYING_TYPE_P.
	(xref_tag): Update call to parser_xref_tag.
	(start_enum): Add argument fixed_underlying_type.  Complete enum
	type with a fixed underlying type given in the definition.  Give
	error for defining without a fixed underlying type in the
	definition if one was given in a prior declaration.  Do not mark
	enums with fixed underlying type as packed for -fshort-enums.
	Store the enum type in the_enum.
	(finish_enum): Do not adjust types of values or check their range
	for an enum with a fixed underlying type.  Set underlying type of
	enum and variants.
	(build_enumerator): Check enumeration constants for enum with
	fixed underlying type against that type and convert to that type.
	Increment in the underlying integer type, with handling for bool.
	(c_simulate_enum_decl): Update call to start_enum.
	(declspecs_add_type): Set specs->enum_type_specifier_ref_p.
	* c-objc-common.cc (c_get_alias_set): Use ENUM_UNDERLYING_TYPE
	rather than recomputing an underlying type based on size.
	* c-parser.cc (c_parser_declspecs)
	(c_parser_struct_or_union_specifier, c_parser_typeof_specifier):
	Set has_enum_type_specifier for type specifiers.
	(c_parser_enum_specifier): Handle enum type specifiers.
	(c_parser_struct_or_union_specifier): Update call to
	parser_xref_tag.
	(c_parser_omp_atomic): Check for boolean increment or decrement
	using C_BOOLEAN_TYPE_P.
	* c-tree.h (C_BOOLEAN_TYPE_P): New.
	(struct c_typespec): Add has_enum_type_specifier.
	(struct c_declspecs): Add enum_type_specifier_ref_p.
	(struct c_enum_contents): Add enum_type.
	(start_enum, parser_xref_tag): Update prototypes.
	* c-typeck.cc (composite_type): Allow for enumerated types
	compatible with bool.
	(common_type, comptypes_internal, perform_integral_promotions):
	Use ENUM_UNDERLYING_TYPE.
	(parser_build_binary_op, build_unary_op, convert_for_assignment)
	(c_finish_return, c_start_switch, build_binary_op): Check for
	boolean types using C_BOOLEAN_TYPE_P.

2022-10-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/107358
	* c-typeck.cc (build_binary_op): Pass operands before excess precision
	promotions to scalar_to_vector call.

2022-10-24  Arsen Arsenović  <arsen@aarsen.me>

	* c-decl.cc (finish_function): Ignore hosted when deciding
	whether to implicitly return zero, but check noreturn.
	* c-objc-common.cc (c_missing_noreturn_ok_p): Loosen the
	requirements to just MAIN_NAME_P when hosted, or `int main'
	otherwise.

2022-10-20  Richard Biener  <rguenther@suse.de>

	PR c/107305
	PR c/107306
	* gimple-parser.cc (c_parser_parse_gimple_body): Verify
	the parsed IL and zap the body on error.

2022-10-18  Joseph Myers  <joseph@codesourcery.com>

	PR c/107164
	* c-decl.cc (shadow_tag_warned): If pedantic, diagnose "enum tag;"
	with previous declaration visible.

2022-10-18  Joseph Myers  <joseph@codesourcery.com>

	PR c/36113
	* c-decl.cc (finish_enum): If any enumerators do not fit in int,
	convert all to the type of the enumeration.  pedwarn if no integer
	type fits all enumerators and default to
	widest_integer_literal_type_node in that case.  Otherwise pedwarn
	for type wider than intmax_t.
	(build_enumerator): pedwarn for enumerators outside the range of
	uintmax_t or intmax_t, and otherwise use pedwarn_c11 for
	enumerators outside the range of int.  On overflow, attempt to
	find a wider type that can hold the value of the next enumerator.
	Do not convert value to type determined with
	c_common_type_for_size.

2022-10-14  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.cc (convert_arguments): Don't promote __bf16 to
	double.

2022-10-14  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (build_compound_literal): Add parameter scspecs.
	Handle storage class specifiers.
	* c-parser.cc (c_token_starts_compound_literal)
	(c_parser_compound_literal_scspecs): New.
	(c_parser_postfix_expression_after_paren_type): Add parameter
	scspecs.  Call pedwarn_c11 for use of storage class specifiers.
	Update call to build_compound_literal.
	(c_parser_cast_expression, c_parser_sizeof_expression)
	(c_parser_alignof_expression): Handle storage class specifiers for
	compound literals.  Update calls to
	c_parser_postfix_expression_after_paren_type.
	(c_parser_postfix_expression): Update syntax comment.
	* c-tree.h (build_compound_literal): Update prototype.
	* c-typeck.cc (c_mark_addressable): Diagnose taking address of
	register compound literal.

2022-10-07  Qing Zhao  <qing.zhao@oracle.com>

	* c-decl.cc (flexible_array_member_type_p): New function.
	(one_element_array_type_p): Likewise.
	(zero_length_array_type_p): Likewise.
	(add_flexible_array_elts_to_size): Call new utility
	routine flexible_array_member_type_p.
	(is_flexible_array_member_p): New function.
	(finish_struct): Set the new DECL_NOT_FLEXARRAY flag.

2022-10-06  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.cc (c_parse_init): Add D_EXT11 to mask if flag_no_asm
	and not C2x.
	(c_keyword_starts_typename, c_token_starts_declspecs)
	(c_parser_declspecs, c_parser_objc_selector): Handle
	RID_TYPEOF_UNQUAL.
	(c_parser_typeof_specifier): Handle RID_TYPEOF_UNQUAL.
	Distinguish typeof for C2x from __typeof__ for all standard
	versions and typeof before C2x.
	* c-typeck.cc (build_function_call_vec): Use unqualified version
	of non-void return type.
	(build_unary_op): Use unqualified type for increment and
	decrement.

2022-10-06  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_omp_assumption_clauses): Emit IFN_ASSUME
	call for holds clause on assume construct.

2022-10-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/106654
	* c-parser.cc (handle_assume_attribute): New function.
	(c_parser_declaration_or_fndef): Handle assume attribute.
	(c_parser_attribute_arguments): Add assume_attr argument,
	if true, parse first argument as conditional expression.
	(c_parser_gnu_attribute, c_parser_std_attribute): Adjust
	c_parser_attribute_arguments callers.
	(c_parser_statement_after_labels) <case RID_ATTRIBUTE>: Handle
	assume attribute.

2022-10-04  Jakub Jelinek  <jakub@redhat.com>

	* c-lang.h (struct c_omp_declare_target_attr): New type.
	(current_omp_declare_target_attribute): Change type from
	int to vec<c_omp_declare_target_attr, va_gc> *.
	* c-parser.cc (c_parser_translation_unit): Adjust for that change.
	If last pushed directive was begin declare target, use different
	wording and simplify format strings for easier translations.
	(c_parser_omp_clause_device_type): Uncomment
	check_no_duplicate_clause call.
	(c_parser_omp_declare_target): Adjust for the
	current_omp_declare_target_attribute type change, push { -1 }.
	Use error_at rather than warning_at for declare target with
	only device_type clauses.
	(OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK): Define.
	(c_parser_omp_begin): Add begin declare target support.
	(c_parser_omp_end): Adjust for the
	current_omp_declare_target_attribute type change, adjust
	diagnostics wording and simplify format strings for easier
	translations.
	* c-decl.cc (current_omp_declare_target_attribute): Change type from
	int to vec<c_omp_declare_target_attr, va_gc> *.
	(c_decl_attributes): Adjust for the
	current_omp_declare_target_attribute type change.  If device_type
	was present on begin declare target, add "omp declare target host"
	and/or "omp declare target nohost" attributes.

2022-09-29  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (handle_std_noreturn_attribute): New function.
	(std_attribute_table): Add _Noreturn and noreturn.

2022-09-27  Jakub Jelinek  <jakub@redhat.com>

	* c-lang.h (current_omp_begin_assumes): Declare.
	* c-parser.cc: Include bitmap.h.
	(c_parser_omp_end_declare_target): Rename to ...
	(c_parser_omp_end): ... this.  Handle also end assumes.
	(c_parser_omp_begin, c_parser_omp_assumption_clauses,
	c_parser_omp_assumes, c_parser_omp_assume): New functions.
	(c_parser_translation_unit): Also diagnose #pragma omp begin assumes
	without corresponding #pragma omp end assumes.
	(c_parser_pragma): Use %s in may only be used at file scope
	diagnostics to decrease number of translatable messages.  Handle
	PRAGMA_OMP_BEGIN and PRAGMA_OMP_ASSUMES.  Handle PRAGMA_OMP_END
	rather than PRAGMA_OMP_END_DECLARE_TARGET and call c_parser_omp_end
	for it rather than c_parser_omp_end_declare_target.
	(c_parser_omp_construct): Handle PRAGMA_OMP_ASSUME.
	* c-decl.cc (current_omp_begin_assumes): Define.

2022-09-24  Jakub Jelinek  <jakub@redhat.com>

	PR c/106981
	* c-typeck.cc (c_tree_equal): Only strip NON_LVALUE_EXPRs at the
	start.  For CONSTANT_CLASS_P or CASE_CONVERT: return false if t1 and
	t2 have different types.

2022-09-22  David Malcolm  <dmalcolm@redhat.com>

	PR c/106830
	* c-parser.cc (c_parser_initelt): Initialize m_decimal.
	(c_parser_cast_expression): Likewise.
	(c_parser_alignof_expression): Likewise.
	(c_parser_postfix_expression_after_paren_type): Likewise.
	(c_parser_postfix_expression_after_primary): Likewise.
	(c_parser_expression): Likewise.
	(c_parser_omp_variable_list): Likewise.
	(c_parser_transaction_expression): Likewise.
	* c-tree.h (c_expr::set_error): Likewise.
	* c-typeck.cc (c_expr_sizeof_expr): Likewise.
	(parser_build_unary_op): Likewise.
	(parser_build_binary_op): Likewise.
	(digest_init): Likewise.
	(pop_init_level): Likewise.
	* gimple-parser.cc (c_parser_gimple_call_internal): Likewise.

2022-09-19  Marek Polacek  <polacek@redhat.com>

	PR c/106947
	* c-typeck.cc (maybe_warn_for_null_address): Don't emit stray
	notes.

2022-09-15  Richard Biener  <rguenther@suse.de>

	* c-decl.cc (build_void_list_node): Remove.

2022-09-14  Julian Brown  <julian@codesourcery.com>

	* c-typeck.cc (c_finish_omp_clauses): Remove whole mapping node group
	on error.

2022-09-07  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.cc (c_parser_static_assert_declaration_no_semi)
	(c_parser_alignas_specifier, c_parser_alignof_expression): Allow
	for C2x spellings of keywords.
	(c_parser_postfix_expression): Handle RID_TRUE and RID_FALSE.

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

	* c-parser.cc (c_parser_omp_clause_doacross_sink): Don't verify val
	in omp_cur_iteration - 1 has integer_type_node type.

2022-09-03  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_omp_clause_name): Handle doacross.
	(c_parser_omp_clause_depend_sink): Renamed to ...
	(c_parser_omp_clause_doacross_sink): ... this.  Add depend_p argument.
	Handle parsing of doacross(sink:omp_cur_iteration-1).  Use
	OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
	OMP_CLAUSE_DEPEND_SINK_NEGATIVE, build OMP_CLAUSE_DOACROSS instead
	of OMP_CLAUSE_DEPEND and set OMP_CLAUSE_DOACROSS_DEPEND flag on it.
	(c_parser_omp_clause_depend): Use OMP_CLAUSE_DOACROSS_SINK and
	OMP_CLAUSE_DOACROSS_SOURCE instead of OMP_CLAUSE_DEPEND_SINK and
	OMP_CLAUSE_DEPEND_SOURCE, build OMP_CLAUSE_DOACROSS for depend(source)
	and set OMP_CLAUSE_DOACROSS_DEPEND on it.
	(c_parser_omp_clause_doacross): New function.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DOACROSS.
	(c_parser_omp_depobj): Use OMP_CLAUSE_DEPEND_INVALID instead of
	OMP_CLAUSE_DEPEND_SOURCE.
	(c_parser_omp_for_loop): Don't diagnose here linear clause together
	with ordered with argument.
	(c_parser_omp_simd): Don't diagnose ordered clause with argument on
	for simd.
	(OMP_ORDERED_DEPEND_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_DOACROSS.
	(c_parser_omp_ordered): Handle also doacross and adjust for it
	diagnostic wording.
	* c-typeck.cc (c_finish_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
	Don't handle OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.

2022-09-02  David Malcolm  <dmalcolm@redhat.com>

	PR c/90885
	* c-parser.cc (c_parser_string_literal): Clear ret.m_decimal.
	(c_parser_expr_no_commas): Likewise.
	(c_parser_conditional_expression): Likewise.
	(c_parser_binary_expression): Clear m_decimal when popping the
	stack.
	(c_parser_unary_expression): Clear ret.m_decimal.
	(c_parser_has_attribute_expression): Likewise for result.
	(c_parser_predefined_identifier): Likewise for expr.
	(c_parser_postfix_expression): Likewise for expr.
	Set expr.m_decimal when handling a CPP_NUMBER that was a decimal
	token.
	* c-tree.h (c_expr::m_decimal): New bitfield.
	* c-typeck.cc (parser_build_binary_op): Clear result.m_decimal.
	(parser_build_binary_op): Call check_for_xor_used_as_pow.

2022-09-01  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (grokparms): Handle () in a function declaration the
	same as (void) for C2X.

2022-08-31  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.cc (c_parser_label): Pass attributes to do_case.
	* c-typeck.cc (do_case): Add argument ATTRS.  Pass it to
	c_add_case_label.

2022-08-26  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.cc (convert_arguments): Handle BUILT_IN_ISSIGNALING.

2022-08-25  Marek Polacek  <polacek@redhat.com>

	* c-convert.cc (c_convert) <case POINTER_TYPE>: Handle NULLPTR_TYPE.
	Give a better diagnostic when converting to nullptr_t.
	* c-decl.cc (c_init_decl_processing): Perform C-specific nullptr
	initialization.
	* c-parser.cc (c_parse_init): Maybe OR D_C2X into mask.
	(c_parser_postfix_expression): Handle RID_NULLPTR.
	* c-typeck.cc (null_pointer_constant_p): Return true when expr is
	nullptr_node.
	(build_unary_op) <case TRUTH_NOT_EXPR>: Handle NULLPTR_TYPE.
	(build_conditional_expr): Handle the case when the second/third operand
	is NULLPTR_TYPE and third/second operand is POINTER_TYPE.
	(convert_for_assignment): Handle converting an expression of type
	nullptr_t to pointer/bool.
	(build_binary_op) <case TRUTH_XOR_EXPR>: Handle NULLPTR_TYPE.
	<case EQ_EXPR>: Handle comparing operands of type nullptr_t.

2022-08-25  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.cc (start_decl): Do not diagnose initialization of
	variable-sized objects here.
	* c-parser.cc (c_parser_braced_init): Add argument DECL.  All
	callers changed.
	(c_parser_initializer): Diagnose initialization of variable-sized
	objects other than with braced initializer.
	(c_parser_braced_init): Use pedwarn_c11 for empty initializer
	braces and update diagnostic text.  Diagnose initialization of
	variable-sized objects with nonempty braces.
	* c-typeck.cc (digest_init): Update diagnostic for initialization
	of variable-sized objects.
	(really_start_incremental_init, set_designator)
	(process_init_element): Update comments.
	(pop_init_level): Allow scalar empty initializers.

2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	PR c++/104493
	* c-decl.cc (c_decl_attributes, finish_decl): Call omp_mappable_type
	instead of removed langhook.
	* c-typeck.cc (c_finish_omp_clauses): Likewise.

2022-08-11  Marek Polacek  <polacek@redhat.com>

	PR middle-end/102633
	* c-parser.cc (c_parser_initializer): Add new tree parameter.  Use it.
	Call suppress_warning.
	(c_parser_declaration_or_fndef): Pass d down to c_parser_initializer.
	(c_parser_omp_declare_reduction): Pass omp_priv down to
	c_parser_initializer.

2022-08-08  Tom Honermann  <tom@honermann.net>

	* c-parser.cc (c_parser_string_literal): Use char8_t as the type
	of CPP_UTF8STRING when char8_t support is enabled.
	* c-typeck.cc (digest_init): Allow initialization of an array
	of character type by a string literal with type array of
	char8_t.

2022-08-01  David Malcolm  <dmalcolm@redhat.com>

	* c-typeck.cc (build_c_cast): Quote names of address spaces in
	diagnostics.
	(convert_for_assignment): Add a note to address space mismatch
	diagnostics, specifying the expected and actual types.

2022-07-10  Lewis Hyatt  <lhyatt@gmail.com>

	PR preprocessor/97498
	* c-parser.cc (c_parser_pragma): Set input_location to the
	location of the pragma, rather than the start of the line.

2022-07-04  Tobias Burnus  <tobias@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.cc (c_parser_omp_target_data, c_parser_omp_target_update,
	c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Set
	OMP_REQUIRES_TARGET_USED.
	(c_parser_omp_requires): Remove sorry.

2022-07-01  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.cc (c_parser_omp_target_enter_data,
	c_parser_omp_target_exit_data): Accept tofrom
	map-type modifier but use 'to' / 'from' internally.

2022-06-16  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.cc (implicitly_declare): Add auto_diagnostic_group to
	group the warning with any note.
	(warn_about_goto): Likewise to group error or warning with note.
	Bail out if the warning wasn't emitted, to avoid emitting orphan
	notes.
	(lookup_label_for_goto): Add auto_diagnostic_group to
	group the error with the note.
	(check_earlier_gotos): Likewise.
	(c_check_switch_jump_warnings): Likewise for any error/warning.
	Conditionalize emission of the notes.
	(diagnose_uninitialized_cst_member): Likewise for warning,
	conditionalizing emission of the note.
	(grokdeclarator): Add auto_diagnostic_group to group the "array
	type has incomplete element type" error with any note.
	(parser_xref_tag): Add auto_diagnostic_group to group warnings
	with their notes.  Conditionalize emission of notes.
	(start_struct): Add auto_diagnostic_group to group the
	"redefinition of" errors with any note.
	(start_enum): Likewise for "redeclaration of %<enum %E%>" error.
	(check_for_loop_decls): Likewise for pre-C99 error.

2022-06-07  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_omp_clause_linear): Parse OpenMP 5.2
	style linear clause modifiers.  Set
	OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER flag on the clauses when
	old style modifiers are used.
	* c-typeck.cc (c_finish_omp_clauses): Only reject linear clause
	with val modifier on simd or for if the old style modifiers are
	used.

2022-06-02  David Malcolm  <dmalcolm@redhat.com>

	* c-lang.cc (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): Redefine.
	(c_get_sarif_source_language): New.
	* c-tree.h (c_get_sarif_source_language): New decl.

2022-05-31  Jason Merrill  <jason@redhat.com>

	* Make-lang.in (c.tags): Look at *.cc.

2022-05-31  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (OMP_SCOPE_CLAUSE_MASK): Add firstprivate and allocate
	clauses.

2022-05-28  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_omp_declare_target): If OMP_CLAUSE_LINK was
	seen first, use "%<to%>" or "%<enter%>" depending on
	OMP_CLAUSE_ENTER_TO of the current clause, otherwise use
	"%<to%> or %<enter%>" wording.

2022-05-27  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_omp_clause_name): Parse enter clause.
	(c_parser_omp_all_clauses): For to clause on declare target, use
	OMP_CLAUSE_ENTER clause with OMP_CLAUSE_ENTER_TO instead of
	OMP_CLAUSE_TO_DECLARE clause.  Handle PRAGMA_OMP_CLAUSE_ENTER.
	(OMP_DECLARE_TARGET_CLAUSE_MASK): Add enter clause.
	(c_parser_omp_declare_target): Use OMP_CLAUSE_ENTER instead of
	OMP_CLAUSE_TO_DECLARE.
	* c-typeck.cc (c_finish_omp_clauses): Handle OMP_CLAUSE_ENTER instead
	of OMP_CLAUSE_TO_DECLARE, to OMP_CLAUSE_ENTER_TO use "to" as clause
	name in diagnostics instead of
	omp_clause_code_name[OMP_CLAUSE_CODE (c)].

2022-05-25  Jakub Jelinek  <jakub@redhat.com>

	PR c/91134
	* c-tree.h (build_component_ref): Add ARROW_LOC location_t argument.
	* c-typeck.cc (build_component_ref): Likewise.  If DATUM is
	INDIRECT_REF and ARROW_LOC isn't UNKNOWN_LOCATION, print a different
	diagnostic and fixit hint if DATUM has pointer type.
	* c-parser.cc (c_parser_postfix_expression,
	c_parser_omp_variable_list): Adjust build_component_ref callers.
	* gimple-parser.cc (c_parser_gimple_postfix_expression_after_primary):
	Likewise.

2022-05-24  Jakub Jelinek  <jakub@redhat.com>

	PR c/105378
	* c-parser.cc (OMP_TASKWAIT_CLAUSE_MASK): Add nowait clause.

2022-05-18  Marek Polacek  <polacek@redhat.com>

	PR c/105131
	* c-decl.cc (diagnose_mismatched_decls): Warn about enum/integer type
	mismatches.
	* c-tree.h (comptypes_check_enum_int): Declare.
	* c-typeck.cc (comptypes): No longer static.

2022-05-17  Marek Polacek  <polacek@redhat.com>

	* c-decl.cc (finish_enum): Store the CONST_DECL into TREE_VALUE, not
	its value.

2022-05-17  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_omp_clause_depend): Parse
	inoutset depend-kind.
	(c_parser_omp_depobj): Likewise.

2022-05-16  Martin Liska  <mliska@suse.cz>

	* c-decl.cc (match_builtin_function_types): Use ARRAY_SIZE.

2022-05-12  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parse_init): Register omp_all_memory as keyword
	if flag_openmp.
	(c_parser_postfix_expression): Diagnose uses of omp_all_memory
	in postfix expressions.
	(c_parser_omp_variable_list): Handle omp_all_memory in depend
	clause.
	* c-typeck.cc (c_finish_omp_clauses): Handle omp_all_memory
	keyword in depend clause as null_pointer_node, diagnose invalid
	uses.

2022-05-09  Martin Liska  <mliska@suse.cz>

	* c-parser.cc (c_parser_conditional_expression): Use {,UN}LIKELY
	macros.
	(c_parser_binary_expression): Likewise.

2022-05-07  Marek Polacek  <polacek@redhat.com>

	PR c++/101833
	PR c++/47634
	* c-objc-common.cc (maybe_adjust_arg_pos_for_attribute): New.

2022-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR c/105149
	* c-typeck.cc (c_build_va_arg): Reject function types.

2022-03-22  Marek Polacek  <polacek@redhat.com>

	PR c/82283
	PR c/84685
	* c-typeck.cc (struct initializer_stack): Add 'designated' member.
	(start_init): Set it.
	(finish_init): Restore constructor_designated.
	(push_init_level): Set constructor_designated to the value of
	constructor_designated in the upper constructor_stack.

2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>

	PR other/65095
	* c-typeck.cc (handle_omp_array_sections_1)
	(c_oacc_check_attachments): Call 'user_omp_clause_code_name'
	instead of 'c_omp_map_clause_name'.

2022-03-09  Joseph Myers  <joseph@codesourcery.com>

	* c-typeck.cc (function_types_compatible_p): Do not handle C2X
	differently from earlier standards for unprototyped function type
	compatibility.

2022-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/104711
	* c-fold.cc (c_fully_fold_internal): Don't emit
	-Wshift-negative-value warning if TYPE_OVERFLOW_WRAPS.
	* c-typeck.cc (build_binary_op): Likewise.

2022-03-07  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.cc (c_parser_omp_clause_map): Add missing space in string
	literal.

2022-02-23  Richard Biener  <rguenther@suse.de>

	* gimple-parser.cc (c_parser_parse_gimple_body): Diagnose
	SSA names without definition.
	(c_parser_gimple_declaration): Handle pointer typed SSA names.

2022-02-17  Jakub Jelinek  <jakub@redhat.com>

	PR c/104532
	* c-parser.cc (c_parser_omp_variable_list): For CPP_DEREF, use
	convert_lvalue_to_rvalue and build_indirect_ref instead of
	build_simple_mem_ref.

2022-02-11  Richard Biener  <rguenther@suse.de>

	* gimple-parser.cc (c_parser_gimple_statement): Properly parse
	VEC_COND_EXPRs.

2022-02-10  Marcel Vollweiler  <marcel@codesourcery.com>

	* c-parser.cc (c_parser_omp_clause_name): Parse 'has_device_addr'
	clause.
	(c_parser_omp_variable_list): Handle array sections.
	(c_parser_omp_clause_has_device_addr): Added.
	(c_parser_omp_all_clauses): Added PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR
	case.
	(c_parser_omp_target_exit_data): Added HAS_DEVICE_ADDR to
	OMP_CLAUSE_MASK.
	* c-typeck.cc (handle_omp_array_sections): Handle clause restrictions.
	(c_finish_omp_clauses): Handle array sections.

2022-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/104427
	* c-parser.cc (c_parser_postfix_expression)
	<case RID_BUILTIN_ASSOC_BARRIER>: Use parser_build_unary_op
	instead of build1_loc to build PAREN_EXPR.
	* c-typeck.cc (build_unary_op): Handle PAREN_EXPR.
	* c-fold.cc (c_fully_fold_internal): Likewise.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* Make-lang.in: Rename .c names to .cc.
	* c-convert.cc: Likewise.
	* c-decl.cc (struct lang_identifier): Likewise.
	(pop_scope): Likewise.
	(finish_decl): Likewise.
	* c-objc-common.h (GCC_C_OBJC_COMMON): Likewise.
	* c-parser.cc (c_parser_skip_to_end_of_block_or_statement): Likewise.
	* c-parser.h (GCC_C_PARSER_H): Likewise.
	* c-tree.h (c_keyword_starts_typename): Likewise.
	(finish_declspecs): Likewise.
	(c_get_alias_set): Likewise.
	(enum c_oracle_request): Likewise.
	(tag_exists_p): Likewise.
	(set_c_expr_source_range): Likewise.
	* c-typeck.cc (c_common_type): Likewise.
	(c_finish_omp_clauses): Likewise.
	* config-lang.in: Likewise.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* c-aux-info.c: Moved to...
	* c-aux-info.cc: ...here.
	* c-convert.c: Moved to...
	* c-convert.cc: ...here.
	* c-decl.c: Moved to...
	* c-decl.cc: ...here.
	* c-errors.c: Moved to...
	* c-errors.cc: ...here.
	* c-fold.c: Moved to...
	* c-fold.cc: ...here.
	* c-lang.c: Moved to...
	* c-lang.cc: ...here.
	* c-objc-common.c: Moved to...
	* c-objc-common.cc: ...here.
	* c-parser.c: Moved to...
	* c-parser.cc: ...here.
	* c-typeck.c: Moved to...
	* c-typeck.cc: ...here.
	* gccspec.c: Moved to...
	* gccspec.cc: ...here.
	* gimple-parser.c: Moved to...
	* gimple-parser.cc: ...here.

2022-01-17  Andrew Stubbs  <ams@codesourcery.com>

	* c-parser.c (c_parser_omp_requires): Don't "sorry" dynamic_allocators.

2022-01-14  Chung-Lin Tang  <cltang@codesourcery.com>

	PR c++/103705
	* c-typeck.c (c_finish_omp_clauses): Also continue peeling off of
	outer node for ARRAY_REFs.

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

	PR objc/103639
	* c-typeck.c (c_finish_bc_stmt): For break inside of switch inside of
	ObjC foreach, emit normal BREAK_STMT rather than goto to label.

2021-12-17  Marek Polacek  <polacek@redhat.com>

	PR c/103649
	* c-decl.c (c_warn_unused_attributes): Don't warn for
	attribute_ignored_p.
	* c-parser.c (c_parser_std_attribute): Skip parsing of the attribute
	arguments when the attribute is ignored.

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

	PR c/103587
	* c-parser.c (c_parser_balanced_token_sequence): For CPP_PRAGMA,
	consume the pragma and silently skip to the pragma eol.

2021-12-12  Jonathan Wakely  <jwakely@redhat.com>

	* c-decl.c: Define INCLUDE_MEMORY instead of INCLUDE_UNIQUE_PTR.
	* c-parser.c: Likewise.

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

	PR pch/71934
	* c-decl.c (resort_field_decl_cmp): Pass the same pointer twice
	to resort_data.new_value.

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

	* c-parser.c (struct omp_dim): New struct type for use inside
	c_parser_omp_variable_list.
	(c_parser_omp_variable_list): Allow multiple levels of array and
	component accesses in array section base-pointer expression.
	(c_parser_omp_clause_to): Set 'allow_deref' to true in call to
	c_parser_omp_var_list_parens.
	(c_parser_omp_clause_from): Likewise.
	* c-typeck.c (handle_omp_array_sections_1): Extend allowed range
	of base-pointer expressions involving INDIRECT/MEM/ARRAY_REF and
	POINTER_PLUS_EXPR.
	(c_finish_omp_clauses): Extend allowed ranged of expressions
	involving INDIRECT/MEM/ARRAY_REF and POINTER_PLUS_EXPR.

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

	PR middle-end/92120
	* c-parser.c (c_parser_omp_clause_map): Set 'allow_deref' argument in
	call to c_parser_omp_variable_list to 'true'.
	* c-typeck.c (handle_omp_array_sections_1): Add strip of MEM_REF in
	array base handling.
	(c_finish_omp_clauses): Handle 'A->member' case in map clauses.

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

	* c-typeck.c (c_finish_omp_clauses): Remove "gang reduction on an
	orphan loop" checking.

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

	* c-typeck.c (c_finish_omp_clauses): Emit an error on orphan
	OpenACC gang reductions.

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

	* gimple-parser.c (c_parser_gimple_postfix_expression):
	avoid unreachable code after break.

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

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

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

	* c-typeck.c (c_tree_equal): Remove unreachable return.
	* c-parser.c (get_matching_symbol): Likewise.

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

	* c-typeck.c (c_clone_omp_udr): Don't initialize
	id.transform_lang_insert_block.

2021-11-19  Martin Sebor  <msebor@redhat.com>

	PR c++/33925
	PR c/102867
	* c-typeck.c (maybe_warn_for_null_address): Suppress warnings for
	code resulting from macro expansion.

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

	Revert:
	2021-11-19  Martin Liska  <mliska@suse.cz>

	* c-parser.c (add_debug_begin_stmt): Use option directly.

2021-11-18  Matthias Kretz  <m.kretz@gsi.de>

	* c-decl.c (names_builtin_p): Handle RID_BUILTIN_ASSOC_BARRIER.
	* c-parser.c (c_parser_postfix_expression): Likewise.

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

	* c-parser.c (add_debug_begin_stmt): Use option directly.

2021-11-17  Martin Sebor  <msebor@redhat.com>

	PR c/101702
	* c-decl.c (get_parm_array_spec): Strip casts earlier and fold array
	bounds before deciding if they're constant.

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

	* c-parser.c (OMP_TARGET_CLAUSE_MASK): Add
	PRAGMA_OMP_CLAUSE_THREAD_LIMIT.

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

	* c-parser.c (c_parser_omp_clause_num_teams): Parse optional
	lower-bound and store it into OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR.
	Use OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead of
	OMP_CLAUSE_NUM_TEAMS_EXPR.
	(c_parser_omp_target): For OMP_CLAUSE_NUM_TEAMS evaluate before
	combined target teams even lower-bound expression.

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

	* gimple-parser.c: Shuffle bitmap.h include.

2021-11-03  Joseph Myers  <joseph@codesourcery.com>

	PR c/103031
	* c-convert.c (c_convert): New function, based on convert.
	(convert): Make into wrapper of c_convert.
	(convert_init): New function.
	* c-typeck.c (enum impl_conv): Add ic_init_const.
	(convert_for_assignment): Handle ic_init_const like ic_init.  Add
	new argument to convert_and_check call.
	(digest_init): Pass ic_init_const to convert_for_assignment for
	initializers required to be constant.

2021-11-02  Richard Sandiford  <richard.sandiford@arm.com>

	* c-tree.h (c_simulate_record_decl): Declare.
	* c-objc-common.h (LANG_HOOKS_SIMULATE_RECORD_DECL): Override.
	* c-decl.c (c_simulate_record_decl): New function.

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

	PR other/102663
	* Make-lang.in: Add dummy c.install-dvi target.

2021-10-15  Richard Biener  <rguenther@suse.de>

	PR c/102763
	* gimple-parser.c
	(c_parser_gimple_postfix_expression_after_primary): Check
	for a pointer do be dereferenced by ->.

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

	* c-parser.c (c_finish_omp_declare_variant): Change call from
	c_omp_check_context_selector to omp_check_context_selector. Change
	call from c_omp_mark_declare_variant to omp_mark_declare_variant.

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

	* c-parser.c (c_parser_omp_structured_block_sequence): New function.
	(c_parser_omp_scan_loop_body): Use it.
	(c_parser_omp_sections_scope): Likewise.

2021-10-07  Richard Biener  <rguenther@suse.de>

	* c-typeck.c (lvalue_p): Also allow MEM_REF and TARGET_MEM_REF.

2021-10-05  Richard Biener  <rguenther@suse.de>

	PR c/102605
	* gimple-parser.c (c_parser_gimple_postfix_expression):
	Accept more address _Literals.

2021-10-04  Marek Polacek  <polacek@redhat.com>

	PR c++/97573
	* c-typeck.c (parser_build_binary_op): Call do_warn_array_compare.

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

	PR c/102103
	* c-typeck.c (maybe_warn_for_null_address): New function.
	(build_binary_op): Call it.

2021-10-01  Jakub Jelinek  <jakub@redhat.com>
	    Richard Biener  <rguenther@suse.de>

	PR sanitizer/102515
	* c-typeck.c (build_binary_op): Call ubsan_instrument_division
	for division even for SANITIZE_SI_OVERFLOW.

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

	* c-parser.c (c_parser_omp_clause_order): Set
	OMP_CLAUSE_ORDER_REPRODUCIBLE for explicit reproducible: modifier.

2021-09-28  Andrew Pinski  <apinski@marvell.com>

	PR c/32122
	* c-parser.c (c_parser_statement_after_labels): Pass
	the c_expr instead of the tree to c_finish_goto_ptr.
	* c-typeck.c (c_finish_goto_ptr): Change the second
	argument type to c_expr.
	* c-tree.h (c_finish_goto_ptr): Likewise.
	Error out if the expression was not of a pointer type.

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

	* c-parser.c (c_parser_omp_clause_allocate): Parse allocate clause
	modifiers.

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

	* c-parser.c (c_parser_omp_clause_order): Parse unconstrained
	and reproducible modifiers.
	(OMP_DISTRIBUTE_CLAUSE_MASK): Add order clause.

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

	* c-parser.c (c_parser_omp_clause_default): Handle private and
	firstprivate arguments, adjust diagnostics on unknown argument.

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

	* c-parser.c (c_parser_omp_atomic): Reject atomic swap if capture
	is true.

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

	* c-parser.c (c_parser_conditional_expression): If omp_atomic_lhs and
	cond.value is >, < or == with omp_atomic_lhs as one of the operands,
	don't call build_conditional_expr, instead build a COND_EXPR directly.
	(c_parser_binary_expression): Avoid calling parser_build_binary_op
	if omp_atomic_lhs even in more cases for >, < or ==.
	(c_parser_omp_atomic): Update function comment for OpenMP 5.1 atomics,
	parse OpenMP 5.1 atomics and fail, compare and weak clauses, allow
	acq_rel on atomic read/write and acq_rel/acquire clauses on update.
	* c-typeck.c (build_binary_op): For flag_openmp only handle
	MIN_EXPR/MAX_EXPR.

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

	* c-parser.c (c_parser_omp_flush): Parse 'seq_cst' clause on 'flush'
	directive.

2021-09-01  Iain Sandoe  <iain@sandoe.co.uk>

	* c-decl.c (enum deprecated_states): Add unavailable state.
	(merge_decls): Copy unavailability.
	(quals_from_declspecs): Handle unavailable case.
	(start_decl): Amend the logic handling suppression of nested
	deprecation states to include unavailability.
	(smallest_type_quals_location): Amend comment.
	(grokdeclarator): Handle the unavailable deprecation state.
	(declspecs_add_type): Set TREE_UNAVAILABLE from the decl specs.
	* c-tree.h (struct c_declspecs): Add unavailable_p.
	* c-typeck.c (build_component_ref): Handle unavailability.
	(build_external_ref): Likewise.

2021-09-01  Roger Sayle  <roger@nextmovesoftware.com>
	    Joseph Myers  <joseph@codesourcery.com>

	PR c/79412
	* c-decl.c (duplicate_decls): On significant mismatches, mark the
	types of both (non-function) decls as error_mark_node, so that the
	middle-end can see the code is malformed.
	(free_attr_access_data): Don't process if the type has been set to
	error_mark_node.

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

	* c-parser.c (c_parser_omp_clause_device): Parse device-modifiers 'device_num'
	and 'ancestor' in 'target device' clauses.

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

	* c-parser.c (c_parser_omp_clause_num_tasks,
	c_parser_omp_clause_grainsize): Parse the optional strict: modifier.

2021-08-22  Martin Uecker  <muecker@gwdg.de>

	PR c/98397
	* c-typeck.c (comp_target_types): Change pedwarn to pedwarn_c11
	for pointers to arrays with qualifiers.
	(build_conditional_expr): For C23 don't lose qualifiers for pointers
	to arrays when the other pointer is a void pointer. Update warnings.
	(convert_for_assignment): Update warnings for C2X when converting from
	void* with qualifiers to a pointer to array with the same qualifiers.

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

	* c-parser.c (c_parser_omp_error): New function.
	(c_parser_pragma): Handle PRAGMA_OMP_ERROR.

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

	* c-parser.c (c_parser_omp_clause_depend_sink): Reject spurious
	comma at the end of list.
	(c_parser_omp_requires): Likewise.

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

	* c-parser.c (c_parser_omp_requires): Don't call
	c_parser_peek_2nd_token and optionally consume token if current
	token is CPP_EOF, CPP_PRAGMA_EOL or CPP_CLOSE_PAREN.

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

	* c-parser.c (c_parser_omp_nothing): New function.
	(c_parser_pragma): Handle PRAGMA_OMP_NOTHING.

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

	* c-parser.c (c_parser_statement_after_labels): Add restart label
	near the start of the function.  If c_parser_pragma returns false,
	goto restart.
	(c_parser_pragma): For PRAGMA_OMP_CANCELLATION_POINT return what
	c_parser_omp_cancellation_point returned.  For PRAGMA_OMP_DECLARE
	return what c_parser_omp_declare returned.  Return true instead of
	false after emitting errors that the directive is not allowed in
	pragma_stmt context.
	(c_parser_omp_ordered): Return true instead of
	false after emitting errors that the directive is not allowed in
	pragma_stmt context.
	(c_parser_omp_target_update): Likewise.
	(c_parser_omp_target_enter_data, c_parser_omp_target_exit_data):
	Change return type from tree to bool, return false if the
	directive should be ignored in pragma_stmt contexts.
	(c_parser_omp_target): Adjust callers of c_parser_omp_target_*_data,
	return their result directly.
	(c_parser_omp_cancellation_point): Change return type from void to
	bool, return false if the directive should be ignored in pragma_stmt
	contexts.
	(c_parser_omp_declare): Likewise.

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

	* c-parser.c (OMP_SCOPE_CLAUSE_MASK): Define.
	(c_parser_omp_scope): New function.
	(c_parser_omp_construct): Handle PRAGMA_OMP_SCOPE.

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

	* c-parser.c (c_parser_omp_clause_name): Parse filter clause name.
	(c_parser_omp_clause_filter): New function.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FILTER.
	(OMP_MASKED_CLAUSE_MASK): Define.
	(c_parser_omp_masked): New function.
	(c_parser_omp_parallel): Handle parallel masked.
	(c_parser_omp_construct): Handle PRAGMA_OMP_MASKED.
	* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_FILTER.

2021-08-12  Martin Uecker  <muecker@gwdg.de>

	PR c/101838
	PR c/29970
	* c-typeck.c (c_expr_sizeof_type): Evaluate
	size expressions for structs of variable size.

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

	* c-parser.c (c_parser_omp_clause_proc_bind): Accept
	'primary' as alias for 'master'.

2021-08-10  Martin Uecker  <muecker@gwdg.de>

	PR c/29970
	* c-typeck.c (c_expr_sizeof_expr): Evaluate
	size expressions for structs of variable size.

2021-08-06  Tamar Christina  <tamar.christina@arm.com>

	* c-decl.c (c_simulate_enum_decl): Pass vec<> by pointer.
	* c-tree.h (c_simulate_enum_decl): Likewise.

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

	* c-parser.c (c_parser_declaration_or_fndef): Adjust by-value function
	vec arguments to by-reference.
	(c_finish_omp_declare_simd): Same.
	(c_parser_compound_statement_nostart): Same.
	(c_parser_for_statement): Same.
	(c_parser_objc_methodprotolist): Same.
	(c_parser_oacc_routine): Same.
	(c_parser_omp_for_loop): Same.
	(c_parser_omp_declare_simd): Same.

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

	* c-parser.c (c_parser_omp_clause_name): Handle 'nohost'.
	(c_parser_oacc_all_clauses): Handle 'PRAGMA_OACC_CLAUSE_NOHOST'.
	(OACC_ROUTINE_CLAUSE_MASK): Add 'PRAGMA_OACC_CLAUSE_NOHOST'.
	* c-typeck.c (c_finish_omp_clauses): Handle 'OMP_CLAUSE_NOHOST'.

2021-07-20  Martin Sebor  <msebor@redhat.com>

	* c-tree.h (c_build_function_call_vec): Adjust by-value argument to
	by-const-reference.
	* c-typeck.c (c_build_function_call_vec): Same.

2021-07-15  Martin Sebor  <msebor@redhat.com>

	PR c/101289
	PR c/97548
	* c-decl.c (get_parm_array_spec): Strip nops.

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

	* c-objc-common.c (c_tree_printer): Remove support for %G and %K.

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

	PR c/101297
	* c-parser.c (c_parser_omp_atomic): Consume comma only if it
	appears before a CPP_NAME.

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

	* c-decl.c (pop_scope): Replace direct uses of TREE_NO_WARNING with
	warning_suppressed_p, suppress_warning, and copy_no_warning.
	(diagnose_mismatched_decls): Same.
	(duplicate_decls): Same.
	(grokdeclarator): Same.
	(finish_function): Same.
	(c_write_global_declarations_1): Same.
	* c-fold.c (c_fully_fold_internal): Same.
	* c-parser.c (c_parser_expr_no_commas): Same.
	(c_parser_postfix_expression): Same.
	* c-typeck.c (array_to_pointer_conversion): Same.
	(function_to_pointer_conversion): Same.
	(default_function_array_conversion): Same.
	(convert_lvalue_to_rvalue): Same.
	(default_conversion): Same.
	(build_indirect_ref): Same.
	(build_function_call_vec): Same.
	(build_atomic_assign): Same.
	(build_unary_op): Same.
	(c_finish_return): Same.
	(emit_side_effect_warnings): Same.
	(c_finish_stmt_expr): Same.
	(c_omp_clause_copy_ctor): Same.

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

	PR c/101176
	* c-parser.c (c_parser_has_attribute_expression): Set source range for
	the result.

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

	PR c/101171
	* c-typeck.c (build_c_cast): Don't call note_integer_operands on
	error_mark_node.

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

	* c-parser.c (omp_split_clauses): Pass C_ORT_OMP_TARGET instead of
	C_ORT_OMP for clauses on target construct.
	(OMP_TARGET_CLAUSE_MASK): Add in_reduction clause.
	(c_parser_omp_target): For non-combined target add
	map (always, tofrom:) clauses for OMP_CLAUSE_IN_REDUCTION.  Pass
	C_ORT_OMP_TARGET to c_finish_omp_clauses.
	* c-typeck.c (handle_omp_array_sections): Adjust ort handling
	for addition of C_ORT_OMP_TARGET and simplify, mapping clauses are
	never present on C_ORT_*DECLARE_SIMD.
	(c_finish_omp_clauses): Likewise.  Handle OMP_CLAUSE_IN_REDUCTION
	on C_ORT_OMP_TARGET, set OMP_CLAUSE_MAP_IN_REDUCTION on
	corresponding map clauses.

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

	PR inline-asm/100785
	* c-typeck.c (c_mark_addressable): Diagnose trying to make
	bit-fields addressable.

2021-06-15  Robin Dapp  <rdapp@linux.ibm.com>

	* c-decl.c (merge_decls): Copy DECL_USER_ALIGN if DECL_ALIGN is
	similar.

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

	PR c/100913
	* c-parser.c (c_parser_omp_clause_affinity): No need to set iterator
	var in the error case.

2021-06-07  Eric Botcazou  <ebotcazou@adacore.com>

	PR c/100920
	* c-typeck.c (convert_for_assignment): Test fndecl_built_in_p to
	spot built-in functions.

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

	PR c/100902
	* c-parser.c (c_parser_omp_target): Call c_omp_adjust_map_clauses
	even when target is combined with other constructs.

2021-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR c/100920
	* c-decl.c (finish_struct): Fix thinko in previous change.
	* c-typeck.c (convert_for_assignment): Do not warn on pointer
	assignment and initialization for storage order purposes if the
	RHS is a call to a DECL_IS_MALLOC function.

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

	PR c/100783
	* c-objc-common.c (print_type): Handle erroneous types.

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

	PR c++/100859
	* c-typeck.c (c_finish_omp_clauses): Move OMP_CLAUSE_AFFINITY
	after depend only cases.

2021-05-31  Richard Biener  <rguenther@suse.de>

	PR c++/88601
	* c-decl.c (names_builtin_p): Handle RID_BUILTIN_SHUFFLEVECTOR.
	* c-parser.c (c_parser_postfix_expression): Likewise.

2021-05-28  Richard Biener   <rguenther@suse.de>

	PR c/100803
	* gimple-parser.c (c_parser_gimple_paren_condition): Diagnose
	invalid if conditions.

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

	PR middle-end/99928
	* c-typeck.c (handle_omp_array_sections): Copy OMP_CLAUSE_MAP_IMPLICIT.
	(c_finish_omp_clauses): Move not just OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT
	marked clauses last, but also OMP_CLAUSE_MAP_IMPLICIT.  Add
	map_firstprivate_head bitmap, set it for GOMP_MAP_FIRSTPRIVATE_POINTER
	maps and silently remove OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT if it is
	present too.  For OMP_CLAUSE_MAP_IMPLICIT silently remove the clause
	if present in map_head, map_field_head or map_firstprivate_head
	bitmaps.

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

	* c-parser.c (c_parser_omp_clause_affinity): New.
	(c_parser_omp_clause_name, c_parser_omp_variable_list,
	c_parser_omp_all_clauses, OMP_TASK_CLAUSE_MASK): Handle affinity clause.
	* c-typeck.c (handle_omp_array_sections_1, handle_omp_array_sections,
	c_finish_omp_clauses): Likewise.

2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR c/100653
	* c-decl.c (finish_struct): Warn for a union containing an aggregate
	field with a differing scalar storage order.

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

	PR middle-end/99928
	* c-typeck.c (c_finish_omp_clauses): Move firstprivate clauses with
	OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT to the end of the chain.  Don't error
	if a decl is mentioned both in map clause and in such firstprivate
	clause unless OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET is also set.

2021-05-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* c-parser.c (c_parser_omp_master): Set OMP_MASTER_COMBINED on
	master when combined with taskloop.
	(c_parser_omp_parallel): Don't set OMP_PARALLEL_COMBINED on
	parallel master when not combined with taskloop.

2021-05-18  Richard Biener  <rguenther@suse.de>

	PR c/100522
	* gimple-parser.c (c_parser_gimple_postfix_expression_after_primary):
	Diagnose calls to non-functions.
	(c_parser_gimple_statement): Diagnose unexpected assignment RHS.

2021-05-17  Richard Biener  <rguenther@suse.de>

	PR c/100625
	* gimple-parser.c (c_parser_gimple_label): Avoid building
	a GIMPLE label with NULL label decl.

2021-05-13  Martin Sebor  <msebor@redhat.com>

	PR c/100550
	* c-decl.c (get_parm_array_spec): Avoid erroneous VLA bounds.

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

	* c-parser.c (c_parser_omp_clause_map): Support map-type-modifier
	'close'.

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

	* c-aux-info.c (affix_data_type): Use startswith
	function instead of strncmp.
	* c-typeck.c (build_function_call_vec): Likewise.
	* gimple-parser.c (c_parser_gimple_parse_bb_spec): Likewise.

2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* c-typeck.c (build_unary_op) <ADDR_EXPR>: Do not issue an error
	on the address of a pointer field in a record with reverse SSO.

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

	* c-typeck.c (c_finish_omp_clauses): Accept float + complex
	for || and && reductions.

2021-04-29  Joseph Myers  <joseph@codesourcery.com>

	* c-typeck.c (function_types_compatible_p): For C2X, treat
	unprototyped function as compatible with non-variadic prototyped
	function even if some argument types are changed by the default
	argument promotions.

2021-04-15  Martin Sebor  <msebor@redhat.com>

	PR c/99420
	PR c/99972
	* c-decl.c (pushdecl): Always propagate type attribute.

2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>

	PR c/98852
	* c-typeck.c (c_common_type): Do not drop attributes that
	affect type identity.

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

	PR c/99990
	* c-decl.c (finish_decl): Don't overwrite TREE_TYPE of
	error_mark_node.

2021-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99565
	* c-typeck.c (build_conditional_expr): Pass OEP_ADDRESS_OF_SAME_FIELD
	to operand_equal_p.

2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/99588
	* c-typeck.c (mark_exp_read): Recognize what build_atomic_assign
	with modifycode NOP_EXPR produces and mark the _Atomic var as read
	if found.
	(build_atomic_assign): For modifycode of NOP_EXPR, use COMPOUND_EXPRs
	rather than STATEMENT_LIST.  Otherwise call mark_exp_read on lhs.
	Set TREE_SIDE_EFFECTS on the TARGET_EXPR.

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

	PR c++/99509
	* c-decl.c (finish_decl): For 'omp declare target implicit' vars,
	ensure that the varpool node is marked as offloadable.

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

	PR c/99137
	* c-parser.c (c_parser_oacc_clause_async): Reject comma expressions.

2021-02-24  Martin Sebor  <msebor@redhat.com>

	PR middle-end/97172
	* c-decl.c (free_attr_access_data): Clear attribute arg spec.

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

	PR c/99136
	* c-typeck.c (c_finish_return): Don't wrap retval into
	EXCESS_PRECISION_EXPR in functions that return void.

2021-02-11  Marek Polacek  <polacek@redhat.com>

	* c-parser.c (c_parser_if_statement): Use vec_free.

2021-02-04  Martin Sebor  <msebor@redhat.com>

	PR c/97882
	* c-decl.c (locate_old_decl): Add type to diagnostic output.
	(diagnose_mismatched_decls): Same.
	(start_function): Introduce temporaries for better readability.
	* c-typeck.c (comptypes_internal): Only consider complete enum
	types in comparisons with integers.

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

	PR middle-end/97172
	* c-decl.c (free_attr_access_data): New function.
	(c_parse_final_cleanups): Call free_attr_access_data.

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

	* c-parser.c (c_parser_omp_clause_detach): New.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH clause.
	(OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH.
	* c-typeck.c (c_finish_omp_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH
	clause.  Prevent use of detach with mergeable and overriding the
	data sharing mode of the event handle.

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

	* c-typeck.c (c_finish_omp_clauses): For reduction build array with
	unqualified element type and then call c_build_qualified_type on the
	ARRAY_TYPE.

2021-01-07  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_compound_statement): Only
	reallocate loop array if it is too small.

2020-12-16  Martin Uecker  <muecker@gwdg.de>

	PR c/98047
	* c-typeck.c (build_modify_expr): Drop qualifiers.

2020-12-16  Martin Uecker  <muecker@gwdg.de>

	PR c/98260
	* c-parser.c (c_parser_expression): Look into
	nop expression when marking expressions as read.

2020-12-14  Martin Liska  <mliska@suse.cz>

	PR sanitizer/98204
	* c-typeck.c (pointer_diff): Do not emit a top-level
	sanitization.
	(build_binary_op): Likewise.

2020-12-09  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.c (c_parser_omp_allocate): New.
	(c_parser_omp_construct): Call it.

2020-12-09  Richard Biener  <rguenther@suse.de>

	PR c/98200
	* gimple-parser.c (c_parser_gimple_postfix_expression): Return
	early on error.

2020-12-07  Martin Uecker  <muecker@gwdg.de>

	PR c/97981
	* c-typeck.c (convert_lvalue_to_rvalue): Move the code
	that drops qualifiers to the end of the function.

2020-11-26  Martin Uecker  <muecker@gwdg.de>

	PR c/65455
	PR c/92935
	* c-parser.c (c_parser_declaration_or_fndef): Remove
	redundant code to drop qualifiers of _Atomic types for __auto_type.
	(c_parser_typeof_specifier): Do not drop qualifiers of _Atomic
	types for __typeof__.

2020-11-24  Jakub Jelinek  <jakub@redhat.com>

	PR c/97958
	* c-parser.c (c_parser_binary_expression): For omp atomic binary
	expressions, use make_node instead of build2 to avoid checking build2
	performs.

2020-11-23  Joseph Myers  <joseph@codesourcery.com>

	PR c/95630
	* c-typeck.c (build_binary_op): Use pedwarn_c99 with OPT_Wpedantic
	for comparisons of complete and incomplete pointers.

2020-11-21  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* c-aux-info.c (gen_type): Support opaque types.

2020-11-20  Martin Sebor  <msebor@redhat.com>

	PR middle-end/97879
	* c-decl.c (start_function): Set ATTR_FLAG_INTERNAL in flags.

2020-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR other/97911
	* Make-lang.in (c.serial): Change from goal to a variable.
	(.PHONY): Drop c.serial.

2020-11-20  Martin Uecker  <muecker@gwdg.de>

	* c-typeck.c (convert_lvalue_to_rvalue): Drop qualifiers.

2020-11-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/97860
	* c-decl.c (get_parm_array_spec): Bail out of nelts is
	error_operand_p.

2020-11-18  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in (c.serial): New goal.
	(.PHONY): Add c.serial c.prev.
	(cc1$(exeext)): Call LINK_PROGRESS.

2020-11-13  Vladimir N. Makarov  <vmakarov@redhat.com>

	* c-parser.c (c_parser_asm_statement): Parse outputs for asm
	goto too.
	* c-typeck.c (build_asm_expr): Remove an assert checking output
	absence for asm goto.

2020-11-13  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_finish_omp_clauses): Don't clear
	OMP_CLAUSE_REDUCTION_INSCAN unless reduction_seen == -2.

2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>

	PR objc/77404
	* c-parser.c (c_parser_objc_class_definition): Pass the
	location of the class name to the interface declaration.

2020-11-10  Strager Neds  <strager.nds@gmail.com>

	* c-decl.c (merge_decls): Use new overload of
	set_decl_section_name.

2020-11-10  Chung-Lin Tang  <cltang@codesourcery.com>

	* c-parser.c (c_parser_omp_target_data): Add use of
	new c_omp_adjust_map_clauses function. Add GOMP_MAP_ATTACH_DETACH as
	handled map clause kind.
	(c_parser_omp_target_enter_data): Likewise.
	(c_parser_omp_target_exit_data): Likewise.
	(c_parser_omp_target): Likewise.
	* c-typeck.c (handle_omp_array_sections): Adjust COMPONENT_REF case to
	use GOMP_MAP_ATTACH_DETACH map kind for C_ORT_OMP region type.
	(c_finish_omp_clauses): Adjust bitmap checks to allow struct decl and
	same struct field access to co-exist on OpenMP construct.

2020-11-07  Martin Uecker  <muecker@gwdg.de>

	* c-parser.c (c_parser_label): Implement mixing of labels and code.
	(c_parser_all_labels): Likewise.

2020-11-06  Iain Sandoe  <iain@sandoe.co.uk>

	* c-parser.c (c_parser_objc_at_property_declaration):
	Improve parsing fidelity. Associate better location info
	with @property attributes.  Clean up the interface to
	objc_add_property_declaration ().

2020-11-06  Nathan Sidwell  <nathan@acm.org>

	* c-decl.c (diagnose_mismatched_decls): Rename
	DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
	(warn_if_shadowing, implicitly_declare, names_builtin_p)
	(collect_source_refs): Likewise.
	* c-typeck.c (inform_declaration, inform_for_arg)
	(convert_for_assignment): Likewise.

2020-11-06  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.c (c_parser_omp_atomic): Add openacc parameter and update
	OpenACC matching.
	(c_parser_omp_construct): Update call.

2020-11-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/97670
	* c-typeck.c (c_finish_omp_clauses): Look through array reductions to
	find underlying decl to clear in the aligned_head bitmap.

2020-11-04  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (handle_nodiscard_attribute): New.
	(std_attribute_table): Add nodiscard.
	* c-parser.c (c_parser_std_attribute): Expect argument to
	nodiscard attribute to be a string.  Do not special-case ignoring
	nodiscard.
	* c-typeck.c (maybe_warn_nodiscard): New.
	(build_compound_expr, emit_side_effect_warnings): Call
	maybe_warn_nodiscard.
	(c_process_expr_stmt, c_finish_stmt_expr): Also call
	emit_side_effect_warnings if warn_unused_result.

2020-10-29  Asher Gordon  <AsDaGo@posteo.net>

	* c-typeck.c (free_all_tagged_tu_seen_up_to): Replace free
	with XDELETE.
	(finish_init): Likewise.
	(pop_init_level): Likewise.

2020-10-28  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (store_parm_decls_newstyle): Use pedwarn_c11 not
	error_at for omitted parameter name.

2020-10-28  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_clause_name): Handle allocate.
	(c_parser_omp_clause_allocate): New function.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_ALLOCATE.
	(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
	OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK,
	OMP_TASK_CLAUSE_MASK, OMP_TASKGROUP_CLAUSE_MASK,
	OMP_DISTRIBUTE_CLAUSE_MASK, OMP_TEAMS_CLAUSE_MASK,
	OMP_TARGET_CLAUSE_MASK, OMP_TASKLOOP_CLAUSE_MASK): Add
	PRAGMA_OMP_CLAUSE_ALLOCATE.
	* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_ALLOCATE.

2020-10-27  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser_std_attribute_specifier): Allow duplicate
	standard attributes.

2020-10-23  Marek Polacek  <polacek@redhat.com>

	PR c++/91741
	* c-parser.c (c_parser_binary_expression): Implement -Wsizeof-array-div.
	(c_parser_postfix_expression): Set PAREN_SIZEOF_EXPR.
	(c_parser_expr_list): Handle PAREN_SIZEOF_EXPR like SIZEOF_EXPR.
	* c-tree.h (char_type_p): Declare.
	* c-typeck.c (char_type_p): No longer static.

2020-10-23  Martin Sebor  <msebor@redhat.com>

	PR middle-end/97552
	* c-decl.c (get_parm_array_spec): Handle static VLA parameters.

2020-09-19  Martin Sebor  <msebor@redhat.com>

	PR c/50584
	* c-decl.c (lookup_last_decl): Define new function.
	(c_decl_attributes): Call it.
	(start_decl): Add argument and use it.
	(finish_decl): Call build_attr_access_from_parms and decl_attributes.
	(get_parm_array_spec): Define new function.
	(push_parm_decl): Call get_parm_array_spec.
	(start_function): Call warn_parm_array_mismatch.  Build attribute
	access and add it to current function.
	* c-parser.c (c_parser_declaration_or_fndef): Diagnose mismatches
	in forms of array parameters.
	* c-tree.h (start_decl): Add argument.

2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>

	* c-decl.c (c_break_label, c_cont_label): Delete, and replace
	with...
	(in_statement): New.
	(start_function): Adjust for above change.
	(c_push_function_context, c_pop_function_context): Likewise.
	* c-lang.h (struct language_function): Likewise.
	* c-objc-common.h (LANG_HOOKS_BLOCK_MAY_FALLTHRU): Define.
	* c-parser.c (objc_foreach_break_label, objc_foreach_continue_label):
	New.
	(c_parser_statement_after_labels): Adjust calls to c_finish_bc_stmt.
	(c_parser_switch_statement): Adjust break/switch context handling
	and calls to renamed functions.
	(c_parser_while_statement): Adjust break/switch context handling and
	build a WHILE_STMT.
	(c_parser_do_statement): Ditto, with DO_STMT respectively.
	(c_parser_for_statement): Ditto, with FOR_STMT respectively.
	(c_parser_omp_for_loop): Adjust break/switch context handling.
	* c-tree.h (c_break_label, c_cont_label): Delete.
	(IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
	(IN_OMP_BLOCK, IN_OMP_FOR, IN_OBJC_FOREACH): Define.
	(in_statement, switch_statement_break_seen_p): Declare.
	(c_start_case, c_finish_case): Renamed to...
	(c_start_switch, c_finish_switch).
	(c_finish_bc_stmt): Adjust arguments.
	* c-typeck.c (build_function_call_vec): Don't try to print
	statements with %qE format.
	(struct c_switch):  Rename switch_expr field to switch_stmt.
	Add break_stmt_seen_p field.
	(c_start_case): Rename to c_start_switch.  Build a SWITCH_STMT
	instead of a SWITCH_EXPR.  Update for changes to struct c_switch.
	(do_case): Update for changes to struct c_switch.
	(c_finish_case): Rename to c_finish_switch.  Update for changes to
	struct c_switch and change of representation from SWITCH_EXPR to
	SWITCH_STMT.
	(c_finish_loop): Delete.
	(c_finish_bc_stmt): Update to reflect changes to break/continue
	state representation.  Build a BREAK_STMT or CONTINUE_STMT instead
	of a GOTO_EXPR except for objc foreach loops.

2020-09-01  Jakub Jelinek  <jakub@redhat.com>

	PR c++/96867
	* c-typeck.c (handle_omp_array_sections_1): Test C_ARRAY_PARAMETER
	only on PARM_DECLs.

2020-08-28  Martin Sebor  <msebor@redhat.com>

	PR c/96596
	* c-decl.c (match_builtin_function_types): Avoid dealing with erroneous
	argument type.

2020-08-27  Martin Liska  <mliska@suse.cz>

	* gimple-parser.c (c_parser_gimple_compound_statement): Set exact argument of a vector
	growth function to true.

2020-08-25  Tobias Burnus  <tobias@codesourcery.com>

	PR c/96678
	* c-typeck.c (handle_omp_array_sections_1): Talk about
	array function parameter in the error message.

2020-08-18  Jakub Jelinek  <jakub@redhat.com>

	PR c/96571
	* c-parser.c (c_parser_generic_selection): Change match_found from bool
	to int, holding index of the match.  Call mark_exp_read on the selector
	expression and on expressions other than the selected one.

2020-08-01  Richard Sandiford  <richard.sandiford@arm.com>

	PR c/96377
	* c-typeck.c (process_init_element): Split test for whether to
	recurse into a record, union or array into...
	(initialize_elementwise_p): ...this new function.  Don't recurse
	into a vector type if the initialization value is also a vector.

2020-07-31  Richard Biener  <rguenther@suse.de>

	PR debug/96383
	* c-objc-common.h (LANG_HOOKS_FINALIZE_EARLY_DEBUG):
	Define to c_common_finalize_early_debug.

2020-07-22  Tobias Burnus  <tobias@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_hint): Require nonnegative hint clause.
	(c_parser_omp_critical): Permit hint(0) clause without named critical.
	(c_parser_omp_construct): Don't assert if error_mark_node is returned.

2020-07-21  Sunil K Pandey  <skpgkp2@gmail.com>

	PR target/95237
	* c-decl.c (finish_decl): Call target hook
	lower_local_decl_alignment to lower local decl alignment.

2020-07-09  Julian Brown  <julian@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/95270
	* c-typeck.c (c_finish_omp_clauses): Set OMP_CLAUSE_SIZE (bias) to zero
	for standalone attach/detach clauses.

2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>

	* c-typeck.c (convert_for_assignment): If -Wscalar-storage-order is
	set, warn for conversion between pointers that point to incompatible
	scalar storage orders.

2020-07-07  Kaipeng Zhou  <zhoukaipeng3@huawei.com>

	* c-parser.c (c_parser_statement_after_labels): Pass correct
	parameters to c_parser_do_statement.

2020-06-16  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_expr_no_commas): Save, clear and restore
	c_in_omp_for.
	(c_parser_omp_for_loop): Set c_in_omp_for around some calls to avoid
	premature c_fully_fold.  Defer explicit c_fully_fold calls to after
	c_finish_omp_for.
	* c-tree.h (c_in_omp_for): Declare.
	* c-typeck.c (c_in_omp_for): Define.
	(build_modify_expr): Avoid c_fully_fold if c_in_omp_for.
	(digest_init): Likewise.
	(build_binary_op): Likewise.

2020-06-16  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_clause_schedule): Reject modifier separated
	from kind by comma rather than colon.

2020-06-05  Mark Wielaard  <mark@klomp.org>

	* c-decl.c (implicit_decl_warning): When warned and olddecl is
	an undeclared builtin, then add a fixit header hint, if found.
	(implicitly_declare): Add OPT_Wbuiltin_declaration_mismatch to
	warning_at about implicit builtin declaration type mismatch.

2020-06-03  Mark Wielaard  <mark@klomp.org>

	* c-parser.c (struct c_parser): Add seen_string_literal
	bitfield.
	(c_parser_consume_token): Reset seen_string_literal.
	(c_parser_error_richloc): Add name_hint if seen_string_literal
	and next token is a CPP_NAME and we have a missing header
	suggestion for the name.
	(c_parser_string_literal): Set seen_string_literal.

2020-06-03  Mark Wielaard  <mark@klomp.org>

	* c-parser.c (c_parser_postfix_expression_after_primary): Add
	scope with matching_parens after CPP_OPEN_PAREN.

2020-06-03  Tobias Burnus  <tobias@codesourcery.com>

	* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redefine.

2020-05-28  Nicolas Bértolo  <nicolasbertolo@gmail.com>

	* Make-lang.in: Remove extra slash.

2020-05-19  Martin Liska  <mliska@suse.cz>

	* c-parser.c: Fix typo.

2020-05-14  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_target): Set cfun->has_omp_target.

2020-05-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/94703
	* gimple-parser.c (c_parser_parse_ssa_name): Do not set
	DECL_GIMPLE_REG_P.

2020-04-30  Jakub Jelinek  <jakub@redhat.com>

	PR c/94842
	* c-decl.c (set_labels_context_r): In addition to context-less
	LABEL_DECLs adjust also LABEL_DECLs with context equal to
	parent function if any.
	(store_parm_decls): Adjust comment.

2020-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR objc/94637
	* c-parser.c (c_parser_objc_selector_arg): Handle CPP_SCOPE like
	two CPP_COLON tokens.

2020-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR other/94629
	* c-parser.c (c_parser_oacc_routine): Remove redundant assignment
	to data.clauses.

2020-04-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/94593
	* c-parser.c (c_parser_pragma) <case PRAGMA_OMP_REQUIRES>: Reject
	requires directive when not at file scope.

2020-04-08  Tobias Burnus  <tobias@codesourcery.com>

	PR middle-end/94120
	* c-decl.c (c_check_in_current_scope): New function.
	* c-tree.h (c_check_in_current_scope): Declare it.
	* c-parser.c (c_parser_oacc_declare): Add check that variables
	are declared in the same scope as the directive. Fix handling
	of namespace vars.

2020-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/94512
	* c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
	if c_parser_omp_master succeeded.

2020-03-23  Jakub Jelinek  <jakub@redhat.com>

	PR gcov-profile/94029
	PR c/94239
	* c-parser.c (c_parser_declaration_or_fndef): Initialize endloc to
	the function_start_locus location.  Don't do that afterwards for the
	__GIMPLE body parsing.

2020-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR gcov-profile/94029
	* c-tree.h (finish_function): Add location_t argument defaulted to
	input_location.
	* c-parser.c (c_parser_compound_statement): Add endlocp argument and
	set it to the locus of closing } if non-NULL.
	(c_parser_compound_statement_nostart): Return locus of closing }.
	(c_parser_parse_rtl_body): Likewise.
	(c_parser_declaration_or_fndef): Propagate locus of closing } to
	finish_function.
	* c-decl.c (finish_function): Add end_loc argument, use it instead of
	input_location to set function_end_locus.

2020-03-17  Jakub Jelinek  <jakub@redhat.com>

	PR c/94172
	* c-tree.h (C_TYPE_INCOMPLETE_VARS): Define to TYPE_LANG_SLOT_1
	instead of TYPE_VFIELD, and support it on {RECORD,UNION,ENUMERAL}_TYPE.
	(TYPE_ACTUAL_ARG_TYPES): Check that it is only used on FUNCTION_TYPEs.
	* c-decl.c (pushdecl): Push C_TYPE_INCOMPLETE_VARS also to
	ENUMERAL_TYPEs.
	(finish_incomplete_vars): New function, moved from finish_struct.  Use
	relayout_decl instead of layout_decl.
	(finish_struct): Remove obsolete comment about C_TYPE_INCOMPLETE_VARS
	being TYPE_VFIELD.  Use finish_incomplete_vars.
	(finish_enum): Clear C_TYPE_INCOMPLETE_VARS.  Call
	finish_incomplete_vars.
	* c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
	also on ENUMERAL_TYPEs.

2020-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR c/94179
	* c-fold.c (c_fully_fold_internal): Handle MEM_REF.

2020-03-13  Martin Sebor  <msebor@redhat.com>

	PR c/94040
	* c-decl.c (builtin_structptr_type_count): New constant.
	(match_builtin_function_types): Reject decls that are incompatible
	in types pointed to by pointers.
	(diagnose_mismatched_decls): Adjust comments.

2020-03-05  Joseph Myers  <joseph@codesourcery.com>

	PR c/93577
	* c-typeck.c (pop_init_level): Do not diagnose initializers as
	empty when initialized type is error_mark_node.
	(set_designator, process_init_element): Ignore initializers for
	elements of a variable-size type or of error_mark_node.

2020-03-01  Martin Sebor  <msebor@redhat.com>

	PR middle-end/93926
	* c-decl.c (types_close_enough_to_match): New function.
	(match_builtin_function_types):
	(diagnose_mismatched_decls): Add missing inform call to a warning.

2020-03-01  Martin Sebor  <msebor@redhat.com>

	PR c/93812
	* c-typeck.c (build_functype_attribute_variant): New function.
	(composite_type): Call it.

2020-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR other/93912
	* gimple-parser.c (c_parser_gimple_parse_bb_spec_edge_probability):
	Rename last argument from probablity to probability.

2020-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR c/93576
	* c-decl.c (grokdeclarator): If this_size_varies, only push size into
	*expr if it has side effects.

2020-01-30  Jeff Law  <law@redhat.com>

	PR c/88660
	* c-parser.c (c_parser_switch_statement): Make sure to request
	marking the switch expr as used.

2020-01-22  Joseph Myers  <joseph@codesourcery.com>

	PR c/93348
	* c-typeck.c (build_c_cast): Call remove_c_maybe_const_expr on
	argument with integer operands.

2020-01-16  Kerem Kat  <keremkat@gmail.com>

	PR c/92833
	* c-parser.c (c_parser_consume_token): Fix peeked token stack pop
	to support 4 available tokens.

2020-01-15  Joseph Myers  <joseph@codesourcery.com>

	PR c/93072
	* c-decl.c (pushdecl): Use TREE_PUBLIC, not DECL_EXTERNAL, to
	determine whether to set DECL_CONTEXT.

2020-01-13  Joseph Myers  <joseph@codesourcery.com>

	PR c/93241
	* c-typeck.c (build_c_cast): Check for expressions with integer
	operands that can occur in an unevaluated part of an integer
	constant expression and call note_integer_operands as needed.

2019-01-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/93199
	* gimple-parser.c (c_parser_parse_gimple_body): Remove __PHI IFN
	permanently.

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

	Update copyright years.

2019-12-20  Eric Botcazou  <ebotcazou@adacore.com>

	* c-decl.c (collect_source_ref_cb): Delete.
	(for_each_global_decl): Rename into...
	(collect_source_refs): ...this.  Call collect_source_ref directly.
	(c_parse_final_cleanups): Always call collect_source_ref on the main
	input filename.

2019-12-19  Julian Brown  <julian@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_name): Add parsing of attach and
	detach clauses.
	(c_parser_omp_variable_list): Add ALLOW_DEREF optional parameter.
	Allow deref (->) in variable lists if true.
	(c_parser_omp_var_list_parens): Add ALLOW_DEREF optional parameter.
	Pass to c_parser_omp_variable_list.
	(c_parser_oacc_data_clause): Support attach and detach clauses.  Update
	call to c_parser_omp_variable_list.
	(c_parser_oacc_all_clauses): Support attach and detach clauses.
	(OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK,
	OACC_KERNELS_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK,
	OACC_SERIAL_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_ATTACH.
	(OACC_EXIT_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_DETACH.
	* c-typeck.c (handle_omp_array_sections_1): Reject subarrays for attach
	and detach.  Support deref.
	(handle_omp_array_sections): Use GOMP_MAP_ATTACH_DETACH instead of
	GOMP_MAP_ALWAYS_POINTER for OpenACC.
	(c_oacc_check_attachments): New function.
	(c_finish_omp_clauses): Check attach/detach arguments for being
	pointers using above.  Support deref.

2019-12-19  Julian Brown  <julian@codesourcery.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>
	    Tobias Burnus  <tobias@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_name): Support no_create.
	(c_parser_oacc_data_clause): Likewise.
	(c_parser_oacc_all_clauses): Likewise.
	(OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
	(OACC_PARALLEL_CLAUSE_MASK, OACC_SERIAL_CLAUSE_MASK): Add
	PRAGMA_OACC_CLAUSE_NO_CREATE.
	* c-typeck.c (handle_omp_array_sections): Support
	GOMP_MAP_NO_ALLOC.

2019-12-09  David Malcolm  <dmalcolm@redhat.com>

	* c-objc-common.c (range_label_for_type_mismatch::get_text):
	Replace label_text ctor calls.

2019-12-04  Joseph Myers  <joseph@codesourcery.com>

	PR c/36941
	PR c/88827
	* c-typeck.c (convert_lvalue_to_rvalue): Call
	require_complete_type for arguments not of void types.
	(build_indirect_ref): Do not diagnose dereferencing pointers to
	incomplete types.
	* c-tree.h (C_TYPE_ERROR_REPORTED): Remove.

2019-12-03  Joseph Myers  <joseph@codesourcery.com>

	PR c/88704
	* c-decl.c (store_parm_decls_oldstyle): Diagnose use of [*] in
	old-style parameter definitions.

2019-12-01  Sandra Loosemore  <sandra@codesourcery.com>

	PR target/92499

	* c-decl.c (flexible_array_type_p): Move to common code.

2019-11-30  Richard Sandiford  <richard.sandiford@arm.com>

	* c-decl.c (start_decl): Allow initialization of variables whose
	size is a POLY_INT_CST.
	(finish_decl): Use verify_type_context to check whether the target
	allows variables with a particular type to have static or thread-local
	storage duration.  Don't raise a second error if such variables do
	not have a constant size.
	(grokdeclarator): Use verify_type_context to check whether the
	target allows fields or array elements to have a particular type.
	* c-typeck.c (pointer_diff): Use verify_type_context to test whether
	the target allows pointer difference for the types involved.
	(build_unary_op): Likewise for pointer increment and decrement.

2019-11-29  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (struct c_parser): Add members raw_tokens and
	raw_tokens_used.
	(c_lex_one_token): Add argument raw.  Handle lexing raw tokens and
	using previously-lexed raw tokens.
	(c_parser_peek_nth_token_raw)
	(c_parser_check_balanced_raw_token_sequence): New functions.
	(c_parser_nth_token_starts_std_attributes): Use
	c_parser_check_balanced_raw_token_sequence for Objective-C.

2019-11-25  Joseph Myers  <joseph@codesourcery.com>

	PR c/91985
	* c-decl.c (finish_declspecs): Use int instead of decimal
	floating-point types if decimal floating-point not supported.

2019-11-25  Joseph Myers  <joseph@codesourcery.com>

	* c-tree.h (struct c_declarator): Use a structure for id member.
	* c-decl.c (grokdeclarator): Extract attributes from cdk_id
	declarators at the start, not when handling individual declarators
	later.  Use u.id.id instead of u.id.
	(grokfield): Use u.id.id instead of u.id.
	(build_id_declarator): Set u.id.id and u.id.attrs.
	(finish_declspecs): Handle postfix attributes in case of typedef
	name or typeof used.
	* c-parser.c (c_parser_direct_declarator)
	(c_parser_direct_declarator_inner): Place declarator for
	attributes inside that for function or array, not outside.  Set
	u.id.attrs for identifiers.
	(c_parser_parameter_declaration): Use u.id.id instead of u.id.
	* gimple-parser.c (c_parser_gimple_declaration): Use u.id.id
	instead of u.id.

2019-11-22  Jakub Jelinek  <jakub@redhat.com>

	PR c/90677
	* c-decl.c (identifier_global_tag): Define.

2019-11-20  Richard Biener  <rguenther@suse.de>

	PR c/92088
	* c-decl.c (grokdeclarator): Prevent inlining of nested
	function with VLA arguments.

2019-11-20  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (c_warn_type_attributes): New function.
	(groktypename, grokdeclarator, finish_declspecs): Call
	c_warn_type_attributes before applying attributes to types.
	* c-tree.h (c_warn_type_attributes): Declare.

2019-11-19  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (c_warn_unused_attributes): Use pedwarn not warning for
	standard attributes.
	* c-parser.c (c_parser_std_attribute): Take argument for_tm.  Use
	pedwarn for unknown standard attributes and return error_mark_node
	for them.

2019-11-18  Matthew Malcomson  <matthew.malcomson@arm.com>

	* c-parser.c (c_parser_parse_rtl_body): Always call
	run_rtl_passes, even if startwith pass is not provided.

2019-11-15  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser_std_attribute_specifier): Diagnose
	duplicate standard attributes.

2019-11-15  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (std_attribute_table): Add maybe_unused.

2019-11-15  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (std_attribute_table): Add fallthrough.
	* c-parser.c (c_parser_declaration_or_fndef): Diagnose fallthrough
	attribute at top level.

2019-11-15  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (std_attribute_table): New.
	(c_init_decl_processing): Register attributes from
	std_attribute_table.
	* c-parser.c (c_parser_attribute_arguments): Add arguments
	require_string and allow_empty_args.  All callers changed.
	(c_parser_std_attribute): Set require_string argument for
	"deprecated" attribute.

2019-11-14  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser_postfix_expression)
	(c_parser_check_literal_zero): Handle CPP_UTF8CHAR.
	* gimple-parser.c (c_parser_gimple_postfix_expression): Likewise.

2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>

	* c-typeck.c (build_conditional_expr): Use truth_type_for instead
	of build_same_sized_truth_vector_type.
	(build_vec_cmp): Likewise.

2019-11-14  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_context_selector): Don't require score
	argument to fit into shwi, just to be INTEGER_CST.  Diagnose
	negative score.

	* c-parser.c (c_parser_omp_context_selector): Rename
	CTX_PROPERTY_IDLIST to CTX_PROPERTY_NAME_LIST, add CTX_PROPERTY_ID.
	Use CTX_PROPERTY_ID for atomic_default_mem_order, only allow a single
	identifier in that.  For CTX_PROPERTY_NAME_LIST, allow identifiers
	and string literals.

2019-11-14  Joseph Myers  <joseph@codesourcery.com>

	* c-tree.h (enum c_typespec_kind): Add ctsk_tagref_attrs and
	ctsk_tagfirstref_attrs.
	(struct c_declspecs): Update description of attrs.  Add
	postfix_attrs and non_std_attrs_seen_p.  Increase size of
	typespec_kind bit-field.
	(c_warn_unused_attributes): New declaration.
	(parser_xref_tag): Update prototype.
	* c-decl.c (c_warn_unused_attributes): New function.
	(shadow_tag_warned): Handle ctsk_tagfirstref_attrs and
	ctsk_tagref_attrs.  Handle attribute declarations.
	(check_compound_literal_type): Handle ctsk_tagfirstref_attrs.
	(grokdeclarator): Handle standard attributes.
	(parser_xref_tag): Add arguments have_std_attrs and attrs.  Apply
	attributes to incomplete type reference.
	(xref_tag): Update call to parser_xref_tag.
	(declspecs_add_addrspace, declspecs_add_type)
	(declspecs_add_scspec, declspecs_add_attrs): Set
	non_std_attrs_seen_p.
	(finish_declspecs): Apply postfix standard attributes to type.
	* c-parser.c (c_token_starts_declspecs)
	(c_token_starts_declaration, c_parser_next_token_starts_declspecs)
	(c_parser_next_tokens_start_declaration): Update comments.
	(c_parser_consume_token, c_parser_consume_pragma): Handle moving
	parser->tokens[2] to parser->tokens[1].
	(c_parser_nth_token_starts_std_attributes)
	(c_parser_std_attribute_specifier_sequence): New functions.
	(c_parser_declaration_or_fndef): Add arguments have_attrs and
	attrs.  All callers changed.  Handle standard attributes.
	(c_parser_parms_declarator, c_parser_parms_list_declarator)
	(c_parser_parameter_declaration): Add argument have_gnu_attrs.
	All callers changed.
	(c_parser_declspecs): Add arguments start_std_attr_ok and
	end_std_attr_ok.  All callers changed.  Handle standard
	attributes.
	(c_parser_enum_specifier, c_parser_struct_or_union_specifier)
	(c_parser_direct_declarator, c_parser_direct_declarator_inner)
	(c_parser_compound_statement_nostart, c_parser_all_labels)
	(c_parser_label, c_parser_statement, c_parser_for_statement):
	Handle standard attributes.
	* c-parser.h (c_parser_declspecs): Update prototype.
	* gimple-parser.c (c_parser_gimple_declaration): Update call to
	c_parser_declspecs.

2019-11-12  Martin Liska  <mliska@suse.cz>

	* gimple-parser.c: Do not include params.h.

2019-11-12  Martin Liska  <mliska@suse.cz>

	* gimple-parser.c (c_parser_parse_gimple_body): Replace old parameter syntax
	with the new one, include opts.h if needed.  Use SET_OPTION_IF_UNSET
	macro.

2019-11-12  Maciej W. Rozycki  <macro@codesourcery.com>
	    Frederik Harwath  <frederik@codesourcery.com>

	gcc/c/
	* c-parser.c (OACC_SERIAL_CLAUSE_MASK): New macro.
	(c_parser_oacc_kernels_parallel): Rename function to...
	(c_parser_oacc_compute): ... this.  Handle PRAGMA_OACC_SERIAL.
	(c_parser_omp_construct): Update accordingly.


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

	* c-parser.c (c_parser_translation_unit): Diagnose declare target
	without corresponding end declare target.

2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>

	* c-convert.c (convert): Only handle vector conversions if one of
	the types satisfies gnu_vector_type_p or if -flax-vector-conversions
	allows it.
	* c-typeck.c (build_array_ref): Only allow vector indexing if the
	vectors satisfy gnu_vector_type_p.
	(build_unary_op): Only allow unary operators to be applied to
	vectors if they satisfy gnu_vector_type_p.
	(digest_init): Only allow by-element initialization of vectors
	if they satisfy gnu_vector_type_p.
	(really_start_incremental_init): Likewise.
	(push_init_level): Likewise.
	(pop_init_level): Likewise.
	(process_init_element): Likewise.
	(build_binary_op): Only allow binary operators to be applied to
	vectors if they satisfy gnu_vector_type_p.

2019-11-08  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (grokparms): Convert () in a function definition to
	(void) for C2x.
	(store_parm_decls_oldstyle): Pedwarn for C2x.
	(store_parm_decls): Update comment about () not generating a
	prototype.

2019-11-07  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser_attribute_arguments): New function.
	Factored out of c_parser_gnu_attribute.
	(c_parser_gnu_attribute): Use c_parser_attribute_arguments.
	(c_parser_balanced_token_sequence, c_parser_std_attribute)
	(c_parser_std_attribute_specifier): New functions.
	(c_parser_transaction_attributes): Use
	c_parser_std_attribute_specifier.

2019-11-07  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser): Remove lex_untranslated_string.  Add
	lex_joined_string and translate_strings_p.
	(c_lex_one_token): Pass 0 or C_LEX_STRING_NO_JOIN to
	c_lex_with_flags.
	(c_parser_string_literal): New function.
	(c_parser_static_assert_declaration_no_semi): Use
	c_parser_string_literal.  Do not set lex_untranslated_string.
	(c_parser_asm_string_literal): Use c_parser_string_literal.
	(c_parser_simple_asm_expr): Do not set lex_untranslated_string.
	(c_parser_gnu_attributes): Set and restore translate_strings_p
	instead of lex_untranslated_string.
	(c_parser_asm_statement): Do not set lex_untranslated_string.
	(c_parser_asm_operands): Likewise.
	(c_parser_has_attribute_expression): Set and restore
	translate_strings_p instead of lex_untranslated_string.
	(c_parser_postfix_expression): Use c_parser_string_literal.
	(pragma_lex): Likewise.
	(c_parser_pragma_pch_preprocess): Set lex_joined_string.
	(c_parse_file): Set translate_strings_p.
	* gimple-parser.c (c_parser_gimple_postfix_expression)
	(c_parser_gimple_or_rtl_pass_list): Use c_parser_string_literal.
	* c-parser.c (c_parser_string_literal): Declare function.

2019-11-02  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_finish_omp_declare_variant): Use
	omp_get_context_selector instead of c_omp_get_context_selector.

2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>

	* c-tree.h (c_simulate_enum_decl): Declare.
	* c-decl.c (c_simulate_enum_decl): New function.
	* c-objc-common.h (LANG_HOOKS_SIMULATE_ENUM_DECL): Define to the above.

2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>

	* c-tree.h (c_simulate_builtin_function_decl): Declare.
	* c-decl.c (c_simulate_builtin_function_decl): New function.
	* c-objc-common.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define
	to the above.

2019-10-28  Martin Sebor  <msebor@redhat.com>

	PR c/66970
	* c-decl.c (names_builtin_p): Define a new function.

2019-10-28  Richard Biener  <rguenther@suse.de>

	PR c/92249
	* gimple-parser.c (c_parser_parse_gimple_body): Make
	current_bb the entry block initially to easier recover
	from errors.
	(c_parser_gimple_compound_statement): Adjust.

2019-10-24  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_finish_omp_declare_variant): Use
	omp_context_selector_matches instead of
	c_omp_context_selector_matches.
	* c-decl.c (c_decl_attributes): Add "omp declare target block"
	attribute in between declare target and end declare target
	pragmas.

2019-10-15  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser_attribute_any_word): Rename to
	c_parser_gnu_attribute_any_word.  All callers changed.
	(c_parser_attribute): Rename to c_parser_gnu_attribute.  All
	callers changed.
	(c_parser_attributes): Rename to c_parser_gnu_attributes.  All
	callers changed.
	(c_parser_declaration_or_fndef, c_parser_declspecs)
	(c_parser_enum_specifier, c_parser_struct_or_union_specifier)
	(c_parser_struct_declaration, c_parser_declarator)
	(c_parser_gnu_attribute, c_parser_compound_statement)
	(c_parser_label, c_parser_statement, c_parser_objc_method_decl)
	(c_parser_transaction_attributes): Add "gnu-" prefix to names of
	attribute-related syntax productions.

2019-10-14  Richard Sandiford  <richard.sandiford@arm.com>

	* c-objc-common.c (useful_aka_type_p): Replace with...
	(get_aka_type): ...this new function.  Given the original type,
	decide which aka type to print (if any).  Only look through typedefs
	if user_facing_original_type_p.
	(print_type): Update accordingly.

2019-10-14  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_all_clauses): Change bool NESTED_P argument
	into int NESTED, if it is 2, diagnose missing commas in between
	clauses.
	(c_parser_omp_context_selector): Pass 2 as last argument to
	c_parser_omp_all_clauses.

2019-10-12  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_context_selector): Improve error recovery.
	For simd properties, put them directly into TREE_VALUE.
	(c_finish_omp_declare_variant): Call c_omp_mark_declare_variant.
	If c_omp_context_selector_matches is 0, don't add attribute, otherwise
	add "omp declare variant base" attribute rather than
	"omp declare variant".

2019-10-11  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (declspecs_add_type): Use pedwarn_c11 for DFP types.

2019-10-10  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_all_clauses): Add NESTED_P argument, if
	true, terminate processing on closing paren and don't skip to end of
	pragma line.
	(c_parser_omp_declare_simd): Handle also declare variant.
	(omp_construct_selectors, omp_device_selectors,
	omp_implementation_selectors, omp_user_selectors): New variables.
	(c_parser_omp_context_selector,
	c_parser_omp_context_selector_specification,
	c_finish_omp_declare_variant): New functions.
	(c_finish_omp_declare_simd): Handle both declare simd and
	declare variant.
	(c_parser_omp_declare): Handle declare variant.

2019-10-02  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser_asm_statement): Handle CPP_SCOPE like two
	CPP_COLON tokens.

2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>

	* c-objc-common.c (useful_aka_type_p): New function.
	(print_type): Use it to decide whether an aka type is worth printing.

2019-09-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/88203
	* c-parser.c (c_parser_predefined_identifier): New function.
	(c_parser_postfix_expression): Use it.
	(c_parser_omp_variable_list): Parse predefined identifiers.
	* c-typeck.c (c_finish_omp_clauses): Allow predefined variables
	in shared and firstprivate clauses, even when they are predetermined
	shared.

2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>

	* c-typeck.c (build_function_call_vec): Take the original function
	decl as an optional final parameter.  Pass all built-in calls to
	check_builtin_function_arguments.

2019-09-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR c/91815
	* c-decl.c (pushdecl): In C detect duplicate declarations across scopes
	of identifiers in the external scope only for variables and functions.

2019-09-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR c/78736
	* c-typeck.c (convert_for_assignment): Handle Wenum-conversion.

2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>

	PR pch/61250
	* c-parser.c (c_parse_file): Call c_common_no_more_pch ()
	after determining that the first token is not
	PRAGMA_GCC_PCH_PREPROCESS.

2019-08-22  Eric Botcazou  <ebotcazou@adacore.com>

	* c-parser.c (c_parser_declaration_or_fndef): Set DECL_ARGUMENTS of a
	FUNCTION_DECL to the right value in the presence of nested declarators.

2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/91421
	* c-decl.c (merge_decls): Use copy_decl_built_in_function.

2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/91421
	* c-decl.c (header_for_builtin_fn): Take a FUNCTION_DECL instead
	of a built_in_function.
	(diagnose_mismatched_decls, implicitly_declare): Update accordingly.

2019-08-10  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_clause_name): Parse device_type.
	(c_parser_omp_clause_device_type): New function.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DEVICE_TYPE.
	(OMP_DECLARE_TARGET_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_DEVICE_TYPE.
	(c_parser_omp_declare_target): Handle device_type clauses.  Remove
	diagnostics for declare target with clauses nested in clause-less
	declare target declaration-definition-seq.
	* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_DEVICE_TYPE.

2019-08-09  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (check_no_duplicate_clause): Simplify using
	omp_find_clause.
	(c_parser_omp_clause_if): Fix up printing of target {enter,exit} data
	directive name modifiers.
	(c_parser_omp_clause_proc_bind): Check for duplicate proc_bind clause.

	PR c/91401
	* c-parser.c (c_parser_omp_clause_dist_schedule): Fix up typos in the
	check_no_duplicate_clause call.  Comment it out, instead emit a
	warning for duplicate dist_schedule clauses.

2019-08-08  Richard Sandiford  <richard.sandiford@arm.com>

	* c-decl.c (finish_enum): Clear C_TYPE_BEING_DEFINED.

2019-08-08  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_finish_omp_clauses): For C_ORT_OMP
	OMP_CLAUSE_USE_DEVICE_* clauses use oacc_reduction_head bitmap
	instead of generic_head to track duplicates.

2019-08-07  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_clause_name): Parse use_device_addr clause.
	(c_parser_omp_clause_use_device_addr): New function.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
	(OMP_TARGET_DATA_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
	(c_parser_omp_target_data): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR
	like PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR, adjust diagnostics about no
	map or use_device_* clauses.
	* c-typeck.c (c_finish_omp_clauses): For OMP_CLAUSE_USE_DEVICE_PTR
	in OpenMP, require pointer type rather than pointer or array type.
	Handle OMP_CLAUSE_USE_DEVICE_ADDR.

2019-07-31  Jakub Jelinek  <jakub@redhat.com>

	PR c/91192
	* c-parser.c (c_parser_sizeof_expression): Call set_c_expr_source_range
	even if finish is UNKNOWN_LOCATION, just use start as finish in that
	case.

2019-07-25  Martin Liska  <mliska@suse.cz>
	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>

	PR c++/23383
	* c-decl.c (merge_decls): Merge OPERATOR_DELETE flag.

2019-07-25  Martin Liska  <mliska@suse.cz>

	* c-decl.c (merge_decls): Use new macros
	(e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).

2019-07-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/83518
	* gimple-parser.c (c_parser_parse_gimple_body): When we have
	a CFG also rebuild cgraph edges.

2019-07-20  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_clause_name): Handle bind clause.
	(c_parser_omp_clause_bind): New function.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_BIND.
	(OMP_LOOP_CLAUSE_MASK): Define.
	(c_parser_omp_loop): New function.
	(c_parser_omp_parallel, c_parser_omp_teams): Handle parsing of
	loop combined with parallel or teams.
	(c_parser_omp_construct): Handle PRAGMA_OMP_LOOP.
	* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_BIND.

2019-07-18  Richard Sandiford  <richard.sandiford@arm.com>

	PR c/53633
	* c-decl.c (finish_function): Check targetm.warn_func_return
	before issuing a -Wreturn-type warning.

2019-07-12  Alexandre Oliva  <oliva@adacore.com>

	* gimple-parser.c (c_parser_gimple_try_stmt): New.
	(c_parser_compound_statement): Call it.

2019-07-12  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_clause_name): Handle order clause.
	(c_parser_omp_clause_order): New function.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_ORDER.
	(OMP_SIMD_CLAUSE_MASK, OMP_FOR_CLAUSE_MASK): Add
	PRAGMA_OMP_CLAUSE_ORDER.
	* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_ORDER.

2019-07-10  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_postfix_expression): Support
	_Literal (int *) &x for address literals.

2019-07-09  Martin Sebor  <msebor@redhat.com>

	PR c++/61339
	* c-decl.c (xref_tag): Change class-key of PODs to struct and others
	to class.
	(field_decl_cmp): Same.
	* c-parser.c (c_parser_struct_or_union_specifier): Same.
	* c-tree.h: Same.
	* gimple-parser.c (c_parser_gimple_compound_statement): Same.

2019-07-09  Martin Sebor  <msebor@redhat.com>

	PR c++/61339
	* c-decl.c: Change class-key from class to struct and vice versa
	to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
	* gimple-parser.c: Same.

2019-07-01  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
	_Literal (char *) &"foo" for address literals pointing to
	STRING_CSTs.

2019-06-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* c-parser.c (c_parse_init): Create keyword for "__intN__" type.
	* c-decl.c (declspecs_add_type): Don't pedwarn about "__intN" ISO
	C incompatibility if alternate "__intN__" form is used.

2019-06-24  Martin Sebor  <msebor@redhat.com>

	* c-typeck.c (build_binary_op): Hyphenate floating-point.

2019-06-10  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_pragma): Reject PRAGMA_OMP_SCAN.
	(c_parser_omp_clause_reduction): Don't sorry_at on inscan reductions.
	(c_parser_omp_scan_loop_body): New function.
	(c_parser_omp_for_loop): Call c_parser_omp_scan_loop_body if there are
	inscan reduction clauses.
	* c-typeck.c (c_finish_omp_clauses): Reject mixing inscan with
	non-inscan reductions on the same construct, or inscan reductions with
	ordered or schedule clauses, or inscan array reductions.

2019-06-05  Martin Sebor  <msebor@redhat.com>

	PR c/90737
	* c-typeck.c (c_finish_return): Only consider functions returning
	pointers as candidates for -Wreturn-local-addr.

2019-06-05  Martin Sebor  <msebor@redhat.com>

	* c-decl.c (start_decl): Adjust quoting and hyphenation
	in diagnostics.
	(finish_decl): Same.
	(finish_enum): Same.
	(start_function): Same.
	(declspecs_add_type): Same.
	* c-parser.c (warn_for_abs): Same.
	* c-typeck.c (build_binary_op): Same.

2019-05-17  Thomas Schwinge  <thomas@codesourcery.com>

	PR c/89433
	* c-parser.c (c_finish_oacc_routine): Rework checking if already
	marked with an OpenACC 'routine' directive.

	PR c/89433
	* c-parser.c (c_parser_oacc_routine): Normalize order of clauses.
	(c_finish_oacc_routine): Call oacc_verify_routine_clauses.

	PR c/89433
	* c-parser.c (c_finish_oacc_routine): Refer to OpenACC 'routine'
	clauses from "omp declare target" attribute.

2019-05-16  Martin Sebor  <msebor@redhat.com>

	* c-decl.c (start_decl): Quote keywords, operators, and
	types in diagnostics.
	(finish_decl): Same.
	* c-parser.c (c_parser_asm_statement): Same.
	(c_parser_conditional_expression): Same.
	(c_parser_transaction_cancel): Same.
	* c-typeck.c (c_common_type): Same.
	(build_conditional_expr): Same.
	(digest_init): Same.
	(process_init_element): Same.
	(build_binary_op): Same.

2019-05-17  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_statement): Handle __VEC_PERM.
	(c_parser_gimple_unary_expression): Likewise.
	(c_parser_gimple_parentized_ternary_expression): New function.

2019-05-16  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_statement): Handle __BIT_INSERT.
	(c_parser_gimple_unary_expression): Likewise.

2019-05-15  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
	__BIT_FIELD_REF.

2019-05-14  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_statement): Remove
	questionable auto-promotion to VIEW_CONVERT_EXPR.
	(c_parser_gimple_typespec): Split out from __MEM parsing.
	(c_parser_gimple_postfix_expression): Handle __VIEW_CONVERT.
	* tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
	as __VIEW_CONVERT with -gimple.

2019-05-09  Martin Liska  <mliska@suse.cz>

	* gimple-parser.c (c_parser_gimple_statement): Support __MIN and
	__MAX.
	(c_parser_gimple_unary_expression): Parse also binary expression
	__MIN and __MAX.
	(c_parser_gimple_parentized_binary_expression): New function.

2019-05-09  Martin Liska  <mliska@suse.cz>

	* gimple-parser.c (struct gimple_parser): Add probability.
	for gimple_parser_edge.
	(gimple_parser::push_edge): Add new argument probability.
	(c_parser_gimple_parse_bb_spec): Parse also probability
	if present.
	(c_parser_parse_gimple_body): Set edge probability.
	(c_parser_gimple_compound_statement): Consume token
	before calling c_parser_gimple_goto_stmt.
	Parse BB counts.
	(c_parser_gimple_statement): Pass new argument.
	(c_parser_gimple_goto_stmt): Likewise.
	(c_parser_gimple_if_stmt): Likewise.
	(c_parser_gimple_or_rtl_pass_list): Parse hot_bb_threshold.
	* c-parser.c (c_parser_declaration_or_fndef): Pass
	hot_bb_threshold argument.
	* c-tree.h (struct c_declspecs): Add hot_bb_threshold
	field.
	(c_parser_gimple_parse_bb_spec_edge_probability): New.

2019-04-26  Jakub Jelinek  <jakub@redhat.com>

	PR debug/90197
	* c-tree.h (c_finish_loop): Add 2 further location_t arguments.
	* c-parser.c (c_parser_while_statement): Adjust c_finish_loop caller.
	(c_parser_do_statement): Likewise.
	(c_parser_for_statement): Likewise.  Formatting fixes.
	* c-typeck.c (c_finish_loop): Add COND_LOCUS and INCR_LOCUS arguments,
	emit DEBUG_BEGIN_STMTs if needed.

2019-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/89888
	* c-typeck.c (struct c_switch): Remove outside_range_p member.
	(c_start_case): Don't clear it.
	(do_case): Adjust c_add_case_label caller.
	(c_finish_case): Adjust c_do_switch_warnings caller.

	PR c++/90108
	* c-decl.c (merge_decls): If remove is main variant and
	DECL_ORIGINAL_TYPE is some other type, remove a DECL_ORIGINAL_TYPE
	variant that has newdecl as TYPE_NAME if any.

2019-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/89933
	* c-decl.c (merge_decls): When newdecl's type is its main variant,
	don't try to remove it from the variant list, but instead assert
	it has no variants.

2019-04-01  Richard Biener  <rguenther@suse.de>

	PR c/71598
	* c-tree.h (c_get_alias_set): Declare.
	* c-objc-common.h (LANG_HOOKS_GET_ALIAS_SET): Use c_get_alias_set.
	* c-objc-common.c (c_get_alias_set): Treat enumeral types
	as the underlying integer type.

2019-03-19  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/89688
	* c-decl.c (finish_decl): Call braced_lists_to_string for more
	kinds of initializers.

2019-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/89734
	* c-decl.c (grokdeclarator): Call c_build_qualified_type on function
	return type even if quals_used is 0.  Formatting fixes.

2019-03-14  Richard Biener  <rguenther@suse.de>

	* c-tree.h (enum c_declspec_il): New.
	(struct c_declspecs): Merge gimple_p and rtl_p into declspec_il
	enum bitfield.
	* c-parser.c (c_parser_declaration_or_fndef): Adjust accordingly.
	Pass start pass and declspec_il to c_parser_parse_gimple_body.
	(c_parser_declspecs): Adjust.
	* gimple-parser.c: Include cfg.h, cfghooks.h, cfganal.h, tree-cfg.h,
	gimple-iterator.h, cfgloop.h, tree-phinodes.h, tree-into-ssa.h
	and bitmap.h.
	(struct gimple_parser): New.
	(gimple_parser::push_edge): New method.
	(c_parser_gimple_parse_bb_spec): New helper.
	(c_parser_parse_gimple_body): Get start pass and IL specification.
	Initialize SSA and CFG.
	(c_parser_gimple_compound_statement): Handle CFG and SSA build.
	Build a gimple_parser parsing state and pass it along.
	(c_parser_gimple_statement): Change intermittend __PHI internal
	function argument for the edge.
	(c_parser_gimple_or_rtl_pass_list): Handle ssa, cfg flags.
	(c_parser_gimple_goto_stmt): Record edges to build.
	(c_parser_gimple_if_stmt): Likewise.
	* gimple-parser.h (c_parser_parse_gimple_body): Adjust.
	(c_parser_gimple_or_rtl_pass_list): Likewise.

2019-03-11  Martin Liska  <mliska@suse.cz>

	* c-decl.c (check_for_loop_decls): Wrap an option name
	in a string format message and fix GNU coding style.
	* c-parser.c (c_parser_declspecs): Likewise.

2019-03-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/89550
	* c-decl.c (finish_function): Only set TREE_NO_WARNING if warning_at
	returned true.
	(c_write_global_declarations_1): Only set TREE_NO_WARNING if pedwarn
	or warning returned true.

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

	PR c/89525
	* c-typeck.c (convert_arguments): Call inform_declaration only if
	the previous warning_at call returned true.

2019-02-22  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_oacc_shape_clause): Add loc formal
	parameter.  Adjust all users.
	(c_parser_oacc_simple_clause): Replace parser with loc formal
	parameter.  Adjust all users.

2019-02-19  Chung-Lin Tang  <cltang@codesourcery.com>

	PR c/87924
	* c-parser.c (c_parser_oacc_clause_wait): Add representation of wait
	clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.

2019-02-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/89340
	* c-decl.c (start_function): Clear TREE_PUBLIC on nested functions
	before c_decl_attributes rather than after it.

2019-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/89211
	* c-parser.c (c_parser_declaration_or_fndef): Don't update
	DECL_ARGUMENTS of d if it has been defined already.  Use a single if
	instead of 3 nested ifs.

2019-02-06  Joseph Myers  <joseph@codesourcery.com>

	PR c/88584
	* c-decl.c (finish_decl): Do not complete array types for arrays
	with external linkage not at file scope.

2019-02-05  Richard Biener  <rguenther@suse.de>

	PR c/88606
	* c-decl.c (finish_struct): Reset TYPE_TRANSPARENT_AGGR on
	all type variants when not supported.

2019-01-30  Jakub Jelinek  <jakub@redhat.com>

	PR c/89061
	* c-tree.h (C_DECL_COMPOUND_LITERAL_P): Define.
	* c-decl.c (decl_jump_unsafe): Return false for
	C_DECL_COMPOUND_LITERAL_P decls.
	(build_compound_literal): Set C_DECL_COMPOUND_LITERAL_P.

2019-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR c/89045
	* c-decl.c (build_compound_literal): Don't pushdecl if in parameter
	scope.

	PR c/86125
	* c-decl.c (last_fileptr_type): Remove.
	(last_structptr_types): New variable.
	(match_builtin_function_types): Compare TYPE_MAIN_VARIANT of
	{old,new}rettype instead of the types themselves.  Assert
	last_structptr_types array has the same number of elements
	as builtin_structptr_types array.  Use TYPE_MAIN_VARIANT for
	argument oldtype and newtype.  Instead of handling
	just fileptr_type_node specially, handle all builtin_structptr_types
	pointer nodes.  Formatting fix.

2019-01-24  Martin Sebor  <msebor@redhat.com>

	PR c/86125
	PR c/88886
	PR middle-end/86308
	* c-decl.c (match_builtin_function_types): Add arguments.
	(diagnose_mismatched_decls): Diagnose mismatched declarations
	of built-ins more strictly.

2019-01-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/88976
	* c-typeck.c (c_finish_omp_cancel): Diagnose more than one if
	on #pragma omp cancel with different modifiers.

2019-01-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/51628
	PR c/88664
	* c-typeck.c (convert_for_assignment): Upate the
	warn_for_address_or_pointer_of_packed_member call.

2019-01-16  Tom Honermann  <tom@honermann.net>
	    Jason Merrill  <jason@redhat.com>

	* c-typeck.c (digest_init): Revised the error message produced for
	ill-formed cases of array initialization with a string literal.
	(error_init): Make variadic.

2019-01-12  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (convert_for_assignment): Fix a comment typo.

2019-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR c/88701
	* c-decl.c (build_compound_literal): If not TREE_STATIC, only pushdecl
	if current_function_decl is non-NULL.

2019-01-07  Joseph Myers  <joseph@codesourcery.com>

	PR c/88720
	PR c/88726
	* c-decl.c (pop_scope): Use TREE_PUBLIC and b->nested to determine
	whether a function is nested, not DECL_EXTERNAL.  Diagnose inline
	functions declared but never defined only for external scope, not
	for other scopes.

2019-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85052
	* c-parser.c (c_parser_postfix_expression): Parse
	__builtin_convertvector.

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

	Update copyright years.

2018-12-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/51628
	* c-typeck.c (convert_for_assignment): Call
	warn_for_address_or_pointer_of_packed_member.

2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>

	* c-parser.c (c_parser_asm_statement) <RID_CONST, RID_RESTRICT>: Give
	a more specific error message (instead of just falling through).

2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>

	* c-parser.c (c_parser_asm_statement): Keep track of the location each
	asm qualifier is first seen; use that to give nicer "duplicate asm
	qualifier" messages.  Delete 'quals" variable, instead pass the
	"is_volatile_ flag to build_asm_stmt directly.
	* c-tree.h (build_asm_stmt): Make the first arg bool instead of tree.
	* c-typeck.c (build_asm_stmt): Ditto; adjust.

2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>

	* c-parser.c (c_parser_asm_statement): Rewrite the loop to work without
	"done" boolean variable.

2018-12-19  David Malcolm  <dmalcolm@redhat.com>

	PR c++/87504
	* c-typeck.c (class maybe_range_label_for_tree_type_mismatch):
	Move from here to gcc-rich-location.h and gcc-rich-location.c.
	(build_binary_op): Use struct op_location_t and
	class binary_op_rich_location.

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

	PR sanitizer/88426
	* c-convert.c (convert): Call c_fully_fold before calling
	ubsan_instrument_float_cast.

2018-12-08  Segher Boessenkool  <segher@kernel.crashing.org>

	* c-parser (c_parser_asm_statement) [RID_INLINE]: Delete stray line
	setting "quals".

2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>

	* c-parser.c (c_parser_asm_statement): Detect the inline keyword
	after asm.  Pass a flag for it to build_asm_expr.
	* c-tree.h (build_asm_expr): Update declaration.
	* c-typeck.c (build_asm_stmt): Add is_inline parameter.  Use it to
	set ASM_INLINE_P.

2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>

	PR inline-asm/55681
	* c-parser.c (c_parser_asm_statement): Update grammar.  Allow any
	combination of volatile and goto, in any order, without repetitions.

2018-12-04  James Norris  <jnorris@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* c-parser.c (c_parser_oacc_wait_list): Remove dead diagnostic
	code.

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

	* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
	_Literal (type) { ... } as empty aggregate or vector constructor.

2018-11-29  Martin Sebor  <msebor@redhat.com>

	PR c/88091
	* c-typeck.c (convert_argument): Add a parameter.  Adjust indentation.
	(convert_arguments): Add comments.  Pass additional argument to
	the function above.

2018-11-29  Martin Sebor  <msebor@redhat.com>

	PR c/88172
	PR testsuite/88208
	* c-decl.c (declspec_add_alignas): Adjust call to check_user_alignment.

2018-11-23  Martin Sebor  <msebor@redhat.com>

	PR testsuite/88098
	* c-typeck.c (convert_arguments): Call builtin_decl_explicit instead.
	(maybe_warn_builtin_no_proto_arg): Handle short enum to int promotion.

2018-11-20  Martin Sebor  <msebor@redhat.com>

	* c-parser.c (c_parser_has_attribute_expression): New function.
	(c_parser_attribute): New function.
	(c_parser_attributes): Move code into c_parser_attribute.
	(c_parser_unary_expression): Handle RID_HAS_ATTRIBUTE_EXPRESSION.

2018-11-15  Martin Sebor  <msebor@redhat.com>

	PR c/83656
	* c-decl.c (header_for_builtin_fn): Declare.
	(diagnose_mismatched_decls): Diagnose declarations of built-in
	functions without a prototype.
	* c-typeck.c (maybe_warn_builtin_no_proto_arg): New function.
	(convert_argument): Same.
	(convert_arguments): Factor code out into convert_argument.
	Detect mismatches between built-in formal arguments in calls
	to built-in without prototype.
	(build_conditional_expr): Same.
	(type_or_builtin_type): New function.
	(convert_for_assignment): Add argument.  Conditionally issue
	warnings instead of errors for mismatches.

2018-11-13  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c: Replace "source_location" with "location_t".
	* c-tree.h: Likewise.
	* c-typeck.c: Likewise.
	* gimple-parser.c: Likewise.

2018-11-09  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_clause_final): Use
	c_parser_expr_no_commas, convert_lvalue_to_rvalue,
	c_objc_common_truthvalue_conversion, c_fully_fold and parentheses
	parsing instead of c_parser_paren_condition.
	(c_parser_omp_clause_if): Use c_parser_expr_no_commas,
	convert_lvalue_to_rvalue, c_objc_common_truthvalue_conversion and
	c_fully_fold instead of c_parser_condition.
	(c_parser_omp_clause_num_threads, c_parser_omp_clause_num_tasks,
	c_parser_omp_clause_grainsize, c_parser_omp_clause_priority,
	c_parser_omp_clause_hint, c_parser_omp_clause_num_teams,
	c_parser_omp_clause_thread_limit, c_parser_omp_clause_linear): Use
	c_parser_expr_no_commas instead of c_parser_expression.

	* c-parser.c (c_parser_omp_clause_reduction): Call sorry_at on
	reduction clause with inscan modifier.

	* c-parser.c (c_parser_omp_requires): Call sorry_at on requires
	clauses other than atomic_default_mem_order.

2018-11-08  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c: Include memmode.h.
	(c_parser_omp_depobj, c_parser_omp_requires): New functions.
	(c_parser_pragma): Handle PRAGMA_OMP_DEPOBJ and PRAGMA_OMP_REQUIRES.
	(c_parser_omp_clause_name): Handle nontemporal, in_reduction and
	task_reduction clauses.
	(c_parser_omp_variable_list): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION.
	For OMP_CLAUSE_DEPEND, parse clause operands as either an array
	section, or lvalue assignment expression.
	(c_parser_omp_clause_if): Handle cancel and simd modifiers.
	(c_parser_omp_clause_lastprivate): Parse optional
	conditional: modifier.
	(c_parser_omp_clause_hint): Require constant integer expression rather
	than just integer expression.
	(c_parser_omp_clause_defaultmap): Parse new kinds of defaultmap
	clause.
	(c_parser_omp_clause_reduction): Add IS_OMP and KIND arguments.
	Parse reduction modifiers.  Pass KIND to c_parser_omp_variable_list.
	(c_parser_omp_clause_nontemporal, c_parser_omp_iterators): New
	functions.
	(c_parser_omp_clause_depend): Parse iterator modifier and handle
	iterators.  Parse mutexinoutset and depobj kinds.
	(c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_reduction
	callers.
	(c_parser_omp_all_clauses): Likewise.  Handle
	PRAGMA_OMP_CLAUSE_NONTEMPORAL and
	PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION.
	(c_parser_omp_atomic): Parse hint and memory order clauses.  Handle
	default memory order from requires directive if any.  Adjust
	c_finish_omp_atomic caller.
	(c_parser_omp_critical): Allow comma in between (name) and hint clause.
	(c_parser_omp_flush): Parse flush with memory-order-clause.
	(c_parser_omp_for_loop): Allow NE_EXPR even in
	OpenMP loops, adjust c_finish_omp_for caller.
	(OMP_SIMD_CLAUSE_MASK): Add if and nontemporal clauses.
	(c_parser_omp_master): Add p_name, mask and cclauses arguments.
	Allow to be called while parsing combined parallel master.
	Parse combined master taskloop{, simd}.
	(c_parser_omp_parallel): Parse combined
	parallel master{, taskloop{, simd}} constructs.
	(OMP_TASK_CLAUSE_MASK): Add in_reduction clause.
	(OMP_TASKGROUP_CLAUSE_MASK): Define.
	(c_parser_omp_taskgroup): Add LOC argument.  Parse taskgroup clauses.
	(OMP_TASKWAIT_CLAUSE_MASK): Define.
	(c_parser_omp_taskwait): Handle taskwait with depend clauses.
	(c_parser_omp_teams): Force a BIND_EXPR with BLOCK
	around teams body.  Use SET_EXPR_LOCATION.
	(c_parser_omp_target_data): Allow target data
	with only use_device_ptr clauses.
	(c_parser_omp_target): Use SET_EXPR_LOCATION.  Set
	OMP_REQUIRES_TARGET_USED bit in omp_requires_mask.
	(c_parser_omp_requires): New function.
	(c_finish_taskloop_clauses): New function.
	(OMP_TASKLOOP_CLAUSE_MASK): Add reduction and in_reduction clauses.
	(c_parser_omp_taskloop): Use c_finish_taskloop_clauses.  Add forward
	declaration.  Disallow in_reduction clause when combined with parallel
	master.
	(c_parser_omp_construct): Adjust c_parser_omp_master and
	c_parser_omp_taskgroup callers.
	* c-typeck.c (c_finish_omp_cancel): Diagnose if clause with modifier
	other than cancel.
	(handle_omp_array_sections_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION
	like OMP_CLAUSE_REDUCTION.
	(handle_omp_array_sections): Likewise.  Call save_expr on array
	reductions before calling build_index_type.  Handle depend clauses
	with iterators.
	(struct c_find_omp_var_s): New type.
	(c_find_omp_var_r, c_omp_finish_iterators): New functions.
	(c_finish_omp_clauses): Don't diagnose nonmonotonic clause
	with static, runtime or auto schedule kinds.  Call save_expr for whole
	array reduction sizes.  Diagnose reductions with zero sized elements
	or variable length structures.  Diagnose nogroup clause used with
	reduction clause(s).  Handle depend clause with
	OMP_CLAUSE_DEPEND_DEPOBJ.  Diagnose bit-fields.  Require
	omp_depend_t type for OMP_CLAUSE_DEPEND_DEPOBJ kinds and
	some different type for other kinds.  Use build_unary_op with
	ADDR_EXPR and build_indirect_ref instead of c_mark_addressable.
	Handle depend clauses with iterators.  Remove no longer needed special
	case that predetermined const qualified vars may be specified in
	firstprivate clause.  Complain if const qualified vars are mentioned
	in data-sharing clauses other than firstprivate or shared.  Use
	error_at with OMP_CLAUSE_LOCATION (c) as first argument instead of
	error.  Formatting fix.  Handle OMP_CLAUSE_NONTEMPORAL and
	OMP_CLAUSE_{IN,TASK}_REDUCTION.  Allow any lvalue as
	OMP_CLAUSE_DEPEND operand (besides array section), adjust diagnostics.

2018-10-29  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (implicit_decl_warning): Update "is there a suggestion"
	logic for change to name_hint::operator bool.
	(undeclared_variable): Likewise.
	* c-parser.c (c_parser_declaration_or_fndef): Likewise.
	(c_parser_parameter_declaration): Likewise.

2018-10-17  Joseph Myers  <joseph@codesourcery.com>

	* c-errors.c (pedwarn_c11): New function.
	* c-parser.c (disable_extension_diagnostics): Save
	warn_c11_c2x_compat and set it to 0.
	(restore_extension_diagnostics): Restore warn_c11_c2x_compat.
	(c_parser_static_assert_declaration_no_semi): Handle
	_Static_assert without string constant.
	* c-tree.h (pedwarn_c11): New prototype.

2018-10-17  David Malcolm  <dmalcolm@redhat.com>

	* Make-lang.in (selftest-c): New.
	(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
	(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move here
	from gcc/Makefile.in.

2018-10-02  Richard Biener  <rguenther@suse.de>

	* c-decl.c (warn_if_shadowing): Do not test DECL_FROM_INLINE.

2018-09-26  Joseph Myers  <joseph@codesourcery.com>

	PR c/87390
	* c-typeck.c (build_binary_op): Use excess precision for
	comparisons of integers and floating-point for C11 and later.

2018-09-26  Martin Jambor  <mjambor@suse.cz>

	PR c/87347
	* c-parser.c (warn_for_abs): Bail out if TYPE_ARG_TYPES is NULL.  Fix
	comment.

2018-09-17  David Malcolm  <dmalcolm@redhat.com>

	* c-objc-common.c (range_label_for_type_mismatch::get_text):
	Update for new param.
	* c-typeck.c (maybe_range_label_for_tree_type_mismatch::get_text):
	Likewise.

2018-09-17  Martin Jambor  <mjambor@suse.cz>

	PR c/63886
	* c-parser.c: (warn_for_abs): New function.
	(c_parser_postfix_expression_after_primary): Call it.

2018-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-typeck.c (digest_init): Shorten overlength strings.

2018-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-decl.c (finish_decl): Call complete_flexible_array_elts.

2018-09-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-decl.c (finish_decl): Call braced_list_to_string here ...
	* c-parser.c (c_parser_declaration_or_fndef): ... instead of here.

2018-08-30  Alexander Monakov  <amonakov@ispras.ru>

	* gimple-parser.c (c_parser_gimple_binary_expression): Accept infix
	"__MULT_HIGHPART" for MULT_HIGHPART_EXPR.

2018-08-27  David Malcolm  <dmalcolm@redhat.com>

	PR 87091
	* c-decl.c (implicitly_declare): Update call to
	maybe_add_include_fixit to suggest overriding the location, as it
	is for a note.
	* c-objc-common.c (c_tree_printer): Update for conversion of
	show_caret_p to a tri-state.

2018-08-27  Martin Liska  <mliska@suse.cz>

	* c-decl.c (locate_old_decl): Use new function
	fndecl_built_in_p and remove check for FUNCTION_DECL if
	possible.
	(diagnose_mismatched_decls): Likewise.
	(merge_decls): Likewise.
	(warn_if_shadowing): Likewise.
	(pushdecl): Likewise.
	(implicitly_declare): Likewise.
	* c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
	* c-tree.h (C_DECL_ISNT_PROTOTYPE): Likewise.
	* c-typeck.c (build_function_call_vec): Likewise.
	(convert_arguments): Likewise.

2018-08-20  David Malcolm  <dmalcolm@redhat.com>

	PR other/84889
	* c-decl.c (pushtag): Add auto_diagnostic_group instance.
	(diagnose_mismatched_decls): Likewise, in various places.
	(warn_if_shadowing): Likewise.
	(implicit_decl_warning): Likewise.
	(implicitly_declare): Likewise.
	(undeclared_variable): Likewise.
	(declare_label): Likewise.
	(grokdeclarator): Likewise.
	(start_function): Likewise.
	* c-parser.c (c_parser_declaration_or_fndef): Likewise.
	(c_parser_parameter_declaration): Likewise.
	(c_parser_binary_expression): Likewise.
	* c-typeck.c (c_expr_sizeof_expr): Likewise.
	(parser_build_binary_op): Likewise.
	(build_unary_op): Likewise.
	(error_init): Likewise.
	(pedwarn_init): Likewise.
	(warning_init): Likewise.
	(convert_for_assignment): Likewise.

2018-08-15  David Malcolm  <dmalcolm@redhat.com>

	* c-objc-common.c: Include "gcc-rich-location.h".
	(c_tree_printer): Move implemenation of '%T' to...
	(print_type): ...this new function.
	(range_label_for_type_mismatch::get_text): New function.
	* c-typeck.c (convert_for_assignment): Add type labels to the rhs
	range for the various ic_argpass cases.
	(class maybe_range_label_for_tree_type_mismatch): New class.
	(build_binary_op): Use it when calling binary_op_error.

2018-08-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* c-decl.c (start_decl): Do not warn if variables is named as main
	and is a local variable.

2018-08-15  Iain Sandoe  <iain@sandoe.co.uk>

	PR c/19315
	* c-decl.c (finish_decl): Don't add the 'extern' storage class to
	objects of unknown size.

2018-08-13  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/71625
	* c-parser.c (c_parser_declaration_or_fndef): Call
	braced_list_to_string.

2018-08-03  Bogdan Harjoc  <harjoc@gmail.com>

	PR c/86690
	* c-typeck.c (lookup_field): Do not use TYPE_LANG_SPECIFIC after
	errors.

2018-08-01  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/86650
	* c-objc-common.c (c_tree_printer): Move usage of EXPR_LOCATION (t)
	and TREE_BLOCK (t) from within percent_K_format	to this callsite.

2018-08-01  Jakub Jelinek  <jakub@redhat.com>

	PR c/85704
	* c-typeck.c (init_field_decl_cmp): New function.
	(output_pending_init_elements): Use it for field comparisons
	instead of pure bit_position comparisons.

2018-07-12  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.c (c_decl_attributes): Don't diagnose vars without mappable
	type here, instead add "omp declare target implicit" attribute.
	(finish_decl): Diagnose vars without mappable type here.

2018-06-20  Chung-Lin Tang  <cltang@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_name): Add support for finalize
	and if_present. Make present_or_{copy,copyin,copyout,create} aliases
	to their non-present_or_* counterparts. Make 'self' an alias to
	PRAGMA_OACC_CLAUSE_HOST.
	(c_parser_oacc_data_clause): Update GOMP mappings for
	PRAGMA_OACC_CLAUSE_{COPY,COPYIN,COPYOUT,CREATE,DELETE}. Remove
	PRAGMA_OACC_CLAUSE_{SELF,PRESENT_OR_*}.
	(c_parser_oacc_all_clauses): Handle finalize and if_present clauses.
	Remove support for present_or_* clauses.
	(OACC_KERNELS_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
	(OACC_PARALLEL_CLAUSE_MASK): Likewise.
	(OACC_DECLARE_CLAUSE_MASK): Likewise.
	(OACC_DATA_CLAUSE_MASK): Likewise.
	(OACC_ENTER_DATA_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
	(OACC_EXIT_DATA_CLAUSE_MASK): Add FINALIZE clause.
	(OACC_UPDATE_CLAUSE_MASK): Remove SELF, add IF_PRESENT.
	(c_parser_oacc_declare): Remove PRESENT_OR_* clauses.
	* c-typeck.c (c_finish_omp_clauses): Handle IF_PRESENT and FINALIZE.

2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* c-typeck.c (build_unary_op): Handle ABSU_EXPR;
	* gimple-parser.c (c_parser_gimple_statement): Likewise.
	(c_parser_gimple_unary_expression): Likewise.

2018-06-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/86093
	* c-typeck.c (pointer_diff): Cast both pointers to unqualified types
	before doing POINTER_DIFF_EXPR.

2018-06-07  Marek Polacek  <polacek@redhat.com>

	PR c/85318
	* c-decl.c (check_for_loop_decls): Add -Wc90-c99-compat warning about
	for loop initial declarations.

2018-05-30  David Pagan  <dave.pagan@oracle.com>

	PR c/55976
	* c-decl.c (grokdeclarator): Update check for return type warnings.
	(start_function): Likewise.
	(finish_function): Likewise.
	* c-typeck.c (c_finish_return): Update check for return type warnings.
	Pass OPT_Wreturn_type to pedwarn when appropriate.

2018-05-18  Richard Sandiford  <richard.sandiford@linaro.org>

	* gimple-parser.c (c_parser_gimple_postfix_expression): Remove
	__FMA_EXPR handlng.

2018-05-17  Richard Sandiford  <richard.sandiford@linaro.org>

	* gimple-parser.c: Include internal-fn.h.
	(c_parser_gimple_statement): Treat a leading CPP_DOT as a call.
	(c_parser_gimple_call_internal): New function.
	(c_parser_gimple_postfix_expression): Use it to handle CPP_DOT.
	Fix typos in comment.

2018-05-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85662
	* c-fold.c (c_fully_fold_internal): Use fold_offsetof rather than
	fold_offsetof_1, pass TREE_TYPE (expr) as TYPE to it and drop the
	fold_convert_loc.
	* c-typeck.c (build_unary_op): Use fold_offsetof rather than
	fold_offsetof_1, pass argtype as TYPE to it and drop the
	fold_convert_loc.

2018-05-02  David Pagan  <dave.pagan@oracle.com>

	PR c/30552
	* c-decl.c (old_style_parameter_scope): New function.
	* c-parser.c (c_parser_postfix_expression): Check for statement
	expressions in old-style function parameter list declarations.
	* c-parser.h (old_style_parameter_scope): New extern declaration.

2018-04-25  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/84307
	* c-decl.c (build_compound_literal): Call pushdecl (decl) even when
	it is not TREE_STATIC.
	* c-typeck.c (c_mark_addressable) <case COMPOUND_LITERAL_EXPR>: Mark
	not just the COMPOUND_LITERAL_EXPR node itself addressable, but also
	its COMPOUND_LITERAL_EXPR_DECL.

2018-03-21  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser_postfix_expression): For __builtin_tgmath
	where all functions return the same _FloatN or _FloatNx type,
	treat integer types as _Float64 instead of double.

2018-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR c/84999
	* c-typeck.c (build_binary_op): If c_common_type_for_size fails when
	building vector comparison, diagnose it and return error_mark_node.

2018-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/84853
	* c-typeck.c (build_binary_op) <case RSHIFT_EXPR, case LSHIFT_EXPR>:
	If code1 is INTEGER_TYPE, only allow code0 VECTOR_TYPE if it has
	INTEGER_TYPE element type.

2018-03-13  David Pagan  <dave.pagan@oracle.com>

	PR c/46921
	* c-typeck.c (output_init_element): Ensure field initializer
	expression is always evaluated if there are side effects.

2018-03-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/84721
	* c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if
	!building_stmt_list_p ().

2018-02-13  Richard Sandiford  <richard.sandiford@linaro.org>

	PR c/84305
	* c-decl.c (grokdeclarator): Create an anonymous TYPE_DECL
	in PARM and TYPENAME contexts too, but attach it to a BIND_EXPR
	and include the BIND_EXPR in the list of things that need to be
	pre-evaluated.

2018-02-09  Nathan Sidwell  <nathan@acm.org>

	PR c/84293
	* c-typeck.c (build_indirect_ref, build_c_cast): Pass expr location
	to strict_aliasing_warning.

2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* c-typeck.c (really_start_incremental_init, push_init_level,
	set_nonincremental_init, output_init_element, process_init_element):
	Use DECL_UNNAMED_BIT_FIELD.

2018-01-31  Marek Polacek  <polacek@redhat.com>

	PR c/81779
	* c-parser.c (c_parser_compound_statement_nostart): Call
	expansion_point_location_if_in_system_header.

2018-01-17  David Malcolm  <dmalcolm@redhat.com>

	PR c++/83814
	* c-fold.c (fold_for_warn): Move from c-common.c, reducing to just
	the C part.

2018-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR c/83801
	* c-tree.h (decl_constant_value_1): Add a bool argument.
	* c-typeck.c (decl_constant_value_1): Add IN_INIT argument, allow
	returning a CONSTRUCTOR if it is true.  Use error_operand_p.
	(decl_constant_value): Adjust caller.
	* c-fold.c (c_fully_fold_internal): If in_init, pass true to
	decl_constant_value_1 as IN_INIT.  Otherwise, punt if
	decl_constant_value returns initializer that has BLKmode or
	array type.
	(c_fully_fold_internal) <case COMPONENT_REF>: Fold if !lval.

2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-typeck.c (comptypes_internal, build_binary_op): Handle polynomial
	TYPE_VECTOR_SUBPARTS.

2018-01-03  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

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

	PR c/83595
	* c-parser.c (c_parser_braced_init, c_parser_initelt,
	c_parser_conditional_expression, c_parser_cast_expression,
	c_parser_sizeof_expression, c_parser_alignof_expression,
	c_parser_postfix_expression, c_parser_omp_declare_reduction,
	c_parser_transaction_expression): Use set_error () method instead
	of setting value member to error_mark_node.

2017-12-28  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* c-decl.c (header_for_builtin_fn): Add integer rounding _Float<N>
	and _Float<N>X built-in functions.

2017-12-22  Jakub Jelinek  <jakub@redhat.com>

	PR debug/83550
	* c-decl.c (finish_struct): Set DECL_SOURCE_LOCATION on
	TYPE_STUB_DECL and call rest_of_type_compilation before processing
	incomplete vars rather than after it.

	PR debug/83547
	* c-typeck.c (c_finish_stmt_expr): Ignore !TREE_SIDE_EFFECTS as
	indicator of ({ }), instead skip all trailing DEBUG_BEGIN_STMTs first,
	and consider empty ones if there are no other stmts.  For
	-Wunused-value walk all statements before the one only followed by
	DEBUG_BEGIN_STMTs.

2017-12-22  Mike Stump  <mikestump@comcast.net>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* c-parser.c (c_parser_while_statement): Add unroll parameter and
	build ANNOTATE_EXPR if present.  Add 3rd operand to ANNOTATE_EXPR.
	(c_parser_do_statement): Likewise.
	(c_parser_for_statement): Likewise.
	(c_parser_statement_after_labels): Adjust calls to above.
	(c_parse_pragma_ivdep): New static function.
	(c_parser_pragma_unroll): Likewise.
	(c_parser_pragma) <PRAGMA_IVDEP>: Add support for pragma Unroll.
	<PRAGMA_UNROLL>: New case.

2017-12-19  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (comptypes_internal, function_types_compatible_p,
	perform_integral_promotions, digest_init): Replace Yoda conditions
	with typical order conditions.
	* c-decl.c (check_bitfield_type_and_width): Likewise.

2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-typeck.c (c_safe_arg_type_equiv_p,
	c_safe_function_type_cast_p): New function.
	(build_c_cast): Implement -Wcast-function-type.

2017-12-14  Richard Biener  <rguenther@suse.de>

	PR c/83415
	* c-fold.c (c_fully_fold_internal): Treat VIEW_CONVERT_EXPR
	like REALPART_EXPR for the behavior of whether its operand
	is an lvalue.

2017-12-12  Marek Polacek  <polacek@redhat.com>

	PR c/82679
	* c-decl.c (grokdeclarator): Check declspecs insted of atomicp.

2017-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* c-objc-common.h (LANG_HOOKS_EMITS_BEGIN_STMT): Redefine as true.
	* c-parser.c (add_debug_begin_stmt): New.
	(c_parser_declaration_or_fndef): Call it.
	(c_parser_compound_statement_nostart): Likewise.
	(c_parser_statement_after_labels): Likewise.
	* c-typeck (c_finish_stmt_expr): Skip begin stmts markers.

2017-12-07  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (build_compound_literal): Add parameter alignas_align
	and set alignment of decl if nonzero.
	* c-parser.c (c_keyword_starts_typename): Allow RID_ALIGNAS.
	(c_parser_declspecs): Allow RID_ALIGNAS to follow a type, like a
	qualifier.
	(c_parser_struct_declaration): Update syntax comment.
	(c_parser_type_name): Add alignas_ok argument and pass it to
	c_parser_declspecs.
	(c_parser_cast_expression): Pass true to c_parser_type_name and
	give error if a cast used an _Alignas specifier.
	(c_parser_sizeof_expression): Pass true to c_parser_type_name and
	give error if sizeof (type-name) used an _Alignas specifier.
	(c_parser_alignof_expression): Pass true to c_parser_type_name and
	give error if _Alignof (type-name) used an _Alignas specifier.
	(c_parser_postfix_expression_after_paren_type): Check specified
	alignment for a compound literal and pass it to
	build_compound_literal.
	* c-parser.h (c_parser_type_name): Update prototype.
	* c-tree.h (build_compound_literal): Update prototype.

2017-12-07  Martin Sebor  <msebor@redhat.com>

	PR c/81544
	* c-decl.c (c_decl_attributes): Look up existing declaration and
	pass it to decl_attributes.

2017-12-06  David Malcolm  <dmalcolm@redhat.com>

	PR c/83236
	* c-decl.c (lookup_name_fuzzy): Don't suggest names that are
	reserved for use by the implementation.

2017-12-06  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c: Include "c-family/c-spellcheck.h".

2017-12-05  Martin Liska  <mliska@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (pointer_diff): Add new argument and instrument
	pointer subtraction.
	(build_binary_op): Similar for pointer comparison.

2017-12-01  Jakub Jelinek  <jakub@redhat.com>

	PR c/79153
	* c-parser.c: Include tree-iterator.h.
	(c_parser_switch_statement): Emit LABEL_EXPR for the break label
	into SWITCH_BODY instead of after it and set SWITCH_BREAK_LABEL_P
	on it.

	PR c/83222
	* c-tree.h (decl_constant_value_1): Declare.
	* c-typeck.c (decl_constant_value_1): New function.
	(decl_constant_value): Use it.
	* c-fold.c (c_fully_fold_internal): If in_init, use
	decl_constant_value_1 instead of decl_constant_value.

2017-11-30  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_postfix_expression): Use ; instead of ;;.

2017-11-28  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/81275
	* c-typeck.c (c_finish_case): Set SWITCH_ALL_CASES_P if
	c_switch_covers_all_cases_p returns true.

2017-11-28  Julia Koval  <julia.koval@intel.com>
	    Sebastian Peryt  <sebastian.peryt@intel.com>

	* Make-lang.in (c/c-array-notation.o): Remove.
	* c-array-notation.c: Delete.
	* c-decl.c: Remove cilkplus condition.
	* c-parser.c (c_parser_cilk_simd, c_parser_cilk_for,
	c_parser_cilk_verify_simd, c_parser_array_notation,
	c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize,
	c_parser_cilk_simd_fn_vector_attrs,
	c_finish_cilk_simd_fn_tokens): Delete.
	(c_parser_declaration_or_fndef): Remove cilkplus condition.
	(c_parser_direct_declarator_inner): Ditto.
	(CILK_SIMD_FN_CLAUSE_MASK): Delete.
	(c_parser_attributes, c_parser_compound_statement,
	c_parser_statement_after_labels, c_parser_if_statement,
	c_parser_switch_statement, c_parser_while_statement,
	c_parser_do_statement, c_parser_for_statement,
	c_parser_unary_expression, c_parser_postfix_expression,
	c_parser_postfix_expression_after_primary,
	c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses,
	c_parser_omp_for_loop, c_finish_omp_declare_simd): Remove cilkplus
	support.
	* c-typeck.c (build_array_ref, build_function_call_vec,
	convert_arguments,
	lvalue_p, build_compound_expr, c_finish_return, c_finish_if_stmt,
	c_finish_loop, build_binary_op): Remove cilkplus support.

2017-11-28  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead
	of build3.

2017-11-14  Boris Kolpackov  <boris@codesynthesis.com>

	* Make-lang.in (c.install-plugin): Install backend import library.

2017-11-23  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_declare_simd): Reject declare simd in
	pragma_stmt context.

2017-11-23  Mike Stump  <mikestump@comcast.net>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* c-parser.c (c_parser_while_statement): Pass 3rd operand to
	ANNOTATE_EXPR.
	(c_parser_do_statement): Likewise.
	(c_parser_for_statement): Likewise.

2017-11-22  David Malcolm  <dmalcolm@redhat.com>

	PR c++/62170
	* c-objc-common.c (c_tree_printer): Convert penultimate param from
	bool to bool *.  Within '%T' handling, if showing an "aka", use
	"quoted" param to add appropriate quoting.

2017-11-22  Marek Polacek  <polacek@redhat.com>

	PR c++/60336
	PR middle-end/67239
	PR target/68355
	* c-decl.c (grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.

2017-11-21  David Malcolm  <dmalcolm@redhat.com>

	PR c/83056
	* c-decl.c (lookup_name_fuzzy): Don't suggest names that came from
	earlier failed lookups.

2017-11-21  Marc Glisse  <marc.glisse@inria.fr>

	* c-fold.c (c_fully_fold_internal): Handle POINTER_DIFF_EXPR.
	* c-typeck.c (pointer_diff): Use POINTER_DIFF_EXPR.

2017-11-20  David Malcolm  <dmalcolm@redhat.com>

	PR c/81404
	* c-decl.c: Include "c-family/known-headers.h".
	(get_c_name_hint): Rename to get_stdlib_header_for_name and move
	to known-headers.cc.
	(class suggest_missing_header): Move to known-header.h.
	(lookup_name_fuzzy): Call get_c_stdlib_header_for_name rather
	than get_c_name_hint.

2017-11-20  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (get_c_name_hint): New function.
	(class suggest_missing_header): New class.
	(lookup_name_fuzzy): Call get_c_name_hint and use it to
	suggest missing headers to the user.

2017-11-20  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c: Define INCLUDE_UNIQUE_PTR before including system.h.
	Include "c-family/name-hint.h"
	(implicit_decl_warning): Convert "hint" from
	const char * to name_hint.  Pass location to
	lookup_name_fuzzy.  Suppress any deferred diagnostic if the
	warning was not printed.
	(undeclared_variable): Likewise for "guessed_id".
	(lookup_name_fuzzy): Convert return type from const char *
	to name_hint.  Add location_t param.
	* c-parser.c: Define INCLUDE_UNIQUE_PTR before including system.h.
	Include "c-family/name-hint.h"
	(c_parser_declaration_or_fndef): Convert "hint" from
	const char * to name_hint.  Pass location to lookup_name_fuzzy.
	(c_parser_parameter_declaration): Likewise.

2017-11-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/66618
	PR c/69960
	* c-parser.c (c_parser_omp_atomic): Pass true as LVAL to c_fully_fold
	where needed.
	* c-typeck.c (build_unary_op, build_modify_expr, build_asm_expr,
	handle_omp_array_sections): Likewise.
	(digest_init): Don't call decl_constant_value_for_optimization.
	* c-tree.h (decl_constant_value_for_optimization): Removed.
	* c-fold.c (c_fold_array_ref): New function.
	(c_fully_fold_internal): Add LVAL argument, propagate it through
	recursive calls.  For VAR_P call decl_constant_value and
	unshare if not LVAL and either optimizing or IN_INIT.  Remove
	decl_constant_value_for_optimization calls.  If IN_INIT and not LVAL,
	fold ARRAY_REF with STRING_CST and INTEGER_CST operands.
	(c_fully_fold): Add LVAL argument, pass it through to
	c_fully_fold_internal.
	(decl_constant_value_for_optimization): Removed.

2017-11-15  Joseph Myers  <joseph@codesourcery.com>

	PR c/81156
	* c-parser.c (check_tgmath_function): New function.
	(enum tgmath_parm_kind): New enum.
	(c_parser_postfix_expression): Handle __builtin_tgmath.

2017-10-31  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (implicit_decl_warning): Update for renaming of
	pedwarn_at_rich_loc and warning_at_rich_loc.
	(implicitly_declare): Likewise for renaming of inform_at_rich_loc.
	(undeclared_variable): Likewise for renaming of error_at_rich_loc.
	* c-parser.c (c_parser_declaration_or_fndef): Likewise.
	(c_parser_struct_or_union_specifier): Likewise for renaming of
	pedwarn_at_rich_loc.
	(c_parser_parameter_declaration): Likewise for renaming of
	error_at_rich_loc.
	* c-typeck.c (build_component_ref): Likewise.
	(build_unary_op): Likewise for renaming of inform_at_rich_loc.
	(pop_init_level): Likewise for renaming of warning_at_rich_loc.
	(set_init_label): Likewise for renaming of error_at_rich_loc.

2017-10-30  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_statement): Parse conditional
	stmts.

2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* c-decl.c (header_for_builtin_fn): Add support for copysign, fma,
	fmax, fmin, and sqrt _Float<N> and _Float<N>X variants.

2017-10-25  David Malcolm  <dmalcolm@redhat.com>

	PR c/7356
	* c-parser.c (c_parser_declaration_or_fndef): Detect missing
	semicolons.

2017-10-25  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/81706
	* c-decl.c (merge_decls): Copy "omp declare simd" attributes from
	newdecl to corresponding __builtin_ if any.

2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82466
	* c-decl.c (diagnose_mismatched_decls): Use
	OPT_Wbuiltin_declaration_mismatch.

2017-10-12  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_require): Add "type_is_unique" param and
	use it to guard calls to maybe_suggest_missing_token_insertion.
	(c_parser_parms_list_declarator): Override default value of new
	"type_is_unique" param to c_parser_require.
	(c_parser_asm_statement): Likewise.
	* c-parser.h (c_parser_require): Add "type_is_unique" param,
	defaulting to true.

2017-10-11  Nathan Sidwell  <nathan@acm.org>

	* c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too.

2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>

	* c-parser.c (c_parser_cilk_clause_vectorlength): Use wi::to_wide when
	operating on trees as wide_ints.
	* c-typeck.c (build_c_cast, c_finish_omp_clauses): Likewise.
	(c_tree_equal): Likewise.

2017-10-04  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (push_parm_decl): Store c_parm's location into the
	PARAM_DECL.
	(build_c_parm): Add "loc" param and store it within the c_parm.
	* c-parser.c (struct c_parser): Add "last_token_location" field.
	(c_parser_consume_token): Store location of the token into the
	new field.
	(c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS
	when handling a FUNCTION_DECL, if it doesn't already have them.
	(c_parser_parameter_declaration): Generate a location for the
	parameter, and pass it to the call to build_c_parm.
	* c-tree.h (struct c_parm): Add field "loc".
	(build_c_parm): Add location_t param.
	* c-typeck.c (get_fndecl_argument_location): New function.
	(inform_for_arg): New function.
	(convert_for_assignment): Use inform_for_arg when dealing with
	ic_argpass.

2017-09-29  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.c (grokfield): Use SET_DECL_C_BIT_FIELD here if
	width is non-NULL.
	(finish_struct): Test DECL_C_BIT_FIELD instead of DECL_INITIAL,
	don't SET_DECL_C_BIT_FIELD here.

	PR c/82340
	* c-decl.c (build_compound_literal): Use c_apply_type_quals_to_decl
	instead of trying to set just TREE_READONLY manually.

2017-09-16  Tom de Vries  <tom@codesourcery.com>

	PR c/81875
	* c-parser.c (c_parser_omp_for_loop): Fold only operands of cond, not
	cond itself.

2017-09-15  Joseph Myers  <joseph@codesourcery.com>

	PR c/82071
	* c-typeck.c (ep_convert_and_check): Just call convert_and_check
	for C11.
	(build_conditional_expr): For C11, generate result with excess
	precision when one argument is an integer and the other is of a
	type using excess precision.

2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-typeck.c (build_c_cast): Implement -Wcast-align=strict.

2017-09-13  Marek Polacek  <polacek@redhat.com>

	PR c/82167
	* c-typeck.c (c_expr_sizeof_expr): Use the type of expr.value rather
	than expr.original_type.

2017-09-12  Nathan Sidwell  <nathan@acm.org>

	* c-decl.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
	resort_sorted_fields): Moved from c-family/c-common.c.
	* c-lang.h (struct sorted_fields_type): Moved from c-family/c-common.h.

2017-09-01  Joseph Myers  <joseph@codesourcery.com>

	PR c/82071
	* c-typeck.c (build_atomic_assign): Handle argument with excess
	precision.  Ensure any EXCESS_PRECISION_EXPR is present in
	argument passed to build_binary_op and convert_for_assignment but
	not for call to c_fully_fold.
	(build_modify_expr): Do not remove EXCESS_PRECISION_EXPR early.
	Ensure build_binary_op is called with argument with original
	semantic type.  Avoid calling c_fully_fold with an
	EXCESS_PRECISION_EXPR from build_binary_op.

2017-09-01  Jakub Jelinek  <jakub@redhat.com>

	PR c/81887
	* c-parser.c (c_parser_omp_ordered): Handle -fopenmp-simd.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-typeck.c (build_binary_op): Use SCALAR_TYPE_MODE.
	(c_common_type): Likewise.  Use as_a <scalar_mode> when setting
	m1 and m2 to the signed equivalent of a fixed-point
	SCALAR_TYPE_MODE.

2017-08-24  David Malcolm  <dmalcolm@redhat.com>

	* c-tree.h (c_expr::get_location) Use EXPR_HAS_LOCATION rather
	than CAN_HAVE_LOCATION_P when determining whether to use the
	location_t value within "value".

2017-08-21  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_expr_list): Use c_expr::get_location ()
	rather than peeking the location of the first token.
	* c-tree.h (c_expr::get_location): New method.

2017-08-21  David Malcolm  <dmalcolm@redhat.com>

	* c-typeck.c (build_function_call_vec): Pass arg_loc to call
	to check_function_arguments.

2017-08-18  Marek Polacek  <polacek@redhat.com>

	* c-parser.c (c_parser_postfix_expression): Remove unused code.  Update
	commentary.

2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/53037
	* c-decl.c (merge_decls): Also merge DECL_WARN_IF_NOT_ALIGN.
	(check_bitfield_type_and_width): Don't allow bit-field with
	warn_if_not_aligned type.

2017-08-14  Martin Sebor  <msebor@redhat.com>

	PR c/81117
	* c-objc-common.c (c_objc_common_init): Handle 'G'.

2017-08-11  Marek Polacek  <polacek@redhat.com>

	PR c/81795
	* c-decl.c (pushtag): Only print inform if the warning was printed.
	(grokdeclarator): Likewise.

2017-08-10  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_error): Rename to...
	(c_parser_error_richloc): ...this, making static, and adding
	"richloc" parameter, passing it to the c_parse_error call,
	rather than calling c_parser_set_source_position_from_token.
	(c_parser_error): Reintroduce, reimplementing in terms of the
	above, converting return type from void to bool.
	(class token_pair): New class.
	(struct matching_paren_traits): New struct.
	(matching_parens): New typedef.
	(struct matching_brace_traits): New struct.
	(matching_braces): New typedef.
	(get_matching_symbol): New function.
	(c_parser_require): Add param MATCHING_LOCATION, using it to
	highlight matching "opening" tokens for missing "closing" tokens.
	(c_parser_skip_until_found): Likewise.
	(c_parser_static_assert_declaration_no_semi): Convert explicit
	parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of
	class matching_parens, so that the pertinent open parenthesis is
	highlighted when there are problems locating the close
	parenthesis.
	(c_parser_struct_or_union_specifier): Likewise.
	(c_parser_typeof_specifier): Likewise.
	(c_parser_alignas_specifier): Likewise.
	(c_parser_simple_asm_expr): Likewise.
	(c_parser_braced_init): Likewise, for matching_braces.
	(c_parser_paren_condition): Likewise, for matching_parens.
	(c_parser_switch_statement): Likewise.
	(c_parser_for_statement): Likewise.
	(c_parser_asm_statement): Likewise.
	(c_parser_asm_operands): Likewise.
	(c_parser_cast_expression): Likewise.
	(c_parser_sizeof_expression): Likewise.
	(c_parser_alignof_expression): Likewise.
	(c_parser_generic_selection): Likewise.
	(c_parser_postfix_expression): Likewise for cases RID_VA_ARG,
	RID_OFFSETOF, RID_TYPES_COMPATIBLE_P, RID_AT_SELECTOR,
	RID_AT_PROTOCOL, RID_AT_ENCODE, reindenting as necessary.
	In case CPP_OPEN_PAREN, pass loc_open_paren to the
	c_parser_skip_until_found call.
	(c_parser_objc_class_definition): Use class matching_parens as
	above.
	(c_parser_objc_method_decl): Likewise.
	(c_parser_objc_try_catch_finally_statement): Likewise.
	(c_parser_objc_synchronized_statement): Likewise.
	(c_parser_objc_at_property_declaration): Likewise.
	(c_parser_oacc_wait_list): Likewise.
	(c_parser_omp_var_list_parens): Likewise.
	(c_parser_omp_clause_collapse): Likewise.
	(c_parser_omp_clause_default): Likewise.
	(c_parser_omp_clause_if): Likewise.
	(c_parser_omp_clause_num_threads): Likewise.
	(c_parser_omp_clause_num_tasks): Likewise.
	(c_parser_omp_clause_grainsize): Likewise.
	(c_parser_omp_clause_priority): Likewise.
	(c_parser_omp_clause_hint): Likewise.
	(c_parser_omp_clause_defaultmap): Likewise.
	(c_parser_oacc_single_int_clause): Likewise.
	(c_parser_omp_clause_ordered): Likewise.
	(c_parser_omp_clause_reduction): Likewise.
	(c_parser_omp_clause_schedule): Likewise.
	(c_parser_omp_clause_num_teams): Likewise.
	(c_parser_omp_clause_thread_limit): Likewise.
	(c_parser_omp_clause_aligned): Likewise.
	(c_parser_omp_clause_linear): Likewise.
	(c_parser_omp_clause_safelen): Likewise.
	(c_parser_omp_clause_simdlen): Likewise.
	(c_parser_omp_clause_depend): Likewise.
	(c_parser_omp_clause_map): Likewise.
	(c_parser_omp_clause_device): Likewise.
	(c_parser_omp_clause_dist_schedule): Likewise.
	(c_parser_omp_clause_proc_bind): Likewise.
	(c_parser_omp_clause_uniform): Likewise.
	(c_parser_omp_for_loop): Likewise.
	(c_parser_cilk_clause_vectorlength): Likewise.
	(c_parser_cilk_clause_linear): Likewise.
	(c_parser_transaction_expression): Likewise.
	* c-parser.h (c_parser_require): Add param matching_location with
	default UNKNOWN_LOCATION.
	(c_parser_error): Convert return type from void to bool.
	(c_parser_skip_until_found): Add param matching_location with
	default UNKNOWN_LOCATION.

2017-08-09  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (build_enumerator): Use true/false instead of 1/0.
	* c-tree.h (build_external_ref): Update declaration.
	* c-typeck.c (build_array_ref): Use true/false instead of 1/0.
	(build_external_ref): Change the type of a parameter to bool.
	(parser_build_binary_op): Use true/false instead of 1/0.
	(pointer_diff): Likewise.
	(build_modify_expr): Likewise.
	(set_designator): Change the type of a parameter to bool.
	(set_init_index): Use true/false instead of 1/0.
	(set_init_label): Likewise.
	(output_init_element): Change the type of a parameter to bool.
	(output_pending_init_elements): Use true/false instead of 1/0.
	(process_init_element): Likewise.
	(build_binary_op): Change the type of a parameter to bool.

2017-08-09  Marek Polacek  <polacek@redhat.com>

	PR c/81233
	* c-typeck.c (pedwarn_init): Make the function take a variable list.
	Call emit_diagnostic_valist instead of pedwarn.
	(convert_for_assignment): Unroll the PEDWARN_FOR_ASSIGNMENT macro.
	Print the relevant types in diagnostics.

2017-08-09  Marek Polacek  <polacek@redhat.com>

	PR c/81417
	* c-array-notation.c (fix_builtin_array_notation_fn): Update calls to
	build_conditional_expr.
	* c-parser.c (c_parser_conditional_expression): Create locations for
	EXP1 and EXP2 from their source ranges.  Pass the locations down to
	build_conditional_expr.
	* c-tree.h (build_conditional_expr): Update declaration.
	* c-typeck.c (build_conditional_expr): Add location_t parameters.
	For -Wsign-compare, also print the types.

2017-08-08  Martin Liska  <mliska@suse.cz>

	* c-convert.c: Include header files.
	* c-typeck.c: Likewise.

2017-08-07  Martin Liska  <mliska@suse.cz>

	* c-parser.c (c_parser_attributes): Canonicalize name of an
	attribute.

2017-08-02  Marek Polacek  <polacek@redhat.com>

	PR c/81289
	* c-parser.c (c_parser_unary_expression): Use set_error.

	PR c/81448
	PR c/81306
	* c-warn.c (warn_for_multistatement_macros): Prevent bogus
	warnings.  Avoid walking MACRO_MAP_LOCATIONS.

2017-07-31  Jan Hubicka  <hubicka@ucw.cz>
	    Martin Liska  <mliska@suse.cz>

	* c-typeck.c (c_finish_goto_label): Build gimple predict
	statement.

2017-07-31  Martin Liska  <mliska@suse.cz>

	PR sanitize/81530
	* c-convert.c (convert): Guard condition with flag_sanitize_p
	also with current_function_decl non-null equality.
	* c-decl.c (grokdeclarator): Likewise.
	* c-typeck.c (build_binary_op): Likewise.

2017-07-25  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (grokfield): Remove local variable.

2017-07-25  Marek Polacek  <polacek@redhat.com>

	PR c/81364
	* c-parser.c (c_parser_else_body): Don't warn about multistatement
	macro expansion if the body is in { }.
	(c_parser_while_statement): Likewise.
	(c_parser_for_statement): Likewise.

2017-07-18  Nathan Sidwell  <nathan@acm.org>

	* c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE.

2017-07-14  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (implicitly_declare): When suggesting a missing
	#include, provide a fix-it hint.

2017-07-06  David Malcolm  <dmalcolm@redhat.com>

	* c-lang.c (selftest::run_c_tests): Move body to c_family_tests,
	and call that instead.
	* c-tree.h (selftest::run_c_tests): New decl.

2017-06-26  Marek Polacek  <polacek@redhat.com>

	PR c/80116
	* c-parser.c (c_parser_if_body): Set the location of the
	body of the conditional after parsing all the labels.  Call
	warn_for_multistatement_macros.
	(c_parser_else_body): Likewise.
	(c_parser_switch_statement): Likewise.
	(c_parser_while_statement): Likewise.
	(c_parser_for_statement): Likewise.
	(c_parser_statement): Add a default argument.  Save the location
	after labels have been parsed.
	(c_parser_c99_block_statement): Likewise.

2017-06-19  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
	negated _Literals to parse _Literal (int) -1.

2017-06-13  Martin Liska  <mliska@suse.cz>

	PR sanitize/78204
	* c-convert.c (convert): Use sanitize_flags_p.
	* c-decl.c (grokdeclarator): Likewise.
	* c-typeck.c (convert_for_assignment): Likewise.
	(c_finish_return): Likewise.
	(build_binary_op): Likewise.

2017-06-08  Jakub Jelinek  <jakub@redhat.com>

	PR c/81006
	* c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE
	to sizetype before size_binop.

2017-06-07  Jakub Jelinek  <jakub@redhat.com>

	* gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead
	of TDI_generic.

2017-06-06  Marek Polacek  <polacek@redhat.com>

	PR c/79983
	* c-decl.c (start_struct): Use the location of TYPE_STUB_DECL of
	ref.
	(start_enum): Use the location of TYPE_STUB_DECL of enumtype.

2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-parser.c (c_parser_binary_expression): Implement the
	-Wsizeof_pointer_div warning.
	(c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code
	from a parenthesized expression.
	(c_parser_expr_list): Use c_last_sizeof_loc.
	* c-tree.h (c_last_sizeof_loc): New external.
	* c-typeck.c (c_last_sizeof_loc): New variable.
	(c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc.

2017-05-31  Mikhail Maltsev  <maltsevm@gmail.com>

	PR testsuite/80580
	* gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels.

2017-05-30  David Malcolm  <dmalcolm@redhat.com>

	* c-objc-common.c (c_tree_printer): Gain bool and const char **
	parameters.

2017-05-24  Martin Sebor  <msebor@redhat.com>

	PR c/80731
	* c-fold.c (c_fully_fold_internal): Adjust.
	* c-typeck.c (parser_build_unary_op): Adjust.

2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (OACC_KERNELS_CLAUSE_MASK): Add
	"PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS",
	"VECTOR_LENGTH".

2017-05-23  Marek Polacek  <polacek@redhat.com>

	* c-parser.c (c_parser_compound_statement_nostart): Remove redundant
	quotes.

2017-05-22  Jakub Jelinek  <jakub@redhat.com>

	* c-fold.c (c_fully_fold_internal): Save the c_fully_fold_internal
	result for SAVE_EXPR operand and set SAVE_EXPR_FOLDED_P even if
	it returned invariant.  Call tree_invariant_p unconditionally
	afterwards to decide whether to return expr or op0.

2017-05-22  Nathan Sidwell  <nathan@acm.org>

	* c-decl.c (c_parse_final_cleanups): Drop TDI_tu handling.

2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_default): Handle
	"OMP_CLAUSE_DEFAULT_PRESENT".

2017-05-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* config-lang.in (gtfiles): Add c-family/c-format.c.

2017-05-18  Nathan Sidwell  <nathan@acm.org>

	* c-decl.c (pushdecl_top_level): Delete unused function.

2017-05-18  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (match_builtin_function_types): Use NULL_TREE instead of 0.
	(check_earlier_gotos): Likewise.
	(define_label): Likewise.
	(pending_xref_error): Likewise.
	(smallest_type_quals_location): Likewise.
	(grokdeclarator): Likewise.
	(grokparms): Likewise.
	(identifier_global_value): Likewise.
	* c-typeck.c (set_nonincremental_init_from_string): Likewise.
	(find_init_member): Likewise.

2017-05-18  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (start_decl): Use false/true instead of 0/1.
	(grokdeclarator): Likewise.
	(finish_struct): Likewise.
	(start_function): Change the return type to bool.  Use false/true
	instead of 0/1.
	(declspecs_add_qual): Use UNKNOWN_LOCATION instead of 0.
	* c-tree.h (start_function): Update.
	* c-typeck.c (same_translation_unit_p): Change the return type to bool.
	(set_designator): Change the return type to bool.  Use false/true
	instead of 0/1.

2017-05-17  Marek Polacek  <polacek@redhat.com>

	* c-decl.c: Use NULL_TREE instead of 0 where appropriate.
	* c-typeck.c: Likewise.

2017-05-17  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/80659
	* c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and
	DECL_IGNORED_P even for non-static compound literals.

2017-05-17  Martin Liska  <mliska@suse.cz>

	* c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and
	use it instead of int type.

2017-05-17  Marek Polacek  <polacek@redhat.com>

	* c-convert.c (convert): Replace c_save_expr with save_expr.  Don't
	call c_fully_fold.
	(convert) <case COMPLEX_TYPE>: Remove special handling of COMPLEX_TYPEs.
	* c-decl.c (grokdeclarator): Replace c_save_expr with save_expr.
	* c-fold.c (c_fully_fold_internal): Handle SAVE_EXPR.
	* c-parser.c (c_parser_declaration_or_fndef): Replace c_save_expr with
	save_expr.
	(c_parser_conditional_expression): Likewise.
	* c-tree.h (SAVE_EXPR_FOLDED_P): Define.
	* c-typeck.c (build_modify_expr): Replace c_save_expr with save_expr.
	(process_init_element): Likewise.
	(build_binary_op): Likewise.
	(handle_omp_array_sections_1): Likewise.

2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_num_gangs)
	(c_parser_omp_clause_num_workers)
	(c_parser_omp_clause_vector_length): Merge functions into...
	(c_parser_oacc_single_int_clause): ... this new function.  Adjust
	all users.

2017-05-11  Nathan Sidwell  <nathan@acm.org>

	* gimple-parser.c: Don't #include tree-dump.h.

2017-05-11  Mikhail Maltsev  <maltsevm@gmail.com>

	PR testsuite/80580
	* gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.

2017-05-11  Mikhail Maltsev  <maltsevm@gmail.com>

	PR testsuite/80580
	* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
	incorrect __MEM syntax.

2017-05-11  Mikhail Maltsev  <maltsevm@gmail.com>

	PR testsuite/80580
	* gimple-parser.c (c_parser_gimple_unary_expression): Check argument
	type of unary '*'.

2017-05-09  Nathan Sidwell  <nathan@acm.org>

	* c-tree.h (pushdecl): Declare.

2017-05-05  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (warn_defaults_to): Replace report_diagnostic
	with diagnostic_report_diagnostic.
	* c-errors.c (pedwarn_c99): Likewise.
	(pedwarn_c90): Likewise.

2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>

	PR c++/80038
	* c-gimplify.c (c_gimplify_expr): Remove calls to
	cilk_gimplifY_call_params_in_spawned_fn.

2017-04-25  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_struct_or_union_specifier): Add fix-it
	hint for removing extra semicolon.

2017-04-21  Jakub Jelinek  <jakub@redhat.com>

	PR c/80468
	* c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not
	enabled, set specs->type to integer_type_node.

2017-04-03  Jonathan Wakely  <jwakely@redhat.com>

	* c-array-notation.c: Fix typo in comment.

2017-03-29  Marek Polacek  <polacek@redhat.com>

	PR c/79730
	* c-decl.c (finish_decl): Check VAR_P.

2017-03-27  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/80162
	* c-tree.h (c_mark_addressable): Add array_ref_p argument.
	* c-typeck.c (c_mark_addressable): Likewise.  Look through
	VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
	to ARRAY_TYPE.
	(build_array_ref): Pass true as array_ref_p to c_mark_addressable.

2017-03-23  Marek Polacek  <polacek@redhat.com>

	* c-tree.h: Remove a C_RID_YYCODE reference.

2017-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR c/80097
	* c-typeck.c (build_binary_op): Add EXCESS_PRECISION_EXPR only around
	optional COMPOUND_EXPR with ubsan instrumentation.

2017-03-17  Marek Polacek  <polacek@redhat.com>

	* c-parser.c: Add C11 references.

2017-03-15  Marek Polacek  <polacek@redhat.com>

	* c-parser.c (c_parser_enum_specifier): Remove redundant line.

2017-03-11  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (implicit_decl_warning): Add a comment.  Fix formatting.

2017-03-10  David Malcolm  <dmalcolm@redhat.com>

	PR translation/79848
	* c-decl.c (declspecs_add_type): Simplify uses of "%<%s%>" to
	"%qs".
	* c-parser.c (c_parser_oacc_shape_clause): Likewise.

2017-03-09  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/79757
	* c-parser.c (c_parser_declaration_or_fndef): Don't sanitize old-style
	parameter declarations with initializers.

2017-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/79969
	* c-decl.c (start_enum): Adjust DECL_SOURCE_LOCATION of
	TYPE_STUB_DECL.

2017-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR c/79834
	* c-parser.c (c_parser_pragma): Use error_at instead of c_parser_error
	for "may only be used in compound statements" diagnostics, change it
	such that the same translatable string is used for all pragmas.  For
	PRAGMA_OACC_WAIT use "acc wait" rather than "acc enter data" in the
	diagnostics.
	(c_parser_omp_cancellation_point, c_parser_omp_target_update,
	c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Change
	"may only be used in compound statements" diagnostics, such that the
	same translatable string is used for all pragmas.

2017-03-04  Marek Polacek  <polacek@redhat.com>

	PR c/79847
	* c-decl.c (implicit_decl_warning): Add missing space.

2017-03-03  Marek Polacek  <polacek@redhat.com>

	PR c/79758
	* c-decl.c (store_parm_decls_oldstyle): Check if the element of
	current_function_prototype_arg_types is error_mark_node.  Fix
	formatting.  Use TREE_VALUE instead of TREE_TYPE.

2017-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR c/79837
	* c-parser.c (c_parser_omp_clause_reduction): Don't mention
	%<min%> or %<max%> in the diagnostics, instead mention identifier.
	(c_parser_omp_declare_reduction): Don't mention %<min%> in the
	diagnostics.

	PR c/79836
	* c-parser.c (c_parser_generic_selection): Use %<_Generic%>
	instead of %<_Generic>.
	(c_parser_omp_ordered): Use %<depend%> instead of %<depend>.
	(c_parser_omp_target_exit_data): Use %<release%> instead of
	%<release>.

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

	* c-parser.c (c_parser_asm_statement): Use cond ? G_("...") : G_("...")
	instead of just cond ? "..." : "...".
	(c_parser_oacc_enter_exit_data): Use %s and ternary operator only
	for "enter"/"exit" keyword.
	(c_finish_oacc_routine): Don't use %s to supply portions of the
	message.

2017-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79588
	* c-parser.c (c_parser_postfix_expression_after_primary): Don't
	handle -Wrestrict here.
	* c-typeck.c (build_function_call_vec): Adjust
	check_function_arguments caller.

2017-02-23  Richard Biener  <rguenther@suse.de>

	PR c/79684
	* gimple-parser.c (c_parser_gimple_statement): Use set_error
	to initialize c_exprs to return.
	(c_parser_gimple_binary_expression): Likewise.
	(c_parser_gimple_unary_expression): Likewise.
	(c_parser_gimple_postfix_expression): Likewise.

2017-02-22  Marek Polacek  <polacek@redhat.com>

	PR c/79662
	* c-typeck.c (convert_arguments): Handle error_mark_node.

2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* gimple-parser.c (c_parser_gimple_postfix_expression): Check return
	value of c_parser_parse_ssa_name against error_mark_node and emit
	error if ssa name is anonymous and written as default definition.

2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
	FMA_EXPR.

2017-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79512
	* c-parser.c (c_parser_omp_target): For -fopenmp-simd
	ignore #pragma omp target even when not followed by identifier.

2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* gimpler-parser.c (c_parser_gimple_statement): Handle ABS_EXPR.
	(c_parser_gimple_unary_expression): Likewise.

2017-02-13  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_oacc_declare): Add missing space in
	diagnostics.

2017-02-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR c/79478
	* gimple-parser.c (c_parser_gimple_postfix_expression): Call
	set_c_expr_source_range when parsing ssa-name.

2017-02-10  Prasad Ghangal  <prasad.ghangal@gmail.com>
	    Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_binary_expression): Avoid
	building IL when arguments are error_mark_node.
	(c_parser_gimple_unary_expression): Likewise.
	(c_parser_gimple_if_stmt): Likewise.
	(c_parser_gimple_switch_stmt): Likewise.
	(c_parser_gimple_return_stmt): Likewise.
	(c_parser_parse_ssa_name): When name lookup fails do not build
	an SSA name.  Use undeclared rather than not declared in error
	reporting.

2017-02-09  Marek Polacek  <polacek@redhat.com>

	PR c/79428
	* c-parser.c (c_parser_omp_ordered): Call c_parser_skip_to_pragma_eol
	instead of c_parser_skip_until_found.

2017-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/79431
	* c-parser.c (c_parser_omp_declare_target): Don't invoke
	symtab_node::get on automatic variables.

2016-02-09  Nathan Sidwell  <nathan@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
	(c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
	semantic checking.
	* c-parser.c (c_parser_omp_for_loop): Accept tiling constructs.

2017-02-07  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_expr_list): Simplify.
	(c_parser_gimple_postfix_expression_after_primary):
	Do not use c_build_function_call_vec to avoid folding and promotion.
	Simplify.

2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>

	PR lto/79061
	* c-decl.c (pop_scope): Pass main_input_filename to
	build_translation_unit_decl.

2017-01-24  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c: Include "read-rtl-function.h" and
	"run-rtl-passes.h".
	(c_parser_declaration_or_fndef): Rename "gimple-pass-list" in
	grammar to gimple-or-rtl-pass-list.  Add rtl-function-definition
	production.  Update for renaming of field "gimple_pass" to
	"gimple_or_rtl_pass".  If __RTL was seen, call
	c_parser_parse_rtl_body.  Convert a timevar_push/pop pair
	to an auto_timevar, to cope with early exit.
	(c_parser_declspecs): Update RID_GIMPLE handling for renaming of
	field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of
	c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list.
	Handle RID_RTL.
	(c_parser_parse_rtl_body): New function.
	* c-tree.h (enum c_declspec_word): Add cdw_rtl.
	(struct c_declspecs): Rename field "gimple_pass" to
	"gimple_or_rtl_pass".  Add field "rtl_p".
	* gimple-parser.c (c_parser_gimple_pass_list): Rename to...
	(c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly.
	* gimple-parser.h (c_parser_gimple_pass_list): Rename to...
	(c_parser_gimple_or_rtl_pass_list): ...this.

2017-01-20  Marek Polacek  <polacek@redhat.com>

	PR c/64279
	* c-typeck.c (build_conditional_expr): Warn about duplicated branches.

2017-01-13  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_compound_statement): Handle
	nops.

2017-01-13  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
	_Literal ( type-name ) number.

2017-01-12  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
	__MEM.

2017-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/72813
	* c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing
	PCH file.

2017-01-11  Richard Biener  <rguenther@suse.de>

	PR bootstrap/79052
	* gimple-parser.c (c_parser_gimple_switch_stmt): Add missing
	returns on parse errors.

2017-01-04  Marek Polacek  <polacek@redhat.com>

	PR c++/64767
	* c-parser.c (c_parser_postfix_expression): Mark zero character
	constants by setting original_type in c_expr.
	* c-typeck.c (parser_build_binary_op): Warn when a pointer is compared
	with a zero character constant.
	(char_type_p): New function.

2017-01-04  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_declaration_or_fndef): Create a
	rich_location at init_loc and parse it to start_init.
	(last_init_list_comma): New global.
	(c_parser_braced_init): Update last_init_list_comma when parsing
	commas.  Pass it to pop_init_level.  Pass location of closing
	brace to pop_init_level.
	(c_parser_postfix_expression_after_paren_type): Create a
	rich_location at type_loc and parse it to start_init.
	(c_parser_omp_declare_reduction): Likewise for loc.
	* c-tree.h (start_init): Add rich_location * param.
	(pop_init_level): Add location_t param.
	* c-typeck.c (struct initializer_stack): Add field
	"missing_brace_richloc".
	(start_init): Add richloc param, use it to initialize
	the stack node's missing_brace_richloc.
	(last_init_list_comma): New decl.
	(finish_implicit_inits): Pass last_init_list_comma to
	pop_init_level.
	(push_init_level): When finding missing open braces, add fix-it
	hints to the richloc.
	(pop_init_level): Add "insert_before" param and pass it
	when calling pop_init_level.  Add fixits about missing
	close braces to any richloc.  Use the richloc for the
	-Wmissing-braces warning.
	(set_designator): Pass last_init_list_comma to pop_init_level.
	(process_init_element): Likewise.

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

	Update copyright years.

2016-12-21  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/78817
	* c-typeck.c (build_function_call_vec): If check_function_arguments
	returns true, set TREE_NO_WARNING on CALL_EXPR.

	PR c/77767
	* c-decl.c (grokdeclarator): If *expr is non-NULL, append expression
	to *expr instead of overwriting it.

2016-12-20  Richard Biener  <rguenther@suse.de>

	* gimple-parser.c (c_parser_gimple_compound_statement): Improve
	error recovery.
	(c_parser_gimple_statement): Only build assigns for non-error
	stmts.
	(c_parser_gimple_postfix_expression_after): Improve error recovery.

2016-12-14  Martin Jambor  <mjambor@suse.cz>

	* c-parser.c: Include omp-general.h and omp-offload.h instead of
	omp-low.h.
	(c_finish_oacc_routine): Adjusted call to
	get_oacc_fn_attrib, build_oacc_routine_dims and replace_oacc_fn_attrib
	to use their new names.
	(c_parser_oacc_enter_exit_data): Adjusted call to find_omp_clause to
	use its new name.
	(c_parser_oacc_update): Likewise.
	(c_parser_omp_simd): Likewise.
	(c_parser_omp_target_update): Likewise.
	* c-typeck.c: Include omp-general.h instead of omp-low.h.
	(c_finish_omp_cancel): Adjusted call to find_omp_clause to use its new
	name.
	(c_finish_omp_cancellation_point): Likewise.
	* gimple-parser.c: Do not include omp-low.h

2016-12-02  Cesar Philippidis  <cesar@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>

	* c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
	EXIT_DATA,WAIT} are not used in compound statements.
	(c_parser_oacc_enter_exit_data): Update diagnostics.

2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/71973
	* c-decl.c (diagnose_mismatched_decls): Use
	OPT_Wbuiltin_declaration_mismatch here too.

2016-11-18  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-decl.c (merge_decls): Use SET_DECL_MODE.
	(make_label, finish_struct): Likewise.

2016-11-14  Prasad Ghangal  <prasad.ghangal@gmail.com>
	    Richard Biener  <rguenther@suse.de>

	* Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.
	* config-lang.in (gtfiles): Add c/c-parser.h.
	* c-tree.h (enum c_declspec_word): Add cdw_gimple.
	(struct c_declspecs): Add gimple_pass member and gimple_p flag.
	* c-parser.c (enum c_id_kind, struct c_token,
	c_parser_next_token_is, c_parser_next_token_is_not,
	c_parser_next_token_is_keyword,
	enum c_lookahead_kind, enum c_dtr_syn, enum c_parser_prec):
	Split out to ...
	* c-parser.h: ... new header.
	* c-parser.c: Include c-parser.h and gimple-parser.h.
	(c_parser_peek_token, c_parser_peek_2nd_token,
	c_token_starts_typename, c_parser_next_token_starts_declspecs,
	c_parser_next_tokens_start_declaration, c_parser_consume_token,
	c_parser_error, c_parser_require, c_parser_skip_until_found,
	c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
	c_parser_type_name): Export.
	(c_parser_tokens_buf): New function.
	(c_parser_error): Likewise.
	(c_parser_set_error): Likewise.
	(c_parser_declspecs): Handle RID_GIMPLE.
	(c_parser_declaration_or_fndef): Parse __GIMPLE marked body
	via c_parser_parse_gimple_body.
	* c-parser.h (c_parser_peek_token, c_parser_peek_2nd_token,
	c_token_starts_typename, c_parser_next_token_starts_declspecs,
	c_parser_next_tokens_start_declaration, c_parser_consume_token,
	c_parser_error, c_parser_require, c_parser_skip_until_found,
	c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
	c_parser_type_name): Declare.
	(struct c_parser): Declare forward.
	(c_parser_tokens_buf): Declare.
	(c_parser_error): Likewise.
	(c_parser_set_error): Likewise.
	* gimple-parser.c: New file.
	* gimple-parser.h: Likewise.

2016-11-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR c/35503
	* c-parser.c (c_parser_postfix_expression_after_primary): Call
	warn_for_restrict.

2016-09-11  Le-Chun Wu  <lcwu@google.com>
	    Mark Wielaard  <mjw@redhat.com>

	* c-decl.c (warn_if_shadowing): Use the warning code corresponding
	to the given -Wshadow= variant.

2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* c-typeck.c: Include memmodel.h.

2016-10-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/77957
	* c-objc-common.h (LANG_HOOKS_GETDECLS): Use hook_tree_void_null
	instead of lhd_return_null_tree_v.

2016-10-07  Bernd Schmidt  <bschmidt@redhat.com>

	PR c++/69733
	* c-decl.c (smallest_type_quals_location): New static function.
	(grokdeclarator): Try to find the correct location for an ignored
	qualifier.

2016-09-26  Marek Polacek  <polacek@redhat.com>

	PR c/7652
	* c-decl.c (pop_scope): Add gcc_fallthrough.

2016-09-26  Marek Polacek  <polacek@redhat.com>

	PR c/7652
	* c-parser.c (struct c_token): Add flags field.
	(c_lex_one_token): Pass it to c_lex_with_flags.
	(c_parser_declaration_or_fndef): Turn __attribute__((fallthrough));
	into IFN_FALLTHROUGH.
	(c_parser_label): Set FALLTHROUGH_LABEL_P on labels.  Handle
	attribute fallthrough after a case label or default label.
	(c_parser_statement_after_labels): Handle RID_ATTRIBUTE.

2016-09-24  Marek Polacek  <polacek@redhat.com>

	PR c/77490
	* c-typeck.c (build_unary_op): Warn about bit not on expressions that
	have boolean value.  Warn about ++/-- on booleans.

2016-09-23  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (incomplete_record_decls): Remove unnecessary
	= vNULL initialization of file scope vec.

2016-09-16  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (lvalue_p): Use true and false instead of 1 and 0.

2016-09-14  Marek Polacek  <polacek@redhat.com>

	* c-array-notation.c (create_cmp_incr): Use false instead of 0.
	(fix_array_notation_expr): Likewise.
	* c-decl.c (finish_decl): Likewise.
	* c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
	* c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
	(function_to_pointer_conversion): Use false instead of 0.
	(convert_lvalue_to_rvalue): Likewise.
	(parser_build_unary_op): Likewise.
	(build_atomic_assign): Likewise.
	(build_unary_op): Change nonconvert parameter type to bool, use
	true/false instead of 1/0.
	(build_binary_op): Use true instead of 1.

2016-09-13  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_declaration_or_fndef): Update for renaming
	of add_fixit_insert to add_fixit_insert_before.

2016-09-13  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT.  Use
	it.

2016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/77496
	* c-parser.c (c_parser_conditional_expression): Pass the rightmost
	COMPOUND_EXPR to warn_for_omitted_condop.

2016-09-07  David Malcolm  <dmalcolm@redhat.com>

	* c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
	c_get_substring_location for this new langhook.

2016-09-02  Jakub Jelinek  <jakub@redhat.com>

	PR c/65467
	* c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
	flag_openmp.
	(c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
	instead of mark_exp_read on low_bound/length expression.
	(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
	c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
	c_parser_omp_clause_priority, c_parser_omp_clause_hint,
	c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
	c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
	c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
	c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
	c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
	c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
	c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
	instead of mark_expr_read.
	(c_parser_omp_declare_reduction): Reject _Atomic qualified types.
	* c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
	* c-tree.h (c_omp_clause_copy_ctor): New prototype.
	* c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
	array section bases outside of depend clause, for depend clause
	use convert_lvalue_to_rvalue on the base.
	(c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
	linear, aligned, map, to and from clauses.
	(c_omp_clause_copy_ctor): New function.

2016-09-01  Marek Polacek  <polacek@redhat.com>

	PR c/7652
	* c-typeck.c (composite_type): Add FALLTHRU comment.

2016-08-31  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_declaration_or_fndef): Add trailing space
	to the insertion fixits for "struct", "union", and "enum".

2016-08-30  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (implicit_decl_warning): Use add_fixit_replace
	rather than add_fixit_misspelled_id.
	(undeclared_variable): Likewise.
	* c-parser.c (c_parser_declaration_or_fndef): Likewise.  Remove
	now-redundant "here" params from add_fixit_insert method calls.
	(c_parser_parameter_declaration): Likewise.
	* c-typeck.c (build_component_ref): Remove now-redundant range
	param from add_fixit_replace method calls.

2016-08-25  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (parser_build_binary_op): Pass LHS to
	warn_logical_not_parentheses.

2016-08-25  Marek Polacek  <polacek@redhat.com>

	PR c/77323
	* c-decl.c (declspecs_add_type): Set typespec_word even when __intN
	or _FloatN or _FloatNx is not supported.
	(finish_declspecs): Set type to integer_type_node when _FloatN or
	_FloatNx is not supported.

2016-08-19  Joseph Myers  <joseph@codesourcery.com>

	PR c/32187
	* c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
	(struct c_declspecs): Add field floatn_nx_idx.
	* c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
	and _FloatNx type specifiers.
	* c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
	(c_parser_declspecs, c_parser_attribute_any_word)
	(c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
	* c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
	(convert_arguments): Avoid promoting _FloatN and _FloatNx types
	narrower than double.

2016-08-12  Jakub Jelinek  <jakub@redhat.com>
	    Martin Liska  <mliska@suse.cz>

	PR c/67410
	* c-typeck.c (set_nonincremental_init_from_string): Use / instead of
	% to determine val element to change.  Assert that
	wchar_bytes * charwidth fits into val array.

2016-08-12  Marek Polacek  <polacek@redhat.com>

	PR c/7652
	* c-parser.c (c_parser_external_declaration): Add FALLTHRU.
	(c_parser_postfix_expression): Likewise.
	* c-typeck.c (build_unary_op): Adjust fall through comment.
	(c_mark_addressable): Likewise.

2016-08-11  Jakub Jelinek  <jakub@redhat.com>

	PR c/72816
	* c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
	array member through typedef, for orig_qual_indirect == 0 clear
	orig_qual_type.

2016-08-08  David Malcolm  <dmalcolm@redhat.com>

	PR c/64955
	* c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
	this up to selftest::run_c_tests.
	(selftest::run_c_tests): New function.

2016-08-04  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (struct oacc_routine_data): Add error_seen and
	fndecl_seen members.
	(c_finish_oacc_routine): Use these.
	(c_parser_declaration_or_fndef): Adjust.
	(c_parser_oacc_routine): Likewise.  Support more C language
	constructs, and improve diagnostics.  Move pragma context
	checking...
	(c_parser_pragma): ... here.

	* c-parser.c (struct oacc_routine_data): New.
	(c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
	Simplify code.
	(c_finish_oacc_routine): Likewise.  Don't attach clauses to "omp
	declare target" attribute.

2016-08-01  Jan Beulich  <jbeulich@suse.com>

	* c-fold.c (c_fully_fold_internal): Also emit shift count
	warnings for vector types.
	* c-typeck.c (build_binary_op): Likewise.

2016-07-29  Marek Polacek  <polacek@redhat.com>

	PR c/71742
	* c-decl.c (finish_struct): Rephrase an error message.

	PR c/71853
	* c-parser.c (c_parser_switch_statement): Initialize ce.original_type
	to error node for invalid code.

	PR c/71573
	* c-decl.c (implicitly_declare): Return decl early not only for
	error_mark_nodes, but for anything that is not a FUNCTION_DECL.

2016-07-29  Jakub Jelinek  <jakub@redhat.com>

	PR c/71969
	* c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
	on GNU extern inline functions.

2016-07-29  Marek Polacek  <polacek@redhat.com>

	PR c/71583
	* c-parser.c (c_parser_postfix_expression_after_paren_type): Also
	check expr.value.

2016-07-22  Uros Bizjak  <ubizjak@gmail.com>

	* c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,

2016-07-20  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
	spellcheck-tree.h
	(best_macro_match): Likewise, converting from a typedef to a
	subclass.
	(find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
	(lookup_name_fuzzy): Update for change of best_macro_match to a
	subclass with a ctor that calls cpp_forall_identifiers.

2016-07-20  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (implicit_decl_warning): Update for conversion of
	return type of lookup_name_fuzzy to const char *.
	(undeclared_variable): Likewise.
	(lookup_name_fuzzy): Convert return type from tree to
	const char *.
	* c-parser.c (c_parser_declaration_or_fndef): Update for
	conversion of return type of lookup_name_fuzzy to const char *.
	(c_parser_parameter_declaration): Likewise.

2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_declare): Don't scan for
	GOMP_MAP_POINTER.
	* c-typeck.c (handle_omp_array_sections): Mark data clauses with
	GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
	zero-length subarrays.

2016-07-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/71858
	* c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
	instead of FUZZY_LOOKUP_NAME.
	(lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
	FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.

2016-07-14  Jakub Jelinek  <jakub@redhat.com>

	PR c/71858
	* c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* c-parser.c (c_parser_generic_selection): Make type of variable
	auto_vec.
	(c_parser_omp_declare_simd): Likewise.

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* c-decl.c (struct c_struct_parse_info): Change member types
	from vec to auto_vec.
	(start_struct): Adjust.
	(finish_struct): Likewise.

2016-07-02  Jakub Jelinek  <jakub@redhat.com>

	PR c/71719
	* c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.

2016-06-29  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
	Move pragma context checking into...
	(c_parser_omp_cancellation_point): ... here, and improve
	diagnostic messages.
	* c-typeck.c (c_finish_omp_cancel)
	(c_finish_omp_cancellation_point): Improve diagnostic messages.

2016-06-29  Jakub Jelinek  <jakub@redhat.com>

	PR c/71685
	* c-typeck.c (c_build_qualified_type): Don't clear
	C_TYPE_INCOMPLETE_VARS for the main variant.

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

	PR c/71552
	* c-typeck.c (output_init_element): Diagnose incompatible types
	before non-constant initializers.

2016-06-28  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in: Don't cat ../stage_current if it does not exist.

2016-06-23  Andi Kleen  <ak@linux.intel.com>

	* Make-lang.in: Add support for autofdo.

2016-06-22  David Malcolm  <dmalcolm@redhat.com>

	PR c/70339
	* c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
	(implicit_decl_warning): When issuing warnings for implicit
	declarations, attempt to provide a suggestion via
	lookup_name_fuzzy.
	(undeclared_variable): Likewise when issuing errors.
	(lookup_name_in_scope): Likewise.
	(struct edit_distance_traits<cpp_hashnode *>): New struct.
	(best_macro_match): New typedef.
	(find_closest_macro_cpp_cb): New function.
	(lookup_name_fuzzy): New function.
	* c-parser.c: Include gcc-rich-location.h.
	(c_token_starts_typename): Split out case CPP_KEYWORD into...
	(c_keyword_starts_typename): ...this new function.
	(c_parser_declaration_or_fndef): When issuing errors about
	missing "struct" etc, add a fixit.  For other kinds of errors,
	attempt to provide a suggestion via lookup_name_fuzzy.
	(c_parser_parms_declarator): When looking ahead to detect typos in
	type names, also reject CPP_KEYWORD.
	(c_parser_parameter_declaration): When issuing errors about
	unknown type names, attempt to provide a suggestion via
	lookup_name_fuzzy.
	* c-tree.h (c_keyword_starts_typename): New prototype.

2016-06-20  Joseph Myers  <joseph@codesourcery.com>

	PR c/71601
	* c-typeck.c (build_conditional_expr): Return error_mark_node if
	c_common_type returns error_mark_node.

2016-06-19  Martin Sebor  <msebor@redhat.com>

	PR c/69507
	* c-parser.c (c_parser_alignof_expression): Avoid diagnosing
	__alignof__ (expression).

2016-06-14  David Malcolm  <dmalcolm@redhat.com>

	* c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h.

2016-06-14  David Malcolm  <dmalcolm@redhat.com>

	* c-typeck.c (build_component_ref): Simplify fixit code by
	using gcc_rich_location::add_fixit_misspelled_id.
	(set_init_label): Likewise.

2016-06-13  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_initelt): Provide location of name for new
	location_t param of set_init_label.
	* c-tree.h (set_init_label): Add location_t param.
	* c-typeck.c (set_init_index): Add "fieldname_loc" location_t
	param and use it when issuing error messages about unrecognized
	field names.  Attempt to provide a fixit hint if appropriate,
	otherwise update the error message to provide the type name.

2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>

	PR c/71381
	* c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
	Loosen checking.

2016-06-08  Martin Sebor  <msebor@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c++/70507
	PR c/68120
	* c-typeck.c (convert_arguments): Don't promote last argument
	of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.

2016-06-08  Marek Polacek  <polacek@redhat.com>

	PR c/71418
	* c-decl.c (grokdeclarator): Check TYPE_P.

	PR c/71426
	* c-decl.c (get_parm_info): Don't crash on an assert on invalid
	code.

2016-06-07  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
	and structure element reference, capture the location of the
	element name token and pass it to build_component_ref.
	(c_parser_postfix_expression_after_primary): Likewise for
	structure element dereference.
	(c_parser_omp_variable_list): Likewise for
	OMP_CLAUSE_{_CACHE, MAP, FROM, TO},
	* c-tree.h (build_component_ref): Add location_t param.
	* c-typeck.c (build_component_ref): Add location_t param
	COMPONENT_LOC.  Use it, if available, when issuing hints about
	mispelled member names to provide a fixit replacement hint.

2016-06-06  Marek Polacek  <polacek@redhat.com>

	PR c/71362
	* c-parser.c (c_parser_direct_declarator): Set location.

2016-06-06  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (comptypes_internal): Handle comparisons of
	INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes.  Don't check
	TYPE_REF_CAN_ALIAS_ALL.

2016-06-03  Chung-Lin Tang  <cltang@codesourcery.com>

	* c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
	arguments as addressable when async clause exists.

2016-05-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/71349
	* c-parser.c (c_parser_omp_for): Don't disallow nowait clause
	when combined with target construct.

2016-05-26  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_clause_schedule): Warn if
	OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.

2016-05-25  Marek Polacek  <polacek@redhat.com>

	PR c/71265
	* c-decl.c (c_make_fname_decl): Don't check seen_error.

	PR c/71266
	* c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.

2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_declare): Add support for
	GOMP_MAP_FIRSTPRIVATE_POINTER.
	* c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
	argument with enum c_omp_region_type ort.
	(handle_omp_array_sections): Likewise.  Update call to
	handle_omp_array_sections_1.
	(c_finish_omp_clauses): Add specific errors and warning messages for
	OpenACC.  Use firsrtprivate pointers for OpenACC subarrays.  Update
	call to handle_omp_array_sections.

2016-05-24  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_oacc_routine): Tighten syntax checks.

2016-05-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/70434
	PR c/69504
	* c-typeck.c (build_array_ref): Do not complain about indexing
	non-lvalue vectors.  Adjust for function name change.

2016-05-20  Martin Sebor  <msebor@redhat.com>

	PR c/71115
	* c-typeck.c (error_init): Use
	expansion_point_location_if_in_system_header.
	(warning_init): Same.

2016-05-19  David Malcolm  <dmalcolm@redhat.com>

	PR c/71171
	* c-parser.c (c_parser_generic_selection): Use c_expr::set_error
	in error-handling.
	(c_parser_postfix_expression): Likewise.
	* c-tree.h (c_expr::set_error): New method.
	* c-typeck.c (parser_build_binary_op): In error-handling, ensure
	that result's range is initialized.

2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>

	* c-typeck.c (parser_build_unary_op): Fix formatting.

2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>

	* c-decl.c (grokdeclarator): Remove errmsg and use of
	targetm.invalid_return_type.
	(grokparms): Remove errmsg and use of
	targetm.invalid_parameter_type.

2016-05-13  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (grokdeclarator): For C11, discard qualifiers on
	function return type.

2016-05-12  Marek Polacek  <polacek@redhat.com>

	PR c/70756
	* c-decl.c (build_compound_literal): Pass LOC down to
	c_incomplete_type_error.
	* c-tree.h (require_complete_type): Adjust declaration.
	(c_incomplete_type_error): Likewise.
	* c-typeck.c (require_complete_type): Add location parameter, pass it
	down to c_incomplete_type_error.
	(c_incomplete_type_error): Add location parameter, pass it down to
	error_at.
	(build_component_ref): Pass location down to c_incomplete_type_error.
	(default_conversion): Pass location down to require_complete_type.
	(build_array_ref): Likewise.
	(build_function_call_vec): Likewise.
	(convert_arguments): Likewise.
	(build_unary_op): Likewise.
	(build_c_cast): Likewise.
	(build_modify_expr): Likewise.
	(convert_for_assignment): Likewise.
	(c_finish_omp_clauses): Likewise.

2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>

	PR c/43651
	* c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
	is enabled.
	* c-errors.c (pedwarn_c90): Return true if warned.
	* c-tree.h (pedwarn_c90): Change return type to bool.
	(enum c_declspec_word): Add new enumerator cdw_atomic.

2016-05-11  Marek Polacek  <polacek@redhat.com>

	PR c++/71024
	* c-decl.c (diagnose_mismatched_decls): Factor out code to
	diagnose_mismatched_attributes and call it.

2016-05-10  Marek Polacek  <polacek@redhat.com>

	PR c/70255
	* c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute
	on a declaration following the definition.

2016-05-05  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_switch_statement): Add IF_P argument,
	parse it through to c_parser_c99_block_statement.
	(c_parser_statement_after_labels): Adjust c_parser_switch_statement
	caller.

2016-05-04  Marek Polacek  <polacek@redhat.com>

	* c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
	OPT_Wdangling_else.

2016-05-04  Marek Polacek  <polacek@redhat.com>

	PR c/48778
	* c-typeck.c (build_binary_op): Don't issue -Waddress warnings
	for macro expansions.

2016-05-03  Marek Polacek  <polacek@redhat.com>

	PR c/70859
	* c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
	check_builtin_function_arguments.

2016-05-03  Richard Biener  <rguenther@suse.de>

	* Make-lang.in (cc1-checksum.c): For stage-final re-use
	the checksum from the previous stage.

2016-05-02  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_all_clauses): Update call to
	c_finish_omp_clauses.
	(c_parser_omp_all_clauses): Likewise.
	(c_parser_oacc_cache): Likewise.
	(c_parser_oacc_loop): Likewise.
	(omp_split_clauses): Likewise.
	(c_parser_omp_declare_target): Likewise.
	(c_parser_cilk_all_clauses): Likewise.
	(c_parser_cilk_for): Likewise.
	* c-typeck.c (c_finish_omp_clauses): Replace bool arguments
	is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.

2016-05-02  Marek Polacek  <polacek@redhat.com>

	PR c/70851
	* c-decl.c (grokdeclarator): Diagnose when array's size has an
	incomplete type.

2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>

	PR middle-end/70626
	* c-parser.c (c_parser_oacc_loop): Don't augment mask with
	OACC_LOOP_CLAUSE_MASK.
	(c_parser_oacc_kernels_parallel): Update call to
	c_oacc_split_loop_clauses.

2016-04-28  Andrew MacLeod  <amacleod@redhat.com>

	* c-array-notation.c (fix_builtin_array_notation_fn): Fix final
	argument to build_modify_expr in two cases.

2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>

	* c-parser.c (c_parser_postfix_expression_after_primary): Call
	warn_for_memset instead of warning directly here.

2016-04-26  Marek Polacek  <polacek@redhat.com>

	PR c/67784
	* c-parser.c (c_parser_maybe_reclassify_token): New function factored
	out of ...
	(c_parser_for_statement): ... here.
	(c_parser_if_statement): Use it.
	(c_parser_switch_statement): Use it.
	(c_parser_while_statement): Use it.

	PR c/70791
	* c-decl.c (pushdecl): Pass LOCUS down to warning.

2016-04-20  Ilya Verbin  <ilya.verbin@intel.com>

	PR c++/69363
	* c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
	instead of c_finish_cilk_clauses.
	* c-tree.h (c_finish_omp_clauses): Add new default argument.
	* c-typeck.c (c_finish_omp_clauses): Add new argument.  Allow
	floating-point variables in the linear clause for Cilk Plus.

2016-04-18  Michael Matz  <matz@suse.de>

	* c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
	(grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.

2016-04-15  Marek Polacek  <polacek@redhat.com>

	PR c/70671
	* c-typeck.c (build_unary_op): Pass location down to error and
	warning call.

2016-04-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/70436
	* c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
	where needed.
	(c_parser_external_declaration, c_parser_struct_or_union_specifier,
	c_parser_parameter_declaration, c_parser_compound_statement_nostart,
	c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
	Adjust c_parser_pragma callers.
	(c_parser_statement_after_labels): Likewise.  Adjust c_parser_cilk_for
	caller.
	(c_parser_omp_structured_block): Add IF_P argument, pass it down to
	c_parser_statement.
	(c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
	c_parser_oacc_kernels_parallel, c_parser_omp_critical,
	c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
	c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
	c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
	c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
	c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
	c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
	down where needed.
	(c_parser_omp_for_loop): Likewise.  Clear IF_P if nbraces.
	(c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
	calls.

2016-04-13  Marek Polacek  <polacek@redhat.com>

	PR c/70436
	* c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
	adjust callers.
	(c_parser_statement): Likewise.
	(c_parser_c99_block_statement): Likewise.
	(c_parser_while_statement): Likewise.
	(c_parser_for_statement): Likewise.
	(c_parser_if_body): Don't set IF_P here.
	(c_parser_if_statement): Add IF_P argument.  Set IF_P here.  Warn
	about dangling else here.
	* c-tree.h (c_finish_if_stmt): Adjust declaration.
	* c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter.  Don't
	warn about dangling else here.

2016-04-04  Marek Polacek  <polacek@redhat.com>

	PR c/70307
	* c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.

2016-03-31  Marek Polacek  <polacek@redhat.com>

	PR c/70297
	* c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.

2016-03-18  David Malcolm  <dmalcolm@redhat.com>

	PR c/70281
	* c-parser.c (c_parser_postfix_expression): Set the source range
	for uses of "__builtin_types_compatible_p".

2016-03-17  Jakub Jelinek  <jakub@redhat.com>

	PR c/70280
	* c-typeck.c (composite_type): Don't count void_list_node
	into len, if the list is terminated by void_list_node, start
	with void_list_node instead of NULL for newargs.  Stop
	at void_list_node.

2016-03-16  Marek Polacek  <polacek@redhat.com>

	PR c/70093
	* c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
	nested functions returning VM types.

2016-03-09  Cesar Philippidis  <cesar@codesourcery.com>

	* c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
	when calling c_finish_omp_clauses.

2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>

	PR c/69824
	* c-decl.c (get_parm_info): Don't queue implicit function declarations
	for later.

2016-03-04  Marek Polacek  <polacek@redhat.com>

	PR c/69798
	* c-parser.c (c_parser_postfix_expression): Call
	c_parser_cast_expression rather than c_parser_postfix_expression.

2016-03-01  Jakub Jelinek  <jakub@redhat.com>

	PR c/69796
	PR c/69974
	* c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
	of incomplete decls to error_mark_node.

2016-02-24  Marek Polacek  <polacek@redhat.com>

	PR c/69819
	* c-decl.c (finish_decl): Don't update the copy of the type of a
	different decl type.

2016-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR objc/69844
	* c-parser.c (c_parser_for_statement): Properly handle ObjC classes
	in id_kind reclassification.

2016-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR c/69835
	* c-typeck.c (build_binary_op): Revert 2015-09-09 change.

2016-02-16  James Norris  <jnorris@codesourcery.com>

	PR c/64748
	* c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.

2016-02-12  Bernd Schmidt  <bschmidt@redhat.com>

	* c-decl.c (build_null_declspecs): Zero the entire struct.

	PR c/69522
	* c-parser.c (c_parser_braced_init): New arg outer_obstack.  All
	callers changed.  If nested_p is true, use it to call
	finish_implicit_inits.
	* c-tree.h (finish_implicit_inits): Declare.
	* c-typeck.c (finish_implicit_inits): New function.  Move code
	from ...
	(push_init_level): ... here.
	(set_designator, process_init_element): Call finish_implicit_inits.

2016-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR c/69768
	* c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
	arguments for -Waddress warning.

2016-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR c/69669
	* c-decl.c (finish_enum): When honoring mode attribute,
	make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.

2016-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR debug/69518
	* c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
	all type variants, not just TYPE_MAIN_VARIANT.

2016-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR debug/66869
	* c-decl.c (c_write_global_declarations_1): Warn with
	warn_unused_function if static prototype without definition
	is not C_DECL_USED.

2016-01-27  Marek Polacek  <polacek@redhat.com>

	PR c/68062
	* c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
	to unsigned, if needed.  Add -Wsign-compare warning.

2016-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69483
	* c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.

2016-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR c/24293
	* c-tree.h (incomplete_record_decls): Declare.
	* c-parser.c (incomplete_record_decls): Define.
	(c_parser_translation_unit): Iterate through incomplete_record_decls and
	report error if any decl has zero size.
	* c-decl.c (finish_decl): Append static decl with incomplete struct/union
	or enum type to incomplete_record_decls.

2016-01-14  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68773
	* c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
	set force_output.

2016-01-14  Marek Polacek  <polacek@redhat.com>

	PR c/69262
	* c-decl.c (grokdeclarator): Provide more information for invalid
	array declarations.

2016-01-06  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_unary_expression): For dereferences, build
	a combined location before calling build_indirect_ref, so that
	error reports cover the full range, manually updating the c_expr
	src_range.

2016-01-06  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/69099
	* c-convert.c (convert) [INTEGER_TYPE]: Drop ARG.  Don't pass ARG to
	ubsan_instrument_float_cast.  Fold EXPR.  Use NULL_TREE instead of
	NULL.

2016-01-04  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2016-01-04  Marek Polacek  <polacek@redhat.com>

	PR c/68908
	* c-typeck.c (build_atomic_assign): Improve commentary.  Add
	optimization to use __atomic_fetch_* built-in if possible.

2015-12-23  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_oacc_clause_use_device): Merge function
	into...
	(c_parser_omp_clause_use_device_ptr): ... this function.  Adjust
	all users.

2015-12-22  Marek Polacek  <polacek@redhat.com>

	PR c/69002
	* c-typeck.c (build_component_ref): Warn when acessing elements of
	atomic structures or unions.

2015-12-21  David Malcolm  <dmalcolm@redhat.com>

	* c-typeck.c: Include "gcc-rich-location.h".
	(build_binary_op): In the two places that call binary_op_error,
	create a gcc_rich_location and populate it with the location of
	the binary op and its two operands.

2015-12-16  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_statement_after_labels): When calling
	c_finish_return, Use the return expression's location if it has
	one, falling back to the location of the first token within it.
	* c-typeck.c (c_finish_return): When issuing warnings about
	the incorrect presence/absence of a return value, issue a note
	showing the declaration of the function.

2015-12-16  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
	to 4.
	(c_parser_peek_nth_token): New function.
	(c_parser_peek_conflict_marker): New function.
	(c_parser_error): Detect conflict markers and report them as such.

2015-12-16  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
	to preserve range information for the primary expression
	in the call to c_parser_postfix_expression_after_primary.

2015-12-16  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
	expression location, falling back on the first token location,
	rather than always using the latter.

2015-12-16  Marek Polacek  <polacek@redhat.com>

	PR c/64637
	* c-typeck.c (c_process_expr_stmt): Use location of the expression if
	available.

2015-12-15  Marek Polacek  <polacek@redhat.com>

	PR c/68907
	* c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
	artificial decl.

2015-12-08  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_alignof_expression): Capture location of
	closing parenthesis (if any), or of end of unary expression, and
	use it to build a src_range for the expression.

2015-12-08  David Malcolm  <dmalcolm@redhat.com>

	PR c/68757
	* c-parser.c (c_parser_get_builtin_args): Add
	"out_close_paren_loc" param, and write back to it.
	(c_parser_postfix_expression): Capture the closing
	parenthesis location for RID_CHOOSE_EXPR,
	RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
	RID_BUILTIN_SHUFFLE and use it to set the source range
	for such expressions; within RID_BUILTIN_COMPLEX set
	the underlying location.

2015-12-07  Marek Polacek  <polacek@redhat.com>

	PR c/68668
	* c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
	TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.

2015-12-04  Eric Botcazou  <ebotcazou@adacore.com>

	* c-tree.h (c_build_va_arg): Adjust prototype.
	* c-parser.c (c_parser_postfix_expression): Adjust call to above.
	* c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
	parameter, adjust throughout and issue an error if EXPR is a component
	with reverse storage order.

2015-12-02  Jason Merrill  <jason@redhat.com>

	* c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
	(c_fully_fold_internal, decl_constant_value_for_optimization):
	Move from c-common.c.
	* c-tree.h: Declare decl_constant_value_for_optimization.
	* Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.

2015-12-02  Joseph Myers  <joseph@codesourcery.com>

	PR c/68162
	* c-decl.c (grokdeclarator): Set first_non_attr_kind before
	following link from declarator to next declarator.  Track original
	qualified type and pass it to c_build_qualified_type.
	* c-typeck.c (c_build_qualified_type): Add arguments
	orig_qual_type and orig_qual_indirect.

2015-12-02  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_name)
	(c_parser_oacc_all_clauses): Alphabetical sorting.

2015-12-02  Jakub Jelinek  <jakub@redhat.com>

	PR c/68533
	* c-decl.c (get_parm_info): Use b->locus instead of input_location
	for diagnostics.

2015-12-01  Julian Brown  <julian@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    James Norris  <James_Norris@mentor.com>

	* c-parser.c (c_parser_omp_clause_name): Add use_device support.
	(c_parser_oacc_clause_use_device): New function.
	(c_parser_oacc_all_clauses): Add use_device support.
	(OACC_HOST_DATA_CLAUSE_MASK): New macro.
	(c_parser_oacc_host_data): New function.
	(c_parser_omp_construct): Add host_data support.
	* c-tree.h (c_finish_oacc_host_data): Add prototype.
	* c-typeck.c (c_finish_oacc_host_data): New function.
	(c_finish_omp_clauses): Add use_device support.

2015-11-29  Jan Hubicka  <hubicka@ucw.cz>

	PR c/67106
	* c-decl.c: Set TYPE_PACKED in variants.

2015-11-27  Martin Liska  <mliska@suse.cz>

	PR c++/68312
	* c-array-notation.c (fix_builtin_array_notation_fn):
	Use release_vec_vec instead of vec::release.
	(build_array_notation_expr): Likewise.
	(fix_conditional_array_notations_1): Likewise.
	(fix_array_notation_expr): Likewise.
	(fix_array_notation_call_expr): Likewise.

2015-11-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/63326
	* c-parser.c (c_parser_compound_statement_nostart): If
	last_label is true, use pragma_stmt instead of pragma_compound
	as second c_parser_pragma argument.
	(c_parser_omp_ordered, c_parser_omp_target_update,
	c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
	false as second argument to c_parser_skip_to_pragma_eol after
	diagnosing standalone directives used in pragma_stmt context.

2015-11-24  Ilya Verbin  <ilya.verbin@intel.com>

	* c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
	with "if (ENABLE_OFFLOADING)".

2015-11-23  David Malcolm  <dmalcolm@redhat.com>

	PR objc/68438
	* c-parser.c (c_parser_postfix_expression): Set up source ranges
	for various Objective-C constructs: Class.name syntax,
	@selector(), @protocol(), @encode(), and [] message syntax.

2015-11-20  David Malcolm  <dmalcolm@redhat.com>

	PR 62314
	* c-typeck.c (should_suggest_deref_p): New function.
	(build_component_ref): Special-case POINTER_TYPE when
	generating a "not a structure of union"  error message, and
	suggest a "->" rather than a ".", providing a fix-it hint.

2015-11-19  David Malcolm  <dmalcolm@redhat.com>

	* c-typeck.c (lookup_field_fuzzy): Move determination of closest
	candidate into a new function, find_closest_identifier.

2015-11-19  Marek Polacek  <polacek@redhat.com>

	PR c/68412
	* c-typeck.c (parser_build_binary_op): Properly handle
	C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.

2015-11-17  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (set_c_expr_source_range): Bulletproof both
	overloaded implementations against NULL expr->value.
	(c_parser_braced_init): Set src_range for "ret" to a sane pair of
	values.
	(c_parser_unary_expression): Likewise when handling addresses of
	labels.
	(c_parser_postfix_expression): Likewise for statement expressions,
	for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
	__builtin_va_arg, and for __builtin_offset_of.
	(c_parser_postfix_expression_after_paren_type): Initialize expr's
	src_range using the range of the braced initializer.
	(c_parser_transaction_expression): Set src_range for "ret" to a
	sane pair of values.

2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>

	* c-parser.c (c_finish_omp_declare_simd): Look for
	"simd" attribute as well. Update error message.

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* c-parser.c (c_parser_omp_declare_target): Adjust.

2015-11-14  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_finish_omp_clauses): Don't mark
	GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.

2015-11-14  Marek Polacek  <polacek@redhat.com>

	* c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
	* c-typeck.c: Likewise.

2015-11-13  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (warn_defaults_to): Pass line_table to
	rich_location ctor.
	* c-errors.c (pedwarn_c99): Likewise.
	(pedwarn_c90): Likewise.
	* c-parser.c (set_c_expr_source_range): New functions.
	(c_token::get_range): New method.
	(c_token::get_finish): New method.
	(c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
	based on the range from the start of the LHS to the end of the
	RHS.
	(c_parser_conditional_expression): Likewise, based on the range
	from the start of the cond.value to the end of exp2.value.
	(c_parser_binary_expression): Call set_c_expr_source_range on
	the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
	(c_parser_cast_expression): Call set_c_expr_source_range on ret
	based on the cast_loc through to the end of the expr.
	(c_parser_unary_expression): Likewise, based on the
	op_loc through to the end of op.
	(c_parser_sizeof_expression) Likewise, based on the start of the
	sizeof token through to either the closing paren or the end of
	expr.
	(c_parser_postfix_expression): Likewise, using the token range,
	or from the open paren through to the close paren for
	parenthesized expressions.
	(c_parser_postfix_expression_after_primary): Likewise, for
	various kinds of expression.
	* c-tree.h (struct c_expr): Add field "src_range".
	(c_expr::get_start): New method.
	(c_expr::get_finish): New method.
	(set_c_expr_source_range): New decls.
	* c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
	on ret for prefix unary ops.
	(parser_build_binary_op): Likewise, running from the start of
	arg1.value through to the end of arg2.value.

2015-11-13  Marek Polacek  <polacek@redhat.com>

	PR c/68320
	* c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.

2015-11-13  David Malcolm  <dmalcolm@redhat.com>

	* c-typeck.c: Include spellcheck.h.
	(lookup_field_fuzzy_find_candidates): New function.
	(lookup_field_fuzzy): New function.
	(build_component_ref): If the field was not found, try using
	lookup_field_fuzzy and potentially offer a suggestion.

2015-11-12  James Norris  <jnorris@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
	(c_parser_omp_clause_name): Handle 'device_resident' clause.
	(c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
	and PRAGMA_OMP_CLAUSE_LINK.
	(c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
	and PRAGMA_OACC_CLAUSE_LINK.
	(OACC_DECLARE_CLAUSE_MASK): New definition.
	(c_parser_oacc_declare): New function.

2015-11-12  Marek Polacek  <polacek@redhat.com>

	PR c/67784
	* c-parser.c (c_parser_for_statement): Reclassify the token in
	a correct scope.

2015-11-11  Marek Polacek  <polacek@redhat.com>

	PR c/68107
	PR c++/68266
	* c-decl.c (grokdeclarator): Call valid_array_size_p.  Remove code
	checking the size of an array.

2015-11-11  Andrew MacLeod  <amacleod@redhat.com>

	* c-array-notation.c: Remove unused header files.
	* c-aux-info.c: Likewise.
	* c-convert.c: Likewise.
	* c-decl.c: Likewise.
	* c-errors.c: Likewise.
	* c-lang.c: Likewise.
	* c-objc-common.c: Likewise.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.
	* gccspec.c: Likewise.

2015-11-09  Thomas Schwinge  <thomas@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
	routine arg.
	(c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
	(c_parser_pragma): Parse 'acc routine'.
	(OACC_ROUTINE_CLAUSE_MARK): Define.
	(c_parser_oacc_routine, (c_finish_oacc_routine): New.

2015-11-09  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	PR debug/67192
	* c-typeck.c (c_finish_loop): For unconditional loops, set the
	location of the backward-goto to the start of the loop body.

2015-11-09  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	PR debug/67192
	* c-parser.c (c_parser_while_statement): Finish the loop before
	parsing ahead for misleading indentation.
	(c_parser_for_statement): Likewise.

2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* c-decl.c (finish_struct): If the structure has reverse storage
	order, rewrite the type of array fields with scalar component.  Call
	maybe_apply_pragma_scalar_storage_order on entry.
	* c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs.  Issue
	errors on bit-fields and reverse SSO here and not...
	(c_mark_addressable): ...here.
	(output_init_element): Adjust call to initializer_constant_valid_p.
	(c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.

2015-11-06  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (warn_defaults_to): Update for change in signature
	of diagnostic_set_info.
	* c-errors.c (pedwarn_c99): Likewise.
	(pedwarn_c90): Likewise.
	* c-objc-common.c (c_tree_printer): Update for new "caret_p" param
	for textinfo::set_location.

2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_name): Add support for
	PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
	(c_parser_omp_clause_default): Add is_oacc argument. Handle
	default(none) in OpenACC.
	(c_parser_oacc_shape_clause): Allow pointer variables as gang static
	arguments.
	(c_parser_oacc_clause_tile): New function.
	(c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
	OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
	(OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
	TILE}.
	(OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
	(OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
	FIRSTPRIVATE}.
	(c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
	(c_parser_oacc_update): Update the error message for missing clauses.
	* c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
	and OMP_CLAUSE_INDEPENDENT.

2015-11-05  Marek Polacek  <polacek@redhat.com>

	PR c/68090
	* c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
	deal with pre-evaluation on invalid types.

2015-11-05  Jakub Jelinek  <jakub@redhat.com>
	    Ilya Verbin  <ilya.verbin@intel.com>

	* c-parser.c: Include context.h and gimple-expr.h.
	(c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
	monotonic together with nonmonotonic.
	(c_parser_omp_for_loop): Call c_omp_check_loop_iv.  Call add_stmt here.
	(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
	(c_parser_omp_target_data, c_parser_omp_target_enter_data,
	c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
	(c_parser_omp_target): Likewise.  Evaluate num_teams and thread_limit
	expressions on combined target teams before the target.
	(c_parser_omp_declare_target): If decl has "omp declare target" or
	"omp declare target link" attribute, and cgraph or varpool node already
	exists, then set corresponding flags.  Call c_finish_omp_clauses
	in the parenthesized extended-list syntax case.
	* c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
	declare target.
	* c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
	on OMP_CLAUSE_REDUCTION array sections.
	(handle_omp_array_sections): Encode low-bound into the MEM_REF, either
	into the constant offset, or for variable low-bound using
	POINTER_PLUS_EXPR.  For structure element based array sections use
	GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
	(c_finish_omp_clauses): Drop generic_field_head, structure
	elements are now always mapped even as array section bases,
	diagnose same var in data sharing and mapping clauses.  Diagnose if
	linear step on declare simd is neither a constant nor a uniform
	parameter.  Look through POINTER_PLUS_EXPR for array section
	reductions.  Diagnose the same var or function appearing multiple
	times on the same directive.  Fix up wording for the to clause if t
	is neither a FUNCTION_DECL nor a VAR_DECL.  Diagnose nonmonotonic
	modifier on kinds other than dynamic or guided or nonmonotonic
	modifier together with ordered clause.

2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.

2015-10-29  Andrew MacLeod  <amacleod@redhat.com>

	* c-array-notation.c: Reorder #include's and remove duplicates.
	* c-aux-info.c: Likewise.
	* c-convert.c: Likewise.
	* c-decl.c: Likewise.
	* c-errors.c: Likewise.
	* c-lang.c: Likewise.
	* c-objc-common.c: Likewise.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.

2015-10-26  Jim Wilson  <jim.wilson@linaro.org>

	PR debug/66068
	* c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
	after calling build_qualified_type.

2015-10-27  Cesar Philippidis  <cesar@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Bernd Schmidt  <bschmidt@redhat.com>

	* c-parser.c (c_parser_oacc_shape_clause): New.
	(c_parser_oacc_simple_clause): New.
	(c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
	(OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.

2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	PR c/64765
	PR c/64880
	* c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
	parameters, and handle these.  Adjust all users.
	(c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
	into...
	(c_parser_oacc_kernels_parallel): ... this new function.  Adjust
	all users.
	* c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
	declare functions.
	(c_finish_omp_construct): Declare function.
	* c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
	Merge functions into...
	(c_finish_omp_construct): ... this new function.

2015-10-22  Richard Biener  <rguenther@suse.de>

	* c-typeck.c (c_finish_omp_clauses): Properly convert operands
	before folding a MINUS_EXPR.

2015-10-21  Marek Polacek  <polacek@redhat.com>

	PR c/68024
	* c-decl.c (start_function): Warn about vararg functions without
	a prototype.

2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* c-typeck.c (build_conditional_expr): Use boolean vector
	type for vector comparison.
	(build_vec_cmp): New.
	(build_binary_op): Use build_vec_cmp for comparison.

2015-10-20  Marek Polacek  <polacek@redhat.com>

	* c-parser.c (is_cilkplus_vector_p): Don't define here.

2015-10-20  Marek Polacek  <polacek@redhat.com>

	PR c/67964
	* c-parser.c (c_parser_attributes): Break out of the loop if the
	token after an attribute isn't a comma.

2015-10-13  Jakub Jelinek  <jakub@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>

	* c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
	(c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
	(c_parser_omp_variable_list): Handle structure elements for
	map, to and from clauses.  Handle array sections in reduction
	clause.  Formatting fixes.
	(c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
	if clause modifiers.
	(c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
	c_parser_omp_clause_priority, c_parser_omp_clause_hint,
	c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
	c_parser_omp_clause_is_device_ptr): New functions.
	(c_parser_omp_clause_ordered): Parse optional parameter.
	(c_parser_omp_clause_reduction): Handle array reductions.
	(c_parser_omp_clause_schedule): Parse optional simd modifier.
	(c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
	functions.
	(c_parser_omp_clause_linear): Parse linear clause modifiers.
	(c_parser_omp_clause_depend_sink): New function.
	(c_parser_omp_clause_depend): Parse source/sink depend kinds.
	(c_parser_omp_clause_map): Parse release/delete map kinds and
	optional always modifier.
	(c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
	and c_finish_omp_clauses callers.
	(c_parser_omp_all_clauses): Likewise.  Parse OpenMP 4.5 clauses.
	Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
	(c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
	(OMP_CRITICAL_CLAUSE_MASK): Define.
	(c_parser_omp_critical): Parse critical clauses.
	(c_parser_omp_for_loop): Handle doacross loops, adjust
	c_finish_omp_for and c_finish_omp_clauses callers.
	(OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
	(c_parser_omp_simd): Allow ordered clause if it has no parameter.
	(OMP_FOR_CLAUSE_MASK): Add linear clause.
	(c_parser_omp_for): Disallow ordered clause when combined with
	distribute.  Disallow linear clause when combined with distribute
	and not combined with simd.
	(OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
	(c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
	parse clauses and if depend clause is found, don't parse a body.
	(c_parser_omp_parallel): Disallow copyin clause on target parallel.
	Allow target parallel without for after it.
	(OMP_TASK_CLAUSE_MASK): Add priority clause.
	(OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
	(c_parser_omp_target_data): Diagnose no map clauses or clauses with
	invalid kinds.
	(OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
	(OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
	OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
	(c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
	functions.
	(OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
	defaultmap and is_device_ptr clauses.
	(c_parser_omp_target): Parse target parallel and target simd.  Set
	OMP_TARGET_COMBINED on combined constructs.  Parse target enter data
	and target exit data.  Diagnose invalid map kinds.
	(OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
	(c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
	construct.
	(c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
	&omp_priv.
	(OMP_TASKLOOP_CLAUSE_MASK): Define.
	(c_parser_omp_taskloop): New function.
	(c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
	handle PRAGMA_OMP_TASKLOOP.
	(c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
	* c-tree.h (c_finish_omp_clauses): Add two new arguments.
	* c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
	Add IS_OMP argument, handle structure element bases, diagnose
	bitfields, pass IS_OMP recursively, diagnose known zero length
	array sections in depend clauses, handle array sections in reduction
	clause, diagnose negative length even for pointers.
	(handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
	types, pass IS_OMP down to handle_omp_array_sections_1, handle
	array sections in reduction clause, set
	OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
	length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
	(c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
	Handle new OpenMP 4.5 clauses and new restrictions for the old ones.

2015-10-06  Marek Polacek  <polacek@redhat.com>

	* c-parser.c (c_parser_statement_after_labels): Use
	protected_set_expr_location.
	(c_parser_omp_clause_num_gangs): Likewise.
	(c_parser_omp_clause_num_threads): Likewise.
	(c_parser_omp_clause_num_workers): Likewise.
	(c_parser_omp_clause_vector_length): Likewise.
	(c_parser_omp_clause_num_teams): Likewise.
	(c_parser_omp_clause_thread_limit): Likewise.
	* c-typeck.c (build_c_cast): Likewise.
	(c_cast_expr): Likewise.

2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>

	* c-typeck.c (c_tree_equal): Use real_equal instead of
	REAL_VALUES_EQUAL.

2015-10-04  Jason Merrill  <jason@redhat.com>

	* c-parser.c (c_lex_one_token): Handle @synchronized.
	* c-decl.c (match_builtin_function_types): A declaration of a built-in
	can change whether the function is transaction_safe.

2015-10-02  Marek Polacek  <polacek@redhat.com>

	PR c/67730
	* c-typeck.c (convert_for_assignment): Use the expansion point
	location throughout.

2015-10-02  Marek Polacek  <polacek@redhat.com>

	PR c/64249
	* c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
	and pass it down to c_parser_if_statement.
	(c_parser_else_body): Add CHAIN parameter and pass it down to
	c_parser_statement_after_labels.
	(c_parser_if_statement): Add CHAIN parameter.  Add code to warn about
	duplicated if-else-if conditions.

2015-10-01  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (convert_for_assignment): Improve commentary.

2015-09-30  Marek Polacek  <polacek@redhat.com>

	PR c/67730
	* c-typeck.c (c_finish_return): Use the expansion point location for
	certain "return with value" warnings.

2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-parser.c (pragma_lex): Add loc argument.

2015-09-15  Marek Polacek  <polacek@redhat.com>

	PR c/67580
	* c-decl.c (tag_exists_p): New function.
	* c-parser.c (c_parser_declaration_or_fndef): Give a hint when
	struct/union/enum keywords are missing.
	* c-tree.h (tag_exists_p): Declare.

2015-09-15  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (lookup_label): Return NULL_TREE instead of 0.
	(lookup_tag): Change the type of THISLEVEL_ONLY to bool.
	Return NULL_TREE instead of 0.
	(lookup_name): Return NULL_TREE instead of 0.
	(lookup_name_in_scope): Likewise.
	(shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
	(parser_xref_tag): Use false instead of 0.
	(start_struct): Use true instead of 1.
	(start_enum): Use true instead of 1 and NULL_TREE instead of 0.

2015-09-14  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (set_nonincremental_init_from_string): Use
	HOST_WIDE_INT_M1U when shifting a negative value.

2015-09-09  Mark Wielaard  <mjw@redhat.com>

	* c-typeck.c (build_binary_op): Check and warn when nonnull arg
	parm against NULL.

2015-09-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/67502
	* c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
	into OMP_FOR_PRE_BODY rather than before the loop.

2015-09-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/67501
	* c-parser.c (c_parser_oacc_all_clauses,
	c_parser_omp_all_clauses): Remove invalid clause from
	list of clauses even if parser->error is set.

	PR c/67500
	* c-parser.c (c_parser_omp_clause_aligned,
	c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
	test for errors.
	* c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
	error_mark_node.

	PR c/67495
	* c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
	instead of c_parser_unary_expression.  If the result is !lvalue_p,
	wrap the result of c_fully_fold into NON_LVALUE_EXPR.

2015-09-04  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/67279
	* c-typeck.c (build_binary_op): Don't instrument static initializers.

2015-09-03  Martin Sebor  <msebor@redhat.com>

	PR c/66516
	* c-typeck.c (convert_arguments, parser_build_unary_op,
	build_conditional_expr, c_cast_expr, convert_for_assignment,
	build_binary_op, _objc_common_truthvalue_conversion): Call
	reject_gcc_builtin.
	(c_decl_implicit): Define.

2015-09-02  Marek Polacek  <polacek@redhat.com>

	PR c/67432
	* c-parser.c (c_parser_enum_specifier): Give a better error for
	an empty enum.

2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.

2015-08-12  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (grokdeclarator): Call error_at instead of error and pass
	LOC to it.

2015-08-03  Marek Polacek  <polacek@redhat.com>

	PR c/67088
	* c-decl.c (check_bitfield_type_and_width): Add location parameter.
	Use it.
	(grokdeclarator): Pass LOC down to check_bitfield_type_and_width.

2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>

	* c-parser.c (c_parser_if_body): Take token_indent_info
	argument. Call warn_for_misleading_indentation even when the
	body is a semicolon.  Extract token_indent_infos corresponding
	to the guard, body and next tokens.  Adjust call to
	warn_for_misleading_indentation accordingly.
	(c_parser_else_body): Likewise.
	(c_parser_if_statement): Likewise.
	(c_parser_while_statement): Likewise.
	(c_parser_for_statement): Likewise.

2015-07-28  Luis Felipe Strano Moraes  <luis.strano@gmail.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-decl.c (get_parm_info): Remove static var. Update warning
	message.

2015-07-27  Marek Polacek  <polacek@redhat.com>

	PR c++/66555
	PR c/54979
	* c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.

2015-07-20  Marek Polacek  <polacek@redhat.com>

	PR c++/55095
	* c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
	(build_binary_op): Warn about left shift overflows.

2015-07-09  Andrew MacLeod  <amacleod@redhat.com>

	* c-array-notation.c: Adjust includes for flags.h changes.
	* c-objc-common.c: Likewise.

2015-07-07  Andrew MacLeod  <amacleod@redhat.com>

	* c-array-notation.c: Adjust includes.
	* c-aux-info.c: Likewise.
	* c-convert.c: Likewise.
	* c-decl.c: Likewise.
	* c-errors.c: Likewise.
	* c-lang.c: Likewise.
	* c-objc-common.c: Likewise.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* c-decl.c (finish_function): Call do_warn_unused_parameter.

2015-06-29  Marek Polacek  <polacek@redhat.com>

	PR c/66322
	* c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
	(c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P.  Don't warn
	about -Wswitch-bool here.
	(do_case): Update c_add_case_label call.
	(c_finish_case): Update c_do_switch_warnings call.

2015-06-27  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c: Use VECTOR_TYPE_P throughout.

2015-06-26  Marek Polacek  <polacek@redhat.com>

	* c-array-notation.c (fix_builtin_array_notation_fn): Use
	INDIRECT_REF_P.
	* c-typeck.c (array_to_pointer_conversion): Likewise.
	(build_unary_op): Likewise.
	(c_finish_return): Likewise.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
	* c-parser.c: Likewise.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
	instead of pointer_hash.
	(detect_field_duplicates): Likewise.

2015-06-25  Marek Polacek  <polacek@redhat.com>

	* c-array-notation.c: Use VAR_P throughout.
	* c-decl.c: Likewise.
	* c-objc-common.c: Likewise.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.

2015-06-25  Marek Polacek  <polacek@redhat.com>

	* c-decl.c: Use is_global_var throughout.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.

2015-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
	* c-aux-info.c: Likewise.
	* c-convert.c: Likewise.
	* c-decl.c: Likewise.
	* c-errors.c: Likewise.
	* c-lang.c: Likewise.
	* c-objc-common.c: Likewise.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.

2015-06-11  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/66325
	* c-decl.c (start_enum): Set TYPE_PACKED consistently among type
	variants.

2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>

	* c-decl.c (pop_scope): Register the main translation unit
	through the new debug hook.

2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* c-array-notation.c : Adjust include files.
	* c-aux-info.c : Likewise.
	* c-convert.c : Likewise.
	* c-decl.c : Likewise.
	* c-errors.c : Likewise.
	* c-lang.c : Likewise.
	* c-lang.h : Likewise.
	* c-objc-common.c : Likewise.
	* c-parser.c : Likewise.
	* c-typeck.c : Likewise.

2015-06-05  Aldy Hernandez  <aldyh@redhat.com>

	* c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
	immediately clobber it.
	(c_write_global_declarations_1): Remove call to
	check_global_declaration_1.
	(c_write_global_declarations_2): Remove.
	(c_write_final_cleanups): Rename from c_write_global_declarations.
	Remove call to finalize_compilation_unit.
	Remove calls to debugging hooks.
	* c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
	* c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
	* c-tree.h: Remove c_write_global_declarations.

2015-06-04  Andrew MacLeod  <amacleod@redhat.com>

	* c-array-notation.c: Adjust includes for restructured coretypes.h.
	* c-aux-info.c: Likewise.
	* c-convert.c: Likewise.
	* c-decl.c: Likewise.
	* c-errors.c: Likewise.
	* c-lang.c: Likewise.
	* c-objc-common.c: Likewise.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.

2015-06-04  Marek Polacek  <polacek@redhat.com>

	PR c/66341
	* c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
	it is a lvalue.

2015-06-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
	Warn for empty struct.
	(finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.

2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>

	* c-decl.c (start_function): Call plugin before parsing.
	(finish_function): Call plugin after parsing.

2015-06-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR c/49551
	* c-decl.c (merge_decls): Merge DECL_COMMON.

2015-05-22  Jim Wilson  <jim.wilson@linaro.org>

	* Make-lang.in (check_gcc_pallelize): Define.

2015-05-22  Marek Polacek  <polacek@redhat.com>

	PR c/47043
	* c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
	attributes.

2015-05-21  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
	DECL_BUILT_IN.

2015-05-20  Marek Polacek  <polacek@redhat.com>

	* c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
	* c-typeck.c: Likewise.

2015-05-19  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (start_init): Use AGGREGATE_TYPE_P.

2015-05-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66199
	* c-parser.c (c_parser_omp_for_loop): Don't add
	OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
	OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
	(c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
	constructs.

2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>

	* c-typeck.c (build_array_ref): Use std::swap instead of explicit
	swaps.

2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/44054
	* c-objc-common.c (c_tree_printer): Replace locus pointer with
	accessor function.

2015-05-14  Marek Polacek  <polacek@redhat.com>

	PR c/66066
	PR c/66127
	* c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
	rather than with 0.

2015-05-12  David Malcolm  <dmalcolm@redhat.com>

	* c-parser.c (c_parser_if_body): Add param "if_loc", use it
	to add a call to warn_for_misleading_indentation.
	(c_parser_else_body): Likewise, adding param "else_loc".
	(c_parser_if_statement): Check for misleading indentation.
	(c_parser_while_statement): Likewise.
	(c_parser_for_statement): Likewise.

2015-05-08  Marek Polacek  <polacek@redhat.com>

	PR c/64918
	* c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
	(output_init_element): Likewise.

2015-05-07  Marek Polacek  <polacek@redhat.com>

	PR c/65179
	* c-typeck.c (build_binary_op): Warn when left shifting a negative
	value.

2015-04-30  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (set_init_label): Call error_at instead of error and
	pass LOC to it.

	* c-typeck.c (c_incomplete_type_error): Refactor to use %qT.  Print
	the type of a decl.

	* c-typeck.c (c_build_va_arg): Clarify the error message.

2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_oacc_enter_exit_data): Use
	OMP_STANDALONE_CLAUSES.

2015-04-28  Marek Polacek  <polacek@redhat.com>

	* c-parser.c (c_parser_binary_expression): Remove duplicate line.

2015-04-28  Marek Polacek  <polacek@redhat.com>

	PR c/65901
	* c-typeck.c (c_build_va_arg): Require TYPE be a complete type.

2015-04-25  Marek Polacek  <polacek@redhat.com>

	PR c/52085
	* c-decl.c (finish_enum): Copy over TYPE_ALIGN.  Also check for "mode"
	attribute.

2015-04-23  Marek Polacek  <polacek@redhat.com>

	PR c/65345
	* c-decl.c (set_labels_context_r): New function.
	(store_parm_decls): Call it via walk_tree_without_duplicates.
	* c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
	instead of create_tmp_var.  Build TARGET_EXPR instead of
	COMPOUND_EXPR.
	(build_atomic_assign): Use create_tmp_var_raw instead of
	create_tmp_var.  Build TARGET_EXPRs instead of MODIFY_EXPR.

2015-04-20  Ilya Verbin  <ilya.verbin@intel.com>

	* c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
	(c_parser_omp_target_update): Add missed %> to error_at ().

2015-04-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	PR target/55143
	* c-decl.c (c_default_pointer_mode): Remove definition.
	* c-tree.h (c_default_pointer_mode): Remove declaration.

2015-03-27  Tobias Burnus  <burnus@net-b.de>

	PR c/65586
	* c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
	error out.
	(c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
	c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
	Update calls to not error for skipped omp pragmas with -fopenmp-simd.

2015-03-19  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.c (c_decl_attributes): Also add "omp declare target"
	attribute for DECL_EXTERNAL VAR_DECLs.

2015-03-11  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
	argument.

2015-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/65120
	* c-typeck.c (parser_build_binary_op): Check for tcc_comparison
	before preparing arguments to warn_logical_not_parentheses.

2015-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/65120
	* c-typeck.c (parser_build_binary_op): Don't warn for
	!!x == y or !b == y where b is _Bool.

2015-03-09  Marek Polacek  <polacek@redhat.com>

	* c-convert.c (convert): Make use of do_ubsan_in_current_function.
	* c-decl.c (grokdeclarator): Likewise.
	* c-typeck.c (build_binary_op): Likewise.

2015-02-27  Marek Polacek  <polacek@redhat.com>

	PR c/65228
	* c-decl.c (start_decl): Return NULL_TREE if decl is an error node.

2015-02-14  Marek Polacek  <polacek@redhat.com>

	PR c/64768
	* c-decl.c (grokdeclarator): Set the range of a flexible array member
	declared through a typedef name.

2015-02-13  Marek Polacek  <polacek@redhat.com>

	PR c/65050
	* c-decl.c (grokdeclarator): Print also the type when giving
	the error message about array's incomplete element type.

2015-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR c/64824
	* c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
	check in the POP macro.

2015-02-09  Marek Polacek  <polacek@redhat.com>

	PR c/64856
	* c-typeck.c (process_init_element): Don't always wrap
	COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when
	initializing a range of elements.

2015-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR c/64824
	PR c/64868
	* c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.

2015-02-02  Bruno Loff  <bruno.loff@gmail.com>

	* c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
	processing enum declaration.

2015-01-29  Marek Polacek  <polacek@redhat.com>

	PR c/64709
	* c-typeck.c (pop_init_level): If constructor_elements has
	exactly one element with integer_zerop value, set constructor_zeroinit
	to 1.  Remove braces around warning_init call.

2015-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/64766
	* c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
	of FUNCTION_DECLs with error_mark_node.

2015-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR c/64778
	* c-typeck.c (convert_arguments): Return -1 if there are
	error_args, even if we've diagnosed too many arguments.

2015-01-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/64313
	* c-decl.c (merge_decls): Call set_builtin_decl_declared_p
	for builtins the user declared correctly.

2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
	    Bernd Schmidt  <bernds@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Ilmir Usmanov  <i.usmanov@samsung.com>

	* c-parser.c: Include "gomp-constants.h".
	(c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
	omp_clause_map_kind.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
	Use OMP_CLAUSE_SET_MAP_KIND.
	(c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
	PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
	(c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
	PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
	PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
	(c_parser_omp_clause_name): Handle "auto", "async", "copy",
	"copyout", "create", "delete", "deviceptr", "gang", "host",
	"num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
	"present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
	"present_or_create", "pcreate", "seq", "self", "vector",
	"vector_length", "wait", "worker".
	(OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
	(OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
	(OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
	(OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
	(c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
	(c_parser_oacc_wait_list, c_parser_oacc_data_clause)
	(c_parser_oacc_data_clause_deviceptr)
	(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
	(c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
	(c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
	(c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
	(c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
	(c_parser_oacc_parallel, c_parser_oacc_update)
	(c_parser_oacc_wait): New functions.
	* c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
	(c_finish_oacc_data): New prototypes.
	* c-typeck.c: Include "gomp-constants.h".
	(handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR.  Use
	GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
	OMP_CLAUSE_SET_MAP_KIND.
	(c_finish_oacc_parallel, c_finish_oacc_kernels)
	(c_finish_oacc_data): New functions.
	(c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
	OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
	OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
	OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
	OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
	GOMP_MAP_FORCE_DEVICEPTR.

2015-01-09  Michael Collison  <michael.collison@linaro.org>

	* c-array-notation.c: Include hash-set.h, machmode.h,
	vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
	fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
	* c-aux-info.c: Ditto.
	* c-convert.c: Ditto.
	* c-decl.c: Ditto.
	* c-errors.c: Ditto.
	* c-lang.c: Dittoxs.
	* c-objc-common.c: Ditto.
	* c-parser.c: Ditto.
	* c-typeck.c: Include hash-set.h, machmode.h,
	vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
	fold-const.h, wide-int.h, inchash.h, real.h and
	fixed-value.h due to flattening of tree.h.

2015-01-07  Marek Polacek  <polacek@redhat.com>

	PR c/64417
	* c-typeck.c (process_init_element): Disallow initialization of
	a flexible array member with a string constant if the structure
	is in an array.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/64344
	* c-typeck.c (convert_for_assignment, c_finish_return): For
	-fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
	types also set in_late_binary_op around convert call.
	* c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
	to integral type casts, if not in_late_binary_op, pass c_fully_fold
	result on expr as last argument to ubsan_instrument_float_cast,
	if in_late_binary_op, don't use c_save_expr but save_expr.

	Update copyright years.

2015-01-05  Marek Polacek  <polacek@redhat.com>

	PR c/64423
	* c-typeck.c (build_array_ref): Pass loc down to
	warn_array_subscript_with_type_char.

2014-12-20  Martin Uecker  <uecker@eecs.berkeley.edu>

	* c-typeck.c: New behavious for pointers to arrays with qualifiers
	(common-pointer-type): For pointers to arrays take qualifiers from
	element type.
	(build_conditional_expr): Add warnings for lost qualifiers.
	(comp-target-types): Allow pointers to arrays with different qualifiers.
	(convert-for-assignment): Adapt warnings for discarded qualifiers. Add
	WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
	to PEDWARN_FOR_QUALIFIERS.

2014-12-17  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/64289
	* c-convert.c: Include ubsan.h.
	(convert): For real -> integral casts and
	-fsanitize=float-cast-overflow don't call convert_to_integer, but
	instead instrument the float cast directly.

2014-11-29  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
	c_finish_stmt_expr): Remove NULL last argument from
	create_tmp_var_raw and create_tmp_var calls.
	* c-array-notation.c (fix_builtin_array_notation_fn,
	build_array_notation_expr, fix_conditional_array_notations_1,
	fix_array_notation_expr, fix_array_notation_call_expr): Likewise.

2014-11-28  Marek Polacek  <polacek@redhat.com>

	PR c/63862
	* c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
	convert the right operand to integer type.

2014-11-25  Marek Polacek  <polacek@redhat.com>

	PR c/63877
	* c-decl.c (start_function): Disable -Wmissing-declarations warning
	for inline functions.

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

	PR target/63764
	* c-typeck.c (build_array_ref): Adjust
	convert_vector_to_pointer_for_subscript caller.  If it returns true,
	call non_lvalue_loc on the result.

2014-11-11  Richard Biener  <rguenther@suse.de>

	* c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
	to true.

2014-11-10  Andi Kleen  <ak@linux.intel.com>

	PR c/60804
	* c-parser.c (c_parser_statement_after_labels): Call
	check_no_cilk.
	(c_parser_if_statement): Dito.
	(c_parser_switch_statement): Dito.
	(c_parser_while_statement): Dito.
	(c_parser_do_statement): Dito.
	(c_parser_for_statement): Dito.
	* c-typeck.c (c_finish_loop): Dito.

2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
	OPT_Wshift_count_overflow in the warnings.

2014-10-30  Marek Polacek  <polacek@redhat.com>

	* c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
	print the stripped version as well, if they're not the same.

2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>

	* c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
	machine_mode.

2014-10-28  Andrew MacLeod  <amacleod@redhat.com>

	* c-decl.c: Adjust include files.
	* c-parser.c: Ditto.

2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* c-tree.h (enum c_oracle_request): New.
	(c_binding_oracle_function): New typedef.
	(c_binding_oracle, c_pushtag, c_bind): Declare.
	* c-decl.c (c_binding_oracle): New global.
	(I_SYMBOL_CHECKED): New macro.
	(i_symbol_binding): New function.
	(I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
	(I_TAG_CHECKED): New macro.
	(i_tag_binding): New function.
	(I_TAG_BINDING, I_TAG_DECL): Redefine.
	(I_LABEL_CHECKED): New macro.
	(i_label_binding): New function.
	(I_LABEL_BINDING, I_LABEL_DECL): Redefine.
	(c_print_identifier): Save and restore c_binding_oracle.
	(c_pushtag, c_bind): New functions.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* c-typeck.c: Adjust include files.

2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/53061
	* c-objc-common.c (c_objc_common_init): Do not do diagnostics
	initialization here...
	(c_initialize_diagnostics): ... but here. Set defaults after
	building pretty-printer.

2014-10-23  Marek Polacek  <polacek@redhat.com>

	PR c/63626
	* c-decl.c (pop_scope): Don't print warning in external_scope.

2014-10-19  Marek Polacek  <polacek@redhat.com>

	PR c/63567
	* c-typeck.c (output_init_element): Allow initializing objects with
	static storage duration with compound literals even in C99 and add
	pedwarn for it.

2014-10-17  Marek Polacek  <polacek@redhat.com>

	PR c/63567
	* c-typeck.c (digest_init): Allow initializing objects with static
	storage duration with compound literals even in C99 and add pedwarn
	for it.

2014-10-17  Marek Polacek  <polacek@redhat.com>

	PR c/63543
	* c-tree.h (C_TYPE_ERROR_REPORTED): Define.
	* c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
	error multiple times.  Print the type.

2014-10-17  Marek Polacek  <polacek@redhat.com>

	PR c/63549
	* c-typeck.c (build_array_ref): Bail if the index in an incomplete
	type.

2014-10-17  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
	(start_function): Use OPT_Wimplicit_int instead of 0.
	(store_parm_decls_oldstyle): Likewise.

2014-10-17  Alan Modra  <amodra@gmail.com>

	PR middle-end/61848
	* c-decl.c (merge_decls): Don't merge section name or tls model
	to newdecl symtab node, instead merge to olddecl.  Override
	existing olddecl section name.  Set tls_model for all thread-local
	vars, not just OMP thread-private ones.  Remove incorrect comment.

2014-10-16  Andrew MacLeod  <amacleod@redhat.com>

	* c-decl.c: Adjust include files.

2014-10-14  DJ Delorie  <dj@redhat.com>

	* c-parser.c (c_parse_init): Add RID entries for each __intN.
	(c_token_starts_typename): Check all __intN, not just __int128.
	(c_token_starts_declspecs): Likewise.
	(c_parser_declspecs): Likewise.
	(c_parser_attribute_any_word): Likewise.
	(c_parser_objc_selector): Likewise.
	* c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
	(struct c_declspecs): Add int_n_idx field to record *which* __intN
	is specified.
	* c-decl.c (declspecs_add_type): Check for all __intN, not just
	__int128.
	(finish_declspecs): Likewise.

2014-10-13  Anthony Brandon  <anthony.brandon@gmail.com>

	* c-parser.c (c_parser_all_labels): New function to replace
	the duplicate code.
	(c_parser_statement): Call the new function.

2014-10-09  Marek Polacek  <polacek@redhat.com>

	PR c/63480
	* c-typeck.c (pop_init_level): Don't warn about initializing
	with { }.

2014-10-07  Marek Polacek  <polacek@redhat.com>

	PR c/59717
	* c-decl.c (header_for_builtin_fn): New function.
	(implicitly_declare): Suggest which header to include.

2014-10-07  Marek Polacek  <polacek@redhat.com>

	* c-convert.c (convert): Use error_operand_p.
	* c-typeck.c (require_complete_type): Likewise.
	(really_atomic_lvalue): Likewise.
	(digest_init): Likewise.
	(handle_omp_array_sections_1): Likewise.

2014-10-03  Marek Polacek  <polacek@redhat.com>

	PR c/63453
	* c-decl.c (pop_scope): Don't warn about "inline function declared
	but never defined" for functions marked with gnu_inline attribute.

2014-09-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/63249
	* c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
	on low_bound and length.

2014-09-24  Marek Polacek  <polacek@redhat.com>

	PR c/61405
	PR c/53874
	* c-parser.c: Don't define CPP_KEYWORD.
	(c_parser_switch_statement): Pass original type to c_finish_case.
	* c-tree.h (c_finish_case): Update declaration.
	* c-typeck.c (c_finish_case): Add TYPE parameter.  Pass it
	conditionally to c_do_switch_warnings.

2014-09-03  Marek Polacek  <polacek@redhat.com>

	PR c/62024
	* c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
	conversions.

2014-09-02  Jakub Jelinek  <jakub@redhat.com>
	    Balaji V. Iyer  <balaji.v.iyer@intel.com>
	    Igor Zamyatin  <igor.zamyatin@intel.com>

	* c-parser.c (c_parser_cilk_for): New function.
	(c_parser_cilk_grainsize): Likewise.
	(c_get_temp_regvar): Likewise.
	(c_parser_statement_after_labels): Added RID_CILK_FOR case.
	(c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
	(c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
	* c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
	case.

2014-08-27  Chen Gang  <gang.chen.5i5j@gmail.com>

	* c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
	with using HOST_WIDE_INT without truncation to 'int'

2014-08-22  Marek Polacek  <polacek@redhat.com>

	PR c++/62199
	* c-typeck.c (parser_build_binary_op): Adjust call to
	warn_logical_not_parentheses.

2014-08-22  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR other/62008
	* c-parser.c (c_parser_array_notation): Check for correct
	type of an array added.

2014-08-19  Marek Polacek  <polacek@redhat.com>

	PR c++/62153
	* c-typeck.c (build_binary_op): If either operand of a comparison
	is a boolean expression, call maybe_warn_bool_compare.

2014-08-19  Patrick Palka  <ppalka@gcc.gnu.org>

	PR c/45584
	* c-typeck.c (build_c_cast): Do a conversion even when the
	TYPE_MAIN_VARIANTs are the same.

2014-08-19  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (diagnose_mismatched_decls): Unconditionally call
	pedwarn_c99 instead of pedwarn.
	(grokfield): Likewise.
	(warn_defaults_to): New function.
	(grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
	Unconditionally call pedwarn_c99 instead of pedwarn.
	(start_function): Call warn_defaults_to instead of pedwarn_c99.
	(declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
	check flag_isoc11 before.
	* c-errors.c (pedwarn_c99): Change the return type to bool.
	Handle -Wc99-c11-compat.
	* c-parser.c (disable_extension_diagnostics): Handle
	warn_c99_c11_compat.
	(restore_extension_diagnostics): Likewise.
	(c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
	instead of pedwarn, don't check flag_isoc11 before.
	(c_parser_declspecs): Likewise.
	(c_parser_alignas_specifier): Likewise.
	(c_parser_alignof_expression): Likewise.
	(c_parser_generic_selection): Likewise.
	* c-tree.h (pedwarn_c99): Update declaration.
	* c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
	of pedwarn_c99.

2014-08-19  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
	to pedwarn_c90.
	* c-errors.c: Include "opts.h".
	(pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
	* c-parser.c (disable_extension_diagnostics): Handle negative value
	of warn_c90_c99_compat, too.
	(restore_extension_diagnostics): Likewise.
	(c_parser_compound_statement_nostart): Pass
	OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.

2014-08-12  Marek Polacek  <polacek@redhat.com>

	* c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
	Add pedwarn.
	(c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
	Likewise.
	(c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.

2014-08-10  Marek Polacek  <polacek@redhat.com>

	PR c/51849
	* c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
	Call pedwarn_c90 instead of pedwarn.
	(check_bitfield_type_and_width): Likewise.
	(declspecs_add_qual): Likewise.
	(declspecs_add_type): Likewise.
	(warn_variable_length_array): Unify function for -pedantic and -Wvla.
	Adjust to only call pedwarn_c90.
	(grokdeclarator): Remove pedantic && !flag_isoc99 check.  Call
	pedwarn_c90 instead of pedwarn.
	* c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
	* c-parser.c (disable_extension_diagnostics): Handle
	warn_c90_c99_compat.
	(restore_extension_diagnostics): Likewise.
	(c_parser_enum_specifier): Remove check for !flag_isoc99.  Call
	pedwarn_c90 instead of pedwarn.
	(c_parser_initelt): Likewise.
	(c_parser_postfix_expression): Likewise.
	(c_parser_postfix_expression_after_paren_type): Likewise.
	(c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
	* c-tree.h: Fix formatting.
	* c-typeck.c (build_array_ref): Remove check for !flag_isoc99.  Call
	pedwarn_c90 instead of pedwarn.

2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>

	* c-typeck.c: Remove include of pointer-set.h.

2014-08-07  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.

2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>

	* c-typeck.c: Use hash_map instead of pointer_map.

2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>

	* c-decl.c: Use hash_set instead of pointer_set.

2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR middle-end/61455
	* c-array-notation.c (expand_array_notations): Handling
	of DECL_EXPR added.

2014-07-31  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/60517
	* c-typeck.c (c_finish_return): Return 0 instead of the address of
	a local variable.

2014-07-30  Tom Tromey  <tromey@redhat.com>

	* c-typeck.c (struct constructor_stack) <designator_depth>: New
	field.
	(really_start_incremental_init, push_init_level): Initialize
	designator_depth.
	(pop_init_level): Set global designator_depth.
	(process_init_element): Check for designated_init attribute.

2014-07-20  Marek Polacek  <polacek@redhat.com>

	PR c/61852
	* c-decl.c (implicit_decl_warning): Add location_t parameter.  Use it.
	(implicitly_declare): Pass location to implicit_decl_warning.

2014-07-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/61294
	* c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
	If non-NULL, call c_parser_check_literal_zero.
	(c_parser_check_literal_zero): New function.
	(c_parser_postfix_expression_after_primary): Adjust
	c_parser_expr_list caller, handle -Wmemset-transposed-args.

2014-07-06  Marek Polacek  <polacek@redhat.com>

	PR c/6940
	* c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
	* c-tree.h (C_ARRAY_PARAMETER): Define.
	* c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
	function parameter.

2014-07-02  Jan Hubicka  <hubicka@ucw.cz>
	    Chen Gang  <gang.chen.5i5j@gmail.com>

	* c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
	releasing symbol.

2014-07-01  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
	instead of 0 to WARN_FOR_ASSIGNMENT.

2014-07-01  Marek Polacek  <polacek@redhat.com>

	PR c/58286
	* c-typeck.c (convert_for_assignment): Pass
	OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.

2014-06-30  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (grokdeclarator): Don't instrument VLAs if the function
	has no_sanitize_undefined attribute.

2014-06-30  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR middle-end/57541
	* c-array-notation.c (fix_builtin_array_notation_fn):
	Check for 0 arguments in builtin call. Check that bultin argument is
	correct.
	* c-parser.c (c_parser_array_notation): Check for incorrect initial
	index.

2014-06-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* c-parser.c (c_parser_declaration_or_fndef): Discard all type
	qualifiers in __auto_type for atomic types.
	(c_parser_typeof_specifier): Discard all type qualifiers in
	__typeof__ for atomic types.

2014-06-25  Marek Polacek  <polacek@redhat.com>

	PR c/61162
	* c-parser.c (c_parser_statement_after_labels): Pass the location of
	the return expression to c_finish_return.

2014-06-25  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_finish_omp_clauses): Make sure
	OMP_CLAUSE_LINEAR_STEP has correct type.

2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>

	* c-decl.c: Adjust.

2014-06-24  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_for_loop): For
	#pragma omp parallel for simd move lastprivate clause from parallel
	to for rather than simd.

2014-06-23  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (parser_build_binary_op): Don't call
	warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.

2014-06-15  Jan Hubicka  <hubicka@ucw.cz>

	* c-parser.c (c_parser_omp_threadprivate): Likewise.
	* c-decl.c (merge_decls): Likewise.

2014-06-09  Marek Polacek  <polacek@redhat.com>

	PR c/36446
	* c-typeck.c (error_init): Call inform instead of error_at.
	(pedwarn_init): Call inform instead of pedwarn.
	(warning_init): Call inform instead of warning_at.

2014-06-07  Jan Hubicka  <hubicka@ucw.cz>

	* c-decl.c (merge_decls): Use set_decl_section_name.
	(duplicate_decls): Remove node if it exists.

2014-06-05  S. Gilles  <sgilles@terpmail.umd.edu>

	PR c/53119
	* c-typeck.c (push_init_level, process_init_element,
	pop_init_level): Correct check for zero initialization, move
	missing brace warning to respect zero initialization.

2014-06-05  Marek Polacek  <polacek@redhat.com>

	PR c/56724
	* c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.

2014-06-05  Marek Polacek  <polacek@redhat.com>

	PR c/49706
	* c-typeck.c (parser_build_binary_op): Warn when logical not is used
	on the left hand side operand of a comparison.

2014-06-05  Marek Polacek  <polacek@redhat.com>

	PR c/48062
	* c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
	Print note only if the warning was printed.

2014-06-04  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR c/58942
	* c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
	with a pointer.

2014-06-03  Marek Polacek  <polacek@redhat.com>

	PR c/60439
	* c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
	c_start_case.
	* c-tree.h (c_start_case): Update.
	* c-typeck.c (c_start_case): Add new boolean parameter.  Warn if
	switch condition has boolean value.

2014-06-02  Andrew MacLeod  <amacleod@redhat.com>

	* c-decl.c: Include builtins.h.
	* c-parser.c: Likewise.

2014-05-27  Marek Polacek  <polacek@redhat.com>

	PR c/56724
	* c-typeck.c (convert_arguments): Get location of a parameter.  Change
	error and warning calls to error_at and warning_at.  Pass location of
	a parameter to it.  Call warning_at with OPT_Wtraditional_conversion.
	(convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
	WARN_FOR_QUALIFIERS.  Pass expr_loc to those.

2014-05-26  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR c/61191
	* c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
	function parameters.

2014-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* c-decl.c (merge_decls): Preserve symtab node pointers.
	(duplicate_decls): Free new decl.

2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>

	* c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
	initialization.

	* c-parser.c (c_parser_omp_target): Return bool values.

2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_omp_clause_thread_limit): Rename
	num_teams_loc variable to num_thread_limit_loc.

2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	* c-array-notation.c (expand_array_notations): Use void_node
	instead of void_zero_node.

2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>

	* c-decl.c (finish_struct): Adjust.
	(finish_enum): Likewise.
	(bind): Adjust.
	(record_inline_static): Likewise.
	(push_scope): Likewise.
	(make_label): Likewise.
	(lookup_label_for_goto): Likewise.
	(finish_struct): Likewise.
	(finish_enum): Likewise.
	(store_parm_decls): Likewise.
	(c_push_function_context): Likewise.
	* c-lang.h: Remove usage of variable_size gty attribute.
	* c-parser.c (c_parse_init): Adjust.
	(c_parse_file): Likewise.

2014-05-13  Marek Polacek  <polacek@redhat.com>

	PR c/61162
	* c-typeck.c (convert_for_assignment): Pass location to
	WARN_FOR_ASSIGNMENT instead of input_location.

2014-05-10  Marek Polacek  <polacek@redhat.com>

	* c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
	maybe_warn_string_init.
	(c_parser_postfix_expression_after_paren_type): Pass type_loc to
	maybe_warn_string_init.
	* c-tree.h (maybe_warn_string_init): Update declaration.
	* c-typeck.c (maybe_warn_string_init): Add location parameter.
	Call pedwarn_init with loc instead of with input_location.
	(digest_init): Pass init_loc to maybe_warn_string_init.
	(pop_init_level): Call pedwarn_init with loc instead of with
	input_location.
	(set_init_index): Likewise.
	(process_init_element): Likewise.

2014-05-09  Marek Polacek  <polacek@redhat.com>

	PR c/61096
	* c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
	(c_parser_initelt): Pass location to set_init_label.  Pass array index
	location to set_init_index.
	* c-tree.h (push_init_level): Update declaration.
	(pop_init_level): Likewise.
	(set_init_index): Likewise.
	(set_init_label): Likewise.
	* c-typeck.c (error_init): Add location parameter.  Call error_at
	instead of error.
	(digest_init): Pass init_loc to error_init.
	(really_start_incremental_init):
	(push_init_level): Add location parameter.  Pass loc to pop_init_level
	and error_init.
	(pop_init_level): Likewise.
	(set_designator): Add location parameter.  Pass loc to pop_init_level,
	push_init_level, and error_init.
	(set_init_index): Add location parameter.  Pass loc to error_init and
	set_designator.
	(set_init_label): Likewise.
	(output_init_element): Pass loc to error_init.
	(process_init_element): Pass loc to error_init, pop_init_level,
	pedwarn_init, and push_init_level.

2014-05-09  Marek Polacek  <polacek@redhat.com>

	PR c/50459
	* c-parser.c (c_parser_attributes): Parse the arguments as an
	expression-list if the attribute takes identifier.

2014-05-08  Marek Polacek  <polacek@redhat.com>

	PR c/61053
	* c-decl.c (grokdeclarator): Use min_align_of_type instead of
	TYPE_ALIGN_UNIT.

2014-05-08  Marek Polacek  <polacek@redhat.com>

	PR c/61077
	* c-decl.c (start_function): Warn for _Atomic-qualified return type
	of main.

2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
	    Mike Stump  <mikestump@comcast.net>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
	(finish_enum): Use wide-int interfaces.
	* c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
	* c-typeck.c (build_c_cast): Likewise.
	(set_nonincremental_init_from_string): Likewise.
	(c_tree_equal): Likewise.

2014-05-02  Marek Polacek  <polacek@redhat.com>

	PR c/25801
	* c-typeck.c (c_size_in_bytes): Update comment.  Don't call error.
	Return size_one_node when the type is not complete.
	(pointer_diff): Remove comment.
	(build_unary_op): Improve error messages.

2014-05-02  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (c_finish_return): Separate warning_at calls.

2014-05-02  Marek Polacek  <polacek@redhat.com>

	* c-tree.h (error_init): Remove declaration.
	(pedwarn_init): Likewise.
	* c-typeck.c (error_init): Make static and move above.
	(pedwarn_init): Likewise.
	(warning_init): Move above.
	(maybe_warn_string_init): Likewise.

2014-05-01  Jeff Law  <law@redhat.com>

	Revert:

	2014-04-24  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
	* c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
	avoid goto.

2014-05-02  Marek Polacek  <polacek@redhat.com>

	PR c/60784
	* c-typeck.c (push_init_level): Set constructor_designated to
	p->designated for structures.

2014-05-01  Marek Polacek  <polacek@redhat.com>

	PR c/60915
	* c-parser.c (c_parser_declaration_or_fndef): Give better error if
	function-definition has an attribute after the declarator.

2014-05-01  Marek Polacek  <polacek@redhat.com>

	PR c/60257
	* c-typeck.c (warning_init): Add location_t parameter.  Call
	warning_at instead of warning.
	(push_init_level): Pass input_location to warning_init.
	(add_pending_init): Add location_t parameter.  Pass loc to
	warning_init.
	(set_nonincremental_init): Pass input_location to add_pending_init.
	(set_nonincremental_init_from_string): Likewise.
	(output_init_element): Pass loc to warning_init and to
	add_pending_init.

2014-05-01  Marek Polacek  <polacek@redhat.com>

	PR c/43395
	* c-typeck.c (c_finish_return): Distinguish between label and variable
	when warning about returning local address.

2014-05-01  Marek Polacek  <polacek@redhat.com>

	PR c/29467
	* c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
	in C89 mode.

2014-05-01  Marek Polacek  <polacek@redhat.com>

	PR c/43245
	* c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
	instead of 0 to WARN_FOR_QUALIFIERS.

2014-05-01  Marek Polacek  <polacek@redhat.com>

	PR c/56989
	* c-typeck.c (default_conversion): Use better location for
	error call.

2014-04-30  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (build_binary_op): Call ubsan_instrument_division
	also when SANITIZE_FLOAT_DIVIDE is on.

2014-04-30  Marek Polacek  <polacek@redhat.com>

	PR c/60139
	* c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
	and pedwarn_init.  Use loc insted of input_location.

2014-04-30  Marek Polacek  <polacek@redhat.com>

	PR c/60351
	* c-typeck.c (build_binary_op): Use location when warning about
	shift count.

2014-04-25  Marek Polacek  <polacek@redhat.com>

	PR c/18079
	* c-decl.c (diagnose_mismatched_decls): Warn for mismatched
	always_inline/noinline and hot/cold attributes.

2014-04-25  Marek Polacek  <polacek@redhat.com>

	PR c/60114
	* c-parser.c (c_parser_initelt): Pass input_location to
	process_init_element.
	(c_parser_initval): Pass loc to process_init_element.
	* c-tree.h (process_init_element): Adjust declaration.
	* c-typeck.c (push_init_level): Pass input_location to
	process_init_element.
	(pop_init_level): Likewise.
	(set_designator): Likewise.
	(output_init_element): Add location_t parameter.  Pass loc to
	digest_init.
	(output_pending_init_elements): Pass input_location to
	output_init_element.
	(process_init_element): Add location_t parameter.  Pass loc to
	output_init_element.

2014-04-24  Jakub Jelinek  <jakub@redhat.com>

	* c-parser.c (c_parser_omp_atomic): Allow seq_cst before
	atomic-clause, allow comma in between atomic-clause and
	seq_cst.

2014-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR c/59073
	* c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
	fails, don't set OM_PARALLEL_COMBINED and return NULL.

2014-04-12  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR middle-end/60469
	* c-array-notation.c (fix_builtin_array_notation_fn): Use
	create_tmp_var instead build_decl for creating temps.
	(build_array_notation_expr): Likewise.
	(fix_conditional_array_notations_1): Likewise.
	(fix_array_notation_expr): Likewise.
	(fix_array_notation_call_expr): Likewise.

2014-03-28  Jakub Jelinek  <jakub@redhat.com>

	PR c++/60689
	* c-tree.h (c_build_function_call_vec): New prototype.
	* c-typeck.c (build_function_call_vec): Don't call
	resolve_overloaded_builtin here.
	(c_build_function_call_vec): New wrapper function around
	build_function_call_vec.  Call resolve_overloaded_builtin here.
	(convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
	Call c_build_function_call_vec instead of build_function_call_vec.
	* c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
	* c-decl.c (finish_decl): Likewise.

2014-03-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/55383
	* c-typeck.c: Use correct format string in cast-qual warning

2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>

	* c-decl.c (c_decl_attributes): Use
	lang_hooks.types.omp_mappable_type.
	* c-typeck.c (c_finish_omp_clauses): Likewise.

2014-03-06  Marek Polacek  <polacek@redhat.com>

	PR c/60197
	* c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
	of checking tree code.

2014-02-19  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

	* c-parser.c (c_parser_declspecs): Replace call to error by error_at.
	(c_parser_parameter_declaration): Likewise.

2014-02-19  Marek Polacek  <polacek@redhat.com>

	PR c/60195
	* c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
	Call mark_exp_read on exp.value.
	(build_atomic_assign): Set TREE_NO_WARNING on val and old.  Set
	TREE_ADDRESSABLE on old instead of val.
	(emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.

2014-02-07  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

	* c-parser.c (c_parser_get_builtin_args): Replace calls to
	C_EXPR_APPEND by vec_safe_push.
	* c-tree.h (C_EXPR_APPEND): Remove.

2014-01-31  Marek Polacek  <polacek@redhat.com>

	PR c/59963
	* c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
	build_function_call_vec.
	(build_function_call): Likewise.
	(build_atomic_assign): Likewise.
	(build_function_call_vec): Add arg_loc parameter.  Use it.
	(convert_arguments): Likewise.
	(convert_for_assignment): Rename rhs_loc to expr_loc.
	* c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
	(c_parser_objc_keywordexpr): Likewise.
	(c_parser_postfix_expression_after_primary): Call
	build_function_call_vec with expr_loc rather than op_loc.
	Call c_parser_expr_list to fill arg_loc.  Pass arg_loc to
	build_function_call_vec.
	(c_parser_expr_list): Add locations parameter.  Fill it with locations
	of function arguments.
	* c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.

2014-01-30  Marek Polacek  <polacek@redhat.com>

	PR c/59940
	* c-typeck.c (build_function_call_vec): Use loc parameter.
	(convert_arguments): Add location parameter.  Use it.
	(ep_convert_and_check): Likewise.
	(build_atomic_assign): Adjust convert_for_assignment call.
	(build_modify_expr): Likewise.
	(digest_init): Likewise.
	(c_finish_return): Likewise.
	(build_conditional_expr): Adjust ep_convert_and_check calls.
	(convert_for_assignment): Add rhs_loc parameter.  Use it.
	(build_binary_op): Adjust convert_and_check and ep_convert_and_check
	calls.

2014-01-30  Richard Biener  <rguenther@suse.de>

	PR c/59905
	* c-typeck.c (build_function_call_vec): Do not replace calls
	to a function via an incompatible type with a runtime abort.

2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-parser.c (c_parser_declaration_or_fndef): Replaced
	flag_enable_cilkplus with flag_cilkplus.
	(c_parser_direct_declarator_inner): Likewise.
	(c_parser_attribute_any_word): Likewise.
	(c_parser_attributes): Likewise.
	(c_parser_compound_statement): Likewise.
	(c_parser_statement_after_labels): Likewise.
	(c_parser_if_statement): Likewise.
	(c_parser_switch_statement): Likewise.
	(c_parser_do_statement): Likewise.
	(c_parser_for_statement): Likewise.
	(c_parser_unary_expression): Likewise.
	(c_parser_postfix_expression): Likewise.
	(c_parser_postfix_expression_after_primary): Likewise.
	(c_parser_postfix_expression_after_primary): Likewise.
	(c_parser_omp_clause_name): Likewise.
	(c_finish_omp_declare_simd): Likewise.
	(c_parser_cilk_verify_simd): Likewise.
	* c-typeck.c (build_array_ref): Likewise.
	(build_function_call_vec): Likewise.
	(convert_arguments): Likewise.
	(build_compound_expr): Likewise.
	(c_finish_return): Likewise.
	(c_finish_if_stmt): Likewise.
	(c_finish_loop): Likewise.
	(build_binary_op): Likewise.

2014-01-23  Marek Polacek  <polacek@redhat.com>

	PR c/59846
	* c-typeck.c (parser_build_binary_op): Use location instead of
	input_location.
	(build_binary_op): Pass location to shorten_compare.

2014-01-23  Marek Polacek  <polacek@redhat.com>

	PR c/58346
	* c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
	an empty aggregate.

2014-01-23  Marek Polacek  <polacek@redhat.com>

	PR c/59871
	* c-typeck.c (build_compound_expr): Warn even for right-hand operand
	of a comma expression.
	(emit_side_effect_warnings): Likewise.

2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	PR c/59825
	* c-array-notation.c (expand_array_notation_exprs): Rewrote this
	function to use walk_tree and moved a lot of its functionality to
	expand_array_notations.
	(expand_array_notations): New function.

2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
	attribute an attribute without value.

2014-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/58809
	* c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
	BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.

2014-01-22  Marek Polacek  <polacek@redhat.com>

	PR c/59891
	* c-typeck.c (build_conditional_expr): Call c_fully_fold instead
	of remove_c_maybe_const_expr on op1 and op2.

2014-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/58943
	* c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
	effects, preevaluate rhs using SAVE_EXPR first.

2014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	PR c++/59631
	* c-parser.c (c_parser_postfix_expression): Replaced consecutive if
	statements with if-elseif statements.

2014-01-06  Marek Polacek  <polacek@redhat.com>

	PR c/57773
	* c-decl.c (check_bitfield_type_and_width): Warn for implementation
	defined bit-field types only in ISO C.

2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	Update copyright years

2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-array-notation.c: Use the standard form for the copyright notice.

2013-12-18  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
	(c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
	field in parser is not empty.  If not-empty, call the function
	c_parser_finish_omp_declare_simd.
	(c_parser_cilk_clause_vectorlength): Modified function to be shared
	between SIMD-enabled functions and #pragma simd.  Added new parameter.
	(c_parser_cilk_all_clauses): Modified the usage of the function
	c_parser_cilk_clause_vectorlength as mentioned above.
	(c_parser_cilk_simd_fn_vector_attrs): New function.
	(c_finish_cilk_simd_fn_tokens): Likewise.
	(is_cilkplus_vector_p): Likewise.
	(c_parser_omp_clause_name): Added checking for "vectorlength,"
	"nomask," and "mask" strings in clause name.
	(c_parser_omp_all_clauses): Added 3 new case statements:
	PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
	PRAGMA_CILK_CLAUSE_NOMASK.
	(c_parser_attributes): Added a cilk_simd_fn_tokens parameter.  Added a
	check for vector attribute and if so call the function
	c_parser_cilk_simd_fn_vector_attrs.  Also, when Cilk plus is enabled,
	called the function c_finish_cilk_simd_fn_tokens.
	(c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
	parser field is non-empty.  If so, parse them as you would parse
	the omp declare simd pragma.
	(c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
	Added a check when step is a parameter and flag it as error.
	(CILK_SIMD_FN_CLAUSE_MASK): New #define.
	(c_parser_cilk_clause_name): Changed pragma_cilk_clause to
	pragma_omp_clause.

2013-12-17  Thomas Schwinge  <thomas@codesourcery.com>

	* c-parser.c (c_parser_omp_parallel): Fix description.

2013-12-11  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
	(LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
	(LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
	* c-typeck.c (cilk_install_body_with_frame_cleanup): New function.

2013-12-04  Joseph Myers  <joseph@codesourcery.com>

	PR c/52023
	* c-parser.c (c_parser_alignas_specifier): Use
	c_sizeof_or_alignof_type instead of c_alignof.
	(c_parser_alignof_expression): Likewise, with min_alignof
	parameter depending on alignof spelling used.

2013-12-04  Marek Polacek  <polacek@redhat.com>

	PR c/54113
	* c-decl.c (start_function): Don't warn for missing prototype for
	inline functions.

2013-12-03  Marek Polacek  <polacek@redhat.com>

	PR c/59351
	* c-decl.c (build_compound_literal): Allow compound literals with
	empty initial value.

2013-12-02  Joseph Myers  <joseph@codesourcery.com>

	PR c/58235
	* c-typeck.c (build_modify_expr): Diagnose assignment to
	expression with array type.

2013-11-29  Joseph Myers  <joseph@codesourcery.com>

	PR c/42262
	* c-typeck.c (process_init_element): Do not treat a string as
	initializing a whole array when used with a designator for an
	individual element.

2013-11-29  Joseph Myers  <joseph@codesourcery.com>

	PR c/57574
	* c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
	an inline function following a static declaration.

2013-11-28  Jakub Jelinek  <jakub@redhat.com>

	PR c/59310
	* c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
	to p_name before calling c_parser_omp_teams instead of after.
	(c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
	argument.  Remove unused p_name variable.

2013-11-27  Aldy Hernandez  <aldyh@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* c-decl.c (c_builtin_function_ext_scope): Avoid binding if
	external_scope is NULL.

2013-11-27  Tom de Vries  <tom@codesourcery.com>
	    Marc Glisse  <marc.glisse@inria.fr>

	PR c++/59032
	* c-typeck.c (build_unary_op): Allow vector increment and decrement.

2013-11-22  Andrew MacLeod  <amacleod@redhat.com>

	* c-typeck.c: Add required include files from gimple.h.

2013-11-22  David Malcolm  <dmalcolm@redhat.com>

	* c-decl.c (define_label, shadow_tag_warned)
	(check_bitfield_type_and_width, grokdeclarator, grokparms,
	store_parm_decls_newstyle, store_parm_decls_oldstyle)
	(declspecs_add_type): Remove use of in_system_header macro.
	* c-parser.c (c_parser_unary_expression): Likewise.
	* c-typeck.c (store_init_value, process_init_element)
	(c_start_case): Likewise.

	* c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
	macro.

	* c-parser.c (c_parser_set_source_position_from_token): Remove
	reference to in_system_header from comment.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-decl.c (grokdeclarator): Update comment to refer to
	tree_to_[su]hwi rather than tree_low_cst.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
	tree_to_uhwi throughout.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
	throughout.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
	throughout.

2013-11-15  Aldy Hernandez  <aldyh@redhat.com>

	* c-parser.c (c_parser_cilk_simd): New.
	(c_parser_cilk_verify_simd): New.
	(c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
	(c_parser_omp_for_loop): Add case for NE_EXPR.
	Set c_break_label for CILK_SIMD.
	(c_parser_cilk_clause_vectorlength): New.
	(c_parser_cilk_clause_linear): New.
	(c_parser_cilk_clause_name): New.
	(c_parser_cilk_all_clauses): New.
	* c-typeck.c (build_unary_op): Pass location argument to
	readonly_error.
	(build_modify_expr): Same.
	(build_asm_expr): Same.
	(c_finish_bc_stmt): Error on break/continue in loops.

2013-11-14  Andrew MacLeod  <amacleod@redhat.com>

	* c-typeck.c: Include only gimplify.h and gimple.h as needed.

2013-11-14  Diego Novillo  <dnovillo@google.com>

	* c-decl.c: Include print-tree.h.
	Include stor-layout.h.
	Include varasm.h.
	Include attribs.h.
	Include stringpool.h.
	* c-lang.c: Include fold-const.h.
	* c-parser.c: Include stringpool.h.
	Include attribs.h.
	Include stor-layout.h.
	Include varasm.h.
	Include trans-mem.h.
	* c-typeck.c: Include stor-layout.h.
	Include trans-mem.h.
	Include varasm.h.
	Include stmt.h.

2013-11-13  Joseph Myers  <joseph@codesourcery.com>

	* c-tree.h (c_typespec_keyword): Add cts_auto_type.
	* c-decl.c (declspecs_add_type, finish_declspecs): Handle
	__auto_type.
	* c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
	(c_parser_attribute_any_word, c_parser_objc_selector): Handle
	RID_AUTO_TYPE.
	(c_parser_declspecs): Take argument AUTO_TYPE_OK.
	(c_parser_declaration_or_fndef, c_parser_struct_declaration)
	(c_parser_declarator, c_parser_direct_declarator_inner)
	(c_parser_parameter_declaration, c_parser_type_name): All callers
	changed.
	(c_parser_declaration_or_fndef): Handle declarations with type
	determined from the initializer.

2013-11-12  Andrew MacLeod  <amacleod@redhat.com>

	* c-typeck.c: Include gimplify.h.

2013-11-12  Joseph Myers  <joseph@codesourcery.com>

	* c-tree.h (struct c_declspecs): Add thread_gnu_p field.
	* c-parser.c (c_parser_declspecs): Mention _Thread_local in
	comment.
	* c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
	or _Thread_local as appropriate in diagnostics.
	(build_null_declspecs): Initialize ret->thread_gnu_p.
	(declspecs_add_scspec): Handle either __thread or _Thread_local
	for RID_THREAD.  Diagnose _Thread_local for pre-C11 standards if
	pedantic.  Do not disallow _Thread_local extern and _Thread_local
	static.

2013-11-07  Joseph Myers  <joseph@codesourcery.com>
	    Andrew MacLeod  <amacleod@redhat.com>

	* c-aux-info.c (gen_type): Handle atomic qualifier.
	* c-decl.c (validate_proto_after_old_defn): Do not remove atomic
	qualifiers when compating types.
	(shadow_tag_warned): Handle atomic_p in declspecs.
	(quals_from_declspecs): Likewise.
	(start_decl): Use c_type_promotes_to when promoting argument
	types.
	(grokdeclarator): Handle _Atomic.
	(get_parm_info): Diagnose any qualifier on "void" as only
	parameter.
	(store_parm_decls_oldstyle): Do not remove atomic qualifiers when
	comparing types.  Use c_type_promotes_to when promoting argument
	types.
	(finish_function): Use c_type_promotes_to when promoting argument
	types.
	(build_null_declspecs): Handle atomic_p in declspecs.
	(declspecs_add_qual): Handle RID_ATOMIC.
	* c-parser.c (c_token_starts_typename, c_token_is_qualifier)
	(c_token_starts_declspecs): Handle RID_ATOMIC.
	(c_parser_declspecs): Handle atomic type specifiers and
	qualifiers.
	(c_parser_typeof_specifier): Remove const and _Atomic qualifiers
	from types of expressions with atomic type.
	(c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
	(c_parser_attribute_any_word): Handle RID_ATOMIC.
	(c_parser_initializer, c_parser_initelt, c_parser_initval)
	(c_parser_statement_after_labels, c_parser_switch_statement)
	(c_parser_for_statement, c_parser_expr_no_commas)
	(c_parser_conditional_expression, c_parser_binary_expression)
	(c_parser_cast_expression, c_parser_unary_expression)
	(c_parser_postfix_expression)
	(c_parser_postfix_expression_after_primary, c_parser_expression):
	Use convert_lvalue_to_rvalue.
	(c_parser_expression_conv, c_parser_expr_list): Document
	conversion of lvalues to rvalues.  Use convert_lvalue_to_rvalue.
	(c_parser_objc_synchronized_statement): Use
	convert_lvalue_to_rvalue.
	(c_parser_objc_selector): Handle RID_ATOMIC.
	(c_parser_objc_receiver, c_parser_array_notation): Use
	convert_lvalue_to_rvalue.
	* c-tree.h (ctsk_typeof): Adjust comment to mention use for
	_Atomic (type-name).
	(struct c_declspecs): Add atomic_p field.
	(convert_lvalue_to_rvalue): Declare.
	* c-typeck.c (c_type_promotes_to): Promote atomic types to
	corresponding atomic types.
	(qualify_type): Don't add _Atomic qualifiers from second argument.
	(comp_target_types): Do not allow _Atomic mismatches.
	(type_lists_compatible_p): Do not remove atomic qualifiers when
	comparing types.
	(really_atomic_lvalue, convert_lvalue_to_rvalue)
	(build_atomic_assign): New functions.
	(build_unary_op): Use build_atomic_assign for atomic increment and
	decrement.
	(build_conditional_expr): Do not treat _Atomic void as a qualified
	version of void.
	(build_modify_expr): Use build_atomic_assign for atomic LHS.
	(find_anonymous_field_with_type, convert_to_anonymous_field)
	(convert_for_assignment): Do not remove atomic qualifiers when
	comparing types.
	(digest_init): Do not accept initialization of arrays of atomic
	elements by string constants.
	(build_asm_expr): Use convert_lvalue_to_rvalue.
	(build_binary_op): Do not treat _Atomic void as a qualified
	version of void.

2013-11-06  DJ Delorie  <dj@redhat.com>

	* c-decl.c (locate_old_decl): If a previous conflicting decl is
	both explicit and builtin, print the location of the explicit one.

2013-11-05  Tobias Burnus  <burnus@net-b.de>

	* c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
	c_parser_omp_distribute, c_parser_omp_teams,
	c_parser_omp_target, c_parser_omp_declare): Handle
	-fopenmp-simd.

2013-11-03  Marek Polacek  <polacek@redhat.com>

	* c-decl.c (grokdeclarator): Add VLA instrumentation.

2013-11-01  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
	check_dup_generic at the end, unless remove is true.
	(c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
	remove = true;.
	(c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.

2013-10-31  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
	with decl that is not pointer nor array.

2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-decl.c (finish_function): Added a call for insert_cilk_frame when
	a spawning function is found.
	* c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
	(LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
	(LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
	* c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
	case.
	(c_parser_postfix_expression): Added RID_CILK_SPAWN case.
	* c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
	expr.
	(c_finish_return): Added a check to reject _Cilk_spawn in return
	expression.
	(build_cilk_spawn): New function.
	(build_cilk_sync): Likewise.
	* Makefile.in (c-decl.o): Added cilk.h in dependency list.

2013-10-27  Tobias Burnus  <burnus@net-b.de>

	PR other/33426
	* c-parser.c (c_parser_while_statement, c_parser_while_statement,
	c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
	(c_parser_statement_after_labels): Update calls.

2013-10-24  Tobias Burnus  <burnus@net-b.de>

	PR other/33426
	* c-parser.c (c_parser_pragma, c_parser_for_statement):
	Handle PRAGMA_IVDEP.
	(c_parser_statement_after_labels): Update call.

2013-10-24  Marek Polacek  <polacek@redhat.com>

	* c-parser.c (c_parser_struct_declaration): Add a comment.
	(c_parser_declarator): Don't allow _Alignas here.

2013-10-17  Andrew MacLeod  <amacleod@redhat.com>

	* c-parser.c: Include omp-low.h.
	* c-typeck.c: Likewise.

2013-10-17  Marek Polacek  <polacek@redhat.com>

	PR c/58267
	* c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
	Document syntax of the array-declarator.
	(c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
	are not permitted.
	(c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
	(c_parser_struct_declaration): Likewise.
	(c_parser_declarator): Likewise.
	(c_parser_direct_declarator_inner): Likewise.
	(c_parser_parameter_declaration): Likewise.
	(c_parser_type_name): Likewise.

2013-10-11  Jakub Jelinek  <jakub@redhat.com>

	* c-lang.h (current_omp_declare_target_attribute): New extern
	decl.
	* c-parser.c: Include c-lang.h.
	(struct c_parser): Change tokens to c_token *.
	Add tokens_buf field.  Change tokens_avail type to unsigned int.
	(c_parser_consume_token): If parser->tokens isn't
	&parser->tokens_buf[0], increment parser->tokens.
	(c_parser_consume_pragma): Likewise.
	(enum pragma_context): Add pragma_struct and pragma_param.
	(c_parser_external_declaration): Adjust
	c_parser_declaration_or_fndef caller.
	(c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
	argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
	Adjust recursive call.
	(c_parser_struct_or_union_specifier): Use pragma_struct instead
	of pragma_external.
	(c_parser_parameter_declaration): Use pragma_param instead of
	pragma_external.
	(c_parser_compound_statement_nostart, c_parser_label,
	c_parser_for_statement): Adjust
	c_parser_declaration_or_fndef callers.
	(c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
	it through to c_parser_conditional_expression.
	(c_parser_conditional_expression): Add omp_atomic_lhs argument,
	pass it through to c_parser_binary_expression.  Adjust recursive
	call.
	(c_parser_binary_expression): Remove prec argument, add
	omp_atomic_lhs argument instead.  Always start from PREC_NONE, if
	omp_atomic_lhs is non-NULL and one of the arguments of toplevel
	binop matches it, use build2 instead of parser_build_binary_op.
	(c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
	PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
	PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
	Handle pragma_struct and pragma_param the same as pragma_external.
	(c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
	(c_parser_omp_variable_list): Parse array sections for
	OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
	(c_parser_omp_clause_collapse): Fully fold collapse expression.
	(c_parser_omp_clause_reduction): Handle user defined reductions.
	(c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
	c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
	c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
	c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
	c_parser_omp_clause_depend, c_parser_omp_clause_map,
	c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
	c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
	c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
	(c_parser_omp_all_clauses): Add finish_p argument.  Don't call
	c_finish_omp_clauses if it is false.  Handle new OpenMP 4.0 clauses.
	(c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
	present to c_finish_omp_atomic.  Handle OpenMP 4.0 atomic forms.
	(c_parser_omp_for_loop): Add CODE argument, pass it through
	to c_finish_omp_for.  Change last argument to cclauses,
	and adjust uses to grab parallel clauses from the array of all
	the split clauses.  Adjust c_parser_binary_expression,
	c_parser_declaration_or_fndef and c_finish_omp_for callers.
	(omp_split_clauses): New function.
	(c_parser_omp_simd): New function.
	(c_parser_omp_for): Add p_name, mask and cclauses arguments.
	Allow the function to be called also when parsing combined constructs,
	and call c_parser_omp_simd when parsing for simd.
	(c_parser_omp_sections_scope): If section-sequence doesn't start with
	#pragma omp section, require exactly one structured-block instead of
	sequence of statements.
	(c_parser_omp_sections): Add p_name, mask and cclauses arguments.
	Allow the function to be called also when parsing combined constructs.
	(c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
	Allow the function to be called also when parsing combined
	constructs.
	(c_parser_omp_taskgroup, c_parser_omp_cancel,
	c_parser_omp_cancellation_point, c_parser_omp_distribute,
	c_parser_omp_teams, c_parser_omp_target_data,
	c_parser_omp_target_update, c_parser_omp_target,
	c_parser_omp_declare_simd, c_finish_omp_declare_simd,
	c_parser_omp_declare_target, c_parser_omp_end_declare_target,
	c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
	(c_parser_omp_construct): Add p_name and mask vars.  Handle
	PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
	PRAGMA_OMP_TEAMS.  Adjust c_parser_omp_for, c_parser_omp_parallel
	and c_parser_omp_sections callers.
	(c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
	(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
	OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
	(OMP_PARALLEL_CLAUSE_MASK): Likewise.  Add OMP_CLAUSE_PROC_BIND.
	(OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.  Add
	OMP_CLAUSE_DEPEND.
	(OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
	OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
	OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
	OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
	OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
	* c-typeck.c: Include tree-inline.h.
	(c_finish_omp_cancel, c_finish_omp_cancellation_point,
	handle_omp_array_sections_1, handle_omp_array_sections,
	c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
	(c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
	user defined reductions.
	(c_tree_equal): New function.
	* c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
	c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
	c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
	c_check_omp_declare_reduction_r): New prototypes.
	* c-decl.c (current_omp_declare_target_attribute): New variable.
	(c_decl_attributes): New function.
	(start_decl, start_function): Use it instead of decl_attributes.
	(temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
	c_omp_reduction_decl, c_omp_reduction_lookup,
	c_check_omp_declare_reduction_r): New functions.

2013-09-25  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (c/gccspec.o): Remove.
	(CFLAGS-c/gccspec.o): New variable.
	(cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
	(c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
	(c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.

2013-09-25  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (c/gccspec.o): Don't use subshell.

2013-09-18  Marek Polacek  <polacek@redhat.com>

	PR sanitize/58443
	* c-typeck.c (build_binary_op): Properly honor -fsanitize options.
	Remove unnecessary check.

2013-09-18  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/58411
	* c-typeck.c (build_binary_op): Don't sanitize function if it has the
	no_sanitize_undefined attribute.

2013-09-13  Kai Tietz  <ktietz@redhat.com>

	PR target/57848
	* c-decl.c (c_builtin_function_ext_scope): Remove
	wrong assumption that it is never called on prexisting
	symbol.

2013-09-08  Joern Rennecke  <joern.rennecke@embecosm.com>

	* c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.

2013-09-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-objc-common.c (c_tree_printer): Tidy.

2013-08-30  Marek Polacek  <polacek@redhat.com>

	* c-typeck.c (build_binary_op): Add division by zero and shift
	instrumentation.

2013-08-26  Joern Rennecke  <joern.rennecke@embecosm.com>
	    Joseph Myers  <joseph@codesourcery.com>

	PR c/35649
	* c-typeck.c (c_common_type): Prefer double_type_node over
	other REAL_TYPE types with the same precision.
	(convert_arguments): Likewise.

2013-08-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-objc-common.c (c_tree_printer): Document the nature of the cast.
	(c_initialize_diagnostics): Call a destructor for the early printer.

2013-08-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
	printer initialization.

2013-08-19  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	PR c/57490
	* c-array-notation.c (fix_conditional_array_notations_1): Added a
	check for truth values.
	(expand_array_notation_exprs): Added truth values case.  Removed an
	unwanted else.  Added for-loop to walk through subtrees in default
	case.

2013-08-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.

2013-07-23  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (struct c_generic_association): Fix typo.

2013-07-23  Tom Tromey  <tromey@redhat.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (struct c_generic_association): New.
	(c_generic_association_d): New typedef.
	(c_parser_generic_selection): New function.
	(c_parser_postfix_expression): Handle RID_GENERIC.

2013-07-13  Jason Merrill  <jason@redhat.com>

	PR c++/57793
	* c-decl.c (finish_struct): Check for too-large class.

2013-07-04  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR c/57821
	* c-typeck.c (set_init_index): When folding, check for index overflow.

2013-06-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-parser.c (c_parser_array_notation): Removed rejection of array
	notations in an array of function pointers.

2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-array-notation.c (make_triplet_val_inv): New function.
	(create_cmp_incr): Likewise.
	(create_array_refs): Likewise.
	(fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
	Also modularized common parts between functions and called the function.
	(build_array_notation_expr): Likewise.
	(fix_conditional_array_notations_1): Likewise.
	(fix_array_notation_expr): Likewise.
	(fix_array_notation_call_expr): Likewise.

2013-06-18  Marek Polacek  <polacek@redhat.com>

	PR c/57630
	* c-decl.c (check_for_loop_decls): Improve diagnostics messages.

2013-06-12  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-array-notation.c (build_array_notation_expr): Reject array notation
	mismatch between LHS and RHS even inside a call_expr.  Also, removed
	a couple while statements that were dead code.

2013-06-10  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
	excessive precision expressions in function parameters.  Also removed
	couple unwanted while statements.

2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-array-notation.c (expand_array_notation_exprs): Added
	ARRAY_NOTATION_REF case.

2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-array-notation.c (length_mismatch_in_expr_p): Moved this
	function to c-family/array-notation-common.c.
	(is_cilkplus_reduce_builtin): Likewise.
	(find_rank): Likewise.
	(extract_array_notation_exprs): Likewise.
	(replace_array_notations): Likewise.
	(find_inv_trees): Likewise.
	(replace_inv_trees): Likewise.
	(contains_array_notation_expr): Likewise.
	(find_correct_array_notation_type): Likewise.
	(replace_invariant_exprs): Initialized additional_tcodes to NULL.
	(struct inv_list): Moved this to c-family/array-notation-common.c.
	* c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.

2013-06-05  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
	reduction functions outside the for-loop.  Added a check if the fundecl
	is non-NULL.  Finally, removed an unwanted if-statement, and made the
	body unconditional.

2013-06-03  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
	condition of the if-statement matches the rank of else-block and then-
	block when array notations are used.
	* c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
	expression after the entire function body is parsed.
	(c_parser_expr_no_commas): Delayed creating array notation expressions
	to the end of function parsing.
	* c-array-notation.c (fix_conditional_array_notations_1): Expanded the
	whole if-statement instead of just the condition.
	(expand_array_notation_exprs): Added MODIFY_EXPR case.

2013-06-03  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	PR c/57474
	* c-array-notation.c (build_array_notation_expr): Initialized rhs_length
	array to NULL_TREE if they are unused.  Also added a check for the
	field to be NULL before its fields are used in future.

2013-05-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/57450
	* c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
	(build_array_notation_expr): Likewise.

2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-typeck.c (build_array_ref): Added a check to see if array's
	index is greater than one.  If true, then emit an error.
	(build_function_call_vec): Exclude error reporting and checking
	for builtin array-notation functions.
	(convert_arguments): Likewise.
	(c_finish_return): Added a check for array notations as a return
	expression.  If true, then emit an error.
	(c_finish_loop): Added a check for array notations in a loop
	condition.  If true then emit an error.
	(lvalue_p): Added a ARRAY_NOTATION_REF case.
	(build_binary_op): Added a check for array notation expr inside
	op1 and op0.  If present, we call another function to find correct
	type.
	* Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
	* c-parser.c (c_parser_compound_statement): Check if array
	notation code is used in tree, if so, then transform them into
	appropriate C code.
	(c_parser_expr_no_commas): Check if array notation is used in LHS
	or RHS, if so, then build array notation expression instead of
	regular modify.
	(c_parser_postfix_expression_after_primary): Added a check for
	colon(s) after square braces, if so then handle it like an array
	notation.  Also, break up array notations in unary op if found.
	(c_parser_direct_declarator_inner): Added a check for array
	notation.
	(c_parser_compound_statement): Added a check for array notation in
	a stmt.  If one is present, then expand array notation expr.
	(c_parser_if_statement): Likewise.
	(c_parser_switch_statement): Added a check for array notations in
	a switch statement's condition.  If true, then output an error.
	(c_parser_while_statement): Similarly, but for a while.
	(c_parser_do_statement): Similarly, but for a do-while.
	(c_parser_for_statement): Similarly, but for a for-loop.
	(c_parser_unary_expression): Check if array notation is used in a
	pre-increment or pre-decrement expression.  If true, then expand
	them.
	(c_parser_array_notation): New function.
	* c-array-notation.c: New file.
	* c-tree.h (is_cilkplus_reduce_builtin): Protoize.

2013-05-23  Mike Stump  <mikestump@comcast.net>

	* c-typeck.c (convert_for_assignment): Handle references to memory
	spaces better.

2013-05-16  Jason Merrill  <jason@redhat.com>

	* Make-lang.in (cc1$(exeext)): Use link mutex.

2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
	to simply use OPT_Wpointer_arith.
	(build_unary_op): Likewise.

2013-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR c/19449
	* c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
	argument.  If set, or it temporarily for parsing of the first
	argument into force_folding_builtin_constant_p.
	(c_parser_postfix_expression): Adjust callers.

2013-03-21  Richard Biener  <rguenther@suse.de>

	* c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
	instead of DECL_DEBUG_EXPR_IS_FROM.  Guard properly.

2013-02-12  Marek Polacek  <polacek@redhat.com>

	PR c/44938
	* c-parser.c (c_parser_postfix_expression_after_primary): Initialize
	origtypes to NULL.

2013-01-24  Jakub Jelinek  <jakub@redhat.com>

	PR c/56078
	* c-typeck.c (set_nonincremental_init_from_string): If
	constructor_max_index is NULL, treat it as if tree_int_cst_lt
	returned false.
	(process_init_element): Likewise.

2012-12-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/55619
	* c-parser.c (c_parser_asm_operands): Remove CONVERT_P
	argument, don't call default_function_array_conversion
	nor c_fully_fold here.
	(c_parser_asm_statement): Adjust callers.
	* c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
	and outputs here, and call default_function_array_conversion
	on inputs that don't need to be addressable.

2012-12-18  Jakub Jelinek  <jakub@redhat.com>

	PR c/39464
	* c-typeck.c (convert_for_assignment): For -Wpointer-sign
	warning require that both c_common_unsigned_type as well as
	c_common_signed_type is the same for both mvl and mvr types.

2012-11-16  Diego Novillo  <dnovillo@google.com>

	Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)

	* c-common.c: Use new vec API in vec.h.
	* c-common.h: Likewise.
	* c-gimplify.c: Likewise.
	* c-pragma.c: Likewise.
	* c-pretty-print.c: Likewise.
	* c-pretty-print.h: Likewise.
	* c-semantics.c: Likewise.
	* c-decl.c: Likewise.
	* c-parser.c: Likewise.
	* c-tree.h: Likewise.
	* c-typeck.c: Likewise.

2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR c++/54930
	* c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.

2012-10-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53066
	* c-decl.c (warn_if_shadowing): Do not warn if a variable
	shadows a function, unless the variable is a function or a
	pointer-to-function.

2012-10-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/54381
	* c-parser.c (struct c_tree_loc_pair): Removed.
	(c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
	add location_t * and tree * arguments, fill in array of 3
	sizeof_arg trees and corresponding locs.
	(c_parser_attributes, c_parser_objc_keywordexpr): Adjust
	c_parser_expr_list callers.
	(c_parser_postfix_expression_after_primary): Likewise.  Pass
	array of 3 sizeof_arg trees and locs (corresponding to first
	3 arguments) to sizeof_pointer_memaccess_warning.

2012-10-09  Lawrence Crowl  <crowl@google.com>

	* Make-lang.in (c-decl.o): Add dependence on hash-table.h.
	* c-decl.c (detect_field_duplicates_hash): Change to new type-safe
	hash table.

2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54194
	* c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
	call.

2012-10-09  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54427
	* c-typeck.c: Include c-common.h.
	(enum stv_conv): Moved to c-common.h.
	(scalar_to_vector): Moved to c-common.c.
	(build_binary_op): Adapt to scalar_to_vector's new prototype.
	* Make-lang.in: c-typeck.c depends on c-common.h.

2012-10-04  Arnaud Charlet  <charlet@adacore.com>

	* c-decl.c (c_write_global_declarations): Fix handling of
	-fdump-ada-spec*.

2012-09-30  Sharad Singhai  <singhai@google.com>

	* c-decl.c (c_write_global_declarations): Use a different method
	to determine if the dump has ben initialized.

2012-09-14  Joseph Myers  <joseph@codesourcery.com>

	PR c/54552
	* c-typeck.c (c_cast_expr): When casting to a type requiring
	C_MAYBE_CONST_EXPR to be created, pass the inner expression to
	c_fully_fold first.

2012-09-14  Joseph Myers  <joseph@codesourcery.com>

	PR c/54103
	* c-typeck.c (build_unary_op): Pass original argument of
	TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
	any C_MAYBE_CONST_EXPR, if it has integer operands.
	(build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
	TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
	to c_objc_common_truthvalue_conversion, then remove any
	C_MAYBE_CONST_EXPR, if they have integer operands.  Use
	c_objc_common_truthvalue_conversion not
	c_common_truthvalue_conversion.
	(c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
	call note_integer_operands for arguments with integer operands
	that are not integer constants.

2012-09-13  Jakub Jelinek  <jakub@redhat.com>

	PR c/54559
	* c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
	COMPLEX_TYPE with in_late_binary_op set temporarily to true.

2012-08-31  Jakub Jelinek  <jakub@redhat.com>

	PR c/54428
	* c-convert.c (convert): Don't call fold_convert_loc if
	TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
	is a COMPLEX_EXPR.  Remove TYPE_MAIN_VARIANT check from
	COMPLEX_TYPE -> COMPLEX_TYPE conversion.

2012-08-24  Jakub Jelinek  <jakub@redhat.com>

	PR c/54355
	* c-decl.c (c_parser_label): Pass true as nested and fix up comments
	for nested and empty_ok arguments in the call to
	c_parser_declaration_or_fndef.

2012-08-17  Jakub Jelinek  <jakub@redhat.com>

	* c-tree.h (c_last_sizeof_arg): Declare.
	* c-parser.c (struct c_tree_loc_pair): New type.
	(c_parser_expr_list): Add sizeof_arg argument.  Fill it in if
	non-NULL.
	(c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
	(c_parser_postfix_expression_after_primary): Likewise.  Call
	sizeof_pointer_memaccess_warning if needed.
	(sizeof_ptr_memacc_comptypes): New function.
	* c-typeck.c (c_last_sizeof_arg): New global variable.
	(c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.

2012-07-24  Uros Bizjak  <ubizjak@gmail.com>

	* c-lang.h (lang_decl): Add variable_size GTY option.

2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>

	* c-decl.c: Include dumpfile.h instead of tree-dump.h.
	* Make-lang.in: Fix dependencies.

2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>

	* Make-lang.in: New file, rules migrated from gcc/Makefile.in
	and add language Makefile hooks.
	* config-lang.in: New file.
	* c-config-lang.in: Moved from gcc/config-lang.in to here, and
	add the required "normal" config-lang.in rules.
	* c-lang.h: Moved from gcc/ to here.
	* c-tree.h: Likewise.
	* c-objc-common.c: Likewise.
	* c-objc-common.h: Likewise.
	* c-typeck.c: Likewise.
	* c-convert.c: Likewise.
	* c-lang.c: Likewise.
	* c-aux-info.c: Likewise.
	* c-errors.c: Likewise.
	* gccspec.c: Likewise.
	* c-decl.c: Likewise.  Include gt-c-c-decl.h, not gt-c-decl.h.
	* c-parser.c: Likewise.  Include gt-c-c-parser.h, not gt-c-parser.h.

Copyright (C) 2012-2026 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.
