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

	Backported from master:
	2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/99324
	* c-common.c (build_va_arg): Call c_common_mark_addressable_vec
	instead of mark_addressable.  Fix a comment typo -
	neutrallly -> neutrally.

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

	Backported from master:
	2021-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/98187
	* c-pragma.c (omp_pragmas): Remove "master".
	(omp_pragmas_simd): Add "master".

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-08-11  Jakub Jelinek  <jakub@redhat.com>

	PR c/96545
	* c-common.c (get_atomic_generic_size): Require that first argument's
	type points to a complete type and use tree_fits_uhwi_p instead of
	just INTEGER_CST TREE_CODE check for the TYPE_SIZE_UNIT.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-06-27  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/95903
	* c-common.c (pointer_int_sum): Use TYPE_OVERFLOW_UNDEFINED instead of
	!TYPE_UNSIGNED check to see if we can apply distributive law and handle
	smaller precision intop operands separately.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/94755
	* c-common.c (resolve_overloaded_builtin): Return error_mark_node for
	fncode == BUILT_IN_NONE before initialization of first_param.

2020-03-12  Release Manager

	* GCC 9.3.0 released.

2020-01-29  Jason Merrill  <jason@redhat.com>

	PR c++/89357
	* c-attribs.c (check_cxx_fundamental_alignment_constraints): Remove.

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

	Backported from mainline
	2019-11-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/61414
	* c-attribs.c (handle_mode_attribute): Add mode attribute to
	ENUMERAL_TYPEs.

	2019-11-22  Jakub Jelinek  <jakub@redhat.com>

	PR c/90677
	* c-common.h (identifier_global_tag): Declare.
	* c-format.c (get_pointer_to_named_type): Renamed to ...
	(get_named_type): ... this.  Use identifier_global_tag instead of
	identifier_global_value, handle the return value being a TYPE_P.
	(init_dynamic_diag_info): Adjust get_pointer_to_named_type callers
	to call get_named_type instead.  Formatting fixes.

2019-11-13  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (get_underlying_decl): Do not look through typedefs.
	(dump_forward_type): Do not generate a declaration for function types.
	(dump_nested_type) <ARRAY_TYPE>: Do not generate a nested declaration
	of the component type if it is declared in another file.

2019-10-21  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2019-10-01  Jakub Jelinek  <jakub@redhat.com>

	PR c++/91925
	* c-warn.c (check_alignment_of_packed_member): Ignore FIELD_DECLs
	with NULL DECL_FIELD_OFFSET.

	2019-09-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/88203
	* c-common.h (c_omp_predefined_variable): Declare.
	* c-omp.c (c_omp_predefined_variable): New function.
	(c_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
	for predefined variables.

2019-09-02  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-09-02  Martin Liska  <mliska@suse.cz>

	PR c++/91155
	* c-common.c (fname_as_string): Use cxx_printable_name for
	__PRETTY_FUNCTION__ same as was used before r265711.

2019-08-31  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>

	PR pch/61250
	* c-lex.c (c_lex_with_flags):  Don't call
	c_common_no_more_pch () from here.

2019-08-12  Release Manager

	* GCC 9.2.0 released.

2019-07-15  Martin Liska  <mliska@suse.cz>

	PR c++/91125
	* c-opts.c (c_common_handle_option): Warn the -frepo
	will be removed in the future.

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

	Backported from mainline
	2019-07-13  Jakub Jelinek  <jakub@redhat.com>

	PR c/91149
	* c-omp.c (c_omp_split_clauses): Fix a pasto in
	OMP_CLAUSE_REDUCTION_TASK handling.

2019-06-29  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2019-06-25  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/90954
	* c-omp.c (c_finish_omp_atomic): Allow tree_invariant_p in addition
	to SAVE_EXPR in first operand of a COMPOUND_EXPR.

2019-06-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-05-15  Richard Biener  <rguenther@suse.de>

	PR c/90474
	* c-common.c (c_common_mark_addressable_vec): Also mark
	a COMPOUND_LITERAL_EXPR_DECL addressable similar to
	c_mark_addressable.

2019-05-23  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (compare_node): Compare the DECL_UIDs as a last resort.

2019-05-03  Release Manager

	* GCC 9.1.0 released.

2019-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/89888
	* c-common.h (c_add_case_label): Remove orig_type and outside_range_p
	arguments.
	(c_do_switch_warnings): Remove outside_range_p argument.
	* c-common.c (check_case_bounds): Removed.
	(c_add_case_label): Remove orig_type and outside_range_p arguments.
	Don't call check_case_bounds.  Fold low_value as well as high_value.
	* c-warn.c (c_do_switch_warnings): Remove outside_range_p argument.
	Check for case labels outside of range of original type here and
	adjust them.

2019-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR translation/90041
	* c.opt (-fhandle-exceptions): Use %< and %> around option names
	in the Warn diagnostics.

	PR c/89946
	* c-attribs.c (handle_patchable_function_entry_attribute): Add
	function comment.  Warn if arguments of the attribute are not positive
	integer constants.

2019-04-09  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (print_destructor): Deal with deleting destructors.
	(dump_ada_declaration) <FUNCTION_DECL>: Likewise.

2019-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (is_float128): New predicate extracted from...
	(dump_ada_node) <COMPLEX_TYPE>: Use it to recognize __cfloat128.
	<REAL_TYPE>: ...here.  Call it.

2019-04-05  David Malcolm  <dmalcolm@redhat.com>

	PR c/89985
	* c-warn.c (check_address_or_pointer_of_packed_member): Add
	auto_diagnostic_group.  Guard inform calls by result of
	warning_at call.

2019-04-05  Marek Polacek  <polacek@redhat.com>

	PR c++/89973 - -Waddress-of-packed-member ICE with invalid conversion. 
	* c-warn.c (check_address_or_pointer_of_packed_member): Check the type
	of RHS.

2019-04-03  Jason Merrill  <jason@redhat.com>

	PR c++/86586 - -fcompare-debug=-Wsign-compare.
	* c-warn.c (warn_for_sign_compare): Call fold_for_warn.

2019-04-01  Martin Sebor  <msebor@redhat.com>

	PR c/89685
	* c-attribs.c (handle_copy_attribute): Handle references and
	non-constant expressions.

2019-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/87481
	* c.opt (-fconstexpr-ops-limit=): New option.

2019-03-21  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (per_file_includes_t): Use false as Lazy in hash_set
	template param.

2019-03-19  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/89688
	* c-common.c (braced_list_to_string): Make static.
	(braced_lists_to_strings): Define new function.
	* c-common.h (braced_list_to_string): Remove.
	(braced_lists_to_strings): Declare.

2019-03-12  Martin Liska  <mliska@suse.cz>

	* c-opts.c (c_common_handle_option): Wrap option with %< and %>.

2019-03-11  Martin Liska  <mliska@suse.cz>

	* c-opts.c (c_common_post_options): Wrap apostrophes
	in gcc internal format with %'.

2019-03-11  Martin Liska  <mliska@suse.cz>

	* c-attribs.c (handle_nocf_check_attribute): Wrap an option name
	in a string format message and fix GNU coding style.
	* c-common.c (vector_types_convertible_p): Likewise.
	(c_build_vec_perm_expr): Likewise.
	* c-indentation.c (get_visual_column): Likewise.
	* c-opts.c (c_common_handle_option): Likewise.
	(c_common_post_options): Likewise.
	(sanitize_cpp_opts): Likewise.
	* c-pch.c (c_common_pch_pragma): Likewise.
	* c-pragma.c (handle_pragma_pack): Likewise.

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

	PR tree-optimization/89550
	* c-common.c (c_common_truthvalue_conversion): Only set
	TREE_NO_WARNING if warning_at returned true.
	* c-warn.c (overflow_warning, warn_logical_operator): Likewise.

2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
	    Martin Sebor  <msebor@gmail.com>

	* c.opt (Wmissing-attributes): Clean up doc string.

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

	PR c/89495
	* c-format.c (maybe_read_dollar_number): Compute nargnum in
	HOST_WIDE_INT type to avoid overflows and change overflow_flag
	checking.

2019-02-22  Richard Biener  <rguenther@suse.de>

	* c-pch.c (no_checksum): Remove.
	(pch_init): Remove assertion that executable_checksum is not
	all zero.
	(c_common_valid_pch): Likewise.

2019-02-18  Martin Sebor  <msebor@redhat.com>

	PR middle-end/89294
	* c-common.c (invalid_array_size_error): Handle cst_size_not_constant.

2019-02-16  David Malcolm  <dmalcolm@redhat.com>

	PR c++/88680
	* c-common.c (shorten_compare): Call fold_for_warn on op0 when
	implementing -Wtype-limits.

2019-02-11  Martin Sebor  <msebor@redhat.com>

	PR c++/87996
	* c-common.c (invalid_array_size_error): New function.
	(valid_array_size_p): Call it.  Handle size as well as type.
	* c-common.h (valid_constant_size_p): New function.
	(enum cst_size_error): New type.

2019-01-31  David Malcolm  <dmalcolm@redhat.com>

	PR c/89122
	* known-headers.cc (get_stdlib_header_for_name): Add
	{FLT|DBL|LDBL}_{MAX|MIN} to "hints" array.

2019-01-31  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/88170
	* c-pretty-print.c (pp_c_enumeration_constant): Print always as
	a C cast in pp_c_flag_gnu_v3 mode.

2019-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR c/86125
	* c-common.c (c_common_nodes_and_builtins): Build type variants for
	builtin_structptr_types types even for C.

2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-warn.c (check_address_or_pointer_of_packed_member): Handle the case
	when rhs is of array type correctly.  Fix handling of nested structures.
	Fix handling of indirect_ref together with nop_expr and/or addr_expr.
	(check_and_warn_address_or_pointer_of_packed_member): Fix handling of
	type casts within nested compound expressions.

2019-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/88968
	* c-omp.c (c_finish_omp_atomic): For bitfield atomics, update type
	variable after using BIT_FIELD_REF.

2019-01-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/51628
	PR c/88664
	* c-common.h (warn_for_address_or_pointer_of_packed_member):
	Remove the boolean argument.
	* c-warn.c (check_address_of_packed_member): Renamed to ...
	(check_address_or_pointer_of_packed_member): This.  Also
	warn pointer conversion.
	(check_and_warn_address_of_packed_member): Renamed to ...
	(check_and_warn_address_or_pointer_of_packed_member): This.
	Also warn pointer conversion.
	(warn_for_address_or_pointer_of_packed_member): Remove the
	boolean argument.  Don't check pointer conversion here.

2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>

	PR inline-asm/52813
	* c.opt (Wdeprecated): Move documentation and variable to common.opt.

2019-01-14  Jakub Jelinek  <jakub@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtin): Define __cpp_guaranteed_copy_elision
	and __cpp_nontype_template_parameter_auto.  Add a comment that
	__cpp_template_auto is deprecated.

2019-01-14  Tom Honermann  <tom@honermann.net>

	Implement P0482R5, char8_t: A type for UTF-8 characters and strings
	* c-common.c (c_common_reswords): Add char8_t.
	(fix_string_type): Use char8_t for the type of u8 string literals.
	(c_common_get_alias_set): char8_t doesn't alias.
	(c_common_nodes_and_builtins): Define char8_t as a builtin type in
	C++.
	(c_stddef_cpp_builtins): Add __CHAR8_TYPE__.
	(keyword_begins_type_specifier): Add RID_CHAR8.
	* c-common.h (rid): Add RID_CHAR8.
	(c_tree_index): Add CTI_CHAR8_TYPE and CTI_CHAR8_ARRAY_TYPE.
	Define D_CXX_CHAR8_T and D_CXX_CHAR8_T_FLAGS.
	Define char8_type_node and char8_array_type_node.
	* c-cppbuiltin.c (cpp_atomic_builtins): Predefine
	__GCC_ATOMIC_CHAR8_T_LOCK_FREE.
	(c_cpp_builtins): Predefine __cpp_char8_t.
	* c-lex.c (lex_string): Use char8_array_type_node as the type of
	CPP_UTF8STRING.
	(lex_charconst): Use char8_type_node as the type of CPP_UTF8CHAR.
	* c-opts.c: If not otherwise specified, enable -fchar8_t when
	targeting C++2a.
	* c.opt: Add the -fchar8_t command line option.

2019-01-14  Martin Sebor  <msebor@redhat.com>

	PR target/88638
	* c-attribs.c (positional_argument): Call valid_format_string_type_p
	and issue errors if it fails.
	* c-common.h (valid_format_string_type_p): Declare.
	* c-format.c (valid_stringptr_type_p): Rename...
	(valid_format_string_type_p): ...to this and make extern.
	(handle_format_arg_attribute): Adjust to new name.
	(check_format_string): Same.

2019-01-13  H.J. Lu  <hongjiu.lu@intel.com>

	* c-warn.c (warn_for_address_or_pointer_of_packed_member):
	Replace "may may" with "may" in warning message.

2019-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85052
	* c-common.h (enum rid): Add RID_BUILTIN_CONVERTVECTOR.
	(c_build_vec_convert): Declare.
	* c-common.c (c_build_vec_convert): New function.

2019-01-04  Martin Sebor  <msebor@redhat.com>

	PR c/88546
	* c-attribs.c (handle_copy_attribute): Avoid copying attribute leaf.
	Handle C++ empty throw specification and C11 _Noreturn.
	(has_attribute): Also handle C11 _Noreturn.

2019-01-04  Martin Sebor  <msebor@redhat.com>

	PR c/88363
	* c-attribs.c (positional_argument): Also accept enumerated types.

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-common.h (warn_for_address_or_pointer_of_packed_member): New.
	* c-warn.c (check_alignment_of_packed_member): New function.
	(check_address_of_packed_member): Likewise.
	(check_and_warn_address_of_packed_member): Likewise.
	(warn_for_address_or_pointer_of_packed_member): Likewise.
	* c.opt: Add -Wno-address-of-packed-member.

2018-12-20  David Malcolm  <dmalcolm@redhat.com>

	PR c++/87504
	* c-warn.c (get_outermost_macro_expansion): New function.
	(spelled_the_same_p): Use it to unwind the macro expansions, and
	compare the outermost macro in each nested expansion, rather than
	the innermost.

2018-12-19  David Malcolm  <dmalcolm@redhat.com>

	PR c++/87504
	* c-common.h (warn_tautological_cmp): Convert 1st param from
	location_t to const op_location_t &.
	* c-warn.c (find_array_ref_with_const_idx_r): Call fold_for_warn
	when testing for INTEGER_CST.
	(warn_tautological_bitwise_comparison): Convert 1st param from
	location_t to const op_location_t &; use it to build a
	binary_op_rich_location, and use this.
	(spelled_the_same_p): New function.
	(warn_tautological_cmp): Convert 1st param from location_t to
	const op_location_t &.  Warn for macro expansions if
	spelled_the_same_p.  Use binary_op_rich_location.

2018-12-19  David Malcolm  <dmalcolm@redhat.com>

	PR c++/43064
	PR c++/43486
	* c-common.c (unsafe_conversion_p): Fold any location wrapper.
	(verify_tree): Handle location wrappers.
	(c_common_truthvalue_conversion): Strip any location wrapper.
	Handle CONST_DECL.
	(fold_offsetof): Strip any location wrapper.
	(complete_array_type): Likewise for initial_value.
	(convert_vector_to_array_for_subscript): Call fold_for_warn on the
	index before checking for INTEGER_CST.
	* c-pretty-print.c (c_pretty_printer::primary_expression): Don't
	print parentheses around location wrappers.
	* c-warn.c (warn_logical_operator): Call fold_for_warn on op_right
	before checking for INTEGER_CST.
	(warn_tautological_bitwise_comparison): Call
	tree_strip_any_location_wrapper on lhs, rhs, and bitop's operand
	before checking for INTEGER_CST.
	(readonly_error): Strip any location wrapper.
	(warn_array_subscript_with_type_char): Strip location wrappers
	before checking for INTEGER_CST.  Use the location of the index if
	available.

2018-12-06  Jason Merrill  <jason@redhat.com>

	PR c++/88136 - -Wdeprecated-copy false positives
	* c.opt (Wdeprecated-copy-dtor): New.
	(Wdeprecated-copy): Move to -Wextra.

2018-11-29  Martin Sebor  <msebor@redhat.com>

	PR c/88172
	PR testsuite/88208
	* c-attribs.c (common_handle_aligned_attribute): Silently avoid setting
	alignments to values less than the target requires.
	(has_attribute): For attribute aligned consider both the attribute
	and the alignment bits.
	* c-common.c (c_init_attributes): Optionally issue a warning for
	zero alignment.

2018-11-28  Martin Sebor  <msebor@redhat.com>

	PR c/88065
	PR c/87297
	* c-warn.c (sizeof_pointer_memaccess_warning): Bail if source
	or destination is an error.

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

	PR c++/88215
	* c-ubsan.c: Include langhooks.h.
	(ubsan_instrument_division): Change gcc_assert that main variants
	of op0 and op1 types are equal to gcc_checking_assert that the
	main variants are compatible types.

2018-11-27  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c: Include stringpool.h.
	(has_static_fields): Return false for incomplete types.
	(is_tagged_type): Likewise.
	(has_nontrivial_methods): Likewise.
	(dump_ada_node) <INTEGER_TYPE>: Deal specifically with __int128.
	(struct overloaded_name_hash): New structure.
	(struct overloaded_name_hasher): Likewise.
	(overloaded_names): New global variable.
	(init_overloaded_names): New static function.
	(overloaded_name_p): New predicate.
	(dump_ada_declaration) <TYPE_DECL>: Tidy up and set TREE_VISITED
	on the TYPE_STUB_DECL of the original type of a typedef, if any.
	<FUNCTION_DECL>: Bail out for an unsupported overloaded name.
	Remove always-true condition and dump forward types.
	(dump_ada_specs): Delete overloaded_names.

2018-11-20  Martin Sebor  <msebor@redhat.com>

	* c-attribs.c (type_for_vector_size): New function.
	(type_valid_for_vector_size): Same.
	(handle_vector_size_attribute): Move code to the functions above
	and call them.
	(validate_attribute, has_attribute): New functions.
	* c-common.h (has_attribute): Declare.
	(rid): Add RID_HAS_ATTRIBUTE_EXPRESSION.
	* c-common.c (c_common_resword): Same.

2018-11-16  Jason Merrill  <jason@redhat.com>

	* c-lex.c (c_common_has_attribute): Handle likely/unlikely.
	* c-attribs.c (attr_cold_hot_exclusions): Make public.

2018-11-16  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/87854
	* c-common.c (fix_string_type): Reject string literals larger than
	TYPE_MAX_VALUE (ssizetype) bytes.

2018-11-15  Martin Sebor  <msebor@redhat.com>

	PR c++/87541
	PR c++/87542
	* c-attribs.c (positional_argument): New function.
	(handle_alloc_size_attribute): Use it and simplify.
	(handle_alloc_align_attribute): Same.
	(handle_assume_aligned_attribute): Same.
	(handle_nonnull_attribute): Same.
	* c-common.c (check_function_arguments): Pass fntype to
	check_function_format.
	* c-common.h (check_function_format): Add an argument.
	(PosArgFlags, positional_argument): Declare new type and function.
	* c-format.c (decode_format_attr): Add arguments.
	(check_format_string, get_constant): Same.
	(convert_format_name_to_system_name): Adjust.

2018-11-15  David Malcolm  <dmalcolm@redhat.com>

	PR other/19165
	* c-opts.c (c_diagnostic_finalizer): Add diagnostic_t param.

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

	P1236R1 - Signed integers are two's complement
	* c-warn.c (maybe_warn_shift_overflow): Don't warn for c++2a.
	* c-ubsan.c (ubsan_instrument_shift): Make signed shifts
	with in-range second operand well defined for -std=c++2a.

	PR other/88007
	* c-common.c (parse_optimize_options): Allocate option string from
	opts_obstack rather than as GC memory.  Move the allocation after
	warning for invalid option.

2018-11-13  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (c_get_substring_location): Update for renaming of
	get_source_location_for_substring to get_location_within_string.
	* c-lex.c: Replace "source_location" with "location_t".
	* c-opts.c: Likewise.
	* c-ppoutput.c: Likewise.

2018-11-13  Martin Sebor  <msebor@redhat.com>

	PR middle-end/81824
	* c-attribs.c (handle_copy_attribute): Exclude inlining attributes.
	(handle_tls_model_attribute): Improve diagnostics.

2018-11-12  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define
	__cpp_impl_destroying_delete.

	* c-cppbuiltin.c (c_cpp_builtins): Change __cpp_explicit_bool to
	__cpp_conditional_explicit.

2018-11-09  Martin Sebor  <msebor@redhat.com>

	PR middle-end/81824
	* c-attribs.c (handle_copy_attribute): New function.

2018-11-09  Martin Sebor  <msebor@redhat.com>

	PR c/87795
	* c-common.c (check_user_alignment): Use MAX_OFILE_ALIGNMENT.

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

	* c-common.h (c_finish_omp_taskgroup): Add CLAUSES argument.
	(c_finish_omp_atomic): Replace bool SEQ_CST argument with
	enum omp_memory_order MEMORY_ORDER.
	(c_finish_omp_flush): Add MO argument.
	(c_omp_depend_t_p, c_finish_omp_depobj): Declare.
	(c_finish_omp_for): Add FINAL_P argument.
	* c-omp.c: Include memmodel.h.
	(c_finish_omp_taskgroup): Add CLAUSES argument.  Set
	OMP_TASKGROUP_CLAUSES to it.
	(c_finish_omp_atomic): Replace bool SEQ_CST argument with
	enum omp_memory_order MEMORY_ORDER.  Set OMP_ATOMIC_MEMORY_ORDER
	instead of OMP_ATOMIC_SEQ_CST.
	(c_omp_depend_t_p, c_finish_omp_depobj): New functions.
	(c_finish_omp_flush): Add MO argument, if not MEMMODEL_LAST, emit
	__atomic_thread_fence call with the given value.
	(check_omp_for_incr_expr): Formatting fixes.
	(c_finish_omp_for): Add FINAL_P argument.  Allow NE_EXPR
	even in OpenMP loops, diagnose if NE_EXPR and incr expression
	is not constant expression 1 or -1.  Transform NE_EXPR loops
	with iterators pointers to VLA into LT_EXPR or GT_EXPR loops.
	(c_omp_check_loop_iv_r): Look for orig decl of C++ range for
	loops too.
	(c_omp_split_clauses): Add support for combined
	#pragma omp parallel master and
	#pragma omp {,parallel }master taskloop{, simd} constructs.
	Handle OMP_CLAUSE_IN_REDUCTION.  Handle OMP_CLAUSE_REDUCTION_TASK.
	Handle OMP_CLAUSE_NONTEMPORAL.  Handle splitting OMP_CLAUSE_IF
	also to OMP_SIMD.  Copy OMP_CLAUSE_LASTPRIVATE_CONDITIONAL.
	(c_omp_predetermined_sharing): Don't return
	OMP_CLAUSE_DEFAULT_SHARED for const qualified decls.
	* c-pragma.c (omp_pragmas): Add PRAGMA_OMP_DEPOBJ and
	PRAGMA_OMP_REQUIRES.
	* c-pragma.h (enum pragma_kind): Likewise.
	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_NONTEMPORAL
	and PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION.

2018-11-08  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (gcc_dump_printf_char_table): Add entry for %f.

2018-11-08  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (local_cgraph_node_ptr_node): New variable.
	(gcc_dump_printf_char_table): Add entry for %C.
	(get_pointer_to_named_type): New function, taken from the handling
	code for "gimple *" from...
	(init_dynamic_diag_info): ...here.  Add handling for
	"cgraph_node *".
	* c-format.h (T_CGRAPH_NODE): New.

2018-10-19  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Add
	__cpp_nontype_template_parameter_class.

2018-10-31  Nathan Sidwell  <nathan@acm.org>

	* c-opts.c (c_finish_options): Force command line macro
	location.  Refactor to avoid repeating main debug hook.
	(push_command_line_include): Clarify comment.

	* c-opts.c (c_finish_options): Adjust cpp_force_token_locations call.

2018-10-30  Martin Sebor  <msebor@redhat.com>

	PR middle-end/87041
	* c-format.c (check_format_types): Avoid diagnosing null pointer
	arguments to printf-family of functions.

2018-10-30  Marek Polacek  <polacek@redhat.com>

	Implement P0892R2, explicit(bool).
	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_explicit_bool.

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

	* name-hint.h (name_hint::take_deferred): New member function.

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

	PR c++/56856
	* c-common.c (check_function_sentinel): Call fold_for_warn on the
	argument.
	(check_function_restrict): Rename param "argarray" to
	"unfolded_argarray", and make a copy named "argarray", calling
	fold_for_warn on each argument.
	(check_function_arguments): Add note about responsibility for
	folding the arguments.

2018-10-17  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (flag_isoc2x): New variable.
	* c-common.h (clk_c): Update comment to reference C2X.
	(flag_isoc99, flag_isoc11): Update comments to reference future
	standard versions in general.
	(flag_isoc2x): Declare.
	* c-opts.c (set_std_c2x): New function.
	(c_common_handle_option): Handle -std=c2x and -std=gnu2x.
	(set_std_c89, set_std_c99, set_std_c11, set_std_c17): Set
	flag_isoc2x to 0.
	* c.opt (Wc11-c2x-compat, std=c2x, std=gnu2x): New options.

2018-10-17  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (std=c17, std=c18, std=gnu17, std=gnu18, std=iso9899:2017)
	(std=iso9899:2018): Document C17 as published in 2018.

2018-10-12  Christophe Lyon  <christophe.lyon@linaro.org>

	PR c++/87364
	* c-pretty-print.c (c_pretty_printer::constant): Fix typo.

2018-10-11  Will Wray  <wjwray@gmail.com>

	PR c++/87364
	* c-pretty-print.h (pp_c_type_cast): Prototype.
	(pp_c_integer_constant): Likewise.
	* c-pretty-print.c (pp_c_type_cast): No longer static.
	(pp_c_integer_constant): Likewise.
	(pp_c_enumeration_constant): Fix loop termination when finding
	name of constant.  No longer returns a value.  Call
	pp_c_integer_constant.
	(c_pretty_printer::constant): Update for changes to
	pp_c_enumeration_constant.

2018-10-11  Jakub Jelinek  <jakub@redhat.com>

	* c-lex.c (c_common_has_attribute): Return 201803 instead of 20180312
	for no_unique_address.

2018-10-09  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (c_option_controlling_cpp_error): Rename to...
	(c_option_controlling_cpp_diagnostic): ...this, and convert
	"reason" from int to enum.
	(c_cpp_error): Rename to...
	(c_cpp_diagnostic): ...this, converting level and reason to enums.
	* c-common.h (c_cpp_error): Rename to...
	(c_cpp_diagnostic): ...this, converting level and reason to enums.
	* c-opts.c (c_common_init_options): Update for renaming.

2018-10-08  Richard Sandiford  <richard.sandiford@arm.com>

	PR c/87286
	* c-common.c (vector_types_compatible_elements_p): Use
	INTEGRAL_TYPE_P instead of checking only for INTEGER_TYPE.

2018-10-04  Vinay Kumar  <vinay.kumar@blackfigtech.com>

	* c-attribs.c (get_priority): Add a warning flag warn_prio_ctor_dtor
	to generate constructor destructor priority warning.
	* c.opt (-Wprio-ctor-dtor): New option.

2018-10-01  Jason Merrill  <jason@redhat.com>

	* c-lex.c (c_common_has_attribute): Add no_unique_address.

2018-10-01  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (get_underlying_decl): Get to the main type variant.
	(dump_ada_node): Add const keyword.

2018-09-25  Martin Liska  <mliska@suse.cz>

	* c-common.c (c_common_truthvalue_conversion):
	Remove Pascal from documentation.

2018-09-21  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c: Include diagnostic.h.
	(dump_ada_declaration) <RECORD_TYPE>: Issue a warning on packed layout.

2018-09-19  Marek Polacek  <polacek@redhat.com>

	* c.opt (Wclass-conversion): New.

2018-09-17  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (range_label_for_format_type_mismatch::get_text):
	Update for new param.

2018-09-17  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (format_warning_at_char): Update for introduction of
	format_string_diagnostic_t.
	(format_type_warning): Likewise.

2018-09-17  Martin Jambor  <mjambor@suse.cz>

	PR c/63886
	* c.opt (Wabsolute-value): New.

2018-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-common.c (complete_flexible_array_elts): New helper function.
	* c-common.h (complete_flexible_array_elts): Declare.

2018-09-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-common.c (braced_list_to_string): Remove eval parameter.
	Add some more checks.  Always create zero-terminated STRING_CST.
	* c-common.h (braced_list_to_string): Adjust prototype.

2018-08-27  David Malcolm  <dmalcolm@redhat.com>

	PR 87091
	* c-common.c (c_cpp_error): Update for conversion of show_caret_p
	to a tri-state.
	(maybe_suggest_missing_token_insertion): Likewise.
	(maybe_add_include_fixit): Add param "override_location".  If set,
	and source-printing is enabled, then override the rich_location's
	primary location with that of the insertion point for the fix-it
	hint, marking it with SHOW_LINES_WITHOUT_RANGE.
	* c-common.h (extern void maybe_add_include_fixit): Add bool
	param.
	* c-format.c (selftest::test_type_mismatch_range_labels): Update
	for conversion of show_caret_p to a tri-state.
	* c-warn.c (warn_for_restrict): Likewise.
	* known-headers.cc
	(suggest_missing_header::~suggest_missing_header): Update call to
	maybe_add_include_fixit to suggest overriding the location, as it
	is for a note.

2018-08-27  Martin Liska  <mliska@suse.cz>

	* c-common.c (check_function_restrict): Use new function
	fndecl_built_in_p and remove check for FUNCTION_DECL if
	possible.
	(check_builtin_function_arguments): Likewise.
	(reject_gcc_builtin): Likewise.
	* c-warn.c (sizeof_pointer_memaccess_warning): Likewise.

2018-08-26  Marek Polacek  <polacek@redhat.com>

	PR c++/87029, Implement -Wredundant-move.
	* c.opt (Wredundant-move): New option.

2018-08-21  Marek Polacek  <polacek@redhat.com>

	PR c++/86981, Implement -Wpessimizing-move.
	* c.opt (Wpessimizing-move): New option.

2018-08-20  David Malcolm  <dmalcolm@redhat.com>

	PR other/84889
	* c-attribs.c (common_handle_aligned_attribute): Add
	auto_diagnostic_group instance.
	* c-indentation.c (warn_for_misleading_indentation): Likewise.
	* c-opts.c (c_common_post_options): Likewise.
	* c-warn.c (warn_logical_not_parentheses): Likewise.
	(warn_duplicated_cond_add_or_warn): Likewise.
	(warn_for_multistatement_macros): Likewise.

2018-08-20  Nathan Sidwell  <nathan@acm.org>

	* c-ada-spec.c (macro_length, dump_ada_macros): Adjust macro parm
	access.

2018-08-17  Nathan Sidwell  <nathan@acm.org>

	* c-cppbuiltin.c (struct lazy_hex_fp_value_struct): Remove macro
	field.
	(laxy_hex_fp_value_count): Make unsigned.
	(lazy_hex_fp_value): Provided with macro & lazy number.  Directly
	manipulate the macro.
	(builtin_defin_with_hex_fp_value): Adjust callback name, use
	cpp_define_lazily.

2018-08-17  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (enum format_type): Add gcc_dump_printf_format_type.
	(gcc_dump_printf_length_specs): New.
	(gcc_dump_printf_flag_pairs): New.
	(gcc_dump_printf_flag_specs): New.
	(gcc_dump_printf_char_table): New.
	(format_types_orig): Add entry for "gcc_dump_printf".
	(init_dynamic_diag_info): Set up length_char_specs and
	conversion_specs for gcc_dump_printf_format_type.
	(handle_format_attribute): Handle gcc_dump_printf_format_type.

2018-08-17  Nathan Sidwell  <nathan@acm.org>

	* c-ada-spec.c (macro_length, dump_ada_macros): Constify.

	* c-ada-spec.c: Don't #include "cpp-id-data.h"
	* c-cppbuiltin.c: Likewise.

2018-08-17  Martin Liska  <mliska@suse.cz>

	* c.opt: Remove Warn, Init and Report for options with
	Ignore/Deprecated flag. Warning is done automatically for
	Deprecated flags.

2018-08-16  David Malcolm  <dmalcolm@redhat.com>

	PR c++/70693
	* c-common.c (selftest::c_family_tests): Call
	selftest::c_indentation_c_tests.
	* c-common.h (selftest::c_indentation_c_tests): New decl.
	* c-indentation.c: Include "selftest.h".
	(next_tab_stop): Add "tab_width" param, rather than accessing
	cpp_opts.
	(get_visual_column): Likewise.  Clarify comment.  Bulletproof
	against reading past the end of the line.
	(get_first_nws_vis_column): Add "tab_width" param.
	(detect_intervening_unindent): Likewise.
	(should_warn_for_misleading_indentation): Read tab width from
	cpp_opts and pass around.
	(selftest::test_next_tab_stop): New test.
	(selftest::assert_get_visual_column_succeeds): New function.
	(ASSERT_GET_VISUAL_COLUMN_SUCCEEDS): New macro.
	(selftest::assert_get_visual_column_fails): New function.
	(ASSERT_GET_VISUAL_COLUMN_FAILS): New macro.
	(selftest::test_get_visual_column): New test.
	(selftest::c_indentation_c_tests): New function.

2018-08-16  Nathan Sidwell  <nathan@acm.org>

	* c-ada-spec.c (count_ada_macro): Use cpp_user_macro_p.
	(store_ada_macro): Likewise.
	* c-ppoutput.c (cb_used_define, dump_macro): Likewise.
	* c-spellcheck.cc (should-suggest_as_macro_p): Likewise,

2018-08-15  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c: Include "selftest-diagnostic.h" and
	"gcc-rich-location.h".
	(format_warning_at_char): Pass NULL for new label params of
	format_warning_va.
	(class indirection_suffix): New class.
	(class range_label_for_format_type_mismatch): New class.
	(format_type_warning): Move logic for generating "*" suffix to
	class indirection_suffix.  Create "fmt_label" and "param_label"
	to show their types, and pass them to the
	format_warning_at_substring calls.
	(selftest::test_type_mismatch_range_labels): New test.
	(selftest::c_format_c_tests): Call it.

2018-08-13  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/71625
	* c-common.c (braced_list_to_string): New function.
	* c-common.h (braced_list_to_string): Declare it.

2018-08-08  Nathan Sidwell  <nathan@acm.org>

	* c-common.c (try_to_locate_new_include_inertion_point): Use
	linemap_included_from_linemap.
	* c-lex.c (fe_file_change): Use linemap_included_from.
	* c-ppoutput.c (pp_file_change): Likewise.

2018-08-01  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/86650
	* c-family/c-format.c (gcc_tdiag_char_table): Update comment for "%G".
	(gcc_cdiag_char_table, gcc_cxxdiag_char_table): Same.
 	(init_dynamic_diag_info): Update from "gcall *" to "gimple *".
 	* c-format.h (T89_G): Update to be "gimple *" rather than
 	"gcall *".
	(local_gcall_ptr_node): Rename...
 	(local_gimple_ptr_node): ...to this.

2018-07-31  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (PP_FORMAT_CHAR_TABLE): New macro, based on existing
	table entries for gcc_diag_char_table, and the 'Z' entry from
	gcc_tdiag_char_table, changing the "chain" entry for 'Z' from
	&gcc_tdiag_char_table[0] to &gcc_diag_char_table[0].
	(gcc_diag_char_table): Use PP_FORMAT_CHAR_TABLE, implicitly
	adding missing "Z" for this table.  Remove erroneous "G" and "K"
	entries.
	(gcc_tdiag_char_table): Use PP_FORMAT_CHAR_TABLE.  Remove "v".
	(gcc_cdiag_char_table): Use PP_FORMAT_CHAR_TABLE.
	(gcc_cxxdiag_char_table): Use PP_FORMAT_CHAR_TABLE.  Remove "v".

2018-07-31  Richard Earnshaw  <rearnsha@arm.com>

	* c-common.c (speculation_safe_resolve_call): New function.
	(speculation_safe_resolve_params): New function.
	(speculation_safe_resolve_return): New function.
	(resolve_overloaded_builtin): Handle __builtin_speculation_safe_value.
	* c-cppbuiltin.c (c_cpp_builtins): Add pre-define for
	__HAVE_SPECULATION_SAFE_VALUE.

2018-07-20  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (c_cpp_error): Remove redundant "line_table"
	parameter from call to rich_location::set_range.
	(maybe_suggest_missing_token_insertion): Likewise.

2018-07-20  Martin Sebor  <msebor@redhat.com>

	PR middle-end/82063
	* gcc/c-family/c.opt (-Warray-bounds): Remove redundant -Wall.

2018-07-20  Martin Sebor  <msebor@redhat.com>

	PR middle-end/82063
	* c-common.h (c_common_handle_option): Change function argument
	to HOST_WIDE_INT.
	* c-opts.c (c_common_init_options): Same.
	(c_common_handle_option): Same.  Remove special handling of
	OPT_Walloca_larger_than_ and OPT_Wvla_larger_than_.
	* c.opt (-Walloc-size-larger-than, -Walloca-larger-than): Change
	options to take a HOST_WIDE_INT argument and accept a byte-size
	suffix.  Initialize.
	(-Wvla-larger-than): Same.
	(-Wno-alloc-size-larger-than, -Wno-alloca-larger-than): New.
	(-Wno-vla-larger-than): Same.

2018-07-12  Jakub Jelinek  <jakub@redhat.com>

	* c-attribs.c (c_common_attribute_table): Add
	"omp declare target implicit" attribute.

2018-07-12  Richard Biener  <rguenther@suse.de>

	PR c/86453
	* c-attribs.c (handle_packed_attribute): Do not build a variant
	type with TYPE_PACKED, instead ignore the attribute if we may
	not apply to the original type.

2018-07-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/86443
	* c-omp.c (c_omp_check_loop_iv_r, c_omp_check_loop_iv): Allow declv
	to contain TREE_LIST for both the original class iterator and the
	"last" helper var.

2018-07-07  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (to_ada_name): Remove index parameter.
	(pp_ada_tree_identifier): Likewise.
	(dump_ada_macros): Adjust call to to_ada_name.
	(struct overloaded_name_hash): Delete.
	(struct overloaded_name_hasher): Likewise.
	(overloaded_names): Likewise.
	(compute_overloading_index): Likewise.
	(dump_ada_decl_name): Do not call compute_overloading_index and
	adjust calls to pp_ada_tree_identifier.
	(dump_ada_double_name): Adjust calls to pp_ada_tree_identifier.
	(dump_ada_import): Add spc parameter and switch to aspect syntax.
	(dump_ada_function_declaration): Adjust call to pp_ada_tree_identifier.
	(dump_ada_enum_type): Remove type and display_convention parameters.
	Adjust calls to pp_ada_tree_identifier.
	(dump_ada_node): Likewise and for dump_ada_structure.
	(dump_nested_type) <ENUMERAL_TYPE>: Adjust call to dump_ada_enum_type
	and tidy up.
	<RECORD_TYPE>: Adjust call to dump_ada_structure and switch to aspect
	syntax.
	(print_constructor): Adjust call to pp_ada_tree_identifier.
	(print_destructor): Likewise.
	(dump_ada_declaration): Switch to aspect syntax.
	(dump_ada_structure): Likewise and tidy up.  Replace display_convention
	parameter with nested parameter.
	(dump_ads): Emit pragma Ada_2012 in lieu of pragma Ada_2005.
	(dump_ada_specs): Do not delete overloaded_names table.

2018-07-06  Peter Bergner  <bergner@linux.ibm.com>

	PR target/86324
	* c-attribs.c (handle_mode_attribute): Call translate_mode_attribute
	target hook.

2018-07-05  Nathan Sidwell  <nathan@acm.org>

	* c-lex.c (fe_file_change): Check SYSTEM_IMPLICIT_EXTERN_C not
	NO_IMPLICIT_EXTERN_C.

2018-06-28  Martin Liska  <mliska@suse.cz>

	* cppspec.c: Include opt-suggestions.h.

2018-06-20  Chung-Lin Tang <cltang@codesourcery.com>
	    Thomas Schwinge <thomas@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* c-pragma.h (enum pragma_omp_clause): Add
	PRAGMA_OACC_CLAUSE_{FINALIZE,IF_PRESENT}. Remove
	PRAGMA_OACC_CLAUSE_PRESENT_OR_{COPY,COPYIN,COPYOUT,CREATE}.

2018-06-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/86210
	* c-common.c (check_nonnull_arg): Use fold_for_warn.  Adjust obsolete
	comment.

2018-06-18  Martin Sebor  <msebor@redhat.com>

	PR middle-end/85602
	* c-warn.c (sizeof_pointer_memaccess_warning): Check for attribute
	nonstring.

2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* c-common.c (c_common_truthvalue_conversion): Handle ABSU_EXPR.

2018-06-13  Jason Merrill  <jason@redhat.com>

	* c-opts.c (c_common_post_options): Warn about useless -Wabi.
	(c_common_handle_option) [OPT_Wabi_]: Remove flag_abi_compat_version
	handling.

	PR c++/86094 - wrong code with defaulted move ctor.
	* c-opts.c (c_common_post_options): Bump the current ABI version to
	13.  Set warn_abi_version and flag_abi_compat_version to the current
	version rather than 0.  Fix defaulting flag_abi_compat_version from
	warn_abi_version.

2018-06-12  Martin Sebor  <msebor@redhat.com>

	PR c/85931
	* c-warn.c (sizeof_pointer_memaccess_warning): Avoid warning when
	sizeof source and destination yields the same value.

2018-06-12  Martin Liska  <mliska@suse.cz>

	* c.opt: Make MPX-related options as Deprecated.

2018-06-08  David Malcolm  <dmalcolm@redhat.com>

	* c-pretty-print.c (c_pretty_printer::statement): Use TDF_NONE
	rather than 0.

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

	* c-attribs.c (handle_bnd_variable_size_attribute): Remove support
	for MPX (macros, related functions, fields in cgraph_node, ...).
	(handle_bnd_legacy): Likewise.
	(handle_bnd_instrument): Likewise.
	* c.opt: Likewise.

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

	PR c++/86068
	* c-cppbuiltin.c (c_cpp_builtins): Fix a typo, set
	__cpp_transactional_memory to 201500 instead of 210500.

2018-06-06  Jason Merrill  <jason@redhat.com>

	PR c++/85710 - ICE with -Wmemset-elt-size.
	* c-warn.c (warn_for_memset): Don't crash on incomplete element type.

2018-06-01  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_deduction_guides to
	201703.

2018-06-01  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_declaration) <TYPE_DECL>: Generate a forward
	declaration for a typedef independently of whether the declaration of
	the subtype is generated.

2018-05-31  Martin Sebor  <msebor@redhat.com>

	PR c/82063
	* c.opt (-Wno-alloc-size-larger-than): New option.

2018-04-22  David Pagan  <dave.pagan@oracle.com>

	PR c/55976
	* c-opts.c (c_common_post_options): Set default for warn_return_type
	for C++/C++ with ObjC extensions only. For C, makes it possible to 
	differentiate between default (no option), -Wreturn-type, and
	-Wno-return-type.

2018-05-29  Jason Merrill  <jason@redhat.com>

	* c.opt (Winit-list-lifetime): New flag.

2018-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-lex.c (get_fileinfo): Use splay_tree_compare_strings and
	splay_tree_delete_pointers.

2018-05-26  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/85921
	* c-warn.c (diagnose_mismatched_attributes): Remove unnecessary
	noinline variable to workaround broken kernel headers.

2018-05-18  Jason Merrill  <jason@redhat.com>

	* c.opt (Wdeprecated-copy): New flag.

2018-05-17  Martin Liska  <mliska@suse.cz>

	* c-warn.c (overflow_warning): Do not use
	space in between 'G_' and '('.

2018-05-09  Jason Merrill  <jason@redhat.com>

	* c-common.c (valid_array_size_p): Add complain parameter.
	* c-common.h: ...which defaults to true.

2018-05-11  Jakub Jelinek  <jakub@redhat.com>

	PR c/85696
	* c-omp.c (c_omp_predetermined_sharing): Return
	OMP_CLAUSE_DEFAULT_SHARED for artificial vars with integral type.

2018-05-11  Martin Liska  <mliska@suse.cz>

	PR sanitizer/85556
	* c-attribs.c (handle_no_sanitize_attribute): Iterate all
	TREE_LIST values.

2018-05-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85662
	* c-common.h (fold_offsetof_1): Removed.
	(fold_offsetof): Add TYPE argument defaulted to size_type_node and
	CTX argument defaulted to ERROR_MARK.
	* c-common.c (fold_offsetof_1): Renamed to ...
	(fold_offsetof): ... this.  Remove wrapper function.  Add TYPE
	argument, convert the pointer constant to TYPE and use size_binop
	with PLUS_EXPR instead of fold_build_pointer_plus if type is not
	a pointer type.  Adjust recursive calls.

2018-05-10  Eric Botcazou  <ebotcazou@adacore.com>

	PR c++/85400
	* c-attribs.c (handle_visibility_attribute): Do not set no_add_attrs.

2018-05-07  Nathan Sidwell  <nathan@acm.org>

	* c.opt (ffor-scope): Remove functionality, issue warning.

2018-05-03  Nathan Sidwell  <nathan@acm.org>

	* c.opt (ffriend-injection): Remove functionality, issue warning.

2018-05-01  David Malcolm  <dmalcolm@redhat.com>

	PR c/84258
	* c-format.c (struct format_check_results): Add field
	"number_non_char".
	(check_format_info): Initialize it, and warn if encountered.
	(check_format_arg): Distinguish between wide char and
	everything else when detecting arrays of non-char.

2018-04-30  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (get_corrected_substring): Update for
	location_get_source_line returning a char_span.  Use a char_span
	when handling the prefix of the correction.
	* c-indentation.c (get_visual_column): Update for
	location_get_source_line returning a char_span.
	(get_first_nws_vis_column): Likewise.

2018-03-29  David Malcolm  <dmalcolm@redhat.com>

	PR c++/84269
	* known-headers.cc (get_stdlib_header_for_name): Add various names
	from <assert.h>, <string.h>, and <memory.h>; add more names from
	<stdio.h>.

2018-03-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/85061
	* c-common.c (fold_offsetof_1) <case COMPOUND_EXPR>: Assert that
	get_base_address of the second operand is a VAR_P, rather than the
	operand itself, and use gcc_checking_assert instead of gcc_assert.

2018-03-23  Marek Polacek  <polacek@redhat.com>

	PR c++/85045
	* c-pretty-print.c (c_pretty_printer::multiplicative_expression)
	<case RDIV_EXPR>: Tweak condition.

2018-03-20  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (pp_ada_tree_identifier): Deal specifically with _Bool.

2018-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR c/84909
	* c-warn.c (conversion_warning): Replace "to to" with "to" in
	diagnostics.

	PR c/84910
	* c-warn.c (diagnose_mismatched_attributes): Remove trailing space from
	diagnostics.

2018-03-16  Richard Biener  <rguenther@suse.de>

	PR c/84873
	* c-gimplify.c (c_gimplify_expr): Revert previous change.  Instead
	unshare the possibly folded expression.

2018-03-15  Richard Biener  <rguenther@suse.de>

	PR c/84873
	* c-gimplify.c (c_gimplify_expr): Do not fold expressions.

2018-03-13  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/84725
	* c-attribs.c (handle_nonstring_attribute): Allow attribute nonstring
	with all three narrow character types, including their qualified forms.

2018-03-12  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/83456
	* gcc/c-family/c-common.c (check_function_restrict): Return bool.
	Restore checking of bounded built-in functions.
	(check_function_arguments): Also return the result
	of warn_for_restrict.
	* gcc/c-family/c-common.c (check_function_restrict): Return bool.
	* gcc/c-family/c-warn.c (warn_for_restrict): Return bool.

2018-03-02  Marek Polacek  <polacek@redhat.com>

	PR c++/84171
	* c-warn.c (warn_for_sign_compare): Bail out if any of the operands
	is erroneous.

2018-03-02  Thomas Schwinge  <thomas@codesourcery.com>

	* c-attribs.c (c_common_attribute_table): Remove "cilk simd
	function".

2018-03-01  Marek Polacek  <polacek@redhat.com>

	PR c++/84639
	* c-attribs.c (common_handle_aligned_attribute): Don't use invalid
	alignment in computation.

2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_node) <NULLPTR_TYPE>: New case.
	<REAL_TYPE>: Deal specifically with _Float128/__float128.

2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_double_name) <ENUMERAL_TYPE>: New case.
	(is_char_array): Take a type instead of a declaration.
	(dump_ada_array_type): Likewise.
	(is_simple_enum): Minor tweak.
	(dump_ada_enum_type): New function extracted from...
	(dump_ada_node) <ENUMERAL_TYPE>: ...here.  Invoke it.
	<INTEGER_TYPE>: Remove unreachable code.
	<RECORD_TYPE>: Likewise.  Minor tweaks.
	(dump_nested_type) <ARRAY_TYPE>: Adjust to above changes.
	<ENUMERAL_TYPE>: New case.
	<RECORD_TYPE>: Factor out common code.
	(dump_ada_declaration) <ARRAY_TYPE>: Adjust to above changes.
	Minor tweaks.  Deal with enumeral types.
	(dump_ada_structure): Minor tweaks.

2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_node) <POINTER_TYPE>: Do not use generic
	address for incomplete structures.
	(dump_forward_type): Do not bail out for incomplete structures.
	(dump_ada_declaration): Do not special-case incomplete structures
	for subtypes.  Dump them as null records for types.

2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
	(is_char_array): Fix formatting.
	(dump_template_types): Likewise.
	(dump_generic_ada_node): Rename into...
	(dump_ada_node): ...this.
	<POINTER_TYPE>: Remove superfluous space.  Use generic address for
	incomplete structures and not for empty structures.  Do not use it
	when forward declarations are needed.
	(dump_forward_type): New function.
	(dump_nested_types): Remove FORWARD parameter.  Do not consider
	TREE_VISITED and do not generate a forward declaration.  Only dump
	original nested types for nested declaration.
	(dump_nested_type) <POINTER_TYPE>: Call dump_forward_type.
	<ARRAY_TYPE>: Likewise if the component type is an anonymous pointer.
	<RECORD_TYPE>: Do not consider TREE_VISITED.
	(dump_ada_declaration): Use booleans and fix formatting throughout.
	<TYPE_DECL>: Skip incomplete structures and not empty structures.
	Call dump_forward_type instead of dump_nested_types for a typedef.
	Remove superfluous check and adjust call to dump_nested_types.
	<POINTER_TYPE>: Call dump_forward_type and fall through.
	(dump_ada_struct_decl): Rename into...
	(dump_ada_structure): ...this.  Do not special-case empty structures.

2018-02-27  Martin Sebor  <msebor@redhat.com>

	PR c++/83871
	* c.opt (-Wmissing-attributes): New option.

2018-02-21  Martin Liska  <mliska@suse.cz>

	* c.opt (Wcatch-value=): Add IntegerRange.

2018-02-15  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_deduction_guides.

2018-02-09  Nathan Sidwell  <nathan@acm.org>

	PR c/84293
	* c-common.h (strict_aliasing_warning): Drop OTYPE arg, insert LOC
	arg.
	* c-warn.c (strict_aliasing_warning): Drop OTYPE arg, require LOC
	arg.  Adjust.

2018-02-09  Martin Sebor  <msebor@redhat.com>

	PR lto/84212
	* c.opt (-Wstringop-overflow, -Warray-bounds): Add LTO.
	(-Walloc-size-larger-than, -Wformat-truncation=): Same.
	(-Wmaybe-uninitialized, -Wnonnull, -Wrestrict): Same.
	(-Wstrict-overflow, -Wsuggest-attribute): Same.
	(-Wuninitialized): Same.

2018-02-09  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_declaration): Do not generate the 'constant'
	keyword for components.

2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* c-common.h (DECL_UNNAMED_BIT_FIELD): New.

2018-02-02  Julia Koval  <julia.koval@intel.com>

	* c-common.h (omp_clause_mask): Move to wide_int_bitmask.h.

2018-01-29  Marek Polacek  <polacek@redhat.com>

	PR c/83966
	* c-format.c (check_function_format): Check current_function_decl.

2018-01-27  Jakub Jelinek  <jakub@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Use ggc_strdup for the fp_suffix
	argument.
	(LAZY_HEX_FP_VALUES_CNT): Define.
	(lazy_hex_fp_values): Allow up to LAZY_HEX_FP_VALUES_CNT lazy hex fp
	values rather than just 12.
	(builtin_define_with_hex_fp_value): Likewise.

2018-01-18  Boris Kolpackov  <boris@codesynthesis.com>

	PR other/70268
	* c.opt (-fmacro-prefix-map): New option.
	* c-opts.c (c_common_handle_option): Handle it.
	* c-lex.c (init_c_lex): Set remap_filename cpp callback.
	* c-ppoutput.c (init_pp_output): Likewise.

2018-01-17  David Malcolm  <dmalcolm@redhat.com>

	PR c++/83814
	* c-common.c (fold_for_warn): Move to c/c-fold.c and cp/expr.c.

2018-01-10  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_number): Add FLOAT_P parameter.
	Skip 'f' and 'F' characters if it is true.
	(store_ada_macro): Minor tweak.
	(dump_ada_macros) <CPP_COMMENT>: Likewise.
	<CPP_WSTRING>: Likewise.
	<CPP_STRING>: Output '&' in the buffer if not the first string.
	<CPP_NUMBER>: Adjust calls to dump_number.

2018-01-10  David Malcolm  <dmalcolm@redhat.com>

	PR c++/43486
	* c-common.c: Include "selftest.h".
	(get_atomic_generic_size): Perform the test for integral type
	before the range test for any integer constant, fixing indentation
	of braces.  Call fold_for_warn before testing for an INTEGER_CST.
	(reject_gcc_builtin): Strip any location wrapper from EXPR.
	(selftest::test_fold_for_warn): New function.
	(selftest::c_common_c_tests): New function.
	(selftest::c_family_tests): Call it, and
	selftest::c_pretty_print_c_tests.
	* c-common.h (selftest::c_pretty_print_c_tests): New decl.
	* c-format.c (check_format_arg): Convert VAR_P check to a
	fold_for_warn.
	* c-pretty-print.c: Include "selftest.h".
	(pp_c_cast_expression): Don't print casts for location wrappers.
	(selftest::assert_c_pretty_printer_output): New function.
	(ASSERT_C_PRETTY_PRINTER_OUTPUT): New macro.
	(selftest::test_location_wrappers): New function.
	(selftest::c_pretty_print_c_tests): New function.
	* c-warn.c (warn_for_memset): Call fold_for_warn on the arguments.

2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-common.c (c_common_type_for_mode): Handle MODE_VECTOR_BOOL.

2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-ubsan.c (ubsan_instrument_shift): Treat GET_MODE_BITSIZE
	as polynomial.

2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-common.c (vector_types_convertible_p, c_build_vec_perm_expr)
	(convert_vector_to_array_for_subscript): Handle polynomial
	TYPE_VECTOR_SUBPARTS.
	(c_common_type_for_mode): Check valid_vector_subparts_p.
	* c-pretty-print.c (pp_c_initializer_list): Handle polynomial
	VECTOR_CST_NELTS.

2018-01-03  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2017-12-22  Mike Stump  <mikestump@comcast.net>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* c-pragma.c (init_pragma): Register pragma GCC unroll.
	* c-pragma.h (enum pragma_kind): Add PRAGMA_UNROLL.

2017-12-22  Alexandre Oliva <aoliva@redhat.com>

	PR debug/83527
	PR debug/83419
	* c-semantics.c (only_debug_stmts_after_p): New.
	(pop_stmt_list): Clear side effects in debug-only stmt list.
	Check for single nondebug stmt followed by debug stmts only.

2017-12-21  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/83419
	* c-semantics.c (pop_stmt_list): Propagate side effects from
	single nondebug stmt to container list.

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

	* known-headers.cc (get_stdlib_header_for_name): Replace Yoda
	conditions with typical order conditions.

2017-12-18  Marek Polacek  <polacek@redhat.com>

	* c-warn.c (warn_logical_operator): Return early if -Wlogical-op is
	not in effect.

2017-12-17  Martin Sebor  <msebor@redhat.com>

	* c-attribs.c (common_handle_aligned_attribute): Avoid issuing
	an error for attribute warn_if_not_aligned.

2017-12-16  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/78918
	* c-common.c (check_function_restrict): Avoid checking built-ins.
	* c.opt (-Wrestrict): Include in -Wall.

2017-12-15  Jakub Jelinek  <jakub@redhat.com>

	* c-attribs.c (c_common_attribute_table,
	c_common_format_attribute_table): Swap affects_type_identity
	and handler fields, adjust comments.

2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c.opt (Wcast-function-type): New warning option.
	* c-lex.c (get_fileinfo): Avoid warning.
	* c-ppoutput.c (scan_translation_unit_directives_only): Remove cast.

2017-12-14  Qing Zhao  <qing.zhao@oracle.com>

	PR middle_end/79538
	* c-cppbuiltin.c (builtin_define_with_hex_fp_value):
	Adjust the size of buf1 and buf2, add a new buf to avoid
	format-overflow warning.

2017-12-12  Alexandre Oliva <aoliva@redhat.com>

	* c-semantics.c (pop_stmt_list): Move begin stmt marker into
	subsequent statement list.

2017-12-07  Martin Sebor  <msebor@redhat.com>

	PR c/81544
	PR c/81566
	* c-attribs.c (attr_aligned_exclusions): New array.
	(attr_alloc_exclusions, attr_cold_hot_exclusions): Same.
	(attr_common_exclusions, attr_const_pure_exclusions): Same.
	(attr_gnu_inline_exclusions, attr_inline_exclusions): Same.
	(attr_noreturn_exclusions, attr_returns_twice_exclusions): Same.
	(attr_warn_unused_result_exclusions): Same.
	(handle_hot_attribute, handle_cold_attribute): Simplify.
	(handle_const_attribute): Warn on function returning void.
	(handle_pure_attribute): Same.
	(handle_aligned_attribute): Diagnose conflicting attribute
	specifications.
	* c-warn.c (diagnose_mismatched_attributes): Simplify.

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

	PR c/83236
	* c-common.c (selftest::c_family_tests): Call
	selftest::c_spellcheck_cc_tests.
	* c-common.h (selftest::c_spellcheck_cc_tests): New decl.
	* c-spellcheck.cc: Include "selftest.h".
	(name_reserved_for_implementation_p): New function.
	(should_suggest_as_macro_p): New function.
	(find_closest_macro_cpp_cb): Move the check for NT_MACRO to
	should_suggest_as_macro_p and call it.
	(selftest::test_name_reserved_for_implementation_p): New function.
	(selftest::c_spellcheck_cc_tests): New function.
	* c-spellcheck.h (name_reserved_for_implementation_p): New decl.

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

	* c-spellcheck.cc: New file, taken from macro-handling code in
	spellcheck-tree.c.
	* c-spellcheck.h: New file, taken from macro-handling code in
	spellcheck-tree.h.

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

	* c-attribs.c (c_common_attribute_table): Remove "cilk simd function"
	attribute.
	(handle_simd_attribute): Don't check for "cilk simd function"
	attribute.  Reindent, formatting changes.

2017-11-30  Julia Koval  <julia.koval@intel.com>

	* c-common.h (inv_list): Remove.

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

	PR sanitizer/81275
	* c-common.c (c_switch_covers_all_cases_p_1,
	c_switch_covers_all_cases_p): New functions.
	* c-common.h (c_switch_covers_all_cases_p): Declare.

2017-11-28  Julia Koval  <julia.koval@intel.com>
	    Sebastian Peryt  <sebastian.peryt@intel.com>

	* array-notation-common.c: Delete.
	* c-cilkplus.c: Ditto.
	* c-common.c (_Cilk_spawn, _Cilk_sync, _Cilk_for): Remove.
	* c-common.def (ARRAY_NOTATION_REF): Remove.
	* c-common.h (RID_CILK_SPAWN, build_array_notation_expr,
	build_array_notation_ref, C_ORT_CILK, c_check_cilk_loop,
	c_validate_cilk_plus_loop, cilkplus_an_parts,
	cilk_ignorable_spawn_rhs_op,
	cilk_recognize_spawn): Remove.
	* c-gimplify.c (CILK_SPAWN_STMT): Remove.
	* c-omp.c: Remove CILK_SIMD check.
	* c-pragma.c: Ditto.
	* c-pragma.h: Remove CILK related pragmas.
	* c-pretty-print.c (c_pretty_printer::postfix_expression): Remove
	ARRAY_NOTATION_REF condition.
	(c_pretty_printer::expression): Ditto.
	* c.opt (fcilkplus): Remove.
	* cilk.c: Delete.

2017-11-21  Marc Glisse  <marc.glisse@inria.fr>

	* c-pretty-print.c (pp_c_additive_expression,
	c_pretty_printer::expression): Handle POINTER_DIFF_EXPR.

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

	* c-common.c (get_nonnull_operand): Use tree_to_uhwi.

	PR c++/83059
	* c-common.c (get_atomic_generic_size): Use TREE_INT_CST_LOW
	instead of tree_to_uhwi, formatting fix.

2017-11-20  David Malcolm  <dmalcolm@redhat.com>

	PR c/81404
	* known-headers.cc: New file, based on material from c/c-decl.c.
	(suggest_missing_header): Copied as-is.
	(get_stdlib_header_for_name): New, based on get_c_name_hint but
	heavily edited to add C++ support.  Add some knowledge about
	<limits.h>, <stdint.h>, and <wchar.h>.
	* known-headers.h: Likewise.

2017-11-20  David Malcolm  <dmalcolm@redhat.com>

	* c-common.h (enum lookup_name_fuzzy_kind): Move to name-hint.h.
	(lookup_name_fuzzy): Likewise.  Convert return type from
	const char * to name_hint.  Add location_t param.
	* name-hint.h: New header.

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

	PR c/66618
	PR c/69960
	* c-common.h (c_fully_fold): Add LVAL argument defaulted to false.

2017-11-16  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (-std=c17, std=gnu17, -std=iso9899:2017): Refer to 2018
	expected publication date of C17.
	(-std=c18, -std=gnu18, -std=iso9899:2018): New option aliases.

2017-11-15  Joseph Myers  <joseph@codesourcery.com>

	PR c/81156
	* c-common.c (c_common_reswords): Add __builtin_tgmath.
	* c-common.h (enum rid): Add RID_BUILTIN_TGMATH.

2017-11-10  Martin Sebor  <msebor@redhat.com>

	PR c/81117
	* c-common.c (catenate_strings): Use memcpy instead of strncpy.
	* c-warn.c (sizeof_pointer_memaccess_warning): Handle arrays.
	* c.opt (-Wstringop-truncation): New option.

2017-11-06  Martin Liska  <mliska@suse.cz>

	PR middle-end/82404
	* c-opts.c (c_common_post_options): Set -Wreturn-type for C++
	FE.
	* c.opt: Set default value of warn_return_type.

2017-10-31  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (binary_op_error): Update for renaming of
	error_at_rich_loc.
	(c_parse_error): Likewise.
	* c-warn.c (warn_logical_not_parentheses): Likewise for
	renaming of inform_at_rich_loc.
	(warn_for_restrict): Likewise for renaming of
	warning_at_rich_loc_n.

2017-10-30  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (std=c17, std=gnu17, std=iso9899:2017): New options.
	* c-opts.c (set_std_c17): New function.
	(c_common_init_options): Use gnu17 as default C version.
	(c_common_handle_option): Handle -std=c17 and -std=gnu17.

2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* c-cppbuiltin.c (mode_has_fma): Add support for PowerPC KFmode.
	(c_cpp_builtins): If a machine has a fast fma _Float<N> and
	_Float<N>X variant, define __FP_FAST_FMA<N> and/or
	__FP_FAST_FMA<N>X.

2017-10-23  Marek Polacek  <polacek@redhat.com>

	PR c/82681
	* c-warn.c (warnings_for_convert_and_check): Fix typos.

2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>

	* c-common.c (check_builtin_function_arguments): Also check arguments
	of __builtin_alloca_with_align_and_max.

2017-10-17  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (format_warning_at_char): Pass UNKNOWN_LOCATION
	rather than NULL to format_warning_va.
	(check_format_types): Likewise when calling format_type_warning.
	Remove code to extract source_ranges and source_range * in favor
	of just a location_t.
	(format_type_warning): Convert source_range * param to a
	location_t.

2017-10-13  Jakub Jelinek  <jakub@redhat.com>

	* c-gimplify.c (c_gimplify_expr): Handle [LR]ROTATE_EXPR like
	[LR]SHIFT_EXPR.

2017-10-12  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (enum missing_token_insertion_kind): New enum.
	(get_missing_token_insertion_kind): New function.
	(maybe_suggest_missing_token_insertion): New function.
	* c-common.h (maybe_suggest_missing_token_insertion): New decl.

2017-10-11  Nathan Sidwell  <nathan@acm.org>

	* c-opts.c (add_prefixed_path): Change chain to incpath_kind.
	(c_common_handle_option): Update incpath_kind names.

2017-10-11  Martin Liska  <mliska@suse.cz>

	PR sanitizer/82490
	* c-attribs.c (handle_no_sanitize_attribute): Report directly
	Wattributes warning.

2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>

	* c-ada-spec.c (dump_generic_ada_node): Use wi::to_wide when
	operating on trees as wide_ints.
	* c-common.c (pointer_int_sum): Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.
	* c-warn.c (match_case_to_enum_1): Likewise.
	(c_do_switch_warnings): Likewise.
	(maybe_warn_shift_overflow): Likewise.

2017-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/82437
	* c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_wide
	instead of wide_int::from.

2017-10-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/82437
	* c-warn.c (warn_tautological_bitwise_comparison): Instead of
	using to_widest use wide_int with the larger of the two precisions.

2017-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-pretty-print.c (pp_c_parameter_type_list): Print ... for variadic
	functions.

2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>

	* c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_widest
	when combining the original unconverted comparison operands.

2017-09-29  Jakub Jelinek  <jakub@redhat.com>

	* c-attribs.c (handle_noipa_attribute): Don't add "stack_protect"
	attribute.

2017-09-29  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (to_ada_name): Add index parameter.
	(pp_ada_tree_identifier): Likewise.
	(dump_ada_macros): Adjust call to to_ada_name.
	(struct overloaded_name_hash): New type.
	(struct overloaded_name_hasher): Likewise.
	(overloaded_names): New hash table.
	(compute_overloading_index): New function.
	(dump_ada_decl_name): Call it and pass the result to
	pp_ada_tree_identifier.
	(dump_ada_double_name): Adjust calls to pp_ada_tree_identifier.
	(dump_ada_function_declaration): Likewise.
	(dump_generic_ada_node): Likewise.
	(print_constructor): Likewise.
	(print_destructor): Likewise.
	(dump_ada_specs): Delete overloaded_names table.

2017-09-29  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (max_ada_macros): Move around.
	(store_ada_macro_index): Likewise.
	(source_file): Rename into...
	(macro_source_file): ...this.
	(count_ada_macro): Move around.
	(store_ada_macro): Likewise.
	(compare_macro): Likewise.
	(print_ada_macros): Merge in...
	(dump_ada_macros): ...this.
	(source_file_base): Rename into...
	(current_source_file): ...this.
	(print_comment): Move around.
	(dump_ada_nodes): Call dump_ada_declaration directly.
	(struct with): Change type of limited field to bool.
	(append_withs): Change type of limited_access parameter to bool.
	(pp_ada_tree_identifie): Likewise.
	(dump_ada_decl_nam): Likewise.
	(dump_generic_ada_node): Likewise.  Do not print the return type.
	(to_ada_name): Change type of space_found parameter to bool.
	(dump_ada_function_declaration): Return void and change type of
	parameters to bool.  Also print the return type for a function.
	(print_ada_methods): Rename into...
	(dump_ada_methods): ...this.
	(print_ada_declaration): Rename into ...
	(dump_ada_declaration): ...this.  Do not print the return type.
	(print_ada_struct_decl): Rename into...
	(dump_ada_struct_decl): ...this.

2017-09-29  Jakub Jelinek  <jakub@redhat.com>

	* c-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD
	rather than DECL_INITIAL.
	(common_handle_aligned_attribute): Likewise.

2017-09-20  Alexandre Oliva <aoliva@redhat.com>

	* c.opt (gen-decls): Add RejectNegative.

2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
	    Jakub Jelinek  <jakub@redhat.com>

	Add support for -std=c++2a.
	* c-common.h (cxx_dialect): Add cxx2a as a dialect.
	* opt.c: Add options for -std=c++2a and -std=gnu++2a.
	* c-opts.c (set_std_cxx2a): New.
	(c_common_handle_option): Set options when -std=c++2a is enabled.
	(c_common_post_options): Adjust comments.
	(set_std_cxx14, set_std_cxx17): Likewise.

2017-09-15  Eric Botcazou  <ebotcazou@adacore.com>

	* c-pragma.c (handle_pragma_scalar_storage_order): Expand on error
	message for non-uniform endianness and issue a warning in C++.

2017-09-15  Jakub Jelinek  <jakub@redhat.com>

	* c.opt (Wc++1z-compat): Change from option to undocumented alias.
	(Wc++17-compat): Change from undocumented alias to option.
	(Wnoexcept-type): Enable by Wc++17-compat instead of Wc++1z-compat,
	change C++1z to C++17 in description.
	(std=c++1z, std=gnu++1z): Change from option to undocumented
	deprecated alias.
	(std=c++17, std=gnu++17): Change from undocumented alias to option.
	Adjust description.
	* c-common.h (enum cxx_dialect): Rename cxx1z to cxx17.
	* c-opts.c (set_std_cxx1z): Rename to ...
	(set_std_cxx17): ... this.
	(c_common_handle_option): Rename OPT_std_c__1z to OPT_std_c__17
	and OPT_std_gnu__1z to OPT_std_gnu__17.  Adjust set_std_cxx1z
	caller.
	(c_common_post_options): Use cxx17 instead of cxx1z.  Adjust
	comments.

2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>

	* c-attribs.c (common_handle_aligned_attribute): Don't warn
	function alignment if warn_if_not_aligned_p is true.

2017-09-12  Nathan Sidwell  <nathan@acm.org>

	* c-common.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
	resort_sorted_fields): Move to c/c-decl.c.
	* c-common.h (field_decl_cmp, resort_sorted_fields): Delete.
	(struct sorted_fields_type): Move to c/c-lang.h.

2017-09-09  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/81852
	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_threadsafe_static_init.

2017-09-04  Marek Polacek  <polacek@redhat.com>

	PR c/81783
	* c-warn.c (warn_tautological_bitwise_comparison): New function.
	(warn_tautological_cmp): Call it.

2017-09-01  Boris Kolpackov <boris@codesynthesis.com>

	* c-opts.c (c_common_finish): Write dependency information even if
	there are errors.

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

	PR c/81887
	* c-pragma.c (omp_pragmas): Move "ordered" entry from here to ...
	(omp_pragmas_simd): ... here.
	* c-omp.c (c_finish_omp_ordered): If clauses isn't simd clause alone,
	create new clauses list containing just simd clause.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-attribs.c (vector_mode_valid_p) Fold GET_MODE_INNER call
	into scalar_mode_supported_p call.
	(handle_mode_attribute): Update call to scalar_mode_supported_p.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-common.c (c_common_fixed_point_type_for_size): Use opt_scalar_mode
	for the mode iterator.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-lex.c (interpret_fixed): Use SCALAR_TYPE_MODE.
	* c-common.c (c_build_vec_perm_expr): Likewise.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-common.c (c_common_type_for_mode): Use as_a <scalar_int_mode>.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-attribs.c (handle_mode_attribute): Check for a scalar_int_mode
	before calling targetm.addr_space.valid_pointer_mode.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-cppbuiltin.c (c_cpp_builtins): Use opt_scalar_float_mode.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-common.c (c_common_fixed_point_type_for_size): Use new mode
	iterators.
	* c-cppbuiltin.c (c_cpp_builtins): Likewise.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* c-cppbuiltin.c (mode_has_fma): Prefix mode names with E_ in
	case statements.

2017-08-29  Martin Liska  <mliska@suse.cz>

	PR other/39851
	* c-common.c (parse_optimize_options): Add argument to function
	call.
	* c-pragma.c (handle_pragma_diagnostic): Likewise.

2017-08-24  David Malcolm  <dmalcolm@redhat.com>

	* c-lex.c (interpret_float): Use token location
	when building an EXCESS_PRECISION_EXPR.

2017-08-21  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (check_function_arguments): Add "arglogs" param; pass
	it to check_function_format.
	* c-common.h (check_function_arguments): Add vec<location_t> *
	param.
	(check_function_format): Likewise.
	* c-format.c (struct format_check_context): Add field "arglocs".
	(check_function_format): Add param "arglocs"; pass it to
	check_format_info.
	(check_format_info):  Add param "arglocs"; use it to initialize
	new field of format_ctx.
	(check_format_arg): Pass format_ctx->arglocs to new param of
	check_format_info_main.
	(class argument_parser): New field "arglocs".
	(argument_parser::argument_parser): Add "arglocs_" param and use
	it to initialize new field.
	(argument_parser::check_argument_type): Pass new arglocs field to
	check_format_types.
	(check_format_info_main): Add param "arglocs", and use it when
	constructing arg_parser.
	(check_format_types): Add param "arglocs"; use it if non-NULL when
	!EXPR_HAS_LOCATION (cur_param) to get at location information.

2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/53037
	* c-attribs.c (handle_warn_if_not_aligned_attribute): New.
	(c_common_attribute_table): Add warn_if_not_aligned.
	(handle_aligned_attribute): Renamed to ...
	(common_handle_aligned_attribute): Remove argument, name, and add
	argument, warn_if_not_aligned.  Handle warn_if_not_aligned.
	(handle_aligned_attribute): New.
	* c.opt: Add -Wif-not-aligned and -Wpacked-not-aligned.

2017-08-14  Martin Sebor  <msebor@redhat.com>

	PR c/81117
	* c-attribs.c (c_common_attribute_table): Add nonstring entry.
	(handle_nonstring_attribute): New function.

2017-08-14  Martin Sebor  <msebor@redhat.com>

	PR c/81117
	* c-format.h (T89_G): New macro.
	* c-format.c (local_gcall_ptr_node): New variable.
	(init_dynamic_diag_info): Initialize it.

2017-08-11  Martin Liska  <mliska@suse.cz>

	* c-opts.c (c_common_post_options): Replace ASM_OUTPUT_DEF with
	TARGET_SUPPORTS_ALIASES.

2017-08-10  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (c_parse_error): Add rich_location * param, using it
	rather implicitly using input_location.
	* c-common.h (c_parse_error): Add rich_location * param.

2017-08-09  Marek Polacek  <polacek@redhat.com>

	* c-common.c (pointer_int_sum): Use true/false instead of 1/0.
	(c_common_truthvalue_conversion): Likewise.
	* c-omp.c (c_finish_omp_atomic): Likewise.
	* c-common.h (build_binary_op): Update declaration.

2017-08-08  Martin Liska  <mliska@suse.cz>

	* c-ada-spec.c: Include header files.
	* c-ubsan.c: Likewise.
	* c-warn.c: Likewise.

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

	PR c/69389
	* c-omp.c (c_finish_omp_atomic): Handle atomics on bitfields.

2017-08-07  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (has_nontrivial_methods): Test for FUNCTION_DECL.
	(print_ada_methods): Likewise.
	(print_ada_declaration): Likewise.

2017-08-07  Martin Liska  <mliska@suse.cz>

	* array-notation-common.c: Add new includes.
	* c-format.c( handle_format_attribute): Canonicalize a format
	function name.
	* c-lex.c (c_common_has_attribute): Canonicalize name of an
	attribute.
	* c-pretty-print.c: Add new include.

2017-08-05  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (has_static_fields): Look only into variables.
	(print_constructor): Add TYPE parameter and use it for the name.
	(print_destructor): Likewise.
	(print_ada_declaration): Adjust to new constructor/destructor names.
	Adjust calls to print_constructor and print_destructor.
	(print_ada_struct_decl): Do not test TREE_STATIC on FIELD_DECL.
	Look only into variables in the final loop.

2017-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (has_static_fields): Look only into fields.
	(dump_generic_ada_node): Small tweak.
	(dump_nested_types): Look only into fields.
	(print_ada_declaration): Look only into methods.  Small tweak.
	(print_ada_struct_decl): Look only into fields.  Use DECL_VIRTUAL_P.

2017-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (print_generic_ada_decl): Pass correctly-typed constant.
	(dump_ada_function_declaration): Likewise.
	(dump_generic_ada_node): Likewise.
	(print_ada_declaration): Add support for const-qualified variables.

2017-07-31  Martin Liska  <mliska@suse.cz>

	PR sanitize/81530
	* c-ubsan.c (ubsan_maybe_instrument_array_ref):
	Guard condition with flag_sanitize_p also with current_function_decl
	non-null equality.
	(ubsan_maybe_instrument_reference_or_call): Likewise.

2017-07-30  Uros Bizjak  <ubizjak@gmail.com>

	* c-format.c (asm_fprintf_char_table): Add 'z' to format_chars.

2017-07-29  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_generic_ada_node): Take into account signedness
	for enumeral types.
	(print_ada_declaration): Add missing guard for record types.

2017-07-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/45784
	* c-omp.c (c_finish_omp_for): If the condition is wrapped in
	rhs of COMPOUND_EXPR(s), skip them and readd their lhs into
	new COMPOUND_EXPRs around the rhs of the comparison.

2017-07-27  Marek Polacek  <polacek@redhat.com>

	PR c/81417
	* c-warn.c (warn_for_sign_compare): Tweak the warning message.  Print
	the types.

2017-07-27  Jakub Jelinek  <jakub@redhat.com>

	* c-attribs.c (c_common_attribute_table): Add noipa attribute.
	(handle_noipa_attribute): New function.

2017-07-07  Torsten Duwe  <duwe@suse.de>

	* c-attribs.c (c_common_attribute_table): Add entry for
	"patchable_function_entry".

2017-07-20  Nathan Sidwell  <nathan@acm.org>

	Remove TYPE_METHODS.
	* c-ada-spec.c (is_tagged_type, has_nontrivial_methods,
	dump_ada_template, print_ada_methods,
	print_ada_declaration): Member fns are on TYPE_FIELDS.

2017-07-18  Nathan Sidwell  <nathan@acm.org>

	* c-warn.c (warn_for_memset): Use TYPE_{MIN,MAX}_VALUE.

2017-07-14  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (try_to_locate_new_include_insertion_point): New
	function.
	(per_file_includes_t): New typedef.
	(added_includes_t): New typedef.
	(added_includes): New variable.
	(maybe_add_include_fixit): New function.
	* c-common.h (maybe_add_include_fixit): New decl.

2017-07-10  Martin Sebor  <msebor@redhat.com>

	PR other/81345
	* c.opt (-Wstringop-overflow): Set defaults in LangEnabledBy.

2017-07-06  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (selftest::c_family_tests): New.
	* c-common.h (selftest::run_c_tests): Move decl to c/c-lang.h.
	(selftest::c_family_tests): New decl.

2017-07-04  Marek Polacek  <polacek@redhat.com>

	PR c/81231
	* c-common.c (sync_resolve_size): Give error for pointers to incomplete
	types.

2017-07-04  Marek Polacek  <polacek@redhat.com>

	* c-warn.c (warn_if_unused_value): Remove WITH_CLEANUP_EXPR handling.

2017-06-28  Martin Liska  <mliska@suse.cz>

	PR ipa/81128
	* c-attribs.c (handle_alias_ifunc_attribute): Append ifunc alias
	to a function declaration.

2017-06-28  Martin Liska  <mliska@suse.cz>

	PR driver/79659
	* c.opt: Add IntegerRange to various options.

2017-06-26  Marek Polacek  <polacek@redhat.com>

	PR c/80116
	* c-common.h (warn_for_multistatement_macros): Declare.
	* c-warn.c: Include "c-family/c-indentation.h".
	(warn_for_multistatement_macros): New function.
	* c.opt (Wmultistatement-macros): New option.
	* c-indentation.c (guard_tinfo_to_string): No longer static.
	Change the parameter type to "enum rid".  Handle RID_SWITCH.
	* c-indentation.h (guard_tinfo_to_string): Declare.

2017-06-23  Marc Glisse  <marc.glisse@inria.fr>

	* c-common.c (c_common_nodes_and_builtins): Use builtin_structptr_types.

2017-06-15  Martin Sebor  <msebor@redhat.com>

	PR c++/80560
	* c.opt (-Wclass-memaccess): New option.

2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>

	* c-opts.c (c_common_finish): Handle '-' special value to -MF.

2017-06-13  Marek Polacek  <polacek@redhat.com>

	PR objc/80949
	* c-warn.c (do_warn_duplicated_branches): Return if any of the
	branches is null.

2017-06-13  Martin Liska  <mliska@suse.cz>

	PR sanitize/78204
	* c-attribs.c (add_no_sanitize_value): New function.
	(handle_no_sanitize_attribute): Likewise.
	(handle_no_sanitize_address_attribute): Use the function.
	(handle_no_sanitize_thread_attribute): New function.
	(handle_no_address_safety_analysis_attribute): Use
	add_no_sanitize_value.
	(handle_no_sanitize_undefined_attribute): Likewise.
	* c-common.h: Declare new functions.
	* c-ubsan.c (ubsan_instrument_division): Use sanitize_flags_p.
	(ubsan_instrument_shift): Likewise.
	(ubsan_instrument_bounds): Likewise.
	(ubsan_maybe_instrument_array_ref): Likewise.
	(ubsan_maybe_instrument_reference_or_call): Likewise.

2017-06-11  Jason Merrill  <jason@redhat.com>

	* c-ada-spec.c, c-pragma.c: Use id_equal.

2017-06-04  Marek Polacek  <polacek@redhat.com>

	PR c/80919
	* c-format.c (matching_type_p): Return false if any of the types
	requires structural equality.

2017-06-02  Martin Sebor  <msebor@redhat.com>

	PR c/80892
	* c-warn.c (conversion_warning): Use -Wconversion for integer
	conversion and -Wfloat-conversion for floating one.

2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c.opt (Wsizeof-pointer-div): New warning option.

2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>

	* c.opt (Wcatch-value): New shortcut for Wcatch-value=1.
	(Wcatch-value=1): Enable by -Wall.

2017-05-30  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (gcc_cxxdiag_char_table): Add 'H' and 'I' to
	format_chars.
	* c.opt (fdiagnostics-show-template-tree): New option.
	(felide-type): New option.

2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>

	* c.opt (Wcatch-value=): New C++ warning flag.

2017-05-24  Nathan Sidwell  <nathan@acm.org>

	* c=common.c (field_decl_cmp, resort_field_decl_cmp): Adjust T
	const casts to avoid warning.

2017-05-24  Martin Sebor  <msebor@redhat.com>

	PR c/80731
	* c-common.h (unsafe_conversion_p): Add a function argument.
	* c-common.c (unsafe_conversion_p): Same.
	Add type names and values to diagnostics.
	(scalar_to_vector): Adjust.
	* c-warn.c (constant_expression_error): Add a function argument.
	Add type names and values to diagnostics.
	(conversion_warning): Add a function argument.
	Add type names and values to diagnostics.
	(warnings_for_convert_and_check): Same.

2017-05-19  Jason Merrill  <jason@redhat.com>

	* c-warn.c (match_case_to_enum_1): Don't warn about enums with no
	enumerators.

2017-05-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-format.c (locus): Move out of function scope,
	add GTY attribute.

2017-05-19  Nathan Sidwell  <nathan@acm.org>

	* c-opts.c (class_dump_file, class_dump_flags): Delete.
	(c_common_parse_file): Remove class dump handling.
	(get_dump_info): Likewise.

2017-05-19  Richard Biener  <rguenther@suse.de>

	PR c++/80593
	* c-warn.c (strict_aliasing_warning): Do not warn for accesses
	to alias-set zero memory.

2017-05-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-format.c (local_tree_type_node): Add GTY attribute.

2017-05-18  Marek Polacek  <polacek@redhat.com>

	* c-common.c (c_common_type_for_size): Use NULL_TREE instead of 0.
	(c_common_fixed_point_type_for_size): Likewise.
	(c_common_type_for_mode): Likewise.
	(shorten_compare): Likewise.
	(c_promoting_integer_type_p): Use false/true instead of 0/1.
	* c-pragma.c (maybe_apply_renaming_pragma): Use NULL_TREE instead of 0.

2017-05-18  Marek Polacek  <polacek@redhat.com>

	* c-common.c (self_promoting_args_p): Change the return type to bool.
	Use false/true instead of 0/1.
	* c-common.h (self_promoting_args_p): Update.

2017-05-17  Marek Polacek  <polacek@redhat.com>

	* c-common.c: Use NULL_TREE instead of 0 where appropriate.
	* c-warn.c: Likewise.

2017-05-17  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement new C++ intrinsics __is_assignable and __is_constructible.
	* c-common.c (__is_assignable, __is_constructible): New.
	* c-common.h (RID_IS_ASSIGNABLE, RID_IS_CONSTRUCTIBLE): Likewise.

2017-05-17  Martin Liska  <mliska@suse.cz>

	* c-common.h: Introduce dump_flags_t type and
	use it instead of int type.
	* c-gimplify.c (c_genericize): Likewise.
	* c-opts.c: Likewise.

2017-05-17  Marek Polacek  <polacek@redhat.com>

	* c-common.c (c_save_expr): Remove.
	(c_common_truthvalue_conversion): Remove a call to c_save_expr.
	* c-common.h (c_save_expr): Remove declaration.

2017-05-09  Volker Reichelt  <v.reichelt@netcologne.de>

	PR c/35441
	* c-pretty-print.c (c_pretty_printer::expression): Handle MAX_EXPR,
	MIN_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, LROTATE_EXPR, RROTATE_EXPR.
	(c_pretty_printer::postfix_expression): Handle MAX_EXPR, MIN_EXPR.
	(c_pretty_printer::multiplicative_expression): Handle EXACT_DIV_EXPR,
	RDIV_EXPR.
	(pp_c_shift_expression): Handle LROTATE_EXPR, RROTATE_EXPR.

2017-05-09  Marek Polacek  <polacek@redhat.com>

	PR c/80525
	* c-warn.c (unwrap_c_maybe_const): New.
	(warn_logical_operator): Call it.

2017-05-09  Nathan Sidwell  <nathan@acm.org>

	* c-common.c (c_register_builtin_type): Use pushdecl lang_hook.
	* c-common.h (pushdecl_top_level, pushdecl): Don't declare here.

2017-05-08  Martin Sebor  <msebor@redhat.com>

	PR translation/80280
	* c-format.h (struct format_flag_spec): Add new member.
	(T89_T): New macro.
	* c-format.c (local_tree_type_node): New global.
	(printf_flag_specs, asm_fprintf_flag_spec): Initialize new data.
	(gcc_diag_flag_specs, scanf_flag_specs, strftime_flag_specs): Ditto.
	(strfmon_flag_specs): Likewise.
	(gcc_diag_char_table, gcc_cdiag_char_table): Split up specifiers
	with distinct quoting properties.
	(gcc_tdiag_char_table, gcc_cxxdiag_char_table): Same.
	(flag_chars_t::validate): Add argument and handle bad quoting.
	(check_format_info_main): Handle quoting problems.
	(init_dynamic_diag_info): Simplify.

2017-05-08  Jason Merrill  <jason@redhat.com>

	* c-opts.c (c_common_post_options): Update defaults for
	flag_abi_version and flag_abi_compat_version.

2017-05-05  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (c_cpp_error): Replace report_diagnostic
	with diagnostic_report_diagnostic.

2017-05-04  Martin Sebor  <msebor@redhat.com>

	PR translation/80280
	* c-attribs.c (handle_alias_ifunc_attribute): Quote a %D directive.
	(handle_weakref_attribute): Same.

2017-05-03  Nathan Sidwell  <nathan@acm.org>

	Canonicalize canonical type hashing
	* c-common.c (complete_array_type): Use type_hash_canon.

2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>

	PR c++/80038
	* c-common.h (cilk_gimplify_call_params_in_spawned_fn): Remove
	prototype.
	(cilk_install_body_pedigree_operations): Likewise.
	* cilk.c (cilk_set_spawn_marker): Mark functions that should be
	detatched.
	(cilk_gimplify_call_params_in_spawned_fn): Remove.
	(cilk_install_body_pedigree_operations): Likewise.
	(gimplify_cilk_spawn): Add EXPR_STMT and CLEANUP_POINT_EXPR
	unwrapping.

2017-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80534
	* c-common.c (complete_array_type): Only hash TYPE_TYPELESS_STORAGE
	flag on non-aggregate element types.

2017-04-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-common.c (c_type_hasher, type_hash_table): Remove.
	(c_common_get_alias_set): Remove unreachable code.
	* c-opts.c (c_common_post_options): Make sure cc1 takes only one file.

2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>

	* c.opt (Wextra-semi): New C++ warning flag.

2017-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/80423
	* c-common.c (complete_array_type): Preserve TYPE_TYPELESS_STORAGE.

2017-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/79788
	PR middle-end/80375
	* c-common.c (c_common_type_for_mode): Don't handle
	widest_*_literal_type_node here.
	c_common_signed_or_unsigned_type): Likewise.
	(c_common_nodes_and_builtins): Set widest_*_literal_type_node
	to *intTI_type_node or *intDI_type_node depending on whether
	TImode is supported by the target or not.

2017-04-10  Martin Liska  <mliska@suse.cz>

	PR sanitizer/80350
	* c-ubsan.c (ubsan_instrument_shift): Evaluate RHS before
	doing an UBSAN check.

2017-04-03  Jonathan Wakely  <jwakely@redhat.com>

	* c-warn.c (do_warn_double_promotion): Fix typo in comment.

2017-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79572
	* c-ubsan.h (ubsan_maybe_instrument_reference): Change argument to
	tree *.
	* c-ubsan.c (ubsan_maybe_instrument_reference): Likewise.  Handle
	not just NOP_EXPR to REFERENCE_TYPE, but also INTEGER_CST with
	REFERENCE_TYPE.

2017-03-31  David Malcolm  <dmalcolm@redhat.com>

	PR documentation/78732
	* c.opt (Wendif-labels): Fix description to refer to
	#else rather than #elif.

2017-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/80251
	* c-common.h (enum rid): Add RID_IS_AGGREGATE.
	* c-common.c (c_common_reswords): Add __is_aggregate trait.

2017-03-27  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/80162
	* c-common.c (c_common_mark_addressable_vec): Don't set
	TREE_ADDRESSABLE on DECL_HARD_REGISTER.

2017-03-21  Martin Sebor  <msebor@redhat.com>

	PR c++/79548
	* c-common.c (set_underlying_type): Mark type used only when
	original del is declared unused.

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

	PR translation/79848
	* c-format.c (check_format_string): Simplify uses of "%<%s%>" to
	"%qs".

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

	PR c/79921
	* c-indentation.c (warn_for_misleading_indentation): Remove parens
	from inform's message, so that xgettext can locate it.

2017-03-09  Marek Polacek  <polacek@redhat.com>

	PR c++/79962
	PR c++/79984
	* c-attribs.c (handle_nonnull_attribute): Save the result of default
	conversion to the attribute list.

2017-03-09  Martin Liska  <mliska@suse.cz>

	* c-ada-spec.c (macro_length): Increment value instead of a pointer.

2017-03-03  Jason Merrill  <jason@redhat.com>

	* c.opt (Wnoexcept-type): New.

2017-03-02  Richard Biener  <rguenther@suse.de>

	PR c/79756
	* c-common.c (c_common_mark_addressable_vec): Look through
	C_MAYBE_CONST_EXPR.

2017-02-28  Martin Liska  <mliska@suse.cz>

	* c.opt: Replace space with tabular for options of <number>
	type.

2017-02-28  Martin Liska  <mliska@suse.cz>

	* c.opt: Fix --help=option -Q for options which are of
	an enum type.

2017-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79588
	* c-common.c (check_function_restrict): New function.
	(check_function_arguments): Add FNDECL argument.  Call
	check_function_restrict if -Wrestrict.
	* c-warn.c (warn_for_restrict): Remove ARGS argument, add ARGARRAY
	and NARGS.  Use auto_vec for ARG_POSITIONS, simplify.
	* c-common.h (check_function_arguments): Add FNDECL argument.
	(warn_for_restrict): Remove ARGS argument, add ARGARRAY and NARGS.

2017-02-24  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_function_declaration): Add comment about the
	treatment of parameters with pointer-to-tagged type and tidy up.
	(print_ada_methods): Remove the special treatment of C++ static member
	functions.

2017-02-22  Martin Liska  <mliska@suse.cz>

	* c.opt: Replace inequality signs with square brackets
	for -Wnornalized.

2017-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/79641
	* c-attribs.c (handle_mode_attribute): Use build_qualified_type to
	preserve quals.

2017-02-17  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (builtin_define_float_constants): Define
	__DECIMAL_DIG__ to the value for long double.

2017-02-15  Marek Polacek  <polacek@redhat.com>

	PR c/79515
	* c-warn.c (do_warn_double_promotion): Don't warn if an invalid
	conversion has occured.

2017-01-24  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (c_common_reswords): Add "__RTL".
	* c-common.h (enum rid): Add RID_RTL.

2017-01-20  Marek Polacek  <polacek@redhat.com>

	PR c/64279
	* c-common.h (do_warn_duplicated_branches_r): Declare.
	* c-gimplify.c (c_genericize): Walk the function tree calling
	do_warn_duplicated_branches_r.
	* c-warn.c (expr_from_macro_expansion_r): New.
	(do_warn_duplicated_branches): New.
	(do_warn_duplicated_branches_r): New.
	* c.opt (Wduplicated-branches): New option.

2017-01-17  David Malcolm  <dmalcolm@redhat.com>

	PR c++/71497
	* c-indentation.c (warn_for_misleading_indentation): Use the past
	subjunctive in the note.

2017-01-17  Aldy Hernandez  <aldyh@redhat.com>

	PR c/79116
	* array-notation-common.c (cilkplus_extract_an_triplets): Convert
	start type to integer_type.

2017-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR driver/49726
	* c.opt (gen-decls): Add Driver flag.

2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>

	Revert:
     	2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71737
	* c-common.c (set_underlying_type): Always set DECL_ORIGINAL_TYPE.

2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71737
	* c-common.c (set_underlying_type): Always set DECL_ORIGINAL_TYPE.

2017-01-12  Martin Sebor  <msebor@redhat.com>

	(-Wformat-overflow): ...to this.

2017-01-11  Martin Sebor  <msebor@redhat.com>

	PR c/78768
	* c.opt (-Walloca-larger-than, -Wformat-length, -Wformat-truncation):
	Also enable for LTO.

2017-01-10  Jason Merrill  <jason@redhat.com>

	Implement P0195R2, C++17 variadic using.
	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_variadic_using.

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

	PR translation/79019
	PR translation/79020
	* c.opt (Wnormalized=): Fix typo in description.

2017-01-08  Martin Sebor  <msebor@redhat.com>

	PR middle-end/77708
	* c.opt (-Wformat-truncation): New option.

2017-01-06  Alexandre Oliva <aoliva@redhat.com>

	* c-pretty-print.c (pp_c_tree_decl_identifier): Convert 16-bit
	value to unsigned short to fit in 4 hex digits without
	warnings.

2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>

	* c.opt (fsso-struct): Add 'native' value.

2017-01-05  Martin Liska  <mliska@suse.cz>

	PR pch/78970
	* c-opts.c (c_common_post_options): Reject '-' filename for a precompiled
	header.

2017-01-04  Marek Polacek  <polacek@redhat.com>

	PR c++/64767
	* c.opt (Wpointer-compare): New option.

2017-01-04  Jakub Jelinek  <jakub@redhat.com>

	PR driver/78957
	* c.opt (fsso-struct=): Add RejectNegative.

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

	Update copyright years.

2016-12-29  Martin Liska  <mliska@suse.cz>

	PR c/78933
	* c.opt (strong-eval-order): Add RejectNegative keyword.

2016-12-22  Jason Merrill  <jason@redhat.com>

	Implement P0522R0, matching of template template arguments.
	* c-cppbuiltin.c (c_cpp_builtins): Define
	__cpp_template_template_args.

2016-12-21  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/78817
	* c-common.c (struct nonnull_arg_ctx): New type.
	(check_function_nonnull): Return bool instead of void.  Use
	nonnull_arg_ctx as context rather than just location_t.
	(check_nonnull_arg): Adjust for the new context type, set
	warned_p to true if a warning has been diagnosed.
	(check_function_arguments): Return bool instead of void.
	* c-common.h (check_function_arguments): Adjust prototype.

2016-12-21  Jason Merrill  <jason@redhat.com>

	* c.opt (-fnew-ttp-matching): New flag.
	* c-opts.c (c_common_post_options): Default on if -std=c++1z.

2016-12-14  Martin Jambor  <mjambor@suse.cz>

	* c-omp.c: Include omp-general.h instead of omp-low.h.
	(c_finish_oacc_wait): Adjusted call to find_omp_clause to use its new
	name.

2016-12-14  Martin Sebor  <msebor@redhat.com>

	PR c/17308
	* c-common.c (check_nonnull_arg): Disable when optimization
	is enabled.

2016-12-12  Marek Polacek  <polacek@redhat.com>

	PR c++/78647
	* c-common.c (attribute_fallthrough_p): Return false for
	error_mark_node.

2016-12-08  Martin Sebor  <msebor@redhat.com>

	PR c/78284
	* c.opt (-Walloc-zero, -Walloc-size-larger-than): New options.

2016-12-08  Martin Sebor  <msebor@redhat.com>

	PR c/78165
	* c-pretty-print (pp_c_integer_constant): Avoid formatting type
	suffix.

2016-12-07  Martin Sebor  <msebor@redhat.com>

	PR c/53562
	PR middle-end/77784
	PR middle-end/78149
	PR middle-end/78138
	* c.opt (-Wstringop-overflow): New option.

2016-12-02  Maxim Ostapenko  <m.ostapenko@samsung.com>

	* c-attribs.c (asan odr indicator): New attribute.
	(handle_asan_odr_indicator_attribute): New function.

2016-11-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* c-common.c (c_common_nodes_and_builtins): Remove initialization of
	ptrdiff_type_node;

2016-11-23  James Greenhalgh  <james.greenhalgh@arm.com>

	* c-common.c (excess_precision_mode_join): New.
	(c_ts18661_flt_eval_method): New.
	(c_c11_flt_eval_method): Likewise.
	(c_flt_eval_method): Likewise.
	* c-common.h (excess_precision_mode_join): New.
	(c_flt_eval_method): Likewise.
	* c-cppbuiltin.c (c_cpp_flt_eval_method_iec_559): New.
	(cpp_iec_559_value): Call it.
	(c_cpp_builtins): Modify logic for __LIBGCC_*_EXCESS_PRECISION__,
	call c_flt_eval_method to set __FLT_EVAL_METHOD__ and
	__FLT_EVAL_METHOD_TS_18661_3__.

2016-11-23  James Greenhalgh  <james.greenhalgh@arm.com>

	* c-opts.c (c_common_post_options): Add logic to handle the default
	case for -fpermitted-flt-eval-methods.

2016-11-23  Paolo Bonzini  <bonzini@gnu.org>

	* c.opt (Wexpansion-to-defined): New.

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

	PR target/78451
	* c-pragma.c (handle_pragma_target): Don't replace
	current_target_pragma, but chainon the new args to the current one.

2016-11-22  Nathan Sidwell  <nathan@acm.org>

	* array-notation-common.c (cilkplus_extract_an_trplets): Fix
	indentation and formatting.

2016-11-21  Martin Sebor  <msebor@redhat.com>

	* c.opt (-fprintf-return-value): Enable by default.

2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/71973
	* c.opt (-Wbuiltin-declaration-mismatch): New warning.
	* c-common.c (c_common_nodes_and_builtins): Initialize
	const_tm_ptr_type_node.

2016-11-16  Marek Polacek  <polacek@redhat.com>

	PR c/78285
	* c-common.c (c_add_case_label): Turn error_at calls into inform.

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

	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings.

2016-11-14  Prasad Ghangal  <prasad.ghangal@gmail.com>
	    Richard Biener  <rguenther@suse.de>

	* c-common.h (c_common_resword): Add RID_GIMPLE, RID_PHI types.
	* c-common.h (enum rid): Add RID_GIMPLE, RID_PHI.
	* c.opt (fgimple): New option.

2016-11-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR c/35503
	* c-common.h (warn_for_restrict): Declare.
	* c-warn.c: Include gcc-rich-location.h.
	(warn_for_restrict): New function.
	* c-format.c (gcc_tdiag_char_table): Add entry for "Z" specifier.
	(gcc_cdiag_char_table): Likewise.
	(gcc_cxxdiag_char_table): Likewise.
	* c.opt (Wrestrict): New option.

2016-11-13  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (print_ada_declaration): For typedef declarations, look
	for nested types only if the type is a record or union and dump SLOC.

2016-11-09  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_template_auto.

2016-11-09  Jakub Jelinek  <jakub@redhat.com>

	* c-ubsan.c (ubsan_instrument_shift): Handle split
	-fsanitize=shift-base and -fsanitize=shift-exponent.

2016-11-07  Jason Merrill  <jason@redhat.com>

	* c.opt (Wc++1z-compat): New.
	* c-cppbuiltin.c (c_cpp_builtins): Add __cpp_noexcept_function_type.

2016-11-07  Martin Liska  <mliska@suse.cz>

	* c-warn.c (warn_for_unused_label): Save all labels used
	in goto or in &label.

2016-11-03  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Correct
	__cpp_inheriting_constructors.

2016-11-01  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Update
	__cpp_inheriting_constructors.

	* c.opt (-fnew-inheriting-ctors): New.
	* c-opts.c: Default to on for ABI 11+.

2016-10-31  Jakub Jelinek  <jakub@redhat.com>

	PR c++/77948
	* c.opt (fext-numeric-literals): Add Var and Init.
	* c-opts.c (c_common_handle_option): Don't clear
	cpp_opts->ext_numeric_literals for -std=c++{11,14,1z}.
	(c_common_post_options): Clear it here if not set
	explicitly.

2016-10-28  Aldy Hernandez  <aldyh@redhat.com>

	PR debug/77773
	* c-pretty-print.c (simple_type_specifier): Do not dereference `t'
	if NULL.

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

	* c-common.h (enum rid): Add RID_BUILTIN_LAUNDER.
	* c-common.c (c_common_reswords): Add __builtin_launder.

2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-common.c (c_common_truthvalue_conversion): Warn for
	multiplications in boolean context.  Fix the quoting of '<<' and '<'
	in the shift warning.

2016-10-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-common.c (c_common_truthvalue_conversion): Fix the comment.

2016-10-20  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_concepts value.

2016-10-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-common.c (c_common_truthvalue_conversion): Warn only for signed
	integer shift ops in boolean context.

2016-10-18  Aldy Hernandez  <aldyh@redhat.com>

	* c.opt (Walloca): New.
	(Walloca-larger-than=): New.
	(Wvla-larger-than=): New.

2016-10-17  Marek Polacek  <polacek@redhat.com>

	* c-warn.c (find_array_ref_with_const_idx_r): Remove parameter names.
	Return immediately when finding a match.
	(warn_tautological_cmp): Remove a boolean variable that is no longer
	needed.

2016-10-17  Marek Polacek  <polacek@redhat.com>

	* c-attribs.c: New file.
	* c-common.c: Move attributes handling to c-attribs.c.
	(get_nonnull_operand): No longer static.
	* c-common.h: Move the declarations from c-attribs.c to its own section.

2016-10-14  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_aggregate_bases
	and __cpp_deduction_guides.

2016-10-13  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Add __cpp_inline_variables.

2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* c-cppbuiltin.c: Include memmodel.h.
	* c-opts.c: Likewise.
	* c-pragma.c: Likewise.
	* c-warn.c: Likewise.

2016-10-12  Jakub Jelinek  <jakub@redhat.com>

	* c.opt (Wextra): Add as C/C++/ObjC/ObjC++ option.
	(Wimplicit-fallthrough=): Enable for these languages by -Wextra.
	* c-opts.c (sanitize_cpp_opts): Initialize
	cpp_opts->cpp_warn_implicit_fallthrough.

2016-10-11  Marek Polacek  <polacek@redhat.com>

	* c-common.c (warning_candidate_p): Change the return type to bool
	and return true/false instead of 1/0.
	(vector_mode_valid_p): Likewise.

2016-10-11  Marek Polacek  <polacek@redhat.com>

	* c-common.c (fold_for_warn): No longer static.
	(bool_promoted_to_int_p): Likewise.
	(c_common_get_narrower): Likewise.
	(constant_expression_warning): Move to c-warn.c.
	(constant_expression_error): Likewise.
	(overflow_warning): Likewise.
	(warn_logical_operator): Likewise.
	(find_array_ref_with_const_idx_r): Likewise.
	(warn_tautological_cmp): Likewise.
	(expr_has_boolean_operands_p): Likewise.
	(warn_logical_not_parentheses): Likewise.
	(warn_if_unused_value): Likewise.
	(strict_aliasing_warning): Likewise.
	(sizeof_pointer_memaccess_warning): Likewise.
	(check_main_parameter_types): Likewise.
	(conversion_warning): Likewise.
	(warnings_for_convert_and_check): Likewise.
	(match_case_to_enum_1): Likewise.
	(match_case_to_enum): Likewise.
	(c_do_switch_warnings): Likewise.
	(warn_for_omitted_condop): Likewise.
	(readonly_error): Likewise.
	(lvalue_error): Likewise.
	(invalid_indirection_error): Likewise.
	(warn_array_subscript_with_type_char): Likewise.
	(warn_about_parentheses): Likewise.
	(warn_for_unused_label): Likewise.
	(warn_for_div_by_zero): Likewise.
	(warn_for_memset): Likewise.
	(warn_for_sign_compare): Likewise.
	(do_warn_double_promotion): Likewise.
	(do_warn_unused_parameter): Likewise.
	(record_locally_defined_typedef): Likewise.
	(maybe_record_typedef_use): Likewise.
	(maybe_warn_unused_local_typedefs): Likewise.
	(maybe_warn_bool_compare): Likewise.
	(maybe_warn_shift_overflow): Likewise.
	(warn_duplicated_cond_add_or_warn): Likewise.
	(diagnose_mismatched_attributes): Likewise.
	* c-common.h: Move the declarations from c-warn.c to its own section.
	* c-warn.c: New file.

2016-10-08  Jason Merrill  <jason@redhat.com>

	* c-common.c (c_common_truthvalue_conversion): Don't distribute
	into COND_EXPR in C++.

2016-10-08  Jakub Jelinek  <jakub@redhat.com>

	* c-lex.c (c_lex_with_flags) <case CPP_COMMENT>: For CPP_COMMENT
	token with PREV_FALLTHROUGH, skip all following CPP_PADDING and
	CPP_COMMENT tokens and set add_flags to PREV_FALLTHROUGH afterwards.

2016-10-07  Jakub Jelinek  <jakub@redhat.com>

	Implement LWG2296 helper intrinsic
	* c-common.h (enum rid): Add RID_ADDRESSOF.
	* c-common.c (c_common_reswords): Add __builtin_addressof.

2016-10-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/77700
	* c-common.c (c_common_truthvalue_conversion): Warn also for
	suspicious enum values in boolean context.

2016-10-06  Jakub Jelinek  <jakub@redhat.com>

	Implement P0258R2 - helper for C++17
	std::has_unique_object_representations trait
	* c-common.h (enum rid): Add RID_HAS_UNIQUE_OBJ_REPRESENTATIONS.
	* c-common.c (c_common_reswords): Add
	__has_unique_object_representations.

2016-10-05  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/66343
	* c-ubsan.c (ubsan_instrument_return): Don't call
	initialize_sanitizer_builtins here.

2016-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-common.c (c_common_truthvalue_conversion): Warn also for suspicious
	conditional expression in boolean context when only one arm is
	non-boolean.

2016-10-05  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/77823
	* c-ubsan.c (ubsan_instrument_shift): Return NULL_TREE if type0
	is not integral.

	* c-common.c (c_common_reswords): Update comment for C++11.

2016-10-04  Jason Merrill  <jason@redhat.com>

	* c-common.c (make_tree_vector_from_ctor): New.
	* c-common.h: Declare it.

2016-10-04  Jakub Jelinek  <jakub@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Don't define
	__LIBGCC_JCR_SECTION_NAME__.

2016-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-common.c (c_common_truthvalue_conversion): Warn for suspicious
	left shift in boolean context.

2016-09-29  Jakub Jelinek  <jakub@redhat.com>

	Implement P0001R1 - C++17 removal of register storage class specifier
	* c.opt (Wregister): New warning.
	* c-opts.c (c_common_post_options): Enable -Wregister by
	default for C++17.

2016-09-29  James Greenhalgh  <james.greenhalgh@arm.com>

	* c-opts.c (c_common_post_options): Remove special case for
	TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard
	in C++.

2016-09-27  Jakub Jelinek  <jakub@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_capture_star_this for
	-std=c++1z.

	* c-ada-spec.c (print_ada_declaration): Remove break after return.

2016-09-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* c-common.c: Include memmodel.h.

2016-09-26  Marek Polacek  <polacek@redhat.com>

	* c-lex.c (c_common_has_attribute): Handle attribute fallthrough.

2016-09-26  Marek Polacek  <polacek@redhat.com>

	PR c/7652
	* c-common.c (c_common_attribute_table): Add fallthrough attribute.
	(handle_fallthrough_attribute): New function.
	(attribute_fallthrough_p): New function.
	* c-common.h (attribute_fallthrough_p): Declare.

2016-09-24  Marek Polacek  <polacek@redhat.com>

	PR c/77490
	* c.opt (Wbool-operation): New.

2016-09-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-common.c (c_common_truthvalue_conversion): Inhibit
	Wint-in-bool-context warning with from_macro_definition_at.
	Mention the expression will always evaluate to true.

2016-09-21  Martin Sebor  <msebor@redhat.com>

	PR bootstrap/77676
	* c.opt (fprintf-return-value): Temporarily initialize to zero
	to unblock bootstrap failures.

2016-09-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/77651
	* c.opt (Waligned-new=): Add RejectNegative.
	(faligned-new=): Likewise.  Spelling fix - change
	aligned_new_threshhold to aligned_new_threshold.
	* c-cppbuiltin.c (c_cpp_builtins): Change aligned_new_threshhold
	to aligned_new_threshold.

2016-09-20  Martin Sebor  <msebor@redhat.com>

	PR middle-end/49905
	* c.opt: Add -Wformat-length and -fprintf-return-value.

2016-09-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/77434
	* c.opt (Wint-in-bool-context): New warning.
	* c-common.c (c_common_truthvalue_conversion): Warn on integer
	constants in boolean context.

2016-09-19  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (max_align_t_align): Also consider alignment of
	float128_type_node.

2016-09-15  Jason Merrill  <jason@redhat.com>

	* c-common.c (check_cxx_fundamental_alignment_constraints): Check
	DECL_EXTERNAL.

2016-09-14  Jason Merrill  <jason@redhat.com>

	* c-common.c (check_cxx_fundamental_alignment_constraints): Don't
	limit FIELD_DECL, either.

2016-09-14  Marek Polacek  <polacek@redhat.com>

	* c-common.c (c_common_truthvalue_conversion): Use false instead of 0.
	* c-common.h (build_unary_op): Change nonconvert parameter type to bool.
	* c-omp.c (c_finish_omp_atomic): Use false instead of 0.

2016-09-13  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (warn_logical_not_parentheses): Replace
	rich_location::add_fixit_insert calls with add_fixit_insert_before
	and add_fixit_insert_after, eliminating the "next_loc" calculation.

2016-09-13  Jason Merrill  <jason@redhat.com>
	    Tom de Vries  <tom@codesourcery.com>

	PR c++/77427
	* c-common.c (set_underlying_type): Don't treat array as builtin type.

2016-09-13  Jason Merrill  <jason@redhat.com>

	* c-common.c (check_cxx_fundamental_alignment_constraints): Don't
	limit types at all.

2016-09-12  Jason Merrill  <jason@redhat.com>

	* c-common.c (check_cxx_fundamental_alignment_constraints): Fix
	bit/byte confusion, allow large alignment for types.

2016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/77496
	* c-common.c (warn_for_omitted_condop): Also warn for boolean data.

2016-09-12  David Malcolm  <dmalcolm@redhat.com>

	PR c/72858
	* c-format.c (argument_parser::check_argument_type): Add params
	"type_start" and "conversion_char".  Use the former to generate
	offset_to_type_start and pass it and conversion_char to
	check_format_types.
	(check_format_info_main): Capture the start of the type
	information as "type_start", and pass it an format_char
	to arg_parser.check_argument_type.
	(check_format_types): Provide an example in the leading comment.
	Add params "offset_to_type_start" and "conversion_char"; pass
	them to format_type_warning calls.
	(test_get_modifier_for_format_len): Likewise.
	(matching_type_p): New function.
	(get_format_for_type): Add param "conversion_char" and move
	implementation into...
	(get_format_for_type_1): ...new function, called twice.
	Use new function matching_type_p rather than checking for
	TYPE_CANONICAL equality.
	(get_corrected_substring): New function.
	(format_type_warning): Provide an example in the leading comment.
	Add params "offset_to_type_start" and "conversion_char".  Replace
	call to get_format_for_type with call to get_corrected_substring
	and move rejection of hints for widths/precisions there.
	(assert_format_for_type_streq): Add param "conversion_char".
	(ASSERT_FORMAT_FOR_TYPE_STREQ): Add param CONVERSION_CHAR.
	(test_get_format_for_type_printf): Add conversion chars to the
	tests, adding coverage for various combinations of integer
	vs double conversions, and for preserving octal and hexadecimal
	conversions.
	(test_get_format_for_type_scanf): Add conversion chars to the
	tests.

2016-09-10  Tom de Vries  <tom@codesourcery.com>

	PR C/71602
	* c-common.c (build_va_arg): Handle more strict
	targetm.canonical_va_list_type.  Replace first argument type error with
	assert.

2016-09-09  Martin Sebor  <msebor@redhat.com>

	PR c/77520
	PR c/77521
	* c-format.c (argument_parser::find_format_char_info): Use %qc
	format directive unconditionally.

2016-09-09  Jason Merrill  <jason@redhat.com>

	Implement C++17 new of over-aligned types.
	* c.opt: Add -faligned-new and -Waligned-new.
	* c-common.c (max_align_t_align): Split out from...
	(cxx_fundamental_alignment_p): ...here.
	* c-common.h: Declare it.
	* c-cppbuiltin.c (c_cpp_builtins): Handle aligned new.

2016-09-09  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (builtin_define_type_width): New function.
	(builtin_define_stdint_macros, c_cpp_builtins): Define type width
	macros.

2016-09-07  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (get_cpp_ttype_from_string_type): Handle being passed
	a POINTER_TYPE.
	(substring_loc::get_location): Move to substring-locations.c,
	keeping implementation as...
	(c_get_substring_location): New function, from the above, reworked
	to use accessors rather than member lookup.
	* c-common.h (class substring_loc): Move to substring-locations.h,
	replacing with a forward decl.
	(c_get_substring_location): New decl.
	* c-format.c: Include "substring-locations.h".
	(format_warning_va): Move to substring-locations.c.
	(format_warning_at_substring): Likewise.

2016-09-06 Martin Sebor  <msebor@redhat.com>

	PR c/77336
	* c-format.c (check_function_format): Avoid issuing warnings for
	functions unless they call format functions with non-constant
	format strings.

2016-09-06  Richard Biener  <rguenther@suse.de>

	PR c/77450
	* c-common.c (c_common_mark_addressable_vec): Handle
	COMPOUND_LITERAL_EXPR.

2016-09-05  Marek Polacek  <polacek@redhat.com>

	PR c/77423
	* c-common.c (bool_promoted_to_int_p): New function.
	(expr_has_boolean_operands_p): New function.
	(warn_logical_not_parentheses): Return if expr_has_boolean_operands_p.
	(maybe_warn_bool_compare): Use bool_promoted_to_int_p.

2016-09-04  Tom de Vries  <tom@codesourcery.com>

	revert:
	2016-08-29  Tom de Vries  <tom@codesourcery.com>

	* c-common.c (build_va_arg): Replace first argument type error
	with assert.

2016-09-02  Jakub Jelinek  <jakub@redhat.com>

	PR c/65467
	* c-omp.c (c_finish_omp_atomic): Reject _Atomic qualified expressions.
	(c_finish_omp_for): Reject _Atomic qualified iterators.

2016-09-01  Martin Sebor  <msebor@redhat.com>

	* c-ada-spec.c (dump_ada_function_declaration): Increase buffer
	size to guarantee it fits the output of the formatted function
	regardless of its arguments.

2016-09-01  Marek Polacek  <polacek@redhat.com>

	PR c/7652
	* c-common.c (resolve_overloaded_builtin): Fix formatting.  Add
	FALLTHRU comments.

2016-08-29  Marek Polacek  <polacek@redhat.com>

	PR c/77292
	* c-common.c (warn_logical_not_parentheses): Don't warn for
	a comparison or a logical operator.

2016-08-29  Tom de Vries  <tom@codesourcery.com>

	* c-common.c (build_va_arg): Fix type comparison assert.

2016-08-29  Tom de Vries  <tom@codesourcery.com>

	* c-common.c (build_va_arg): Replace first argument type error
	with assert.

2016-08-29  Tom de Vries  <tom@codesourcery.com>

	PR c/77398
	* c-common.c (build_va_arg): Add first argument error.  Build va_arg
	with error_mark_node as va_list instead of with illegal va_list.

2016-08-25  Marek Polacek  <polacek@redhat.com>
	    David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (warn_logical_not_parentheses): Print fixit hints.
	* c-common.h (warn_logical_not_parentheses): Update declaration.

2016-08-22  Marek Polacek  <polacek@redhat.com>

	PR c++/77321
	* c-common.c (warn_for_memset): Check type for null.

2016-08-22  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (c_cpp_builtins): Check _FloatN and
	_FloatNx types for suffixes for built-in functions.

2016-08-19  Joseph Myers  <joseph@codesourcery.com>

	PR c/32187
	* c-common.h (RID_FLOAT16, RID_FLOATN_NX_FIRST, RID_FLOAT32)
	(RID_FLOAT64, RID_FLOAT128, RID_FLOAT32X, RID_FLOAT64X)
	(RID_FLOAT128X): New enum rid values.
	(CASE_RID_FLOATN_NX): New macro.
	* c-common.c (c_common_reswords): Add _FloatN and _FloatNx
	keywords.
	(c_common_type_for_mode): Check for _FloatN and _FloatNx and
	corresponding complex types.
	(c_common_nodes_and_builtins): For non-C++, register _FloatN and
	_FloatNx and corresponding complex types.
	(keyword_begins_type_specifier): Use CASE_RID_FLOATN_NX.
	* c-cppbuiltin.c (builtin_define_float_constants): Check _FloatN
	and _FloatNx types for the widest type for determining
	DECIMAL_DIG.  Define __LDBL_DECIMAL_DIG__ as well as
	__DECIMAL_DIG__ for long double.  Handle FMA_SUFFIX being NULL.
	(c_cpp_builtins): Call builtin_define_float_constants for _FloatN
	and _FloatNx types.
	* c-lex.c (interpret_float): Handle _FloatN and _FloatNx
	constants.
	* c-pretty-print.c (pp_c_floating_constant): Handle _FloatN and
	_FloatNx types.

2016-08-18  David Malcolm  <dmalcolm@redhat.com>

	* c-opts.c (c_diagnostic_finalizer): Update for change to
	diagnostic_show_locus.

2016-08-18  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c: Include "spellcheck.h".
	(cb_get_suggestion): New function.
	* c-common.h (cb_get_suggestion): New decl.
	* c-lex.c (init_c_lex): Initialize cb->get_suggestion to
	cb_get_suggestion.

2016-08-18  Marek Polacek  <polacek@redhat.com>

	PR c/71514
	* c-common.c (get_atomic_generic_size): Disallow pointer-to-function
	and pointer-to-VLA.

2016-08-16  David Malcolm  <dmalcolm@redhat.com>

	PR c/72857
	* c-common.c (substring_loc::get_range): Rename to...
	(substring_loc::get_location): ...this, converting param from a
	source_range * to a location_t *.  Call
	get_source_location_for_substring rather than
	get_source_range_for_substring, and pass in m_caret_idx.
	* c-common.h (substring_loc::substring_loc): Add param "caret_idx".
	(substring_loc::get_range): Replace with...
	(substring_loc::get_location): ...this.
	(substring_loc::set_caret_index): New method.
	(substring_loc): Add field m_caret_idx.
	* c-format.c (format_warning_va): Update for above changes.
	Rename local "substring_loc" to "fmt_substring_loc" to avoid
	clashing with type name.
	(format_warning_at_char): Add caret_idx param to substring_loc ctor.
	(check_argument_type): Likewise.
	(format_type_warning): Rename param "fmt_loc" to "whole_fmt_loc"
	Use a copy when emitting warnings, setting the caret index from TYPE.

2016-08-16  Eric Botcazou  <ebotcazou@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* c-ada-spec.c (dump_number): New function.
	(handle_escape_character): Likewise.
	(print_ada_macros): Add handling of constant integers and strings.

2016-08-12  Marek Polacek  <polacek@redhat.com>

	PR c/7652
	* c-common.c (scalar_to_vector): Adjust fall through comment.
	* c-opts.c (c_common_handle_option): Likewise.
	* c-pragma.c (handle_pragma_pack): Add FALLTHRU.
	* c-pretty-print.c (c_pretty_printer::postfix_expression): Adjust
	fall through comment.
	* cilk.c (extract_free_variables): Add FALLTHRU.

2016-08-10  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.

2016-08-09  Jason Merrill  <jason@redhat.com>

	* c-common.c (c_common_attribute_table): vector_size affects type
	identity.

2016-08-09  Marek Polacek  <polacek@redhat.com>

	PR c/7652
	* c-ada-spec.c (dump_generic_ada_node): Add return.

2016-08-09  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_constexpr for
	C++17 constexpr lambdas.

2016-08-08  David Malcolm  <dmalcolm@redhat.com>

	PR c/64955
	* c-common.h (selftest::c_format_c_tests): New declaration.
	(selftest::run_c_tests): New declaration.
	* c-format.c: Include "selftest.h.
	(format_warning_va): Add param "corrected_substring" and use
	it to add a replacement fix-it hint.
	(format_warning_at_substring): Likewise.
	(format_warning_at_char): Update for new param of
	format_warning_va.
	(argument_parser::check_argument_type): Pass "fki" to
	check_format_types.
	(check_format_types): Add param "fki" and pass it to
	format_type_warning.
	(deref_n_times): New function.
	(get_modifier_for_format_len): New function.
	(selftest::test_get_modifier_for_format_len): New function.
	(get_format_for_type): New function.
	(format_type_warning): Add param "fki" and use it to attempt
	to provide hints for argument types when calling
	format_warning_at_substring.
	(selftest::get_info): New function.
	(selftest::assert_format_for_type_streq): New function.
	(ASSERT_FORMAT_FOR_TYPE_STREQ): New macro.
	(selftest::test_get_format_for_type_printf): New function.
	(selftest::test_get_format_for_type_scanf): New function.
	(selftest::c_format_c_tests): New function.

2016-08-08  David Malcolm  <dmalcolm@redhat.com>

	PR c/52952
	* c-format.c: Include "diagnostic.h".
	(location_column_from_byte_offset): Delete.
	(location_from_offset): Delete.
	(format_warning_va): New function.
	(format_warning_at_substring): New function.
	(format_warning_at_char): New function.
	(check_format_arg): Capture location of format_tree and pass to
	check_format_info_main.
	(argument_parser): Add fields "start_of_this_format" and
	"format_string_cst".
	(flag_chars_t::validate): Add param "format_string_cst".  Convert
	warning_at call using location_from_offset to call to
	format_warning_at_char.
	(argument_parser::argument_parser): Add param "format_string_cst_"
	and use use it to initialize field "format_string_cst".
	Initialize new field "start_of_this_format".
	(argument_parser::read_format_flags): Convert warning_at call
	using location_from_offset to a call to format_warning_at_char.
	(argument_parser::read_any_format_left_precision): Likewise.
	(argument_parser::read_any_format_precision): Likewise.
	(argument_parser::read_any_other_modifier): Likewise.
	(argument_parser::find_format_char_info): Likewise, in three places.
	(argument_parser::parse_any_scan_set): Likewise, in one place.
	(argument_parser::handle_conversions): Likewise, in two places.
	(argument_parser::check_argument_type): Add param "fmt_param_loc"
	and use it to make a substring_loc.  Pass the latter to
	check_format_types.
	(check_format_info_main): Add params "fmt_param_loc" and
	"format_string_cst".  Convert warning_at calls using
	location_from_offset to calls to format_warning_at_char.  Pass the
	new params to the arg_parser ctor.  Pass "format_string_cst" to
	flag_chars.validate.  Pass "fmt_param_loc" to
	arg_parser.check_argument_type.
	(check_format_types): Convert first param from a location_t
	to a const substring_loc & and rename to "fmt_loc".  Attempt
	to extract the range of the relevant parameter and pass it
	to format_type_warning.
	(format_type_warning): Convert first param from a location_t
	to a const substring_loc & and rename to "fmt_loc".  Add
	params "param_range" and "type".  Replace calls to warning_at
	with calls to format_warning_at_substring.

2016-08-08  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (class flag_chars_t): New class.
	(struct length_modifier): New struct.
	(class argument_parser): New class.
	(flag_chars_t::flag_chars_t): New ctor.
	(flag_chars_t::has_char_p): New method.
	(flag_chars_t::add_char): New method.
	(flag_chars_t::validate): New method.
	(flag_chars_t::get_alloc_flag): New method.
	(flag_chars_t::assignment_suppression_p): New method.
	(argument_parser::argument_parser): New ctor.
	(argument_parser::read_any_dollar): New method.
	(argument_parser::read_format_flags): New method.
	(argument_parser::read_any_format_width): New method.
	(argument_parser::read_any_format_left_precision): New method.
	(argument_parser::read_any_format_precision): New method.
	(argument_parser::handle_alloc_chars): New method.
	(argument_parser::read_any_length_modifier): New method.
	(argument_parser::read_any_other_modifier): New method.
	(argument_parser::find_format_char_info): New method.
	(argument_parser::validate_flag_pairs): New method.
	(argument_parser::give_y2k_warnings): New method.
	(argument_parser::parse_any_scan_set): New method.
	(argument_parser::handle_conversions): New method.
	(argument_parser::check_argument_type): New method.
	(check_format_info_main): Introduce classes argument_parser
	and flag_chars_t, moving the code within the loop into methods
	of these classes.  Make various locals "const".

2016-08-05  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c: Include "substring-locations.h".
	(get_cpp_ttype_from_string_type): New function.
	(g_string_concat_db): New global.
	(substring_loc::get_range): New method.
	* c-common.h (g_string_concat_db): New declaration.
	(class substring_loc): New class.
	* c-lex.c (lex_string): When concatenating strings, capture the
	locations of all tokens using a new obstack, and record the
	concatenation locations within g_string_concat_db.
	* c-opts.c (c_common_init_options): Construct g_string_concat_db
	on the ggc-heap.

2016-07-29  Marek Polacek  <polacek@redhat.com>

	PR c/71926
	* c-common.c (c_common_truthvalue_conversion): Use LOCATION for the
	parentheses warning.

	PR c/71574
	* c-common.c (handle_alloc_align_attribute): Also check FUNCTION_DECL.

2016-07-28  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/68025
	* c-common.c (handle_no_profile_instrument_function_attribute):

2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* c-common.c (check_user_alignment): Use LOG2_BITS_PER_UNIT instead of
	BITS_PER_UNIT_LOG.

2016-07-25  Jason Merrill  <jason@redhat.com>

	PR c++/65970
	* c.opt (fconstexpr-loop-limit): New.

2016-07-22  Martin Sebor  <msebor@redhat.com>

	PR c++/71675
	* c-common.c (resolve_overloaded_builtin): Avoid converting
	__atomic_compare_exchange_n return type to that of what its
	first argument points to.

2016-07-22  Uros Bizjak  <ubizjak@gmail.com>

	* c-common.c: Use HOST_WIDE_INT_M1U instead of
	~(unsigned HOST_WIDE_INT) 0.

2016-07-22  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/69028
	PR gcov-profile/62047
	* cilk.c (create_cilk_helper_decl): Set location of a new decl
	to the current_function_decl.

2016-07-21  Jason Merrill  <jason@redhat.com>

	PR c++/65168
	* c-common.c (c_common_truthvalue_conversion): Check
	c_inhibit_evaluation_warnings for warning about address of
	reference.

2016-07-20  David Malcolm  <dmalcolm@redhat.com>

	* c-common.h (lookup_name_fuzzy): Convert return type from tree to
	const char *.

2016-07-15  Jason Merrill  <jason@redhat.com>

	* c-opts.c (c_common_post_options): Update -fabi-version default to 11.

2016-07-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/71858
	* c-common.h (enum lookup_name_fuzzy_kind): Add
	FUZZY_LOOKUP_FUNCTION_NAME.

2016-07-08  Jason Merrill  <jason@redhat.com>

	P0145: Refining Expression Order for C++.
	* c.opts (-fargs-in-order): Rename to -fstrong-eval-order.
	* c-opts.c: Adjust.

2016-07-05  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR c++/71214
	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_rvalue_references.

2016-06-29  Thomas Schwinge  <thomas@codesourcery.com>

	* c-pragma.h (enum pragma_kind): Rename
	PRAGMA_OMP_DECLARE_REDUCTION to PRAGMA_OMP_DECLARE.  Adjust all
	users.

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

	PR middle-end/71002
	* c-common.c (c_common_get_alias_set): Remove union type punning case.

2016-06-24  Jason Merrill  <jason@redhat.com>

	P0145R2: Refining Expression Order for C++.
	* c-common.c (verify_tree) [COMPOUND_EXPR]: Fix handling on LHS of
	MODIFY_EXPR.

2016-06-24  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (check_builtin_function_arguments): Require last
	argument of BUILT_IN_*_OVERFLOW_P to have INTEGER_TYPE type.
	Adjust wording of diagnostics for BUILT_IN_*_OVERLFLOW
	if the last argument is pointer to enumerated or boolean type.

2016-06-22  David Malcolm  <dmalcolm@redhat.com>

	PR c/70339
	* c-common.h (enum lookup_name_fuzzy_kind): New enum.
	(lookup_name_fuzzy): New prototype.

2016-06-21  John David Anglin  <danglin@gcc.gnu.org>

	* c-common.c (get_source_date_epoch): Use int64_t instead of long long.

2016-06-14  Jason Merrill  <jason@redhat.com>

	P0145R2: Refining Expression Order for C++.
	* c.opt (fargs-in-order): New.
	* c-opts.c (c_common_post_options): Adjust flag_args_in_order.

2016-06-13  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/71498
	* c-gimplify.c (ubsan_walk_array_refs_r): Set *walk_subtrees = 0 on
	all BIND_EXPRs, and on all BIND_EXPRs recurse also on BIND_EXPR_BODY.

	PR preprocessor/71183
	* c-ppoutput.c (init_pp_output): Set cb->get_source_date_epoch
	to cb_get_source_date_epoch.

2016-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/68657
	* c.opt (Wpsabi): Add Warning flag.

2016-06-10  Martin Sebor  <msebor@redhat.com>

	PR c/71392
	* c-common.c (handle_nonnull_attribute): Accept
	the nonnull attribute in type-generic builtins.

2016-06-09  Martin Sebor  <msebor@redhat.com>

	PR c/70883
	* c-common.c (builtin_function_validate_nargs): Make text of error
	message consistent with others like it.

2016-06-08  Martin Sebor  <msebor@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c++/70507
	PR c/68120
	* c-common.c (check_builtin_function_arguments): Handle
	BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.

2016-06-08  Richard Biener  <rguenther@suse.de>

	* c-common.c (parse_optimize_options): Improve diagnostic messages.

2016-06-07  Richard Biener  <rguenther@suse.de>

	PR c/61564
	* c-common.c (parse_optimize_options): Only apply CL_OPTIMIZATION
	options and warn about others.

2016-06-01  Eduard Sanou  <dhole@openmailbox.org>

	* c-common.c (get_source_date_epoch): Rename to
	cb_get_source_date_epoch.
	* c-common.c (cb_get_source_date_epoch): Use a single generic erorr
	message when the parsing fails.  Use error_at instead of fatal_error.
	* c-common.h (get_source_date_epoch): Rename to
	cb_get_source_date_epoch.
	* c-common.h (cb_get_source_date_epoch): Prototype.
	* c-common.h (MAX_SOURCE_DATE_EPOCH): Define.
	* c-common.h (c_omp_region_type): Remove trailing comma.
	* c-lex.c (init_c_lex): Set cb->get_source_date_epoch callback.
	* c-lex.c (c_lex_with_flags): Remove initialization of
	pfile->source_date_epoch.

2016-05-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/71349
	* c-omp.c (c_omp_split_clauses): Put OMP_CLAUSE_DEPEND to
	C_OMP_CLAUSE_SPLIT_TARGET.  Put OMP_CLAUSE_NOWAIT to
	C_OMP_CLAUSE_SPLIT_TARGET if combined with target construct,
	instead of C_OMP_CLAUSE_SPLIT_FOR.

2016-05-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/70434
	PR c/69504
	* c-common.h (convert_vector_to_pointer_for_subscript): Rename to ...
	(convert_vector_to_array_for_subscript): ... this.
	* c-common.c (convert_vector_to_pointer_for_subscript): Use a
	VIEW_CONVERT_EXPR to an array type.  Rename to ...
	(convert_vector_to_array_for_subscript): ... this.

2016-05-12  Marek Polacek  <polacek@redhat.com>

	PR c/70756
	* c-common.c (pointer_int_sum): Call size_in_bytes_loc instead of
	size_in_bytes and pass LOC to it.

2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>

	PR c/43651
	* c.opt (Wduplicate-decl-specifier): New option.

2016-05-11  Marek Polacek  <polacek@redhat.com>

	PR c++/71024
	* c-common.c (diagnose_mismatched_attributes): New function.
	* c-common.h (diagnose_mismatched_attributes): Declare.

2016-05-04  Marek Polacek  <polacek@redhat.com>

	* c.opt (Wdangling-else): New option.

2016-05-03  Marek Polacek  <polacek@redhat.com>

	PR c/70859
	* c-common.c (builtin_function_validate_nargs): Add location
	parameter.  Use it.
	(check_builtin_function_arguments): Add location and arguments
	parameters.  Use them.
	* c-common.h (check_builtin_function_arguments): Update declaration.

2016-05-03  Richard Biener  <rguenther@suse.de>

	* cilk.c (cilk_gimplify_call_params_in_spawned_fn): Do not
	allow call args to gimplify to SSA names.

2016-05-03  Marek Polacek  <polacek@redhat.com>

	* c-common.h (enum c_omp_region_type): Remove stray comma.

2016-05-02  Cesar Philippidis  <cesar@codesourcery.com>

	* c-common.h (enum c_omp_region_type): Define.

2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>

	* c-common.c (shorten_compare): Use wi::to_wide.

2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>

	PR middle-end/70626
	* c-common.h (c_oacc_split_loop_clauses): Add boolean argument.
	* c-omp.c (c_oacc_split_loop_clauses): Use it to duplicate
	reduction clauses in acc parallel loops.

2016-04-29  Marek Polacek  <polacek@redhat.com>

	PR c/70852
	* c-common.c (warn_for_memset): Check domain before accessing it.

2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR/69089
	* c-common.c (handle_aligned_attribute): Allow 0 as an argument to the
	"aligned" attribute.

2016-04-28  Jason Merrill  <jason@redhat.com>

	* c-lex.c (c_common_has_attribute): Handle nodiscard.

2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
	    Matthias Klose  <doko@debian.org>

	* c-common.c (get_source_date_epoch): New function, gets the environment
	variable SOURCE_DATE_EPOCH and parses it as long long with error
	handling.
	* c-common.h (get_source_date_epoch): Prototype.
	* c-lex.c (c_lex_with_flags): set parse_in->source_date_epoch.

2015-04-27  Ryan Burn  <contact@rnburn.com>

	PR c++/69024
	PR c++/68997
	* cilk.c (cilk_ignorable_spawn_rhs_op): Change to external linkage.
	(cilk_recognize_spawn): Renamed from recognize_spawn and change to
	external linkage.
	(cilk_detect_and_unwrap): Corresponding changes.
	(extract_free_variables): Don't extract free variables from
	AGGR_INIT_EXPR slot.
	* c-common.h (cilk_ignorable_spawn_rhs_op): Prototype.
	(cilk_recognize_spawn): Likewise.

2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>

	* c.opt (Wmemset-elt-size): New option.
	* c-common.c (warn_for_memset): New function.
	* c-common.h (warn_for_memset): Declare.

2016-04-25  Jason Merrill  <jason@redhat.com>

	* c-common.c (handle_unused_attribute): Accept CONST_DECL.
	No longer static.
	* c-common.h: Declare it.
	* c-lex.c (c_common_has_attribute): Add maybe_unused.

2016-04-22  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_range_based_for.

2016-04-20  Ilya Verbin  <ilya.verbin@intel.com>

	PR c++/69363
	* c-cilkplus.c (c_finish_cilk_clauses): Remove function.
	* c-common.h (c_finish_cilk_clauses): Remove declaration.

2016-04-18  Michael Matz  <matz@suse.de>

	* c-common.c (handle_aligned_attribute): Use SET_TYPE_ALIGN
	and SET_DECL_ALIGN.

2016-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (get_underlying_decl): Return the typedef, if any.
	(dump_generic_ada_node) <POINTER_TYPE>: Clean up handling of access
	to incomplete types.
	(dump_nested_type): Remove redundant tests and tidy up.
	(print_ada_declaration): Also set TREE_VISITED on the declaration of
	a type which is the typedef of an original type.

2016-04-15  Marek Polacek  <polacek@redhat.com>

	PR c/70651
	* c-common.c (build_va_arg): Change two asserts into errors and return
	error_mark_node.

2016-04-13  Marek Polacek  <polacek@redhat.com>

	PR c++/70639
	* c-indentation.c (should_warn_for_misleading_indentation): Bail out
	for switch statements, too.

2016-03-28  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_range_based_for.

2016-03-23  Marek Polacek  <polacek@redhat.com>

	PR c++/69884
	* c.opt (Wignored-attributes): New option.

2016-03-22  David Malcolm  <dmalcolm@redhat.com>

	PR c/69993
	* c-indentation.c (warn_for_misleading_indentation): Rewrite the
	diagnostic text, reversing the order of the warning and note so
	that they appear in source order.

2016-03-17  Marek Polacek  <polacek@redhat.com>

	PR c/69407
	* c-common.c (resolve_overloaded_builtin): Set TREE_USED for the fetch
	operations.

2016-03-14  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Set __cpp_hex_float.

	* c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_range_based_for.

2016-03-09  Richard Biener  <rguenther@suse.de>

	PR c/70143
	* c-common.c (strict_aliasing_warning): Add back
	alias_sets_conflict_p check.

2016-03-08  Jason Merrill  <jason@redhat.com>

	* c-opts.c (set_std_cxx1z): Don't enable concepts.

2016-03-04  David Malcolm  <dmalcolm@redhat.com>

	PR c/68187
	* c-indentation.c (get_visual_column): Move code to determine next
	tab stop to...
	(next_tab_stop): ...this new function.
	(line_contains_hash_if): Delete function.
	(detect_preprocessor_logic): Delete function.
	(get_first_nws_vis_column): New function.
	(detect_intervening_unindent): New function.
	(should_warn_for_misleading_indentation): Replace call to
	detect_preprocessor_logic with a call to
	detect_intervening_unindent.

2016-03-04  David Malcolm  <dmalcolm@redhat.com>

	PR c/68187
	* c-indentation.c (should_warn_for_misleading_indentation): When
	suppressing warnings about cases where the guard and body are on
	the same column, only use the first non-whitespace column in place
	of the guard token column when dealing with "else" clauses.
	When rejecting aligned BODY and NEXT, loosen the requirement
	from equality with the first non-whitespace of guard to simply
	that they not be indented relative to it.

2016-03-04  Richard Biener  <rguenther@suse.de>

	PR c++/70054
	* c-common.c (strict_aliasing_warning): Use alias_set_subset_of
	instead of alias_sets_conflict_p.

2016-03-01  Marek Polacek  <polacek@redhat.com>

	PR c++/69795
	* c-common.c (reject_gcc_builtin): Check for FUNCTION_DECL rather than
	any DECL.

2016-02-22  Martin Sebor  <msebor@redhat.com>

	PR middle-end/69780
	* c-common.c (check_builtin_function_arguments): Validate and
	reject invalid arguments to __builtin_alloca_with_align.

2016-02-20  Mark Wielaard  <mjw@redhat.com>

	PR c/28901
	* c.opt (Wunused-const-variable): Turn into Alias for...
	(Wunused-const-variable=): New option.

2016-02-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/69865
	* c-opts.c (c_common_post_options): Move call to set_std_cxx14 from
	here...
	(c_common_init_options): ...to here.
	(set_std_cxx98): Initialize flag_isoc94 and flag_isoc99.

2016-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/69826
	* c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_GRAINSIZE.
	(init_pragma): Register PRAGMA_CILK_GRAINSIZE even for
	flag_preprocess_only.

2016-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR c/69835
	* c.opt (Wnonnull-compare): Enable for -Wall.

2016-02-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/69797
	* c-common.c (sync_resolve_size): Diagnose too few arguments
	even when params is non-NULL empty vector.

2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>

	PR target/60410
	* c.opt (fshort-double): Remove.

2016-02-05  Martin Sebor  <msebor@redhat.com>

	PR c++/69662
	* c.opt (Warning options): Update -Wplacement-new to take
	an optional argument.

2016-02-01  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/69543
	PR c/69558
	* c-pragma.c (handle_pragma_diagnostic): Pass input_location
	instead of loc to control_warning_option.

2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>

	* c.opt (fopenacc-dim=): New option.

2016-01-27  Ryan Burn  <contact@rnburn.com>

	PR cilkplus/69267
	* cilk.c (cilk_gimplify_call_params_in_spawned_fn): Change to use
	gimplify_arg. Removed superfluous post_p argument.
	* c-family.h (cilk_gimplify_call_params_in_spawned_fn): Removed
	superfluous post_p argument.
	* c-gimplify.c (c_gimplify_expr): Likewise.

2016-01-26  David Malcolm  <dmalcolm@redhat.com>

	PR other/69006
	* c-opts.c (c_diagnostic_finalizer): Replace invocation of
	pp_newline_and_flush with pp_flush.

2016-01-20  Martin Sebor  <msebor@redhat.com>

	PR c/69405
	* c-common.c (sync_resolve_size): Avoid printing diagnostic about
	an incompatible argument when the argument isn't a valid tree node.

2016-01-18  Jason Merrill  <jason@redhat.com>

	PR c++/68767
	* c-common.c (check_function_arguments_recurse): Fold the whole
	COND_EXPR, not just the condition.

2016-01-18  Tom de Vries  <tom@codesourcery.com>

	* c-omp.c (c_oacc_split_loop_clauses): Don't copy OMP_CLAUSE_REDUCTION,
	classify as loop clause.

2016-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/68271
	* c-pragma.c (c_register_pragma_1): Adjust comment to note that
	C++ FE no longer has limit on number of pragmas.

2015-01-14  Ryan Burn  <contact@rnburn.com>

	PR c++/69048
	* cilk.c (create_cilk_wrapper_body): Call fold_build_cleanup_point_expr
	to add missing cleanup point.

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

	PR c++/68819
	* c-indentation.c (get_visual_column): Add location_t param.
	Handle the column number being zero by effectively disabling the
	warning, with an "inform".
	(should_warn_for_misleading_indentation): Add location_t argument
	for all uses of get_visual_column.

2016-01-10  Patrick Palka  <ppalka@gcc.gnu.org>

	PR c++/69029
	* c-indentation.c (should_warn_for_misleading_indentation):
	Don't warn about do-while statements.

2016-01-07  Martin Sebor  <msebor@redhat.com>

	PR c/68966
	* c-common.c (sync_resolve_size): Reject first argument when it's
	a pointer to _Bool.

2016-01-05  David Malcolm  <dmalcolm@redhat.com>

	PR c/69122
	* c-indentation.c (get_visual_column): Remove default argument.
	(should_warn_for_misleading_indentation): For the multiline case,
	update call to get_visual_column for next_stmt_exploc so that it
	captures the location of the first non-whitespace character in the
	relevant line.  Don't issue warnings if there is non-whitespace
	before the next statement.

2016-01-04  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2015-12-21  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (binary_op_error): Convert first param from
	location_t to rich_location * and use it when emitting an error.
	* c-common.h (binary_op_error): Convert first param from
	location_t to rich_location *.

2015-12-16  David Malcolm  <dmalcolm@redhat.com>

	* c-common.h (conflict_marker_get_final_tok_kind): New prototype.
	* c-lex.c (conflict_marker_get_final_tok_kind): New function.

2015-12-15  Ilya Verbin  <ilya.verbin@intel.com>

	* c-common.c (c_common_attribute_table): Handle "omp declare target
	link" attribute.

2015-12-14  Jakub Jelinek  <jakub@redhat.com>

	PR c/68833
	* c.opt (Wmissing-format-attribute, Wnormalized): Add Warning option.

2014-12-12  Tobias Burnus  <burnus@net-b.de>

	PR fortran/68815
	* c-format.c (gcc_gfc_char_table): Add 'q' flag to remaining
	specifiers (%d, %i,%u and %c).

2015-12-10  David Malcolm  <dmalcolm@redhat.com>

	* c.opt (Wmisleading-indentation): Add to -Wall for C and C++.

2015-12-08  Jakub Jelinek  <jakub@redhat.com>

	PR c/48088
	PR c/68657
	* c.opt (Wfloat-conversion, Wsign-conversion): Add Warning.
	* c-pragma.c (handle_pragma_diagnostic): Adjust
	control_warning_option caller.

2015-12-07  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (c_cpp_error): Update for change to
	rich_location::set_range.

2015-12-04  Paolo Bonzini  <bonzini@gnu.org>

	* c-common.c (maybe_warn_shift_overflow): Warn on all overflows if
	shifting 1 out of the sign bit.

2015-12-04  Kirill Yukhin  <kirill.yukhin@intel.com>

	* c-common.c (c_common_attribute_table[]): Update max arguments
	count for "simd" attribute.
	(handle_simd_attribute): Parse "notinbranch" and "inbranch" arguments.

2015-12-03  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/57580
	* c-ppoutput.c (print): Change printed field to bool.
	Move src_file last for smaller padding.
	(init_pp_output): Set print.printed to false instead of 0.
	(scan_translation_unit): Fix up formatting.  Set print.printed
	to true after printing something other than newline.
	(scan_translation_unit_trad): Set print.printed to true instead of 1.
	(maybe_print_line_1): Set print.printed to false instead of 0.
	(print_line_1): Likewise.
	(do_line_change): Set print.printed to true instead of 1.
	(cb_define, dump_queued_macros, cb_include, cb_def_pragma,
	dump_macro): Set print.printed to false after printing newline.

2015-12-02  Jason Merrill  <jason@redhat.com>

	* c-common.c (fold_for_warn): New.
	(warn_logical_operator, warn_tautological_cmp)
	(check_function_arguments_recurse, maybe_warn_bool_compare): Use it.

	* c-common.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
	(c_fully_fold_internal, decl_constant_value_for_optimization):
	Move to c/c-fold.c.
	* c-common.h: Don't declare decl_constant_value_for_optimization.

2015-12-02  Joseph Myers  <joseph@codesourcery.com>

	PR c/68162
	* c-common.h (c_build_qualified_type): Add extra default
	arguments.

2015-12-01  Julian Brown  <julian@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    James Norris  <James_Norris@mentor.com>

	* c-pragma.c (oacc_pragmas): Add PRAGMA_OACC_HOST_DATA.
	* c-pragma.h (pragma_kind): Add PRAGMA_OACC_HOST_DATA.
	(pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_USE_DEVICE.

2015-11-30  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (print_ada_macros): Remove redundant blank line.
	(decl_sloc_common): Delete and move bulk of processing to...
	(decl_sloc): ...here.
	(pp_ada_tree_identifier): Remove reference to QUAL_UNION_TYPE.
	(dump_ada_double_name): Remove S parameter and compute the suffix.
	(dump_ada_array_type): Add PARENT parameter.  Simplify computation of
	element type and deal with an anonymous one.
	(dump_ada_template): Use RECORD_OR_UNION_TYPE_P macro.
	(dump_generic_ada_node): Tweak.  Adjust call to dump_ada_array_type
	and remove reference to QUAL_UNION_TYPE.
	(dump_nested_types): Make 2 passes on the fields and move bulk to...
	(dump_nested_type): ...here.  New function extracted from above.
	Generate a full declaration for anonymous element type of arrays.
	(print_ada_declaration): Really skip anonymous declarations.  Remove
	references to QUAL_UNION_TYPE.  Adjust call to dump_ada_array_type.
	Clean up processing of declarations of array types and objects.
	(print_ada_struct_decl): Remove reference to QUAL_UNION_TYPE.
	Remove obsolete code and tidy up.

2015-11-29  Jan Hubicka  <hubicka@ucw.cz>

	PR c/67581
	* c-common.c (handle_transparent_union_attribute): Update
	also type variants.

2015-11-27  Martin Liska  <mliska@suse.cz>

	PR c++/68312
	* array-notation-common.c (cilkplus_extract_an_triplets):
	Release vector of vectors.
	* cilk.c (gimplify_cilk_spawn): Free allocated memory.

2015-11-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR c++/68527
	* c-ada-spec.c (dump_nested_types): Add guard for error_mark_node.
	(print_ada_struct_decl): Likewise.

2015-11-23  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR c++/68001
	* c-gimplify.c (c_gimplify_expr): Stop the process if see an error.
	* cilk.c (recognize_spawn): Determine location in a more precise
	way.

2015-11-19  Jason Merrill  <jason@redhat.com>

	* c-common.c (shorten_compare): But look through macros from
	system headers.

2015-11-18  Jason Merrill  <jason@redhat.com>

	* c-common.c (shorten_compare): Don't -Wtype-limits if the
	non-constant operand comes from a macro.

2015-11-17  Jason Merrill  <jason@redhat.com>

	PR bootstrap/68346
	* c-common.c (warn_tautological_cmp): Fold before checking for
	constants.

2015-11-16  Marek Polacek  <polacek@redhat.com>

	PR c++/68362
	* c-common.c (check_case_bounds): Fold low and high cases.

2015-11-16  Marek Polacek  <polacek@redhat.com>

	* c-ada-spec.c (dump_ada_template): Use RECORD_OR_UNION_TYPE_P.
	* c-common.c (c_common_get_alias_set): Likewise.
	(handle_visibility_attribute): Likewise.

2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>

	* c-common.c (handle_simd_attribute): New.
	(struct attribute_spec): Add entry for "simd".
	(handle_simd_attribute): New.

2015-11-13  Kai Tietz  <ktietz70@googlemail.com>

	* c-lex.c (interpret_float): Use fold_convert.

2015-11-13  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (c_fully_fold_internal): Capture existing souce_range,
	and store it on the result.
	* c-opts.c (c_common_init_options): Set
	global_dc->colorize_source_p.

2015-11-12  James Norris  <jnorris@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* c-pragma.c (oacc_pragmas): Add entry for declare directive.
	* c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_DECLARE.
	(enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT and
	PRAGMA_OACC_CLAUSE_LINK.

2015-11-11  Marek Polacek  <polacek@redhat.com>

	PR c/68107
	PR c++/68266
	* c-common.c (valid_array_size_p): New function.
	* c-common.h (valid_array_size_p): Declare.

2015-11-11  Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR bootstrap/68271
	* c-pragma.c (c_register_pragma_1): Update the gcc_assert to 256.

2015-11-11  Andrew MacLeod  <amacleod@redhat.com>

	* array-notation-common.c: Remove unused header files.
	* c-ada-spec.c: Likewise.
	* c-cilkplus.c: Likewise.
	* c-common.c: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-dump.c: Likewise.
	* c-format.c: Likewise.
	* c-gimplify.c: Likewise.
	* c-indentation.c: Likewise.
	* c-lex.c: Likewise.
	* c-omp.c: Likewise.
	* c-opts.c: Likewise.
	* c-pch.c: Likewise.
	* c-ppoutput.c: Likewise.
	* c-pragma.c: Likewise.
	* c-pretty-print.c: Likewise.
	* c-semantics.c: Likewise.
	* c-ubsan.c: Likewise.
	* cilk.c: Likewise.
	* stub-objc.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-pragma.c (oacc_pragmas): Add "routine".
	* c-pragma.h (pragma_kind): Add PRAGMA_OACC_ROUTINE.

2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* c-common.c (c_common_attributes): Add scalar_storage_order.
	(handle_scalar_storage_order_attribute): New function.
	* c-pragma.c (global_sso): New variable.
	(maybe_apply_pragma_scalar_storage_order): New function.
	(handle_pragma_scalar_storage_order): Likewise.
	(init_pragma): Register scalar_storage_order.
	* c-pragma.h (maybe_apply_pragma_scalar_storage_order): Declare.
	* c.opt (Wscalar-storage-order): New warning.
	(fsso-struct=): New option.

2015-11-08  Martin Sebor  <msebor@redhat.com>

	* c.opt (Wplacement-new): Add a period to the end of a sentence.

2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>

	* c-common.c: Don't undef DEF_BUILTIN.

2015-11-06  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (c_cpp_error): Convert parameter from location_t to
	rich_location *.  Eliminate the "column_override" parameter and
	the call to diagnostic_override_column.
	Update the "done_lexing" clause to set range 0
	on the rich_location, rather than overwriting a location_t.
	* c-common.h (c_cpp_error): Convert parameter from location_t to
	rich_location *.  Eliminate the "column_override" parameter.

2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>

	* c-omp.c (c_oacc_split_loop_clauses): Make TILE, GANG, WORKER, VECTOR,
	AUTO, SEQ, INDEPENDENT and PRIVATE loop clauses.  Associate REDUCTION
	clauses with parallel and kernels and loops.
	* c-pragma.h (enum pragma_omp_clause): Add entries for
	PRAGMA_OACC_CLAUSE_{INDEPENDENT,TILE,DEFAULT}.
	* pt.c (tsubst_omp_clauses): Add support for OMP_CLAUSE_{NUM_GANGS,
	NUM_WORKERS,VECTOR_LENGTH,GANG,WORKER,VECTOR,ASYNC,WAIT,TILE,AUTO,
	INDEPENDENT,SEQ}.
	(tsubst_expr): Add support for OMP_CLAUSE_{KERNELS,PARALLEL,LOOP}.

2015-11-05  Martin Sebor  <msebor@redhat.com>

	PR c++/67942
	* c.opt (-Wplacement-new): New option.

2015-11-05  Jakub Jelinek  <jakub@redhat.com>

	* c-common.h (c_finish_omp_atomic): Add TEST argument.
	(c_omp_check_loop_iv, c_omp_check_loop_iv_exprs): New prototypes.
	* c-omp.c (c_finish_omp_atomic): Add TEST argument.  Don't call
	save_expr or create_tmp_var* if TEST is true.
	(c_finish_omp_for): Store OMP_FOR_ORIG_DECLS always.
	Don't call add_stmt here.
	(struct c_omp_check_loop_iv_data): New type.
	(c_omp_check_loop_iv_r, c_omp_check_loop_iv,
	c_omp_check_loop_iv_exprs): New functions.
	(c_omp_split_clauses): Adjust for lastprivate being allowed on
	distribute.
	(c_omp_declare_simd_clauses_to_numbers): Change
	OMP_CLAUSE_LINEAR_VARIABLE_STRIDE OMP_CLAUSE_LINEAR_STEP into numbers.
	(c_omp_declare_simd_clauses_to_decls): Similarly change those
	from numbers to PARM_DECLs.

2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>

	* c-omp.c (c_omp_split_clauses): Remove conditional compilation. Use
	flag_checking.

2015-11-03  Bernd Schmidt  <bschmidt@redhat.com>

	PR c++-common/67882
	* c-common.h (fold_offsetof_1): Add argument.
	* c-common.c (fold_offsetof_1): Diagnose more invalid
	offsetof expressions that reference elements past the end of
	an array.

2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* c-pragma.c (oacc_pragmas): Add "atomic".
	* c-pragma.h (pragma_kind): Add PRAGMA_OACC_ATOMIC.

2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>

	* c-common.c (handle_target_clones_attribute): New.
	(c_common_attribute_table): Add handle_target_clones_attribute.
	(handle_always_inline_attribute): Add check on target_clones attribute.
	(handle_target_attribute): Ditto.

2015-10-29  Andrew MacLeod  <amacleod@redhat.com>

	* array-notation-common.c: Reorder #include's and remove duplicates.
	* c-ada-spec.c: Likewise.
	* c-cilkplus.c: Likewise.
	* c-common.c: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-dump.c: Likewise.
	* c-format.c: Likewise.
	* c-gimplify.c: Likewise.
	* c-indentation.c: Likewise.
	* c-lex.c: Likewise.
	* c-omp.c: Likewise.
	* c-opts.c: Likewise.
	* c-pch.c: Likewise.
	* c-ppoutput.c: Likewise.
	* c-pragma.c: Likewise.
	* c-pretty-print.c: Likewise.
	* c-semantics.c: Likewise.
	* c-ubsan.c: Likewise.
	* cilk.c: Likewise.
	* stub-objc.c: Likewise.

2015-10-28  Jason Merrill  <jason@redhat.com>

	* c-common.c (pointer_int_sum): Fold the MULT_EXPR.

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-common.h (c_oacc_split_loop_clauses): Declare function.
	* c-omp.c (c_oacc_split_loop_clauses): New function.

2015-10-21  Martin Sebor  <msebor@redhat.com>

	PR driver/68043
	* c.opt: End each sentence that describes an option with a period.

2015-10-20  Marek Polacek  <polacek@redhat.com>

	* array-notation-common.c (is_cilkplus_vector_p): Define.
	* c-common.h (is_cilkplus_vector_p): Declare.

2015-10-20  Marek Polacek  <polacek@redhat.com>

	* c.opt (std=gnu++11): Do not describe as experimental.
	(std=gnu++14): Likewise.

2015-10-19  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define
	__cpp_nontype_template_args.

2015-10-19  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define
	__cpp_enumerator_attributes, __cpp_fold_expressions,
	__cpp_unicode_characters.

2015-10-13  Jakub Jelinek  <jakub@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>

	* c-common.c (enum c_builtin_type): Define DEF_FUNCTION_TYPE_9,
	DEF_FUNCTION_TYPE_10 and DEF_FUNCTION_TYPE_11.
	(c_define_builtins): Likewise.
	* c-common.h (enum c_omp_clause_split): Add
	C_OMP_CLAUSE_SPLIT_TASKLOOP.
	(c_finish_omp_critical, c_finish_omp_ordered): Add CLAUSES argument.
	(c_finish_omp_for): Add ORIG_DECLV argument.
	* c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP as
	201511 instead of 201307.
	* c-omp.c (c_finish_omp_critical): Add CLAUSES argument, set
	OMP_CRITICAL_CLAUSES to it.
	(c_finish_omp_ordered): Add CLAUSES argument, set
	OMP_ORDERED_CLAUSES to it.
	(c_finish_omp_for): Add ORIG_DECLV argument, set OMP_FOR_ORIG_DECLS
	to it if OMP_FOR.  Clear DECL_INITIAL on the IVs.
	(c_omp_split_clauses): Handle OpenMP 4.5 combined/composite
	constructs and new OpenMP 4.5 clauses.  Clear
	OMP_CLAUSE_SCHEDULE_SIMD if not combined with OMP_SIMD.  Add
	verification code.
	* c-pragma.c (omp_pragmas_simd): Add taskloop.
	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKLOOP.
	(enum pragma_omp_clause): Add
	PRAGMA_OMP_CLAUSE_{DEFAULTMAP,GRAINSIZE,HINT,{IS,USE}_DEVICE_PTR}
	and PRAGMA_OMP_CLAUSE_{LINK,NOGROUP,NUM_TASKS,PRIORITY,SIMD,THREADS}.

2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>

	* c-lex.c (interpret_float): Use real_equal instead of
	REAL_VALUES_EQUAL.

2015-10-04  Jason Merrill  <jason@redhat.com>

	Implement N4514, C++ Extensions for Transactional Memory.
	* c-common.c (c_common_reswords): Add C++ TM TS keywords.
	(c_common_attribute_table): Add transaction_safe_dynamic.
	transaction_safe now affects type identity.
	(handle_tm_attribute): Handle transaction_safe_dynamic.
	* c-common.h (enum rid): Add RID_ATOMIC_NOEXCEPT,
	RID_ATOMIC_CANCEL, RID_SYNCHRONIZED.
	(OBJC_IS_CXX_KEYWORD): Add RID_SYNCHRONIZED.
	(D_TRANSMEM): New.
	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_transactional_memory.
	* c-pretty-print.c (pp_c_attributes_display): Don't print
	transaction_safe in C++.

2015-10-02  Marek Polacek  <polacek@redhat.com>

	* c.opt (Wduplicated-cond): Don't enable by -Wall anymore.

2015-10-02  Marek Polacek  <polacek@redhat.com>

	PR c/64249
	* c-common.c (warn_duplicated_cond_add_or_warn): New function.
	* c-common.h (warn_duplicated_cond_add_or_warn): Declare.
	* c.opt (Wduplicated-cond): New option.

2015-10-01  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (std=c11): Do not describe as experimental.
	(std=gnu11): Likewise.
	(std=iso9899:2011): Likewise.

2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>

	* c-common.c (DEF_FUNCTION_TYPE_VAR_6): New.
	(DEF_FUNCTION_TYPE_VAR_11): Delete.

2015-09-25  Marek Polacek  <polacek@redhat.com>

	* c-ubsan.c (ubsan_instrument_division): Remove unnecessary code.
	(ubsan_instrument_shift): Likewise.

2015-09-25  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/64906
	* c-ubsan.c (ubsan_instrument_division): Also pre-evaluate OP1.

2015-09-24  Patrick Palka  <ppalka@gcc.gnu.org>

	* c-indentation.c (should_warn_for_misleading_indentation):
	Compare next_stmt_vis_column with guard_line_first_nws instead
	of with guard_line_vis_column.

2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/49654
	PR c/49655
	* c-pragma.c (handle_pragma_diagnostic): Detect non-warning
	options and options not valid for the current language.

2015-09-22  Patrick Palka  <ppalka@gcc.gnu.org>

	* c-indentation.c (should_warn_for_misleading_indentation):
	Float out and consolidate the calls to get_visual_column that
	are passed guard_exploc as an argument.  Compare
	next_stmt_vis_column with guard_line_first_nws instead of with
	body_line_first_nws.

2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>

	* c.opt (Wmultiple-inheritance, Wvirtual-inheritance, Wtemplates,
	Wnamespaces): New C++ warnings.

2015-09-22  Jason Merrill  <jason@redhat.com>

	* c-common.h (abi_compat_version_crosses): New.
	(warn_abi_version): Declare.
	* c-common.c: Define it.
	* c-opts.c (c_common_post_options): Handle it.
	flag_abi_compat_version defaults to 8.

2015-09-21  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Complete the implementation of N4230, Nested namespace definition.
	* c-cppbuiltin.c: Add __cpp_namespace_attributes and
	__cpp_nested_namespace_definitions.

2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-pragma.c (handle_pragma_diagnostic): Fix wrong return.

2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-pragma.c (handle_pragma_diagnostic): Use explicit location
	when warning.
	* c-pragma.h (pragma_lex): Add optional loc argument.

2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>

	* c-format.c (check_format_arg): Adjust to use common block size in all
	object pools.

2015-09-15  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (location_from_offset): Update for change in
	signature of location_get_source_line.
	* c-indentation.c (get_visual_column): Likewise.
	(line_contains_hash_if): Likewise.

2015-09-14  Marek Polacek  <polacek@redhat.com>

	* c-opts.c (c_common_post_options): Set C++ standard earlier, before
	setting various warnings.

2015-09-14  Marek Polacek  <polacek@redhat.com>

	* c-common.c (warn_for_sign_compare): Cast to unsigned when shifting
	a negative value.

2015-09-11  Mark Wielaard  <mjw@redhat.com>

	PR c/28901
	* c.opt (Wunused-variable): Option from common.opt.
	(Wunused-const-variable): New option.

2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53184
	* c.opt ([Wsubobject-linkage]): Add.

2015-09-03  Martin Sebor  <msebor@redhat.com>

	PR c/66516
	* c-common.h (c_decl_implicit, reject_gcc_builtin): Declare new
	functions.
	* c-common.c (reject_gcc_builtin): Define.

2015-09-02  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	PR middle-end/60586
	* c-common.h (cilk_gimplify_call_params_in_spawned_fn): New
	prototype.
	* c-gimplify.c (c_gimplify_expr): Added a call to the function
	cilk_gimplify_call_params_in_spawned_fn.
	* cilk.c (cilk_gimplify_call_params_in_spawned_fn): New function.
	(gimplify_cilk_spawn): Removed EXPR_STMT and CLEANUP_POINT_EXPR
	unwrapping.

2015-08-25  Marek Polacek  <polacek@redhat.com>

	PR middle-end/67330
	* c-common.c (handle_weak_attribute): Don't check whether the
	visibility can be changed here.

2015-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-lex.c (c_lex_with_flags): Use explicit locations.

2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* c-ada-spec.h, c-common.c, c-common.h, c-format.c, c-format.h,
	c-objc.h, c-ppoutput.c, c-pragma.c, c-pragma.h: Remove useless

2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR middle-end/36757
	* c-common.c (check_builtin_function_arguments): Add check
	for BUILT_IN_SIGNBIT argument.

2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67160
	* c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_static_assert value
	in c++1z mode.

2015-08-17  Marek Polacek  <polacek@redhat.com>

	* c-pretty-print.c (pp_c_cv_qualifiers): Remove code dealing
	with whitespaces before qualifier names.

2015-08-12  Marek Polacek  <polacek@redhat.com>

	PR c++/55095
	* c-common.c (maybe_warn_shift_overflow): Properly handle
	left-shifting 1 into the sign bit.

2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wchkp): Use LangEnabledBy instead of EnabledBy.

2015-08-06  Andrew Sutton  <andrew.n.sutton@gmail.com>
	    Braden Obrzut  <admin@maniacsvault.net>
	    Jason Merrill  <jason@redhat.com>

	Add C++ Concepts TS support.
	* c-common.c (c_common_reswords): Add __is_same_as, concept, requires.
	* c-common.h (enum rid): Add RID_IS_SAME_AS, RID_CONCEPT, RID_REQUIRES.
	(D_CXX_CONCEPTS, D_CXX_CONCEPTS_FLAGS): New.
	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_concepts.
	* c-opts.c (set_std_cxx1z): Set flag_concepts.
	* c.opt (fconcepts): New.

2015-08-02  Martin Sebor  <msebor@redhat.com>

	* c.opt (-Wframe-address): New warning option.

2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>

	* c-indentation.c (should_warn_for_misleading_indentation):
	Improve heuristics.

2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>

	* c-indentation.c (get_visual_column): Add parameter first_nws,
	use it.  Update comment documenting the function.
	(is_first_nonwhitespace_on_line): Remove.
	(should_warn_for_misleading_indentation): Replace usage of
	of is_first_nonwhitespace_on_line with get_visual_column.

2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>

	* c-indentation.h (struct token_indent_info): Define.
	(get_token_indent_info): Define.
	(warn_for_misleading_information): Declare.
	* c-common.h (warn_for_misleading_information): Remove.
	* c-identation.c (warn_for_misleading_indentation):
	Change declaration to take three token_indent_infos.  Adjust
	accordingly.
	* c-identation.c (should_warn_for_misleading_indentation):
	Likewise.  Bail out early if the body is a compound statement.
	(guard_tinfo_to_string): Define.

2015-07-30  Jason Merrill  <jason@redhat.com>

	* c-pretty-print.c (unary_expression) [INDIRECT_REF]: Don't print
	'*' for reference decay.

2015-07-30  Marek Polacek  <polacek@redhat.com>

	* c-common.c (warn_tautological_cmp): Bail for float types.

2015-07-27  Marek Polacek  <polacek@redhat.com>

	PR bootstrap/67030
	* c-common.c (warn_tautological_cmp): Don't warn for macro expansion.

2015-07-27  Marek Polacek  <polacek@redhat.com>

	PR c++/66555
	PR c/54979
	* c-common.c (find_array_ref_with_const_idx_r): New function.
	(warn_tautological_cmp): New function.
	* c-common.h (warn_tautological_cmp): Declare.
	* c.opt (Wtautological-compare): New option.

2015-07-23  Marek Polacek  <polacek@redhat.com>

	* c-ubsan.c (ubsan_instrument_division): Use unshare_expr throughout.
	(ubsan_instrument_shift): Likewise.

2015-07-23  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/66908
	* c-ubsan.c: Include gimplify.h.
	(ubsan_instrument_division): Unshare OP0 and OP1.
	(ubsan_instrument_shift): Likewise.

2015-07-20  Marek Polacek  <polacek@redhat.com>
	    Richard Sandiford  <richard.sandiford@arm.com>

	PR c++/55095
	* c-common.c (c_fully_fold_internal): Warn about left shift overflows.
	Use EXPR_LOC_OR_LOC.
	(maybe_warn_shift_overflow): New function.
	* c-common.h (maybe_warn_shift_overflow): Declare.
	* c-opts.c (c_common_post_options): Set warn_shift_overflow.
	* c.opt (Wshift-overflow): New option.

2015-07-16  Martin Liska  <mliska@suse.cz>

	* c-format.c (static void check_format_info_main): Use
	object_allocator instead of pool_allocator.
	(check_format_arg): Likewise.
	(check_format_info_main): Likewise.

2015-07-15  Andrew MacLeod  <amacleod@redhat.com>

	* c-opts.c: Remove multiline #include comment.

2015-07-12  Aldy Hernandez  <aldyh@redhat.com>

	* c-common.c: Fix double word typos.

2015-07-10  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.h (cpp_operation): Revert latest change.
	* c-ada-spec.c (print_ada_declaration): Likewise.  Skip implicit
	constructors and destructors.

2015-07-09  Andrew MacLeod  <amacleod@redhat.com>

	* c-common.h: Adjust includes for flags.h changes.
	* stub-objc.c: Likewise.

2015-07-08  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.h (cpp_operation): Add IS_CONSTEXPR.
	* c-ada-spec.c (print_ada_declaration): Skip constexpr constructors.

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

	* c-omp.c (c_omp_declare_simd_clauses_to_numbers): If all clauses
	are to be removed, return NULL rather than original clauses list.

2015-07-07  Andrew MacLeod  <amacleod@redhat.com>

	* array-notation-common.c: Adjust includes.
	* c-ada-spec.c: Likewise.
	* c-cilkplus.c: Likewise.
	* c-common.h: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-dump.c: Likewise.
	* c-format.c: Likewise.
	* c-gimplify.c: Likewise.
	* c-indentation.c: Likewise.
	* c-lex.c: Likewise.
	* c-omp.c: Likewise.
	* c-opts.c: Likewise.
	* c-pch.c: Likewise.
	* c-ppoutput.c: Likewise.
	* c-pragma.c: Likewise.
	* c-pretty-print.c: Likewise.
	* c-semantics.c: Likewise.
	* c-ubsan.c: Likewise.
	* cilk.c: Likewise.
	* stub-objc.c: Likewise.

2015-07-07  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.h (cpp_operation): Add IS_MOVE_CONSTRUCTOR.
	* c-ada-spec.c (print_ada_declaration): Skip move constructors.

2015-07-01  Jason Merrill  <jason@redhat.com>

	* c-common.h (D_CXX11): Rename from D_CXX0X.
	(RID_FIRST_CXX11, RID_LAST_CXX11): Rename from *_CXX0X.
	* c-common.c: Adjust.

	* c-opts.c (c_common_post_options): Default to C++14.

	* c-opts.c (c_common_post_options): Highest ABI level is now 10.

2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Implement N4197 - Adding u8 character literals
	* c-ada-spec.c (print_ada_macros): Treat CPP_UTF8CHAR like
	CPP_CHAR.
	* c-common.c (c_parse_error): Print CPP_UTF8CHAR and
	CPP_UTF8CHAR_USERDEF tokens.
	* c-lex.c (c_lex_with_flags): Treat CPP_UTF8CHAR_USERDEF
	and CPP_UTF8CHAR tokens.
	(lex_charconst): Treat CPP_UTF8CHAR token.

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* c-common.c (do_warn_unused_parameter): Move here.
	* c-common.h (do_warn_unused_parameter): Declare.

2015-06-29  Marek Polacek  <polacek@redhat.com>

	PR c/66322
	* c-common.c (check_case_bounds): Add bool * parameter.  Set
	OUTSIDE_RANGE_P.
	(c_add_case_label): Add bool * parameter.  Pass it down to
	check_case_bounds.
	(c_do_switch_warnings): Add bool parameters.  Implement -Wswitch-bool
	warning here.
	* c-common.h (c_add_case_label, c_do_switch_warnings): Update
	declarations.

2015-06-27  Marek Polacek  <polacek@redhat.com>

	* c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P
	or VECTOR_INTEGER_TYPE_P throughout.
	* c-gimplify.c: Likewise.

2015-06-26  Marek Polacek  <polacek@redhat.com>

	* array-notation-common.c (find_rank): Use INDIRECT_REF_P.
	* c-common.c (c_fully_fold_internal): Likewise.
	(c_alignof_expr): Likewise.
	* c-pretty-print.c (c_pretty_printer::postfix_expression): Likewise.
	* c-ubsan.c (ubsan_instrument_bounds): Likewise.
	* cilk.c (create_parm_list): Likewise.

2015-06-26  Marek Polacek  <polacek@redhat.com>

	* c-common.c (handle_unused_attribute): Use VAR_OR_FUNCTION_DECL_P.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* c-common.c: Remove ipa-ref.h and plugin-api.h from include list.
	* c-gimplify.c: Likewise.
	* c-pragma.c: Likewise.
	* c-ubsan.c: Likewise.
	* cilk.c: Likewise.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* c-common.c (c_type_hasher): Inherit from ggc_ptr_hash rather than
	ggc_hasher.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* cilk.c: Move calls.h after tm.h in the include chain.

2015-06-25  Marek Polacek  <polacek@redhat.com>

	* array-notation-common.c: Use VAR_P throughout.
	* c-ada-spec.c: Likewise.
	* c-common.c: Likewise.
	* c-format.c: Likewise.
	* c-gimplify.c: Likewise.
	* c-omp.c: Likewise.
	* c-pragma.c: Likewise.
	* c-pretty-print.c: Likewise.
	* cilk.c: Likewise.

2015-06-25  Marek Polacek  <polacek@redhat.com>

	* cilk.c (extract_free_variables): Use is_global_var.

2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>

	* c-common.c: Don't include target-def.h.

2015-06-23  Marek Polacek  <polacek@redhat.com>

	* c-common.c (warn_logical_operator): Use tree_int_cst_equal
	when comparing INTEGER_CSTs.

2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>

	* c-ada-spec.h (cpp_operation): Add HAS_DEPENDENT_TEMPLATE_ARGS.
	* c-ada-spec.c (collect_ada_nodes): Skip NAMESPACE_DECL
	(dump_ada_template): Skip partially specialized types.

2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>

	* c-common.c (scalar_to_vector): Use std::swap instead of manually
	swapping.

2015-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* array-notation-common.c: Do not include input.h, line-map.h or is-a.h.
	* c-ada-spec.c: Likewise.
	* c-cilkplus.c: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-dump.c: Likewise.
	* c-format.c: Likewise.
	* c-gimplify.c: Likewise.
	* c-indentation.c: Likewise.
	* c-lex.c: Likewise.
	* c-omp.c: Likewise.
	* c-opts.c: Likewise.
	* c-pch.c: Likewise.
	* c-ppoutput.c: Likewise.
	* c-pragma.c: Likewise.
	* c-pretty-print.c: Likewise.
	* c-semantics.c: Likewise.
	* c-ubsan.c: Likewise.
	* cilk.c: Likewise.
	* stub-objc.c: Likewise.

2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>

	PR c++/65168
	* c-common.c (c_common_truthvalue_conversion): Warn when
	converting an address of a reference to a truth value.

2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* array-notation-common.c : Adjust include files.
	* c-ada-spec.c : Likewise.
	* c-cilkplus.c : Likewise.
	* c-common.c : Likewise.
	* c-common.h : Likewise.
	* c-cppbuiltin.c : Likewise.
	* c-dump.c : Likewise.
	* c-format.c : Likewise.
	* c-gimplify.c : Likewise.
	* c-indentation.c : Likewise.
	* c-lex.c : Likewise.
	* c-omp.c : Likewise.
	* c-opts.c : Likewise.
	* c-pch.c : Likewise.
	* c-ppoutput.c : Likewise.
	* c-pragma.c : Likewise.
	* c-pretty-print.c : Likewise.
	* c-semantics.c : Likewise.
	* c-ubsan.c : Likewise.
	* cilk.c : Likewise.
	* stub-objc.c : Likewise.

2015-06-08  Marek Polacek  <polacek@redhat.com>

	PR c/66415
	* c-format.c (location_from_offset): Return LOC if LINE is null.

2015-06-05  Aldy Hernandez  <aldyh@redhat.com>

	* c-common.h (c_parse_final_cleanups): New prototype.
	* c-opts.c (c_common_parse_file): Call c_parse_final_cleanups.

2015-06-04  Sriraman Tallam  <tmsriram@google.com>

	* c-common.c (noplt): New attribute.
	(handle_noplt_attribute): New handler.

2015-06-04  Andrew MacLeod  <amacleod@redhat.com>

	* array-notation-common.c: Adjust includes for restructured coretypes.h.
	* c-ada-spec.c: Likewise.
	* c-cilkplus.c: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-dump.c: Likewise.
	* c-format.c: Likewise.
	* c-gimplify.c: Likewise.
	* c-indentation.c: Likewise.
	* c-lex.c: Likewise.
	* c-omp.c: Likewise.
	* c-opts.c: Likewise.
	* c-pch.c: Likewise.
	* c-ppoutput.c: Likewise.
	* c-pragma.c: Likewise.
	* c-pretty-print.c: Likewise.
	* c-semantics.c: Likewise.
	* c-ubsan.c: Likewise.
	* cilk.c: Likewise.
	* stub-objc.c: Likewise.

2015-06-02  David Malcolm  <dmalcolm@redhat.com>

	PR c/66220:
	* c-indentation.c (should_warn_for_misleading_indentation): Use
	expand_location rather than expand_location_to_spelling_point.
	Don't warn if the guarding statement is more indented than the
	next/body stmts.

2015-06-02  David Malcolm  <dmalcolm@redhat.com>

	* c-indentation.c (warn_for_misleading_indentation): Bail out
	immediately if -Wmisleading-indentation isn't enabled.

2015-06-01  Martin Liska  <mliska@suse.cz>

	* c-format.c (check_format_arg):Use new type-based pool allocator.
	(check_format_info_main) Likewise.

2015-05-31  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (is_tagged_type): Test for TYPE_METHODS on main variant.
	(has_nontrivial_methods): Likewise.

2015-05-25  Marek Polacek  <polacek@redhat.com>

	* c-ubsan.c (ubsan_instrument_shift): Use type0.

2015-05-22  Marek Polacek  <polacek@redhat.com>

	PR c/47043
	* c-common.c (handle_deprecated_attribute): Allow CONST_DECL.

2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* c-cppbuiltin.c (c_cpp_builtins): Use if instead of #if with
	STACK_GROWS_DOWNWARD.

2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* c-cppbuiltin.c (c_cpp_builtins): Check the value of
	STACK_GROWS_DOWNWARD rather than if it is defined.

2015-05-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/52952
	* c-format.c (location_column_from_byte_offset): New.
	(location_from_offset): New.
	(struct format_wanted_type): Add offset_loc field.
	(check_format_info): Move handling of location for extra arguments
	closer to the point of warning.
	(check_format_info_main): Pass the result of location_from_offset
	to warning_at.
	(format_type_warning): Pass the result of location_from_offset
	to warning_at.

2015-05-20  Marek Polacek  <polacek@redhat.com>

	* c-omp.c (check_omp_for_incr_expr): Use BINARY_CLASS_P.

2015-05-20  Marek Polacek  <polacek@redhat.com>

	* c-ada-spec.c (dump_sloc): Use DECL_P.

2015-05-20  Marek Polacek  <polacek@redhat.com>

	* c-pragma.c: Use VAR_OR_FUNCTION_DECL_P throughout.
	* c-common.c: Likewise.

2015-05-19  David Malcolm  <dmalcolm@redhat.com>

	* c-common.h (fe_file_change): Strengthen param from
	const line_map * to const line_map_ordinary *.
	(pp_file_change): Likewise.
	* c-lex.c (fe_file_change): Likewise.
	(cb_define): Use linemap_check_ordinary when invoking
	SOURCE_LINE.
	(cb_undef): Likewise.
	* c-opts.c (c_finish_options): Use linemap_check_ordinary when
	invoking cb_file_change.
	(c_finish_options): Likewise.
	(push_command_line_include): Likewise.
	(cb_file_change): Strengthen param "new_map" from
	const line_map * to const line_map_ordinary *.
	* c-ppoutput.c (cb_define): Likewise for local "map".
	(pp_file_change): Likewise for param "map" and local "from".

2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>

	* c-common.c (shorten_compare): Use std::swap instead of explicit swaps.

2015-05-18  Tom de Vries  <tom@codesourcery.com>

	* c-common.c (build_va_arg_1): New function.
	(build_va_arg): Add address operator to va_list operand if necessary.

2015-05-15  Mikhail Maltsev  <maltsevm@gmail.com>

	PR c/48956
	* c-common.c (int_safely_convertible_to_real_p): Define.
	(unsafe_conversion_p): Check conversions involving complex types.
	(conversion_warning): Add new warning message for conversions which
	discard imaginary component.
	* c-common.h: (enum conversion_safety): Add new enumerator for such
	conversions.

2015-05-14  Marek Polacek  <polacek@redhat.com>

	PR c/66066
	PR c/66127
	* c-common.c (c_fully_fold): Pass false down to c_fully_fold_internal.
	(c_fully_fold_internal): Fold C_MAYBE_CONST_EXPRs with
	C_MAYBE_CONST_EXPR_INT_OPERANDS set.  Add FOR_INT_CONST argument and
	use it.  If FOR_INT_CONST, require that all evaluated operands be
	INTEGER_CSTs.

2015-05-12  David Malcolm  <dmalcolm@redhat.com>

	* c-common.h (warn_for_misleading_indentation): New prototype.
	* c-indentation.c: New file.
	* c.opt (Wmisleading-indentation): New option.

2015-05-12  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/66010
	* c-common.c (build_va_arg): Don't mark ap addressable unless necessary.

2015-05-09  Jason Merrill  <jason@redhat.com>

	* c-opts.c (c_common_post_options): Also clear
	cpp_opts->cpp_warn_cxx11_compat.

	* c-common.h (enum cxx_dialect): Add cxx_unset.
	* c-common.c (cxx_dialect): Initialize to cxx_unset.
	* c-opts.c (c_common_post_options): Set C++ dialect to C++98 if unset.

	* c.opt (std=c++14): Remove Undocumented flag and experimental warning.
	(std=gnu++0x): Mark as Undocumented.
	(std=gnu++1y): Add deprecated message.

2015-05-08  Jason Merrill  <jason@redhat.com>

	* c.opt (Wc++11-compat): Make primary.  Rename var warn_cxx11_compat.
	* c-opts.c: Adjust.

	* c.opt (Wc++0x-compat): Also set cpp_warn_cxx11_compat.

2015-05-08  Marek Polacek  <polacek@redhat.com>

	PR c/64918
	* c.opt (Woverride-init-side-effects): New option.

2015-05-07  Marek Polacek  <polacek@redhat.com>

	PR c/65179
	* c-common.c (c_fully_fold_internal): Warn when left shifting a
	negative value.
	* c.opt (Wshift-negative-value): New option.
	* c-opts.c (c_common_post_options): Set warn_shift_negative_value
	when -Wextra and C99/C++11 mode.

2015-05-07  Marek Polacek  <polacek@redhat.com>
	    Martin Uecker  <uecker@eecs.berkeley.edu>

	* c-ubsan.c (ubsan_instrument_bounds): Don't skip instrumenting
	flexible member array-like members if SANITIZE_BOUNDS_STRICT.

2015-05-05  Jason Merrill  <jason@redhat.com>

	* c.opt (Wterminate): New.

2015-04-30  Marek Polacek  <polacek@redhat.com>

	* c-common.c (maybe_warn_bool_compare): When comparing with 0/1,
	require that the non-constant be of a boolean type.

2015-04-29  Josh Triplett  <josh@joshtriplett.org>

	* c-common.c (handle_section_attribute): Refactor to reduce
	nesting and distinguish between error cases.

2015-04-29  Marek Polacek  <polacek@redhat.com>

	PR c/64610
	* c-common.c (maybe_warn_bool_compare): Warn when comparing a boolean
	with 0/1.

2015-04-29  Jakub Jelinek  <jakub@redhat.com>

	* c-common.h (omp_clause_mask): Unconditionally define as a class.
	Use uint64_t instead of unsigned HOST_WIDE_INT and 64 instead of
	HOST_BITS_PER_WIDE_INT.

2015-04-28  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65887
	* c-common.c (build_va_arg): Mark va_arg ap argument as addressable.

2015-04-28  Eric Botcazou  <ebotcazou@adacore.com>
	    Pierre-Marie de Rodat  <derodat@adacore.com>

	* c-ada-spec.c (in_function): Delete.
	(dump_generic_ada_node): Do not change in_function and remove the
	redundant code dealing with it.
	(print_ada_declaration): Do not change in_function.  Use INDENT_INCR.
	(print_ada_methods): Output the static member functions in a nested
	package after the regular methods as well as associated renamings.

2015-04-24  Marek Polacek  <polacek@redhat.com>

	PR c/65830
	* c-common.c (c_fully_fold_internal): Use OPT_Wshift_count_negative
	and OPT_Wshift_count_overflow.

	PR c/63357
	* c-common.c (warn_logical_operator): Warn if the operands have the
	same expressions.

2015-04-24  Marek Polacek  <polacek@redhat.com>

	PR c/61534
	* c-common.c (warn_logical_operator): Bail if either operand comes
	from a macro expansion.

2015-04-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	PR target/55143
	* c-common.c (c_default_pointer_mode): Add definition.
	* c-common.h (c_default_pointer_mode): Add declaration.

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

	* c-common.c (c_common_nodes_and_builtins): Don't call xstrdup
	on record_builtin_type argument.

2015-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/65120
	* c-common.c (warn_logical_not_parentheses): Don't warn for
	!x == 0 or !x != 0.

2015-03-07  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/65280
	* c-ubsan.c (ubsan_instrument_bounds): Check for COMPONENT_REF
	before trying to figure out whether we have a flexible array member.

2015-03-06  Eric Botcazou  <ebotcazou@adacore.com>
	    Jonathan Wakely  <jwakely.gcc@gmail.com>

	* c-ada-spec.c (dump_ada_double_name): Fix pasto.

2015-03-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/65319
	* c-ada-spec.c (print_destructor): Remove obsolete code.

2015-03-01  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (is_tagged_type): Add guard for DECL_VINDEX.
	(dump_template_types): Adjust DECL_TEMPLATE_INSTANTIATIONS and
	DECL_TEMPLATE_RESULT emulations.
	(dump_ada_template)): Add guard for TYPE_METHODS.

2015-02-27  Marek Polacek  <polacek@redhat.com>

	PR c/65040
	* c.opt (Wformat-signedness): Don't enable by -Wformat=2.

2015-02-27  Kai Tietz  <ktietz@redhat.com>

	PR c/35330
	* c-pragma.c (handle_pragma_weak): Do not try to create
	weak/alias of declarations not being function, or variable
	declarations.

2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>

	PR libgomp/64625
	* c-common.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
	Remove macros.
	(DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.

2015-02-16  Marek Polacek  <polacek@redhat.com>

	PR c/65066
	* c-format.c (check_format_types): Handle null param.

2015-02-13  Marek Polacek  <polacek@redhat.com>

	PR c/65040
	* c-format.c (check_format_types): Don't warn about different
	signedness if the original value is in the range of WANTED_TYPE.

2015-02-12  Jason Merrill  <jason@redhat.com>

	PR c++/64956
	* c-opts.c (c_common_post_options): Change flag_abi_version from 0
	to the current highest version.
	* c-cppbuiltin.c (c_cpp_builtins): Assert that it isn't 0.

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

	PR c/64824
	PR c/64868
	* c-omp.c (c_finish_omp_atomic): Use TRUNC_DIV_EXPR
	instead of RDIV_EXPR.  Use build_binary_op instead of
	build2_loc.

2015-01-30  Joseph Myers  <joseph@codesourcery.com>

	* c-opts.c, c-pch.c, cppspec.c: All callers of fatal_error changed
	to pass input_location as first argument.

2015-01-23  Tom de Vries  <tom@codesourcery.com>

	PR libgomp/64672
	* c.opt (fopenacc): Mark as LTO option.

2015-01-23  Tom de Vries  <tom@codesourcery.com>

	PR libgomp/64707
	* c.opt (fopenmp): Mark as LTO option.

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

	PR c/63307
	* cilk.c (fill_decls_vec): Only put decls into vector v.
	(compare_decls): Fix up formatting.

2015-01-21  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR c/63307
	* cilk.c: Include vec.h.
	(struct cilk_decls): New structure.
	(wrapper_parm_cb): Split this function to...
	(fill_decls_vec): ...this...
	(create_parm_list): ...and this.
	(compare_decls): New function.
	(for_local_cb): Remove.
	(wrapper_local_cb): Ditto.
	(build_wrapper_type): For now first traverse and fill vector of
	declarations then sort it and then deal with sorted vector.
	(cilk_outline): Ditto.
	(declare_one_free_variable): Ditto.

2015-01-21  Jason Merrill  <jason@redhat.com>

	PR c++/64629
	* c-format.c (check_format_arg): Call decl_constant_value.

2015-01-19  Martin Liska  <mliska@suse.cz>

	* c-common.c (handle_noicf_attribute): New function.

2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
	    Bernd Schmidt  <bernds@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Ilmir Usmanov  <i.usmanov@samsung.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* c.opt (fopenacc): New option.
	* c-cppbuiltin.c (c_cpp_builtins): Conditionally define _OPENACC.
	* c-common.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
	New macros.
	* c-common.h (c_finish_oacc_wait): New prototype.
	* c-omp.c: Include "omp-low.h" and "gomp-constants.h".
	(c_finish_oacc_wait): New function.
	* c-pragma.c (oacc_pragmas): New variable.
	(c_pp_lookup_pragma, init_pragma): Handle it.
	* c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_CACHE,
	PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA, PRAGMA_OACC_EXIT_DATA,
	PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP, PRAGMA_OACC_PARALLEL,
	PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
	(enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ASYNC,
	PRAGMA_OACC_CLAUSE_AUTO, PRAGMA_OACC_CLAUSE_COLLAPSE,
	PRAGMA_OACC_CLAUSE_COPY, PRAGMA_OACC_CLAUSE_COPYIN,
	PRAGMA_OACC_CLAUSE_COPYOUT, PRAGMA_OACC_CLAUSE_CREATE,
	PRAGMA_OACC_CLAUSE_DELETE, PRAGMA_OACC_CLAUSE_DEVICE,
	PRAGMA_OACC_CLAUSE_DEVICEPTR, PRAGMA_OACC_CLAUSE_FIRSTPRIVATE,
	PRAGMA_OACC_CLAUSE_GANG, PRAGMA_OACC_CLAUSE_HOST,
	PRAGMA_OACC_CLAUSE_IF, PRAGMA_OACC_CLAUSE_NUM_GANGS,
	PRAGMA_OACC_CLAUSE_NUM_WORKERS, PRAGMA_OACC_CLAUSE_PRESENT,
	PRAGMA_OACC_CLAUSE_PRESENT_OR_COPY,
	PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYIN,
	PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYOUT,
	PRAGMA_OACC_CLAUSE_PRESENT_OR_CREATE, PRAGMA_OACC_CLAUSE_PRIVATE,
	PRAGMA_OACC_CLAUSE_REDUCTION, PRAGMA_OACC_CLAUSE_SELF,
	PRAGMA_OACC_CLAUSE_SEQ, PRAGMA_OACC_CLAUSE_VECTOR,
	PRAGMA_OACC_CLAUSE_VECTOR_LENGTH, PRAGMA_OACC_CLAUSE_WAIT,
	PRAGMA_OACC_CLAUSE_WORKER.

2015-01-14  Marcos Diaz  <marcos.diaz@tallertechnologies.com>

	* c-cppbuiltin.c (c_cpp_builtins): New cpp define __SSP_EXPLICIT__
	for the new option fstack-protector_explicit.
	* c-common.c (c_common_attribute_table): Add stack_protect attribute.
	(handle_stack_protect_attribute): New function.

2015-01-13  Martin Uecker  <uecker@eecs.berkeley.edu>

	* c.opt: New option -Warray-bounds=.

2015-01-09  Michael Collison  <michael.collison@linaro.org>

	* array-notation-common.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-ada-spec.c: Ditto.
	* c-cilkplus.c: Ditto.
	* c-common.c: Include input.h due to flattening of tree.h.
	Define macro GCC_C_COMMON_C.
	* c-common.h: Flatten tree.h header files into c-common.h.
	Remove include of tree-core.h.
	* c-cppbuiltin.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-dump.c: Ditto.
	* c-format.c: Flatten tree.h header files into c-common.h.
	* c-cppbuiltin.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-dump.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-format.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 and real.h due to
	flattening of tree.h.
	* c-gimplify.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.
	* cilk.c: Ditto.
	* c-lex.c: Ditto.
	* c-omp.c: Ditto.
	* c-opts.c: Ditto.
	* c-pch.c: Ditto.
	* c-ppoutput.c: Ditto.
	* c-pragma.c: Ditto.
	* c-pretty-print.c: Ditto.
	* c-semantics.c: Ditto.
	* c-ubsan.c: Ditto.
	* stub-objc.c: Ditto.

2015-01-08  Jason Merrill  <jason@redhat.com>

	* c-ubsan.c (ubsan_maybe_instrument_array_ref): Use
	do_ubsan_in_current_function.
	(ubsan_maybe_instrument_reference_or_call): Likewise.
	* c-ubsan.h: Declare it.

2015-01-08  Mike Stump  <mikestump@comcast.net>

	* c-common.c (c_common_attribute_table): Add no_sanitize_thread.

2015-01-07  Marek Polacek  <polacek@redhat.com>

	PR c/64440
	* c-common.c (c_fully_fold_internal): Warn for division and modulo
	if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST and is zero.

2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>

	PR c++/31397
	* c.opt (Wsuggest-override): New option.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2015-01-05  Marek Polacek  <polacek@redhat.com>

	PR c/64423
	* c-common.c (warn_array_subscript_with_type_char): Add location_t
	parameter.  Use it.
	* c-common.h (warn_array_subscript_with_type_char): Update
	declaration.

2014-12-20  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* c-cppbuiltin.c (__cpp_sized_deallocation): Uncomment and move macro.
	Control macro with flag_sized_deallocation.

2014-12-20  Martin Uecker  <uecker@eecs.berkeley.edu>

	* c.opt (Wdiscarded-array-qualifiers): New option.

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

	PR preprocessor/63831
	* c-cppbuiltin.c (c_cpp_builtins): Don't define __has_attribute
	and __has_cpp_attribute here.
	* c-ppoutput.c (init_pp_output): Set cb->has_attribute to
	c_common_has_attribute.
	* c-common.h (c_common_has_attribute): New prototype.
	* c-lex.c (init_c_lex): Set cb->has_attribute to
	c_common_has_attribute instead of cb_has_attribute.
	(get_token_no_padding): New function.
	(cb_has_attribute): Renamed to ...
	(c_common_has_attribute): ... this.  No longer static.  Use
	get_token_no_padding, require ()s, don't build TREE_LIST
	unnecessarily, fix up formatting, adjust diagnostics, call
	init_attributes.

2014-12-15  Jason Merrill  <jason@redhat.com>

	* c.opt (-fsized-deallocation, -Wc++14-compat): New.
	(-Wsized-deallocation): New.
	* c-opts.c (c_common_post_options): -fsized-deallocation defaults
	to on in C++14 and up.

2014-12-11  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Enable C++14 __cpp_constexpr.

	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_runtime_arrays if
	we aren't complaining about VLAs.

2014-12-06  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/64183
	* c-gimplify.c (c_gimplify_expr): Don't convert the RHS of a
	shift-expression if it is integer_type_node.  Use types_compatible_p.

2014-11-29  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (convert_vector_to_pointer_for_subscript): Remove NULL
	last argument from create_tmp_var_raw and create_tmp_var calls.
	* cilk.c (gimplify_cilk_spawn): Likewise.
	* c-omp.c (c_finish_omp_atomic): Likewise.

2014-11-28  Marek Polacek  <polacek@redhat.com>

	* c-ubsan.c (ubsan_instrument_shift): Use op1_utype for MINUS_EXPR
	instead of unsigned_type_node.

2014-11-28  Marek Polacek  <polacek@redhat.com>

	PR c/63862
	* c-ubsan.c (ubsan_instrument_shift): Change the type of a MINUS_EXPR
	to op1_utype.
	* c-gimplify.c (c_gimplify_expr): Convert right operand of a shift
	expression to unsigned_type_node.

2014-11-20  Mark Wielaard  <mjw@redhat.com>

	PR debug/38757
	* c-opts.c (set_std_c89): Set lang_hooks.name.
	(set_std_c99): Likewise.
	(set_std_c11): Likewise.
	(set_std_cxx98): Likewise.
	(set_std_cxx11): Likewise.
	(set_std_cxx14): Likewise.
	(set_std_cxx1z): Likewise.

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

	PR target/63764
	* c-common.h (convert_vector_to_pointer_for_subscript): Change
	return type to bool.
	* c-common.c: Include gimple-expr.h.
	(convert_vector_to_pointer_for_subscript): Change return type to
	bool.  If *vecp is not lvalue_p and has VECTOR_TYPE, return true
	and copy it into a TARGET_EXPR and use that instead of *vecp
	directly.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	Merger of git branch "gimple-classes-v2-option-3".
	* ChangeLog.gimple-classes: New.
	* c-gimplify.c (add_block_to_enclosing): Strengthen local "stack"
	from being just a vec<gimple> to a vec<gbind *>.

2014-11-18  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/63813
	* c-ubsan.c (ubsan_maybe_instrument_reference_or_call): Change type
	argument to ptype, set type to TREE_TYPE (ptype).  Don't call
	get_pointer_alignment for non-pointers.  Use ptype, or if it is
	reference type, corresponding pointer type, as type of kind
	argument.
	(ubsan_maybe_instrument_reference,
	ubsan_maybe_instrument_member_call): Adjust callers.

2014-11-15  Marek Polacek  <polacek@redhat.com>

	PR middle-end/63884
	* array-notation-common.c (is_sec_implicit_index_fn): Return false
	for NULL fndecl.
	(extract_array_notation_exprs): Return for NULL node.

2014-11-12  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define and
	undefine __NO_MATH_ERRNO__ based on changes to -fmath-errno state.

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

	PR c/59708
	* c-common.c (check_builtin_function_arguments): Handle
	BUILT_IN_{ADD,SUB,MUL}_OVERFLOW.

2014-11-10  Andi Kleen  <ak@linux.intel.com>

	PR c/60804
	* c-common.h (check_no_cilk): Declare.
	* cilk.c (get_error_location): New function.
	(check_no_cilk): Dito.

2014-11-10  Andi Kleen  <ak@linux.intel.com>

	* cilk.c (recognize_spawn): Use expression location
	for error message.

2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* c.opt ([Wshift-count-negative, Wshift-count-overflow]): Add.

2014-11-10  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* c-cppbuiltin.c (__has_attribute, __has_cpp_attribute): New macros;
	(__cpp_rtti, __cpp_exceptions): New macros for C++98;
	(__cpp_range_based_for, __cpp_initializer_lists,
	__cpp_delegating_constructors, __cpp_nsdmi,
	__cpp_inheriting_constructors, __cpp_ref_qualifiers): New macros
	for C++11; (__cpp_attribute_deprecated): Remove in favor of
	__has_cpp_attribute.
	* c-lex.c (cb_has_attribute): New callback CPP function;
	(init_c_lex): Set has_attribute callback.

2014-11-04  Richard Biener  <rguenther@suse.de>

	* c-common.c (shorten_compare): Do not shorten mixed
	DFP and non-DFP compares.

2014-11-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* g++.dg/cpp1y/feat-cxx11.C: Commentary and rearrangement of tests.
	* g++.dg/cpp1y/feat-cxx11-neg.C: Add aggregate NSDMI test.
	Commentary and rearrangement of tests.
	* g++.dg/cpp1y/feat-cxx14.C: Enable aggregate NSDMI test.
	Commentary and rearrangement of tests.
	* g++.dg/cpp1y/feat-cxx98-neg.C: Ditto
	* g++.dg/cpp1y/feat-cxx98.C: Commentary.

2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>

	* c-common.c, c-common.h, c-cppbuiltin.c, c-lex.c: Remove redundant
	enum from machine_mode.

2014-10-28  Andrew MacLeod  <amacleod@redhat.com>

	* c-common.c: Adjust include files.
	* c-gimplify.c: Ditto.
	* cilk.c: Ditto.
	* c-pragma.c: Ditto.
	* c-ubsan.c: Ditto.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* c-gimplify.c: Adjust include files.

2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/53061
	* c-opts.c (c_common_diagnostics_set_defaults): Renamed from
	c_common_initialize_diagnostics.
	* c-common.h: Likewise.

2014-10-24  Marek Polacek  <polacek@redhat.com>

	PR c/56980
	* c-pretty-print.c (c_pretty_printer::simple_type_specifier): Don't
	print "struct"/"union"/"enum" for typedefed names.

2014-10-23  Marek Polacek  <polacek@redhat.com>

	* c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
	in unsigned type.

2014-10-22  Jakub Jelinek  <jakub@redhat.com>
	    Yury Gribov  <y.gribov@samsung.com>

	* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
	ubsan_instrument_vla): Check bits in flag_sanitize_recover bitmask
	instead of flag_sanitize_recover as bool flag.

2014-10-21  Kirill Yukhin  <kirill.yukhin@intel.com>

	* cilk.c: Revert previous change.

2014-10-20  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR c/63307
	* cilk.c: Include vec.h.
	(struct cilk_decls): New structure.
	(wrapper_parm_cb): Split this function to...
	(fill_decls_vec): ...this...
	(create_parm_list): ...and this.
	(compare_decls): New function.
	(for_local_cb): Remove.
	(wrapper_local_cb): Ditto.
	(build_wrapper_type): For now first traverse and fill vector of
	declarations then sort it and then deal with sorted vector.
	(cilk_outline): Ditto.
	(declare_one_free_variable): Ditto.

2014-10-17  Marek Polacek  <polacek@redhat.com>

	* c-opts.c (c_common_post_options): Set warn_implicit_int.
	* c.opt (Wimplicit-int): Initialize to -1.

2014-10-16  Andrew MacLeod  <amacleod@redhat.com>

	* c-pragma.c: Adjust include files.
	* c-semantics.c: Likewise.

2014-10-16  DJ Delorie  <dj@redhat.com>

	* c-cppbuiltin.c (cpp_atomic_builtins): Don't assume pointers are
	multiples of bytes.

2014-10-14  Jason Merrill  <jason@redhat.com>

	PR c++/63455
	* c-common.h (CPP_PREPARSED_EXPR): New.
	(N_CP_TTYPES): Adjust.

2014-10-15  Marek Polacek  <polacek@redhat.com>

	* c-opts.c (c_common_init_options): Make -std=gnu11 the default for C.

2014-10-14  DJ Delorie  <dj@redhat.com>

	* c-pretty-print.c (pp_c_integer_constant): Check for all __intN
	types, not just __int128.
	* c-cppbuiltin.c (c_cpp_builtins): Add builtins for all __intN
	types, not just __int128.
	(cpp_atomic_builtins): Round pointer sizes up.
	(type_suffix): Use type precision, not specific types.
	* c-common.c (c_common_reswords): Remove __int128 special case.
	(c_common_type_for_size): Check for all __intN types, not just
	__int128.
	(c_common_type_for_mode): Likewise.
	(c_common_signed_or_unsigned_type): Likewise.
	(c_build_bitfield_integer_type): Likewise.
	(c_common_nodes_and_builtins): Likewise.
	(keyword_begins_type_specifier): Likewise.
	* c-common.h (rid): Remove RID_INT128 and add RID_INT_N_* for all
	__intN variants.

2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>

	* c-common.c: Use hash_table instead of hashtab.

2014-10-06  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* c-cppbuiltin.c: Move __cpp_attribute_deprecated to the
	C++11 section.

2014-10-03  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54427
	PR c++/57198
	PR c++/58845
	* c-common.c (warn_logical_operator): Punt for vectors.

2014-10-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Implement SD-6: SG10 Feature Test Recommendations
	* c-cppbuiltin.c (c_cpp_builtins()): Define language feature
	macros and the __has_header macro.

2014-09-30  Jason Merrill  <jason@redhat.com>

	* c-common.h (enum rid): Add RID_IS_TRIVIALLY_ASSIGNABLE and
	RID_IS_TRIVIALLY_CONSTRUCTIBLE.
	* c-common.c (c_common_reswords): Add __is_trivially_copyable.

	* c-common.h (enum rid): Add RID_IS_TRIVIALLY_COPYABLE.
	* c-common.c (c_common_reswords): Add __is_trivially_copyable.

	* c-common.h (enum rid): Remove RID_IS_CONVERTIBLE_TO.
	* c-common.c (c_common_reswords): Remove __is_convertible_to.

2014-09-24  Marek Polacek  <polacek@redhat.com>

	PR c/61405
	PR c/53874
	* c-common.h (struct c_common_resword): Don't define CPP_KEYWORD.

2014-09-23  Andi Kleen  <ak@linux.intel.com>

	* c-common.c (handle_no_reorder_attribute): New function.
	(c_common_attribute_table): Add no_reorder attribute.

2014-09-22  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define
	__LIBGCC_*_EXCESS_PRECISION__ macros for supported floating-point
	modes.

2014-09-18  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_*_FUNC_EXT__
	for supported floating-point modes.

2014-09-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wpsabi): Use LangEnabledBy.
	* c-opts.c (c_common_handle_option): Do not handle here.

2014-09-12  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_HAS_%s_MODE__
	macros for floating-point modes.

2014-09-11  Marc Glisse  <marc.glisse@inria.fr>

	PR target/58757
	* c-cppbuiltin.c (builtin_define_float_constants): Correct
	__*_DENORM_MIN__ without denormals.

2014-09-10  Jakub Jelinek  <jakub@redhat.com>

	* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
	ubsan_instrument_vla, ubsan_instrument_return): Adjust
	ubsan_create_data callers.
	(ubsan_instrument_bounds): Don't emit UBSAN_BOUNDS at all if
	index is constant or BIT_AND_EXPR with constant mask and is
	small enough for the bound.
	* c-gimplify.c (ubsan_walk_array_refs_r): For ADDR_EXPR of
	ARRAY_REF, make sure the inner ARRAY_REF is not walked again.

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt: Add CppReason to various flags.
	(Wdate-time): Re-sort.
	* c-common.c: Include c-common.h earlier.
	(struct reason_option_codes_t): Delete.
	(c_option_controlling_cpp_error): Prefix global type and struct
	with cpp_.

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt	(Wnormalized): New.
	(Wnormalized=): Use Enum and Reject Negative.
	* c-opts.c (c_common_handle_option): Do not handle Wnormalized here.

2014-09-08  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define macros for mantissa
	digits of floating-point modes if -fbuilding-libgcc.

2014-09-05  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (c_cpp_builtins): Also define
	__LIBGCC_EH_TABLES_CAN_BE_READ_ONLY__,
	__LIBGCC_EH_FRAME_SECTION_NAME__, __LIBGCC_JCR_SECTION_NAME__,
	__LIBGCC_CTORS_SECTION_ASM_OP__, __LIBGCC_DTORS_SECTION_ASM_OP__,
	__LIBGCC_TEXT_SECTION_ASM_OP__, __LIBGCC_INIT_SECTION_ASM_OP__,
	__LIBGCC_INIT_ARRAY_SECTION_ASM_OP__,
	__LIBGCC_STACK_GROWS_DOWNWARD__,
	__LIBGCC_DONT_USE_BUILTIN_SETJMP__,
	__LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__,
	__LIBGCC_DWARF_FRAME_REGISTERS__,
	__LIBGCC_EH_RETURN_STACKADJ_RTX__, __LIBGCC_JMP_BUF_SIZE__,
	__LIBGCC_STACK_POINTER_REGNUM__ and
	__LIBGCC_VTABLE_USES_DESCRIPTORS__ for -fbuilding-libgcc.
	(builtin_define_with_value): Handle backslash-escaping in string
	macro values.

2014-09-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/63148
	* c-format.c (check_format_arg): Properly handle
	effectively signed POINTER_PLUS_EXPR offset.

2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wc90-c99-compat,Wc++-compat,Wcomment,Wendif-labels,
	Winvalid-pch,Wlong-long,Wmissing-include-dirs,Wmultichar,Wpedantic,
	(Wdate-time,Wtraditional,Wundef,Wvariadic-macros): Add CPP, Var
	and Init.
	* c-opts.c (c_common_handle_option): Do not handle here.
	(sanitize_cpp_opts): Likewise.
	* c-common.c (struct reason_option_codes_t): Handle
	CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.

2014-09-03  Marek Polacek  <polacek@redhat.com>

	* c.opt (Wlogical-not-parentheses): Enable by -Wall.

2014-09-02  Jakub Jelinek  <jakub@redhat.com>
	    Balaji V. Iyer  <balaji.v.iyer@intel.com>
	    Igor Zamyatin  <igor.zamyatin@intel.com>

	* c-cilkplus.c (cilk_for_number_of_iterations): New function.
	* c-common.c (c_common_reswords): Added _Cilk_for.
	* c-common.h (enum rid): Added RID_CILK_FOR.
	(cilk_for_number_of_iterations): Add declaration.
	* c-omp.c (c_finish_omp_for): Added checks for CILK_SIMD and
	CILK_FOR.
	* c-pragma.c (init_pragma): Register "grainsize" pragma.
	* c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_GRAINSIZE.

2014-08-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wbuiltin-macro-redefined,Wdeprecated,Wendif-labels,
	Winvalid-pch,Wliteral-suffix,Wmissing-include-dirs,Wtrigraphs,
	Wundef): Use CPP, Var and Init.
	* c-opts.c (c_common_handle_option): Do not handle the above flags here.

2014-08-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wbuiltin-macro-redefined): Use CPP, Var and Init.
	* c-opts.c (c_common_handle_option): Do not handle here.

2014-08-25  Jason Merrill  <jason@redhat.com>

	* c.opt: Change -std=c++1y and -std=gnu++1y to be aliases for
	-std=c++14 and -std=gnu++14, rather than the reverse.
	* c-opts.c (c_common_handle_option): Change OPT_std_c__1y and
	OPT_std_gnu__1y to OPT_std_c__14 and OPT_std_gnu__14.
	* c-common.h (cxx_dialect): Remove cxx1y.

2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* c-common.h (enum cxx_dialect): Add cxx14.
	* c-opts.c (set_std_cxx1y): Rename to set_std_cxx14; Use cxx14.
	* c-ubsan.c (ubsan_instrument_shift): Change comment and logic from
	cxx_dialect == cxx11 || cxx_dialect == cxx1y to cxx_dialect >= cxx11.

2014-08-22  Jason Merrill  <jason@redhat.com>

	* c.opt (std=gnu++17): Fix alias.

2014-08-22  Marek Polacek  <polacek@redhat.com>

	PR c++/62199
	* c-common.c (warn_logical_not_parentheses): Don't check LHS.  Don't
	check for vector types.  Drop LHS argument.
	* c-common.h (warn_logical_not_parentheses): Adjust.

2014-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wcomment): Use CPP, Var and LangEnabledBy.
	(Wmultichar): Likewise.
	(Wdate-time): Use C-family languages instead of Common. Use CPP
	and Var.
	* c-opts.c (c_common_handle_option): Do not handle the above
	options here.
	(sanitize_cpp_opts): Likewise.

2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/44054
	* c-opts.c: Include tree-diagnostics.h.
	(c_diagnostic_finalizer): New.
	(c_common_initialize_diagnostics): Use it.

2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR preprocessor/51303
	* c-common.c (struct reason_option_codes_t option_codes):
	Add CPP_W_MISSING_INCLUDE_DIRS. Sort alphabetically.

2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/60975
	PR c/53063
	* c.opt (Wvariadic-macros): Use CPP and LangEnabledBy.
	* c-opts.c (c_common_handle_option): Call cpp_handle_option_auto.
	(c_common_post_options): Call init_global_opts_from_cpp.
	(sanitize_cpp_opts): Do not handle Wvariadic-macros here.

2014-08-19  Marek Polacek  <polacek@redhat.com>

	PR c++/62153
	* c-common.c (maybe_warn_bool_compare): New function.
	* c-common.h (maybe_warn_bool_compare): Declare.
	* c.opt (Wbool-compare): New option.

2014-08-19  Marek Polacek  <polacek@redhat.com>

	* c.opt (Wc99-c11-compat): New option.

2014-08-19  Marek Polacek  <polacek@redhat.com>

	* c-opts.c (sanitize_cpp_opts): Make warn_long_long be set according
	to warn_c90_c99_compat.
	* c.opt (Wc90-c99-compat, Wdeclaration-after-statement): Initialize
	to -1.

2014-08-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	    Steven Bosscher  <steven@gcc.gnu.org>

	PR c/52952
	* c-format.c: Add extra_arg_loc and format_string_loc to struct
	format_check_results.
	(check_function_format): Use true and add comment for boolean
	argument.
	(finish_dollar_format_checking): Use explicit location when warning.
	(check_format_info): Likewise.
	(check_format_arg): Set extra_arg_loc and format_string_loc.
	(check_format_info_main): Use explicit location when warning.
	(check_format_types): Pass explicit location.
	(format_type_warning): Likewise.

2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/44054
	* c-format.c: Handle Fortran flags.

2014-08-12  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR other/61962
	* array-notation-common.c (find_rank): Added handling for other
	types of references.

2014-08-10  Marek Polacek  <polacek@redhat.com>

	PR c/51849
	* c-opts.c (sanitize_cpp_opts): Pass warn_c90_c99_compat to libcpp.
	* c.opt (Wc90-c99-compat): Add option.

2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>

	* c-gimplify.c, cilk.c: Remove includes of pointer-set.h.

2014-08-03  Marek Polacek  <polacek@redhat.com>

	* c-common.c (check_case_value):  Add location_t parameter.  Use it.
	(c_add_case_label): Pass loc to check_case_value.

2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>

	* cilk.c: Use hash_map instead of pointer_map.

2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>

	* c-gimplify.c: Use hash_set instead of pointer_set.

2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR middle-end/61455
	* array-notation-common.c (extract_array_notation_exprs): Handling
	of DECL_EXPR added.

2014-08-01  Jakub Jelinek  <jakub@redhat.com>

	* c-common.h (min_align_of_type): Removed prototype.
	* c-common.c (min_align_of_type): Removed.
	* c-ubsan.h (ubsan_maybe_instrument_reference,
	ubsan_maybe_instrument_member_call): New prototypes.
	* c-ubsan.c: Include stor-layout.h and builtins.h.
	(ubsan_maybe_instrument_reference_or_call,
	ubsan_maybe_instrument_reference, ubsan_maybe_instrument_call): New
	functions.

2014-07-31  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/60517
	* c.opt (-Wreturn-local-addr): Move to common.opt.

2014-07-30  Jason Merrill  <jason@redhat.com>

	PR c++/61659
	PR c++/61687
	Revert:
	* c.opt (-fuse-all-virtuals): New.

2014-07-30  Tom Tromey  <tromey@redhat.com>

	PR c/59855
	* c.opt (Wdesignated-init): New option.
	* c-common.c (c_common_attribute_table): Add "designated_init".
	(handle_designated_init): New function.

2014-07-24  Marek Polacek  <polacek@redhat.com>

	PR c/57653
	* c-opts.c (c_finish_options): If -imacros is in effect, return.

2014-07-16  Dodji Seketeli  <dodji@redhat.com>

	PR preprocessor/60723 - missing system-ness marks for macro tokens
	* c-ppoutput.c (struct print::prev_was_system_token): New data
	member.
	(init_pp_output): Initialize it.
	(maybe_print_line_1, maybe_print_line, print_line_1, print_line)
	(do_line_change): Return a flag saying if a line marker was
	emitted or not.
	(scan_translation_unit): Detect if the system-ness of the token we
	are about to emit is different from the one of the previously
	emitted token.  If so, emit a line marker.  Avoid emitting useless
	adjacent line markers.  Avoid emitting line markers for tokens
	originating from the expansion of built-in macros.
	(scan_translation_unit_directives_only): Adjust.

2014-07-15  Marek Polacek  <polacek@redhat.com>

	* c-ubsan.c (ubsan_instrument_bounds): Don't instrument if
	TYPE_MAX_VALUE is NULL.

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

	PR middle-end/61294
	* c.opt (Wmemset-transposed-args): New warning.

2014-07-10  Jason Merrill  <jason@redhat.com>

	PR c++/61659
	PR c++/61687
	* c.opt (-fuse-all-virtuals): New.

2014-07-09  Richard Biener  <rguenther@suse.de>

	PR c-family/61741
	* c-gimplify.c (c_gimplify_expr): Gimplify self-modify expressions
	using unsigned arithmetic if overflow does not wrap instead of
	if overflow is undefined.

2014-07-06  Marek Polacek  <polacek@redhat.com>

	PR c/6940
	* c.opt (Wsizeof-array-argument): New option.

2014-07-03  Jakub Jelinek  <jakub@redhat.com>

	* c-ada-spec.c (dump_ada_nodes): Don't call qsort if
	comments->count <= 1, as comments->entries might be NULL.

2014-07-01  Marek Polacek  <polacek@redhat.com>

	* c.opt (Wint-conversion): New option.

2014-07-01  Marek Polacek  <polacek@redhat.com>

	PR c/58286
	* c.opt (Wincompatible-pointer-types): New option.

2014-06-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51400
	* c-common.c (handle_noreturn_attribute, handle_const_attribute):
	Do not discard TYPE_QUALS of type.

2014-06-26  Jason Merrill  <jason@redhat.com>

	* c-common.h (enum cxx_dialect): Add cxx1z.
	* c.opt (std=c++1z, std=c++17, std=gnu++1z, std=gnu++17): New.
	* c-opts.c (c_common_handle_option, set_std_cxx1z): Handle it.

2014-06-26  Teresa Johnson  <tejohnson@google.com>

	* c-common.h (get_dump_info): Declare.
	* c-gimplify.c (c_genericize): Use saved dump files.
	* c-opts.c (c_common_parse_file): Begin and end dumps
	once around parsing invocation.
	(get_dump_info): New function.

2014-06-23  Marek Polacek  <polacek@redhat.com>
	    Andrew MacLeod  <amacleod@redhat.com>

	PR c/61553
	* c-common.c (get_atomic_generic_size): Don't segfault if the
	type doesn't have a size.

2014-06-20  Marek Polacek  <polacek@redhat.com>

	* c-gimplify.c: Include "c-ubsan.h" and "pointer-set.h".
	(ubsan_walk_array_refs_r): New function.
	(c_genericize): Instrument array bounds.
	* c-ubsan.c: Include "internal-fn.h".
	(ubsan_instrument_division): Mark instrumented arrays as having
	side effects.  Adjust ubsan_type_descriptor call.
	(ubsan_instrument_shift): Likewise.
	(ubsan_instrument_vla): Adjust ubsan_type_descriptor call.
	(ubsan_instrument_bounds): New function.
	(ubsan_array_ref_instrumented_p): New function.
	(ubsan_maybe_instrument_array_ref): New function.
	* c-ubsan.h (ubsan_instrument_bounds): Declare.
	(ubsan_array_ref_instrumented_p): Declare.
	(ubsan_maybe_instrument_array_ref): Declare.

2014-06-20  Hale Wang  <hale.wang@arm.com>

	PR lto/61123
	* c.opt (fshort-enums): Add to LTO.
	* c.opt (fshort-wchar): Likewise.

2014-06-16  Marek Polacek  <polacek@redhat.com>

	PR c/60439
	* c.opt (Wswitch-bool): Add Var.

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

	PR middle-end/61486
	* c-omp.c (c_omp_split_clauses): Don't crash on firstprivate in
	#pragma omp target teams or
	#pragma omp {,target }teams distribute simd.

2014-06-12  Jason Merrill  <jason@redhat.com>

	* c.opt (Wabi=, fabi-compat-version): New.
	* c-opts.c (c_common_handle_option): Handle -Wabi=.
	(c_common_post_options): Handle flag_abi_compat_version default.
	Disallow -fabi-compat-version=1.
	* c-common.h (abi_version_crosses): New.

2014-06-11  Jan Hubicka  <hubicka@ucw.cz>

	* c-common.c (handle_section_attribute): Update handling for
	section names that are no longer trees.

2014-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/60928
	* c-pragma.c (omp_pragmas_simd): Move PRAGMA_OMP_TASK...
	(omp_pragmas): ... back here.

2014-06-05  Marek Polacek  <polacek@redhat.com>

	PR c/49706
	* c-common.c (warn_logical_not_parentheses): New function.
	* c-common.h (warn_logical_not_parentheses): Declare.
	* c.opt (Wlogical-not-parentheses): New option.

2014-06-04  Marek Polacek  <polacek@redhat.com>

	PR c/30020
	* c-common.c (check_case_bounds): Add location parameter.
	Use it.
	(c_add_case_label): Pass loc to check_case_bounds.

2014-06-03  Marek Polacek  <polacek@redhat.com>

	PR c/60439
	* c.opt (Wswitch-bool): New option.

2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>

	* c-common.h (c_omp_sharing_predetermined, c_omp_remap_decl):
	Remove prototypes.
	(record_types_used_by_current_var_decl): Move prototype to where
	it belongs.

	* c-common.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
	(DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
	(DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.

2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	* c-common.h (CTI_VOID_ZERO, void_zero_node): Delete.
	* c-common.c (c_common_nodes_and_builtins): Don't initialize
	void_zero_node.
	* c-pretty-print.c (pp_c_void_constant): New function.
	(c_pretty_printer::constant, c_pretty_printer::primary_expression)
	(c_pretty_printer::expression): Handle VOID_CST.
	* cilk.c (extract_free_variables): Likewise.
	* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift)
	(ubsan_instrument_vla): Use void_node instead of void_zero_node.

2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>

	* c-common.h (sorted_fields_type): Remove variable_size GTY attribute.
	* c-pragma.c (push_alignment): Adjust.
	(handle_pragma_push_options): Likewise.

2014-05-09  Marek Polacek  <polacek@redhat.com>

	PR c/50459
	* c-common.c (check_user_alignment): Return -1 if alignment is error
	node.
	(handle_aligned_attribute): Don't call default_conversion on
	FUNCTION_DECLs.
	(handle_vector_size_attribute): Likewise.
	(handle_tm_wrap_attribute): Handle case when wrap_decl is error node.
	(handle_sentinel_attribute): Call default_conversion and allow even
	integral types as an argument.

2014-05-08  Marek Polacek  <polacek@redhat.com>

	PR c/61053
	* c-common.c (min_align_of_type): New function factored out from...
	(c_sizeof_or_alignof_type): ...here.
	* c-common.h (min_align_of_type): Declare.

2014-05-08  Marek Polacek  <polacek@redhat.com>

	PR c/61077
	* c-common.c (check_main_parameter_types): Warn for _Atomic-qualified
	parameter type of main.

2014-05-07  DJ Delorie  <dj@redhat.com>

	* c-cppbuiltin.c (print_bits_of_hex): New.
	(builtin_define_type_minmax): Print values using hex so as not to
	require a pre-computed list of string values.

2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
	    Mike Stump  <mikestump@comcast.net>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* c-ada-spec.c: Include wide-int.h.
	(ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Remove.
	(dump_generic_ada_node): Use wide-int interfaces.
	* c-common.c: Include wide-int-print.h.
	(shorten_compare): Use wide-int interfaces and tree_int_cst_lt.
	(pointer_int_sum): Use wide-int interfaces.
	(c_common_nodes_and_builtins): Use make_int_cst.
	(match_case_to_enum_1): Use tree_fits_uhwi_p and tree_fits_shwi_p.
	(handle_alloc_size_attribute): Use wide-int interfaces.
	(get_nonnull_operand): Likewise.
	* c-format.c (get_constant): Use tree_fits_uhwi_p.
	* c-lex.c: Include wide-int.h.
	(narrowest_unsigned_type): Take a widest_int rather than two
	HOST_WIDE_INTs.
	(narrowest_signed_type): Likewise.
	(interpret_integer): Update accordingly.  Use wide-int interfaces.
	(lex_charconst): Use wide-int interfaces.
	* c-pretty-print.c: Include wide-int.h.
	(pp_c_integer_constant): Use wide-int interfaces.
	* cilk.c (declare_one_free_variable): Use tree_int_cst_lt instead of
	INT_CST_LT_UNSIGNED.

2014-05-06  Richard Biener  <rguenther@suse.de>

	* c-opts.c (c_common_post_options): For -freestanding,
	-fno-hosted and -fno-builtin disable pattern recognition
	if not enabled explicitely.

2014-05-02  Marek Polacek  <polacek@redhat.com>

	* c.opt (Wsizeof-pointer-memaccess): Describe option.

2014-05-01  Marek Polacek  <polacek@redhat.com>

	PR c/43245
	* c.opt (Wdiscarded-qualifiers): Add.

2014-04-30  Marek Polacek  <polacek@redhat.com>

	* c-ubsan.c (ubsan_instrument_division): Handle REAL_TYPEs.  Perform
	INT_MIN / -1 sanitization only for integer types.

2014-04-25  Marek Polacek  <polacek@redhat.com>

	PR c/18079
	* c-common.c (handle_noinline_attribute): Warn if the attribute
	conflicts with always_inline attribute.
	(handle_always_inline_attribute): Warn if the attribute conflicts
	with noinline attribute.

2014-04-25  Marek Polacek  <polacek@redhat.com>

	PR c/60156
	* c-common.c (check_main_parameter_types): Warn about variadic main.

2014-04-24  Mike Stump  <mikestump@comcast.net>

	* c.opt (Wshadow-ivar): Default to on.

2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>

	* c.opt (Wshadow-ivar, flocal-ivars, fivar-visibility): Add.

2014-04-23  Marek Polacek  <polacek@redhat.com>

	* c-common.c (handle_tm_wrap_attribute): Tweak error message.

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

	PR sanitizer/60275
	* c-ubsan.c (ubsan_instrument_return): Return __builtin_trap ()
	if flag_sanitize_undefined_trap_on_error.
	(ubsan_instrument_division, ubsan_instrument_shift,
	ubsan_instrument_vla): Likewise.  Use __ubsan_handle_*_abort ()
	if !flag_sanitize_recover.

2014-04-22  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/43622
	* c-common.c (registered_builtin_types): Make non-static.
	* c-common.h (registered_builtin_types): Declare.

2014-04-14  Richard Biener  <rguenther@suse.de>
	Marc Glisse  <marc.glisse@inria.fr>

	PR c/60819
	* c-common.c (convert_vector_to_pointer_for_subscript): Properly
	apply may-alias the scalar pointer type when applicable.

2014-04-12  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR middle-end/60467
	* cilk.c (cilk_set_spawn_marker): Remove FUNCTION_DECL
	as possible argument for Cilk_spawn.

2014-04-11  Tobias Burnus  <burnus@net-b.de>

	PR c/60194
	* c.opt (Wformat-signedness): Add
	* c-format.c(check_format_types): Use it.

2014-04-11  Jason Merrill  <jason@redhat.com>

	PR c++/57926
	* c-common.c (sync_resolve_size, get_atomic_generic_size): Call
	default_conversion for an array argument.

2014-04-08  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/60745
	* c-ubsan.c: Include asan.h.
	(ubsan_instrument_return): Call initialize_sanitizer_builtins.

2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>

	* c.opt (Wnon-virtual-dtor): Auto set when Weffc++.

2014-04-02  Marek Polacek  <polacek@redhat.com>

	* c-common.h (c_expand_expr): Remove declaration.

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

	PR c++/60689
	* c-common.c (add_atomic_size_parameter): When creating new
	params vector, push the size argument first.

2014-03-26  Jakub Jelinek  <jakub@redhat.com>

	* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
	ubsan_instrument_vla, ubsan_instrument_return): Adjust
	ubsan_create_data callers.

2014-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR debug/60603
	* c-opts.c (c_finish_options): Restore cb_file_change call to
	<built-in>.

2014-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/36282
	* c-pragma.c (apply_pragma_weak): Only look at
	TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) if
	DECL_ASSEMBLER_NAME_SET_P (decl).
	(maybe_apply_pending_pragma_weaks): Exit early if
	vec_safe_is_empty (pending_weaks) rather than only when
	!pending_weaks.
	(maybe_apply_pragma_weak): Likewise.  If !DECL_ASSEMBLER_NAME_SET_P,
	set assembler name back to NULL afterwards.

2014-03-11  Jason Merrill  <jason@redhat.com>

	* c.opt: Add -std=gnu++14.

2014-03-11  Ian Bolton  <ian.bolton@arm.com>

	* c-opts.c (c_common_post_options): Don't override
	-ffp-contract=fast if unsafe-math-optimizations is on.

2014-03-08  Paulo Matos  <paulo@matos-sorge.com>

	* c.opt: Enable LTO FE for fshort-double.

2014-03-07  Jason Merrill  <jason@redhat.com>

	* c.opt: Add -std=c++14.

2014-03-06  Marek Polacek  <polacek@redhat.com>

	PR c/60197
	* cilk.c (contains_cilk_spawn_stmt): New function.
	(contains_cilk_spawn_stmt_walker): Likewise.
	(recognize_spawn): Give error on invalid use of _Cilk_spawn.
	* c-common.h (contains_cilk_spawn_stmt): Add declaration.

2014-03-03  Jakub Jelinek  <jakub@redhat.com>

	* c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_SIMD.
	(init_pragma): Call cpp_register_deferred_pragma for PRAGMA_CILK_SIMD
	even when flag_preprocess_only.

2014-02-26  Jason Merrill  <jason@redhat.com>

	PR c++/59231
	PR c++/11586
	* c-common.c (shorten_compare): Don't check
	c_inhibit_evaluation_warnings.

2014-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/37743
	* c-common.c (c_common_nodes_and_builtins): When initializing
	c_uint{16,32,64}_type_node, also set corresponding
	uint{16,32,64}_type_node to the same value.

	PR c++/60267
	* c-pragma.c (init_pragma): Don't call cpp_register_deferred_pragma
	for PRAGMA_IVDEP if flag_preprocess_only.

2014-02-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/60101
	* c-common.c (merge_tlist): If copy is true, call new_tlist,
	if false, add ADD itself, rather than vice versa.
	(verify_tree): For COND_EXPR, don't call merge_tlist with non-zero
	copy.  For SAVE_EXPR, only call merge_tlist once.

2014-02-08  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/60092
	* c-common.c (handle_alloc_size_attribute): Use tree_fits_uhwi_p
	and tree_to_uhwi.
	(handle_alloc_align_attribute, handle_assume_aligned_attribute): New
	functions.
	(c_common_attribute_table): Add alloc_align and assume_aligned
	attributes.

2014-02-06  Marek Polacek  <polacek@redhat.com>

	PR c/60087
	* c-common.c (warn_for_sign_compare): Call warning_at with location
	instead of warning.

2014-02-05  Marek Polacek  <polacek@redhat.com>

	PR c/53123
	* c-omp.c (c_finish_omp_atomic): Remove unreachable return
	statement.

2014-02-04  Marek Polacek  <polacek@redhat.com>

	PR c/60036
	* c-common.c (conversion_warning): Unwrap C_MAYBE_CONST_EXPR and/or
	SAVE_EXPR.

2014-02-03  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/53017
	PR c++/59211
	* c-common.c (handle_aligned_attribute, handle_alloc_size_attribute,
	handle_vector_size_attribute, handle_nonnull_attribute): Call
	default_conversion on the attribute argument.
	(handle_nonnull_attribute): Increment the argument number.

2014-01-31  Marek Polacek  <polacek@redhat.com>

	PR c/59963
	* c-common.c (add_atomic_size_parameter): Pass vNULL to
	build_function_call_vec.
	(resolve_overloaded_builtin): Likewise.
	* c-common.h (build_function_call_vec): Adjust declaration.

2014-01-30  Marek Polacek  <polacek@redhat.com>

	PR c/59940
	* c-common.h (unsafe_conversion_p): Adjust declaration.
	(warnings_for_convert_and_check): Likewise.
	(convert_and_check): Likewise.
	* c-common.c (unsafe_conversion_p): Add location parameter.  Call
	expansion_point_location_if_in_system_header on it.
	(warnings_for_convert_and_check): Add location parameter.  Call
	expansion_point_location_if_in_system_header on it.  Use it.
	(convert_and_check): Add location parameter.  Use it.
	(conversion_warning): Likewise.
	(c_add_case_label): Adjust convert_and_check calls.
	(scalar_to_vector): Adjust unsafe_conversion_p calls.

2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-common.c (c_define_builtins): Replaced flag_enable_cilkplus with
	flag_cilkplus.
	* c-pragma.c (init_pragma): Likewise.
	* c.opt: Likewise.

2014-01-23  Marek Polacek  <polacek@redhat.com>

	PR c/59846
	* c-common.c (shorten_compare): Add location_t parameter.
	* c-common.h (shorten_binary_op): Adjust declaration.

2014-01-23  Marek Polacek  <polacek@redhat.com>

	PR c/58346
	* c-common.c (pointer_to_zero_sized_aggr_p): New function.
	* c-common.h: Declare it.

2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.h (dump_ada_specs): Revert prototype change.
	* c-ada-spec.c (dump_ads): Likewise.
	(cpp_check): Likewise.
	(dump_ada_specs): Likewise.

2014-01-15  Laurent Alfonsi  <laurent.alfonsi@st.com>

	PR c++/49718
	* c-common.c (handle_no_instrument_function_attribute): Allow
	no_instrument_function attribute in class member
	definition/declaration.

2014-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/58943
	* c-omp.c (c_finish_omp_atomic): Set in_late_binary_op around
	build_modify_expr with non-NOP_EXPR opcode.  Handle return from it
	being COMPOUND_EXPR.
	(c_finish_omp_for): Handle incr being COMPOUND_EXPR with first
	operand a SAVE_EXPR and second MODIFY_EXPR.

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

	PR target/58115
	* c-pch.c (c_common_write_pch): Call
	prepare_target_option_nodes_for_pch.

2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	Update copyright years

2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* array-notation-common.c, c-cilkplus.c: Use the standard form for
	the copyright notice.

2013-12-28  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (print_constructor): New function.
	(print_destructor): Retrieve the origin of the destructor.
	(print_ada_declaration): Revamp handling of constructors/destructors.

2013-12-23  Stuart Hastings  <stuart@apple.com>
	    Bill Maddox  <maddox@google.com>
	    Jason Merrill  <jason@redhat.com>

	* c.opt: Add -fdeclone-ctor-dtor.
	* c-opts.c (c_common_post_options): Default to on iff -Os.

2013-12-18  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-common.c (c_common_attribute_table): Added "cilk simd function"
	attribute.
	* c-pragma.h (enum pragma_cilk_clause): Remove.
	(enum pragma_omp_clause):  Added the following fields:
	PRAGMA_CILK_CLAUSE_NOMASK, PRAGMA_CILK_CLAUSE_MASK,
	PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_NONE,
	PRAGMA_CILK_CLAUSE_LINEAR, PRAGMA_CILK_CLAUSE_PRIVATE,
	PRAGMA_CILK_CLAUSE_FIRSTPRIVATE, PRAGMA_CILK_CLAUSE_LASTPRIVATE,
	PRAGMA_CILK_CLAUSE_UNIFORM.


2013-12-11  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* cilk.c (cilk_outline): Made this function non-static.
	(gimplify_cilk_spawn): Removed pre_p and post_p arguments.
	(create_cilk_wrapper): Added a new parameter: a function pointer.
	(c_install_body_w_frame_cleanup): Remove
	(extract_free_variables): Added VEC_INIT_EXPR and CONSTRUCTOR case.
	* c-common.h (cilk_outline): New prototype.
	(gimplify_cilk_spawn): Removed two parameters.
	(cilk_install_body_with_frame_cleanup): New prototype.
	* c-gimplify.c (c_gimplify_expr): Added MODIFY_EXPR, CALL_EXPR and
	CILK_SPAWN_STMT case.

2013-12-11  Bernd Schmidt  <bernds@codesourcery.com>

	* c-common.c (c_fully_fold_internal): Handle ADDR_SPACE_CONVERT_EXPR.

	* c-common.h (enum c_tree_index): Remove CTI_INT_ARRAY_TYPE.
	(int_array_type_node): Remove.
	* c-common.c (c_common_nodes_and_builtins): Don't build it.

2013-12-05  Marek Polacek  <polacek@redhat.com>

	PR c/52023
	* c-common.c (c_sizeof_or_alignof_type): Move a declaration into
	[ADJUST_FIELD_ALIGN].

2013-12-04  Joseph Myers  <joseph@codesourcery.com>

	PR c/52023
	* c-common.c (c_sizeof_or_alignof_type): Add parameter min_alignof
	and check field alignment if set.
	* c-common.h (c_sizeof_or_alignof_type): Update prototype.
	(c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.

2013-12-04  Jakub Jelinek  <jakub@redhat.com>
	    Marek Polacek  <polacek@redhat.com>

	* c-gimplify.c (c_gimplify_expr): If doing the integer-overflow
	sanitization, call unsigned_type_for only when !TYPE_OVERFLOW_WRAPS.

2013-11-29   H.J. Lu  <hongjiu.lu@intel.com>

	PR c/59309
	* cilk.c (gimplify_cilk_spawn): Properly handle function without
	arguments.

2013-11-29  Jakub Jelinek  <jakub@redhat.com>

	PR c/59280
	* c-common.c (get_priority): If TREE_VALUE (args) is IDENTIFIER_NODE,
	goto invalid.  If it is error_mark_node, don't issue further
	diagnostics.

2013-11-28  Sergey Ostanevich  <sergos.gnu@gmail.com>

	* c.opt (Wopenmp-simd): New.

2013-11-22  Jakub Jelinek  <jakub@redhat.com>

	* c-ubsan.h (ubsan_instrument_return): New prototype.
	* c-ubsan.c (ubsan_instrument_return): New function.

2013-11-22  Andrew MacLeod  <amacleod@redhat.com>

	* c-common.c: Add required include files from gimple.h.
	* c-gimplify.c: Likewise
	* cilk.c: Likewise

2013-11-22  David Malcolm  <dmalcolm@redhat.com>

	* c-common.c (unsafe_conversion_p): Remove use of
	EXPR_LOC_OR_HERE macro.
	(conversion_warning): Likewise.
	(warnings_for_convert_and_check): Likewise.
	(warn_for_collisions_1): Likewise.
	(shorten_compare): Likewise, and remove use of in_system_header
	macro, using the location from the former.
	* c-lex.c (dump_one_header): Remove use of input_filename macro.
	(cb_def_pragma): Remove use of in_system_header macro.
	(lex_string): Likewise.
	* c-pragma.c (handle_pragma_float_const_decimal64): Likewise.

2013-11-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
	    Mike Stump  <mikestump@comcast.net>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* c-ada-spec.c (is_simple_enum): Use tree_to_shwi and tree_to_uhwi
	instead of TREE_INT_CST_LOW, in cases where there is a protecting
	tree_fits_shwi_p or tree_fits_uhwi_p.
	(dump_generic_ada_node): Likewise.
	* c-format.c (check_format_arg): Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.

2013-11-20  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* c-common.c (check_function_arguments_recurse): Use tree_to_uhwi.

2013-11-19  Joshua J Cogliati  <jrincayc@yahoo.com>

	PR c/53001
	* c-common.c (unsafe_conversion_p): Make this function
	return an enumeration with more detail.
	(conversion_warning): Use the new return type of
	unsafe_conversion_p to separately warn either about conversions
	that lower floating point number precision or about the other
	kinds of conversions.
	* c-common.h (enum conversion_safety): New enumeration.
	(unsafe_conversion_p): switching return type to
	conversion_safety enumeration.
	* c.opt: Adding new warning -Wfloat-conversion and
	enabling it with -Wconversion.

2013-11-19  Basile Starynkevitch  <basile@starynkevitch.net>

	* c-opts.c: Include plugin.h.
	(cb_file_change): Invoke plugin event PLUGIN_INCLUDE_FILE.

2013-11-19  Marek Polacek  <polacek@redhat.com>

	* c-ubsan.c (ubsan_instrument_division): Adjust ubsan_create_data
	call.
	(ubsan_instrument_shift): Likewise.
	(ubsan_instrument_vla): Likewise.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-common.c (convert_vector_to_pointer_for_subscript): Remove
	cast to unsigned type.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-common.c (fold_offsetof_1): Use tree_to_uhwi rather than
	tree_low_cst.
	(complete_array_type): Update comment to refer to tree_to_[su]hwi
	rather than tree_low_cst.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-common.c, c-cppbuiltin.c: Replace tree_low_cst (..., 1) with
	tree_to_uhwi throughout.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-common.c, c-format.c, c-omp.c, c-pretty-print.c: Replace
	tree_low_cst (..., 0) with tree_to_shwi throughout.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-ada-spec.c, c-common.c, c-pretty-print.c: Replace
	host_integerp (..., 1) with tree_fits_uhwi_p throughout.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-ada-spec.c, c-common.c, c-format.c, c-pretty-print.c: Replace
	host_integerp (..., 0) with tree_fits_shwi_p throughout.

2013-11-15  Aldy Hernandez  <aldyh@redhat.com>

	* c-cilkplus.c: New file.
	* c-common.c (readonly_error): Add location argument.
	* c-common.h (readonly_error): Same.
	(c_finish_cilk_clauses): Protoize.
	(c_check_cilk_loop): Same.
	c-omp.c (c_finish_omp_for): Handle CILK_SIMD nodes.
	Do not fail on error_mark_node.
	Abstract increment canonicalization to here...
	(c_omp_for_incr_canonicalize_ptr): New.
	c-pragma.c (init_pragma): Register "simd" pragma.
	c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_SIMD.
	(enum pragma_cilk_clause): New.

2013-11-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-pretty-print.c (pp_c_character_constant): Remove unnecessary
	wchar_type and host_integerp checks.

2013-11-14  Andrew MacLeod  <amacleod@redhat.com>

	* c-common.c: Likewise.
	* c-gimplify.c: Likewise.
	* cilk.c: Likewise.

2013-11-14  Diego Novillo  <dnovillo@google.com>

	* c-common.c: Include fold-const.h.
	Include stor-layout.h.
	Include calls.h.
	Include stringpool.h.
	Include attribs.h.
	Include varasm.h.
	Include trans-mem.h.
	* c-cppbuiltin.c: Include stor-layout.h.
	Include stringpool.h.
	* c-format.c: Include stringpool.h.
	* c-lex.c: Include stringpool.h.
	Include stor-layout.h.
	* c-pragma.c: Include stringpool.h.
	Include attribs.h.
	Include varasm.h.
	Include gcc-symtab.h.
	* c-pretty-print.c: Include stor-layout.h.
	Include attribs.h.
	* cilk.c: Include stringpool.h.
	Include calls.h.

2013-11-13  Joseph Myers  <joseph@codesourcery.com>

	* c-common.h (enum rid): Add RID_AUTO_TYPE.
	* c-common.c (c_common_reswords): Add __auto_type.
	(keyword_begins_type_specifier): Handle RID_AUTO_TYPE.

2013-11-12  Andrew MacLeod  <amacleod@redhat.com>

	* c-common.c: Include gimplify.h.
	* c-gimplify.c: Likewise.
	* cilk.c: Likewise.
	* c-omp.c: Include gimple-expr.h instead of gimple.h.
	* c-ubsan.c: Don't include gimple.h.

2013-11-12  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (c_common_reswords): Add _Thread_local.

2013-11-09  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (atomic_size_supported_p): New function.
	(resolve_overloaded_atomic_exchange)
	(resolve_overloaded_atomic_compare_exchange)
	(resolve_overloaded_atomic_load, resolve_overloaded_atomic_store):
	Use it instead of comparing size with a local list of sizes.

2013-11-07  Andrew MacLeod  <amacleod@redhat.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* c-common.h (enum rid): Add RID_ATOMIC.
	* c-common.c (c_common_reswords): Add _Atomic.
	(sync_resolve_params): Use TYPE_MAIN_VARIANT on pointer argument.
	(keyword_is_type_qualifier): Accept RID_ATOMIC.
	* c-format.c (check_format_types): Check for extra _Atomic
	qualifiers in format argument.
	* c-pretty-print.c (pp_c_cv_qualifiers): Handle atomic qualifier.
	(pp_c_type_qualifier_list): Mention _Atomic in comment.

2013-11-06  Tobias Burnus  <burnus@net-b.de>

	* c-common.c (reason_option_codes_t): Add CPP_W_DATE_TIME.

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

	* c-opts.c (c_common_post_options): Set -ffp-contract=off in C
	standards modes.
	* c-cppbuiltin.c (cpp_iec_559_value): Consider -ffp-contract=fast
	to mean lack of IEEE 754 support.

2013-11-05  Tobias Burnus  <burnus@net-b.de>

	* c.opt (-Wdate-time): New option
	* c-opts.c (sanitize_cpp_opts): Pass on to libcpp.

2013-11-05  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (cpp_iec_559_value): Test
	flag_excess_precision_cmdline not flag_excess_precision.

2013-11-05  Tobias Burnus  <burnus@net-b.de>

	* c.opt (fopenmp-simd): New option.
	* c-pragma.c (omp_pragmas): Move pragmas which can contain simd to ...
	(omp_pragmas): ... this new struct.
	(c_pp_lookup_pragma): Also walk omp_pragmas.
	(init_pragma): Init pragmas for -fopenmp-simd.

2013-11-04  Marek Polacek  <polacek@redhat.com>

	PR c++/58979
	* c-common.c (invalid_indirection_error): Handle RO_ARROW_STAR case.

2013-11-04  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (cpp_iec_559_value, cpp_iec_559_complex_value):
	New functions.
	(c_cpp_builtins): Define __GCC_IEC_559 and __GCC_IEC_559_COMPLEX.

2013-11-04  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.h (cpp_operation): Add IS_TRIVIAL.
	(dump_ada_specs): Adjust prototype of second callback.
	* c-ada-spec.c (cpp_check): New global variable.
	(dump_ada_nodes): Remove cpp_check parameter and do not pass it down.
	(print_generic_ada_decl): Likewise.
	(has_static_fields): Change return type to bool and add guard.
	(has_nontrivial_methods): New predicate.
	(is_tagged_type): Change return type to bool.
	(separate_class_package): Call has_nontrivial_methods.
	(pp_ada_tree_identifier): Minor tweaks.
	(dump_ada_function_declaration): Adjust calls to dump_generic_ada_node.
	(dump_ada_array_domains): Likewise.
	(dump_ada_array_type): Likewise.
	(dump_template_types): Remove cpp_check parameter and do not pass it to
	dump_generic_ada_node.
	(dump_ada_template): Likewise.
	(dump_generic_ada_node): Remove cpp_check parameter and do not pass it
	recursively.
	(print_ada_methods): Change return type to integer.  Remove cpp_check
	parameter and do not pass it down.
	(dump_nested_types): Remove cpp_check parameter and do not pass it to
	dump_generic_ada_node.
	(print_ada_declaration): Likewise.  Test RECORD_OR_UNION_TYPE_P before
	accessing methods.
	(print_ada_struct_decl): Remove cpp_check parameter and do not pass it
	down.  Use has_nontrivial_methods to recognize C++ classes.  Use return
	value of print_ada_methods.
	(dump_ads): Rename cpp_check parameter to check and adjust prototype.
	Set cpp_check to it before invoking dump_ada_nodes.
	(dump_ada_specs): Likewise.

2013-11-03  Marek Polacek  <polacek@redhat.com>

	* c-ubsan.c: Don't include hash-table.h.
	(ubsan_instrument_vla): New function.
	* c-ubsan.h: Declare it.

2013-10-31  David Malcolm  <dmalcolm@redhat.com>

	Automated part of renaming of symtab_node_base to symtab_node.

	Patch autogenerated by rename_symtab.py from
	https://github.com/davidmalcolm/gcc-refactoring-scripts
	revision 58bb219cc090b2f4516a9297d868c245495ee622

	* c-pragma.c (maybe_apply_pending_pragma_weaks): Rename
	symtab_node_base to symtab_node.

2013-10-31  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Implement C++14 digit separators.
	* c-lex.c (interpret_float): Remove digit separators from scratch string
	before building real literal.

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

	* cilk.c (create_cilk_helper_decl): Use HOST_WIDE_INT_PRINT_DEC.

2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-common.c (c_common_reswords[]): Added _Cilk_spawn and _Cilk_sync
	fields.
	(c_define_builtins): Called cilk_init_builtins if Cilk Plus is
	enabled.
	* c-common.h (enum rid): Added RID_CILK_SPAWN and RID_CILK_SYNC.
	(insert_cilk_frame): New prototype.
	(cilk_init_builtins): Likewise.
	(gimplify_cilk_spawn): Likewise.
	(c_cilk_install_body_w_frame_cleanup): Likewise.
	(cilk_detect_spawn_and_unwrap): Likewise.
	(cilk_set_spawn_marker): Likewise.
	(build_cilk_sync): Likewise.
	(build_cilk_spawn): Likewise.
	* cilk.c: New file.

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

	Patch autogenerated by refactor_symtab.py from
	https://github.com/davidmalcolm/gcc-refactoring-scripts
	revision 58bb219cc090b2f4516a9297d868c245495ee622

	* c-gimplify.c (c_genericize): Update for conversion of symtab types
	to a true class hierarchy.
	* c-pragma.c (maybe_apply_pending_pragma_weaks): Likewise.

2013-10-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* c-lex.c (interpret_integer): Remove call to cpp_num_sign_extend.

2013-10-26  Jeff Law  <law@redhat.com>

	* c-common.c (c_define_builtins): Remove mudflap support.
	* c.opt: Ignore and warn for mudflap options.

2013-10-24  Tobias Burnus  <burnus@net-b.de>

	PR other/33426
	* c-pragma.c (init_pragma) Add #pragma ivdep handling.
	* c-pragma.h (pragma_kind): Add PRAGMA_IVDEP.

2013-10-23  Jason Merrill  <jason@redhat.com>

	* c-format.c (gcc_cxxdiag_char_table): Add %X.

2013-10-11  Jakub Jelinek  <jakub@redhat.com>

	* c-common.h (omp_clause_mask::operator !=): New method.
	* c-omp.c (c_omp_split_clauses): Use if ((mask & something) != 0)
	instead of if (mask & something) tests everywhere.

	* c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP to
	201307 instead of 201107.
	* c-common.c (DEF_FUNCTION_TYPE_8): Define.
	(c_common_attribute_table): Add "omp declare target" and
	"omp declare simd" attributes.
	(handle_omp_declare_target_attribute,
	handle_omp_declare_simd_attribute): New functions.
	* c-omp.c: Include c-pragma.h.
	(c_finish_omp_taskgroup): New function.
	(c_finish_omp_atomic): Add swapped argument, if true,
	build the operation first with rhs, lhs arguments and use NOP_EXPR
	build_modify_expr.
	(c_finish_omp_for): Add code argument, pass it down to make_code.
	(c_omp_split_clauses): New function.
	(c_split_parallel_clauses): Removed.
	(c_omp_declare_simd_clause_cmp, c_omp_declare_simd_clauses_to_numbers,
	c_omp_declare_simd_clauses_to_decls): New functions.
	* c-common.h (omp_clause_mask): New type.
	(OMP_CLAUSE_MASK_1): Define.
	(omp_clause_mask::omp_clause_mask, omp_clause_mask::operator &=,
	omp_clause_mask::operator |=, omp_clause_mask::operator ~,
	omp_clause_mask::operator |, omp_clause_mask::operator &,
	omp_clause_mask::operator <<, omp_clause_mask::operator >>,
	omp_clause_mask::operator ==): New methods.
	(enum c_omp_clause_split): New.
	(c_finish_omp_taskgroup): New prototype.
	(c_finish_omp_atomic): Add swapped argument.
	(c_finish_omp_for): Add code argument.
	(c_omp_split_clauses): New prototype.
	(c_split_parallel_clauses): Removed.
	(c_omp_declare_simd_clauses_to_numbers,
	c_omp_declare_simd_clauses_to_decls): New prototypes.
	* c-pragma.c (omp_pragmas): Add new OpenMP 4.0 constructs.
	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_CANCEL,
	PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
	PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_SIMD,
	PRAGMA_OMP_TARGET, PRAGMA_OMP_TASKGROUP and PRAGMA_OMP_TEAMS.
	Remove PRAGMA_OMP_PARALLEL_FOR and PRAGMA_OMP_PARALLEL_SECTIONS.
	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALIGNED,
	PRAGMA_OMP_CLAUSE_DEPEND, PRAGMA_OMP_CLAUSE_DEVICE,
	PRAGMA_OMP_CLAUSE_DIST_SCHEDULE, PRAGMA_OMP_CLAUSE_FOR,
	PRAGMA_OMP_CLAUSE_FROM, PRAGMA_OMP_CLAUSE_INBRANCH,
	PRAGMA_OMP_CLAUSE_LINEAR, PRAGMA_OMP_CLAUSE_MAP,
	PRAGMA_OMP_CLAUSE_NOTINBRANCH, PRAGMA_OMP_CLAUSE_NUM_TEAMS,
	PRAGMA_OMP_CLAUSE_PARALLEL, PRAGMA_OMP_CLAUSE_PROC_BIND,
	PRAGMA_OMP_CLAUSE_SAFELEN, PRAGMA_OMP_CLAUSE_SECTIONS,
	PRAGMA_OMP_CLAUSE_SIMDLEN, PRAGMA_OMP_CLAUSE_TASKGROUP,
	PRAGMA_OMP_CLAUSE_THREAD_LIMIT, PRAGMA_OMP_CLAUSE_TO and
	PRAGMA_OMP_CLAUSE_UNIFORM.

2013-10-09  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/20318
	* c-common.c (handle_returns_nonnull_attribute): New function.
	(c_common_attribute_table): Add returns_nonnull.

2013-10-03  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/19476
	* c.opt (fcheck-new): Move to common.opt.

2013-09-25  Marek Polacek  <polacek@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/58413
	* c-ubsan.c (ubsan_instrument_shift): Don't instrument
	an expression if we can prove it is correct.
	(ubsan_instrument_division): Likewise.  Remove unnecessary
	check.

2013-09-18  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/58411
	* c-common.c (handle_no_sanitize_undefined_attribute): New function.
	Declare it.
	(struct attribute_spec c_common_att): Add no_sanitize_undefined.

2013-09-14  Iain Sandoe  <iain@codesourcery.com>

	PR target/48094
	* c.opt (fgnu-runtime, fnext-runtime, fobjc-abi-version,
	fobjc-gc, freplace-objc-classes): Accept for LTO.

2013-09-13  Jacek Caban  <jacek@codeweavers.com>

	* c-target.def: New hook

2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/43452
	* c.opt (Wdelete-incomplete): Add.

2013-09-08  Joern Rennecke  <joern.rennecke@embecosm.com>

	* c-common.c (same_scalar_type_ignoring_signedness): Delete.
	(vector_types_compatible_elements_p): New function.
	* c-common.h: (same_scalar_type_ignoring_signedness): Delete
	declaration.
	(vector_types_compatible_elements_p): Declare.

2013-09-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.h (c_pretty_printer::simple_type_specifier): Now
	a virtual member function.
	(pp_simple_type_specifier): Remove.
	(pp_c_type_specifier): Likewise.
	* c-pretty-print.c (c_pretty_printer::simple_type_specifier):
	Rename from pp_c_type_specifier.  Adjust.
	(c_pretty_printer::c_pretty_printer): Do not assign to
	simple_type_specifier.

2013-09-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.h (c_pretty_printer::type_id): Now a virtual
	member function.
	(c_pretty_printer::storage_class_specifier): Likewise.
	(c_pretty_printer::initializer): Likewise.
	(pp_declaration): Remove.
	(pp_declaration_specifiers): Likewise.
	(pp_abstract_declarator): Likewise.
	(pp_declarator): Likewise.
	(pp_type_id): Likewise.
	(pp_statement): Likewise.
	(pp_constant): Likewise.
	(pp_id_expression): Likewise.
	(pp_primary_expression): Likewise.
	(pp_unary_expression): Likewise.
	(pp_multiplicative_expression): Likewise.
	(pp_conditional_expression): Likewise.
	(pp_assignment_expression): Likewise.
	(pp_expression): Likewise.
	(pp_c_type_id): Likewise.
	(pp_c_storage_class_specifier): Likewise.
	* c-pretty-print.c (pp_c_type_cast): Tidy.
	(pp_c_pointer): Likewise.
	(pp_c_type_specifier): Likewise.
	(pp_c_parameter_type_list): Likewise.
	(pp_c_function_definition): Likewise.
	(pp_c_init_declarator): Likewise.
	(pp_c_initializer_list): Likewise.
	(pp_c_constructor_elts): Likewise.
	(c_pretty_printer::direct_abstract_declarator): Likewise.
	(c_pretty_printer::declaration_specifiers): Likewise.
	(c_pretty_printer::primary_expression): Likewise.
	(c_pretty_printer::postfix_expression): Likewise.
	(c_pretty_printer::type_id): Rename from pp_c_type_id.
	(c_pretty_printer::storage_class_specifier): Rename from
	pp_c_storage_class_specifier.
	(c_pretty_printer::initializer): Rename from pp_c_initializer.
	(c_pretty_printer::c_pretty_printer): Do not assign to type_id,
	storage_class_specifier, initializer, offset_list, flags.

2013-08-30  Marek Polacek  <polacek@redhat.com>

	* c-ubsan.c: New file.
	* c-ubsan.h: New file.

2013-08-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.h (c_pretty_printer::declaration): Now a virtual
	member function.
	(c_pretty_printer::declaration_specifiers): Likewise.
	(c_pretty_printer::declarator): Likewise.
	(c_pretty_printer::abstract_declarator): Likewise.
	(c_pretty_printer::direct_abstract_declarator): Likewise.
	(c_pretty_printer::direct_declarator): Likewise.
	(c_pretty_printer::function_specifier): Likewise.
	(pp_declaration): Adjust.
	(pp_declaration_specifiers): Likewise.
	(pp_abstract_declarator): Likewise.
	(pp_direct_declarator): Likewise.
	(pp_function_specifier): Likewise.
	(pp_direct_abstract_declarator): Remove as unused.
	(pp_c_declaration): Remove.
	(pp_c_declaration_specifiers): Likewise.
	(pp_c_declarator): Likewise.
	(pp_c_direct_declarator): Likewise.
	(pp_c_function_specifier): Likewise.
	(pp_c_direct_abstract_declarator): Likewise.
	* c-pretty-print.c (c_pretty_printer::abstract_declarator): Rename
	from pp_c_abstract_declarator.  Adjust.
	(c_pretty_printer::direct_abstract_declarator):  Rename from
	pp_c_direct_abstract_declarator.  Adjust.
	(c_pretty_printer::function_specifier): Rename from
	pp_c_function_specifier.  Adjust.
	(c_pretty_printer::declaration_specifiers): Rename from
	pp_c_declaration_specifiers.  Adjust.
	(c_pretty_printer::direct_declarator): Rename from
	pp_c_direct_declarator.  Adjust.
	(c_pretty_printer::declarator): Rename from pp_c_declarator.  Adjust.
	(c_pretty_printer::declaration): Rename from pp_c_declaration.  Adjust.
	(c_pretty_printer::c_pretty_printer): Do not assign to
	declaration, declaration_specifiers, declarator,
	direct_declarator, direct_abstract_declarator, function_specifier.

2013-08-26  Gabriel Dos Reis  <gdre@integrable-solutions.net>

	* c-pretty-print.h (c_pretty_printer::unary_expression): Now a
	virtual member function.
	(c_pretty_printer::multiplicative_expression): Likewise.
	(c_pretty_printer::conditional_expression): Likewise.
	(c_pretty_printer::assignment_expression): Likewise.
	(c_pretty_printer::expression): Likewise.
	(pp_unary_expression): Adjust.
	(pp_multiplicative_expression): Likewise.
	(pp_assignment_expression): Likewise.
	(pp_conditional_expression): Likewise.
	(pp_expression): Likewise.
	* c-pretty-print.c (c_pretty_printer::unary_expression): Rename
	from pp_c_unary_expression.  Adjust.
	(c_pretty_printer::multiplicative_expression): Rename from
	pp_c_multiplicative_expression.  Adjust.
	(c_pretty_printer::conditional_expression): Rename from
	pp_c_conditional_expression.  Adjust.
	(c_pretty_printer::assignment_expression): Rename from
	pp_c_assignment_expression.  Adjust.
	(c_pretty_printer::expression): Rename from pp_c_expression.  Adjust.
	(c_pretty_printer::c_pretty_printer): Do not assign to
	unary_expression, multiplicative_expression,
	conditional_expression, expression.

2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.h (c_pretty_printer::postfix_expression): Now a
	virtual member function.
	(pp_postfix_expression): Adjust.
	(pp_c_postfix_expression): Remove.
	* c-pretty-print.c (c_pretty_printer::postfix_expression): Rename
	from pp_c_postfix_expression.  Adjust.
	(c_pretty_printer::c_pretty_printer): Do not assign to
	postfix_expression.

2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.h (c_pretty_printer::primary_expression): Now a
	virtua member function.
	(pp_primary_expression): Adjust.
	(pp_c_primary_expression): Remove.
	* c-pretty-print.c (c_pretty_printer::primary_expression): Rename
	from pp_c_primary_expression.  Adjust.
	(pp_c_initializer_list): Use pp_primary_expression.
	(c_pretty_printer::c_pretty_printer): Do not assign to
	primary_expression.

2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.h (c_pretty_printer::translate_string): Declare.
	* c-pretty-print.c (M_): Remove.
	(c_pretty_printer::translate_string): Define.
	(pp_c_type_specifier): Use it.
	(pp_c_primary_expression): Likewise.
	(pp_c_expression): Likewise.

2013-08-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.h (c_pretty_printer::id_expression): Now a
	virtual function.
	(pp_c_id_expression): Remove.
	(pp_id_expression): Adjust.
	* c-pretty-print.c (c_pretty_printer::id_expression): Rename from
	pp_c_id_expression.  Adjust.
	(pp_c_postfix_expression): Use pp_id_expression.
	(c_pretty_printer::c_pretty_printer): Do not assign to id_expression.

2013-08-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.h (c_pretty_printer::constant): Now a virtual
	member function.
	(pp_constant): Adjust.
	(pp_c_constant): Remove.
	* c-pretty-print.c (c_pretty_printer::constant): Rename from
	pp_c_constant.  Adjust.
	(pp_c_constant)
	(pp_c_primary_expression): Call pp_constant in lieu of pp_c_constant.
	(c_pretty_printer::c_pretty_printer): Remove assignment to constant.

2013-08-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.h (pp_c_pretty_printer_init): Remove.
	(c_pretty_printer::c_pretty_printer): Declare.
	* c-pretty-print.c (pretty_printer::c_pretty_printer): Rename from
	c_pretty_printer_init.  Adjust.
	(print_c_tree): Do not call c_pretty_printer_init.
	* c-ada-spec.c (dump_ads): Remove call to pp_construct.

2013-08-09  Arnaud Charlet  <charlet@adacore.com>

	* c-ada-spec.c (print_ada_declaration): Prevent accessing null asm name

2013-08-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58080
	* c-common.c (pointer_int_sum): Add bool parameter.
	* c-common.h (pointer_int_sum): Adjust declaration.

2013-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.c (print_c_tree): Simplify.  Use non-static local
	c_pretty_printer variable.

2013-08-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.h (c_pretty_printer): Derive from pretty_printer.
	(pp_base): Remove.
	(pp_c_base): Likewise.  Adjust users.
	* c-pretty-print.c (pp_c_maybe_whitespace): Adjust.
	(pp_c_whitespace): Do not call pp_base.
	(pp_c_left_paren): Likewise.
	(pp_c_right_paren): Likewise.
	(pp_c_left_brace): Likewise.
	(pp_c_right_brace): Likewise.
	(pp_c_left_bracket): Likewise.
	(pp_c_right_bracket): Likewise.
	(pp_c_dot): Likewise.
	(pp_c_ampersand): Likewise.
	(pp_c_star): Likewise.
	(pp_c_arrow): Likewise.
	(pp_c_semicolon): Likewise.
	(pp_c_complement): Likewise.
	(pp_c_exclamation): Likewise.
	(pp_c_direct_declarator): Likewise.
	(pp_c_ws_string): Likewise.
	(pp_c_identifier): Likewise.
	(pp_c_statement): Likewise.
	(print_c_tree): Likewise.

2013-08-04  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/58072
	* c-common.c (c_parse_error): Catch user-defined literal tokens and
	provide useful error strings.

2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-ada-spec.c (pp_ada_tree_identifier): Use specialized pretty
	printer functions instead of pp_string or operators and punctuators.
	(dump_generic_ada_node): Likewise.
	* c-pretty-print.c (pp_c_type_specifier): Likewise.
	(pp_c_relational_expression): Likewise.
	(pp_c_logical_or_expression): Likewise.

2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-ada-spec.c (print_ada_macros): Use specialized pretty printer
	functions instead of pp_character.
	(pp_ada_tree_identifier): Likewise.
	(dump_ada_double_name): Likewise.
	(dump_ada_function_declaration): Likewise.
	(dump_ada_array_domains): Likewise.
	(dump_template_types): Likewise.
	(dump_generic_ada_node): Likewise.
	(print_ada_declaration): Likewise.
	(print_ada_struct_decl): Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.

2013-07-23  Tom Tromey  <tromey@redhat.com>

	* c-common.h (enum rid) <RID_GENERIC>: New constant.
	* c-common.c (c_common_reswords): Add _Generic.

2013-07-21   OndÅej BÃ­lka  <neleai@seznam.cz>

	* c-common.c: Fix typos.
	* c-common.h: Likewise.

2013-07-13  Lubos Lunak  <l.lunak@suse.cz>

	PR c++/55203
	* c-common.c (c_common_attribute_table): Add warn_unused.
	(handle_warn_unused_attribute): New.

2013-07-10  Jakub Jelinek  <jakub@redhat.com>

	* c-ppoutput.c (scan_translation_unit): Call account_for_newlines
	for all CPP_TOKEN_FLD_STR tokens, not just CPP_COMMENT.

2013-07-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57869
	* c.opt: Add Wconditionally-supported.

2013-07-08  Graham Stott  <graham.stott@btinternet.com>

	* array-notation-common.c (length_mismatch_in_expr_p): Delete
	unused variables l_length and l_node.

2013-07-04  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR c/57821
	* c-common.c (complete_array_type): Delay folding first index
	like other indices.  When folding, check for index overflow.

2013-06-27  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/57509
	* c-common.h (c_build_vec_perm_expr): New complain argument.
	* c-common.c (c_build_vec_perm_expr): Likewise.
	Use save_expr also in C++.

2013-06-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-common.c (c_common_nodes_and_builtins): Use cxx11 in lieu of cxx0x.
	* c-cppbuiltin.c (c_cpp_builtins): Likewise.
	* c-opts.c (c_common_post_options): Likewise.

2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* array-notation-common.c (length_mismatch_in_expr): Changed the
	parameter type's from a dynamic array to a vec_tree.  Also removed
	the size parameters.
	* c-common.h (length_mismatch_in_expr_p): Fixed prototype's as per
	the change above.

2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-common.h (struct cilkplus_an_parts): New structure.
	(struct cilkplus_an_loop_parts): Likewise.
	(cilkplus_extract_an_triplets): New prototype.
	(fix_sec_implicit_args): Likewise.
	* array-notation-common.c (cilkplus_extract_an_triplets): New function.
	(fix_sec_implicit_args): Likewise.

2013-06-20  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* array-notation-common.c (find_inv_trees): Removed an unwanted
	typecasting.
	* c-common.h (struct inv_list::additional_tcodes): Changed type from
	enum rid to enum tree_code.

2013-06-11  Jan Hubicka  <jh@suse.cz>

	* c-common.c (handle_alias_ifunc_attribute): Do not set
	DECL_EXTERNAL for weakref variables.
	* c-pragma.c (handle_pragma_weak): Make sure aliases
	are not declared as external.

2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* array-notation-common.c (length_mismatch_in_expr_p): Moved this
	function from c/c-array-notation.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.
	* c-common.h (struct inv_list): Moved this struct from the file
	c/c-array-notation.c and added a new field called additional tcodes.
	(length_mismatch_in_expr_p): New prototype.
	(is_cilkplus_reduce_builtin): Likewise.
	(find_rank): Likewise.
	(extract_array_notation_exprs): Likewise.
	(replace_array_notation): Likewise.
	(find_inv_trees): Likewise.
	(replace_inv_trees): Likewise.
	(find_correct_array_notation_type): Likewise.

2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* c-common.c (c_define_builtins): When cilkplus is enabled, the
	function array_notation_init_builtins is called.
	(c_common_init_ts): Added ARRAY_NOTATION_REF as typed.
	* c-common.def (ARRAY_NOTATION_REF): New tree.
	* c-common.h (build_array_notation_expr): New function declaration.
	(build_array_notation_ref): Likewise.
	(extract_sec_implicit_index_arg): New extern declaration.
	(is_sec_implicit_index_fn): Likewise.
	(ARRAY_NOTATION_CHECK): New define.
	(ARRAY_NOTATION_ARRAY): Likewise.
	(ARRAY_NOTATION_START): Likewise.
	(ARRAY_NOTATION_LENGTH): Likewise.
	(ARRAY_NOTATION_STRIDE): Likewise.
	* c-pretty-print.c (pp_c_postifix_expression): Added a new case for
	ARRAY_NOTATION_REF.
	(pp_c_expression): Likewise.
	* c.opt (flag_enable_cilkplus): New flag.
	* array-notation-common.c: New file.

2013-05-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/57274
	* c-common.c (verify_tree): Don't recurse into SIZEOF_EXPR.

2013-05-10  Marc Glisse  <marc.glisse@inria.fr>

	* c-common.c (vector_types_convertible_p): No TYPE_PRECISION for
	vectors.

2013-05-07  Han Shen  <shenhan@google.com>

	* c-cppbuiltin.c (c_cpp_builtins): Added "__SSP_STRONG__=3".

2013-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* c-common.c (check_user_alignment): Emit error for negative values.

2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* c-opts.c (set_std_cxx11): Use CLK_CXX1Y and CLK_GNUCXX1Y.

2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* c-cppbuiltin.c (c_cpp_builtins): Do not define
	__GXX_EXPERIMENTAL_CXX1Y__.

2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
	    Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c.opt ([Wpointer-arith]): Enabled by -Wpedantic, as documented.
	* c-common.c (pointer_int_sum): Change -Wpointer-arith pedwarns
	to simply use OPT_Wpointer_arith.
	(c_sizeof_or_alignof_type): Likewise.

2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define __GXX_EXPERIMENTAL_CXX1Y__.

2013-04-12  Jakub Jelinek  <jakub@redhat.com>

	* c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
	gcc_cdiag_char_table, gcc_cxxdiag_char_table): Add %r and %R format
	specifiers.

2013-04-07  Steven Bosscher  <steven@gcc.gnu.org>

	* c-pragma.c (add_to_renaming_pragma_list): Fix leading comment.

2013-04-03  Paolo Carlini  <paolo.carlini@oracle.com>

	* c-common.c (pointer_int_sum): Remove dead code.

2013-03-09  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/56524
	* c-common.c (handle_optimize_attribute): Don't call
	save_optabs_if_changed.

2013-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/56461
	* c-pch.c (pch_init): Free target_validity at the end.

2013-03-04  Jakub Jelinek  <jakub@redhat.com>

	* c-pretty-print.c (pp_c_pretty_printer_init): Clear pp->flags.

2013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/56454
	* c-common.c (handle_no_sanitize_address_attribute): New function.
	(c_common_attribute_table): Add no_sanitize_address attribute.
	(handle_no_address_safety_analysis_attribute): Add
	no_sanitize_address attribute, not no_address_safety_analysis
	attribute.

2013-02-18  Aldy Hernandez  <aldyh@redhat.com>

	PR target/52555
	* c-common.c (handle_optimize_attribute): Call
	save_optabs_if_changed.

2013-02-18  Jakub Jelinek  <jakub@redhat.com>
	    Steven Bosscher  <steven@gcc.gnu.org>

	PR pch/54117
	* c-opts.c (c_common_post_options): If debug info is enabled
	and non-dwarf*, refuse to load PCH files and when writing PCH
	file warn.

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

	PR middle-end/56167
	* c-common.c (handle_error_attribute): Fix condition.

2013-01-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/55742
	* c-common.c (handle_target_attribute): Revert 2012-12-26 change.

2013-01-18  Jason Merrill  <jason@redhat.com>

	PR target/54908
	* c.opt (-fextern-tls-init): New.
	* c-opts.c (c_common_post_options): Handle it.

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

	PR c/48418
	* c-common.c (c_fully_fold_internal): Warn for LSHIFT_EXPR and
	RSHIFT_EXPR, if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST
	and is either negative or bigger or equal to type precision
	of the first operand.

2012-12-03  Marek Polacek  <polacek@redhat.com>

	PR c/55570
	* c-common.c (check_user_alignment): Swap order of tests,
	check TREE_CODE first.

2012-11-29  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/52654
	* c-common.h (overflow_type): New enum.
	(build_userdef_literal): Add overflow_type argument.
	(tree_userdef_literal): Add overflow_type.
	(USERDEF_LITERAL_OVERFLOW): New access macro.
	* c-common.c (build_userdef_literal): Add overflow_type
	argument.
	* c-lex.c (c_lex_with_flags): Add overflow_type to
	build_userdef_literal calls.
	(interpret_integer, interpret_float): Add overflow_type argument.

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

	PR c/35634
	* c-gimplify.c (c_gimplify_expr): Gimplify self-modify expressions
	here and use a type with proper overflow behavior for types that would
	need to be promoted for the arithmetic.

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

	PR sanitizer/55435
	* c-common.c (handle_no_address_safety_analysis_attribute): New
	function.
	(c_common_attribute_table): Add no_address_safety_analysis.

2012-11-16  Simon Baldwin  <simonb@google.com>

	* c.opt: Add f[no-]canonical-system-headers.
	* c-opts.c (c_common_handle_option): Handle
	OPT_fcanonical_system_headers.

2012-11-09  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/54413
	* c-opts.c (c_common_handle_option): Set new flags.
	* c.opt: Describe new flags.

2012-11-09  Jason Merrill  <jason@redhat.com>

	* c.opt (Wabi-tag): New.

2012-11-09  Andi Kleen  <ak@linux.intel.com>

	PR 55139
	* c-common.c (get_atomic_generic_size): Mask with
	MEMMODEL_MASK

2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	* c.opt (Wformat): Make it Alias Wformat=1.
	(Wformat-contains-nul,Wformat-extra-args,Wformat-nonliteral,
	Wformat-security,Wformat-y2k,Wformat-zero-length): Use
	LangEnabledBy.
	(Wformat=): RejectNegative. Use LangEnabledBy.
	(Wnonnull): Use LangEnabledBy.
	* c-opts.c (c_common_handle_option): Do not handle Wformat here.
	* c-format.c (set_Wformat): Delete.
	(decode_format_attr): Replace OPT_Wformat with OPT_Wformat_.
	(maybe_read_dollar_number):  Likewise.
	(avoid_dollar_number):  Likewise.
	(finish_dollar_format_checking):  Likewise.
	(check_format_info):  Likewise.
	(check_format_info_main):  Likewise.
	(check_format_types):  Likewise.
	(format_type_warning):  Likewise.
	* c-common.c (int):  Likewise.
	(check_function_sentinel):  Likewise.
	* c-common.h (warn_format,set_Wformat): Do not declare here.

2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	* c.opt(Warray-bounds,Wdelete-non-virtual-dtor,Wenum-compare,
	Wmain,Woverlength-strings, Wunknown-pragmas,Wunused-macros):
	Use LangEnabledBy.
	(Wswitch,Wswitch-default,Wswitch-enum): Likewise. Move here from
	common.opt.
	(Wvariadic-macros): Init(1).
	* c-opts.c (c_common_handle_option): Do not handle them
	explicitly.
	(c_common_post_options): Likewise.
	(sanitize_cpp_opts): warn_unused_macros is now
	cpp_warn_unused_macros.
	(push_command_line_include): Likewise.
	* c-common.c (warn_unknown_pragmas): Do not define.
	* c-common.h (warn_unknown_pragmas): Do not declare.

2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/51294
	* c-common.c (conversion_warning): Handle conditional expressions.

2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR c++/54930
	* c.opt (Wreturn_local_addr): Define new option.

2012-10-25  Jason Merrill  <jason@redhat.com>

	* c.opt (Wvirtual-move-assign): New.

	* c.opt (Winherited-variadic-ctor): New.

2012-10-25  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54427
	* c-common.c (scalar_to_vector): Handle VEC_COND_EXPR.

2012-10-23  Joseph Myers  <joseph@codesourcery.com>

	* c-common.h (pch_cpp_save_state): Declare.
	* c-target.def (c_preinclude): New hook.
	* c-opts.c (done_preinclude): New.
	(push_command_line_include): Handle default preincluded header.
	(cb_file_change): Call pch_cpp_save_state when calling
	push_command_line_include.
	* c-pch.c (pch_ready_to_save_cpp_state, pch_cpp_state_saved)
	(pch_cpp_save_state): New.
	(pch_init): Call pch_cpp_save_state conditionally, instead of
	calling cpp_save_state.

2012-10-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	PR c/40989
	* c.opt (Waddress,Wchar-subscripts,Wsign-conversion,Wimplicit,
	Wimplicit-function-declaration,Wimplicit-int,Wsizeof-pointer-memaccess,
	Wnarrowing,Wparentheses,Wpointer-sign,Wreturn-type,Wsequence-point,
	Wsign-compare,Wuninitialized,Wmaybe-uninitialized,Wunused,
	Wvolatile-register-var): Add LangEnabledBy or EnabledBy.
	* c-opts.c (c_common_handle_option): Remove explicit handling from
	here.
	(c_common_post_options): Likewise.

2012-10-18  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (LOCATION_COL): Delete.
	(compare_location): New function.
	(compare_node): Use it.
	(compare_comment): Likewise.

2012-10-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	PR c/40989
	* c.opt (Wstrict-aliasing=,Wstrict-overflow=): Use LangEnabledBy.
	* c-opts.c (c_common_handle_option): Do not set them here. Add
	comment.
	(c_common_post_options): Likewise.

2012-10-16  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Define.
	(dump_generic_ada_node) <INTEGER_CST>: Deal with sizetype specially.
	Remove POINTER_TYPE handling, add large unsigned handling and use
	ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX for big numbers.

2012-10-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/54381
	* c-common.h (sizeof_pointer_memaccess_warning): Adjust prototype.
	* c-common.c (sizeof_pointer_memaccess_warning): Take array of 3
	locs and array of 3 trees instead of just single loc and single
	sizeof_arg tree.  Handle __builtin___*_chk builtins too, and
	also stpncpy, bcopy, bcmp, bzero, snprintf and vsnprintf builtins.
	For *cmp* builtins that take two sources strings report warnings
	about first and second source, not about destination and source.

2012-10-12  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/53055
	* c-common.h (enum ref_operator) [RO_ARROW_STAR]: New.

2012-10-11  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_template): Bail out for template declarations
	declaring something coming from another file.

2012-10-10  Arnaud Charlet  <charlet@adacore.com>

	PR ada/54845
	* c-ada-spec.c (print_ada_struct_decl): Increase buf size.

2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54194
	* c-common.c (warn_about_parentheses): Add location_t parameter;
	use EXPR_LOC_OR_LOC.
	* c-common.h: Update declaration.

2012-10-09  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54427
	* c-common.c (scalar_to_vector): Moved from c-typeck.c. Support
	more operations. Make error messages optional.
	* c-common.h (enum stv_conv): Moved from c-typeck.c.
	(scalar_to_vector): Declare.

2012-10-08  Jason Merrill  <jason@redhat.com>

	* c-common.c (c_common_reswords): Add thread_local.

2012-10-08  Dodji Seketeli  <dodji@redhat.com>

	PR c++/53528 C++11 attribute support
	* c-common.h (bitfield_p, cxx_fundamental_alignment_p): Declare
	new functions.
	* c-common.c (check_cxx_fundamental_alignment_constraints): New
	static function.
	(handle_aligned_attribute): In choose strictest alignment
	among many.  Use new check_cxx_fundamental_alignment_constraints.
	(handle_transparent_union_attribute): In c++11 attribute syntax,
	don't look through typedefs.

2012-10-04  Arnaud Charlet  <charlet@adacore.com>

	* c-ada-spec.c (print_ada_declaration): Remove handling of TDF_RAW.
	* c.opt (-fdump-ada-spec, -fdump-ada-spec-slim): Move switch definition
	out of dumpfile.h.

2012-09-25  Dehao Chen  <dehao@google.com>

	PR middle-end/54645
	* c-pch.c (c_common_read_pch): Rebuild the location_adhoc_data
	map when read in the pch.

2012-09-18  Arnaud Charlet  <charlet@adacore.com>

	* c-ada-spec.c: Style fixes.

2012-09-18  Thomas Quinot  <quinot@adacore.com>

	* c.opt (-fada-spec-parent): Define new command line switch.
	* c-ada-spec.c (get_ada_package): When -fada-spec-parent
	is specified, generate binding spec as a child of the specified unit.

2012-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/53210
	* c.opt ([Winit-self]): Enabled by -Wall in C++.

2012-08-23  Arnaud Charlet  <charlet@adacore.com>

	* c-ada-spec.c (dump_generic_ada_node): Fix handling of name_only
	for pointers, and add missing Convention C pragma.
	(print_ada_struct_decl): Add missing aliased keyword.
	(dump_ads): Add pragma Ada_2005 and Style_Checks (Off).

2012-08-17  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (sizeof_pointer_memaccess_warning): New function.
	* c.opt (-Wsizeof-pointer-memaccess): Add new option.
	* c-opts.c (c_common_handle_option): Enable it for -Wall.
	* c-common.h (sizeof_pointer_memaccess_warning): Add prototype.
	* c-common.def (SIZEOF_EXPR): Moved here from cp-tree.def.

2012-08-10  Richard Guenther  <rguenther@suse.de>

	* c-pretty-print.c (pp_c_expression): Handle anonymous SSA names.

2012-08-07  Steven Bosscher  <steven@gcc.gnu.org>

	* c-pretty-print.c (pp_c_function_definition): Use pp_newline_and_flush
	instead of separate pp_newline and pp_flush.
	(print_c_tree): Likewise.

2012-07-26  Richard Henderson  <rth@redhat.com>

	* c-common.c (handle_hot_attribute): Allow labels.
	(handle_cold_attribute): Likewise.

2012-07-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/28656
	* c-common.c (check_function_nonnull): Handle multiple nonnull
	attributes properly.

2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>

	* c-gimplify.c: Include dumpfile.h instead of tree-dump.h.
	* c-ada-spec.c: Likewise.
	* c-dump.c (dump_stmt): Move to cp/dump.c, the only user.

2012-07-14  Steven Bosscher  <steven@gcc.gnu.org>

	* c-pch.c (CHECK_NO_ASM_OUT_DURING_PCH): Do not define.
	Remove code conditional on it.

2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>

	* c-gimplify.c: Do not include basic-block.h.
	* c-common.c: Do not include linfuncs.h.

2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>

	* c-common.h: Include tree.h.

2012-07-02  Jason Merrill  <jason@redhat.com>

	PR c++/53524
	* c-common.c (get_priority): Call default_conversion.

2012-07-01  Uros Bizjak  <ubizjak@gmail.com>

	* c-pch.c (c_common_write_pch): Remove unused variables.

2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>

	* cppspec.c: Moved from gcc/ to here.

2012-06-27  Kai Tietz  <ktietz@redhat.com>

	PR preprocessor/37215
	* c-ppoutput.c (preprocess_file): Check for nonempty buffer.

2012-06-21  Steven Bosscher  <steven@gcc.gnu.org>

	* c-common.h (c_common_print_pch_checksum): Remove.
	* c-pch.c: Do not include output.h.
	(CHECK_NO_ASM_OUT_DURING_PCH): Define and add FIXME.
	(asm_out_file): Define iff CHECK_NO_ASM_OUT_DURING_PCH isdefined.
	(asm_file_startpos): Define iff CHECK_NO_ASM_OUT_DURING_PCH is defined.
	(struct c_pch_header): Remove.
	(get_ident): Update gpch version.
	(pch_init): Do not print executable_checksum to asm_out_file.
	Do not fail if there is no asm_out_file to read back from.  Set
	asm_file_startpos only if CHECK_NO_ASM_OUT_DURING_PCH is defined.
	(c_common_write_pch): Verify that nothing was written to asm_out_file
	since pch_init was called.  Do not write a c_pch_header, and do not
	copy from asm_out_file to the PCH.
	(c_common_read_pch): Do not read a c_pch_header, and do not restore
	the content of asm_out_file from the PCH.
	(c_common_print_pch_checksum): Remove.
	* c-opts.c (c_common_init): Print out executable_checksum directly.

2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>

	* c-target.def (objc_declare_unresolved_class_reference,
	objc_declare_class_definition): Add new hooks.

2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>

	* c-lex.c: Do not include output.h.
	(cb_ident): Try to put out .ident with targetm.asm_out.output_ident.
	Remove uses of ASM_OUTPUT_IDENT.

2012-06-15  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/51033
	* c-common.h (c_build_vec_perm_expr): Move decl here.
	* c-common.c (c_build_vec_perm_expr): Move definition
	here.

2012-06-06  Steven Bosscher  <steven@gcc.gnu.org>

	* c.opt (fconserve-space): Turn into a no-op.

2012-06-04  Sterling Augustine  <saugustine@google.com>

	* c-pretty-print.h (pp_c_flag_gnu_v3): New enumerator.
	* c-pretty-print.c (pp_c_specifier_qualifier_list): Check it at
	both the start and end of the function.

2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>

	* c-common.c: Do not include output.h.
	* c-pragma.c: Likewise.

2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>

	* error.c (dump_decl): Check pp_c_flag_gnu_v3.
	(decl_as_dwarf_string, lang_decl_dwarf_name): New functions.
	(lang_decl_name): Handle namespace decls.

2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>

	* c-ada-spec.c: Do not include output.h.
	* c-semantics.c: Likewise.

2012-05-29  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c: Fix typo.

2012-05-29  Michael Matz  <matz@suse.de>

	* c-common.h (c_expand_decl): Remove prototype.

2012-05-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wmissing-braces): Use LangEnabledBy(C ObjC,Wall).
	* c-opts.c (c_common_handle_option): Remove code handling
	warn_missing_braces.

2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/25137
	* c-opts.c (c_common_handle_option): For C++ -Wall doesn't enable
	-Wmissing_braces.

2012-05-22  Dodji Seketeli  <dodji@redhat.com>

	PR c++/53322
	* c.opt (Wunused-local-typedefs): Use EnabledBy(Wunused).

2012-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (--pedantic-errors,-pedantic-errors): Do not handle here.
	* c-opts.c (c_common_handle_option): Do not handle explicitly
	Wreturn-type, Wwrite-strings, warn_ecpp, and -pedantic-errors.

2012-05-16  Dodji Seketeli  <dodji@redhat.com>

	PR preprocessor/7263
	* c-lex.c (c_lex_with_flags):  Pass a virtual location to the call
	to cpp_classify_number.  For diagnostics, use the precise location
	instead of the global input_location.

2012-05-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/11856
	* c-common.c (shorten_compare): Check c_inhibit_evaluation_warnings.

2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>

	* c-common.c (DEF_ATTR_STRING): Define and undefine as necessary.

2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 53063
	* c.opt (Wc++0X-compat,Wdelete-non-virtual-dtor,Wjump-misses-init,
	Wreorder): Use LangEnabledBy.
	* c-opts.c (c_common_handle_option): Do not enable them
	explicitly. Call lang-specific generated functions.
	(c_common_post_options): Do not set them here.

2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wclobbered,Wempty-body,Wignored-qualifiers,
	Wmissing-field-initializers,Wmissing-parameter-type,
	Wold-style-declaration,Woverride-init): Use EnabledBy.
	* c-opts.c (c_common_post_options): Do not set here explicitly.

2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 53063
	* c-opts.c (c_common_handle_option): Use handle_generated_option
	to enable sub-options.

2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53158
	* c-common.c (warnings_for_convert_and_check): Use warning_at.

2012-05-10  Richard Guenther  <rguenther@suse.de>

	* c-common.c (c_sizeof_or_alignof_type): Remove assert and
	adjust commentary about TYPE_IS_SIZETYPE types.

2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/53261
	* c-common.c (warn_logical_operator): Check that argument of
	integer_zerop is not NULL.

2012-05-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/43772
	* c-common.c (warn_logical_operator): Do not warn if either side
	is already true or false.

2012-05-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/51712
	* c-common.c (expr_original_type): New.
	(shorten_compare): Do not warn for enumeration types.

2012-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (fpermissive): Add Var(flag_permissive).

2012-04-30  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/51033
	* c-common.c (convert_vector_to_pointer_for_subscript): New function.
	* c-common.h (convert_vector_to_pointer_for_subscript): Declare it.

2012-04-30  Dodji Seketeli  <dodji@redhat.com>

	Add -Wvarargs option
	* c.opt (Wvarargs):  Define new option.

2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-common.c (check_function_arguments): Replace
	Wmissing-format-attribute with Wsuggest-attribute=format.

2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wsuggest-attribute=format): New. Alias of
	Wmissing-format-attribute.
	* c-format.c (decode_format_type): Replace
	Wmissing-format-attribute with Wsuggest-attribute=format.
	(check_function_format): Likewise.

2012-04-27  Ollie Wild  <aaw@google.com>

	* c-common.c: Add CPP_W_LITERAL_SUFFIX mapping.
	* c-opts.c (c_common_handle_option): Handle OPT_Wliteral_suffix.
	* c.opt: Add Wliteral-suffix.

2012-04-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/44774
	* c.opt (Wpedantic): New.
	(pedantic): Alias Wpedantic.
	* c-opts.c (c_common_handle_option): Replace -pedantic with -Wpedantic.
	(c_common_post_options): Likewise.
	(sanitize_cpp_opts): Likewise.
	* c-lex.c (interpret_float): Likewise.
	* c-format.c (check_format_types): Likewise.
	* c-common.c (pointer_int_sum): Likewise.
	(c_sizeof_or_alignof_type): Likewise.
	(c_add_case_label): Likewise.
	(c_do_switch_warnings): Likewise.
	* c-pragma.c (handle_pragma_float_const_decimal64): Likewise.

2012-04-15  Jason Merrill  <jason@redhat.com>

	PR c++/52818
	* c-format.c (CPLUSPLUS_STD_VER): C++11 inherits from C99.
	(C_STD_NAME): Distinguish between C++98 and C++11.

2012-04-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/52624
	* c-common.h (uint16_type_node): Rename into...
	(c_uint16_type_node): ...this.
	* c-common.c (c_common_nodes_and_builtins): Adjust for above renaming.
	* c-cppbuiltin.c (builtin_define_stdint_macros): Likewise.

2012-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-common.c (warn_if_unused_value): Move definition to here.
	* c-common.h (warn_if_unused_value): Move declaration to here.

2012-03-23  William Bader  <williambader@hotmail.com>

	* c-lex.c (c_lex_with_flags): Avoid declarations after stmts.

2012-03-20  Jason Merrill  <jason@redhat.com>

	* c-common.h (enum cxx_dialect): Add cxx1y.
	* c-common.c (c_common_nodes_and_builtins): Use >= for cxx_dialect
	test.
	* c-cppbuiltin.c (c_cpp_builtins): Likewise.
	* c-opts.c (c_common_post_options): Likewise.
	(set_std_cxx1y): New.
	(c_common_handle_option): Call it.
	* c.opt (-std=c++1y, -std=gnu++1y): New flags.

2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/14710
	* c.opt ([Wuseless-cast]): Add.

2012-03-16  Richard Guenther  <rguenther@suse.de>

	* c-pretty-print.c (pp_c_initializer_list): Adjust.

2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/44783
	* c.opt (ftemplate-backtrace-limit) Add.

2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* c-cppbuiltin.c (c_cpp_builtins): Remove #pragma extern_prefix
	handling.
	* c-pragma.c (handle_pragma_extern_prefix): Remove.
	(init_pragma): Don't register extern_prefix.

2012-03-12  Richard Guenther  <rguenther@suse.de>

	* c-common.c (c_common_get_narrower): Use c_common_type_for_size.
	(builtin_type_for_size): Likewise.

2012-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/52215
	* c-common.c (sync_resolve_params): Don't decide whether to convert
	or not based on TYPE_SIZE comparison, convert whenever arg_type
	is unsigned INTEGER_TYPE.

2012-02-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c/52118
	* c.opt ([Wunused-local-typedefs]): Fix description.

2012-01-24  Mike Stump  <mikestump@comcast.net>

	* c-common.c (c_common_type_for_mode): Match signed/unsigned types
	exactly.

2012-01-18  Richard Guenther  <rguenther@suse.de>

	* c-opts.c (c_common_post_options): Reset LTO flags if
	we are about to generate a PCH.

2012-01-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51777
	* c-pretty-print.c (pp_c_integer_constant): For unsigned constants
	use pp_unsigned_wide_integer.

2012-01-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51806
	* c-opts.c (c_common_handle_option): Move -Werror handling
	to language independent code.

2012-01-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51764
	* c.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move here
	from common.opt.

2011-12-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51316
	* c-common.c (c_sizeof_or_alignof_type): In C++ allow for alignof
	of array types with an unknown bound.

2011-12-20  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (flag_isoc99): Update comment to refer to C11.
	(flag_isoc1x): Change to flag_isoc11.
	* c-common.h (flag_isoc99): Update comment to refer to C11.
	(flag_isoc1x): Change to flag_isoc11.
	* c-cppbuiltin.c (cpp_atomic_builtins): Change comment to refer to
	C11.
	* c-opts.c (set_std_c1x): Change to set_std_c11.
	(c_common_handle_option): Handle OPT_std_c11 and OPT_std_gnu11.
	Call set_std_c11.
	(set_std_c89, set_std_c99, set_std_c11): Use flag_isoc11.
	(set_std_c1): Use CLK_STDC11 and CLK_GNUC11.
	* c.opt (std=c1x): Change to std=c11.  Document as non-draft
	standard.
	(std=c1x, std=iso9899:2011): Add as aliases of std=c11.
	(std=gnu1x): Change to std=gnu11.  Refer to non-draft standard.
	(std=gnu1x): Make alias of std=gnu11.

2011-12-19  Jason Merrill  <jason@redhat.com>

	PR c++/51228
	* c-common.c (handle_transparent_union_attribute): Check the first
	field if the type is complete.

2011-12-15  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/51365
	* c-common.c (RID_IS_FINAL): Add.
	* c-common.h (RID_IS_FINAL): Add.

2011-11-30  Iain Sandoe  <iains@gcc.gnu.org>

	* c.opt (fgnu-runtime): Provide full description.
	(fnext-runtime): Likewise.
	* c-opts.c (OPT_fgnu_runtime, OPT_fnext_runtime) Remove.

2011-11-28  Andrew MacLeod  <amacleod@redhat.com>

	* c-cpp-builtin.c (cpp_atomic_builtins):New.  Emit all atomic
	predefines in one place.  Add LOCK_FREE predefines.
	(c_cpp_builtins): Move Legacy HAVE_SYNC predefines to
	new func.

2011-11-24  Andrew MacLeod  <amacleod@redhat.com>

	PR c/51256
	* c-common.c (get_atomic_generic_size): Check for various error
	conditions
	(resolve_overloaded_atomic_exchange,
	resolve_overloaded_atomic_compare_exchange,
	resolve_overloaded_atomic_load, resolve_overloaded_atomic_store): Return
	error_mark_node for error conditions.

2011-11-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51010
	c-family/

2011-11-07  Richard Henderson  <rth@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>
	    Torvald Riegel  <triegel@redhat.com>

	Merged from transactional-memory.

	* c-common.c (handle_tm_wrap_attribute,
	handle_tm_attribute, ignore_attribute, parse_tm_stmt_attr): New.
	(struct c_common_reswords): Added __transaction* keywords.
	(struct c_common_attribute_table): Added transaction* and tm_regparm
	attributes.
	* c-common.h: Added RID_TRANSACTION*. Added TM_ATTR* and TM_STMT*
	masks.
	(parse_tm_stmt_attr, tm_attr_to_mask, tm_mask_to_attr,
	find_tm_attribute): Declare.

2011-11-07  Jason Merrill  <jason@redhat.com>

	PR c++/35688
	* c-common.c, c-common.h: Revert yesterday's changes.

2011-11-06  Jason Merrill  <jason@redhat.com>

	PR c++/35688
	* c-common.c (decl_has_visibility_attr): Split out from...
	(c_determine_visibility): ...here.
	* c-common.h: Declare it.

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

	* c-common.c (c_common_reswords): Add _Alignas and _Alignof.
	(c_sizeof_or_alignof_type): Diagnose alignof applied to a function
	type.
	(check_user_alignment): New.  Split out of
	handle_aligned_attribute.  Disallow integer constants with
	noninteger types.  Conditionally allow zero.
	(handle_aligned_attribute): Use check_user_alignment.
	* c-common.h (RID_ALIGNAS, check_user_alignment): New.

2011-11-06  Andrew MacLeod  <amacleod@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	Merged from cxx-mem-model.

	* c-cppbuiltin.c (c_cpp_builtins): Test both atomic and sync patterns.
	* c-common.c (sync_resolve_params, sync_resolve_return): Only tweak
	parameters that are the same type size.
	(get_atomic_generic_size): New.  Find size of generic
	atomic function parameters and do typechecking.
	(add_atomic_size_parameter): New.  Insert size into parameter list.
	(resolve_overloaded_atomic_exchange): Restructure __atomic_exchange to
	either __atomic_exchange_n or external library call.
	(resolve_overloaded_atomic_compare_exchange): Restructure
	__atomic_compare_exchange to either _n variant or external library call.
	(resolve_overloaded_atomic_load): Restructure __atomic_load to either
	__atomic_load_n or an external library call.
	(resolve_overloaded_atomic_store): Restructure __atomic_store to either
	__atomic_store_n or an external library call.
	(resolve_overloaded_builtin): Handle new __atomic builtins.

2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR c++/50608
	* c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Call fold_offsetof_1.
	(fold_offsetof_1): Make global.  Remove STOP_REF argument and adjust.
	<INDIRECT_REF>: Return the argument.
	<ARRAY_REF>: Remove special code for negative offset.
	Call fold_build_pointer_plus instead of size_binop.
	(fold_offsetof): Remove STOP_REF argument and adjust.
	* c-common.h (fold_offsetof_1): Declare.
	(fold_offsetof): Remove STOP_REF argument.

2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
	of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
	Wnarrowing for C++0x and C++98.
	* c.opt ([Wnarrowing]): Update.

2011-11-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44277
	* c.opt: Add Wzero-as-null-pointer-constant.

2011-10-31  Jason Merrill  <jason@redhat.com>

	* c.opt (-fdeduce-init-list): Off by default.

	PR c++/50920
	* c-common.h (cxx_dialect): Add cxx11 and cxx03.
	* c.opt: Add -std=c++11, -std=gnu++11, -std=gnu++03,
	and -Wc++11-compat.
	* c-opts.c (set_std_cxx11): Rename from set_std_cxx0x.

2011-10-27  Roberto Agostino Vitillo  <ravitillo@lbl.gov>

	PR c++/30066
	* c.opt (fvisibility-inlines-hidden): Description change.

2011-10-26  Ed Smith-Rowland  <3dw4rd@verizon.net>

	Implement C++11 user-defined literals.
	* c-common.c (build_userdef_literal): New.
	* c-common.def: New tree code.
	* c-common.h (tree_userdef_literal): New tree struct and accessors.
	* c-lex.c (interpret_float): Add suffix parm.
	(c_lex_with_flags): Build literal tokens.

2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
	of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
	Wnarrowing for C++0x and C++98.
	* c.opt ([Wnarrowing]): Update.

2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
	of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
	Wnarrowing for C++0x and C++98.
	* c.opt ([Wnarrowing]): Update.

2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/45385
	* c-common.c (conversion_warning): Remove code looking for
	artificial operands.

2011-10-18  Dodji Seketeli  <dodji@redhat.com>

	PR bootstrap/50760
	* c-lex.c (fe_file_change): Use LINEMAP_SYSP when
	!NO_IMPLICIT_EXTERN_C.

2011-10-17  Michael Spertus  <mike_spertus@symantec.com>

	* c-common.c (c_common_reswords): Add __bases,
	__direct_bases.
	* c-common.h: Add RID_BASES and RID_DIRECT_BASES.

2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50757
	* c.opt ([Wnonnull]): Add C++ and Objective-C++.

2011-10-15  Tom Tromey  <tromey@redhat.com>
	    Dodji Seketeli  <dodji@redhat.com>

	* c.opt (fdebug-cpp): New option.
	* c-opts.c (c_common_handle_option): Handle the option.
	* c-ppoutput.c (maybe_print_line_1): New static function. Takes an
	output stream in parameter. Factorized from ...
	(maybe_print_line): ... this. Dump location debug information when
	-fdebug-cpp is in effect.
	(print_line_1): New static function. Takes an output stream in
	parameter. Factorized from ...
	(print_line): ... here. Dump location information when -fdebug-cpp
	is in effect.
	(scan_translation_unit): Dump location information when
	-fdebug-cpp is in effect.

2011-10-15  Tom Tromey  <tromey@redhat.com>
	    Dodji Seketeli  <dodji@redhat.com>

	* c.opt (ftrack-macro-expansion): New option. Handle it with and
	without argument.
	* c-opts.c (c_common_handle_option)<case
	OPT_ftrack_macro_expansion_, case OPT_ftrack_macro_expansion>: New
	cases. Handle -ftrack-macro-expansion with and without argument.

2011-10-15  Tom Tromey  <tromey@redhat.com>
	    Dodji Seketeli  <dodji@redhat.com>

	* c-ppoutput.c (scan_translation_unit, maybe_print_line)
	(print_line, cb_define, do_line_change): Adjust to avoid touching
	the internals of struct line_map.  Use the public API instead.
	* c-pch.c (c_common_read_pch): Likewise.
	* c-lex.c (fe_file_change): Likewise.

2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/17212
	* c.opt ([Wformat-zero-length]): Add C++ and Objective-C++.

2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/33067
	* c-pretty-print.c (pp_c_floating_constant): Output
	max_digits10 (in the ISO C++ WG N1822 sense) decimal digits.

2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* c-common.c (def_builtin_1): Delete old interface with two
	parallel arrays to hold standard builtin declarations, and replace
	it with a function based interface that can support creating
	builtins on the fly in the future.  Change all uses, and poison
	the old	names.  Make sure 0 is not a legitimate builtin index.
	* c-omp.c (c_finish_omp_barrier): Ditto.
	(c_finish_omp_taskwait): Ditto.
	(c_finish_omp_flush): Ditto.

2011-10-11  Tristan Gingold  <gingold@adacore.com>

	* c.opt: (fallow-parameterless-variadic-functions): New.

2011-09-08  Dodji Seketeli  <dodji@redhat.com>

	PR c++/33255 - Support -Wunused-local-typedefs warning
	* c-common.h (struct c_language_function::local_typedefs): New
	field.
	(record_locally_defined_typedef, maybe_record_typedef_use)
	(maybe_warn_unused_local_typedefs): Declare new functions.
	* c-common.c (record_locally_defined_typedef)
	(maybe_record_typedef_use)
	(maybe_warn_unused_local_typedefs): Define new functions.
	* c.opt: Declare new -Wunused-local-typedefs flag.

2011-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/50266
	* c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Fold offsetof-like
	computations.

2011-09-05  Richard Guenther  <rguenther@suse.de>

	* c-common.c (complete_array_type): Use ssize_int (-1) instead
	of integer_minus_one_node for empty array upper bounds.

2011-08-28  Dodji Seketeli  <dodji@redhat.com>

	* c-pch.c (c_common_read_pch): Call linemap_add with LC_ENTER as
	it's the first time it's being called on this main TU.

2011-08-24  Richard Guenther  <rguenther@suse.de>

	PR c/49396
	* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Fix conditional.

2011-08-22  Gabriel Charette  <gchare@google.com>

	* c-opts.c (c_finish_options): Force BUILTINS_LOCATION for tokens
	defined in cpp_init_builtins and c_cpp_builtins.

2011-08-19  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (c_common_reswords): Add __builtin_complex.
	* c-common.h (RID_BUILTIN_COMPLEX): New.

2011-08-18  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (c_common_reswords): Add _Noreturn.
	(keyword_is_function_specifier): Handle RID_NORETURN.
	* c-common.h (RID_NORETURN): New.

2011-08-10  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>

	* c-common.c (unsafe_conversion_p): New function. Check if it is
	unsafe to convert an expression to the type.
	(conversion_warning): Adjust, use unsafe_conversion_p.
	* c-common.h (unsafe_conversion_p): New function declaration.

2011-08-02  Jakub Jelinek  <jakub@redhat.com>

	* c-common.h (c_finish_omp_atomic): Adjust prototype.
	(c_finish_omp_taskyield): New prototype.
	* c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
	arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and
	OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC.  If LHS1
	or RHS1 have side-effects, evaluate those too in the right spot,
	if it is a decl and LHS is also a decl, error out if they
	aren't the same.
	(c_finish_omp_taskyield): New function.
	* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107.
	* c-pragma.c (omp_pragmas): Add taskyield.
	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD.
	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and
	PRAGMA_OMP_CLAUSE_MERGEABLE.

2011-07-25  Dodji Seketeli  <dodji@redhat.com>

	* c-common.h (set_underlying_type): Remove parm name from
	declaration.

2011-07-25  Romain Geissler  <romain.geissler@gmail.com>

	* c-pretty-print.h: Search c-common.h in c-family.

2011-07-22  Jason Merrill  <jason@redhat.com>

	PR c++/49793
	* c.opt (Wnarrowing): New.

	PR c++/30112
	* c-common.h: Declare c_linkage_bindings.
	* c-pragma.c (handle_pragma_redefine_extname): Use it.

	PR c++/49813
	* c-opts.c (set_std_cxx0x): Set flag_isoc94 and flag_isoc99.
	* c-pretty-print.c (pp_c_cv_qualifiers): Check c_dialect_cxx as well
	as flag_isoc99 for 'restrict'.
	(pp_c_specifier_qualifier_list): Likewise for _Complex.

2011-07-21  Ian Lance Taylor  <iant@google.com>

	PR middle-end/49705
	* c-common.c (c_disable_warnings): New static function.
	(c_enable_warnings): New static function.
	(c_fully_fold_internal): Change local unused_p to bool.  Call
	c_disable_warnings and c_enable_warnings rather than change
	c_inhibit_evaluation_warnings.

2011-07-20  Jason Merrill  <jason@redhat.com>

	PR c++/6709 (DR 743)
	PR c++/42603 (DR 950)
	* c-common.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move from cp/parser.h.
	(CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
	(CPP_DECLTYPE): New.
	* c-common.c (c_parse_error): Handle CPP_DECLTYPE.

2011-07-19  Richard Guenther  <rguenther@suse.de>

	* c-common.c (pointer_int_sum): Use fold_build_pointer_plus.
	* c-omp.c (c_finish_omp_for): Likewise.

2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_nested_types): Put semi-colon after empty loop
	body on the next line.

2011-07-08  Jason Merrill  <jason@redhat.com>

	PR c++/45437
	* c-omp.c (check_omp_for_incr_expr): Handle preevaluation.

	PR c++/49673
	* c-common.c (c_apply_type_quals_to_decl): Don't check
	TYPE_NEEDS_CONSTRUCTING.

2011-07-06  Richard Guenther  <rguenther@suse.de>

	* c-common.c (c_common_nodes_and_builtins):
	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.

2011-07-05  Richard Guenther  <rguenther@suse.de>

	* c-common.c (c_common_nodes_and_builtins): Build all common
	tree nodes first.

2011-06-27  Jakub Jelinek  <jakub@redhat.com>

	* c-common.h (c_tree_chain_next): New static inline function.

	* c-common.c (check_builtin_function_arguments): Handle
	BUILT_IN_ASSUME_ALIGNED.

2011-06-21  Andrew MacLeod  <amacleod@redhat.com>

	* c-common.c: Add sync_ or SYNC__ to builtin names.
	* c-omp.c: Add sync_ or SYNC__ to builtin names.

2011-06-20  Pierre Vittet  <piervit@pvittet.com>

	* c-pragma.h (pragma_handler_1arg, pragma_handler_2arg): New
	handler.
	(gen_pragma_handler): New union.
	(internal_pragma_handler): New type.
	(c_register_pragma_with_data)
	(c_register_pragma_with_expansion_and_data): New functions.

	* c-pragma.c (registered_pragmas, c_register_pragma_1)
	(c_register_pragma, c_register_pragma_with_expansion)
	(c_invoke_pragma_handler): Changed to work with
	internal_pragma_handler.
	(c_register_pragma_with_data)
	(c_register_pragma_with_expansion_and_data): New functions.

2011-06-14  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c: Include common/common-target.h.
	(handle_section_attribute): Use
	targetm_common.have_named_sections.
	* c-cppbuiltin.c: Include common/common-target.h.
	(c_cpp_builtins): Use targetm_common.except_unwind_info.

2011-06-10  Richard Guenther  <rguenther@suse.de>

	* c-pretty-print.c (pp_c_type_specifier): Use pp_c_identifier
	to print a IDENTIFIER_NODE.

2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Joseph Myers  <joseph@codesourcery.com>

	* c.opt (fbuilding-libgcc): New option.
	* c-cppbuiltin.c (c_cpp_builtins): Define
	__LIBGCC_TRAMPOLINE_SIZE__ if flag_building_libgcc.

2011-06-07  Jason Merrill  <jason@redhat.com>

	* c-common.c (max_tinst_depth): Lower default to 900.

	* c-format.c (gcc_cxxdiag_char_table): Add 'S' format.

2011-06-07  Richard Guenther  <rguenther@suse.de>

	* c-common.c (c_common_nodes_and_builtins): Do not set
	size_type_node or call set_sizetype.

2011-06-07  Dodji Seketeli  <dodji@redhat.com>

	PR debug/49130
	* c-pretty-print.c (pp_c_integer_constant): Consider the canonical
	type when using pointer comparison to compare types.

2011-06-02  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* c.opt: Add -Wdelete-non-virtual-dtor.
	* c-opts.c (c_common_handle_option): Include it in -Wall.

2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>

	PR bootstrap/49190

	Revert:
	2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.h (struct c_common_identifier): Inherit from tree_typed,
	not tree_common.

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

	PR c++/49165
	* c-common.c (c_common_truthvalue_conversion) <case COND_EXPR>: For
	C++ don't call c_common_truthvalue_conversion on void type arms.

2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.h (struct stmt_tree_s) [x_cur_stmt_list]: Change to a VEC.
	(stmt_list_stack): Define.
	(cur_stmt_list): Adjust for new type of x_cur_stmt_list.
	* c-semantics.c (push_stmt_list, pop_stmt_list): Likewise.

2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.c (warning_candidate_p): Check for BLOCKs.

2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.h (struct c_common_identifier): Inherit from tree_typed,
	not tree_common.

2011-05-25  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (def_fn_type): Remove extra va_end.

2011-05-23  Jason Merrill  <jason@redhat.com>

	PR c++/48106
	* c-common.c (c_common_get_narrower): New.
	(shorten_binary_op, shorten_compare, warn_for_sign_compare): Use it.

2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.h (check_function_arguments): Tweak prototype of
	check_function_arguments.
	* c-common.c (check_function_arguments): Likewise.  Adjust
	calls to check_function_nonnull, check_function_format, and
	check_function_sentinel.
	(check_function_sentinel): Take a FUNCTION_TYPE rather than
	separate attributes and typelist arguments.  Use
	FOREACH_FUNCTION_ARGS to iterate over argument types.

2011-05-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* c-common.c (c_common_reswords): Reorder.
	* c-common.h (rid): Likewise.

2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.c (def_fn_type): Don't call build_function_type, call
	build_function_type_array or build_varargs_function_type_array
	instead.
	(c_common_nodes_and_builtins): Likewise.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.c (c_add_case_label): Omit the loc argument to
	build_case_label.
	* c-common.h (build_case_label): Remove.
	* c-semantics.c (build_case_label): Remove.

2011-05-05  Joseph Myers  <joseph@codesourcery.com>

	* c-objc.h (objc_start_method_definition): Update prototype.
	* stub-objc.c (objc_start_method_definition): Add extra parameter.

2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.c (check_main_parameter_types): Reindent.  Don't use
	TYPE_ARG_TYPES directly.
	(handle_nonnull_attribute): Likewise.
	(sync_resolve_params): Likewise.
	* c-format.c (handle_format_arg_attribute): Likewise.  Adjust call
	to check_format_string.
	(handle_format_attribute): Likewise.
	(check_format_string): Take a function type to examine instead of
	a type list.  Use a function_arg_iterator to step through argument
	types.

2011-05-04  Richard Guenther  <rguenther@suse.de>

	* c-common.c (fix_string_type): Use size_int for index type bounds.
	(start_fname_decls): Do not pass NULL to build_int_cst.
	(c_init_attributes): Likewise.
	* c-lex.c (c_lex_with_flags): Likewise.

2011-04-27  Jason Merrill  <jason@redhat.com>

	* c-common.c (make_tree_vector_from_list): New.
	* c-common.h: Declare it.

2011-04-26  Richard Guenther  <rguenther@suse.de>

	PR preprocessor/48248
	* c-ppoutput.c (maybe_print_line): Always optimize newlines
	for output size with -P.

2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>

	* c-common.c (struct c_common_resword): Add __underlying_type.
	* c-common.h (enum rid): Add RID_UNDERLYING_TYPE.

2011-04-20  Jim Meyering  <meyering@redhat.com>

	* c-format.c (init_dollar_format_checking): Remove useless
	if-before-free.

2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-objc.h (objc_get_interface_ivars): Removed.
	(objc_detect_field_duplicates): New.
	* stub-objc.c: Likewise.

2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>

	* stub-objc.c (objc_declare_protocols): Renamed to
	objc_declare_protocol.
	* c-objc.h: Likewise.

2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>

	* stub-objc.c (objc_declare_class): Updated argument name.

2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.h (c_common_init_ts): Declare.
	* c-common.c (c_common_init_ts): Define.

2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-objc.h (objc_build_message_expr): Updated prototype.
	* stub-objc.c (objc_build_message_expr): Likewise.

2011-04-12  Martin Jambor  <mjambor@suse.cz>

	* c-gimplify.c (c_genericize): Call cgraph_get_create_node instead
	of cgraph_node.

2011-04-11  Richard Guenther  <rguenther@suse.de>

	* c-common.c (complete_array_type): Build a range type of
	proper type.

2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
	(handle_type_generic_attribute): Likewise.

2011-04-07  Jason Merrill  <jason@redhat.com>

	PR c++/48450
	* c-common.c (c_common_truthvalue_conversion): Don't ignore
	conversion from C++0x scoped enum.

2011-04-06  Joseph Myers  <joseph@codesourcery.com>

	* c-target-def.h: New file.
	* c-target.def: New file.
	* c-target.h: New file.
	* c-common.c (targetcm): Don't define here.
	* c-common.h (default_handle_c_option): Declare.
	* c-format.c: Include c-target.h instead of target.h.
	* c-opts.c: Include c-target.h instead of target.h.  Explicitly
	include tm.h.
	(default_handle_c_option): Move from targhooks.c.

2011-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/48248
	* c-ppoutput.c (print): Add src_file field.
	(init_pp_output): Initialize it.
	(maybe_print_line): Don't optimize by adding up to 8 newlines
	if map->to_file and print.src_file are different file.
	(print_line): Update print.src_file.

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* c-ada-spec.c (compare_comment): Use filename_cmp
	instead of strcmp for filename.

2011-03-25  Jeff Law  <law@redhat.com>

	* c-common.c (def_fn_type): Add missing va_end.

2011-03-25  Jason Merrill  <jason@redhat.com>

	* c.opt: Add -std=c++03.

2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_template): Skip non-class instances.

2011-03-17  Kai Tietz  <ktietz@redhat.com>

	PR target/12171
	* c-pretty-print.c (pp_c_specifier_qualifier_list):
	Display allowed attributes for function pointer types.
	(pp_c_attributes_display): New function to display
	attributes having affects_type_identity flag set to true.
	* c-pretty-print.h (pp_c_attributes_display): New prototype.

	* c-common.c (c_common_attribute_table):
	Add new element.
	(c_common_format_attribute_table): Likewise.

2011-03-18  Jason Merrill  <jason@redhat.com>

	* c.opt (fconstexpr-depth): Add Var(max_constexpr_depth).
	* c-common.h: Don't declare it here.
	* c-common.c: Or define it here.
	* c-opts.c (c_common_handle_option): Or set it here.

	PR c++/35315
	* c-common.c (handle_transparent_union_attribute): Don't
	make a duplicate type in C++.

2011-03-15  Jason Merrill  <jason@redhat.com>

	* c-common.c (max_constexpr_depth): New.
	* c-common.h: Declare it.
	* c-opts.c (c_common_handle_option): Set it.
	* c.opt (fconstexpr-depth): New option.

2011-03-11  Jason Merrill  <jason@redhat.com>

	* c-common.c (attribute_takes_identifier_p): Add missing const.

	PR c++/46803
	* c-common.c (attribute_takes_identifier_p): Assume that an
	unknown attribute takes an identifier.

2011-03-07  Nathan Froyd  <froydnj@codesourcery.com>

	PR c/47786
	* c-common.c (c_type_hash): Call list_length instead of iterating
	through DECL_CHAIN.  Rename 'i' to 'n_elements'.

2011-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/47809
	* c-common.c (c_fully_fold_internal): Handle VIEW_CONVERT_EXPR.

2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>

	* c.opt (fobjc-abi-version=) New.
	(fobjc-nilcheck): New.

2011-02-03  Nathan Froyd  <froydnj@codesourcery.com>

	PR c++/46890
	* c-common.h (keyword_is_decl_specifier): Declare.
	* c-common.c (keyword_is_decl_specifier): Define.
	(keyword_is_function_specifier): New function.

2011-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR c/47473
	* c-lex.c (interpret_float): If CPP_N_IMAGINARY, ensure
	EXCESS_PRECISION_EXPR is created with COMPLEX_TYPE instead of
	REAL_TYPE.

2011-01-26  Arnaud Charlet  <charlet@adacore.com>

	* c-ada-spec.c (dump_generic_ada_node): Avoid dereferencing null type.

2011-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR pch/47430
	* c-opts.c (c_common_post_options): Call c_common_no_more_pch
	after init_c_lex if pch_file is set.

2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR c++/43601
	* c.opt (-fkeep-inline-dllexport): New switch.

2011-01-12  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32511
	* c-common.c (handle_weak_attribute): Warn instead of error
	on declaring an inline function weak.

2011-01-05  Tom Tromey  <tromey@redhat.com>

	* c-common.h (lvalue_error): Update.
	* c-common.c (lvalue_error): Add 'loc' argument.  Call error_at,
	not error.

2010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR objc/47075
	* c-objc.h (objc_finish_message_expr): Added argument to
	prototype.

2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.c (handle_nonnull_attribute, handle_sentinel_attribute):
	Use prototype_p.

2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-objc.h (objc_maybe_warn_exceptions): New.
	* stub-objc.c (objc_maybe_warn_exceptions): New.

2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.h (readonly_error): Declare.
	* c-common.c (readonly_error): Define.

2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.h (invalid_indirection_error): Declare.
	* c-common.c (invalid_indirection_error): Define.

2010-12-03  Richard Guenther  <rguenther@suse.de>

	PR c/46745
	* c-pretty-print.c (pp_c_postfix_expression): Handle MEM_REF.
	(pp_c_unary_expression): Likewise.
	(pp_c_expression): Likewise.

2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-common.h (objc_finish_function): New.
	(objc_non_volatilized_type): Removed.
	(objc_type_quals_match): Removed.
	* stub-objc.c (objc_finish_function): New.
	(objc_non_volatilized_type): Removed.
	(objc_type_quals_match): Removed.

2010-11-30  Joseph Myers  <joseph@codesourcery.com>

	* c-common.h (parse_optimize_options): Declare.
	* c-cppbuiltin.c, c-format.c, c-gimplify.c, c-lex.c, c-omp.c,
	c-pch.c, c-pragma.c, c-semantics.c: Don't include toplev.h.

2010-11-29  Joseph Myers  <joseph@codesourcery.com>

	* c-opts.c (check_deps_environment_vars): Use getenv instead of
	GET_ENVIRONMENT.
	* c-pch.c (O_BINARY): Don't define here.
	* c-pragma.h: Include "cpplib.h" instead of <cpplib.h>.

2010-11-25  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (c_cpp_builtins): Pass &global_options to
	targetm.except_unwind_info.

2010-11-23  Joseph Myers  <joseph@codesourcery.com>

	* c-opts.c (c_common_handle_option): Pass location to
	set_struct_debug_option.

2010-11-23  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (visibility_options): Move from ../opts.c.
	* c-common.h (struct visibility_flags, visibility_options):
	Declare here.
	* c-opts.c (finish_options): Rename to c_finish_options.
	(c_common_init): Update call to finish_options.

2010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR objc/34033
	* c-lex.c (lex_string): Check that each string in an Objective-C
	string concat sequence starts with either one or zero '@', and
	that there are no spurious '@' signs at the end.

2010-11-20  Joseph Myers  <joseph@codesourcery.com>

	* c-pragma.c: Remove conditionals on HANDLE_PRAGMA_PACK,
	HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_PRAGMA_WEAK and
	HANDLE_PRAGMA_VISIBILITY.
	* c-pragma.h (HANDLE_PRAGMA_WEAK, HANDLE_PRAGMA_PACK,
	HANDLE_PRAGMA_VISIBILITY): Don't define.
	(HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Don't test.

2010-11-20  Nathan Froyd  <froydnj@codesourcery.com>

	PR c++/16189
	PR c++/36888
	PR c++/45331
	* c-common.h (keyword_begins_type_specifier): Declare.
	(keyword_is_storage_class_specifier): Declare.
	(keyword_is_type_qualifier): Declare.
	* c-common.c (keyword_begins_type_specifier): New function.
	(keyword_is_storage_class_specifier): New function.
	(keyword_is_type_qualifier): Declare.

2010-11-19  Joseph Myers  <joseph@codesourcery.com>

	PR c/46547
	* c-common.c (in_late_binary_op): Define.
	(c_common_truthvalue_conversion): Check in_late_binary_op before
	calling c_save_expr.
	* c-common.h (in_late_binary_op): Declare.

2010-11-19  Joseph Myers  <joseph@codesourcery.com>

	* c-opts.c (c_common_handle_option): Update calls to
	set_struct_debug_option.

2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-common.h (objc_declare_protocols): Added additional argument.
	* stub-objc.c (objc_declare_protocol): Same change.

2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>

	PR c/33193
	* c-common.h (build_real_imag_expr): Declare.
	* c-semantics.c (build_real_imag_expr): Define.

2010-11-17  Joseph Myers  <joseph@codesourcery.com>

	* c-opts.c (c_common_parse_file): Take no arguments.
	* c-common.h (c_common_parse_file): Update prototype.

2010-11-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/46401
	* c-common.c (warning_candidate_p): Don't track non-const calls
	or STRING_CSTs.

2010-11-15  Ian Lance Taylor  <iant@google.com>

	* c-lex.c (init_c_lex): Set macro debug callbacks if
	flag_dump_go_spec is set.

2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-common.h (objc_build_incr_expr_for_property_ref): New.
	* stub-objc.c (objc_build_incr_expr_for_property_ref): New.

2010-11-15  Nathan Froyd  <froydnj@codesourcery.com>

	PR preprocessor/45038
	* c-cppbuiltin.c (c_cpp_builtins): Use different format for C++
	dialects.

2010-11-12  Joseph Myers  <joseph@codesourcery.com>

	* c-common.h (c_family_lang_mask): Declare.
	* c-opts.c (c_family_lang_mask): Make extern.
	* c-pragma.c (handle_pragma_diagnostic): Use
	control_warning_option.

2010-11-12  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (parse_optimize_options): Update call to
	decode_options.
	* c-common.h (c_common_handle_option): Update prototype.
	* c-opts.c (c_common_handle_option): Take location_t parameter and
	pass it to other functions.

2010-11-11  Joseph Myers  <joseph@codesourcery.com>

	* c-opts.c (warning_as_error_callback): Remove.
	(c_common_initialize_diagnostics): Don't call
	register_warning_as_error_callback.
	(c_common_handle_option): Handle -Werror=normalized= here.

2010-11-10  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (handle_mode_attribute): Use %' and word "signedness"
	in diagnostic.
	* c-opts.c (c_common_parse_file): Start diagnostics with lowercase
	letter.
	* c-pragma.c (handle_pragma_target, handle_pragma_optimize):
	Remove trailing '.' from diagnostics.
	* c.opt (Wwrite-strings_: Avoid '`' in help text.

2010-11-10  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (parse_optimize_options): Pass global_dc to
	decode_options.
	* c-opts.c (c_common_handle_option): Pass &global_options to
	set_Wstrict_aliasing.
	* c.opt (v): Don't mark Common or document here.

2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>

	PR target/44981
	* c-format.c (format_type): New type gcc_objc_string_format_type.
	(valid_stringptr_type_p): New.
	(handle_format_arg_attribute): Use valid_stringptr_type_p ().
	(check_format_string): Pass expected type, use
	valid_stringptr_type_p (), check that the format string types are
	consistent with the format specification.
	(decode_format_attr): Warn if NSString is used outside objective-c.
	(format_types_orig): Add NSString.
	(format_name): New.
	(format_flags): New.
	(check_format_arg): Handle format strings requiring an external parser.
	first_target_format_type: New variable.
	(handle_format_attribute): Set up first_target_format_type, pass the
	expected format arg string type to check_format_string().
	* c-common.h (FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL):  New flag.
	* stub-objc.c (objc_string_ref_type_p): New.
	(objc_check_format_arg): New.

2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>

	Fixed using the Objective-C 2.0 dot-syntax with class names.
	* c-common.h (objc_build_class_component_ref): New.
	* stub-objc.c (objc_build_class_component_ref): New.

2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c.opt (Wproperty-assign-default): New option.

2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>

	Implemented -fobjc-std=objc1 flag.
	* c.opt (fobjc-std=objc1): New option.

2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>

	Implemented format and noreturn attributes for Objective-C methods.
	* c-common.c (handle_noreturn_attribute): Recognize 'noreturn'
	attribute for Objective-C methods.

2010-10-31  Jason Merrill  <jason@redhat.com>

	* c-common.c (conversion_warning, warn_for_collisions_1): Use
	EXPR_LOC_OR_HERE.

2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>

	Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
	* c-common.h (enum rid): Removed RID_COPIES and RID_IVAR.
	(objc_add_property_declaration): Removed arguments for copies and
	ivar.
	(objc_build_getter_call): Renamed to
	objc_maybe_build_component_ref.
	(objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
	(objc_is_property_ref): New.
	* c-common.c (c_common_reswords): Removed copies and ivar.
	* stub-objc.c (objc_add_property_declaration): Removed arguments
	for copies and ivar.
	(objc_build_getter_call): Renamed to
	objc_maybe_build_component_ref.
	(objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
	(objc_is_property_ref): New.

2010-10-29  Arnaud Charlet  <charlet@adacore.com>
	    Matthew Gingell  <gingell@adacore.com>

	* c-ada-spec.c (separate_class_package): New function.
	(pp_ada_tree_identifier): Prefix references to C++ classes with the
	name of their enclosing package.
	(print_ada_declaration): Use separate_class_package.

2010-10-27  Jason Merrill  <jason@redhat.com>

	* c-common.c (c_common_reswords): Add __is_literal_type.
	* c-common.h (enum rid): Add RID_IS_LITERAL_TYPE.

	* c-common.c (check_case_value): Remove special C++ code.

2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-common.h (enum rid): Added RID_READWRITE, RID_ASSIGN,
	RID_RETAIN, RID_COPY and RID_NONATOMIC.  Updated RID_FIRST_PATTR
	and RID_LAST_PATTR.
	(objc_add_property_declaration): Added additional arguments.
	(objc_property_attribute_kind): Removed.
	(objc_set_property_attr): Removed.
	* c-common.c (c_common_reswords): Added readwrite, assign, retain,
	copy and nonatomic.
	* stub-objc.c (objc_add_property_declaration): Added additional
	arguments.
	(objc_set_property_attr): Removed.

2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-common.h (objc_add_property_variable): Renamed to
	objc_add_property_declaration.  Added location argument.
	* stub-objc.c (objc_add_property_variable): Same change.

2010-10-23  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-common.h (objc_maybe_printable_name): New.
	* stub-objc.c (objc_maybe_printable_name): New.

2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
	    Andrew Pinski  <pinskia@gmail.com>

	* c-common.h (c_common_mark_addressable_vec): Declare.
	* c-common.c (c_common_mark_addressable_vec): New function.

2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-common.h (objc_set_method_type): Removed.
	(objc_add_method_declaration): Added boolean argument.
	(objc_start_method_definition): Same change.
	(objc_build_method_signature): Same change.
	* stub-objc.c (objc_set_method_type): Removed.
	(objc_add_method_declaration): Added boolean argument.
	(objc_start_method_definition): Same change.
	(objc_build_method_signature): Same change.

2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-common.h (finish_file): Removed.
	(objc_write_global_declarations): New.
	* c-opts.c (c_common_parse_file): Do not call finish_file.
	* stub-objc.c (objc_write_global_declarations): New.

2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	Implemented parsing @synthesize and @dynamic for
	Objective-C/Objective-C++.
	* c-common.h (enum rid): Add RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
	(objc_add_synthesize_declaration): New.
	(objc_add_dynamic_declaration): New.
	* c-common.c (c_common_reswords): Add synthesize and dynamic.
	* stub-objc.c (objc_add_synthesize_declaration): New.
	(objc_add_dynamic_declaration): New.

2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/46041
	* c-cppbuiltin.c (mode_has_fma): Move function here from
	builtins.c.  Don't use the fma optab, instead just use the
	HAVE_fma* macros, so that __FP_FAST_FMA* will be defined when
	using -save-temps.

2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	Merge from 'apple/trunk' branch on FSF servers.

	2005-11-08  Fariborz Jahanian  <fjahanian@apple.com>

	Radar 4330422
	* c-common.h (objc_non_volatilized_type): New declaration
	* stub-objc.c (objc_non_volatilized_type): New stub.

2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>

	Merge from 'apple/trunk' branch on FSF servers.

	2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>

	Radar 4133425
	* c-common.h (objc_diagnose_private_ivar): New decl.
	* stub-objc.c (objc_diagnose_private_ivar): New stub.

2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>

	* c-common.c (c_common_reswords): Add package, RID_AT_PACKAGE.
	* c-common.h (enum rid): Add RID_AT_PACKAGE.
	(objc_ivar_visibility_kind): New enum.
	(objc_set_visibility): Adjust prototype to use visibility enum.
	* stub-objc.c (objc_set_visibility): Adjust stub to use
	visibility enum.

2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* c-cppbuiltin.c (builtin_define_float_constants): Emit
	__FP_FAST_FMA, __FP_FAST_FMAF, and __FP_FAST_FMAL if the machine
	has the appropriate fma builtins.
	(c_cpp_builtins): Adjust call to builtin_define_float_constants.

2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>

	merge from FSF apple 'trunk' branch.
	2006 Fariborz Jahanian  <fjahanian@apple.com>

	Radars 4436866, 4505126, 4506903, 4517826
	* c-common.c (c_common_resword): Define @property and its attributes.
	* c-common.h: Define property attribute enum entries.
	(OBJC_IS_PATTR_KEYWORD): New.
	(objc_property_attribute_kind): New enum.
	Declare objc_set_property_attr (), objc_add_property_variable (),
	objc_build_getter_call () and objc_build_setter_call ().
	* stub-objc.c (objc_set_property_attr): New stub.
	(objc_add_property_variable): Likewise.
	(objc_build_getter_call): Likewise.
	(objc_build_setter_call) Likewise.

2010-10-13  Iain Sandoe  <iains@gcc.gnu.org>

	merge from FSF apple 'trunk' branch.
	2006-04-26 Fariborz Jahanian  <fjahanian@apple.com>

	Radar 3803157 (method attributes)
	* c-common.c (handle_deprecated_attribute): Recognize
	objc methods as valid declarations.
	* c-common.h: Declare objc_method_decl ().
	* stub-objc.c (objc_method_decl): New stub.

2010-10-08  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (parse_optimize_options): Call
	decode_cmdline_options_to_array_default_mask before
	decode_options.  Update arguments to decode_options.
	* c-common.h (c_common_init_options_struct): Declare.
	* c-opts.c (c_common_init_options_struct): New.  Split out from
	c_common_init_options.

2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>

	Implemented fast enumeration for Objective-C.
	* c-common.h (objc_finish_foreach_loop): New.
	* stub-objc.c (objc_finish_foreach_loop): New.

2010-10-05  Joseph Myers  <joseph@codesourcery.com>

	* c-common.h (struct diagnostic_context): Don't declare here.
	(c_common_initialize_diagnostics): Declare using
	diagnostic_context typedef.
	* c-opts.c (c_common_handle_option): Pass global_dc to
	handle_generated_option.

2010-10-04  Joseph Myers  <joseph@codesourcery.com>

	* c-opts.c (c_common_handle_option): Pass &global_options_set to
	handle_generated_option.

2010-10-03  Ian Lance Taylor  <iant@google.com>

	* c.opt (-fplan9-extensions): New option.

2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* c-cppbuiltin.c (define__GNUC__, builtin_define_type_precision):
	Remove.
	(c_cpp_builtins): Call functions from cppbuiltin.c instead
	of duplicating code.

2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>

	* c-common.c: Add two new entries for @optional
	and @required keywords.

	merge from FSF 'apple/trunk' branch.
	2006-01-30  Fariborz Jahanian  <fjahanian@apple.com>

	Radar 4386773
	* c-common.h (RID_AT_OPTIONAL, RID_AT_REQUIRED): Two new
	objective-c keywords.
	(objc_set_method_opt): New declaration.
	* stub-objc.c (objc_set_method_opt): New stub.

2010-09-30  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (handle_optimize_attribute): Pass &global_options to
	cl_optimization_save and cl_optimization_restore.
	* c-opts.c (c_common_handle_option): Pass &global_options to
	handle_generated_option.
	* c-pragma.c (handle_pragma_diagnostic): Use option_flag_var.
	(handle_pragma_pop_options, handle_pragma_reset_options): Pass
	&global_options to cl_optimization_restore.

2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-lex.c (c_lex_with_flags): Updated comments for CPP_AT_NAME
	Objective-C/Objective-C++ keywords.

2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>

	Merge from 'apple/trunk' branch on FSF servers.

	2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>

	Radar 4281748
	* c-common.h (objc_check_global_decl): New declaration.
	* stub-objc.c (objc_check_global_decl): New stub.

2010-09-29  Joseph Myers  <joseph@codesourcery.com>

	* c.opt: Don't use VarExists.

2010-09-29  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (c_cpp_error): Update names of diagnostic_context
	members.
	* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Update names of
	cl_optimization members.
	* c-opts.c (warning_as_error_callback, c_common_handle_option,
	sanitize_cpp_opts, finish_options): Update names of cpp_options
	members.

2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-common.h (OBJC_IS_CXX_KEYWORD): New macro.  Updated comments.
	(objc_is_reserved_word): Removed.
	* c-common.c: Updated comments.
	* c-lex.c (c_lex_with_flags): Use OBJC_IS_CXX_KEYWORD instead of
	objc_is_reserved_word.
	* stub-objc.c (objc_is_reserved_word): Removed.

2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>

	* c-common.h (objc_add_method_declaration): Adjust prototype to
	include attributes.
	(objc_start_method_definition): Likewise.
	(objc_build_keyword_decl): Likewise.
	* stub-objc.c:(objc_add_method_declaration): Handle attributes.
	(objc_start_method_definition): Likewise.
	(objc_build_keyword_decl): Likewise.

2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>

	* c-common.h (objc_start_class_interface): Adjust prototype.
	(objc_start_category_interface): Likewise.
	(objc_start_protocol): Likewise.
	* stub-objc.c (objc_start_protocol): Adjust for extra argument.
	(objc_start_class_interface): Likewise.
	(objc_start_category_interface): Likewise.

2010-09-27  Ian Lance Taylor  <iant@google.com>

	* c-common.c (c_common_attribute_table): Add no_split_stack.
	(handle_no_split_stack_attribute): New static function.

2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>

	Merge from 'apple/trunk' branch on FSF servers.

	2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>

	Radar 4229905
	* c-common.h (objc_have_common_type): New declaration.
	* stub-objc.c (objc_have_common_type): New stub.

	2005-06-22  Ziemowit Laski  <zlaski@apple.com>

	Radar 4154928
	* c-common.h (objc_common_type): New prototype.
	* stub-objc.c (objc_common_type): New stub.

2010-09-24  Jan Hubicka  <jh@suse.cz>

	* c-common.c (handle_leaf_attribute): New function.
	(struct attribute_spec c_common_att): Add leaf.

2010-09-22  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (-all-warnings, -ansi, -assert, -assert=, -comments,
	-comments-in-macros, -define-macro, -define-macro=, -dependencies,
	-dump, -dump=, -imacros, -imacros=, -include, -include=,
	-include-barrier, -include-directory, -include-directory=,
	-include-directory-after, -include-directory-after=,
	-include-prefix, -include-prefix=, -include-with-prefix,
	-include-with-prefix=, -include-with-prefix-after,
	-include-with-prefix-after=, -include-with-prefix-before,
	-include-with-prefix-before=, -no-integrated-cpp,
	-no-line-commands, -no-standard-includes, -no-warnings, -output,
	-output=, -pedantic, -pedantic-errors, -preprocess,
	-print-missing-file-dependencies, -trace-includes, -traditional,
	-traditional-cpp, -trigraphs, -undefine-macro, -undefine-macro=,
	-user-dependencies, -verbose, -write-dependencies,
	-write-user-dependencies, no-integrated-cpp, traditional): New.

2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR objc/23710
	* c-common.h (objc_start_method_definition): Return bool instead
	of void.
	* stub-objc.c (objc_start_method_definition): Return bool instead
	of void.

2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR objc/25965
	* c-common.h (objc_get_interface_ivars): New declaration.
	* stub-objc.c (objc_get_interface_ivars): New stub.

2010-09-15  Ian Lance Taylor  <iant@google.com>

	* c-common.c (parse_optimize_options): Do not capitalize warning
	messages.  Remove period at end of warning message.

2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>

	* c-common.c (handle_alias_ifunc_attribute): New, broken out of	...
	(handle_alias_attribute): ... here.
	(handle_ifunc_attribute): New.

2010-09-06  Mark Mitchell  <mark@codesourcery.com>

	* c-common.h (do_warn_double_promotion): Declare.
	* c-common.c (do_warn_double_promotion): Define.

2010-09-05  Mark Mitchell  <mark@codesourcery.com>

	* c.opt (Wdouble-promotion): New.

2010-09-02  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (falt-external-templates, fhuge-objects, fvtable-gc,
	fvtable-thunks, fxref): Mark no longer supported in help text.

2010-09-02  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (Wimport, fall-virtual, falt-external-templates,
	fdefault-inline, fenum-int-equiv, fexternal-templates,
	fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
	fname-mangling-version-, fnew-abi, fnonnull-objects,
	foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
	fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
	applicable.
	(fhandle-exceptions): Mark with Alias and Warn.
	* c-opts.c (c_common_handle_option): Don't handle options marked
	as ignored.

2010-09-02  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (Wcomments, Werror-implicit-function-declaration,
	ftemplate-depth-, std=c89, std=c9x, std=gnu89, std=gnu9x,
	std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Mark as
	aliases.
	* c-common.c (option_codes): Use OPT_Wcomment instead of
	OPT_Wcomments.
	* c-opts.c (warning_as_error_callback, c_common_handle_option):
	Don't handle options marked as aliases.

2010-08-25  Richard Guenther  <rguenther@suse.de>

	* c-common.c (c_common_get_alias_set): Remove special
	handling for pointers.

2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.c: Use FOR_EACH_VEC_ELT.
	* c-gimplify.c: Likewise.
	* c-pragma.c: Likewise.

2010-08-16  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
	RejectDriver.
	(MMDX): Change back to MMD.  Mark NoDriverArg instead of
	RejectDriver.
	* c-opts.c (c_common_handle_option): Use OPT_MD and OPT_MMD
	instead of OPT_MDX and OPT_MMDX.

2010-08-16  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.

2010-08-12  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (MD, MMD): Change to MDX and MMDX.
	* c-opts.c (c_common_handle_option): Use OPT_MMD and OPT_MMDX.

2010-08-11  Joseph Myers  <joseph@codesourcery.com>

	* c-opts.c (c_common_handle_option): Call handle_generated_option
	instead of handle_option.

2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>

	* c-pragma.c (add_to_renaming_pragma_list): Fix call to VEC_safe_push.
	(maybe_apply_renaming_pragma): Delete unneeded declarations.

2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>

	* c-pragma.c (pending_redefinition): Declare.  Declare a VEC of it.
	(pending_redefine_extname): Change type to a VEC.
	(add_to_renaming_pragma_list): Update for new type of
	pending_redefine_extname.
	(maybe_apply_renaming_pragma): Likewise.

2010-08-04  Arnaud Charlet  <charlet@adacore.com>

	* c-ada-spec.c (dump_ada_template): Mark underlying instance type as
	visited.
	(dump_generic_ada_node): Code clean up. Use TREE_VISITED flag to
	decide whether a type has already been declared/seen.
	Do not go to the original type.
	(dump_nested_types): New parameter forward.
	Generate forward declaration if needed and mark type as visited.
	(print_ada_declaration): Call dump_nested_types if not already done.
	Mark types as visited.

2010-08-03  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (-print-pch-checksum): Remove option.
	* c-opts.c (c_common_handle_option): Don't handle
	OPT_print_pch_checksum.

2010-07-27  Joseph Myers  <joseph@codesourcery.com>

	* c-common.h (c_common_handle_option): Update prototype and return
	value type.
	* c-opts.c (c_common_handle_option): Update prototype and return
	value type.  Update calls to handle_option and
	enable_warning_as_error.

2010-07-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/45079
	* c-pretty-print.c (pp_c_expression): Handle C_MAYBE_CONST_EXPR.

2010-07-27  Joseph Myers  <joseph@codesourcery.com>

	* c-common.h (c_common_missing_argument): Remove.
	* c-opts.c (c_common_missing_argument): Remove.
	* c.opt (A, D, F, I, MD, MMD, MQ, MT, U, fconstant-string-class=,
	idirafter, imacros, include, isysroot, isystem, iquote): Add
	MissingArgError.
	* c-objc-common.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.

2010-07-27  Joseph Myers  <joseph@codesourcery.com>

	* c-common.h (c_common_option_lang_mask,
	c_common_initialize_diagnostics, c_common_complain_wrong_lang_p):
	New.
	(c_common_init_options): Update prototype.
	* c-opts.c (c_common_option_lang_mask): New.
	(c_common_initialize_diagnostics): Split out of
	c_common_init_options.
	(accept_all_c_family_options, c_common_complain_wrong_lang_p):
	New.
	(c_common_init_options): Update prototype.  Use decoded options in
	search for -lang-asm.

2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
	* c-format.c: Likewise.

2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-common.h: Include diagnostic-core.h. Error if already
	included.
	* c-semantics.c: Do not define GCC_DIAG_STYLE here.

2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-common.c (IN_GCC_FRONTEND): Do not undef.
	Do not include expr.h
	(vector_mode_valid_p): Move here.

2010-06-21  DJ Delorie  <dj@redhat.com>

	* c-pragma.c (handle_pragma_diagnostic): Add push/pop,
	allow these pragmas anywhere.

2010-06-14  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/44509
	* c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
	(lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
	(lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
	ggc_strdup instead of xstrdup.

2010-06-10  Jakub Jelinek  <jakub@redhat.com>

	* c-cppbuiltin.c: Include cpp-id-data.h.
	(lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
	(lazy_hex_fp_value): New function.
	(builtin_define_with_hex_fp_value): Provide definitions lazily.

2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-gimplify.c: Do not include tree-flow.h

2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR other/44034
	* c-common.c: Rename targetm member:
	targetm.enum_va_list -> targetm.enum_va_list_p

2010-06-28  Anatoly Sokolov  <aesok@post.ru>

	* c-common.c (shorten_compare): Adjust call to force_fit_type_double.

2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>

	* c-cppbuiltin.c: Do not include except.h.

2010-06-24  Andi Kleen  <ak@linux.intel.com>

	* c-common.c (warn_for_omitted_condop): New.
	* c-common.h (warn_for_omitted_condop): Add prototype.

2010-06-21  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (lang-objc): Remove.
	* c-opts.c (c_common_handle_option): Don't handle OPT_lang_objc.

2010-06-21  Joern Rennecke  <joern.rennecke@embecosm.com>

	* c-opts.c: Include "tm_p.h".

2010-06-20  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (parse_optimize_options): Update call to
	decode_options.

2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.c (record_types_used_by_current_var_decl): Adjust for
	new type of types_used_by_cur_var_decl.

2010-06-17  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR bootstrap/44512
	* c-cppbuiltin.c (builtin_define_with_hex_fp_value): Add cast
	for C++ standard compliance.

2010-06-16  Jason Merrill  <jason@redhat.com>

	* c.opt: Add -Wnoexcept.

2010-06-16  Richard Guenther  <rguenther@suse.de>

	PR c/44555
	* c-common.c (c_common_truthvalue_conversion): Remove
	premature and wrong optimization concering ADDR_EXPRs.

2010-06-15  Arnaud Charlet  <charlet@adacore.com>

	* c-ada-spec.c (dump_sloc): Remove column info.
	(is_simple_enum): New function.
	(dump_generic_ada_node, print_ada_declaration): Map C enum types to Ada
	enum types when relevant.

2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-common.c (conversion_warning): Warn at expression
	location.

2010-06-10  Joseph Myers  <joseph@codesourcery.com>

	* c-opts.c (c_common_handle_option): Don't handle
	OPT_fshow_column.

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* c-pragma.c (push_alignment): Use typed GC allocation.
	(handle_pragma_push_options): Likewise.

	* c-common.c (parse_optimize_options): Likewise.

	* c-common.h (struct sorted_fields_type): Add variable_size GTY
	option.

2010-06-07  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (flag_preprocess_only, flag_undef, flag_no_builtin,
	flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
	flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
	flag_signed_bitfields, warn_strict_null_sentinel,
	flag_nil_receivers, flag_zero_link, flag_replace_objc_classes,
	flag_gen_declaration, flag_no_gnu_keywords,
	flag_implement_inlines, flag_implicit_templates,
	flag_implicit_inline_templates, flag_optional_diags,
	flag_elide_constructors, flag_default_inline, flag_rtti,
	flag_conserve_space, flag_access_control, flag_check_new,
	flag_new_for_scope, flag_weak, flag_working_directory,
	flag_use_cxa_atexit, flag_use_cxa_get_exception_ptr,
	flag_enforce_eh_specs, flag_threadsafe_statics,
	flag_pretty_templates): Remove.
	* c-common.h (flag_preprocess_only, flag_nil_receivers,
	flag_objc_exceptions, flag_objc_sjlj_exceptions, flag_zero_link,
	flag_replace_objc_classes, flag_undef, flag_no_builtin,
	flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
	flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
	flag_const_strings, flag_signed_bitfields, flag_gen_declaration,
	flag_no_gnu_keywords, flag_implement_inlines,
	flag_implicit_templates, flag_implicit_inline_templates,
	flag_optional_diags, flag_elide_constructors, flag_default_inline,
	flag_rtti, flag_conserve_space, flag_access_control,
	flag_check_new, flag_new_for_scope, flag_weak,
	flag_working_directory, flag_use_cxa_atexit,
	flag_use_cxa_get_exception_ptr, flag_enforce_eh_specs,
	flag_threadsafe_statics, flag_pretty_templates,
	warn_strict_null_sentinel): Remove.
	* c.opt (E, Wstrict-null-sentinel, faccess-control, fasm,
	fbuiltin, fcheck-new, fconserve-space, felide-constructors,
	fenforce-eh-specs, ffor-scope, fgnu-keywords, fimplement-inlines,
	fimplicit-inline-templates, fimplicit-templates,
	flax-vector-conversions, fms-extensions, fnil-receivers,
	fnonansi-builtins, fpretty-templates, freplace-objc-classes,
	frtti, fshort-double, fshort-enums, fshort-wchar,
	fsigned-bitfields, fsigned-char, fstats, fthreadsafe-statics,
	funsigned-bitfields, funsigned-char, fuse-cxa-atexit,
	fuse-cxa-get-exception-ptr, fweak, fworking-directory, fzero-link,
	gen-decls, undef): Use Var.
	(fdefault-inline, foptional-diags): Document as doing nothing.
	* c-opts.c (c_common_handle_option): Remove cases for options now
	using Var.  Mark ignored options as such.

2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>

	* c-common.c: Moved to here from parent directory.
	* c-common.def: Likewise.
	* c-common.h: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-dump.c: Likewise.
	* c-format.c: Likewise.
	* c-format.h : Likewise.
	* c-gimplify.c: Likewise.
	* c-lex.c: Likewise.
	* c-omp.c: Likewise.
	* c.opt: Likewise.
	* c-opts.c: Likewise.
	* c-pch.c: Likewise.
	* c-ppoutput.c: Likewise.
	* c-pragma.c: Likewise.
	* c-pragma.h: Likewise.
	* c-pretty-print.c: Likewise.
	* c-pretty-print.h: Likewise.
	* c-semantics.c: Likewise.
	* stub-objc.c: Likewise.

	* c-common.c: Include gt-c-family-c-common.h.
	* c-pragma.c: Include gt-c-family-c-pragma.h.

Copyright (C) 2010-2019 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.
