2022-10-28  Joseph Myers  <joseph@codesourcery.com>

	* c-common.cc (def_fn_type): Call build_function_type for
	zero-argument variable-argument function.
	(c_common_nodes_and_builtins): Build default_function_type with
	build_function_type.
	* c.opt (fallow-parameterless-variadic-functions): Mark as ignored
	option.

2022-10-28  Joseph Myers  <joseph@codesourcery.com>

	PR c/61469
	* c-common.h (ENUM_UNDERLYING_TYPE, ENUM_FIXED_UNDERLYING_TYPE_P):
	New.  Moved from cp/cp-tree.h.
	* c-warn.cc (warnings_for_convert_and_check): Do not consider
	conversions to enum with underlying type bool to overflow.

2022-10-26  Marek Polacek  <polacek@redhat.com>

	PR c++/106393
	* c.opt (Wdangling-reference): New.

2022-10-19  Joseph Myers  <joseph@codesourcery.com>

	* c-format.h (enum format_lengths): Add FMT_LEN_w8, FMT_LEN_w16,
	FMT_LEN_w32, FMT_LEN_w64, FMT_LEN_wf8, FMT_LEN_wf16, FMT_LEN_wf32
	and FMT_LEN_wf64.
	(NOARGUMENTS, NOLENGTHS): Update definitions.
	(T_I8, T2X_I8, T_I16, T2X_I16, T_I32, T2X_I32, T_I64, T2X_I64)
	(T_U8, T2X_U8, T_U16, T2X_U16, T_U32, T2X_U32, T_U64, T2X_U64)
	(T_IF8, T2X_IF8, T_IF16, T2X_IF16, T_IF32, T2X_IF32, T_IF64)
	(T2X_IF64, T_UF8, T2X_UF8, T_UF16, T2X_UF16, T_UF32, T2X_UF32)
	(T_UF64, T2X_UF64): New macros.
	* c-format.cc (printf_length_specs, scanf_length_specs): Add wN
	and wfN length modifiers.
	(print_char_table, scan_char_table): Add entries using wN and wfN
	length modifiers.

2022-10-18  Joseph Myers  <joseph@codesourcery.com>

	PR c/36113
	* c-common.cc (c_common_type_for_size): Add fallback to
	widest_unsigned_literal_type_node or
	widest_integer_literal_type_node for precision that may not
	exactly match the precision of those types.

2022-10-14  Jakub Jelinek  <jakub@redhat.com>

	* c-cppbuiltin.cc (c_cpp_builtins): If bfloat16_type_node,
	predefine __BFLT16_*__ macros and for C++23 also
	__STDCPP_BFLOAT16_T__.  Predefine bfloat16_type_node related
	macros for -fbuilding-libgcc.
	* c-lex.cc (interpret_float): Handle CPP_N_BFLOAT16.

2022-10-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/323
	PR c++/107097
	* c-common.def (EXCESS_PRECISION_EXPR): Remove comment part about
	the tree being specific to C/ObjC.
	* c-opts.cc (c_common_post_options): Handle flag_excess_precision
	in C++ the same as in C.
	* c-lex.cc (interpret_float): Set const_type to excess_precision ()
	even for C++.

2022-10-13  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.cc (builtin_define_float_constants): Do not use
	value 2 for *_IS_IEC_60559.

2022-10-12  Lewis Hyatt  <lhyatt@gmail.com>

	PR preprocessor/60014
	PR preprocessor/60723
	* c-ppoutput.cc (class token_streamer): Remove member
	line_marker_emitted to...
	(token_streamer::stream): ...a local variable here. Set
	print.prev_was_system_token on all code paths.

2022-10-10  Nathan Sidwell  <nathan@acm.org>

	* c-opts.cc (c_common_post_options): Bump abi to 18.

2022-10-10  Marek Polacek  <polacek@redhat.com>

	PR c++/106937
	* c-pretty-print.cc (pp_c_specifier_qualifier_list): Print only GNU
	attributes here.
	(c_pretty_printer::direct_abstract_declarator): Print the standard [[]]
	attributes here.
	(pp_c_attributes): Remove.
	(pp_c_attributes_display): Print the [[]] form if appropriate.  Use
	get_attribute_name.  Don't print a trailing space when printing the
	[[]] form.
	* c-pretty-print.h (pp_c_attributes): Remove.

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

	* c-attribs.cc (handle_strict_flex_array_attribute): New function.
	(c_common_attribute_table): New item for strict_flex_array.
	* c.opt: (fstrict-flex-arrays): New option.
	(fstrict-flex-arrays=): New option.

2022-10-07  Martin Liska  <mliska@suse.cz>

	* name-hint.h: Use std::move.

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

	* c-common.cc (attribute_fallthrough_p): Lookup fallthrough attribute
	only in gnu namespace or as standard attribute, treat fallthrough
	attributes in other namespaces like any other unknown attribute.

2022-10-06  Joseph Myers  <joseph@codesourcery.com>

	* c-common.cc (c_common_reswords): Mark typeof as D_EXT11.  Add
	typeof_unqual.
	* c-common.h (enum rid): Add RID_TYPEOF_UNQUAL.
	(D_EXT11): New macro.  Values of subsequent macros updated.

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

	PR c++/106654
	* c-attribs.cc (handle_assume_attribute): New function.
	(c_common_attribute_table): Add entry for assume attribute.
	* c-lex.cc (c_common_has_attribute): Handle
	__have_cpp_attribute (assume).

2022-10-04  Jakub Jelinek  <jakub@redhat.com>

	* c-omp.cc (c_omp_directives): Uncomment begin declare target
	entry.

2022-10-03  Patrick Palka  <ppalka@redhat.com>

	* c-common.cc (c_common_reswords): Use RID_IS_SAME instead of
	RID_IS_SAME_AS.

2022-10-03  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.cc (builtin_define_float_constants): Do not
	special-case __*_EPSILON__ setting for IBM long double for C2x.

2022-09-30  Patrick Palka  <ppalka@redhat.com>

	* c-common.cc (c_common_reswords): Use cp/cp-trait.def to handle
	C++ traits.
	* c-common.h (enum rid): Likewise.

2022-09-29  Joseph Myers  <joseph@codesourcery.com>

	* c-lex.cc (c_common_has_attribute): Handle noreturn attribute for
	C.

2022-09-29  Patrick Palka  <ppalka@redhat.com>

	* c-common.cc (c_common_reswords): Add __remove_cv,
	__remove_reference and __remove_cvref.
	* c-common.h (enum rid): Add RID_REMOVE_CV, RID_REMOVE_REFERENCE
	and RID_REMOVE_CVREF.

2022-09-27  Marek Polacek  <polacek@redhat.com>

	PR c++/101165
	PR c++/106882
	* c-cppbuiltin.cc (c_cpp_builtins): Define __cpp_implicit_move.

2022-09-27  Marek Polacek  <polacek@redhat.com>

	* c-format.cc (c_keywords): Drop nothrow.

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

	PR c++/106651
	* c-cppbuiltin.cc (c_cpp_builtins): Predefine
	__cpp_static_call_operator=202207L for C++23.

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

	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_ASSUME,
	PRAGMA_OMP_ASSUMES and PRAGMA_OMP_BEGIN.  Rename
	PRAGMA_OMP_END_DECLARE_TARGET to PRAGMA_OMP_END.
	* c-pragma.cc (omp_pragmas): Add assumes and begin.
	For end rename PRAGMA_OMP_END_DECLARE_TARGET to PRAGMA_OMP_END.
	(omp_pragmas_simd): Add assume.
	* c-common.h (c_omp_directives): Declare.
	* c-omp.cc (omp_directives): Rename to ...
	(c_omp_directives): ... this.  No longer static.  Uncomment
	assume, assumes, begin assumes and end assumes entries.
	In end declare target entry rename PRAGMA_OMP_END_DECLARE_TARGET
	to PRAGMA_OMP_END.
	(c_omp_categorize_directive): Adjust for omp_directives to
	c_omp_directives renaming.

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

	PR c++/106652
	PR c++/85518
	* c-common.cc (c_common_reswords): Change _Float{16,32,64,128} and
	_Float{32,64,128}x flags from D_CONLY to 0.
	(shorten_binary_op): Punt if common_type returns error_mark_node.
	(shorten_compare): Likewise.
	(c_common_nodes_and_builtins): For C++ record _Float{16,32,64,128}
	and _Float{32,64,128}x builtin types if available.  For C++
	clear float128t_type_node.
	* c-cppbuiltin.cc (c_cpp_builtins): Predefine
	__STDCPP_FLOAT{16,32,64,128}_T__ for C++23 if supported.
	* c-lex.cc (interpret_float): For q/Q suffixes prefer
	float128t_type_node over float128_type_node.  Allow
	{f,F}{16,32,64,128} suffixes for C++ if supported with pedwarn
	for C++20 and older.  Allow {f,F}{32,64,128}x suffixes for C++
	with pedwarn.  Don't call excess_precision_type for C++.

2022-09-26  Marek Polacek  <polacek@redhat.com>

	PR c++/106656
	* c-cppbuiltin.cc (c_cpp_builtins): Update value of __cpp_char8_t
	for C++20.

2022-09-23  Marek Polacek  <polacek@redhat.com>

	PR c++/106784
	* c-common.cc (c_common_reswords): Add __is_convertible and
	__is_nothrow_convertible.
	* c-common.h (enum rid): Add RID_IS_CONVERTIBLE and
	RID_IS_NOTHROW_CONVERTIBLE.

2022-09-22  David Malcolm  <dmalcolm@redhat.com>

	PR c/106830
	* c-warn.cc (check_for_xor_used_as_pow): Don't try checking
	values that don't fit in uhwi.

2022-09-15  Richard Biener  <rguenther@suse.de>

	* c-common.h (build_void_list_node): Remove.
	* c-common.cc (c_common_nodes_and_builtins): Do not initialize
	void_list_node.

2022-09-09  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* c-format.cc (convert_format_name_to_system_name): Fix warning.

2022-09-07  Joseph Myers  <joseph@codesourcery.com>

	* c-common.cc (c_common_reswords): Use D_C2X instead of D_CXXONLY
	for alignas, alignof, bool, false, static_assert, thread_local and
	true.

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

	* c.opt (Winvalid-utf8): Use ObjC instead of objC.  Remove
	" in comments" from description.
	(Wunicode): New option.

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

	PR c/106836
	* c-omp.cc (c_omp_split_clauses): Handle OMP_CLAUSE_DOACROSS.

2022-09-03  Jakub Jelinek  <jakub@redhat.com>

	* c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_DOACROSS.
	* c-omp.cc (c_finish_omp_depobj): Check also for OMP_CLAUSE_DOACROSS
	clause and diagnose it.  Don't handle OMP_CLAUSE_DEPEND_SOURCE and
	OMP_CLAUSE_DEPEND_SINK.  Assert kind is not OMP_CLAUSE_DEPEND_INVALID.

2022-09-02  David Malcolm  <dmalcolm@redhat.com>

	PR c/90885
	* c-common.h (check_for_xor_used_as_pow): New decl.
	* c-lex.cc (c_lex_with_flags): Add DECIMAL_INT to flags as appropriate.
	* c-warn.cc (check_for_xor_used_as_pow): New.
	* c.opt (Wxor-used-as-pow): New.

2022-09-01  Jason Merrill  <jason@redhat.com>

	* c-common.cc (c_common_nodes_and_builtins): Set TREE_STRING_FLAG on
	char8_t.
	(braced_list_to_string): Check for char-sized elements.

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

	PR c++/106655
	* c.opt (-Winvalid-utf8): New warning.
	* c-opts.cc (c_common_handle_option) <case OPT_finput_charset_>:
	Set cpp_opts->cpp_input_charset_explicit.
	(c_common_post_options): If -finput-charset=UTF-8 is explicit
	in C++23, enable -Winvalid-utf8 by default and if -pedantic
	or -pedantic-errors, make it a pedwarn.

2022-08-31  Joseph Myers  <joseph@codesourcery.com>

	* c-attribs.cc (handle_deprecated_attribute): Check and pedwarn
	for LABEL_DECL.
	* c-common.cc (c_add_case_label): Add argument ATTRS.  Call
	decl_attributes.
	* c-common.h (do_case, c_add_case_label): Update declarations.
	* c-lex.cc (c_common_has_attribute): For C, produce a result of
	201910 for fallthrough and 202106 for maybe_unused.

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

	PR c++/81159
	* c.opt (Wself-move): New option.

2022-08-26  Jakub Jelinek  <jakub@redhat.com>

	* c-common.cc (check_builtin_function_arguments): Handle
	BUILT_IN_ISSIGNALING.

2022-08-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/106648
	* c-cppbuiltin.cc (c_cpp_builtins): Predefine
	__cpp_named_character_escapes to 202207L.

2022-08-25  Marek Polacek  <polacek@redhat.com>

	* c-common.cc (c_common_reswords): Enable nullptr in C2X.
	(c_common_nodes_and_builtins): Create the built-in node for nullptr.
	* c-common.h (enum c_tree_index): Add CTI_NULLPTR, CTI_NULLPTR_TYPE.
	(struct c_common_resword): Resize the disable member.
	(D_C2X): Add.
	(nullptr_node): Define.
	(nullptr_type_node): Define.
	(NULLPTR_TYPE_P): Define.
	* c-pretty-print.cc (c_pretty_printer::simple_type_specifier): Handle
	NULLPTR_TYPE.
	(c_pretty_printer::direct_abstract_declarator): Likewise.
	(c_pretty_printer::constant): Likewise.

2022-08-16  Tom Honermann  <tom@honermann.net>

	PR c++/106423
	* c-opts.cc (c_common_post_options): Disable -Wc++20-compat
	diagnostics in C++20 and later.
	* c.opt (Wc++20-compat): Enable hooks for the preprocessor.

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

	PR middle-end/102633
	* c-gimplify.cc (c_gimplify_expr) <case DECL_EXPR>: Don't call
	suppress_warning here.

2022-08-08  Tom Honermann  <tom@honermann.net>

	PR preprocessor/106426
	* c-opts.cc (c_common_post_options): Assign cpp_opts->unsigned_utf8char
	subject to -fchar8_t, -fsigned-char, and/or -funsigned-char.

2022-08-08  Tom Honermann  <tom@honermann.net>

	* c-lex.cc (lex_string, lex_charconst): Use char8_t as the type
	of CPP_UTF8CHAR and CPP_UTF8STRING when char8_t support is
	enabled.
	* c-opts.cc (c_common_post_options): Set flag_char8_t if
	targeting C2x.

2022-07-31  Lewis Hyatt  <lhyatt@gmail.com>

	PR c++/66290
	* c-common.h: Rename global done_lexing to
	override_libcpp_locations.
	* c-common.cc (c_cpp_diagnostic): Likewise.
	* c-opts.cc (c_common_finish): Set override_libcpp_locations
	(formerly done_lexing) immediately prior to calling cpp_finish ().

2022-07-27  Lewis Hyatt  <lhyatt@gmail.com>

	* c-ppoutput.cc (token_streamer::stream): Update input_location
	prior to streaming each token.

2022-07-23  Immad Mir  <mirimmad@outlook.com>

	* c-attribs.cc: (c_common_attribute_table): add three new attributes
	namely: fd_arg, fd_arg_read and fd_arg_write.
	(handle_fd_arg_attribute): New.

2022-07-15  Marek Polacek  <polacek@redhat.com>

	PR c++/104477
	* c-common.cc (c_common_reswords): Add
	__reference_constructs_from_temporary and
	__reference_converts_from_temporary.
	* c-common.h (enum rid): Add RID_REF_CONSTRUCTS_FROM_TEMPORARY and
	RID_REF_CONVERTS_FROM_TEMPORARY.

2022-07-15  Jonathan Wakely  <jwakely@redhat.com>

	* c-format.cc (class range_label_for_format_type_mismatch):
	Adjust to new label_text API.

2022-07-11  Lewis Hyatt  <lhyatt@gmail.com>

	PR preprocessor/106252
	* c-pragma.cc (handle_pragma_diagnostic_impl): Don't look up the
	option argument prior to verifying the option was found.

2022-07-07  David Malcolm  <dmalcolm@redhat.com>

	* c-format.cc (range_label_for_format_type_mismatch::get_text):
	Update for removal of label_text::maybe_free in favor of automatic
	memory management.

2022-07-06  Lewis Hyatt  <lhyatt@gmail.com>

	PR preprocessor/53920
	PR c++/53431
	* c-common.cc (c_option_is_from_cpp_diagnostics): New function.
	* c-common.h (c_option_is_from_cpp_diagnostics): Declare.
	(c_pp_stream_token): Declare.
	* c-ppoutput.cc (init_pp_output): Refactor logic about skipping
	pragmas to...
	(should_output_pragmas): ...here. New function.
	(token_streamer::stream): Support handling early pragmas.
	(do_line_change): Likewise.
	(c_pp_stream_token): New function.
	* c-pragma.cc (struct pragma_diagnostic_data): New helper class.
	(pragma_diagnostic_lex_normal): New function. Moved logic for
	interpreting GCC diagnostic pragmas here.
	(pragma_diagnostic_lex_pp): New function for parsing diagnostic pragmas
	directly from libcpp.
	(handle_pragma_diagnostic): Refactor into helper function...
	(handle_pragma_diagnostic_impl): ...here.  New function.
	(handle_pragma_diagnostic_early): New function.
	(handle_pragma_diagnostic_early_pp): New function.
	(struct pragma_ns_name): Renamed to...
	(struct pragma_pp_data): ...this.  Add new "early_handler" member.
	(c_register_pragma_1): Support early pragmas in the preprocessor.
	(c_register_pragma_with_early_handler): New function.
	(c_register_pragma): Support the new early handlers in struct
	internal_pragma_handler.
	(c_register_pragma_with_data): Likewise.
	(c_register_pragma_with_expansion): Likewise.
	(c_register_pragma_with_expansion_and_data): Likewise.
	(c_invoke_early_pragma_handler): New function.
	(c_pp_invoke_early_pragma_handler): New function.
	(init_pragma): Add early pragma support for diagnostic pragmas.
	* c-pragma.h (struct internal_pragma_handler): Add new early handler
	members.
	(c_register_pragma_with_early_handler): Declare.
	(c_invoke_early_pragma_handler): Declare.
	(c_pp_invoke_early_pragma_handler): Declare.

2022-07-05  Marek Polacek  <polacek@redhat.com>

	PR c++/105626
	* c-format.cc (check_format_arg): Don't emit -Wformat warnings with
	u8 strings.

2022-07-01  Marek Polacek  <polacek@redhat.com>

	PR c++/106111
	* c-common.h (enum rid): Update RID_LAST_CXX20.

2022-06-30  Jonathan Wakely  <jwakely@redhat.com>

	* known-headers.cc (get_stdlib_header_for_name): Add <time.h>
	names.

2022-06-24  Jason Merrill  <jason@redhat.com>

	PR c++/87729
	PR c++/20423
	* c.opt (Woverloaded-virtual): Add levels, include in -Wall.

2022-06-18  Jakub Jelinek  <jakub@redhat.com>

	* c-ubsan.cc (ubsan_instrument_division, ubsan_instrument_shift):
	Use flag_sanitize_trap & SANITIZE_??? instead of
	flag_sanitize_undefined_trap_on_error.  If 2 sanitizers are involved
	and flag_sanitize_trap differs for them, emit __builtin_trap only
	for the comparison where trap is requested.
	(ubsan_instrument_vla, ubsan_instrument_return): Use
	lag_sanitize_trap & SANITIZE_??? instead of
	flag_sanitize_undefined_trap_on_error.

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

	* c-ubsan.cc (ubsan_instrument_return): Use BUILTINS_LOCATION.

2022-05-27  Marek Polacek  <polacek@redhat.com>

	PR c/90658
	* c-attribs.cc (get_priority): Check FUNCTION_DECL.

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

	* c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ENTER.

2022-05-20  David Malcolm  <dmalcolm@redhat.com>

	* c-format.cc: Replace uses of "FINAL" and "OVERRIDE" with "final"
	and "override".
	* c-pretty-print.h: Likewise.

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

	PR c/105131
	* c.opt (Wenum-int-mismatch): New.

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

	PR c++/105497
	* c-warn.cc (c_do_switch_warnings): Don't warn about unhandled
	enumerator when it was marked with attribute unused.

2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.cc (dump_ada_node) <COMPLEX_TYPE>: Deal with usual
	floating-point complex types.
	<POINTER_TYPE>: Do not use limited_with clause if the designated
	type is a scalar type.

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

	* c-omp.cc (c_finish_omp_depobj): Handle
	OMP_CLAUSE_DEPEND_INOUTSET.

2022-05-16  Jason Merrill  <jason@redhat.com>

	PR c/105492
	* c-attribs.cc (handle_mode_attribute): Don't fix broken typedefs
	here.

2022-05-16  Martin Liska  <mliska@suse.cz>

	* c-common.cc (ARRAY_SIZE): Use ARRAY_SIZE.
	(c_common_nodes_and_builtins): Likewise.
	* c-format.cc (check_tokens): Likewise.
	(check_plain): Likewise.
	* c-pragma.cc (c_pp_lookup_pragma): Likewise.
	(init_pragma): Likewise.
	* known-headers.cc (get_string_macro_hint): Likewise.
	(get_stdlib_header_for_name): Likewise.
	* c-attribs.cc: Likewise.

2022-05-13  Richard Biener  <rguenther@suse.de>

	* c-omp.cc: Remove gimple-fold.h include.

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

	* c-common.h (enum rid): Add RID_OMP_ALL_MEMORY.
	* c-omp.cc (c_finish_omp_depobj): Don't build_fold_addr_expr
	if null_pointer_node.

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

	PR target/105355
	* c-opts.cc (c_common_handle_option): Change option name.
	* c.opt: Remove Joined and use Separate option.

2022-05-09  Alex Coplan  <alex.coplan@arm.com>

	* c-common.h (get_dump_info): Delete.
	* c-gimplify.cc (c_genericize): Get TDI_original dump file info
	from the global dump_manager instead of the (now obsolete)
	get_dump_info.
	* c-opts.cc (original_dump_file): Delete.
	(original_dump_flags): Delete.
	(c_common_parse_file): Switch to using global dump_manager to
	manage the original dump file; fix leak of dump file.
	(get_dump_info): Delete.

2022-05-07  Marek Polacek  <polacek@redhat.com>

	PR c++/101833
	PR c++/47634
	* c-attribs.cc (positional_argument): Pass POS by reference.  Deal
	with FN being either a function declaration or function type.  Use
	maybe_adjust_arg_pos_for_attribute.
	* c-common.cc (check_function_arguments): Maybe pass FNDECL down to
	check_function_format.
	* c-common.h (maybe_adjust_arg_pos_for_attribute): Declare.
	(positional_argument): Adjust.
	* c-format.cc (get_constant): Rename to ...
	(validate_constant): ... this.  Take EXPR by reference.  Return bool
	instead of tree.
	(handle_format_arg_attribute): Don't overwrite FORMAT_NUM_EXPR by the
	return value of validate_constant.
	(decode_format_attr): Don't overwrite FORMAT_NUM_EXPR and
	FIRST_ARG_NUM_EXPR by the return value of validate_constant.
	(check_function_format): Adjust a parameter name.
	(handle_format_attribute): Maybe pass FNDECL down to decode_format_attr.

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

	* c-warn.cc (warnings_for_convert_and_check): Convert constants of type
	char to int.

2022-04-30  Jason Merrill  <jason@redhat.com>

	PR c/100545
	* c-attribs.cc (handle_mode_attribute): Copy attributes, aligned,
	and typedef.
	* c-common.cc (set_underlying_type): Add assert.

2022-04-26  Patrick Palka  <ppalka@redhat.com>

	PR c++/105304
	* c-common.cc (verify_tree) [restart]: Move up to before the
	NULL test.

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

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

2022-03-30  Marek Polacek  <polacek@redhat.com>

	PR c++/101030
	* c-warn.cc (conversion_warning) <case COND_EXPR>: Don't call
	conversion_warning when OP1 is null.

2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>

	* c.opt (Wc++11-extensions, Wc++14-extensions, Wc++17-extensions)
	(Wc++20-extensions, Wc++23-extensions): Remove 'LangEnabledBy'
	option properties.

2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>

	* c.opt (Wuse-after-free): Remove.

2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>

	* c.opt (Warray-bounds): Remove.

2022-03-26  Thomas Schwinge  <thomas@codesourcery.com>

	* c.opt: Properly quote comment.

2022-03-25  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.cc (dump_ada_import): Deal with the "section" attribute
	(dump_ada_node) <POINTER_TYPE>: Do not modify and pass the name, but
	the referenced type instead.  Deal with the anonymous original type
	of a typedef'ed type.  In the actual access case, follow the chain
	of external subtypes.
	<TYPE_DECL>: Tidy up control flow.

2022-03-21  Qian Jianhua  <qianjh@cn.fujitsu.com>

	* c-ada-spec.cc: Change array length

2022-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* c-common.cc (c_family_tests): Call the new tests.
	* c-common.h (c_diagnostic_tests): Declare.
	(c_opt_problem_cc_tests): Likewise.

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

	PR c++/101515
	* c-pretty-print.cc (c_fold_indirect_ref_for_warn): For C++ don't
	return COMPONENT_REFs with FIELD_DECLs whose containing scope can't
	be printed.

2022-03-16  Christophe Lyon  <christophe.lyon@arm.com>
	    Roger Sayle  <roger@nextmovesoftware.com>

	PR c/98198
	* c-attribs.cc (decl_or_type_attrs): Add error_mark_node check.

2022-03-16  Patrick Palka  <ppalka@redhat.com>

	PR c++/96780
	* c.opt: Add -ffold-simple-inlines.

2022-03-13  Tobias Burnus  <tobias@codesourcery.com>

	* c-target.def (check_string_object_format_arg): Fix description typo.

2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>

	PR other/65095
	* c-common.h (c_omp_map_clause_name): Remove.
	* c-omp.cc (c_omp_map_clause_name): Remove.

2022-03-09  Jakub Jelinek  <jakub@redhat.com>

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

2022-03-07  Jakub Jelinek  <jakub@redhat.com>

	* c-attribs.cc: Fix up duplicated word issue in a comment.

2022-03-01  Martin Liska  <mliska@suse.cz>

	PR ipa/104533
	* c-attribs.cc (handle_target_clones_attribute): Use
	get_target_clone_attr_len and report warning soon.

2022-02-17  Jonathan Wakely  <jwakely@redhat.com>

	* c-pragma.cc (handle_pragma_pack): Remove parameter name.
	(handle_pragma_weak): Likewise.
	(handle_pragma_scalar_storage_order): Likewise.
	(handle_pragma_redefine_extname): Likewise.
	(handle_pragma_visibility): Likewise.
	(handle_pragma_diagnostic): Likewise.
	(handle_pragma_target): Likewise.
	(handle_pragma_optimize): Likewise.
	(handle_pragma_push_options): Likewise.
	(handle_pragma_pop_options): Likewise.
	(handle_pragma_reset_options): Likewise.
	(handle_pragma_message): Likewise.
	(handle_pragma_float_const_decimal64): Likewise.

2022-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR c/104531
	* c-omp.cc (c_finish_omp_atomic): For MIN_EXPR/MAX_EXPR, try first
	build_binary_op with LT_EXPR and only if that doesn't return
	error_mark_node call build_modify_expr.

2022-02-16  Jakub Jelinek  <jakub@redhat.com>

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

2022-02-14  Richard Biener  <rguenther@suse.de>

	PR c/104505
	* c-pretty-print.cc (c_pretty_printer::postfix_expression): Handle
	internal function calls.

2022-02-11  Richard Biener  <rguenther@suse.de>

	* c-attribs.cc (c_common_attribute_table): Add entry for
	vector_mask.
	(handle_vector_mask_attribute): New.

2022-02-10  Marcel Vollweiler  <marcel@codesourcery.com>

	* c-omp.cc (c_omp_split_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
	* c-pragma.h (enum pragma_kind): Added 5.1 in comment.
	(enum pragma_omp_clause): Added PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR.

2022-02-09  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.cc (c_cpp_builtins): Update values
	of __cpp_constexpr and __cpp_concepts for C++20.

2022-01-24  Marek Polacek  <polacek@redhat.com>

	PR preprocessor/104030
	* c.opt (Wbidi-chars): Mark as EnumSet.  Also accept =ucn.

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

	PR c++/104148
	* c-common.h (check_function_arguments_recurse): Add for_format
	arg.
	* c-common.cc (check_function_nonnull): Pass false to
	check_function_arguments_recurse's last argument.
	(check_function_arguments_recurse): Add for_format argument,
	if true, don't stop on warning_suppressed_p.
	* c-format.cc (check_format_info): Pass true to
	check_function_arguments_recurse's last argument.

2022-01-19  David Malcolm  <dmalcolm@redhat.com>

	* c-common.cc (c_common_c_tests): Rename to...
	(c_common_cc_tests): ...this.
	(c_family_tests): Update calls for .c to .cc renaming.
	* c-common.h (c_format_c_tests): Rename to...
	(c_format_cc_tests): ...this.
	(c_indentation_c_tests): Rename to...
	(c_indentation_cc_tests): ...this.
	(c_pretty_print_c_tests): Rename to...
	(c_pretty_print_cc_tests): ...this.
	* c-format.cc (c_format_c_tests): Rename to...
	(c_format_cc_tests): ...this.
	* c-indentation.cc (c_indentation_c_tests): Rename to...
	(c_indentation_cc_tests): ...this.
	* c-pretty-print.cc (c_pretty_print_c_tests): Rename to...
	(c_pretty_print_cc_tests): ...this.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* c-ada-spec.cc: Rename .c names to .cc.
	* c-ada-spec.h: Likewise.
	* c-common.cc (c_build_vec_convert): Likewise.
	(warning_candidate_p): Likewise.
	* c-common.h (enum rid): Likewise.
	(build_real_imag_expr): Likewise.
	(finish_label_address_expr): Likewise.
	(c_get_substring_location): Likewise.
	(c_build_bind_expr): Likewise.
	(conflict_marker_get_final_tok_kind): Likewise.
	(c_parse_error): Likewise.
	(check_missing_format_attribute): Likewise.
	(invalid_array_size_error): Likewise.
	(warn_for_multistatement_macros): Likewise.
	(build_attr_access_from_parms): Likewise.
	* c-cppbuiltin.cc (c_cpp_builtins): Likewise.
	* c-format.cc: Likewise.
	* c-gimplify.cc (c_gimplify_expr): Likewise.
	* c-indentation.h: Likewise.
	* c-objc.h (objc_prop_attr_kind_for_rid): Likewise.
	* c-omp.cc (c_omp_predetermined_mapping): Likewise.
	* c-opts.cc (c_common_post_options): Likewise.
	(set_std_cxx23): Likewise.
	* c-pragma.cc (handle_pragma_redefine_extname): Likewise.
	* c-pretty-print.h: Likewise.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* c-ada-spec.c: Moved to...
	* c-ada-spec.cc: ...here.
	* c-attribs.c: Moved to...
	* c-attribs.cc: ...here.
	* c-common.c: Moved to...
	* c-common.cc: ...here.
	* c-cppbuiltin.c: Moved to...
	* c-cppbuiltin.cc: ...here.
	* c-dump.c: Moved to...
	* c-dump.cc: ...here.
	* c-format.c: Moved to...
	* c-format.cc: ...here.
	* c-gimplify.c: Moved to...
	* c-gimplify.cc: ...here.
	* c-indentation.c: Moved to...
	* c-indentation.cc: ...here.
	* c-lex.c: Moved to...
	* c-lex.cc: ...here.
	* c-omp.c: Moved to...
	* c-omp.cc: ...here.
	* c-opts.c: Moved to...
	* c-opts.cc: ...here.
	* c-pch.c: Moved to...
	* c-pch.cc: ...here.
	* c-ppoutput.c: Moved to...
	* c-ppoutput.cc: ...here.
	* c-pragma.c: Moved to...
	* c-pragma.cc: ...here.
	* c-pretty-print.c: Moved to...
	* c-pretty-print.cc: ...here.
	* c-semantics.c: Moved to...
	* c-semantics.cc: ...here.
	* c-ubsan.c: Moved to...
	* c-ubsan.cc: ...here.
	* c-warn.c: Moved to...
	* c-warn.cc: ...here.
	* cppspec.c: Moved to...
	* cppspec.cc: ...here.
	* stub-objc.c: Moved to...
	* stub-objc.cc: ...here.

2022-01-15  Martin Sebor  <msebor@redhat.com>

	PR c/63272
	* c.opt (-Wdangling-pointer): New option.

2022-01-15  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/80532
	* c.opt (-Wuse-after-free): New options.

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

	* c-attribs.c (c_common_attribute_table): Add "tainted_args".
	(handle_tainted_args_attribute): New.

2022-01-13  Anthony Sharp  <anthonysharp15@gmail.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/70417
	* c.opt: Added -Wmissing-template-keyword.

2022-01-13  Richard Biener  <rguenther@suse.de>

	PR c/104002
	* c-common.c (c_common_mark_addressable_vec): Handle TARGET_EXPR.

2022-01-12  Martin Liska  <mliska@suse.cz>

	PR target/103804
	* c-attribs.c (handle_optimize_attribute): Do not call
	cl_optimization_compare if we seen an error.

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

	PR c/101537
	PR c/103881
	* c-warn.c (conversion_warning): Handle BIT_AND_EXPR, BIT_IOR_EXPR
	and BIT_XOR_EXPR.

2022-01-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/101530
	* c-common.c (c_build_shufflevector): Wrap the BIT_FIELD_REF
	in a TARGET_EXPR to force a temporary.

2022-01-06  Marek Polacek  <polacek@redhat.com>

	PR c++/103758
	* c-pragma.c (handle_pragma_scalar_storage_order): Use %< %> in
	diagnostic messages.
	(handle_pragma_diagnostic): Likewise.

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

	PR c++/103758
	* c-format.c (check_tokens): Accept "decl-specifier*".

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

	PR c++/103600
	* c-attribs.c (handle_non_overlapping_attribute): New function.
	(c_common_attribute_table): Add "non overlapping" attribute.

2021-12-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/103012
	* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Perform
	cpp_define_unused/cpp_undef calls with forced token locations
	BUILTINS_LOCATION.

2021-12-27  Patrick Palka  <ppalka@redhat.com>

	PR c++/103700
	* c-common.c (pointer_int_sum): When quiet, return
	error_mark_node for an incomplete pointed-to type and don't
	call size_in_bytes_loc.

2021-12-17  Jason Merrill  <jason@redhat.com>

	PR c++/103681
	* c-opts.c (c_common_post_options): Update defaults.

2021-12-16  Martin Liska  <mliska@suse.cz>

	PR target/103709
	* c-pragma.c (handle_pragma_pop_options): Do not check
	global options modification when an error is seen in parsing
	of options (pragmas or attributes).

2021-12-12  Jonathan Wakely  <jwakely@redhat.com>

	* known-headers.cc: Define INCLUDE_MEMORY instead of
	INCLUDE_UNIQUE_PTR.
	* name-hint.h: Likewise.
	(class name_hint): Use std::unique_ptr instead of gnu::unique_ptr.

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

	PR pch/71934
	* c-pch.c (c_common_no_more_pch): Pass a temporary void * var
	with NULL value instead of NULL to host_hooks.gt_pch_use_address.

2021-12-03  Jakub Jelinek  <jakub@redhat.com>

	PR pch/71934
	* c-pch.c (struct c_pch_validity): Remove pch_init member.
	(pch_init): Don't initialize v.pch_init.
	(c_common_valid_pch): Don't warn and punt if .text addresses change.

2021-12-01  Jason Merrill  <jason@redhat.com>

	PR c++/103310
	* c.opt: Add -fconstexpr-fp-except.

2021-11-29  Richard Biener  <rguenther@suse.de>

	* c-format.c (check_format_string): Remove spurious
	gcc_unreachable.

2021-11-29  Richard Biener  <rguenther@suse.de>

	* c-opts.c (c_common_post_options): Remove unreachable return.
	* c-pragma.c (handle_pragma_target): Likewise.
	(handle_pragma_optimize): Likewise.

2021-11-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/102611
	* c-opts.c (c_common_post_options): Enable -Wcomma-subscript by
	default for C++23 regardless of warn_deprecated.
	* c-cppbuiltin.c (c_cpp_builtins): Predefine
	__cpp_multidimensional_subscript=202110L for C++23.

2021-11-23  Martin Sebor  <msebor@redhat.com>

	PR middle-end/88232
	* c.opt: Add -Winfinite-recursion.

2021-11-19  Martin Sebor  <msebor@redhat.com>

	PR c++/33925
	PR c/102867
	* c-common.c (decl_with_nonnull_addr_p): Call maybe_nonzero_address
	and improve handling tof defined symbols.

2021-11-19  Martin Liska  <mliska@suse.cz>

	Revert:
	2021-11-18  Martin Liska  <mliska@suse.cz>

	* c-gimplify.c (genericize_c_loop): Use option directly.

2021-11-18  Matthias Kretz  <m.kretz@gsi.de>

	* c-common.c (c_common_reswords): Add __builtin_assoc_barrier.
	* c-common.h (enum rid): Add RID_BUILTIN_ASSOC_BARRIER.

2021-11-18  Martin Liska  <mliska@suse.cz>

	* c-gimplify.c (genericize_c_loop): Use option directly.

2021-11-17  Martin Uecker  <uecker@gcc.gnu.org>

	PR c/91038
	PR c/29970
	* c-common.c (pointer_int_sum): Make sure pointer expressions
	are evaluated first when the size expression depends on for
	variably-modified types.

2021-11-17  Marek Polacek  <polacek@redhat.com>

	PR preprocessor/103026
	* c.opt (Wbidi-chars, Wbidi-chars=): New option.

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

	* c-common.c (release_tree_vector): Only cache vecs smaller than
	16 elements.

2021-11-15  Jason Merrill  <jason@redhat.com>

	* c.opt: Add -fimplicit-constexpr.
	* c-cppbuiltin.c: Define __cpp_implicit_constexpr.
	* c-opts.c (c_common_post_options): Disable below C++14.

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

	* c-omp.c (c_omp_split_clauses) <case OMP_CLAUSE_THREAD_LIMIT>:
	Duplicate to both OMP_TARGET and OMP_TEAMS.

2021-11-10  Marek Polacek  <polacek@redhat.com>

	PR c++/101940
	* c-pragma.c (handle_pragma_diagnostic): Handle #pragma GCC diagnostic
	ignored_attributes.

2021-11-09  David Malcolm  <dmalcolm@redhat.com>

	* c-pragma.c (GCC_BAD_AT): New macro.
	(GCC_BAD2_AT): New macro.
	(handle_pragma_pack): Use the location of the pertinent token when
	issuing diagnostics about invalid constants/actions, and trailing
	junk.
	(handle_pragma_target): Likewise for non-string "GCC option".
	(handle_pragma_message): Likewise for trailing junk.

2021-11-03  Joseph Myers  <joseph@codesourcery.com>

	PR c/103031
	* c-common.c (convert_and_check): Add argument init_const.  Call
	convert_init if init_const.
	* c-common.h (convert_and_check): Update prototype.
	(convert_init): New prototype.

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

	* c-lex.c (c_lex_with_flags): When complaining about non-printable
	CPP_OTHER tokens, set the "escape on output" flag.

2021-10-27  Jakub Jelinek  <jakub@redhat.com>

	* c-omp.c (c_omp_check_loop_iv_r): Don't clear 3rd bit for
	POINTER_PLUS_EXPR.
	(c_omp_check_nonrect_loop_iv): Handle POINTER_PLUS_EXPR.
	(c_omp_check_loop_iv): Set kind even if the iterator is non-integral.

2021-10-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/102854
	* c-common.h (c_omp_check_loop_iv_exprs): Add enum tree_code argument.
	* c-omp.c (c_omp_check_loop_iv_r): For trees other than decls,
	TREE_VEC, PLUS_EXPR, MINUS_EXPR, MULT_EXPR, POINTER_PLUS_EXPR or
	conversions temporarily clear the 3rd bit from d->kind while walking
	subtrees.
	(c_omp_check_loop_iv_exprs): Add CODE argument.  Or in 4 into data.kind
	if possibly non-rectangular.

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.

2021-10-14  Joseph Myers  <joseph@codesourcery.com>

	* c-format.c (printf_length_specs, scanf_length_specs)
	(print_char_table, scan_char_table): Support DFP formats for C2X.
	* c-format.h (TEX_D32, TEX_D64, TEX_D128): Remove.
	(T2X_D32, T2X_D64, T2X_D128): New macros.

2021-10-14  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* c-omp.c (c_omp_check_context_selector): Rename to
	omp_check_context_selector and move to omp-general.c.
	(c_omp_mark_declare_variant): Rename to omp_mark_declare_variant and
	move to omp-general.c.

2021-10-12  Joseph Myers  <joseph@codesourcery.com>

	* c-format.c (print_char_table): Add %b and %B formats.
	(scan_char_table): Add %b format.
	* c-format.h (T2X_UI, T2X_UL, T2X_ULL, T2X_US, T2X_UC, T2X_ST)
	(T2X_UPD, T2X_UIM): New macros.

2021-10-12  Jakub Jelinek  <jakub@redhat.com>

	* c-omp.c (c_finish_omp_atomic): Use
	clear_padding_type_may_have_padding_p.

2021-10-08  Martin Liska  <mliska@suse.cz>

	* c-opts.c (c_common_post_options): Use new macro
	OPTION_SET_P.

2021-10-07  Martin Liska  <mliska@suse.cz>

	* c-common.c (parse_optimize_options): Make
	save_opt_decoded_options a pointer type.

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

	PR tree-optimization/102571
	* c-omp.c (c_finish_omp_atomic): Optimize the case where type has
	padding, but the non-padding bits are contiguous set of bytes
	by adjusting the memcmp call arguments instead of emitting
	__builtin_clear_padding and then comparing all the type's bytes.

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

	PR c++/102612
	* c-cppbuiltin.c (c_cpp_builtins): For -std=c++23 predefine
	__cpp_constexpr to 202110L rather than 201907L.

2021-10-04  Marek Polacek  <polacek@redhat.com>

	PR c++/97573
	* c-common.h (do_warn_array_compare): Declare.
	* c-warn.c (do_warn_array_compare): New.
	* c.opt (Warray-compare): New option.

2021-10-02  Iain Sandoe  <iain@sandoe.co.uk>

	* c-format.c: Remove a test of TARGET_FORMAT_TYPES with
	NULL, this is not needed.

2021-10-01  Martin Sebor  <msebor@redhat.com>

	PR c/102103
	* c-common.c (decl_with_nonnull_addr_p): Handle members.
	Check and perform warning suppression.
	(c_common_truthvalue_conversion): Enhance warning suppression.

2021-10-01  Martin Liska  <mliska@suse.cz>

	PR target/102552
	* c-common.c (parse_optimize_options): decoded_options[0] is
	  used for program name, so merged_decoded_options should also
	  respect that.

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.  Sanitize INT_MIN / -1 under SANITIZE_SI_OVERFLOW
	rather than SANITIZE_DIVIDE.  If both SANITIZE_SI_OVERFLOW
	and SANITIZE_DIVIDE is enabled, neither check is known
	to be false and flag_sanitize_recover bits for those two
	aren't the same, emit both __ubsan_handle_divrem_overflow
	and __ubsan_handle_divrem_overflow_abort calls.

2021-10-01  Martin Liska  <mliska@suse.cz>

	* c-common.c (parse_optimize_options): Combine optimize
	options with what was provided on the command line.

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

	* c-omp.c (c_omp_split_clauses): Also copy
	OMP_CLAUSE_ORDER_REPRODUCIBLE.

2021-09-27  Martin Liska  <mliska@suse.cz>

	* c-opts.c (c_common_init_options_struct): Set also
	  x_flag_default_complex_method.

2021-09-22  Jakub Jelinek  <jakub@redhat.com>

	* c-omp.c (c_omp_split_clauses): Copy over OMP_CLAUSE_ALLOCATE_ALIGN.

2021-09-20  Matthias Kretz  <m.kretz@gsi.de>

	* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define or
	undefine __RECIPROCAL_MATH__, __NO_SIGNED_ZEROS__,
	__NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, and
	__ROUNDING_MATH__ according to the new optimization flags.

2021-09-18  Jakub Jelinek  <jakub@redhat.com>

	* c-omp.c (c_omp_split_clauses): Split order clause also to
	distribute construct.  Copy over OMP_CLAUSE_ORDER_UNCONSTRAINED.

2021-09-17  Jakub Jelinek  <jakub@redhat.com>

	* c-omp.c (c_finish_omp_atomic): Avoid creating
	TARGET_EXPR if test is true, use create_tmp_var_raw instead of
	create_tmp_var and add a zero initializer to TARGET_EXPRs that
	had NULL initializer.  When omitting operands after v = x,
	use type of v rather than type of x.  Fix type of vtmp
	TARGET_EXPR.

2021-09-13  Jason Merrill  <jason@redhat.com>

	* c.opt: Add -Winterference-size.
	* c-cppbuiltin.c (cpp_atomic_builtins): Add __GCC_DESTRUCTIVE_SIZE
	and __GCC_CONSTRUCTIVE_SIZE.

2021-09-10  Jakub Jelinek  <jakub@redhat.com>

	* c-common.h (c_finish_omp_atomic): Add r and weak arguments.
	* c-omp.c: Include gimple-fold.h.
	(c_finish_omp_atomic): Add r and weak arguments.  Add support for
	OpenMP 5.1 atomics.

2021-09-09  qing zhao  <qing.zhao@oracle.com>

	* c-attribs.c (handle_uninitialized_attribute): New function.
	(c_common_attribute_table): Add "uninitialized" attribute.

2021-09-08  liuhongt  <hongtao.liu@intel.com>

	* c-common.c (excess_precision_mode_join): Update below comments.
	(c_ts18661_flt_eval_method): Set excess_precision_type to
	EXCESS_PRECISION_TYPE_FLOAT16 when -fexcess-precision=16.
	* c-cppbuiltin.c (cpp_atomic_builtins): Update below comments.
	(c_cpp_flt_eval_method_iec_559): Set excess_precision_type to
	EXCESS_PRECISION_TYPE_FLOAT16 when -fexcess-precision=16.

2021-09-07  Marcel Vollweiler  <marcel@codesourcery.com>

	* c-omp.c (c_finish_omp_flush): Handle MEMMODEL_SEQ_CST.

2021-09-03  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ads): Generate pragmas to disable style checks
	and -gnatwu warning for the package specification.

2021-09-01  Iain Sandoe  <iain@sandoe.co.uk>

	* c-attribs.c (handle_unavailable_attribute): New.

2021-08-30  Jason Merrill  <jason@redhat.com>

	* c.opt: Add -Wmissing-requires.

2021-08-25  Lewis Hyatt  <lhyatt@gmail.com>

	PR other/93067
	* c-opts.c (c_common_input_charset_cb): New function.
	(c_common_post_options): Call new function
	diagnostic_initialize_input_context().

2021-08-20  Tobias Burnus  <tobias@codesourcery.com>

	* c-format.c (gcc_gfc_length_specs): Add 'll' and 'w'.
	(gcc_gfc_char_table): Add T9L_LL and T9L_ULL to
	"di" and "u", respecitively; fill with BADLEN to match
	size of 'types'.
	(get_init_dynamic_hwi): Split off from ...
	(init_dynamic_diag_info): ... here. Call it.
	(init_dynamic_gfc_info): Call it.

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

	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_ERROR.
	* c-pragma.c (omp_pragmas): Add error directive.
	* c-omp.c (omp_directives): Uncomment error directive entry.

2021-08-18  Jakub Jelinek  <jakub@redhat.com>

	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_NOTHING.
	* c-pragma.c (omp_pragmas): Add nothing directive.
	* c-omp.c (omp_directives): Uncomment nothing directive entry.

2021-08-17  Jakub Jelinek  <jakub@redhat.com>

	PR c++/101539
	* c-common.h (enum rid): Add RID_IS_LAYOUT_COMPATIBLE.
	* c-common.c (c_common_reswords): Add __is_layout_compatible.

2021-08-17  Matt Jacobson  <mhjacobson@me.com>

	* c-opts.c (c_common_post_options): Default to
	flag_objc_sjlj_exceptions = 1 only when flag_objc_abi < 2.

2021-08-17  Jakub Jelinek  <jakub@redhat.com>

	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_SCOPE.
	* c-pragma.c (omp_pragmas): Add scope construct.
	* c-omp.c (omp_directives): Uncomment scope directive entry.

2021-08-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* c-cppbuiltin.c (c_cpp_builtins): Define
	__LIBGCC_GCOV_TYPE_SIZE if flag_building_libgcc is true.

2021-08-12  Jakub Jelinek  <jakub@redhat.com>

	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_MASKED.
	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FILTER.
	* c-pragma.c (omp_pragmas_simd): Add masked construct.
	* c-common.h (enum c_omp_clause_split): Add C_OMP_CLAUSE_SPLIT_MASKED
	enumerator.
	(c_finish_omp_masked): Declare.
	* c-omp.c (c_finish_omp_masked): New function.
	(c_omp_split_clauses): Handle combined masked constructs.

2021-07-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/101539
	* c-common.h (enum rid): Add RID_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
	* c-common.c (c_common_reswords): Add
	__is_pointer_interconvertible_base_of.

2021-07-29  Richard Biener  <rguenther@suse.de>

	PR c/101512
	* c-common.c (c_common_mark_addressable_vec): Look through
	C_MAYBE_CONST_EXPR even if not at the toplevel.

2021-07-27  Martin Sebor  <msebor@redhat.com>

	PR c/101585
	* c-warn.c (warn_parm_ptrarray_mismatch): Use OEP_DECL_NAME.

2021-07-23  Jakub Jelinek  <jakub@redhat.com>

	* c-lex.c (c_common_has_attribute): Call canonicalize_attr_name also
	on attr_id.  Return 1 for omp::directive or omp::sequence in C++11
	and later.

2021-07-23  Jakub Jelinek  <jakub@redhat.com>

	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP__START_ and
	PRAGMA_OMP__LAST_ enumerators.

2021-07-21  Thomas Schwinge  <thomas@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* c-pragma.h (pragma_omp_clause): Add 'PRAGMA_OACC_CLAUSE_NOHOST'.

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

	* c-common.c (c_build_shufflevector): Adjust by-value argument to
	by-const-reference.
	* c-common.h (c_build_shufflevector): Same.

2021-07-16  Andrew Pinski  <apinski@marvell.com>

	PR c/101453
	* c-common.c (parse_optimize_options): Use the correct
	size for buffer.

2021-07-15  Martin Sebor  <msebor@redhat.com>

	PR c/101289
	PR c/97548
	* c-warn.c (warn_parm_array_mismatch): Use OEP_DECL_NAME.

2021-07-14  Jason Merrill  <jason@redhat.com>

	* c-opts.c (c_common_post_options): Set -fdelete-dead-exceptions.

2021-07-06  Martin Sebor  <msebor@redhat.com>

	* c-format.c (gcc_tdiag_char_table): Remove support for %G and %K.
	 (gcc_cdiag_char_table): Same.
	 (gcc_cxxdiag_char_table): Same.

2021-07-02  Jakub Jelinek  <jakub@redhat.com>

	* c-common.h (enum c_omp_directive_kind): New enum.
	(struct c_omp_directive): New type.
	(c_omp_categorize_directive): Declare.
	* c-omp.c (omp_directives): New variable.
	(c_omp_categorize_directive): New function.

2021-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (packed_layout): New global variable.
	(dump_ada_declaration): Set it upon seeing a packed record type.
	Do not put the "aliased" keyword if it is set.
	(dump_ada_structure): Add Pack aspect if it is set and clear it.

2021-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (check_name): Rename into...
	(check_type_name_conflict): ...this.  Minor tweak.
	(dump_ada_function_declaration): Adjust to above renaming.
	(dump_ada_array_domains): Fix oversight.
	(dump_ada_declaration): Call check_type_name_conflict for variables.

2021-06-25  Martin Sebor  <msebor@redhat.com>

	* c-common.c (c_wrap_maybe_const): Remove TREE_NO_WARNING.
	(c_common_truthvalue_conversion): Replace direct uses of
	TREE_NO_WARNING with warning_suppressed_p, suppress_warning, and
	copy_no_warning.
	(check_function_arguments_recurse): Same.
	* c-gimplify.c (c_gimplify_expr): Same.
	* c-warn.c (overflow_warning): Same.
	(warn_logical_operator): Same.
	(warn_if_unused_value): Same.
	(do_warn_unused_parameter): Same.

2021-06-24  Jakub Jelinek  <jakub@redhat.com>

	* c-common.h (enum c_omp_region_type): Add C_ORT_TARGET and
	C_ORT_OMP_TARGET.
	* c-omp.c (c_omp_split_clauses): For OMP_CLAUSE_IN_REDUCTION on
	combined target constructs also add map (always, tofrom:) clause.

2021-06-15  Robin Dapp  <rdapp@linux.ibm.com>

	* c-attribs.c (common_handle_aligned_attribute): Remove short
	circuit and dead code.

2021-06-14  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/101052
	* known-headers.cc (get_stdlib_header_for_name): Add known
	headers for EXIT_FAILURE, EXIT_SUCCESS, abort, atexit, calloc,
	exit, and getenv.

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

	* c-attribs.c (handle_unused_attribute): Handle FIELD_DECL.

2021-06-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/100974
	* c-cppbuiltin.c (c_cpp_builtins): Predefine __cpp_if_consteval for
	-std=c++2b for P1938R3 consteval if support.

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

	PR c++/100879
	* c-warn.c (warn_for_sign_compare): Remove C++ enum mismatch
	warning.

2021-06-07  Martin Liska  <mliska@suse.cz>

	* c-target.def: Split long lines and replace them
	with '\n\'.

2021-06-04  Martin Sebor  <msebor@redhat.com>

	PR c/100783
	* c-attribs.c (positional_argument): Bail on erroneous types.

2021-06-04  Martin Sebor  <msebor@redhat.com>

	* c-warn.c (warn_parm_array_mismatch): Check TREE_PURPOSE to test
	for element presence.

2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_macros): Minor tweaks.
	(dump_ada_decl_name): Likewise.
	(dump_anonymous_type_name): Remove parent parameter and adjust.
	(dump_sloc): Minor tweak.
	(dump_ada_array_type): Remove type parameter and adjust.
	(dump_ada_enum_type): Remove parent parameter and adjust.
	(dump_ada_node): Adjust calls to above functions.
	(dumped_anonymous_types): New global variable.
	(dump_nested_types_1): Rename into...
	(dump_nested_types): ...this.
	(dump_nested_type): Remove parent and dumped_types parameters.
	<ARRAY_TYPE>: Replace dumped_types with dumped_anonymous_types.
	Adjust calls to dump_anonymous_type_name and dump_ada_array_type.
	(dump_ada_specs): Initialize and free dumped_anonymous_types.

2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (pp_ada_tree_identifier): Tidy up.
	(dump_ada_node) <POINTER_TYPE>: Deal specially with external subtypes.

2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_enum_type): Dump a prefix for constants.
	(htable_t): New typedef.
	(overloaded_names): Use it.
	(add_name): New function.
	(init_overloaded_names): Use add_name to populate the table and add
	special cases for sigaction and stat.
	(overloaded_name_p): Rename into...
	(overloading_index): ...this.  Do not initialize overloaded_names table
	here.  Return the index or zero.
	(dump_ada_declaration): Minor tweaks.  Do not skip overloaded functions
	but add an overloading suffix instead.
	(dump_ada_specs): Initialize overloaded_names tables here.

2021-06-01  Martin Liska  <mliska@suse.cz>

	PR other/100759
	* c-attribs.c (handle_optimize_attribute): Limit sanity check
	to a situation where we are not in processing of an optimize
	pragma.
	* c-pragma.c (handle_pragma_pop_options): Restore target
	options.

2021-05-31  Indu Bhagat  <indu.bhagat@oracle.com>

	PR testsuite/100749
	* c-pch.c (c_common_valid_pch): Use xstrdup for debug format set names.

2021-05-31  Richard Biener  <rguenther@suse.de>

	PR c++/88601
	* c-common.c: Include tree-vector-builder.h and
	vec-perm-indices.h.
	(c_common_reswords): Add __builtin_shufflevector.
	(c_build_shufflevector): New funtion.
	* c-common.h (enum rid): Add RID_BUILTIN_SHUFFLEVECTOR.
	(c_build_shufflevector): Declare.

2021-05-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* c-omp.c (c_omp_split_clauses): For reduction clause if combined with
	target add a map tofrom clause with OMP_CLAUSE_MAP_IMPLICIT.

2021-05-28  Tobias Burnus  <tobias@codesourcery.com>

	* c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_AFFINITY.

2021-05-25  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/92860
	PR target/99592
	* c-attribs.c (handle_optimize_attribute): Save target node
	before calling parse_optimize_options and save it in case
	it changes.
	* c-pragma.c (handle_pragma_target): Similarly for pragma.
	(handle_pragma_pop_options): Likewise here.

2021-05-25  Martin Liska  <mliska@suse.cz>

	* c-attribs.c (handle_no_sanitize_coverage_attribute): New.

2021-05-25  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* c-omp.c (c_omp_split_clauses): Copy reduction to teams when teams is
	combined with simd and not with taskloop or for.

2021-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* c-omp.c (c_omp_split_clauses): Set OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT
	on firstprivate clause copy going to target construct, and for
	target simd set also OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET bit.

2021-05-20  Jonathan Wakely  <jwakely@redhat.com>

	* c.opt (Wc++11-extensions, Wc++14-extensions)
	(Wc++17-extensions, Wc++20-extensions, Wc++23-extensions): New
	options.

2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>

	* c-lex.c (init_c_lex): Use dwarf_debuginfo_p.

2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>

	* c-opts.c (c_common_post_options): Adjust access to debug_type_names.
	* c-pch.c (struct c_pch_validity): Use type uint32_t.
	(pch_init): Renamed member.
	(c_common_valid_pch): Adjust access to debug_type_names.

2021-05-19  Martin Sebor  <msebor@redhat.com>

	PR c/100619
	* c-attribs.c (build_attr_access_from_parms): Handle arbitrarily many
	bounds.

2021-05-18  Richard Biener  <rguenther@suse.de>

	PR c/100547
	* c-attribs.c (type_valid_for_vector_size): Reject too large nunits.
	Reword existing nunit diagnostic.

2021-05-17  Joern Rennecke  <joern.rennecke@embecosm.com>

	* c-common.c (braced_list_to_string): Return CTOR unchanged
	if host and target character sizes don't match.

2021-05-14  Martin Liska  <mliska@suse.cz>

	* c.opt: Add Warning keyword for 2 options.

2021-05-13  Martin Liska  <mliska@suse.cz>

	PR middle-end/100504
	* c-attribs.c (handle_target_clones_attribute): Expect a string
	argument to target_clone argument.

2021-05-11  Joseph Myers  <joseph@codesourcery.com>

	* c-lex.c (interpret_float): Handle digit separators for C2X.

2021-05-10  Martin Liska  <mliska@suse.cz>

	* c-ada-spec.c (print_destructor): Use startswith
	function instead of strncmp.
	(dump_ada_declaration): Likewise.
	* c-common.c (disable_builtin_function): Likewise.
	(def_builtin_1): Likewise.
	* c-format.c (check_tokens): Likewise.
	(check_plain): Likewise.
	(convert_format_name_to_system_name): Likewise.

2021-04-28  Patrick McGehearty  <patrick.mcgehearty@oracle.com>

	* c-cppbuiltin.c (c_cpp_builtins): Add supporting macros for new
	complex divide

2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>
	    Tom de Vries  <vries@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* c.opt (Wopenacc-parallelism): New.

2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>

	* c.opt (fopenacc-kernels=): Remove.

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

	* c-warn.c (do_warn_double_promotion): Fix comment typo,
	occured -> occurred.
	(check_alignment_of_packed_member): Fix a comment typo,
	memeber -> member.
	(warn_parm_ptrarray_mismatch): Fix comment typos, os -> of
	and onless -> unless.
	(warn_parm_array_mismatch): Fix comment typos, declaratation
	-> declaration and woud -> would.  Fix up comment indentation.

2021-04-08  Martin Sebor  <msebor@redhat.com>

	PR middle-end/99883
	* c.opt (Wmismatched-new-delete): Correct spelling.

2021-04-05  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (is_simple_enum): Minor tweaks.
	(dump_ada_enum_type): Add TYPE and PARENT parameters.  For non-simple
	enumeral types use again the type name for the enumeration constants.
	(dump_ada_node): Adjust call to dump_ada_enum_type.
	(dump_nested_type): Likewise.

2021-04-01  Jason Merrill  <jason@redhat.com>

	PR c++/98481
	* c-opts.c (c_common_post_options): Bump latest_abi_version.

2021-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99565
	* c-warn.c (do_warn_duplicated_branches): Pass also
	OEP_ADDRESS_OF_SAME_FIELD to operand_equal_p.

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

	PR debug/99230
	* c-gimplify.c (c_genericize_control_stmt): Handle STATEMENT_LIST.

2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_declaration) <TYPE_DECL>: Dump nested types
	after entering the separate class package, if any.

2021-03-04  Richard Biener  <rguenther@suse.de>

	* c-pretty-print.c (c_pretty_printer::direct_abstract_declarator):
	Handle ERROR_MARK.

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

	PR c/99325
	* c-ppoutput.c (print): Change src_line type from int to unsigned.
	(token_streamer::stream) Likewise.
	(maybe_print_line_1): Likewise.  Don't strcmp src_file if src_loc is
	UNKNOWN_LOCATION.

2021-03-03  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-02-28  Jakub Jelinek  <jakub@redhat.com>

	PR c/99304
	* c-attribs.c (handle_malloc_attribute): Fix a typo in inform
	message - refernced -> referenced.  Remove superfluous space before
	closing paren of function calls.

2021-02-25  Nathan Sidwell  <nathan@acm.org>

	PR c++/99166
	* c.opt (-flang-info-module-cmi): Renamed option.

2021-02-19  Nathan Sidwell  <nathan@acm.org>

	* c.opt (flang-info-module-read, flang-info-module-read=): New.

2021-02-18  H.J. Lu  <hjl.tools@gmail.com>

	PR target/99113
	* c-attribs.c (c_common_attribute_table): Add the "retain"
	attribute.
	(handle_retain_attribute): New function.

2021-02-16  Marek Polacek  <polacek@redhat.com>

	PR c++/99062
	* c-attribs.c (handle_assume_aligned_attribute): Check that the
	alignment argument is non-negative.  Tweak a warning message.

2021-02-12  Martin Sebor  <msebor@redhat.com>

	PR c/99055
	* c-warn.c (warn_parm_array_mismatch): Free strings returned from
	print_generic_expr_to_str.

2021-02-10  Richard Biener  <rguenther@suse.de>

	* c-common.c (parse_optimize_options): Free decoded_options.

2021-02-04  emsr  <3dw4rd@verizon.net>

	* c-cppbuiltin.c (c_cpp_builtins): __cpp_size_t_suffix=202011L.

2021-02-03  Ed Smith-Rowland  <3dw4rd@verizon.net>

	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_size_t_suffix.
	* c-lex.c (interpret_integer): Set node type for size literal.

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

	* c.opt (-std=c++2a, -std=c++20, -std=gnu++2a, -std=gnu++20): Remove
	draft from description.
	(-std=c++2b): Fix a pasto, 2020 -> 2023.

2021-01-26  Paul Fee  <paul.f.fee@gmail.com>

	* c-common.h (cxx_dialect): Add cxx23 as a dialect.
	* c.opt: Add options for -std=c++23, std=c++2b, -std=gnu++23
	and -std=gnu++2b
	* c-opts.c (set_std_cxx23): New.
	(c_common_handle_option): Set options when -std=c++23 is enabled.
	(c_common_post_options): Adjust comments.
	(set_std_cxx20): Likewise.

2021-01-25  Martin Sebor  <msebor@redhat.com>

	PR c++/98646
	* c-common.c (check_nonnull_arg): Adjust warning text.

2021-01-17  Martin Sebor  <msebor@redhat.com>

	* c-pretty-print.c (c_pretty_printer::primary_expression): Don't
	assume SSA_NAME_IDENTIFIER evaluates to nonzero.

2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* c-pragma.h (pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_DETACH.
	Redefine PRAGMA_OACC_CLAUSE_DETACH.

2021-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98597
	* c-pretty-print.c: Include options.h.
	(c_fold_indirect_ref_for_warn): New function.
	(print_mem_ref): Use it.  If it returns something that has compatible
	type and is TBAA compatible with zero offset, print it and return,
	otherwise print it using offsetof syntax or array ref syntax.  Fix up
	printing if MEM_REFs first operand is ADDR_EXPR, or when the first
	argument has pointer to array type.  Print pointers using the standard
	formatting.

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

	PR c/98597
	PR c/98592
	* c-pretty-print.c (print_mem_ref): Avoid assuming MEM_REF operand
	has pointer type.  Remove redundant code.  Avoid calling
	gimple_canonical_types_compatible_p.

2021-01-07  Martin Sebor  <msebor@redhat.com>

	PR middle-end/98578
	* c-pretty-print.c (print_mem_ref): Strip array from access type.
	Avoid assuming acces type's size is constant.  Correct condition
	guarding the printing of a parenthesis.

2021-01-06  Martin Sebor  <msebor@redhat.com>

	PR c++/95768
	* c-pretty-print.c (c_pretty_printer::primary_expression): For
	SSA_NAMEs print VLA names and GIMPLE defining statements.
	(print_mem_ref): New function.
	(c_pretty_printer::unary_expression): Call it.

2021-01-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/95582
	* c-attribs.c (c_common_attribute_table): Add entry for
	signed_bool_precision.
	(handle_signed_bool_precision_attribute): New.

2020-12-24  Iain Sandoe  <iain@sandoe.co.uk>

	* c.opt: Add -stdlib= option and enumerations for
	libstdc++ and libc++.

2020-12-16  Martin Liska  <mliska@suse.cz>

	* c.opt: Remove usage of Report.

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

	PR middle-end/98166
	PR c++/57111
	PR middle-end/98160
	* c-attribs.c (maybe_add_noinline): New function.
	(handle_malloc_attribute): Call it.  Use ATTR_FLAG_INTERNAL.
	Implicitly add attribute noinline to functions not declared inline
	and warn on those.

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

	* c-pragma.c (omp_pragmas): Add 'allocate'.
	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_ALLOCATE.

2020-12-08  Jakub Jelinek  <jakub@redhat.com>

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

2020-12-07  Marek Polacek  <polacek@redhat.com>

	PR c++/98126
	* c-common.c (verify_tree_lim_r): New function.
	(verify_sequence_points): Use it.  Use nullptr instead of 0.

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

	PR c++/90629
	PR middle-end/94527
	* c-attribs.c (handle_dealloc_attribute): New function.
	(handle_malloc_attribute): Handle argument forms of attribute.
	* c.opt (-Wmismatched-dealloc): New option.
	(-Wmismatched-new-delete): New option.

2020-12-03  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/93121
	* c-common.h (enum rid): Add RID_BUILTIN_BIT_CAST.
	* c-common.c (c_common_reswords): Add __builtin_bit_cast.

2020-12-01  JeanHeyd Meneide  <phdofthehouse@gmail.com>

	* c-cppbuiltin.c (c_cpp_builtins): Add predefined
	{__GNUC_EXECUTION_CHARSET_NAME} and
	_WIDE_EXECUTION_CHARSET_NAME} macros.

2020-12-01  Nathan Sidwell  <nathan@acm.org>

	* c-common.c (module, import, export): New internal tokens (with
	trailing space).
	* c-common.h (RID__MODULE, RID__IMPORT & RID__EXPORT): Enumerate
	them.
	(D_CXX_MODULES, D_CXX_MODULES_FLAGS): Enable them.
	* c-cppbuiltin.c (c_cpp_builtins): Feature macro.

2020-12-01  Nathan Sidwell  <nathan@acm.org>

	* c-opts.c (c_common_init_options): Ask for module dependencies.
	(c_common_handle_option): Handle -Mmodules -Mno-modules.
	* c-pch.c (c_common_valid_pch): ... does not play with C++
	modules.
	* c.opt (Mmodules, Mno-modules): New preprocessor dependency
	options.
	(fmodules-ts, fmodule-header, fmodule-implicit-inline)
	(fmodule-only, fmodule-mapper, fmodule-lazy)
	(fmodule-version-ignore, Winvalid-imported-macros)
	(flang-info-include-translate, flang-info-include-translate-not):
	New options

2020-11-28  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_nested_type) <RECORD_TYPE>: Remove obsolete code.
	(dump_ada_structure): Also deal with convention, unchecked union and
	bit-field for nested types.  In the latter case, print an Alignment
	aspect along with the Pack aspect.

2020-11-25  Martin Sebor  <msebor@redhat.com>

	PR bootstrap/94982
	* c-attribs.c (handle_patchable_function_entry_attribute): Avoid
	-Wformat-diag.

2020-11-24  Martin Sebor  <msebor@redhat.com>

	* c-warn.c (warn_parm_array_mismatch): Avoid invalid redeclarations.

2020-11-23  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* c-attribs.c (handle_special_var_sec_attribute): New.
	(handle_noinit_attribute): Remove.
	(attr_noinit_exclusions): Rename to...
	(attr_section_exclusions): ...this, and add "persistent" attribute
	exclusion.
	(c_common_attribute_table): Add "persistent" attribute.

2020-11-21  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* c-pretty-print.c (c_pretty_printer::simple_type_specifier):
	Treat opaque types like other types.
	(c_pretty_printer::direct_abstract_declarator): Opaque types are
	supported types.

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

	* c-warn.c (warn_parm_array_mismatch): Bail on invalid redeclarations
	with fewer arguments.

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

	PR middle-end/97879
	* c-attribs.c (handle_access_attribute): Handle ATTR_FLAG_INTERNAL.
	Error out on invalid modes.

2020-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/88101
	* c-common.c (check_builtin_function_arguments): Handle
	BUILT_IN_CLEAR_PADDING.

2020-11-18  Nathan Sidwell  <nathan@acm.org>

	* c-lex.c (c_lex_with_flags): CPP_HEADER_NAMEs can now be seen.

2020-11-17  Nathan Sidwell  <nathan@acm.org>

	* c-common.h (enum c_tree_index): Reorder to place lazy fields
	after newly-added CTI_MODULE_HWM.

2020-11-17  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (builtin_define_float_constants): Define
	"*_IS_IEC_60559__" macros.

2020-11-17  Nathan Sidwell  <nathan@acm.org>

	* c-lex.c: #include "langhooks.h".
	(cb_undef): Maybe call preprocess_undef lang hook.
	* c-opts.c (c_common_post_options): Maybe call preprocess_options
	lang hook.
	(push_command_line_include): Maybe call preprocess_main_file lang
	hook.
	(cb_file_change): Likewise.
	* c-ppoutput.c: #include "langhooks.h.
	(scan_translation_unit): Maybe call preprocess_token lang hook.
	(class do_streamer): New, derive from token_streamer.
	(directives_only_cb): Data pointer is do_streamer, call
	preprocess_token lang hook.
	(scan_translation_unit_directives_only): Use do_streamer.
	(print_line_1): Move src_line recording to after string output.
	(cb_undef): Maybe call preprocess_undef lang hook.

2020-11-17  Nathan Sidwell  <nathan@acm.org>

	* c-ppoutput.c (scan_translation_unit): Use token_streamer, remove
	code duplicating that functionality.

2020-11-17  Jakub Jelinek  <jakub@redhat.com>

	PR c/90628
	* c-common.c (check_builtin_function_arguments)
	<case BUILT_IN_ADD_OVERFLOW>: Diagnose when last argument is pointer
	to _Atomic.  For the TYPE_READONLY case, adjust message to be usable
	for more builtins and argument positions.

2020-11-16  Iain Sandoe  <iain@sandoe.co.uk>

	PR objc/97854
	* stub-objc.c: Include c-common.h to declare enum rid.

2020-11-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/63287
	* c-cppbuiltin.c: Include configargs.h.
	(c_cpp_builtins): For C++11 and later if THREAD_MODEL_SPEC is not
	defined, predefine __STDCPP_THREADS__ to 1 unless thread_model is
	"single".

2020-11-13  Gergö Barany  <gergo@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* c.opt (fopenacc-kernels): Add.

2020-11-13  Jason Merrill  <jason@redhat.com>

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

2020-11-13  Piotr H. Dabrowski  <phd@phd.re>

	PR c++/91318
	* c-cppbuiltin.c: c_cpp_builtins_optimize_pragma(): use cpp_define_unused()

2020-11-13  Martin Liska  <mliska@suse.cz>

	* c-attribs.c (build_attr_access_from_parms): Format properly.

2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>

	PR objc/90707
	* c-common.c (c_common_reswords): null_unspecified, nullable,
	nonnull, null_resettable: New keywords.
	* c-common.h (enum rid): RID_NULL_UNSPECIFIED, RID_NULLABLE,
	RID_NONNULL, RID_NULL_RESETTABLE: New.
	(OBJC_IS_PATTR_KEYWORD): Include nullability keywords in the
	ranges accepted for property attributes.
	* c-attribs.c (handle_objc_nullability_attribute): New.
	* c-objc.h (enum objc_property_attribute_group): Add
	OBJC_PROPATTR_GROUP_NULLABLE.
	(enum objc_property_attribute_kind):Add
	OBJC_PROPERTY_ATTR_NULL_UNSPECIFIED, OBJC_PROPERTY_ATTR_NULLABLE,
	OBJC_PROPERTY_ATTR_NONNULL, OBJC_PROPERTY_ATTR_NULL_RESETTABLE.

2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>

	PR objc/77404
	* c-attribs.c (handle_objc_root_class_attribute): New
	* c-objc.h (objc_start_class_interface): Add a location
	value for the position of the class name.
	* c.opt: Add Wobjc-root-class.
	* stub-objc.c (objc_start_class_interface): Add a location
	value for the position of the class name.

2020-11-12  Joseph Myers  <joseph@codesourcery.com>

	* c-lex.c (c_common_has_attribute): Take argument std_syntax.
	Allow scope for C.  Handle standard attributes for C.  Do not
	accept unscoped attributes if std_syntax and not handled as
	standard attributes.
	* c-common.h (c_common_has_attribute): Update prototype.

2020-11-12  Nicholas Guriev  <guriev-ns@ya.ru>

	PR pch/86674
	* c-pch.c (c_common_valid_pch): Use cpp_warning with CPP_W_INVALID_PCH
	reason to fix -Werror=invalid-pch and -Wno-error=invalid-pch switches.

2020-11-11  Patrick Palka  <ppalka@redhat.com>

	PR c++/88115
	* c-opts.c (c_common_post_options): Update latest_abi_version.

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

	PR c/97748
	* c-common.h (warn_if_unused_value): Add quiet argument defaulted
	to false.
	* c-warn.c (warn_if_unused_value): Likewise.  Pass it down
	recursively and just return true instead of warning if it is true.
	Handle COMPLEX_EXPR.

2020-11-10  Chung-Lin Tang  <cltang@codesourcery.com>

	* c-common.h (c_omp_adjust_map_clauses): New declaration.
	* c-omp.c (struct map_clause): Helper type for c_omp_adjust_map_clauses.
	(c_omp_adjust_map_clauses): New function.

2020-11-09  Marek Polacek  <polacek@redhat.com>

	DR 1914
	* c-common.c (attribute_fallthrough_p): Tweak the warning
	message.

2020-11-09  Patrick Palka  <ppalka@redhat.com>

	* c-pragma.c (handle_pragma_diagnostic): Split the
	unknown-option -Wpragmas diagnostic into a warning and a
	subsequent note containing a spelling suggestion.  Avoid
	computing the suggestion if -Wpragmas warnings are being
	suppressed.

2020-11-09  Patrick Palka  <ppalka@redhat.com>

	PR testsuite/97117
	* c-indentation.c (get_visual_column): Remove location_t
	parameter.  Move the column-tracking diagnostic code from here
	to ...
	(should_warn_for_misleading_indentation): ... here, before the
	early exit for when the loci are not all distinct.  Don't pass a
	location_t argument to get_visual_column.
	(assert_get_visual_column_succeeds): Don't pass a location_t
	argument to get_visual_column.
	(assert_get_visual_column_fails): Likewise.

2020-11-08  Iain Sandoe  <iain@sandoe.co.uk>

	* c-common.h (OBJC_IS_PATTR_KEYWORD): Add class to the list
	of keywords accepted in @property attribute contexts.
	* c-objc.h (enum objc_property_attribute_group): Add
	OBJC_PROPATTR_GROUP_CLASS.
	(enum objc_property_attribute_kind): Add
	OBJC_PROPERTY_ATTR_CLASS.

2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>

	* c-common.c (c_common_reswords): Add 'atomic' property
	attribute.
	* c-common.h (enum rid): Add RID_PROPATOMIC for atomic
	property attributes.

2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>

	* c-attribs.c (handle_nsobject_attribute): New.
	* c.opt: Add WNSObject-attribute.

2020-11-06  Iain Sandoe  <iain@sandoe.co.uk>

	* c-objc.h (enum objc_property_attribute_group): New
	(enum objc_property_attribute_kind): New.
	(OBJC_PROPATTR_GROUP_MASK): New.
	(struct property_attribute_info): Small class encapsulating
	parser output from property attributes.
	(objc_prop_attr_kind_for_rid): New
	(objc_add_property_declaration): Simplify interface.
	* stub-objc.c (enum rid): Dummy type.
	(objc_add_property_declaration): Simplify interface.
	(objc_prop_attr_kind_for_rid): New.

2020-11-06  Nathan Sidwell  <nathan@acm.org>

	* c-ada-spec.c (collect_ada_nodes): Rename
	DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
	(collect_ada_node): Likewise.
	(dump_forward_type): Likewise.
	* c-common.c (set_underlying_type): Rename
	DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
	(user_facing_original_type, c_common_finalize_early_debug): Likewise.

2020-11-06  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (verify_sequence_points): Remove DEBUG_FUNCTION.

2020-11-05  Marek Polacek  <polacek@redhat.com>

	PR c++/97675
	* c.opt (Wexceptions): New option.

2020-11-05  Marek Polacek  <polacek@redhat.com>

	PR c++/25814
	* c.opt (Wvexing-parse): New option.

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

	PR c++/97670
	* c-omp.c (c_omp_split_clauses): Look through array reductions to find
	underlying decl to clear in the allocate_head bitmap.

2020-11-04  Iain Sandoe  <iain@sandoe.co.uk>

	* c-objc.h (objc_non_constant_expr_p): New.
	* stub-objc.c (objc_non_constant_expr_p): New.

2020-11-03  Nathan Sidwell  <nathan@acm.org>

	* c.opt (MQ,MT): Reword description to be make-agnostic.

2020-11-02  Nathan Sidwell  <nathan@acm.org>

	* c-opts.c (c_common_post_options): Move var decl to its
	initialization point.

2020-11-01  Iain Sandoe  <iain@sandoe.co.uk>

	* c-lex.c (c_lex_with_flags): When combining '@' with a
	keyword for Objective-C, combine the location ranges too.

2020-10-30  Qing Zhao  <qing.zhao@oracle.com>
	    H.J.Lu  <hjl.tools@gmail.com>

	* c-attribs.c (c_common_attribute_table): Add new attribute
	zero_call_used_regs.
	(handle_zero_call_used_regs_attribute): New function.

2020-10-28  Marek Polacek  <polacek@redhat.com>

	PR c++/97573
	* c-opts.c (c_common_post_options): In C++20, turn on
	-Wdeprecated-enum-enum-conversion and
	-Wdeprecated-enum-float-conversion.
	* c.opt (Wdeprecated-enum-enum-conversion,
	Wdeprecated-enum-float-conversion): New options.
	(Wenum-conversion): Allow for C++ too.

2020-10-28  Jakub Jelinek  <jakub@redhat.com>

	* c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALLOCATE.
	* c-omp.c: Include bitmap.h.
	(c_omp_split_clauses): Handle OMP_CLAUSE_ALLOCATE.

2020-10-26  Ville Voutilainen  <ville.voutilainen@gmail.com>

	* c-common.c (__is_nothrow_assignable): New.
	(__is_nothrow_constructible): Likewise.
	* c-common.h (RID_IS_NOTHROW_ASSIGNABLE): New.
	(RID_IS_NOTHROW_CONSTRUCTIBLE): Likewise.

2020-10-23  Jan Hubicka  <hubicka@ucw.cz>

	* c-common.c (c_common_finalize_early_debug): Update for new thunk api.

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

	PR c++/91741
	* c-common.c (verify_tree): Handle PAREN_SIZEOF_EXPR.
	(c_common_init_ts): Likewise.
	* c-common.def (PAREN_SIZEOF_EXPR): New tree code.
	* c-common.h (maybe_warn_sizeof_array_div): Declare.
	* c-warn.c (sizeof_pointer_memaccess_warning): Unwrap NOP_EXPRs.
	(maybe_warn_sizeof_array_div): New function.
	* c.opt (Wsizeof-array-div): New option.

2020-10-23  Martin Sebor  <msebor@redhat.com>

	PR c/97463
	* c-warn.c (warn_parm_ptrarray_mismatch): Move null test earlier.

2020-10-22  Martin Liska  <mliska@suse.cz>

	PR c/94722
	* c-attribs.c (handle_no_stack_protect_function_attribute): New.
	(handle_stack_protect_attribute): Add error message for a
	no_stack_protector function.

2020-10-22  Martin Liska  <mliska@suse.cz>

	* c-cppbuiltin.c (c_cpp_builtins): Use the stack_protector enum.

2020-10-22  Jan Hubicka  <hubicka@ucw.cz>

	* c-gimplify.c: Include tree-nested.h
	(c_genericize): Update for new nested function info.

2020-10-14  Martin Sebor  <msebor@redhat.com>

	PR c/97413
	* c-attribs.c (build_attr_access_from_parms): Wrap chain of VLA
	bounds in an extra list.

2020-10-05  Richard Biener  <rguenther@suse.de>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c++/97197
	* c-pretty-print.c: Include langhooks.h.
	(c_pretty_printer::postfix_expression): Handle TARGET_MEM_REF as
	expression.
	(c_pretty_printer::expression): Handle TARGET_MEM_REF as
	unary_expression.
	(c_pretty_printer::unary_expression): Handle TARGET_MEM_REF.

2020-09-30  Martin Sebor  <msebor@redhat.com>

	PR middle-end/97189
	* c-attribs.c (append_access_attr): Use the function declaration
	location for a warning about an attribute access argument.

2020-09-29  Marek Polacek  <polacek@redhat.com>

	PR c++/94695
	* c.opt (Wrange-loop-construct): New option.

2020-09-23  Martin Sebor  <msebor@redhat.com>

	PR c/97131
	* c-warn.c (warn_parm_ptrarray_mismatch): Handle more invalid input.

2020-09-23  Marek Polacek  <polacek@redhat.com>

	PR c/97125
	* c-gimplify.c (c_genericize): Only call do_warn_duplicated_branches_r
	after loops and other structured control constructs have been lowered.

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

	* c.opt (Wbuiltin-declaration-mismatch): Fix typo in variable name:
	warn_builtin_declaraion_mismatch -> warn_builtin_declaration_mismatch.

2020-09-21  Marek Polacek  <polacek@redhat.com>

	* c.opt (Wctad-maybe-unsupported): New option.

2020-09-19  Martin Sebor  <msebor@redhat.com>

	PR c/50584
	* c-common.h (warn_parm_array_mismatch): Declare new function.
	(has_attribute): Move declaration of an existing function.
	(build_attr_access_from_parms): Declare new function.
	* c-warn.c (parm_array_as_string): Define new function.
	(plus_one):  Define new function.
	(warn_parm_ptrarray_mismatch): Define new function.
	(warn_parm_array_mismatch):  Define new function.
	(vla_bound_parm_decl): New function.
	* c.opt (-Warray-parameter, -Wvla-parameter): New options.
	* c-pretty-print.c (pp_c_type_qualifier_list): Don't print array type
	qualifiers here...
	(c_pretty_printer::direct_abstract_declarator): ...but instead print
	them in brackets here.  Also print [static].  Strip extraneous
	expressions from VLA bounds.

2020-09-19  Martin Sebor  <msebor@redhat.com>

	PR c/50584
	* c-attribs.c (c_common_attribute_table): Add "arg spec" attribute.
	(handle_argspec_attribute): New function.
	(get_argument, get_argument_type): New functions.
	(append_access_attrs): Add overload.  Handle internal attribute
	representation in addition to external.
	(handle_access_attribute): Handle internal attribute representation
	in addition to external.
	(build_attr_access_from_parms): New function.

2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>

	* c-gimplify.c (genericize_c_loop): Rewrite to match
	c_finish_loop in c-typeck.c.

2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>

	* c-common.c (c_block_may_fallthrough): New, split from
	cxx_block_may_fallthrough in the cp front end.
	(c_common_init_ts): Move handling of loop and switch-related
	statements here from the cp front end.
	* c-common.def (FOR_STMT, WHILE_STMT, DO_STMT): Move here from
	cp front end.
	(BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
	* c-common.h (c_block_may_fallthru): Declare.
	(bc_state_t): Move here from cp front end.
	(save_bc_state, restore_bc_state): Declare.
	(c_genericize_control_stmt): Declare.
	(WHILE_COND, WHILE_BODY): Likewise.
	(DO_COND, DO_BODY): Likewise.
	(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY, FOR_SCOPE): Likewise.
	(SWITCH_STMT_COND, SWITCH_STMT_BODY): Likewise.
	(SWITCH_STMT_TYPE, SWITCH_STMT_SCOPE): Likewise.
	(SWITCH_STMT_ALL_CASES_P, SWITCH_STMT_NO_BREAK_P): Likewise.
	(LABEL_DECL_BREAK, LABEL_DECL_CONTINUE): Likewise.
	* c-dump.c (dump_stmt): Copy from cp front end.
	(c_dump_tree): Move code to handle structured loop and switch
	tree nodes here from cp front end.
	* c-gimplify.c: Adjust includes.
	(enum bc_t, bc_label, begin_bc_block, finish_bc_block): Move from
	cp front end.
	(save_bc_state, restore_bc_state): New functions using old code
	from cp front end.
	(get_bc_label, expr_loc_or_loc): Move from cp front end.
	(genericize_c_loop): Move from cp front end.
	(genericize_for_stmt, genericize_while_stmt): Likewise.
	(genericize_do_stmt, genericize_switch_stmt): Likewise.
	(genericize_continue_stmt, genericize_break_stmt): Likewise.
	(genericize_omp_for_stmt): Likewise.
	(c_genericize_control_stmt): New function using code split from
	cp front end.
	(c_genericize_control_r): New.
	(c_genericize): Call walk_tree with c_genericize_control_r.
	* c-pretty-print.c (c_pretty_printer::statement): Move code to handle
	structured loop and switch tree nodes here from cp front end.

2020-09-17  Patrick Palka  <ppalka@redhat.com>

	PR c/80076
	* c-indentation.c (should_warn_for_misleading_indentation): Move
	declarations of local variables closer to their first use.
	Handle virtual token locations by resolving them to their
	respective macro expansion points.  If all three tokens are
	produced from the same macro expansion, then instead use their
	loci within the macro definition.

2020-09-16  Martin Sebor  <msebor@redhat.com>

	PR c/78666
	PR c/96126
	* c-attribs.c (validate_attr_args): New function.
	(validate_attr_arg): Same.
	(handle_section_attribute): Call it.  Introduce a local variable.
	(handle_alloc_size_attribute):  Same.
	(handle_alloc_align_attribute): Same.

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

	* c-attribs.c (handle_optimize_attribute): Adjust
	cl_optimization_save, cl_optimization_restore and
	build_optimization_node callers.
	* c-pragma.c (handle_pragma_optimize): Adjust
	build_optimization_node caller.
	(handle_pragma_push_options): Adjust
	build_optimization_node and build_target_option_node callers.
	(handle_pragma_pop_options, handle_pragma_reset_options):
	Adjust cl_optimization_restore callers.

2020-08-28  Martin Sebor  <msebor@redhat.com>

	* c.opt (Wstringop-overread): New option.

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-07-31  Martin Sebor  <msebor@redhat.com>

	PR c++/96003
	* c-common.c (check_function_arguments_recurse): Return early when
	no-warning bit is set.

2020-07-31  Richard Biener  <rguenther@suse.de>

	PR debug/96383
	* c-common.h (c_common_finalize_early_debug): Declare.
	* c-common.c: Include debug.h.
	(c_common_finalize_early_debug): finalize_early_debug langhook
	implementation generating debug for extern declarations.

2020-07-27  Nathan Sidwell  <nathan@acm.org>

	* c-common.c (try_to_locate_new_include_insertion_point): Use
	strcmp, not pointer equality.

2020-07-25  Martin Sebor  <msebor@redhat.com>

	PR c++/96310
	* c-common.c (check_nonnull_arg): Print note only when warning was
	issued.

2020-07-22  Tobias Burnus  <tobias@codesourcery.com>

	* c-omp.c (c_finish_omp_critical): Check for no name but
	nonzero hint provided.

2020-07-20  Jason Merrill  <jason@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Update
	__cpp_nontype_template_args for C++20.

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

	PR c/96249
	* c.opt: Remove stray text.

2020-07-14  Lewis Hyatt  <lhyatt@gmail.com>

	PR other/86904
	* c-indentation.c (should_warn_for_misleading_indentation): Get
	global tabstop from the new source.
	* c-opts.c (c_common_handle_option): Remove handling of -ftabstop, which
	is now a common option.
	* c.opt: Likewise.

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

	* c.opt (Wscalar-storage-order): Add explicit variable.

2020-07-07  Nathan Sidwell  <nathan@acm.org>

	* c-opts.c (c_common_post_options): Add 'injecting' arg to
	cpp_read_main_file.
	(c_finish_options): Add linemap_line_start calls for builtin and cmd
	maps.  Force token position to line_table's highest line.
	* c-ppoutput.c (print_line_1): Refactor, print line zero.
	(cb_define): Always increment source line.

2020-07-06  Martin Sebor  <msebor@redhat.com>

	PR c++/95984
	* c-common.c (check_function_nonnull): Avoid checking syntesized calls
	to stub lambda objects with null this pointer.
	(check_nonnull_arg): Handle C++ nullptr.

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

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

2020-06-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/95963
	* c-common.c (check_function_arguments_recurse): Don't crash on
	calls to internal functions.

2020-06-28  Martin Sebor  <msebor@redhat.com>

	PR c++/86568
	* c-common.c (struct nonnull_arg_ctx): Add members.
	(check_function_nonnull): Use nonnull_arg_ctx as argument.  Handle
	C++ member functions specially.  Consider the this pointer implicitly
	nonnull.
	(check_nonnull_arg): Use location of argument when available.
	(check_function_arguments): Use nonnull_arg_ctx as argument.

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-06-26  Marek Polacek  <polacek@redhat.com>

	* c-opts.c (c_common_init_options): Default to gnu++17.

2020-06-17  Jonathan Wakely  <jwakely@redhat.com>

	PR c/95378
	* c-common.c (get_atomic_generic_size): Check cv-qualifiers in
	pointer arguments.

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

	* c-common.h (c_omp_check_loop_iv_exprs): Add an int argument.
	* c-omp.c (struct c_omp_check_loop_iv_data): Add maybe_nonrect and
	idx members.
	(c_omp_is_loop_iterator): New function.
	(c_omp_check_loop_iv_r): Use it.  Add support for silent scanning
	if outer loop iterator is present.  Perform duplicate checking through
	hash_set in the function rather than expecting caller to do that.
	Pass NULL instead of d->ppset to walk_tree_1.
	(c_omp_check_nonrect_loop_iv): New function.
	(c_omp_check_loop_iv): Use it.  Fill in new members, allow
	non-rectangular loop forms, diagnose multiple associated loops with
	the same iterator.  Pass NULL instead of &pset to walk_tree_1.
	(c_omp_check_loop_iv_exprs): Likewise.

2020-06-10  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/92860
	* c-attribs.c (handle_optimize_attribute):
	Save global options and compare it after parsing of function
	attribute.
	* c-pragma.c (opt_stack::saved_global_options): New field.
	(handle_pragma_push_options): Save global_options.
	(handle_pragma_pop_options): Compare them after pop.

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

	PR c/95580
	* c-pretty-print.c (c_pretty_printer::unary_expression): Handle the
	case when MEM_REF's first argument has type pointer to incomplete type.

2020-06-05  Jason Merrill  <jason@redhat.com>

	* c-pretty-print.c (pp_c_additive_expression): Handle negative
	operand to POINTER_PLUS_EXPR.

2020-06-04  Martin Sebor  <msebor@redhat.com>

	PR middle-end/10138
	PR middle-end/95136
	* c-attribs.c (append_access_attrs): Handle attr_access::none.
	(handle_access_attribute): Same.

2020-06-03  Mark Wielaard  <mark@klomp.org>

	* known-headers.cc (get_cp_stdlib_header_for_string_macro_name):
	New function.
	* known-headers.h (get_cp_stdlib_header_for_string_macro_name):
	New function declaration.

2020-06-03  Mark Wielaard  <mark@klomp.org>

	* known-headers.cc (get_string_macro_hint): New function.
	(get_stdlib_header_for_name): Use get_string_macro_hint.
	(get_c_stdlib_header_for_string_macro_name): New function.
	* known-headers.h (get_c_stdlib_header_for_string_macro_name):
	New function declaration.

2020-06-03  Tobias Burnus  <tobias@codesourcery.com>

	* c-common.h (c_omp_predetermined_mapping): Declare.
	* c-omp.c (c_omp_predetermined_mapping): New.

2020-05-22  Mark Wielaard  <mark@klomp.org>

	* known-headers.cc (get_stdlib_header_for_name): Add a new
	stdlib_hint array for stdbool and stdint.

2020-05-22  Mark Wielaard  <mark@klomp.org>

	* known-headers.cc (get_stdlib_header_for_name): Return
	"<stdbool.h>" for "bool", "true" or "false" when STDLIB_C and
	flag_isoc99.

2020-05-20  Nathan Sidwell  <nathan@acm.org>

	* c-common.c (try_to_locate_new_include_insertion_point): Revert change.

	* c-common.c (try_to_locate_new_include_insertion_point): Use
	strcmp to compare filenames.
	* c-lex.c (init_c_lex): Move declaration to initialization.
	* c-opts.c (handle_deferred_opts): Move cpp_get_deps call into
	deferred count loop.

2020-05-15  Jason Merrill  <jason@redhat.com>

	* c-opts.c (set_std_cxx20): Set flag_coroutines.

2020-05-13  Jason Merrill  <jason@redhat.com>

	* c.opt (std=c++20): Make c++2a the alias.
	(std=gnu++20): Likewise.
	* c-common.h (cxx_dialect): Change cxx2a to cxx20.
	* c-opts.c: Adjust.
	* c-cppbuiltin.c: Adjust.
	* c-ubsan.c: Adjust.
	* c-warn.c: Adjust.

2020-05-12  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ads): Output pragma Warnings ("U"); on entry.

2020-05-08  Nathan Sidwell  <nathan@acm.org>

	Reimplement directives only processing.
	* c-ppoutput.c (token_streamer): Ne.
	(directives_only_cb): New.  Swallow ...
	(print_lines_directives_only): ... this.
	(scan_translation_unit_directives_only): Reimplment using the
	published interface.

2020-05-07  Marek Polacek  <polacek@redhat.com>

	* c-format.c (badwords): Add "nonstatic".

202-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR c/94968
	* c-common.c (speculation_safe_value_resolve_params): Return false if
	error_operand_p (val2).
	(resolve_overloaded_builtin) <case BUILT_IN_SPECULATION_SAFE_VALUE_N>:
	Remove extraneous semicolon.

2020-05-06  qing zhao  <qing.zhao@oracle.com>

	PR c/94230
	* c-indentation.c (get_visual_column): Add a hint to use the new
	-flarge-source-files option.

2020-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	* c-attribs.c (handle_vector_size_attribute): Add attribute
	nonnull for argument args in order to silence warning of
	uninitialized variable usage.  Since this is local to the
	compilation unit and thus cannot be checked at call sides by the
	compiler, added an assert statement in order to verify this.

2020-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/93492
	* c-attribs.c (handle_patchable_function_entry_attribute): Limit
	value to USHRT_MAX (65535).

2020-04-29  Jakub Jelinek  <jakub@redhat.com>

	* c-format.c (PP_FORMAT_CHAR_TABLE): Add %{ and %}.

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-04-23  Marek Polacek  <polacek@redhat.com>

	PR c++/94733
	* c-attribs.c (find_tm_attribute): Use get_attribute_name instead of
	TREE_PURPOSE.

2020-04-14  Patrick Palka  <ppalka@redhat.com>

	PR c++/85278
	* c-pretty-print.c (pp_c_pointer) <case REFERENCE_TYPE>: Print a double
	ampersand if it's an rvalue reference type.

2020-04-13  Martin Sebor  <msebor@redhat.com>

	PR c/92326
	* c-pretty-print.c (c_pretty_printer::direct_abstract_declarator): Avoid
	printing array bound for flexible array members.

2020-04-13  Iain Sandoe  <iain@sandoe.co.uk>

	* c-cppbuiltin.c (c_cpp_builtins): Update coroutines builtin
	define, per n4861.

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

	PR c/94392
	* c-opts.c (c_common_post_options): Enable -ffinite-loops
	for -O2 and C++11 or newer.

2020-03-28  Patrick Palka  <ppalka@redhat.com>

	* c.opt: Add -fconcepts-diagnostics-depth.

2020-03-27  Martin Sebor  <msebor@redhat.com>

	PR c++/94346
	* c-attribs.c (handle_copy_attribute): Avoid passing expressions
	to decl_attributes.  Make handling of different kinds of entities
	more robust.

2020-03-27  Martin Sebor  <msebor@redhat.com>

	PR c++/94098
	* c-attribs.c (handle_access_attribute): Avoid setting TYPE_ATTRIBUTES
	here.

2020-03-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/91993
	* c-warn.c (warnings_for_convert_and_check): For expr and/or
	result being COMPOUND_EXPRs, skip to ultimate rhs.

2020-03-20  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/94072
	* c-common.c (c_common_type_for_mode): Before using a registered
	built-in type, check that the vectorness of the type matches
	the vectorness of the mode.

2020-03-17  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (resolve_overloaded_builtin): Fix up duplicated word
	issue in a diagnostic message.

2020-03-15  Lewis Hyatt  <lhyatt@gmail.com>

	* c.opt: Avoid redundancy in the help text.

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

	PR c++/93958 - add missing -std=gnu++20.
	* c.opt: Add -std=gnu++20.

2020-03-01  Martin Sebor  <msebor@redhat.com>

	PR c++/92721
	* c-attribs.c (append_access_attrs): Correctly handle attribute.
	(handle_access_attribute): Same.

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

	PR c/93858
	* c-pragma.c (handle_pragma_diagnostic): Add missing ? after
	"did you mean" hint in diagnostics.

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

	* c.opt: Add -std=c++20.

2020-02-14  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c: Include bitmap.h.
	(dump_ada_double_name): Rename into...
	(dump_anonymous_type_name): ...this.  Always use the TYPE_UID.
	(dump_ada_array_type): Adjust to above renaming.  Robustify.
	(dump_nested_types_1): New function copied from...  Add dumped_types
	parameter and pass it down to dump_nested_type.
	(dump_nested_types): ...this.  Remove parent parameter.  Just call
	dump_nested_types_1 on an automatic bitmap.
	(dump_nested_type): Add dumped_types parameter.
	<ARRAY_TYPE>: Do not dump it if already present in dumped_types.
	Adjust recursive calls and adjust to above renaming.
	(dump_ada_declaration): Adjust call to dump_nested_types.
	Tidy up and adjust to above renaming.
	(dump_ada_specs): Initialize and release bitmap obstack.

2020-02-10  Martin Sebor  <msebor@redhat.com>

	PR c/93640
	* c-attribs.c (handle_access_attribute): Correct off-by-one mistakes.

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

	PR other/93641
	* c-format.c (check_plain): Fix up last argument of strncasecmp.
	Remove useless extra test.

2020-02-03  Julian Brown  <julian@codesourcery.com>
	    Tobias Burnus  <tobias@codesourcery.com>

	* c-cppbuiltin.c (c_cpp_builtins): Update _OPENACC define to 201711.

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

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

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

	* c-warn.c (conversion_warning): Change -Wsign-conversion handling.

2020-01-23  Martin Sebor  <msebor@redhat.com>

	PR c/84919
	* c-common.c (check_function_arguments): Avoid overlap checking
	of sprintf functions.

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

	PR testsuite/93391 - PR 40752 test fails with unsigned plain char.
	PR c++/40752
	* c-warn.c (conversion_warning): Check operands only after checking
	the whole expression.  Don't check second operand of + for sign.

2020-01-21  Jason Merrill  <jason@redhat.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/40752 - useless -Wconversion with short +=.
	* c.opt (-Warith-conversion): New.
	* c-warn.c (conversion_warning): Recurse for operands of
	operators.  Only warn about the whole expression with
	-Warith-conversion.

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

	* c-common.c (unsafe_conversion_p): Don't warn, return UNSAFE_SIGN.
	* c-warn.c (conversion_warning): Warn about UNSAFE_SIGN.

2020-01-20  Nathan Sidwell  <nathan@acm.org>

	PR preprocessor/80005
	* c-cppbuiltins.c (c_cpp_builtins): Don't define __has_include{,_next}.

2020-01-18  Iain Sandoe  <iain@sandoe.co.uk>

	* c-common.c (co_await, co_yield, co_return): New.
	* c-common.h (RID_CO_AWAIT, RID_CO_YIELD,
	RID_CO_RETURN): New enumeration values.
	(D_CXX_COROUTINES): Bit to identify coroutines are active.
	(D_CXX_COROUTINES_FLAGS): Guard for coroutine keywords.
	* c-cppbuiltin.c (__cpp_coroutines): New cpp define.
	* c.opt (fcoroutines): New command-line switch.

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

	* c-format.c (local_event_ptr_node): New.
	(PP_FORMAT_CHAR_TABLE): Add entry for "%@".
	(init_dynamic_diag_info): Initialize local_event_ptr_node.
	* c-format.h (T_EVENT_PTR): New define.

2020-01-10  Martin Sebor  <msebor@redhat.com>

	PR c/93132
	* c-attribs.c (append_access_attrs): Validate against the translated
	access string rather than the human-readable representation.

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

	Update copyright years.

2019-12-20  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.h (decl_sloc): Delete.
	* c-ada-spec.c (decl_sloc): Make static.

2019-12-19  Julian Brown  <julian@codesourcery.com>

	* c-common.h (c_omp_map_clause_name): Add prototype.
	* c-omp.c (c_omp_map_clause_name): New function.
	* c-pragma.h (pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ATTACH and
	PRAGMA_OACC_CLAUSE_DETACH.

2019-12-19  Julian Brown  <julian@codesourcery.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>
	    Tobias Burnus  <tobias@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* c-pragma.h (pragma_omp_clause): Add
	PRAGMA_OACC_CLAUSE_NO_CREATE.

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

	PR c++/61339
	* c.opt (-Wmismatched-tags, -Wredundant-tags): New options.

2019-12-11  David Malcolm  <dmalcolm@redhat.com>

	* c-pretty-print.c (c_pretty_printer::clone): New vfunc
	implementation.
	* c-pretty-print.h (c_pretty_printer::clone): New vfunc decl.

2019-12-09  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (range_label_for_format_type_mismatch::get_text):
	Replace label_text ctor called with true with label_text::take.

2019-12-09  David Malcolm  <dmalcolm@redhat.com>

	* c-format.c (selftest::test_type_mismatch_range_labels): Remove
	initial newline from expected outputs.
	* c-opts.c (c_diagnostic_finalizer): Add pp_newline call before
	call to diagnostic_show_locus.

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

	* c-cppbuiltin.c (c_cpp_builtins): Don't define __cpp_consteval for
	now.

2019-12-05  Marek Polacek  <polacek@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c++/91353 - P1331R2: Allow trivial default init in constexpr contexts.
	* c-cppbuiltin.c (c_cpp_builtins): Adjust the value of __cpp_constexpr.

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

	PR c++/92271 - make __is_same alias for __is_same_as.
	* c-common.c: Add __is_same, an alias for __is_same_as.

2019-12-03  Marek Polacek  <polacek@redhat.com>

	PR c++/91363 - P0960R3: Parenthesized initialization of aggregates.
	* c-cppbuiltin.c (c_cpp_builtins): Predefine
	__cpp_aggregate_paren_init=201902 for -std=c++2a.

2019-11-30  Jan Hubicka  <hubicka@ucw.cz>

	* c-attribs.c (handle_symver_attribute): New function
	(c_common_attributes): Add symver.

2019-11-30  Richard Sandiford  <richard.sandiford@arm.com>

	* c-common.c (pointer_int_sum): Use verify_type_context to check
	whether the target allows pointer arithmetic for the types involved.
	(c_sizeof_or_alignof_type, c_alignof_expr): Use verify_type_context
	to check whether the target allows sizeof and alignof operations
	for the types involved.

2019-11-27  Jason Merrill  <jason@redhat.com>

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

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-25  Joseph Myers  <joseph@codesourcery.com>

	PR c/91985
	* c-common.c (c_common_type_for_mode): Handle decimal
	floating-point types being NULL_TREE.
	* c-format.c (get_format_for_type_1): Handle specified types being
	NULL_TREE.
	* c-lex.c (interpret_float): Give an error for decimal
	floating-point constants when decimal floating-point not
	supported.

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

	PR middle-end/83859
	* c-attribs.c (append_access_attrs): Avoid buffer overflow.  Avoid
	memory leak.  Use XNEWVEC macro.  Use auto_diagnostic_group to
	group warning with inform together.
	(handle_access_attribute): Formatting fix.

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.

	Implement P1902R1, Missing feature-test macros 2017-2019.
	* c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_init_captures
	and __cpp_generic_lambdas for -std=c++2a.  Define
	__cpp_designated_initializers, __cpp_constexpr_in_decltype and
	__cpp_consteval for -std=c++2a.  Remove a FIXME comment about
	__cpp_concepts for -std=c++2a.

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

	PR middle-end/83859
	* c-attribs.c (handle_access_attribute): New function.
	(c_common_attribute_table): Add new attribute.
	(get_argument_type): New function.
	(append_access_attrs): New function.
	(get_nonnull_operand): Rename...
	(get_attribute_operand): ...to this.
	* c-common.c (get_nonnull_operand): Rename...
	(get_attribute_operand): ...to this.

2019-11-21  Joseph Myers  <joseph@codesourcery.com>

	* c-attribs.c (handle_fallthrough_attribute): Use pedwarn instead
	of warning.

2019-11-19  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (attribute_fallthrough_p): In C, use pedwarn not
	warning for standard attributes mixed with fallthrough attributes.

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

	* c-attribs.c (handle_fallthrough_attribute): Remove static.
	* c-common.h (handle_fallthrough_attribute): Declare.

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

	* c-attribs.c (handle_deprecated_attribute): Remove static.
	* c-common.h (handle_deprecated_attribute): Declare.

2019-11-14  Joseph Myers  <joseph@codesourcery.com>

	* c-lex.c (lex_charconst): Make CPP_UTF8CHAR constants unsigned
	char for C.

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

	* c-omp.c (c_omp_check_context_selector): Add nvidia to the list of
	valid vendors.

	* c-omp.c (c_omp_check_context_selector): Handle name lists
	containing string literals.  Don't diagnose atomic_default_mem_order
	with multiple props.

2019-11-13  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (builtin_define_float_constants): Also define
	NORM_MAX constants.  Update call to get_max_float.
	(LAZY_HEX_FP_VALUES_CNT): Update value to include NORM_MAX
	constants.

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-11-12  Martin Liska  <mliska@suse.cz>

	* c-opts.c (c_common_post_options):
	Use SET_OPTION_IF_UNSET.

2019-11-12  Maciej W. Rozycki  <macro@codesourcery.com>
	    Frederik Harwath  <frederik@codesourcery.com>

	gcc/c-family/
	* c-pragma.h (pragma_kind): Add PRAGMA_OACC_SERIAL enumeration
	constant.
	* c-pragma.c (oacc_pragmas): Add "serial" entry.

2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>

	* c-common.h (gnu_vector_type_p): New function.
	* c-common.c (c_build_vec_perm_expr): Require __builtin_shuffle
	vectors to satisfy gnu_vector_type_p.
	(c_build_vec_convert): Likewise __builtin_convertvector.
	(convert_vector_to_array_for_subscript): Likewise when applying
	implicit vector to array conversion.
	(scalar_to_vector): Likewise when converting vector-scalar
	operations to vector-vector operations.

2019-11-08  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (Wold-style-definition): Initialize to -1.
	* c-opts.c (c_common_post_options): Set warn_old_style_definition
	to flag_isoc2x if not set explicitly.

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

	* c-attribs.c (parse_tm_stmt_attr): Handle scoped attributes.

2019-11-05  Jason Merrill  <jason@redhat.com>

	* c-opts.c (c_common_post_options): -fconcepts-ts implies
	-fconcepts.

2019-11-04  Kamlesh Kumar  <kamleshbhalui@gmail.com>

	* c-opts.c (c_common_post_options): Update
	latest_abi_version.

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

	* c-common.h (c_omp_get_context_selector): Remove.
	* c-omp.c (c_omp_get_context_selector): Moved to omp-general.c
	and renamed to omp_get_context_selector.

	* c-omp.c (c_omp_mark_declare_variant): Use
	omp_context_selector_set_compare.

	PR c++/88335 - Implement P1073R3: Immediate functions
	* c-common.h (enum rid): Add RID_CONSTEVAL.
	* c-common.c (c_common_reswords): Add consteval.

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

	PR middle-end/91679
	PR middle-end/91647
	PR middle-end/91463
	PR middle-end/92312
	* c-pretty-print.c (direct_abstract_declarator): Print
	bound in zero-length arrays.
	* c.opt (-Wzero-length-bounds): New option.

2019-10-30  Nathan Sidwell  <nathan@acm.org>

	* c-cppbuiltin.c (c_cpp_builtins): Add 'L' suffix to feature
	macros.

2019-10-28  Martin Sebor  <msebor@redhat.com>

	PR c/66970
	* c-common.c (c_common_nodes_and_builtins): Call c_define_builtins
	even when only preprocessing.
	* c-common.h (names_builtin_p): Declare new function.
	* c-lex.c (init_c_lex): Set has_builtin.
	(c_common_has_builtin): Define a new function.
	* c-ppoutput.c (init_pp_output): Set has_builtin.

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

	* c-common.h (c_omp_context_selector_matches): Remove.
	* c-omp.c (c_omp_context_selector_matches): Remove.
	* c-attribs.c (c_common_attribute_table): Add
	"omp declare target {host,nohost,block}" attributes.

2019-10-17  JeanHeyd Meneide  <phdofthehouse@gmail.com>

	* c-lex.c (c_common_has_attribute): Update nodiscard value.

2019-10-14  Richard Sandiford  <richard.sandiford@arm.com>

	* c-common.h (user_facing_original_type_p): Declare.
	* c-common.c: Include c-spellcheck.h.
	(user_facing_original_type_p): New function.

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

	* c-common.h (c_omp_mark_declare_variant,
	c_omp_context_selector_matches): Declare.
	* c-omp.c: Include attribs.h, gimplify.h, cgraph.h, symbol-summary.h
	and hsa-common.h.
	(c_omp_get_context_selector): Support second argument NULL.
	(c_omp_mark_declare_variant, c_omp_context_selector_matches): New
	functions.
	* c-attribs.c (c_common_attribute_table): Remove "omp declare variant"
	attribute, add "omp declare variant base" and
	"omp declare variant variant" attributes.

2019-10-11  Joseph Myers  <joseph@codesourcery.com>

	* c.opt (Wc11-c2x-compat): Add CPP(cpp_warn_c11_c2x_compat)
	CppReason(CPP_W_C11_C2X_COMPAT).

2019-10-11  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (c_common_reswords): Do not use D_EXT for _Decimal32,
	_Decimal64 and _Decimal128.

2019-10-10  Joseph Myers  <joseph@codesourcery.com>

	* c-cppbuiltin.c (c_cpp_builtins): Do not define macros for DFP
	types if DFP not supported.

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

	* c-common.h (c_omp_check_context_selector,
	c_omp_get_context_selector): Declare.
	* c-omp.c (c_omp_declare_simd_clauses_to_numbers): Fix spelling
	in diagnostic message.
	(c_omp_check_context_selector, c_omp_get_context_selector): New
	functions.
	* c-attribs.c (c_common_attribute_table): Add "omp declare variant"
	attribute.
	(handle_omp_declare_variant_attribute): New function.

2019-10-09  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/90879
	* c.opt (-Wstring-compare): New option.

2019-10-08  Andrew Sutton  <asutton@lock3software.com>
	    Jason Merrill  <jason@redhat.com>

	Update the concepts implementation to conform to the C++20
	specification, improve compile times, and generally clean up
	the implementation.

	* c-cppbuiltin.c (c_cpp_builtins): Use new feature test values for
	concepts when -std=c++2a. Bump __cpp_concepts to 201907.
	* c.opt: Add -Wconcepts-ts.
	* c-opts.c (c_common_post_options): Warn when -fconcepts is used
	with -std=c++2a. Disable warning for -fconcepts in C++20 mode.
	(set_std_cxx2a): Enable concepts by default.

2019-10-08  Joseph Myers  <joseph@codesourcery.com>

	* c-opts.c (c_common_post_options): Set
	-fno-fp-int-builtin-inexact for C2X.

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

	PR c++/91369 - Implement P0784R7: constexpr new
	* c-cppbuiltin.c (c_cpp_builtins): Predefine
	__cpp_constexpr_dynamic_alloc=201907 for -std=c++2a.

2019-10-04  Joseph Myers  <joseph@codesourcery.com>

	PR c/82752
	* c-format.c (C_STD_VER): Handle C2x.
	(C_STD_NAME): Likewise.
	(strftime_flag_specs): Add 'O' modifier with 'p' flag.
	(time_char_table): Use separate entry for 'B' and 'b', with 'O'
	modifier allowed and 'p' flag.
	* c-format.h (enum format_std_version): Add STD_C2X.
	(struct format_char_info): Mention 'p' in comment on flags2.

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

	* c-opts.c (c_diagnostic_finalizer): Temporarily clear prefix when
	calling diagnostic_show_locus, rather than destroying it afterwards.

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-10-01  Richard Sandiford  <richard.sandiford@arm.com>

	* c-pretty-print.c (pp_c_specifier_qualifier_list): If a vector type
	has a type name, use it in preference to the __vector syntax.

2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>

	* c-pretty-print.c (pp_c_parameter_type_list): Avoid printing
	two spaces between a comma and "...".

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-27  Richard Sandiford  <richard.sandiford@arm.com>

	* c-common.h (build_function_call_vec): Take the original
	function decl as an optional final parameter.
	(check_builtin_function_arguments): Take the original function decl.
	* c-common.c (check_builtin_function_arguments): Likewise.
	Handle all built-in functions, not just BUILT_IN_NORMAL ones.
	Use targetm.check_builtin_call to check BUILT_IN_MD functions.

2019-09-15  Jason Merrill  <jason@redhat.com>

	* c-warn.c (warn_logical_operator): Strip location wrappers.  Don't
	fold_for_warn in "|| mask" warning.

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

	* c.opt: Use newly added WarnRemoved.

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

	* c.opt: Update comment of removed
	options that are preserved only for backward
	compatibility.

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

	PR c++/91125
	* c-common.c: Remove definition of flag_use_repository.
	* c-common.h: Likewise.
	* c-opts.c (c_common_handle_option):
	Do not handle OPT_frepo option.
	* c.opt: Mark the option with Deprecated.

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

	* c.opt (fdeduce-init-list): Ignored.

2019-09-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR c/78736
	* c.opt (Wenum-conversion): New option.

2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* c-attribs.c (handle_section_attribute): Call the
	handle_generic_attribute target hook after performing target
	independent processing.
	(handle_noinit_attribute): Likewise.

2019-09-03  Ian Lance Taylor  <iant@golang.org>

	* c-cppbuiltin.c (builtin_define_with_hex_fp_value): Always expand
	when using -fgo-dump-spec.

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-28  Marek Polacek  <polacek@redhat.com>

	Implement P1152R4: Deprecating some uses of volatile.
	PR c++/91361
	* c-opts.c (c_common_post_options): Enable -Wvolatile by
	default for C++2a, unless -Wno-deprecated.
	* c.opt (Wvolatile): New warning.

2019-08-28  Marek Polacek  <polacek@redhat.com>

	PR c++/91360 - Implement C++20 P1143R2: constinit.
	* c-common.c (c_common_reswords): Add constinit and __constinit.
	(keyword_is_decl_specifier): Handle RID_CONSTINIT.
	* c-common.h (enum rid): Add RID_CONSTINIT, RID_FIRST_CXX20, and
	RID_LAST_CXX20.
	(D_CXX20): Define.
	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_constinit.
	* c-format.c (cxx_keywords): Add "constinit".
	* c.opt (Wc++2a-compat, Wc++20-compat): New options.

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

	PR c++/91415
	* c-common.c (verify_tree): For LSHIFT_EXPR, RSHIFT_EXPR,
	COMPONENT_REF and ARRAY_REF in cxx_dialect >= cxx17 mode handle it
	like COMPOUND_EXPR rather than normal expression.

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-23  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/91283
	* c-common.c (c_ts18661_flt_eval_method): Use flag_excess_precision
	instead of flag_excess_precision_cmdline.
	* c-cppbuiltin.c (c_cpp_flt_eval_method_iec_559): Likewise.
	* c-opts.c (c_common_post_options): Likewise.

2019-08-22  Martin Sebor  <msebor@redhat.com>

	PR middle-end/91490
	* c-common.c (braced_list_to_string): Add argument and overload.
	Handle flexible length arrays and unions.

2019-08-21  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ada-spec.c (dump_ada_function_declaration): Be prepared for broken
	function declarations where arguments are missing.  Rename variables.

2019-08-15  Richard Biener  <rguenther@suse.de>

	* c-common.c (c_stddef_cpp_builtins): When the GIMPLE FE is
	enabled, define __SIZETYPE__.

2019-08-14  Christophe Lyon  <christophe.lyon@linaro.org>

	* c-attribs.c (c_common_attribute_table): Add "noinit" entry. Add
	exclusion with "section" attribute.
	(attr_noinit_exclusions): New table.
	(handle_noinit_attribute): New function.

2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/91421
	* c-common.c (resolve_overloaded_builtin): Use
	copy_decl_built_in_function.

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

	PR c/80619
	* c-format.c (printf_length_specs): Set FMT_LEN_w for "w".
	(asm_fprintf_length_spec): Same.
	* c-format.h (format_lengths): Add FMT_LEN_w.

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

	* c-pragma.h (enum pragma_omp_clause): Add
	PRAGMA_OMP_CLAUSE_DEVICE_TYPE.

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

	* c-pragma.h (enum pragma_omp_clause): Add
	PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.  Set PRAGMA_OACC_CLAUSE_USE_DEVICE
	equal to PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR instead of being a separate
	enumeration value.

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

	PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
	* c-opts.c (c_common_post_options): Enable -Wcomma-subscript by
	default for C++2a, unless -Wno-deprecated.
	* c.opt (Wcomma-subscript): New warning.

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

	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_LOOP.
	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_BIND.
	* c-pragma.c (omp_pragmas_simd): Add PRAGMA_OMP_LOOP entry.
	* c-common.h (enum c_omp_clause_split): Add C_OMP_CLAUSE_SPLIT_LOOP.
	* c-omp.c (c_omp_split_clauses): Add support for 4 new combined
	constructs with the loop construct.

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-07-12  Jakub Jelinek  <jakub@redhat.com>

	* c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ORDER.
	* c-omp.c (c_omp_split_clauses): Handle splitting of OMP_CLAUSE_ORDER.

2019-07-09  Martin Sebor  <msebor@redhat.com>

	PR c++/61339
	* c-opts.c (handle_deferred_opts): Change class-key of PODs to struct
	and others to class.
	* c-pretty-print.h: Same.

2019-07-09  Martin Sebor  <msebor@redhat.com>

	PR c++/61339
	* c-format.c (check_argument_type): Change class-key from class to
	struct and vice versa to match convention and avoid -Wclass-is-pod
	and -Wstruct-no-pod.
	* c-pretty-print.h: Same.

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

	* c-common.c (try_to_locate_new_include_insertion_point): Remove
	dead assignemts.

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

	* c-omp.c (c_omp_split_clauses): Put OMP_CLAUSE_REDUCTION_INSCAN
	clauses on OMP_FOR rather than OMP_PARALLEL when OMP_FOR is combined
	with OMP_PARALLEL.

2019-07-02  qing zhao  <qing.zhao@oracle.com>

	PR preprocessor/90581
	* c-opts.c (c_common_handle_option): Handle -fmax-include-depth.
	* c.opt: Add new option -fmax-include-depth.

2019-06-26  Jason Merrill  <jason@redhat.com>

	PR c++/55442 - memory-hog with highly recursive constexpr.
	* c.opt (fconstexpr-loop-limit): New.

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-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* c-common.c (c_common_nodes_and_builtins): Define
	alternate "__intN__" name for "__intN" types.

2019-06-24  Jan Hubicka  <jh@suse.cz>

	* c-common.c (braced_lists_to_strings): Check that
	type is array or integer prior checking string flag.

2019-06-21  Matthew Beliveau  <mbelivea@redhat.com>

	PR c++/90875 - added -Wswitch-outside-range option
	* c.opt (Wswitch-outside-range): Added new option.
	* c-warn.c (c_do_switch_warnings): Use OPT_Wswitch-outside-range.

2019-06-21  Marek Polacek  <polacek@redhat.com>

	PR c++/90953 - ICE with -Wmissing-format-attribute.
	* c-common.c (check_function_arguments_recurse): Use
	get_attribute_name.
	(check_missing_format_attribute): Likewise.

2019-06-19  Marek Polacek  <polacek@redhat.com>

	PR c++/60364 - noreturn after first decl not diagnosed.
	* c-attribs.c (handle_noreturn_attribute): No longer static.
	* c-common.h (handle_noreturn_attribute, attr_noreturn_exclusions):
	Declare.
	* c-format.c (check_function_format): Use get_attribute_name.

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

	PR translation/90156
	* c-format.c (function_format_info::format_type): Adjust type.
	(function_format_info::is_raw): New member.
	(decode_format_type): Adjust signature.  Handle "raw" diag attributes.
	(decode_format_attr): Adjust call to decode_format_type.
	Avoid a redundant call to convert_format_name_to_system_name.
	Avoid abbreviating the word "arguments" in a diagnostic.
	(format_warning_substr): New function.
	(avoid_dollar_number): Quote dollar sign in a diagnostic.
	(finish_dollar_format_checking): Same.
	(check_format_info): Same.
	(struct baltoks_t): New.
	(c_opers, c_keywords, cxx_keywords, badwords, contrs): New arrays.
	(maybe_diag_unbalanced_tokens, check_tokens, check_plain): New
	functions.
	(check_format_info_main): Call check_plain.  Use baltoks_t.  Call
	maybe_diag_unbalanced_tokens.
	(handle_format_attribute): Spell out the word "arguments" in
	a diagnostic.

2019-06-11  Matthew Beliveau  <mbelivea@redhat.com>

	PR c++/90449 - add -Winaccessible-base option.
	* c.opt (Winaccessible-base): New option.

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

	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_SCAN.
	* c-pragma.c (omp_pragmas_simd): Add #pragma omp scan.
	* c-omp.c (c_omp_split_clauses): Diagnose inscan reductions on
	combined/composite constructs where it is not allowed.  Copy over
	OMP_CLAUSE_REDUCTION_INSCAN.

2019-06-05  Martin Sebor  <msebor@redhat.com>

	* c-attribs.c (handle_mode_attribute): Adjust quoting and hyphenation.
	(handle_alias_ifunc_attribute): Same.
	(handle_copy_attribute): Same.
	(handle_weakref_attribute): Same.
	(handle_nonnull_attribute): Same.
	* c-warn.c (warn_for_sign_compare): Same.
	(warn_for_restrict): Same.
	* c.opt: Same.

2019-06-05  Martin Sebor  <msebor@redhat.com>

	* c-pragma.c (handle_pragma_weak): Adjust quoting in a diagnostic.
	* c.opt (-Wformat-diag): Remove a spurious period.

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

	PR c/90628
	* c-common.c (check_builtin_function_arguments)
	<case BUILTIN_*_OVERFLOW>: Diagnose pointer to const qualified integer
	as last argument.

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

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

2019-05-22  Martin Liska  <mliska@suse.cz>

	PR lto/90500
	* c-attribs.c (handle_copy_attribute): Do not copy
	target_clones attribute.

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

	* c-ada-spec.h (enum cpp_operation): Add IS_ASSIGNMENT_OPERATOR.
	* c-ada-spec.c (print_assignment_operator): New function.
	(dump_ada_declaration) <FUNCTION_DECL>: Call it do dump explicit copy
	assignment operators declared as methods and filter out the others.

2019-05-17  Thomas Schwinge  <thomas@codesourcery.com>

	PR c/89433
	* c-attribs.c (c_common_attribute_table): Set min_len to -1 for
	"omp declare target".

2019-05-16  Martin Sebor  <msebor@redhat.com>

	* c-attribs.c (handle_no_sanitize_attribute): Quote identifiers,
	keywords, operators, and types in diagnostics.
	(handle_scalar_storage_order_attribute): Same.
	(handle_mode_attribute): Same.
	(handle_visibility_attribute): Same.
	(handle_assume_aligned_attribute): Same.
	(handle_no_split_stack_attribute): Same.
	* c-common.c (shorten_compare): Same.
	(c_common_truthvalue_conversion): Same.
	(cb_get_source_date_epoch): Same.
	* c-lex.c (cb_def_pragma): Quote keywords, operators, and types
	in diagnostics.
	(interpret_float): Same.
	* c-omp.c (c_finish_omp_for): Same.
	* c-opts.c (c_common_post_options): Same.
	* c-pch.c (c_common_pch_pragma): Same.
	* c-pragma.c (pop_alignment): Same.
	(handle_pragma_pack): Same.
	(apply_pragma_weak): Same.
	(handle_pragma_weak): Same.
	(handle_pragma_scalar_storage_order): Same.
	(handle_pragma_redefine_extname): Same.
	(add_to_renaming_pragma_list): Same.
	(maybe_apply_renaming_pragma): Same.
	(push_visibility): Same.
	(handle_pragma_visibility): Same.
	(handle_pragma_optimize): Same.
	(handle_pragma_message): Same.
	* c-warn.c (warn_for_omitted_condop): Same.
	(lvalue_error): Same.

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-06  Nathan Sidwell  <nathan@acm.org>

	* c-opts.c (handle_defered_opts): Rename struct deps to struc mkdeps.

2019-04-30  Nathan Sidwell  <nathan@acm.org>

	* c-common.c (c_common_init_ts): Use MARK_TS_EXP.  Mark SIZEOF_EXPR.

2019-04-30  Martin Liska  <mliska@suse.cz>

	* c-pragma.c (handle_pragma_diagnostic): Provide hints
	for unknown options.

2019-04-26  Richard Sandiford  <richard.sandiford@arm.com>

	* c-warn.c (strict_aliasing_warning): Apply COMPLETE_TYPE_P to
	the pointer target rather than the pointer itself.

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-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
	* 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
	* 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.
	* c-common.c (check_function_restrict): Return bool.
	* 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-pretty-print.c (pp_c_expression): Handle SSA_NAMEs.

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