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-2021 Free Software Foundation, Inc.

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