2020-05-07  Release Manager

	* GCC 10.1.0 released.

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-2020 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.
