2022-05-27  Release Manager

	* GCC 9.5.0 released.

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

	Backported from master:
	2022-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/105186
	* c-common.c (c_common_nodes_and_builtins): After registering __int%d
	and __int%d__ builtin types, initialize corresponding ridpointers
	entry.

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

	Backported from master:
	2022-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/104711
	* c-opts.c (c_common_post_options): Don't enable
	-Wshift-negative-value from -Wextra for C++20 or later.
	* c-ubsan.c (ubsan_instrument_shift): Adjust comments.
	* c-warn.c (maybe_warn_shift_overflow): Use TYPE_OVERFLOW_WRAPS
	instead of TYPE_UNSIGNED.

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

	Backported from master:
	2022-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR c/104510
	* c-common.c (shorten_compare): Convert original arguments to
	the original *restype_ptr when mixing binary and decimal float.

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

	Backported from master:
	2021-10-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/64888
	* c-omp.c (c_omp_predefined_variable): Return true also for
	ubsan_create_data created artificial variables.

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

	Backported from master:
	2021-10-01  Jakub Jelinek  <jakub@redhat.com>
		    Richard Biener  <rguenther@suse.de>

	PR sanitizer/102515
	* c-ubsan.c (ubsan_instrument_division): Check the right
	flag_sanitize_recover bit, depending on which sanitization
	is done.

2021-06-01  Release Manager

	* GCC 9.4.0 released.

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.
