Daily bump.
[official-gcc.git] / gcc / c-family / ChangeLog
blob1c8faafe0358d7ae656534fa2589a7d98805307f
1 2024-08-09  Patrick Palka  <ppalka@redhat.com>
3         * c.opt.urls: Regenerate.
5 2024-08-09  Jakub Jelinek  <jakub@redhat.com>
7         * c-pragma.cc (c_pp_lookup_pragma): Use ARRAY_SIZE in
8         n_omp_pragmas_simd initializer.
9         (init_pragmas): Likewise.
11 2024-08-08  Jakub Jelinek  <jakub@redhat.com>
13         PR c++/115744
14         * c-cppbuiltin.cc (c_cpp_builtins): Change __cpp_constexpr
15         from 202306L to 202406L for C++26.
17 2024-08-07  Patrick Palka  <ppalka@redhat.com>
19         PR c++/116064
20         * c.opt (Wtemplate-body): New warning.
22 2024-08-02  Marek Polacek  <polacek@redhat.com>
24         * c.opt (Wdangling-reference): Move from -Wall to -Wextra.
26 2024-07-30  Paul-Antoine Arras  <parras@baylibre.com>
28         * c-format.cc (gcc_gfc_char_table): Add formats for tree objects.
30 2024-07-23  Andi Kleen  <ak@linux.intel.com>
32         * c-attribs.cc (set_musttail_on_return): New function.
33         * c-common.h (set_musttail_on_return): Declare new function.
35 2024-07-20  Andi Kleen  <ak@gcc.gnu.org>
37         Revert:
38         2024-07-20  Andi Kleen  <ak@linux.intel.com>
40         * c-attribs.cc (set_musttail_on_return): New function.
41         * c-common.h (set_musttail_on_return): Declare new function.
43 2024-07-20  Andi Kleen  <ak@linux.intel.com>
45         * c-attribs.cc (set_musttail_on_return): New function.
46         * c-common.h (set_musttail_on_return): Declare new function.
48 2024-07-20  Andi Kleen  <ak@linux.intel.com>
50         PR c/83324
51         * c-attribs.cc (handle_musttail_attribute): Add.
52         * c-common.h (handle_musttail_attribute): Add.
54 2024-07-17  Mark Wielaard  <mark@klomp.org>
56         * c.opt.urls: Regenerate.
58 2024-07-14  Alejandro Colomar  <alx@kernel.org>
60         PR c/115185
61         * c.opt: Add -Wunterminated-string-initialization.
63 2024-07-13  David Malcolm  <dmalcolm@redhat.com>
65         * c-common.cc: Include "tree-pretty-print-markup.h".
66         (binary_op_error): Use pp_markup::element_quoted_type and %e.
67         (check_function_arguments): Add "comp_types" param and pass it to
68         check_function_format.
69         * c-common.h (check_function_arguments): Add "comp_types" param.
70         (check_function_format): Likewise.
71         * c-format.cc: Include "tree-pretty-print-markup.h".
72         (local_pp_element_ptr_node): New.
73         (PP_FORMAT_CHAR_TABLE): Add entry for %e.
74         (struct format_check_context): Add "m_comp_types" field.
75         (check_function_format): Add "comp_types" param and pass it to
76         check_format_info.
77         (check_format_info): Likewise, passing it to format_ctx's ctor.
78         (check_format_arg): Extract m_comp_types from format_ctx and
79         pass it to check_format_info_main.
80         (check_format_info_main): Add "comp_types" param and pass it to
81         arg_parser's ctor.
82         (class argument_parser): Add "m_comp_types" field.
83         (argument_parser::check_argument_type): Pass m_comp_types to
84         check_format_types.
85         (handle_subclass_of_pp_element_p): New.
86         (check_format_types): Add "comp_types" param, and use it to
87         call handle_subclass_of_pp_element_p.
88         (class element_format_substring): New.
89         (class element_expected_type_with_indirection): New.
90         (format_type_warning): Use element_expected_type_with_indirection
91         to unify the if (wanted_type_name) branches, reducing from four
92         emit_warning calls to two.  Simplify these further using %e.
93         Doing so also gives suitable colorization of the text within the
94         diagnostics.
95         (init_dynamic_diag_info): Initialize local_pp_element_ptr_node.
96         (selftest::test_type_mismatch_range_labels): Add nullptr for new
97         param of gcc_rich_location label overload.
98         * c-format.h (T_PP_ELEMENT_PTR): New.
99         * c-type-mismatch.cc: Include "diagnostic-highlight-colors.h".
100         (binary_op_rich_location::binary_op_rich_location): Use
101         highlight_colors::lhs and highlight_colors::rhs for the ranges.
102         * c-type-mismatch.h (class binary_op_rich_location): Add comment
103         about highlight_colors.
105 2024-07-10  Marek Polacek  <polacek@redhat.com>
107         * c-cppbuiltin.cc (c_cpp_builtins): Remove flag_concepts_ts code.
108         * c-opts.cc (c_common_post_options): Likewise.
109         * c.opt: Remove -fconcepts-ts.
110         * c.opt.urls: Regenerate.
112 2024-07-08  David Malcolm  <dmalcolm@redhat.com>
114         * c-format.cc (format_check_results::format_check_results): New
115         ctor.
116         (struct format_check_context): Add ctor; add "m_" prefix to all
117         fields.
118         (check_format_info): Use above ctors.
119         (check_format_arg): Update for "m_" prefix to
120         format_check_context.
122 2024-07-03  Lewis Hyatt  <lhyatt@gmail.com>
124         PR pch/115312
125         * c-opts.cc (c_common_init): Call c_init_preprocess() before
126         c_finish_options() so that a parser is available to process any
127         includes specified on the command line.
129 2024-06-25  Andrew Pinski  <quic_apinski@quicinc.com>
131         PR c++/115624
132         * c.opt (Wnrvo): Add Warning property.
134 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
136         * c-opts.cc: Replace include of "tree-diagnostic.h" with
137         "diagnostic-macro-unwinding.h".
139 2024-06-17  Eric Botcazou  <ebotcazou@adacore.com>
141         * c-ada-spec.cc (is_float16): New predicate.
142         (dump_ada_node) <REAL_TYPE>: Call it.
144 2024-06-17  Joseph Myers  <josmyers@redhat.com>
146         * c-common.cc (c_sizeof_or_alignof_type): Allow alignof on an
147         incomplete array type for C2Y.
149 2024-06-17  Jakub Jelinek  <jakub@redhat.com>
151         PR c/115290
152         * c-warn.cc (do_warn_array_compare): Use %E rather than %D for
153         printing op0 and op1; if those operands aren't decls, also print
154         parens around them.
156 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
158         * c-ada-spec.cc (dump_ads): Update for fields of pretty_printer
159         becoming private.
160         * c-pretty-print.cc: Likewise throughout.
162 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
164         * c-ada-spec.cc: Rename pretty_printer "buffer" to "pp"
165         throughout.
167 2024-06-11  Joseph Myers  <josmyers@redhat.com>
169         * c-common.cc (flag_isoc2y): New.
170         (flag_isoc99, flag_isoc11, flag_isoc23): Update comments.
171         * c-common.h (flag_isoc2y): New.
172         (clk_c, flag_isoc23): Update comments.
173         * c-opts.cc (set_std_c2y): New.
174         (c_common_handle_option): Handle OPT_std_c2y and OPT_std_gnu2y.
175         (set_std_c89, set_std_c99, set_std_c11, set_std_c17, set_std_c23):
176         Set flag_isoc2y.
177         (set_std_c23): Update comment.
178         * c.opt (Wc23-c2y-compat, std=c2y, std=gnu2y): New.
179         * c.opt.urls: Regenerate.
181 2024-06-11  Andi Kleen  <ak@linux.intel.com>
183         * c-cppbuiltin.cc (c_cpp_builtins): Define __GXX_CONSTEXPR_ASM__
185 2024-06-05  Jakub Jelinek  <jakub@redhat.com>
186             Frederik Harwath  <frederik@codesourcery.com>
187             Sandra Loosemore  <sandra@codesourcery.com>
189         * c-common.h (c_omp_find_generated_loop): Declare.
190         * c-gimplify.cc (c_genericize_control_stmt): Handle OMP_TILE and
191         OMP_UNROLL.
192         * c-omp.cc (c_finish_omp_for): Handle generated loops.
193         (c_omp_is_loop_iterator): Likewise.
194         (c_find_nested_loop_xform_r, c_omp_find_generated_loop): New
195         functions.
196         (c_omp_check_loop_iv): Handle generated loops.  For now sorry
197         on mixing non-rectangular loop with generated loops.
198         (c_omp_check_loop_binding_exprs): For now sorry on mixing
199         imperfect loops with generated loops.
200         (c_omp_directives): Uncomment tile and unroll entries.
201         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TILE and
202         PRAGMA_OMP_UNROLL, change PRAGMA_OMP__LAST_ to the latter.
203         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FULL and
204         PRAGMA_OMP_CLAUSE_PARTIAL.
205         * c-pragma.cc (omp_pragmas_simd): Add tile and unroll omp pragmas.
207 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
209         * c-ubsan.cc (get_bound_from_access_with_size): New function.
210         (ubsan_instrument_bounds): Handle call to .ACCESS_WITH_SIZE.
212 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
214         * c-attribs.cc (handle_counted_by_attribute): New function.
215         (attribute_takes_identifier_p): Add counted_by attribute to the list.
216         * c-common.cc (c_flexible_array_member_type_p): ...To this.
217         * c-common.h (c_flexible_array_member_type_p): New prototype.
219 2024-05-31  Martin Uecker  <uecker@tugraz.at>
221         PR tree-optimization/115157
222         PR tree-optimization/115177
223         * c-attribs.cc (handle_hardbool_attribute): Set TYPE_CANONICAL
224         for hardbools.
226 2024-05-29  Jason Merrill  <jason@redhat.com>
228         PR c++/109753
229         * c-attribs.cc (handle_optimize_attribute): Set
230         cgraph_node::semantic_interposition.
232 2024-05-29  Oskari Pirhonen  <xxc3ncoredxx@gmail.com>
234         * known-headers.cc (get_stdlib_header_for_name): Add strerror.
236 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
238         PR bootstrap/115167
239         * c-format.cc: Replace include of "gcc-rich-location.h" with
240         "c-family/c-type-mismatch.h".
241         * c-type-mismatch.cc: New file, taking material from
242         gcc-rich-location.cc.
243         * c-type-mismatch.h: New file, taking material from
244         gcc-rich-location.h.
245         * c-warn.cc: Replace include of "gcc-rich-location.h" with
246         "c-family/c-type-mismatch.h".
248 2024-05-24  Eric Botcazou  <ebotcazou@adacore.com>
250         * c-ada-spec.cc (is_cpp_float): New predicate.
251         (dump_number): Deal with more preprocessing floating constants.
252         (dump_ada_macros) <CPP_NUMBER>: Use is_cpp_float.
254 2024-05-23  Eric Botcazou  <ebotcazou@adacore.com>
256         * c-ada-spec.cc (check_type_name_conflict): Add guard.
257         (is_char_array): Simplify.
258         (dump_ada_array_type): Use strip_array_types.
259         (dump_ada_node) <POINTER_TYPE>: Deal with anonymous array types.
260         (dump_nested_type): Use strip_array_types.
262 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
264         * c-ada-spec.cc (bitfield_used): Move around.
265         (packed_layout): Likewise.
266         (dump_ada_array_type): Do not put "aliased" for a packed layout.
268 2024-05-15  Marek Polacek  <polacek@redhat.com>
270         DR 1693
271         PR c++/113760
272         DR 569
273         * c.opt (Wextra-semi): Initialize to -1.
275 2024-05-08  Marek Polacek  <polacek@redhat.com>
277         PR c++/113582
278         * c-warn.cc (warn_for_unused_label): Don't warn if -Wunused-label has
279         been suppressed for the label.
281 2024-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
283         PR c++/89224
284         * c-common.cc (convert_vector_to_array_for_subscript): Call build_qualified_type
285         for the inner type.
287 2024-05-07  Jakub Jelinek  <jakub@redhat.com>
289         PR c++/114459
290         * c-cppbuiltin.cc (c_cpp_builtins): Predefine
291         __cpp_variadic_friend=202403L for C++26.
293 2024-05-07  Richard Biener  <rguenther@suse.de>
295         PR middle-end/114931
296         * c-common.cc (complete_array_type): Set TYPE_STRUCTURAL_EQUALITY_P
297         before probing with type_hash_canon.
299 2024-05-02  Jakub Jelinek  <jakub@redhat.com>
301         PR c++/114458
302         * c-cppbuiltin.cc (c_cpp_builtins): Predefine
303         __cpp_deleted_function=202403L for C++26.
305 2024-04-30  Jakub Jelinek  <jakub@redhat.com>
307         PR c++/114456
308         * c-cppbuiltin.cc (c_cpp_builtins): Predefine
309         __cpp_structured_bindings for C++26 to 202403L rather than
310         201606L.
312 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
314         * c-attribs.cc (handle_objc_nullability_attribute): Spelling fix:
315         recognised -> recognized.
317 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
319         * c.opt (Wstrict-flex-arrays): Spelling fix: inproper -> improper.
321 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
323         PR c/114780
324         * c-common.cc (check_function_sentinel): Allow as sentinel any
325         argument of NULLPTR_TYPE.
327 2024-04-13  Mark Wielaard  <mark@klomp.org>
329         * c.opt.urls: Regenerate.
331 2024-04-12  Jason Merrill  <jason@redhat.com>
332             Patrick Palka  <ppalka@redhat.com>
334         PR c++/113141
335         * c.opt: Add -Wcast-user-defined.
337 2024-04-05  Marek Polacek  <polacek@redhat.com>
339         * c-warn.cc (warn_about_parentheses): Remove an #undef.
341 2024-03-27  Jakub Jelinek  <jakub@redhat.com>
343         PR tree-optimization/114469
344         * c-common.cc (resolve_overloaded_builtin): For _BitInt result
345         on !extended targets convert result to the _BitInt type before
346         using VIEW_CONVERT_EXPR.
348 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
350         PR c++/112724
351         * c-pretty-print.cc (pp_c_cast_expression,
352         c_pretty_printer::expression): Handle EXCESS_PRECISION_EXPR like
353         NOP_EXPR.
355 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
357         PR c/114364
358         * c-omp.cc (enum check_loop_binding_expr_ctx): New type.
359         (check_loop_binding_expr): Remove context argument, add ctx
360         argument with check_loop_binding_expr_ctx type at the end.  Don't
361         create diagnostic message from multiple pieces.
362         (c_omp_check_loop_binding_exprs): Adjust callers.
364 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
366         * c-common.cc (resolve_overloaded_atomic_exchange): Instead of setting
367         p1 to VIEW_CONVERT_EXPR<I_type> (*p1), set it to MEM_REF with p1 and
368         (typeof (p1)) 0 operands and I_type type.
369         (resolve_overloaded_atomic_compare_exchange): Similarly for p2.
371 2024-03-05  Mark Wielaard  <mark@klomp.org>
373         * c.opt.urls: Regenerate.
375 2024-03-05  Patrick Palka  <ppalka@redhat.com>
377         * c.opt (Wglobal-module): New warning.
379 2024-03-04  Mark Wielaard  <mark@klomp.org>
381         * c.opt.urls: Regenerate.
383 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
385         PR c/114007
386         * c-lex.cc (c_common_has_attribute): Parse 2 CPP_COLONs with
387         the first one with COLON_SCOPE flag the same as CPP_SCOPE.
389 2024-02-10  Marek Polacek  <polacek@redhat.com>
391         DR 2237
392         PR c++/107126
393         PR c++/97202
394         * c-opts.cc (c_common_post_options): In C++20 or with -Wc++20-compat,
395         turn on -Wtemplate-id-cdtor.
396         * c.opt (Wtemplate-id-cdtor): New.
398 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
400         * c-format.cc (gcc_diag_length_specs): Add t and z modifiers.
401         (PP_FORMAT_CHAR_TABLE, gcc_gfc_char_table): Add entries for t and
402         z modifiers.
404 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
406         * c-ada-spec.cc (dump_template_types): Use HOST_SIZE_T_PRINT_UNSIGNED
407         and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
409 2024-02-01  Lewis Hyatt  <lhyatt@gmail.com>
411         PR preprocessor/105608
412         * c-pch.cc (c_common_read_pch): Adjust line map so that libcpp
413         assigns a location to restored macros which is the same location
414         that triggered the PCH include.
416 2024-01-31  Marek Polacek  <polacek@redhat.com>
418         * c-opts.cc (c_common_post_options): Add an inform saying that
419         -fconcepts-ts is deprecated and will be removed in GCC 15.
421 2024-01-27  Lewis Hyatt  <lhyatt@gmail.com>
423         PR preprocessor/105608
424         * c-pch.cc (c_common_read_pch): Start a new line map before asking
425         libcpp to restore macros defined prior to reading the PCH, instead
426         of afterward.
428 2024-01-23  Jakub Jelinek  <jakub@redhat.com>
430         PR c/113518
431         * c-common.cc (atomic_bitint_fetch_using_cas_loop): Call c_fully_fold
432         on lhs_addr, val and model for C.
434 2024-01-23  Sandra Loosemore  <sandra@codesourcery.com>
436         * c.opt: Improve sorting of warning options.
438 2024-01-16  Eric Botcazou  <ebotcazou@adacore.com>
440         PR ada/113397
441         * c-ada-spec.cc (check_type_name_conflict): Add guard for the
442         presence of DECL_NAME on a TYPE_DECL.
444 2024-01-11  Julian Brown  <julian@codesourcery.com>
446         * c-pretty-print.cc (c_pretty_printer::postfix_expression,
447         c_pretty_printer::expression): Add OMP_ARRAY_SECTION support.
449 2024-01-09  waffl3x  <waffl3x@protonmail.com>
451         PR c++/102609
452         PR c++/102609
453         C++23 P0847R7 (deducing this) - diagnostics.
454         * c-cppbuiltin.cc (c_cpp_builtins): Define
455         __cpp_explicit_this_parameter=202110L feature test macro.
457 2024-01-09  Jakub Jelinek  <jakub@redhat.com>
459         PR c/113262
460         * c-attribs.cc (handle_copy_attribute): Don't use
461         DECL_SOURCE_LOCATION (decl) if decl is not DECL_P, use input_location
462         instead.  Formatting fixes.
464 2024-01-09  Julian Brown  <julian@codesourcery.com>
466         * c-common.h (c_omp_address_inspector): Remove static from get_origin
467         and maybe_unconvert_ref methods.
468         * c-omp.cc (c_omp_split_clauses): Support OMP_ARRAY_SECTION.
469         (c_omp_address_inspector::map_supported_p): Handle OMP_ARRAY_SECTION.
470         (c_omp_address_inspector::get_origin): Avoid dereferencing possibly
471         NULL type when processing template decls.
472         (c_omp_address_inspector::maybe_unconvert_ref): Likewise.
474 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
476         * c.opt.urls: New file, autogenerated by regenerate-opt-urls.py.
478 2023-12-21  Jakub Jelinek  <jakub@redhat.com>
480         * c.opt (Walloc-size): Enable also for C++ and ObjC++.
482 2023-12-21  Jakub Jelinek  <jakub@redhat.com>
484         PR sanitizer/113092
485         * c-ubsan.cc (ubsan_instrument_shift): Workaround for missing
486         ubsan _BitInt support for the shift count.
488 2023-12-20  Florian Weimer  <fweimer@redhat.com>
490         PR c/113050
491         * c-common.cc (get_atomic_generic_size): Use
492         OPT_Wdiscarded_qualifiers instead of
493         OPT_Wincompatible_pointer_types.
495 2023-12-20  Jakub Jelinek  <jakub@redhat.com>
497         * c.opt (Wcalloc-transposed-args): New warning.
498         * c-common.h (warn_for_calloc, warn_for_alloc_size): Declare.
499         * c-warn.cc (warn_for_calloc, warn_for_alloc_size): New functions.
501 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
503         * c-attribs.cc (attr_target_exclusions): Make
504         target/target_clones exclusion target-dependent.
505         (attr_target_clones_exclusions): Ditto, and add target_version.
506         (attr_target_version_exclusions): New.
507         (c_common_attribute_table): Add target_version.
508         (handle_target_version_attribute): New.
509         (handle_target_attribute): Amend comment.
510         (handle_target_clones_attribute): Ditto.
512 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
514         * c-attribs.cc (attr_always_inline_exclusions): New.
515         (attr_target_exclusions): Ditto.
516         (attr_target_clones_exclusions): Ditto.
517         (c_common_attribute_table): Add new exclusion lists.
518         (handle_noinline_attribute): Remove custom exclusion handling.
519         (handle_always_inline_attribute): Ditto.
520         (handle_target_attribute): Ditto.
521         (handle_target_clones_attribute): Ditto.
523 2023-12-13  Patrick Palka  <ppalka@redhat.com>
525         * c.opt: Add -fdiagnostics-all-candidates.
527 2023-12-13  Jason Merrill  <jason@redhat.com>
529         * c-warn.cc (check_address_or_pointer_of_packed_member):
530         Rename to check_address_of_packed_member.
531         (check_and_warn_address_or_pointer_of_packed_member):
532         Rename to check_and_warn_address_of_packed_member.
533         (warn_for_address_or_pointer_of_packed_member):
534         Rename to warn_for_address_of_packed_member.
535         * c-common.h: Adjust.
537 2023-12-13  Jason Merrill  <jason@redhat.com>
539         * c-warn.cc (check_address_or_pointer_of_packed_member):
540         Remove warning based on TYPE_PACKED.
542 2023-12-13  Julian Brown  <julian@codesourcery.com>
544         * c-common.h (c_omp_region_type): Add C_ORT_EXIT_DATA,
545         C_ORT_OMP_EXIT_DATA and C_ORT_ACC_TARGET.
546         (omp_addr_token): Add forward declaration.
547         (c_omp_address_inspector): New class.
548         * c-omp.cc (c_omp_adjust_map_clauses): Mark decls addressable here, but
549         do not change any mapping node types.
550         (c_omp_address_inspector::unconverted_ref_origin,
551         c_omp_address_inspector::component_access_p,
552         c_omp_address_inspector::check_clause,
553         c_omp_address_inspector::get_root_term,
554         c_omp_address_inspector::map_supported_p,
555         c_omp_address_inspector::get_origin,
556         c_omp_address_inspector::maybe_unconvert_ref,
557         c_omp_address_inspector::maybe_zero_length_array_section,
558         c_omp_address_inspector::expand_array_base,
559         c_omp_address_inspector::expand_component_selector,
560         c_omp_address_inspector::expand_map_clause): New methods.
561         (omp_expand_access_chain): New function.
563 2023-12-12  Richard Biener  <rguenther@suse.de>
565         PR ipa/92606
566         * c-attribs.cc (handle_noicf_attribute): Also allow the
567         attribute on global variables.
569 2023-12-10  Ken Matsui  <kmatsui@gcc.gnu.org>
570             Patrick Palka  <ppalka@redhat.com>
572         * c-common.cc (c_common_reswords): Remove all mappings of
573         built-in traits.
574         * c-common.h (enum rid): Remove all RID values for built-in
575         traits.
577 2023-12-07  Andrew Pinski  <pinskia@gmail.com>
578             Jakub Jelinek  <jakub@redhat.com>
580         PR preprocessor/111965
581         * c-opts.cc (c_common_handle_option) <case OPT_fdebug_cpp>: Set
582         cpp_opts->debug to value rather than 1.
584 2023-12-06  David Malcolm  <dmalcolm@redhat.com>
586         * c-opts.cc (c_diagnostic_finalizer): Make "diagnostic" param
587         const.
589 2023-12-06  Alexandre Oliva  <oliva@adacore.com>
591         * c-attribs.cc: Include ipa-strub.h.
592         (handle_strub_attribute): New.
593         (c_common_attribute_table): Add strub.
595 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
597         * c-attribs.cc (c_common_gnu_attribute_table): Add extra
598         braces to work around PR 16333 in older compilers.
600 2023-12-05  Richard Biener  <rguenther@suse.de>
602         PR c/89270
603         * c-common.cc (c_common_type_for_size): Consider
604         registered_builtin_types.
606 2023-12-05  Marek Polacek  <polacek@redhat.com>
608         PR c++/107687
609         PR c++/110997
610         * c-cppbuiltin.cc (c_cpp_builtins): Update __cpp_consteval.
611         * c-opts.cc (c_common_post_options): Pre-C++20, unset
612         flag_immediate_escalation.
613         * c.opt (fimmediate-escalation): New option.
615 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>
617         * c-common.h (c_common_attribute_table): Replace with...
618         (c_common_gnu_attribute_table): ...this.
619         (c_common_format_attribute_table): Change type to
620         scoped_attribute_specs.
621         * c-attribs.cc (c_common_attribute_table): Replace with...
622         (c_common_gnu_attributes, c_common_gnu_attribute_table): ...these
623         new globals.
624         (c_common_format_attribute_table): Change type to
625         scoped_attribute_specs, using...
626         (c_common_format_attributes): ...this as the underlying array.
628 2023-12-01  Florian Weimer  <fweimer@redhat.com>
630         * c.opt (Wdeclaration-missing-parameter-type): New.
632 2023-11-30  Jakub Jelinek  <jakub@redhat.com>
634         PR c++/110349
635         * c-cppbuiltin.cc (c_cpp_builtins): Predefine
636         __cpp_placeholder_variables=202306L for C++26.
638 2023-11-29  Alexandre Oliva  <oliva@adacore.com>
640         * c-attribs.cc (c_common_attribute_table): Add hardbool.
641         (handle_hardbool_attribute): New.
642         (type_valid_for_vector_size): Reject hardbool.
643         * c-common.cc (convert_and_check): Skip warnings for convert
644         and check for hardbool.
645         (c_hardbool_type_attr_1): New.
646         * c-common.h (c_hardbool_type_attr): New.
648 2023-11-27  Alex Coplan  <alex.coplan@arm.com>
649             Iain Sandoe  <iain@sandoe.co.uk>
651         PR c++/60512
652         * c-common.cc (struct hf_feature_info): New.
653         (c_common_register_feature): New.
654         (init_has_feature): New.
655         (has_feature_p): New.
656         * c-common.h (c_common_has_feature): New.
657         (c_family_register_lang_features): New.
658         (c_common_register_feature): New.
659         (has_feature_p): New.
660         * c-lex.cc (init_c_lex): Plumb through has_feature callback.
661         (c_common_has_builtin): Generalize and move common part ...
662         (c_common_lex_availability_macro): ... here.
663         (c_common_has_feature): New.
664         * c-ppoutput.cc (init_pp_output): Plumb through has_feature.
666 2023-11-24  Lewis Hyatt  <lhyatt@gmail.com>
668         PR pch/112319
669         * c-ppoutput.cc (cb_read_pch): Reinitialize the frontend parser
670         after loading a PCH.
672 2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
674         * c.opt (-Wopenmp): Add missing tailing '.'.
676 2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
678         * c.opt (Wopenmp): Add, enable by default.
680 2023-11-23  Marek Polacek  <polacek@redhat.com>
682         * c-opts.cc: Include "target.h".
683         (c_finish_options): Maybe cpp_define _FORTIFY_SOURCE
684         and _GLIBCXX_ASSERTIONS.
686 2023-11-23  Jakub Jelinek  <jakub@redhat.com>
688         * c-common.h (enum rid): Add RID_BUILTIN_STDC: New.
689         * c-common.cc (c_common_reswords): Add __builtin_stdc_bit_ceil,
690         __builtin_stdc_bit_floor, __builtin_stdc_bit_width,
691         __builtin_stdc_count_ones, __builtin_stdc_count_zeros,
692         __builtin_stdc_first_leading_one, __builtin_stdc_first_leading_zero,
693         __builtin_stdc_first_trailing_one, __builtin_stdc_first_trailing_zero,
694         __builtin_stdc_has_single_bit, __builtin_stdc_leading_ones,
695         __builtin_stdc_leading_zeros, __builtin_stdc_trailing_ones and
696         __builtin_stdc_trailing_zeros.  Move __builtin_assoc_barrier
697         alphabetically earlier.
699 2023-11-23  Jakub Jelinek  <jakub@redhat.com>
701         PR c++/110348
702         * c.opt (Wc++26-extensions): New option.
703         * c-cppbuiltin.cc (c_cpp_builtins): For C++26 predefine
704         __cpp_static_assert to 202306L rather than 201411L.
706 2023-11-19  David Malcolm  <dmalcolm@redhat.com>
708         * c-lex.cc: Include "rich-location.h".
710 2023-11-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
712         * c-cppbuiltin.cc (c_cpp_builtins):  Define
713         __LIBGCC_HAVE_LIBATOMIC for libgcov.
715 2023-11-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
717         Revert:
718         2021-08-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
720         * c-cppbuiltin.c (c_cpp_builtins): Define
721         __LIBGCC_GCOV_TYPE_SIZE if flag_building_libgcc is true.
723 2023-11-17  Jakub Jelinek  <jakub@redhat.com>
725         PR c++/107571
726         * c-gimplify.cc (genericize_c_loop): For C++ mark IFN_FALLTHROUGH
727         call at the end of loop body as TREE_NOTHROW.
729 2023-11-14  Lewis Hyatt  <lhyatt@gmail.com>
731         PR pch/9471
732         PR pch/47857
733         * c-opts.cc (c_common_post_options): Set cpp_opts->main_search
734         so libcpp knows it is compiling a header file separately.
736 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
738         * c-warn.cc (conversion_warning): Update call to
739         global_dc->m_option_enabled to use option_enabled_p.
741 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
743         * c-common.cc (c_get_substring_location): Use global_dc's
744         file_cache.
745         * c-format.cc (get_corrected_substring): Likewise.
746         * c-indentation.cc (get_visual_column): Add file_cache param.
747         (get_first_nws_vis_column): Likewise.
748         (detect_intervening_unindent): Likewise.
749         (should_warn_for_misleading_indentation): Use global_dc's
750         file_cache.
751         (assert_get_visual_column_succeeds): Add file_cache param.
752         (ASSERT_GET_VISUAL_COLUMN_SUCCEEDS): Likewise.
753         (assert_get_visual_column_fails): Likewise.
754         (define ASSERT_GET_VISUAL_COLUMN_FAILS): Likewise.
755         (selftest::test_get_visual_column): Create and use a temporary
756         file_cache.
758 2023-11-14  Jakub Jelinek  <jakub@redhat.com>
760         PR c/111309
761         * c-common.cc (check_builtin_function_arguments): Handle
762         BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.
763         * c-gimplify.cc (c_gimplify_expr): If __builtin_c[lt]zg second
764         argument hasn't been folded into constant yet, transform it to one
765         argument call inside of a COND_EXPR which for first argument 0
766         returns the second argument.
768 2023-11-11  Martin Uecker  <uecker@tugraz.at>
770         PR c/110815
771         PR c/112428
772         * c-attribs.cc (build_attr_access_from_parms): Synthesize
773         nonnull attribute for parameters declared with `static`.
775 2023-11-09  Florian Weimer  <fweimer@redhat.com>
777         * c.opt (Wreturn-mismatch): New.
779 2023-11-08  Florian Weimer  <fweimer@redhat.com>
781         * c.opt (fpermissive): Enable for C and ObjC.
782         * c-opts.cc (c_common_post_options): Enable -fpermissive.
784 2023-11-07  Joseph Myers  <joseph@codesourcery.com>
786         * c-format.h (T2X_UI): Rename to T23_UI.
787         (T2X_UL): Rename to T23_UL.
788         (T2X_ULL): Rename to T23_ULL.
789         (T2X_US): Rename to T23_US.
790         (T2X_UC): Rename to T23_UC.
791         (T2X_ST): Rename to T23_ST.
792         (T2X_UPD): Rename to T23_UPD.
793         (T2X_UIM): Rename to T23_UIM.
794         (T2X_D32): Rename to T23_D32.
795         (T2X_D64): Rename to T23_D64.
796         (T2X_D128): Rename to T23_D128.
797         (T2X_I8): Rename to T23_I8.
798         (T2X_I16): Rename to T23_I16.
799         (T2X_I32): Rename to T23_I32.
800         (T2X_I64): Rename to T23_I64.
801         (T2X_U8): Rename to T23_U8.
802         (T2X_U16): Rename to T23_U16.
803         (T2X_U32): Rename to T23_U32.
804         (T2X_U64): Rename to T23_U64.
805         (T2X_IF8): Rename to T23_IF8.
806         (T2X_IF16): Rename to T23_IF16.
807         (T2X_IF32): Rename to T23_IF32.
808         (T2X_IF64): Rename to T23_IF64.
809         (T2X_UF8): Rename to T23_UF8.
810         (T2X_UF16): Rename to T23_UF16.
811         (T2X_UF32): Rename to T23_UF32.
812         (T2X_UF64): Rename to T23_UF64.
813         * c-format.cc: Update all uses of T2X_* macros to use T23_*.
815 2023-11-07  Kwok Cheung Yeung  <kcy@codesourcery.com>
817         * c-attribs.cc (c_common_attribute_table): Add attribute for
818         indirect functions.
819         * c-pragma.h (enum parma_omp_clause): Add entry for indirect clause.
821 2023-11-07  Joseph Myers  <joseph@codesourcery.com>
823         * c-common.cc (flag_isoc2x): Rename to flag_isoc23.
824         (c_common_reswords): Use D_C23 instead of D_C2X.
825         * c-common.h: Refer throughout to C23 instead of C2X in comments.
826         (D_C2X): Rename to D_C23.
827         (flag_isoc2x): Rename to flag_isoc23.
828         * c-cppbuiltin.cc (builtin_define_float_constants): Use
829         flag_isoc23 instead of flag_isoc2x.  Refer to C23 instead of C2x
830         in comments.
831         * c-format.cc: Use STD_C23 instead of STD_C2X and flag_isoc23
832         instead of flag_isoc2x.  Refer to C23 instead of C2X in comments.
833         * c-format.h: Use STD_C23 instead of STD_C2X.
834         * c-lex.cc: Use warn_c11_c23_compat instead of warn_c11_c2x_compat
835         and flag_isoc23 instead of flag_isoc2x.  Refer to C23 instead of
836         C2X in diagnostics.
837         * c-opts.cc: Use flag_isoc23 instead of flag_isoc2x.  Refer to C23
838         instead of C2X in comments.
839         (set_std_c2x): Rename to set_std_c23.
840         * c.opt (Wc11-c23-compat): Use CPP(cpp_warn_c11_c23_compat)
841         CppReason(CPP_W_C11_C23_COMPAT) Var(warn_c11_c23_compat) instead
842         of CPP(cpp_warn_c11_c2x_compat) CppReason(CPP_W_C11_C2X_COMPAT)
843         Var(warn_c11_c2x_compat).
845 2023-11-06  Joseph Myers  <joseph@codesourcery.com>
847         PR c/107954
848         * c.opt (Wc11-c2x-compat): Rename to Wc11-c23-compat and make into
849         a deprecated alias of Wc11-c23-compat.
850         (std=c2x): Rename to std=c23 and make into a deprecated alias of
851         std=c23.
852         (std=gnu2x): Rename to std=gnu23 and make into a deprecated alias
853         of std=gnu23.
854         (std=iso9899:2024): New option.  Alias of std=c23.
855         * c-lex.cc (interpret_float): Use OPT_Wc11_c23_compat instead of
856         OPT_Wc11_c2x_compat.
857         * c-opts.cc (c_common_handle_option): Use OPT_std_c23 instead of
858         OPT_std_c2x and OPT_std_gnu23 instead of OPT_std_gnu2x.
860 2023-11-05  Jakub Jelinek  <jakub@redhat.com>
862         * c-lex.cc (c_common_has_attribute): Return 1 for omp::directive
863         and omp::sequence with -fopenmp or -fopenmp-simd also for C, not
864         just for C++.  Return 1 for omp::decl with -fopenmp or -fopenmp-simd
865         for both C and C++.
867 2023-11-04  David Malcolm  <dmalcolm@redhat.com>
869         * c-pragma.cc:: (handle_pragma_push_options): Fix missing "GCC" in
870         name of pragma in "junk" message.
871         (handle_pragma_pop_options): Likewise.
873 2023-11-04  David Malcolm  <dmalcolm@redhat.com>
875         * c-common.cc: Update for changes to diagnostic_context.
876         * c-indentation.cc: Likewise.
877         * c-opts.cc: Likewise.
878         * c-warn.cc: Likewise.
880 2023-11-01  Martin Uecker  <uecker@tugraz.at>
882         PR c/71219
883         * c.opt (Walloc-size): New option.
885 2023-10-31  David Malcolm  <dmalcolm@redhat.com>
887         * c-warn.cc (warn_for_multistatement_macros): Update for removal
888         of MACRO_MAP_EXPANSION_POINT_LOCATION.
890 2023-10-27  Lewis Hyatt  <lhyatt@gmail.com>
892         PR preprocessor/87299
893         * c-pragma.cc (init_pragma): Register `#pragma GCC target' and
894         related pragmas in preprocess-only mode, and enable early handling.
895         (c_reset_target_pragmas): New function refactoring code from...
896         (handle_pragma_reset_options): ...here.
897         * c-pragma.h (c_reset_target_pragmas): Declare.
899 2023-10-26  David Malcolm  <dmalcolm@redhat.com>
901         * c-attribs.cc (c_common_attribute_table): Add
902         "null_terminated_string_arg".
903         (handle_null_terminated_string_arg_attribute): New.
905 2023-10-23  Lewis Hyatt  <lhyatt@gmail.com>
907         PR preprocessor/36887
908         * c-opts.cc (c_common_init_options): Pass new extra hash map
909         argument to cpp_create_reader().
911 2023-10-20  Marek Polacek  <polacek@redhat.com>
913         PR c/111884
914         * c-common.cc (c_common_get_alias_set): Return -1 for char8_t only
915         in C++.
917 2023-10-20  Patrick Palka  <ppalka@redhat.com>
919         * c-warn.cc (check_address_or_pointer_of_packed_member): Handle
920         type-dependent callee of CALL_EXPR.
922 2023-10-20  Alexandre Oliva  <oliva@adacore.com>
924         * c-attribs.cc (handle_expected_throw_attribute): New.
925         (c_common_attribute_table): Add expected_throw.
927 2023-10-19  Lewis Hyatt  <lhyatt@gmail.com>
929         PR c++/89038
930         * c-pragma.cc (handle_pragma_diagnostic_impl):  Handle
931         -Wunknown-pragmas during early processing.
933 2023-10-15  Jakub Jelinek  <jakub@redhat.com>
935         PR tree-optimization/111800
936         * c-warn.cc (match_case_to_enum_1): Assert w.get_precision ()
937         is smaller or equal to WIDE_INT_MAX_INL_PRECISION rather than
938         w.get_len () is smaller or equal to WIDE_INT_MAX_INL_ELTS.
940 2023-10-12  Jakub Jelinek  <jakub@redhat.com>
942         PR c/102989
943         * c-warn.cc (match_case_to_enum_1): Use wi::to_wide just once instead
944         of 3 times, assert get_len () is smaller than WIDE_INT_MAX_INL_ELTS.
946 2023-10-02  David Malcolm  <dmalcolm@redhat.com>
948         * c-common.cc (maybe_add_include_fixit): Update for renaming of
949         diagnostic_context's show_caret to m_source_printing.enabled.
950         * c-opts.cc (c_common_init_options): Update for renaming of
951         diagnostic_context's colorize_source_p to
952         m_source_printing.colorize_source_p.
954 2023-09-20  Jakub Jelinek  <jakub@redhat.com>
956         PR c++/111392
957         * c-omp.cc (c_omp_directives): Add commented out groupprivate
958         directive entry.
960 2023-09-19  Ben Boeckel  <ben.boeckel@kitware.com>
962         * c-opts.cc (c_common_handle_option): Add fdeps_file variable and
963         -fdeps-format=, -fdeps-file=, and -fdeps-target= parsing.
964         * c.opt: Add -fdeps-format=, -fdeps-file=, and -fdeps-target=
965         flags.
967 2023-09-19  Javier Martinez  <javier.martinez.bugzilla@gmail.com>
969         * c-attribs.cc (handle_hot_attribute): remove warning on
970         RECORD_TYPE and UNION_TYPE when in c_dialect_xx.
971         (handle_cold_attribute): Likewise.
973 2023-09-19  Jakub Jelinek  <jakub@redhat.com>
975         * c-common.cc (c_common_signed_or_unsigned_type): Return INTEGER_TYPE
976         for signed variant of unsigned _BitInt(1).
978 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
980         PR c/102989
981         * c-attribs.cc (type_valid_for_vector_size): Reject vector types
982         with BITINT_TYPE elements even if they have mode precision and
983         suitable size.
985 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
987         PR c/102989
988         * c-common.cc (c_common_reswords): Add _BitInt as keyword.
989         (unsafe_conversion_p): Handle BITINT_TYPE like INTEGER_TYPE.
990         (c_common_signed_or_unsigned_type): Handle BITINT_TYPE.
991         (c_common_truthvalue_conversion, c_common_get_alias_set,
992         check_builtin_function_arguments): Handle BITINT_TYPE like
993         INTEGER_TYPE.
994         (sync_resolve_size): Add ORIG_FORMAT argument.  If
995         FETCH && !ORIG_FORMAT, type is BITINT_TYPE, return -1 if size isn't
996         one of 1, 2, 4, 8 or 16 or if it is 16 but TImode is not supported.
997         (atomic_bitint_fetch_using_cas_loop): New function.
998         (resolve_overloaded_builtin): Adjust sync_resolve_size caller.  If
999         -1 is returned, use atomic_bitint_fetch_using_cas_loop to lower it.
1000         Formatting fix.
1001         (keyword_begins_type_specifier): Handle RID_BITINT.
1002         * c-common.h (enum rid): Add RID_BITINT enumerator.
1003         * c-cppbuiltin.cc (c_cpp_builtins): For C call
1004         targetm.c.bitint_type_info and predefine __BITINT_MAXWIDTH__
1005         and for -fbuilding-libgcc also __LIBGCC_BITINT_LIMB_WIDTH__ and
1006         __LIBGCC_BITINT_ORDER__ macros if _BitInt is supported.
1007         * c-lex.cc (interpret_integer): Handle CPP_N_BITINT.
1008         * c-pretty-print.cc (c_pretty_printer::simple_type_specifier,
1009         c_pretty_printer::direct_abstract_declarator,
1010         c_pretty_printer::direct_declarator, c_pretty_printer::declarator):
1011         Handle BITINT_TYPE.
1012         (pp_c_integer_constant): Handle printing of large precision wide_ints
1013         which would buffer overflow digit_buffer.
1014         * c-warn.cc (conversion_warning, warnings_for_convert_and_check,
1015         warnings_for_convert_and_check): Handle BITINT_TYPE like
1016         INTEGER_TYPE.
1018 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
1020         PR c/102989
1021         * c-ubsan.cc (ubsan_instrument_shift): Use UBSAN_PRINT_FORCE_INT
1022         for type0 type descriptor.
1024 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
1026         * c-lex.cc (interpret_float): For C diagnostics on FN and FNx suffixes
1027         append " before C2X" to diagnostics text and follow behavior of
1028         pedwarn_c11.
1030 2023-09-01  Jakub Jelinek  <jakub@redhat.com>
1032         PR c++/111069
1033         * c-opts.cc (c_common_post_options): Change latest_abi_version to 19.
1035 2023-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1037         * c.opt: Change spelling to macOS.
1039 2023-08-31  Richard Biener  <rguenther@suse.de>
1041         PR middle-end/111253
1042         * c-pretty-print.cc (c_pretty_printer::primary_expression):
1043         Only dump gimple_assign_single_p SSA def RHS.
1045 2023-08-25  Sandra Loosemore  <sandra@codesourcery.com>
1047         * c-common.h (c_omp_check_loop_binding_exprs): Declare.
1048         * c-omp.cc: Include tree-iterator.h.
1049         (find_binding_in_body): New.
1050         (check_loop_binding_expr_r): New.
1051         (LOCATION_OR): New.
1052         (check_looop_binding_expr): New.
1053         (c_omp_check_loop_binding_exprs): New.
1055 2023-08-25  Uros Bizjak  <ubizjak@gmail.com>
1057         * c-format.cc (read_any_format_width):
1058         Rename TRUE/FALSE to true/false.
1060 2023-08-20  Martin Uecker  <uecker@tugraz.at>
1062         * c-format.cc: Fix identation.
1064 2023-08-20  Tomas Kalibera  <tomas.kalibera@gmail.com>
1066         PR c/95130
1067         * c-format.cc: skip default format for printf symbol if
1068         explicitly declared by prototype.
1070 2023-08-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
1072         PR c/106537
1073         * c.opt (Wcompare-distinct-pointer-types): New option.
1075 2023-08-14  Jason Merrill  <jason@redhat.com>
1077         * c-cppbuiltin.cc (c_cpp_builtins): Adjust __cpp_concepts.
1079 2023-08-11  Jakub Jelinek  <jakub@redhat.com>
1081         * c-common.cc (c_common_reswords): Add __typeof_unqual
1082         and __typeof_unqual__ spellings of typeof_unqual.
1084 2023-08-11  Martin Uecker  <uecker@tugraz.at>
1086         PR c/84510
1087         * c.opt: Enable warning for C and ObjC.
1089 2023-08-05  Martin Uecker  <uecker@tugraz.at>
1091         PR c/98536
1092         * c-warn.cc (warn_parm_array_mismatch): Do not warn if more
1093         bounds are specified.
1095 2023-08-04  Tamar Christina  <tamar.christina@arm.com>
1097         * c-pragma.h (enum pragma_kind): Add PRAGMA_NOVECTOR.
1098         * c-pragma.cc (init_pragma): Use it.
1100 2023-08-01  Lewis Hyatt  <lhyatt@gmail.com>
1102         * c-common.h (c_init_preprocess): Declare new function.
1103         * c-opts.cc (c_common_init): Call it.
1104         * c-lex.cc (cb_def_pragma): Add a comment.
1105         (get_token): New function wrapping cpp_get_token.
1106         (c_lex_with_flags): Use the new wrapper function to support
1107         obtaining tokens in preprocess_only mode.
1108         (lex_string): Likewise.
1109         * c-pragma.cc (pragma_diagnostic_lex_normal): Rename to...
1110         (pragma_diagnostic_lex): ...this.
1111         (pragma_diagnostic_lex_pp): Remove.
1112         (handle_pragma_diagnostic_impl): Call pragma_diagnostic_lex () in
1113         all modes.
1114         (c_pp_invoke_early_pragma_handler): Adapt to support pragma_lex ()
1115         usage.
1116         * c-pragma.h (pragma_lex_discard_to_eol): Declare.
1118 2023-07-31  Hamza Mahfooz  <someguy@effective-light.com>
1120         PR c/65213
1121         * c.opt (-Wmissing-variable-declarations): New option.
1123 2023-07-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1125         PR middle-end/77928
1126         * c-common.cc (check_builtin_function_arguments):
1127         Handle BUILT_IN_ISEQSIG.
1129 2023-07-05  Robin Dapp  <rdapp@ventanamicro.com>
1130             Juzhe-Zhong  <juzhe.zhong@rivai.ai>
1132         * c-common.cc (c_common_type_for_mode): Use GET_MODE_PRECISION.
1134 2023-06-29  Qing Zhao  <qing.zhao@oracle.com>
1136         PR c/77650
1137         * c.opt: New option -Wflex-array-member-not-at-end.
1139 2023-06-28  Jason Merrill  <jason@redhat.com>
1141         PR c++/110344
1142         * c-cppbuiltin.cc (c_cpp_builtins): Update __cpp_constexpr.
1144 2023-06-26  Richard Biener  <rguenther@suse.de>
1146         * c-common.cc (shorten_binary_op): Exit early for VECTOR_TYPE
1147         operations.
1149 2023-06-23  Marek Polacek  <polacek@redhat.com>
1151         * c-common.h (cxx_dialect): Add cxx26 as a dialect.
1152         * c-opts.cc (set_std_cxx26): New.
1153         (c_common_handle_option): Set options when -std={c,gnu}++2{c,6} is
1154         enabled.
1155         (c_common_post_options): Adjust comments.
1156         * c.opt: Add options for -std=c++26, std=c++2c, -std=gnu++26,
1157         and -std=gnu++2c.
1158         (std=c++2b): Mark as Undocumented.
1159         (std=c++23): No longer Undocumented.
1161 2023-06-21  Alexander Monakov  <amonakov@ispras.ru>
1163         * c-gimplify.cc (fma_supported_p): New helper.
1164         (c_gimplify_expr) [PLUS_EXPR, MINUS_EXPR]: Implement FMA
1165         contraction.
1167 2023-06-16  Alex Coplan  <alex.coplan@arm.com>
1169         * c.opt (Welaborated-enum-base): New.
1171 2023-06-13  David Malcolm  <dmalcolm@redhat.com>
1173         PR c/84890
1174         * known-headers.cc
1175         (suggest_missing_header::~suggest_missing_header): Reword note to
1176         avoid negative tone of "forgetting".
1178 2023-06-07  Jason Merrill  <jason@redhat.com>
1180         PR c++/58487
1181         * c.opt: Add -Wnrvo.
1183 2023-05-26  Martin Uecker  <uecker@tugraz.at>
1185         * c-attribs.cc (build_attr_access_from_parms): Split loop to first
1186         record all parameters.
1188 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1190         * c-ada-spec.cc (has_static_fields): Use _P() defines from tree.h.
1191         (dump_ada_declaration): Ditto.
1192         (dump_ada_structure): Ditto.
1193         * c-common.cc (unsafe_conversion_p): Ditto.
1194         (shorten_compare): Ditto.
1195         (pointer_int_sum): Ditto.
1196         (c_common_truthvalue_conversion): Ditto.
1197         (scalar_to_vector): Ditto.
1198         * c-common.h (gnu_vector_type_p): Ditto.
1199         * c-omp.cc (c_omp_depend_t_p): Ditto.
1200         (c_omp_split_clauses): Ditto.
1201         * c-ubsan.cc (ubsan_instrument_division): Ditto.
1202         * c-warn.cc (conversion_warning): Ditto.
1203         (warnings_for_convert_and_check): Ditto.
1205 2023-05-18  Joseph Myers  <joseph@codesourcery.com>
1207         * c-format.cc (print_char_table): Handle %B like %b.
1209 2023-05-15  Joseph Myers  <joseph@codesourcery.com>
1211         * c-lex.cc (c_common_has_attribute): Use 202311 as
1212         __has_c_attribute return for all C2x attributes.
1214 2023-05-15  Patrick Palka  <ppalka@redhat.com>
1216         * c-cppbuiltin.cc (c_cpp_builtins): Predefine __cpp_auto_cast
1217         for C++23.
1219 2023-05-01  Marek Polacek  <polacek@redhat.com>
1221         * c-ubsan.cc (ubsan_maybe_instrument_array_ref): Don't copy_node.
1223 2023-03-28  David Malcolm  <dmalcolm@redhat.com>
1225         PR c/107002
1226         * c-common.h (check_for_xor_used_as_pow): Add "rhs_loc" param.
1227         * c-warn.cc (check_for_xor_used_as_pow): Add "rhs_loc" param.
1228         Reject cases where involving macro expansions.
1230 2023-03-28  Jason Merrill  <jason@redhat.com>
1232         PR c++/107163
1233         * c-common.cc (verify_tree): Don't use sequenced handling
1234         for COMPONENT_REF.
1236 2023-03-17  Jakub Jelinek  <jakub@redhat.com>
1238         PR c/109151
1239         * c-ubsan.cc (ubsan_instrument_division): Handle all scalar integral
1240         types rather than just INTEGER_TYPE.
1242 2023-03-10  Marek Polacek  <polacek@redhat.com>
1244         PR sanitizer/108060
1245         PR sanitizer/109050
1246         * c-gimplify.cc (ubsan_walk_array_refs_r): For a MODIFY_EXPR, instrument
1247         the RHS before the LHS.
1249 2023-03-04  Jakub Jelinek  <jakub@redhat.com>
1251         PR c/107465
1252         * c-warn.cc (warn_for_sign_compare): Don't warn for unset bits
1253         above innermost zero extension of BIT_NOT_EXPR result.
1255 2023-03-04  Jakub Jelinek  <jakub@redhat.com>
1257         PR c/107465
1258         * c-warn.cc (warn_for_sign_compare): If c_common_get_narrower
1259         doesn't return a narrower result, use TYPE_UNSIGNED to set unsignedp0
1260         and unsignedp1.  For the one BIT_NOT_EXPR case vs. one without,
1261         only check for constant in the non-BIT_NOT_EXPR operand, use std::swap
1262         to simplify the code, only warn if BIT_NOT_EXPR operand is extended
1263         from narrower unsigned, fix up computation of mask for the constant
1264         cases and for unsigned other operand case handle differently
1265         BIT_NOT_EXPR result being sign vs. zero extended.
1267 2023-03-04  Jakub Jelinek  <jakub@redhat.com>
1269         PR c/107846
1270         * c-warn.cc: Include langhooks.h.
1271         (maybe_warn_shift_overflow): Set type0 to what TREE_TYPE (op0)
1272         promotes to rather than TREE_TYPE (op0) itself, if TREE_TYPE (op0)
1273         is narrower than type0 and unsigned, use wi::min_precision with
1274         UNSIGNED and fold_convert op0 to type0 before emitting the warning.
1276 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
1278         * c-common.cc (c_common_nodes_and_builtins): Take
1279         wchar_type_node for wint_type_node when aliased.
1280         (c_stddef_cpp_builtins): Define __WINT_TYPE__, when aliased to
1281         wchar_t, to the underlying type rather than wchar_t in
1282         non-C++.
1283         * c-cppbuiltin.cc (type_suffix): Handle wchar_type_node.
1285 2023-02-28  Marek Polacek  <polacek@redhat.com>
1287         PR c++/107938
1288         * c-warn.cc (check_address_or_pointer_of_packed_member): Check
1289         POINTER_TYPE_P.
1291 2023-02-28  Jakub Jelinek  <jakub@redhat.com>
1293         PR sanitizer/108894
1294         * c-common.h (c_strict_flex_array_level_of): Declare.
1295         * c-common.cc (c_strict_flex_array_level_of): New function,
1296         moved and renamed from c-decl.cc's strict_flex_array_level_of.
1297         * c-ubsan.cc (ubsan_instrument_bounds): Fix comment typo.  For
1298         C check c_strict_flex_array_level_of whether a trailing array
1299         should be treated as flexible member like.  Handle C [0] arrays.
1300         Add 1 + index_off_by_one rather than index_off_by_one to bounds
1301         and use tree_int_cst_lt rather than tree_int_cst_le for idx vs.
1302         bounds comparison.
1304 2023-02-23  Jakub Jelinek  <jakub@redhat.com>
1306         PR translation/108890
1307         * c.opt (fcontracts): Fix description.
1309 2023-02-22  Marek Polacek  <polacek@redhat.com>
1311         PR c/108880
1312         * c-gimplify.cc (c_genericize_control_stmt) <case STATEMENT_LIST>: Pass
1313         pset to walk_tree_1.
1314         (c_genericize): Call walk_tree with an explicit pset.
1316 2023-02-18  Martin Uecker  <uecker@tugraz.at>
1318         PR c/105660
1319         * c-attribs.cc (append_access_attr): Use order of arguments when
1320         construction string.
1321         (append_access_attr_idxs): Rename and make static.
1322         * c-warn.cc (warn_parm_array_mismatch): Add assertion.
1324 2023-02-16  Patrick Palka  <ppalka@redhat.com>
1326         * c-common.h: Mechanically drop static from static inline
1327         functions via s/^static inline/inline/g.
1329 2023-02-01  Jason Merrill  <jason@redhat.com>
1331         * c.opt: Add -Wno-changes-meaning.
1333 2023-01-31  Marek Polacek  <polacek@redhat.com>
1335         PR c++/107593
1336         PR c++/108597
1337         * c-common.h (instantiation_dependent_expression_p): Declare.
1338         * c-warn.cc (warn_duplicated_cond_add_or_warn): If the condition
1339         is dependent, invalidate the chain.
1341 2023-01-26  Marek Polacek  <polacek@redhat.com>
1343         PR c++/105300
1344         * c-pragma.cc (handle_pragma_message): Warn for CPP_STRING_USERDEF.
1346 2023-01-18  Marek Polacek  <polacek@redhat.com>
1348         PR c/108424
1349         * c-common.cc (check_case_value): Check INTEGRAL_TYPE_P.
1351 2023-01-14  Jakub Jelinek  <jakub@redhat.com>
1353         PR c++/108365
1354         * c-common.h (may_shorten_divmod): New static inline function.
1356 2023-01-13  Eric Botcazou  <ebotcazou@adacore.com>
1358         * c-ada-spec.cc (is_float32): New function.
1359         (is_float64): Likewise.
1360         (is_float128): Tweak.
1361         (dump_ada_node) <REAL_TYPE>: Call them to recognize more types.
1363 2023-01-12  Lewis Hyatt  <lhyatt@gmail.com>
1365         PR preprocessor/108244
1366         * c-pragma.cc (c_register_pragma_1): Don't attempt to register any
1367         deferred pragmas if -fdirectives-only.
1368         (init_pragma): Likewise.
1370 2023-01-09  Martin Liska  <mliska@suse.cz>
1372         PR c/107993
1373         * c-attribs.cc (handle_target_clones_attribute): Check for
1374         string constant for all target_clone attribute values.
1376 2023-01-03  Florian Weimer  <fweimer@redhat.com>
1378         * c-cppbuiltin.cc (c_cpp_builtins): Define
1379         __LIBGCC_DWARF_CIE_DATA_ALIGNMENT__.
1381 2023-01-03  Florian Weimer  <fweimer@redhat.com>
1383         Revert:
1384         2023-01-03  Florian Weimer  <fweimer@redhat.com>
1386         * c-cppbuiltin.cc (__LIBGCC_DWARF_REG_SIZES_CONSTANT__):
1387         Define if constant is known.
1389 2023-01-03  Florian Weimer  <fweimer@redhat.com>
1391         Revert:
1392         2023-01-02  Florian Weimer  <fweimer@redhat.com>
1394         * c-cppbuiltin.cc (c_cpp_builtins): Define
1395         __LIBGCC_DWARF_CIE_DATA_ALIGNMENT__.
1397 2023-01-02  Florian Weimer  <fweimer@redhat.com>
1399         * c-cppbuiltin.cc (c_cpp_builtins): Define
1400         __LIBGCC_DWARF_CIE_DATA_ALIGNMENT__.
1402 2023-01-02  Florian Weimer  <fweimer@redhat.com>
1404         * c-cppbuiltin.cc (__LIBGCC_DWARF_REG_SIZES_CONSTANT__):
1405         Define if constant is known.
1407 2022-12-19  Marek Polacek  <polacek@redhat.com>
1409         PR c/98487
1410         * c-format.cc (check_function_format): Use get_attribute_name.
1412 2022-12-16  Qing Zhao  <qing.zhao@oracle.com>
1414         * c.opt (Wstrict-flex-arrays): New option.
1416 2022-12-02  Andrew MacLeod  <amacleod@redhat.com>
1418         * c-attribs.cc (handle_deprecated_attribute): Use type when
1419         using TYPE_NAME.
1421 2022-12-02  Jakub Jelinek  <jakub@redhat.com>
1423         PR c++/84469
1424         * c-omp.cc (c_omp_is_loop_iterator): For range for with structured
1425         binding return TREE_VEC_LENGTH (d->declv) even if decl is equal
1426         to any of the structured binding decls.
1428 2022-11-30  Iskander Shakirzyanov  <iskander@ispras.ru>
1429             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1431         PR driver/107787
1432         * c-common.cc (fold_offsetof,
1433         convert_vector_to_array_for_subscript): Use OPT_Warray_bounds_
1434         instead of OPT_Warray_bounds.
1436 2022-11-24  Jakub Jelinek  <jakub@redhat.com>
1438         * c.opt (fcontract-role=, fcontract-semantic=): Terminate descriptions
1439         with a dot.
1441 2022-11-23  Andrew Pinski  <apinski@marvell.com>
1442             Jakub Jelinek  <jakub@redhat.com>
1444         PR c/107127
1445         * c-gimplify.cc (c_genericize): Use walk_tree_without_duplicates
1446         instead of walk_tree for c_genericize_control_r.
1448 2022-11-23  Jakub Jelinek  <jakub@redhat.com>
1450         * c.opt (fcontract-assumption-mode=, fcontract-continuation-mode=,
1451         fcontract-role=, fcontract-semantic=): Add RejectNegative.
1452         (fcontract-build-level=): Terminate description with dot.
1454 2022-11-19  Jakub Jelinek  <jakub@redhat.com>
1456         * c-cppbuiltin.cc (c_cpp_builtins): Bump __cpp_constexpr
1457         value from 202207L to 202211L.
1459 2022-11-19  Jeff Chapman II  <jchapman@lock3software.com>
1460             Andrew Sutton   <asutton@lock3software.com>
1461             Andrew Marmaduke  <amarmaduke@lock3software.com>
1462             Michael Lopez  <mlopez@lock3software.com>
1463             Jason Merrill   <jason@redhat.com>
1465         * c.opt: Add contracts flags.
1466         * c-cppbuiltin.cc (c_cpp_builtins): Add contracts feature-test
1467         macros.
1469 2022-11-16  Marek Polacek  <polacek@redhat.com>
1471         PR c++/106649
1472         * c-cppbuiltin.cc (c_cpp_builtins): Update value of __cpp_constexpr for
1473         C++23.
1474         * c-opts.cc (c_common_post_options): Set warn_invalid_constexpr
1475         depending on cxx_dialect.
1476         * c.opt (Winvalid-constexpr): New option.
1478 2022-11-16  Jakub Jelinek  <jakub@redhat.com>
1480         * c-common.def (CONCEPT_DECL): New tree, moved here from
1481         cp-tree.def.
1482         * c-common.cc (c_common_init_ts): Handle CONCEPT_DECL.
1483         * c-attribs.cc (handle_deprecated_attribute): Allow deprecated
1484         attribute on CONCEPT_DECL.
1486 2022-11-15  Lewis Hyatt  <lhyatt@gmail.com>
1488         * c-opts.cc (c_finish_options): Use special_fname_builtin () rather
1489         than a hard-coded string.
1491 2022-11-15  Jakub Jelinek  <jakub@redhat.com>
1493         * c-cppbuiltin.cc (c_cpp_builtins): Bump C++23
1494         __cpp_multidimensional_subscript macro value to 202211L.
1496 2022-11-15  Patrick Palka  <ppalka@redhat.com>
1498         PR c++/107638
1499         * c-lex.cc (c_common_has_attribute): Return 1 for init_priority
1500         iff SUPPORTS_INIT_PRIORITY.
1502 2022-11-14  Martin Liska  <mliska@suse.cz>
1504         Revert:
1505         2022-11-09  Martin Liska  <mliska@suse.cz>
1507         * c-target.def: Port to RST.
1509 2022-11-12  Joseph Myers  <joseph@codesourcery.com>
1511         * c-common.cc (c_common_reswords): Use D_C2X instead of D_CXXONLY.
1513 2022-11-11  Jonathan Wakely  <jwakely@redhat.com>
1515         PR c/85487
1516         * c-pragma.cc (handle_pragma_ignore): New function.
1517         (init_pragma): Register region and endregion pragmas.
1519 2022-11-09  Martin Liska  <mliska@suse.cz>
1521         * c-target.def: Port to RST.
1523 2022-11-05  Lewis Hyatt  <lhyatt@gmail.com>
1525         PR preprocessor/55971
1526         * c-ppoutput.cc (adjust_for_newlines): Update comment.
1528 2022-11-03  Jason Merrill  <jason@redhat.com>
1530         * c-opts.cc (c_common_post_options): -fconcepts no longer implies
1531         -fconcepts-ts before C++20.
1533 2022-10-28  Joseph Myers  <joseph@codesourcery.com>
1535         * c-common.cc (def_fn_type): Call build_function_type for
1536         zero-argument variable-argument function.
1537         (c_common_nodes_and_builtins): Build default_function_type with
1538         build_function_type.
1539         * c.opt (fallow-parameterless-variadic-functions): Mark as ignored
1540         option.
1542 2022-10-28  Joseph Myers  <joseph@codesourcery.com>
1544         PR c/61469
1545         * c-common.h (ENUM_UNDERLYING_TYPE, ENUM_FIXED_UNDERLYING_TYPE_P):
1546         New.  Moved from cp/cp-tree.h.
1547         * c-warn.cc (warnings_for_convert_and_check): Do not consider
1548         conversions to enum with underlying type bool to overflow.
1550 2022-10-26  Marek Polacek  <polacek@redhat.com>
1552         PR c++/106393
1553         * c.opt (Wdangling-reference): New.
1555 2022-10-19  Joseph Myers  <joseph@codesourcery.com>
1557         * c-format.h (enum format_lengths): Add FMT_LEN_w8, FMT_LEN_w16,
1558         FMT_LEN_w32, FMT_LEN_w64, FMT_LEN_wf8, FMT_LEN_wf16, FMT_LEN_wf32
1559         and FMT_LEN_wf64.
1560         (NOARGUMENTS, NOLENGTHS): Update definitions.
1561         (T_I8, T2X_I8, T_I16, T2X_I16, T_I32, T2X_I32, T_I64, T2X_I64)
1562         (T_U8, T2X_U8, T_U16, T2X_U16, T_U32, T2X_U32, T_U64, T2X_U64)
1563         (T_IF8, T2X_IF8, T_IF16, T2X_IF16, T_IF32, T2X_IF32, T_IF64)
1564         (T2X_IF64, T_UF8, T2X_UF8, T_UF16, T2X_UF16, T_UF32, T2X_UF32)
1565         (T_UF64, T2X_UF64): New macros.
1566         * c-format.cc (printf_length_specs, scanf_length_specs): Add wN
1567         and wfN length modifiers.
1568         (print_char_table, scan_char_table): Add entries using wN and wfN
1569         length modifiers.
1571 2022-10-18  Joseph Myers  <joseph@codesourcery.com>
1573         PR c/36113
1574         * c-common.cc (c_common_type_for_size): Add fallback to
1575         widest_unsigned_literal_type_node or
1576         widest_integer_literal_type_node for precision that may not
1577         exactly match the precision of those types.
1579 2022-10-14  Jakub Jelinek  <jakub@redhat.com>
1581         * c-cppbuiltin.cc (c_cpp_builtins): If bfloat16_type_node,
1582         predefine __BFLT16_*__ macros and for C++23 also
1583         __STDCPP_BFLOAT16_T__.  Predefine bfloat16_type_node related
1584         macros for -fbuilding-libgcc.
1585         * c-lex.cc (interpret_float): Handle CPP_N_BFLOAT16.
1587 2022-10-14  Jakub Jelinek  <jakub@redhat.com>
1589         PR middle-end/323
1590         PR c++/107097
1591         * c-common.def (EXCESS_PRECISION_EXPR): Remove comment part about
1592         the tree being specific to C/ObjC.
1593         * c-opts.cc (c_common_post_options): Handle flag_excess_precision
1594         in C++ the same as in C.
1595         * c-lex.cc (interpret_float): Set const_type to excess_precision ()
1596         even for C++.
1598 2022-10-13  Joseph Myers  <joseph@codesourcery.com>
1600         * c-cppbuiltin.cc (builtin_define_float_constants): Do not use
1601         value 2 for *_IS_IEC_60559.
1603 2022-10-12  Lewis Hyatt  <lhyatt@gmail.com>
1605         PR preprocessor/60014
1606         PR preprocessor/60723
1607         * c-ppoutput.cc (class token_streamer): Remove member
1608         line_marker_emitted to...
1609         (token_streamer::stream): ...a local variable here. Set
1610         print.prev_was_system_token on all code paths.
1612 2022-10-10  Nathan Sidwell  <nathan@acm.org>
1614         * c-opts.cc (c_common_post_options): Bump abi to 18.
1616 2022-10-10  Marek Polacek  <polacek@redhat.com>
1618         PR c++/106937
1619         * c-pretty-print.cc (pp_c_specifier_qualifier_list): Print only GNU
1620         attributes here.
1621         (c_pretty_printer::direct_abstract_declarator): Print the standard [[]]
1622         attributes here.
1623         (pp_c_attributes): Remove.
1624         (pp_c_attributes_display): Print the [[]] form if appropriate.  Use
1625         get_attribute_name.  Don't print a trailing space when printing the
1626         [[]] form.
1627         * c-pretty-print.h (pp_c_attributes): Remove.
1629 2022-10-07  Qing Zhao  <qing.zhao@oracle.com>
1631         * c-attribs.cc (handle_strict_flex_array_attribute): New function.
1632         (c_common_attribute_table): New item for strict_flex_array.
1633         * c.opt: (fstrict-flex-arrays): New option.
1634         (fstrict-flex-arrays=): New option.
1636 2022-10-07  Martin Liska  <mliska@suse.cz>
1638         * name-hint.h: Use std::move.
1640 2022-10-07  Jakub Jelinek  <jakub@redhat.com>
1642         * c-common.cc (attribute_fallthrough_p): Lookup fallthrough attribute
1643         only in gnu namespace or as standard attribute, treat fallthrough
1644         attributes in other namespaces like any other unknown attribute.
1646 2022-10-06  Joseph Myers  <joseph@codesourcery.com>
1648         * c-common.cc (c_common_reswords): Mark typeof as D_EXT11.  Add
1649         typeof_unqual.
1650         * c-common.h (enum rid): Add RID_TYPEOF_UNQUAL.
1651         (D_EXT11): New macro.  Values of subsequent macros updated.
1653 2022-10-06  Jakub Jelinek  <jakub@redhat.com>
1655         PR c++/106654
1656         * c-attribs.cc (handle_assume_attribute): New function.
1657         (c_common_attribute_table): Add entry for assume attribute.
1658         * c-lex.cc (c_common_has_attribute): Handle
1659         __have_cpp_attribute (assume).
1661 2022-10-04  Jakub Jelinek  <jakub@redhat.com>
1663         * c-omp.cc (c_omp_directives): Uncomment begin declare target
1664         entry.
1666 2022-10-03  Patrick Palka  <ppalka@redhat.com>
1668         * c-common.cc (c_common_reswords): Use RID_IS_SAME instead of
1669         RID_IS_SAME_AS.
1671 2022-10-03  Joseph Myers  <joseph@codesourcery.com>
1673         * c-cppbuiltin.cc (builtin_define_float_constants): Do not
1674         special-case __*_EPSILON__ setting for IBM long double for C2x.
1676 2022-09-30  Patrick Palka  <ppalka@redhat.com>
1678         * c-common.cc (c_common_reswords): Use cp/cp-trait.def to handle
1679         C++ traits.
1680         * c-common.h (enum rid): Likewise.
1682 2022-09-29  Joseph Myers  <joseph@codesourcery.com>
1684         * c-lex.cc (c_common_has_attribute): Handle noreturn attribute for
1685         C.
1687 2022-09-29  Patrick Palka  <ppalka@redhat.com>
1689         * c-common.cc (c_common_reswords): Add __remove_cv,
1690         __remove_reference and __remove_cvref.
1691         * c-common.h (enum rid): Add RID_REMOVE_CV, RID_REMOVE_REFERENCE
1692         and RID_REMOVE_CVREF.
1694 2022-09-27  Marek Polacek  <polacek@redhat.com>
1696         PR c++/101165
1697         PR c++/106882
1698         * c-cppbuiltin.cc (c_cpp_builtins): Define __cpp_implicit_move.
1700 2022-09-27  Marek Polacek  <polacek@redhat.com>
1702         * c-format.cc (c_keywords): Drop nothrow.
1704 2022-09-27  Jakub Jelinek  <jakub@redhat.com>
1706         PR c++/106651
1707         * c-cppbuiltin.cc (c_cpp_builtins): Predefine
1708         __cpp_static_call_operator=202207L for C++23.
1710 2022-09-27  Jakub Jelinek  <jakub@redhat.com>
1712         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_ASSUME,
1713         PRAGMA_OMP_ASSUMES and PRAGMA_OMP_BEGIN.  Rename
1714         PRAGMA_OMP_END_DECLARE_TARGET to PRAGMA_OMP_END.
1715         * c-pragma.cc (omp_pragmas): Add assumes and begin.
1716         For end rename PRAGMA_OMP_END_DECLARE_TARGET to PRAGMA_OMP_END.
1717         (omp_pragmas_simd): Add assume.
1718         * c-common.h (c_omp_directives): Declare.
1719         * c-omp.cc (omp_directives): Rename to ...
1720         (c_omp_directives): ... this.  No longer static.  Uncomment
1721         assume, assumes, begin assumes and end assumes entries.
1722         In end declare target entry rename PRAGMA_OMP_END_DECLARE_TARGET
1723         to PRAGMA_OMP_END.
1724         (c_omp_categorize_directive): Adjust for omp_directives to
1725         c_omp_directives renaming.
1727 2022-09-27  Jakub Jelinek  <jakub@redhat.com>
1729         PR c++/106652
1730         PR c++/85518
1731         * c-common.cc (c_common_reswords): Change _Float{16,32,64,128} and
1732         _Float{32,64,128}x flags from D_CONLY to 0.
1733         (shorten_binary_op): Punt if common_type returns error_mark_node.
1734         (shorten_compare): Likewise.
1735         (c_common_nodes_and_builtins): For C++ record _Float{16,32,64,128}
1736         and _Float{32,64,128}x builtin types if available.  For C++
1737         clear float128t_type_node.
1738         * c-cppbuiltin.cc (c_cpp_builtins): Predefine
1739         __STDCPP_FLOAT{16,32,64,128}_T__ for C++23 if supported.
1740         * c-lex.cc (interpret_float): For q/Q suffixes prefer
1741         float128t_type_node over float128_type_node.  Allow
1742         {f,F}{16,32,64,128} suffixes for C++ if supported with pedwarn
1743         for C++20 and older.  Allow {f,F}{32,64,128}x suffixes for C++
1744         with pedwarn.  Don't call excess_precision_type for C++.
1746 2022-09-26  Marek Polacek  <polacek@redhat.com>
1748         PR c++/106656
1749         * c-cppbuiltin.cc (c_cpp_builtins): Update value of __cpp_char8_t
1750         for C++20.
1752 2022-09-23  Marek Polacek  <polacek@redhat.com>
1754         PR c++/106784
1755         * c-common.cc (c_common_reswords): Add __is_convertible and
1756         __is_nothrow_convertible.
1757         * c-common.h (enum rid): Add RID_IS_CONVERTIBLE and
1758         RID_IS_NOTHROW_CONVERTIBLE.
1760 2022-09-22  David Malcolm  <dmalcolm@redhat.com>
1762         PR c/106830
1763         * c-warn.cc (check_for_xor_used_as_pow): Don't try checking
1764         values that don't fit in uhwi.
1766 2022-09-15  Richard Biener  <rguenther@suse.de>
1768         * c-common.h (build_void_list_node): Remove.
1769         * c-common.cc (c_common_nodes_and_builtins): Do not initialize
1770         void_list_node.
1772 2022-09-09  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1774         * c-format.cc (convert_format_name_to_system_name): Fix warning.
1776 2022-09-07  Joseph Myers  <joseph@codesourcery.com>
1778         * c-common.cc (c_common_reswords): Use D_C2X instead of D_CXXONLY
1779         for alignas, alignof, bool, false, static_assert, thread_local and
1780         true.
1782 2022-09-07  Jakub Jelinek  <jakub@redhat.com>
1784         * c.opt (Winvalid-utf8): Use ObjC instead of objC.  Remove
1785         " in comments" from description.
1786         (Wunicode): New option.
1788 2022-09-06  Jakub Jelinek  <jakub@redhat.com>
1790         PR c/106836
1791         * c-omp.cc (c_omp_split_clauses): Handle OMP_CLAUSE_DOACROSS.
1793 2022-09-03  Jakub Jelinek  <jakub@redhat.com>
1795         * c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_DOACROSS.
1796         * c-omp.cc (c_finish_omp_depobj): Check also for OMP_CLAUSE_DOACROSS
1797         clause and diagnose it.  Don't handle OMP_CLAUSE_DEPEND_SOURCE and
1798         OMP_CLAUSE_DEPEND_SINK.  Assert kind is not OMP_CLAUSE_DEPEND_INVALID.
1800 2022-09-02  David Malcolm  <dmalcolm@redhat.com>
1802         PR c/90885
1803         * c-common.h (check_for_xor_used_as_pow): New decl.
1804         * c-lex.cc (c_lex_with_flags): Add DECIMAL_INT to flags as appropriate.
1805         * c-warn.cc (check_for_xor_used_as_pow): New.
1806         * c.opt (Wxor-used-as-pow): New.
1808 2022-09-01  Jason Merrill  <jason@redhat.com>
1810         * c-common.cc (c_common_nodes_and_builtins): Set TREE_STRING_FLAG on
1811         char8_t.
1812         (braced_list_to_string): Check for char-sized elements.
1814 2022-09-01  Jakub Jelinek  <jakub@redhat.com>
1816         PR c++/106655
1817         * c.opt (-Winvalid-utf8): New warning.
1818         * c-opts.cc (c_common_handle_option) <case OPT_finput_charset_>:
1819         Set cpp_opts->cpp_input_charset_explicit.
1820         (c_common_post_options): If -finput-charset=UTF-8 is explicit
1821         in C++23, enable -Winvalid-utf8 by default and if -pedantic
1822         or -pedantic-errors, make it a pedwarn.
1824 2022-08-31  Joseph Myers  <joseph@codesourcery.com>
1826         * c-attribs.cc (handle_deprecated_attribute): Check and pedwarn
1827         for LABEL_DECL.
1828         * c-common.cc (c_add_case_label): Add argument ATTRS.  Call
1829         decl_attributes.
1830         * c-common.h (do_case, c_add_case_label): Update declarations.
1831         * c-lex.cc (c_common_has_attribute): For C, produce a result of
1832         201910 for fallthrough and 202106 for maybe_unused.
1834 2022-08-26  Marek Polacek  <polacek@redhat.com>
1836         PR c++/81159
1837         * c.opt (Wself-move): New option.
1839 2022-08-26  Jakub Jelinek  <jakub@redhat.com>
1841         * c-common.cc (check_builtin_function_arguments): Handle
1842         BUILT_IN_ISSIGNALING.
1844 2022-08-26  Jakub Jelinek  <jakub@redhat.com>
1846         PR c++/106648
1847         * c-cppbuiltin.cc (c_cpp_builtins): Predefine
1848         __cpp_named_character_escapes to 202207L.
1850 2022-08-25  Marek Polacek  <polacek@redhat.com>
1852         * c-common.cc (c_common_reswords): Enable nullptr in C2X.
1853         (c_common_nodes_and_builtins): Create the built-in node for nullptr.
1854         * c-common.h (enum c_tree_index): Add CTI_NULLPTR, CTI_NULLPTR_TYPE.
1855         (struct c_common_resword): Resize the disable member.
1856         (D_C2X): Add.
1857         (nullptr_node): Define.
1858         (nullptr_type_node): Define.
1859         (NULLPTR_TYPE_P): Define.
1860         * c-pretty-print.cc (c_pretty_printer::simple_type_specifier): Handle
1861         NULLPTR_TYPE.
1862         (c_pretty_printer::direct_abstract_declarator): Likewise.
1863         (c_pretty_printer::constant): Likewise.
1865 2022-08-16  Tom Honermann  <tom@honermann.net>
1867         PR c++/106423
1868         * c-opts.cc (c_common_post_options): Disable -Wc++20-compat
1869         diagnostics in C++20 and later.
1870         * c.opt (Wc++20-compat): Enable hooks for the preprocessor.
1872 2022-08-11  Marek Polacek  <polacek@redhat.com>
1874         PR middle-end/102633
1875         * c-gimplify.cc (c_gimplify_expr) <case DECL_EXPR>: Don't call
1876         suppress_warning here.
1878 2022-08-08  Tom Honermann  <tom@honermann.net>
1880         PR preprocessor/106426
1881         * c-opts.cc (c_common_post_options): Assign cpp_opts->unsigned_utf8char
1882         subject to -fchar8_t, -fsigned-char, and/or -funsigned-char.
1884 2022-08-08  Tom Honermann  <tom@honermann.net>
1886         * c-lex.cc (lex_string, lex_charconst): Use char8_t as the type
1887         of CPP_UTF8CHAR and CPP_UTF8STRING when char8_t support is
1888         enabled.
1889         * c-opts.cc (c_common_post_options): Set flag_char8_t if
1890         targeting C2x.
1892 2022-07-31  Lewis Hyatt  <lhyatt@gmail.com>
1894         PR c++/66290
1895         * c-common.h: Rename global done_lexing to
1896         override_libcpp_locations.
1897         * c-common.cc (c_cpp_diagnostic): Likewise.
1898         * c-opts.cc (c_common_finish): Set override_libcpp_locations
1899         (formerly done_lexing) immediately prior to calling cpp_finish ().
1901 2022-07-27  Lewis Hyatt  <lhyatt@gmail.com>
1903         * c-ppoutput.cc (token_streamer::stream): Update input_location
1904         prior to streaming each token.
1906 2022-07-23  Immad Mir  <mirimmad@outlook.com>
1908         * c-attribs.cc: (c_common_attribute_table): add three new attributes
1909         namely: fd_arg, fd_arg_read and fd_arg_write.
1910         (handle_fd_arg_attribute): New.
1912 2022-07-15  Marek Polacek  <polacek@redhat.com>
1914         PR c++/104477
1915         * c-common.cc (c_common_reswords): Add
1916         __reference_constructs_from_temporary and
1917         __reference_converts_from_temporary.
1918         * c-common.h (enum rid): Add RID_REF_CONSTRUCTS_FROM_TEMPORARY and
1919         RID_REF_CONVERTS_FROM_TEMPORARY.
1921 2022-07-15  Jonathan Wakely  <jwakely@redhat.com>
1923         * c-format.cc (class range_label_for_format_type_mismatch):
1924         Adjust to new label_text API.
1926 2022-07-11  Lewis Hyatt  <lhyatt@gmail.com>
1928         PR preprocessor/106252
1929         * c-pragma.cc (handle_pragma_diagnostic_impl): Don't look up the
1930         option argument prior to verifying the option was found.
1932 2022-07-07  David Malcolm  <dmalcolm@redhat.com>
1934         * c-format.cc (range_label_for_format_type_mismatch::get_text):
1935         Update for removal of label_text::maybe_free in favor of automatic
1936         memory management.
1938 2022-07-06  Lewis Hyatt  <lhyatt@gmail.com>
1940         PR preprocessor/53920
1941         PR c++/53431
1942         * c-common.cc (c_option_is_from_cpp_diagnostics): New function.
1943         * c-common.h (c_option_is_from_cpp_diagnostics): Declare.
1944         (c_pp_stream_token): Declare.
1945         * c-ppoutput.cc (init_pp_output): Refactor logic about skipping
1946         pragmas to...
1947         (should_output_pragmas): ...here. New function.
1948         (token_streamer::stream): Support handling early pragmas.
1949         (do_line_change): Likewise.
1950         (c_pp_stream_token): New function.
1951         * c-pragma.cc (struct pragma_diagnostic_data): New helper class.
1952         (pragma_diagnostic_lex_normal): New function. Moved logic for
1953         interpreting GCC diagnostic pragmas here.
1954         (pragma_diagnostic_lex_pp): New function for parsing diagnostic pragmas
1955         directly from libcpp.
1956         (handle_pragma_diagnostic): Refactor into helper function...
1957         (handle_pragma_diagnostic_impl): ...here.  New function.
1958         (handle_pragma_diagnostic_early): New function.
1959         (handle_pragma_diagnostic_early_pp): New function.
1960         (struct pragma_ns_name): Renamed to...
1961         (struct pragma_pp_data): ...this.  Add new "early_handler" member.
1962         (c_register_pragma_1): Support early pragmas in the preprocessor.
1963         (c_register_pragma_with_early_handler): New function.
1964         (c_register_pragma): Support the new early handlers in struct
1965         internal_pragma_handler.
1966         (c_register_pragma_with_data): Likewise.
1967         (c_register_pragma_with_expansion): Likewise.
1968         (c_register_pragma_with_expansion_and_data): Likewise.
1969         (c_invoke_early_pragma_handler): New function.
1970         (c_pp_invoke_early_pragma_handler): New function.
1971         (init_pragma): Add early pragma support for diagnostic pragmas.
1972         * c-pragma.h (struct internal_pragma_handler): Add new early handler
1973         members.
1974         (c_register_pragma_with_early_handler): Declare.
1975         (c_invoke_early_pragma_handler): Declare.
1976         (c_pp_invoke_early_pragma_handler): Declare.
1978 2022-07-05  Marek Polacek  <polacek@redhat.com>
1980         PR c++/105626
1981         * c-format.cc (check_format_arg): Don't emit -Wformat warnings with
1982         u8 strings.
1984 2022-07-01  Marek Polacek  <polacek@redhat.com>
1986         PR c++/106111
1987         * c-common.h (enum rid): Update RID_LAST_CXX20.
1989 2022-06-30  Jonathan Wakely  <jwakely@redhat.com>
1991         * known-headers.cc (get_stdlib_header_for_name): Add <time.h>
1992         names.
1994 2022-06-24  Jason Merrill  <jason@redhat.com>
1996         PR c++/87729
1997         PR c++/20423
1998         * c.opt (Woverloaded-virtual): Add levels, include in -Wall.
2000 2022-06-18  Jakub Jelinek  <jakub@redhat.com>
2002         * c-ubsan.cc (ubsan_instrument_division, ubsan_instrument_shift):
2003         Use flag_sanitize_trap & SANITIZE_??? instead of
2004         flag_sanitize_undefined_trap_on_error.  If 2 sanitizers are involved
2005         and flag_sanitize_trap differs for them, emit __builtin_trap only
2006         for the comparison where trap is requested.
2007         (ubsan_instrument_vla, ubsan_instrument_return): Use
2008         lag_sanitize_trap & SANITIZE_??? instead of
2009         flag_sanitize_undefined_trap_on_error.
2011 2022-06-13  Jason Merrill  <jason@redhat.com>
2013         * c-ubsan.cc (ubsan_instrument_return): Use BUILTINS_LOCATION.
2015 2022-05-27  Marek Polacek  <polacek@redhat.com>
2017         PR c/90658
2018         * c-attribs.cc (get_priority): Check FUNCTION_DECL.
2020 2022-05-27  Jakub Jelinek  <jakub@redhat.com>
2022         * c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ENTER.
2024 2022-05-20  David Malcolm  <dmalcolm@redhat.com>
2026         * c-format.cc: Replace uses of "FINAL" and "OVERRIDE" with "final"
2027         and "override".
2028         * c-pretty-print.h: Likewise.
2030 2022-05-18  Marek Polacek  <polacek@redhat.com>
2032         PR c/105131
2033         * c.opt (Wenum-int-mismatch): New.
2035 2022-05-18  Marek Polacek  <polacek@redhat.com>
2037         PR c++/105497
2038         * c-warn.cc (c_do_switch_warnings): Don't warn about unhandled
2039         enumerator when it was marked with attribute unused.
2041 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2043         * c-ada-spec.cc (dump_ada_node) <COMPLEX_TYPE>: Deal with usual
2044         floating-point complex types.
2045         <POINTER_TYPE>: Do not use limited_with clause if the designated
2046         type is a scalar type.
2048 2022-05-17  Jakub Jelinek  <jakub@redhat.com>
2050         * c-omp.cc (c_finish_omp_depobj): Handle
2051         OMP_CLAUSE_DEPEND_INOUTSET.
2053 2022-05-16  Jason Merrill  <jason@redhat.com>
2055         PR c/105492
2056         * c-attribs.cc (handle_mode_attribute): Don't fix broken typedefs
2057         here.
2059 2022-05-16  Martin Liska  <mliska@suse.cz>
2061         * c-common.cc (ARRAY_SIZE): Use ARRAY_SIZE.
2062         (c_common_nodes_and_builtins): Likewise.
2063         * c-format.cc (check_tokens): Likewise.
2064         (check_plain): Likewise.
2065         * c-pragma.cc (c_pp_lookup_pragma): Likewise.
2066         (init_pragma): Likewise.
2067         * known-headers.cc (get_string_macro_hint): Likewise.
2068         (get_stdlib_header_for_name): Likewise.
2069         * c-attribs.cc: Likewise.
2071 2022-05-13  Richard Biener  <rguenther@suse.de>
2073         * c-omp.cc: Remove gimple-fold.h include.
2075 2022-05-12  Jakub Jelinek  <jakub@redhat.com>
2077         * c-common.h (enum rid): Add RID_OMP_ALL_MEMORY.
2078         * c-omp.cc (c_finish_omp_depobj): Don't build_fold_addr_expr
2079         if null_pointer_node.
2081 2022-05-11  Martin Liska  <mliska@suse.cz>
2083         PR target/105355
2084         * c-opts.cc (c_common_handle_option): Change option name.
2085         * c.opt: Remove Joined and use Separate option.
2087 2022-05-09  Alex Coplan  <alex.coplan@arm.com>
2089         * c-common.h (get_dump_info): Delete.
2090         * c-gimplify.cc (c_genericize): Get TDI_original dump file info
2091         from the global dump_manager instead of the (now obsolete)
2092         get_dump_info.
2093         * c-opts.cc (original_dump_file): Delete.
2094         (original_dump_flags): Delete.
2095         (c_common_parse_file): Switch to using global dump_manager to
2096         manage the original dump file; fix leak of dump file.
2097         (get_dump_info): Delete.
2099 2022-05-07  Marek Polacek  <polacek@redhat.com>
2101         PR c++/101833
2102         PR c++/47634
2103         * c-attribs.cc (positional_argument): Pass POS by reference.  Deal
2104         with FN being either a function declaration or function type.  Use
2105         maybe_adjust_arg_pos_for_attribute.
2106         * c-common.cc (check_function_arguments): Maybe pass FNDECL down to
2107         check_function_format.
2108         * c-common.h (maybe_adjust_arg_pos_for_attribute): Declare.
2109         (positional_argument): Adjust.
2110         * c-format.cc (get_constant): Rename to ...
2111         (validate_constant): ... this.  Take EXPR by reference.  Return bool
2112         instead of tree.
2113         (handle_format_arg_attribute): Don't overwrite FORMAT_NUM_EXPR by the
2114         return value of validate_constant.
2115         (decode_format_attr): Don't overwrite FORMAT_NUM_EXPR and
2116         FIRST_ARG_NUM_EXPR by the return value of validate_constant.
2117         (check_function_format): Adjust a parameter name.
2118         (handle_format_attribute): Maybe pass FNDECL down to decode_format_attr.
2120 2022-05-04  Marek Polacek  <polacek@redhat.com>
2122         * c-warn.cc (warnings_for_convert_and_check): Convert constants of type
2123         char to int.
2125 2022-04-30  Jason Merrill  <jason@redhat.com>
2127         PR c/100545
2128         * c-attribs.cc (handle_mode_attribute): Copy attributes, aligned,
2129         and typedef.
2130         * c-common.cc (set_underlying_type): Add assert.
2132 2022-04-26  Patrick Palka  <ppalka@redhat.com>
2134         PR c++/105304
2135         * c-common.cc (verify_tree) [restart]: Move up to before the
2136         NULL test.
2138 2022-04-11  Jakub Jelinek  <jakub@redhat.com>
2140         PR c++/105186
2141         * c-common.cc (c_common_nodes_and_builtins): After registering __int%d
2142         and __int%d__ builtin types, initialize corresponding ridpointers
2143         entry.
2145 2022-03-30  Marek Polacek  <polacek@redhat.com>
2147         PR c++/101030
2148         * c-warn.cc (conversion_warning) <case COND_EXPR>: Don't call
2149         conversion_warning when OP1 is null.
2151 2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>
2153         * c.opt (Wc++11-extensions, Wc++14-extensions, Wc++17-extensions)
2154         (Wc++20-extensions, Wc++23-extensions): Remove 'LangEnabledBy'
2155         option properties.
2157 2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>
2159         * c.opt (Wuse-after-free): Remove.
2161 2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>
2163         * c.opt (Warray-bounds): Remove.
2165 2022-03-26  Thomas Schwinge  <thomas@codesourcery.com>
2167         * c.opt: Properly quote comment.
2169 2022-03-25  Eric Botcazou  <ebotcazou@adacore.com>
2171         * c-ada-spec.cc (dump_ada_import): Deal with the "section" attribute
2172         (dump_ada_node) <POINTER_TYPE>: Do not modify and pass the name, but
2173         the referenced type instead.  Deal with the anonymous original type
2174         of a typedef'ed type.  In the actual access case, follow the chain
2175         of external subtypes.
2176         <TYPE_DECL>: Tidy up control flow.
2178 2022-03-21  Qian Jianhua  <qianjh@cn.fujitsu.com>
2180         * c-ada-spec.cc: Change array length
2182 2022-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>
2184         * c-common.cc (c_family_tests): Call the new tests.
2185         * c-common.h (c_diagnostic_tests): Declare.
2186         (c_opt_problem_cc_tests): Likewise.
2188 2022-03-19  Jakub Jelinek  <jakub@redhat.com>
2190         PR c++/101515
2191         * c-pretty-print.cc (c_fold_indirect_ref_for_warn): For C++ don't
2192         return COMPONENT_REFs with FIELD_DECLs whose containing scope can't
2193         be printed.
2195 2022-03-16  Christophe Lyon  <christophe.lyon@arm.com>
2196             Roger Sayle  <roger@nextmovesoftware.com>
2198         PR c/98198
2199         * c-attribs.cc (decl_or_type_attrs): Add error_mark_node check.
2201 2022-03-16  Patrick Palka  <ppalka@redhat.com>
2203         PR c++/96780
2204         * c.opt: Add -ffold-simple-inlines.
2206 2022-03-13  Tobias Burnus  <tobias@codesourcery.com>
2208         * c-target.def (check_string_object_format_arg): Fix description typo.
2210 2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>
2212         PR other/65095
2213         * c-common.h (c_omp_map_clause_name): Remove.
2214         * c-omp.cc (c_omp_map_clause_name): Remove.
2216 2022-03-09  Jakub Jelinek  <jakub@redhat.com>
2218         PR c/104711
2219         * c-opts.cc (c_common_post_options): Don't enable
2220         -Wshift-negative-value from -Wextra for C++20 or later.
2221         * c-ubsan.cc (ubsan_instrument_shift): Adjust comments.
2222         * c-warn.cc (maybe_warn_shift_overflow): Use TYPE_OVERFLOW_WRAPS
2223         instead of TYPE_UNSIGNED.
2225 2022-03-07  Jakub Jelinek  <jakub@redhat.com>
2227         * c-attribs.cc: Fix up duplicated word issue in a comment.
2229 2022-03-01  Martin Liska  <mliska@suse.cz>
2231         PR ipa/104533
2232         * c-attribs.cc (handle_target_clones_attribute): Use
2233         get_target_clone_attr_len and report warning soon.
2235 2022-02-17  Jonathan Wakely  <jwakely@redhat.com>
2237         * c-pragma.cc (handle_pragma_pack): Remove parameter name.
2238         (handle_pragma_weak): Likewise.
2239         (handle_pragma_scalar_storage_order): Likewise.
2240         (handle_pragma_redefine_extname): Likewise.
2241         (handle_pragma_visibility): Likewise.
2242         (handle_pragma_diagnostic): Likewise.
2243         (handle_pragma_target): Likewise.
2244         (handle_pragma_optimize): Likewise.
2245         (handle_pragma_push_options): Likewise.
2246         (handle_pragma_pop_options): Likewise.
2247         (handle_pragma_reset_options): Likewise.
2248         (handle_pragma_message): Likewise.
2249         (handle_pragma_float_const_decimal64): Likewise.
2251 2022-02-16  Jakub Jelinek  <jakub@redhat.com>
2253         PR c/104531
2254         * c-omp.cc (c_finish_omp_atomic): For MIN_EXPR/MAX_EXPR, try first
2255         build_binary_op with LT_EXPR and only if that doesn't return
2256         error_mark_node call build_modify_expr.
2258 2022-02-16  Jakub Jelinek  <jakub@redhat.com>
2260         PR c/104510
2261         * c-common.cc (shorten_compare): Convert original arguments to
2262         the original *restype_ptr when mixing binary and decimal float.
2264 2022-02-14  Richard Biener  <rguenther@suse.de>
2266         PR c/104505
2267         * c-pretty-print.cc (c_pretty_printer::postfix_expression): Handle
2268         internal function calls.
2270 2022-02-11  Richard Biener  <rguenther@suse.de>
2272         * c-attribs.cc (c_common_attribute_table): Add entry for
2273         vector_mask.
2274         (handle_vector_mask_attribute): New.
2276 2022-02-10  Marcel Vollweiler  <marcel@codesourcery.com>
2278         * c-omp.cc (c_omp_split_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
2279         * c-pragma.h (enum pragma_kind): Added 5.1 in comment.
2280         (enum pragma_omp_clause): Added PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR.
2282 2022-02-09  Jason Merrill  <jason@redhat.com>
2284         * c-cppbuiltin.cc (c_cpp_builtins): Update values
2285         of __cpp_constexpr and __cpp_concepts for C++20.
2287 2022-01-24  Marek Polacek  <polacek@redhat.com>
2289         PR preprocessor/104030
2290         * c.opt (Wbidi-chars): Mark as EnumSet.  Also accept =ucn.
2292 2022-01-21  Jakub Jelinek  <jakub@redhat.com>
2294         PR c++/104148
2295         * c-common.h (check_function_arguments_recurse): Add for_format
2296         arg.
2297         * c-common.cc (check_function_nonnull): Pass false to
2298         check_function_arguments_recurse's last argument.
2299         (check_function_arguments_recurse): Add for_format argument,
2300         if true, don't stop on warning_suppressed_p.
2301         * c-format.cc (check_format_info): Pass true to
2302         check_function_arguments_recurse's last argument.
2304 2022-01-19  David Malcolm  <dmalcolm@redhat.com>
2306         * c-common.cc (c_common_c_tests): Rename to...
2307         (c_common_cc_tests): ...this.
2308         (c_family_tests): Update calls for .c to .cc renaming.
2309         * c-common.h (c_format_c_tests): Rename to...
2310         (c_format_cc_tests): ...this.
2311         (c_indentation_c_tests): Rename to...
2312         (c_indentation_cc_tests): ...this.
2313         (c_pretty_print_c_tests): Rename to...
2314         (c_pretty_print_cc_tests): ...this.
2315         * c-format.cc (c_format_c_tests): Rename to...
2316         (c_format_cc_tests): ...this.
2317         * c-indentation.cc (c_indentation_c_tests): Rename to...
2318         (c_indentation_cc_tests): ...this.
2319         * c-pretty-print.cc (c_pretty_print_c_tests): Rename to...
2320         (c_pretty_print_cc_tests): ...this.
2322 2022-01-17  Martin Liska  <mliska@suse.cz>
2324         * c-ada-spec.cc: Rename .c names to .cc.
2325         * c-ada-spec.h: Likewise.
2326         * c-common.cc (c_build_vec_convert): Likewise.
2327         (warning_candidate_p): Likewise.
2328         * c-common.h (enum rid): Likewise.
2329         (build_real_imag_expr): Likewise.
2330         (finish_label_address_expr): Likewise.
2331         (c_get_substring_location): Likewise.
2332         (c_build_bind_expr): Likewise.
2333         (conflict_marker_get_final_tok_kind): Likewise.
2334         (c_parse_error): Likewise.
2335         (check_missing_format_attribute): Likewise.
2336         (invalid_array_size_error): Likewise.
2337         (warn_for_multistatement_macros): Likewise.
2338         (build_attr_access_from_parms): Likewise.
2339         * c-cppbuiltin.cc (c_cpp_builtins): Likewise.
2340         * c-format.cc: Likewise.
2341         * c-gimplify.cc (c_gimplify_expr): Likewise.
2342         * c-indentation.h: Likewise.
2343         * c-objc.h (objc_prop_attr_kind_for_rid): Likewise.
2344         * c-omp.cc (c_omp_predetermined_mapping): Likewise.
2345         * c-opts.cc (c_common_post_options): Likewise.
2346         (set_std_cxx23): Likewise.
2347         * c-pragma.cc (handle_pragma_redefine_extname): Likewise.
2348         * c-pretty-print.h: Likewise.
2350 2022-01-17  Martin Liska  <mliska@suse.cz>
2352         * c-ada-spec.c: Moved to...
2353         * c-ada-spec.cc: ...here.
2354         * c-attribs.c: Moved to...
2355         * c-attribs.cc: ...here.
2356         * c-common.c: Moved to...
2357         * c-common.cc: ...here.
2358         * c-cppbuiltin.c: Moved to...
2359         * c-cppbuiltin.cc: ...here.
2360         * c-dump.c: Moved to...
2361         * c-dump.cc: ...here.
2362         * c-format.c: Moved to...
2363         * c-format.cc: ...here.
2364         * c-gimplify.c: Moved to...
2365         * c-gimplify.cc: ...here.
2366         * c-indentation.c: Moved to...
2367         * c-indentation.cc: ...here.
2368         * c-lex.c: Moved to...
2369         * c-lex.cc: ...here.
2370         * c-omp.c: Moved to...
2371         * c-omp.cc: ...here.
2372         * c-opts.c: Moved to...
2373         * c-opts.cc: ...here.
2374         * c-pch.c: Moved to...
2375         * c-pch.cc: ...here.
2376         * c-ppoutput.c: Moved to...
2377         * c-ppoutput.cc: ...here.
2378         * c-pragma.c: Moved to...
2379         * c-pragma.cc: ...here.
2380         * c-pretty-print.c: Moved to...
2381         * c-pretty-print.cc: ...here.
2382         * c-semantics.c: Moved to...
2383         * c-semantics.cc: ...here.
2384         * c-ubsan.c: Moved to...
2385         * c-ubsan.cc: ...here.
2386         * c-warn.c: Moved to...
2387         * c-warn.cc: ...here.
2388         * cppspec.c: Moved to...
2389         * cppspec.cc: ...here.
2390         * stub-objc.c: Moved to...
2391         * stub-objc.cc: ...here.
2393 2022-01-15  Martin Sebor  <msebor@redhat.com>
2395         PR c/63272
2396         * c.opt (-Wdangling-pointer): New option.
2398 2022-01-15  Martin Sebor  <msebor@redhat.com>
2400         PR tree-optimization/80532
2401         * c.opt (-Wuse-after-free): New options.
2403 2022-01-14  David Malcolm  <dmalcolm@redhat.com>
2405         * c-attribs.c (c_common_attribute_table): Add "tainted_args".
2406         (handle_tainted_args_attribute): New.
2408 2022-01-13  Anthony Sharp  <anthonysharp15@gmail.com>
2409             Jason Merrill  <jason@redhat.com>
2411         PR c++/70417
2412         * c.opt: Added -Wmissing-template-keyword.
2414 2022-01-13  Richard Biener  <rguenther@suse.de>
2416         PR c/104002
2417         * c-common.c (c_common_mark_addressable_vec): Handle TARGET_EXPR.
2419 2022-01-12  Martin Liska  <mliska@suse.cz>
2421         PR target/103804
2422         * c-attribs.c (handle_optimize_attribute): Do not call
2423         cl_optimization_compare if we seen an error.
2425 2022-01-11  Jakub Jelinek  <jakub@redhat.com>
2427         PR c/101537
2428         PR c/103881
2429         * c-warn.c (conversion_warning): Handle BIT_AND_EXPR, BIT_IOR_EXPR
2430         and BIT_XOR_EXPR.
2432 2022-01-10  Richard Biener  <rguenther@suse.de>
2434         PR middle-end/101530
2435         * c-common.c (c_build_shufflevector): Wrap the BIT_FIELD_REF
2436         in a TARGET_EXPR to force a temporary.
2438 2022-01-06  Marek Polacek  <polacek@redhat.com>
2440         PR c++/103758
2441         * c-pragma.c (handle_pragma_scalar_storage_order): Use %< %> in
2442         diagnostic messages.
2443         (handle_pragma_diagnostic): Likewise.
2445 2022-01-03  Marek Polacek  <polacek@redhat.com>
2447         PR c++/103758
2448         * c-format.c (check_tokens): Accept "decl-specifier*".
2450 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
2452         PR c++/103600
2453         * c-attribs.c (handle_non_overlapping_attribute): New function.
2454         (c_common_attribute_table): Add "non overlapping" attribute.
2456 2021-12-30  Jakub Jelinek  <jakub@redhat.com>
2458         PR c++/103012
2459         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Perform
2460         cpp_define_unused/cpp_undef calls with forced token locations
2461         BUILTINS_LOCATION.
2463 2021-12-27  Patrick Palka  <ppalka@redhat.com>
2465         PR c++/103700
2466         * c-common.c (pointer_int_sum): When quiet, return
2467         error_mark_node for an incomplete pointed-to type and don't
2468         call size_in_bytes_loc.
2470 2021-12-17  Jason Merrill  <jason@redhat.com>
2472         PR c++/103681
2473         * c-opts.c (c_common_post_options): Update defaults.
2475 2021-12-16  Martin Liska  <mliska@suse.cz>
2477         PR target/103709
2478         * c-pragma.c (handle_pragma_pop_options): Do not check
2479         global options modification when an error is seen in parsing
2480         of options (pragmas or attributes).
2482 2021-12-12  Jonathan Wakely  <jwakely@redhat.com>
2484         * known-headers.cc: Define INCLUDE_MEMORY instead of
2485         INCLUDE_UNIQUE_PTR.
2486         * name-hint.h: Likewise.
2487         (class name_hint): Use std::unique_ptr instead of gnu::unique_ptr.
2489 2021-12-09  Jakub Jelinek  <jakub@redhat.com>
2491         PR pch/71934
2492         * c-pch.c (c_common_no_more_pch): Pass a temporary void * var
2493         with NULL value instead of NULL to host_hooks.gt_pch_use_address.
2495 2021-12-03  Jakub Jelinek  <jakub@redhat.com>
2497         PR pch/71934
2498         * c-pch.c (struct c_pch_validity): Remove pch_init member.
2499         (pch_init): Don't initialize v.pch_init.
2500         (c_common_valid_pch): Don't warn and punt if .text addresses change.
2502 2021-12-01  Jason Merrill  <jason@redhat.com>
2504         PR c++/103310
2505         * c.opt: Add -fconstexpr-fp-except.
2507 2021-11-29  Richard Biener  <rguenther@suse.de>
2509         * c-format.c (check_format_string): Remove spurious
2510         gcc_unreachable.
2512 2021-11-29  Richard Biener  <rguenther@suse.de>
2514         * c-opts.c (c_common_post_options): Remove unreachable return.
2515         * c-pragma.c (handle_pragma_target): Likewise.
2516         (handle_pragma_optimize): Likewise.
2518 2021-11-25  Jakub Jelinek  <jakub@redhat.com>
2520         PR c++/102611
2521         * c-opts.c (c_common_post_options): Enable -Wcomma-subscript by
2522         default for C++23 regardless of warn_deprecated.
2523         * c-cppbuiltin.c (c_cpp_builtins): Predefine
2524         __cpp_multidimensional_subscript=202110L for C++23.
2526 2021-11-23  Martin Sebor  <msebor@redhat.com>
2528         PR middle-end/88232
2529         * c.opt: Add -Winfinite-recursion.
2531 2021-11-19  Martin Sebor  <msebor@redhat.com>
2533         PR c++/33925
2534         PR c/102867
2535         * c-common.c (decl_with_nonnull_addr_p): Call maybe_nonzero_address
2536         and improve handling tof defined symbols.
2538 2021-11-19  Martin Liska  <mliska@suse.cz>
2540         Revert:
2541         2021-11-18  Martin Liska  <mliska@suse.cz>
2543         * c-gimplify.c (genericize_c_loop): Use option directly.
2545 2021-11-18  Matthias Kretz  <m.kretz@gsi.de>
2547         * c-common.c (c_common_reswords): Add __builtin_assoc_barrier.
2548         * c-common.h (enum rid): Add RID_BUILTIN_ASSOC_BARRIER.
2550 2021-11-18  Martin Liska  <mliska@suse.cz>
2552         * c-gimplify.c (genericize_c_loop): Use option directly.
2554 2021-11-17  Martin Uecker  <uecker@gcc.gnu.org>
2556         PR c/91038
2557         PR c/29970
2558         * c-common.c (pointer_int_sum): Make sure pointer expressions
2559         are evaluated first when the size expression depends on for
2560         variably-modified types.
2562 2021-11-17  Marek Polacek  <polacek@redhat.com>
2564         PR preprocessor/103026
2565         * c.opt (Wbidi-chars, Wbidi-chars=): New option.
2567 2021-11-16  Jason Merrill  <jason@redhat.com>
2569         * c-common.c (release_tree_vector): Only cache vecs smaller than
2570         16 elements.
2572 2021-11-15  Jason Merrill  <jason@redhat.com>
2574         * c.opt: Add -fimplicit-constexpr.
2575         * c-cppbuiltin.c: Define __cpp_implicit_constexpr.
2576         * c-opts.c (c_common_post_options): Disable below C++14.
2578 2021-11-15  Jakub Jelinek  <jakub@redhat.com>
2580         * c-omp.c (c_omp_split_clauses) <case OMP_CLAUSE_THREAD_LIMIT>:
2581         Duplicate to both OMP_TARGET and OMP_TEAMS.
2583 2021-11-10  Marek Polacek  <polacek@redhat.com>
2585         PR c++/101940
2586         * c-pragma.c (handle_pragma_diagnostic): Handle #pragma GCC diagnostic
2587         ignored_attributes.
2589 2021-11-09  David Malcolm  <dmalcolm@redhat.com>
2591         * c-pragma.c (GCC_BAD_AT): New macro.
2592         (GCC_BAD2_AT): New macro.
2593         (handle_pragma_pack): Use the location of the pertinent token when
2594         issuing diagnostics about invalid constants/actions, and trailing
2595         junk.
2596         (handle_pragma_target): Likewise for non-string "GCC option".
2597         (handle_pragma_message): Likewise for trailing junk.
2599 2021-11-03  Joseph Myers  <joseph@codesourcery.com>
2601         PR c/103031
2602         * c-common.c (convert_and_check): Add argument init_const.  Call
2603         convert_init if init_const.
2604         * c-common.h (convert_and_check): Update prototype.
2605         (convert_init): New prototype.
2607 2021-11-01  David Malcolm  <dmalcolm@redhat.com>
2609         * c-lex.c (c_lex_with_flags): When complaining about non-printable
2610         CPP_OTHER tokens, set the "escape on output" flag.
2612 2021-10-27  Jakub Jelinek  <jakub@redhat.com>
2614         * c-omp.c (c_omp_check_loop_iv_r): Don't clear 3rd bit for
2615         POINTER_PLUS_EXPR.
2616         (c_omp_check_nonrect_loop_iv): Handle POINTER_PLUS_EXPR.
2617         (c_omp_check_loop_iv): Set kind even if the iterator is non-integral.
2619 2021-10-27  Jakub Jelinek  <jakub@redhat.com>
2621         PR c++/102854
2622         * c-common.h (c_omp_check_loop_iv_exprs): Add enum tree_code argument.
2623         * c-omp.c (c_omp_check_loop_iv_r): For trees other than decls,
2624         TREE_VEC, PLUS_EXPR, MINUS_EXPR, MULT_EXPR, POINTER_PLUS_EXPR or
2625         conversions temporarily clear the 3rd bit from d->kind while walking
2626         subtrees.
2627         (c_omp_check_loop_iv_exprs): Add CODE argument.  Or in 4 into data.kind
2628         if possibly non-rectangular.
2630 2021-10-21  Jakub Jelinek  <jakub@redhat.com>
2632         PR middle-end/64888
2633         * c-omp.c (c_omp_predefined_variable): Return true also for
2634         ubsan_create_data created artificial variables.
2636 2021-10-14  Joseph Myers  <joseph@codesourcery.com>
2638         * c-format.c (printf_length_specs, scanf_length_specs)
2639         (print_char_table, scan_char_table): Support DFP formats for C2X.
2640         * c-format.h (TEX_D32, TEX_D64, TEX_D128): Remove.
2641         (T2X_D32, T2X_D64, T2X_D128): New macros.
2643 2021-10-14  Kwok Cheung Yeung  <kcy@codesourcery.com>
2645         * c-omp.c (c_omp_check_context_selector): Rename to
2646         omp_check_context_selector and move to omp-general.c.
2647         (c_omp_mark_declare_variant): Rename to omp_mark_declare_variant and
2648         move to omp-general.c.
2650 2021-10-12  Joseph Myers  <joseph@codesourcery.com>
2652         * c-format.c (print_char_table): Add %b and %B formats.
2653         (scan_char_table): Add %b format.
2654         * c-format.h (T2X_UI, T2X_UL, T2X_ULL, T2X_US, T2X_UC, T2X_ST)
2655         (T2X_UPD, T2X_UIM): New macros.
2657 2021-10-12  Jakub Jelinek  <jakub@redhat.com>
2659         * c-omp.c (c_finish_omp_atomic): Use
2660         clear_padding_type_may_have_padding_p.
2662 2021-10-08  Martin Liska  <mliska@suse.cz>
2664         * c-opts.c (c_common_post_options): Use new macro
2665         OPTION_SET_P.
2667 2021-10-07  Martin Liska  <mliska@suse.cz>
2669         * c-common.c (parse_optimize_options): Make
2670         save_opt_decoded_options a pointer type.
2672 2021-10-06  Jakub Jelinek  <jakub@redhat.com>
2674         PR tree-optimization/102571
2675         * c-omp.c (c_finish_omp_atomic): Optimize the case where type has
2676         padding, but the non-padding bits are contiguous set of bytes
2677         by adjusting the memcmp call arguments instead of emitting
2678         __builtin_clear_padding and then comparing all the type's bytes.
2680 2021-10-06  Jakub Jelinek  <jakub@redhat.com>
2682         PR c++/102612
2683         * c-cppbuiltin.c (c_cpp_builtins): For -std=c++23 predefine
2684         __cpp_constexpr to 202110L rather than 201907L.
2686 2021-10-04  Marek Polacek  <polacek@redhat.com>
2688         PR c++/97573
2689         * c-common.h (do_warn_array_compare): Declare.
2690         * c-warn.c (do_warn_array_compare): New.
2691         * c.opt (Warray-compare): New option.
2693 2021-10-02  Iain Sandoe  <iain@sandoe.co.uk>
2695         * c-format.c: Remove a test of TARGET_FORMAT_TYPES with
2696         NULL, this is not needed.
2698 2021-10-01  Martin Sebor  <msebor@redhat.com>
2700         PR c/102103
2701         * c-common.c (decl_with_nonnull_addr_p): Handle members.
2702         Check and perform warning suppression.
2703         (c_common_truthvalue_conversion): Enhance warning suppression.
2705 2021-10-01  Martin Liska  <mliska@suse.cz>
2707         PR target/102552
2708         * c-common.c (parse_optimize_options): decoded_options[0] is
2709         used for program name, so merged_decoded_options should also
2710         respect that.
2712 2021-10-01  Jakub Jelinek  <jakub@redhat.com>
2713             Richard Biener  <rguenther@suse.de>
2715         PR sanitizer/102515
2716         * c-ubsan.c (ubsan_instrument_division): Check the right
2717         flag_sanitize_recover bit, depending on which sanitization
2718         is done.  Sanitize INT_MIN / -1 under SANITIZE_SI_OVERFLOW
2719         rather than SANITIZE_DIVIDE.  If both SANITIZE_SI_OVERFLOW
2720         and SANITIZE_DIVIDE is enabled, neither check is known
2721         to be false and flag_sanitize_recover bits for those two
2722         aren't the same, emit both __ubsan_handle_divrem_overflow
2723         and __ubsan_handle_divrem_overflow_abort calls.
2725 2021-10-01  Martin Liska  <mliska@suse.cz>
2727         * c-common.c (parse_optimize_options): Combine optimize
2728         options with what was provided on the command line.
2730 2021-10-01  Jakub Jelinek  <jakub@redhat.com>
2732         * c-omp.c (c_omp_split_clauses): Also copy
2733         OMP_CLAUSE_ORDER_REPRODUCIBLE.
2735 2021-09-27  Martin Liska  <mliska@suse.cz>
2737         * c-opts.c (c_common_init_options_struct): Set also
2738         x_flag_default_complex_method.
2740 2021-09-22  Jakub Jelinek  <jakub@redhat.com>
2742         * c-omp.c (c_omp_split_clauses): Copy over OMP_CLAUSE_ALLOCATE_ALIGN.
2744 2021-09-20  Matthias Kretz  <m.kretz@gsi.de>
2746         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define or
2747         undefine __RECIPROCAL_MATH__, __NO_SIGNED_ZEROS__,
2748         __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, and
2749         __ROUNDING_MATH__ according to the new optimization flags.
2751 2021-09-18  Jakub Jelinek  <jakub@redhat.com>
2753         * c-omp.c (c_omp_split_clauses): Split order clause also to
2754         distribute construct.  Copy over OMP_CLAUSE_ORDER_UNCONSTRAINED.
2756 2021-09-17  Jakub Jelinek  <jakub@redhat.com>
2758         * c-omp.c (c_finish_omp_atomic): Avoid creating
2759         TARGET_EXPR if test is true, use create_tmp_var_raw instead of
2760         create_tmp_var and add a zero initializer to TARGET_EXPRs that
2761         had NULL initializer.  When omitting operands after v = x,
2762         use type of v rather than type of x.  Fix type of vtmp
2763         TARGET_EXPR.
2765 2021-09-13  Jason Merrill  <jason@redhat.com>
2767         * c.opt: Add -Winterference-size.
2768         * c-cppbuiltin.c (cpp_atomic_builtins): Add __GCC_DESTRUCTIVE_SIZE
2769         and __GCC_CONSTRUCTIVE_SIZE.
2771 2021-09-10  Jakub Jelinek  <jakub@redhat.com>
2773         * c-common.h (c_finish_omp_atomic): Add r and weak arguments.
2774         * c-omp.c: Include gimple-fold.h.
2775         (c_finish_omp_atomic): Add r and weak arguments.  Add support for
2776         OpenMP 5.1 atomics.
2778 2021-09-09  qing zhao  <qing.zhao@oracle.com>
2780         * c-attribs.c (handle_uninitialized_attribute): New function.
2781         (c_common_attribute_table): Add "uninitialized" attribute.
2783 2021-09-08  liuhongt  <hongtao.liu@intel.com>
2785         * c-common.c (excess_precision_mode_join): Update below comments.
2786         (c_ts18661_flt_eval_method): Set excess_precision_type to
2787         EXCESS_PRECISION_TYPE_FLOAT16 when -fexcess-precision=16.
2788         * c-cppbuiltin.c (cpp_atomic_builtins): Update below comments.
2789         (c_cpp_flt_eval_method_iec_559): Set excess_precision_type to
2790         EXCESS_PRECISION_TYPE_FLOAT16 when -fexcess-precision=16.
2792 2021-09-07  Marcel Vollweiler  <marcel@codesourcery.com>
2794         * c-omp.c (c_finish_omp_flush): Handle MEMMODEL_SEQ_CST.
2796 2021-09-03  Eric Botcazou  <ebotcazou@adacore.com>
2798         * c-ada-spec.c (dump_ads): Generate pragmas to disable style checks
2799         and -gnatwu warning for the package specification.
2801 2021-09-01  Iain Sandoe  <iain@sandoe.co.uk>
2803         * c-attribs.c (handle_unavailable_attribute): New.
2805 2021-08-30  Jason Merrill  <jason@redhat.com>
2807         * c.opt: Add -Wmissing-requires.
2809 2021-08-25  Lewis Hyatt  <lhyatt@gmail.com>
2811         PR other/93067
2812         * c-opts.c (c_common_input_charset_cb): New function.
2813         (c_common_post_options): Call new function
2814         diagnostic_initialize_input_context().
2816 2021-08-20  Tobias Burnus  <tobias@codesourcery.com>
2818         * c-format.c (gcc_gfc_length_specs): Add 'll' and 'w'.
2819         (gcc_gfc_char_table): Add T9L_LL and T9L_ULL to
2820         "di" and "u", respecitively; fill with BADLEN to match
2821         size of 'types'.
2822         (get_init_dynamic_hwi): Split off from ...
2823         (init_dynamic_diag_info): ... here. Call it.
2824         (init_dynamic_gfc_info): Call it.
2826 2021-08-20  Jakub Jelinek  <jakub@redhat.com>
2828         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_ERROR.
2829         * c-pragma.c (omp_pragmas): Add error directive.
2830         * c-omp.c (omp_directives): Uncomment error directive entry.
2832 2021-08-18  Jakub Jelinek  <jakub@redhat.com>
2834         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_NOTHING.
2835         * c-pragma.c (omp_pragmas): Add nothing directive.
2836         * c-omp.c (omp_directives): Uncomment nothing directive entry.
2838 2021-08-17  Jakub Jelinek  <jakub@redhat.com>
2840         PR c++/101539
2841         * c-common.h (enum rid): Add RID_IS_LAYOUT_COMPATIBLE.
2842         * c-common.c (c_common_reswords): Add __is_layout_compatible.
2844 2021-08-17  Matt Jacobson  <mhjacobson@me.com>
2846         * c-opts.c (c_common_post_options): Default to
2847         flag_objc_sjlj_exceptions = 1 only when flag_objc_abi < 2.
2849 2021-08-17  Jakub Jelinek  <jakub@redhat.com>
2851         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_SCOPE.
2852         * c-pragma.c (omp_pragmas): Add scope construct.
2853         * c-omp.c (omp_directives): Uncomment scope directive entry.
2855 2021-08-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2857         * c-cppbuiltin.c (c_cpp_builtins): Define
2858         __LIBGCC_GCOV_TYPE_SIZE if flag_building_libgcc is true.
2860 2021-08-12  Jakub Jelinek  <jakub@redhat.com>
2862         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_MASKED.
2863         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FILTER.
2864         * c-pragma.c (omp_pragmas_simd): Add masked construct.
2865         * c-common.h (enum c_omp_clause_split): Add C_OMP_CLAUSE_SPLIT_MASKED
2866         enumerator.
2867         (c_finish_omp_masked): Declare.
2868         * c-omp.c (c_finish_omp_masked): New function.
2869         (c_omp_split_clauses): Handle combined masked constructs.
2871 2021-07-30  Jakub Jelinek  <jakub@redhat.com>
2873         PR c++/101539
2874         * c-common.h (enum rid): Add RID_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
2875         * c-common.c (c_common_reswords): Add
2876         __is_pointer_interconvertible_base_of.
2878 2021-07-29  Richard Biener  <rguenther@suse.de>
2880         PR c/101512
2881         * c-common.c (c_common_mark_addressable_vec): Look through
2882         C_MAYBE_CONST_EXPR even if not at the toplevel.
2884 2021-07-27  Martin Sebor  <msebor@redhat.com>
2886         PR c/101585
2887         * c-warn.c (warn_parm_ptrarray_mismatch): Use OEP_DECL_NAME.
2889 2021-07-23  Jakub Jelinek  <jakub@redhat.com>
2891         * c-lex.c (c_common_has_attribute): Call canonicalize_attr_name also
2892         on attr_id.  Return 1 for omp::directive or omp::sequence in C++11
2893         and later.
2895 2021-07-23  Jakub Jelinek  <jakub@redhat.com>
2897         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP__START_ and
2898         PRAGMA_OMP__LAST_ enumerators.
2900 2021-07-21  Thomas Schwinge  <thomas@codesourcery.com>
2901             Joseph Myers  <joseph@codesourcery.com>
2902             Cesar Philippidis  <cesar@codesourcery.com>
2904         * c-pragma.h (pragma_omp_clause): Add 'PRAGMA_OACC_CLAUSE_NOHOST'.
2906 2021-07-20  Martin Sebor  <msebor@redhat.com>
2908         * c-common.c (c_build_shufflevector): Adjust by-value argument to
2909         by-const-reference.
2910         * c-common.h (c_build_shufflevector): Same.
2912 2021-07-16  Andrew Pinski  <apinski@marvell.com>
2914         PR c/101453
2915         * c-common.c (parse_optimize_options): Use the correct
2916         size for buffer.
2918 2021-07-15  Martin Sebor  <msebor@redhat.com>
2920         PR c/101289
2921         PR c/97548
2922         * c-warn.c (warn_parm_array_mismatch): Use OEP_DECL_NAME.
2924 2021-07-14  Jason Merrill  <jason@redhat.com>
2926         * c-opts.c (c_common_post_options): Set -fdelete-dead-exceptions.
2928 2021-07-06  Martin Sebor  <msebor@redhat.com>
2930         * c-format.c (gcc_tdiag_char_table): Remove support for %G and %K.
2931         (gcc_cdiag_char_table): Same.
2932         (gcc_cxxdiag_char_table): Same.
2934 2021-07-02  Jakub Jelinek  <jakub@redhat.com>
2936         * c-common.h (enum c_omp_directive_kind): New enum.
2937         (struct c_omp_directive): New type.
2938         (c_omp_categorize_directive): Declare.
2939         * c-omp.c (omp_directives): New variable.
2940         (c_omp_categorize_directive): New function.
2942 2021-07-01  Eric Botcazou  <ebotcazou@adacore.com>
2944         * c-ada-spec.c (packed_layout): New global variable.
2945         (dump_ada_declaration): Set it upon seeing a packed record type.
2946         Do not put the "aliased" keyword if it is set.
2947         (dump_ada_structure): Add Pack aspect if it is set and clear it.
2949 2021-07-01  Eric Botcazou  <ebotcazou@adacore.com>
2951         * c-ada-spec.c (check_name): Rename into...
2952         (check_type_name_conflict): ...this.  Minor tweak.
2953         (dump_ada_function_declaration): Adjust to above renaming.
2954         (dump_ada_array_domains): Fix oversight.
2955         (dump_ada_declaration): Call check_type_name_conflict for variables.
2957 2021-06-25  Martin Sebor  <msebor@redhat.com>
2959         * c-common.c (c_wrap_maybe_const): Remove TREE_NO_WARNING.
2960         (c_common_truthvalue_conversion): Replace direct uses of
2961         TREE_NO_WARNING with warning_suppressed_p, suppress_warning, and
2962         copy_no_warning.
2963         (check_function_arguments_recurse): Same.
2964         * c-gimplify.c (c_gimplify_expr): Same.
2965         * c-warn.c (overflow_warning): Same.
2966         (warn_logical_operator): Same.
2967         (warn_if_unused_value): Same.
2968         (do_warn_unused_parameter): Same.
2970 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
2972         * c-common.h (enum c_omp_region_type): Add C_ORT_TARGET and
2973         C_ORT_OMP_TARGET.
2974         * c-omp.c (c_omp_split_clauses): For OMP_CLAUSE_IN_REDUCTION on
2975         combined target constructs also add map (always, tofrom:) clause.
2977 2021-06-15  Robin Dapp  <rdapp@linux.ibm.com>
2979         * c-attribs.c (common_handle_aligned_attribute): Remove short
2980         circuit and dead code.
2982 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2984         PR c++/101052
2985         * known-headers.cc (get_stdlib_header_for_name): Add known
2986         headers for EXIT_FAILURE, EXIT_SUCCESS, abort, atexit, calloc,
2987         exit, and getenv.
2989 2021-06-12  Jason Merrill  <jason@redhat.com>
2991         * c-attribs.c (handle_unused_attribute): Handle FIELD_DECL.
2993 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
2995         PR c++/100974
2996         * c-cppbuiltin.c (c_cpp_builtins): Predefine __cpp_if_consteval for
2997         -std=c++2b for P1938R3 consteval if support.
2999 2021-06-09  Jason Merrill  <jason@redhat.com>
3001         PR c++/100879
3002         * c-warn.c (warn_for_sign_compare): Remove C++ enum mismatch
3003         warning.
3005 2021-06-07  Martin Liska  <mliska@suse.cz>
3007         * c-target.def: Split long lines and replace them
3008         with '\n\'.
3010 2021-06-04  Martin Sebor  <msebor@redhat.com>
3012         PR c/100783
3013         * c-attribs.c (positional_argument): Bail on erroneous types.
3015 2021-06-04  Martin Sebor  <msebor@redhat.com>
3017         * c-warn.c (warn_parm_array_mismatch): Check TREE_PURPOSE to test
3018         for element presence.
3020 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
3022         * c-ada-spec.c (dump_ada_macros): Minor tweaks.
3023         (dump_ada_decl_name): Likewise.
3024         (dump_anonymous_type_name): Remove parent parameter and adjust.
3025         (dump_sloc): Minor tweak.
3026         (dump_ada_array_type): Remove type parameter and adjust.
3027         (dump_ada_enum_type): Remove parent parameter and adjust.
3028         (dump_ada_node): Adjust calls to above functions.
3029         (dumped_anonymous_types): New global variable.
3030         (dump_nested_types_1): Rename into...
3031         (dump_nested_types): ...this.
3032         (dump_nested_type): Remove parent and dumped_types parameters.
3033         <ARRAY_TYPE>: Replace dumped_types with dumped_anonymous_types.
3034         Adjust calls to dump_anonymous_type_name and dump_ada_array_type.
3035         (dump_ada_specs): Initialize and free dumped_anonymous_types.
3037 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
3039         * c-ada-spec.c (pp_ada_tree_identifier): Tidy up.
3040         (dump_ada_node) <POINTER_TYPE>: Deal specially with external subtypes.
3042 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
3044         * c-ada-spec.c (dump_ada_enum_type): Dump a prefix for constants.
3045         (htable_t): New typedef.
3046         (overloaded_names): Use it.
3047         (add_name): New function.
3048         (init_overloaded_names): Use add_name to populate the table and add
3049         special cases for sigaction and stat.
3050         (overloaded_name_p): Rename into...
3051         (overloading_index): ...this.  Do not initialize overloaded_names table
3052         here.  Return the index or zero.
3053         (dump_ada_declaration): Minor tweaks.  Do not skip overloaded functions
3054         but add an overloading suffix instead.
3055         (dump_ada_specs): Initialize overloaded_names tables here.
3057 2021-06-01  Martin Liska  <mliska@suse.cz>
3059         PR other/100759
3060         * c-attribs.c (handle_optimize_attribute): Limit sanity check
3061         to a situation where we are not in processing of an optimize
3062         pragma.
3063         * c-pragma.c (handle_pragma_pop_options): Restore target
3064         options.
3066 2021-05-31  Indu Bhagat  <indu.bhagat@oracle.com>
3068         PR testsuite/100749
3069         * c-pch.c (c_common_valid_pch): Use xstrdup for debug format set names.
3071 2021-05-31  Richard Biener  <rguenther@suse.de>
3073         PR c++/88601
3074         * c-common.c: Include tree-vector-builder.h and
3075         vec-perm-indices.h.
3076         (c_common_reswords): Add __builtin_shufflevector.
3077         (c_build_shufflevector): New funtion.
3078         * c-common.h (enum rid): Add RID_BUILTIN_SHUFFLEVECTOR.
3079         (c_build_shufflevector): Declare.
3081 2021-05-28  Jakub Jelinek  <jakub@redhat.com>
3083         PR middle-end/99928
3084         * c-omp.c (c_omp_split_clauses): For reduction clause if combined with
3085         target add a map tofrom clause with OMP_CLAUSE_MAP_IMPLICIT.
3087 2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
3089         * c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_AFFINITY.
3091 2021-05-25  Martin Liska  <mliska@suse.cz>
3093         PR tree-optimization/92860
3094         PR target/99592
3095         * c-attribs.c (handle_optimize_attribute): Save target node
3096         before calling parse_optimize_options and save it in case
3097         it changes.
3098         * c-pragma.c (handle_pragma_target): Similarly for pragma.
3099         (handle_pragma_pop_options): Likewise here.
3101 2021-05-25  Martin Liska  <mliska@suse.cz>
3103         * c-attribs.c (handle_no_sanitize_coverage_attribute): New.
3105 2021-05-25  Jakub Jelinek  <jakub@redhat.com>
3107         PR middle-end/99928
3108         * c-omp.c (c_omp_split_clauses): Copy reduction to teams when teams is
3109         combined with simd and not with taskloop or for.
3111 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
3113         PR middle-end/99928
3114         * c-omp.c (c_omp_split_clauses): Set OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT
3115         on firstprivate clause copy going to target construct, and for
3116         target simd set also OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET bit.
3118 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
3120         * c.opt (Wc++11-extensions, Wc++14-extensions)
3121         (Wc++17-extensions, Wc++20-extensions, Wc++23-extensions): New
3122         options.
3124 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
3126         * c-lex.c (init_c_lex): Use dwarf_debuginfo_p.
3128 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
3130         * c-opts.c (c_common_post_options): Adjust access to debug_type_names.
3131         * c-pch.c (struct c_pch_validity): Use type uint32_t.
3132         (pch_init): Renamed member.
3133         (c_common_valid_pch): Adjust access to debug_type_names.
3135 2021-05-19  Martin Sebor  <msebor@redhat.com>
3137         PR c/100619
3138         * c-attribs.c (build_attr_access_from_parms): Handle arbitrarily many
3139         bounds.
3141 2021-05-18  Richard Biener  <rguenther@suse.de>
3143         PR c/100547
3144         * c-attribs.c (type_valid_for_vector_size): Reject too large nunits.
3145         Reword existing nunit diagnostic.
3147 2021-05-17  Joern Rennecke  <joern.rennecke@embecosm.com>
3149         * c-common.c (braced_list_to_string): Return CTOR unchanged
3150         if host and target character sizes don't match.
3152 2021-05-14  Martin Liska  <mliska@suse.cz>
3154         * c.opt: Add Warning keyword for 2 options.
3156 2021-05-13  Martin Liska  <mliska@suse.cz>
3158         PR middle-end/100504
3159         * c-attribs.c (handle_target_clones_attribute): Expect a string
3160         argument to target_clone argument.
3162 2021-05-11  Joseph Myers  <joseph@codesourcery.com>
3164         * c-lex.c (interpret_float): Handle digit separators for C2X.
3166 2021-05-10  Martin Liska  <mliska@suse.cz>
3168         * c-ada-spec.c (print_destructor): Use startswith
3169         function instead of strncmp.
3170         (dump_ada_declaration): Likewise.
3171         * c-common.c (disable_builtin_function): Likewise.
3172         (def_builtin_1): Likewise.
3173         * c-format.c (check_tokens): Likewise.
3174         (check_plain): Likewise.
3175         (convert_format_name_to_system_name): Likewise.
3177 2021-04-28  Patrick McGehearty  <patrick.mcgehearty@oracle.com>
3179         * c-cppbuiltin.c (c_cpp_builtins): Add supporting macros for new
3180         complex divide
3182 2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
3183             Nathan Sidwell  <nathan@codesourcery.com>
3184             Tom de Vries  <vries@codesourcery.com>
3185             Julian Brown  <julian@codesourcery.com>
3186             Kwok Cheung Yeung  <kcy@codesourcery.com>
3188         * c.opt (Wopenacc-parallelism): New.
3190 2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>
3192         * c.opt (fopenacc-kernels=): Remove.
3194 2021-04-08  Jakub Jelinek  <jakub@redhat.com>
3196         * c-warn.c (do_warn_double_promotion): Fix comment typo,
3197         occured -> occurred.
3198         (check_alignment_of_packed_member): Fix a comment typo,
3199         memeber -> member.
3200         (warn_parm_ptrarray_mismatch): Fix comment typos, os -> of
3201         and onless -> unless.
3202         (warn_parm_array_mismatch): Fix comment typos, declaratation
3203         -> declaration and woud -> would.  Fix up comment indentation.
3205 2021-04-08  Martin Sebor  <msebor@redhat.com>
3207         PR middle-end/99883
3208         * c.opt (Wmismatched-new-delete): Correct spelling.
3210 2021-04-05  Eric Botcazou  <ebotcazou@adacore.com>
3212         * c-ada-spec.c (is_simple_enum): Minor tweaks.
3213         (dump_ada_enum_type): Add TYPE and PARENT parameters.  For non-simple
3214         enumeral types use again the type name for the enumeration constants.
3215         (dump_ada_node): Adjust call to dump_ada_enum_type.
3216         (dump_nested_type): Likewise.
3218 2021-04-01  Jason Merrill  <jason@redhat.com>
3220         PR c++/98481
3221         * c-opts.c (c_common_post_options): Bump latest_abi_version.
3223 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
3225         PR c++/99565
3226         * c-warn.c (do_warn_duplicated_branches): Pass also
3227         OEP_ADDRESS_OF_SAME_FIELD to operand_equal_p.
3229 2021-03-20  Jakub Jelinek  <jakub@redhat.com>
3231         PR debug/99230
3232         * c-gimplify.c (c_genericize_control_stmt): Handle STATEMENT_LIST.
3234 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
3236         * c-ada-spec.c (dump_ada_declaration) <TYPE_DECL>: Dump nested types
3237         after entering the separate class package, if any.
3239 2021-03-04  Richard Biener  <rguenther@suse.de>
3241         * c-pretty-print.c (c_pretty_printer::direct_abstract_declarator):
3242         Handle ERROR_MARK.
3244 2021-03-04  Jakub Jelinek  <jakub@redhat.com>
3246         PR c/99325
3247         * c-ppoutput.c (print): Change src_line type from int to unsigned.
3248         (token_streamer::stream) Likewise.
3249         (maybe_print_line_1): Likewise.  Don't strcmp src_file if src_loc is
3250         UNKNOWN_LOCATION.
3252 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
3254         PR c/99324
3255         * c-common.c (build_va_arg): Call c_common_mark_addressable_vec
3256         instead of mark_addressable.  Fix a comment typo -
3257         neutrallly -> neutrally.
3259 2021-02-28  Jakub Jelinek  <jakub@redhat.com>
3261         PR c/99304
3262         * c-attribs.c (handle_malloc_attribute): Fix a typo in inform
3263         message - refernced -> referenced.  Remove superfluous space before
3264         closing paren of function calls.
3266 2021-02-25  Nathan Sidwell  <nathan@acm.org>
3268         PR c++/99166
3269         * c.opt (-flang-info-module-cmi): Renamed option.
3271 2021-02-19  Nathan Sidwell  <nathan@acm.org>
3273         * c.opt (flang-info-module-read, flang-info-module-read=): New.
3275 2021-02-18  H.J. Lu  <hjl.tools@gmail.com>
3277         PR target/99113
3278         * c-attribs.c (c_common_attribute_table): Add the "retain"
3279         attribute.
3280         (handle_retain_attribute): New function.
3282 2021-02-16  Marek Polacek  <polacek@redhat.com>
3284         PR c++/99062
3285         * c-attribs.c (handle_assume_aligned_attribute): Check that the
3286         alignment argument is non-negative.  Tweak a warning message.
3288 2021-02-12  Martin Sebor  <msebor@redhat.com>
3290         PR c/99055
3291         * c-warn.c (warn_parm_array_mismatch): Free strings returned from
3292         print_generic_expr_to_str.
3294 2021-02-10  Richard Biener  <rguenther@suse.de>
3296         * c-common.c (parse_optimize_options): Free decoded_options.
3298 2021-02-04  emsr  <3dw4rd@verizon.net>
3300         * c-cppbuiltin.c (c_cpp_builtins): __cpp_size_t_suffix=202011L.
3302 2021-02-03  Ed Smith-Rowland  <3dw4rd@verizon.net>
3304         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_size_t_suffix.
3305         * c-lex.c (interpret_integer): Set node type for size literal.
3307 2021-01-28  Jakub Jelinek  <jakub@redhat.com>
3309         * c.opt (-std=c++2a, -std=c++20, -std=gnu++2a, -std=gnu++20): Remove
3310         draft from description.
3311         (-std=c++2b): Fix a pasto, 2020 -> 2023.
3313 2021-01-26  Paul Fee  <paul.f.fee@gmail.com>
3315         * c-common.h (cxx_dialect): Add cxx23 as a dialect.
3316         * c.opt: Add options for -std=c++23, std=c++2b, -std=gnu++23
3317         and -std=gnu++2b
3318         * c-opts.c (set_std_cxx23): New.
3319         (c_common_handle_option): Set options when -std=c++23 is enabled.
3320         (c_common_post_options): Adjust comments.
3321         (set_std_cxx20): Likewise.
3323 2021-01-25  Martin Sebor  <msebor@redhat.com>
3325         PR c++/98646
3326         * c-common.c (check_nonnull_arg): Adjust warning text.
3328 2021-01-17  Martin Sebor  <msebor@redhat.com>
3330         * c-pretty-print.c (c_pretty_printer::primary_expression): Don't
3331         assume SSA_NAME_IDENTIFIER evaluates to nonzero.
3333 2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
3335         * c-pragma.h (pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_DETACH.
3336         Redefine PRAGMA_OACC_CLAUSE_DETACH.
3338 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
3340         PR tree-optimization/98597
3341         * c-pretty-print.c: Include options.h.
3342         (c_fold_indirect_ref_for_warn): New function.
3343         (print_mem_ref): Use it.  If it returns something that has compatible
3344         type and is TBAA compatible with zero offset, print it and return,
3345         otherwise print it using offsetof syntax or array ref syntax.  Fix up
3346         printing if MEM_REFs first operand is ADDR_EXPR, or when the first
3347         argument has pointer to array type.  Print pointers using the standard
3348         formatting.
3350 2021-01-12  Martin Sebor  <msebor@redhat.com>
3352         PR c/98597
3353         PR c/98592
3354         * c-pretty-print.c (print_mem_ref): Avoid assuming MEM_REF operand
3355         has pointer type.  Remove redundant code.  Avoid calling
3356         gimple_canonical_types_compatible_p.
3358 2021-01-07  Martin Sebor  <msebor@redhat.com>
3360         PR middle-end/98578
3361         * c-pretty-print.c (print_mem_ref): Strip array from access type.
3362         Avoid assuming acces type's size is constant.  Correct condition
3363         guarding the printing of a parenthesis.
3365 2021-01-06  Martin Sebor  <msebor@redhat.com>
3367         PR c++/95768
3368         * c-pretty-print.c (c_pretty_printer::primary_expression): For
3369         SSA_NAMEs print VLA names and GIMPLE defining statements.
3370         (print_mem_ref): New function.
3371         (c_pretty_printer::unary_expression): Call it.
3373 2021-01-06  Richard Biener  <rguenther@suse.de>
3375         PR tree-optimization/95582
3376         * c-attribs.c (c_common_attribute_table): Add entry for
3377         signed_bool_precision.
3378         (handle_signed_bool_precision_attribute): New.
3380 2020-12-24  Iain Sandoe  <iain@sandoe.co.uk>
3382         * c.opt: Add -stdlib= option and enumerations for
3383         libstdc++ and libc++.
3385 2020-12-16  Martin Liska  <mliska@suse.cz>
3387         * c.opt: Remove usage of Report.
3389 2020-12-14  Martin Sebor  <msebor@redhat.com>
3391         PR middle-end/98166
3392         PR c++/57111
3393         PR middle-end/98160
3394         * c-attribs.c (maybe_add_noinline): New function.
3395         (handle_malloc_attribute): Call it.  Use ATTR_FLAG_INTERNAL.
3396         Implicitly add attribute noinline to functions not declared inline
3397         and warn on those.
3399 2020-12-09  Tobias Burnus  <tobias@codesourcery.com>
3401         * c-pragma.c (omp_pragmas): Add 'allocate'.
3402         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_ALLOCATE.
3404 2020-12-08  Jakub Jelinek  <jakub@redhat.com>
3406         PR c++/98187
3407         * c-pragma.c (omp_pragmas): Remove "master".
3408         (omp_pragmas_simd): Add "master".
3410 2020-12-07  Marek Polacek  <polacek@redhat.com>
3412         PR c++/98126
3413         * c-common.c (verify_tree_lim_r): New function.
3414         (verify_sequence_points): Use it.  Use nullptr instead of 0.
3416 2020-12-03  Martin Sebor  <msebor@redhat.com>
3418         PR c++/90629
3419         PR middle-end/94527
3420         * c-attribs.c (handle_dealloc_attribute): New function.
3421         (handle_malloc_attribute): Handle argument forms of attribute.
3422         * c.opt (-Wmismatched-dealloc): New option.
3423         (-Wmismatched-new-delete): New option.
3425 2020-12-03  Jakub Jelinek  <jakub@redhat.com>
3427         PR libstdc++/93121
3428         * c-common.h (enum rid): Add RID_BUILTIN_BIT_CAST.
3429         * c-common.c (c_common_reswords): Add __builtin_bit_cast.
3431 2020-12-01  JeanHeyd Meneide  <phdofthehouse@gmail.com>
3433         * c-cppbuiltin.c (c_cpp_builtins): Add predefined
3434         {__GNUC_EXECUTION_CHARSET_NAME} and
3435         _WIDE_EXECUTION_CHARSET_NAME} macros.
3437 2020-12-01  Nathan Sidwell  <nathan@acm.org>
3439         * c-common.c (module, import, export): New internal tokens (with
3440         trailing space).
3441         * c-common.h (RID__MODULE, RID__IMPORT & RID__EXPORT): Enumerate
3442         them.
3443         (D_CXX_MODULES, D_CXX_MODULES_FLAGS): Enable them.
3444         * c-cppbuiltin.c (c_cpp_builtins): Feature macro.
3446 2020-12-01  Nathan Sidwell  <nathan@acm.org>
3448         * c-opts.c (c_common_init_options): Ask for module dependencies.
3449         (c_common_handle_option): Handle -Mmodules -Mno-modules.
3450         * c-pch.c (c_common_valid_pch): ... does not play with C++
3451         modules.
3452         * c.opt (Mmodules, Mno-modules): New preprocessor dependency
3453         options.
3454         (fmodules-ts, fmodule-header, fmodule-implicit-inline)
3455         (fmodule-only, fmodule-mapper, fmodule-lazy)
3456         (fmodule-version-ignore, Winvalid-imported-macros)
3457         (flang-info-include-translate, flang-info-include-translate-not):
3458         New options
3460 2020-11-28  Eric Botcazou  <ebotcazou@adacore.com>
3462         * c-ada-spec.c (dump_nested_type) <RECORD_TYPE>: Remove obsolete code.
3463         (dump_ada_structure): Also deal with convention, unchecked union and
3464         bit-field for nested types.  In the latter case, print an Alignment
3465         aspect along with the Pack aspect.
3467 2020-11-25  Martin Sebor  <msebor@redhat.com>
3469         PR bootstrap/94982
3470         * c-attribs.c (handle_patchable_function_entry_attribute): Avoid
3471         -Wformat-diag.
3473 2020-11-24  Martin Sebor  <msebor@redhat.com>
3475         * c-warn.c (warn_parm_array_mismatch): Avoid invalid redeclarations.
3477 2020-11-23  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
3479         * c-attribs.c (handle_special_var_sec_attribute): New.
3480         (handle_noinit_attribute): Remove.
3481         (attr_noinit_exclusions): Rename to...
3482         (attr_section_exclusions): ...this, and add "persistent" attribute
3483         exclusion.
3484         (c_common_attribute_table): Add "persistent" attribute.
3486 2020-11-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
3488         * c-pretty-print.c (c_pretty_printer::simple_type_specifier):
3489         Treat opaque types like other types.
3490         (c_pretty_printer::direct_abstract_declarator): Opaque types are
3491         supported types.
3493 2020-11-20  Martin Sebor  <msebor@redhat.com>
3495         * c-warn.c (warn_parm_array_mismatch): Bail on invalid redeclarations
3496         with fewer arguments.
3498 2020-11-20  Martin Sebor  <msebor@redhat.com>
3500         PR middle-end/97879
3501         * c-attribs.c (handle_access_attribute): Handle ATTR_FLAG_INTERNAL.
3502         Error out on invalid modes.
3504 2020-11-20  Jakub Jelinek  <jakub@redhat.com>
3506         PR libstdc++/88101
3507         * c-common.c (check_builtin_function_arguments): Handle
3508         BUILT_IN_CLEAR_PADDING.
3510 2020-11-18  Nathan Sidwell  <nathan@acm.org>
3512         * c-lex.c (c_lex_with_flags): CPP_HEADER_NAMEs can now be seen.
3514 2020-11-17  Nathan Sidwell  <nathan@acm.org>
3516         * c-common.h (enum c_tree_index): Reorder to place lazy fields
3517         after newly-added CTI_MODULE_HWM.
3519 2020-11-17  Joseph Myers  <joseph@codesourcery.com>
3521         * c-cppbuiltin.c (builtin_define_float_constants): Define
3522         "*_IS_IEC_60559__" macros.
3524 2020-11-17  Nathan Sidwell  <nathan@acm.org>
3526         * c-lex.c: #include "langhooks.h".
3527         (cb_undef): Maybe call preprocess_undef lang hook.
3528         * c-opts.c (c_common_post_options): Maybe call preprocess_options
3529         lang hook.
3530         (push_command_line_include): Maybe call preprocess_main_file lang
3531         hook.
3532         (cb_file_change): Likewise.
3533         * c-ppoutput.c: #include "langhooks.h.
3534         (scan_translation_unit): Maybe call preprocess_token lang hook.
3535         (class do_streamer): New, derive from token_streamer.
3536         (directives_only_cb): Data pointer is do_streamer, call
3537         preprocess_token lang hook.
3538         (scan_translation_unit_directives_only): Use do_streamer.
3539         (print_line_1): Move src_line recording to after string output.
3540         (cb_undef): Maybe call preprocess_undef lang hook.
3542 2020-11-17  Nathan Sidwell  <nathan@acm.org>
3544         * c-ppoutput.c (scan_translation_unit): Use token_streamer, remove
3545         code duplicating that functionality.
3547 2020-11-17  Jakub Jelinek  <jakub@redhat.com>
3549         PR c/90628
3550         * c-common.c (check_builtin_function_arguments)
3551         <case BUILT_IN_ADD_OVERFLOW>: Diagnose when last argument is pointer
3552         to _Atomic.  For the TYPE_READONLY case, adjust message to be usable
3553         for more builtins and argument positions.
3555 2020-11-16  Iain Sandoe  <iain@sandoe.co.uk>
3557         PR objc/97854
3558         * stub-objc.c: Include c-common.h to declare enum rid.
3560 2020-11-13  Jakub Jelinek  <jakub@redhat.com>
3562         PR c++/63287
3563         * c-cppbuiltin.c: Include configargs.h.
3564         (c_cpp_builtins): For C++11 and later if THREAD_MODEL_SPEC is not
3565         defined, predefine __STDCPP_THREADS__ to 1 unless thread_model is
3566         "single".
3568 2020-11-13  Gergö Barany  <gergo@codesourcery.com>
3569             Thomas Schwinge  <thomas@codesourcery.com>
3571         * c.opt (fopenacc-kernels): Add.
3573 2020-11-13  Jason Merrill  <jason@redhat.com>
3575         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_using_enum.
3577 2020-11-13  Piotr H. Dabrowski  <phd@phd.re>
3579         PR c++/91318
3580         * c-cppbuiltin.c: c_cpp_builtins_optimize_pragma(): use cpp_define_unused()
3582 2020-11-13  Martin Liska  <mliska@suse.cz>
3584         * c-attribs.c (build_attr_access_from_parms): Format properly.
3586 2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>
3588         PR objc/90707
3589         * c-common.c (c_common_reswords): null_unspecified, nullable,
3590         nonnull, null_resettable: New keywords.
3591         * c-common.h (enum rid): RID_NULL_UNSPECIFIED, RID_NULLABLE,
3592         RID_NONNULL, RID_NULL_RESETTABLE: New.
3593         (OBJC_IS_PATTR_KEYWORD): Include nullability keywords in the
3594         ranges accepted for property attributes.
3595         * c-attribs.c (handle_objc_nullability_attribute): New.
3596         * c-objc.h (enum objc_property_attribute_group): Add
3597         OBJC_PROPATTR_GROUP_NULLABLE.
3598         (enum objc_property_attribute_kind):Add
3599         OBJC_PROPERTY_ATTR_NULL_UNSPECIFIED, OBJC_PROPERTY_ATTR_NULLABLE,
3600         OBJC_PROPERTY_ATTR_NONNULL, OBJC_PROPERTY_ATTR_NULL_RESETTABLE.
3602 2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>
3604         PR objc/77404
3605         * c-attribs.c (handle_objc_root_class_attribute): New
3606         * c-objc.h (objc_start_class_interface): Add a location
3607         value for the position of the class name.
3608         * c.opt: Add Wobjc-root-class.
3609         * stub-objc.c (objc_start_class_interface): Add a location
3610         value for the position of the class name.
3612 2020-11-12  Joseph Myers  <joseph@codesourcery.com>
3614         * c-lex.c (c_common_has_attribute): Take argument std_syntax.
3615         Allow scope for C.  Handle standard attributes for C.  Do not
3616         accept unscoped attributes if std_syntax and not handled as
3617         standard attributes.
3618         * c-common.h (c_common_has_attribute): Update prototype.
3620 2020-11-12  Nicholas Guriev  <guriev-ns@ya.ru>
3622         PR pch/86674
3623         * c-pch.c (c_common_valid_pch): Use cpp_warning with CPP_W_INVALID_PCH
3624         reason to fix -Werror=invalid-pch and -Wno-error=invalid-pch switches.
3626 2020-11-11  Patrick Palka  <ppalka@redhat.com>
3628         PR c++/88115
3629         * c-opts.c (c_common_post_options): Update latest_abi_version.
3631 2020-11-10  Jakub Jelinek  <jakub@redhat.com>
3633         PR c/97748
3634         * c-common.h (warn_if_unused_value): Add quiet argument defaulted
3635         to false.
3636         * c-warn.c (warn_if_unused_value): Likewise.  Pass it down
3637         recursively and just return true instead of warning if it is true.
3638         Handle COMPLEX_EXPR.
3640 2020-11-10  Chung-Lin Tang  <cltang@codesourcery.com>
3642         * c-common.h (c_omp_adjust_map_clauses): New declaration.
3643         * c-omp.c (struct map_clause): Helper type for c_omp_adjust_map_clauses.
3644         (c_omp_adjust_map_clauses): New function.
3646 2020-11-09  Marek Polacek  <polacek@redhat.com>
3648         DR 1914
3649         * c-common.c (attribute_fallthrough_p): Tweak the warning
3650         message.
3652 2020-11-09  Patrick Palka  <ppalka@redhat.com>
3654         * c-pragma.c (handle_pragma_diagnostic): Split the
3655         unknown-option -Wpragmas diagnostic into a warning and a
3656         subsequent note containing a spelling suggestion.  Avoid
3657         computing the suggestion if -Wpragmas warnings are being
3658         suppressed.
3660 2020-11-09  Patrick Palka  <ppalka@redhat.com>
3662         PR testsuite/97117
3663         * c-indentation.c (get_visual_column): Remove location_t
3664         parameter.  Move the column-tracking diagnostic code from here
3665         to ...
3666         (should_warn_for_misleading_indentation): ... here, before the
3667         early exit for when the loci are not all distinct.  Don't pass a
3668         location_t argument to get_visual_column.
3669         (assert_get_visual_column_succeeds): Don't pass a location_t
3670         argument to get_visual_column.
3671         (assert_get_visual_column_fails): Likewise.
3673 2020-11-08  Iain Sandoe  <iain@sandoe.co.uk>
3675         * c-common.h (OBJC_IS_PATTR_KEYWORD): Add class to the list
3676         of keywords accepted in @property attribute contexts.
3677         * c-objc.h (enum objc_property_attribute_group): Add
3678         OBJC_PROPATTR_GROUP_CLASS.
3679         (enum objc_property_attribute_kind): Add
3680         OBJC_PROPERTY_ATTR_CLASS.
3682 2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>
3684         * c-common.c (c_common_reswords): Add 'atomic' property
3685         attribute.
3686         * c-common.h (enum rid): Add RID_PROPATOMIC for atomic
3687         property attributes.
3689 2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>
3691         * c-attribs.c (handle_nsobject_attribute): New.
3692         * c.opt: Add WNSObject-attribute.
3694 2020-11-06  Iain Sandoe  <iain@sandoe.co.uk>
3696         * c-objc.h (enum objc_property_attribute_group): New
3697         (enum objc_property_attribute_kind): New.
3698         (OBJC_PROPATTR_GROUP_MASK): New.
3699         (struct property_attribute_info): Small class encapsulating
3700         parser output from property attributes.
3701         (objc_prop_attr_kind_for_rid): New
3702         (objc_add_property_declaration): Simplify interface.
3703         * stub-objc.c (enum rid): Dummy type.
3704         (objc_add_property_declaration): Simplify interface.
3705         (objc_prop_attr_kind_for_rid): New.
3707 2020-11-06  Nathan Sidwell  <nathan@acm.org>
3709         * c-ada-spec.c (collect_ada_nodes): Rename
3710         DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
3711         (collect_ada_node): Likewise.
3712         (dump_forward_type): Likewise.
3713         * c-common.c (set_underlying_type): Rename
3714         DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
3715         (user_facing_original_type, c_common_finalize_early_debug): Likewise.
3717 2020-11-06  Jakub Jelinek  <jakub@redhat.com>
3719         * c-common.c (verify_sequence_points): Remove DEBUG_FUNCTION.
3721 2020-11-05  Marek Polacek  <polacek@redhat.com>
3723         PR c++/97675
3724         * c.opt (Wexceptions): New option.
3726 2020-11-05  Marek Polacek  <polacek@redhat.com>
3728         PR c++/25814
3729         * c.opt (Wvexing-parse): New option.
3731 2020-11-04  Jakub Jelinek  <jakub@redhat.com>
3733         PR c++/97670
3734         * c-omp.c (c_omp_split_clauses): Look through array reductions to find
3735         underlying decl to clear in the allocate_head bitmap.
3737 2020-11-04  Iain Sandoe  <iain@sandoe.co.uk>
3739         * c-objc.h (objc_non_constant_expr_p): New.
3740         * stub-objc.c (objc_non_constant_expr_p): New.
3742 2020-11-03  Nathan Sidwell  <nathan@acm.org>
3744         * c.opt (MQ,MT): Reword description to be make-agnostic.
3746 2020-11-02  Nathan Sidwell  <nathan@acm.org>
3748         * c-opts.c (c_common_post_options): Move var decl to its
3749         initialization point.
3751 2020-11-01  Iain Sandoe  <iain@sandoe.co.uk>
3753         * c-lex.c (c_lex_with_flags): When combining '@' with a
3754         keyword for Objective-C, combine the location ranges too.
3756 2020-10-30  Qing Zhao  <qing.zhao@oracle.com>
3757             H.J.Lu  <hjl.tools@gmail.com>
3759         * c-attribs.c (c_common_attribute_table): Add new attribute
3760         zero_call_used_regs.
3761         (handle_zero_call_used_regs_attribute): New function.
3763 2020-10-28  Marek Polacek  <polacek@redhat.com>
3765         PR c++/97573
3766         * c-opts.c (c_common_post_options): In C++20, turn on
3767         -Wdeprecated-enum-enum-conversion and
3768         -Wdeprecated-enum-float-conversion.
3769         * c.opt (Wdeprecated-enum-enum-conversion,
3770         Wdeprecated-enum-float-conversion): New options.
3771         (Wenum-conversion): Allow for C++ too.
3773 2020-10-28  Jakub Jelinek  <jakub@redhat.com>
3775         * c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALLOCATE.
3776         * c-omp.c: Include bitmap.h.
3777         (c_omp_split_clauses): Handle OMP_CLAUSE_ALLOCATE.
3779 2020-10-26  Ville Voutilainen  <ville.voutilainen@gmail.com>
3781         * c-common.c (__is_nothrow_assignable): New.
3782         (__is_nothrow_constructible): Likewise.
3783         * c-common.h (RID_IS_NOTHROW_ASSIGNABLE): New.
3784         (RID_IS_NOTHROW_CONSTRUCTIBLE): Likewise.
3786 2020-10-23  Jan Hubicka  <hubicka@ucw.cz>
3788         * c-common.c (c_common_finalize_early_debug): Update for new thunk api.
3790 2020-10-23  Marek Polacek  <polacek@redhat.com>
3792         PR c++/91741
3793         * c-common.c (verify_tree): Handle PAREN_SIZEOF_EXPR.
3794         (c_common_init_ts): Likewise.
3795         * c-common.def (PAREN_SIZEOF_EXPR): New tree code.
3796         * c-common.h (maybe_warn_sizeof_array_div): Declare.
3797         * c-warn.c (sizeof_pointer_memaccess_warning): Unwrap NOP_EXPRs.
3798         (maybe_warn_sizeof_array_div): New function.
3799         * c.opt (Wsizeof-array-div): New option.
3801 2020-10-23  Martin Sebor  <msebor@redhat.com>
3803         PR c/97463
3804         * c-warn.c (warn_parm_ptrarray_mismatch): Move null test earlier.
3806 2020-10-22  Martin Liska  <mliska@suse.cz>
3808         PR c/94722
3809         * c-attribs.c (handle_no_stack_protect_function_attribute): New.
3810         (handle_stack_protect_attribute): Add error message for a
3811         no_stack_protector function.
3813 2020-10-22  Martin Liska  <mliska@suse.cz>
3815         * c-cppbuiltin.c (c_cpp_builtins): Use the stack_protector enum.
3817 2020-10-22  Jan Hubicka  <hubicka@ucw.cz>
3819         * c-gimplify.c: Include tree-nested.h
3820         (c_genericize): Update for new nested function info.
3822 2020-10-14  Martin Sebor  <msebor@redhat.com>
3824         PR c/97413
3825         * c-attribs.c (build_attr_access_from_parms): Wrap chain of VLA
3826         bounds in an extra list.
3828 2020-10-05  Richard Biener  <rguenther@suse.de>
3829             Jakub Jelinek  <jakub@redhat.com>
3831         PR c++/97197
3832         * c-pretty-print.c: Include langhooks.h.
3833         (c_pretty_printer::postfix_expression): Handle TARGET_MEM_REF as
3834         expression.
3835         (c_pretty_printer::expression): Handle TARGET_MEM_REF as
3836         unary_expression.
3837         (c_pretty_printer::unary_expression): Handle TARGET_MEM_REF.
3839 2020-09-30  Martin Sebor  <msebor@redhat.com>
3841         PR middle-end/97189
3842         * c-attribs.c (append_access_attr): Use the function declaration
3843         location for a warning about an attribute access argument.
3845 2020-09-29  Marek Polacek  <polacek@redhat.com>
3847         PR c++/94695
3848         * c.opt (Wrange-loop-construct): New option.
3850 2020-09-23  Martin Sebor  <msebor@redhat.com>
3852         PR c/97131
3853         * c-warn.c (warn_parm_ptrarray_mismatch): Handle more invalid input.
3855 2020-09-23  Marek Polacek  <polacek@redhat.com>
3857         PR c/97125
3858         * c-gimplify.c (c_genericize): Only call do_warn_duplicated_branches_r
3859         after loops and other structured control constructs have been lowered.
3861 2020-09-22  Jakub Jelinek  <jakub@redhat.com>
3863         * c.opt (Wbuiltin-declaration-mismatch): Fix typo in variable name:
3864         warn_builtin_declaraion_mismatch -> warn_builtin_declaration_mismatch.
3866 2020-09-21  Marek Polacek  <polacek@redhat.com>
3868         * c.opt (Wctad-maybe-unsupported): New option.
3870 2020-09-19  Martin Sebor  <msebor@redhat.com>
3872         PR c/50584
3873         * c-common.h (warn_parm_array_mismatch): Declare new function.
3874         (has_attribute): Move declaration of an existing function.
3875         (build_attr_access_from_parms): Declare new function.
3876         * c-warn.c (parm_array_as_string): Define new function.
3877         (plus_one):  Define new function.
3878         (warn_parm_ptrarray_mismatch): Define new function.
3879         (warn_parm_array_mismatch):  Define new function.
3880         (vla_bound_parm_decl): New function.
3881         * c.opt (-Warray-parameter, -Wvla-parameter): New options.
3882         * c-pretty-print.c (pp_c_type_qualifier_list): Don't print array type
3883         qualifiers here...
3884         (c_pretty_printer::direct_abstract_declarator): ...but instead print
3885         them in brackets here.  Also print [static].  Strip extraneous
3886         expressions from VLA bounds.
3888 2020-09-19  Martin Sebor  <msebor@redhat.com>
3890         PR c/50584
3891         * c-attribs.c (c_common_attribute_table): Add "arg spec" attribute.
3892         (handle_argspec_attribute): New function.
3893         (get_argument, get_argument_type): New functions.
3894         (append_access_attrs): Add overload.  Handle internal attribute
3895         representation in addition to external.
3896         (handle_access_attribute): Handle internal attribute representation
3897         in addition to external.
3898         (build_attr_access_from_parms): New function.
3900 2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>
3902         * c-gimplify.c (genericize_c_loop): Rewrite to match
3903         c_finish_loop in c-typeck.c.
3905 2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>
3907         * c-common.c (c_block_may_fallthrough): New, split from
3908         cxx_block_may_fallthrough in the cp front end.
3909         (c_common_init_ts): Move handling of loop and switch-related
3910         statements here from the cp front end.
3911         * c-common.def (FOR_STMT, WHILE_STMT, DO_STMT): Move here from
3912         cp front end.
3913         (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
3914         * c-common.h (c_block_may_fallthru): Declare.
3915         (bc_state_t): Move here from cp front end.
3916         (save_bc_state, restore_bc_state): Declare.
3917         (c_genericize_control_stmt): Declare.
3918         (WHILE_COND, WHILE_BODY): Likewise.
3919         (DO_COND, DO_BODY): Likewise.
3920         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY, FOR_SCOPE): Likewise.
3921         (SWITCH_STMT_COND, SWITCH_STMT_BODY): Likewise.
3922         (SWITCH_STMT_TYPE, SWITCH_STMT_SCOPE): Likewise.
3923         (SWITCH_STMT_ALL_CASES_P, SWITCH_STMT_NO_BREAK_P): Likewise.
3924         (LABEL_DECL_BREAK, LABEL_DECL_CONTINUE): Likewise.
3925         * c-dump.c (dump_stmt): Copy from cp front end.
3926         (c_dump_tree): Move code to handle structured loop and switch
3927         tree nodes here from cp front end.
3928         * c-gimplify.c: Adjust includes.
3929         (enum bc_t, bc_label, begin_bc_block, finish_bc_block): Move from
3930         cp front end.
3931         (save_bc_state, restore_bc_state): New functions using old code
3932         from cp front end.
3933         (get_bc_label, expr_loc_or_loc): Move from cp front end.
3934         (genericize_c_loop): Move from cp front end.
3935         (genericize_for_stmt, genericize_while_stmt): Likewise.
3936         (genericize_do_stmt, genericize_switch_stmt): Likewise.
3937         (genericize_continue_stmt, genericize_break_stmt): Likewise.
3938         (genericize_omp_for_stmt): Likewise.
3939         (c_genericize_control_stmt): New function using code split from
3940         cp front end.
3941         (c_genericize_control_r): New.
3942         (c_genericize): Call walk_tree with c_genericize_control_r.
3943         * c-pretty-print.c (c_pretty_printer::statement): Move code to handle
3944         structured loop and switch tree nodes here from cp front end.
3946 2020-09-17  Patrick Palka  <ppalka@redhat.com>
3948         PR c/80076
3949         * c-indentation.c (should_warn_for_misleading_indentation): Move
3950         declarations of local variables closer to their first use.
3951         Handle virtual token locations by resolving them to their
3952         respective macro expansion points.  If all three tokens are
3953         produced from the same macro expansion, then instead use their
3954         loci within the macro definition.
3956 2020-09-16  Martin Sebor  <msebor@redhat.com>
3958         PR c/78666
3959         PR c/96126
3960         * c-attribs.c (validate_attr_args): New function.
3961         (validate_attr_arg): Same.
3962         (handle_section_attribute): Call it.  Introduce a local variable.
3963         (handle_alloc_size_attribute):  Same.
3964         (handle_alloc_align_attribute): Same.
3966 2020-09-14  Jakub Jelinek  <jakub@redhat.com>
3968         * c-attribs.c (handle_optimize_attribute): Adjust
3969         cl_optimization_save, cl_optimization_restore and
3970         build_optimization_node callers.
3971         * c-pragma.c (handle_pragma_optimize): Adjust
3972         build_optimization_node caller.
3973         (handle_pragma_push_options): Adjust
3974         build_optimization_node and build_target_option_node callers.
3975         (handle_pragma_pop_options, handle_pragma_reset_options):
3976         Adjust cl_optimization_restore callers.
3978 2020-08-28  Martin Sebor  <msebor@redhat.com>
3980         * c.opt (Wstringop-overread): New option.
3982 2020-08-11  Jakub Jelinek  <jakub@redhat.com>
3984         PR c/96545
3985         * c-common.c (get_atomic_generic_size): Require that first argument's
3986         type points to a complete type and use tree_fits_uhwi_p instead of
3987         just INTEGER_CST TREE_CODE check for the TYPE_SIZE_UNIT.
3989 2020-07-31  Martin Sebor  <msebor@redhat.com>
3991         PR c++/96003
3992         * c-common.c (check_function_arguments_recurse): Return early when
3993         no-warning bit is set.
3995 2020-07-31  Richard Biener  <rguenther@suse.de>
3997         PR debug/96383
3998         * c-common.h (c_common_finalize_early_debug): Declare.
3999         * c-common.c: Include debug.h.
4000         (c_common_finalize_early_debug): finalize_early_debug langhook
4001         implementation generating debug for extern declarations.
4003 2020-07-27  Nathan Sidwell  <nathan@acm.org>
4005         * c-common.c (try_to_locate_new_include_insertion_point): Use
4006         strcmp, not pointer equality.
4008 2020-07-25  Martin Sebor  <msebor@redhat.com>
4010         PR c++/96310
4011         * c-common.c (check_nonnull_arg): Print note only when warning was
4012         issued.
4014 2020-07-22  Tobias Burnus  <tobias@codesourcery.com>
4016         * c-omp.c (c_finish_omp_critical): Check for no name but
4017         nonzero hint provided.
4019 2020-07-20  Jason Merrill  <jason@redhat.com>
4021         * c-cppbuiltin.c (c_cpp_builtins): Update
4022         __cpp_nontype_template_args for C++20.
4024 2020-07-20  Martin Sebor  <msebor@redhat.com>
4026         PR c/96249
4027         * c.opt: Remove stray text.
4029 2020-07-14  Lewis Hyatt  <lhyatt@gmail.com>
4031         PR other/86904
4032         * c-indentation.c (should_warn_for_misleading_indentation): Get
4033         global tabstop from the new source.
4034         * c-opts.c (c_common_handle_option): Remove handling of -ftabstop, which
4035         is now a common option.
4036         * c.opt: Likewise.
4038 2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
4040         * c.opt (Wscalar-storage-order): Add explicit variable.
4042 2020-07-07  Nathan Sidwell  <nathan@acm.org>
4044         * c-opts.c (c_common_post_options): Add 'injecting' arg to
4045         cpp_read_main_file.
4046         (c_finish_options): Add linemap_line_start calls for builtin and cmd
4047         maps.  Force token position to line_table's highest line.
4048         * c-ppoutput.c (print_line_1): Refactor, print line zero.
4049         (cb_define): Always increment source line.
4051 2020-07-06  Martin Sebor  <msebor@redhat.com>
4053         PR c++/95984
4054         * c-common.c (check_function_nonnull): Avoid checking syntesized calls
4055         to stub lambda objects with null this pointer.
4056         (check_nonnull_arg): Handle C++ nullptr.
4058 2020-07-02  Jason Merrill  <jason@redhat.com>
4059             Jakub Jelinek  <jakub@redhat.com>
4061         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_consteval.
4063 2020-06-30  Jakub Jelinek  <jakub@redhat.com>
4065         PR c++/95963
4066         * c-common.c (check_function_arguments_recurse): Don't crash on
4067         calls to internal functions.
4069 2020-06-28  Martin Sebor  <msebor@redhat.com>
4071         PR c++/86568
4072         * c-common.c (struct nonnull_arg_ctx): Add members.
4073         (check_function_nonnull): Use nonnull_arg_ctx as argument.  Handle
4074         C++ member functions specially.  Consider the this pointer implicitly
4075         nonnull.
4076         (check_nonnull_arg): Use location of argument when available.
4077         (check_function_arguments): Use nonnull_arg_ctx as argument.
4079 2020-06-27  Jakub Jelinek  <jakub@redhat.com>
4081         PR middle-end/95903
4082         * c-common.c (pointer_int_sum): Use TYPE_OVERFLOW_UNDEFINED instead of
4083         !TYPE_UNSIGNED check to see if we can apply distributive law and handle
4084         smaller precision intop operands separately.
4086 2020-06-26  Marek Polacek  <polacek@redhat.com>
4088         * c-opts.c (c_common_init_options): Default to gnu++17.
4090 2020-06-17  Jonathan Wakely  <jwakely@redhat.com>
4092         PR c/95378
4093         * c-common.c (get_atomic_generic_size): Check cv-qualifiers in
4094         pointer arguments.
4096 2020-06-16  Jakub Jelinek  <jakub@redhat.com>
4098         * c-common.h (c_omp_check_loop_iv_exprs): Add an int argument.
4099         * c-omp.c (struct c_omp_check_loop_iv_data): Add maybe_nonrect and
4100         idx members.
4101         (c_omp_is_loop_iterator): New function.
4102         (c_omp_check_loop_iv_r): Use it.  Add support for silent scanning
4103         if outer loop iterator is present.  Perform duplicate checking through
4104         hash_set in the function rather than expecting caller to do that.
4105         Pass NULL instead of d->ppset to walk_tree_1.
4106         (c_omp_check_nonrect_loop_iv): New function.
4107         (c_omp_check_loop_iv): Use it.  Fill in new members, allow
4108         non-rectangular loop forms, diagnose multiple associated loops with
4109         the same iterator.  Pass NULL instead of &pset to walk_tree_1.
4110         (c_omp_check_loop_iv_exprs): Likewise.
4112 2020-06-10  Martin Liska  <mliska@suse.cz>
4114         PR tree-optimization/92860
4115         * c-attribs.c (handle_optimize_attribute):
4116         Save global options and compare it after parsing of function
4117         attribute.
4118         * c-pragma.c (opt_stack::saved_global_options): New field.
4119         (handle_pragma_push_options): Save global_options.
4120         (handle_pragma_pop_options): Compare them after pop.
4122 2020-06-09  Jakub Jelinek  <jakub@redhat.com>
4124         PR c/95580
4125         * c-pretty-print.c (c_pretty_printer::unary_expression): Handle the
4126         case when MEM_REF's first argument has type pointer to incomplete type.
4128 2020-06-05  Jason Merrill  <jason@redhat.com>
4130         * c-pretty-print.c (pp_c_additive_expression): Handle negative
4131         operand to POINTER_PLUS_EXPR.
4133 2020-06-04  Martin Sebor  <msebor@redhat.com>
4135         PR middle-end/10138
4136         PR middle-end/95136
4137         * c-attribs.c (append_access_attrs): Handle attr_access::none.
4138         (handle_access_attribute): Same.
4140 2020-06-03  Mark Wielaard  <mark@klomp.org>
4142         * known-headers.cc (get_cp_stdlib_header_for_string_macro_name):
4143         New function.
4144         * known-headers.h (get_cp_stdlib_header_for_string_macro_name):
4145         New function declaration.
4147 2020-06-03  Mark Wielaard  <mark@klomp.org>
4149         * known-headers.cc (get_string_macro_hint): New function.
4150         (get_stdlib_header_for_name): Use get_string_macro_hint.
4151         (get_c_stdlib_header_for_string_macro_name): New function.
4152         * known-headers.h (get_c_stdlib_header_for_string_macro_name):
4153         New function declaration.
4155 2020-06-03  Tobias Burnus  <tobias@codesourcery.com>
4157         * c-common.h (c_omp_predetermined_mapping): Declare.
4158         * c-omp.c (c_omp_predetermined_mapping): New.
4160 2020-05-22  Mark Wielaard  <mark@klomp.org>
4162         * known-headers.cc (get_stdlib_header_for_name): Add a new
4163         stdlib_hint array for stdbool and stdint.
4165 2020-05-22  Mark Wielaard  <mark@klomp.org>
4167         * known-headers.cc (get_stdlib_header_for_name): Return
4168         "<stdbool.h>" for "bool", "true" or "false" when STDLIB_C and
4169         flag_isoc99.
4171 2020-05-20  Nathan Sidwell  <nathan@acm.org>
4173         * c-common.c (try_to_locate_new_include_insertion_point): Revert change.
4175         * c-common.c (try_to_locate_new_include_insertion_point): Use
4176         strcmp to compare filenames.
4177         * c-lex.c (init_c_lex): Move declaration to initialization.
4178         * c-opts.c (handle_deferred_opts): Move cpp_get_deps call into
4179         deferred count loop.
4181 2020-05-15  Jason Merrill  <jason@redhat.com>
4183         * c-opts.c (set_std_cxx20): Set flag_coroutines.
4185 2020-05-13  Jason Merrill  <jason@redhat.com>
4187         * c.opt (std=c++20): Make c++2a the alias.
4188         (std=gnu++20): Likewise.
4189         * c-common.h (cxx_dialect): Change cxx2a to cxx20.
4190         * c-opts.c: Adjust.
4191         * c-cppbuiltin.c: Adjust.
4192         * c-ubsan.c: Adjust.
4193         * c-warn.c: Adjust.
4195 2020-05-12  Eric Botcazou  <ebotcazou@adacore.com>
4197         * c-ada-spec.c (dump_ads): Output pragma Warnings ("U"); on entry.
4199 2020-05-08  Nathan Sidwell  <nathan@acm.org>
4201         Reimplement directives only processing.
4202         * c-ppoutput.c (token_streamer): Ne.
4203         (directives_only_cb): New.  Swallow ...
4204         (print_lines_directives_only): ... this.
4205         (scan_translation_unit_directives_only): Reimplment using the
4206         published interface.
4208 2020-05-07  Marek Polacek  <polacek@redhat.com>
4210         * c-format.c (badwords): Add "nonstatic".
4212 202-05-07  Jakub Jelinek  <jakub@redhat.com>
4214         PR c/94968
4215         * c-common.c (speculation_safe_value_resolve_params): Return false if
4216         error_operand_p (val2).
4217         (resolve_overloaded_builtin) <case BUILT_IN_SPECULATION_SAFE_VALUE_N>:
4218         Remove extraneous semicolon.
4220 2020-05-06  qing zhao  <qing.zhao@oracle.com>
4222         PR c/94230
4223         * c-indentation.c (get_visual_column): Add a hint to use the new
4224         -flarge-source-files option.
4226 2020-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
4228         * c-attribs.c (handle_vector_size_attribute): Add attribute
4229         nonnull for argument args in order to silence warning of
4230         uninitialized variable usage.  Since this is local to the
4231         compilation unit and thus cannot be checked at call sides by the
4232         compiler, added an assert statement in order to verify this.
4234 2020-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4236         PR target/93492
4237         * c-attribs.c (handle_patchable_function_entry_attribute): Limit
4238         value to USHRT_MAX (65535).
4240 2020-04-29  Jakub Jelinek  <jakub@redhat.com>
4242         * c-format.c (PP_FORMAT_CHAR_TABLE): Add %{ and %}.
4244 2020-04-27  Jakub Jelinek  <jakub@redhat.com>
4246         PR c/94755
4247         * c-common.c (resolve_overloaded_builtin): Return error_mark_node for
4248         fncode == BUILT_IN_NONE before initialization of first_param.
4250 2020-04-23  Marek Polacek  <polacek@redhat.com>
4252         PR c++/94733
4253         * c-attribs.c (find_tm_attribute): Use get_attribute_name instead of
4254         TREE_PURPOSE.
4256 2020-04-14  Patrick Palka  <ppalka@redhat.com>
4258         PR c++/85278
4259         * c-pretty-print.c (pp_c_pointer) <case REFERENCE_TYPE>: Print a double
4260         ampersand if it's an rvalue reference type.
4262 2020-04-13  Martin Sebor  <msebor@redhat.com>
4264         PR c/92326
4265         * c-pretty-print.c (c_pretty_printer::direct_abstract_declarator): Avoid
4266         printing array bound for flexible array members.
4268 2020-04-13  Iain Sandoe  <iain@sandoe.co.uk>
4270         * c-cppbuiltin.c (c_cpp_builtins): Update coroutines builtin
4271         define, per n4861.
4273 2020-04-02  Richard Biener  <rguenther@suse.de>
4275         PR c/94392
4276         * c-opts.c (c_common_post_options): Enable -ffinite-loops
4277         for -O2 and C++11 or newer.
4279 2020-03-28  Patrick Palka  <ppalka@redhat.com>
4281         * c.opt: Add -fconcepts-diagnostics-depth.
4283 2020-03-27  Martin Sebor  <msebor@redhat.com>
4285         PR c++/94346
4286         * c-attribs.c (handle_copy_attribute): Avoid passing expressions
4287         to decl_attributes.  Make handling of different kinds of entities
4288         more robust.
4290 2020-03-27  Martin Sebor  <msebor@redhat.com>
4292         PR c++/94098
4293         * c-attribs.c (handle_access_attribute): Avoid setting TYPE_ATTRIBUTES
4294         here.
4296 2020-03-23  Jakub Jelinek  <jakub@redhat.com>
4298         PR c++/91993
4299         * c-warn.c (warnings_for_convert_and_check): For expr and/or
4300         result being COMPOUND_EXPRs, skip to ultimate rhs.
4302 2020-03-20  Richard Sandiford  <richard.sandiford@arm.com>
4304         PR middle-end/94072
4305         * c-common.c (c_common_type_for_mode): Before using a registered
4306         built-in type, check that the vectorness of the type matches
4307         the vectorness of the mode.
4309 2020-03-17  Jakub Jelinek  <jakub@redhat.com>
4311         * c-common.c (resolve_overloaded_builtin): Fix up duplicated word
4312         issue in a diagnostic message.
4314 2020-03-15  Lewis Hyatt  <lhyatt@gmail.com>
4316         * c.opt: Avoid redundancy in the help text.
4318 2020-03-02  Marek Polacek  <polacek@redhat.com>
4320         PR c++/93958 - add missing -std=gnu++20.
4321         * c.opt: Add -std=gnu++20.
4323 2020-03-01  Martin Sebor  <msebor@redhat.com>
4325         PR c++/92721
4326         * c-attribs.c (append_access_attrs): Correctly handle attribute.
4327         (handle_access_attribute): Same.
4329 2020-02-25  Jakub Jelinek  <jakub@redhat.com>
4331         PR c/93858
4332         * c-pragma.c (handle_pragma_diagnostic): Add missing ? after
4333         "did you mean" hint in diagnostics.
4335 2020-02-15  Jason Merrill  <jason@redhat.com>
4337         * c.opt: Add -std=c++20.
4339 2020-02-14  Eric Botcazou  <ebotcazou@adacore.com>
4341         * c-ada-spec.c: Include bitmap.h.
4342         (dump_ada_double_name): Rename into...
4343         (dump_anonymous_type_name): ...this.  Always use the TYPE_UID.
4344         (dump_ada_array_type): Adjust to above renaming.  Robustify.
4345         (dump_nested_types_1): New function copied from...  Add dumped_types
4346         parameter and pass it down to dump_nested_type.
4347         (dump_nested_types): ...this.  Remove parent parameter.  Just call
4348         dump_nested_types_1 on an automatic bitmap.
4349         (dump_nested_type): Add dumped_types parameter.
4350         <ARRAY_TYPE>: Do not dump it if already present in dumped_types.
4351         Adjust recursive calls and adjust to above renaming.
4352         (dump_ada_declaration): Adjust call to dump_nested_types.
4353         Tidy up and adjust to above renaming.
4354         (dump_ada_specs): Initialize and release bitmap obstack.
4356 2020-02-10  Martin Sebor  <msebor@redhat.com>
4358         PR c/93640
4359         * c-attribs.c (handle_access_attribute): Correct off-by-one mistakes.
4361 2020-02-10  Jakub Jelinek  <jakub@redhat.com>
4363         PR other/93641
4364         * c-format.c (check_plain): Fix up last argument of strncasecmp.
4365         Remove useless extra test.
4367 2020-02-03  Julian Brown  <julian@codesourcery.com>
4368             Tobias Burnus  <tobias@codesourcery.com>
4370         * c-cppbuiltin.c (c_cpp_builtins): Update _OPENACC define to 201711.
4372 2020-01-29  Jason Merrill  <jason@redhat.com>
4374         PR c++/89357
4375         * c-attribs.c (check_cxx_fundamental_alignment_constraints): Remove.
4377 2020-01-23  Jason Merrill  <jason@redhat.com>
4379         * c-warn.c (conversion_warning): Change -Wsign-conversion handling.
4381 2020-01-23  Martin Sebor  <msebor@redhat.com>
4383         PR c/84919
4384         * c-common.c (check_function_arguments): Avoid overlap checking
4385         of sprintf functions.
4387 2020-01-22  Jason Merrill  <jason@redhat.com>
4389         PR testsuite/93391 - PR 40752 test fails with unsigned plain char.
4390         PR c++/40752
4391         * c-warn.c (conversion_warning): Check operands only after checking
4392         the whole expression.  Don't check second operand of + for sign.
4394 2020-01-21  Jason Merrill  <jason@redhat.com>
4395             Manuel López-Ibáñez  <manu@gcc.gnu.org>
4397         PR c++/40752 - useless -Wconversion with short +=.
4398         * c.opt (-Warith-conversion): New.
4399         * c-warn.c (conversion_warning): Recurse for operands of
4400         operators.  Only warn about the whole expression with
4401         -Warith-conversion.
4403 2020-01-21  Jason Merrill  <jason@redhat.com>
4405         * c-common.c (unsafe_conversion_p): Don't warn, return UNSAFE_SIGN.
4406         * c-warn.c (conversion_warning): Warn about UNSAFE_SIGN.
4408 2020-01-20  Nathan Sidwell  <nathan@acm.org>
4410         PR preprocessor/80005
4411         * c-cppbuiltins.c (c_cpp_builtins): Don't define __has_include{,_next}.
4413 2020-01-18  Iain Sandoe  <iain@sandoe.co.uk>
4415         * c-common.c (co_await, co_yield, co_return): New.
4416         * c-common.h (RID_CO_AWAIT, RID_CO_YIELD,
4417         RID_CO_RETURN): New enumeration values.
4418         (D_CXX_COROUTINES): Bit to identify coroutines are active.
4419         (D_CXX_COROUTINES_FLAGS): Guard for coroutine keywords.
4420         * c-cppbuiltin.c (__cpp_coroutines): New cpp define.
4421         * c.opt (fcoroutines): New command-line switch.
4423 2020-01-10  David Malcolm  <dmalcolm@redhat.com>
4425         * c-format.c (local_event_ptr_node): New.
4426         (PP_FORMAT_CHAR_TABLE): Add entry for "%@".
4427         (init_dynamic_diag_info): Initialize local_event_ptr_node.
4428         * c-format.h (T_EVENT_PTR): New define.
4430 2020-01-10  Martin Sebor  <msebor@redhat.com>
4432         PR c/93132
4433         * c-attribs.c (append_access_attrs): Validate against the translated
4434         access string rather than the human-readable representation.
4436 2020-01-01  Jakub Jelinek  <jakub@redhat.com>
4438         Update copyright years.
4440 2019-12-20  Eric Botcazou  <ebotcazou@adacore.com>
4442         * c-ada-spec.h (decl_sloc): Delete.
4443         * c-ada-spec.c (decl_sloc): Make static.
4445 2019-12-19  Julian Brown  <julian@codesourcery.com>
4447         * c-common.h (c_omp_map_clause_name): Add prototype.
4448         * c-omp.c (c_omp_map_clause_name): New function.
4449         * c-pragma.h (pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ATTACH and
4450         PRAGMA_OACC_CLAUSE_DETACH.
4452 2019-12-19  Julian Brown  <julian@codesourcery.com>
4453             Maciej W. Rozycki  <macro@codesourcery.com>
4454             Tobias Burnus  <tobias@codesourcery.com>
4455             Thomas Schwinge  <thomas@codesourcery.com>
4457         * c-pragma.h (pragma_omp_clause): Add
4458         PRAGMA_OACC_CLAUSE_NO_CREATE.
4460 2019-12-17  Martin Sebor  <msebor@redhat.com>
4462         PR c++/61339
4463         * c.opt (-Wmismatched-tags, -Wredundant-tags): New options.
4465 2019-12-11  David Malcolm  <dmalcolm@redhat.com>
4467         * c-pretty-print.c (c_pretty_printer::clone): New vfunc
4468         implementation.
4469         * c-pretty-print.h (c_pretty_printer::clone): New vfunc decl.
4471 2019-12-09  David Malcolm  <dmalcolm@redhat.com>
4473         * c-format.c (range_label_for_format_type_mismatch::get_text):
4474         Replace label_text ctor called with true with label_text::take.
4476 2019-12-09  David Malcolm  <dmalcolm@redhat.com>
4478         * c-format.c (selftest::test_type_mismatch_range_labels): Remove
4479         initial newline from expected outputs.
4480         * c-opts.c (c_diagnostic_finalizer): Add pp_newline call before
4481         call to diagnostic_show_locus.
4483 2019-12-06  Jakub Jelinek  <jakub@redhat.com>
4485         * c-cppbuiltin.c (c_cpp_builtins): Don't define __cpp_consteval for
4486         now.
4488 2019-12-05  Marek Polacek  <polacek@redhat.com>
4489             Jakub Jelinek  <jakub@redhat.com>
4491         PR c++/91353 - P1331R2: Allow trivial default init in constexpr contexts.
4492         * c-cppbuiltin.c (c_cpp_builtins): Adjust the value of __cpp_constexpr.
4494 2019-12-05  Marek Polacek  <polacek@redhat.com>
4496         PR c++/92271 - make __is_same alias for __is_same_as.
4497         * c-common.c: Add __is_same, an alias for __is_same_as.
4499 2019-12-03  Marek Polacek  <polacek@redhat.com>
4501         PR c++/91363 - P0960R3: Parenthesized initialization of aggregates.
4502         * c-cppbuiltin.c (c_cpp_builtins): Predefine
4503         __cpp_aggregate_paren_init=201902 for -std=c++2a.
4505 2019-11-30  Jan Hubicka  <hubicka@ucw.cz>
4507         * c-attribs.c (handle_symver_attribute): New function
4508         (c_common_attributes): Add symver.
4510 2019-11-30  Richard Sandiford  <richard.sandiford@arm.com>
4512         * c-common.c (pointer_int_sum): Use verify_type_context to check
4513         whether the target allows pointer arithmetic for the types involved.
4514         (c_sizeof_or_alignof_type, c_alignof_expr): Use verify_type_context
4515         to check whether the target allows sizeof and alignof operations
4516         for the types involved.
4518 2019-11-27  Jason Merrill  <jason@redhat.com>
4520         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_deduction_guides.
4522 2019-11-26  Jakub Jelinek  <jakub@redhat.com>
4524         PR c++/61414
4525         * c-attribs.c (handle_mode_attribute): Add mode attribute to
4526         ENUMERAL_TYPEs.
4528 2019-11-25  Joseph Myers  <joseph@codesourcery.com>
4530         PR c/91985
4531         * c-common.c (c_common_type_for_mode): Handle decimal
4532         floating-point types being NULL_TREE.
4533         * c-format.c (get_format_for_type_1): Handle specified types being
4534         NULL_TREE.
4535         * c-lex.c (interpret_float): Give an error for decimal
4536         floating-point constants when decimal floating-point not
4537         supported.
4539 2019-11-23  Jakub Jelinek  <jakub@redhat.com>
4541         PR middle-end/83859
4542         * c-attribs.c (append_access_attrs): Avoid buffer overflow.  Avoid
4543         memory leak.  Use XNEWVEC macro.  Use auto_diagnostic_group to
4544         group warning with inform together.
4545         (handle_access_attribute): Formatting fix.
4547 2019-11-22  Jakub Jelinek  <jakub@redhat.com>
4549         PR c/90677
4550         * c-common.h (identifier_global_tag): Declare.
4551         * c-format.c (get_pointer_to_named_type): Renamed to ...
4552         (get_named_type): ... this.  Use identifier_global_tag instead of
4553         identifier_global_value, handle the return value being a TYPE_P.
4554         (init_dynamic_diag_info): Adjust get_pointer_to_named_type callers
4555         to call get_named_type instead.  Formatting fixes.
4557         Implement P1902R1, Missing feature-test macros 2017-2019.
4558         * c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_init_captures
4559         and __cpp_generic_lambdas for -std=c++2a.  Define
4560         __cpp_designated_initializers, __cpp_constexpr_in_decltype and
4561         __cpp_consteval for -std=c++2a.  Remove a FIXME comment about
4562         __cpp_concepts for -std=c++2a.
4564 2019-11-22  Martin Sebor  <msebor@redhat.com>
4566         PR middle-end/83859
4567         * c-attribs.c (handle_access_attribute): New function.
4568         (c_common_attribute_table): Add new attribute.
4569         (get_argument_type): New function.
4570         (append_access_attrs): New function.
4571         (get_nonnull_operand): Rename...
4572         (get_attribute_operand): ...to this.
4573         * c-common.c (get_nonnull_operand): Rename...
4574         (get_attribute_operand): ...to this.
4576 2019-11-21  Joseph Myers  <joseph@codesourcery.com>
4578         * c-attribs.c (handle_fallthrough_attribute): Use pedwarn instead
4579         of warning.
4581 2019-11-19  Joseph Myers  <joseph@codesourcery.com>
4583         * c-common.c (attribute_fallthrough_p): In C, use pedwarn not
4584         warning for standard attributes mixed with fallthrough attributes.
4586 2019-11-15  Joseph Myers  <joseph@codesourcery.com>
4588         * c-attribs.c (handle_fallthrough_attribute): Remove static.
4589         * c-common.h (handle_fallthrough_attribute): Declare.
4591 2019-11-15  Joseph Myers  <joseph@codesourcery.com>
4593         * c-attribs.c (handle_deprecated_attribute): Remove static.
4594         * c-common.h (handle_deprecated_attribute): Declare.
4596 2019-11-14  Joseph Myers  <joseph@codesourcery.com>
4598         * c-lex.c (lex_charconst): Make CPP_UTF8CHAR constants unsigned
4599         char for C.
4601 2019-11-14  Jakub Jelinek  <jakub@redhat.com>
4603         * c-omp.c (c_omp_check_context_selector): Add nvidia to the list of
4604         valid vendors.
4606         * c-omp.c (c_omp_check_context_selector): Handle name lists
4607         containing string literals.  Don't diagnose atomic_default_mem_order
4608         with multiple props.
4610 2019-11-13  Joseph Myers  <joseph@codesourcery.com>
4612         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4613         NORM_MAX constants.  Update call to get_max_float.
4614         (LAZY_HEX_FP_VALUES_CNT): Update value to include NORM_MAX
4615         constants.
4617 2019-11-13  Eric Botcazou  <ebotcazou@adacore.com>
4619         * c-ada-spec.c (get_underlying_decl): Do not look through typedefs.
4620         (dump_forward_type): Do not generate a declaration for function types.
4621         (dump_nested_type) <ARRAY_TYPE>: Do not generate a nested declaration
4622         of the component type if it is declared in another file.
4624 2019-11-12  Martin Liska  <mliska@suse.cz>
4626         * c-opts.c (c_common_post_options):
4627         Use SET_OPTION_IF_UNSET.
4629 2019-11-12  Maciej W. Rozycki  <macro@codesourcery.com>
4630             Frederik Harwath  <frederik@codesourcery.com>
4632         gcc/c-family/
4633         * c-pragma.h (pragma_kind): Add PRAGMA_OACC_SERIAL enumeration
4634         constant.
4635         * c-pragma.c (oacc_pragmas): Add "serial" entry.
4637 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
4639         * c-common.h (gnu_vector_type_p): New function.
4640         * c-common.c (c_build_vec_perm_expr): Require __builtin_shuffle
4641         vectors to satisfy gnu_vector_type_p.
4642         (c_build_vec_convert): Likewise __builtin_convertvector.
4643         (convert_vector_to_array_for_subscript): Likewise when applying
4644         implicit vector to array conversion.
4645         (scalar_to_vector): Likewise when converting vector-scalar
4646         operations to vector-vector operations.
4648 2019-11-08  Joseph Myers  <joseph@codesourcery.com>
4650         * c.opt (Wold-style-definition): Initialize to -1.
4651         * c-opts.c (c_common_post_options): Set warn_old_style_definition
4652         to flag_isoc2x if not set explicitly.
4654 2019-11-07  Joseph Myers  <joseph@codesourcery.com>
4656         * c-attribs.c (parse_tm_stmt_attr): Handle scoped attributes.
4658 2019-11-05  Jason Merrill  <jason@redhat.com>
4660         * c-opts.c (c_common_post_options): -fconcepts-ts implies
4661         -fconcepts.
4663 2019-11-04  Kamlesh Kumar  <kamleshbhalui@gmail.com>
4665         * c-opts.c (c_common_post_options): Update
4666         latest_abi_version.
4668 2019-11-02  Jakub Jelinek  <jakub@redhat.com>
4670         * c-common.h (c_omp_get_context_selector): Remove.
4671         * c-omp.c (c_omp_get_context_selector): Moved to omp-general.c
4672         and renamed to omp_get_context_selector.
4674         * c-omp.c (c_omp_mark_declare_variant): Use
4675         omp_context_selector_set_compare.
4677         PR c++/88335 - Implement P1073R3: Immediate functions
4678         * c-common.h (enum rid): Add RID_CONSTEVAL.
4679         * c-common.c (c_common_reswords): Add consteval.
4681 2019-11-01  Martin Sebor  <msebor@redhat.com>
4683         PR middle-end/91679
4684         PR middle-end/91647
4685         PR middle-end/91463
4686         PR middle-end/92312
4687         * c-pretty-print.c (direct_abstract_declarator): Print
4688         bound in zero-length arrays.
4689         * c.opt (-Wzero-length-bounds): New option.
4691 2019-10-30  Nathan Sidwell  <nathan@acm.org>
4693         * c-cppbuiltin.c (c_cpp_builtins): Add 'L' suffix to feature
4694         macros.
4696 2019-10-28  Martin Sebor  <msebor@redhat.com>
4698         PR c/66970
4699         * c-common.c (c_common_nodes_and_builtins): Call c_define_builtins
4700         even when only preprocessing.
4701         * c-common.h (names_builtin_p): Declare new function.
4702         * c-lex.c (init_c_lex): Set has_builtin.
4703         (c_common_has_builtin): Define a new function.
4704         * c-ppoutput.c (init_pp_output): Set has_builtin.
4706 2019-10-24  Jakub Jelinek  <jakub@redhat.com>
4708         * c-common.h (c_omp_context_selector_matches): Remove.
4709         * c-omp.c (c_omp_context_selector_matches): Remove.
4710         * c-attribs.c (c_common_attribute_table): Add
4711         "omp declare target {host,nohost,block}" attributes.
4713 2019-10-17  JeanHeyd Meneide  <phdofthehouse@gmail.com>
4715         * c-lex.c (c_common_has_attribute): Update nodiscard value.
4717 2019-10-14  Richard Sandiford  <richard.sandiford@arm.com>
4719         * c-common.h (user_facing_original_type_p): Declare.
4720         * c-common.c: Include c-spellcheck.h.
4721         (user_facing_original_type_p): New function.
4723 2019-10-12  Jakub Jelinek  <jakub@redhat.com>
4725         * c-common.h (c_omp_mark_declare_variant,
4726         c_omp_context_selector_matches): Declare.
4727         * c-omp.c: Include attribs.h, gimplify.h, cgraph.h, symbol-summary.h
4728         and hsa-common.h.
4729         (c_omp_get_context_selector): Support second argument NULL.
4730         (c_omp_mark_declare_variant, c_omp_context_selector_matches): New
4731         functions.
4732         * c-attribs.c (c_common_attribute_table): Remove "omp declare variant"
4733         attribute, add "omp declare variant base" and
4734         "omp declare variant variant" attributes.
4736 2019-10-11  Joseph Myers  <joseph@codesourcery.com>
4738         * c.opt (Wc11-c2x-compat): Add CPP(cpp_warn_c11_c2x_compat)
4739         CppReason(CPP_W_C11_C2X_COMPAT).
4741 2019-10-11  Joseph Myers  <joseph@codesourcery.com>
4743         * c-common.c (c_common_reswords): Do not use D_EXT for _Decimal32,
4744         _Decimal64 and _Decimal128.
4746 2019-10-10  Joseph Myers  <joseph@codesourcery.com>
4748         * c-cppbuiltin.c (c_cpp_builtins): Do not define macros for DFP
4749         types if DFP not supported.
4751 2019-10-10  Jakub Jelinek  <jakub@redhat.com>
4753         * c-common.h (c_omp_check_context_selector,
4754         c_omp_get_context_selector): Declare.
4755         * c-omp.c (c_omp_declare_simd_clauses_to_numbers): Fix spelling
4756         in diagnostic message.
4757         (c_omp_check_context_selector, c_omp_get_context_selector): New
4758         functions.
4759         * c-attribs.c (c_common_attribute_table): Add "omp declare variant"
4760         attribute.
4761         (handle_omp_declare_variant_attribute): New function.
4763 2019-10-09  Martin Sebor  <msebor@redhat.com>
4765         PR tree-optimization/90879
4766         * c.opt (-Wstring-compare): New option.
4768 2019-10-08  Andrew Sutton  <asutton@lock3software.com>
4769             Jason Merrill  <jason@redhat.com>
4771         Update the concepts implementation to conform to the C++20
4772         specification, improve compile times, and generally clean up
4773         the implementation.
4775         * c-cppbuiltin.c (c_cpp_builtins): Use new feature test values for
4776         concepts when -std=c++2a. Bump __cpp_concepts to 201907.
4777         * c.opt: Add -Wconcepts-ts.
4778         * c-opts.c (c_common_post_options): Warn when -fconcepts is used
4779         with -std=c++2a. Disable warning for -fconcepts in C++20 mode.
4780         (set_std_cxx2a): Enable concepts by default.
4782 2019-10-08  Joseph Myers  <joseph@codesourcery.com>
4784         * c-opts.c (c_common_post_options): Set
4785         -fno-fp-int-builtin-inexact for C2X.
4787 2019-10-05  Jakub Jelinek  <jakub@redhat.com>
4789         PR c++/91369 - Implement P0784R7: constexpr new
4790         * c-cppbuiltin.c (c_cpp_builtins): Predefine
4791         __cpp_constexpr_dynamic_alloc=201907 for -std=c++2a.
4793 2019-10-04  Joseph Myers  <joseph@codesourcery.com>
4795         PR c/82752
4796         * c-format.c (C_STD_VER): Handle C2x.
4797         (C_STD_NAME): Likewise.
4798         (strftime_flag_specs): Add 'O' modifier with 'p' flag.
4799         (time_char_table): Use separate entry for 'B' and 'b', with 'O'
4800         modifier allowed and 'p' flag.
4801         * c-format.h (enum format_std_version): Add STD_C2X.
4802         (struct format_char_info): Mention 'p' in comment on flags2.
4804 2019-10-01  David Malcolm  <dmalcolm@redhat.com>
4806         * c-opts.c (c_diagnostic_finalizer): Temporarily clear prefix when
4807         calling diagnostic_show_locus, rather than destroying it afterwards.
4809 2019-10-01  Jakub Jelinek  <jakub@redhat.com>
4811         PR c++/91925
4812         * c-warn.c (check_alignment_of_packed_member): Ignore FIELD_DECLs
4813         with NULL DECL_FIELD_OFFSET.
4815 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
4817         * c-pretty-print.c (pp_c_specifier_qualifier_list): If a vector type
4818         has a type name, use it in preference to the __vector syntax.
4820 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
4822         * c-pretty-print.c (pp_c_parameter_type_list): Avoid printing
4823         two spaces between a comma and "...".
4825 2019-09-27  Jakub Jelinek  <jakub@redhat.com>
4827         PR c++/88203
4828         * c-common.h (c_omp_predefined_variable): Declare.
4829         * c-omp.c (c_omp_predefined_variable): New function.
4830         (c_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
4831         for predefined variables.
4833 2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>
4835         * c-common.h (build_function_call_vec): Take the original
4836         function decl as an optional final parameter.
4837         (check_builtin_function_arguments): Take the original function decl.
4838         * c-common.c (check_builtin_function_arguments): Likewise.
4839         Handle all built-in functions, not just BUILT_IN_NORMAL ones.
4840         Use targetm.check_builtin_call to check BUILT_IN_MD functions.
4842 2019-09-15  Jason Merrill  <jason@redhat.com>
4844         * c-warn.c (warn_logical_operator): Strip location wrappers.  Don't
4845         fold_for_warn in "|| mask" warning.
4847 2019-09-10  Martin Liska  <mliska@suse.cz>
4849         * c.opt: Use newly added WarnRemoved.
4851 2019-09-09  Martin Liska  <mliska@suse.cz>
4853         * c.opt: Update comment of removed
4854         options that are preserved only for backward
4855         compatibility.
4857 2019-09-06  Martin Liska  <mliska@suse.cz>
4859         PR c++/91125
4860         * c-common.c: Remove definition of flag_use_repository.
4861         * c-common.h: Likewise.
4862         * c-opts.c (c_common_handle_option):
4863         Do not handle OPT_frepo option.
4864         * c.opt: Mark the option with Deprecated.
4866 2019-09-04  Marek Polacek  <polacek@redhat.com>
4868         * c.opt (fdeduce-init-list): Ignored.
4870 2019-09-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4872         PR c/78736
4873         * c.opt (Wenum-conversion): New option.
4875 2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4877         * c-attribs.c (handle_section_attribute): Call the
4878         handle_generic_attribute target hook after performing target
4879         independent processing.
4880         (handle_noinit_attribute): Likewise.
4882 2019-09-03  Ian Lance Taylor  <iant@golang.org>
4884         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Always expand
4885         when using -fgo-dump-spec.
4887 2019-09-02  Martin Liska  <mliska@suse.cz>
4889         PR c++/91155
4890         * c-common.c (fname_as_string): Use cxx_printable_name for
4891         __PRETTY_FUNCTION__ same as was used before r265711.
4893 2019-08-28  Marek Polacek  <polacek@redhat.com>
4895         Implement P1152R4: Deprecating some uses of volatile.
4896         PR c++/91361
4897         * c-opts.c (c_common_post_options): Enable -Wvolatile by
4898         default for C++2a, unless -Wno-deprecated.
4899         * c.opt (Wvolatile): New warning.
4901 2019-08-28  Marek Polacek  <polacek@redhat.com>
4903         PR c++/91360 - Implement C++20 P1143R2: constinit.
4904         * c-common.c (c_common_reswords): Add constinit and __constinit.
4905         (keyword_is_decl_specifier): Handle RID_CONSTINIT.
4906         * c-common.h (enum rid): Add RID_CONSTINIT, RID_FIRST_CXX20, and
4907         RID_LAST_CXX20.
4908         (D_CXX20): Define.
4909         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_constinit.
4910         * c-format.c (cxx_keywords): Add "constinit".
4911         * c.opt (Wc++2a-compat, Wc++20-compat): New options.
4913 2019-08-27  Jakub Jelinek  <jakub@redhat.com>
4915         PR c++/91415
4916         * c-common.c (verify_tree): For LSHIFT_EXPR, RSHIFT_EXPR,
4917         COMPONENT_REF and ARRAY_REF in cxx_dialect >= cxx17 mode handle it
4918         like COMPOUND_EXPR rather than normal expression.
4920 2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>
4922         PR pch/61250
4923         * c-lex.c (c_lex_with_flags):  Don't call
4924         c_common_no_more_pch () from here.
4926 2019-08-23  Jakub Jelinek  <jakub@redhat.com>
4928         PR middle-end/91283
4929         * c-common.c (c_ts18661_flt_eval_method): Use flag_excess_precision
4930         instead of flag_excess_precision_cmdline.
4931         * c-cppbuiltin.c (c_cpp_flt_eval_method_iec_559): Likewise.
4932         * c-opts.c (c_common_post_options): Likewise.
4934 2019-08-22  Martin Sebor  <msebor@redhat.com>
4936         PR middle-end/91490
4937         * c-common.c (braced_list_to_string): Add argument and overload.
4938         Handle flexible length arrays and unions.
4940 2019-08-21  Eric Botcazou  <ebotcazou@adacore.com>
4942         * c-ada-spec.c (dump_ada_function_declaration): Be prepared for broken
4943         function declarations where arguments are missing.  Rename variables.
4945 2019-08-15  Richard Biener  <rguenther@suse.de>
4947         * c-common.c (c_stddef_cpp_builtins): When the GIMPLE FE is
4948         enabled, define __SIZETYPE__.
4950 2019-08-14  Christophe Lyon  <christophe.lyon@linaro.org>
4952         * c-attribs.c (c_common_attribute_table): Add "noinit" entry. Add
4953         exclusion with "section" attribute.
4954         (attr_noinit_exclusions): New table.
4955         (handle_noinit_attribute): New function.
4957 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
4959         PR middle-end/91421
4960         * c-common.c (resolve_overloaded_builtin): Use
4961         copy_decl_built_in_function.
4963 2019-08-13  Martin Sebor  <msebor@redhat.com>
4965         PR c/80619
4966         * c-format.c (printf_length_specs): Set FMT_LEN_w for "w".
4967         (asm_fprintf_length_spec): Same.
4968         * c-format.h (format_lengths): Add FMT_LEN_w.
4970 2019-08-10  Jakub Jelinek  <jakub@redhat.com>
4972         * c-pragma.h (enum pragma_omp_clause): Add
4973         PRAGMA_OMP_CLAUSE_DEVICE_TYPE.
4975 2019-08-07  Jakub Jelinek  <jakub@redhat.com>
4977         * c-pragma.h (enum pragma_omp_clause): Add
4978         PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.  Set PRAGMA_OACC_CLAUSE_USE_DEVICE
4979         equal to PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR instead of being a separate
4980         enumeration value.
4982 2019-08-05  Marek Polacek  <polacek@redhat.com>
4984         PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
4985         * c-opts.c (c_common_post_options): Enable -Wcomma-subscript by
4986         default for C++2a, unless -Wno-deprecated.
4987         * c.opt (Wcomma-subscript): New warning.
4989 2019-07-20  Jakub Jelinek  <jakub@redhat.com>
4991         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_LOOP.
4992         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_BIND.
4993         * c-pragma.c (omp_pragmas_simd): Add PRAGMA_OMP_LOOP entry.
4994         * c-common.h (enum c_omp_clause_split): Add C_OMP_CLAUSE_SPLIT_LOOP.
4995         * c-omp.c (c_omp_split_clauses): Add support for 4 new combined
4996         constructs with the loop construct.
4998 2019-07-13  Jakub Jelinek  <jakub@redhat.com>
5000         PR c/91149
5001         * c-omp.c (c_omp_split_clauses): Fix a pasto in
5002         OMP_CLAUSE_REDUCTION_TASK handling.
5004 2019-07-12  Jakub Jelinek  <jakub@redhat.com>
5006         * c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ORDER.
5007         * c-omp.c (c_omp_split_clauses): Handle splitting of OMP_CLAUSE_ORDER.
5009 2019-07-09  Martin Sebor  <msebor@redhat.com>
5011         PR c++/61339
5012         * c-opts.c (handle_deferred_opts): Change class-key of PODs to struct
5013         and others to class.
5014         * c-pretty-print.h: Same.
5016 2019-07-09  Martin Sebor  <msebor@redhat.com>
5018         PR c++/61339
5019         * c-format.c (check_argument_type): Change class-key from class to
5020         struct and vice versa to match convention and avoid -Wclass-is-pod
5021         and -Wstruct-no-pod.
5022         * c-pretty-print.h: Same.
5024 2019-07-03  Martin Liska  <mliska@suse.cz>
5026         * c-common.c (try_to_locate_new_include_insertion_point): Remove
5027         dead assignemts.
5029 2019-07-03  Jakub Jelinek  <jakub@redhat.com>
5031         * c-omp.c (c_omp_split_clauses): Put OMP_CLAUSE_REDUCTION_INSCAN
5032         clauses on OMP_FOR rather than OMP_PARALLEL when OMP_FOR is combined
5033         with OMP_PARALLEL.
5035 2019-07-02  qing zhao  <qing.zhao@oracle.com>
5037         PR preprocessor/90581
5038         * c-opts.c (c_common_handle_option): Handle -fmax-include-depth.
5039         * c.opt: Add new option -fmax-include-depth.
5041 2019-06-26  Jason Merrill  <jason@redhat.com>
5043         PR c++/55442 - memory-hog with highly recursive constexpr.
5044         * c.opt (fconstexpr-loop-limit): New.
5046 2019-06-25  Jakub Jelinek  <jakub@redhat.com>
5048         PR sanitizer/90954
5049         * c-omp.c (c_finish_omp_atomic): Allow tree_invariant_p in addition
5050         to SAVE_EXPR in first operand of a COMPOUND_EXPR.
5052 2019-06-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5054         * c-common.c (c_common_nodes_and_builtins): Define
5055         alternate "__intN__" name for "__intN" types.
5057 2019-06-24  Jan Hubicka  <jh@suse.cz>
5059         * c-common.c (braced_lists_to_strings): Check that
5060         type is array or integer prior checking string flag.
5062 2019-06-21  Matthew Beliveau  <mbelivea@redhat.com>
5064         PR c++/90875 - added -Wswitch-outside-range option
5065         * c.opt (Wswitch-outside-range): Added new option.
5066         * c-warn.c (c_do_switch_warnings): Use OPT_Wswitch-outside-range.
5068 2019-06-21  Marek Polacek  <polacek@redhat.com>
5070         PR c++/90953 - ICE with -Wmissing-format-attribute.
5071         * c-common.c (check_function_arguments_recurse): Use
5072         get_attribute_name.
5073         (check_missing_format_attribute): Likewise.
5075 2019-06-19  Marek Polacek  <polacek@redhat.com>
5077         PR c++/60364 - noreturn after first decl not diagnosed.
5078         * c-attribs.c (handle_noreturn_attribute): No longer static.
5079         * c-common.h (handle_noreturn_attribute, attr_noreturn_exclusions):
5080         Declare.
5081         * c-format.c (check_function_format): Use get_attribute_name.
5083 2019-06-19  Martin Sebor  <msebor@redhat.com>
5085         PR translation/90156
5086         * c-format.c (function_format_info::format_type): Adjust type.
5087         (function_format_info::is_raw): New member.
5088         (decode_format_type): Adjust signature.  Handle "raw" diag attributes.
5089         (decode_format_attr): Adjust call to decode_format_type.
5090         Avoid a redundant call to convert_format_name_to_system_name.
5091         Avoid abbreviating the word "arguments" in a diagnostic.
5092         (format_warning_substr): New function.
5093         (avoid_dollar_number): Quote dollar sign in a diagnostic.
5094         (finish_dollar_format_checking): Same.
5095         (check_format_info): Same.
5096         (struct baltoks_t): New.
5097         (c_opers, c_keywords, cxx_keywords, badwords, contrs): New arrays.
5098         (maybe_diag_unbalanced_tokens, check_tokens, check_plain): New
5099         functions.
5100         (check_format_info_main): Call check_plain.  Use baltoks_t.  Call
5101         maybe_diag_unbalanced_tokens.
5102         (handle_format_attribute): Spell out the word "arguments" in
5103         a diagnostic.
5105 2019-06-11  Matthew Beliveau  <mbelivea@redhat.com>
5107         PR c++/90449 - add -Winaccessible-base option.
5108         * c.opt (Winaccessible-base): New option.
5110 2019-06-10  Jakub Jelinek  <jakub@redhat.com>
5112         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_SCAN.
5113         * c-pragma.c (omp_pragmas_simd): Add #pragma omp scan.
5114         * c-omp.c (c_omp_split_clauses): Diagnose inscan reductions on
5115         combined/composite constructs where it is not allowed.  Copy over
5116         OMP_CLAUSE_REDUCTION_INSCAN.
5118 2019-06-05  Martin Sebor  <msebor@redhat.com>
5120         * c-attribs.c (handle_mode_attribute): Adjust quoting and hyphenation.
5121         (handle_alias_ifunc_attribute): Same.
5122         (handle_copy_attribute): Same.
5123         (handle_weakref_attribute): Same.
5124         (handle_nonnull_attribute): Same.
5125         * c-warn.c (warn_for_sign_compare): Same.
5126         (warn_for_restrict): Same.
5127         * c.opt: Same.
5129 2019-06-05  Martin Sebor  <msebor@redhat.com>
5131         * c-pragma.c (handle_pragma_weak): Adjust quoting in a diagnostic.
5132         * c.opt (-Wformat-diag): Remove a spurious period.
5134 2019-05-29  Jakub Jelinek  <jakub@redhat.com>
5136         PR c/90628
5137         * c-common.c (check_builtin_function_arguments)
5138         <case BUILTIN_*_OVERFLOW>: Diagnose pointer to const qualified integer
5139         as last argument.
5141 2019-05-23  Eric Botcazou  <ebotcazou@adacore.com>
5143         * c-ada-spec.c (compare_node): Compare the DECL_UIDs as a last resort.
5145 2019-05-22  Martin Liska  <mliska@suse.cz>
5147         PR lto/90500
5148         * c-attribs.c (handle_copy_attribute): Do not copy
5149         target_clones attribute.
5151 2019-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5153         * c-ada-spec.h (enum cpp_operation): Add IS_ASSIGNMENT_OPERATOR.
5154         * c-ada-spec.c (print_assignment_operator): New function.
5155         (dump_ada_declaration) <FUNCTION_DECL>: Call it do dump explicit copy
5156         assignment operators declared as methods and filter out the others.
5158 2019-05-17  Thomas Schwinge  <thomas@codesourcery.com>
5160         PR c/89433
5161         * c-attribs.c (c_common_attribute_table): Set min_len to -1 for
5162         "omp declare target".
5164 2019-05-16  Martin Sebor  <msebor@redhat.com>
5166         * c-attribs.c (handle_no_sanitize_attribute): Quote identifiers,
5167         keywords, operators, and types in diagnostics.
5168         (handle_scalar_storage_order_attribute): Same.
5169         (handle_mode_attribute): Same.
5170         (handle_visibility_attribute): Same.
5171         (handle_assume_aligned_attribute): Same.
5172         (handle_no_split_stack_attribute): Same.
5173         * c-common.c (shorten_compare): Same.
5174         (c_common_truthvalue_conversion): Same.
5175         (cb_get_source_date_epoch): Same.
5176         * c-lex.c (cb_def_pragma): Quote keywords, operators, and types
5177         in diagnostics.
5178         (interpret_float): Same.
5179         * c-omp.c (c_finish_omp_for): Same.
5180         * c-opts.c (c_common_post_options): Same.
5181         * c-pch.c (c_common_pch_pragma): Same.
5182         * c-pragma.c (pop_alignment): Same.
5183         (handle_pragma_pack): Same.
5184         (apply_pragma_weak): Same.
5185         (handle_pragma_weak): Same.
5186         (handle_pragma_scalar_storage_order): Same.
5187         (handle_pragma_redefine_extname): Same.
5188         (add_to_renaming_pragma_list): Same.
5189         (maybe_apply_renaming_pragma): Same.
5190         (push_visibility): Same.
5191         (handle_pragma_visibility): Same.
5192         (handle_pragma_optimize): Same.
5193         (handle_pragma_message): Same.
5194         * c-warn.c (warn_for_omitted_condop): Same.
5195         (lvalue_error): Same.
5197 2019-05-15  Richard Biener  <rguenther@suse.de>
5199         PR c/90474
5200         * c-common.c (c_common_mark_addressable_vec): Also mark
5201         a COMPOUND_LITERAL_EXPR_DECL addressable similar to
5202         c_mark_addressable.
5204 2019-05-06  Nathan Sidwell  <nathan@acm.org>
5206         * c-opts.c (handle_defered_opts): Rename struct deps to struc mkdeps.
5208 2019-04-30  Nathan Sidwell  <nathan@acm.org>
5210         * c-common.c (c_common_init_ts): Use MARK_TS_EXP.  Mark SIZEOF_EXPR.
5212 2019-04-30  Martin Liska  <mliska@suse.cz>
5214         * c-pragma.c (handle_pragma_diagnostic): Provide hints
5215         for unknown options.
5217 2019-04-26  Richard Sandiford  <richard.sandiford@arm.com>
5219         * c-warn.c (strict_aliasing_warning): Apply COMPLETE_TYPE_P to
5220         the pointer target rather than the pointer itself.
5222 2019-04-19  Jakub Jelinek  <jakub@redhat.com>
5224         PR c/89888
5225         * c-common.h (c_add_case_label): Remove orig_type and outside_range_p
5226         arguments.
5227         (c_do_switch_warnings): Remove outside_range_p argument.
5228         * c-common.c (check_case_bounds): Removed.
5229         (c_add_case_label): Remove orig_type and outside_range_p arguments.
5230         Don't call check_case_bounds.  Fold low_value as well as high_value.
5231         * c-warn.c (c_do_switch_warnings): Remove outside_range_p argument.
5232         Check for case labels outside of range of original type here and
5233         adjust them.
5235 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
5237         PR translation/90041
5238         * c.opt (-fhandle-exceptions): Use %< and %> around option names
5239         in the Warn diagnostics.
5241         PR c/89946
5242         * c-attribs.c (handle_patchable_function_entry_attribute): Add
5243         function comment.  Warn if arguments of the attribute are not positive
5244         integer constants.
5246 2019-04-09  Eric Botcazou  <ebotcazou@adacore.com>
5248         * c-ada-spec.c (print_destructor): Deal with deleting destructors.
5249         (dump_ada_declaration) <FUNCTION_DECL>: Likewise.
5251 2019-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5253         * c-ada-spec.c (is_float128): New predicate extracted from...
5254         (dump_ada_node) <COMPLEX_TYPE>: Use it to recognize __cfloat128.
5255         <REAL_TYPE>: ...here.  Call it.
5257 2019-04-05  David Malcolm  <dmalcolm@redhat.com>
5259         PR c/89985
5260         * c-warn.c (check_address_or_pointer_of_packed_member): Add
5261         auto_diagnostic_group.  Guard inform calls by result of
5262         warning_at call.
5264 2019-04-05  Marek Polacek  <polacek@redhat.com>
5266         PR c++/89973 - -Waddress-of-packed-member ICE with invalid conversion.
5267         * c-warn.c (check_address_or_pointer_of_packed_member): Check the type
5268         of RHS.
5270 2019-04-03  Jason Merrill  <jason@redhat.com>
5272         PR c++/86586 - -fcompare-debug=-Wsign-compare.
5273         * c-warn.c (warn_for_sign_compare): Call fold_for_warn.
5275 2019-04-01  Martin Sebor  <msebor@redhat.com>
5277         PR c/89685
5278         * c-attribs.c (handle_copy_attribute): Handle references and
5279         non-constant expressions.
5281 2019-03-22  Jakub Jelinek  <jakub@redhat.com>
5283         PR c++/87481
5284         * c.opt (-fconstexpr-ops-limit=): New option.
5286 2019-03-21  Jakub Jelinek  <jakub@redhat.com>
5288         * c-common.c (per_file_includes_t): Use false as Lazy in hash_set
5289         template param.
5291 2019-03-19  Martin Sebor  <msebor@redhat.com>
5293         PR tree-optimization/89688
5294         * c-common.c (braced_list_to_string): Make static.
5295         (braced_lists_to_strings): Define new function.
5296         * c-common.h (braced_list_to_string): Remove.
5297         (braced_lists_to_strings): Declare.
5299 2019-03-12  Martin Liska  <mliska@suse.cz>
5301         * c-opts.c (c_common_handle_option): Wrap option with %< and %>.
5303 2019-03-11  Martin Liska  <mliska@suse.cz>
5305         * c-opts.c (c_common_post_options): Wrap apostrophes
5306         in gcc internal format with %'.
5308 2019-03-11  Martin Liska  <mliska@suse.cz>
5310         * c-attribs.c (handle_nocf_check_attribute): Wrap an option name
5311         in a string format message and fix GNU coding style.
5312         * c-common.c (vector_types_convertible_p): Likewise.
5313         (c_build_vec_perm_expr): Likewise.
5314         * c-indentation.c (get_visual_column): Likewise.
5315         * c-opts.c (c_common_handle_option): Likewise.
5316         (c_common_post_options): Likewise.
5317         (sanitize_cpp_opts): Likewise.
5318         * c-pch.c (c_common_pch_pragma): Likewise.
5319         * c-pragma.c (handle_pragma_pack): Likewise.
5321 2019-03-08  Jakub Jelinek  <jakub@redhat.com>
5323         PR tree-optimization/89550
5324         * c-common.c (c_common_truthvalue_conversion): Only set
5325         TREE_NO_WARNING if warning_at returned true.
5326         * c-warn.c (overflow_warning, warn_logical_operator): Likewise.
5328 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
5329             Martin Sebor  <msebor@gmail.com>
5331         * c.opt (Wmissing-attributes): Clean up doc string.
5333 2019-02-25  Jakub Jelinek  <jakub@redhat.com>
5335         PR c/89495
5336         * c-format.c (maybe_read_dollar_number): Compute nargnum in
5337         HOST_WIDE_INT type to avoid overflows and change overflow_flag
5338         checking.
5340 2019-02-22  Richard Biener  <rguenther@suse.de>
5342         * c-pch.c (no_checksum): Remove.
5343         (pch_init): Remove assertion that executable_checksum is not
5344         all zero.
5345         (c_common_valid_pch): Likewise.
5347 2019-02-18  Martin Sebor  <msebor@redhat.com>
5349         PR middle-end/89294
5350         * c-common.c (invalid_array_size_error): Handle cst_size_not_constant.
5352 2019-02-16  David Malcolm  <dmalcolm@redhat.com>
5354         PR c++/88680
5355         * c-common.c (shorten_compare): Call fold_for_warn on op0 when
5356         implementing -Wtype-limits.
5358 2019-02-11  Martin Sebor  <msebor@redhat.com>
5360         PR c++/87996
5361         * c-common.c (invalid_array_size_error): New function.
5362         (valid_array_size_p): Call it.  Handle size as well as type.
5363         * c-common.h (valid_constant_size_p): New function.
5364         (enum cst_size_error): New type.
5366 2019-01-31  David Malcolm  <dmalcolm@redhat.com>
5368         PR c/89122
5369         * known-headers.cc (get_stdlib_header_for_name): Add
5370         {FLT|DBL|LDBL}_{MAX|MIN} to "hints" array.
5372 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
5374         PR libstdc++/88170
5375         * c-pretty-print.c (pp_c_enumeration_constant): Print always as
5376         a C cast in pp_c_flag_gnu_v3 mode.
5378 2019-01-29  Jakub Jelinek  <jakub@redhat.com>
5380         PR c/86125
5381         * c-common.c (c_common_nodes_and_builtins): Build type variants for
5382         builtin_structptr_types types even for C.
5384 2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5386         * c-warn.c (check_address_or_pointer_of_packed_member): Handle the case
5387         when rhs is of array type correctly.  Fix handling of nested structures.
5388         Fix handling of indirect_ref together with nop_expr and/or addr_expr.
5389         (check_and_warn_address_or_pointer_of_packed_member): Fix handling of
5390         type casts within nested compound expressions.
5392 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
5394         PR middle-end/88968
5395         * c-omp.c (c_finish_omp_atomic): For bitfield atomics, update type
5396         variable after using BIT_FIELD_REF.
5398 2019-01-18  H.J. Lu  <hongjiu.lu@intel.com>
5400         PR c/51628
5401         PR c/88664
5402         * c-common.h (warn_for_address_or_pointer_of_packed_member):
5403         Remove the boolean argument.
5404         * c-warn.c (check_address_of_packed_member): Renamed to ...
5405         (check_address_or_pointer_of_packed_member): This.  Also
5406         warn pointer conversion.
5407         (check_and_warn_address_of_packed_member): Renamed to ...
5408         (check_and_warn_address_or_pointer_of_packed_member): This.
5409         Also warn pointer conversion.
5410         (warn_for_address_or_pointer_of_packed_member): Remove the
5411         boolean argument.  Don't check pointer conversion here.
5413 2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
5415         PR inline-asm/52813
5416         * c.opt (Wdeprecated): Move documentation and variable to common.opt.
5418 2019-01-14  Jakub Jelinek  <jakub@redhat.com>
5420         * c-cppbuiltin.c (c_cpp_builtin): Define __cpp_guaranteed_copy_elision
5421         and __cpp_nontype_template_parameter_auto.  Add a comment that
5422         __cpp_template_auto is deprecated.
5424 2019-01-14  Tom Honermann  <tom@honermann.net>
5426         Implement P0482R5, char8_t: A type for UTF-8 characters and strings
5427         * c-common.c (c_common_reswords): Add char8_t.
5428         (fix_string_type): Use char8_t for the type of u8 string literals.
5429         (c_common_get_alias_set): char8_t doesn't alias.
5430         (c_common_nodes_and_builtins): Define char8_t as a builtin type in
5431         C++.
5432         (c_stddef_cpp_builtins): Add __CHAR8_TYPE__.
5433         (keyword_begins_type_specifier): Add RID_CHAR8.
5434         * c-common.h (rid): Add RID_CHAR8.
5435         (c_tree_index): Add CTI_CHAR8_TYPE and CTI_CHAR8_ARRAY_TYPE.
5436         Define D_CXX_CHAR8_T and D_CXX_CHAR8_T_FLAGS.
5437         Define char8_type_node and char8_array_type_node.
5438         * c-cppbuiltin.c (cpp_atomic_builtins): Predefine
5439         __GCC_ATOMIC_CHAR8_T_LOCK_FREE.
5440         (c_cpp_builtins): Predefine __cpp_char8_t.
5441         * c-lex.c (lex_string): Use char8_array_type_node as the type of
5442         CPP_UTF8STRING.
5443         (lex_charconst): Use char8_type_node as the type of CPP_UTF8CHAR.
5444         * c-opts.c: If not otherwise specified, enable -fchar8_t when
5445         targeting C++2a.
5446         * c.opt: Add the -fchar8_t command line option.
5448 2019-01-14  Martin Sebor  <msebor@redhat.com>
5450         PR target/88638
5451         * c-attribs.c (positional_argument): Call valid_format_string_type_p
5452         and issue errors if it fails.
5453         * c-common.h (valid_format_string_type_p): Declare.
5454         * c-format.c (valid_stringptr_type_p): Rename...
5455         (valid_format_string_type_p): ...to this and make extern.
5456         (handle_format_arg_attribute): Adjust to new name.
5457         (check_format_string): Same.
5459 2019-01-13  H.J. Lu  <hongjiu.lu@intel.com>
5461         * c-warn.c (warn_for_address_or_pointer_of_packed_member):
5462         Replace "may may" with "may" in warning message.
5464 2019-01-07  Jakub Jelinek  <jakub@redhat.com>
5466         PR c++/85052
5467         * c-common.h (enum rid): Add RID_BUILTIN_CONVERTVECTOR.
5468         (c_build_vec_convert): Declare.
5469         * c-common.c (c_build_vec_convert): New function.
5471 2019-01-04  Martin Sebor  <msebor@redhat.com>
5473         PR c/88546
5474         * c-attribs.c (handle_copy_attribute): Avoid copying attribute leaf.
5475         Handle C++ empty throw specification and C11 _Noreturn.
5476         (has_attribute): Also handle C11 _Noreturn.
5478 2019-01-04  Martin Sebor  <msebor@redhat.com>
5480         PR c/88363
5481         * c-attribs.c (positional_argument): Also accept enumerated types.
5483 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
5485         Update copyright years.
5487 2018-12-20  H.J. Lu  <hongjiu.lu@intel.com>
5489         PR c/51628
5490         * c-common.h (warn_for_address_or_pointer_of_packed_member): New.
5491         * c-warn.c (check_alignment_of_packed_member): New function.
5492         (check_address_of_packed_member): Likewise.
5493         (check_and_warn_address_of_packed_member): Likewise.
5494         (warn_for_address_or_pointer_of_packed_member): Likewise.
5495         * c.opt: Add -Wno-address-of-packed-member.
5497 2018-12-20  David Malcolm  <dmalcolm@redhat.com>
5499         PR c++/87504
5500         * c-warn.c (get_outermost_macro_expansion): New function.
5501         (spelled_the_same_p): Use it to unwind the macro expansions, and
5502         compare the outermost macro in each nested expansion, rather than
5503         the innermost.
5505 2018-12-19  David Malcolm  <dmalcolm@redhat.com>
5507         PR c++/87504
5508         * c-common.h (warn_tautological_cmp): Convert 1st param from
5509         location_t to const op_location_t &.
5510         * c-warn.c (find_array_ref_with_const_idx_r): Call fold_for_warn
5511         when testing for INTEGER_CST.
5512         (warn_tautological_bitwise_comparison): Convert 1st param from
5513         location_t to const op_location_t &; use it to build a
5514         binary_op_rich_location, and use this.
5515         (spelled_the_same_p): New function.
5516         (warn_tautological_cmp): Convert 1st param from location_t to
5517         const op_location_t &.  Warn for macro expansions if
5518         spelled_the_same_p.  Use binary_op_rich_location.
5520 2018-12-19  David Malcolm  <dmalcolm@redhat.com>
5522         PR c++/43064
5523         PR c++/43486
5524         * c-common.c (unsafe_conversion_p): Fold any location wrapper.
5525         (verify_tree): Handle location wrappers.
5526         (c_common_truthvalue_conversion): Strip any location wrapper.
5527         Handle CONST_DECL.
5528         (fold_offsetof): Strip any location wrapper.
5529         (complete_array_type): Likewise for initial_value.
5530         (convert_vector_to_array_for_subscript): Call fold_for_warn on the
5531         index before checking for INTEGER_CST.
5532         * c-pretty-print.c (c_pretty_printer::primary_expression): Don't
5533         print parentheses around location wrappers.
5534         * c-warn.c (warn_logical_operator): Call fold_for_warn on op_right
5535         before checking for INTEGER_CST.
5536         (warn_tautological_bitwise_comparison): Call
5537         tree_strip_any_location_wrapper on lhs, rhs, and bitop's operand
5538         before checking for INTEGER_CST.
5539         (readonly_error): Strip any location wrapper.
5540         (warn_array_subscript_with_type_char): Strip location wrappers
5541         before checking for INTEGER_CST.  Use the location of the index if
5542         available.
5544 2018-12-06  Jason Merrill  <jason@redhat.com>
5546         PR c++/88136 - -Wdeprecated-copy false positives
5547         * c.opt (Wdeprecated-copy-dtor): New.
5548         (Wdeprecated-copy): Move to -Wextra.
5550 2018-11-29  Martin Sebor  <msebor@redhat.com>
5552         PR c/88172
5553         PR testsuite/88208
5554         * c-attribs.c (common_handle_aligned_attribute): Silently avoid setting
5555         alignments to values less than the target requires.
5556         (has_attribute): For attribute aligned consider both the attribute
5557         and the alignment bits.
5558         * c-common.c (c_init_attributes): Optionally issue a warning for
5559         zero alignment.
5561 2018-11-28  Martin Sebor  <msebor@redhat.com>
5563         PR c/88065
5564         PR c/87297
5565         * c-warn.c (sizeof_pointer_memaccess_warning): Bail if source
5566         or destination is an error.
5568 2018-11-28  Jakub Jelinek  <jakub@redhat.com>
5570         PR c++/88215
5571         * c-ubsan.c: Include langhooks.h.
5572         (ubsan_instrument_division): Change gcc_assert that main variants
5573         of op0 and op1 types are equal to gcc_checking_assert that the
5574         main variants are compatible types.
5576 2018-11-27  Eric Botcazou  <ebotcazou@adacore.com>
5578         * c-ada-spec.c: Include stringpool.h.
5579         (has_static_fields): Return false for incomplete types.
5580         (is_tagged_type): Likewise.
5581         (has_nontrivial_methods): Likewise.
5582         (dump_ada_node) <INTEGER_TYPE>: Deal specifically with __int128.
5583         (struct overloaded_name_hash): New structure.
5584         (struct overloaded_name_hasher): Likewise.
5585         (overloaded_names): New global variable.
5586         (init_overloaded_names): New static function.
5587         (overloaded_name_p): New predicate.
5588         (dump_ada_declaration) <TYPE_DECL>: Tidy up and set TREE_VISITED
5589         on the TYPE_STUB_DECL of the original type of a typedef, if any.
5590         <FUNCTION_DECL>: Bail out for an unsupported overloaded name.
5591         Remove always-true condition and dump forward types.
5592         (dump_ada_specs): Delete overloaded_names.
5594 2018-11-20  Martin Sebor  <msebor@redhat.com>
5596         * c-attribs.c (type_for_vector_size): New function.
5597         (type_valid_for_vector_size): Same.
5598         (handle_vector_size_attribute): Move code to the functions above
5599         and call them.
5600         (validate_attribute, has_attribute): New functions.
5601         * c-common.h (has_attribute): Declare.
5602         (rid): Add RID_HAS_ATTRIBUTE_EXPRESSION.
5603         * c-common.c (c_common_resword): Same.
5605 2018-11-16  Jason Merrill  <jason@redhat.com>
5607         * c-lex.c (c_common_has_attribute): Handle likely/unlikely.
5608         * c-attribs.c (attr_cold_hot_exclusions): Make public.
5610 2018-11-16  Jakub Jelinek  <jakub@redhat.com>
5612         PR middle-end/87854
5613         * c-common.c (fix_string_type): Reject string literals larger than
5614         TYPE_MAX_VALUE (ssizetype) bytes.
5616 2018-11-15  Martin Sebor  <msebor@redhat.com>
5618         PR c++/87541
5619         PR c++/87542
5620         * c-attribs.c (positional_argument): New function.
5621         (handle_alloc_size_attribute): Use it and simplify.
5622         (handle_alloc_align_attribute): Same.
5623         (handle_assume_aligned_attribute): Same.
5624         (handle_nonnull_attribute): Same.
5625         * c-common.c (check_function_arguments): Pass fntype to
5626         check_function_format.
5627         * c-common.h (check_function_format): Add an argument.
5628         (PosArgFlags, positional_argument): Declare new type and function.
5629         * c-format.c (decode_format_attr): Add arguments.
5630         (check_format_string, get_constant): Same.
5631         (convert_format_name_to_system_name): Adjust.
5633 2018-11-15  David Malcolm  <dmalcolm@redhat.com>
5635         PR other/19165
5636         * c-opts.c (c_diagnostic_finalizer): Add diagnostic_t param.
5638 2018-11-14  Jakub Jelinek  <jakub@redhat.com>
5640         P1236R1 - Signed integers are two's complement
5641         * c-warn.c (maybe_warn_shift_overflow): Don't warn for c++2a.
5642         * c-ubsan.c (ubsan_instrument_shift): Make signed shifts
5643         with in-range second operand well defined for -std=c++2a.
5645         PR other/88007
5646         * c-common.c (parse_optimize_options): Allocate option string from
5647         opts_obstack rather than as GC memory.  Move the allocation after
5648         warning for invalid option.
5650 2018-11-13  David Malcolm  <dmalcolm@redhat.com>
5652         * c-common.c (c_get_substring_location): Update for renaming of
5653         get_source_location_for_substring to get_location_within_string.
5654         * c-lex.c: Replace "source_location" with "location_t".
5655         * c-opts.c: Likewise.
5656         * c-ppoutput.c: Likewise.
5658 2018-11-13  Martin Sebor  <msebor@redhat.com>
5660         PR middle-end/81824
5661         * c-attribs.c (handle_copy_attribute): Exclude inlining attributes.
5662         (handle_tls_model_attribute): Improve diagnostics.
5664 2018-11-12  Jason Merrill  <jason@redhat.com>
5666         * c-cppbuiltin.c (c_cpp_builtins): Define
5667         __cpp_impl_destroying_delete.
5669         * c-cppbuiltin.c (c_cpp_builtins): Change __cpp_explicit_bool to
5670         __cpp_conditional_explicit.
5672 2018-11-09  Martin Sebor  <msebor@redhat.com>
5674         PR middle-end/81824
5675         * c-attribs.c (handle_copy_attribute): New function.
5677 2018-11-09  Martin Sebor  <msebor@redhat.com>
5679         PR c/87795
5680         * c-common.c (check_user_alignment): Use MAX_OFILE_ALIGNMENT.
5682 2018-11-08  Jakub Jelinek  <jakub@redhat.com>
5684         * c-common.h (c_finish_omp_taskgroup): Add CLAUSES argument.
5685         (c_finish_omp_atomic): Replace bool SEQ_CST argument with
5686         enum omp_memory_order MEMORY_ORDER.
5687         (c_finish_omp_flush): Add MO argument.
5688         (c_omp_depend_t_p, c_finish_omp_depobj): Declare.
5689         (c_finish_omp_for): Add FINAL_P argument.
5690         * c-omp.c: Include memmodel.h.
5691         (c_finish_omp_taskgroup): Add CLAUSES argument.  Set
5692         OMP_TASKGROUP_CLAUSES to it.
5693         (c_finish_omp_atomic): Replace bool SEQ_CST argument with
5694         enum omp_memory_order MEMORY_ORDER.  Set OMP_ATOMIC_MEMORY_ORDER
5695         instead of OMP_ATOMIC_SEQ_CST.
5696         (c_omp_depend_t_p, c_finish_omp_depobj): New functions.
5697         (c_finish_omp_flush): Add MO argument, if not MEMMODEL_LAST, emit
5698         __atomic_thread_fence call with the given value.
5699         (check_omp_for_incr_expr): Formatting fixes.
5700         (c_finish_omp_for): Add FINAL_P argument.  Allow NE_EXPR
5701         even in OpenMP loops, diagnose if NE_EXPR and incr expression
5702         is not constant expression 1 or -1.  Transform NE_EXPR loops
5703         with iterators pointers to VLA into LT_EXPR or GT_EXPR loops.
5704         (c_omp_check_loop_iv_r): Look for orig decl of C++ range for
5705         loops too.
5706         (c_omp_split_clauses): Add support for combined
5707         #pragma omp parallel master and
5708         #pragma omp {,parallel }master taskloop{, simd} constructs.
5709         Handle OMP_CLAUSE_IN_REDUCTION.  Handle OMP_CLAUSE_REDUCTION_TASK.
5710         Handle OMP_CLAUSE_NONTEMPORAL.  Handle splitting OMP_CLAUSE_IF
5711         also to OMP_SIMD.  Copy OMP_CLAUSE_LASTPRIVATE_CONDITIONAL.
5712         (c_omp_predetermined_sharing): Don't return
5713         OMP_CLAUSE_DEFAULT_SHARED for const qualified decls.
5714         * c-pragma.c (omp_pragmas): Add PRAGMA_OMP_DEPOBJ and
5715         PRAGMA_OMP_REQUIRES.
5716         * c-pragma.h (enum pragma_kind): Likewise.
5717         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_NONTEMPORAL
5718         and PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION.
5720 2018-11-08  David Malcolm  <dmalcolm@redhat.com>
5722         * c-format.c (gcc_dump_printf_char_table): Add entry for %f.
5724 2018-11-08  David Malcolm  <dmalcolm@redhat.com>
5726         * c-format.c (local_cgraph_node_ptr_node): New variable.
5727         (gcc_dump_printf_char_table): Add entry for %C.
5728         (get_pointer_to_named_type): New function, taken from the handling
5729         code for "gimple *" from...
5730         (init_dynamic_diag_info): ...here.  Add handling for
5731         "cgraph_node *".
5732         * c-format.h (T_CGRAPH_NODE): New.
5734 2018-10-19  Jason Merrill  <jason@redhat.com>
5736         * c-cppbuiltin.c (c_cpp_builtins): Add
5737         __cpp_nontype_template_parameter_class.
5739 2018-10-31  Nathan Sidwell  <nathan@acm.org>
5741         * c-opts.c (c_finish_options): Force command line macro
5742         location.  Refactor to avoid repeating main debug hook.
5743         (push_command_line_include): Clarify comment.
5745         * c-opts.c (c_finish_options): Adjust cpp_force_token_locations call.
5747 2018-10-30  Martin Sebor  <msebor@redhat.com>
5749         PR middle-end/87041
5750         * c-format.c (check_format_types): Avoid diagnosing null pointer
5751         arguments to printf-family of functions.
5753 2018-10-30  Marek Polacek  <polacek@redhat.com>
5755         Implement P0892R2, explicit(bool).
5756         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_explicit_bool.
5758 2018-10-29  David Malcolm  <dmalcolm@redhat.com>
5760         * name-hint.h (name_hint::take_deferred): New member function.
5762 2018-10-29  David Malcolm  <dmalcolm@redhat.com>
5764         PR c++/56856
5765         * c-common.c (check_function_sentinel): Call fold_for_warn on the
5766         argument.
5767         (check_function_restrict): Rename param "argarray" to
5768         "unfolded_argarray", and make a copy named "argarray", calling
5769         fold_for_warn on each argument.
5770         (check_function_arguments): Add note about responsibility for
5771         folding the arguments.
5773 2018-10-17  Joseph Myers  <joseph@codesourcery.com>
5775         * c-common.c (flag_isoc2x): New variable.
5776         * c-common.h (clk_c): Update comment to reference C2X.
5777         (flag_isoc99, flag_isoc11): Update comments to reference future
5778         standard versions in general.
5779         (flag_isoc2x): Declare.
5780         * c-opts.c (set_std_c2x): New function.
5781         (c_common_handle_option): Handle -std=c2x and -std=gnu2x.
5782         (set_std_c89, set_std_c99, set_std_c11, set_std_c17): Set
5783         flag_isoc2x to 0.
5784         * c.opt (Wc11-c2x-compat, std=c2x, std=gnu2x): New options.
5786 2018-10-17  Joseph Myers  <joseph@codesourcery.com>
5788         * c.opt (std=c17, std=c18, std=gnu17, std=gnu18, std=iso9899:2017)
5789         (std=iso9899:2018): Document C17 as published in 2018.
5791 2018-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
5793         PR c++/87364
5794         * c-pretty-print.c (c_pretty_printer::constant): Fix typo.
5796 2018-10-11  Will Wray  <wjwray@gmail.com>
5798         PR c++/87364
5799         * c-pretty-print.h (pp_c_type_cast): Prototype.
5800         (pp_c_integer_constant): Likewise.
5801         * c-pretty-print.c (pp_c_type_cast): No longer static.
5802         (pp_c_integer_constant): Likewise.
5803         (pp_c_enumeration_constant): Fix loop termination when finding
5804         name of constant.  No longer returns a value.  Call
5805         pp_c_integer_constant.
5806         (c_pretty_printer::constant): Update for changes to
5807         pp_c_enumeration_constant.
5809 2018-10-11  Jakub Jelinek  <jakub@redhat.com>
5811         * c-lex.c (c_common_has_attribute): Return 201803 instead of 20180312
5812         for no_unique_address.
5814 2018-10-09  David Malcolm  <dmalcolm@redhat.com>
5816         * c-common.c (c_option_controlling_cpp_error): Rename to...
5817         (c_option_controlling_cpp_diagnostic): ...this, and convert
5818         "reason" from int to enum.
5819         (c_cpp_error): Rename to...
5820         (c_cpp_diagnostic): ...this, converting level and reason to enums.
5821         * c-common.h (c_cpp_error): Rename to...
5822         (c_cpp_diagnostic): ...this, converting level and reason to enums.
5823         * c-opts.c (c_common_init_options): Update for renaming.
5825 2018-10-08  Richard Sandiford  <richard.sandiford@arm.com>
5827         PR c/87286
5828         * c-common.c (vector_types_compatible_elements_p): Use
5829         INTEGRAL_TYPE_P instead of checking only for INTEGER_TYPE.
5831 2018-10-04  Vinay Kumar  <vinay.kumar@blackfigtech.com>
5833         * c-attribs.c (get_priority): Add a warning flag warn_prio_ctor_dtor
5834         to generate constructor destructor priority warning.
5835         * c.opt (-Wprio-ctor-dtor): New option.
5837 2018-10-01  Jason Merrill  <jason@redhat.com>
5839         * c-lex.c (c_common_has_attribute): Add no_unique_address.
5841 2018-10-01  Eric Botcazou  <ebotcazou@adacore.com>
5843         * c-ada-spec.c (get_underlying_decl): Get to the main type variant.
5844         (dump_ada_node): Add const keyword.
5846 2018-09-25  Martin Liska  <mliska@suse.cz>
5848         * c-common.c (c_common_truthvalue_conversion):
5849         Remove Pascal from documentation.
5851 2018-09-21  Eric Botcazou  <ebotcazou@adacore.com>
5853         * c-ada-spec.c: Include diagnostic.h.
5854         (dump_ada_declaration) <RECORD_TYPE>: Issue a warning on packed layout.
5856 2018-09-19  Marek Polacek  <polacek@redhat.com>
5858         * c.opt (Wclass-conversion): New.
5860 2018-09-17  David Malcolm  <dmalcolm@redhat.com>
5862         * c-format.c (range_label_for_format_type_mismatch::get_text):
5863         Update for new param.
5865 2018-09-17  David Malcolm  <dmalcolm@redhat.com>
5867         * c-format.c (format_warning_at_char): Update for introduction of
5868         format_string_diagnostic_t.
5869         (format_type_warning): Likewise.
5871 2018-09-17  Martin Jambor  <mjambor@suse.cz>
5873         PR c/63886
5874         * c.opt (Wabsolute-value): New.
5876 2018-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5878         * c-common.c (complete_flexible_array_elts): New helper function.
5879         * c-common.h (complete_flexible_array_elts): Declare.
5881 2018-09-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5883         * c-common.c (braced_list_to_string): Remove eval parameter.
5884         Add some more checks.  Always create zero-terminated STRING_CST.
5885         * c-common.h (braced_list_to_string): Adjust prototype.
5887 2018-08-27  David Malcolm  <dmalcolm@redhat.com>
5889         PR 87091
5890         * c-common.c (c_cpp_error): Update for conversion of show_caret_p
5891         to a tri-state.
5892         (maybe_suggest_missing_token_insertion): Likewise.
5893         (maybe_add_include_fixit): Add param "override_location".  If set,
5894         and source-printing is enabled, then override the rich_location's
5895         primary location with that of the insertion point for the fix-it
5896         hint, marking it with SHOW_LINES_WITHOUT_RANGE.
5897         * c-common.h (extern void maybe_add_include_fixit): Add bool
5898         param.
5899         * c-format.c (selftest::test_type_mismatch_range_labels): Update
5900         for conversion of show_caret_p to a tri-state.
5901         * c-warn.c (warn_for_restrict): Likewise.
5902         * known-headers.cc
5903         (suggest_missing_header::~suggest_missing_header): Update call to
5904         maybe_add_include_fixit to suggest overriding the location, as it
5905         is for a note.
5907 2018-08-27  Martin Liska  <mliska@suse.cz>
5909         * c-common.c (check_function_restrict): Use new function
5910         fndecl_built_in_p and remove check for FUNCTION_DECL if
5911         possible.
5912         (check_builtin_function_arguments): Likewise.
5913         (reject_gcc_builtin): Likewise.
5914         * c-warn.c (sizeof_pointer_memaccess_warning): Likewise.
5916 2018-08-26  Marek Polacek  <polacek@redhat.com>
5918         PR c++/87029, Implement -Wredundant-move.
5919         * c.opt (Wredundant-move): New option.
5921 2018-08-21  Marek Polacek  <polacek@redhat.com>
5923         PR c++/86981, Implement -Wpessimizing-move.
5924         * c.opt (Wpessimizing-move): New option.
5926 2018-08-20  David Malcolm  <dmalcolm@redhat.com>
5928         PR other/84889
5929         * c-attribs.c (common_handle_aligned_attribute): Add
5930         auto_diagnostic_group instance.
5931         * c-indentation.c (warn_for_misleading_indentation): Likewise.
5932         * c-opts.c (c_common_post_options): Likewise.
5933         * c-warn.c (warn_logical_not_parentheses): Likewise.
5934         (warn_duplicated_cond_add_or_warn): Likewise.
5935         (warn_for_multistatement_macros): Likewise.
5937 2018-08-20  Nathan Sidwell  <nathan@acm.org>
5939         * c-ada-spec.c (macro_length, dump_ada_macros): Adjust macro parm
5940         access.
5942 2018-08-17  Nathan Sidwell  <nathan@acm.org>
5944         * c-cppbuiltin.c (struct lazy_hex_fp_value_struct): Remove macro
5945         field.
5946         (laxy_hex_fp_value_count): Make unsigned.
5947         (lazy_hex_fp_value): Provided with macro & lazy number.  Directly
5948         manipulate the macro.
5949         (builtin_defin_with_hex_fp_value): Adjust callback name, use
5950         cpp_define_lazily.
5952 2018-08-17  David Malcolm  <dmalcolm@redhat.com>
5954         * c-format.c (enum format_type): Add gcc_dump_printf_format_type.
5955         (gcc_dump_printf_length_specs): New.
5956         (gcc_dump_printf_flag_pairs): New.
5957         (gcc_dump_printf_flag_specs): New.
5958         (gcc_dump_printf_char_table): New.
5959         (format_types_orig): Add entry for "gcc_dump_printf".
5960         (init_dynamic_diag_info): Set up length_char_specs and
5961         conversion_specs for gcc_dump_printf_format_type.
5962         (handle_format_attribute): Handle gcc_dump_printf_format_type.
5964 2018-08-17  Nathan Sidwell  <nathan@acm.org>
5966         * c-ada-spec.c (macro_length, dump_ada_macros): Constify.
5968         * c-ada-spec.c: Don't #include "cpp-id-data.h"
5969         * c-cppbuiltin.c: Likewise.
5971 2018-08-17  Martin Liska  <mliska@suse.cz>
5973         * c.opt: Remove Warn, Init and Report for options with
5974         Ignore/Deprecated flag. Warning is done automatically for
5975         Deprecated flags.
5977 2018-08-16  David Malcolm  <dmalcolm@redhat.com>
5979         PR c++/70693
5980         * c-common.c (selftest::c_family_tests): Call
5981         selftest::c_indentation_c_tests.
5982         * c-common.h (selftest::c_indentation_c_tests): New decl.
5983         * c-indentation.c: Include "selftest.h".
5984         (next_tab_stop): Add "tab_width" param, rather than accessing
5985         cpp_opts.
5986         (get_visual_column): Likewise.  Clarify comment.  Bulletproof
5987         against reading past the end of the line.
5988         (get_first_nws_vis_column): Add "tab_width" param.
5989         (detect_intervening_unindent): Likewise.
5990         (should_warn_for_misleading_indentation): Read tab width from
5991         cpp_opts and pass around.
5992         (selftest::test_next_tab_stop): New test.
5993         (selftest::assert_get_visual_column_succeeds): New function.
5994         (ASSERT_GET_VISUAL_COLUMN_SUCCEEDS): New macro.
5995         (selftest::assert_get_visual_column_fails): New function.
5996         (ASSERT_GET_VISUAL_COLUMN_FAILS): New macro.
5997         (selftest::test_get_visual_column): New test.
5998         (selftest::c_indentation_c_tests): New function.
6000 2018-08-16  Nathan Sidwell  <nathan@acm.org>
6002         * c-ada-spec.c (count_ada_macro): Use cpp_user_macro_p.
6003         (store_ada_macro): Likewise.
6004         * c-ppoutput.c (cb_used_define, dump_macro): Likewise.
6005         * c-spellcheck.cc (should-suggest_as_macro_p): Likewise,
6007 2018-08-15  David Malcolm  <dmalcolm@redhat.com>
6009         * c-format.c: Include "selftest-diagnostic.h" and
6010         "gcc-rich-location.h".
6011         (format_warning_at_char): Pass NULL for new label params of
6012         format_warning_va.
6013         (class indirection_suffix): New class.
6014         (class range_label_for_format_type_mismatch): New class.
6015         (format_type_warning): Move logic for generating "*" suffix to
6016         class indirection_suffix.  Create "fmt_label" and "param_label"
6017         to show their types, and pass them to the
6018         format_warning_at_substring calls.
6019         (selftest::test_type_mismatch_range_labels): New test.
6020         (selftest::c_format_c_tests): Call it.
6022 2018-08-13  Martin Sebor  <msebor@redhat.com>
6024         PR tree-optimization/71625
6025         * c-common.c (braced_list_to_string): New function.
6026         * c-common.h (braced_list_to_string): Declare it.
6028 2018-08-08  Nathan Sidwell  <nathan@acm.org>
6030         * c-common.c (try_to_locate_new_include_inertion_point): Use
6031         linemap_included_from_linemap.
6032         * c-lex.c (fe_file_change): Use linemap_included_from.
6033         * c-ppoutput.c (pp_file_change): Likewise.
6035 2018-08-01  Martin Sebor  <msebor@redhat.com>
6037         PR tree-optimization/86650
6038         * c-format.c (gcc_tdiag_char_table): Update comment for "%G".
6039         (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Same.
6040         (init_dynamic_diag_info): Update from "gcall *" to "gimple *".
6041         * c-format.h (T89_G): Update to be "gimple *" rather than
6042         "gcall *".
6043         (local_gcall_ptr_node): Rename...
6044         (local_gimple_ptr_node): ...to this.
6046 2018-07-31  David Malcolm  <dmalcolm@redhat.com>
6048         * c-format.c (PP_FORMAT_CHAR_TABLE): New macro, based on existing
6049         table entries for gcc_diag_char_table, and the 'Z' entry from
6050         gcc_tdiag_char_table, changing the "chain" entry for 'Z' from
6051         &gcc_tdiag_char_table[0] to &gcc_diag_char_table[0].
6052         (gcc_diag_char_table): Use PP_FORMAT_CHAR_TABLE, implicitly
6053         adding missing "Z" for this table.  Remove erroneous "G" and "K"
6054         entries.
6055         (gcc_tdiag_char_table): Use PP_FORMAT_CHAR_TABLE.  Remove "v".
6056         (gcc_cdiag_char_table): Use PP_FORMAT_CHAR_TABLE.
6057         (gcc_cxxdiag_char_table): Use PP_FORMAT_CHAR_TABLE.  Remove "v".
6059 2018-07-31  Richard Earnshaw  <rearnsha@arm.com>
6061         * c-common.c (speculation_safe_resolve_call): New function.
6062         (speculation_safe_resolve_params): New function.
6063         (speculation_safe_resolve_return): New function.
6064         (resolve_overloaded_builtin): Handle __builtin_speculation_safe_value.
6065         * c-cppbuiltin.c (c_cpp_builtins): Add pre-define for
6066         __HAVE_SPECULATION_SAFE_VALUE.
6068 2018-07-20  David Malcolm  <dmalcolm@redhat.com>
6070         * c-common.c (c_cpp_error): Remove redundant "line_table"
6071         parameter from call to rich_location::set_range.
6072         (maybe_suggest_missing_token_insertion): Likewise.
6074 2018-07-20  Martin Sebor  <msebor@redhat.com>
6076         PR middle-end/82063
6077         * c.opt (-Warray-bounds): Remove redundant -Wall.
6079 2018-07-20  Martin Sebor  <msebor@redhat.com>
6081         PR middle-end/82063
6082         * c-common.h (c_common_handle_option): Change function argument
6083         to HOST_WIDE_INT.
6084         * c-opts.c (c_common_init_options): Same.
6085         (c_common_handle_option): Same.  Remove special handling of
6086         OPT_Walloca_larger_than_ and OPT_Wvla_larger_than_.
6087         * c.opt (-Walloc-size-larger-than, -Walloca-larger-than): Change
6088         options to take a HOST_WIDE_INT argument and accept a byte-size
6089         suffix.  Initialize.
6090         (-Wvla-larger-than): Same.
6091         (-Wno-alloc-size-larger-than, -Wno-alloca-larger-than): New.
6092         (-Wno-vla-larger-than): Same.
6094 2018-07-12  Jakub Jelinek  <jakub@redhat.com>
6096         * c-attribs.c (c_common_attribute_table): Add
6097         "omp declare target implicit" attribute.
6099 2018-07-12  Richard Biener  <rguenther@suse.de>
6101         PR c/86453
6102         * c-attribs.c (handle_packed_attribute): Do not build a variant
6103         type with TYPE_PACKED, instead ignore the attribute if we may
6104         not apply to the original type.
6106 2018-07-10  Jakub Jelinek  <jakub@redhat.com>
6108         PR c++/86443
6109         * c-omp.c (c_omp_check_loop_iv_r, c_omp_check_loop_iv): Allow declv
6110         to contain TREE_LIST for both the original class iterator and the
6111         "last" helper var.
6113 2018-07-07  Eric Botcazou  <ebotcazou@adacore.com>
6115         * c-ada-spec.c (to_ada_name): Remove index parameter.
6116         (pp_ada_tree_identifier): Likewise.
6117         (dump_ada_macros): Adjust call to to_ada_name.
6118         (struct overloaded_name_hash): Delete.
6119         (struct overloaded_name_hasher): Likewise.
6120         (overloaded_names): Likewise.
6121         (compute_overloading_index): Likewise.
6122         (dump_ada_decl_name): Do not call compute_overloading_index and
6123         adjust calls to pp_ada_tree_identifier.
6124         (dump_ada_double_name): Adjust calls to pp_ada_tree_identifier.
6125         (dump_ada_import): Add spc parameter and switch to aspect syntax.
6126         (dump_ada_function_declaration): Adjust call to pp_ada_tree_identifier.
6127         (dump_ada_enum_type): Remove type and display_convention parameters.
6128         Adjust calls to pp_ada_tree_identifier.
6129         (dump_ada_node): Likewise and for dump_ada_structure.
6130         (dump_nested_type) <ENUMERAL_TYPE>: Adjust call to dump_ada_enum_type
6131         and tidy up.
6132         <RECORD_TYPE>: Adjust call to dump_ada_structure and switch to aspect
6133         syntax.
6134         (print_constructor): Adjust call to pp_ada_tree_identifier.
6135         (print_destructor): Likewise.
6136         (dump_ada_declaration): Switch to aspect syntax.
6137         (dump_ada_structure): Likewise and tidy up.  Replace display_convention
6138         parameter with nested parameter.
6139         (dump_ads): Emit pragma Ada_2012 in lieu of pragma Ada_2005.
6140         (dump_ada_specs): Do not delete overloaded_names table.
6142 2018-07-06  Peter Bergner  <bergner@linux.ibm.com>
6144         PR target/86324
6145         * c-attribs.c (handle_mode_attribute): Call translate_mode_attribute
6146         target hook.
6148 2018-07-05  Nathan Sidwell  <nathan@acm.org>
6150         * c-lex.c (fe_file_change): Check SYSTEM_IMPLICIT_EXTERN_C not
6151         NO_IMPLICIT_EXTERN_C.
6153 2018-06-28  Martin Liska  <mliska@suse.cz>
6155         * cppspec.c: Include opt-suggestions.h.
6157 2018-06-20  Chung-Lin Tang  <cltang@codesourcery.com>
6158             Thomas Schwinge  <thomas@codesourcery.com>
6159             Cesar Philippidis  <cesar@codesourcery.com>
6161         * c-pragma.h (enum pragma_omp_clause): Add
6162         PRAGMA_OACC_CLAUSE_{FINALIZE,IF_PRESENT}. Remove
6163         PRAGMA_OACC_CLAUSE_PRESENT_OR_{COPY,COPYIN,COPYOUT,CREATE}.
6165 2018-06-20  Jakub Jelinek  <jakub@redhat.com>
6167         PR c++/86210
6168         * c-common.c (check_nonnull_arg): Use fold_for_warn.  Adjust obsolete
6169         comment.
6171 2018-06-18  Martin Sebor  <msebor@redhat.com>
6173         PR middle-end/85602
6174         * c-warn.c (sizeof_pointer_memaccess_warning): Check for attribute
6175         nonstring.
6177 2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
6179         * c-common.c (c_common_truthvalue_conversion): Handle ABSU_EXPR.
6181 2018-06-13  Jason Merrill  <jason@redhat.com>
6183         * c-opts.c (c_common_post_options): Warn about useless -Wabi.
6184         (c_common_handle_option) [OPT_Wabi_]: Remove flag_abi_compat_version
6185         handling.
6187         PR c++/86094 - wrong code with defaulted move ctor.
6188         * c-opts.c (c_common_post_options): Bump the current ABI version to
6189         13.  Set warn_abi_version and flag_abi_compat_version to the current
6190         version rather than 0.  Fix defaulting flag_abi_compat_version from
6191         warn_abi_version.
6193 2018-06-12  Martin Sebor  <msebor@redhat.com>
6195         PR c/85931
6196         * c-warn.c (sizeof_pointer_memaccess_warning): Avoid warning when
6197         sizeof source and destination yields the same value.
6199 2018-06-12  Martin Liska  <mliska@suse.cz>
6201         * c.opt: Make MPX-related options as Deprecated.
6203 2018-06-08  David Malcolm  <dmalcolm@redhat.com>
6205         * c-pretty-print.c (c_pretty_printer::statement): Use TDF_NONE
6206         rather than 0.
6208 2018-06-08  Martin Liska  <mliska@suse.cz>
6210         * c-attribs.c (handle_bnd_variable_size_attribute): Remove support
6211         for MPX (macros, related functions, fields in cgraph_node, ...).
6212         (handle_bnd_legacy): Likewise.
6213         (handle_bnd_instrument): Likewise.
6214         * c.opt: Likewise.
6216 2018-06-06  Jakub Jelinek  <jakub@redhat.com>
6218         PR c++/86068
6219         * c-cppbuiltin.c (c_cpp_builtins): Fix a typo, set
6220         __cpp_transactional_memory to 201500 instead of 210500.
6222 2018-06-06  Jason Merrill  <jason@redhat.com>
6224         PR c++/85710 - ICE with -Wmemset-elt-size.
6225         * c-warn.c (warn_for_memset): Don't crash on incomplete element type.
6227 2018-06-01  Jason Merrill  <jason@redhat.com>
6229         * c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_deduction_guides to
6230         201703.
6232 2018-06-01  Eric Botcazou  <ebotcazou@adacore.com>
6234         * c-ada-spec.c (dump_ada_declaration) <TYPE_DECL>: Generate a forward
6235         declaration for a typedef independently of whether the declaration of
6236         the subtype is generated.
6238 2018-05-31  Martin Sebor  <msebor@redhat.com>
6240         PR c/82063
6241         * c.opt (-Wno-alloc-size-larger-than): New option.
6243 2018-04-22  David Pagan  <dave.pagan@oracle.com>
6245         PR c/55976
6246         * c-opts.c (c_common_post_options): Set default for warn_return_type
6247         for C++/C++ with ObjC extensions only. For C, makes it possible to
6248         differentiate between default (no option), -Wreturn-type, and
6249         -Wno-return-type.
6251 2018-05-29  Jason Merrill  <jason@redhat.com>
6253         * c.opt (Winit-list-lifetime): New flag.
6255 2018-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6257         * c-lex.c (get_fileinfo): Use splay_tree_compare_strings and
6258         splay_tree_delete_pointers.
6260 2018-05-26  Jakub Jelinek  <jakub@redhat.com>
6262         PR bootstrap/85921
6263         * c-warn.c (diagnose_mismatched_attributes): Remove unnecessary
6264         noinline variable to workaround broken kernel headers.
6266 2018-05-18  Jason Merrill  <jason@redhat.com>
6268         * c.opt (Wdeprecated-copy): New flag.
6270 2018-05-17  Martin Liska  <mliska@suse.cz>
6272         * c-warn.c (overflow_warning): Do not use
6273         space in between 'G_' and '('.
6275 2018-05-09  Jason Merrill  <jason@redhat.com>
6277         * c-common.c (valid_array_size_p): Add complain parameter.
6278         * c-common.h: ...which defaults to true.
6280 2018-05-11  Jakub Jelinek  <jakub@redhat.com>
6282         PR c/85696
6283         * c-omp.c (c_omp_predetermined_sharing): Return
6284         OMP_CLAUSE_DEFAULT_SHARED for artificial vars with integral type.
6286 2018-05-11  Martin Liska  <mliska@suse.cz>
6288         PR sanitizer/85556
6289         * c-attribs.c (handle_no_sanitize_attribute): Iterate all
6290         TREE_LIST values.
6292 2018-05-10  Jakub Jelinek  <jakub@redhat.com>
6294         PR c++/85662
6295         * c-common.h (fold_offsetof_1): Removed.
6296         (fold_offsetof): Add TYPE argument defaulted to size_type_node and
6297         CTX argument defaulted to ERROR_MARK.
6298         * c-common.c (fold_offsetof_1): Renamed to ...
6299         (fold_offsetof): ... this.  Remove wrapper function.  Add TYPE
6300         argument, convert the pointer constant to TYPE and use size_binop
6301         with PLUS_EXPR instead of fold_build_pointer_plus if type is not
6302         a pointer type.  Adjust recursive calls.
6304 2018-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6306         PR c++/85400
6307         * c-attribs.c (handle_visibility_attribute): Do not set no_add_attrs.
6309 2018-05-07  Nathan Sidwell  <nathan@acm.org>
6311         * c.opt (ffor-scope): Remove functionality, issue warning.
6313 2018-05-03  Nathan Sidwell  <nathan@acm.org>
6315         * c.opt (ffriend-injection): Remove functionality, issue warning.
6317 2018-05-01  David Malcolm  <dmalcolm@redhat.com>
6319         PR c/84258
6320         * c-format.c (struct format_check_results): Add field
6321         "number_non_char".
6322         (check_format_info): Initialize it, and warn if encountered.
6323         (check_format_arg): Distinguish between wide char and
6324         everything else when detecting arrays of non-char.
6326 2018-04-30  David Malcolm  <dmalcolm@redhat.com>
6328         * c-format.c (get_corrected_substring): Update for
6329         location_get_source_line returning a char_span.  Use a char_span
6330         when handling the prefix of the correction.
6331         * c-indentation.c (get_visual_column): Update for
6332         location_get_source_line returning a char_span.
6333         (get_first_nws_vis_column): Likewise.
6335 2018-03-29  David Malcolm  <dmalcolm@redhat.com>
6337         PR c++/84269
6338         * known-headers.cc (get_stdlib_header_for_name): Add various names
6339         from <assert.h>, <string.h>, and <memory.h>; add more names from
6340         <stdio.h>.
6342 2018-03-27  Jakub Jelinek  <jakub@redhat.com>
6344         PR c++/85061
6345         * c-common.c (fold_offsetof_1) <case COMPOUND_EXPR>: Assert that
6346         get_base_address of the second operand is a VAR_P, rather than the
6347         operand itself, and use gcc_checking_assert instead of gcc_assert.
6349 2018-03-23  Marek Polacek  <polacek@redhat.com>
6351         PR c++/85045
6352         * c-pretty-print.c (c_pretty_printer::multiplicative_expression)
6353         <case RDIV_EXPR>: Tweak condition.
6355 2018-03-20  Eric Botcazou  <ebotcazou@adacore.com>
6357         * c-ada-spec.c (pp_ada_tree_identifier): Deal specifically with _Bool.
6359 2018-03-16  Jakub Jelinek  <jakub@redhat.com>
6361         PR c/84909
6362         * c-warn.c (conversion_warning): Replace "to to" with "to" in
6363         diagnostics.
6365         PR c/84910
6366         * c-warn.c (diagnose_mismatched_attributes): Remove trailing space from
6367         diagnostics.
6369 2018-03-16  Richard Biener  <rguenther@suse.de>
6371         PR c/84873
6372         * c-gimplify.c (c_gimplify_expr): Revert previous change.  Instead
6373         unshare the possibly folded expression.
6375 2018-03-15  Richard Biener  <rguenther@suse.de>
6377         PR c/84873
6378         * c-gimplify.c (c_gimplify_expr): Do not fold expressions.
6380 2018-03-13  Martin Sebor  <msebor@redhat.com>
6382         PR tree-optimization/84725
6383         * c-attribs.c (handle_nonstring_attribute): Allow attribute nonstring
6384         with all three narrow character types, including their qualified forms.
6386 2018-03-12  Martin Sebor  <msebor@redhat.com>
6388         PR tree-optimization/83456
6389         * c-common.c (check_function_restrict): Return bool.
6390         Restore checking of bounded built-in functions.
6391         (check_function_arguments): Also return the result
6392         of warn_for_restrict.
6393         * c-common.c (check_function_restrict): Return bool.
6394         * c-warn.c (warn_for_restrict): Return bool.
6396 2018-03-02  Marek Polacek  <polacek@redhat.com>
6398         PR c++/84171
6399         * c-warn.c (warn_for_sign_compare): Bail out if any of the operands
6400         is erroneous.
6402 2018-03-02  Thomas Schwinge  <thomas@codesourcery.com>
6404         * c-attribs.c (c_common_attribute_table): Remove "cilk simd
6405         function".
6407 2018-03-01  Marek Polacek  <polacek@redhat.com>
6409         PR c++/84639
6410         * c-attribs.c (common_handle_aligned_attribute): Don't use invalid
6411         alignment in computation.
6413 2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6415         * c-ada-spec.c (dump_ada_node) <NULLPTR_TYPE>: New case.
6416         <REAL_TYPE>: Deal specifically with _Float128/__float128.
6418 2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6420         * c-ada-spec.c (dump_ada_double_name) <ENUMERAL_TYPE>: New case.
6421         (is_char_array): Take a type instead of a declaration.
6422         (dump_ada_array_type): Likewise.
6423         (is_simple_enum): Minor tweak.
6424         (dump_ada_enum_type): New function extracted from...
6425         (dump_ada_node) <ENUMERAL_TYPE>: ...here.  Invoke it.
6426         <INTEGER_TYPE>: Remove unreachable code.
6427         <RECORD_TYPE>: Likewise.  Minor tweaks.
6428         (dump_nested_type) <ARRAY_TYPE>: Adjust to above changes.
6429         <ENUMERAL_TYPE>: New case.
6430         <RECORD_TYPE>: Factor out common code.
6431         (dump_ada_declaration) <ARRAY_TYPE>: Adjust to above changes.
6432         Minor tweaks.  Deal with enumeral types.
6433         (dump_ada_structure): Minor tweaks.
6435 2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6437         * c-ada-spec.c (dump_ada_node) <POINTER_TYPE>: Do not use generic
6438         address for incomplete structures.
6439         (dump_forward_type): Do not bail out for incomplete structures.
6440         (dump_ada_declaration): Do not special-case incomplete structures
6441         for subtypes.  Dump them as null records for types.
6443 2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6445         * c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
6446         (is_char_array): Fix formatting.
6447         (dump_template_types): Likewise.
6448         (dump_generic_ada_node): Rename into...
6449         (dump_ada_node): ...this.
6450         <POINTER_TYPE>: Remove superfluous space.  Use generic address for
6451         incomplete structures and not for empty structures.  Do not use it
6452         when forward declarations are needed.
6453         (dump_forward_type): New function.
6454         (dump_nested_types): Remove FORWARD parameter.  Do not consider
6455         TREE_VISITED and do not generate a forward declaration.  Only dump
6456         original nested types for nested declaration.
6457         (dump_nested_type) <POINTER_TYPE>: Call dump_forward_type.
6458         <ARRAY_TYPE>: Likewise if the component type is an anonymous pointer.
6459         <RECORD_TYPE>: Do not consider TREE_VISITED.
6460         (dump_ada_declaration): Use booleans and fix formatting throughout.
6461         <TYPE_DECL>: Skip incomplete structures and not empty structures.
6462         Call dump_forward_type instead of dump_nested_types for a typedef.
6463         Remove superfluous check and adjust call to dump_nested_types.
6464         <POINTER_TYPE>: Call dump_forward_type and fall through.
6465         (dump_ada_struct_decl): Rename into...
6466         (dump_ada_structure): ...this.  Do not special-case empty structures.
6468 2018-02-27  Martin Sebor  <msebor@redhat.com>
6470         PR c++/83871
6471         * c.opt (-Wmissing-attributes): New option.
6473 2018-02-21  Martin Liska  <mliska@suse.cz>
6475         * c.opt (Wcatch-value=): Add IntegerRange.
6477 2018-02-15  Jason Merrill  <jason@redhat.com>
6479         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_deduction_guides.
6481 2018-02-09  Nathan Sidwell  <nathan@acm.org>
6483         PR c/84293
6484         * c-common.h (strict_aliasing_warning): Drop OTYPE arg, insert LOC
6485         arg.
6486         * c-warn.c (strict_aliasing_warning): Drop OTYPE arg, require LOC
6487         arg.  Adjust.
6489 2018-02-09  Martin Sebor  <msebor@redhat.com>
6491         PR lto/84212
6492         * c.opt (-Wstringop-overflow, -Warray-bounds): Add LTO.
6493         (-Walloc-size-larger-than, -Wformat-truncation=): Same.
6494         (-Wmaybe-uninitialized, -Wnonnull, -Wrestrict): Same.
6495         (-Wstrict-overflow, -Wsuggest-attribute): Same.
6496         (-Wuninitialized): Same.
6498 2018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
6500         * c-ada-spec.c (dump_ada_declaration): Do not generate the 'constant'
6501         keyword for components.
6503 2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>
6505         * c-common.h (DECL_UNNAMED_BIT_FIELD): New.
6507 2018-02-02  Julia Koval  <julia.koval@intel.com>
6509         * c-common.h (omp_clause_mask): Move to wide_int_bitmask.h.
6511 2018-01-29  Marek Polacek  <polacek@redhat.com>
6513         PR c/83966
6514         * c-format.c (check_function_format): Check current_function_decl.
6516 2018-01-27  Jakub Jelinek  <jakub@redhat.com>
6518         * c-cppbuiltin.c (c_cpp_builtins): Use ggc_strdup for the fp_suffix
6519         argument.
6520         (LAZY_HEX_FP_VALUES_CNT): Define.
6521         (lazy_hex_fp_values): Allow up to LAZY_HEX_FP_VALUES_CNT lazy hex fp
6522         values rather than just 12.
6523         (builtin_define_with_hex_fp_value): Likewise.
6525 2018-01-18  Boris Kolpackov  <boris@codesynthesis.com>
6527         PR other/70268
6528         * c.opt (-fmacro-prefix-map): New option.
6529         * c-opts.c (c_common_handle_option): Handle it.
6530         * c-lex.c (init_c_lex): Set remap_filename cpp callback.
6531         * c-ppoutput.c (init_pp_output): Likewise.
6533 2018-01-17  David Malcolm  <dmalcolm@redhat.com>
6535         PR c++/83814
6536         * c-common.c (fold_for_warn): Move to c/c-fold.c and cp/expr.c.
6538 2018-01-10  Eric Botcazou  <ebotcazou@adacore.com>
6540         * c-ada-spec.c (dump_number): Add FLOAT_P parameter.
6541         Skip 'f' and 'F' characters if it is true.
6542         (store_ada_macro): Minor tweak.
6543         (dump_ada_macros) <CPP_COMMENT>: Likewise.
6544         <CPP_WSTRING>: Likewise.
6545         <CPP_STRING>: Output '&' in the buffer if not the first string.
6546         <CPP_NUMBER>: Adjust calls to dump_number.
6548 2018-01-10  David Malcolm  <dmalcolm@redhat.com>
6550         PR c++/43486
6551         * c-common.c: Include "selftest.h".
6552         (get_atomic_generic_size): Perform the test for integral type
6553         before the range test for any integer constant, fixing indentation
6554         of braces.  Call fold_for_warn before testing for an INTEGER_CST.
6555         (reject_gcc_builtin): Strip any location wrapper from EXPR.
6556         (selftest::test_fold_for_warn): New function.
6557         (selftest::c_common_c_tests): New function.
6558         (selftest::c_family_tests): Call it, and
6559         selftest::c_pretty_print_c_tests.
6560         * c-common.h (selftest::c_pretty_print_c_tests): New decl.
6561         * c-format.c (check_format_arg): Convert VAR_P check to a
6562         fold_for_warn.
6563         * c-pretty-print.c: Include "selftest.h".
6564         (pp_c_cast_expression): Don't print casts for location wrappers.
6565         (selftest::assert_c_pretty_printer_output): New function.
6566         (ASSERT_C_PRETTY_PRINTER_OUTPUT): New macro.
6567         (selftest::test_location_wrappers): New function.
6568         (selftest::c_pretty_print_c_tests): New function.
6569         * c-warn.c (warn_for_memset): Call fold_for_warn on the arguments.
6571 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
6572             Alan Hayward  <alan.hayward@arm.com>
6573             David Sherwood  <david.sherwood@arm.com>
6575         * c-common.c (c_common_type_for_mode): Handle MODE_VECTOR_BOOL.
6577 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
6578             Alan Hayward  <alan.hayward@arm.com>
6579             David Sherwood  <david.sherwood@arm.com>
6581         * c-ubsan.c (ubsan_instrument_shift): Treat GET_MODE_BITSIZE
6582         as polynomial.
6584 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
6585             Alan Hayward  <alan.hayward@arm.com>
6586             David Sherwood  <david.sherwood@arm.com>
6588         * c-common.c (vector_types_convertible_p, c_build_vec_perm_expr)
6589         (convert_vector_to_array_for_subscript): Handle polynomial
6590         TYPE_VECTOR_SUBPARTS.
6591         (c_common_type_for_mode): Check valid_vector_subparts_p.
6592         * c-pretty-print.c (pp_c_initializer_list): Handle polynomial
6593         VECTOR_CST_NELTS.
6595 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
6597         Update copyright years.
6599 2017-12-22  Mike Stump  <mikestump@comcast.net>
6600             Eric Botcazou  <ebotcazou@adacore.com>
6602         * c-pragma.c (init_pragma): Register pragma GCC unroll.
6603         * c-pragma.h (enum pragma_kind): Add PRAGMA_UNROLL.
6605 2017-12-22  Alexandre Oliva  <aoliva@redhat.com>
6607         PR debug/83527
6608         PR debug/83419
6609         * c-semantics.c (only_debug_stmts_after_p): New.
6610         (pop_stmt_list): Clear side effects in debug-only stmt list.
6611         Check for single nondebug stmt followed by debug stmts only.
6613 2017-12-21  Alexandre Oliva  <aoliva@redhat.com>
6615         PR debug/83419
6616         * c-semantics.c (pop_stmt_list): Propagate side effects from
6617         single nondebug stmt to container list.
6619 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
6621         * known-headers.cc (get_stdlib_header_for_name): Replace Yoda
6622         conditions with typical order conditions.
6624 2017-12-18  Marek Polacek  <polacek@redhat.com>
6626         * c-warn.c (warn_logical_operator): Return early if -Wlogical-op is
6627         not in effect.
6629 2017-12-17  Martin Sebor  <msebor@redhat.com>
6631         * c-attribs.c (common_handle_aligned_attribute): Avoid issuing
6632         an error for attribute warn_if_not_aligned.
6634 2017-12-16  Martin Sebor  <msebor@redhat.com>
6636         PR tree-optimization/78918
6637         * c-common.c (check_function_restrict): Avoid checking built-ins.
6638         * c.opt (-Wrestrict): Include in -Wall.
6640 2017-12-15  Jakub Jelinek  <jakub@redhat.com>
6642         * c-attribs.c (c_common_attribute_table,
6643         c_common_format_attribute_table): Swap affects_type_identity
6644         and handler fields, adjust comments.
6646 2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6648         * c.opt (Wcast-function-type): New warning option.
6649         * c-lex.c (get_fileinfo): Avoid warning.
6650         * c-ppoutput.c (scan_translation_unit_directives_only): Remove cast.
6652 2017-12-14  Qing Zhao  <qing.zhao@oracle.com>
6654         PR middle_end/79538
6655         * c-cppbuiltin.c (builtin_define_with_hex_fp_value):
6656         Adjust the size of buf1 and buf2, add a new buf to avoid
6657         format-overflow warning.
6659 2017-12-12  Alexandre Oliva  <aoliva@redhat.com>
6661         * c-semantics.c (pop_stmt_list): Move begin stmt marker into
6662         subsequent statement list.
6664 2017-12-07  Martin Sebor  <msebor@redhat.com>
6666         PR c/81544
6667         PR c/81566
6668         * c-attribs.c (attr_aligned_exclusions): New array.
6669         (attr_alloc_exclusions, attr_cold_hot_exclusions): Same.
6670         (attr_common_exclusions, attr_const_pure_exclusions): Same.
6671         (attr_gnu_inline_exclusions, attr_inline_exclusions): Same.
6672         (attr_noreturn_exclusions, attr_returns_twice_exclusions): Same.
6673         (attr_warn_unused_result_exclusions): Same.
6674         (handle_hot_attribute, handle_cold_attribute): Simplify.
6675         (handle_const_attribute): Warn on function returning void.
6676         (handle_pure_attribute): Same.
6677         (handle_aligned_attribute): Diagnose conflicting attribute
6678         specifications.
6679         * c-warn.c (diagnose_mismatched_attributes): Simplify.
6681 2017-12-06  David Malcolm  <dmalcolm@redhat.com>
6683         PR c/83236
6684         * c-common.c (selftest::c_family_tests): Call
6685         selftest::c_spellcheck_cc_tests.
6686         * c-common.h (selftest::c_spellcheck_cc_tests): New decl.
6687         * c-spellcheck.cc: Include "selftest.h".
6688         (name_reserved_for_implementation_p): New function.
6689         (should_suggest_as_macro_p): New function.
6690         (find_closest_macro_cpp_cb): Move the check for NT_MACRO to
6691         should_suggest_as_macro_p and call it.
6692         (selftest::test_name_reserved_for_implementation_p): New function.
6693         (selftest::c_spellcheck_cc_tests): New function.
6694         * c-spellcheck.h (name_reserved_for_implementation_p): New decl.
6696 2017-12-06  David Malcolm  <dmalcolm@redhat.com>
6698         * c-spellcheck.cc: New file, taken from macro-handling code in
6699         spellcheck-tree.c.
6700         * c-spellcheck.h: New file, taken from macro-handling code in
6701         spellcheck-tree.h.
6703 2017-12-01  Jakub Jelinek  <jakub@redhat.com>
6705         * c-attribs.c (c_common_attribute_table): Remove "cilk simd function"
6706         attribute.
6707         (handle_simd_attribute): Don't check for "cilk simd function"
6708         attribute.  Reindent, formatting changes.
6710 2017-11-30  Julia Koval  <julia.koval@intel.com>
6712         * c-common.h (inv_list): Remove.
6714 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
6716         PR sanitizer/81275
6717         * c-common.c (c_switch_covers_all_cases_p_1,
6718         c_switch_covers_all_cases_p): New functions.
6719         * c-common.h (c_switch_covers_all_cases_p): Declare.
6721 2017-11-28  Julia Koval  <julia.koval@intel.com>
6722             Sebastian Peryt  <sebastian.peryt@intel.com>
6724         * array-notation-common.c: Delete.
6725         * c-cilkplus.c: Ditto.
6726         * c-common.c (_Cilk_spawn, _Cilk_sync, _Cilk_for): Remove.
6727         * c-common.def (ARRAY_NOTATION_REF): Remove.
6728         * c-common.h (RID_CILK_SPAWN, build_array_notation_expr,
6729         build_array_notation_ref, C_ORT_CILK, c_check_cilk_loop,
6730         c_validate_cilk_plus_loop, cilkplus_an_parts,
6731         cilk_ignorable_spawn_rhs_op,
6732         cilk_recognize_spawn): Remove.
6733         * c-gimplify.c (CILK_SPAWN_STMT): Remove.
6734         * c-omp.c: Remove CILK_SIMD check.
6735         * c-pragma.c: Ditto.
6736         * c-pragma.h: Remove CILK related pragmas.
6737         * c-pretty-print.c (c_pretty_printer::postfix_expression): Remove
6738         ARRAY_NOTATION_REF condition.
6739         (c_pretty_printer::expression): Ditto.
6740         * c.opt (fcilkplus): Remove.
6741         * cilk.c: Delete.
6743 2017-11-21  Marc Glisse  <marc.glisse@inria.fr>
6745         * c-pretty-print.c (pp_c_additive_expression,
6746         c_pretty_printer::expression): Handle POINTER_DIFF_EXPR.
6748 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
6750         * c-common.c (get_nonnull_operand): Use tree_to_uhwi.
6752         PR c++/83059
6753         * c-common.c (get_atomic_generic_size): Use TREE_INT_CST_LOW
6754         instead of tree_to_uhwi, formatting fix.
6756 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
6758         PR c/81404
6759         * known-headers.cc: New file, based on material from c/c-decl.c.
6760         (suggest_missing_header): Copied as-is.
6761         (get_stdlib_header_for_name): New, based on get_c_name_hint but
6762         heavily edited to add C++ support.  Add some knowledge about
6763         <limits.h>, <stdint.h>, and <wchar.h>.
6764         * known-headers.h: Likewise.
6766 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
6768         * c-common.h (enum lookup_name_fuzzy_kind): Move to name-hint.h.
6769         (lookup_name_fuzzy): Likewise.  Convert return type from
6770         const char * to name_hint.  Add location_t param.
6771         * name-hint.h: New header.
6773 2017-11-19  Jakub Jelinek  <jakub@redhat.com>
6775         PR c/66618
6776         PR c/69960
6777         * c-common.h (c_fully_fold): Add LVAL argument defaulted to false.
6779 2017-11-16  Joseph Myers  <joseph@codesourcery.com>
6781         * c.opt (-std=c17, std=gnu17, -std=iso9899:2017): Refer to 2018
6782         expected publication date of C17.
6783         (-std=c18, -std=gnu18, -std=iso9899:2018): New option aliases.
6785 2017-11-15  Joseph Myers  <joseph@codesourcery.com>
6787         PR c/81156
6788         * c-common.c (c_common_reswords): Add __builtin_tgmath.
6789         * c-common.h (enum rid): Add RID_BUILTIN_TGMATH.
6791 2017-11-10  Martin Sebor  <msebor@redhat.com>
6793         PR c/81117
6794         * c-common.c (catenate_strings): Use memcpy instead of strncpy.
6795         * c-warn.c (sizeof_pointer_memaccess_warning): Handle arrays.
6796         * c.opt (-Wstringop-truncation): New option.
6798 2017-11-06  Martin Liska  <mliska@suse.cz>
6800         PR middle-end/82404
6801         * c-opts.c (c_common_post_options): Set -Wreturn-type for C++
6802         FE.
6803         * c.opt: Set default value of warn_return_type.
6805 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
6807         * c-common.c (binary_op_error): Update for renaming of
6808         error_at_rich_loc.
6809         (c_parse_error): Likewise.
6810         * c-warn.c (warn_logical_not_parentheses): Likewise for
6811         renaming of inform_at_rich_loc.
6812         (warn_for_restrict): Likewise for renaming of
6813         warning_at_rich_loc_n.
6815 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
6817         * c.opt (std=c17, std=gnu17, std=iso9899:2017): New options.
6818         * c-opts.c (set_std_c17): New function.
6819         (c_common_init_options): Use gnu17 as default C version.
6820         (c_common_handle_option): Handle -std=c17 and -std=gnu17.
6822 2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
6824         * c-cppbuiltin.c (mode_has_fma): Add support for PowerPC KFmode.
6825         (c_cpp_builtins): If a machine has a fast fma _Float<N> and
6826         _Float<N>X variant, define __FP_FAST_FMA<N> and/or
6827         __FP_FAST_FMA<N>X.
6829 2017-10-23  Marek Polacek  <polacek@redhat.com>
6831         PR c/82681
6832         * c-warn.c (warnings_for_convert_and_check): Fix typos.
6834 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
6836         * c-common.c (check_builtin_function_arguments): Also check arguments
6837         of __builtin_alloca_with_align_and_max.
6839 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
6841         * c-format.c (format_warning_at_char): Pass UNKNOWN_LOCATION
6842         rather than NULL to format_warning_va.
6843         (check_format_types): Likewise when calling format_type_warning.
6844         Remove code to extract source_ranges and source_range * in favor
6845         of just a location_t.
6846         (format_type_warning): Convert source_range * param to a
6847         location_t.
6849 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
6851         * c-gimplify.c (c_gimplify_expr): Handle [LR]ROTATE_EXPR like
6852         [LR]SHIFT_EXPR.
6854 2017-10-12  David Malcolm  <dmalcolm@redhat.com>
6856         * c-common.c (enum missing_token_insertion_kind): New enum.
6857         (get_missing_token_insertion_kind): New function.
6858         (maybe_suggest_missing_token_insertion): New function.
6859         * c-common.h (maybe_suggest_missing_token_insertion): New decl.
6861 2017-10-11  Nathan Sidwell  <nathan@acm.org>
6863         * c-opts.c (add_prefixed_path): Change chain to incpath_kind.
6864         (c_common_handle_option): Update incpath_kind names.
6866 2017-10-11  Martin Liska  <mliska@suse.cz>
6868         PR sanitizer/82490
6869         * c-attribs.c (handle_no_sanitize_attribute): Report directly
6870         Wattributes warning.
6872 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
6874         * c-ada-spec.c (dump_generic_ada_node): Use wi::to_wide when
6875         operating on trees as wide_ints.
6876         * c-common.c (pointer_int_sum): Likewise.
6877         * c-pretty-print.c (pp_c_integer_constant): Likewise.
6878         * c-warn.c (match_case_to_enum_1): Likewise.
6879         (c_do_switch_warnings): Likewise.
6880         (maybe_warn_shift_overflow): Likewise.
6882 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
6884         PR c/82437
6885         * c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_wide
6886         instead of wide_int::from.
6888 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
6890         PR c/82437
6891         * c-warn.c (warn_tautological_bitwise_comparison): Instead of
6892         using to_widest use wide_int with the larger of the two precisions.
6894 2017-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6896         * c-pretty-print.c (pp_c_parameter_type_list): Print ... for variadic
6897         functions.
6899 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
6901         * c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_widest
6902         when combining the original unconverted comparison operands.
6904 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
6906         * c-attribs.c (handle_noipa_attribute): Don't add "stack_protect"
6907         attribute.
6909 2017-09-29  Eric Botcazou  <ebotcazou@adacore.com>
6911         * c-ada-spec.c (to_ada_name): Add index parameter.
6912         (pp_ada_tree_identifier): Likewise.
6913         (dump_ada_macros): Adjust call to to_ada_name.
6914         (struct overloaded_name_hash): New type.
6915         (struct overloaded_name_hasher): Likewise.
6916         (overloaded_names): New hash table.
6917         (compute_overloading_index): New function.
6918         (dump_ada_decl_name): Call it and pass the result to
6919         pp_ada_tree_identifier.
6920         (dump_ada_double_name): Adjust calls to pp_ada_tree_identifier.
6921         (dump_ada_function_declaration): Likewise.
6922         (dump_generic_ada_node): Likewise.
6923         (print_constructor): Likewise.
6924         (print_destructor): Likewise.
6925         (dump_ada_specs): Delete overloaded_names table.
6927 2017-09-29  Eric Botcazou  <ebotcazou@adacore.com>
6929         * c-ada-spec.c (max_ada_macros): Move around.
6930         (store_ada_macro_index): Likewise.
6931         (source_file): Rename into...
6932         (macro_source_file): ...this.
6933         (count_ada_macro): Move around.
6934         (store_ada_macro): Likewise.
6935         (compare_macro): Likewise.
6936         (print_ada_macros): Merge in...
6937         (dump_ada_macros): ...this.
6938         (source_file_base): Rename into...
6939         (current_source_file): ...this.
6940         (print_comment): Move around.
6941         (dump_ada_nodes): Call dump_ada_declaration directly.
6942         (struct with): Change type of limited field to bool.
6943         (append_withs): Change type of limited_access parameter to bool.
6944         (pp_ada_tree_identifie): Likewise.
6945         (dump_ada_decl_nam): Likewise.
6946         (dump_generic_ada_node): Likewise.  Do not print the return type.
6947         (to_ada_name): Change type of space_found parameter to bool.
6948         (dump_ada_function_declaration): Return void and change type of
6949         parameters to bool.  Also print the return type for a function.
6950         (print_ada_methods): Rename into...
6951         (dump_ada_methods): ...this.
6952         (print_ada_declaration): Rename into ...
6953         (dump_ada_declaration): ...this.  Do not print the return type.
6954         (print_ada_struct_decl): Rename into...
6955         (dump_ada_struct_decl): ...this.
6957 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
6959         * c-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD
6960         rather than DECL_INITIAL.
6961         (common_handle_aligned_attribute): Likewise.
6963 2017-09-20  Alexandre Oliva  <aoliva@redhat.com>
6965         * c.opt (gen-decls): Add RejectNegative.
6967 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
6968             Jakub Jelinek  <jakub@redhat.com>
6970         Add support for -std=c++2a.
6971         * c-common.h (cxx_dialect): Add cxx2a as a dialect.
6972         * opt.c: Add options for -std=c++2a and -std=gnu++2a.
6973         * c-opts.c (set_std_cxx2a): New.
6974         (c_common_handle_option): Set options when -std=c++2a is enabled.
6975         (c_common_post_options): Adjust comments.
6976         (set_std_cxx14, set_std_cxx17): Likewise.
6978 2017-09-15  Eric Botcazou  <ebotcazou@adacore.com>
6980         * c-pragma.c (handle_pragma_scalar_storage_order): Expand on error
6981         message for non-uniform endianness and issue a warning in C++.
6983 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
6985         * c.opt (Wc++1z-compat): Change from option to undocumented alias.
6986         (Wc++17-compat): Change from undocumented alias to option.
6987         (Wnoexcept-type): Enable by Wc++17-compat instead of Wc++1z-compat,
6988         change C++1z to C++17 in description.
6989         (std=c++1z, std=gnu++1z): Change from option to undocumented
6990         deprecated alias.
6991         (std=c++17, std=gnu++17): Change from undocumented alias to option.
6992         Adjust description.
6993         * c-common.h (enum cxx_dialect): Rename cxx1z to cxx17.
6994         * c-opts.c (set_std_cxx1z): Rename to ...
6995         (set_std_cxx17): ... this.
6996         (c_common_handle_option): Rename OPT_std_c__1z to OPT_std_c__17
6997         and OPT_std_gnu__1z to OPT_std_gnu__17.  Adjust set_std_cxx1z
6998         caller.
6999         (c_common_post_options): Use cxx17 instead of cxx1z.  Adjust
7000         comments.
7002 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
7004         * c-attribs.c (common_handle_aligned_attribute): Don't warn
7005         function alignment if warn_if_not_aligned_p is true.
7007 2017-09-12  Nathan Sidwell  <nathan@acm.org>
7009         * c-common.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
7010         resort_sorted_fields): Move to c/c-decl.c.
7011         * c-common.h (field_decl_cmp, resort_sorted_fields): Delete.
7012         (struct sorted_fields_type): Move to c/c-lang.h.
7014 2017-09-09  Jonathan Wakely  <jwakely@redhat.com>
7016         PR c++/81852
7017         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_threadsafe_static_init.
7019 2017-09-04  Marek Polacek  <polacek@redhat.com>
7021         PR c/81783
7022         * c-warn.c (warn_tautological_bitwise_comparison): New function.
7023         (warn_tautological_cmp): Call it.
7025 2017-09-01  Boris Kolpackov  <boris@codesynthesis.com>
7027         * c-opts.c (c_common_finish): Write dependency information even if
7028         there are errors.
7030 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
7032         PR c/81887
7033         * c-pragma.c (omp_pragmas): Move "ordered" entry from here to ...
7034         (omp_pragmas_simd): ... here.
7035         * c-omp.c (c_finish_omp_ordered): If clauses isn't simd clause alone,
7036         create new clauses list containing just simd clause.
7038 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7039             Alan Hayward  <alan.hayward@arm.com>
7040             David Sherwood  <david.sherwood@arm.com>
7042         * c-attribs.c (vector_mode_valid_p) Fold GET_MODE_INNER call
7043         into scalar_mode_supported_p call.
7044         (handle_mode_attribute): Update call to scalar_mode_supported_p.
7046 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7047             Alan Hayward  <alan.hayward@arm.com>
7048             David Sherwood  <david.sherwood@arm.com>
7050         * c-common.c (c_common_fixed_point_type_for_size): Use opt_scalar_mode
7051         for the mode iterator.
7053 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7054             Alan Hayward  <alan.hayward@arm.com>
7055             David Sherwood  <david.sherwood@arm.com>
7057         * c-lex.c (interpret_fixed): Use SCALAR_TYPE_MODE.
7058         * c-common.c (c_build_vec_perm_expr): Likewise.
7060 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7061             Alan Hayward  <alan.hayward@arm.com>
7062             David Sherwood  <david.sherwood@arm.com>
7064         * c-common.c (c_common_type_for_mode): Use as_a <scalar_int_mode>.
7066 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7067             Alan Hayward  <alan.hayward@arm.com>
7068             David Sherwood  <david.sherwood@arm.com>
7070         * c-attribs.c (handle_mode_attribute): Check for a scalar_int_mode
7071         before calling targetm.addr_space.valid_pointer_mode.
7073 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7074             Alan Hayward  <alan.hayward@arm.com>
7075             David Sherwood  <david.sherwood@arm.com>
7077         * c-cppbuiltin.c (c_cpp_builtins): Use opt_scalar_float_mode.
7079 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7080             Alan Hayward  <alan.hayward@arm.com>
7081             David Sherwood  <david.sherwood@arm.com>
7083         * c-common.c (c_common_fixed_point_type_for_size): Use new mode
7084         iterators.
7085         * c-cppbuiltin.c (c_cpp_builtins): Likewise.
7087 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7088             Alan Hayward  <alan.hayward@arm.com>
7089             David Sherwood  <david.sherwood@arm.com>
7091         * c-cppbuiltin.c (mode_has_fma): Prefix mode names with E_ in
7092         case statements.
7094 2017-08-29  Martin Liska  <mliska@suse.cz>
7096         PR other/39851
7097         * c-common.c (parse_optimize_options): Add argument to function
7098         call.
7099         * c-pragma.c (handle_pragma_diagnostic): Likewise.
7101 2017-08-24  David Malcolm  <dmalcolm@redhat.com>
7103         * c-lex.c (interpret_float): Use token location
7104         when building an EXCESS_PRECISION_EXPR.
7106 2017-08-21  David Malcolm  <dmalcolm@redhat.com>
7108         * c-common.c (check_function_arguments): Add "arglogs" param; pass
7109         it to check_function_format.
7110         * c-common.h (check_function_arguments): Add vec<location_t> *
7111         param.
7112         (check_function_format): Likewise.
7113         * c-format.c (struct format_check_context): Add field "arglocs".
7114         (check_function_format): Add param "arglocs"; pass it to
7115         check_format_info.
7116         (check_format_info): Add param "arglocs"; use it to initialize
7117         new field of format_ctx.
7118         (check_format_arg): Pass format_ctx->arglocs to new param of
7119         check_format_info_main.
7120         (class argument_parser): New field "arglocs".
7121         (argument_parser::argument_parser): Add "arglocs_" param and use
7122         it to initialize new field.
7123         (argument_parser::check_argument_type): Pass new arglocs field to
7124         check_format_types.
7125         (check_format_info_main): Add param "arglocs", and use it when
7126         constructing arg_parser.
7127         (check_format_types): Add param "arglocs"; use it if non-NULL when
7128         !EXPR_HAS_LOCATION (cur_param) to get at location information.
7130 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
7132         PR c/53037
7133         * c-attribs.c (handle_warn_if_not_aligned_attribute): New.
7134         (c_common_attribute_table): Add warn_if_not_aligned.
7135         (handle_aligned_attribute): Renamed to ...
7136         (common_handle_aligned_attribute): Remove argument, name, and add
7137         argument, warn_if_not_aligned.  Handle warn_if_not_aligned.
7138         (handle_aligned_attribute): New.
7139         * c.opt: Add -Wif-not-aligned and -Wpacked-not-aligned.
7141 2017-08-14  Martin Sebor  <msebor@redhat.com>
7143         PR c/81117
7144         * c-attribs.c (c_common_attribute_table): Add nonstring entry.
7145         (handle_nonstring_attribute): New function.
7147 2017-08-14  Martin Sebor  <msebor@redhat.com>
7149         PR c/81117
7150         * c-format.h (T89_G): New macro.
7151         * c-format.c (local_gcall_ptr_node): New variable.
7152         (init_dynamic_diag_info): Initialize it.
7154 2017-08-11  Martin Liska  <mliska@suse.cz>
7156         * c-opts.c (c_common_post_options): Replace ASM_OUTPUT_DEF with
7157         TARGET_SUPPORTS_ALIASES.
7159 2017-08-10  David Malcolm  <dmalcolm@redhat.com>
7161         * c-common.c (c_parse_error): Add rich_location * param, using it
7162         rather implicitly using input_location.
7163         * c-common.h (c_parse_error): Add rich_location * param.
7165 2017-08-09  Marek Polacek  <polacek@redhat.com>
7167         * c-common.c (pointer_int_sum): Use true/false instead of 1/0.
7168         (c_common_truthvalue_conversion): Likewise.
7169         * c-omp.c (c_finish_omp_atomic): Likewise.
7170         * c-common.h (build_binary_op): Update declaration.
7172 2017-08-08  Martin Liska  <mliska@suse.cz>
7174         * c-ada-spec.c: Include header files.
7175         * c-ubsan.c: Likewise.
7176         * c-warn.c: Likewise.
7178 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
7180         PR c/69389
7181         * c-omp.c (c_finish_omp_atomic): Handle atomics on bitfields.
7183 2017-08-07  Eric Botcazou  <ebotcazou@adacore.com>
7185         * c-ada-spec.c (has_nontrivial_methods): Test for FUNCTION_DECL.
7186         (print_ada_methods): Likewise.
7187         (print_ada_declaration): Likewise.
7189 2017-08-07  Martin Liska  <mliska@suse.cz>
7191         * array-notation-common.c: Add new includes.
7192         * c-format.c( handle_format_attribute): Canonicalize a format
7193         function name.
7194         * c-lex.c (c_common_has_attribute): Canonicalize name of an
7195         attribute.
7196         * c-pretty-print.c: Add new include.
7198 2017-08-05  Eric Botcazou  <ebotcazou@adacore.com>
7200         * c-ada-spec.c (has_static_fields): Look only into variables.
7201         (print_constructor): Add TYPE parameter and use it for the name.
7202         (print_destructor): Likewise.
7203         (print_ada_declaration): Adjust to new constructor/destructor names.
7204         Adjust calls to print_constructor and print_destructor.
7205         (print_ada_struct_decl): Do not test TREE_STATIC on FIELD_DECL.
7206         Look only into variables in the final loop.
7208 2017-08-01  Eric Botcazou  <ebotcazou@adacore.com>
7210         * c-ada-spec.c (has_static_fields): Look only into fields.
7211         (dump_generic_ada_node): Small tweak.
7212         (dump_nested_types): Look only into fields.
7213         (print_ada_declaration): Look only into methods.  Small tweak.
7214         (print_ada_struct_decl): Look only into fields.  Use DECL_VIRTUAL_P.
7216 2017-08-01  Eric Botcazou  <ebotcazou@adacore.com>
7218         * c-ada-spec.c (print_generic_ada_decl): Pass correctly-typed constant.
7219         (dump_ada_function_declaration): Likewise.
7220         (dump_generic_ada_node): Likewise.
7221         (print_ada_declaration): Add support for const-qualified variables.
7223 2017-07-31  Martin Liska  <mliska@suse.cz>
7225         PR sanitize/81530
7226         * c-ubsan.c (ubsan_maybe_instrument_array_ref):
7227         Guard condition with flag_sanitize_p also with current_function_decl
7228         non-null equality.
7229         (ubsan_maybe_instrument_reference_or_call): Likewise.
7231 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
7233         * c-format.c (asm_fprintf_char_table): Add 'z' to format_chars.
7235 2017-07-29  Eric Botcazou  <ebotcazou@adacore.com>
7237         * c-ada-spec.c (dump_generic_ada_node): Take into account signedness
7238         for enumeral types.
7239         (print_ada_declaration): Add missing guard for record types.
7241 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
7243         PR c/45784
7244         * c-omp.c (c_finish_omp_for): If the condition is wrapped in
7245         rhs of COMPOUND_EXPR(s), skip them and readd their lhs into
7246         new COMPOUND_EXPRs around the rhs of the comparison.
7248 2017-07-27  Marek Polacek  <polacek@redhat.com>
7250         PR c/81417
7251         * c-warn.c (warn_for_sign_compare): Tweak the warning message.  Print
7252         the types.
7254 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
7256         * c-attribs.c (c_common_attribute_table): Add noipa attribute.
7257         (handle_noipa_attribute): New function.
7259 2017-07-07  Torsten Duwe  <duwe@suse.de>
7261         * c-attribs.c (c_common_attribute_table): Add entry for
7262         "patchable_function_entry".
7264 2017-07-20  Nathan Sidwell  <nathan@acm.org>
7266         Remove TYPE_METHODS.
7267         * c-ada-spec.c (is_tagged_type, has_nontrivial_methods,
7268         dump_ada_template, print_ada_methods,
7269         print_ada_declaration): Member fns are on TYPE_FIELDS.
7271 2017-07-18  Nathan Sidwell  <nathan@acm.org>
7273         * c-warn.c (warn_for_memset): Use TYPE_{MIN,MAX}_VALUE.
7275 2017-07-14  David Malcolm  <dmalcolm@redhat.com>
7277         * c-common.c (try_to_locate_new_include_insertion_point): New
7278         function.
7279         (per_file_includes_t): New typedef.
7280         (added_includes_t): New typedef.
7281         (added_includes): New variable.
7282         (maybe_add_include_fixit): New function.
7283         * c-common.h (maybe_add_include_fixit): New decl.
7285 2017-07-10  Martin Sebor  <msebor@redhat.com>
7287         PR other/81345
7288         * c.opt (-Wstringop-overflow): Set defaults in LangEnabledBy.
7290 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
7292         * c-common.c (selftest::c_family_tests): New.
7293         * c-common.h (selftest::run_c_tests): Move decl to c/c-lang.h.
7294         (selftest::c_family_tests): New decl.
7296 2017-07-04  Marek Polacek  <polacek@redhat.com>
7298         PR c/81231
7299         * c-common.c (sync_resolve_size): Give error for pointers to incomplete
7300         types.
7302 2017-07-04  Marek Polacek  <polacek@redhat.com>
7304         * c-warn.c (warn_if_unused_value): Remove WITH_CLEANUP_EXPR handling.
7306 2017-06-28  Martin Liska  <mliska@suse.cz>
7308         PR ipa/81128
7309         * c-attribs.c (handle_alias_ifunc_attribute): Append ifunc alias
7310         to a function declaration.
7312 2017-06-28  Martin Liska  <mliska@suse.cz>
7314         PR driver/79659
7315         * c.opt: Add IntegerRange to various options.
7317 2017-06-26  Marek Polacek  <polacek@redhat.com>
7319         PR c/80116
7320         * c-common.h (warn_for_multistatement_macros): Declare.
7321         * c-warn.c: Include "c-family/c-indentation.h".
7322         (warn_for_multistatement_macros): New function.
7323         * c.opt (Wmultistatement-macros): New option.
7324         * c-indentation.c (guard_tinfo_to_string): No longer static.
7325         Change the parameter type to "enum rid".  Handle RID_SWITCH.
7326         * c-indentation.h (guard_tinfo_to_string): Declare.
7328 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
7330         * c-common.c (c_common_nodes_and_builtins): Use builtin_structptr_types.
7332 2017-06-15  Martin Sebor  <msebor@redhat.com>
7334         PR c++/80560
7335         * c.opt (-Wclass-memaccess): New option.
7337 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
7339         * c-opts.c (c_common_finish): Handle '-' special value to -MF.
7341 2017-06-13  Marek Polacek  <polacek@redhat.com>
7343         PR objc/80949
7344         * c-warn.c (do_warn_duplicated_branches): Return if any of the
7345         branches is null.
7347 2017-06-13  Martin Liska  <mliska@suse.cz>
7349         PR sanitize/78204
7350         * c-attribs.c (add_no_sanitize_value): New function.
7351         (handle_no_sanitize_attribute): Likewise.
7352         (handle_no_sanitize_address_attribute): Use the function.
7353         (handle_no_sanitize_thread_attribute): New function.
7354         (handle_no_address_safety_analysis_attribute): Use
7355         add_no_sanitize_value.
7356         (handle_no_sanitize_undefined_attribute): Likewise.
7357         * c-common.h: Declare new functions.
7358         * c-ubsan.c (ubsan_instrument_division): Use sanitize_flags_p.
7359         (ubsan_instrument_shift): Likewise.
7360         (ubsan_instrument_bounds): Likewise.
7361         (ubsan_maybe_instrument_array_ref): Likewise.
7362         (ubsan_maybe_instrument_reference_or_call): Likewise.
7364 2017-06-11  Jason Merrill  <jason@redhat.com>
7366         * c-ada-spec.c, c-pragma.c: Use id_equal.
7368 2017-06-04  Marek Polacek  <polacek@redhat.com>
7370         PR c/80919
7371         * c-format.c (matching_type_p): Return false if any of the types
7372         requires structural equality.
7374 2017-06-02  Martin Sebor  <msebor@redhat.com>
7376         PR c/80892
7377         * c-warn.c (conversion_warning): Use -Wconversion for integer
7378         conversion and -Wfloat-conversion for floating one.
7380 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7382         * c.opt (Wsizeof-pointer-div): New warning option.
7384 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
7386         * c.opt (Wcatch-value): New shortcut for Wcatch-value=1.
7387         (Wcatch-value=1): Enable by -Wall.
7389 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
7391         * c-format.c (gcc_cxxdiag_char_table): Add 'H' and 'I' to
7392         format_chars.
7393         * c.opt (fdiagnostics-show-template-tree): New option.
7394         (felide-type): New option.
7396 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
7398         * c.opt (Wcatch-value=): New C++ warning flag.
7400 2017-05-24  Nathan Sidwell  <nathan@acm.org>
7402         * c=common.c (field_decl_cmp, resort_field_decl_cmp): Adjust T
7403         const casts to avoid warning.
7405 2017-05-24  Martin Sebor  <msebor@redhat.com>
7407         PR c/80731
7408         * c-common.h (unsafe_conversion_p): Add a function argument.
7409         * c-common.c (unsafe_conversion_p): Same.
7410         Add type names and values to diagnostics.
7411         (scalar_to_vector): Adjust.
7412         * c-warn.c (constant_expression_error): Add a function argument.
7413         Add type names and values to diagnostics.
7414         (conversion_warning): Add a function argument.
7415         Add type names and values to diagnostics.
7416         (warnings_for_convert_and_check): Same.
7418 2017-05-19  Jason Merrill  <jason@redhat.com>
7420         * c-warn.c (match_case_to_enum_1): Don't warn about enums with no
7421         enumerators.
7423 2017-05-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7425         * c-format.c (locus): Move out of function scope,
7426         add GTY attribute.
7428 2017-05-19  Nathan Sidwell  <nathan@acm.org>
7430         * c-opts.c (class_dump_file, class_dump_flags): Delete.
7431         (c_common_parse_file): Remove class dump handling.
7432         (get_dump_info): Likewise.
7434 2017-05-19  Richard Biener  <rguenther@suse.de>
7436         PR c++/80593
7437         * c-warn.c (strict_aliasing_warning): Do not warn for accesses
7438         to alias-set zero memory.
7440 2017-05-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7442         * c-format.c (local_tree_type_node): Add GTY attribute.
7444 2017-05-18  Marek Polacek  <polacek@redhat.com>
7446         * c-common.c (c_common_type_for_size): Use NULL_TREE instead of 0.
7447         (c_common_fixed_point_type_for_size): Likewise.
7448         (c_common_type_for_mode): Likewise.
7449         (shorten_compare): Likewise.
7450         (c_promoting_integer_type_p): Use false/true instead of 0/1.
7451         * c-pragma.c (maybe_apply_renaming_pragma): Use NULL_TREE instead of 0.
7453 2017-05-18  Marek Polacek  <polacek@redhat.com>
7455         * c-common.c (self_promoting_args_p): Change the return type to bool.
7456         Use false/true instead of 0/1.
7457         * c-common.h (self_promoting_args_p): Update.
7459 2017-05-17  Marek Polacek  <polacek@redhat.com>
7461         * c-common.c: Use NULL_TREE instead of 0 where appropriate.
7462         * c-warn.c: Likewise.
7464 2017-05-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
7466         Implement new C++ intrinsics __is_assignable and __is_constructible.
7467         * c-common.c (__is_assignable, __is_constructible): New.
7468         * c-common.h (RID_IS_ASSIGNABLE, RID_IS_CONSTRUCTIBLE): Likewise.
7470 2017-05-17  Martin Liska  <mliska@suse.cz>
7472         * c-common.h: Introduce dump_flags_t type and
7473         use it instead of int type.
7474         * c-gimplify.c (c_genericize): Likewise.
7475         * c-opts.c: Likewise.
7477 2017-05-17  Marek Polacek  <polacek@redhat.com>
7479         * c-common.c (c_save_expr): Remove.
7480         (c_common_truthvalue_conversion): Remove a call to c_save_expr.
7481         * c-common.h (c_save_expr): Remove declaration.
7483 2017-05-09  Volker Reichelt  <v.reichelt@netcologne.de>
7485         PR c/35441
7486         * c-pretty-print.c (c_pretty_printer::expression): Handle MAX_EXPR,
7487         MIN_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, LROTATE_EXPR, RROTATE_EXPR.
7488         (c_pretty_printer::postfix_expression): Handle MAX_EXPR, MIN_EXPR.
7489         (c_pretty_printer::multiplicative_expression): Handle EXACT_DIV_EXPR,
7490         RDIV_EXPR.
7491         (pp_c_shift_expression): Handle LROTATE_EXPR, RROTATE_EXPR.
7493 2017-05-09  Marek Polacek  <polacek@redhat.com>
7495         PR c/80525
7496         * c-warn.c (unwrap_c_maybe_const): New.
7497         (warn_logical_operator): Call it.
7499 2017-05-09  Nathan Sidwell  <nathan@acm.org>
7501         * c-common.c (c_register_builtin_type): Use pushdecl lang_hook.
7502         * c-common.h (pushdecl_top_level, pushdecl): Don't declare here.
7504 2017-05-08  Martin Sebor  <msebor@redhat.com>
7506         PR translation/80280
7507         * c-format.h (struct format_flag_spec): Add new member.
7508         (T89_T): New macro.
7509         * c-format.c (local_tree_type_node): New global.
7510         (printf_flag_specs, asm_fprintf_flag_spec): Initialize new data.
7511         (gcc_diag_flag_specs, scanf_flag_specs, strftime_flag_specs): Ditto.
7512         (strfmon_flag_specs): Likewise.
7513         (gcc_diag_char_table, gcc_cdiag_char_table): Split up specifiers
7514         with distinct quoting properties.
7515         (gcc_tdiag_char_table, gcc_cxxdiag_char_table): Same.
7516         (flag_chars_t::validate): Add argument and handle bad quoting.
7517         (check_format_info_main): Handle quoting problems.
7518         (init_dynamic_diag_info): Simplify.
7520 2017-05-08  Jason Merrill  <jason@redhat.com>
7522         * c-opts.c (c_common_post_options): Update defaults for
7523         flag_abi_version and flag_abi_compat_version.
7525 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
7527         * c-common.c (c_cpp_error): Replace report_diagnostic
7528         with diagnostic_report_diagnostic.
7530 2017-05-04  Martin Sebor  <msebor@redhat.com>
7532         PR translation/80280
7533         * c-attribs.c (handle_alias_ifunc_attribute): Quote a %D directive.
7534         (handle_weakref_attribute): Same.
7536 2017-05-03  Nathan Sidwell  <nathan@acm.org>
7538         Canonicalize canonical type hashing
7539         * c-common.c (complete_array_type): Use type_hash_canon.
7541 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
7543         PR c++/80038
7544         * c-common.h (cilk_gimplify_call_params_in_spawned_fn): Remove
7545         prototype.
7546         (cilk_install_body_pedigree_operations): Likewise.
7547         * cilk.c (cilk_set_spawn_marker): Mark functions that should be
7548         detatched.
7549         (cilk_gimplify_call_params_in_spawned_fn): Remove.
7550         (cilk_install_body_pedigree_operations): Likewise.
7551         (gimplify_cilk_spawn): Add EXPR_STMT and CLEANUP_POINT_EXPR
7552         unwrapping.
7554 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
7556         PR c++/80534
7557         * c-common.c (complete_array_type): Only hash TYPE_TYPELESS_STORAGE
7558         flag on non-aggregate element types.
7560 2017-04-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7562         * c-common.c (c_type_hasher, type_hash_table): Remove.
7563         (c_common_get_alias_set): Remove unreachable code.
7564         * c-opts.c (c_common_post_options): Make sure cc1 takes only one file.
7566 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
7568         * c.opt (Wextra-semi): New C++ warning flag.
7570 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
7572         PR middle-end/80423
7573         * c-common.c (complete_array_type): Preserve TYPE_TYPELESS_STORAGE.
7575 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
7577         PR middle-end/79788
7578         PR middle-end/80375
7579         * c-common.c (c_common_type_for_mode): Don't handle
7580         widest_*_literal_type_node here.
7581         c_common_signed_or_unsigned_type): Likewise.
7582         (c_common_nodes_and_builtins): Set widest_*_literal_type_node
7583         to *intTI_type_node or *intDI_type_node depending on whether
7584         TImode is supported by the target or not.
7586 2017-04-10  Martin Liska  <mliska@suse.cz>
7588         PR sanitizer/80350
7589         * c-ubsan.c (ubsan_instrument_shift): Evaluate RHS before
7590         doing an UBSAN check.
7592 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
7594         * c-warn.c (do_warn_double_promotion): Fix typo in comment.
7596 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
7598         PR c++/79572
7599         * c-ubsan.h (ubsan_maybe_instrument_reference): Change argument to
7600         tree *.
7601         * c-ubsan.c (ubsan_maybe_instrument_reference): Likewise.  Handle
7602         not just NOP_EXPR to REFERENCE_TYPE, but also INTEGER_CST with
7603         REFERENCE_TYPE.
7605 2017-03-31  David Malcolm  <dmalcolm@redhat.com>
7607         PR documentation/78732
7608         * c.opt (Wendif-labels): Fix description to refer to
7609         #else rather than #elif.
7611 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
7613         PR libstdc++/80251
7614         * c-common.h (enum rid): Add RID_IS_AGGREGATE.
7615         * c-common.c (c_common_reswords): Add __is_aggregate trait.
7617 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
7619         PR middle-end/80162
7620         * c-common.c (c_common_mark_addressable_vec): Don't set
7621         TREE_ADDRESSABLE on DECL_HARD_REGISTER.
7623 2017-03-21  Martin Sebor  <msebor@redhat.com>
7625         PR c++/79548
7626         * c-common.c (set_underlying_type): Mark type used only when
7627         original del is declared unused.
7629 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
7631         PR translation/79848
7632         * c-format.c (check_format_string): Simplify uses of "%<%s%>" to
7633         "%qs".
7635 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
7637         PR c/79921
7638         * c-indentation.c (warn_for_misleading_indentation): Remove parens
7639         from inform's message, so that xgettext can locate it.
7641 2017-03-09  Marek Polacek  <polacek@redhat.com>
7643         PR c++/79962
7644         PR c++/79984
7645         * c-attribs.c (handle_nonnull_attribute): Save the result of default
7646         conversion to the attribute list.
7648 2017-03-09  Martin Liska  <mliska@suse.cz>
7650         * c-ada-spec.c (macro_length): Increment value instead of a pointer.
7652 2017-03-03  Jason Merrill  <jason@redhat.com>
7654         * c.opt (Wnoexcept-type): New.
7656 2017-03-02  Richard Biener  <rguenther@suse.de>
7658         PR c/79756
7659         * c-common.c (c_common_mark_addressable_vec): Look through
7660         C_MAYBE_CONST_EXPR.
7662 2017-02-28  Martin Liska  <mliska@suse.cz>
7664         * c.opt: Replace space with tabular for options of <number>
7665         type.
7667 2017-02-28  Martin Liska  <mliska@suse.cz>
7669         * c.opt: Fix --help=option -Q for options which are of
7670         an enum type.
7672 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
7674         PR c++/79588
7675         * c-common.c (check_function_restrict): New function.
7676         (check_function_arguments): Add FNDECL argument.  Call
7677         check_function_restrict if -Wrestrict.
7678         * c-warn.c (warn_for_restrict): Remove ARGS argument, add ARGARRAY
7679         and NARGS.  Use auto_vec for ARG_POSITIONS, simplify.
7680         * c-common.h (check_function_arguments): Add FNDECL argument.
7681         (warn_for_restrict): Remove ARGS argument, add ARGARRAY and NARGS.
7683 2017-02-24  Eric Botcazou  <ebotcazou@adacore.com>
7685         * c-ada-spec.c (dump_ada_function_declaration): Add comment about the
7686         treatment of parameters with pointer-to-tagged type and tidy up.
7687         (print_ada_methods): Remove the special treatment of C++ static member
7688         functions.
7690 2017-02-22  Martin Liska  <mliska@suse.cz>
7692         * c.opt: Replace inequality signs with square brackets
7693         for -Wnornalized.
7695 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
7697         PR c++/79641
7698         * c-attribs.c (handle_mode_attribute): Use build_qualified_type to
7699         preserve quals.
7701 2017-02-17  Joseph Myers  <joseph@codesourcery.com>
7703         * c-cppbuiltin.c (builtin_define_float_constants): Define
7704         __DECIMAL_DIG__ to the value for long double.
7706 2017-02-15  Marek Polacek  <polacek@redhat.com>
7708         PR c/79515
7709         * c-warn.c (do_warn_double_promotion): Don't warn if an invalid
7710         conversion has occured.
7712 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
7714         * c-common.c (c_common_reswords): Add "__RTL".
7715         * c-common.h (enum rid): Add RID_RTL.
7717 2017-01-20  Marek Polacek  <polacek@redhat.com>
7719         PR c/64279
7720         * c-common.h (do_warn_duplicated_branches_r): Declare.
7721         * c-gimplify.c (c_genericize): Walk the function tree calling
7722         do_warn_duplicated_branches_r.
7723         * c-warn.c (expr_from_macro_expansion_r): New.
7724         (do_warn_duplicated_branches): New.
7725         (do_warn_duplicated_branches_r): New.
7726         * c.opt (Wduplicated-branches): New option.
7728 2017-01-17  David Malcolm  <dmalcolm@redhat.com>
7730         PR c++/71497
7731         * c-indentation.c (warn_for_misleading_indentation): Use the past
7732         subjunctive in the note.
7734 2017-01-17  Aldy Hernandez  <aldyh@redhat.com>
7736         PR c/79116
7737         * array-notation-common.c (cilkplus_extract_an_triplets): Convert
7738         start type to integer_type.
7740 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
7742         PR driver/49726
7743         * c.opt (gen-decls): Add Driver flag.
7745 2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
7747         Revert:
7748         2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
7750         PR c++/71737
7751         * c-common.c (set_underlying_type): Always set DECL_ORIGINAL_TYPE.
7753 2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
7755         PR c++/71737
7756         * c-common.c (set_underlying_type): Always set DECL_ORIGINAL_TYPE.
7758 2017-01-12  Martin Sebor  <msebor@redhat.com>
7760         (-Wformat-overflow): ...to this.
7762 2017-01-11  Martin Sebor  <msebor@redhat.com>
7764         PR c/78768
7765         * c.opt (-Walloca-larger-than, -Wformat-length, -Wformat-truncation):
7766         Also enable for LTO.
7768 2017-01-10  Jason Merrill  <jason@redhat.com>
7770         Implement P0195R2, C++17 variadic using.
7771         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_variadic_using.
7773 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
7775         PR translation/79019
7776         PR translation/79020
7777         * c.opt (Wnormalized=): Fix typo in description.
7779 2017-01-08  Martin Sebor  <msebor@redhat.com>
7781         PR middle-end/77708
7782         * c.opt (-Wformat-truncation): New option.
7784 2017-01-06  Alexandre Oliva  <aoliva@redhat.com>
7786         * c-pretty-print.c (pp_c_tree_decl_identifier): Convert 16-bit
7787         value to unsigned short to fit in 4 hex digits without
7788         warnings.
7790 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
7792         * c.opt (fsso-struct): Add 'native' value.
7794 2017-01-05  Martin Liska  <mliska@suse.cz>
7796         PR pch/78970
7797         * c-opts.c (c_common_post_options): Reject '-' filename for a precompiled
7798         header.
7800 2017-01-04  Marek Polacek  <polacek@redhat.com>
7802         PR c++/64767
7803         * c.opt (Wpointer-compare): New option.
7805 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
7807         PR driver/78957
7808         * c.opt (fsso-struct=): Add RejectNegative.
7810 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
7812         Update copyright years.
7814 2016-12-29  Martin Liska  <mliska@suse.cz>
7816         PR c/78933
7817         * c.opt (strong-eval-order): Add RejectNegative keyword.
7819 2016-12-22  Jason Merrill  <jason@redhat.com>
7821         Implement P0522R0, matching of template template arguments.
7822         * c-cppbuiltin.c (c_cpp_builtins): Define
7823         __cpp_template_template_args.
7825 2016-12-21  Jakub Jelinek  <jakub@redhat.com>
7827         PR bootstrap/78817
7828         * c-common.c (struct nonnull_arg_ctx): New type.
7829         (check_function_nonnull): Return bool instead of void.  Use
7830         nonnull_arg_ctx as context rather than just location_t.
7831         (check_nonnull_arg): Adjust for the new context type, set
7832         warned_p to true if a warning has been diagnosed.
7833         (check_function_arguments): Return bool instead of void.
7834         * c-common.h (check_function_arguments): Adjust prototype.
7836 2016-12-21  Jason Merrill  <jason@redhat.com>
7838         * c.opt (-fnew-ttp-matching): New flag.
7839         * c-opts.c (c_common_post_options): Default on if -std=c++1z.
7841 2016-12-14  Martin Jambor  <mjambor@suse.cz>
7843         * c-omp.c: Include omp-general.h instead of omp-low.h.
7844         (c_finish_oacc_wait): Adjusted call to find_omp_clause to use its new
7845         name.
7847 2016-12-14  Martin Sebor  <msebor@redhat.com>
7849         PR c/17308
7850         * c-common.c (check_nonnull_arg): Disable when optimization
7851         is enabled.
7853 2016-12-12  Marek Polacek  <polacek@redhat.com>
7855         PR c++/78647
7856         * c-common.c (attribute_fallthrough_p): Return false for
7857         error_mark_node.
7859 2016-12-08  Martin Sebor  <msebor@redhat.com>
7861         PR c/78284
7862         * c.opt (-Walloc-zero, -Walloc-size-larger-than): New options.
7864 2016-12-08  Martin Sebor  <msebor@redhat.com>
7866         PR c/78165
7867         * c-pretty-print (pp_c_integer_constant): Avoid formatting type
7868         suffix.
7870 2016-12-07  Martin Sebor  <msebor@redhat.com>
7872         PR c/53562
7873         PR middle-end/77784
7874         PR middle-end/78149
7875         PR middle-end/78138
7876         * c.opt (-Wstringop-overflow): New option.
7878 2016-12-02  Maxim Ostapenko  <m.ostapenko@samsung.com>
7880         * c-attribs.c (asan odr indicator): New attribute.
7881         (handle_asan_odr_indicator_attribute): New function.
7883 2016-11-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7885         * c-common.c (c_common_nodes_and_builtins): Remove initialization of
7886         ptrdiff_type_node;
7888 2016-11-23  James Greenhalgh  <james.greenhalgh@arm.com>
7890         * c-common.c (excess_precision_mode_join): New.
7891         (c_ts18661_flt_eval_method): New.
7892         (c_c11_flt_eval_method): Likewise.
7893         (c_flt_eval_method): Likewise.
7894         * c-common.h (excess_precision_mode_join): New.
7895         (c_flt_eval_method): Likewise.
7896         * c-cppbuiltin.c (c_cpp_flt_eval_method_iec_559): New.
7897         (cpp_iec_559_value): Call it.
7898         (c_cpp_builtins): Modify logic for __LIBGCC_*_EXCESS_PRECISION__,
7899         call c_flt_eval_method to set __FLT_EVAL_METHOD__ and
7900         __FLT_EVAL_METHOD_TS_18661_3__.
7902 2016-11-23  James Greenhalgh  <james.greenhalgh@arm.com>
7904         * c-opts.c (c_common_post_options): Add logic to handle the default
7905         case for -fpermitted-flt-eval-methods.
7907 2016-11-23  Paolo Bonzini  <bonzini@gnu.org>
7909         * c.opt (Wexpansion-to-defined): New.
7911 2016-11-23  Jakub Jelinek  <jakub@redhat.com>
7913         PR target/78451
7914         * c-pragma.c (handle_pragma_target): Don't replace
7915         current_target_pragma, but chainon the new args to the current one.
7917 2016-11-22  Nathan Sidwell  <nathan@acm.org>
7919         * array-notation-common.c (cilkplus_extract_an_trplets): Fix
7920         indentation and formatting.
7922 2016-11-21  Martin Sebor  <msebor@redhat.com>
7924         * c.opt (-fprintf-return-value): Enable by default.
7926 2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7928         PR c++/71973
7929         * c.opt (-Wbuiltin-declaration-mismatch): New warning.
7930         * c-common.c (c_common_nodes_and_builtins): Initialize
7931         const_tm_ptr_type_node.
7933 2016-11-16  Marek Polacek  <polacek@redhat.com>
7935         PR c/78285
7936         * c-common.c (c_add_case_label): Turn error_at calls into inform.
7938 2016-11-14  Jakub Jelinek  <jakub@redhat.com>
7940         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings.
7942 2016-11-14  Prasad Ghangal  <prasad.ghangal@gmail.com>
7943             Richard Biener  <rguenther@suse.de>
7945         * c-common.h (c_common_resword): Add RID_GIMPLE, RID_PHI types.
7946         * c-common.h (enum rid): Add RID_GIMPLE, RID_PHI.
7947         * c.opt (fgimple): New option.
7949 2016-11-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7951         PR c/35503
7952         * c-common.h (warn_for_restrict): Declare.
7953         * c-warn.c: Include gcc-rich-location.h.
7954         (warn_for_restrict): New function.
7955         * c-format.c (gcc_tdiag_char_table): Add entry for "Z" specifier.
7956         (gcc_cdiag_char_table): Likewise.
7957         (gcc_cxxdiag_char_table): Likewise.
7958         * c.opt (Wrestrict): New option.
7960 2016-11-13  Eric Botcazou  <ebotcazou@adacore.com>
7962         * c-ada-spec.c (print_ada_declaration): For typedef declarations, look
7963         for nested types only if the type is a record or union and dump SLOC.
7965 2016-11-09  Jason Merrill  <jason@redhat.com>
7967         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_template_auto.
7969 2016-11-09  Jakub Jelinek  <jakub@redhat.com>
7971         * c-ubsan.c (ubsan_instrument_shift): Handle split
7972         -fsanitize=shift-base and -fsanitize=shift-exponent.
7974 2016-11-07  Jason Merrill  <jason@redhat.com>
7976         * c.opt (Wc++1z-compat): New.
7977         * c-cppbuiltin.c (c_cpp_builtins): Add __cpp_noexcept_function_type.
7979 2016-11-07  Martin Liska  <mliska@suse.cz>
7981         * c-warn.c (warn_for_unused_label): Save all labels used
7982         in goto or in &label.
7984 2016-11-03  Jason Merrill  <jason@redhat.com>
7986         * c-cppbuiltin.c (c_cpp_builtins): Correct
7987         __cpp_inheriting_constructors.
7989 2016-11-01  Jason Merrill  <jason@redhat.com>
7991         * c-cppbuiltin.c (c_cpp_builtins): Update
7992         __cpp_inheriting_constructors.
7994         * c.opt (-fnew-inheriting-ctors): New.
7995         * c-opts.c: Default to on for ABI 11+.
7997 2016-10-31  Jakub Jelinek  <jakub@redhat.com>
7999         PR c++/77948
8000         * c.opt (fext-numeric-literals): Add Var and Init.
8001         * c-opts.c (c_common_handle_option): Don't clear
8002         cpp_opts->ext_numeric_literals for -std=c++{11,14,1z}.
8003         (c_common_post_options): Clear it here if not set
8004         explicitly.
8006 2016-10-28  Aldy Hernandez  <aldyh@redhat.com>
8008         PR debug/77773
8009         * c-pretty-print.c (simple_type_specifier): Do not dereference `t'
8010         if NULL.
8012 2016-10-25  Jakub Jelinek  <jakub@redhat.com>
8014         * c-common.h (enum rid): Add RID_BUILTIN_LAUNDER.
8015         * c-common.c (c_common_reswords): Add __builtin_launder.
8017 2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8019         * c-common.c (c_common_truthvalue_conversion): Warn for
8020         multiplications in boolean context.  Fix the quoting of '<<' and '<'
8021         in the shift warning.
8023 2016-10-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8025         * c-common.c (c_common_truthvalue_conversion): Fix the comment.
8027 2016-10-20  Jason Merrill  <jason@redhat.com>
8029         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_concepts value.
8031 2016-10-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8033         * c-common.c (c_common_truthvalue_conversion): Warn only for signed
8034         integer shift ops in boolean context.
8036 2016-10-18  Aldy Hernandez  <aldyh@redhat.com>
8038         * c.opt (Walloca): New.
8039         (Walloca-larger-than=): New.
8040         (Wvla-larger-than=): New.
8042 2016-10-17  Marek Polacek  <polacek@redhat.com>
8044         * c-warn.c (find_array_ref_with_const_idx_r): Remove parameter names.
8045         Return immediately when finding a match.
8046         (warn_tautological_cmp): Remove a boolean variable that is no longer
8047         needed.
8049 2016-10-17  Marek Polacek  <polacek@redhat.com>
8051         * c-attribs.c: New file.
8052         * c-common.c: Move attributes handling to c-attribs.c.
8053         (get_nonnull_operand): No longer static.
8054         * c-common.h: Move the declarations from c-attribs.c to its own section.
8056 2016-10-14  Jason Merrill  <jason@redhat.com>
8058         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_aggregate_bases
8059         and __cpp_deduction_guides.
8061 2016-10-13  Jason Merrill  <jason@redhat.com>
8063         * c-cppbuiltin.c (c_cpp_builtins): Add __cpp_inline_variables.
8065 2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8067         * c-cppbuiltin.c: Include memmodel.h.
8068         * c-opts.c: Likewise.
8069         * c-pragma.c: Likewise.
8070         * c-warn.c: Likewise.
8072 2016-10-12  Jakub Jelinek  <jakub@redhat.com>
8074         * c.opt (Wextra): Add as C/C++/ObjC/ObjC++ option.
8075         (Wimplicit-fallthrough=): Enable for these languages by -Wextra.
8076         * c-opts.c (sanitize_cpp_opts): Initialize
8077         cpp_opts->cpp_warn_implicit_fallthrough.
8079 2016-10-11  Marek Polacek  <polacek@redhat.com>
8081         * c-common.c (warning_candidate_p): Change the return type to bool
8082         and return true/false instead of 1/0.
8083         (vector_mode_valid_p): Likewise.
8085 2016-10-11  Marek Polacek  <polacek@redhat.com>
8087         * c-common.c (fold_for_warn): No longer static.
8088         (bool_promoted_to_int_p): Likewise.
8089         (c_common_get_narrower): Likewise.
8090         (constant_expression_warning): Move to c-warn.c.
8091         (constant_expression_error): Likewise.
8092         (overflow_warning): Likewise.
8093         (warn_logical_operator): Likewise.
8094         (find_array_ref_with_const_idx_r): Likewise.
8095         (warn_tautological_cmp): Likewise.
8096         (expr_has_boolean_operands_p): Likewise.
8097         (warn_logical_not_parentheses): Likewise.
8098         (warn_if_unused_value): Likewise.
8099         (strict_aliasing_warning): Likewise.
8100         (sizeof_pointer_memaccess_warning): Likewise.
8101         (check_main_parameter_types): Likewise.
8102         (conversion_warning): Likewise.
8103         (warnings_for_convert_and_check): Likewise.
8104         (match_case_to_enum_1): Likewise.
8105         (match_case_to_enum): Likewise.
8106         (c_do_switch_warnings): Likewise.
8107         (warn_for_omitted_condop): Likewise.
8108         (readonly_error): Likewise.
8109         (lvalue_error): Likewise.
8110         (invalid_indirection_error): Likewise.
8111         (warn_array_subscript_with_type_char): Likewise.
8112         (warn_about_parentheses): Likewise.
8113         (warn_for_unused_label): Likewise.
8114         (warn_for_div_by_zero): Likewise.
8115         (warn_for_memset): Likewise.
8116         (warn_for_sign_compare): Likewise.
8117         (do_warn_double_promotion): Likewise.
8118         (do_warn_unused_parameter): Likewise.
8119         (record_locally_defined_typedef): Likewise.
8120         (maybe_record_typedef_use): Likewise.
8121         (maybe_warn_unused_local_typedefs): Likewise.
8122         (maybe_warn_bool_compare): Likewise.
8123         (maybe_warn_shift_overflow): Likewise.
8124         (warn_duplicated_cond_add_or_warn): Likewise.
8125         (diagnose_mismatched_attributes): Likewise.
8126         * c-common.h: Move the declarations from c-warn.c to its own section.
8127         * c-warn.c: New file.
8129 2016-10-08  Jason Merrill  <jason@redhat.com>
8131         * c-common.c (c_common_truthvalue_conversion): Don't distribute
8132         into COND_EXPR in C++.
8134 2016-10-08  Jakub Jelinek  <jakub@redhat.com>
8136         * c-lex.c (c_lex_with_flags) <case CPP_COMMENT>: For CPP_COMMENT
8137         token with PREV_FALLTHROUGH, skip all following CPP_PADDING and
8138         CPP_COMMENT tokens and set add_flags to PREV_FALLTHROUGH afterwards.
8140 2016-10-07  Jakub Jelinek  <jakub@redhat.com>
8142         Implement LWG2296 helper intrinsic
8143         * c-common.h (enum rid): Add RID_ADDRESSOF.
8144         * c-common.c (c_common_reswords): Add __builtin_addressof.
8146 2016-10-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8148         PR c++/77700
8149         * c-common.c (c_common_truthvalue_conversion): Warn also for
8150         suspicious enum values in boolean context.
8152 2016-10-06  Jakub Jelinek  <jakub@redhat.com>
8154         Implement P0258R2 - helper for C++17
8155         std::has_unique_object_representations trait
8156         * c-common.h (enum rid): Add RID_HAS_UNIQUE_OBJ_REPRESENTATIONS.
8157         * c-common.c (c_common_reswords): Add
8158         __has_unique_object_representations.
8160 2016-10-05  Jakub Jelinek  <jakub@redhat.com>
8162         PR sanitizer/66343
8163         * c-ubsan.c (ubsan_instrument_return): Don't call
8164         initialize_sanitizer_builtins here.
8166 2016-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8168         * c-common.c (c_common_truthvalue_conversion): Warn also for suspicious
8169         conditional expression in boolean context when only one arm is
8170         non-boolean.
8172 2016-10-05  Jakub Jelinek  <jakub@redhat.com>
8174         PR sanitizer/77823
8175         * c-ubsan.c (ubsan_instrument_shift): Return NULL_TREE if type0
8176         is not integral.
8178         * c-common.c (c_common_reswords): Update comment for C++11.
8180 2016-10-04  Jason Merrill  <jason@redhat.com>
8182         * c-common.c (make_tree_vector_from_ctor): New.
8183         * c-common.h: Declare it.
8185 2016-10-04  Jakub Jelinek  <jakub@redhat.com>
8187         * c-cppbuiltin.c (c_cpp_builtins): Don't define
8188         __LIBGCC_JCR_SECTION_NAME__.
8190 2016-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8192         * c-common.c (c_common_truthvalue_conversion): Warn for suspicious
8193         left shift in boolean context.
8195 2016-09-29  Jakub Jelinek  <jakub@redhat.com>
8197         Implement P0001R1 - C++17 removal of register storage class specifier
8198         * c.opt (Wregister): New warning.
8199         * c-opts.c (c_common_post_options): Enable -Wregister by
8200         default for C++17.
8202 2016-09-29  James Greenhalgh  <james.greenhalgh@arm.com>
8204         * c-opts.c (c_common_post_options): Remove special case for
8205         TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard
8206         in C++.
8208 2016-09-27  Jakub Jelinek  <jakub@redhat.com>
8210         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_capture_star_this for
8211         -std=c++1z.
8213         * c-ada-spec.c (print_ada_declaration): Remove break after return.
8215 2016-09-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8217         * c-common.c: Include memmodel.h.
8219 2016-09-26  Marek Polacek  <polacek@redhat.com>
8221         * c-lex.c (c_common_has_attribute): Handle attribute fallthrough.
8223 2016-09-26  Marek Polacek  <polacek@redhat.com>
8225         PR c/7652
8226         * c-common.c (c_common_attribute_table): Add fallthrough attribute.
8227         (handle_fallthrough_attribute): New function.
8228         (attribute_fallthrough_p): New function.
8229         * c-common.h (attribute_fallthrough_p): Declare.
8231 2016-09-24  Marek Polacek  <polacek@redhat.com>
8233         PR c/77490
8234         * c.opt (Wbool-operation): New.
8236 2016-09-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8238         * c-common.c (c_common_truthvalue_conversion): Inhibit
8239         Wint-in-bool-context warning with from_macro_definition_at.
8240         Mention the expression will always evaluate to true.
8242 2016-09-21  Martin Sebor  <msebor@redhat.com>
8244         PR bootstrap/77676
8245         * c.opt (fprintf-return-value): Temporarily initialize to zero
8246         to unblock bootstrap failures.
8248 2016-09-21  Jakub Jelinek  <jakub@redhat.com>
8250         PR c++/77651
8251         * c.opt (Waligned-new=): Add RejectNegative.
8252         (faligned-new=): Likewise.  Spelling fix - change
8253         aligned_new_threshhold to aligned_new_threshold.
8254         * c-cppbuiltin.c (c_cpp_builtins): Change aligned_new_threshhold
8255         to aligned_new_threshold.
8257 2016-09-20  Martin Sebor  <msebor@redhat.com>
8259         PR middle-end/49905
8260         * c.opt: Add -Wformat-length and -fprintf-return-value.
8262 2016-09-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8264         PR c++/77434
8265         * c.opt (Wint-in-bool-context): New warning.
8266         * c-common.c (c_common_truthvalue_conversion): Warn on integer
8267         constants in boolean context.
8269 2016-09-19  Joseph Myers  <joseph@codesourcery.com>
8271         * c-common.c (max_align_t_align): Also consider alignment of
8272         float128_type_node.
8274 2016-09-15  Jason Merrill  <jason@redhat.com>
8276         * c-common.c (check_cxx_fundamental_alignment_constraints): Check
8277         DECL_EXTERNAL.
8279 2016-09-14  Jason Merrill  <jason@redhat.com>
8281         * c-common.c (check_cxx_fundamental_alignment_constraints): Don't
8282         limit FIELD_DECL, either.
8284 2016-09-14  Marek Polacek  <polacek@redhat.com>
8286         * c-common.c (c_common_truthvalue_conversion): Use false instead of 0.
8287         * c-common.h (build_unary_op): Change nonconvert parameter type to bool.
8288         * c-omp.c (c_finish_omp_atomic): Use false instead of 0.
8290 2016-09-13  David Malcolm  <dmalcolm@redhat.com>
8292         * c-common.c (warn_logical_not_parentheses): Replace
8293         rich_location::add_fixit_insert calls with add_fixit_insert_before
8294         and add_fixit_insert_after, eliminating the "next_loc" calculation.
8296 2016-09-13  Jason Merrill  <jason@redhat.com>
8297             Tom de Vries  <tom@codesourcery.com>
8299         PR c++/77427
8300         * c-common.c (set_underlying_type): Don't treat array as builtin type.
8302 2016-09-13  Jason Merrill  <jason@redhat.com>
8304         * c-common.c (check_cxx_fundamental_alignment_constraints): Don't
8305         limit types at all.
8307 2016-09-12  Jason Merrill  <jason@redhat.com>
8309         * c-common.c (check_cxx_fundamental_alignment_constraints): Fix
8310         bit/byte confusion, allow large alignment for types.
8312 2016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8314         PR c++/77496
8315         * c-common.c (warn_for_omitted_condop): Also warn for boolean data.
8317 2016-09-12  David Malcolm  <dmalcolm@redhat.com>
8319         PR c/72858
8320         * c-format.c (argument_parser::check_argument_type): Add params
8321         "type_start" and "conversion_char".  Use the former to generate
8322         offset_to_type_start and pass it and conversion_char to
8323         check_format_types.
8324         (check_format_info_main): Capture the start of the type
8325         information as "type_start", and pass it an format_char
8326         to arg_parser.check_argument_type.
8327         (check_format_types): Provide an example in the leading comment.
8328         Add params "offset_to_type_start" and "conversion_char"; pass
8329         them to format_type_warning calls.
8330         (test_get_modifier_for_format_len): Likewise.
8331         (matching_type_p): New function.
8332         (get_format_for_type): Add param "conversion_char" and move
8333         implementation into...
8334         (get_format_for_type_1): ...new function, called twice.
8335         Use new function matching_type_p rather than checking for
8336         TYPE_CANONICAL equality.
8337         (get_corrected_substring): New function.
8338         (format_type_warning): Provide an example in the leading comment.
8339         Add params "offset_to_type_start" and "conversion_char".  Replace
8340         call to get_format_for_type with call to get_corrected_substring
8341         and move rejection of hints for widths/precisions there.
8342         (assert_format_for_type_streq): Add param "conversion_char".
8343         (ASSERT_FORMAT_FOR_TYPE_STREQ): Add param CONVERSION_CHAR.
8344         (test_get_format_for_type_printf): Add conversion chars to the
8345         tests, adding coverage for various combinations of integer
8346         vs double conversions, and for preserving octal and hexadecimal
8347         conversions.
8348         (test_get_format_for_type_scanf): Add conversion chars to the
8349         tests.
8351 2016-09-10  Tom de Vries  <tom@codesourcery.com>
8353         PR C/71602
8354         * c-common.c (build_va_arg): Handle more strict
8355         targetm.canonical_va_list_type.  Replace first argument type error with
8356         assert.
8358 2016-09-09  Martin Sebor  <msebor@redhat.com>
8360         PR c/77520
8361         PR c/77521
8362         * c-format.c (argument_parser::find_format_char_info): Use %qc
8363         format directive unconditionally.
8365 2016-09-09  Jason Merrill  <jason@redhat.com>
8367         Implement C++17 new of over-aligned types.
8368         * c.opt: Add -faligned-new and -Waligned-new.
8369         * c-common.c (max_align_t_align): Split out from...
8370         (cxx_fundamental_alignment_p): ...here.
8371         * c-common.h: Declare it.
8372         * c-cppbuiltin.c (c_cpp_builtins): Handle aligned new.
8374 2016-09-09  Joseph Myers  <joseph@codesourcery.com>
8376         * c-cppbuiltin.c (builtin_define_type_width): New function.
8377         (builtin_define_stdint_macros, c_cpp_builtins): Define type width
8378         macros.
8380 2016-09-07  David Malcolm  <dmalcolm@redhat.com>
8382         * c-common.c (get_cpp_ttype_from_string_type): Handle being passed
8383         a POINTER_TYPE.
8384         (substring_loc::get_location): Move to substring-locations.c,
8385         keeping implementation as...
8386         (c_get_substring_location): New function, from the above, reworked
8387         to use accessors rather than member lookup.
8388         * c-common.h (class substring_loc): Move to substring-locations.h,
8389         replacing with a forward decl.
8390         (c_get_substring_location): New decl.
8391         * c-format.c: Include "substring-locations.h".
8392         (format_warning_va): Move to substring-locations.c.
8393         (format_warning_at_substring): Likewise.
8395 2016-09-06  Martin Sebor  <msebor@redhat.com>
8397         PR c/77336
8398         * c-format.c (check_function_format): Avoid issuing warnings for
8399         functions unless they call format functions with non-constant
8400         format strings.
8402 2016-09-06  Richard Biener  <rguenther@suse.de>
8404         PR c/77450
8405         * c-common.c (c_common_mark_addressable_vec): Handle
8406         COMPOUND_LITERAL_EXPR.
8408 2016-09-05  Marek Polacek  <polacek@redhat.com>
8410         PR c/77423
8411         * c-common.c (bool_promoted_to_int_p): New function.
8412         (expr_has_boolean_operands_p): New function.
8413         (warn_logical_not_parentheses): Return if expr_has_boolean_operands_p.
8414         (maybe_warn_bool_compare): Use bool_promoted_to_int_p.
8416 2016-09-04  Tom de Vries  <tom@codesourcery.com>
8418         revert:
8419         2016-08-29  Tom de Vries  <tom@codesourcery.com>
8421         * c-common.c (build_va_arg): Replace first argument type error
8422         with assert.
8424 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
8426         PR c/65467
8427         * c-omp.c (c_finish_omp_atomic): Reject _Atomic qualified expressions.
8428         (c_finish_omp_for): Reject _Atomic qualified iterators.
8430 2016-09-01  Martin Sebor  <msebor@redhat.com>
8432         * c-ada-spec.c (dump_ada_function_declaration): Increase buffer
8433         size to guarantee it fits the output of the formatted function
8434         regardless of its arguments.
8436 2016-09-01  Marek Polacek  <polacek@redhat.com>
8438         PR c/7652
8439         * c-common.c (resolve_overloaded_builtin): Fix formatting.  Add
8440         FALLTHRU comments.
8442 2016-08-29  Marek Polacek  <polacek@redhat.com>
8444         PR c/77292
8445         * c-common.c (warn_logical_not_parentheses): Don't warn for
8446         a comparison or a logical operator.
8448 2016-08-29  Tom de Vries  <tom@codesourcery.com>
8450         * c-common.c (build_va_arg): Fix type comparison assert.
8452 2016-08-29  Tom de Vries  <tom@codesourcery.com>
8454         * c-common.c (build_va_arg): Replace first argument type error
8455         with assert.
8457 2016-08-29  Tom de Vries  <tom@codesourcery.com>
8459         PR c/77398
8460         * c-common.c (build_va_arg): Add first argument error.  Build va_arg
8461         with error_mark_node as va_list instead of with illegal va_list.
8463 2016-08-25  Marek Polacek  <polacek@redhat.com>
8464             David Malcolm  <dmalcolm@redhat.com>
8466         * c-common.c (warn_logical_not_parentheses): Print fixit hints.
8467         * c-common.h (warn_logical_not_parentheses): Update declaration.
8469 2016-08-22  Marek Polacek  <polacek@redhat.com>
8471         PR c++/77321
8472         * c-common.c (warn_for_memset): Check type for null.
8474 2016-08-22  Joseph Myers  <joseph@codesourcery.com>
8476         * c-cppbuiltin.c (c_cpp_builtins): Check _FloatN and
8477         _FloatNx types for suffixes for built-in functions.
8479 2016-08-19  Joseph Myers  <joseph@codesourcery.com>
8481         PR c/32187
8482         * c-common.h (RID_FLOAT16, RID_FLOATN_NX_FIRST, RID_FLOAT32)
8483         (RID_FLOAT64, RID_FLOAT128, RID_FLOAT32X, RID_FLOAT64X)
8484         (RID_FLOAT128X): New enum rid values.
8485         (CASE_RID_FLOATN_NX): New macro.
8486         * c-common.c (c_common_reswords): Add _FloatN and _FloatNx
8487         keywords.
8488         (c_common_type_for_mode): Check for _FloatN and _FloatNx and
8489         corresponding complex types.
8490         (c_common_nodes_and_builtins): For non-C++, register _FloatN and
8491         _FloatNx and corresponding complex types.
8492         (keyword_begins_type_specifier): Use CASE_RID_FLOATN_NX.
8493         * c-cppbuiltin.c (builtin_define_float_constants): Check _FloatN
8494         and _FloatNx types for the widest type for determining
8495         DECIMAL_DIG.  Define __LDBL_DECIMAL_DIG__ as well as
8496         __DECIMAL_DIG__ for long double.  Handle FMA_SUFFIX being NULL.
8497         (c_cpp_builtins): Call builtin_define_float_constants for _FloatN
8498         and _FloatNx types.
8499         * c-lex.c (interpret_float): Handle _FloatN and _FloatNx
8500         constants.
8501         * c-pretty-print.c (pp_c_floating_constant): Handle _FloatN and
8502         _FloatNx types.
8504 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
8506         * c-opts.c (c_diagnostic_finalizer): Update for change to
8507         diagnostic_show_locus.
8509 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
8511         * c-common.c: Include "spellcheck.h".
8512         (cb_get_suggestion): New function.
8513         * c-common.h (cb_get_suggestion): New decl.
8514         * c-lex.c (init_c_lex): Initialize cb->get_suggestion to
8515         cb_get_suggestion.
8517 2016-08-18  Marek Polacek  <polacek@redhat.com>
8519         PR c/71514
8520         * c-common.c (get_atomic_generic_size): Disallow pointer-to-function
8521         and pointer-to-VLA.
8523 2016-08-16  David Malcolm  <dmalcolm@redhat.com>
8525         PR c/72857
8526         * c-common.c (substring_loc::get_range): Rename to...
8527         (substring_loc::get_location): ...this, converting param from a
8528         source_range * to a location_t *.  Call
8529         get_source_location_for_substring rather than
8530         get_source_range_for_substring, and pass in m_caret_idx.
8531         * c-common.h (substring_loc::substring_loc): Add param "caret_idx".
8532         (substring_loc::get_range): Replace with...
8533         (substring_loc::get_location): ...this.
8534         (substring_loc::set_caret_index): New method.
8535         (substring_loc): Add field m_caret_idx.
8536         * c-format.c (format_warning_va): Update for above changes.
8537         Rename local "substring_loc" to "fmt_substring_loc" to avoid
8538         clashing with type name.
8539         (format_warning_at_char): Add caret_idx param to substring_loc ctor.
8540         (check_argument_type): Likewise.
8541         (format_type_warning): Rename param "fmt_loc" to "whole_fmt_loc"
8542         Use a copy when emitting warnings, setting the caret index from TYPE.
8544 2016-08-16  Eric Botcazou  <ebotcazou@adacore.com>
8545             Arnaud Charlet  <charlet@adacore.com>
8547         * c-ada-spec.c (dump_number): New function.
8548         (handle_escape_character): Likewise.
8549         (print_ada_macros): Add handling of constant integers and strings.
8551 2016-08-12  Marek Polacek  <polacek@redhat.com>
8553         PR c/7652
8554         * c-common.c (scalar_to_vector): Adjust fall through comment.
8555         * c-opts.c (c_common_handle_option): Likewise.
8556         * c-pragma.c (handle_pragma_pack): Add FALLTHRU.
8557         * c-pretty-print.c (c_pretty_printer::postfix_expression): Adjust
8558         fall through comment.
8559         * cilk.c (extract_free_variables): Add FALLTHRU.
8561 2016-08-10  Jason Merrill  <jason@redhat.com>
8563         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.
8565 2016-08-09  Jason Merrill  <jason@redhat.com>
8567         * c-common.c (c_common_attribute_table): vector_size affects type
8568         identity.
8570 2016-08-09  Marek Polacek  <polacek@redhat.com>
8572         PR c/7652
8573         * c-ada-spec.c (dump_generic_ada_node): Add return.
8575 2016-08-09  Jason Merrill  <jason@redhat.com>
8577         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_constexpr for
8578         C++17 constexpr lambdas.
8580 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
8582         PR c/64955
8583         * c-common.h (selftest::c_format_c_tests): New declaration.
8584         (selftest::run_c_tests): New declaration.
8585         * c-format.c: Include "selftest.h.
8586         (format_warning_va): Add param "corrected_substring" and use
8587         it to add a replacement fix-it hint.
8588         (format_warning_at_substring): Likewise.
8589         (format_warning_at_char): Update for new param of
8590         format_warning_va.
8591         (argument_parser::check_argument_type): Pass "fki" to
8592         check_format_types.
8593         (check_format_types): Add param "fki" and pass it to
8594         format_type_warning.
8595         (deref_n_times): New function.
8596         (get_modifier_for_format_len): New function.
8597         (selftest::test_get_modifier_for_format_len): New function.
8598         (get_format_for_type): New function.
8599         (format_type_warning): Add param "fki" and use it to attempt
8600         to provide hints for argument types when calling
8601         format_warning_at_substring.
8602         (selftest::get_info): New function.
8603         (selftest::assert_format_for_type_streq): New function.
8604         (ASSERT_FORMAT_FOR_TYPE_STREQ): New macro.
8605         (selftest::test_get_format_for_type_printf): New function.
8606         (selftest::test_get_format_for_type_scanf): New function.
8607         (selftest::c_format_c_tests): New function.
8609 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
8611         PR c/52952
8612         * c-format.c: Include "diagnostic.h".
8613         (location_column_from_byte_offset): Delete.
8614         (location_from_offset): Delete.
8615         (format_warning_va): New function.
8616         (format_warning_at_substring): New function.
8617         (format_warning_at_char): New function.
8618         (check_format_arg): Capture location of format_tree and pass to
8619         check_format_info_main.
8620         (argument_parser): Add fields "start_of_this_format" and
8621         "format_string_cst".
8622         (flag_chars_t::validate): Add param "format_string_cst".  Convert
8623         warning_at call using location_from_offset to call to
8624         format_warning_at_char.
8625         (argument_parser::argument_parser): Add param "format_string_cst_"
8626         and use use it to initialize field "format_string_cst".
8627         Initialize new field "start_of_this_format".
8628         (argument_parser::read_format_flags): Convert warning_at call
8629         using location_from_offset to a call to format_warning_at_char.
8630         (argument_parser::read_any_format_left_precision): Likewise.
8631         (argument_parser::read_any_format_precision): Likewise.
8632         (argument_parser::read_any_other_modifier): Likewise.
8633         (argument_parser::find_format_char_info): Likewise, in three places.
8634         (argument_parser::parse_any_scan_set): Likewise, in one place.
8635         (argument_parser::handle_conversions): Likewise, in two places.
8636         (argument_parser::check_argument_type): Add param "fmt_param_loc"
8637         and use it to make a substring_loc.  Pass the latter to
8638         check_format_types.
8639         (check_format_info_main): Add params "fmt_param_loc" and
8640         "format_string_cst".  Convert warning_at calls using
8641         location_from_offset to calls to format_warning_at_char.  Pass the
8642         new params to the arg_parser ctor.  Pass "format_string_cst" to
8643         flag_chars.validate.  Pass "fmt_param_loc" to
8644         arg_parser.check_argument_type.
8645         (check_format_types): Convert first param from a location_t
8646         to a const substring_loc & and rename to "fmt_loc".  Attempt
8647         to extract the range of the relevant parameter and pass it
8648         to format_type_warning.
8649         (format_type_warning): Convert first param from a location_t
8650         to a const substring_loc & and rename to "fmt_loc".  Add
8651         params "param_range" and "type".  Replace calls to warning_at
8652         with calls to format_warning_at_substring.
8654 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
8656         * c-format.c (class flag_chars_t): New class.
8657         (struct length_modifier): New struct.
8658         (class argument_parser): New class.
8659         (flag_chars_t::flag_chars_t): New ctor.
8660         (flag_chars_t::has_char_p): New method.
8661         (flag_chars_t::add_char): New method.
8662         (flag_chars_t::validate): New method.
8663         (flag_chars_t::get_alloc_flag): New method.
8664         (flag_chars_t::assignment_suppression_p): New method.
8665         (argument_parser::argument_parser): New ctor.
8666         (argument_parser::read_any_dollar): New method.
8667         (argument_parser::read_format_flags): New method.
8668         (argument_parser::read_any_format_width): New method.
8669         (argument_parser::read_any_format_left_precision): New method.
8670         (argument_parser::read_any_format_precision): New method.
8671         (argument_parser::handle_alloc_chars): New method.
8672         (argument_parser::read_any_length_modifier): New method.
8673         (argument_parser::read_any_other_modifier): New method.
8674         (argument_parser::find_format_char_info): New method.
8675         (argument_parser::validate_flag_pairs): New method.
8676         (argument_parser::give_y2k_warnings): New method.
8677         (argument_parser::parse_any_scan_set): New method.
8678         (argument_parser::handle_conversions): New method.
8679         (argument_parser::check_argument_type): New method.
8680         (check_format_info_main): Introduce classes argument_parser
8681         and flag_chars_t, moving the code within the loop into methods
8682         of these classes.  Make various locals "const".
8684 2016-08-05  David Malcolm  <dmalcolm@redhat.com>
8686         * c-common.c: Include "substring-locations.h".
8687         (get_cpp_ttype_from_string_type): New function.
8688         (g_string_concat_db): New global.
8689         (substring_loc::get_range): New method.
8690         * c-common.h (g_string_concat_db): New declaration.
8691         (class substring_loc): New class.
8692         * c-lex.c (lex_string): When concatenating strings, capture the
8693         locations of all tokens using a new obstack, and record the
8694         concatenation locations within g_string_concat_db.
8695         * c-opts.c (c_common_init_options): Construct g_string_concat_db
8696         on the ggc-heap.
8698 2016-07-29  Marek Polacek  <polacek@redhat.com>
8700         PR c/71926
8701         * c-common.c (c_common_truthvalue_conversion): Use LOCATION for the
8702         parentheses warning.
8704         PR c/71574
8705         * c-common.c (handle_alloc_align_attribute): Also check FUNCTION_DECL.
8707 2016-07-28  Martin Liska  <mliska@suse.cz>
8709         PR gcov-profile/68025
8710         * c-common.c (handle_no_profile_instrument_function_attribute):
8712 2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8714         * c-common.c (check_user_alignment): Use LOG2_BITS_PER_UNIT instead of
8715         BITS_PER_UNIT_LOG.
8717 2016-07-25  Jason Merrill  <jason@redhat.com>
8719         PR c++/65970
8720         * c.opt (fconstexpr-loop-limit): New.
8722 2016-07-22  Martin Sebor  <msebor@redhat.com>
8724         PR c++/71675
8725         * c-common.c (resolve_overloaded_builtin): Avoid converting
8726         __atomic_compare_exchange_n return type to that of what its
8727         first argument points to.
8729 2016-07-22  Uros Bizjak  <ubizjak@gmail.com>
8731         * c-common.c: Use HOST_WIDE_INT_M1U instead of
8732         ~(unsigned HOST_WIDE_INT) 0.
8734 2016-07-22  Martin Liska  <mliska@suse.cz>
8736         PR gcov-profile/69028
8737         PR gcov-profile/62047
8738         * cilk.c (create_cilk_helper_decl): Set location of a new decl
8739         to the current_function_decl.
8741 2016-07-21  Jason Merrill  <jason@redhat.com>
8743         PR c++/65168
8744         * c-common.c (c_common_truthvalue_conversion): Check
8745         c_inhibit_evaluation_warnings for warning about address of
8746         reference.
8748 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
8750         * c-common.h (lookup_name_fuzzy): Convert return type from tree to
8751         const char *.
8753 2016-07-15  Jason Merrill  <jason@redhat.com>
8755         * c-opts.c (c_common_post_options): Update -fabi-version default to 11.
8757 2016-07-15  Jakub Jelinek  <jakub@redhat.com>
8759         PR c/71858
8760         * c-common.h (enum lookup_name_fuzzy_kind): Add
8761         FUZZY_LOOKUP_FUNCTION_NAME.
8763 2016-07-08  Jason Merrill  <jason@redhat.com>
8765         P0145: Refining Expression Order for C++.
8766         * c.opts (-fargs-in-order): Rename to -fstrong-eval-order.
8767         * c-opts.c: Adjust.
8769 2016-07-05  Markus Trippelsdorf  <markus@trippelsdorf.de>
8771         PR c++/71214
8772         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_rvalue_references.
8774 2016-06-29  Thomas Schwinge  <thomas@codesourcery.com>
8776         * c-pragma.h (enum pragma_kind): Rename
8777         PRAGMA_OMP_DECLARE_REDUCTION to PRAGMA_OMP_DECLARE.  Adjust all
8778         users.
8780 2016-06-29  Richard Biener  <rguenther@suse.de>
8782         PR middle-end/71002
8783         * c-common.c (c_common_get_alias_set): Remove union type punning case.
8785 2016-06-24  Jason Merrill  <jason@redhat.com>
8787         P0145R2: Refining Expression Order for C++.
8788         * c-common.c (verify_tree) [COMPOUND_EXPR]: Fix handling on LHS of
8789         MODIFY_EXPR.
8791 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
8793         * c-common.c (check_builtin_function_arguments): Require last
8794         argument of BUILT_IN_*_OVERFLOW_P to have INTEGER_TYPE type.
8795         Adjust wording of diagnostics for BUILT_IN_*_OVERLFLOW
8796         if the last argument is pointer to enumerated or boolean type.
8798 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
8800         PR c/70339
8801         * c-common.h (enum lookup_name_fuzzy_kind): New enum.
8802         (lookup_name_fuzzy): New prototype.
8804 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
8806         * c-common.c (get_source_date_epoch): Use int64_t instead of long long.
8808 2016-06-14  Jason Merrill  <jason@redhat.com>
8810         P0145R2: Refining Expression Order for C++.
8811         * c.opt (fargs-in-order): New.
8812         * c-opts.c (c_common_post_options): Adjust flag_args_in_order.
8814 2016-06-13  Jakub Jelinek  <jakub@redhat.com>
8816         PR sanitizer/71498
8817         * c-gimplify.c (ubsan_walk_array_refs_r): Set *walk_subtrees = 0 on
8818         all BIND_EXPRs, and on all BIND_EXPRs recurse also on BIND_EXPR_BODY.
8820         PR preprocessor/71183
8821         * c-ppoutput.c (init_pp_output): Set cb->get_source_date_epoch
8822         to cb_get_source_date_epoch.
8824 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
8826         PR c/68657
8827         * c.opt (Wpsabi): Add Warning flag.
8829 2016-06-10  Martin Sebor  <msebor@redhat.com>
8831         PR c/71392
8832         * c-common.c (handle_nonnull_attribute): Accept
8833         the nonnull attribute in type-generic builtins.
8835 2016-06-09  Martin Sebor  <msebor@redhat.com>
8837         PR c/70883
8838         * c-common.c (builtin_function_validate_nargs): Make text of error
8839         message consistent with others like it.
8841 2016-06-08  Martin Sebor  <msebor@redhat.com>
8842             Jakub Jelinek  <jakub@redhat.com>
8844         PR c++/70507
8845         PR c/68120
8846         * c-common.c (check_builtin_function_arguments): Handle
8847         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
8849 2016-06-08  Richard Biener  <rguenther@suse.de>
8851         * c-common.c (parse_optimize_options): Improve diagnostic messages.
8853 2016-06-07  Richard Biener  <rguenther@suse.de>
8855         PR c/61564
8856         * c-common.c (parse_optimize_options): Only apply CL_OPTIMIZATION
8857         options and warn about others.
8859 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
8861         * c-common.c (get_source_date_epoch): Rename to
8862         cb_get_source_date_epoch.
8863         * c-common.c (cb_get_source_date_epoch): Use a single generic erorr
8864         message when the parsing fails.  Use error_at instead of fatal_error.
8865         * c-common.h (get_source_date_epoch): Rename to
8866         cb_get_source_date_epoch.
8867         * c-common.h (cb_get_source_date_epoch): Prototype.
8868         * c-common.h (MAX_SOURCE_DATE_EPOCH): Define.
8869         * c-common.h (c_omp_region_type): Remove trailing comma.
8870         * c-lex.c (init_c_lex): Set cb->get_source_date_epoch callback.
8871         * c-lex.c (c_lex_with_flags): Remove initialization of
8872         pfile->source_date_epoch.
8874 2016-05-30  Jakub Jelinek  <jakub@redhat.com>
8876         PR c++/71349
8877         * c-omp.c (c_omp_split_clauses): Put OMP_CLAUSE_DEPEND to
8878         C_OMP_CLAUSE_SPLIT_TARGET.  Put OMP_CLAUSE_NOWAIT to
8879         C_OMP_CLAUSE_SPLIT_TARGET if combined with target construct,
8880         instead of C_OMP_CLAUSE_SPLIT_FOR.
8882 2016-05-24  Richard Biener  <rguenther@suse.de>
8884         PR middle-end/70434
8885         PR c/69504
8886         * c-common.h (convert_vector_to_pointer_for_subscript): Rename to ...
8887         (convert_vector_to_array_for_subscript): ... this.
8888         * c-common.c (convert_vector_to_pointer_for_subscript): Use a
8889         VIEW_CONVERT_EXPR to an array type.  Rename to ...
8890         (convert_vector_to_array_for_subscript): ... this.
8892 2016-05-12  Marek Polacek  <polacek@redhat.com>
8894         PR c/70756
8895         * c-common.c (pointer_int_sum): Call size_in_bytes_loc instead of
8896         size_in_bytes and pass LOC to it.
8898 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
8900         PR c/43651
8901         * c.opt (Wduplicate-decl-specifier): New option.
8903 2016-05-11  Marek Polacek  <polacek@redhat.com>
8905         PR c++/71024
8906         * c-common.c (diagnose_mismatched_attributes): New function.
8907         * c-common.h (diagnose_mismatched_attributes): Declare.
8909 2016-05-04  Marek Polacek  <polacek@redhat.com>
8911         * c.opt (Wdangling-else): New option.
8913 2016-05-03  Marek Polacek  <polacek@redhat.com>
8915         PR c/70859
8916         * c-common.c (builtin_function_validate_nargs): Add location
8917         parameter.  Use it.
8918         (check_builtin_function_arguments): Add location and arguments
8919         parameters.  Use them.
8920         * c-common.h (check_builtin_function_arguments): Update declaration.
8922 2016-05-03  Richard Biener  <rguenther@suse.de>
8924         * cilk.c (cilk_gimplify_call_params_in_spawned_fn): Do not
8925         allow call args to gimplify to SSA names.
8927 2016-05-03  Marek Polacek  <polacek@redhat.com>
8929         * c-common.h (enum c_omp_region_type): Remove stray comma.
8931 2016-05-02  Cesar Philippidis  <cesar@codesourcery.com>
8933         * c-common.h (enum c_omp_region_type): Define.
8935 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8937         * c-common.c (shorten_compare): Use wi::to_wide.
8939 2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>
8941         PR middle-end/70626
8942         * c-common.h (c_oacc_split_loop_clauses): Add boolean argument.
8943         * c-omp.c (c_oacc_split_loop_clauses): Use it to duplicate
8944         reduction clauses in acc parallel loops.
8946 2016-04-29  Marek Polacek  <polacek@redhat.com>
8948         PR c/70852
8949         * c-common.c (warn_for_memset): Check domain before accessing it.
8951 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8953         PR/69089
8954         * c-common.c (handle_aligned_attribute): Allow 0 as an argument to the
8955         "aligned" attribute.
8957 2016-04-28  Jason Merrill  <jason@redhat.com>
8959         * c-lex.c (c_common_has_attribute): Handle nodiscard.
8961 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
8962             Matthias Klose  <doko@debian.org>
8964         * c-common.c (get_source_date_epoch): New function, gets the environment
8965         variable SOURCE_DATE_EPOCH and parses it as long long with error
8966         handling.
8967         * c-common.h (get_source_date_epoch): Prototype.
8968         * c-lex.c (c_lex_with_flags): set parse_in->source_date_epoch.
8970 2015-04-27  Ryan Burn  <contact@rnburn.com>
8972         PR c++/69024
8973         PR c++/68997
8974         * cilk.c (cilk_ignorable_spawn_rhs_op): Change to external linkage.
8975         (cilk_recognize_spawn): Renamed from recognize_spawn and change to
8976         external linkage.
8977         (cilk_detect_and_unwrap): Corresponding changes.
8978         (extract_free_variables): Don't extract free variables from
8979         AGGR_INIT_EXPR slot.
8980         * c-common.h (cilk_ignorable_spawn_rhs_op): Prototype.
8981         (cilk_recognize_spawn): Likewise.
8983 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
8985         * c.opt (Wmemset-elt-size): New option.
8986         * c-common.c (warn_for_memset): New function.
8987         * c-common.h (warn_for_memset): Declare.
8989 2016-04-25  Jason Merrill  <jason@redhat.com>
8991         * c-common.c (handle_unused_attribute): Accept CONST_DECL.
8992         No longer static.
8993         * c-common.h: Declare it.
8994         * c-lex.c (c_common_has_attribute): Add maybe_unused.
8996 2016-04-22  Jason Merrill  <jason@redhat.com>
8998         * c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_range_based_for.
9000 2016-04-20  Ilya Verbin  <ilya.verbin@intel.com>
9002         PR c++/69363
9003         * c-cilkplus.c (c_finish_cilk_clauses): Remove function.
9004         * c-common.h (c_finish_cilk_clauses): Remove declaration.
9006 2016-04-18  Michael Matz  <matz@suse.de>
9008         * c-common.c (handle_aligned_attribute): Use SET_TYPE_ALIGN
9009         and SET_DECL_ALIGN.
9011 2016-04-17  Eric Botcazou  <ebotcazou@adacore.com>
9013         * c-ada-spec.c (get_underlying_decl): Return the typedef, if any.
9014         (dump_generic_ada_node) <POINTER_TYPE>: Clean up handling of access
9015         to incomplete types.
9016         (dump_nested_type): Remove redundant tests and tidy up.
9017         (print_ada_declaration): Also set TREE_VISITED on the declaration of
9018         a type which is the typedef of an original type.
9020 2016-04-15  Marek Polacek  <polacek@redhat.com>
9022         PR c/70651
9023         * c-common.c (build_va_arg): Change two asserts into errors and return
9024         error_mark_node.
9026 2016-04-13  Marek Polacek  <polacek@redhat.com>
9028         PR c++/70639
9029         * c-indentation.c (should_warn_for_misleading_indentation): Bail out
9030         for switch statements, too.
9032 2016-03-28  Jason Merrill  <jason@redhat.com>
9034         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_range_based_for.
9036 2016-03-23  Marek Polacek  <polacek@redhat.com>
9038         PR c++/69884
9039         * c.opt (Wignored-attributes): New option.
9041 2016-03-22  David Malcolm  <dmalcolm@redhat.com>
9043         PR c/69993
9044         * c-indentation.c (warn_for_misleading_indentation): Rewrite the
9045         diagnostic text, reversing the order of the warning and note so
9046         that they appear in source order.
9048 2016-03-17  Marek Polacek  <polacek@redhat.com>
9050         PR c/69407
9051         * c-common.c (resolve_overloaded_builtin): Set TREE_USED for the fetch
9052         operations.
9054 2016-03-14  Jason Merrill  <jason@redhat.com>
9056         * c-cppbuiltin.c (c_cpp_builtins): Set __cpp_hex_float.
9058         * c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_range_based_for.
9060 2016-03-09  Richard Biener  <rguenther@suse.de>
9062         PR c/70143
9063         * c-common.c (strict_aliasing_warning): Add back
9064         alias_sets_conflict_p check.
9066 2016-03-08  Jason Merrill  <jason@redhat.com>
9068         * c-opts.c (set_std_cxx1z): Don't enable concepts.
9070 2016-03-04  David Malcolm  <dmalcolm@redhat.com>
9072         PR c/68187
9073         * c-indentation.c (get_visual_column): Move code to determine next
9074         tab stop to...
9075         (next_tab_stop): ...this new function.
9076         (line_contains_hash_if): Delete function.
9077         (detect_preprocessor_logic): Delete function.
9078         (get_first_nws_vis_column): New function.
9079         (detect_intervening_unindent): New function.
9080         (should_warn_for_misleading_indentation): Replace call to
9081         detect_preprocessor_logic with a call to
9082         detect_intervening_unindent.
9084 2016-03-04  David Malcolm  <dmalcolm@redhat.com>
9086         PR c/68187
9087         * c-indentation.c (should_warn_for_misleading_indentation): When
9088         suppressing warnings about cases where the guard and body are on
9089         the same column, only use the first non-whitespace column in place
9090         of the guard token column when dealing with "else" clauses.
9091         When rejecting aligned BODY and NEXT, loosen the requirement
9092         from equality with the first non-whitespace of guard to simply
9093         that they not be indented relative to it.
9095 2016-03-04  Richard Biener  <rguenther@suse.de>
9097         PR c++/70054
9098         * c-common.c (strict_aliasing_warning): Use alias_set_subset_of
9099         instead of alias_sets_conflict_p.
9101 2016-03-01  Marek Polacek  <polacek@redhat.com>
9103         PR c++/69795
9104         * c-common.c (reject_gcc_builtin): Check for FUNCTION_DECL rather than
9105         any DECL.
9107 2016-02-22  Martin Sebor  <msebor@redhat.com>
9109         PR middle-end/69780
9110         * c-common.c (check_builtin_function_arguments): Validate and
9111         reject invalid arguments to __builtin_alloca_with_align.
9113 2016-02-20  Mark Wielaard  <mjw@redhat.com>
9115         PR c/28901
9116         * c.opt (Wunused-const-variable): Turn into Alias for...
9117         (Wunused-const-variable=): New option.
9119 2016-02-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9121         PR c++/69865
9122         * c-opts.c (c_common_post_options): Move call to set_std_cxx14 from
9123         here...
9124         (c_common_init_options): ...to here.
9125         (set_std_cxx98): Initialize flag_isoc94 and flag_isoc99.
9127 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
9129         PR c++/69826
9130         * c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_GRAINSIZE.
9131         (init_pragma): Register PRAGMA_CILK_GRAINSIZE even for
9132         flag_preprocess_only.
9134 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
9136         PR c/69835
9137         * c.opt (Wnonnull-compare): Enable for -Wall.
9139 2016-02-15  Jakub Jelinek  <jakub@redhat.com>
9141         PR c++/69797
9142         * c-common.c (sync_resolve_size): Diagnose too few arguments
9143         even when params is non-NULL empty vector.
9145 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
9147         PR target/60410
9148         * c.opt (fshort-double): Remove.
9150 2016-02-05  Martin Sebor  <msebor@redhat.com>
9152         PR c++/69662
9153         * c.opt (Warning options): Update -Wplacement-new to take
9154         an optional argument.
9156 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
9158         PR preprocessor/69543
9159         PR c/69558
9160         * c-pragma.c (handle_pragma_diagnostic): Pass input_location
9161         instead of loc to control_warning_option.
9163 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
9165         * c.opt (fopenacc-dim=): New option.
9167 2016-01-27  Ryan Burn  <contact@rnburn.com>
9169         PR cilkplus/69267
9170         * cilk.c (cilk_gimplify_call_params_in_spawned_fn): Change to use
9171         gimplify_arg. Removed superfluous post_p argument.
9172         * c-family.h (cilk_gimplify_call_params_in_spawned_fn): Removed
9173         superfluous post_p argument.
9174         * c-gimplify.c (c_gimplify_expr): Likewise.
9176 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
9178         PR other/69006
9179         * c-opts.c (c_diagnostic_finalizer): Replace invocation of
9180         pp_newline_and_flush with pp_flush.
9182 2016-01-20  Martin Sebor  <msebor@redhat.com>
9184         PR c/69405
9185         * c-common.c (sync_resolve_size): Avoid printing diagnostic about
9186         an incompatible argument when the argument isn't a valid tree node.
9188 2016-01-18  Jason Merrill  <jason@redhat.com>
9190         PR c++/68767
9191         * c-common.c (check_function_arguments_recurse): Fold the whole
9192         COND_EXPR, not just the condition.
9194 2016-01-18  Tom de Vries  <tom@codesourcery.com>
9196         * c-omp.c (c_oacc_split_loop_clauses): Don't copy OMP_CLAUSE_REDUCTION,
9197         classify as loop clause.
9199 2016-01-15  Jakub Jelinek  <jakub@redhat.com>
9201         PR bootstrap/68271
9202         * c-pragma.c (c_register_pragma_1): Adjust comment to note that
9203         C++ FE no longer has limit on number of pragmas.
9205 2015-01-14  Ryan Burn  <contact@rnburn.com>
9207         PR c++/69048
9208         * cilk.c (create_cilk_wrapper_body): Call fold_build_cleanup_point_expr
9209         to add missing cleanup point.
9211 2016-01-14  David Malcolm  <dmalcolm@redhat.com>
9213         PR c++/68819
9214         * c-indentation.c (get_visual_column): Add location_t param.
9215         Handle the column number being zero by effectively disabling the
9216         warning, with an "inform".
9217         (should_warn_for_misleading_indentation): Add location_t argument
9218         for all uses of get_visual_column.
9220 2016-01-10  Patrick Palka  <ppalka@gcc.gnu.org>
9222         PR c++/69029
9223         * c-indentation.c (should_warn_for_misleading_indentation):
9224         Don't warn about do-while statements.
9226 2016-01-07  Martin Sebor  <msebor@redhat.com>
9228         PR c/68966
9229         * c-common.c (sync_resolve_size): Reject first argument when it's
9230         a pointer to _Bool.
9232 2016-01-05  David Malcolm  <dmalcolm@redhat.com>
9234         PR c/69122
9235         * c-indentation.c (get_visual_column): Remove default argument.
9236         (should_warn_for_misleading_indentation): For the multiline case,
9237         update call to get_visual_column for next_stmt_exploc so that it
9238         captures the location of the first non-whitespace character in the
9239         relevant line.  Don't issue warnings if there is non-whitespace
9240         before the next statement.
9242 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
9244         Update copyright years.
9246 2015-12-21  David Malcolm  <dmalcolm@redhat.com>
9248         * c-common.c (binary_op_error): Convert first param from
9249         location_t to rich_location * and use it when emitting an error.
9250         * c-common.h (binary_op_error): Convert first param from
9251         location_t to rich_location *.
9253 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
9255         * c-common.h (conflict_marker_get_final_tok_kind): New prototype.
9256         * c-lex.c (conflict_marker_get_final_tok_kind): New function.
9258 2015-12-15  Ilya Verbin  <ilya.verbin@intel.com>
9260         * c-common.c (c_common_attribute_table): Handle "omp declare target
9261         link" attribute.
9263 2015-12-14  Jakub Jelinek  <jakub@redhat.com>
9265         PR c/68833
9266         * c.opt (Wmissing-format-attribute, Wnormalized): Add Warning option.
9268 2014-12-12  Tobias Burnus  <burnus@net-b.de>
9270         PR fortran/68815
9271         * c-format.c (gcc_gfc_char_table): Add 'q' flag to remaining
9272         specifiers (%d, %i,%u and %c).
9274 2015-12-10  David Malcolm  <dmalcolm@redhat.com>
9276         * c.opt (Wmisleading-indentation): Add to -Wall for C and C++.
9278 2015-12-08  Jakub Jelinek  <jakub@redhat.com>
9280         PR c/48088
9281         PR c/68657
9282         * c.opt (Wfloat-conversion, Wsign-conversion): Add Warning.
9283         * c-pragma.c (handle_pragma_diagnostic): Adjust
9284         control_warning_option caller.
9286 2015-12-07  David Malcolm  <dmalcolm@redhat.com>
9288         * c-common.c (c_cpp_error): Update for change to
9289         rich_location::set_range.
9291 2015-12-04  Paolo Bonzini  <bonzini@gnu.org>
9293         * c-common.c (maybe_warn_shift_overflow): Warn on all overflows if
9294         shifting 1 out of the sign bit.
9296 2015-12-04  Kirill Yukhin  <kirill.yukhin@intel.com>
9298         * c-common.c (c_common_attribute_table[]): Update max arguments
9299         count for "simd" attribute.
9300         (handle_simd_attribute): Parse "notinbranch" and "inbranch" arguments.
9302 2015-12-03  Jakub Jelinek  <jakub@redhat.com>
9304         PR preprocessor/57580
9305         * c-ppoutput.c (print): Change printed field to bool.
9306         Move src_file last for smaller padding.
9307         (init_pp_output): Set print.printed to false instead of 0.
9308         (scan_translation_unit): Fix up formatting.  Set print.printed
9309         to true after printing something other than newline.
9310         (scan_translation_unit_trad): Set print.printed to true instead of 1.
9311         (maybe_print_line_1): Set print.printed to false instead of 0.
9312         (print_line_1): Likewise.
9313         (do_line_change): Set print.printed to true instead of 1.
9314         (cb_define, dump_queued_macros, cb_include, cb_def_pragma,
9315         dump_macro): Set print.printed to false after printing newline.
9317 2015-12-02  Jason Merrill  <jason@redhat.com>
9319         * c-common.c (fold_for_warn): New.
9320         (warn_logical_operator, warn_tautological_cmp)
9321         (check_function_arguments_recurse, maybe_warn_bool_compare): Use it.
9323         * c-common.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
9324         (c_fully_fold_internal, decl_constant_value_for_optimization):
9325         Move to c/c-fold.c.
9326         * c-common.h: Don't declare decl_constant_value_for_optimization.
9328 2015-12-02  Joseph Myers  <joseph@codesourcery.com>
9330         PR c/68162
9331         * c-common.h (c_build_qualified_type): Add extra default
9332         arguments.
9334 2015-12-01  Julian Brown  <julian@codesourcery.com>
9335             Cesar Philippidis  <cesar@codesourcery.com>
9336             James Norris  <James_Norris@mentor.com>
9338         * c-pragma.c (oacc_pragmas): Add PRAGMA_OACC_HOST_DATA.
9339         * c-pragma.h (pragma_kind): Add PRAGMA_OACC_HOST_DATA.
9340         (pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_USE_DEVICE.
9342 2015-11-30  Eric Botcazou  <ebotcazou@adacore.com>
9344         * c-ada-spec.c (print_ada_macros): Remove redundant blank line.
9345         (decl_sloc_common): Delete and move bulk of processing to...
9346         (decl_sloc): ...here.
9347         (pp_ada_tree_identifier): Remove reference to QUAL_UNION_TYPE.
9348         (dump_ada_double_name): Remove S parameter and compute the suffix.
9349         (dump_ada_array_type): Add PARENT parameter.  Simplify computation of
9350         element type and deal with an anonymous one.
9351         (dump_ada_template): Use RECORD_OR_UNION_TYPE_P macro.
9352         (dump_generic_ada_node): Tweak.  Adjust call to dump_ada_array_type
9353         and remove reference to QUAL_UNION_TYPE.
9354         (dump_nested_types): Make 2 passes on the fields and move bulk to...
9355         (dump_nested_type): ...here.  New function extracted from above.
9356         Generate a full declaration for anonymous element type of arrays.
9357         (print_ada_declaration): Really skip anonymous declarations.  Remove
9358         references to QUAL_UNION_TYPE.  Adjust call to dump_ada_array_type.
9359         Clean up processing of declarations of array types and objects.
9360         (print_ada_struct_decl): Remove reference to QUAL_UNION_TYPE.
9361         Remove obsolete code and tidy up.
9363 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
9365         PR c/67581
9366         * c-common.c (handle_transparent_union_attribute): Update
9367         also type variants.
9369 2015-11-27  Martin Liska  <mliska@suse.cz>
9371         PR c++/68312
9372         * array-notation-common.c (cilkplus_extract_an_triplets):
9373         Release vector of vectors.
9374         * cilk.c (gimplify_cilk_spawn): Free allocated memory.
9376 2015-11-26  Eric Botcazou  <ebotcazou@adacore.com>
9378         PR c++/68527
9379         * c-ada-spec.c (dump_nested_types): Add guard for error_mark_node.
9380         (print_ada_struct_decl): Likewise.
9382 2015-11-23  Igor Zamyatin  <igor.zamyatin@intel.com>
9384         PR c++/68001
9385         * c-gimplify.c (c_gimplify_expr): Stop the process if see an error.
9386         * cilk.c (recognize_spawn): Determine location in a more precise
9387         way.
9389 2015-11-19  Jason Merrill  <jason@redhat.com>
9391         * c-common.c (shorten_compare): But look through macros from
9392         system headers.
9394 2015-11-18  Jason Merrill  <jason@redhat.com>
9396         * c-common.c (shorten_compare): Don't -Wtype-limits if the
9397         non-constant operand comes from a macro.
9399 2015-11-17  Jason Merrill  <jason@redhat.com>
9401         PR bootstrap/68346
9402         * c-common.c (warn_tautological_cmp): Fold before checking for
9403         constants.
9405 2015-11-16  Marek Polacek  <polacek@redhat.com>
9407         PR c++/68362
9408         * c-common.c (check_case_bounds): Fold low and high cases.
9410 2015-11-16  Marek Polacek  <polacek@redhat.com>
9412         * c-ada-spec.c (dump_ada_template): Use RECORD_OR_UNION_TYPE_P.
9413         * c-common.c (c_common_get_alias_set): Likewise.
9414         (handle_visibility_attribute): Likewise.
9416 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
9418         * c-common.c (handle_simd_attribute): New.
9419         (struct attribute_spec): Add entry for "simd".
9420         (handle_simd_attribute): New.
9422 2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
9424         * c-lex.c (interpret_float): Use fold_convert.
9426 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
9428         * c-common.c (c_fully_fold_internal): Capture existing souce_range,
9429         and store it on the result.
9430         * c-opts.c (c_common_init_options): Set
9431         global_dc->colorize_source_p.
9433 2015-11-12  James Norris  <jnorris@codesourcery.com>
9434             Joseph Myers  <joseph@codesourcery.com>
9436         * c-pragma.c (oacc_pragmas): Add entry for declare directive.
9437         * c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_DECLARE.
9438         (enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT and
9439         PRAGMA_OACC_CLAUSE_LINK.
9441 2015-11-11  Marek Polacek  <polacek@redhat.com>
9443         PR c/68107
9444         PR c++/68266
9445         * c-common.c (valid_array_size_p): New function.
9446         * c-common.h (valid_array_size_p): Declare.
9448 2015-11-11  Dominique d'Humieres  <dominiq@lps.ens.fr>
9450         PR bootstrap/68271
9451         * c-pragma.c (c_register_pragma_1): Update the gcc_assert to 256.
9453 2015-11-11  Andrew MacLeod  <amacleod@redhat.com>
9455         * array-notation-common.c: Remove unused header files.
9456         * c-ada-spec.c: Likewise.
9457         * c-cilkplus.c: Likewise.
9458         * c-common.c: Likewise.
9459         * c-cppbuiltin.c: Likewise.
9460         * c-dump.c: Likewise.
9461         * c-format.c: Likewise.
9462         * c-gimplify.c: Likewise.
9463         * c-indentation.c: Likewise.
9464         * c-lex.c: Likewise.
9465         * c-omp.c: Likewise.
9466         * c-opts.c: Likewise.
9467         * c-pch.c: Likewise.
9468         * c-ppoutput.c: Likewise.
9469         * c-pragma.c: Likewise.
9470         * c-pretty-print.c: Likewise.
9471         * c-semantics.c: Likewise.
9472         * c-ubsan.c: Likewise.
9473         * cilk.c: Likewise.
9474         * stub-objc.c: Likewise.
9476 2015-11-09  Thomas Schwinge  <thomas@codesourcery.com>
9477             Cesar Philippidis  <cesar@codesourcery.com>
9478             James Norris  <jnorris@codesourcery.com>
9479             Julian Brown  <julian@codesourcery.com>
9480             Nathan Sidwell  <nathan@codesourcery.com>
9482         * c-pragma.c (oacc_pragmas): Add "routine".
9483         * c-pragma.h (pragma_kind): Add PRAGMA_OACC_ROUTINE.
9485 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
9487         * c-common.c (c_common_attributes): Add scalar_storage_order.
9488         (handle_scalar_storage_order_attribute): New function.
9489         * c-pragma.c (global_sso): New variable.
9490         (maybe_apply_pragma_scalar_storage_order): New function.
9491         (handle_pragma_scalar_storage_order): Likewise.
9492         (init_pragma): Register scalar_storage_order.
9493         * c-pragma.h (maybe_apply_pragma_scalar_storage_order): Declare.
9494         * c.opt (Wscalar-storage-order): New warning.
9495         (fsso-struct=): New option.
9497 2015-11-08  Martin Sebor  <msebor@redhat.com>
9499         * c.opt (Wplacement-new): Add a period to the end of a sentence.
9501 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
9503         * c-common.c: Don't undef DEF_BUILTIN.
9505 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
9507         * c-common.c (c_cpp_error): Convert parameter from location_t to
9508         rich_location *.  Eliminate the "column_override" parameter and
9509         the call to diagnostic_override_column.
9510         Update the "done_lexing" clause to set range 0
9511         on the rich_location, rather than overwriting a location_t.
9512         * c-common.h (c_cpp_error): Convert parameter from location_t to
9513         rich_location *.  Eliminate the "column_override" parameter.
9515 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
9516             Thomas Schwinge  <thomas@codesourcery.com>
9517             James Norris  <jnorris@codesourcery.com>
9519         * c-omp.c (c_oacc_split_loop_clauses): Make TILE, GANG, WORKER, VECTOR,
9520         AUTO, SEQ, INDEPENDENT and PRIVATE loop clauses.  Associate REDUCTION
9521         clauses with parallel and kernels and loops.
9522         * c-pragma.h (enum pragma_omp_clause): Add entries for
9523         PRAGMA_OACC_CLAUSE_{INDEPENDENT,TILE,DEFAULT}.
9524         * pt.c (tsubst_omp_clauses): Add support for OMP_CLAUSE_{NUM_GANGS,
9525         NUM_WORKERS,VECTOR_LENGTH,GANG,WORKER,VECTOR,ASYNC,WAIT,TILE,AUTO,
9526         INDEPENDENT,SEQ}.
9527         (tsubst_expr): Add support for OMP_CLAUSE_{KERNELS,PARALLEL,LOOP}.
9529 2015-11-05  Martin Sebor  <msebor@redhat.com>
9531         PR c++/67942
9532         * c.opt (-Wplacement-new): New option.
9534 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
9536         * c-common.h (c_finish_omp_atomic): Add TEST argument.
9537         (c_omp_check_loop_iv, c_omp_check_loop_iv_exprs): New prototypes.
9538         * c-omp.c (c_finish_omp_atomic): Add TEST argument.  Don't call
9539         save_expr or create_tmp_var* if TEST is true.
9540         (c_finish_omp_for): Store OMP_FOR_ORIG_DECLS always.
9541         Don't call add_stmt here.
9542         (struct c_omp_check_loop_iv_data): New type.
9543         (c_omp_check_loop_iv_r, c_omp_check_loop_iv,
9544         c_omp_check_loop_iv_exprs): New functions.
9545         (c_omp_split_clauses): Adjust for lastprivate being allowed on
9546         distribute.
9547         (c_omp_declare_simd_clauses_to_numbers): Change
9548         OMP_CLAUSE_LINEAR_VARIABLE_STRIDE OMP_CLAUSE_LINEAR_STEP into numbers.
9549         (c_omp_declare_simd_clauses_to_decls): Similarly change those
9550         from numbers to PARM_DECLs.
9552 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
9554         * c-omp.c (c_omp_split_clauses): Remove conditional compilation. Use
9555         flag_checking.
9557 2015-11-03  Bernd Schmidt  <bschmidt@redhat.com>
9559         PR c++-common/67882
9560         * c-common.h (fold_offsetof_1): Add argument.
9561         * c-common.c (fold_offsetof_1): Diagnose more invalid
9562         offsetof expressions that reference elements past the end of
9563         an array.
9565 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
9566             Chung-Lin Tang  <cltang@codesourcery.com>
9568         * c-pragma.c (oacc_pragmas): Add "atomic".
9569         * c-pragma.h (pragma_kind): Add PRAGMA_OACC_ATOMIC.
9571 2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>
9573         * c-common.c (handle_target_clones_attribute): New.
9574         (c_common_attribute_table): Add handle_target_clones_attribute.
9575         (handle_always_inline_attribute): Add check on target_clones attribute.
9576         (handle_target_attribute): Ditto.
9578 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
9580         * array-notation-common.c: Reorder #include's and remove duplicates.
9581         * c-ada-spec.c: Likewise.
9582         * c-cilkplus.c: Likewise.
9583         * c-common.c: Likewise.
9584         * c-cppbuiltin.c: Likewise.
9585         * c-dump.c: Likewise.
9586         * c-format.c: Likewise.
9587         * c-gimplify.c: Likewise.
9588         * c-indentation.c: Likewise.
9589         * c-lex.c: Likewise.
9590         * c-omp.c: Likewise.
9591         * c-opts.c: Likewise.
9592         * c-pch.c: Likewise.
9593         * c-ppoutput.c: Likewise.
9594         * c-pragma.c: Likewise.
9595         * c-pretty-print.c: Likewise.
9596         * c-semantics.c: Likewise.
9597         * c-ubsan.c: Likewise.
9598         * cilk.c: Likewise.
9599         * stub-objc.c: Likewise.
9601 2015-10-28  Jason Merrill  <jason@redhat.com>
9603         * c-common.c (pointer_int_sum): Fold the MULT_EXPR.
9605 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
9606             James Norris  <jnorris@codesourcery.com>
9607             Cesar Philippidis  <cesar@codesourcery.com>
9609         PR c/64765
9610         PR c/64880
9611         * c-common.h (c_oacc_split_loop_clauses): Declare function.
9612         * c-omp.c (c_oacc_split_loop_clauses): New function.
9614 2015-10-21  Martin Sebor  <msebor@redhat.com>
9616         PR driver/68043
9617         * c.opt: End each sentence that describes an option with a period.
9619 2015-10-20  Marek Polacek  <polacek@redhat.com>
9621         * array-notation-common.c (is_cilkplus_vector_p): Define.
9622         * c-common.h (is_cilkplus_vector_p): Declare.
9624 2015-10-20  Marek Polacek  <polacek@redhat.com>
9626         * c.opt (std=gnu++11): Do not describe as experimental.
9627         (std=gnu++14): Likewise.
9629 2015-10-19  Jason Merrill  <jason@redhat.com>
9631         * c-cppbuiltin.c (c_cpp_builtins): Define
9632         __cpp_nontype_template_args.
9634 2015-10-19  Jason Merrill  <jason@redhat.com>
9636         * c-cppbuiltin.c (c_cpp_builtins): Define
9637         __cpp_enumerator_attributes, __cpp_fold_expressions,
9638         __cpp_unicode_characters.
9640 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
9641             Aldy Hernandez  <aldyh@redhat.com>
9643         * c-common.c (enum c_builtin_type): Define DEF_FUNCTION_TYPE_9,
9644         DEF_FUNCTION_TYPE_10 and DEF_FUNCTION_TYPE_11.
9645         (c_define_builtins): Likewise.
9646         * c-common.h (enum c_omp_clause_split): Add
9647         C_OMP_CLAUSE_SPLIT_TASKLOOP.
9648         (c_finish_omp_critical, c_finish_omp_ordered): Add CLAUSES argument.
9649         (c_finish_omp_for): Add ORIG_DECLV argument.
9650         * c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP as
9651         201511 instead of 201307.
9652         * c-omp.c (c_finish_omp_critical): Add CLAUSES argument, set
9653         OMP_CRITICAL_CLAUSES to it.
9654         (c_finish_omp_ordered): Add CLAUSES argument, set
9655         OMP_ORDERED_CLAUSES to it.
9656         (c_finish_omp_for): Add ORIG_DECLV argument, set OMP_FOR_ORIG_DECLS
9657         to it if OMP_FOR.  Clear DECL_INITIAL on the IVs.
9658         (c_omp_split_clauses): Handle OpenMP 4.5 combined/composite
9659         constructs and new OpenMP 4.5 clauses.  Clear
9660         OMP_CLAUSE_SCHEDULE_SIMD if not combined with OMP_SIMD.  Add
9661         verification code.
9662         * c-pragma.c (omp_pragmas_simd): Add taskloop.
9663         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKLOOP.
9664         (enum pragma_omp_clause): Add
9665         PRAGMA_OMP_CLAUSE_{DEFAULTMAP,GRAINSIZE,HINT,{IS,USE}_DEVICE_PTR}
9666         and PRAGMA_OMP_CLAUSE_{LINK,NOGROUP,NUM_TASKS,PRIORITY,SIMD,THREADS}.
9668 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
9670         * c-lex.c (interpret_float): Use real_equal instead of
9671         REAL_VALUES_EQUAL.
9673 2015-10-04  Jason Merrill  <jason@redhat.com>
9675         Implement N4514, C++ Extensions for Transactional Memory.
9676         * c-common.c (c_common_reswords): Add C++ TM TS keywords.
9677         (c_common_attribute_table): Add transaction_safe_dynamic.
9678         transaction_safe now affects type identity.
9679         (handle_tm_attribute): Handle transaction_safe_dynamic.
9680         * c-common.h (enum rid): Add RID_ATOMIC_NOEXCEPT,
9681         RID_ATOMIC_CANCEL, RID_SYNCHRONIZED.
9682         (OBJC_IS_CXX_KEYWORD): Add RID_SYNCHRONIZED.
9683         (D_TRANSMEM): New.
9684         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_transactional_memory.
9685         * c-pretty-print.c (pp_c_attributes_display): Don't print
9686         transaction_safe in C++.
9688 2015-10-02  Marek Polacek  <polacek@redhat.com>
9690         * c.opt (Wduplicated-cond): Don't enable by -Wall anymore.
9692 2015-10-02  Marek Polacek  <polacek@redhat.com>
9694         PR c/64249
9695         * c-common.c (warn_duplicated_cond_add_or_warn): New function.
9696         * c-common.h (warn_duplicated_cond_add_or_warn): Declare.
9697         * c.opt (Wduplicated-cond): New option.
9699 2015-10-01  Joseph Myers  <joseph@codesourcery.com>
9701         * c.opt (std=c11): Do not describe as experimental.
9702         (std=gnu11): Likewise.
9703         (std=iso9899:2011): Likewise.
9705 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
9707         * c-common.c (DEF_FUNCTION_TYPE_VAR_6): New.
9708         (DEF_FUNCTION_TYPE_VAR_11): Delete.
9710 2015-09-25  Marek Polacek  <polacek@redhat.com>
9712         * c-ubsan.c (ubsan_instrument_division): Remove unnecessary code.
9713         (ubsan_instrument_shift): Likewise.
9715 2015-09-25  Marek Polacek  <polacek@redhat.com>
9717         PR sanitizer/64906
9718         * c-ubsan.c (ubsan_instrument_division): Also pre-evaluate OP1.
9720 2015-09-24  Patrick Palka  <ppalka@gcc.gnu.org>
9722         * c-indentation.c (should_warn_for_misleading_indentation):
9723         Compare next_stmt_vis_column with guard_line_first_nws instead
9724         of with guard_line_vis_column.
9726 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9728         PR c/49654
9729         PR c/49655
9730         * c-pragma.c (handle_pragma_diagnostic): Detect non-warning
9731         options and options not valid for the current language.
9733 2015-09-22  Patrick Palka  <ppalka@gcc.gnu.org>
9735         * c-indentation.c (should_warn_for_misleading_indentation):
9736         Float out and consolidate the calls to get_visual_column that
9737         are passed guard_exploc as an argument.  Compare
9738         next_stmt_vis_column with guard_line_first_nws instead of with
9739         body_line_first_nws.
9741 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
9743         * c.opt (Wmultiple-inheritance, Wvirtual-inheritance, Wtemplates,
9744         Wnamespaces): New C++ warnings.
9746 2015-09-22  Jason Merrill  <jason@redhat.com>
9748         * c-common.h (abi_compat_version_crosses): New.
9749         (warn_abi_version): Declare.
9750         * c-common.c: Define it.
9751         * c-opts.c (c_common_post_options): Handle it.
9752         flag_abi_compat_version defaults to 8.
9754 2015-09-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
9756         Complete the implementation of N4230, Nested namespace definition.
9757         * c-cppbuiltin.c: Add __cpp_namespace_attributes and
9758         __cpp_nested_namespace_definitions.
9760 2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9762         * c-pragma.c (handle_pragma_diagnostic): Fix wrong return.
9764 2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9766         * c-pragma.c (handle_pragma_diagnostic): Use explicit location
9767         when warning.
9768         * c-pragma.h (pragma_lex): Add optional loc argument.
9770 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
9772         * c-format.c (check_format_arg): Adjust to use common block size in all
9773         object pools.
9775 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
9777         * c-format.c (location_from_offset): Update for change in
9778         signature of location_get_source_line.
9779         * c-indentation.c (get_visual_column): Likewise.
9780         (line_contains_hash_if): Likewise.
9782 2015-09-14  Marek Polacek  <polacek@redhat.com>
9784         * c-opts.c (c_common_post_options): Set C++ standard earlier, before
9785         setting various warnings.
9787 2015-09-14  Marek Polacek  <polacek@redhat.com>
9789         * c-common.c (warn_for_sign_compare): Cast to unsigned when shifting
9790         a negative value.
9792 2015-09-11  Mark Wielaard  <mjw@redhat.com>
9794         PR c/28901
9795         * c.opt (Wunused-variable): Option from common.opt.
9796         (Wunused-const-variable): New option.
9798 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
9800         PR c++/53184
9801         * c.opt ([Wsubobject-linkage]): Add.
9803 2015-09-03  Martin Sebor  <msebor@redhat.com>
9805         PR c/66516
9806         * c-common.h (c_decl_implicit, reject_gcc_builtin): Declare new
9807         functions.
9808         * c-common.c (reject_gcc_builtin): Define.
9810 2015-09-02  Balaji V. Iyer  <balaji.v.iyer@intel.com>
9812         PR middle-end/60586
9813         * c-common.h (cilk_gimplify_call_params_in_spawned_fn): New
9814         prototype.
9815         * c-gimplify.c (c_gimplify_expr): Added a call to the function
9816         cilk_gimplify_call_params_in_spawned_fn.
9817         * cilk.c (cilk_gimplify_call_params_in_spawned_fn): New function.
9818         (gimplify_cilk_spawn): Removed EXPR_STMT and CLEANUP_POINT_EXPR
9819         unwrapping.
9821 2015-08-25  Marek Polacek  <polacek@redhat.com>
9823         PR middle-end/67330
9824         * c-common.c (handle_weak_attribute): Don't check whether the
9825         visibility can be changed here.
9827 2015-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9829         * c-lex.c (c_lex_with_flags): Use explicit locations.
9831 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
9833         * c-ada-spec.h, c-common.c, c-common.h, c-format.c, c-format.h,
9834         c-objc.h, c-ppoutput.c, c-pragma.c, c-pragma.h: Remove useless
9836 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9838         PR middle-end/36757
9839         * c-common.c (check_builtin_function_arguments): Add check
9840         for BUILT_IN_SIGNBIT argument.
9842 2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
9844         PR c++/67160
9845         * c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_static_assert value
9846         in c++1z mode.
9848 2015-08-17  Marek Polacek  <polacek@redhat.com>
9850         * c-pretty-print.c (pp_c_cv_qualifiers): Remove code dealing
9851         with whitespaces before qualifier names.
9853 2015-08-12  Marek Polacek  <polacek@redhat.com>
9855         PR c++/55095
9856         * c-common.c (maybe_warn_shift_overflow): Properly handle
9857         left-shifting 1 into the sign bit.
9859 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9861         * c.opt (Wchkp): Use LangEnabledBy instead of EnabledBy.
9863 2015-08-06  Andrew Sutton  <andrew.n.sutton@gmail.com>
9864             Braden Obrzut  <admin@maniacsvault.net>
9865             Jason Merrill  <jason@redhat.com>
9867         Add C++ Concepts TS support.
9868         * c-common.c (c_common_reswords): Add __is_same_as, concept, requires.
9869         * c-common.h (enum rid): Add RID_IS_SAME_AS, RID_CONCEPT, RID_REQUIRES.
9870         (D_CXX_CONCEPTS, D_CXX_CONCEPTS_FLAGS): New.
9871         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_concepts.
9872         * c-opts.c (set_std_cxx1z): Set flag_concepts.
9873         * c.opt (fconcepts): New.
9875 2015-08-02  Martin Sebor  <msebor@redhat.com>
9877         * c.opt (-Wframe-address): New warning option.
9879 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
9881         * c-indentation.c (should_warn_for_misleading_indentation):
9882         Improve heuristics.
9884 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
9886         * c-indentation.c (get_visual_column): Add parameter first_nws,
9887         use it.  Update comment documenting the function.
9888         (is_first_nonwhitespace_on_line): Remove.
9889         (should_warn_for_misleading_indentation): Replace usage of
9890         of is_first_nonwhitespace_on_line with get_visual_column.
9892 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
9894         * c-indentation.h (struct token_indent_info): Define.
9895         (get_token_indent_info): Define.
9896         (warn_for_misleading_information): Declare.
9897         * c-common.h (warn_for_misleading_information): Remove.
9898         * c-identation.c (warn_for_misleading_indentation):
9899         Change declaration to take three token_indent_infos.  Adjust
9900         accordingly.
9901         * c-identation.c (should_warn_for_misleading_indentation):
9902         Likewise.  Bail out early if the body is a compound statement.
9903         (guard_tinfo_to_string): Define.
9905 2015-07-30  Jason Merrill  <jason@redhat.com>
9907         * c-pretty-print.c (unary_expression) [INDIRECT_REF]: Don't print
9908         '*' for reference decay.
9910 2015-07-30  Marek Polacek  <polacek@redhat.com>
9912         * c-common.c (warn_tautological_cmp): Bail for float types.
9914 2015-07-27  Marek Polacek  <polacek@redhat.com>
9916         PR bootstrap/67030
9917         * c-common.c (warn_tautological_cmp): Don't warn for macro expansion.
9919 2015-07-27  Marek Polacek  <polacek@redhat.com>
9921         PR c++/66555
9922         PR c/54979
9923         * c-common.c (find_array_ref_with_const_idx_r): New function.
9924         (warn_tautological_cmp): New function.
9925         * c-common.h (warn_tautological_cmp): Declare.
9926         * c.opt (Wtautological-compare): New option.
9928 2015-07-23  Marek Polacek  <polacek@redhat.com>
9930         * c-ubsan.c (ubsan_instrument_division): Use unshare_expr throughout.
9931         (ubsan_instrument_shift): Likewise.
9933 2015-07-23  Marek Polacek  <polacek@redhat.com>
9935         PR sanitizer/66908
9936         * c-ubsan.c: Include gimplify.h.
9937         (ubsan_instrument_division): Unshare OP0 and OP1.
9938         (ubsan_instrument_shift): Likewise.
9940 2015-07-20  Marek Polacek  <polacek@redhat.com>
9941             Richard Sandiford  <richard.sandiford@arm.com>
9943         PR c++/55095
9944         * c-common.c (c_fully_fold_internal): Warn about left shift overflows.
9945         Use EXPR_LOC_OR_LOC.
9946         (maybe_warn_shift_overflow): New function.
9947         * c-common.h (maybe_warn_shift_overflow): Declare.
9948         * c-opts.c (c_common_post_options): Set warn_shift_overflow.
9949         * c.opt (Wshift-overflow): New option.
9951 2015-07-16  Martin Liska  <mliska@suse.cz>
9953         * c-format.c (static void check_format_info_main): Use
9954         object_allocator instead of pool_allocator.
9955         (check_format_arg): Likewise.
9956         (check_format_info_main): Likewise.
9958 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
9960         * c-opts.c: Remove multiline #include comment.
9962 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
9964         * c-common.c: Fix double word typos.
9966 2015-07-10  Eric Botcazou  <ebotcazou@adacore.com>
9968         * c-ada-spec.h (cpp_operation): Revert latest change.
9969         * c-ada-spec.c (print_ada_declaration): Likewise.  Skip implicit
9970         constructors and destructors.
9972 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
9974         * c-common.h: Adjust includes for flags.h changes.
9975         * stub-objc.c: Likewise.
9977 2015-07-08  Eric Botcazou  <ebotcazou@adacore.com>
9979         * c-ada-spec.h (cpp_operation): Add IS_CONSTEXPR.
9980         * c-ada-spec.c (print_ada_declaration): Skip constexpr constructors.
9982 2015-07-08  Jakub Jelinek  <jakub@redhat.com>
9984         * c-omp.c (c_omp_declare_simd_clauses_to_numbers): If all clauses
9985         are to be removed, return NULL rather than original clauses list.
9987 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
9989         * array-notation-common.c: Adjust includes.
9990         * c-ada-spec.c: Likewise.
9991         * c-cilkplus.c: Likewise.
9992         * c-common.h: Likewise.
9993         * c-cppbuiltin.c: Likewise.
9994         * c-dump.c: Likewise.
9995         * c-format.c: Likewise.
9996         * c-gimplify.c: Likewise.
9997         * c-indentation.c: Likewise.
9998         * c-lex.c: Likewise.
9999         * c-omp.c: Likewise.
10000         * c-opts.c: Likewise.
10001         * c-pch.c: Likewise.
10002         * c-ppoutput.c: Likewise.
10003         * c-pragma.c: Likewise.
10004         * c-pretty-print.c: Likewise.
10005         * c-semantics.c: Likewise.
10006         * c-ubsan.c: Likewise.
10007         * cilk.c: Likewise.
10008         * stub-objc.c: Likewise.
10010 2015-07-07  Eric Botcazou  <ebotcazou@adacore.com>
10012         * c-ada-spec.h (cpp_operation): Add IS_MOVE_CONSTRUCTOR.
10013         * c-ada-spec.c (print_ada_declaration): Skip move constructors.
10015 2015-07-01  Jason Merrill  <jason@redhat.com>
10017         * c-common.h (D_CXX11): Rename from D_CXX0X.
10018         (RID_FIRST_CXX11, RID_LAST_CXX11): Rename from *_CXX0X.
10019         * c-common.c: Adjust.
10021         * c-opts.c (c_common_post_options): Default to C++14.
10023         * c-opts.c (c_common_post_options): Highest ABI level is now 10.
10025 2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
10027         Implement N4197 - Adding u8 character literals
10028         * c-ada-spec.c (print_ada_macros): Treat CPP_UTF8CHAR like
10029         CPP_CHAR.
10030         * c-common.c (c_parse_error): Print CPP_UTF8CHAR and
10031         CPP_UTF8CHAR_USERDEF tokens.
10032         * c-lex.c (c_lex_with_flags): Treat CPP_UTF8CHAR_USERDEF
10033         and CPP_UTF8CHAR tokens.
10034         (lex_charconst): Treat CPP_UTF8CHAR token.
10036 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10038         PR fortran/66605
10039         * c-common.c (do_warn_unused_parameter): Move here.
10040         * c-common.h (do_warn_unused_parameter): Declare.
10042 2015-06-29  Marek Polacek  <polacek@redhat.com>
10044         PR c/66322
10045         * c-common.c (check_case_bounds): Add bool * parameter.  Set
10046         OUTSIDE_RANGE_P.
10047         (c_add_case_label): Add bool * parameter.  Pass it down to
10048         check_case_bounds.
10049         (c_do_switch_warnings): Add bool parameters.  Implement -Wswitch-bool
10050         warning here.
10051         * c-common.h (c_add_case_label, c_do_switch_warnings): Update
10052         declarations.
10054 2015-06-27  Marek Polacek  <polacek@redhat.com>
10056         * c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P
10057         or VECTOR_INTEGER_TYPE_P throughout.
10058         * c-gimplify.c: Likewise.
10060 2015-06-26  Marek Polacek  <polacek@redhat.com>
10062         * array-notation-common.c (find_rank): Use INDIRECT_REF_P.
10063         * c-common.c (c_fully_fold_internal): Likewise.
10064         (c_alignof_expr): Likewise.
10065         * c-pretty-print.c (c_pretty_printer::postfix_expression): Likewise.
10066         * c-ubsan.c (ubsan_instrument_bounds): Likewise.
10067         * cilk.c (create_parm_list): Likewise.
10069 2015-06-26  Marek Polacek  <polacek@redhat.com>
10071         * c-common.c (handle_unused_attribute): Use VAR_OR_FUNCTION_DECL_P.
10073 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
10075         * c-common.c: Remove ipa-ref.h and plugin-api.h from include list.
10076         * c-gimplify.c: Likewise.
10077         * c-pragma.c: Likewise.
10078         * c-ubsan.c: Likewise.
10079         * cilk.c: Likewise.
10081 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
10083         * c-common.c (c_type_hasher): Inherit from ggc_ptr_hash rather than
10084         ggc_hasher.
10086 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
10088         * cilk.c: Move calls.h after tm.h in the include chain.
10090 2015-06-25  Marek Polacek  <polacek@redhat.com>
10092         * array-notation-common.c: Use VAR_P throughout.
10093         * c-ada-spec.c: Likewise.
10094         * c-common.c: Likewise.
10095         * c-format.c: Likewise.
10096         * c-gimplify.c: Likewise.
10097         * c-omp.c: Likewise.
10098         * c-pragma.c: Likewise.
10099         * c-pretty-print.c: Likewise.
10100         * cilk.c: Likewise.
10102 2015-06-25  Marek Polacek  <polacek@redhat.com>
10104         * cilk.c (extract_free_variables): Use is_global_var.
10106 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
10108         * c-common.c: Don't include target-def.h.
10110 2015-06-23  Marek Polacek  <polacek@redhat.com>
10112         * c-common.c (warn_logical_operator): Use tree_int_cst_equal
10113         when comparing INTEGER_CSTs.
10115 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
10117         * c-ada-spec.h (cpp_operation): Add HAS_DEPENDENT_TEMPLATE_ARGS.
10118         * c-ada-spec.c (collect_ada_nodes): Skip NAMESPACE_DECL
10119         (dump_ada_template): Skip partially specialized types.
10121 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
10123         * c-common.c (scalar_to_vector): Use std::swap instead of manually
10124         swapping.
10126 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
10128         * array-notation-common.c: Do not include input.h, line-map.h or is-a.h.
10129         * c-ada-spec.c: Likewise.
10130         * c-cilkplus.c: Likewise.
10131         * c-common.c: Likewise.
10132         * c-common.h: Likewise.
10133         * c-cppbuiltin.c: Likewise.
10134         * c-dump.c: Likewise.
10135         * c-format.c: Likewise.
10136         * c-gimplify.c: Likewise.
10137         * c-indentation.c: Likewise.
10138         * c-lex.c: Likewise.
10139         * c-omp.c: Likewise.
10140         * c-opts.c: Likewise.
10141         * c-pch.c: Likewise.
10142         * c-ppoutput.c: Likewise.
10143         * c-pragma.c: Likewise.
10144         * c-pretty-print.c: Likewise.
10145         * c-semantics.c: Likewise.
10146         * c-ubsan.c: Likewise.
10147         * cilk.c: Likewise.
10148         * stub-objc.c: Likewise.
10150 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
10152         PR c++/65168
10153         * c-common.c (c_common_truthvalue_conversion): Warn when
10154         converting an address of a reference to a truth value.
10156 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
10158         * array-notation-common.c : Adjust include files.
10159         * c-ada-spec.c : Likewise.
10160         * c-cilkplus.c : Likewise.
10161         * c-common.c : Likewise.
10162         * c-common.h : Likewise.
10163         * c-cppbuiltin.c : Likewise.
10164         * c-dump.c : Likewise.
10165         * c-format.c : Likewise.
10166         * c-gimplify.c : Likewise.
10167         * c-indentation.c : Likewise.
10168         * c-lex.c : Likewise.
10169         * c-omp.c : Likewise.
10170         * c-opts.c : Likewise.
10171         * c-pch.c : Likewise.
10172         * c-ppoutput.c : Likewise.
10173         * c-pragma.c : Likewise.
10174         * c-pretty-print.c : Likewise.
10175         * c-semantics.c : Likewise.
10176         * c-ubsan.c : Likewise.
10177         * cilk.c : Likewise.
10178         * stub-objc.c : Likewise.
10180 2015-06-08  Marek Polacek  <polacek@redhat.com>
10182         PR c/66415
10183         * c-format.c (location_from_offset): Return LOC if LINE is null.
10185 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
10187         * c-common.h (c_parse_final_cleanups): New prototype.
10188         * c-opts.c (c_common_parse_file): Call c_parse_final_cleanups.
10190 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
10192         * c-common.c (noplt): New attribute.
10193         (handle_noplt_attribute): New handler.
10195 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
10197         * array-notation-common.c: Adjust includes for restructured coretypes.h.
10198         * c-ada-spec.c: Likewise.
10199         * c-cilkplus.c: Likewise.
10200         * c-common.c: Likewise.
10201         * c-common.h: Likewise.
10202         * c-cppbuiltin.c: Likewise.
10203         * c-dump.c: Likewise.
10204         * c-format.c: Likewise.
10205         * c-gimplify.c: Likewise.
10206         * c-indentation.c: Likewise.
10207         * c-lex.c: Likewise.
10208         * c-omp.c: Likewise.
10209         * c-opts.c: Likewise.
10210         * c-pch.c: Likewise.
10211         * c-ppoutput.c: Likewise.
10212         * c-pragma.c: Likewise.
10213         * c-pretty-print.c: Likewise.
10214         * c-semantics.c: Likewise.
10215         * c-ubsan.c: Likewise.
10216         * cilk.c: Likewise.
10217         * stub-objc.c: Likewise.
10219 2015-06-02  David Malcolm  <dmalcolm@redhat.com>
10221         PR c/66220:
10222         * c-indentation.c (should_warn_for_misleading_indentation): Use
10223         expand_location rather than expand_location_to_spelling_point.
10224         Don't warn if the guarding statement is more indented than the
10225         next/body stmts.
10227 2015-06-02  David Malcolm  <dmalcolm@redhat.com>
10229         * c-indentation.c (warn_for_misleading_indentation): Bail out
10230         immediately if -Wmisleading-indentation isn't enabled.
10232 2015-06-01  Martin Liska  <mliska@suse.cz>
10234         * c-format.c (check_format_arg):Use new type-based pool allocator.
10235         (check_format_info_main) Likewise.
10237 2015-05-31  Eric Botcazou  <ebotcazou@adacore.com>
10239         * c-ada-spec.c (is_tagged_type): Test for TYPE_METHODS on main variant.
10240         (has_nontrivial_methods): Likewise.
10242 2015-05-25  Marek Polacek  <polacek@redhat.com>
10244         * c-ubsan.c (ubsan_instrument_shift): Use type0.
10246 2015-05-22  Marek Polacek  <polacek@redhat.com>
10248         PR c/47043
10249         * c-common.c (handle_deprecated_attribute): Allow CONST_DECL.
10251 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10253         * c-cppbuiltin.c (c_cpp_builtins): Use if instead of #if with
10254         STACK_GROWS_DOWNWARD.
10256 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10258         * c-cppbuiltin.c (c_cpp_builtins): Check the value of
10259         STACK_GROWS_DOWNWARD rather than if it is defined.
10261 2015-05-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10263         PR c/52952
10264         * c-format.c (location_column_from_byte_offset): New.
10265         (location_from_offset): New.
10266         (struct format_wanted_type): Add offset_loc field.
10267         (check_format_info): Move handling of location for extra arguments
10268         closer to the point of warning.
10269         (check_format_info_main): Pass the result of location_from_offset
10270         to warning_at.
10271         (format_type_warning): Pass the result of location_from_offset
10272         to warning_at.
10274 2015-05-20  Marek Polacek  <polacek@redhat.com>
10276         * c-omp.c (check_omp_for_incr_expr): Use BINARY_CLASS_P.
10278 2015-05-20  Marek Polacek  <polacek@redhat.com>
10280         * c-ada-spec.c (dump_sloc): Use DECL_P.
10282 2015-05-20  Marek Polacek  <polacek@redhat.com>
10284         * c-pragma.c: Use VAR_OR_FUNCTION_DECL_P throughout.
10285         * c-common.c: Likewise.
10287 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
10289         * c-common.h (fe_file_change): Strengthen param from
10290         const line_map * to const line_map_ordinary *.
10291         (pp_file_change): Likewise.
10292         * c-lex.c (fe_file_change): Likewise.
10293         (cb_define): Use linemap_check_ordinary when invoking
10294         SOURCE_LINE.
10295         (cb_undef): Likewise.
10296         * c-opts.c (c_finish_options): Use linemap_check_ordinary when
10297         invoking cb_file_change.
10298         (c_finish_options): Likewise.
10299         (push_command_line_include): Likewise.
10300         (cb_file_change): Strengthen param "new_map" from
10301         const line_map * to const line_map_ordinary *.
10302         * c-ppoutput.c (cb_define): Likewise for local "map".
10303         (pp_file_change): Likewise for param "map" and local "from".
10305 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
10307         * c-common.c (shorten_compare): Use std::swap instead of explicit swaps.
10309 2015-05-18  Tom de Vries  <tom@codesourcery.com>
10311         * c-common.c (build_va_arg_1): New function.
10312         (build_va_arg): Add address operator to va_list operand if necessary.
10314 2015-05-15  Mikhail Maltsev  <maltsevm@gmail.com>
10316         PR c/48956
10317         * c-common.c (int_safely_convertible_to_real_p): Define.
10318         (unsafe_conversion_p): Check conversions involving complex types.
10319         (conversion_warning): Add new warning message for conversions which
10320         discard imaginary component.
10321         * c-common.h: (enum conversion_safety): Add new enumerator for such
10322         conversions.
10324 2015-05-14  Marek Polacek  <polacek@redhat.com>
10326         PR c/66066
10327         PR c/66127
10328         * c-common.c (c_fully_fold): Pass false down to c_fully_fold_internal.
10329         (c_fully_fold_internal): Fold C_MAYBE_CONST_EXPRs with
10330         C_MAYBE_CONST_EXPR_INT_OPERANDS set.  Add FOR_INT_CONST argument and
10331         use it.  If FOR_INT_CONST, require that all evaluated operands be
10332         INTEGER_CSTs.
10334 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
10336         * c-common.h (warn_for_misleading_indentation): New prototype.
10337         * c-indentation.c: New file.
10338         * c.opt (Wmisleading-indentation): New option.
10340 2015-05-12  Tom de Vries  <tom@codesourcery.com>
10342         PR tree-optimization/66010
10343         * c-common.c (build_va_arg): Don't mark ap addressable unless necessary.
10345 2015-05-09  Jason Merrill  <jason@redhat.com>
10347         * c-opts.c (c_common_post_options): Also clear
10348         cpp_opts->cpp_warn_cxx11_compat.
10350         * c-common.h (enum cxx_dialect): Add cxx_unset.
10351         * c-common.c (cxx_dialect): Initialize to cxx_unset.
10352         * c-opts.c (c_common_post_options): Set C++ dialect to C++98 if unset.
10354         * c.opt (std=c++14): Remove Undocumented flag and experimental warning.
10355         (std=gnu++0x): Mark as Undocumented.
10356         (std=gnu++1y): Add deprecated message.
10358 2015-05-08  Jason Merrill  <jason@redhat.com>
10360         * c.opt (Wc++11-compat): Make primary.  Rename var warn_cxx11_compat.
10361         * c-opts.c: Adjust.
10363         * c.opt (Wc++0x-compat): Also set cpp_warn_cxx11_compat.
10365 2015-05-08  Marek Polacek  <polacek@redhat.com>
10367         PR c/64918
10368         * c.opt (Woverride-init-side-effects): New option.
10370 2015-05-07  Marek Polacek  <polacek@redhat.com>
10372         PR c/65179
10373         * c-common.c (c_fully_fold_internal): Warn when left shifting a
10374         negative value.
10375         * c.opt (Wshift-negative-value): New option.
10376         * c-opts.c (c_common_post_options): Set warn_shift_negative_value
10377         when -Wextra and C99/C++11 mode.
10379 2015-05-07  Marek Polacek  <polacek@redhat.com>
10380             Martin Uecker  <uecker@eecs.berkeley.edu>
10382         * c-ubsan.c (ubsan_instrument_bounds): Don't skip instrumenting
10383         flexible member array-like members if SANITIZE_BOUNDS_STRICT.
10385 2015-05-05  Jason Merrill  <jason@redhat.com>
10387         * c.opt (Wterminate): New.
10389 2015-04-30  Marek Polacek  <polacek@redhat.com>
10391         * c-common.c (maybe_warn_bool_compare): When comparing with 0/1,
10392         require that the non-constant be of a boolean type.
10394 2015-04-29  Josh Triplett  <josh@joshtriplett.org>
10396         * c-common.c (handle_section_attribute): Refactor to reduce
10397         nesting and distinguish between error cases.
10399 2015-04-29  Marek Polacek  <polacek@redhat.com>
10401         PR c/64610
10402         * c-common.c (maybe_warn_bool_compare): Warn when comparing a boolean
10403         with 0/1.
10405 2015-04-29  Jakub Jelinek  <jakub@redhat.com>
10407         * c-common.h (omp_clause_mask): Unconditionally define as a class.
10408         Use uint64_t instead of unsigned HOST_WIDE_INT and 64 instead of
10409         HOST_BITS_PER_WIDE_INT.
10411 2015-04-28  Tom de Vries  <tom@codesourcery.com>
10413         PR tree-optimization/65887
10414         * c-common.c (build_va_arg): Mark va_arg ap argument as addressable.
10416 2015-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10417             Pierre-Marie de Rodat  <derodat@adacore.com>
10419         * c-ada-spec.c (in_function): Delete.
10420         (dump_generic_ada_node): Do not change in_function and remove the
10421         redundant code dealing with it.
10422         (print_ada_declaration): Do not change in_function.  Use INDENT_INCR.
10423         (print_ada_methods): Output the static member functions in a nested
10424         package after the regular methods as well as associated renamings.
10426 2015-04-24  Marek Polacek  <polacek@redhat.com>
10428         PR c/65830
10429         * c-common.c (c_fully_fold_internal): Use OPT_Wshift_count_negative
10430         and OPT_Wshift_count_overflow.
10432         PR c/63357
10433         * c-common.c (warn_logical_operator): Warn if the operands have the
10434         same expressions.
10436 2015-04-24  Marek Polacek  <polacek@redhat.com>
10438         PR c/61534
10439         * c-common.c (warn_logical_operator): Bail if either operand comes
10440         from a macro expansion.
10442 2015-04-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10444         PR target/55143
10445         * c-common.c (c_default_pointer_mode): Add definition.
10446         * c-common.h (c_default_pointer_mode): Add declaration.
10448 2015-03-11  Jakub Jelinek  <jakub@redhat.com>
10450         * c-common.c (c_common_nodes_and_builtins): Don't call xstrdup
10451         on record_builtin_type argument.
10453 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
10455         PR c/65120
10456         * c-common.c (warn_logical_not_parentheses): Don't warn for
10457         !x == 0 or !x != 0.
10459 2015-03-07  Marek Polacek  <polacek@redhat.com>
10461         PR sanitizer/65280
10462         * c-ubsan.c (ubsan_instrument_bounds): Check for COMPONENT_REF
10463         before trying to figure out whether we have a flexible array member.
10465 2015-03-06  Eric Botcazou  <ebotcazou@adacore.com>
10466             Jonathan Wakely  <jwakely.gcc@gmail.com>
10468         * c-ada-spec.c (dump_ada_double_name): Fix pasto.
10470 2015-03-05  Eric Botcazou  <ebotcazou@adacore.com>
10472         PR ada/65319
10473         * c-ada-spec.c (print_destructor): Remove obsolete code.
10475 2015-03-01  Eric Botcazou  <ebotcazou@adacore.com>
10477         * c-ada-spec.c (is_tagged_type): Add guard for DECL_VINDEX.
10478         (dump_template_types): Adjust DECL_TEMPLATE_INSTANTIATIONS and
10479         DECL_TEMPLATE_RESULT emulations.
10480         (dump_ada_template)): Add guard for TYPE_METHODS.
10482 2015-02-27  Marek Polacek  <polacek@redhat.com>
10484         PR c/65040
10485         * c.opt (Wformat-signedness): Don't enable by -Wformat=2.
10487 2015-02-27  Kai Tietz  <ktietz@redhat.com>
10489         PR c/35330
10490         * c-pragma.c (handle_pragma_weak): Do not try to create
10491         weak/alias of declarations not being function, or variable
10492         declarations.
10494 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
10496         PR libgomp/64625
10497         * c-common.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
10498         Remove macros.
10499         (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
10501 2015-02-16  Marek Polacek  <polacek@redhat.com>
10503         PR c/65066
10504         * c-format.c (check_format_types): Handle null param.
10506 2015-02-13  Marek Polacek  <polacek@redhat.com>
10508         PR c/65040
10509         * c-format.c (check_format_types): Don't warn about different
10510         signedness if the original value is in the range of WANTED_TYPE.
10512 2015-02-12  Jason Merrill  <jason@redhat.com>
10514         PR c++/64956
10515         * c-opts.c (c_common_post_options): Change flag_abi_version from 0
10516         to the current highest version.
10517         * c-cppbuiltin.c (c_cpp_builtins): Assert that it isn't 0.
10519 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
10521         PR c/64824
10522         PR c/64868
10523         * c-omp.c (c_finish_omp_atomic): Use TRUNC_DIV_EXPR
10524         instead of RDIV_EXPR.  Use build_binary_op instead of
10525         build2_loc.
10527 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
10529         * c-opts.c, c-pch.c, cppspec.c: All callers of fatal_error changed
10530         to pass input_location as first argument.
10532 2015-01-23  Tom de Vries  <tom@codesourcery.com>
10534         PR libgomp/64672
10535         * c.opt (fopenacc): Mark as LTO option.
10537 2015-01-23  Tom de Vries  <tom@codesourcery.com>
10539         PR libgomp/64707
10540         * c.opt (fopenmp): Mark as LTO option.
10542 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
10544         PR c/63307
10545         * cilk.c (fill_decls_vec): Only put decls into vector v.
10546         (compare_decls): Fix up formatting.
10548 2015-01-21  Igor Zamyatin  <igor.zamyatin@intel.com>
10550         PR c/63307
10551         * cilk.c: Include vec.h.
10552         (struct cilk_decls): New structure.
10553         (wrapper_parm_cb): Split this function to...
10554         (fill_decls_vec): ...this...
10555         (create_parm_list): ...and this.
10556         (compare_decls): New function.
10557         (for_local_cb): Remove.
10558         (wrapper_local_cb): Ditto.
10559         (build_wrapper_type): For now first traverse and fill vector of
10560         declarations then sort it and then deal with sorted vector.
10561         (cilk_outline): Ditto.
10562         (declare_one_free_variable): Ditto.
10564 2015-01-21  Jason Merrill  <jason@redhat.com>
10566         PR c++/64629
10567         * c-format.c (check_format_arg): Call decl_constant_value.
10569 2015-01-19  Martin Liska  <mliska@suse.cz>
10571         * c-common.c (handle_noicf_attribute): New function.
10573 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
10574             Bernd Schmidt  <bernds@codesourcery.com>
10575             James Norris  <jnorris@codesourcery.com>
10576             Cesar Philippidis  <cesar@codesourcery.com>
10577             Ilmir Usmanov  <i.usmanov@samsung.com>
10578             Jakub Jelinek  <jakub@redhat.com>
10580         * c.opt (fopenacc): New option.
10581         * c-cppbuiltin.c (c_cpp_builtins): Conditionally define _OPENACC.
10582         * c-common.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
10583         New macros.
10584         * c-common.h (c_finish_oacc_wait): New prototype.
10585         * c-omp.c: Include "omp-low.h" and "gomp-constants.h".
10586         (c_finish_oacc_wait): New function.
10587         * c-pragma.c (oacc_pragmas): New variable.
10588         (c_pp_lookup_pragma, init_pragma): Handle it.
10589         * c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_CACHE,
10590         PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA, PRAGMA_OACC_EXIT_DATA,
10591         PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP, PRAGMA_OACC_PARALLEL,
10592         PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
10593         (enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ASYNC,
10594         PRAGMA_OACC_CLAUSE_AUTO, PRAGMA_OACC_CLAUSE_COLLAPSE,
10595         PRAGMA_OACC_CLAUSE_COPY, PRAGMA_OACC_CLAUSE_COPYIN,
10596         PRAGMA_OACC_CLAUSE_COPYOUT, PRAGMA_OACC_CLAUSE_CREATE,
10597         PRAGMA_OACC_CLAUSE_DELETE, PRAGMA_OACC_CLAUSE_DEVICE,
10598         PRAGMA_OACC_CLAUSE_DEVICEPTR, PRAGMA_OACC_CLAUSE_FIRSTPRIVATE,
10599         PRAGMA_OACC_CLAUSE_GANG, PRAGMA_OACC_CLAUSE_HOST,
10600         PRAGMA_OACC_CLAUSE_IF, PRAGMA_OACC_CLAUSE_NUM_GANGS,
10601         PRAGMA_OACC_CLAUSE_NUM_WORKERS, PRAGMA_OACC_CLAUSE_PRESENT,
10602         PRAGMA_OACC_CLAUSE_PRESENT_OR_COPY,
10603         PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYIN,
10604         PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYOUT,
10605         PRAGMA_OACC_CLAUSE_PRESENT_OR_CREATE, PRAGMA_OACC_CLAUSE_PRIVATE,
10606         PRAGMA_OACC_CLAUSE_REDUCTION, PRAGMA_OACC_CLAUSE_SELF,
10607         PRAGMA_OACC_CLAUSE_SEQ, PRAGMA_OACC_CLAUSE_VECTOR,
10608         PRAGMA_OACC_CLAUSE_VECTOR_LENGTH, PRAGMA_OACC_CLAUSE_WAIT,
10609         PRAGMA_OACC_CLAUSE_WORKER.
10611 2015-01-14  Marcos Diaz  <marcos.diaz@tallertechnologies.com>
10613         * c-cppbuiltin.c (c_cpp_builtins): New cpp define __SSP_EXPLICIT__
10614         for the new option fstack-protector_explicit.
10615         * c-common.c (c_common_attribute_table): Add stack_protect attribute.
10616         (handle_stack_protect_attribute): New function.
10618 2015-01-13  Martin Uecker  <uecker@eecs.berkeley.edu>
10620         * c.opt: New option -Warray-bounds=.
10622 2015-01-09  Michael Collison  <michael.collison@linaro.org>
10624         * array-notation-common.c: Include hash-set.h, machmode.h,
10625         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10626         fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
10627         * c-ada-spec.c: Ditto.
10628         * c-cilkplus.c: Ditto.
10629         * c-common.c: Include input.h due to flattening of tree.h.
10630         Define macro GCC_C_COMMON_C.
10631         * c-common.h: Flatten tree.h header files into c-common.h.
10632         Remove include of tree-core.h.
10633         * c-cppbuiltin.c: Include hash-set.h, machmode.h,
10634         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10635         fold-const.h, wide-int.h, and inchash.h due to
10636         flattening of tree.h.
10637         * c-dump.c: Ditto.
10638         * c-format.c: Flatten tree.h header files into c-common.h.
10639         * c-cppbuiltin.c: Include hash-set.h, machmode.h,
10640         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10641         fold-const.h, wide-int.h, and inchash.h due to
10642         flattening of tree.h.
10643         * c-dump.c: Include hash-set.h, machmode.h,
10644         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10645         fold-const.h, wide-int.h, and inchash.h due to
10646         flattening of tree.h.
10647         * c-format.c: Include hash-set.h, machmode.h,
10648         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10649         fold-const.h, wide-int.h, inchash.h and real.h due to
10650         flattening of tree.h.
10651         * c-gimplify.c: Include hash-set.h, machmode.h,
10652         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10653         fold-const.h, wide-int.h, and inchash.h due to
10654         flattening of tree.h.
10655         * cilk.c: Ditto.
10656         * c-lex.c: Ditto.
10657         * c-omp.c: Ditto.
10658         * c-opts.c: Ditto.
10659         * c-pch.c: Ditto.
10660         * c-ppoutput.c: Ditto.
10661         * c-pragma.c: Ditto.
10662         * c-pretty-print.c: Ditto.
10663         * c-semantics.c: Ditto.
10664         * c-ubsan.c: Ditto.
10665         * stub-objc.c: Ditto.
10667 2015-01-08  Jason Merrill  <jason@redhat.com>
10669         * c-ubsan.c (ubsan_maybe_instrument_array_ref): Use
10670         do_ubsan_in_current_function.
10671         (ubsan_maybe_instrument_reference_or_call): Likewise.
10672         * c-ubsan.h: Declare it.
10674 2015-01-08  Mike Stump  <mikestump@comcast.net>
10676         * c-common.c (c_common_attribute_table): Add no_sanitize_thread.
10678 2015-01-07  Marek Polacek  <polacek@redhat.com>
10680         PR c/64440
10681         * c-common.c (c_fully_fold_internal): Warn for division and modulo
10682         if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST and is zero.
10684 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
10686         PR c++/31397
10687         * c.opt (Wsuggest-override): New option.
10689 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
10691         Update copyright years.
10693 2015-01-05  Marek Polacek  <polacek@redhat.com>
10695         PR c/64423
10696         * c-common.c (warn_array_subscript_with_type_char): Add location_t
10697         parameter.  Use it.
10698         * c-common.h (warn_array_subscript_with_type_char): Update
10699         declaration.
10701 2014-12-20  Edward Smith-Rowland  <3dw4rd@verizon.net>
10703         * c-cppbuiltin.c (__cpp_sized_deallocation): Uncomment and move macro.
10704         Control macro with flag_sized_deallocation.
10706 2014-12-20  Martin Uecker  <uecker@eecs.berkeley.edu>
10708         * c.opt (Wdiscarded-array-qualifiers): New option.
10710 2014-12-19  Jakub Jelinek  <jakub@redhat.com>
10712         PR preprocessor/63831
10713         * c-cppbuiltin.c (c_cpp_builtins): Don't define __has_attribute
10714         and __has_cpp_attribute here.
10715         * c-ppoutput.c (init_pp_output): Set cb->has_attribute to
10716         c_common_has_attribute.
10717         * c-common.h (c_common_has_attribute): New prototype.
10718         * c-lex.c (init_c_lex): Set cb->has_attribute to
10719         c_common_has_attribute instead of cb_has_attribute.
10720         (get_token_no_padding): New function.
10721         (cb_has_attribute): Renamed to ...
10722         (c_common_has_attribute): ... this.  No longer static.  Use
10723         get_token_no_padding, require ()s, don't build TREE_LIST
10724         unnecessarily, fix up formatting, adjust diagnostics, call
10725         init_attributes.
10727 2014-12-15  Jason Merrill  <jason@redhat.com>
10729         * c.opt (-fsized-deallocation, -Wc++14-compat): New.
10730         (-Wsized-deallocation): New.
10731         * c-opts.c (c_common_post_options): -fsized-deallocation defaults
10732         to on in C++14 and up.
10734 2014-12-11  Jason Merrill  <jason@redhat.com>
10736         * c-cppbuiltin.c (c_cpp_builtins): Enable C++14 __cpp_constexpr.
10738         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_runtime_arrays if
10739         we aren't complaining about VLAs.
10741 2014-12-06  Marek Polacek  <polacek@redhat.com>
10743         PR tree-optimization/64183
10744         * c-gimplify.c (c_gimplify_expr): Don't convert the RHS of a
10745         shift-expression if it is integer_type_node.  Use types_compatible_p.
10747 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
10749         * c-common.c (convert_vector_to_pointer_for_subscript): Remove NULL
10750         last argument from create_tmp_var_raw and create_tmp_var calls.
10751         * cilk.c (gimplify_cilk_spawn): Likewise.
10752         * c-omp.c (c_finish_omp_atomic): Likewise.
10754 2014-11-28  Marek Polacek  <polacek@redhat.com>
10756         * c-ubsan.c (ubsan_instrument_shift): Use op1_utype for MINUS_EXPR
10757         instead of unsigned_type_node.
10759 2014-11-28  Marek Polacek  <polacek@redhat.com>
10761         PR c/63862
10762         * c-ubsan.c (ubsan_instrument_shift): Change the type of a MINUS_EXPR
10763         to op1_utype.
10764         * c-gimplify.c (c_gimplify_expr): Convert right operand of a shift
10765         expression to unsigned_type_node.
10767 2014-11-20  Mark Wielaard  <mjw@redhat.com>
10769         PR debug/38757
10770         * c-opts.c (set_std_c89): Set lang_hooks.name.
10771         (set_std_c99): Likewise.
10772         (set_std_c11): Likewise.
10773         (set_std_cxx98): Likewise.
10774         (set_std_cxx11): Likewise.
10775         (set_std_cxx14): Likewise.
10776         (set_std_cxx1z): Likewise.
10778 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
10780         PR target/63764
10781         * c-common.h (convert_vector_to_pointer_for_subscript): Change
10782         return type to bool.
10783         * c-common.c: Include gimple-expr.h.
10784         (convert_vector_to_pointer_for_subscript): Change return type to
10785         bool.  If *vecp is not lvalue_p and has VECTOR_TYPE, return true
10786         and copy it into a TARGET_EXPR and use that instead of *vecp
10787         directly.
10789 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
10791         Merger of git branch "gimple-classes-v2-option-3".
10792         * ChangeLog.gimple-classes: New.
10793         * c-gimplify.c (add_block_to_enclosing): Strengthen local "stack"
10794         from being just a vec<gimple> to a vec<gbind *>.
10796 2014-11-18  Jakub Jelinek  <jakub@redhat.com>
10798         PR sanitizer/63813
10799         * c-ubsan.c (ubsan_maybe_instrument_reference_or_call): Change type
10800         argument to ptype, set type to TREE_TYPE (ptype).  Don't call
10801         get_pointer_alignment for non-pointers.  Use ptype, or if it is
10802         reference type, corresponding pointer type, as type of kind
10803         argument.
10804         (ubsan_maybe_instrument_reference,
10805         ubsan_maybe_instrument_member_call): Adjust callers.
10807 2014-11-15  Marek Polacek  <polacek@redhat.com>
10809         PR middle-end/63884
10810         * array-notation-common.c (is_sec_implicit_index_fn): Return false
10811         for NULL fndecl.
10812         (extract_array_notation_exprs): Return for NULL node.
10814 2014-11-12  Joseph Myers  <joseph@codesourcery.com>
10816         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define and
10817         undefine __NO_MATH_ERRNO__ based on changes to -fmath-errno state.
10819 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
10821         PR c/59708
10822         * c-common.c (check_builtin_function_arguments): Handle
10823         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW.
10825 2014-11-10  Andi Kleen  <ak@linux.intel.com>
10827         PR c/60804
10828         * c-common.h (check_no_cilk): Declare.
10829         * cilk.c (get_error_location): New function.
10830         (check_no_cilk): Dito.
10832 2014-11-10  Andi Kleen  <ak@linux.intel.com>
10834         * cilk.c (recognize_spawn): Use expression location
10835         for error message.
10837 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
10839         * c.opt ([Wshift-count-negative, Wshift-count-overflow]): Add.
10841 2014-11-10  Edward Smith-Rowland  <3dw4rd@verizon.net>
10843         * c-cppbuiltin.c (__has_attribute, __has_cpp_attribute): New macros;
10844         (__cpp_rtti, __cpp_exceptions): New macros for C++98;
10845         (__cpp_range_based_for, __cpp_initializer_lists,
10846         __cpp_delegating_constructors, __cpp_nsdmi,
10847         __cpp_inheriting_constructors, __cpp_ref_qualifiers): New macros
10848         for C++11; (__cpp_attribute_deprecated): Remove in favor of
10849         __has_cpp_attribute.
10850         * c-lex.c (cb_has_attribute): New callback CPP function;
10851         (init_c_lex): Set has_attribute callback.
10853 2014-11-04  Richard Biener  <rguenther@suse.de>
10855         * c-common.c (shorten_compare): Do not shorten mixed
10856         DFP and non-DFP compares.
10858 2014-11-01  Edward Smith-Rowland  <3dw4rd@verizon.net>
10860         * g++.dg/cpp1y/feat-cxx11.C: Commentary and rearrangement of tests.
10861         * g++.dg/cpp1y/feat-cxx11-neg.C: Add aggregate NSDMI test.
10862         Commentary and rearrangement of tests.
10863         * g++.dg/cpp1y/feat-cxx14.C: Enable aggregate NSDMI test.
10864         Commentary and rearrangement of tests.
10865         * g++.dg/cpp1y/feat-cxx98-neg.C: Ditto.
10866         * g++.dg/cpp1y/feat-cxx98.C: Commentary.
10868 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
10870         * c-common.c, c-common.h, c-cppbuiltin.c, c-lex.c: Remove redundant
10871         enum from machine_mode.
10873 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
10875         * c-common.c: Adjust include files.
10876         * c-gimplify.c: Ditto.
10877         * cilk.c: Ditto.
10878         * c-pragma.c: Ditto.
10879         * c-ubsan.c: Ditto.
10881 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
10883         * c-gimplify.c: Adjust include files.
10885 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10887         PR c++/53061
10888         * c-opts.c (c_common_diagnostics_set_defaults): Renamed from
10889         c_common_initialize_diagnostics.
10890         * c-common.h: Likewise.
10892 2014-10-24  Marek Polacek  <polacek@redhat.com>
10894         PR c/56980
10895         * c-pretty-print.c (c_pretty_printer::simple_type_specifier): Don't
10896         print "struct"/"union"/"enum" for typedefed names.
10898 2014-10-23  Marek Polacek  <polacek@redhat.com>
10900         * c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
10901         in unsigned type.
10903 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
10904             Yury Gribov  <y.gribov@samsung.com>
10906         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
10907         ubsan_instrument_vla): Check bits in flag_sanitize_recover bitmask
10908         instead of flag_sanitize_recover as bool flag.
10910 2014-10-21  Kirill Yukhin  <kirill.yukhin@intel.com>
10912         * cilk.c: Revert previous change.
10914 2014-10-20  Igor Zamyatin  <igor.zamyatin@intel.com>
10916         PR c/63307
10917         * cilk.c: Include vec.h.
10918         (struct cilk_decls): New structure.
10919         (wrapper_parm_cb): Split this function to...
10920         (fill_decls_vec): ...this...
10921         (create_parm_list): ...and this.
10922         (compare_decls): New function.
10923         (for_local_cb): Remove.
10924         (wrapper_local_cb): Ditto.
10925         (build_wrapper_type): For now first traverse and fill vector of
10926         declarations then sort it and then deal with sorted vector.
10927         (cilk_outline): Ditto.
10928         (declare_one_free_variable): Ditto.
10930 2014-10-17  Marek Polacek  <polacek@redhat.com>
10932         * c-opts.c (c_common_post_options): Set warn_implicit_int.
10933         * c.opt (Wimplicit-int): Initialize to -1.
10935 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
10937         * c-pragma.c: Adjust include files.
10938         * c-semantics.c: Likewise.
10940 2014-10-16  DJ Delorie  <dj@redhat.com>
10942         * c-cppbuiltin.c (cpp_atomic_builtins): Don't assume pointers are
10943         multiples of bytes.
10945 2014-10-14  Jason Merrill  <jason@redhat.com>
10947         PR c++/63455
10948         * c-common.h (CPP_PREPARSED_EXPR): New.
10949         (N_CP_TTYPES): Adjust.
10951 2014-10-15  Marek Polacek  <polacek@redhat.com>
10953         * c-opts.c (c_common_init_options): Make -std=gnu11 the default for C.
10955 2014-10-14  DJ Delorie  <dj@redhat.com>
10957         * c-pretty-print.c (pp_c_integer_constant): Check for all __intN
10958         types, not just __int128.
10959         * c-cppbuiltin.c (c_cpp_builtins): Add builtins for all __intN
10960         types, not just __int128.
10961         (cpp_atomic_builtins): Round pointer sizes up.
10962         (type_suffix): Use type precision, not specific types.
10963         * c-common.c (c_common_reswords): Remove __int128 special case.
10964         (c_common_type_for_size): Check for all __intN types, not just
10965         __int128.
10966         (c_common_type_for_mode): Likewise.
10967         (c_common_signed_or_unsigned_type): Likewise.
10968         (c_build_bitfield_integer_type): Likewise.
10969         (c_common_nodes_and_builtins): Likewise.
10970         (keyword_begins_type_specifier): Likewise.
10971         * c-common.h (rid): Remove RID_INT128 and add RID_INT_N_* for all
10972         __intN variants.
10974 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
10976         * c-common.c: Use hash_table instead of hashtab.
10978 2014-10-06  Edward Smith-Rowland  <3dw4rd@verizon.net>
10980         * c-cppbuiltin.c: Move __cpp_attribute_deprecated to the
10981         C++11 section.
10983 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
10985         PR c++/54427
10986         PR c++/57198
10987         PR c++/58845
10988         * c-common.c (warn_logical_operator): Punt for vectors.
10990 2014-10-01  Edward Smith-Rowland  <3dw4rd@verizon.net>
10992         Implement SD-6: SG10 Feature Test Recommendations
10993         * c-cppbuiltin.c (c_cpp_builtins()): Define language feature
10994         macros and the __has_header macro.
10996 2014-09-30  Jason Merrill  <jason@redhat.com>
10998         * c-common.h (enum rid): Add RID_IS_TRIVIALLY_ASSIGNABLE and
10999         RID_IS_TRIVIALLY_CONSTRUCTIBLE.
11000         * c-common.c (c_common_reswords): Add __is_trivially_copyable.
11002         * c-common.h (enum rid): Add RID_IS_TRIVIALLY_COPYABLE.
11003         * c-common.c (c_common_reswords): Add __is_trivially_copyable.
11005         * c-common.h (enum rid): Remove RID_IS_CONVERTIBLE_TO.
11006         * c-common.c (c_common_reswords): Remove __is_convertible_to.
11008 2014-09-24  Marek Polacek  <polacek@redhat.com>
11010         PR c/61405
11011         PR c/53874
11012         * c-common.h (struct c_common_resword): Don't define CPP_KEYWORD.
11014 2014-09-23  Andi Kleen  <ak@linux.intel.com>
11016         * c-common.c (handle_no_reorder_attribute): New function.
11017         (c_common_attribute_table): Add no_reorder attribute.
11019 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
11021         * c-cppbuiltin.c (c_cpp_builtins): Define
11022         __LIBGCC_*_EXCESS_PRECISION__ macros for supported floating-point
11023         modes.
11025 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
11027         * c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_*_FUNC_EXT__
11028         for supported floating-point modes.
11030 2014-09-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11032         * c.opt (Wpsabi): Use LangEnabledBy.
11033         * c-opts.c (c_common_handle_option): Do not handle here.
11035 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
11037         * c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_HAS_%s_MODE__
11038         macros for floating-point modes.
11040 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
11042         PR target/58757
11043         * c-cppbuiltin.c (builtin_define_float_constants): Correct
11044         __*_DENORM_MIN__ without denormals.
11046 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
11048         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
11049         ubsan_instrument_vla, ubsan_instrument_return): Adjust
11050         ubsan_create_data callers.
11051         (ubsan_instrument_bounds): Don't emit UBSAN_BOUNDS at all if
11052         index is constant or BIT_AND_EXPR with constant mask and is
11053         small enough for the bound.
11054         * c-gimplify.c (ubsan_walk_array_refs_r): For ADDR_EXPR of
11055         ARRAY_REF, make sure the inner ARRAY_REF is not walked again.
11057 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11059         * c.opt: Add CppReason to various flags.
11060         (Wdate-time): Re-sort.
11061         * c-common.c: Include c-common.h earlier.
11062         (struct reason_option_codes_t): Delete.
11063         (c_option_controlling_cpp_error): Prefix global type and struct
11064         with cpp_.
11066 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11068         * c.opt (Wnormalized): New.
11069         (Wnormalized=): Use Enum and Reject Negative.
11070         * c-opts.c (c_common_handle_option): Do not handle Wnormalized here.
11072 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
11074         * c-cppbuiltin.c (c_cpp_builtins): Define macros for mantissa
11075         digits of floating-point modes if -fbuilding-libgcc.
11077 2014-09-05  Joseph Myers  <joseph@codesourcery.com>
11079         * c-cppbuiltin.c (c_cpp_builtins): Also define
11080         __LIBGCC_EH_TABLES_CAN_BE_READ_ONLY__,
11081         __LIBGCC_EH_FRAME_SECTION_NAME__, __LIBGCC_JCR_SECTION_NAME__,
11082         __LIBGCC_CTORS_SECTION_ASM_OP__, __LIBGCC_DTORS_SECTION_ASM_OP__,
11083         __LIBGCC_TEXT_SECTION_ASM_OP__, __LIBGCC_INIT_SECTION_ASM_OP__,
11084         __LIBGCC_INIT_ARRAY_SECTION_ASM_OP__,
11085         __LIBGCC_STACK_GROWS_DOWNWARD__,
11086         __LIBGCC_DONT_USE_BUILTIN_SETJMP__,
11087         __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__,
11088         __LIBGCC_DWARF_FRAME_REGISTERS__,
11089         __LIBGCC_EH_RETURN_STACKADJ_RTX__, __LIBGCC_JMP_BUF_SIZE__,
11090         __LIBGCC_STACK_POINTER_REGNUM__ and
11091         __LIBGCC_VTABLE_USES_DESCRIPTORS__ for -fbuilding-libgcc.
11092         (builtin_define_with_value): Handle backslash-escaping in string
11093         macro values.
11095 2014-09-05  Richard Biener  <rguenther@suse.de>
11097         PR middle-end/63148
11098         * c-format.c (check_format_arg): Properly handle
11099         effectively signed POINTER_PLUS_EXPR offset.
11101 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11103         * c.opt (Wc90-c99-compat,Wc++-compat,Wcomment,Wendif-labels,
11104         Winvalid-pch,Wlong-long,Wmissing-include-dirs,Wmultichar,Wpedantic,
11105         (Wdate-time,Wtraditional,Wundef,Wvariadic-macros): Add CPP, Var
11106         and Init.
11107         * c-opts.c (c_common_handle_option): Do not handle here.
11108         (sanitize_cpp_opts): Likewise.
11109         * c-common.c (struct reason_option_codes_t): Handle
11110         CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
11112 2014-09-03  Marek Polacek  <polacek@redhat.com>
11114         * c.opt (Wlogical-not-parentheses): Enable by -Wall.
11116 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
11117             Balaji V. Iyer  <balaji.v.iyer@intel.com>
11118             Igor Zamyatin  <igor.zamyatin@intel.com>
11120         * c-cilkplus.c (cilk_for_number_of_iterations): New function.
11121         * c-common.c (c_common_reswords): Added _Cilk_for.
11122         * c-common.h (enum rid): Added RID_CILK_FOR.
11123         (cilk_for_number_of_iterations): Add declaration.
11124         * c-omp.c (c_finish_omp_for): Added checks for CILK_SIMD and
11125         CILK_FOR.
11126         * c-pragma.c (init_pragma): Register "grainsize" pragma.
11127         * c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_GRAINSIZE.
11129 2014-08-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11131         * c.opt (Wbuiltin-macro-redefined,Wdeprecated,Wendif-labels,
11132         Winvalid-pch,Wliteral-suffix,Wmissing-include-dirs,Wtrigraphs,
11133         Wundef): Use CPP, Var and Init.
11134         * c-opts.c (c_common_handle_option): Do not handle the above flags here.
11136 2014-08-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11138         * c.opt (Wbuiltin-macro-redefined): Use CPP, Var and Init.
11139         * c-opts.c (c_common_handle_option): Do not handle here.
11141 2014-08-25  Jason Merrill  <jason@redhat.com>
11143         * c.opt: Change -std=c++1y and -std=gnu++1y to be aliases for
11144         -std=c++14 and -std=gnu++14, rather than the reverse.
11145         * c-opts.c (c_common_handle_option): Change OPT_std_c__1y and
11146         OPT_std_gnu__1y to OPT_std_c__14 and OPT_std_gnu__14.
11147         * c-common.h (cxx_dialect): Remove cxx1y.
11149 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
11151         * c-common.h (enum cxx_dialect): Add cxx14.
11152         * c-opts.c (set_std_cxx1y): Rename to set_std_cxx14; Use cxx14.
11153         * c-ubsan.c (ubsan_instrument_shift): Change comment and logic from
11154         cxx_dialect == cxx11 || cxx_dialect == cxx1y to cxx_dialect >= cxx11.
11156 2014-08-22  Jason Merrill  <jason@redhat.com>
11158         * c.opt (std=gnu++17): Fix alias.
11160 2014-08-22  Marek Polacek  <polacek@redhat.com>
11162         PR c++/62199
11163         * c-common.c (warn_logical_not_parentheses): Don't check LHS.  Don't
11164         check for vector types.  Drop LHS argument.
11165         * c-common.h (warn_logical_not_parentheses): Adjust.
11167 2014-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11169         * c.opt (Wcomment): Use CPP, Var and LangEnabledBy.
11170         (Wmultichar): Likewise.
11171         (Wdate-time): Use C-family languages instead of Common. Use CPP
11172         and Var.
11173         * c-opts.c (c_common_handle_option): Do not handle the above
11174         options here.
11175         (sanitize_cpp_opts): Likewise.
11177 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11179         PR fortran/44054
11180         * c-opts.c: Include tree-diagnostics.h.
11181         (c_diagnostic_finalizer): New.
11182         (c_common_initialize_diagnostics): Use it.
11184 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11186         PR preprocessor/51303
11187         * c-common.c (struct reason_option_codes_t option_codes):
11188         Add CPP_W_MISSING_INCLUDE_DIRS. Sort alphabetically.
11190 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11192         PR c/60975
11193         PR c/53063
11194         * c.opt (Wvariadic-macros): Use CPP and LangEnabledBy.
11195         * c-opts.c (c_common_handle_option): Call cpp_handle_option_auto.
11196         (c_common_post_options): Call init_global_opts_from_cpp.
11197         (sanitize_cpp_opts): Do not handle Wvariadic-macros here.
11199 2014-08-19  Marek Polacek  <polacek@redhat.com>
11201         PR c++/62153
11202         * c-common.c (maybe_warn_bool_compare): New function.
11203         * c-common.h (maybe_warn_bool_compare): Declare.
11204         * c.opt (Wbool-compare): New option.
11206 2014-08-19  Marek Polacek  <polacek@redhat.com>
11208         * c.opt (Wc99-c11-compat): New option.
11210 2014-08-19  Marek Polacek  <polacek@redhat.com>
11212         * c-opts.c (sanitize_cpp_opts): Make warn_long_long be set according
11213         to warn_c90_c99_compat.
11214         * c.opt (Wc90-c99-compat, Wdeclaration-after-statement): Initialize
11215         to -1.
11217 2014-08-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11218             Steven Bosscher  <steven@gcc.gnu.org>
11220         PR c/52952
11221         * c-format.c: Add extra_arg_loc and format_string_loc to struct
11222         format_check_results.
11223         (check_function_format): Use true and add comment for boolean
11224         argument.
11225         (finish_dollar_format_checking): Use explicit location when warning.
11226         (check_format_info): Likewise.
11227         (check_format_arg): Set extra_arg_loc and format_string_loc.
11228         (check_format_info_main): Use explicit location when warning.
11229         (check_format_types): Pass explicit location.
11230         (format_type_warning): Likewise.
11232 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11234         PR fortran/44054
11235         * c-format.c: Handle Fortran flags.
11237 2014-08-12  Igor Zamyatin  <igor.zamyatin@intel.com>
11239         PR other/61962
11240         * array-notation-common.c (find_rank): Added handling for other
11241         types of references.
11243 2014-08-10  Marek Polacek  <polacek@redhat.com>
11245         PR c/51849
11246         * c-opts.c (sanitize_cpp_opts): Pass warn_c90_c99_compat to libcpp.
11247         * c.opt (Wc90-c99-compat): Add option.
11249 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
11251         * c-gimplify.c, cilk.c: Remove includes of pointer-set.h.
11253 2014-08-03  Marek Polacek  <polacek@redhat.com>
11255         * c-common.c (check_case_value): Add location_t parameter.  Use it.
11256         (c_add_case_label): Pass loc to check_case_value.
11258 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
11260         * cilk.c: Use hash_map instead of pointer_map.
11262 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
11264         * c-gimplify.c: Use hash_set instead of pointer_set.
11266 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
11268         PR middle-end/61455
11269         * array-notation-common.c (extract_array_notation_exprs): Handling
11270         of DECL_EXPR added.
11272 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
11274         * c-common.h (min_align_of_type): Removed prototype.
11275         * c-common.c (min_align_of_type): Removed.
11276         * c-ubsan.h (ubsan_maybe_instrument_reference,
11277         ubsan_maybe_instrument_member_call): New prototypes.
11278         * c-ubsan.c: Include stor-layout.h and builtins.h.
11279         (ubsan_maybe_instrument_reference_or_call,
11280         ubsan_maybe_instrument_reference, ubsan_maybe_instrument_call): New
11281         functions.
11283 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
11285         PR c++/60517
11286         * c.opt (-Wreturn-local-addr): Move to common.opt.
11288 2014-07-30  Jason Merrill  <jason@redhat.com>
11290         PR c++/61659
11291         PR c++/61687
11292         Revert:
11293         * c.opt (-fuse-all-virtuals): New.
11295 2014-07-30  Tom Tromey  <tromey@redhat.com>
11297         PR c/59855
11298         * c.opt (Wdesignated-init): New option.
11299         * c-common.c (c_common_attribute_table): Add "designated_init".
11300         (handle_designated_init): New function.
11302 2014-07-24  Marek Polacek  <polacek@redhat.com>
11304         PR c/57653
11305         * c-opts.c (c_finish_options): If -imacros is in effect, return.
11307 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
11309         PR preprocessor/60723 - missing system-ness marks for macro tokens
11310         * c-ppoutput.c (struct print::prev_was_system_token): New data
11311         member.
11312         (init_pp_output): Initialize it.
11313         (maybe_print_line_1, maybe_print_line, print_line_1, print_line)
11314         (do_line_change): Return a flag saying if a line marker was
11315         emitted or not.
11316         (scan_translation_unit): Detect if the system-ness of the token we
11317         are about to emit is different from the one of the previously
11318         emitted token.  If so, emit a line marker.  Avoid emitting useless
11319         adjacent line markers.  Avoid emitting line markers for tokens
11320         originating from the expansion of built-in macros.
11321         (scan_translation_unit_directives_only): Adjust.
11323 2014-07-15  Marek Polacek  <polacek@redhat.com>
11325         * c-ubsan.c (ubsan_instrument_bounds): Don't instrument if
11326         TYPE_MAX_VALUE is NULL.
11328 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
11330         PR middle-end/61294
11331         * c.opt (Wmemset-transposed-args): New warning.
11333 2014-07-10  Jason Merrill  <jason@redhat.com>
11335         PR c++/61659
11336         PR c++/61687
11337         * c.opt (-fuse-all-virtuals): New.
11339 2014-07-09  Richard Biener  <rguenther@suse.de>
11341         PR c-family/61741
11342         * c-gimplify.c (c_gimplify_expr): Gimplify self-modify expressions
11343         using unsigned arithmetic if overflow does not wrap instead of
11344         if overflow is undefined.
11346 2014-07-06  Marek Polacek  <polacek@redhat.com>
11348         PR c/6940
11349         * c.opt (Wsizeof-array-argument): New option.
11351 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
11353         * c-ada-spec.c (dump_ada_nodes): Don't call qsort if
11354         comments->count <= 1, as comments->entries might be NULL.
11356 2014-07-01  Marek Polacek  <polacek@redhat.com>
11358         * c.opt (Wint-conversion): New option.
11360 2014-07-01  Marek Polacek  <polacek@redhat.com>
11362         PR c/58286
11363         * c.opt (Wincompatible-pointer-types): New option.
11365 2014-06-30  Paolo Carlini  <paolo.carlini@oracle.com>
11367         PR c++/51400
11368         * c-common.c (handle_noreturn_attribute, handle_const_attribute):
11369         Do not discard TYPE_QUALS of type.
11371 2014-06-26  Jason Merrill  <jason@redhat.com>
11373         * c-common.h (enum cxx_dialect): Add cxx1z.
11374         * c.opt (std=c++1z, std=c++17, std=gnu++1z, std=gnu++17): New.
11375         * c-opts.c (c_common_handle_option, set_std_cxx1z): Handle it.
11377 2014-06-26  Teresa Johnson  <tejohnson@google.com>
11379         * c-common.h (get_dump_info): Declare.
11380         * c-gimplify.c (c_genericize): Use saved dump files.
11381         * c-opts.c (c_common_parse_file): Begin and end dumps
11382         once around parsing invocation.
11383         (get_dump_info): New function.
11385 2014-06-23  Marek Polacek  <polacek@redhat.com>
11386             Andrew MacLeod  <amacleod@redhat.com>
11388         PR c/61553
11389         * c-common.c (get_atomic_generic_size): Don't segfault if the
11390         type doesn't have a size.
11392 2014-06-20  Marek Polacek  <polacek@redhat.com>
11394         * c-gimplify.c: Include "c-ubsan.h" and "pointer-set.h".
11395         (ubsan_walk_array_refs_r): New function.
11396         (c_genericize): Instrument array bounds.
11397         * c-ubsan.c: Include "internal-fn.h".
11398         (ubsan_instrument_division): Mark instrumented arrays as having
11399         side effects.  Adjust ubsan_type_descriptor call.
11400         (ubsan_instrument_shift): Likewise.
11401         (ubsan_instrument_vla): Adjust ubsan_type_descriptor call.
11402         (ubsan_instrument_bounds): New function.
11403         (ubsan_array_ref_instrumented_p): New function.
11404         (ubsan_maybe_instrument_array_ref): New function.
11405         * c-ubsan.h (ubsan_instrument_bounds): Declare.
11406         (ubsan_array_ref_instrumented_p): Declare.
11407         (ubsan_maybe_instrument_array_ref): Declare.
11409 2014-06-20  Hale Wang  <hale.wang@arm.com>
11411         PR lto/61123
11412         * c.opt (fshort-enums): Add to LTO.
11413         * c.opt (fshort-wchar): Likewise.
11415 2014-06-16  Marek Polacek  <polacek@redhat.com>
11417         PR c/60439
11418         * c.opt (Wswitch-bool): Add Var.
11420 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
11422         PR middle-end/61486
11423         * c-omp.c (c_omp_split_clauses): Don't crash on firstprivate in
11424         #pragma omp target teams or
11425         #pragma omp {,target }teams distribute simd.
11427 2014-06-12  Jason Merrill  <jason@redhat.com>
11429         * c.opt (Wabi=, fabi-compat-version): New.
11430         * c-opts.c (c_common_handle_option): Handle -Wabi=.
11431         (c_common_post_options): Handle flag_abi_compat_version default.
11432         Disallow -fabi-compat-version=1.
11433         * c-common.h (abi_version_crosses): New.
11435 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
11437         * c-common.c (handle_section_attribute): Update handling for
11438         section names that are no longer trees.
11440 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
11442         PR fortran/60928
11443         * c-pragma.c (omp_pragmas_simd): Move PRAGMA_OMP_TASK...
11444         (omp_pragmas): ... back here.
11446 2014-06-05  Marek Polacek  <polacek@redhat.com>
11448         PR c/49706
11449         * c-common.c (warn_logical_not_parentheses): New function.
11450         * c-common.h (warn_logical_not_parentheses): Declare.
11451         * c.opt (Wlogical-not-parentheses): New option.
11453 2014-06-04  Marek Polacek  <polacek@redhat.com>
11455         PR c/30020
11456         * c-common.c (check_case_bounds): Add location parameter.
11457         Use it.
11458         (c_add_case_label): Pass loc to check_case_bounds.
11460 2014-06-03  Marek Polacek  <polacek@redhat.com>
11462         PR c/60439
11463         * c.opt (Wswitch-bool): New option.
11465 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
11467         * c-common.h (c_omp_sharing_predetermined, c_omp_remap_decl):
11468         Remove prototypes.
11469         (record_types_used_by_current_var_decl): Move prototype to where
11470         it belongs.
11472         * c-common.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
11473         (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
11474         (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
11476 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
11478         * c-common.h (CTI_VOID_ZERO, void_zero_node): Delete.
11479         * c-common.c (c_common_nodes_and_builtins): Don't initialize
11480         void_zero_node.
11481         * c-pretty-print.c (pp_c_void_constant): New function.
11482         (c_pretty_printer::constant, c_pretty_printer::primary_expression)
11483         (c_pretty_printer::expression): Handle VOID_CST.
11484         * cilk.c (extract_free_variables): Likewise.
11485         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift)
11486         (ubsan_instrument_vla): Use void_node instead of void_zero_node.
11488 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
11490         * c-common.h (sorted_fields_type): Remove variable_size GTY attribute.
11491         * c-pragma.c (push_alignment): Adjust.
11492         (handle_pragma_push_options): Likewise.
11494 2014-05-09  Marek Polacek  <polacek@redhat.com>
11496         PR c/50459
11497         * c-common.c (check_user_alignment): Return -1 if alignment is error
11498         node.
11499         (handle_aligned_attribute): Don't call default_conversion on
11500         FUNCTION_DECLs.
11501         (handle_vector_size_attribute): Likewise.
11502         (handle_tm_wrap_attribute): Handle case when wrap_decl is error node.
11503         (handle_sentinel_attribute): Call default_conversion and allow even
11504         integral types as an argument.
11506 2014-05-08  Marek Polacek  <polacek@redhat.com>
11508         PR c/61053
11509         * c-common.c (min_align_of_type): New function factored out from...
11510         (c_sizeof_or_alignof_type): ...here.
11511         * c-common.h (min_align_of_type): Declare.
11513 2014-05-08  Marek Polacek  <polacek@redhat.com>
11515         PR c/61077
11516         * c-common.c (check_main_parameter_types): Warn for _Atomic-qualified
11517         parameter type of main.
11519 2014-05-07  DJ Delorie  <dj@redhat.com>
11521         * c-cppbuiltin.c (print_bits_of_hex): New.
11522         (builtin_define_type_minmax): Print values using hex so as not to
11523         require a pre-computed list of string values.
11525 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
11526             Mike Stump  <mikestump@comcast.net>
11527             Richard Sandiford  <rdsandiford@googlemail.com>
11529         * c-ada-spec.c: Include wide-int.h.
11530         (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Remove.
11531         (dump_generic_ada_node): Use wide-int interfaces.
11532         * c-common.c: Include wide-int-print.h.
11533         (shorten_compare): Use wide-int interfaces and tree_int_cst_lt.
11534         (pointer_int_sum): Use wide-int interfaces.
11535         (c_common_nodes_and_builtins): Use make_int_cst.
11536         (match_case_to_enum_1): Use tree_fits_uhwi_p and tree_fits_shwi_p.
11537         (handle_alloc_size_attribute): Use wide-int interfaces.
11538         (get_nonnull_operand): Likewise.
11539         * c-format.c (get_constant): Use tree_fits_uhwi_p.
11540         * c-lex.c: Include wide-int.h.
11541         (narrowest_unsigned_type): Take a widest_int rather than two
11542         HOST_WIDE_INTs.
11543         (narrowest_signed_type): Likewise.
11544         (interpret_integer): Update accordingly.  Use wide-int interfaces.
11545         (lex_charconst): Use wide-int interfaces.
11546         * c-pretty-print.c: Include wide-int.h.
11547         (pp_c_integer_constant): Use wide-int interfaces.
11548         * cilk.c (declare_one_free_variable): Use tree_int_cst_lt instead of
11549         INT_CST_LT_UNSIGNED.
11551 2014-05-06  Richard Biener  <rguenther@suse.de>
11553         * c-opts.c (c_common_post_options): For -freestanding,
11554         -fno-hosted and -fno-builtin disable pattern recognition
11555         if not enabled explicitely.
11557 2014-05-02  Marek Polacek  <polacek@redhat.com>
11559         * c.opt (Wsizeof-pointer-memaccess): Describe option.
11561 2014-05-01  Marek Polacek  <polacek@redhat.com>
11563         PR c/43245
11564         * c.opt (Wdiscarded-qualifiers): Add.
11566 2014-04-30  Marek Polacek  <polacek@redhat.com>
11568         * c-ubsan.c (ubsan_instrument_division): Handle REAL_TYPEs.  Perform
11569         INT_MIN / -1 sanitization only for integer types.
11571 2014-04-25  Marek Polacek  <polacek@redhat.com>
11573         PR c/18079
11574         * c-common.c (handle_noinline_attribute): Warn if the attribute
11575         conflicts with always_inline attribute.
11576         (handle_always_inline_attribute): Warn if the attribute conflicts
11577         with noinline attribute.
11579 2014-04-25  Marek Polacek  <polacek@redhat.com>
11581         PR c/60156
11582         * c-common.c (check_main_parameter_types): Warn about variadic main.
11584 2014-04-24  Mike Stump  <mikestump@comcast.net>
11586         * c.opt (Wshadow-ivar): Default to on.
11588 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
11590         * c.opt (Wshadow-ivar, flocal-ivars, fivar-visibility): Add.
11592 2014-04-23  Marek Polacek  <polacek@redhat.com>
11594         * c-common.c (handle_tm_wrap_attribute): Tweak error message.
11596 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
11598         PR sanitizer/60275
11599         * c-ubsan.c (ubsan_instrument_return): Return __builtin_trap ()
11600         if flag_sanitize_undefined_trap_on_error.
11601         (ubsan_instrument_division, ubsan_instrument_shift,
11602         ubsan_instrument_vla): Likewise.  Use __ubsan_handle_*_abort ()
11603         if !flag_sanitize_recover.
11605 2014-04-22  Marc Glisse  <marc.glisse@inria.fr>
11607         PR libstdc++/43622
11608         * c-common.c (registered_builtin_types): Make non-static.
11609         * c-common.h (registered_builtin_types): Declare.
11611 2014-04-14  Richard Biener  <rguenther@suse.de>
11612             Marc Glisse  <marc.glisse@inria.fr>
11614         PR c/60819
11615         * c-common.c (convert_vector_to_pointer_for_subscript): Properly
11616         apply may-alias the scalar pointer type when applicable.
11618 2014-04-12  Igor Zamyatin  <igor.zamyatin@intel.com>
11620         PR middle-end/60467
11621         * cilk.c (cilk_set_spawn_marker): Remove FUNCTION_DECL
11622         as possible argument for Cilk_spawn.
11624 2014-04-11  Tobias Burnus  <burnus@net-b.de>
11626         PR c/60194
11627         * c.opt (Wformat-signedness): Add
11628         * c-format.c(check_format_types): Use it.
11630 2014-04-11  Jason Merrill  <jason@redhat.com>
11632         PR c++/57926
11633         * c-common.c (sync_resolve_size, get_atomic_generic_size): Call
11634         default_conversion for an array argument.
11636 2014-04-08  Marek Polacek  <polacek@redhat.com>
11638         PR sanitizer/60745
11639         * c-ubsan.c: Include asan.h.
11640         (ubsan_instrument_return): Call initialize_sanitizer_builtins.
11642 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
11644         * c.opt (Wnon-virtual-dtor): Auto set when Weffc++.
11646 2014-04-02  Marek Polacek  <polacek@redhat.com>
11648         * c-common.h (c_expand_expr): Remove declaration.
11650 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
11652         PR c++/60689
11653         * c-common.c (add_atomic_size_parameter): When creating new
11654         params vector, push the size argument first.
11656 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
11658         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
11659         ubsan_instrument_vla, ubsan_instrument_return): Adjust
11660         ubsan_create_data callers.
11662 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
11664         PR debug/60603
11665         * c-opts.c (c_finish_options): Restore cb_file_change call to
11666         <built-in>.
11668 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
11670         PR middle-end/36282
11671         * c-pragma.c (apply_pragma_weak): Only look at
11672         TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) if
11673         DECL_ASSEMBLER_NAME_SET_P (decl).
11674         (maybe_apply_pending_pragma_weaks): Exit early if
11675         vec_safe_is_empty (pending_weaks) rather than only when
11676         !pending_weaks.
11677         (maybe_apply_pragma_weak): Likewise.  If !DECL_ASSEMBLER_NAME_SET_P,
11678         set assembler name back to NULL afterwards.
11680 2014-03-11  Jason Merrill  <jason@redhat.com>
11682         * c.opt: Add -std=gnu++14.
11684 2014-03-11  Ian Bolton  <ian.bolton@arm.com>
11686         * c-opts.c (c_common_post_options): Don't override
11687         -ffp-contract=fast if unsafe-math-optimizations is on.
11689 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
11691         * c.opt: Enable LTO FE for fshort-double.
11693 2014-03-07  Jason Merrill  <jason@redhat.com>
11695         * c.opt: Add -std=c++14.
11697 2014-03-06  Marek Polacek  <polacek@redhat.com>
11699         PR c/60197
11700         * cilk.c (contains_cilk_spawn_stmt): New function.
11701         (contains_cilk_spawn_stmt_walker): Likewise.
11702         (recognize_spawn): Give error on invalid use of _Cilk_spawn.
11703         * c-common.h (contains_cilk_spawn_stmt): Add declaration.
11705 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
11707         * c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_SIMD.
11708         (init_pragma): Call cpp_register_deferred_pragma for PRAGMA_CILK_SIMD
11709         even when flag_preprocess_only.
11711 2014-02-26  Jason Merrill  <jason@redhat.com>
11713         PR c++/59231
11714         PR c++/11586
11715         * c-common.c (shorten_compare): Don't check
11716         c_inhibit_evaluation_warnings.
11718 2014-02-19  Jakub Jelinek  <jakub@redhat.com>
11720         PR c/37743
11721         * c-common.c (c_common_nodes_and_builtins): When initializing
11722         c_uint{16,32,64}_type_node, also set corresponding
11723         uint{16,32,64}_type_node to the same value.
11725         PR c++/60267
11726         * c-pragma.c (init_pragma): Don't call cpp_register_deferred_pragma
11727         for PRAGMA_IVDEP if flag_preprocess_only.
11729 2014-02-12  Jakub Jelinek  <jakub@redhat.com>
11731         PR c/60101
11732         * c-common.c (merge_tlist): If copy is true, call new_tlist,
11733         if false, add ADD itself, rather than vice versa.
11734         (verify_tree): For COND_EXPR, don't call merge_tlist with non-zero
11735         copy.  For SAVE_EXPR, only call merge_tlist once.
11737 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
11739         PR middle-end/60092
11740         * c-common.c (handle_alloc_size_attribute): Use tree_fits_uhwi_p
11741         and tree_to_uhwi.
11742         (handle_alloc_align_attribute, handle_assume_aligned_attribute): New
11743         functions.
11744         (c_common_attribute_table): Add alloc_align and assume_aligned
11745         attributes.
11747 2014-02-06  Marek Polacek  <polacek@redhat.com>
11749         PR c/60087
11750         * c-common.c (warn_for_sign_compare): Call warning_at with location
11751         instead of warning.
11753 2014-02-05  Marek Polacek  <polacek@redhat.com>
11755         PR c/53123
11756         * c-omp.c (c_finish_omp_atomic): Remove unreachable return
11757         statement.
11759 2014-02-04  Marek Polacek  <polacek@redhat.com>
11761         PR c/60036
11762         * c-common.c (conversion_warning): Unwrap C_MAYBE_CONST_EXPR and/or
11763         SAVE_EXPR.
11765 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
11767         PR c++/53017
11768         PR c++/59211
11769         * c-common.c (handle_aligned_attribute, handle_alloc_size_attribute,
11770         handle_vector_size_attribute, handle_nonnull_attribute): Call
11771         default_conversion on the attribute argument.
11772         (handle_nonnull_attribute): Increment the argument number.
11774 2014-01-31  Marek Polacek  <polacek@redhat.com>
11776         PR c/59963
11777         * c-common.c (add_atomic_size_parameter): Pass vNULL to
11778         build_function_call_vec.
11779         (resolve_overloaded_builtin): Likewise.
11780         * c-common.h (build_function_call_vec): Adjust declaration.
11782 2014-01-30  Marek Polacek  <polacek@redhat.com>
11784         PR c/59940
11785         * c-common.h (unsafe_conversion_p): Adjust declaration.
11786         (warnings_for_convert_and_check): Likewise.
11787         (convert_and_check): Likewise.
11788         * c-common.c (unsafe_conversion_p): Add location parameter.  Call
11789         expansion_point_location_if_in_system_header on it.
11790         (warnings_for_convert_and_check): Add location parameter.  Call
11791         expansion_point_location_if_in_system_header on it.  Use it.
11792         (convert_and_check): Add location parameter.  Use it.
11793         (conversion_warning): Likewise.
11794         (c_add_case_label): Adjust convert_and_check calls.
11795         (scalar_to_vector): Adjust unsafe_conversion_p calls.
11797 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
11799         * c-common.c (c_define_builtins): Replaced flag_enable_cilkplus with
11800         flag_cilkplus.
11801         * c-pragma.c (init_pragma): Likewise.
11802         * c.opt: Likewise.
11804 2014-01-23  Marek Polacek  <polacek@redhat.com>
11806         PR c/59846
11807         * c-common.c (shorten_compare): Add location_t parameter.
11808         * c-common.h (shorten_binary_op): Adjust declaration.
11810 2014-01-23  Marek Polacek  <polacek@redhat.com>
11812         PR c/58346
11813         * c-common.c (pointer_to_zero_sized_aggr_p): New function.
11814         * c-common.h: Declare it.
11816 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
11818         * c-ada-spec.h (dump_ada_specs): Revert prototype change.
11819         * c-ada-spec.c (dump_ads): Likewise.
11820         (cpp_check): Likewise.
11821         (dump_ada_specs): Likewise.
11823 2014-01-15  Laurent Alfonsi  <laurent.alfonsi@st.com>
11825         PR c++/49718
11826         * c-common.c (handle_no_instrument_function_attribute): Allow
11827         no_instrument_function attribute in class member
11828         definition/declaration.
11830 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
11832         PR c/58943
11833         * c-omp.c (c_finish_omp_atomic): Set in_late_binary_op around
11834         build_modify_expr with non-NOP_EXPR opcode.  Handle return from it
11835         being COMPOUND_EXPR.
11836         (c_finish_omp_for): Handle incr being COMPOUND_EXPR with first
11837         operand a SAVE_EXPR and second MODIFY_EXPR.
11839 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
11841         PR target/58115
11842         * c-pch.c (c_common_write_pch): Call
11843         prepare_target_option_nodes_for_pch.
11845 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11847         Update copyright years
11849 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11851         * array-notation-common.c, c-cilkplus.c: Use the standard form for
11852         the copyright notice.
11854 2013-12-28  Eric Botcazou  <ebotcazou@adacore.com>
11856         * c-ada-spec.c (print_constructor): New function.
11857         (print_destructor): Retrieve the origin of the destructor.
11858         (print_ada_declaration): Revamp handling of constructors/destructors.
11860 2013-12-23  Stuart Hastings  <stuart@apple.com>
11861             Bill Maddox  <maddox@google.com>
11862             Jason Merrill  <jason@redhat.com>
11864         * c.opt: Add -fdeclone-ctor-dtor.
11865         * c-opts.c (c_common_post_options): Default to on iff -Os.
11867 2013-12-18  Balaji V. Iyer  <balaji.v.iyer@intel.com>
11869         * c-common.c (c_common_attribute_table): Added "cilk simd function"
11870         attribute.
11871         * c-pragma.h (enum pragma_cilk_clause): Remove.
11872         (enum pragma_omp_clause): Added the following fields:
11873         PRAGMA_CILK_CLAUSE_NOMASK, PRAGMA_CILK_CLAUSE_MASK,
11874         PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_NONE,
11875         PRAGMA_CILK_CLAUSE_LINEAR, PRAGMA_CILK_CLAUSE_PRIVATE,
11876         PRAGMA_CILK_CLAUSE_FIRSTPRIVATE, PRAGMA_CILK_CLAUSE_LASTPRIVATE,
11877         PRAGMA_CILK_CLAUSE_UNIFORM.
11880 2013-12-11  Balaji V. Iyer  <balaji.v.iyer@intel.com>
11882         * cilk.c (cilk_outline): Made this function non-static.
11883         (gimplify_cilk_spawn): Removed pre_p and post_p arguments.
11884         (create_cilk_wrapper): Added a new parameter: a function pointer.
11885         (c_install_body_w_frame_cleanup): Remove
11886         (extract_free_variables): Added VEC_INIT_EXPR and CONSTRUCTOR case.
11887         * c-common.h (cilk_outline): New prototype.
11888         (gimplify_cilk_spawn): Removed two parameters.
11889         (cilk_install_body_with_frame_cleanup): New prototype.
11890         * c-gimplify.c (c_gimplify_expr): Added MODIFY_EXPR, CALL_EXPR and
11891         CILK_SPAWN_STMT case.
11893 2013-12-11  Bernd Schmidt  <bernds@codesourcery.com>
11895         * c-common.c (c_fully_fold_internal): Handle ADDR_SPACE_CONVERT_EXPR.
11897         * c-common.h (enum c_tree_index): Remove CTI_INT_ARRAY_TYPE.
11898         (int_array_type_node): Remove.
11899         * c-common.c (c_common_nodes_and_builtins): Don't build it.
11901 2013-12-05  Marek Polacek  <polacek@redhat.com>
11903         PR c/52023
11904         * c-common.c (c_sizeof_or_alignof_type): Move a declaration into
11905         [ADJUST_FIELD_ALIGN].
11907 2013-12-04  Joseph Myers  <joseph@codesourcery.com>
11909         PR c/52023
11910         * c-common.c (c_sizeof_or_alignof_type): Add parameter min_alignof
11911         and check field alignment if set.
11912         * c-common.h (c_sizeof_or_alignof_type): Update prototype.
11913         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
11915 2013-12-04  Jakub Jelinek  <jakub@redhat.com>
11916             Marek Polacek  <polacek@redhat.com>
11918         * c-gimplify.c (c_gimplify_expr): If doing the integer-overflow
11919         sanitization, call unsigned_type_for only when !TYPE_OVERFLOW_WRAPS.
11921 2013-11-29   H.J. Lu  <hongjiu.lu@intel.com>
11923         PR c/59309
11924         * cilk.c (gimplify_cilk_spawn): Properly handle function without
11925         arguments.
11927 2013-11-29  Jakub Jelinek  <jakub@redhat.com>
11929         PR c/59280
11930         * c-common.c (get_priority): If TREE_VALUE (args) is IDENTIFIER_NODE,
11931         goto invalid.  If it is error_mark_node, don't issue further
11932         diagnostics.
11934 2013-11-28  Sergey Ostanevich  <sergos.gnu@gmail.com>
11936         * c.opt (Wopenmp-simd): New.
11938 2013-11-22  Jakub Jelinek  <jakub@redhat.com>
11940         * c-ubsan.h (ubsan_instrument_return): New prototype.
11941         * c-ubsan.c (ubsan_instrument_return): New function.
11943 2013-11-22  Andrew MacLeod  <amacleod@redhat.com>
11945         * c-common.c: Add required include files from gimple.h.
11946         * c-gimplify.c: Likewise.
11947         * cilk.c: Likewise.
11949 2013-11-22  David Malcolm  <dmalcolm@redhat.com>
11951         * c-common.c (unsafe_conversion_p): Remove use of
11952         EXPR_LOC_OR_HERE macro.
11953         (conversion_warning): Likewise.
11954         (warnings_for_convert_and_check): Likewise.
11955         (warn_for_collisions_1): Likewise.
11956         (shorten_compare): Likewise, and remove use of in_system_header
11957         macro, using the location from the former.
11958         * c-lex.c (dump_one_header): Remove use of input_filename macro.
11959         (cb_def_pragma): Remove use of in_system_header macro.
11960         (lex_string): Likewise.
11961         * c-pragma.c (handle_pragma_float_const_decimal64): Likewise.
11963 2013-11-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11964             Mike Stump  <mikestump@comcast.net>
11965             Richard Sandiford  <rdsandiford@googlemail.com>
11967         * c-ada-spec.c (is_simple_enum): Use tree_to_shwi and tree_to_uhwi
11968         instead of TREE_INT_CST_LOW, in cases where there is a protecting
11969         tree_fits_shwi_p or tree_fits_uhwi_p.
11970         (dump_generic_ada_node): Likewise.
11971         * c-format.c (check_format_arg): Likewise.
11972         * c-pretty-print.c (pp_c_integer_constant): Likewise.
11974 2013-11-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11976         * c-common.c (check_function_arguments_recurse): Use tree_to_uhwi.
11978 2013-11-19  Joshua J Cogliati  <jrincayc@yahoo.com>
11980         PR c/53001
11981         * c-common.c (unsafe_conversion_p): Make this function
11982         return an enumeration with more detail.
11983         (conversion_warning): Use the new return type of
11984         unsafe_conversion_p to separately warn either about conversions
11985         that lower floating point number precision or about the other
11986         kinds of conversions.
11987         * c-common.h (enum conversion_safety): New enumeration.
11988         (unsafe_conversion_p): switching return type to
11989         conversion_safety enumeration.
11990         * c.opt: Adding new warning -Wfloat-conversion and
11991         enabling it with -Wconversion.
11993 2013-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
11995         * c-opts.c: Include plugin.h.
11996         (cb_file_change): Invoke plugin event PLUGIN_INCLUDE_FILE.
11998 2013-11-19  Marek Polacek  <polacek@redhat.com>
12000         * c-ubsan.c (ubsan_instrument_division): Adjust ubsan_create_data
12001         call.
12002         (ubsan_instrument_shift): Likewise.
12003         (ubsan_instrument_vla): Likewise.
12005 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
12007         * c-common.c (convert_vector_to_pointer_for_subscript): Remove
12008         cast to unsigned type.
12010 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
12012         * c-common.c (fold_offsetof_1): Use tree_to_uhwi rather than
12013         tree_low_cst.
12014         (complete_array_type): Update comment to refer to tree_to_[su]hwi
12015         rather than tree_low_cst.
12017 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
12019         * c-common.c, c-cppbuiltin.c: Replace tree_low_cst (..., 1) with
12020         tree_to_uhwi throughout.
12022 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
12024         * c-common.c, c-format.c, c-omp.c, c-pretty-print.c: Replace
12025         tree_low_cst (..., 0) with tree_to_shwi throughout.
12027 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
12029         * c-ada-spec.c, c-common.c, c-pretty-print.c: Replace
12030         host_integerp (..., 1) with tree_fits_uhwi_p throughout.
12032 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
12034         * c-ada-spec.c, c-common.c, c-format.c, c-pretty-print.c: Replace
12035         host_integerp (..., 0) with tree_fits_shwi_p throughout.
12037 2013-11-15  Aldy Hernandez  <aldyh@redhat.com>
12039         * c-cilkplus.c: New file.
12040         * c-common.c (readonly_error): Add location argument.
12041         * c-common.h (readonly_error): Same.
12042         (c_finish_cilk_clauses): Protoize.
12043         (c_check_cilk_loop): Same.
12044         c-omp.c (c_finish_omp_for): Handle CILK_SIMD nodes.
12045         Do not fail on error_mark_node.
12046         Abstract increment canonicalization to here...
12047         (c_omp_for_incr_canonicalize_ptr): New.
12048         c-pragma.c (init_pragma): Register "simd" pragma.
12049         c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_SIMD.
12050         (enum pragma_cilk_clause): New.
12052 2013-11-15  Richard Sandiford  <rdsandiford@googlemail.com>
12054         * c-pretty-print.c (pp_c_character_constant): Remove unnecessary
12055         wchar_type and host_integerp checks.
12057 2013-11-14  Andrew MacLeod  <amacleod@redhat.com>
12059         * c-common.c: Likewise.
12060         * c-gimplify.c: Likewise.
12061         * cilk.c: Likewise.
12063 2013-11-14  Diego Novillo  <dnovillo@google.com>
12065         * c-common.c: Include fold-const.h.
12066         Include stor-layout.h.
12067         Include calls.h.
12068         Include stringpool.h.
12069         Include attribs.h.
12070         Include varasm.h.
12071         Include trans-mem.h.
12072         * c-cppbuiltin.c: Include stor-layout.h.
12073         Include stringpool.h.
12074         * c-format.c: Include stringpool.h.
12075         * c-lex.c: Include stringpool.h.
12076         Include stor-layout.h.
12077         * c-pragma.c: Include stringpool.h.
12078         Include attribs.h.
12079         Include varasm.h.
12080         Include gcc-symtab.h.
12081         * c-pretty-print.c: Include stor-layout.h.
12082         Include attribs.h.
12083         * cilk.c: Include stringpool.h.
12084         Include calls.h.
12086 2013-11-13  Joseph Myers  <joseph@codesourcery.com>
12088         * c-common.h (enum rid): Add RID_AUTO_TYPE.
12089         * c-common.c (c_common_reswords): Add __auto_type.
12090         (keyword_begins_type_specifier): Handle RID_AUTO_TYPE.
12092 2013-11-12  Andrew MacLeod  <amacleod@redhat.com>
12094         * c-common.c: Include gimplify.h.
12095         * c-gimplify.c: Likewise.
12096         * cilk.c: Likewise.
12097         * c-omp.c: Include gimple-expr.h instead of gimple.h.
12098         * c-ubsan.c: Don't include gimple.h.
12100 2013-11-12  Joseph Myers  <joseph@codesourcery.com>
12102         * c-common.c (c_common_reswords): Add _Thread_local.
12104 2013-11-09  Joseph Myers  <joseph@codesourcery.com>
12106         * c-common.c (atomic_size_supported_p): New function.
12107         (resolve_overloaded_atomic_exchange)
12108         (resolve_overloaded_atomic_compare_exchange)
12109         (resolve_overloaded_atomic_load, resolve_overloaded_atomic_store):
12110         Use it instead of comparing size with a local list of sizes.
12112 2013-11-07  Andrew MacLeod  <amacleod@redhat.com>
12113             Joseph Myers  <joseph@codesourcery.com>
12115         * c-common.h (enum rid): Add RID_ATOMIC.
12116         * c-common.c (c_common_reswords): Add _Atomic.
12117         (sync_resolve_params): Use TYPE_MAIN_VARIANT on pointer argument.
12118         (keyword_is_type_qualifier): Accept RID_ATOMIC.
12119         * c-format.c (check_format_types): Check for extra _Atomic
12120         qualifiers in format argument.
12121         * c-pretty-print.c (pp_c_cv_qualifiers): Handle atomic qualifier.
12122         (pp_c_type_qualifier_list): Mention _Atomic in comment.
12124 2013-11-06  Tobias Burnus  <burnus@net-b.de>
12126         * c-common.c (reason_option_codes_t): Add CPP_W_DATE_TIME.
12128 2013-11-06  Joseph Myers  <joseph@codesourcery.com>
12130         * c-opts.c (c_common_post_options): Set -ffp-contract=off in C
12131         standards modes.
12132         * c-cppbuiltin.c (cpp_iec_559_value): Consider -ffp-contract=fast
12133         to mean lack of IEEE 754 support.
12135 2013-11-05  Tobias Burnus  <burnus@net-b.de>
12137         * c.opt (-Wdate-time): New option
12138         * c-opts.c (sanitize_cpp_opts): Pass on to libcpp.
12140 2013-11-05  Joseph Myers  <joseph@codesourcery.com>
12142         * c-cppbuiltin.c (cpp_iec_559_value): Test
12143         flag_excess_precision_cmdline not flag_excess_precision.
12145 2013-11-05  Tobias Burnus  <burnus@net-b.de>
12147         * c.opt (fopenmp-simd): New option.
12148         * c-pragma.c (omp_pragmas): Move pragmas which can contain simd to ...
12149         (omp_pragmas): ... this new struct.
12150         (c_pp_lookup_pragma): Also walk omp_pragmas.
12151         (init_pragma): Init pragmas for -fopenmp-simd.
12153 2013-11-04  Marek Polacek  <polacek@redhat.com>
12155         PR c++/58979
12156         * c-common.c (invalid_indirection_error): Handle RO_ARROW_STAR case.
12158 2013-11-04  Joseph Myers  <joseph@codesourcery.com>
12160         * c-cppbuiltin.c (cpp_iec_559_value, cpp_iec_559_complex_value):
12161         New functions.
12162         (c_cpp_builtins): Define __GCC_IEC_559 and __GCC_IEC_559_COMPLEX.
12164 2013-11-04  Eric Botcazou  <ebotcazou@adacore.com>
12166         * c-ada-spec.h (cpp_operation): Add IS_TRIVIAL.
12167         (dump_ada_specs): Adjust prototype of second callback.
12168         * c-ada-spec.c (cpp_check): New global variable.
12169         (dump_ada_nodes): Remove cpp_check parameter and do not pass it down.
12170         (print_generic_ada_decl): Likewise.
12171         (has_static_fields): Change return type to bool and add guard.
12172         (has_nontrivial_methods): New predicate.
12173         (is_tagged_type): Change return type to bool.
12174         (separate_class_package): Call has_nontrivial_methods.
12175         (pp_ada_tree_identifier): Minor tweaks.
12176         (dump_ada_function_declaration): Adjust calls to dump_generic_ada_node.
12177         (dump_ada_array_domains): Likewise.
12178         (dump_ada_array_type): Likewise.
12179         (dump_template_types): Remove cpp_check parameter and do not pass it to
12180         dump_generic_ada_node.
12181         (dump_ada_template): Likewise.
12182         (dump_generic_ada_node): Remove cpp_check parameter and do not pass it
12183         recursively.
12184         (print_ada_methods): Change return type to integer.  Remove cpp_check
12185         parameter and do not pass it down.
12186         (dump_nested_types): Remove cpp_check parameter and do not pass it to
12187         dump_generic_ada_node.
12188         (print_ada_declaration): Likewise.  Test RECORD_OR_UNION_TYPE_P before
12189         accessing methods.
12190         (print_ada_struct_decl): Remove cpp_check parameter and do not pass it
12191         down.  Use has_nontrivial_methods to recognize C++ classes.  Use return
12192         value of print_ada_methods.
12193         (dump_ads): Rename cpp_check parameter to check and adjust prototype.
12194         Set cpp_check to it before invoking dump_ada_nodes.
12195         (dump_ada_specs): Likewise.
12197 2013-11-03  Marek Polacek  <polacek@redhat.com>
12199         * c-ubsan.c: Don't include hash-table.h.
12200         (ubsan_instrument_vla): New function.
12201         * c-ubsan.h: Declare it.
12203 2013-10-31  David Malcolm  <dmalcolm@redhat.com>
12205         Automated part of renaming of symtab_node_base to symtab_node.
12207         Patch autogenerated by rename_symtab.py from
12208         https://github.com/davidmalcolm/gcc-refactoring-scripts
12209         revision 58bb219cc090b2f4516a9297d868c245495ee622
12211         * c-pragma.c (maybe_apply_pending_pragma_weaks): Rename
12212         symtab_node_base to symtab_node.
12214 2013-10-31  Edward Smith-Rowland  <3dw4rd@verizon.net>
12216         Implement C++14 digit separators.
12217         * c-lex.c (interpret_float): Remove digit separators from scratch string
12218         before building real literal.
12220 2013-10-30  Jakub Jelinek  <jakub@redhat.com>
12222         * cilk.c (create_cilk_helper_decl): Use HOST_WIDE_INT_PRINT_DEC.
12224 2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
12226         * c-common.c (c_common_reswords[]): Added _Cilk_spawn and _Cilk_sync
12227         fields.
12228         (c_define_builtins): Called cilk_init_builtins if Cilk Plus is
12229         enabled.
12230         * c-common.h (enum rid): Added RID_CILK_SPAWN and RID_CILK_SYNC.
12231         (insert_cilk_frame): New prototype.
12232         (cilk_init_builtins): Likewise.
12233         (gimplify_cilk_spawn): Likewise.
12234         (c_cilk_install_body_w_frame_cleanup): Likewise.
12235         (cilk_detect_spawn_and_unwrap): Likewise.
12236         (cilk_set_spawn_marker): Likewise.
12237         (build_cilk_sync): Likewise.
12238         (build_cilk_spawn): Likewise.
12239         * cilk.c: New file.
12241 2013-10-29  David Malcolm  <dmalcolm@redhat.com>
12243         Patch autogenerated by refactor_symtab.py from
12244         https://github.com/davidmalcolm/gcc-refactoring-scripts
12245         revision 58bb219cc090b2f4516a9297d868c245495ee622
12247         * c-gimplify.c (c_genericize): Update for conversion of symtab types
12248         to a true class hierarchy.
12249         * c-pragma.c (maybe_apply_pending_pragma_weaks): Likewise.
12251 2013-10-27  Richard Sandiford  <rdsandiford@googlemail.com>
12253         * c-lex.c (interpret_integer): Remove call to cpp_num_sign_extend.
12255 2013-10-26  Jeff Law  <law@redhat.com>
12257         * c-common.c (c_define_builtins): Remove mudflap support.
12258         * c.opt: Ignore and warn for mudflap options.
12260 2013-10-24  Tobias Burnus  <burnus@net-b.de>
12262         PR other/33426
12263         * c-pragma.c (init_pragma) Add #pragma ivdep handling.
12264         * c-pragma.h (pragma_kind): Add PRAGMA_IVDEP.
12266 2013-10-23  Jason Merrill  <jason@redhat.com>
12268         * c-format.c (gcc_cxxdiag_char_table): Add %X.
12270 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
12272         * c-common.h (omp_clause_mask::operator !=): New method.
12273         * c-omp.c (c_omp_split_clauses): Use if ((mask & something) != 0)
12274         instead of if (mask & something) tests everywhere.
12276         * c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP to
12277         201307 instead of 201107.
12278         * c-common.c (DEF_FUNCTION_TYPE_8): Define.
12279         (c_common_attribute_table): Add "omp declare target" and
12280         "omp declare simd" attributes.
12281         (handle_omp_declare_target_attribute,
12282         handle_omp_declare_simd_attribute): New functions.
12283         * c-omp.c: Include c-pragma.h.
12284         (c_finish_omp_taskgroup): New function.
12285         (c_finish_omp_atomic): Add swapped argument, if true,
12286         build the operation first with rhs, lhs arguments and use NOP_EXPR
12287         build_modify_expr.
12288         (c_finish_omp_for): Add code argument, pass it down to make_code.
12289         (c_omp_split_clauses): New function.
12290         (c_split_parallel_clauses): Removed.
12291         (c_omp_declare_simd_clause_cmp, c_omp_declare_simd_clauses_to_numbers,
12292         c_omp_declare_simd_clauses_to_decls): New functions.
12293         * c-common.h (omp_clause_mask): New type.
12294         (OMP_CLAUSE_MASK_1): Define.
12295         (omp_clause_mask::omp_clause_mask, omp_clause_mask::operator &=,
12296         omp_clause_mask::operator |=, omp_clause_mask::operator ~,
12297         omp_clause_mask::operator |, omp_clause_mask::operator &,
12298         omp_clause_mask::operator <<, omp_clause_mask::operator >>,
12299         omp_clause_mask::operator ==): New methods.
12300         (enum c_omp_clause_split): New.
12301         (c_finish_omp_taskgroup): New prototype.
12302         (c_finish_omp_atomic): Add swapped argument.
12303         (c_finish_omp_for): Add code argument.
12304         (c_omp_split_clauses): New prototype.
12305         (c_split_parallel_clauses): Removed.
12306         (c_omp_declare_simd_clauses_to_numbers,
12307         c_omp_declare_simd_clauses_to_decls): New prototypes.
12308         * c-pragma.c (omp_pragmas): Add new OpenMP 4.0 constructs.
12309         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_CANCEL,
12310         PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
12311         PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_SIMD,
12312         PRAGMA_OMP_TARGET, PRAGMA_OMP_TASKGROUP and PRAGMA_OMP_TEAMS.
12313         Remove PRAGMA_OMP_PARALLEL_FOR and PRAGMA_OMP_PARALLEL_SECTIONS.
12314         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALIGNED,
12315         PRAGMA_OMP_CLAUSE_DEPEND, PRAGMA_OMP_CLAUSE_DEVICE,
12316         PRAGMA_OMP_CLAUSE_DIST_SCHEDULE, PRAGMA_OMP_CLAUSE_FOR,
12317         PRAGMA_OMP_CLAUSE_FROM, PRAGMA_OMP_CLAUSE_INBRANCH,
12318         PRAGMA_OMP_CLAUSE_LINEAR, PRAGMA_OMP_CLAUSE_MAP,
12319         PRAGMA_OMP_CLAUSE_NOTINBRANCH, PRAGMA_OMP_CLAUSE_NUM_TEAMS,
12320         PRAGMA_OMP_CLAUSE_PARALLEL, PRAGMA_OMP_CLAUSE_PROC_BIND,
12321         PRAGMA_OMP_CLAUSE_SAFELEN, PRAGMA_OMP_CLAUSE_SECTIONS,
12322         PRAGMA_OMP_CLAUSE_SIMDLEN, PRAGMA_OMP_CLAUSE_TASKGROUP,
12323         PRAGMA_OMP_CLAUSE_THREAD_LIMIT, PRAGMA_OMP_CLAUSE_TO and
12324         PRAGMA_OMP_CLAUSE_UNIFORM.
12326 2013-10-09  Marc Glisse  <marc.glisse@inria.fr>
12328         PR tree-optimization/20318
12329         * c-common.c (handle_returns_nonnull_attribute): New function.
12330         (c_common_attribute_table): Add returns_nonnull.
12332 2013-10-03  Marc Glisse  <marc.glisse@inria.fr>
12334         PR c++/19476
12335         * c.opt (fcheck-new): Move to common.opt.
12337 2013-09-25  Marek Polacek  <polacek@redhat.com>
12338             Jakub Jelinek  <jakub@redhat.com>
12340         PR sanitizer/58413
12341         * c-ubsan.c (ubsan_instrument_shift): Don't instrument
12342         an expression if we can prove it is correct.
12343         (ubsan_instrument_division): Likewise.  Remove unnecessary
12344         check.
12346 2013-09-18  Marek Polacek  <polacek@redhat.com>
12348         PR sanitizer/58411
12349         * c-common.c (handle_no_sanitize_undefined_attribute): New function.
12350         Declare it.
12351         (struct attribute_spec c_common_att): Add no_sanitize_undefined.
12353 2013-09-14  Iain Sandoe  <iain@codesourcery.com>
12355         PR target/48094
12356         * c.opt (fgnu-runtime, fnext-runtime, fobjc-abi-version,
12357         fobjc-gc, freplace-objc-classes): Accept for LTO.
12359 2013-09-13  Jacek Caban  <jacek@codeweavers.com>
12361         * c-target.def: New hook
12363 2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
12365         PR c++/43452
12366         * c.opt (Wdelete-incomplete): Add.
12368 2013-09-08  Joern Rennecke  <joern.rennecke@embecosm.com>
12370         * c-common.c (same_scalar_type_ignoring_signedness): Delete.
12371         (vector_types_compatible_elements_p): New function.
12372         * c-common.h: (same_scalar_type_ignoring_signedness): Delete
12373         declaration.
12374         (vector_types_compatible_elements_p): Declare.
12376 2013-09-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12378         * c-pretty-print.h (c_pretty_printer::simple_type_specifier): Now
12379         a virtual member function.
12380         (pp_simple_type_specifier): Remove.
12381         (pp_c_type_specifier): Likewise.
12382         * c-pretty-print.c (c_pretty_printer::simple_type_specifier):
12383         Rename from pp_c_type_specifier.  Adjust.
12384         (c_pretty_printer::c_pretty_printer): Do not assign to
12385         simple_type_specifier.
12387 2013-09-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12389         * c-pretty-print.h (c_pretty_printer::type_id): Now a virtual
12390         member function.
12391         (c_pretty_printer::storage_class_specifier): Likewise.
12392         (c_pretty_printer::initializer): Likewise.
12393         (pp_declaration): Remove.
12394         (pp_declaration_specifiers): Likewise.
12395         (pp_abstract_declarator): Likewise.
12396         (pp_declarator): Likewise.
12397         (pp_type_id): Likewise.
12398         (pp_statement): Likewise.
12399         (pp_constant): Likewise.
12400         (pp_id_expression): Likewise.
12401         (pp_primary_expression): Likewise.
12402         (pp_unary_expression): Likewise.
12403         (pp_multiplicative_expression): Likewise.
12404         (pp_conditional_expression): Likewise.
12405         (pp_assignment_expression): Likewise.
12406         (pp_expression): Likewise.
12407         (pp_c_type_id): Likewise.
12408         (pp_c_storage_class_specifier): Likewise.
12409         * c-pretty-print.c (pp_c_type_cast): Tidy.
12410         (pp_c_pointer): Likewise.
12411         (pp_c_type_specifier): Likewise.
12412         (pp_c_parameter_type_list): Likewise.
12413         (pp_c_function_definition): Likewise.
12414         (pp_c_init_declarator): Likewise.
12415         (pp_c_initializer_list): Likewise.
12416         (pp_c_constructor_elts): Likewise.
12417         (c_pretty_printer::direct_abstract_declarator): Likewise.
12418         (c_pretty_printer::declaration_specifiers): Likewise.
12419         (c_pretty_printer::primary_expression): Likewise.
12420         (c_pretty_printer::postfix_expression): Likewise.
12421         (c_pretty_printer::type_id): Rename from pp_c_type_id.
12422         (c_pretty_printer::storage_class_specifier): Rename from
12423         pp_c_storage_class_specifier.
12424         (c_pretty_printer::initializer): Rename from pp_c_initializer.
12425         (c_pretty_printer::c_pretty_printer): Do not assign to type_id,
12426         storage_class_specifier, initializer, offset_list, flags.
12428 2013-08-30  Marek Polacek  <polacek@redhat.com>
12430         * c-ubsan.c: New file.
12431         * c-ubsan.h: New file.
12433 2013-08-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12435         * c-pretty-print.h (c_pretty_printer::declaration): Now a virtual
12436         member function.
12437         (c_pretty_printer::declaration_specifiers): Likewise.
12438         (c_pretty_printer::declarator): Likewise.
12439         (c_pretty_printer::abstract_declarator): Likewise.
12440         (c_pretty_printer::direct_abstract_declarator): Likewise.
12441         (c_pretty_printer::direct_declarator): Likewise.
12442         (c_pretty_printer::function_specifier): Likewise.
12443         (pp_declaration): Adjust.
12444         (pp_declaration_specifiers): Likewise.
12445         (pp_abstract_declarator): Likewise.
12446         (pp_direct_declarator): Likewise.
12447         (pp_function_specifier): Likewise.
12448         (pp_direct_abstract_declarator): Remove as unused.
12449         (pp_c_declaration): Remove.
12450         (pp_c_declaration_specifiers): Likewise.
12451         (pp_c_declarator): Likewise.
12452         (pp_c_direct_declarator): Likewise.
12453         (pp_c_function_specifier): Likewise.
12454         (pp_c_direct_abstract_declarator): Likewise.
12455         * c-pretty-print.c (c_pretty_printer::abstract_declarator): Rename
12456         from pp_c_abstract_declarator.  Adjust.
12457         (c_pretty_printer::direct_abstract_declarator): Rename from
12458         pp_c_direct_abstract_declarator.  Adjust.
12459         (c_pretty_printer::function_specifier): Rename from
12460         pp_c_function_specifier.  Adjust.
12461         (c_pretty_printer::declaration_specifiers): Rename from
12462         pp_c_declaration_specifiers.  Adjust.
12463         (c_pretty_printer::direct_declarator): Rename from
12464         pp_c_direct_declarator.  Adjust.
12465         (c_pretty_printer::declarator): Rename from pp_c_declarator.  Adjust.
12466         (c_pretty_printer::declaration): Rename from pp_c_declaration.  Adjust.
12467         (c_pretty_printer::c_pretty_printer): Do not assign to
12468         declaration, declaration_specifiers, declarator,
12469         direct_declarator, direct_abstract_declarator, function_specifier.
12471 2013-08-26  Gabriel Dos Reis  <gdre@integrable-solutions.net>
12473         * c-pretty-print.h (c_pretty_printer::unary_expression): Now a
12474         virtual member function.
12475         (c_pretty_printer::multiplicative_expression): Likewise.
12476         (c_pretty_printer::conditional_expression): Likewise.
12477         (c_pretty_printer::assignment_expression): Likewise.
12478         (c_pretty_printer::expression): Likewise.
12479         (pp_unary_expression): Adjust.
12480         (pp_multiplicative_expression): Likewise.
12481         (pp_assignment_expression): Likewise.
12482         (pp_conditional_expression): Likewise.
12483         (pp_expression): Likewise.
12484         * c-pretty-print.c (c_pretty_printer::unary_expression): Rename
12485         from pp_c_unary_expression.  Adjust.
12486         (c_pretty_printer::multiplicative_expression): Rename from
12487         pp_c_multiplicative_expression.  Adjust.
12488         (c_pretty_printer::conditional_expression): Rename from
12489         pp_c_conditional_expression.  Adjust.
12490         (c_pretty_printer::assignment_expression): Rename from
12491         pp_c_assignment_expression.  Adjust.
12492         (c_pretty_printer::expression): Rename from pp_c_expression.  Adjust.
12493         (c_pretty_printer::c_pretty_printer): Do not assign to
12494         unary_expression, multiplicative_expression,
12495         conditional_expression, expression.
12497 2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12499         * c-pretty-print.h (c_pretty_printer::postfix_expression): Now a
12500         virtual member function.
12501         (pp_postfix_expression): Adjust.
12502         (pp_c_postfix_expression): Remove.
12503         * c-pretty-print.c (c_pretty_printer::postfix_expression): Rename
12504         from pp_c_postfix_expression.  Adjust.
12505         (c_pretty_printer::c_pretty_printer): Do not assign to
12506         postfix_expression.
12508 2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12510         * c-pretty-print.h (c_pretty_printer::primary_expression): Now a
12511         virtua member function.
12512         (pp_primary_expression): Adjust.
12513         (pp_c_primary_expression): Remove.
12514         * c-pretty-print.c (c_pretty_printer::primary_expression): Rename
12515         from pp_c_primary_expression.  Adjust.
12516         (pp_c_initializer_list): Use pp_primary_expression.
12517         (c_pretty_printer::c_pretty_printer): Do not assign to
12518         primary_expression.
12520 2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12522         * c-pretty-print.h (c_pretty_printer::translate_string): Declare.
12523         * c-pretty-print.c (M_): Remove.
12524         (c_pretty_printer::translate_string): Define.
12525         (pp_c_type_specifier): Use it.
12526         (pp_c_primary_expression): Likewise.
12527         (pp_c_expression): Likewise.
12529 2013-08-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12531         * c-pretty-print.h (c_pretty_printer::id_expression): Now a
12532         virtual function.
12533         (pp_c_id_expression): Remove.
12534         (pp_id_expression): Adjust.
12535         * c-pretty-print.c (c_pretty_printer::id_expression): Rename from
12536         pp_c_id_expression.  Adjust.
12537         (pp_c_postfix_expression): Use pp_id_expression.
12538         (c_pretty_printer::c_pretty_printer): Do not assign to id_expression.
12540 2013-08-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12542         * c-pretty-print.h (c_pretty_printer::constant): Now a virtual
12543         member function.
12544         (pp_constant): Adjust.
12545         (pp_c_constant): Remove.
12546         * c-pretty-print.c (c_pretty_printer::constant): Rename from
12547         pp_c_constant.  Adjust.
12548         (pp_c_constant)
12549         (pp_c_primary_expression): Call pp_constant in lieu of pp_c_constant.
12550         (c_pretty_printer::c_pretty_printer): Remove assignment to constant.
12552 2013-08-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12554         * c-pretty-print.h (pp_c_pretty_printer_init): Remove.
12555         (c_pretty_printer::c_pretty_printer): Declare.
12556         * c-pretty-print.c (pretty_printer::c_pretty_printer): Rename from
12557         c_pretty_printer_init.  Adjust.
12558         (print_c_tree): Do not call c_pretty_printer_init.
12559         * c-ada-spec.c (dump_ads): Remove call to pp_construct.
12561 2013-08-09  Arnaud Charlet  <charlet@adacore.com>
12563         * c-ada-spec.c (print_ada_declaration): Prevent accessing null asm name
12565 2013-08-05  Paolo Carlini  <paolo.carlini@oracle.com>
12567         PR c++/58080
12568         * c-common.c (pointer_int_sum): Add bool parameter.
12569         * c-common.h (pointer_int_sum): Adjust declaration.
12571 2013-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12573         * c-pretty-print.c (print_c_tree): Simplify.  Use non-static local
12574         c_pretty_printer variable.
12576 2013-08-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12578         * c-pretty-print.h (c_pretty_printer): Derive from pretty_printer.
12579         (pp_base): Remove.
12580         (pp_c_base): Likewise.  Adjust users.
12581         * c-pretty-print.c (pp_c_maybe_whitespace): Adjust.
12582         (pp_c_whitespace): Do not call pp_base.
12583         (pp_c_left_paren): Likewise.
12584         (pp_c_right_paren): Likewise.
12585         (pp_c_left_brace): Likewise.
12586         (pp_c_right_brace): Likewise.
12587         (pp_c_left_bracket): Likewise.
12588         (pp_c_right_bracket): Likewise.
12589         (pp_c_dot): Likewise.
12590         (pp_c_ampersand): Likewise.
12591         (pp_c_star): Likewise.
12592         (pp_c_arrow): Likewise.
12593         (pp_c_semicolon): Likewise.
12594         (pp_c_complement): Likewise.
12595         (pp_c_exclamation): Likewise.
12596         (pp_c_direct_declarator): Likewise.
12597         (pp_c_ws_string): Likewise.
12598         (pp_c_identifier): Likewise.
12599         (pp_c_statement): Likewise.
12600         (print_c_tree): Likewise.
12602 2013-08-04  Ed Smith-Rowland  <3dw4rd@verizon.net>
12604         PR c++/58072
12605         * c-common.c (c_parse_error): Catch user-defined literal tokens and
12606         provide useful error strings.
12608 2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12610         * c-ada-spec.c (pp_ada_tree_identifier): Use specialized pretty
12611         printer functions instead of pp_string or operators and punctuators.
12612         (dump_generic_ada_node): Likewise.
12613         * c-pretty-print.c (pp_c_type_specifier): Likewise.
12614         (pp_c_relational_expression): Likewise.
12615         (pp_c_logical_or_expression): Likewise.
12617 2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12619         * c-ada-spec.c (print_ada_macros): Use specialized pretty printer
12620         functions instead of pp_character.
12621         (pp_ada_tree_identifier): Likewise.
12622         (dump_ada_double_name): Likewise.
12623         (dump_ada_function_declaration): Likewise.
12624         (dump_ada_array_domains): Likewise.
12625         (dump_template_types): Likewise.
12626         (dump_generic_ada_node): Likewise.
12627         (print_ada_declaration): Likewise.
12628         (print_ada_struct_decl): Likewise.
12629         * c-pretty-print.c (pp_c_integer_constant): Likewise.
12631 2013-07-23  Tom Tromey  <tromey@redhat.com>
12633         * c-common.h (enum rid) <RID_GENERIC>: New constant.
12634         * c-common.c (c_common_reswords): Add _Generic.
12636 2013-07-21   Ondřej Bílka  <neleai@seznam.cz>
12638         * c-common.c: Fix typos.
12639         * c-common.h: Likewise.
12641 2013-07-13  Lubos Lunak  <l.lunak@suse.cz>
12643         PR c++/55203
12644         * c-common.c (c_common_attribute_table): Add warn_unused.
12645         (handle_warn_unused_attribute): New.
12647 2013-07-10  Jakub Jelinek  <jakub@redhat.com>
12649         * c-ppoutput.c (scan_translation_unit): Call account_for_newlines
12650         for all CPP_TOKEN_FLD_STR tokens, not just CPP_COMMENT.
12652 2013-07-10  Paolo Carlini  <paolo.carlini@oracle.com>
12654         PR c++/57869
12655         * c.opt: Add Wconditionally-supported.
12657 2013-07-08  Graham Stott  <graham.stott@btinternet.com>
12659         * array-notation-common.c (length_mismatch_in_expr_p): Delete
12660         unused variables l_length and l_node.
12662 2013-07-04  Joern Rennecke  <joern.rennecke@embecosm.com>
12664         PR c/57821
12665         * c-common.c (complete_array_type): Delay folding first index
12666         like other indices.  When folding, check for index overflow.
12668 2013-06-27  Marc Glisse  <marc.glisse@inria.fr>
12670         PR c++/57509
12671         * c-common.h (c_build_vec_perm_expr): New complain argument.
12672         * c-common.c (c_build_vec_perm_expr): Likewise.
12673         Use save_expr also in C++.
12675 2013-06-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12677         * c-common.c (c_common_nodes_and_builtins): Use cxx11 in lieu of cxx0x.
12678         * c-cppbuiltin.c (c_cpp_builtins): Likewise.
12679         * c-opts.c (c_common_post_options): Likewise.
12681 2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>
12683         * array-notation-common.c (length_mismatch_in_expr): Changed the
12684         parameter type's from a dynamic array to a vec_tree.  Also removed
12685         the size parameters.
12686         * c-common.h (length_mismatch_in_expr_p): Fixed prototype's as per
12687         the change above.
12689 2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>
12691         * c-common.h (struct cilkplus_an_parts): New structure.
12692         (struct cilkplus_an_loop_parts): Likewise.
12693         (cilkplus_extract_an_triplets): New prototype.
12694         (fix_sec_implicit_args): Likewise.
12695         * array-notation-common.c (cilkplus_extract_an_triplets): New function.
12696         (fix_sec_implicit_args): Likewise.
12698 2013-06-20  Balaji V. Iyer  <balaji.v.iyer@intel.com>
12700         * array-notation-common.c (find_inv_trees): Removed an unwanted
12701         typecasting.
12702         * c-common.h (struct inv_list::additional_tcodes): Changed type from
12703         enum rid to enum tree_code.
12705 2013-06-11  Jan Hubicka  <jh@suse.cz>
12707         * c-common.c (handle_alias_ifunc_attribute): Do not set
12708         DECL_EXTERNAL for weakref variables.
12709         * c-pragma.c (handle_pragma_weak): Make sure aliases
12710         are not declared as external.
12712 2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
12714         * array-notation-common.c (length_mismatch_in_expr_p): Moved this
12715         function from c/c-array-notation.c.
12716         (is_cilkplus_reduce_builtin): Likewise.
12717         (find_rank): Likewise.
12718         (extract_array_notation_exprs): Likewise.
12719         (replace_array_notations): Likewise.
12720         (find_inv_trees): Likewise.
12721         (replace_inv_trees): Likewise.
12722         (contains_array_notation_expr): Likewise.
12723         (find_correct_array_notation_type): Likewise.
12724         * c-common.h (struct inv_list): Moved this struct from the file
12725         c/c-array-notation.c and added a new field called additional tcodes.
12726         (length_mismatch_in_expr_p): New prototype.
12727         (is_cilkplus_reduce_builtin): Likewise.
12728         (find_rank): Likewise.
12729         (extract_array_notation_exprs): Likewise.
12730         (replace_array_notation): Likewise.
12731         (find_inv_trees): Likewise.
12732         (replace_inv_trees): Likewise.
12733         (find_correct_array_notation_type): Likewise.
12735 2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
12737         * c-common.c (c_define_builtins): When cilkplus is enabled, the
12738         function array_notation_init_builtins is called.
12739         (c_common_init_ts): Added ARRAY_NOTATION_REF as typed.
12740         * c-common.def (ARRAY_NOTATION_REF): New tree.
12741         * c-common.h (build_array_notation_expr): New function declaration.
12742         (build_array_notation_ref): Likewise.
12743         (extract_sec_implicit_index_arg): New extern declaration.
12744         (is_sec_implicit_index_fn): Likewise.
12745         (ARRAY_NOTATION_CHECK): New define.
12746         (ARRAY_NOTATION_ARRAY): Likewise.
12747         (ARRAY_NOTATION_START): Likewise.
12748         (ARRAY_NOTATION_LENGTH): Likewise.
12749         (ARRAY_NOTATION_STRIDE): Likewise.
12750         * c-pretty-print.c (pp_c_postifix_expression): Added a new case for
12751         ARRAY_NOTATION_REF.
12752         (pp_c_expression): Likewise.
12753         * c.opt (flag_enable_cilkplus): New flag.
12754         * array-notation-common.c: New file.
12756 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
12758         PR c++/57274
12759         * c-common.c (verify_tree): Don't recurse into SIZEOF_EXPR.
12761 2013-05-10  Marc Glisse  <marc.glisse@inria.fr>
12763         * c-common.c (vector_types_convertible_p): No TYPE_PRECISION for
12764         vectors.
12766 2013-05-07  Han Shen  <shenhan@google.com>
12768         * c-cppbuiltin.c (c_cpp_builtins): Added "__SSP_STRONG__=3".
12770 2013-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12772         * c-common.c (check_user_alignment): Emit error for negative values.
12774 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
12776         * c-opts.c (set_std_cxx11): Use CLK_CXX1Y and CLK_GNUCXX1Y.
12778 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
12780         * c-cppbuiltin.c (c_cpp_builtins): Do not define
12781         __GXX_EXPERIMENTAL_CXX1Y__.
12783 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
12784             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12786         * c.opt ([Wpointer-arith]): Enabled by -Wpedantic, as documented.
12787         * c-common.c (pointer_int_sum): Change -Wpointer-arith pedwarns
12788         to simply use OPT_Wpointer_arith.
12789         (c_sizeof_or_alignof_type): Likewise.
12791 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
12793         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_EXPERIMENTAL_CXX1Y__.
12795 2013-04-12  Jakub Jelinek  <jakub@redhat.com>
12797         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
12798         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Add %r and %R format
12799         specifiers.
12801 2013-04-07  Steven Bosscher  <steven@gcc.gnu.org>
12803         * c-pragma.c (add_to_renaming_pragma_list): Fix leading comment.
12805 2013-04-03  Paolo Carlini  <paolo.carlini@oracle.com>
12807         * c-common.c (pointer_int_sum): Remove dead code.
12809 2013-03-09  Richard Sandiford  <rdsandiford@googlemail.com>
12811         PR middle-end/56524
12812         * c-common.c (handle_optimize_attribute): Don't call
12813         save_optabs_if_changed.
12815 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
12817         PR middle-end/56461
12818         * c-pch.c (pch_init): Free target_validity at the end.
12820 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
12822         * c-pretty-print.c (pp_c_pretty_printer_init): Clear pp->flags.
12824 2013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
12825             Jakub Jelinek  <jakub@redhat.com>
12827         PR sanitizer/56454
12828         * c-common.c (handle_no_sanitize_address_attribute): New function.
12829         (c_common_attribute_table): Add no_sanitize_address attribute.
12830         (handle_no_address_safety_analysis_attribute): Add
12831         no_sanitize_address attribute, not no_address_safety_analysis
12832         attribute.
12834 2013-02-18  Aldy Hernandez  <aldyh@redhat.com>
12836         PR target/52555
12837         * c-common.c (handle_optimize_attribute): Call
12838         save_optabs_if_changed.
12840 2013-02-18  Jakub Jelinek  <jakub@redhat.com>
12841             Steven Bosscher  <steven@gcc.gnu.org>
12843         PR pch/54117
12844         * c-opts.c (c_common_post_options): If debug info is enabled
12845         and non-dwarf*, refuse to load PCH files and when writing PCH
12846         file warn.
12848 2013-02-05  Jakub Jelinek  <jakub@redhat.com>
12850         PR middle-end/56167
12851         * c-common.c (handle_error_attribute): Fix condition.
12853 2013-01-30  Jakub Jelinek  <jakub@redhat.com>
12855         PR c++/55742
12856         * c-common.c (handle_target_attribute): Revert 2012-12-26 change.
12858 2013-01-18  Jason Merrill  <jason@redhat.com>
12860         PR target/54908
12861         * c.opt (-fextern-tls-init): New.
12862         * c-opts.c (c_common_post_options): Handle it.
12864 2013-01-09  Jakub Jelinek  <jakub@redhat.com>
12866         PR c/48418
12867         * c-common.c (c_fully_fold_internal): Warn for LSHIFT_EXPR and
12868         RSHIFT_EXPR, if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST
12869         and is either negative or bigger or equal to type precision
12870         of the first operand.
12872 2012-12-03  Marek Polacek  <polacek@redhat.com>
12874         PR c/55570
12875         * c-common.c (check_user_alignment): Swap order of tests,
12876         check TREE_CODE first.
12878 2012-11-29  Ed Smith-Rowland  <3dw4rd@verizon.net>
12880         PR c++/52654
12881         * c-common.h (overflow_type): New enum.
12882         (build_userdef_literal): Add overflow_type argument.
12883         (tree_userdef_literal): Add overflow_type.
12884         (USERDEF_LITERAL_OVERFLOW): New access macro.
12885         * c-common.c (build_userdef_literal): Add overflow_type
12886         argument.
12887         * c-lex.c (c_lex_with_flags): Add overflow_type to
12888         build_userdef_literal calls.
12889         (interpret_integer, interpret_float): Add overflow_type argument.
12891 2012-11-28  Richard Biener  <rguenther@suse.de>
12893         PR c/35634
12894         * c-gimplify.c (c_gimplify_expr): Gimplify self-modify expressions
12895         here and use a type with proper overflow behavior for types that would
12896         need to be promoted for the arithmetic.
12898 2012-11-23  Jakub Jelinek  <jakub@redhat.com>
12900         PR sanitizer/55435
12901         * c-common.c (handle_no_address_safety_analysis_attribute): New
12902         function.
12903         (c_common_attribute_table): Add no_address_safety_analysis.
12905 2012-11-16  Simon Baldwin  <simonb@google.com>
12907         * c.opt: Add f[no-]canonical-system-headers.
12908         * c-opts.c (c_common_handle_option): Handle
12909         OPT_fcanonical_system_headers.
12911 2012-11-09  Ed Smith-Rowland  <3dw4rd@verizon.net>
12913         PR c++/54413
12914         * c-opts.c (c_common_handle_option): Set new flags.
12915         * c.opt: Describe new flags.
12917 2012-11-09  Jason Merrill  <jason@redhat.com>
12919         * c.opt (Wabi-tag): New.
12921 2012-11-09  Andi Kleen  <ak@linux.intel.com>
12923         PR 55139
12924         * c-common.c (get_atomic_generic_size): Mask with
12925         MEMMODEL_MASK
12927 2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12929         PR c/53063
12930         * c.opt (Wformat): Make it Alias Wformat=1.
12931         (Wformat-contains-nul,Wformat-extra-args,Wformat-nonliteral,
12932         Wformat-security,Wformat-y2k,Wformat-zero-length): Use
12933         LangEnabledBy.
12934         (Wformat=): RejectNegative. Use LangEnabledBy.
12935         (Wnonnull): Use LangEnabledBy.
12936         * c-opts.c (c_common_handle_option): Do not handle Wformat here.
12937         * c-format.c (set_Wformat): Delete.
12938         (decode_format_attr): Replace OPT_Wformat with OPT_Wformat_.
12939         (maybe_read_dollar_number): Likewise.
12940         (avoid_dollar_number): Likewise.
12941         (finish_dollar_format_checking): Likewise.
12942         (check_format_info): Likewise.
12943         (check_format_info_main): Likewise.
12944         (check_format_types): Likewise.
12945         (format_type_warning): Likewise.
12946         * c-common.c (int): Likewise.
12947         (check_function_sentinel): Likewise.
12948         * c-common.h (warn_format,set_Wformat): Do not declare here.
12950 2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12952         PR c/53063
12953         * c.opt(Warray-bounds,Wdelete-non-virtual-dtor,Wenum-compare,
12954         Wmain,Woverlength-strings, Wunknown-pragmas,Wunused-macros):
12955         Use LangEnabledBy.
12956         (Wswitch,Wswitch-default,Wswitch-enum): Likewise. Move here from
12957         common.opt.
12958         (Wvariadic-macros): Init(1).
12959         * c-opts.c (c_common_handle_option): Do not handle them
12960         explicitly.
12961         (c_common_post_options): Likewise.
12962         (sanitize_cpp_opts): warn_unused_macros is now
12963         cpp_warn_unused_macros.
12964         (push_command_line_include): Likewise.
12965         * c-common.c (warn_unknown_pragmas): Do not define.
12966         * c-common.h (warn_unknown_pragmas): Do not declare.
12968 2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12970         PR c/51294
12971         * c-common.c (conversion_warning): Handle conditional expressions.
12973 2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
12975         PR c++/54930
12976         * c.opt (Wreturn_local_addr): Define new option.
12978 2012-10-25  Jason Merrill  <jason@redhat.com>
12980         * c.opt (Wvirtual-move-assign): New.
12982         * c.opt (Winherited-variadic-ctor): New.
12984 2012-10-25  Marc Glisse  <marc.glisse@inria.fr>
12986         PR c++/54427
12987         * c-common.c (scalar_to_vector): Handle VEC_COND_EXPR.
12989 2012-10-23  Joseph Myers  <joseph@codesourcery.com>
12991         * c-common.h (pch_cpp_save_state): Declare.
12992         * c-target.def (c_preinclude): New hook.
12993         * c-opts.c (done_preinclude): New.
12994         (push_command_line_include): Handle default preincluded header.
12995         (cb_file_change): Call pch_cpp_save_state when calling
12996         push_command_line_include.
12997         * c-pch.c (pch_ready_to_save_cpp_state, pch_cpp_state_saved)
12998         (pch_cpp_save_state): New.
12999         (pch_init): Call pch_cpp_save_state conditionally, instead of
13000         calling cpp_save_state.
13002 2012-10-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13004         PR c/53063
13005         PR c/40989
13006         * c.opt (Waddress,Wchar-subscripts,Wsign-conversion,Wimplicit,
13007         Wimplicit-function-declaration,Wimplicit-int,Wsizeof-pointer-memaccess,
13008         Wnarrowing,Wparentheses,Wpointer-sign,Wreturn-type,Wsequence-point,
13009         Wsign-compare,Wuninitialized,Wmaybe-uninitialized,Wunused,
13010         Wvolatile-register-var): Add LangEnabledBy or EnabledBy.
13011         * c-opts.c (c_common_handle_option): Remove explicit handling from
13012         here.
13013         (c_common_post_options): Likewise.
13015 2012-10-18  Eric Botcazou  <ebotcazou@adacore.com>
13017         * c-ada-spec.c (LOCATION_COL): Delete.
13018         (compare_location): New function.
13019         (compare_node): Use it.
13020         (compare_comment): Likewise.
13022 2012-10-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13024         PR c/53063
13025         PR c/40989
13026         * c.opt (Wstrict-aliasing=,Wstrict-overflow=): Use LangEnabledBy.
13027         * c-opts.c (c_common_handle_option): Do not set them here. Add
13028         comment.
13029         (c_common_post_options): Likewise.
13031 2012-10-16  Eric Botcazou  <ebotcazou@adacore.com>
13033         * c-ada-spec.c (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Define.
13034         (dump_generic_ada_node) <INTEGER_CST>: Deal with sizetype specially.
13035         Remove POINTER_TYPE handling, add large unsigned handling and use
13036         ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX for big numbers.
13038 2012-10-12  Jakub Jelinek  <jakub@redhat.com>
13040         PR c/54381
13041         * c-common.h (sizeof_pointer_memaccess_warning): Adjust prototype.
13042         * c-common.c (sizeof_pointer_memaccess_warning): Take array of 3
13043         locs and array of 3 trees instead of just single loc and single
13044         sizeof_arg tree.  Handle __builtin___*_chk builtins too, and
13045         also stpncpy, bcopy, bcmp, bzero, snprintf and vsnprintf builtins.
13046         For *cmp* builtins that take two sources strings report warnings
13047         about first and second source, not about destination and source.
13049 2012-10-12  Marc Glisse  <marc.glisse@inria.fr>
13051         PR c++/53055
13052         * c-common.h (enum ref_operator) [RO_ARROW_STAR]: New.
13054 2012-10-11  Eric Botcazou  <ebotcazou@adacore.com>
13056         * c-ada-spec.c (dump_ada_template): Bail out for template declarations
13057         declaring something coming from another file.
13059 2012-10-10  Arnaud Charlet  <charlet@adacore.com>
13061         PR ada/54845
13062         * c-ada-spec.c (print_ada_struct_decl): Increase buf size.
13064 2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
13066         PR c++/54194
13067         * c-common.c (warn_about_parentheses): Add location_t parameter;
13068         use EXPR_LOC_OR_LOC.
13069         * c-common.h: Update declaration.
13071 2012-10-09  Marc Glisse  <marc.glisse@inria.fr>
13073         PR c++/54427
13074         * c-common.c (scalar_to_vector): Moved from c-typeck.c. Support
13075         more operations. Make error messages optional.
13076         * c-common.h (enum stv_conv): Moved from c-typeck.c.
13077         (scalar_to_vector): Declare.
13079 2012-10-08  Jason Merrill  <jason@redhat.com>
13081         * c-common.c (c_common_reswords): Add thread_local.
13083 2012-10-08  Dodji Seketeli  <dodji@redhat.com>
13085         PR c++/53528 C++11 attribute support
13086         * c-common.h (bitfield_p, cxx_fundamental_alignment_p): Declare
13087         new functions.
13088         * c-common.c (check_cxx_fundamental_alignment_constraints): New
13089         static function.
13090         (handle_aligned_attribute): In choose strictest alignment
13091         among many.  Use new check_cxx_fundamental_alignment_constraints.
13092         (handle_transparent_union_attribute): In c++11 attribute syntax,
13093         don't look through typedefs.
13095 2012-10-04  Arnaud Charlet  <charlet@adacore.com>
13097         * c-ada-spec.c (print_ada_declaration): Remove handling of TDF_RAW.
13098         * c.opt (-fdump-ada-spec, -fdump-ada-spec-slim): Move switch definition
13099         out of dumpfile.h.
13101 2012-09-25  Dehao Chen  <dehao@google.com>
13103         PR middle-end/54645
13104         * c-pch.c (c_common_read_pch): Rebuild the location_adhoc_data
13105         map when read in the pch.
13107 2012-09-18  Arnaud Charlet  <charlet@adacore.com>
13109         * c-ada-spec.c: Style fixes.
13111 2012-09-18  Thomas Quinot  <quinot@adacore.com>
13113         * c.opt (-fada-spec-parent): Define new command line switch.
13114         * c-ada-spec.c (get_ada_package): When -fada-spec-parent
13115         is specified, generate binding spec as a child of the specified unit.
13117 2012-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
13118             Manuel López-Ibáñez  <manu@gcc.gnu.org>
13120         PR c++/53210
13121         * c.opt ([Winit-self]): Enabled by -Wall in C++.
13123 2012-08-23  Arnaud Charlet  <charlet@adacore.com>
13125         * c-ada-spec.c (dump_generic_ada_node): Fix handling of name_only
13126         for pointers, and add missing Convention C pragma.
13127         (print_ada_struct_decl): Add missing aliased keyword.
13128         (dump_ads): Add pragma Ada_2005 and Style_Checks (Off).
13130 2012-08-17  Jakub Jelinek  <jakub@redhat.com>
13132         * c-common.c (sizeof_pointer_memaccess_warning): New function.
13133         * c.opt (-Wsizeof-pointer-memaccess): Add new option.
13134         * c-opts.c (c_common_handle_option): Enable it for -Wall.
13135         * c-common.h (sizeof_pointer_memaccess_warning): Add prototype.
13136         * c-common.def (SIZEOF_EXPR): Moved here from cp-tree.def.
13138 2012-08-10  Richard Guenther  <rguenther@suse.de>
13140         * c-pretty-print.c (pp_c_expression): Handle anonymous SSA names.
13142 2012-08-07  Steven Bosscher  <steven@gcc.gnu.org>
13144         * c-pretty-print.c (pp_c_function_definition): Use pp_newline_and_flush
13145         instead of separate pp_newline and pp_flush.
13146         (print_c_tree): Likewise.
13148 2012-07-26  Richard Henderson  <rth@redhat.com>
13150         * c-common.c (handle_hot_attribute): Allow labels.
13151         (handle_cold_attribute): Likewise.
13153 2012-07-20  Jakub Jelinek  <jakub@redhat.com>
13155         PR c++/28656
13156         * c-common.c (check_function_nonnull): Handle multiple nonnull
13157         attributes properly.
13159 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
13161         * c-gimplify.c: Include dumpfile.h instead of tree-dump.h.
13162         * c-ada-spec.c: Likewise.
13163         * c-dump.c (dump_stmt): Move to cp/dump.c, the only user.
13165 2012-07-14  Steven Bosscher  <steven@gcc.gnu.org>
13167         * c-pch.c (CHECK_NO_ASM_OUT_DURING_PCH): Do not define.
13168         Remove code conditional on it.
13170 2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>
13172         * c-gimplify.c: Do not include basic-block.h.
13173         * c-common.c: Do not include linfuncs.h.
13175 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
13177         * c-common.h: Include tree.h.
13179 2012-07-02  Jason Merrill  <jason@redhat.com>
13181         PR c++/53524
13182         * c-common.c (get_priority): Call default_conversion.
13184 2012-07-01  Uros Bizjak  <ubizjak@gmail.com>
13186         * c-pch.c (c_common_write_pch): Remove unused variables.
13188 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
13190         * cppspec.c: Moved from gcc/ to here.
13192 2012-06-27  Kai Tietz  <ktietz@redhat.com>
13194         PR preprocessor/37215
13195         * c-ppoutput.c (preprocess_file): Check for nonempty buffer.
13197 2012-06-21  Steven Bosscher  <steven@gcc.gnu.org>
13199         * c-common.h (c_common_print_pch_checksum): Remove.
13200         * c-pch.c: Do not include output.h.
13201         (CHECK_NO_ASM_OUT_DURING_PCH): Define and add FIXME.
13202         (asm_out_file): Define iff CHECK_NO_ASM_OUT_DURING_PCH isdefined.
13203         (asm_file_startpos): Define iff CHECK_NO_ASM_OUT_DURING_PCH is defined.
13204         (struct c_pch_header): Remove.
13205         (get_ident): Update gpch version.
13206         (pch_init): Do not print executable_checksum to asm_out_file.
13207         Do not fail if there is no asm_out_file to read back from.  Set
13208         asm_file_startpos only if CHECK_NO_ASM_OUT_DURING_PCH is defined.
13209         (c_common_write_pch): Verify that nothing was written to asm_out_file
13210         since pch_init was called.  Do not write a c_pch_header, and do not
13211         copy from asm_out_file to the PCH.
13212         (c_common_read_pch): Do not read a c_pch_header, and do not restore
13213         the content of asm_out_file from the PCH.
13214         (c_common_print_pch_checksum): Remove.
13215         * c-opts.c (c_common_init): Print out executable_checksum directly.
13217 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
13219         * c-target.def (objc_declare_unresolved_class_reference,
13220         objc_declare_class_definition): Add new hooks.
13222 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
13224         * c-lex.c: Do not include output.h.
13225         (cb_ident): Try to put out .ident with targetm.asm_out.output_ident.
13226         Remove uses of ASM_OUTPUT_IDENT.
13228 2012-06-15  Marc Glisse  <marc.glisse@inria.fr>
13230         PR c++/51033
13231         * c-common.h (c_build_vec_perm_expr): Move decl here.
13232         * c-common.c (c_build_vec_perm_expr): Move definition
13233         here.
13235 2012-06-06  Steven Bosscher  <steven@gcc.gnu.org>
13237         * c.opt (fconserve-space): Turn into a no-op.
13239 2012-06-04  Sterling Augustine  <saugustine@google.com>
13241         * c-pretty-print.h (pp_c_flag_gnu_v3): New enumerator.
13242         * c-pretty-print.c (pp_c_specifier_qualifier_list): Check it at
13243         both the start and end of the function.
13245 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
13247         * c-common.c: Do not include output.h.
13248         * c-pragma.c: Likewise.
13250 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
13252         * error.c (dump_decl): Check pp_c_flag_gnu_v3.
13253         (decl_as_dwarf_string, lang_decl_dwarf_name): New functions.
13254         (lang_decl_name): Handle namespace decls.
13256 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
13258         * c-ada-spec.c: Do not include output.h.
13259         * c-semantics.c: Likewise.
13261 2012-05-29  Joseph Myers  <joseph@codesourcery.com>
13263         * c-common.c: Fix typo.
13265 2012-05-29  Michael Matz  <matz@suse.de>
13267         * c-common.h (c_expand_decl): Remove prototype.
13269 2012-05-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13271         * c.opt (Wmissing-braces): Use LangEnabledBy(C ObjC,Wall).
13272         * c-opts.c (c_common_handle_option): Remove code handling
13273         warn_missing_braces.
13275 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
13277         PR c++/25137
13278         * c-opts.c (c_common_handle_option): For C++ -Wall doesn't enable
13279         -Wmissing_braces.
13281 2012-05-22  Dodji Seketeli  <dodji@redhat.com>
13283         PR c++/53322
13284         * c.opt (Wunused-local-typedefs): Use EnabledBy(Wunused).
13286 2012-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13288         * c.opt (--pedantic-errors,-pedantic-errors): Do not handle here.
13289         * c-opts.c (c_common_handle_option): Do not handle explicitly
13290         Wreturn-type, Wwrite-strings, warn_ecpp, and -pedantic-errors.
13292 2012-05-16  Dodji Seketeli  <dodji@redhat.com>
13294         PR preprocessor/7263
13295         * c-lex.c (c_lex_with_flags): Pass a virtual location to the call
13296         to cpp_classify_number.  For diagnostics, use the precise location
13297         instead of the global input_location.
13299 2012-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
13301         PR c++/11856
13302         * c-common.c (shorten_compare): Check c_inhibit_evaluation_warnings.
13304 2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>
13306         * c-common.c (DEF_ATTR_STRING): Define and undefine as necessary.
13308 2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13310         PR 53063
13311         * c.opt (Wc++0X-compat,Wdelete-non-virtual-dtor,Wjump-misses-init,
13312         Wreorder): Use LangEnabledBy.
13313         * c-opts.c (c_common_handle_option): Do not enable them
13314         explicitly. Call lang-specific generated functions.
13315         (c_common_post_options): Do not set them here.
13317 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13319         * c.opt (Wclobbered,Wempty-body,Wignored-qualifiers,
13320         Wmissing-field-initializers,Wmissing-parameter-type,
13321         Wold-style-declaration,Woverride-init): Use EnabledBy.
13322         * c-opts.c (c_common_post_options): Do not set here explicitly.
13324 2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13326         PR 53063
13327         * c-opts.c (c_common_handle_option): Use handle_generated_option
13328         to enable sub-options.
13330 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
13332         PR c++/53158
13333         * c-common.c (warnings_for_convert_and_check): Use warning_at.
13335 2012-05-10  Richard Guenther  <rguenther@suse.de>
13337         * c-common.c (c_sizeof_or_alignof_type): Remove assert and
13338         adjust commentary about TYPE_IS_SIZETYPE types.
13340 2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13342         PR c++/53261
13343         * c-common.c (warn_logical_operator): Check that argument of
13344         integer_zerop is not NULL.
13346 2012-05-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13348         PR c/43772
13349         * c-common.c (warn_logical_operator): Do not warn if either side
13350         is already true or false.
13352 2012-05-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13354         PR c/51712
13355         * c-common.c (expr_original_type): New.
13356         (shorten_compare): Do not warn for enumeration types.
13358 2012-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13360         * c.opt (fpermissive): Add Var(flag_permissive).
13362 2012-04-30  Marc Glisse  <marc.glisse@inria.fr>
13364         PR c++/51033
13365         * c-common.c (convert_vector_to_pointer_for_subscript): New function.
13366         * c-common.h (convert_vector_to_pointer_for_subscript): Declare it.
13368 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
13370         Add -Wvarargs option
13371         * c.opt (Wvarargs): Define new option.
13373 2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13375         * c-common.c (check_function_arguments): Replace
13376         Wmissing-format-attribute with Wsuggest-attribute=format.
13378 2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13380         * c.opt (Wsuggest-attribute=format): New. Alias of
13381         Wmissing-format-attribute.
13382         * c-format.c (decode_format_type): Replace
13383         Wmissing-format-attribute with Wsuggest-attribute=format.
13384         (check_function_format): Likewise.
13386 2012-04-27  Ollie Wild  <aaw@google.com>
13388         * c-common.c: Add CPP_W_LITERAL_SUFFIX mapping.
13389         * c-opts.c (c_common_handle_option): Handle OPT_Wliteral_suffix.
13390         * c.opt: Add Wliteral-suffix.
13392 2012-04-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13394         PR c/44774
13395         * c.opt (Wpedantic): New.
13396         (pedantic): Alias Wpedantic.
13397         * c-opts.c (c_common_handle_option): Replace -pedantic with -Wpedantic.
13398         (c_common_post_options): Likewise.
13399         (sanitize_cpp_opts): Likewise.
13400         * c-lex.c (interpret_float): Likewise.
13401         * c-format.c (check_format_types): Likewise.
13402         * c-common.c (pointer_int_sum): Likewise.
13403         (c_sizeof_or_alignof_type): Likewise.
13404         (c_add_case_label): Likewise.
13405         (c_do_switch_warnings): Likewise.
13406         * c-pragma.c (handle_pragma_float_const_decimal64): Likewise.
13408 2012-04-15  Jason Merrill  <jason@redhat.com>
13410         PR c++/52818
13411         * c-format.c (CPLUSPLUS_STD_VER): C++11 inherits from C99.
13412         (C_STD_NAME): Distinguish between C++98 and C++11.
13414 2012-04-11  Eric Botcazou  <ebotcazou@adacore.com>
13416         PR target/52624
13417         * c-common.h (uint16_type_node): Rename into...
13418         (c_uint16_type_node): ...this.
13419         * c-common.c (c_common_nodes_and_builtins): Adjust for above renaming.
13420         * c-cppbuiltin.c (builtin_define_stdint_macros): Likewise.
13422 2012-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13424         * c-common.c (warn_if_unused_value): Move definition to here.
13425         * c-common.h (warn_if_unused_value): Move declaration to here.
13427 2012-03-23  William Bader  <williambader@hotmail.com>
13429         * c-lex.c (c_lex_with_flags): Avoid declarations after stmts.
13431 2012-03-20  Jason Merrill  <jason@redhat.com>
13433         * c-common.h (enum cxx_dialect): Add cxx1y.
13434         * c-common.c (c_common_nodes_and_builtins): Use >= for cxx_dialect
13435         test.
13436         * c-cppbuiltin.c (c_cpp_builtins): Likewise.
13437         * c-opts.c (c_common_post_options): Likewise.
13438         (set_std_cxx1y): New.
13439         (c_common_handle_option): Call it.
13440         * c.opt (-std=c++1y, -std=gnu++1y): New flags.
13442 2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
13444         PR c++/14710
13445         * c.opt ([Wuseless-cast]): Add.
13447 2012-03-16  Richard Guenther  <rguenther@suse.de>
13449         * c-pretty-print.c (pp_c_initializer_list): Adjust.
13451 2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13453         PR c++/44783
13454         * c.opt (ftemplate-backtrace-limit) Add.
13456 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13458         * c-cppbuiltin.c (c_cpp_builtins): Remove #pragma extern_prefix
13459         handling.
13460         * c-pragma.c (handle_pragma_extern_prefix): Remove.
13461         (init_pragma): Don't register extern_prefix.
13463 2012-03-12  Richard Guenther  <rguenther@suse.de>
13465         * c-common.c (c_common_get_narrower): Use c_common_type_for_size.
13466         (builtin_type_for_size): Likewise.
13468 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
13470         PR c++/52215
13471         * c-common.c (sync_resolve_params): Don't decide whether to convert
13472         or not based on TYPE_SIZE comparison, convert whenever arg_type
13473         is unsigned INTEGER_TYPE.
13475 2012-02-06  Paolo Carlini  <paolo.carlini@oracle.com>
13477         PR c/52118
13478         * c.opt ([Wunused-local-typedefs]): Fix description.
13480 2012-01-24  Mike Stump  <mikestump@comcast.net>
13482         * c-common.c (c_common_type_for_mode): Match signed/unsigned types
13483         exactly.
13485 2012-01-18  Richard Guenther  <rguenther@suse.de>
13487         * c-opts.c (c_common_post_options): Reset LTO flags if
13488         we are about to generate a PCH.
13490 2012-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
13492         PR c++/51777
13493         * c-pretty-print.c (pp_c_integer_constant): For unsigned constants
13494         use pp_unsigned_wide_integer.
13496 2012-01-10  Richard Guenther  <rguenther@suse.de>
13498         PR middle-end/51806
13499         * c-opts.c (c_common_handle_option): Move -Werror handling
13500         to language independent code.
13502 2012-01-05  Richard Guenther  <rguenther@suse.de>
13504         PR middle-end/51764
13505         * c.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move here
13506         from common.opt.
13508 2011-12-30  Paolo Carlini  <paolo.carlini@oracle.com>
13510         PR c++/51316
13511         * c-common.c (c_sizeof_or_alignof_type): In C++ allow for alignof
13512         of array types with an unknown bound.
13514 2011-12-20  Joseph Myers  <joseph@codesourcery.com>
13516         * c-common.c (flag_isoc99): Update comment to refer to C11.
13517         (flag_isoc1x): Change to flag_isoc11.
13518         * c-common.h (flag_isoc99): Update comment to refer to C11.
13519         (flag_isoc1x): Change to flag_isoc11.
13520         * c-cppbuiltin.c (cpp_atomic_builtins): Change comment to refer to
13521         C11.
13522         * c-opts.c (set_std_c1x): Change to set_std_c11.
13523         (c_common_handle_option): Handle OPT_std_c11 and OPT_std_gnu11.
13524         Call set_std_c11.
13525         (set_std_c89, set_std_c99, set_std_c11): Use flag_isoc11.
13526         (set_std_c1): Use CLK_STDC11 and CLK_GNUC11.
13527         * c.opt (std=c1x): Change to std=c11.  Document as non-draft
13528         standard.
13529         (std=c1x, std=iso9899:2011): Add as aliases of std=c11.
13530         (std=gnu1x): Change to std=gnu11.  Refer to non-draft standard.
13531         (std=gnu1x): Make alias of std=gnu11.
13533 2011-12-19  Jason Merrill  <jason@redhat.com>
13535         PR c++/51228
13536         * c-common.c (handle_transparent_union_attribute): Check the first
13537         field if the type is complete.
13539 2011-12-15  Jonathan Wakely  <jwakely.gcc@gmail.com>
13541         PR libstdc++/51365
13542         * c-common.c (RID_IS_FINAL): Add.
13543         * c-common.h (RID_IS_FINAL): Add.
13545 2011-11-30  Iain Sandoe  <iains@gcc.gnu.org>
13547         * c.opt (fgnu-runtime): Provide full description.
13548         (fnext-runtime): Likewise.
13549         * c-opts.c (OPT_fgnu_runtime, OPT_fnext_runtime) Remove.
13551 2011-11-28  Andrew MacLeod  <amacleod@redhat.com>
13553         * c-cpp-builtin.c (cpp_atomic_builtins):New.  Emit all atomic
13554         predefines in one place.  Add LOCK_FREE predefines.
13555         (c_cpp_builtins): Move Legacy HAVE_SYNC predefines to
13556         new func.
13558 2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
13560         PR c/51256
13561         * c-common.c (get_atomic_generic_size): Check for various error
13562         conditions
13563         (resolve_overloaded_atomic_exchange,
13564         resolve_overloaded_atomic_compare_exchange,
13565         resolve_overloaded_atomic_load, resolve_overloaded_atomic_store): Return
13566         error_mark_node for error conditions.
13568 2011-11-08  Richard Guenther  <rguenther@suse.de>
13570         PR middle-end/51010
13571         * c-pretty-print.c (pp_c_expression): Handle SSA_NAMEs.
13573 2011-11-07  Richard Henderson  <rth@redhat.com>
13574             Aldy Hernandez  <aldyh@redhat.com>
13575             Torvald Riegel  <triegel@redhat.com>
13577         Merged from transactional-memory.
13579         * c-common.c (handle_tm_wrap_attribute,
13580         handle_tm_attribute, ignore_attribute, parse_tm_stmt_attr): New.
13581         (struct c_common_reswords): Added __transaction* keywords.
13582         (struct c_common_attribute_table): Added transaction* and tm_regparm
13583         attributes.
13584         * c-common.h: Added RID_TRANSACTION*. Added TM_ATTR* and TM_STMT*
13585         masks.
13586         (parse_tm_stmt_attr, tm_attr_to_mask, tm_mask_to_attr,
13587         find_tm_attribute): Declare.
13589 2011-11-07  Jason Merrill  <jason@redhat.com>
13591         PR c++/35688
13592         * c-common.c, c-common.h: Revert yesterday's changes.
13594 2011-11-06  Jason Merrill  <jason@redhat.com>
13596         PR c++/35688
13597         * c-common.c (decl_has_visibility_attr): Split out from...
13598         (c_determine_visibility): ...here.
13599         * c-common.h: Declare it.
13601 2011-11-06  Joseph Myers  <joseph@codesourcery.com>
13603         * c-common.c (c_common_reswords): Add _Alignas and _Alignof.
13604         (c_sizeof_or_alignof_type): Diagnose alignof applied to a function
13605         type.
13606         (check_user_alignment): New.  Split out of
13607         handle_aligned_attribute.  Disallow integer constants with
13608         noninteger types.  Conditionally allow zero.
13609         (handle_aligned_attribute): Use check_user_alignment.
13610         * c-common.h (RID_ALIGNAS, check_user_alignment): New.
13612 2011-11-06  Andrew MacLeod  <amacleod@redhat.com>
13613             Richard Henderson  <rth@redhat.com>
13615         Merged from cxx-mem-model.
13617         * c-cppbuiltin.c (c_cpp_builtins): Test both atomic and sync patterns.
13618         * c-common.c (sync_resolve_params, sync_resolve_return): Only tweak
13619         parameters that are the same type size.
13620         (get_atomic_generic_size): New.  Find size of generic
13621         atomic function parameters and do typechecking.
13622         (add_atomic_size_parameter): New.  Insert size into parameter list.
13623         (resolve_overloaded_atomic_exchange): Restructure __atomic_exchange to
13624         either __atomic_exchange_n or external library call.
13625         (resolve_overloaded_atomic_compare_exchange): Restructure
13626         __atomic_compare_exchange to either _n variant or external library call.
13627         (resolve_overloaded_atomic_load): Restructure __atomic_load to either
13628         __atomic_load_n or an external library call.
13629         (resolve_overloaded_atomic_store): Restructure __atomic_store to either
13630         __atomic_store_n or an external library call.
13631         (resolve_overloaded_builtin): Handle new __atomic builtins.
13633 2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
13635         PR c++/50608
13636         * c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Call fold_offsetof_1.
13637         (fold_offsetof_1): Make global.  Remove STOP_REF argument and adjust.
13638         <INDIRECT_REF>: Return the argument.
13639         <ARRAY_REF>: Remove special code for negative offset.
13640         Call fold_build_pointer_plus instead of size_binop.
13641         (fold_offsetof): Remove STOP_REF argument and adjust.
13642         * c-common.h (fold_offsetof_1): Declare.
13643         (fold_offsetof): Remove STOP_REF argument.
13645 2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
13647         PR c++/50810
13648         * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
13649         of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
13650         Wnarrowing for C++0x and C++98.
13651         * c.opt ([Wnarrowing]): Update.
13653 2011-11-01  Paolo Carlini  <paolo.carlini@oracle.com>
13655         PR c++/44277
13656         * c.opt: Add Wzero-as-null-pointer-constant.
13658 2011-10-31  Jason Merrill  <jason@redhat.com>
13660         * c.opt (-fdeduce-init-list): Off by default.
13662         PR c++/50920
13663         * c-common.h (cxx_dialect): Add cxx11 and cxx03.
13664         * c.opt: Add -std=c++11, -std=gnu++11, -std=gnu++03,
13665         and -Wc++11-compat.
13666         * c-opts.c (set_std_cxx11): Rename from set_std_cxx0x.
13668 2011-10-27  Roberto Agostino Vitillo  <ravitillo@lbl.gov>
13670         PR c++/30066
13671         * c.opt (fvisibility-inlines-hidden): Description change.
13673 2011-10-26  Ed Smith-Rowland  <3dw4rd@verizon.net>
13675         Implement C++11 user-defined literals.
13676         * c-common.c (build_userdef_literal): New.
13677         * c-common.def: New tree code.
13678         * c-common.h (tree_userdef_literal): New tree struct and accessors.
13679         * c-lex.c (interpret_float): Add suffix parm.
13680         (c_lex_with_flags): Build literal tokens.
13682 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
13684         PR c++/50841
13685         Revert:
13686         2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
13688         PR c++/50810
13689         * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
13690         of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
13691         Wnarrowing for C++0x and C++98.
13692         * c.opt ([Wnarrowing]): Update.
13694 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
13696         PR c++/50810
13697         * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
13698         of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
13699         Wnarrowing for C++0x and C++98.
13700         * c.opt ([Wnarrowing]): Update.
13702 2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>
13704         PR c++/45385
13705         * c-common.c (conversion_warning): Remove code looking for
13706         artificial operands.
13708 2011-10-18  Dodji Seketeli  <dodji@redhat.com>
13710         PR bootstrap/50760
13711         * c-lex.c (fe_file_change): Use LINEMAP_SYSP when
13712         !NO_IMPLICIT_EXTERN_C.
13714 2011-10-17  Michael Spertus  <mike_spertus@symantec.com>
13716         * c-common.c (c_common_reswords): Add __bases,
13717         __direct_bases.
13718         * c-common.h: Add RID_BASES and RID_DIRECT_BASES.
13720 2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
13722         PR c++/50757
13723         * c.opt ([Wnonnull]): Add C++ and Objective-C++.
13725 2011-10-15  Tom Tromey  <tromey@redhat.com>
13726             Dodji Seketeli  <dodji@redhat.com>
13728         * c.opt (fdebug-cpp): New option.
13729         * c-opts.c (c_common_handle_option): Handle the option.
13730         * c-ppoutput.c (maybe_print_line_1): New static function. Takes an
13731         output stream in parameter. Factorized from ...
13732         (maybe_print_line): ... this. Dump location debug information when
13733         -fdebug-cpp is in effect.
13734         (print_line_1): New static function. Takes an output stream in
13735         parameter. Factorized from ...
13736         (print_line): ... here. Dump location information when -fdebug-cpp
13737         is in effect.
13738         (scan_translation_unit): Dump location information when
13739         -fdebug-cpp is in effect.
13741 2011-10-15  Tom Tromey  <tromey@redhat.com>
13742             Dodji Seketeli  <dodji@redhat.com>
13744         * c.opt (ftrack-macro-expansion): New option. Handle it with and
13745         without argument.
13746         * c-opts.c (c_common_handle_option)<case
13747         OPT_ftrack_macro_expansion_, case OPT_ftrack_macro_expansion>: New
13748         cases. Handle -ftrack-macro-expansion with and without argument.
13750 2011-10-15  Tom Tromey  <tromey@redhat.com>
13751             Dodji Seketeli  <dodji@redhat.com>
13753         * c-ppoutput.c (scan_translation_unit, maybe_print_line)
13754         (print_line, cb_define, do_line_change): Adjust to avoid touching
13755         the internals of struct line_map.  Use the public API instead.
13756         * c-pch.c (c_common_read_pch): Likewise.
13757         * c-lex.c (fe_file_change): Likewise.
13759 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
13761         PR c++/17212
13762         * c.opt ([Wformat-zero-length]): Add C++ and Objective-C++.
13764 2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
13766         PR c++/33067
13767         * c-pretty-print.c (pp_c_floating_constant): Output
13768         max_digits10 (in the ISO C++ WG N1822 sense) decimal digits.
13770 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
13772         * c-common.c (def_builtin_1): Delete old interface with two
13773         parallel arrays to hold standard builtin declarations, and replace
13774         it with a function based interface that can support creating
13775         builtins on the fly in the future.  Change all uses, and poison
13776         the old names.  Make sure 0 is not a legitimate builtin index.
13777         * c-omp.c (c_finish_omp_barrier): Ditto.
13778         (c_finish_omp_taskwait): Ditto.
13779         (c_finish_omp_flush): Ditto.
13781 2011-10-11  Tristan Gingold  <gingold@adacore.com>
13783         * c.opt: (fallow-parameterless-variadic-functions): New.
13785 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
13787         PR c++/33255 - Support -Wunused-local-typedefs warning
13788         * c-common.h (struct c_language_function::local_typedefs): New
13789         field.
13790         (record_locally_defined_typedef, maybe_record_typedef_use)
13791         (maybe_warn_unused_local_typedefs): Declare new functions.
13792         * c-common.c (record_locally_defined_typedef)
13793         (maybe_record_typedef_use)
13794         (maybe_warn_unused_local_typedefs): Define new functions.
13795         * c.opt: Declare new -Wunused-local-typedefs flag.
13797 2011-09-06  Eric Botcazou  <ebotcazou@adacore.com>
13799         PR middle-end/50266
13800         * c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Fold offsetof-like
13801         computations.
13803 2011-09-05  Richard Guenther  <rguenther@suse.de>
13805         * c-common.c (complete_array_type): Use ssize_int (-1) instead
13806         of integer_minus_one_node for empty array upper bounds.
13808 2011-08-28  Dodji Seketeli  <dodji@redhat.com>
13810         * c-pch.c (c_common_read_pch): Call linemap_add with LC_ENTER as
13811         it's the first time it's being called on this main TU.
13813 2011-08-24  Richard Guenther  <rguenther@suse.de>
13815         PR c/49396
13816         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Fix conditional.
13818 2011-08-22  Gabriel Charette  <gchare@google.com>
13820         * c-opts.c (c_finish_options): Force BUILTINS_LOCATION for tokens
13821         defined in cpp_init_builtins and c_cpp_builtins.
13823 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
13825         * c-common.c (c_common_reswords): Add __builtin_complex.
13826         * c-common.h (RID_BUILTIN_COMPLEX): New.
13828 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
13830         * c-common.c (c_common_reswords): Add _Noreturn.
13831         (keyword_is_function_specifier): Handle RID_NORETURN.
13832         * c-common.h (RID_NORETURN): New.
13834 2011-08-10  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
13836         * c-common.c (unsafe_conversion_p): New function. Check if it is
13837         unsafe to convert an expression to the type.
13838         (conversion_warning): Adjust, use unsafe_conversion_p.
13839         * c-common.h (unsafe_conversion_p): New function declaration.
13841 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
13843         * c-common.h (c_finish_omp_atomic): Adjust prototype.
13844         (c_finish_omp_taskyield): New prototype.
13845         * c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
13846         arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and
13847         OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC.  If LHS1
13848         or RHS1 have side-effects, evaluate those too in the right spot,
13849         if it is a decl and LHS is also a decl, error out if they
13850         aren't the same.
13851         (c_finish_omp_taskyield): New function.
13852         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107.
13853         * c-pragma.c (omp_pragmas): Add taskyield.
13854         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD.
13855         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and
13856         PRAGMA_OMP_CLAUSE_MERGEABLE.
13858 2011-07-25  Dodji Seketeli  <dodji@redhat.com>
13860         * c-common.h (set_underlying_type): Remove parm name from
13861         declaration.
13863 2011-07-25  Romain Geissler  <romain.geissler@gmail.com>
13865         * c-pretty-print.h: Search c-common.h in c-family.
13867 2011-07-22  Jason Merrill  <jason@redhat.com>
13869         PR c++/49793
13870         * c.opt (Wnarrowing): New.
13872         PR c++/30112
13873         * c-common.h: Declare c_linkage_bindings.
13874         * c-pragma.c (handle_pragma_redefine_extname): Use it.
13876         PR c++/49813
13877         * c-opts.c (set_std_cxx0x): Set flag_isoc94 and flag_isoc99.
13878         * c-pretty-print.c (pp_c_cv_qualifiers): Check c_dialect_cxx as well
13879         as flag_isoc99 for 'restrict'.
13880         (pp_c_specifier_qualifier_list): Likewise for _Complex.
13882 2011-07-21  Ian Lance Taylor  <iant@google.com>
13884         PR middle-end/49705
13885         * c-common.c (c_disable_warnings): New static function.
13886         (c_enable_warnings): New static function.
13887         (c_fully_fold_internal): Change local unused_p to bool.  Call
13888         c_disable_warnings and c_enable_warnings rather than change
13889         c_inhibit_evaluation_warnings.
13891 2011-07-20  Jason Merrill  <jason@redhat.com>
13893         PR c++/6709 (DR 743)
13894         PR c++/42603 (DR 950)
13895         * c-common.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move from cp/parser.h.
13896         (CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
13897         (CPP_DECLTYPE): New.
13898         * c-common.c (c_parse_error): Handle CPP_DECLTYPE.
13900 2011-07-19  Richard Guenther  <rguenther@suse.de>
13902         * c-common.c (pointer_int_sum): Use fold_build_pointer_plus.
13903         * c-omp.c (c_finish_omp_for): Likewise.
13905 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
13907         * c-ada-spec.c (dump_nested_types): Put semi-colon after empty loop
13908         body on the next line.
13910 2011-07-08  Jason Merrill  <jason@redhat.com>
13912         PR c++/45437
13913         * c-omp.c (check_omp_for_incr_expr): Handle preevaluation.
13915         PR c++/49673
13916         * c-common.c (c_apply_type_quals_to_decl): Don't check
13917         TYPE_NEEDS_CONSTRUCTING.
13919 2011-07-06  Richard Guenther  <rguenther@suse.de>
13921         * c-common.c (c_common_nodes_and_builtins):
13922         Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
13924 2011-07-05  Richard Guenther  <rguenther@suse.de>
13926         * c-common.c (c_common_nodes_and_builtins): Build all common
13927         tree nodes first.
13929 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
13931         * c-common.h (c_tree_chain_next): New static inline function.
13933         * c-common.c (check_builtin_function_arguments): Handle
13934         BUILT_IN_ASSUME_ALIGNED.
13936 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
13938         * c-common.c: Add sync_ or SYNC__ to builtin names.
13939         * c-omp.c: Add sync_ or SYNC__ to builtin names.
13941 2011-06-20  Pierre Vittet  <piervit@pvittet.com>
13943         * c-pragma.h (pragma_handler_1arg, pragma_handler_2arg): New
13944         handler.
13945         (gen_pragma_handler): New union.
13946         (internal_pragma_handler): New type.
13947         (c_register_pragma_with_data)
13948         (c_register_pragma_with_expansion_and_data): New functions.
13950         * c-pragma.c (registered_pragmas, c_register_pragma_1)
13951         (c_register_pragma, c_register_pragma_with_expansion)
13952         (c_invoke_pragma_handler): Changed to work with
13953         internal_pragma_handler.
13954         (c_register_pragma_with_data)
13955         (c_register_pragma_with_expansion_and_data): New functions.
13957 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
13959         * c-common.c: Include common/common-target.h.
13960         (handle_section_attribute): Use
13961         targetm_common.have_named_sections.
13962         * c-cppbuiltin.c: Include common/common-target.h.
13963         (c_cpp_builtins): Use targetm_common.except_unwind_info.
13965 2011-06-10  Richard Guenther  <rguenther@suse.de>
13967         * c-pretty-print.c (pp_c_type_specifier): Use pp_c_identifier
13968         to print a IDENTIFIER_NODE.
13970 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13971             Joseph Myers  <joseph@codesourcery.com>
13973         * c.opt (fbuilding-libgcc): New option.
13974         * c-cppbuiltin.c (c_cpp_builtins): Define
13975         __LIBGCC_TRAMPOLINE_SIZE__ if flag_building_libgcc.
13977 2011-06-07  Jason Merrill  <jason@redhat.com>
13979         * c-common.c (max_tinst_depth): Lower default to 900.
13981         * c-format.c (gcc_cxxdiag_char_table): Add 'S' format.
13983 2011-06-07  Richard Guenther  <rguenther@suse.de>
13985         * c-common.c (c_common_nodes_and_builtins): Do not set
13986         size_type_node or call set_sizetype.
13988 2011-06-07  Dodji Seketeli  <dodji@redhat.com>
13990         PR debug/49130
13991         * c-pretty-print.c (pp_c_integer_constant): Consider the canonical
13992         type when using pointer comparison to compare types.
13994 2011-06-02  Jonathan Wakely  <jwakely.gcc@gmail.com>
13996         * c.opt: Add -Wdelete-non-virtual-dtor.
13997         * c-opts.c (c_common_handle_option): Include it in -Wall.
13999 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
14001         PR bootstrap/49190
14003         Revert:
14004         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
14006         * c-common.h (struct c_common_identifier): Inherit from tree_typed,
14007         not tree_common.
14009 2011-05-27  Jakub Jelinek  <jakub@redhat.com>
14011         PR c++/49165
14012         * c-common.c (c_common_truthvalue_conversion) <case COND_EXPR>: For
14013         C++ don't call c_common_truthvalue_conversion on void type arms.
14015 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
14017         * c-common.h (struct stmt_tree_s) [x_cur_stmt_list]: Change to a VEC.
14018         (stmt_list_stack): Define.
14019         (cur_stmt_list): Adjust for new type of x_cur_stmt_list.
14020         * c-semantics.c (push_stmt_list, pop_stmt_list): Likewise.
14022 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
14024         * c-common.c (warning_candidate_p): Check for BLOCKs.
14026 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
14028         * c-common.h (struct c_common_identifier): Inherit from tree_typed,
14029         not tree_common.
14031 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
14033         * c-common.c (def_fn_type): Remove extra va_end.
14035 2011-05-23  Jason Merrill  <jason@redhat.com>
14037         PR c++/48106
14038         * c-common.c (c_common_get_narrower): New.
14039         (shorten_binary_op, shorten_compare, warn_for_sign_compare): Use it.
14041 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
14043         * c-common.h (check_function_arguments): Tweak prototype of
14044         check_function_arguments.
14045         * c-common.c (check_function_arguments): Likewise.  Adjust
14046         calls to check_function_nonnull, check_function_format, and
14047         check_function_sentinel.
14048         (check_function_sentinel): Take a FUNCTION_TYPE rather than
14049         separate attributes and typelist arguments.  Use
14050         FOREACH_FUNCTION_ARGS to iterate over argument types.
14052 2011-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
14054         * c-common.c (c_common_reswords): Reorder.
14055         * c-common.h (rid): Likewise.
14057 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
14059         * c-common.c (def_fn_type): Don't call build_function_type, call
14060         build_function_type_array or build_varargs_function_type_array
14061         instead.
14062         (c_common_nodes_and_builtins): Likewise.
14064 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
14066         * c-common.c (c_add_case_label): Omit the loc argument to
14067         build_case_label.
14068         * c-common.h (build_case_label): Remove.
14069         * c-semantics.c (build_case_label): Remove.
14071 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
14073         * c-objc.h (objc_start_method_definition): Update prototype.
14074         * stub-objc.c (objc_start_method_definition): Add extra parameter.
14076 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
14078         * c-common.c (check_main_parameter_types): Reindent.  Don't use
14079         TYPE_ARG_TYPES directly.
14080         (handle_nonnull_attribute): Likewise.
14081         (sync_resolve_params): Likewise.
14082         * c-format.c (handle_format_arg_attribute): Likewise.  Adjust call
14083         to check_format_string.
14084         (handle_format_attribute): Likewise.
14085         (check_format_string): Take a function type to examine instead of
14086         a type list.  Use a function_arg_iterator to step through argument
14087         types.
14089 2011-05-04  Richard Guenther  <rguenther@suse.de>
14091         * c-common.c (fix_string_type): Use size_int for index type bounds.
14092         (start_fname_decls): Do not pass NULL to build_int_cst.
14093         (c_init_attributes): Likewise.
14094         * c-lex.c (c_lex_with_flags): Likewise.
14096 2011-04-27  Jason Merrill  <jason@redhat.com>
14098         * c-common.c (make_tree_vector_from_list): New.
14099         * c-common.h: Declare it.
14101 2011-04-26  Richard Guenther  <rguenther@suse.de>
14103         PR preprocessor/48248
14104         * c-ppoutput.c (maybe_print_line): Always optimize newlines
14105         for output size with -P.
14107 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
14109         * c-common.c (struct c_common_resword): Add __underlying_type.
14110         * c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
14112 2011-04-20  Jim Meyering  <meyering@redhat.com>
14114         * c-format.c (init_dollar_format_checking): Remove useless
14115         if-before-free.
14117 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
14119         * c-objc.h (objc_get_interface_ivars): Removed.
14120         (objc_detect_field_duplicates): New.
14121         * stub-objc.c: Likewise.
14123 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
14125         * stub-objc.c (objc_declare_protocols): Renamed to
14126         objc_declare_protocol.
14127         * c-objc.h: Likewise.
14129 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
14131         * stub-objc.c (objc_declare_class): Updated argument name.
14133 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
14135         * c-common.h (c_common_init_ts): Declare.
14136         * c-common.c (c_common_init_ts): Define.
14138 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14140         * c-objc.h (objc_build_message_expr): Updated prototype.
14141         * stub-objc.c (objc_build_message_expr): Likewise.
14143 2011-04-12  Martin Jambor  <mjambor@suse.cz>
14145         * c-gimplify.c (c_genericize): Call cgraph_get_create_node instead
14146         of cgraph_node.
14148 2011-04-11  Richard Guenther  <rguenther@suse.de>
14150         * c-common.c (complete_array_type): Build a range type of
14151         proper type.
14153 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
14155         * c-common.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
14156         (handle_type_generic_attribute): Likewise.
14158 2011-04-07  Jason Merrill  <jason@redhat.com>
14160         PR c++/48450
14161         * c-common.c (c_common_truthvalue_conversion): Don't ignore
14162         conversion from C++0x scoped enum.
14164 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
14166         * c-target-def.h: New file.
14167         * c-target.def: New file.
14168         * c-target.h: New file.
14169         * c-common.c (targetcm): Don't define here.
14170         * c-common.h (default_handle_c_option): Declare.
14171         * c-format.c: Include c-target.h instead of target.h.
14172         * c-opts.c: Include c-target.h instead of target.h.  Explicitly
14173         include tm.h.
14174         (default_handle_c_option): Move from targhooks.c.
14176 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
14178         PR preprocessor/48248
14179         * c-ppoutput.c (print): Add src_file field.
14180         (init_pp_output): Initialize it.
14181         (maybe_print_line): Don't optimize by adding up to 8 newlines
14182         if map->to_file and print.src_file are different file.
14183         (print_line): Update print.src_file.
14185 2011-03-25  Kai Tietz  <ktietz@redhat.com>
14187         * c-ada-spec.c (compare_comment): Use filename_cmp
14188         instead of strcmp for filename.
14190 2011-03-25  Jeff Law  <law@redhat.com>
14192         * c-common.c (def_fn_type): Add missing va_end.
14194 2011-03-25  Jason Merrill  <jason@redhat.com>
14196         * c.opt: Add -std=c++03.
14198 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
14200         * c-ada-spec.c (dump_ada_template): Skip non-class instances.
14202 2011-03-17  Kai Tietz  <ktietz@redhat.com>
14204         PR target/12171
14205         * c-pretty-print.c (pp_c_specifier_qualifier_list):
14206         Display allowed attributes for function pointer types.
14207         (pp_c_attributes_display): New function to display
14208         attributes having affects_type_identity flag set to true.
14209         * c-pretty-print.h (pp_c_attributes_display): New prototype.
14211         * c-common.c (c_common_attribute_table):
14212         Add new element.
14213         (c_common_format_attribute_table): Likewise.
14215 2011-03-18  Jason Merrill  <jason@redhat.com>
14217         * c.opt (fconstexpr-depth): Add Var(max_constexpr_depth).
14218         * c-common.h: Don't declare it here.
14219         * c-common.c: Or define it here.
14220         * c-opts.c (c_common_handle_option): Or set it here.
14222         PR c++/35315
14223         * c-common.c (handle_transparent_union_attribute): Don't
14224         make a duplicate type in C++.
14226 2011-03-15  Jason Merrill  <jason@redhat.com>
14228         * c-common.c (max_constexpr_depth): New.
14229         * c-common.h: Declare it.
14230         * c-opts.c (c_common_handle_option): Set it.
14231         * c.opt (fconstexpr-depth): New option.
14233 2011-03-11  Jason Merrill  <jason@redhat.com>
14235         * c-common.c (attribute_takes_identifier_p): Add missing const.
14237         PR c++/46803
14238         * c-common.c (attribute_takes_identifier_p): Assume that an
14239         unknown attribute takes an identifier.
14241 2011-03-07  Nathan Froyd  <froydnj@codesourcery.com>
14243         PR c/47786
14244         * c-common.c (c_type_hash): Call list_length instead of iterating
14245         through DECL_CHAIN.  Rename 'i' to 'n_elements'.
14247 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
14249         PR c/47809
14250         * c-common.c (c_fully_fold_internal): Handle VIEW_CONVERT_EXPR.
14252 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
14254         * c.opt (fobjc-abi-version=) New.
14255         (fobjc-nilcheck): New.
14257 2011-02-03  Nathan Froyd  <froydnj@codesourcery.com>
14259         PR c++/46890
14260         * c-common.h (keyword_is_decl_specifier): Declare.
14261         * c-common.c (keyword_is_decl_specifier): Define.
14262         (keyword_is_function_specifier): New function.
14264 2011-01-26  Jakub Jelinek  <jakub@redhat.com>
14266         PR c/47473
14267         * c-lex.c (interpret_float): If CPP_N_IMAGINARY, ensure
14268         EXCESS_PRECISION_EXPR is created with COMPLEX_TYPE instead of
14269         REAL_TYPE.
14271 2011-01-26  Arnaud Charlet  <charlet@adacore.com>
14273         * c-ada-spec.c (dump_generic_ada_node): Avoid dereferencing null type.
14275 2011-01-26  Jakub Jelinek  <jakub@redhat.com>
14277         PR pch/47430
14278         * c-opts.c (c_common_post_options): Call c_common_no_more_pch
14279         after init_c_lex if pch_file is set.
14281 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
14283         PR c++/43601
14284         * c.opt (-fkeep-inline-dllexport): New switch.
14286 2011-01-12  Richard Guenther  <rguenther@suse.de>
14288         PR middle-end/32511
14289         * c-common.c (handle_weak_attribute): Warn instead of error
14290         on declaring an inline function weak.
14292 2011-01-05  Tom Tromey  <tromey@redhat.com>
14294         * c-common.h (lvalue_error): Update.
14295         * c-common.c (lvalue_error): Add 'loc' argument.  Call error_at,
14296         not error.
14298 2010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
14300         PR objc/47075
14301         * c-objc.h (objc_finish_message_expr): Added argument to
14302         prototype.
14304 2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
14306         * c-common.c (handle_nonnull_attribute, handle_sentinel_attribute):
14307         Use prototype_p.
14309 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
14311         * c-objc.h (objc_maybe_warn_exceptions): New.
14312         * stub-objc.c (objc_maybe_warn_exceptions): New.
14314 2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>
14316         * c-common.h (readonly_error): Declare.
14317         * c-common.c (readonly_error): Define.
14319 2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>
14321         * c-common.h (invalid_indirection_error): Declare.
14322         * c-common.c (invalid_indirection_error): Define.
14324 2010-12-03  Richard Guenther  <rguenther@suse.de>
14326         PR c/46745
14327         * c-pretty-print.c (pp_c_postfix_expression): Handle MEM_REF.
14328         (pp_c_unary_expression): Likewise.
14329         (pp_c_expression): Likewise.
14331 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
14333         * c-common.h (objc_finish_function): New.
14334         (objc_non_volatilized_type): Removed.
14335         (objc_type_quals_match): Removed.
14336         * stub-objc.c (objc_finish_function): New.
14337         (objc_non_volatilized_type): Removed.
14338         (objc_type_quals_match): Removed.
14340 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
14342         * c-common.h (parse_optimize_options): Declare.
14343         * c-cppbuiltin.c, c-format.c, c-gimplify.c, c-lex.c, c-omp.c,
14344         c-pch.c, c-pragma.c, c-semantics.c: Don't include toplev.h.
14346 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
14348         * c-opts.c (check_deps_environment_vars): Use getenv instead of
14349         GET_ENVIRONMENT.
14350         * c-pch.c (O_BINARY): Don't define here.
14351         * c-pragma.h: Include "cpplib.h" instead of <cpplib.h>.
14353 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
14355         * c-cppbuiltin.c (c_cpp_builtins): Pass &global_options to
14356         targetm.except_unwind_info.
14358 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
14360         * c-opts.c (c_common_handle_option): Pass location to
14361         set_struct_debug_option.
14363 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
14365         * c-common.c (visibility_options): Move from ../opts.c.
14366         * c-common.h (struct visibility_flags, visibility_options):
14367         Declare here.
14368         * c-opts.c (finish_options): Rename to c_finish_options.
14369         (c_common_init): Update call to finish_options.
14371 2010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>
14373         PR objc/34033
14374         * c-lex.c (lex_string): Check that each string in an Objective-C
14375         string concat sequence starts with either one or zero '@', and
14376         that there are no spurious '@' signs at the end.
14378 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
14380         * c-pragma.c: Remove conditionals on HANDLE_PRAGMA_PACK,
14381         HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_PRAGMA_WEAK and
14382         HANDLE_PRAGMA_VISIBILITY.
14383         * c-pragma.h (HANDLE_PRAGMA_WEAK, HANDLE_PRAGMA_PACK,
14384         HANDLE_PRAGMA_VISIBILITY): Don't define.
14385         (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Don't test.
14387 2010-11-20  Nathan Froyd  <froydnj@codesourcery.com>
14389         PR c++/16189
14390         PR c++/36888
14391         PR c++/45331
14392         * c-common.h (keyword_begins_type_specifier): Declare.
14393         (keyword_is_storage_class_specifier): Declare.
14394         (keyword_is_type_qualifier): Declare.
14395         * c-common.c (keyword_begins_type_specifier): New function.
14396         (keyword_is_storage_class_specifier): New function.
14397         (keyword_is_type_qualifier): Declare.
14399 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
14401         PR c/46547
14402         * c-common.c (in_late_binary_op): Define.
14403         (c_common_truthvalue_conversion): Check in_late_binary_op before
14404         calling c_save_expr.
14405         * c-common.h (in_late_binary_op): Declare.
14407 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
14409         * c-opts.c (c_common_handle_option): Update calls to
14410         set_struct_debug_option.
14412 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
14414         * c-common.h (objc_declare_protocols): Added additional argument.
14415         * stub-objc.c (objc_declare_protocol): Same change.
14417 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
14419         PR c/33193
14420         * c-common.h (build_real_imag_expr): Declare.
14421         * c-semantics.c (build_real_imag_expr): Define.
14423 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
14425         * c-opts.c (c_common_parse_file): Take no arguments.
14426         * c-common.h (c_common_parse_file): Update prototype.
14428 2010-11-16  Jakub Jelinek  <jakub@redhat.com>
14430         PR c++/46401
14431         * c-common.c (warning_candidate_p): Don't track non-const calls
14432         or STRING_CSTs.
14434 2010-11-15  Ian Lance Taylor  <iant@google.com>
14436         * c-lex.c (init_c_lex): Set macro debug callbacks if
14437         flag_dump_go_spec is set.
14439 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
14441         * c-common.h (objc_build_incr_expr_for_property_ref): New.
14442         * stub-objc.c (objc_build_incr_expr_for_property_ref): New.
14444 2010-11-15  Nathan Froyd  <froydnj@codesourcery.com>
14446         PR preprocessor/45038
14447         * c-cppbuiltin.c (c_cpp_builtins): Use different format for C++
14448         dialects.
14450 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
14452         * c-common.h (c_family_lang_mask): Declare.
14453         * c-opts.c (c_family_lang_mask): Make extern.
14454         * c-pragma.c (handle_pragma_diagnostic): Use
14455         control_warning_option.
14457 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
14459         * c-common.c (parse_optimize_options): Update call to
14460         decode_options.
14461         * c-common.h (c_common_handle_option): Update prototype.
14462         * c-opts.c (c_common_handle_option): Take location_t parameter and
14463         pass it to other functions.
14465 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
14467         * c-opts.c (warning_as_error_callback): Remove.
14468         (c_common_initialize_diagnostics): Don't call
14469         register_warning_as_error_callback.
14470         (c_common_handle_option): Handle -Werror=normalized= here.
14472 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
14474         * c-common.c (handle_mode_attribute): Use %' and word "signedness"
14475         in diagnostic.
14476         * c-opts.c (c_common_parse_file): Start diagnostics with lowercase
14477         letter.
14478         * c-pragma.c (handle_pragma_target, handle_pragma_optimize):
14479         Remove trailing '.' from diagnostics.
14480         * c.opt (Wwrite-strings_: Avoid '`' in help text.
14482 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
14484         * c-common.c (parse_optimize_options): Pass global_dc to
14485         decode_options.
14486         * c-opts.c (c_common_handle_option): Pass &global_options to
14487         set_Wstrict_aliasing.
14488         * c.opt (v): Don't mark Common or document here.
14490 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
14492         PR target/44981
14493         * c-format.c (format_type): New type gcc_objc_string_format_type.
14494         (valid_stringptr_type_p): New.
14495         (handle_format_arg_attribute): Use valid_stringptr_type_p ().
14496         (check_format_string): Pass expected type, use
14497         valid_stringptr_type_p (), check that the format string types are
14498         consistent with the format specification.
14499         (decode_format_attr): Warn if NSString is used outside objective-c.
14500         (format_types_orig): Add NSString.
14501         (format_name): New.
14502         (format_flags): New.
14503         (check_format_arg): Handle format strings requiring an external parser.
14504         first_target_format_type: New variable.
14505         (handle_format_attribute): Set up first_target_format_type, pass the
14506         expected format arg string type to check_format_string().
14507         * c-common.h (FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL): New flag.
14508         * stub-objc.c (objc_string_ref_type_p): New.
14509         (objc_check_format_arg): New.
14511 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
14513         Fixed using the Objective-C 2.0 dot-syntax with class names.
14514         * c-common.h (objc_build_class_component_ref): New.
14515         * stub-objc.c (objc_build_class_component_ref): New.
14517 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
14519         * c.opt (Wproperty-assign-default): New option.
14521 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
14523         Implemented -fobjc-std=objc1 flag.
14524         * c.opt (fobjc-std=objc1): New option.
14526 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
14528         Implemented format and noreturn attributes for Objective-C methods.
14529         * c-common.c (handle_noreturn_attribute): Recognize 'noreturn'
14530         attribute for Objective-C methods.
14532 2010-10-31  Jason Merrill  <jason@redhat.com>
14534         * c-common.c (conversion_warning, warn_for_collisions_1): Use
14535         EXPR_LOC_OR_HERE.
14537 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
14539         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
14540         * c-common.h (enum rid): Removed RID_COPIES and RID_IVAR.
14541         (objc_add_property_declaration): Removed arguments for copies and
14542         ivar.
14543         (objc_build_getter_call): Renamed to
14544         objc_maybe_build_component_ref.
14545         (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
14546         (objc_is_property_ref): New.
14547         * c-common.c (c_common_reswords): Removed copies and ivar.
14548         * stub-objc.c (objc_add_property_declaration): Removed arguments
14549         for copies and ivar.
14550         (objc_build_getter_call): Renamed to
14551         objc_maybe_build_component_ref.
14552         (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
14553         (objc_is_property_ref): New.
14555 2010-10-29  Arnaud Charlet  <charlet@adacore.com>
14556             Matthew Gingell  <gingell@adacore.com>
14558         * c-ada-spec.c (separate_class_package): New function.
14559         (pp_ada_tree_identifier): Prefix references to C++ classes with the
14560         name of their enclosing package.
14561         (print_ada_declaration): Use separate_class_package.
14563 2010-10-27  Jason Merrill  <jason@redhat.com>
14565         * c-common.c (c_common_reswords): Add __is_literal_type.
14566         * c-common.h (enum rid): Add RID_IS_LITERAL_TYPE.
14568         * c-common.c (check_case_value): Remove special C++ code.
14570 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
14572         * c-common.h (enum rid): Added RID_READWRITE, RID_ASSIGN,
14573         RID_RETAIN, RID_COPY and RID_NONATOMIC.  Updated RID_FIRST_PATTR
14574         and RID_LAST_PATTR.
14575         (objc_add_property_declaration): Added additional arguments.
14576         (objc_property_attribute_kind): Removed.
14577         (objc_set_property_attr): Removed.
14578         * c-common.c (c_common_reswords): Added readwrite, assign, retain,
14579         copy and nonatomic.
14580         * stub-objc.c (objc_add_property_declaration): Added additional
14581         arguments.
14582         (objc_set_property_attr): Removed.
14584 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
14586         * c-common.h (objc_add_property_variable): Renamed to
14587         objc_add_property_declaration.  Added location argument.
14588         * stub-objc.c (objc_add_property_variable): Same change.
14590 2010-10-23  Nicola Pero  <nicola.pero@meta-innovation.com>
14592         * c-common.h (objc_maybe_printable_name): New.
14593         * stub-objc.c (objc_maybe_printable_name): New.
14595 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
14596             Andrew Pinski  <pinskia@gmail.com>
14598         * c-common.h (c_common_mark_addressable_vec): Declare.
14599         * c-common.c (c_common_mark_addressable_vec): New function.
14601 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
14603         * c-common.h (objc_set_method_type): Removed.
14604         (objc_add_method_declaration): Added boolean argument.
14605         (objc_start_method_definition): Same change.
14606         (objc_build_method_signature): Same change.
14607         * stub-objc.c (objc_set_method_type): Removed.
14608         (objc_add_method_declaration): Added boolean argument.
14609         (objc_start_method_definition): Same change.
14610         (objc_build_method_signature): Same change.
14612 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
14614         * c-common.h (finish_file): Removed.
14615         (objc_write_global_declarations): New.
14616         * c-opts.c (c_common_parse_file): Do not call finish_file.
14617         * stub-objc.c (objc_write_global_declarations): New.
14619 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
14621         Implemented parsing @synthesize and @dynamic for
14622         Objective-C/Objective-C++.
14623         * c-common.h (enum rid): Add RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
14624         (objc_add_synthesize_declaration): New.
14625         (objc_add_dynamic_declaration): New.
14626         * c-common.c (c_common_reswords): Add synthesize and dynamic.
14627         * stub-objc.c (objc_add_synthesize_declaration): New.
14628         (objc_add_dynamic_declaration): New.
14630 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
14632         PR target/46041
14633         * c-cppbuiltin.c (mode_has_fma): Move function here from
14634         builtins.c.  Don't use the fma optab, instead just use the
14635         HAVE_fma* macros, so that __FP_FAST_FMA* will be defined when
14636         using -save-temps.
14638 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
14640         Merge from 'apple/trunk' branch on FSF servers.
14642         2005-11-08  Fariborz Jahanian  <fjahanian@apple.com>
14644         Radar 4330422
14645         * c-common.h (objc_non_volatilized_type): New declaration
14646         * stub-objc.c (objc_non_volatilized_type): New stub.
14648 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
14650         Merge from 'apple/trunk' branch on FSF servers.
14652         2006-03-27  Fariborz Jahanian  <fjahanian@apple.com>
14654         Radar 4133425
14655         * c-common.h (objc_diagnose_private_ivar): New decl.
14656         * stub-objc.c (objc_diagnose_private_ivar): New stub.
14658 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
14660         * c-common.c (c_common_reswords): Add package, RID_AT_PACKAGE.
14661         * c-common.h (enum rid): Add RID_AT_PACKAGE.
14662         (objc_ivar_visibility_kind): New enum.
14663         (objc_set_visibility): Adjust prototype to use visibility enum.
14664         * stub-objc.c (objc_set_visibility): Adjust stub to use
14665         visibility enum.
14667 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
14669         * c-cppbuiltin.c (builtin_define_float_constants): Emit
14670         __FP_FAST_FMA, __FP_FAST_FMAF, and __FP_FAST_FMAL if the machine
14671         has the appropriate fma builtins.
14672         (c_cpp_builtins): Adjust call to builtin_define_float_constants.
14674 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
14676         merge from FSF apple 'trunk' branch.
14677         2006 Fariborz Jahanian  <fjahanian@apple.com>
14679         Radars 4436866, 4505126, 4506903, 4517826
14680         * c-common.c (c_common_resword): Define @property and its attributes.
14681         * c-common.h: Define property attribute enum entries.
14682         (OBJC_IS_PATTR_KEYWORD): New.
14683         (objc_property_attribute_kind): New enum.
14684         Declare objc_set_property_attr (), objc_add_property_variable (),
14685         objc_build_getter_call () and objc_build_setter_call ().
14686         * stub-objc.c (objc_set_property_attr): New stub.
14687         (objc_add_property_variable): Likewise.
14688         (objc_build_getter_call): Likewise.
14689         (objc_build_setter_call) Likewise.
14691 2010-10-13  Iain Sandoe  <iains@gcc.gnu.org>
14693         merge from FSF apple 'trunk' branch.
14694         2006-04-26  Fariborz Jahanian  <fjahanian@apple.com>
14696         Radar 3803157 (method attributes)
14697         * c-common.c (handle_deprecated_attribute): Recognize
14698         objc methods as valid declarations.
14699         * c-common.h: Declare objc_method_decl ().
14700         * stub-objc.c (objc_method_decl): New stub.
14702 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
14704         * c-common.c (parse_optimize_options): Call
14705         decode_cmdline_options_to_array_default_mask before
14706         decode_options.  Update arguments to decode_options.
14707         * c-common.h (c_common_init_options_struct): Declare.
14708         * c-opts.c (c_common_init_options_struct): New.  Split out from
14709         c_common_init_options.
14711 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
14713         Implemented fast enumeration for Objective-C.
14714         * c-common.h (objc_finish_foreach_loop): New.
14715         * stub-objc.c (objc_finish_foreach_loop): New.
14717 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
14719         * c-common.h (struct diagnostic_context): Don't declare here.
14720         (c_common_initialize_diagnostics): Declare using
14721         diagnostic_context typedef.
14722         * c-opts.c (c_common_handle_option): Pass global_dc to
14723         handle_generated_option.
14725 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
14727         * c-opts.c (c_common_handle_option): Pass &global_options_set to
14728         handle_generated_option.
14730 2010-10-03  Ian Lance Taylor  <iant@google.com>
14732         * c.opt (-fplan9-extensions): New option.
14734 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14736         * c-cppbuiltin.c (define__GNUC__, builtin_define_type_precision):
14737         Remove.
14738         (c_cpp_builtins): Call functions from cppbuiltin.c instead
14739         of duplicating code.
14741 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
14743         * c-common.c: Add two new entries for @optional
14744         and @required keywords.
14746         merge from FSF 'apple/trunk' branch.
14747         2006-01-30  Fariborz Jahanian  <fjahanian@apple.com>
14749         Radar 4386773
14750         * c-common.h (RID_AT_OPTIONAL, RID_AT_REQUIRED): Two new
14751         objective-c keywords.
14752         (objc_set_method_opt): New declaration.
14753         * stub-objc.c (objc_set_method_opt): New stub.
14755 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
14757         * c-common.c (handle_optimize_attribute): Pass &global_options to
14758         cl_optimization_save and cl_optimization_restore.
14759         * c-opts.c (c_common_handle_option): Pass &global_options to
14760         handle_generated_option.
14761         * c-pragma.c (handle_pragma_diagnostic): Use option_flag_var.
14762         (handle_pragma_pop_options, handle_pragma_reset_options): Pass
14763         &global_options to cl_optimization_restore.
14765 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
14767         * c-lex.c (c_lex_with_flags): Updated comments for CPP_AT_NAME
14768         Objective-C/Objective-C++ keywords.
14770 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
14772         Merge from 'apple/trunk' branch on FSF servers.
14774         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
14776         Radar 4281748
14777         * c-common.h (objc_check_global_decl): New declaration.
14778         * stub-objc.c (objc_check_global_decl): New stub.
14780 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
14782         * c.opt: Don't use VarExists.
14784 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
14786         * c-common.c (c_cpp_error): Update names of diagnostic_context
14787         members.
14788         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Update names of
14789         cl_optimization members.
14790         * c-opts.c (warning_as_error_callback, c_common_handle_option,
14791         sanitize_cpp_opts, finish_options): Update names of cpp_options
14792         members.
14794 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
14796         * c-common.h (OBJC_IS_CXX_KEYWORD): New macro.  Updated comments.
14797         (objc_is_reserved_word): Removed.
14798         * c-common.c: Updated comments.
14799         * c-lex.c (c_lex_with_flags): Use OBJC_IS_CXX_KEYWORD instead of
14800         objc_is_reserved_word.
14801         * stub-objc.c (objc_is_reserved_word): Removed.
14803 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
14805         * c-common.h (objc_add_method_declaration): Adjust prototype to
14806         include attributes.
14807         (objc_start_method_definition): Likewise.
14808         (objc_build_keyword_decl): Likewise.
14809         * stub-objc.c:(objc_add_method_declaration): Handle attributes.
14810         (objc_start_method_definition): Likewise.
14811         (objc_build_keyword_decl): Likewise.
14813 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
14815         * c-common.h (objc_start_class_interface): Adjust prototype.
14816         (objc_start_category_interface): Likewise.
14817         (objc_start_protocol): Likewise.
14818         * stub-objc.c (objc_start_protocol): Adjust for extra argument.
14819         (objc_start_class_interface): Likewise.
14820         (objc_start_category_interface): Likewise.
14822 2010-09-27  Ian Lance Taylor  <iant@google.com>
14824         * c-common.c (c_common_attribute_table): Add no_split_stack.
14825         (handle_no_split_stack_attribute): New static function.
14827 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
14829         Merge from 'apple/trunk' branch on FSF servers.
14831         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
14833         Radar 4229905
14834         * c-common.h (objc_have_common_type): New declaration.
14835         * stub-objc.c (objc_have_common_type): New stub.
14837         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
14839         Radar 4154928
14840         * c-common.h (objc_common_type): New prototype.
14841         * stub-objc.c (objc_common_type): New stub.
14843 2010-09-24  Jan Hubicka  <jh@suse.cz>
14845         * c-common.c (handle_leaf_attribute): New function.
14846         (struct attribute_spec c_common_att): Add leaf.
14848 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
14850         * c.opt (-all-warnings, -ansi, -assert, -assert=, -comments,
14851         -comments-in-macros, -define-macro, -define-macro=, -dependencies,
14852         -dump, -dump=, -imacros, -imacros=, -include, -include=,
14853         -include-barrier, -include-directory, -include-directory=,
14854         -include-directory-after, -include-directory-after=,
14855         -include-prefix, -include-prefix=, -include-with-prefix,
14856         -include-with-prefix=, -include-with-prefix-after,
14857         -include-with-prefix-after=, -include-with-prefix-before,
14858         -include-with-prefix-before=, -no-integrated-cpp,
14859         -no-line-commands, -no-standard-includes, -no-warnings, -output,
14860         -output=, -pedantic, -pedantic-errors, -preprocess,
14861         -print-missing-file-dependencies, -trace-includes, -traditional,
14862         -traditional-cpp, -trigraphs, -undefine-macro, -undefine-macro=,
14863         -user-dependencies, -verbose, -write-dependencies,
14864         -write-user-dependencies, no-integrated-cpp, traditional): New.
14866 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
14868         PR objc/23710
14869         * c-common.h (objc_start_method_definition): Return bool instead
14870         of void.
14871         * stub-objc.c (objc_start_method_definition): Return bool instead
14872         of void.
14874 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
14876         PR objc/25965
14877         * c-common.h (objc_get_interface_ivars): New declaration.
14878         * stub-objc.c (objc_get_interface_ivars): New stub.
14880 2010-09-15  Ian Lance Taylor  <iant@google.com>
14882         * c-common.c (parse_optimize_options): Do not capitalize warning
14883         messages.  Remove period at end of warning message.
14885 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
14887         * c-common.c (handle_alias_ifunc_attribute): New, broken out of ...
14888         (handle_alias_attribute): ... here.
14889         (handle_ifunc_attribute): New.
14891 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
14893         * c-common.h (do_warn_double_promotion): Declare.
14894         * c-common.c (do_warn_double_promotion): Define.
14896 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
14898         * c.opt (Wdouble-promotion): New.
14900 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14902         * c.opt (falt-external-templates, fhuge-objects, fvtable-gc,
14903         fvtable-thunks, fxref): Mark no longer supported in help text.
14905 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14907         * c.opt (Wimport, fall-virtual, falt-external-templates,
14908         fdefault-inline, fenum-int-equiv, fexternal-templates,
14909         fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
14910         fname-mangling-version-, fnew-abi, fnonnull-objects,
14911         foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
14912         fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
14913         applicable.
14914         (fhandle-exceptions): Mark with Alias and Warn.
14915         * c-opts.c (c_common_handle_option): Don't handle options marked
14916         as ignored.
14918 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14920         * c.opt (Wcomments, Werror-implicit-function-declaration,
14921         ftemplate-depth-, std=c89, std=c9x, std=gnu89, std=gnu9x,
14922         std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Mark as
14923         aliases.
14924         * c-common.c (option_codes): Use OPT_Wcomment instead of
14925         OPT_Wcomments.
14926         * c-opts.c (warning_as_error_callback, c_common_handle_option):
14927         Don't handle options marked as aliases.
14929 2010-08-25  Richard Guenther  <rguenther@suse.de>
14931         * c-common.c (c_common_get_alias_set): Remove special
14932         handling for pointers.
14934 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14936         * c-common.c: Use FOR_EACH_VEC_ELT.
14937         * c-gimplify.c: Likewise.
14938         * c-pragma.c: Likewise.
14940 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14942         * c.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
14943         RejectDriver.
14944         (MMDX): Change back to MMD.  Mark NoDriverArg instead of
14945         RejectDriver.
14946         * c-opts.c (c_common_handle_option): Use OPT_MD and OPT_MMD
14947         instead of OPT_MDX and OPT_MMDX.
14949 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14951         * c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
14953 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
14955         * c.opt (MD, MMD): Change to MDX and MMDX.
14956         * c-opts.c (c_common_handle_option): Use OPT_MMD and OPT_MMDX.
14958 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
14960         * c-opts.c (c_common_handle_option): Call handle_generated_option
14961         instead of handle_option.
14963 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14965         * c-pragma.c (add_to_renaming_pragma_list): Fix call to VEC_safe_push.
14966         (maybe_apply_renaming_pragma): Delete unneeded declarations.
14968 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14970         * c-pragma.c (pending_redefinition): Declare.  Declare a VEC of it.
14971         (pending_redefine_extname): Change type to a VEC.
14972         (add_to_renaming_pragma_list): Update for new type of
14973         pending_redefine_extname.
14974         (maybe_apply_renaming_pragma): Likewise.
14976 2010-08-04  Arnaud Charlet  <charlet@adacore.com>
14978         * c-ada-spec.c (dump_ada_template): Mark underlying instance type as
14979         visited.
14980         (dump_generic_ada_node): Code clean up. Use TREE_VISITED flag to
14981         decide whether a type has already been declared/seen.
14982         Do not go to the original type.
14983         (dump_nested_types): New parameter forward.
14984         Generate forward declaration if needed and mark type as visited.
14985         (print_ada_declaration): Call dump_nested_types if not already done.
14986         Mark types as visited.
14988 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
14990         * c.opt (-print-pch-checksum): Remove option.
14991         * c-opts.c (c_common_handle_option): Don't handle
14992         OPT_print_pch_checksum.
14994 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
14996         * c-common.h (c_common_handle_option): Update prototype and return
14997         value type.
14998         * c-opts.c (c_common_handle_option): Update prototype and return
14999         value type.  Update calls to handle_option and
15000         enable_warning_as_error.
15002 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15004         PR c/45079
15005         * c-pretty-print.c (pp_c_expression): Handle C_MAYBE_CONST_EXPR.
15007 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15009         * c-common.h (c_common_missing_argument): Remove.
15010         * c-opts.c (c_common_missing_argument): Remove.
15011         * c.opt (A, D, F, I, MD, MMD, MQ, MT, U, fconstant-string-class=,
15012         idirafter, imacros, include, isysroot, isystem, iquote): Add
15013         MissingArgError.
15014         * c-objc-common.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
15016 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15018         * c-common.h (c_common_option_lang_mask,
15019         c_common_initialize_diagnostics, c_common_complain_wrong_lang_p):
15020         New.
15021         (c_common_init_options): Update prototype.
15022         * c-opts.c (c_common_option_lang_mask): New.
15023         (c_common_initialize_diagnostics): Split out of
15024         c_common_init_options.
15025         (accept_all_c_family_options, c_common_complain_wrong_lang_p):
15026         New.
15027         (c_common_init_options): Update prototype.  Use decoded options in
15028         search for -lang-asm.
15030 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
15032         * c-common.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
15033         * c-format.c: Likewise.
15035 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15037         * c-common.h: Include diagnostic-core.h. Error if already
15038         included.
15039         * c-semantics.c: Do not define GCC_DIAG_STYLE here.
15041 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15043         * c-common.c (IN_GCC_FRONTEND): Do not undef.
15044         Do not include expr.h
15045         (vector_mode_valid_p): Move here.
15047 2010-06-21  DJ Delorie  <dj@redhat.com>
15049         * c-pragma.c (handle_pragma_diagnostic): Add push/pop,
15050         allow these pragmas anywhere.
15052 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
15054         PR bootstrap/44509
15055         * c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
15056         (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
15057         (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
15058         ggc_strdup instead of xstrdup.
15060 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
15062         * c-cppbuiltin.c: Include cpp-id-data.h.
15063         (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
15064         (lazy_hex_fp_value): New function.
15065         (builtin_define_with_hex_fp_value): Provide definitions lazily.
15067 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15069         * c-gimplify.c: Do not include tree-flow.h
15071 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
15073         PR other/44034
15074         * c-common.c: Rename targetm member:
15075         targetm.enum_va_list -> targetm.enum_va_list_p
15077 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
15079         * c-common.c (shorten_compare): Adjust call to force_fit_type_double.
15081 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
15083         * c-cppbuiltin.c: Do not include except.h.
15085 2010-06-24  Andi Kleen  <ak@linux.intel.com>
15087         * c-common.c (warn_for_omitted_condop): New.
15088         * c-common.h (warn_for_omitted_condop): Add prototype.
15090 2010-06-21  Joseph Myers  <joseph@codesourcery.com>
15092         * c.opt (lang-objc): Remove.
15093         * c-opts.c (c_common_handle_option): Don't handle OPT_lang_objc.
15095 2010-06-21  Joern Rennecke  <joern.rennecke@embecosm.com>
15097         * c-opts.c: Include "tm_p.h".
15099 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
15101         * c-common.c (parse_optimize_options): Update call to
15102         decode_options.
15104 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
15106         * c-common.c (record_types_used_by_current_var_decl): Adjust for
15107         new type of types_used_by_cur_var_decl.
15109 2010-06-17  Joern Rennecke  <joern.rennecke@embecosm.com>
15111         PR bootstrap/44512
15112         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Add cast
15113         for C++ standard compliance.
15115 2010-06-16  Jason Merrill  <jason@redhat.com>
15117         * c.opt: Add -Wnoexcept.
15119 2010-06-16  Richard Guenther  <rguenther@suse.de>
15121         PR c/44555
15122         * c-common.c (c_common_truthvalue_conversion): Remove
15123         premature and wrong optimization concering ADDR_EXPRs.
15125 2010-06-15  Arnaud Charlet  <charlet@adacore.com>
15127         * c-ada-spec.c (dump_sloc): Remove column info.
15128         (is_simple_enum): New function.
15129         (dump_generic_ada_node, print_ada_declaration): Map C enum types to Ada
15130         enum types when relevant.
15132 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15134         * c-common.c (conversion_warning): Warn at expression
15135         location.
15137 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
15139         * c-opts.c (c_common_handle_option): Don't handle
15140         OPT_fshow_column.
15142 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15144         * c-pragma.c (push_alignment): Use typed GC allocation.
15145         (handle_pragma_push_options): Likewise.
15147         * c-common.c (parse_optimize_options): Likewise.
15149         * c-common.h (struct sorted_fields_type): Add variable_size GTY
15150         option.
15152 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
15154         * c-common.c (flag_preprocess_only, flag_undef, flag_no_builtin,
15155         flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
15156         flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
15157         flag_signed_bitfields, warn_strict_null_sentinel,
15158         flag_nil_receivers, flag_zero_link, flag_replace_objc_classes,
15159         flag_gen_declaration, flag_no_gnu_keywords,
15160         flag_implement_inlines, flag_implicit_templates,
15161         flag_implicit_inline_templates, flag_optional_diags,
15162         flag_elide_constructors, flag_default_inline, flag_rtti,
15163         flag_conserve_space, flag_access_control, flag_check_new,
15164         flag_new_for_scope, flag_weak, flag_working_directory,
15165         flag_use_cxa_atexit, flag_use_cxa_get_exception_ptr,
15166         flag_enforce_eh_specs, flag_threadsafe_statics,
15167         flag_pretty_templates): Remove.
15168         * c-common.h (flag_preprocess_only, flag_nil_receivers,
15169         flag_objc_exceptions, flag_objc_sjlj_exceptions, flag_zero_link,
15170         flag_replace_objc_classes, flag_undef, flag_no_builtin,
15171         flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
15172         flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
15173         flag_const_strings, flag_signed_bitfields, flag_gen_declaration,
15174         flag_no_gnu_keywords, flag_implement_inlines,
15175         flag_implicit_templates, flag_implicit_inline_templates,
15176         flag_optional_diags, flag_elide_constructors, flag_default_inline,
15177         flag_rtti, flag_conserve_space, flag_access_control,
15178         flag_check_new, flag_new_for_scope, flag_weak,
15179         flag_working_directory, flag_use_cxa_atexit,
15180         flag_use_cxa_get_exception_ptr, flag_enforce_eh_specs,
15181         flag_threadsafe_statics, flag_pretty_templates,
15182         warn_strict_null_sentinel): Remove.
15183         * c.opt (E, Wstrict-null-sentinel, faccess-control, fasm,
15184         fbuiltin, fcheck-new, fconserve-space, felide-constructors,
15185         fenforce-eh-specs, ffor-scope, fgnu-keywords, fimplement-inlines,
15186         fimplicit-inline-templates, fimplicit-templates,
15187         flax-vector-conversions, fms-extensions, fnil-receivers,
15188         fnonansi-builtins, fpretty-templates, freplace-objc-classes,
15189         frtti, fshort-double, fshort-enums, fshort-wchar,
15190         fsigned-bitfields, fsigned-char, fstats, fthreadsafe-statics,
15191         funsigned-bitfields, funsigned-char, fuse-cxa-atexit,
15192         fuse-cxa-get-exception-ptr, fweak, fworking-directory, fzero-link,
15193         gen-decls, undef): Use Var.
15194         (fdefault-inline, foptional-diags): Document as doing nothing.
15195         * c-opts.c (c_common_handle_option): Remove cases for options now
15196         using Var.  Mark ignored options as such.
15198 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
15200         * c-common.c: Moved to here from parent directory.
15201         * c-common.def: Likewise.
15202         * c-common.h: Likewise.
15203         * c-cppbuiltin.c: Likewise.
15204         * c-dump.c: Likewise.
15205         * c-format.c: Likewise.
15206         * c-format.h : Likewise.
15207         * c-gimplify.c: Likewise.
15208         * c-lex.c: Likewise.
15209         * c-omp.c: Likewise.
15210         * c.opt: Likewise.
15211         * c-opts.c: Likewise.
15212         * c-pch.c: Likewise.
15213         * c-ppoutput.c: Likewise.
15214         * c-pragma.c: Likewise.
15215         * c-pragma.h: Likewise.
15216         * c-pretty-print.c: Likewise.
15217         * c-pretty-print.h: Likewise.
15218         * c-semantics.c: Likewise.
15219         * stub-objc.c: Likewise.
15221         * c-common.c: Include gt-c-family-c-common.h.
15222         * c-pragma.c: Include gt-c-family-c-pragma.h.
15224 Copyright (C) 2010-2024 Free Software Foundation, Inc.
15226 Copying and distribution of this file, with or without modification,
15227 are permitted in any medium without royalty provided the copyright
15228 notice and this notice are preserved.