Daily bump.
[official-gcc.git] / gcc / c-family / ChangeLog
blob0e8784f98210a0e8dc95a1520ec6b6e1f049488f
1 2024-04-13  Mark Wielaard  <mark@klomp.org>
3         * c.opt.urls: Regenerate.
5 2024-04-12  Jason Merrill  <jason@redhat.com>
6             Patrick Palka  <ppalka@redhat.com>
8         PR c++/113141
9         * c.opt: Add -Wcast-user-defined.
11 2024-04-05  Marek Polacek  <polacek@redhat.com>
13         * c-warn.cc (warn_about_parentheses): Remove an #undef.
15 2024-03-27  Jakub Jelinek  <jakub@redhat.com>
17         PR tree-optimization/114469
18         * c-common.cc (resolve_overloaded_builtin): For _BitInt result
19         on !extended targets convert result to the _BitInt type before
20         using VIEW_CONVERT_EXPR.
22 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
24         PR c++/112724
25         * c-pretty-print.cc (pp_c_cast_expression,
26         c_pretty_printer::expression): Handle EXCESS_PRECISION_EXPR like
27         NOP_EXPR.
29 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
31         PR c/114364
32         * c-omp.cc (enum check_loop_binding_expr_ctx): New type.
33         (check_loop_binding_expr): Remove context argument, add ctx
34         argument with check_loop_binding_expr_ctx type at the end.  Don't
35         create diagnostic message from multiple pieces.
36         (c_omp_check_loop_binding_exprs): Adjust callers.
38 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
40         * c-common.cc (resolve_overloaded_atomic_exchange): Instead of setting
41         p1 to VIEW_CONVERT_EXPR<I_type> (*p1), set it to MEM_REF with p1 and
42         (typeof (p1)) 0 operands and I_type type.
43         (resolve_overloaded_atomic_compare_exchange): Similarly for p2.
45 2024-03-05  Mark Wielaard  <mark@klomp.org>
47         * c.opt.urls: Regenerate.
49 2024-03-05  Patrick Palka  <ppalka@redhat.com>
51         * c.opt (Wglobal-module): New warning.
53 2024-03-04  Mark Wielaard  <mark@klomp.org>
55         * c.opt.urls: Regenerate.
57 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
59         PR c/114007
60         * c-lex.cc (c_common_has_attribute): Parse 2 CPP_COLONs with
61         the first one with COLON_SCOPE flag the same as CPP_SCOPE.
63 2024-02-10  Marek Polacek  <polacek@redhat.com>
65         DR 2237
66         PR c++/107126
67         PR c++/97202
68         * c-opts.cc (c_common_post_options): In C++20 or with -Wc++20-compat,
69         turn on -Wtemplate-id-cdtor.
70         * c.opt (Wtemplate-id-cdtor): New.
72 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
74         * c-format.cc (gcc_diag_length_specs): Add t and z modifiers.
75         (PP_FORMAT_CHAR_TABLE, gcc_gfc_char_table): Add entries for t and
76         z modifiers.
78 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
80         * c-ada-spec.cc (dump_template_types): Use HOST_SIZE_T_PRINT_UNSIGNED
81         and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
83 2024-02-01  Lewis Hyatt  <lhyatt@gmail.com>
85         PR preprocessor/105608
86         * c-pch.cc (c_common_read_pch): Adjust line map so that libcpp
87         assigns a location to restored macros which is the same location
88         that triggered the PCH include.
90 2024-01-31  Marek Polacek  <polacek@redhat.com>
92         * c-opts.cc (c_common_post_options): Add an inform saying that
93         -fconcepts-ts is deprecated and will be removed in GCC 15.
95 2024-01-27  Lewis Hyatt  <lhyatt@gmail.com>
97         PR preprocessor/105608
98         * c-pch.cc (c_common_read_pch): Start a new line map before asking
99         libcpp to restore macros defined prior to reading the PCH, instead
100         of afterward.
102 2024-01-23  Jakub Jelinek  <jakub@redhat.com>
104         PR c/113518
105         * c-common.cc (atomic_bitint_fetch_using_cas_loop): Call c_fully_fold
106         on lhs_addr, val and model for C.
108 2024-01-23  Sandra Loosemore  <sandra@codesourcery.com>
110         * c.opt: Improve sorting of warning options.
112 2024-01-16  Eric Botcazou  <ebotcazou@adacore.com>
114         PR ada/113397
115         * c-ada-spec.cc (check_type_name_conflict): Add guard for the
116         presence of DECL_NAME on a TYPE_DECL.
118 2024-01-11  Julian Brown  <julian@codesourcery.com>
120         * c-pretty-print.cc (c_pretty_printer::postfix_expression,
121         c_pretty_printer::expression): Add OMP_ARRAY_SECTION support.
123 2024-01-09  waffl3x  <waffl3x@protonmail.com>
125         PR c++/102609
126         PR c++/102609
127         C++23 P0847R7 (deducing this) - diagnostics.
128         * c-cppbuiltin.cc (c_cpp_builtins): Define
129         __cpp_explicit_this_parameter=202110L feature test macro.
131 2024-01-09  Jakub Jelinek  <jakub@redhat.com>
133         PR c/113262
134         * c-attribs.cc (handle_copy_attribute): Don't use
135         DECL_SOURCE_LOCATION (decl) if decl is not DECL_P, use input_location
136         instead.  Formatting fixes.
138 2024-01-09  Julian Brown  <julian@codesourcery.com>
140         * c-common.h (c_omp_address_inspector): Remove static from get_origin
141         and maybe_unconvert_ref methods.
142         * c-omp.cc (c_omp_split_clauses): Support OMP_ARRAY_SECTION.
143         (c_omp_address_inspector::map_supported_p): Handle OMP_ARRAY_SECTION.
144         (c_omp_address_inspector::get_origin): Avoid dereferencing possibly
145         NULL type when processing template decls.
146         (c_omp_address_inspector::maybe_unconvert_ref): Likewise.
148 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
150         * c.opt.urls: New file, autogenerated by regenerate-opt-urls.py.
152 2023-12-21  Jakub Jelinek  <jakub@redhat.com>
154         * c.opt (Walloc-size): Enable also for C++ and ObjC++.
156 2023-12-21  Jakub Jelinek  <jakub@redhat.com>
158         PR sanitizer/113092
159         * c-ubsan.cc (ubsan_instrument_shift): Workaround for missing
160         ubsan _BitInt support for the shift count.
162 2023-12-20  Florian Weimer  <fweimer@redhat.com>
164         PR c/113050
165         * c-common.cc (get_atomic_generic_size): Use
166         OPT_Wdiscarded_qualifiers instead of
167         OPT_Wincompatible_pointer_types.
169 2023-12-20  Jakub Jelinek  <jakub@redhat.com>
171         * c.opt (Wcalloc-transposed-args): New warning.
172         * c-common.h (warn_for_calloc, warn_for_alloc_size): Declare.
173         * c-warn.cc (warn_for_calloc, warn_for_alloc_size): New functions.
175 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
177         * c-attribs.cc (attr_target_exclusions): Make
178         target/target_clones exclusion target-dependent.
179         (attr_target_clones_exclusions): Ditto, and add target_version.
180         (attr_target_version_exclusions): New.
181         (c_common_attribute_table): Add target_version.
182         (handle_target_version_attribute): New.
183         (handle_target_attribute): Amend comment.
184         (handle_target_clones_attribute): Ditto.
186 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
188         * c-attribs.cc (attr_always_inline_exclusions): New.
189         (attr_target_exclusions): Ditto.
190         (attr_target_clones_exclusions): Ditto.
191         (c_common_attribute_table): Add new exclusion lists.
192         (handle_noinline_attribute): Remove custom exclusion handling.
193         (handle_always_inline_attribute): Ditto.
194         (handle_target_attribute): Ditto.
195         (handle_target_clones_attribute): Ditto.
197 2023-12-13  Patrick Palka  <ppalka@redhat.com>
199         * c.opt: Add -fdiagnostics-all-candidates.
201 2023-12-13  Jason Merrill  <jason@redhat.com>
203         * c-warn.cc (check_address_or_pointer_of_packed_member):
204         Rename to check_address_of_packed_member.
205         (check_and_warn_address_or_pointer_of_packed_member):
206         Rename to check_and_warn_address_of_packed_member.
207         (warn_for_address_or_pointer_of_packed_member):
208         Rename to warn_for_address_of_packed_member.
209         * c-common.h: Adjust.
211 2023-12-13  Jason Merrill  <jason@redhat.com>
213         * c-warn.cc (check_address_or_pointer_of_packed_member):
214         Remove warning based on TYPE_PACKED.
216 2023-12-13  Julian Brown  <julian@codesourcery.com>
218         * c-common.h (c_omp_region_type): Add C_ORT_EXIT_DATA,
219         C_ORT_OMP_EXIT_DATA and C_ORT_ACC_TARGET.
220         (omp_addr_token): Add forward declaration.
221         (c_omp_address_inspector): New class.
222         * c-omp.cc (c_omp_adjust_map_clauses): Mark decls addressable here, but
223         do not change any mapping node types.
224         (c_omp_address_inspector::unconverted_ref_origin,
225         c_omp_address_inspector::component_access_p,
226         c_omp_address_inspector::check_clause,
227         c_omp_address_inspector::get_root_term,
228         c_omp_address_inspector::map_supported_p,
229         c_omp_address_inspector::get_origin,
230         c_omp_address_inspector::maybe_unconvert_ref,
231         c_omp_address_inspector::maybe_zero_length_array_section,
232         c_omp_address_inspector::expand_array_base,
233         c_omp_address_inspector::expand_component_selector,
234         c_omp_address_inspector::expand_map_clause): New methods.
235         (omp_expand_access_chain): New function.
237 2023-12-12  Richard Biener  <rguenther@suse.de>
239         PR ipa/92606
240         * c-attribs.cc (handle_noicf_attribute): Also allow the
241         attribute on global variables.
243 2023-12-10  Ken Matsui  <kmatsui@gcc.gnu.org>
244             Patrick Palka  <ppalka@redhat.com>
246         * c-common.cc (c_common_reswords): Remove all mappings of
247         built-in traits.
248         * c-common.h (enum rid): Remove all RID values for built-in
249         traits.
251 2023-12-07  Andrew Pinski  <pinskia@gmail.com>
252             Jakub Jelinek  <jakub@redhat.com>
254         PR preprocessor/111965
255         * c-opts.cc (c_common_handle_option) <case OPT_fdebug_cpp>: Set
256         cpp_opts->debug to value rather than 1.
258 2023-12-06  David Malcolm  <dmalcolm@redhat.com>
260         * c-opts.cc (c_diagnostic_finalizer): Make "diagnostic" param
261         const.
263 2023-12-06  Alexandre Oliva  <oliva@adacore.com>
265         * c-attribs.cc: Include ipa-strub.h.
266         (handle_strub_attribute): New.
267         (c_common_attribute_table): Add strub.
269 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
271         * c-attribs.cc (c_common_gnu_attribute_table): Add extra
272         braces to work around PR 16333 in older compilers.
274 2023-12-05  Richard Biener  <rguenther@suse.de>
276         PR c/89270
277         * c-common.cc (c_common_type_for_size): Consider
278         registered_builtin_types.
280 2023-12-05  Marek Polacek  <polacek@redhat.com>
282         PR c++/107687
283         PR c++/110997
284         * c-cppbuiltin.cc (c_cpp_builtins): Update __cpp_consteval.
285         * c-opts.cc (c_common_post_options): Pre-C++20, unset
286         flag_immediate_escalation.
287         * c.opt (fimmediate-escalation): New option.
289 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>
291         * c-common.h (c_common_attribute_table): Replace with...
292         (c_common_gnu_attribute_table): ...this.
293         (c_common_format_attribute_table): Change type to
294         scoped_attribute_specs.
295         * c-attribs.cc (c_common_attribute_table): Replace with...
296         (c_common_gnu_attributes, c_common_gnu_attribute_table): ...these
297         new globals.
298         (c_common_format_attribute_table): Change type to
299         scoped_attribute_specs, using...
300         (c_common_format_attributes): ...this as the underlying array.
302 2023-12-01  Florian Weimer  <fweimer@redhat.com>
304         * c.opt (Wdeclaration-missing-parameter-type): New.
306 2023-11-30  Jakub Jelinek  <jakub@redhat.com>
308         PR c++/110349
309         * c-cppbuiltin.cc (c_cpp_builtins): Predefine
310         __cpp_placeholder_variables=202306L for C++26.
312 2023-11-29  Alexandre Oliva  <oliva@adacore.com>
314         * c-attribs.cc (c_common_attribute_table): Add hardbool.
315         (handle_hardbool_attribute): New.
316         (type_valid_for_vector_size): Reject hardbool.
317         * c-common.cc (convert_and_check): Skip warnings for convert
318         and check for hardbool.
319         (c_hardbool_type_attr_1): New.
320         * c-common.h (c_hardbool_type_attr): New.
322 2023-11-27  Alex Coplan  <alex.coplan@arm.com>
323             Iain Sandoe  <iain@sandoe.co.uk>
325         PR c++/60512
326         * c-common.cc (struct hf_feature_info): New.
327         (c_common_register_feature): New.
328         (init_has_feature): New.
329         (has_feature_p): New.
330         * c-common.h (c_common_has_feature): New.
331         (c_family_register_lang_features): New.
332         (c_common_register_feature): New.
333         (has_feature_p): New.
334         * c-lex.cc (init_c_lex): Plumb through has_feature callback.
335         (c_common_has_builtin): Generalize and move common part ...
336         (c_common_lex_availability_macro): ... here.
337         (c_common_has_feature): New.
338         * c-ppoutput.cc (init_pp_output): Plumb through has_feature.
340 2023-11-24  Lewis Hyatt  <lhyatt@gmail.com>
342         PR pch/112319
343         * c-ppoutput.cc (cb_read_pch): Reinitialize the frontend parser
344         after loading a PCH.
346 2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
348         * c.opt (-Wopenmp): Add missing tailing '.'.
350 2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
352         * c.opt (Wopenmp): Add, enable by default.
354 2023-11-23  Marek Polacek  <polacek@redhat.com>
356         * c-opts.cc: Include "target.h".
357         (c_finish_options): Maybe cpp_define _FORTIFY_SOURCE
358         and _GLIBCXX_ASSERTIONS.
360 2023-11-23  Jakub Jelinek  <jakub@redhat.com>
362         * c-common.h (enum rid): Add RID_BUILTIN_STDC: New.
363         * c-common.cc (c_common_reswords): Add __builtin_stdc_bit_ceil,
364         __builtin_stdc_bit_floor, __builtin_stdc_bit_width,
365         __builtin_stdc_count_ones, __builtin_stdc_count_zeros,
366         __builtin_stdc_first_leading_one, __builtin_stdc_first_leading_zero,
367         __builtin_stdc_first_trailing_one, __builtin_stdc_first_trailing_zero,
368         __builtin_stdc_has_single_bit, __builtin_stdc_leading_ones,
369         __builtin_stdc_leading_zeros, __builtin_stdc_trailing_ones and
370         __builtin_stdc_trailing_zeros.  Move __builtin_assoc_barrier
371         alphabetically earlier.
373 2023-11-23  Jakub Jelinek  <jakub@redhat.com>
375         PR c++/110348
376         * c.opt (Wc++26-extensions): New option.
377         * c-cppbuiltin.cc (c_cpp_builtins): For C++26 predefine
378         __cpp_static_assert to 202306L rather than 201411L.
380 2023-11-19  David Malcolm  <dmalcolm@redhat.com>
382         * c-lex.cc: Include "rich-location.h".
384 2023-11-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
386         * c-cppbuiltin.cc (c_cpp_builtins):  Define
387         __LIBGCC_HAVE_LIBATOMIC for libgcov.
389 2023-11-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
391         Revert:
392         2021-08-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
394         * c-cppbuiltin.c (c_cpp_builtins): Define
395         __LIBGCC_GCOV_TYPE_SIZE if flag_building_libgcc is true.
397 2023-11-17  Jakub Jelinek  <jakub@redhat.com>
399         PR c++/107571
400         * c-gimplify.cc (genericize_c_loop): For C++ mark IFN_FALLTHROUGH
401         call at the end of loop body as TREE_NOTHROW.
403 2023-11-14  Lewis Hyatt  <lhyatt@gmail.com>
405         PR pch/9471
406         PR pch/47857
407         * c-opts.cc (c_common_post_options): Set cpp_opts->main_search
408         so libcpp knows it is compiling a header file separately.
410 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
412         * c-warn.cc (conversion_warning): Update call to
413         global_dc->m_option_enabled to use option_enabled_p.
415 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
417         * c-common.cc (c_get_substring_location): Use global_dc's
418         file_cache.
419         * c-format.cc (get_corrected_substring): Likewise.
420         * c-indentation.cc (get_visual_column): Add file_cache param.
421         (get_first_nws_vis_column): Likewise.
422         (detect_intervening_unindent): Likewise.
423         (should_warn_for_misleading_indentation): Use global_dc's
424         file_cache.
425         (assert_get_visual_column_succeeds): Add file_cache param.
426         (ASSERT_GET_VISUAL_COLUMN_SUCCEEDS): Likewise.
427         (assert_get_visual_column_fails): Likewise.
428         (define ASSERT_GET_VISUAL_COLUMN_FAILS): Likewise.
429         (selftest::test_get_visual_column): Create and use a temporary
430         file_cache.
432 2023-11-14  Jakub Jelinek  <jakub@redhat.com>
434         PR c/111309
435         * c-common.cc (check_builtin_function_arguments): Handle
436         BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.
437         * c-gimplify.cc (c_gimplify_expr): If __builtin_c[lt]zg second
438         argument hasn't been folded into constant yet, transform it to one
439         argument call inside of a COND_EXPR which for first argument 0
440         returns the second argument.
442 2023-11-11  Martin Uecker  <uecker@tugraz.at>
444         PR c/110815
445         PR c/112428
446         * c-attribs.cc (build_attr_access_from_parms): Synthesize
447         nonnull attribute for parameters declared with `static`.
449 2023-11-09  Florian Weimer  <fweimer@redhat.com>
451         * c.opt (Wreturn-mismatch): New.
453 2023-11-08  Florian Weimer  <fweimer@redhat.com>
455         * c.opt (fpermissive): Enable for C and ObjC.
456         * c-opts.cc (c_common_post_options): Enable -fpermissive.
458 2023-11-07  Joseph Myers  <joseph@codesourcery.com>
460         * c-format.h (T2X_UI): Rename to T23_UI.
461         (T2X_UL): Rename to T23_UL.
462         (T2X_ULL): Rename to T23_ULL.
463         (T2X_US): Rename to T23_US.
464         (T2X_UC): Rename to T23_UC.
465         (T2X_ST): Rename to T23_ST.
466         (T2X_UPD): Rename to T23_UPD.
467         (T2X_UIM): Rename to T23_UIM.
468         (T2X_D32): Rename to T23_D32.
469         (T2X_D64): Rename to T23_D64.
470         (T2X_D128): Rename to T23_D128.
471         (T2X_I8): Rename to T23_I8.
472         (T2X_I16): Rename to T23_I16.
473         (T2X_I32): Rename to T23_I32.
474         (T2X_I64): Rename to T23_I64.
475         (T2X_U8): Rename to T23_U8.
476         (T2X_U16): Rename to T23_U16.
477         (T2X_U32): Rename to T23_U32.
478         (T2X_U64): Rename to T23_U64.
479         (T2X_IF8): Rename to T23_IF8.
480         (T2X_IF16): Rename to T23_IF16.
481         (T2X_IF32): Rename to T23_IF32.
482         (T2X_IF64): Rename to T23_IF64.
483         (T2X_UF8): Rename to T23_UF8.
484         (T2X_UF16): Rename to T23_UF16.
485         (T2X_UF32): Rename to T23_UF32.
486         (T2X_UF64): Rename to T23_UF64.
487         * c-format.cc: Update all uses of T2X_* macros to use T23_*.
489 2023-11-07  Kwok Cheung Yeung  <kcy@codesourcery.com>
491         * c-attribs.cc (c_common_attribute_table): Add attribute for
492         indirect functions.
493         * c-pragma.h (enum parma_omp_clause): Add entry for indirect clause.
495 2023-11-07  Joseph Myers  <joseph@codesourcery.com>
497         * c-common.cc (flag_isoc2x): Rename to flag_isoc23.
498         (c_common_reswords): Use D_C23 instead of D_C2X.
499         * c-common.h: Refer throughout to C23 instead of C2X in comments.
500         (D_C2X): Rename to D_C23.
501         (flag_isoc2x): Rename to flag_isoc23.
502         * c-cppbuiltin.cc (builtin_define_float_constants): Use
503         flag_isoc23 instead of flag_isoc2x.  Refer to C23 instead of C2x
504         in comments.
505         * c-format.cc: Use STD_C23 instead of STD_C2X and flag_isoc23
506         instead of flag_isoc2x.  Refer to C23 instead of C2X in comments.
507         * c-format.h: Use STD_C23 instead of STD_C2X.
508         * c-lex.cc: Use warn_c11_c23_compat instead of warn_c11_c2x_compat
509         and flag_isoc23 instead of flag_isoc2x.  Refer to C23 instead of
510         C2X in diagnostics.
511         * c-opts.cc: Use flag_isoc23 instead of flag_isoc2x.  Refer to C23
512         instead of C2X in comments.
513         (set_std_c2x): Rename to set_std_c23.
514         * c.opt (Wc11-c23-compat): Use CPP(cpp_warn_c11_c23_compat)
515         CppReason(CPP_W_C11_C23_COMPAT) Var(warn_c11_c23_compat) instead
516         of CPP(cpp_warn_c11_c2x_compat) CppReason(CPP_W_C11_C2X_COMPAT)
517         Var(warn_c11_c2x_compat).
519 2023-11-06  Joseph Myers  <joseph@codesourcery.com>
521         PR c/107954
522         * c.opt (Wc11-c2x-compat): Rename to Wc11-c23-compat and make into
523         a deprecated alias of Wc11-c23-compat.
524         (std=c2x): Rename to std=c23 and make into a deprecated alias of
525         std=c23.
526         (std=gnu2x): Rename to std=gnu23 and make into a deprecated alias
527         of std=gnu23.
528         (std=iso9899:2024): New option.  Alias of std=c23.
529         * c-lex.cc (interpret_float): Use OPT_Wc11_c23_compat instead of
530         OPT_Wc11_c2x_compat.
531         * c-opts.cc (c_common_handle_option): Use OPT_std_c23 instead of
532         OPT_std_c2x and OPT_std_gnu23 instead of OPT_std_gnu2x.
534 2023-11-05  Jakub Jelinek  <jakub@redhat.com>
536         * c-lex.cc (c_common_has_attribute): Return 1 for omp::directive
537         and omp::sequence with -fopenmp or -fopenmp-simd also for C, not
538         just for C++.  Return 1 for omp::decl with -fopenmp or -fopenmp-simd
539         for both C and C++.
541 2023-11-04  David Malcolm  <dmalcolm@redhat.com>
543         * c-pragma.cc:: (handle_pragma_push_options): Fix missing "GCC" in
544         name of pragma in "junk" message.
545         (handle_pragma_pop_options): Likewise.
547 2023-11-04  David Malcolm  <dmalcolm@redhat.com>
549         * c-common.cc: Update for changes to diagnostic_context.
550         * c-indentation.cc: Likewise.
551         * c-opts.cc: Likewise.
552         * c-warn.cc: Likewise.
554 2023-11-01  Martin Uecker  <uecker@tugraz.at>
556         PR c/71219
557         * c.opt (Walloc-size): New option.
559 2023-10-31  David Malcolm  <dmalcolm@redhat.com>
561         * c-warn.cc (warn_for_multistatement_macros): Update for removal
562         of MACRO_MAP_EXPANSION_POINT_LOCATION.
564 2023-10-27  Lewis Hyatt  <lhyatt@gmail.com>
566         PR preprocessor/87299
567         * c-pragma.cc (init_pragma): Register `#pragma GCC target' and
568         related pragmas in preprocess-only mode, and enable early handling.
569         (c_reset_target_pragmas): New function refactoring code from...
570         (handle_pragma_reset_options): ...here.
571         * c-pragma.h (c_reset_target_pragmas): Declare.
573 2023-10-26  David Malcolm  <dmalcolm@redhat.com>
575         * c-attribs.cc (c_common_attribute_table): Add
576         "null_terminated_string_arg".
577         (handle_null_terminated_string_arg_attribute): New.
579 2023-10-23  Lewis Hyatt  <lhyatt@gmail.com>
581         PR preprocessor/36887
582         * c-opts.cc (c_common_init_options): Pass new extra hash map
583         argument to cpp_create_reader().
585 2023-10-20  Marek Polacek  <polacek@redhat.com>
587         PR c/111884
588         * c-common.cc (c_common_get_alias_set): Return -1 for char8_t only
589         in C++.
591 2023-10-20  Patrick Palka  <ppalka@redhat.com>
593         * c-warn.cc (check_address_or_pointer_of_packed_member): Handle
594         type-dependent callee of CALL_EXPR.
596 2023-10-20  Alexandre Oliva  <oliva@adacore.com>
598         * c-attribs.cc (handle_expected_throw_attribute): New.
599         (c_common_attribute_table): Add expected_throw.
601 2023-10-19  Lewis Hyatt  <lhyatt@gmail.com>
603         PR c++/89038
604         * c-pragma.cc (handle_pragma_diagnostic_impl):  Handle
605         -Wunknown-pragmas during early processing.
607 2023-10-15  Jakub Jelinek  <jakub@redhat.com>
609         PR tree-optimization/111800
610         * c-warn.cc (match_case_to_enum_1): Assert w.get_precision ()
611         is smaller or equal to WIDE_INT_MAX_INL_PRECISION rather than
612         w.get_len () is smaller or equal to WIDE_INT_MAX_INL_ELTS.
614 2023-10-12  Jakub Jelinek  <jakub@redhat.com>
616         PR c/102989
617         * c-warn.cc (match_case_to_enum_1): Use wi::to_wide just once instead
618         of 3 times, assert get_len () is smaller than WIDE_INT_MAX_INL_ELTS.
620 2023-10-02  David Malcolm  <dmalcolm@redhat.com>
622         * c-common.cc (maybe_add_include_fixit): Update for renaming of
623         diagnostic_context's show_caret to m_source_printing.enabled.
624         * c-opts.cc (c_common_init_options): Update for renaming of
625         diagnostic_context's colorize_source_p to
626         m_source_printing.colorize_source_p.
628 2023-09-20  Jakub Jelinek  <jakub@redhat.com>
630         PR c++/111392
631         * c-omp.cc (c_omp_directives): Add commented out groupprivate
632         directive entry.
634 2023-09-19  Ben Boeckel  <ben.boeckel@kitware.com>
636         * c-opts.cc (c_common_handle_option): Add fdeps_file variable and
637         -fdeps-format=, -fdeps-file=, and -fdeps-target= parsing.
638         * c.opt: Add -fdeps-format=, -fdeps-file=, and -fdeps-target=
639         flags.
641 2023-09-19  Javier Martinez  <javier.martinez.bugzilla@gmail.com>
643         * c-attribs.cc (handle_hot_attribute): remove warning on
644         RECORD_TYPE and UNION_TYPE when in c_dialect_xx.
645         (handle_cold_attribute): Likewise.
647 2023-09-19  Jakub Jelinek  <jakub@redhat.com>
649         * c-common.cc (c_common_signed_or_unsigned_type): Return INTEGER_TYPE
650         for signed variant of unsigned _BitInt(1).
652 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
654         PR c/102989
655         * c-attribs.cc (type_valid_for_vector_size): Reject vector types
656         with BITINT_TYPE elements even if they have mode precision and
657         suitable size.
659 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
661         PR c/102989
662         * c-common.cc (c_common_reswords): Add _BitInt as keyword.
663         (unsafe_conversion_p): Handle BITINT_TYPE like INTEGER_TYPE.
664         (c_common_signed_or_unsigned_type): Handle BITINT_TYPE.
665         (c_common_truthvalue_conversion, c_common_get_alias_set,
666         check_builtin_function_arguments): Handle BITINT_TYPE like
667         INTEGER_TYPE.
668         (sync_resolve_size): Add ORIG_FORMAT argument.  If
669         FETCH && !ORIG_FORMAT, type is BITINT_TYPE, return -1 if size isn't
670         one of 1, 2, 4, 8 or 16 or if it is 16 but TImode is not supported.
671         (atomic_bitint_fetch_using_cas_loop): New function.
672         (resolve_overloaded_builtin): Adjust sync_resolve_size caller.  If
673         -1 is returned, use atomic_bitint_fetch_using_cas_loop to lower it.
674         Formatting fix.
675         (keyword_begins_type_specifier): Handle RID_BITINT.
676         * c-common.h (enum rid): Add RID_BITINT enumerator.
677         * c-cppbuiltin.cc (c_cpp_builtins): For C call
678         targetm.c.bitint_type_info and predefine __BITINT_MAXWIDTH__
679         and for -fbuilding-libgcc also __LIBGCC_BITINT_LIMB_WIDTH__ and
680         __LIBGCC_BITINT_ORDER__ macros if _BitInt is supported.
681         * c-lex.cc (interpret_integer): Handle CPP_N_BITINT.
682         * c-pretty-print.cc (c_pretty_printer::simple_type_specifier,
683         c_pretty_printer::direct_abstract_declarator,
684         c_pretty_printer::direct_declarator, c_pretty_printer::declarator):
685         Handle BITINT_TYPE.
686         (pp_c_integer_constant): Handle printing of large precision wide_ints
687         which would buffer overflow digit_buffer.
688         * c-warn.cc (conversion_warning, warnings_for_convert_and_check,
689         warnings_for_convert_and_check): Handle BITINT_TYPE like
690         INTEGER_TYPE.
692 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
694         PR c/102989
695         * c-ubsan.cc (ubsan_instrument_shift): Use UBSAN_PRINT_FORCE_INT
696         for type0 type descriptor.
698 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
700         * c-lex.cc (interpret_float): For C diagnostics on FN and FNx suffixes
701         append " before C2X" to diagnostics text and follow behavior of
702         pedwarn_c11.
704 2023-09-01  Jakub Jelinek  <jakub@redhat.com>
706         PR c++/111069
707         * c-opts.cc (c_common_post_options): Change latest_abi_version to 19.
709 2023-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
711         * c.opt: Change spelling to macOS.
713 2023-08-31  Richard Biener  <rguenther@suse.de>
715         PR middle-end/111253
716         * c-pretty-print.cc (c_pretty_printer::primary_expression):
717         Only dump gimple_assign_single_p SSA def RHS.
719 2023-08-25  Sandra Loosemore  <sandra@codesourcery.com>
721         * c-common.h (c_omp_check_loop_binding_exprs): Declare.
722         * c-omp.cc: Include tree-iterator.h.
723         (find_binding_in_body): New.
724         (check_loop_binding_expr_r): New.
725         (LOCATION_OR): New.
726         (check_looop_binding_expr): New.
727         (c_omp_check_loop_binding_exprs): New.
729 2023-08-25  Uros Bizjak  <ubizjak@gmail.com>
731         * c-format.cc (read_any_format_width):
732         Rename TRUE/FALSE to true/false.
734 2023-08-20  Martin Uecker  <uecker@tugraz.at>
736         * c-format.cc: Fix identation.
738 2023-08-20  Tomas Kalibera  <tomas.kalibera@gmail.com>
740         PR c/95130
741         * c-format.cc: skip default format for printf symbol if
742         explicitly declared by prototype.
744 2023-08-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
746         PR c/106537
747         * c.opt (Wcompare-distinct-pointer-types): New option.
749 2023-08-14  Jason Merrill  <jason@redhat.com>
751         * c-cppbuiltin.cc (c_cpp_builtins): Adjust __cpp_concepts.
753 2023-08-11  Jakub Jelinek  <jakub@redhat.com>
755         * c-common.cc (c_common_reswords): Add __typeof_unqual
756         and __typeof_unqual__ spellings of typeof_unqual.
758 2023-08-11  Martin Uecker  <uecker@tugraz.at>
760         PR c/84510
761         * c.opt: Enable warning for C and ObjC.
763 2023-08-05  Martin Uecker  <uecker@tugraz.at>
765         PR c/98536
766         * c-warn.cc (warn_parm_array_mismatch): Do not warn if more
767         bounds are specified.
769 2023-08-04  Tamar Christina  <tamar.christina@arm.com>
771         * c-pragma.h (enum pragma_kind): Add PRAGMA_NOVECTOR.
772         * c-pragma.cc (init_pragma): Use it.
774 2023-08-01  Lewis Hyatt  <lhyatt@gmail.com>
776         * c-common.h (c_init_preprocess): Declare new function.
777         * c-opts.cc (c_common_init): Call it.
778         * c-lex.cc (cb_def_pragma): Add a comment.
779         (get_token): New function wrapping cpp_get_token.
780         (c_lex_with_flags): Use the new wrapper function to support
781         obtaining tokens in preprocess_only mode.
782         (lex_string): Likewise.
783         * c-pragma.cc (pragma_diagnostic_lex_normal): Rename to...
784         (pragma_diagnostic_lex): ...this.
785         (pragma_diagnostic_lex_pp): Remove.
786         (handle_pragma_diagnostic_impl): Call pragma_diagnostic_lex () in
787         all modes.
788         (c_pp_invoke_early_pragma_handler): Adapt to support pragma_lex ()
789         usage.
790         * c-pragma.h (pragma_lex_discard_to_eol): Declare.
792 2023-07-31  Hamza Mahfooz  <someguy@effective-light.com>
794         PR c/65213
795         * c.opt (-Wmissing-variable-declarations): New option.
797 2023-07-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
799         PR middle-end/77928
800         * c-common.cc (check_builtin_function_arguments):
801         Handle BUILT_IN_ISEQSIG.
803 2023-07-05  Robin Dapp  <rdapp@ventanamicro.com>
804             Juzhe-Zhong  <juzhe.zhong@rivai.ai>
806         * c-common.cc (c_common_type_for_mode): Use GET_MODE_PRECISION.
808 2023-06-29  Qing Zhao  <qing.zhao@oracle.com>
810         PR c/77650
811         * c.opt: New option -Wflex-array-member-not-at-end.
813 2023-06-28  Jason Merrill  <jason@redhat.com>
815         PR c++/110344
816         * c-cppbuiltin.cc (c_cpp_builtins): Update __cpp_constexpr.
818 2023-06-26  Richard Biener  <rguenther@suse.de>
820         * c-common.cc (shorten_binary_op): Exit early for VECTOR_TYPE
821         operations.
823 2023-06-23  Marek Polacek  <polacek@redhat.com>
825         * c-common.h (cxx_dialect): Add cxx26 as a dialect.
826         * c-opts.cc (set_std_cxx26): New.
827         (c_common_handle_option): Set options when -std={c,gnu}++2{c,6} is
828         enabled.
829         (c_common_post_options): Adjust comments.
830         * c.opt: Add options for -std=c++26, std=c++2c, -std=gnu++26,
831         and -std=gnu++2c.
832         (std=c++2b): Mark as Undocumented.
833         (std=c++23): No longer Undocumented.
835 2023-06-21  Alexander Monakov  <amonakov@ispras.ru>
837         * c-gimplify.cc (fma_supported_p): New helper.
838         (c_gimplify_expr) [PLUS_EXPR, MINUS_EXPR]: Implement FMA
839         contraction.
841 2023-06-16  Alex Coplan  <alex.coplan@arm.com>
843         * c.opt (Welaborated-enum-base): New.
845 2023-06-13  David Malcolm  <dmalcolm@redhat.com>
847         PR c/84890
848         * known-headers.cc
849         (suggest_missing_header::~suggest_missing_header): Reword note to
850         avoid negative tone of "forgetting".
852 2023-06-07  Jason Merrill  <jason@redhat.com>
854         PR c++/58487
855         * c.opt: Add -Wnrvo.
857 2023-05-26  Martin Uecker  <uecker@tugraz.at>
859         * c-attribs.cc (build_attr_access_from_parms): Split loop to first
860         record all parameters.
862 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
864         * c-ada-spec.cc (has_static_fields): Use _P() defines from tree.h.
865         (dump_ada_declaration): Ditto.
866         (dump_ada_structure): Ditto.
867         * c-common.cc (unsafe_conversion_p): Ditto.
868         (shorten_compare): Ditto.
869         (pointer_int_sum): Ditto.
870         (c_common_truthvalue_conversion): Ditto.
871         (scalar_to_vector): Ditto.
872         * c-common.h (gnu_vector_type_p): Ditto.
873         * c-omp.cc (c_omp_depend_t_p): Ditto.
874         (c_omp_split_clauses): Ditto.
875         * c-ubsan.cc (ubsan_instrument_division): Ditto.
876         * c-warn.cc (conversion_warning): Ditto.
877         (warnings_for_convert_and_check): Ditto.
879 2023-05-18  Joseph Myers  <joseph@codesourcery.com>
881         * c-format.cc (print_char_table): Handle %B like %b.
883 2023-05-15  Joseph Myers  <joseph@codesourcery.com>
885         * c-lex.cc (c_common_has_attribute): Use 202311 as
886         __has_c_attribute return for all C2x attributes.
888 2023-05-15  Patrick Palka  <ppalka@redhat.com>
890         * c-cppbuiltin.cc (c_cpp_builtins): Predefine __cpp_auto_cast
891         for C++23.
893 2023-05-01  Marek Polacek  <polacek@redhat.com>
895         * c-ubsan.cc (ubsan_maybe_instrument_array_ref): Don't copy_node.
897 2023-03-28  David Malcolm  <dmalcolm@redhat.com>
899         PR c/107002
900         * c-common.h (check_for_xor_used_as_pow): Add "rhs_loc" param.
901         * c-warn.cc (check_for_xor_used_as_pow): Add "rhs_loc" param.
902         Reject cases where involving macro expansions.
904 2023-03-28  Jason Merrill  <jason@redhat.com>
906         PR c++/107163
907         * c-common.cc (verify_tree): Don't use sequenced handling
908         for COMPONENT_REF.
910 2023-03-17  Jakub Jelinek  <jakub@redhat.com>
912         PR c/109151
913         * c-ubsan.cc (ubsan_instrument_division): Handle all scalar integral
914         types rather than just INTEGER_TYPE.
916 2023-03-10  Marek Polacek  <polacek@redhat.com>
918         PR sanitizer/108060
919         PR sanitizer/109050
920         * c-gimplify.cc (ubsan_walk_array_refs_r): For a MODIFY_EXPR, instrument
921         the RHS before the LHS.
923 2023-03-04  Jakub Jelinek  <jakub@redhat.com>
925         PR c/107465
926         * c-warn.cc (warn_for_sign_compare): Don't warn for unset bits
927         above innermost zero extension of BIT_NOT_EXPR result.
929 2023-03-04  Jakub Jelinek  <jakub@redhat.com>
931         PR c/107465
932         * c-warn.cc (warn_for_sign_compare): If c_common_get_narrower
933         doesn't return a narrower result, use TYPE_UNSIGNED to set unsignedp0
934         and unsignedp1.  For the one BIT_NOT_EXPR case vs. one without,
935         only check for constant in the non-BIT_NOT_EXPR operand, use std::swap
936         to simplify the code, only warn if BIT_NOT_EXPR operand is extended
937         from narrower unsigned, fix up computation of mask for the constant
938         cases and for unsigned other operand case handle differently
939         BIT_NOT_EXPR result being sign vs. zero extended.
941 2023-03-04  Jakub Jelinek  <jakub@redhat.com>
943         PR c/107846
944         * c-warn.cc: Include langhooks.h.
945         (maybe_warn_shift_overflow): Set type0 to what TREE_TYPE (op0)
946         promotes to rather than TREE_TYPE (op0) itself, if TREE_TYPE (op0)
947         is narrower than type0 and unsigned, use wi::min_precision with
948         UNSIGNED and fold_convert op0 to type0 before emitting the warning.
950 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
952         * c-common.cc (c_common_nodes_and_builtins): Take
953         wchar_type_node for wint_type_node when aliased.
954         (c_stddef_cpp_builtins): Define __WINT_TYPE__, when aliased to
955         wchar_t, to the underlying type rather than wchar_t in
956         non-C++.
957         * c-cppbuiltin.cc (type_suffix): Handle wchar_type_node.
959 2023-02-28  Marek Polacek  <polacek@redhat.com>
961         PR c++/107938
962         * c-warn.cc (check_address_or_pointer_of_packed_member): Check
963         POINTER_TYPE_P.
965 2023-02-28  Jakub Jelinek  <jakub@redhat.com>
967         PR sanitizer/108894
968         * c-common.h (c_strict_flex_array_level_of): Declare.
969         * c-common.cc (c_strict_flex_array_level_of): New function,
970         moved and renamed from c-decl.cc's strict_flex_array_level_of.
971         * c-ubsan.cc (ubsan_instrument_bounds): Fix comment typo.  For
972         C check c_strict_flex_array_level_of whether a trailing array
973         should be treated as flexible member like.  Handle C [0] arrays.
974         Add 1 + index_off_by_one rather than index_off_by_one to bounds
975         and use tree_int_cst_lt rather than tree_int_cst_le for idx vs.
976         bounds comparison.
978 2023-02-23  Jakub Jelinek  <jakub@redhat.com>
980         PR translation/108890
981         * c.opt (fcontracts): Fix description.
983 2023-02-22  Marek Polacek  <polacek@redhat.com>
985         PR c/108880
986         * c-gimplify.cc (c_genericize_control_stmt) <case STATEMENT_LIST>: Pass
987         pset to walk_tree_1.
988         (c_genericize): Call walk_tree with an explicit pset.
990 2023-02-18  Martin Uecker  <uecker@tugraz.at>
992         PR c/105660
993         * c-attribs.cc (append_access_attr): Use order of arguments when
994         construction string.
995         (append_access_attr_idxs): Rename and make static.
996         * c-warn.cc (warn_parm_array_mismatch): Add assertion.
998 2023-02-16  Patrick Palka  <ppalka@redhat.com>
1000         * c-common.h: Mechanically drop static from static inline
1001         functions via s/^static inline/inline/g.
1003 2023-02-01  Jason Merrill  <jason@redhat.com>
1005         * c.opt: Add -Wno-changes-meaning.
1007 2023-01-31  Marek Polacek  <polacek@redhat.com>
1009         PR c++/107593
1010         PR c++/108597
1011         * c-common.h (instantiation_dependent_expression_p): Declare.
1012         * c-warn.cc (warn_duplicated_cond_add_or_warn): If the condition
1013         is dependent, invalidate the chain.
1015 2023-01-26  Marek Polacek  <polacek@redhat.com>
1017         PR c++/105300
1018         * c-pragma.cc (handle_pragma_message): Warn for CPP_STRING_USERDEF.
1020 2023-01-18  Marek Polacek  <polacek@redhat.com>
1022         PR c/108424
1023         * c-common.cc (check_case_value): Check INTEGRAL_TYPE_P.
1025 2023-01-14  Jakub Jelinek  <jakub@redhat.com>
1027         PR c++/108365
1028         * c-common.h (may_shorten_divmod): New static inline function.
1030 2023-01-13  Eric Botcazou  <ebotcazou@adacore.com>
1032         * c-ada-spec.cc (is_float32): New function.
1033         (is_float64): Likewise.
1034         (is_float128): Tweak.
1035         (dump_ada_node) <REAL_TYPE>: Call them to recognize more types.
1037 2023-01-12  Lewis Hyatt  <lhyatt@gmail.com>
1039         PR preprocessor/108244
1040         * c-pragma.cc (c_register_pragma_1): Don't attempt to register any
1041         deferred pragmas if -fdirectives-only.
1042         (init_pragma): Likewise.
1044 2023-01-09  Martin Liska  <mliska@suse.cz>
1046         PR c/107993
1047         * c-attribs.cc (handle_target_clones_attribute): Check for
1048         string constant for all target_clone attribute values.
1050 2023-01-03  Florian Weimer  <fweimer@redhat.com>
1052         * c-cppbuiltin.cc (c_cpp_builtins): Define
1053         __LIBGCC_DWARF_CIE_DATA_ALIGNMENT__.
1055 2023-01-03  Florian Weimer  <fweimer@redhat.com>
1057         Revert:
1058         2023-01-03  Florian Weimer  <fweimer@redhat.com>
1060         * c-cppbuiltin.cc (__LIBGCC_DWARF_REG_SIZES_CONSTANT__):
1061         Define if constant is known.
1063 2023-01-03  Florian Weimer  <fweimer@redhat.com>
1065         Revert:
1066         2023-01-02  Florian Weimer  <fweimer@redhat.com>
1068         * c-cppbuiltin.cc (c_cpp_builtins): Define
1069         __LIBGCC_DWARF_CIE_DATA_ALIGNMENT__.
1071 2023-01-02  Florian Weimer  <fweimer@redhat.com>
1073         * c-cppbuiltin.cc (c_cpp_builtins): Define
1074         __LIBGCC_DWARF_CIE_DATA_ALIGNMENT__.
1076 2023-01-02  Florian Weimer  <fweimer@redhat.com>
1078         * c-cppbuiltin.cc (__LIBGCC_DWARF_REG_SIZES_CONSTANT__):
1079         Define if constant is known.
1081 2022-12-19  Marek Polacek  <polacek@redhat.com>
1083         PR c/98487
1084         * c-format.cc (check_function_format): Use get_attribute_name.
1086 2022-12-16  Qing Zhao  <qing.zhao@oracle.com>
1088         * c.opt (Wstrict-flex-arrays): New option.
1090 2022-12-02  Andrew MacLeod  <amacleod@redhat.com>
1092         * c-attribs.cc (handle_deprecated_attribute): Use type when
1093         using TYPE_NAME.
1095 2022-12-02  Jakub Jelinek  <jakub@redhat.com>
1097         PR c++/84469
1098         * c-omp.cc (c_omp_is_loop_iterator): For range for with structured
1099         binding return TREE_VEC_LENGTH (d->declv) even if decl is equal
1100         to any of the structured binding decls.
1102 2022-11-30  Iskander Shakirzyanov  <iskander@ispras.ru>
1103             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1105         PR driver/107787
1106         * c-common.cc (fold_offsetof,
1107         convert_vector_to_array_for_subscript): Use OPT_Warray_bounds_
1108         instead of OPT_Warray_bounds.
1110 2022-11-24  Jakub Jelinek  <jakub@redhat.com>
1112         * c.opt (fcontract-role=, fcontract-semantic=): Terminate descriptions
1113         with a dot.
1115 2022-11-23  Andrew Pinski  <apinski@marvell.com>
1116             Jakub Jelinek  <jakub@redhat.com>
1118         PR c/107127
1119         * c-gimplify.cc (c_genericize): Use walk_tree_without_duplicates
1120         instead of walk_tree for c_genericize_control_r.
1122 2022-11-23  Jakub Jelinek  <jakub@redhat.com>
1124         * c.opt (fcontract-assumption-mode=, fcontract-continuation-mode=,
1125         fcontract-role=, fcontract-semantic=): Add RejectNegative.
1126         (fcontract-build-level=): Terminate description with dot.
1128 2022-11-19  Jakub Jelinek  <jakub@redhat.com>
1130         * c-cppbuiltin.cc (c_cpp_builtins): Bump __cpp_constexpr
1131         value from 202207L to 202211L.
1133 2022-11-19  Jeff Chapman II  <jchapman@lock3software.com>
1134             Andrew Sutton   <asutton@lock3software.com>
1135             Andrew Marmaduke  <amarmaduke@lock3software.com>
1136             Michael Lopez  <mlopez@lock3software.com>
1137             Jason Merrill   <jason@redhat.com>
1139         * c.opt: Add contracts flags.
1140         * c-cppbuiltin.cc (c_cpp_builtins): Add contracts feature-test
1141         macros.
1143 2022-11-16  Marek Polacek  <polacek@redhat.com>
1145         PR c++/106649
1146         * c-cppbuiltin.cc (c_cpp_builtins): Update value of __cpp_constexpr for
1147         C++23.
1148         * c-opts.cc (c_common_post_options): Set warn_invalid_constexpr
1149         depending on cxx_dialect.
1150         * c.opt (Winvalid-constexpr): New option.
1152 2022-11-16  Jakub Jelinek  <jakub@redhat.com>
1154         * c-common.def (CONCEPT_DECL): New tree, moved here from
1155         cp-tree.def.
1156         * c-common.cc (c_common_init_ts): Handle CONCEPT_DECL.
1157         * c-attribs.cc (handle_deprecated_attribute): Allow deprecated
1158         attribute on CONCEPT_DECL.
1160 2022-11-15  Lewis Hyatt  <lhyatt@gmail.com>
1162         * c-opts.cc (c_finish_options): Use special_fname_builtin () rather
1163         than a hard-coded string.
1165 2022-11-15  Jakub Jelinek  <jakub@redhat.com>
1167         * c-cppbuiltin.cc (c_cpp_builtins): Bump C++23
1168         __cpp_multidimensional_subscript macro value to 202211L.
1170 2022-11-15  Patrick Palka  <ppalka@redhat.com>
1172         PR c++/107638
1173         * c-lex.cc (c_common_has_attribute): Return 1 for init_priority
1174         iff SUPPORTS_INIT_PRIORITY.
1176 2022-11-14  Martin Liska  <mliska@suse.cz>
1178         Revert:
1179         2022-11-09  Martin Liska  <mliska@suse.cz>
1181         * c-target.def: Port to RST.
1183 2022-11-12  Joseph Myers  <joseph@codesourcery.com>
1185         * c-common.cc (c_common_reswords): Use D_C2X instead of D_CXXONLY.
1187 2022-11-11  Jonathan Wakely  <jwakely@redhat.com>
1189         PR c/85487
1190         * c-pragma.cc (handle_pragma_ignore): New function.
1191         (init_pragma): Register region and endregion pragmas.
1193 2022-11-09  Martin Liska  <mliska@suse.cz>
1195         * c-target.def: Port to RST.
1197 2022-11-05  Lewis Hyatt  <lhyatt@gmail.com>
1199         PR preprocessor/55971
1200         * c-ppoutput.cc (adjust_for_newlines): Update comment.
1202 2022-11-03  Jason Merrill  <jason@redhat.com>
1204         * c-opts.cc (c_common_post_options): -fconcepts no longer implies
1205         -fconcepts-ts before C++20.
1207 2022-10-28  Joseph Myers  <joseph@codesourcery.com>
1209         * c-common.cc (def_fn_type): Call build_function_type for
1210         zero-argument variable-argument function.
1211         (c_common_nodes_and_builtins): Build default_function_type with
1212         build_function_type.
1213         * c.opt (fallow-parameterless-variadic-functions): Mark as ignored
1214         option.
1216 2022-10-28  Joseph Myers  <joseph@codesourcery.com>
1218         PR c/61469
1219         * c-common.h (ENUM_UNDERLYING_TYPE, ENUM_FIXED_UNDERLYING_TYPE_P):
1220         New.  Moved from cp/cp-tree.h.
1221         * c-warn.cc (warnings_for_convert_and_check): Do not consider
1222         conversions to enum with underlying type bool to overflow.
1224 2022-10-26  Marek Polacek  <polacek@redhat.com>
1226         PR c++/106393
1227         * c.opt (Wdangling-reference): New.
1229 2022-10-19  Joseph Myers  <joseph@codesourcery.com>
1231         * c-format.h (enum format_lengths): Add FMT_LEN_w8, FMT_LEN_w16,
1232         FMT_LEN_w32, FMT_LEN_w64, FMT_LEN_wf8, FMT_LEN_wf16, FMT_LEN_wf32
1233         and FMT_LEN_wf64.
1234         (NOARGUMENTS, NOLENGTHS): Update definitions.
1235         (T_I8, T2X_I8, T_I16, T2X_I16, T_I32, T2X_I32, T_I64, T2X_I64)
1236         (T_U8, T2X_U8, T_U16, T2X_U16, T_U32, T2X_U32, T_U64, T2X_U64)
1237         (T_IF8, T2X_IF8, T_IF16, T2X_IF16, T_IF32, T2X_IF32, T_IF64)
1238         (T2X_IF64, T_UF8, T2X_UF8, T_UF16, T2X_UF16, T_UF32, T2X_UF32)
1239         (T_UF64, T2X_UF64): New macros.
1240         * c-format.cc (printf_length_specs, scanf_length_specs): Add wN
1241         and wfN length modifiers.
1242         (print_char_table, scan_char_table): Add entries using wN and wfN
1243         length modifiers.
1245 2022-10-18  Joseph Myers  <joseph@codesourcery.com>
1247         PR c/36113
1248         * c-common.cc (c_common_type_for_size): Add fallback to
1249         widest_unsigned_literal_type_node or
1250         widest_integer_literal_type_node for precision that may not
1251         exactly match the precision of those types.
1253 2022-10-14  Jakub Jelinek  <jakub@redhat.com>
1255         * c-cppbuiltin.cc (c_cpp_builtins): If bfloat16_type_node,
1256         predefine __BFLT16_*__ macros and for C++23 also
1257         __STDCPP_BFLOAT16_T__.  Predefine bfloat16_type_node related
1258         macros for -fbuilding-libgcc.
1259         * c-lex.cc (interpret_float): Handle CPP_N_BFLOAT16.
1261 2022-10-14  Jakub Jelinek  <jakub@redhat.com>
1263         PR middle-end/323
1264         PR c++/107097
1265         * c-common.def (EXCESS_PRECISION_EXPR): Remove comment part about
1266         the tree being specific to C/ObjC.
1267         * c-opts.cc (c_common_post_options): Handle flag_excess_precision
1268         in C++ the same as in C.
1269         * c-lex.cc (interpret_float): Set const_type to excess_precision ()
1270         even for C++.
1272 2022-10-13  Joseph Myers  <joseph@codesourcery.com>
1274         * c-cppbuiltin.cc (builtin_define_float_constants): Do not use
1275         value 2 for *_IS_IEC_60559.
1277 2022-10-12  Lewis Hyatt  <lhyatt@gmail.com>
1279         PR preprocessor/60014
1280         PR preprocessor/60723
1281         * c-ppoutput.cc (class token_streamer): Remove member
1282         line_marker_emitted to...
1283         (token_streamer::stream): ...a local variable here. Set
1284         print.prev_was_system_token on all code paths.
1286 2022-10-10  Nathan Sidwell  <nathan@acm.org>
1288         * c-opts.cc (c_common_post_options): Bump abi to 18.
1290 2022-10-10  Marek Polacek  <polacek@redhat.com>
1292         PR c++/106937
1293         * c-pretty-print.cc (pp_c_specifier_qualifier_list): Print only GNU
1294         attributes here.
1295         (c_pretty_printer::direct_abstract_declarator): Print the standard [[]]
1296         attributes here.
1297         (pp_c_attributes): Remove.
1298         (pp_c_attributes_display): Print the [[]] form if appropriate.  Use
1299         get_attribute_name.  Don't print a trailing space when printing the
1300         [[]] form.
1301         * c-pretty-print.h (pp_c_attributes): Remove.
1303 2022-10-07  Qing Zhao  <qing.zhao@oracle.com>
1305         * c-attribs.cc (handle_strict_flex_array_attribute): New function.
1306         (c_common_attribute_table): New item for strict_flex_array.
1307         * c.opt: (fstrict-flex-arrays): New option.
1308         (fstrict-flex-arrays=): New option.
1310 2022-10-07  Martin Liska  <mliska@suse.cz>
1312         * name-hint.h: Use std::move.
1314 2022-10-07  Jakub Jelinek  <jakub@redhat.com>
1316         * c-common.cc (attribute_fallthrough_p): Lookup fallthrough attribute
1317         only in gnu namespace or as standard attribute, treat fallthrough
1318         attributes in other namespaces like any other unknown attribute.
1320 2022-10-06  Joseph Myers  <joseph@codesourcery.com>
1322         * c-common.cc (c_common_reswords): Mark typeof as D_EXT11.  Add
1323         typeof_unqual.
1324         * c-common.h (enum rid): Add RID_TYPEOF_UNQUAL.
1325         (D_EXT11): New macro.  Values of subsequent macros updated.
1327 2022-10-06  Jakub Jelinek  <jakub@redhat.com>
1329         PR c++/106654
1330         * c-attribs.cc (handle_assume_attribute): New function.
1331         (c_common_attribute_table): Add entry for assume attribute.
1332         * c-lex.cc (c_common_has_attribute): Handle
1333         __have_cpp_attribute (assume).
1335 2022-10-04  Jakub Jelinek  <jakub@redhat.com>
1337         * c-omp.cc (c_omp_directives): Uncomment begin declare target
1338         entry.
1340 2022-10-03  Patrick Palka  <ppalka@redhat.com>
1342         * c-common.cc (c_common_reswords): Use RID_IS_SAME instead of
1343         RID_IS_SAME_AS.
1345 2022-10-03  Joseph Myers  <joseph@codesourcery.com>
1347         * c-cppbuiltin.cc (builtin_define_float_constants): Do not
1348         special-case __*_EPSILON__ setting for IBM long double for C2x.
1350 2022-09-30  Patrick Palka  <ppalka@redhat.com>
1352         * c-common.cc (c_common_reswords): Use cp/cp-trait.def to handle
1353         C++ traits.
1354         * c-common.h (enum rid): Likewise.
1356 2022-09-29  Joseph Myers  <joseph@codesourcery.com>
1358         * c-lex.cc (c_common_has_attribute): Handle noreturn attribute for
1359         C.
1361 2022-09-29  Patrick Palka  <ppalka@redhat.com>
1363         * c-common.cc (c_common_reswords): Add __remove_cv,
1364         __remove_reference and __remove_cvref.
1365         * c-common.h (enum rid): Add RID_REMOVE_CV, RID_REMOVE_REFERENCE
1366         and RID_REMOVE_CVREF.
1368 2022-09-27  Marek Polacek  <polacek@redhat.com>
1370         PR c++/101165
1371         PR c++/106882
1372         * c-cppbuiltin.cc (c_cpp_builtins): Define __cpp_implicit_move.
1374 2022-09-27  Marek Polacek  <polacek@redhat.com>
1376         * c-format.cc (c_keywords): Drop nothrow.
1378 2022-09-27  Jakub Jelinek  <jakub@redhat.com>
1380         PR c++/106651
1381         * c-cppbuiltin.cc (c_cpp_builtins): Predefine
1382         __cpp_static_call_operator=202207L for C++23.
1384 2022-09-27  Jakub Jelinek  <jakub@redhat.com>
1386         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_ASSUME,
1387         PRAGMA_OMP_ASSUMES and PRAGMA_OMP_BEGIN.  Rename
1388         PRAGMA_OMP_END_DECLARE_TARGET to PRAGMA_OMP_END.
1389         * c-pragma.cc (omp_pragmas): Add assumes and begin.
1390         For end rename PRAGMA_OMP_END_DECLARE_TARGET to PRAGMA_OMP_END.
1391         (omp_pragmas_simd): Add assume.
1392         * c-common.h (c_omp_directives): Declare.
1393         * c-omp.cc (omp_directives): Rename to ...
1394         (c_omp_directives): ... this.  No longer static.  Uncomment
1395         assume, assumes, begin assumes and end assumes entries.
1396         In end declare target entry rename PRAGMA_OMP_END_DECLARE_TARGET
1397         to PRAGMA_OMP_END.
1398         (c_omp_categorize_directive): Adjust for omp_directives to
1399         c_omp_directives renaming.
1401 2022-09-27  Jakub Jelinek  <jakub@redhat.com>
1403         PR c++/106652
1404         PR c++/85518
1405         * c-common.cc (c_common_reswords): Change _Float{16,32,64,128} and
1406         _Float{32,64,128}x flags from D_CONLY to 0.
1407         (shorten_binary_op): Punt if common_type returns error_mark_node.
1408         (shorten_compare): Likewise.
1409         (c_common_nodes_and_builtins): For C++ record _Float{16,32,64,128}
1410         and _Float{32,64,128}x builtin types if available.  For C++
1411         clear float128t_type_node.
1412         * c-cppbuiltin.cc (c_cpp_builtins): Predefine
1413         __STDCPP_FLOAT{16,32,64,128}_T__ for C++23 if supported.
1414         * c-lex.cc (interpret_float): For q/Q suffixes prefer
1415         float128t_type_node over float128_type_node.  Allow
1416         {f,F}{16,32,64,128} suffixes for C++ if supported with pedwarn
1417         for C++20 and older.  Allow {f,F}{32,64,128}x suffixes for C++
1418         with pedwarn.  Don't call excess_precision_type for C++.
1420 2022-09-26  Marek Polacek  <polacek@redhat.com>
1422         PR c++/106656
1423         * c-cppbuiltin.cc (c_cpp_builtins): Update value of __cpp_char8_t
1424         for C++20.
1426 2022-09-23  Marek Polacek  <polacek@redhat.com>
1428         PR c++/106784
1429         * c-common.cc (c_common_reswords): Add __is_convertible and
1430         __is_nothrow_convertible.
1431         * c-common.h (enum rid): Add RID_IS_CONVERTIBLE and
1432         RID_IS_NOTHROW_CONVERTIBLE.
1434 2022-09-22  David Malcolm  <dmalcolm@redhat.com>
1436         PR c/106830
1437         * c-warn.cc (check_for_xor_used_as_pow): Don't try checking
1438         values that don't fit in uhwi.
1440 2022-09-15  Richard Biener  <rguenther@suse.de>
1442         * c-common.h (build_void_list_node): Remove.
1443         * c-common.cc (c_common_nodes_and_builtins): Do not initialize
1444         void_list_node.
1446 2022-09-09  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1448         * c-format.cc (convert_format_name_to_system_name): Fix warning.
1450 2022-09-07  Joseph Myers  <joseph@codesourcery.com>
1452         * c-common.cc (c_common_reswords): Use D_C2X instead of D_CXXONLY
1453         for alignas, alignof, bool, false, static_assert, thread_local and
1454         true.
1456 2022-09-07  Jakub Jelinek  <jakub@redhat.com>
1458         * c.opt (Winvalid-utf8): Use ObjC instead of objC.  Remove
1459         " in comments" from description.
1460         (Wunicode): New option.
1462 2022-09-06  Jakub Jelinek  <jakub@redhat.com>
1464         PR c/106836
1465         * c-omp.cc (c_omp_split_clauses): Handle OMP_CLAUSE_DOACROSS.
1467 2022-09-03  Jakub Jelinek  <jakub@redhat.com>
1469         * c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_DOACROSS.
1470         * c-omp.cc (c_finish_omp_depobj): Check also for OMP_CLAUSE_DOACROSS
1471         clause and diagnose it.  Don't handle OMP_CLAUSE_DEPEND_SOURCE and
1472         OMP_CLAUSE_DEPEND_SINK.  Assert kind is not OMP_CLAUSE_DEPEND_INVALID.
1474 2022-09-02  David Malcolm  <dmalcolm@redhat.com>
1476         PR c/90885
1477         * c-common.h (check_for_xor_used_as_pow): New decl.
1478         * c-lex.cc (c_lex_with_flags): Add DECIMAL_INT to flags as appropriate.
1479         * c-warn.cc (check_for_xor_used_as_pow): New.
1480         * c.opt (Wxor-used-as-pow): New.
1482 2022-09-01  Jason Merrill  <jason@redhat.com>
1484         * c-common.cc (c_common_nodes_and_builtins): Set TREE_STRING_FLAG on
1485         char8_t.
1486         (braced_list_to_string): Check for char-sized elements.
1488 2022-09-01  Jakub Jelinek  <jakub@redhat.com>
1490         PR c++/106655
1491         * c.opt (-Winvalid-utf8): New warning.
1492         * c-opts.cc (c_common_handle_option) <case OPT_finput_charset_>:
1493         Set cpp_opts->cpp_input_charset_explicit.
1494         (c_common_post_options): If -finput-charset=UTF-8 is explicit
1495         in C++23, enable -Winvalid-utf8 by default and if -pedantic
1496         or -pedantic-errors, make it a pedwarn.
1498 2022-08-31  Joseph Myers  <joseph@codesourcery.com>
1500         * c-attribs.cc (handle_deprecated_attribute): Check and pedwarn
1501         for LABEL_DECL.
1502         * c-common.cc (c_add_case_label): Add argument ATTRS.  Call
1503         decl_attributes.
1504         * c-common.h (do_case, c_add_case_label): Update declarations.
1505         * c-lex.cc (c_common_has_attribute): For C, produce a result of
1506         201910 for fallthrough and 202106 for maybe_unused.
1508 2022-08-26  Marek Polacek  <polacek@redhat.com>
1510         PR c++/81159
1511         * c.opt (Wself-move): New option.
1513 2022-08-26  Jakub Jelinek  <jakub@redhat.com>
1515         * c-common.cc (check_builtin_function_arguments): Handle
1516         BUILT_IN_ISSIGNALING.
1518 2022-08-26  Jakub Jelinek  <jakub@redhat.com>
1520         PR c++/106648
1521         * c-cppbuiltin.cc (c_cpp_builtins): Predefine
1522         __cpp_named_character_escapes to 202207L.
1524 2022-08-25  Marek Polacek  <polacek@redhat.com>
1526         * c-common.cc (c_common_reswords): Enable nullptr in C2X.
1527         (c_common_nodes_and_builtins): Create the built-in node for nullptr.
1528         * c-common.h (enum c_tree_index): Add CTI_NULLPTR, CTI_NULLPTR_TYPE.
1529         (struct c_common_resword): Resize the disable member.
1530         (D_C2X): Add.
1531         (nullptr_node): Define.
1532         (nullptr_type_node): Define.
1533         (NULLPTR_TYPE_P): Define.
1534         * c-pretty-print.cc (c_pretty_printer::simple_type_specifier): Handle
1535         NULLPTR_TYPE.
1536         (c_pretty_printer::direct_abstract_declarator): Likewise.
1537         (c_pretty_printer::constant): Likewise.
1539 2022-08-16  Tom Honermann  <tom@honermann.net>
1541         PR c++/106423
1542         * c-opts.cc (c_common_post_options): Disable -Wc++20-compat
1543         diagnostics in C++20 and later.
1544         * c.opt (Wc++20-compat): Enable hooks for the preprocessor.
1546 2022-08-11  Marek Polacek  <polacek@redhat.com>
1548         PR middle-end/102633
1549         * c-gimplify.cc (c_gimplify_expr) <case DECL_EXPR>: Don't call
1550         suppress_warning here.
1552 2022-08-08  Tom Honermann  <tom@honermann.net>
1554         PR preprocessor/106426
1555         * c-opts.cc (c_common_post_options): Assign cpp_opts->unsigned_utf8char
1556         subject to -fchar8_t, -fsigned-char, and/or -funsigned-char.
1558 2022-08-08  Tom Honermann  <tom@honermann.net>
1560         * c-lex.cc (lex_string, lex_charconst): Use char8_t as the type
1561         of CPP_UTF8CHAR and CPP_UTF8STRING when char8_t support is
1562         enabled.
1563         * c-opts.cc (c_common_post_options): Set flag_char8_t if
1564         targeting C2x.
1566 2022-07-31  Lewis Hyatt  <lhyatt@gmail.com>
1568         PR c++/66290
1569         * c-common.h: Rename global done_lexing to
1570         override_libcpp_locations.
1571         * c-common.cc (c_cpp_diagnostic): Likewise.
1572         * c-opts.cc (c_common_finish): Set override_libcpp_locations
1573         (formerly done_lexing) immediately prior to calling cpp_finish ().
1575 2022-07-27  Lewis Hyatt  <lhyatt@gmail.com>
1577         * c-ppoutput.cc (token_streamer::stream): Update input_location
1578         prior to streaming each token.
1580 2022-07-23  Immad Mir  <mirimmad@outlook.com>
1582         * c-attribs.cc: (c_common_attribute_table): add three new attributes
1583         namely: fd_arg, fd_arg_read and fd_arg_write.
1584         (handle_fd_arg_attribute): New.
1586 2022-07-15  Marek Polacek  <polacek@redhat.com>
1588         PR c++/104477
1589         * c-common.cc (c_common_reswords): Add
1590         __reference_constructs_from_temporary and
1591         __reference_converts_from_temporary.
1592         * c-common.h (enum rid): Add RID_REF_CONSTRUCTS_FROM_TEMPORARY and
1593         RID_REF_CONVERTS_FROM_TEMPORARY.
1595 2022-07-15  Jonathan Wakely  <jwakely@redhat.com>
1597         * c-format.cc (class range_label_for_format_type_mismatch):
1598         Adjust to new label_text API.
1600 2022-07-11  Lewis Hyatt  <lhyatt@gmail.com>
1602         PR preprocessor/106252
1603         * c-pragma.cc (handle_pragma_diagnostic_impl): Don't look up the
1604         option argument prior to verifying the option was found.
1606 2022-07-07  David Malcolm  <dmalcolm@redhat.com>
1608         * c-format.cc (range_label_for_format_type_mismatch::get_text):
1609         Update for removal of label_text::maybe_free in favor of automatic
1610         memory management.
1612 2022-07-06  Lewis Hyatt  <lhyatt@gmail.com>
1614         PR preprocessor/53920
1615         PR c++/53431
1616         * c-common.cc (c_option_is_from_cpp_diagnostics): New function.
1617         * c-common.h (c_option_is_from_cpp_diagnostics): Declare.
1618         (c_pp_stream_token): Declare.
1619         * c-ppoutput.cc (init_pp_output): Refactor logic about skipping
1620         pragmas to...
1621         (should_output_pragmas): ...here. New function.
1622         (token_streamer::stream): Support handling early pragmas.
1623         (do_line_change): Likewise.
1624         (c_pp_stream_token): New function.
1625         * c-pragma.cc (struct pragma_diagnostic_data): New helper class.
1626         (pragma_diagnostic_lex_normal): New function. Moved logic for
1627         interpreting GCC diagnostic pragmas here.
1628         (pragma_diagnostic_lex_pp): New function for parsing diagnostic pragmas
1629         directly from libcpp.
1630         (handle_pragma_diagnostic): Refactor into helper function...
1631         (handle_pragma_diagnostic_impl): ...here.  New function.
1632         (handle_pragma_diagnostic_early): New function.
1633         (handle_pragma_diagnostic_early_pp): New function.
1634         (struct pragma_ns_name): Renamed to...
1635         (struct pragma_pp_data): ...this.  Add new "early_handler" member.
1636         (c_register_pragma_1): Support early pragmas in the preprocessor.
1637         (c_register_pragma_with_early_handler): New function.
1638         (c_register_pragma): Support the new early handlers in struct
1639         internal_pragma_handler.
1640         (c_register_pragma_with_data): Likewise.
1641         (c_register_pragma_with_expansion): Likewise.
1642         (c_register_pragma_with_expansion_and_data): Likewise.
1643         (c_invoke_early_pragma_handler): New function.
1644         (c_pp_invoke_early_pragma_handler): New function.
1645         (init_pragma): Add early pragma support for diagnostic pragmas.
1646         * c-pragma.h (struct internal_pragma_handler): Add new early handler
1647         members.
1648         (c_register_pragma_with_early_handler): Declare.
1649         (c_invoke_early_pragma_handler): Declare.
1650         (c_pp_invoke_early_pragma_handler): Declare.
1652 2022-07-05  Marek Polacek  <polacek@redhat.com>
1654         PR c++/105626
1655         * c-format.cc (check_format_arg): Don't emit -Wformat warnings with
1656         u8 strings.
1658 2022-07-01  Marek Polacek  <polacek@redhat.com>
1660         PR c++/106111
1661         * c-common.h (enum rid): Update RID_LAST_CXX20.
1663 2022-06-30  Jonathan Wakely  <jwakely@redhat.com>
1665         * known-headers.cc (get_stdlib_header_for_name): Add <time.h>
1666         names.
1668 2022-06-24  Jason Merrill  <jason@redhat.com>
1670         PR c++/87729
1671         PR c++/20423
1672         * c.opt (Woverloaded-virtual): Add levels, include in -Wall.
1674 2022-06-18  Jakub Jelinek  <jakub@redhat.com>
1676         * c-ubsan.cc (ubsan_instrument_division, ubsan_instrument_shift):
1677         Use flag_sanitize_trap & SANITIZE_??? instead of
1678         flag_sanitize_undefined_trap_on_error.  If 2 sanitizers are involved
1679         and flag_sanitize_trap differs for them, emit __builtin_trap only
1680         for the comparison where trap is requested.
1681         (ubsan_instrument_vla, ubsan_instrument_return): Use
1682         lag_sanitize_trap & SANITIZE_??? instead of
1683         flag_sanitize_undefined_trap_on_error.
1685 2022-06-13  Jason Merrill  <jason@redhat.com>
1687         * c-ubsan.cc (ubsan_instrument_return): Use BUILTINS_LOCATION.
1689 2022-05-27  Marek Polacek  <polacek@redhat.com>
1691         PR c/90658
1692         * c-attribs.cc (get_priority): Check FUNCTION_DECL.
1694 2022-05-27  Jakub Jelinek  <jakub@redhat.com>
1696         * c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ENTER.
1698 2022-05-20  David Malcolm  <dmalcolm@redhat.com>
1700         * c-format.cc: Replace uses of "FINAL" and "OVERRIDE" with "final"
1701         and "override".
1702         * c-pretty-print.h: Likewise.
1704 2022-05-18  Marek Polacek  <polacek@redhat.com>
1706         PR c/105131
1707         * c.opt (Wenum-int-mismatch): New.
1709 2022-05-18  Marek Polacek  <polacek@redhat.com>
1711         PR c++/105497
1712         * c-warn.cc (c_do_switch_warnings): Don't warn about unhandled
1713         enumerator when it was marked with attribute unused.
1715 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1717         * c-ada-spec.cc (dump_ada_node) <COMPLEX_TYPE>: Deal with usual
1718         floating-point complex types.
1719         <POINTER_TYPE>: Do not use limited_with clause if the designated
1720         type is a scalar type.
1722 2022-05-17  Jakub Jelinek  <jakub@redhat.com>
1724         * c-omp.cc (c_finish_omp_depobj): Handle
1725         OMP_CLAUSE_DEPEND_INOUTSET.
1727 2022-05-16  Jason Merrill  <jason@redhat.com>
1729         PR c/105492
1730         * c-attribs.cc (handle_mode_attribute): Don't fix broken typedefs
1731         here.
1733 2022-05-16  Martin Liska  <mliska@suse.cz>
1735         * c-common.cc (ARRAY_SIZE): Use ARRAY_SIZE.
1736         (c_common_nodes_and_builtins): Likewise.
1737         * c-format.cc (check_tokens): Likewise.
1738         (check_plain): Likewise.
1739         * c-pragma.cc (c_pp_lookup_pragma): Likewise.
1740         (init_pragma): Likewise.
1741         * known-headers.cc (get_string_macro_hint): Likewise.
1742         (get_stdlib_header_for_name): Likewise.
1743         * c-attribs.cc: Likewise.
1745 2022-05-13  Richard Biener  <rguenther@suse.de>
1747         * c-omp.cc: Remove gimple-fold.h include.
1749 2022-05-12  Jakub Jelinek  <jakub@redhat.com>
1751         * c-common.h (enum rid): Add RID_OMP_ALL_MEMORY.
1752         * c-omp.cc (c_finish_omp_depobj): Don't build_fold_addr_expr
1753         if null_pointer_node.
1755 2022-05-11  Martin Liska  <mliska@suse.cz>
1757         PR target/105355
1758         * c-opts.cc (c_common_handle_option): Change option name.
1759         * c.opt: Remove Joined and use Separate option.
1761 2022-05-09  Alex Coplan  <alex.coplan@arm.com>
1763         * c-common.h (get_dump_info): Delete.
1764         * c-gimplify.cc (c_genericize): Get TDI_original dump file info
1765         from the global dump_manager instead of the (now obsolete)
1766         get_dump_info.
1767         * c-opts.cc (original_dump_file): Delete.
1768         (original_dump_flags): Delete.
1769         (c_common_parse_file): Switch to using global dump_manager to
1770         manage the original dump file; fix leak of dump file.
1771         (get_dump_info): Delete.
1773 2022-05-07  Marek Polacek  <polacek@redhat.com>
1775         PR c++/101833
1776         PR c++/47634
1777         * c-attribs.cc (positional_argument): Pass POS by reference.  Deal
1778         with FN being either a function declaration or function type.  Use
1779         maybe_adjust_arg_pos_for_attribute.
1780         * c-common.cc (check_function_arguments): Maybe pass FNDECL down to
1781         check_function_format.
1782         * c-common.h (maybe_adjust_arg_pos_for_attribute): Declare.
1783         (positional_argument): Adjust.
1784         * c-format.cc (get_constant): Rename to ...
1785         (validate_constant): ... this.  Take EXPR by reference.  Return bool
1786         instead of tree.
1787         (handle_format_arg_attribute): Don't overwrite FORMAT_NUM_EXPR by the
1788         return value of validate_constant.
1789         (decode_format_attr): Don't overwrite FORMAT_NUM_EXPR and
1790         FIRST_ARG_NUM_EXPR by the return value of validate_constant.
1791         (check_function_format): Adjust a parameter name.
1792         (handle_format_attribute): Maybe pass FNDECL down to decode_format_attr.
1794 2022-05-04  Marek Polacek  <polacek@redhat.com>
1796         * c-warn.cc (warnings_for_convert_and_check): Convert constants of type
1797         char to int.
1799 2022-04-30  Jason Merrill  <jason@redhat.com>
1801         PR c/100545
1802         * c-attribs.cc (handle_mode_attribute): Copy attributes, aligned,
1803         and typedef.
1804         * c-common.cc (set_underlying_type): Add assert.
1806 2022-04-26  Patrick Palka  <ppalka@redhat.com>
1808         PR c++/105304
1809         * c-common.cc (verify_tree) [restart]: Move up to before the
1810         NULL test.
1812 2022-04-11  Jakub Jelinek  <jakub@redhat.com>
1814         PR c++/105186
1815         * c-common.cc (c_common_nodes_and_builtins): After registering __int%d
1816         and __int%d__ builtin types, initialize corresponding ridpointers
1817         entry.
1819 2022-03-30  Marek Polacek  <polacek@redhat.com>
1821         PR c++/101030
1822         * c-warn.cc (conversion_warning) <case COND_EXPR>: Don't call
1823         conversion_warning when OP1 is null.
1825 2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>
1827         * c.opt (Wc++11-extensions, Wc++14-extensions, Wc++17-extensions)
1828         (Wc++20-extensions, Wc++23-extensions): Remove 'LangEnabledBy'
1829         option properties.
1831 2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>
1833         * c.opt (Wuse-after-free): Remove.
1835 2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>
1837         * c.opt (Warray-bounds): Remove.
1839 2022-03-26  Thomas Schwinge  <thomas@codesourcery.com>
1841         * c.opt: Properly quote comment.
1843 2022-03-25  Eric Botcazou  <ebotcazou@adacore.com>
1845         * c-ada-spec.cc (dump_ada_import): Deal with the "section" attribute
1846         (dump_ada_node) <POINTER_TYPE>: Do not modify and pass the name, but
1847         the referenced type instead.  Deal with the anonymous original type
1848         of a typedef'ed type.  In the actual access case, follow the chain
1849         of external subtypes.
1850         <TYPE_DECL>: Tidy up control flow.
1852 2022-03-21  Qian Jianhua  <qianjh@cn.fujitsu.com>
1854         * c-ada-spec.cc: Change array length
1856 2022-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>
1858         * c-common.cc (c_family_tests): Call the new tests.
1859         * c-common.h (c_diagnostic_tests): Declare.
1860         (c_opt_problem_cc_tests): Likewise.
1862 2022-03-19  Jakub Jelinek  <jakub@redhat.com>
1864         PR c++/101515
1865         * c-pretty-print.cc (c_fold_indirect_ref_for_warn): For C++ don't
1866         return COMPONENT_REFs with FIELD_DECLs whose containing scope can't
1867         be printed.
1869 2022-03-16  Christophe Lyon  <christophe.lyon@arm.com>
1870             Roger Sayle  <roger@nextmovesoftware.com>
1872         PR c/98198
1873         * c-attribs.cc (decl_or_type_attrs): Add error_mark_node check.
1875 2022-03-16  Patrick Palka  <ppalka@redhat.com>
1877         PR c++/96780
1878         * c.opt: Add -ffold-simple-inlines.
1880 2022-03-13  Tobias Burnus  <tobias@codesourcery.com>
1882         * c-target.def (check_string_object_format_arg): Fix description typo.
1884 2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>
1886         PR other/65095
1887         * c-common.h (c_omp_map_clause_name): Remove.
1888         * c-omp.cc (c_omp_map_clause_name): Remove.
1890 2022-03-09  Jakub Jelinek  <jakub@redhat.com>
1892         PR c/104711
1893         * c-opts.cc (c_common_post_options): Don't enable
1894         -Wshift-negative-value from -Wextra for C++20 or later.
1895         * c-ubsan.cc (ubsan_instrument_shift): Adjust comments.
1896         * c-warn.cc (maybe_warn_shift_overflow): Use TYPE_OVERFLOW_WRAPS
1897         instead of TYPE_UNSIGNED.
1899 2022-03-07  Jakub Jelinek  <jakub@redhat.com>
1901         * c-attribs.cc: Fix up duplicated word issue in a comment.
1903 2022-03-01  Martin Liska  <mliska@suse.cz>
1905         PR ipa/104533
1906         * c-attribs.cc (handle_target_clones_attribute): Use
1907         get_target_clone_attr_len and report warning soon.
1909 2022-02-17  Jonathan Wakely  <jwakely@redhat.com>
1911         * c-pragma.cc (handle_pragma_pack): Remove parameter name.
1912         (handle_pragma_weak): Likewise.
1913         (handle_pragma_scalar_storage_order): Likewise.
1914         (handle_pragma_redefine_extname): Likewise.
1915         (handle_pragma_visibility): Likewise.
1916         (handle_pragma_diagnostic): Likewise.
1917         (handle_pragma_target): Likewise.
1918         (handle_pragma_optimize): Likewise.
1919         (handle_pragma_push_options): Likewise.
1920         (handle_pragma_pop_options): Likewise.
1921         (handle_pragma_reset_options): Likewise.
1922         (handle_pragma_message): Likewise.
1923         (handle_pragma_float_const_decimal64): Likewise.
1925 2022-02-16  Jakub Jelinek  <jakub@redhat.com>
1927         PR c/104531
1928         * c-omp.cc (c_finish_omp_atomic): For MIN_EXPR/MAX_EXPR, try first
1929         build_binary_op with LT_EXPR and only if that doesn't return
1930         error_mark_node call build_modify_expr.
1932 2022-02-16  Jakub Jelinek  <jakub@redhat.com>
1934         PR c/104510
1935         * c-common.cc (shorten_compare): Convert original arguments to
1936         the original *restype_ptr when mixing binary and decimal float.
1938 2022-02-14  Richard Biener  <rguenther@suse.de>
1940         PR c/104505
1941         * c-pretty-print.cc (c_pretty_printer::postfix_expression): Handle
1942         internal function calls.
1944 2022-02-11  Richard Biener  <rguenther@suse.de>
1946         * c-attribs.cc (c_common_attribute_table): Add entry for
1947         vector_mask.
1948         (handle_vector_mask_attribute): New.
1950 2022-02-10  Marcel Vollweiler  <marcel@codesourcery.com>
1952         * c-omp.cc (c_omp_split_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
1953         * c-pragma.h (enum pragma_kind): Added 5.1 in comment.
1954         (enum pragma_omp_clause): Added PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR.
1956 2022-02-09  Jason Merrill  <jason@redhat.com>
1958         * c-cppbuiltin.cc (c_cpp_builtins): Update values
1959         of __cpp_constexpr and __cpp_concepts for C++20.
1961 2022-01-24  Marek Polacek  <polacek@redhat.com>
1963         PR preprocessor/104030
1964         * c.opt (Wbidi-chars): Mark as EnumSet.  Also accept =ucn.
1966 2022-01-21  Jakub Jelinek  <jakub@redhat.com>
1968         PR c++/104148
1969         * c-common.h (check_function_arguments_recurse): Add for_format
1970         arg.
1971         * c-common.cc (check_function_nonnull): Pass false to
1972         check_function_arguments_recurse's last argument.
1973         (check_function_arguments_recurse): Add for_format argument,
1974         if true, don't stop on warning_suppressed_p.
1975         * c-format.cc (check_format_info): Pass true to
1976         check_function_arguments_recurse's last argument.
1978 2022-01-19  David Malcolm  <dmalcolm@redhat.com>
1980         * c-common.cc (c_common_c_tests): Rename to...
1981         (c_common_cc_tests): ...this.
1982         (c_family_tests): Update calls for .c to .cc renaming.
1983         * c-common.h (c_format_c_tests): Rename to...
1984         (c_format_cc_tests): ...this.
1985         (c_indentation_c_tests): Rename to...
1986         (c_indentation_cc_tests): ...this.
1987         (c_pretty_print_c_tests): Rename to...
1988         (c_pretty_print_cc_tests): ...this.
1989         * c-format.cc (c_format_c_tests): Rename to...
1990         (c_format_cc_tests): ...this.
1991         * c-indentation.cc (c_indentation_c_tests): Rename to...
1992         (c_indentation_cc_tests): ...this.
1993         * c-pretty-print.cc (c_pretty_print_c_tests): Rename to...
1994         (c_pretty_print_cc_tests): ...this.
1996 2022-01-17  Martin Liska  <mliska@suse.cz>
1998         * c-ada-spec.cc: Rename .c names to .cc.
1999         * c-ada-spec.h: Likewise.
2000         * c-common.cc (c_build_vec_convert): Likewise.
2001         (warning_candidate_p): Likewise.
2002         * c-common.h (enum rid): Likewise.
2003         (build_real_imag_expr): Likewise.
2004         (finish_label_address_expr): Likewise.
2005         (c_get_substring_location): Likewise.
2006         (c_build_bind_expr): Likewise.
2007         (conflict_marker_get_final_tok_kind): Likewise.
2008         (c_parse_error): Likewise.
2009         (check_missing_format_attribute): Likewise.
2010         (invalid_array_size_error): Likewise.
2011         (warn_for_multistatement_macros): Likewise.
2012         (build_attr_access_from_parms): Likewise.
2013         * c-cppbuiltin.cc (c_cpp_builtins): Likewise.
2014         * c-format.cc: Likewise.
2015         * c-gimplify.cc (c_gimplify_expr): Likewise.
2016         * c-indentation.h: Likewise.
2017         * c-objc.h (objc_prop_attr_kind_for_rid): Likewise.
2018         * c-omp.cc (c_omp_predetermined_mapping): Likewise.
2019         * c-opts.cc (c_common_post_options): Likewise.
2020         (set_std_cxx23): Likewise.
2021         * c-pragma.cc (handle_pragma_redefine_extname): Likewise.
2022         * c-pretty-print.h: Likewise.
2024 2022-01-17  Martin Liska  <mliska@suse.cz>
2026         * c-ada-spec.c: Moved to...
2027         * c-ada-spec.cc: ...here.
2028         * c-attribs.c: Moved to...
2029         * c-attribs.cc: ...here.
2030         * c-common.c: Moved to...
2031         * c-common.cc: ...here.
2032         * c-cppbuiltin.c: Moved to...
2033         * c-cppbuiltin.cc: ...here.
2034         * c-dump.c: Moved to...
2035         * c-dump.cc: ...here.
2036         * c-format.c: Moved to...
2037         * c-format.cc: ...here.
2038         * c-gimplify.c: Moved to...
2039         * c-gimplify.cc: ...here.
2040         * c-indentation.c: Moved to...
2041         * c-indentation.cc: ...here.
2042         * c-lex.c: Moved to...
2043         * c-lex.cc: ...here.
2044         * c-omp.c: Moved to...
2045         * c-omp.cc: ...here.
2046         * c-opts.c: Moved to...
2047         * c-opts.cc: ...here.
2048         * c-pch.c: Moved to...
2049         * c-pch.cc: ...here.
2050         * c-ppoutput.c: Moved to...
2051         * c-ppoutput.cc: ...here.
2052         * c-pragma.c: Moved to...
2053         * c-pragma.cc: ...here.
2054         * c-pretty-print.c: Moved to...
2055         * c-pretty-print.cc: ...here.
2056         * c-semantics.c: Moved to...
2057         * c-semantics.cc: ...here.
2058         * c-ubsan.c: Moved to...
2059         * c-ubsan.cc: ...here.
2060         * c-warn.c: Moved to...
2061         * c-warn.cc: ...here.
2062         * cppspec.c: Moved to...
2063         * cppspec.cc: ...here.
2064         * stub-objc.c: Moved to...
2065         * stub-objc.cc: ...here.
2067 2022-01-15  Martin Sebor  <msebor@redhat.com>
2069         PR c/63272
2070         * c.opt (-Wdangling-pointer): New option.
2072 2022-01-15  Martin Sebor  <msebor@redhat.com>
2074         PR tree-optimization/80532
2075         * c.opt (-Wuse-after-free): New options.
2077 2022-01-14  David Malcolm  <dmalcolm@redhat.com>
2079         * c-attribs.c (c_common_attribute_table): Add "tainted_args".
2080         (handle_tainted_args_attribute): New.
2082 2022-01-13  Anthony Sharp  <anthonysharp15@gmail.com>
2083             Jason Merrill  <jason@redhat.com>
2085         PR c++/70417
2086         * c.opt: Added -Wmissing-template-keyword.
2088 2022-01-13  Richard Biener  <rguenther@suse.de>
2090         PR c/104002
2091         * c-common.c (c_common_mark_addressable_vec): Handle TARGET_EXPR.
2093 2022-01-12  Martin Liska  <mliska@suse.cz>
2095         PR target/103804
2096         * c-attribs.c (handle_optimize_attribute): Do not call
2097         cl_optimization_compare if we seen an error.
2099 2022-01-11  Jakub Jelinek  <jakub@redhat.com>
2101         PR c/101537
2102         PR c/103881
2103         * c-warn.c (conversion_warning): Handle BIT_AND_EXPR, BIT_IOR_EXPR
2104         and BIT_XOR_EXPR.
2106 2022-01-10  Richard Biener  <rguenther@suse.de>
2108         PR middle-end/101530
2109         * c-common.c (c_build_shufflevector): Wrap the BIT_FIELD_REF
2110         in a TARGET_EXPR to force a temporary.
2112 2022-01-06  Marek Polacek  <polacek@redhat.com>
2114         PR c++/103758
2115         * c-pragma.c (handle_pragma_scalar_storage_order): Use %< %> in
2116         diagnostic messages.
2117         (handle_pragma_diagnostic): Likewise.
2119 2022-01-03  Marek Polacek  <polacek@redhat.com>
2121         PR c++/103758
2122         * c-format.c (check_tokens): Accept "decl-specifier*".
2124 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
2126         PR c++/103600
2127         * c-attribs.c (handle_non_overlapping_attribute): New function.
2128         (c_common_attribute_table): Add "non overlapping" attribute.
2130 2021-12-30  Jakub Jelinek  <jakub@redhat.com>
2132         PR c++/103012
2133         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Perform
2134         cpp_define_unused/cpp_undef calls with forced token locations
2135         BUILTINS_LOCATION.
2137 2021-12-27  Patrick Palka  <ppalka@redhat.com>
2139         PR c++/103700
2140         * c-common.c (pointer_int_sum): When quiet, return
2141         error_mark_node for an incomplete pointed-to type and don't
2142         call size_in_bytes_loc.
2144 2021-12-17  Jason Merrill  <jason@redhat.com>
2146         PR c++/103681
2147         * c-opts.c (c_common_post_options): Update defaults.
2149 2021-12-16  Martin Liska  <mliska@suse.cz>
2151         PR target/103709
2152         * c-pragma.c (handle_pragma_pop_options): Do not check
2153         global options modification when an error is seen in parsing
2154         of options (pragmas or attributes).
2156 2021-12-12  Jonathan Wakely  <jwakely@redhat.com>
2158         * known-headers.cc: Define INCLUDE_MEMORY instead of
2159         INCLUDE_UNIQUE_PTR.
2160         * name-hint.h: Likewise.
2161         (class name_hint): Use std::unique_ptr instead of gnu::unique_ptr.
2163 2021-12-09  Jakub Jelinek  <jakub@redhat.com>
2165         PR pch/71934
2166         * c-pch.c (c_common_no_more_pch): Pass a temporary void * var
2167         with NULL value instead of NULL to host_hooks.gt_pch_use_address.
2169 2021-12-03  Jakub Jelinek  <jakub@redhat.com>
2171         PR pch/71934
2172         * c-pch.c (struct c_pch_validity): Remove pch_init member.
2173         (pch_init): Don't initialize v.pch_init.
2174         (c_common_valid_pch): Don't warn and punt if .text addresses change.
2176 2021-12-01  Jason Merrill  <jason@redhat.com>
2178         PR c++/103310
2179         * c.opt: Add -fconstexpr-fp-except.
2181 2021-11-29  Richard Biener  <rguenther@suse.de>
2183         * c-format.c (check_format_string): Remove spurious
2184         gcc_unreachable.
2186 2021-11-29  Richard Biener  <rguenther@suse.de>
2188         * c-opts.c (c_common_post_options): Remove unreachable return.
2189         * c-pragma.c (handle_pragma_target): Likewise.
2190         (handle_pragma_optimize): Likewise.
2192 2021-11-25  Jakub Jelinek  <jakub@redhat.com>
2194         PR c++/102611
2195         * c-opts.c (c_common_post_options): Enable -Wcomma-subscript by
2196         default for C++23 regardless of warn_deprecated.
2197         * c-cppbuiltin.c (c_cpp_builtins): Predefine
2198         __cpp_multidimensional_subscript=202110L for C++23.
2200 2021-11-23  Martin Sebor  <msebor@redhat.com>
2202         PR middle-end/88232
2203         * c.opt: Add -Winfinite-recursion.
2205 2021-11-19  Martin Sebor  <msebor@redhat.com>
2207         PR c++/33925
2208         PR c/102867
2209         * c-common.c (decl_with_nonnull_addr_p): Call maybe_nonzero_address
2210         and improve handling tof defined symbols.
2212 2021-11-19  Martin Liska  <mliska@suse.cz>
2214         Revert:
2215         2021-11-18  Martin Liska  <mliska@suse.cz>
2217         * c-gimplify.c (genericize_c_loop): Use option directly.
2219 2021-11-18  Matthias Kretz  <m.kretz@gsi.de>
2221         * c-common.c (c_common_reswords): Add __builtin_assoc_barrier.
2222         * c-common.h (enum rid): Add RID_BUILTIN_ASSOC_BARRIER.
2224 2021-11-18  Martin Liska  <mliska@suse.cz>
2226         * c-gimplify.c (genericize_c_loop): Use option directly.
2228 2021-11-17  Martin Uecker  <uecker@gcc.gnu.org>
2230         PR c/91038
2231         PR c/29970
2232         * c-common.c (pointer_int_sum): Make sure pointer expressions
2233         are evaluated first when the size expression depends on for
2234         variably-modified types.
2236 2021-11-17  Marek Polacek  <polacek@redhat.com>
2238         PR preprocessor/103026
2239         * c.opt (Wbidi-chars, Wbidi-chars=): New option.
2241 2021-11-16  Jason Merrill  <jason@redhat.com>
2243         * c-common.c (release_tree_vector): Only cache vecs smaller than
2244         16 elements.
2246 2021-11-15  Jason Merrill  <jason@redhat.com>
2248         * c.opt: Add -fimplicit-constexpr.
2249         * c-cppbuiltin.c: Define __cpp_implicit_constexpr.
2250         * c-opts.c (c_common_post_options): Disable below C++14.
2252 2021-11-15  Jakub Jelinek  <jakub@redhat.com>
2254         * c-omp.c (c_omp_split_clauses) <case OMP_CLAUSE_THREAD_LIMIT>:
2255         Duplicate to both OMP_TARGET and OMP_TEAMS.
2257 2021-11-10  Marek Polacek  <polacek@redhat.com>
2259         PR c++/101940
2260         * c-pragma.c (handle_pragma_diagnostic): Handle #pragma GCC diagnostic
2261         ignored_attributes.
2263 2021-11-09  David Malcolm  <dmalcolm@redhat.com>
2265         * c-pragma.c (GCC_BAD_AT): New macro.
2266         (GCC_BAD2_AT): New macro.
2267         (handle_pragma_pack): Use the location of the pertinent token when
2268         issuing diagnostics about invalid constants/actions, and trailing
2269         junk.
2270         (handle_pragma_target): Likewise for non-string "GCC option".
2271         (handle_pragma_message): Likewise for trailing junk.
2273 2021-11-03  Joseph Myers  <joseph@codesourcery.com>
2275         PR c/103031
2276         * c-common.c (convert_and_check): Add argument init_const.  Call
2277         convert_init if init_const.
2278         * c-common.h (convert_and_check): Update prototype.
2279         (convert_init): New prototype.
2281 2021-11-01  David Malcolm  <dmalcolm@redhat.com>
2283         * c-lex.c (c_lex_with_flags): When complaining about non-printable
2284         CPP_OTHER tokens, set the "escape on output" flag.
2286 2021-10-27  Jakub Jelinek  <jakub@redhat.com>
2288         * c-omp.c (c_omp_check_loop_iv_r): Don't clear 3rd bit for
2289         POINTER_PLUS_EXPR.
2290         (c_omp_check_nonrect_loop_iv): Handle POINTER_PLUS_EXPR.
2291         (c_omp_check_loop_iv): Set kind even if the iterator is non-integral.
2293 2021-10-27  Jakub Jelinek  <jakub@redhat.com>
2295         PR c++/102854
2296         * c-common.h (c_omp_check_loop_iv_exprs): Add enum tree_code argument.
2297         * c-omp.c (c_omp_check_loop_iv_r): For trees other than decls,
2298         TREE_VEC, PLUS_EXPR, MINUS_EXPR, MULT_EXPR, POINTER_PLUS_EXPR or
2299         conversions temporarily clear the 3rd bit from d->kind while walking
2300         subtrees.
2301         (c_omp_check_loop_iv_exprs): Add CODE argument.  Or in 4 into data.kind
2302         if possibly non-rectangular.
2304 2021-10-21  Jakub Jelinek  <jakub@redhat.com>
2306         PR middle-end/64888
2307         * c-omp.c (c_omp_predefined_variable): Return true also for
2308         ubsan_create_data created artificial variables.
2310 2021-10-14  Joseph Myers  <joseph@codesourcery.com>
2312         * c-format.c (printf_length_specs, scanf_length_specs)
2313         (print_char_table, scan_char_table): Support DFP formats for C2X.
2314         * c-format.h (TEX_D32, TEX_D64, TEX_D128): Remove.
2315         (T2X_D32, T2X_D64, T2X_D128): New macros.
2317 2021-10-14  Kwok Cheung Yeung  <kcy@codesourcery.com>
2319         * c-omp.c (c_omp_check_context_selector): Rename to
2320         omp_check_context_selector and move to omp-general.c.
2321         (c_omp_mark_declare_variant): Rename to omp_mark_declare_variant and
2322         move to omp-general.c.
2324 2021-10-12  Joseph Myers  <joseph@codesourcery.com>
2326         * c-format.c (print_char_table): Add %b and %B formats.
2327         (scan_char_table): Add %b format.
2328         * c-format.h (T2X_UI, T2X_UL, T2X_ULL, T2X_US, T2X_UC, T2X_ST)
2329         (T2X_UPD, T2X_UIM): New macros.
2331 2021-10-12  Jakub Jelinek  <jakub@redhat.com>
2333         * c-omp.c (c_finish_omp_atomic): Use
2334         clear_padding_type_may_have_padding_p.
2336 2021-10-08  Martin Liska  <mliska@suse.cz>
2338         * c-opts.c (c_common_post_options): Use new macro
2339         OPTION_SET_P.
2341 2021-10-07  Martin Liska  <mliska@suse.cz>
2343         * c-common.c (parse_optimize_options): Make
2344         save_opt_decoded_options a pointer type.
2346 2021-10-06  Jakub Jelinek  <jakub@redhat.com>
2348         PR tree-optimization/102571
2349         * c-omp.c (c_finish_omp_atomic): Optimize the case where type has
2350         padding, but the non-padding bits are contiguous set of bytes
2351         by adjusting the memcmp call arguments instead of emitting
2352         __builtin_clear_padding and then comparing all the type's bytes.
2354 2021-10-06  Jakub Jelinek  <jakub@redhat.com>
2356         PR c++/102612
2357         * c-cppbuiltin.c (c_cpp_builtins): For -std=c++23 predefine
2358         __cpp_constexpr to 202110L rather than 201907L.
2360 2021-10-04  Marek Polacek  <polacek@redhat.com>
2362         PR c++/97573
2363         * c-common.h (do_warn_array_compare): Declare.
2364         * c-warn.c (do_warn_array_compare): New.
2365         * c.opt (Warray-compare): New option.
2367 2021-10-02  Iain Sandoe  <iain@sandoe.co.uk>
2369         * c-format.c: Remove a test of TARGET_FORMAT_TYPES with
2370         NULL, this is not needed.
2372 2021-10-01  Martin Sebor  <msebor@redhat.com>
2374         PR c/102103
2375         * c-common.c (decl_with_nonnull_addr_p): Handle members.
2376         Check and perform warning suppression.
2377         (c_common_truthvalue_conversion): Enhance warning suppression.
2379 2021-10-01  Martin Liska  <mliska@suse.cz>
2381         PR target/102552
2382         * c-common.c (parse_optimize_options): decoded_options[0] is
2383         used for program name, so merged_decoded_options should also
2384         respect that.
2386 2021-10-01  Jakub Jelinek  <jakub@redhat.com>
2387             Richard Biener  <rguenther@suse.de>
2389         PR sanitizer/102515
2390         * c-ubsan.c (ubsan_instrument_division): Check the right
2391         flag_sanitize_recover bit, depending on which sanitization
2392         is done.  Sanitize INT_MIN / -1 under SANITIZE_SI_OVERFLOW
2393         rather than SANITIZE_DIVIDE.  If both SANITIZE_SI_OVERFLOW
2394         and SANITIZE_DIVIDE is enabled, neither check is known
2395         to be false and flag_sanitize_recover bits for those two
2396         aren't the same, emit both __ubsan_handle_divrem_overflow
2397         and __ubsan_handle_divrem_overflow_abort calls.
2399 2021-10-01  Martin Liska  <mliska@suse.cz>
2401         * c-common.c (parse_optimize_options): Combine optimize
2402         options with what was provided on the command line.
2404 2021-10-01  Jakub Jelinek  <jakub@redhat.com>
2406         * c-omp.c (c_omp_split_clauses): Also copy
2407         OMP_CLAUSE_ORDER_REPRODUCIBLE.
2409 2021-09-27  Martin Liska  <mliska@suse.cz>
2411         * c-opts.c (c_common_init_options_struct): Set also
2412         x_flag_default_complex_method.
2414 2021-09-22  Jakub Jelinek  <jakub@redhat.com>
2416         * c-omp.c (c_omp_split_clauses): Copy over OMP_CLAUSE_ALLOCATE_ALIGN.
2418 2021-09-20  Matthias Kretz  <m.kretz@gsi.de>
2420         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define or
2421         undefine __RECIPROCAL_MATH__, __NO_SIGNED_ZEROS__,
2422         __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, and
2423         __ROUNDING_MATH__ according to the new optimization flags.
2425 2021-09-18  Jakub Jelinek  <jakub@redhat.com>
2427         * c-omp.c (c_omp_split_clauses): Split order clause also to
2428         distribute construct.  Copy over OMP_CLAUSE_ORDER_UNCONSTRAINED.
2430 2021-09-17  Jakub Jelinek  <jakub@redhat.com>
2432         * c-omp.c (c_finish_omp_atomic): Avoid creating
2433         TARGET_EXPR if test is true, use create_tmp_var_raw instead of
2434         create_tmp_var and add a zero initializer to TARGET_EXPRs that
2435         had NULL initializer.  When omitting operands after v = x,
2436         use type of v rather than type of x.  Fix type of vtmp
2437         TARGET_EXPR.
2439 2021-09-13  Jason Merrill  <jason@redhat.com>
2441         * c.opt: Add -Winterference-size.
2442         * c-cppbuiltin.c (cpp_atomic_builtins): Add __GCC_DESTRUCTIVE_SIZE
2443         and __GCC_CONSTRUCTIVE_SIZE.
2445 2021-09-10  Jakub Jelinek  <jakub@redhat.com>
2447         * c-common.h (c_finish_omp_atomic): Add r and weak arguments.
2448         * c-omp.c: Include gimple-fold.h.
2449         (c_finish_omp_atomic): Add r and weak arguments.  Add support for
2450         OpenMP 5.1 atomics.
2452 2021-09-09  qing zhao  <qing.zhao@oracle.com>
2454         * c-attribs.c (handle_uninitialized_attribute): New function.
2455         (c_common_attribute_table): Add "uninitialized" attribute.
2457 2021-09-08  liuhongt  <hongtao.liu@intel.com>
2459         * c-common.c (excess_precision_mode_join): Update below comments.
2460         (c_ts18661_flt_eval_method): Set excess_precision_type to
2461         EXCESS_PRECISION_TYPE_FLOAT16 when -fexcess-precision=16.
2462         * c-cppbuiltin.c (cpp_atomic_builtins): Update below comments.
2463         (c_cpp_flt_eval_method_iec_559): Set excess_precision_type to
2464         EXCESS_PRECISION_TYPE_FLOAT16 when -fexcess-precision=16.
2466 2021-09-07  Marcel Vollweiler  <marcel@codesourcery.com>
2468         * c-omp.c (c_finish_omp_flush): Handle MEMMODEL_SEQ_CST.
2470 2021-09-03  Eric Botcazou  <ebotcazou@adacore.com>
2472         * c-ada-spec.c (dump_ads): Generate pragmas to disable style checks
2473         and -gnatwu warning for the package specification.
2475 2021-09-01  Iain Sandoe  <iain@sandoe.co.uk>
2477         * c-attribs.c (handle_unavailable_attribute): New.
2479 2021-08-30  Jason Merrill  <jason@redhat.com>
2481         * c.opt: Add -Wmissing-requires.
2483 2021-08-25  Lewis Hyatt  <lhyatt@gmail.com>
2485         PR other/93067
2486         * c-opts.c (c_common_input_charset_cb): New function.
2487         (c_common_post_options): Call new function
2488         diagnostic_initialize_input_context().
2490 2021-08-20  Tobias Burnus  <tobias@codesourcery.com>
2492         * c-format.c (gcc_gfc_length_specs): Add 'll' and 'w'.
2493         (gcc_gfc_char_table): Add T9L_LL and T9L_ULL to
2494         "di" and "u", respecitively; fill with BADLEN to match
2495         size of 'types'.
2496         (get_init_dynamic_hwi): Split off from ...
2497         (init_dynamic_diag_info): ... here. Call it.
2498         (init_dynamic_gfc_info): Call it.
2500 2021-08-20  Jakub Jelinek  <jakub@redhat.com>
2502         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_ERROR.
2503         * c-pragma.c (omp_pragmas): Add error directive.
2504         * c-omp.c (omp_directives): Uncomment error directive entry.
2506 2021-08-18  Jakub Jelinek  <jakub@redhat.com>
2508         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_NOTHING.
2509         * c-pragma.c (omp_pragmas): Add nothing directive.
2510         * c-omp.c (omp_directives): Uncomment nothing directive entry.
2512 2021-08-17  Jakub Jelinek  <jakub@redhat.com>
2514         PR c++/101539
2515         * c-common.h (enum rid): Add RID_IS_LAYOUT_COMPATIBLE.
2516         * c-common.c (c_common_reswords): Add __is_layout_compatible.
2518 2021-08-17  Matt Jacobson  <mhjacobson@me.com>
2520         * c-opts.c (c_common_post_options): Default to
2521         flag_objc_sjlj_exceptions = 1 only when flag_objc_abi < 2.
2523 2021-08-17  Jakub Jelinek  <jakub@redhat.com>
2525         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_SCOPE.
2526         * c-pragma.c (omp_pragmas): Add scope construct.
2527         * c-omp.c (omp_directives): Uncomment scope directive entry.
2529 2021-08-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2531         * c-cppbuiltin.c (c_cpp_builtins): Define
2532         __LIBGCC_GCOV_TYPE_SIZE if flag_building_libgcc is true.
2534 2021-08-12  Jakub Jelinek  <jakub@redhat.com>
2536         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_MASKED.
2537         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FILTER.
2538         * c-pragma.c (omp_pragmas_simd): Add masked construct.
2539         * c-common.h (enum c_omp_clause_split): Add C_OMP_CLAUSE_SPLIT_MASKED
2540         enumerator.
2541         (c_finish_omp_masked): Declare.
2542         * c-omp.c (c_finish_omp_masked): New function.
2543         (c_omp_split_clauses): Handle combined masked constructs.
2545 2021-07-30  Jakub Jelinek  <jakub@redhat.com>
2547         PR c++/101539
2548         * c-common.h (enum rid): Add RID_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
2549         * c-common.c (c_common_reswords): Add
2550         __is_pointer_interconvertible_base_of.
2552 2021-07-29  Richard Biener  <rguenther@suse.de>
2554         PR c/101512
2555         * c-common.c (c_common_mark_addressable_vec): Look through
2556         C_MAYBE_CONST_EXPR even if not at the toplevel.
2558 2021-07-27  Martin Sebor  <msebor@redhat.com>
2560         PR c/101585
2561         * c-warn.c (warn_parm_ptrarray_mismatch): Use OEP_DECL_NAME.
2563 2021-07-23  Jakub Jelinek  <jakub@redhat.com>
2565         * c-lex.c (c_common_has_attribute): Call canonicalize_attr_name also
2566         on attr_id.  Return 1 for omp::directive or omp::sequence in C++11
2567         and later.
2569 2021-07-23  Jakub Jelinek  <jakub@redhat.com>
2571         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP__START_ and
2572         PRAGMA_OMP__LAST_ enumerators.
2574 2021-07-21  Thomas Schwinge  <thomas@codesourcery.com>
2575             Joseph Myers  <joseph@codesourcery.com>
2576             Cesar Philippidis  <cesar@codesourcery.com>
2578         * c-pragma.h (pragma_omp_clause): Add 'PRAGMA_OACC_CLAUSE_NOHOST'.
2580 2021-07-20  Martin Sebor  <msebor@redhat.com>
2582         * c-common.c (c_build_shufflevector): Adjust by-value argument to
2583         by-const-reference.
2584         * c-common.h (c_build_shufflevector): Same.
2586 2021-07-16  Andrew Pinski  <apinski@marvell.com>
2588         PR c/101453
2589         * c-common.c (parse_optimize_options): Use the correct
2590         size for buffer.
2592 2021-07-15  Martin Sebor  <msebor@redhat.com>
2594         PR c/101289
2595         PR c/97548
2596         * c-warn.c (warn_parm_array_mismatch): Use OEP_DECL_NAME.
2598 2021-07-14  Jason Merrill  <jason@redhat.com>
2600         * c-opts.c (c_common_post_options): Set -fdelete-dead-exceptions.
2602 2021-07-06  Martin Sebor  <msebor@redhat.com>
2604         * c-format.c (gcc_tdiag_char_table): Remove support for %G and %K.
2605         (gcc_cdiag_char_table): Same.
2606         (gcc_cxxdiag_char_table): Same.
2608 2021-07-02  Jakub Jelinek  <jakub@redhat.com>
2610         * c-common.h (enum c_omp_directive_kind): New enum.
2611         (struct c_omp_directive): New type.
2612         (c_omp_categorize_directive): Declare.
2613         * c-omp.c (omp_directives): New variable.
2614         (c_omp_categorize_directive): New function.
2616 2021-07-01  Eric Botcazou  <ebotcazou@adacore.com>
2618         * c-ada-spec.c (packed_layout): New global variable.
2619         (dump_ada_declaration): Set it upon seeing a packed record type.
2620         Do not put the "aliased" keyword if it is set.
2621         (dump_ada_structure): Add Pack aspect if it is set and clear it.
2623 2021-07-01  Eric Botcazou  <ebotcazou@adacore.com>
2625         * c-ada-spec.c (check_name): Rename into...
2626         (check_type_name_conflict): ...this.  Minor tweak.
2627         (dump_ada_function_declaration): Adjust to above renaming.
2628         (dump_ada_array_domains): Fix oversight.
2629         (dump_ada_declaration): Call check_type_name_conflict for variables.
2631 2021-06-25  Martin Sebor  <msebor@redhat.com>
2633         * c-common.c (c_wrap_maybe_const): Remove TREE_NO_WARNING.
2634         (c_common_truthvalue_conversion): Replace direct uses of
2635         TREE_NO_WARNING with warning_suppressed_p, suppress_warning, and
2636         copy_no_warning.
2637         (check_function_arguments_recurse): Same.
2638         * c-gimplify.c (c_gimplify_expr): Same.
2639         * c-warn.c (overflow_warning): Same.
2640         (warn_logical_operator): Same.
2641         (warn_if_unused_value): Same.
2642         (do_warn_unused_parameter): Same.
2644 2021-06-24  Jakub Jelinek  <jakub@redhat.com>
2646         * c-common.h (enum c_omp_region_type): Add C_ORT_TARGET and
2647         C_ORT_OMP_TARGET.
2648         * c-omp.c (c_omp_split_clauses): For OMP_CLAUSE_IN_REDUCTION on
2649         combined target constructs also add map (always, tofrom:) clause.
2651 2021-06-15  Robin Dapp  <rdapp@linux.ibm.com>
2653         * c-attribs.c (common_handle_aligned_attribute): Remove short
2654         circuit and dead code.
2656 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
2658         PR c++/101052
2659         * known-headers.cc (get_stdlib_header_for_name): Add known
2660         headers for EXIT_FAILURE, EXIT_SUCCESS, abort, atexit, calloc,
2661         exit, and getenv.
2663 2021-06-12  Jason Merrill  <jason@redhat.com>
2665         * c-attribs.c (handle_unused_attribute): Handle FIELD_DECL.
2667 2021-06-11  Jakub Jelinek  <jakub@redhat.com>
2669         PR c++/100974
2670         * c-cppbuiltin.c (c_cpp_builtins): Predefine __cpp_if_consteval for
2671         -std=c++2b for P1938R3 consteval if support.
2673 2021-06-09  Jason Merrill  <jason@redhat.com>
2675         PR c++/100879
2676         * c-warn.c (warn_for_sign_compare): Remove C++ enum mismatch
2677         warning.
2679 2021-06-07  Martin Liska  <mliska@suse.cz>
2681         * c-target.def: Split long lines and replace them
2682         with '\n\'.
2684 2021-06-04  Martin Sebor  <msebor@redhat.com>
2686         PR c/100783
2687         * c-attribs.c (positional_argument): Bail on erroneous types.
2689 2021-06-04  Martin Sebor  <msebor@redhat.com>
2691         * c-warn.c (warn_parm_array_mismatch): Check TREE_PURPOSE to test
2692         for element presence.
2694 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
2696         * c-ada-spec.c (dump_ada_macros): Minor tweaks.
2697         (dump_ada_decl_name): Likewise.
2698         (dump_anonymous_type_name): Remove parent parameter and adjust.
2699         (dump_sloc): Minor tweak.
2700         (dump_ada_array_type): Remove type parameter and adjust.
2701         (dump_ada_enum_type): Remove parent parameter and adjust.
2702         (dump_ada_node): Adjust calls to above functions.
2703         (dumped_anonymous_types): New global variable.
2704         (dump_nested_types_1): Rename into...
2705         (dump_nested_types): ...this.
2706         (dump_nested_type): Remove parent and dumped_types parameters.
2707         <ARRAY_TYPE>: Replace dumped_types with dumped_anonymous_types.
2708         Adjust calls to dump_anonymous_type_name and dump_ada_array_type.
2709         (dump_ada_specs): Initialize and free dumped_anonymous_types.
2711 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
2713         * c-ada-spec.c (pp_ada_tree_identifier): Tidy up.
2714         (dump_ada_node) <POINTER_TYPE>: Deal specially with external subtypes.
2716 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
2718         * c-ada-spec.c (dump_ada_enum_type): Dump a prefix for constants.
2719         (htable_t): New typedef.
2720         (overloaded_names): Use it.
2721         (add_name): New function.
2722         (init_overloaded_names): Use add_name to populate the table and add
2723         special cases for sigaction and stat.
2724         (overloaded_name_p): Rename into...
2725         (overloading_index): ...this.  Do not initialize overloaded_names table
2726         here.  Return the index or zero.
2727         (dump_ada_declaration): Minor tweaks.  Do not skip overloaded functions
2728         but add an overloading suffix instead.
2729         (dump_ada_specs): Initialize overloaded_names tables here.
2731 2021-06-01  Martin Liska  <mliska@suse.cz>
2733         PR other/100759
2734         * c-attribs.c (handle_optimize_attribute): Limit sanity check
2735         to a situation where we are not in processing of an optimize
2736         pragma.
2737         * c-pragma.c (handle_pragma_pop_options): Restore target
2738         options.
2740 2021-05-31  Indu Bhagat  <indu.bhagat@oracle.com>
2742         PR testsuite/100749
2743         * c-pch.c (c_common_valid_pch): Use xstrdup for debug format set names.
2745 2021-05-31  Richard Biener  <rguenther@suse.de>
2747         PR c++/88601
2748         * c-common.c: Include tree-vector-builder.h and
2749         vec-perm-indices.h.
2750         (c_common_reswords): Add __builtin_shufflevector.
2751         (c_build_shufflevector): New funtion.
2752         * c-common.h (enum rid): Add RID_BUILTIN_SHUFFLEVECTOR.
2753         (c_build_shufflevector): Declare.
2755 2021-05-28  Jakub Jelinek  <jakub@redhat.com>
2757         PR middle-end/99928
2758         * c-omp.c (c_omp_split_clauses): For reduction clause if combined with
2759         target add a map tofrom clause with OMP_CLAUSE_MAP_IMPLICIT.
2761 2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
2763         * c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_AFFINITY.
2765 2021-05-25  Martin Liska  <mliska@suse.cz>
2767         PR tree-optimization/92860
2768         PR target/99592
2769         * c-attribs.c (handle_optimize_attribute): Save target node
2770         before calling parse_optimize_options and save it in case
2771         it changes.
2772         * c-pragma.c (handle_pragma_target): Similarly for pragma.
2773         (handle_pragma_pop_options): Likewise here.
2775 2021-05-25  Martin Liska  <mliska@suse.cz>
2777         * c-attribs.c (handle_no_sanitize_coverage_attribute): New.
2779 2021-05-25  Jakub Jelinek  <jakub@redhat.com>
2781         PR middle-end/99928
2782         * c-omp.c (c_omp_split_clauses): Copy reduction to teams when teams is
2783         combined with simd and not with taskloop or for.
2785 2021-05-21  Jakub Jelinek  <jakub@redhat.com>
2787         PR middle-end/99928
2788         * c-omp.c (c_omp_split_clauses): Set OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT
2789         on firstprivate clause copy going to target construct, and for
2790         target simd set also OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET bit.
2792 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
2794         * c.opt (Wc++11-extensions, Wc++14-extensions)
2795         (Wc++17-extensions, Wc++20-extensions, Wc++23-extensions): New
2796         options.
2798 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
2800         * c-lex.c (init_c_lex): Use dwarf_debuginfo_p.
2802 2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>
2804         * c-opts.c (c_common_post_options): Adjust access to debug_type_names.
2805         * c-pch.c (struct c_pch_validity): Use type uint32_t.
2806         (pch_init): Renamed member.
2807         (c_common_valid_pch): Adjust access to debug_type_names.
2809 2021-05-19  Martin Sebor  <msebor@redhat.com>
2811         PR c/100619
2812         * c-attribs.c (build_attr_access_from_parms): Handle arbitrarily many
2813         bounds.
2815 2021-05-18  Richard Biener  <rguenther@suse.de>
2817         PR c/100547
2818         * c-attribs.c (type_valid_for_vector_size): Reject too large nunits.
2819         Reword existing nunit diagnostic.
2821 2021-05-17  Joern Rennecke  <joern.rennecke@embecosm.com>
2823         * c-common.c (braced_list_to_string): Return CTOR unchanged
2824         if host and target character sizes don't match.
2826 2021-05-14  Martin Liska  <mliska@suse.cz>
2828         * c.opt: Add Warning keyword for 2 options.
2830 2021-05-13  Martin Liska  <mliska@suse.cz>
2832         PR middle-end/100504
2833         * c-attribs.c (handle_target_clones_attribute): Expect a string
2834         argument to target_clone argument.
2836 2021-05-11  Joseph Myers  <joseph@codesourcery.com>
2838         * c-lex.c (interpret_float): Handle digit separators for C2X.
2840 2021-05-10  Martin Liska  <mliska@suse.cz>
2842         * c-ada-spec.c (print_destructor): Use startswith
2843         function instead of strncmp.
2844         (dump_ada_declaration): Likewise.
2845         * c-common.c (disable_builtin_function): Likewise.
2846         (def_builtin_1): Likewise.
2847         * c-format.c (check_tokens): Likewise.
2848         (check_plain): Likewise.
2849         (convert_format_name_to_system_name): Likewise.
2851 2021-04-28  Patrick McGehearty  <patrick.mcgehearty@oracle.com>
2853         * c-cppbuiltin.c (c_cpp_builtins): Add supporting macros for new
2854         complex divide
2856 2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
2857             Nathan Sidwell  <nathan@codesourcery.com>
2858             Tom de Vries  <vries@codesourcery.com>
2859             Julian Brown  <julian@codesourcery.com>
2860             Kwok Cheung Yeung  <kcy@codesourcery.com>
2862         * c.opt (Wopenacc-parallelism): New.
2864 2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>
2866         * c.opt (fopenacc-kernels=): Remove.
2868 2021-04-08  Jakub Jelinek  <jakub@redhat.com>
2870         * c-warn.c (do_warn_double_promotion): Fix comment typo,
2871         occured -> occurred.
2872         (check_alignment_of_packed_member): Fix a comment typo,
2873         memeber -> member.
2874         (warn_parm_ptrarray_mismatch): Fix comment typos, os -> of
2875         and onless -> unless.
2876         (warn_parm_array_mismatch): Fix comment typos, declaratation
2877         -> declaration and woud -> would.  Fix up comment indentation.
2879 2021-04-08  Martin Sebor  <msebor@redhat.com>
2881         PR middle-end/99883
2882         * c.opt (Wmismatched-new-delete): Correct spelling.
2884 2021-04-05  Eric Botcazou  <ebotcazou@adacore.com>
2886         * c-ada-spec.c (is_simple_enum): Minor tweaks.
2887         (dump_ada_enum_type): Add TYPE and PARENT parameters.  For non-simple
2888         enumeral types use again the type name for the enumeration constants.
2889         (dump_ada_node): Adjust call to dump_ada_enum_type.
2890         (dump_nested_type): Likewise.
2892 2021-04-01  Jason Merrill  <jason@redhat.com>
2894         PR c++/98481
2895         * c-opts.c (c_common_post_options): Bump latest_abi_version.
2897 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
2899         PR c++/99565
2900         * c-warn.c (do_warn_duplicated_branches): Pass also
2901         OEP_ADDRESS_OF_SAME_FIELD to operand_equal_p.
2903 2021-03-20  Jakub Jelinek  <jakub@redhat.com>
2905         PR debug/99230
2906         * c-gimplify.c (c_genericize_control_stmt): Handle STATEMENT_LIST.
2908 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
2910         * c-ada-spec.c (dump_ada_declaration) <TYPE_DECL>: Dump nested types
2911         after entering the separate class package, if any.
2913 2021-03-04  Richard Biener  <rguenther@suse.de>
2915         * c-pretty-print.c (c_pretty_printer::direct_abstract_declarator):
2916         Handle ERROR_MARK.
2918 2021-03-04  Jakub Jelinek  <jakub@redhat.com>
2920         PR c/99325
2921         * c-ppoutput.c (print): Change src_line type from int to unsigned.
2922         (token_streamer::stream) Likewise.
2923         (maybe_print_line_1): Likewise.  Don't strcmp src_file if src_loc is
2924         UNKNOWN_LOCATION.
2926 2021-03-03  Jakub Jelinek  <jakub@redhat.com>
2928         PR c/99324
2929         * c-common.c (build_va_arg): Call c_common_mark_addressable_vec
2930         instead of mark_addressable.  Fix a comment typo -
2931         neutrallly -> neutrally.
2933 2021-02-28  Jakub Jelinek  <jakub@redhat.com>
2935         PR c/99304
2936         * c-attribs.c (handle_malloc_attribute): Fix a typo in inform
2937         message - refernced -> referenced.  Remove superfluous space before
2938         closing paren of function calls.
2940 2021-02-25  Nathan Sidwell  <nathan@acm.org>
2942         PR c++/99166
2943         * c.opt (-flang-info-module-cmi): Renamed option.
2945 2021-02-19  Nathan Sidwell  <nathan@acm.org>
2947         * c.opt (flang-info-module-read, flang-info-module-read=): New.
2949 2021-02-18  H.J. Lu  <hjl.tools@gmail.com>
2951         PR target/99113
2952         * c-attribs.c (c_common_attribute_table): Add the "retain"
2953         attribute.
2954         (handle_retain_attribute): New function.
2956 2021-02-16  Marek Polacek  <polacek@redhat.com>
2958         PR c++/99062
2959         * c-attribs.c (handle_assume_aligned_attribute): Check that the
2960         alignment argument is non-negative.  Tweak a warning message.
2962 2021-02-12  Martin Sebor  <msebor@redhat.com>
2964         PR c/99055
2965         * c-warn.c (warn_parm_array_mismatch): Free strings returned from
2966         print_generic_expr_to_str.
2968 2021-02-10  Richard Biener  <rguenther@suse.de>
2970         * c-common.c (parse_optimize_options): Free decoded_options.
2972 2021-02-04  emsr  <3dw4rd@verizon.net>
2974         * c-cppbuiltin.c (c_cpp_builtins): __cpp_size_t_suffix=202011L.
2976 2021-02-03  Ed Smith-Rowland  <3dw4rd@verizon.net>
2978         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_size_t_suffix.
2979         * c-lex.c (interpret_integer): Set node type for size literal.
2981 2021-01-28  Jakub Jelinek  <jakub@redhat.com>
2983         * c.opt (-std=c++2a, -std=c++20, -std=gnu++2a, -std=gnu++20): Remove
2984         draft from description.
2985         (-std=c++2b): Fix a pasto, 2020 -> 2023.
2987 2021-01-26  Paul Fee  <paul.f.fee@gmail.com>
2989         * c-common.h (cxx_dialect): Add cxx23 as a dialect.
2990         * c.opt: Add options for -std=c++23, std=c++2b, -std=gnu++23
2991         and -std=gnu++2b
2992         * c-opts.c (set_std_cxx23): New.
2993         (c_common_handle_option): Set options when -std=c++23 is enabled.
2994         (c_common_post_options): Adjust comments.
2995         (set_std_cxx20): Likewise.
2997 2021-01-25  Martin Sebor  <msebor@redhat.com>
2999         PR c++/98646
3000         * c-common.c (check_nonnull_arg): Adjust warning text.
3002 2021-01-17  Martin Sebor  <msebor@redhat.com>
3004         * c-pretty-print.c (c_pretty_printer::primary_expression): Don't
3005         assume SSA_NAME_IDENTIFIER evaluates to nonzero.
3007 2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>
3009         * c-pragma.h (pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_DETACH.
3010         Redefine PRAGMA_OACC_CLAUSE_DETACH.
3012 2021-01-15  Jakub Jelinek  <jakub@redhat.com>
3014         PR tree-optimization/98597
3015         * c-pretty-print.c: Include options.h.
3016         (c_fold_indirect_ref_for_warn): New function.
3017         (print_mem_ref): Use it.  If it returns something that has compatible
3018         type and is TBAA compatible with zero offset, print it and return,
3019         otherwise print it using offsetof syntax or array ref syntax.  Fix up
3020         printing if MEM_REFs first operand is ADDR_EXPR, or when the first
3021         argument has pointer to array type.  Print pointers using the standard
3022         formatting.
3024 2021-01-12  Martin Sebor  <msebor@redhat.com>
3026         PR c/98597
3027         PR c/98592
3028         * c-pretty-print.c (print_mem_ref): Avoid assuming MEM_REF operand
3029         has pointer type.  Remove redundant code.  Avoid calling
3030         gimple_canonical_types_compatible_p.
3032 2021-01-07  Martin Sebor  <msebor@redhat.com>
3034         PR middle-end/98578
3035         * c-pretty-print.c (print_mem_ref): Strip array from access type.
3036         Avoid assuming acces type's size is constant.  Correct condition
3037         guarding the printing of a parenthesis.
3039 2021-01-06  Martin Sebor  <msebor@redhat.com>
3041         PR c++/95768
3042         * c-pretty-print.c (c_pretty_printer::primary_expression): For
3043         SSA_NAMEs print VLA names and GIMPLE defining statements.
3044         (print_mem_ref): New function.
3045         (c_pretty_printer::unary_expression): Call it.
3047 2021-01-06  Richard Biener  <rguenther@suse.de>
3049         PR tree-optimization/95582
3050         * c-attribs.c (c_common_attribute_table): Add entry for
3051         signed_bool_precision.
3052         (handle_signed_bool_precision_attribute): New.
3054 2020-12-24  Iain Sandoe  <iain@sandoe.co.uk>
3056         * c.opt: Add -stdlib= option and enumerations for
3057         libstdc++ and libc++.
3059 2020-12-16  Martin Liska  <mliska@suse.cz>
3061         * c.opt: Remove usage of Report.
3063 2020-12-14  Martin Sebor  <msebor@redhat.com>
3065         PR middle-end/98166
3066         PR c++/57111
3067         PR middle-end/98160
3068         * c-attribs.c (maybe_add_noinline): New function.
3069         (handle_malloc_attribute): Call it.  Use ATTR_FLAG_INTERNAL.
3070         Implicitly add attribute noinline to functions not declared inline
3071         and warn on those.
3073 2020-12-09  Tobias Burnus  <tobias@codesourcery.com>
3075         * c-pragma.c (omp_pragmas): Add 'allocate'.
3076         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_ALLOCATE.
3078 2020-12-08  Jakub Jelinek  <jakub@redhat.com>
3080         PR c++/98187
3081         * c-pragma.c (omp_pragmas): Remove "master".
3082         (omp_pragmas_simd): Add "master".
3084 2020-12-07  Marek Polacek  <polacek@redhat.com>
3086         PR c++/98126
3087         * c-common.c (verify_tree_lim_r): New function.
3088         (verify_sequence_points): Use it.  Use nullptr instead of 0.
3090 2020-12-03  Martin Sebor  <msebor@redhat.com>
3092         PR c++/90629
3093         PR middle-end/94527
3094         * c-attribs.c (handle_dealloc_attribute): New function.
3095         (handle_malloc_attribute): Handle argument forms of attribute.
3096         * c.opt (-Wmismatched-dealloc): New option.
3097         (-Wmismatched-new-delete): New option.
3099 2020-12-03  Jakub Jelinek  <jakub@redhat.com>
3101         PR libstdc++/93121
3102         * c-common.h (enum rid): Add RID_BUILTIN_BIT_CAST.
3103         * c-common.c (c_common_reswords): Add __builtin_bit_cast.
3105 2020-12-01  JeanHeyd Meneide  <phdofthehouse@gmail.com>
3107         * c-cppbuiltin.c (c_cpp_builtins): Add predefined
3108         {__GNUC_EXECUTION_CHARSET_NAME} and
3109         _WIDE_EXECUTION_CHARSET_NAME} macros.
3111 2020-12-01  Nathan Sidwell  <nathan@acm.org>
3113         * c-common.c (module, import, export): New internal tokens (with
3114         trailing space).
3115         * c-common.h (RID__MODULE, RID__IMPORT & RID__EXPORT): Enumerate
3116         them.
3117         (D_CXX_MODULES, D_CXX_MODULES_FLAGS): Enable them.
3118         * c-cppbuiltin.c (c_cpp_builtins): Feature macro.
3120 2020-12-01  Nathan Sidwell  <nathan@acm.org>
3122         * c-opts.c (c_common_init_options): Ask for module dependencies.
3123         (c_common_handle_option): Handle -Mmodules -Mno-modules.
3124         * c-pch.c (c_common_valid_pch): ... does not play with C++
3125         modules.
3126         * c.opt (Mmodules, Mno-modules): New preprocessor dependency
3127         options.
3128         (fmodules-ts, fmodule-header, fmodule-implicit-inline)
3129         (fmodule-only, fmodule-mapper, fmodule-lazy)
3130         (fmodule-version-ignore, Winvalid-imported-macros)
3131         (flang-info-include-translate, flang-info-include-translate-not):
3132         New options
3134 2020-11-28  Eric Botcazou  <ebotcazou@adacore.com>
3136         * c-ada-spec.c (dump_nested_type) <RECORD_TYPE>: Remove obsolete code.
3137         (dump_ada_structure): Also deal with convention, unchecked union and
3138         bit-field for nested types.  In the latter case, print an Alignment
3139         aspect along with the Pack aspect.
3141 2020-11-25  Martin Sebor  <msebor@redhat.com>
3143         PR bootstrap/94982
3144         * c-attribs.c (handle_patchable_function_entry_attribute): Avoid
3145         -Wformat-diag.
3147 2020-11-24  Martin Sebor  <msebor@redhat.com>
3149         * c-warn.c (warn_parm_array_mismatch): Avoid invalid redeclarations.
3151 2020-11-23  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
3153         * c-attribs.c (handle_special_var_sec_attribute): New.
3154         (handle_noinit_attribute): Remove.
3155         (attr_noinit_exclusions): Rename to...
3156         (attr_section_exclusions): ...this, and add "persistent" attribute
3157         exclusion.
3158         (c_common_attribute_table): Add "persistent" attribute.
3160 2020-11-21  Aaron Sawdey  <acsawdey@linux.ibm.com>
3162         * c-pretty-print.c (c_pretty_printer::simple_type_specifier):
3163         Treat opaque types like other types.
3164         (c_pretty_printer::direct_abstract_declarator): Opaque types are
3165         supported types.
3167 2020-11-20  Martin Sebor  <msebor@redhat.com>
3169         * c-warn.c (warn_parm_array_mismatch): Bail on invalid redeclarations
3170         with fewer arguments.
3172 2020-11-20  Martin Sebor  <msebor@redhat.com>
3174         PR middle-end/97879
3175         * c-attribs.c (handle_access_attribute): Handle ATTR_FLAG_INTERNAL.
3176         Error out on invalid modes.
3178 2020-11-20  Jakub Jelinek  <jakub@redhat.com>
3180         PR libstdc++/88101
3181         * c-common.c (check_builtin_function_arguments): Handle
3182         BUILT_IN_CLEAR_PADDING.
3184 2020-11-18  Nathan Sidwell  <nathan@acm.org>
3186         * c-lex.c (c_lex_with_flags): CPP_HEADER_NAMEs can now be seen.
3188 2020-11-17  Nathan Sidwell  <nathan@acm.org>
3190         * c-common.h (enum c_tree_index): Reorder to place lazy fields
3191         after newly-added CTI_MODULE_HWM.
3193 2020-11-17  Joseph Myers  <joseph@codesourcery.com>
3195         * c-cppbuiltin.c (builtin_define_float_constants): Define
3196         "*_IS_IEC_60559__" macros.
3198 2020-11-17  Nathan Sidwell  <nathan@acm.org>
3200         * c-lex.c: #include "langhooks.h".
3201         (cb_undef): Maybe call preprocess_undef lang hook.
3202         * c-opts.c (c_common_post_options): Maybe call preprocess_options
3203         lang hook.
3204         (push_command_line_include): Maybe call preprocess_main_file lang
3205         hook.
3206         (cb_file_change): Likewise.
3207         * c-ppoutput.c: #include "langhooks.h.
3208         (scan_translation_unit): Maybe call preprocess_token lang hook.
3209         (class do_streamer): New, derive from token_streamer.
3210         (directives_only_cb): Data pointer is do_streamer, call
3211         preprocess_token lang hook.
3212         (scan_translation_unit_directives_only): Use do_streamer.
3213         (print_line_1): Move src_line recording to after string output.
3214         (cb_undef): Maybe call preprocess_undef lang hook.
3216 2020-11-17  Nathan Sidwell  <nathan@acm.org>
3218         * c-ppoutput.c (scan_translation_unit): Use token_streamer, remove
3219         code duplicating that functionality.
3221 2020-11-17  Jakub Jelinek  <jakub@redhat.com>
3223         PR c/90628
3224         * c-common.c (check_builtin_function_arguments)
3225         <case BUILT_IN_ADD_OVERFLOW>: Diagnose when last argument is pointer
3226         to _Atomic.  For the TYPE_READONLY case, adjust message to be usable
3227         for more builtins and argument positions.
3229 2020-11-16  Iain Sandoe  <iain@sandoe.co.uk>
3231         PR objc/97854
3232         * stub-objc.c: Include c-common.h to declare enum rid.
3234 2020-11-13  Jakub Jelinek  <jakub@redhat.com>
3236         PR c++/63287
3237         * c-cppbuiltin.c: Include configargs.h.
3238         (c_cpp_builtins): For C++11 and later if THREAD_MODEL_SPEC is not
3239         defined, predefine __STDCPP_THREADS__ to 1 unless thread_model is
3240         "single".
3242 2020-11-13  Gergö Barany  <gergo@codesourcery.com>
3243             Thomas Schwinge  <thomas@codesourcery.com>
3245         * c.opt (fopenacc-kernels): Add.
3247 2020-11-13  Jason Merrill  <jason@redhat.com>
3249         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_using_enum.
3251 2020-11-13  Piotr H. Dabrowski  <phd@phd.re>
3253         PR c++/91318
3254         * c-cppbuiltin.c: c_cpp_builtins_optimize_pragma(): use cpp_define_unused()
3256 2020-11-13  Martin Liska  <mliska@suse.cz>
3258         * c-attribs.c (build_attr_access_from_parms): Format properly.
3260 2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>
3262         PR objc/90707
3263         * c-common.c (c_common_reswords): null_unspecified, nullable,
3264         nonnull, null_resettable: New keywords.
3265         * c-common.h (enum rid): RID_NULL_UNSPECIFIED, RID_NULLABLE,
3266         RID_NONNULL, RID_NULL_RESETTABLE: New.
3267         (OBJC_IS_PATTR_KEYWORD): Include nullability keywords in the
3268         ranges accepted for property attributes.
3269         * c-attribs.c (handle_objc_nullability_attribute): New.
3270         * c-objc.h (enum objc_property_attribute_group): Add
3271         OBJC_PROPATTR_GROUP_NULLABLE.
3272         (enum objc_property_attribute_kind):Add
3273         OBJC_PROPERTY_ATTR_NULL_UNSPECIFIED, OBJC_PROPERTY_ATTR_NULLABLE,
3274         OBJC_PROPERTY_ATTR_NONNULL, OBJC_PROPERTY_ATTR_NULL_RESETTABLE.
3276 2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>
3278         PR objc/77404
3279         * c-attribs.c (handle_objc_root_class_attribute): New
3280         * c-objc.h (objc_start_class_interface): Add a location
3281         value for the position of the class name.
3282         * c.opt: Add Wobjc-root-class.
3283         * stub-objc.c (objc_start_class_interface): Add a location
3284         value for the position of the class name.
3286 2020-11-12  Joseph Myers  <joseph@codesourcery.com>
3288         * c-lex.c (c_common_has_attribute): Take argument std_syntax.
3289         Allow scope for C.  Handle standard attributes for C.  Do not
3290         accept unscoped attributes if std_syntax and not handled as
3291         standard attributes.
3292         * c-common.h (c_common_has_attribute): Update prototype.
3294 2020-11-12  Nicholas Guriev  <guriev-ns@ya.ru>
3296         PR pch/86674
3297         * c-pch.c (c_common_valid_pch): Use cpp_warning with CPP_W_INVALID_PCH
3298         reason to fix -Werror=invalid-pch and -Wno-error=invalid-pch switches.
3300 2020-11-11  Patrick Palka  <ppalka@redhat.com>
3302         PR c++/88115
3303         * c-opts.c (c_common_post_options): Update latest_abi_version.
3305 2020-11-10  Jakub Jelinek  <jakub@redhat.com>
3307         PR c/97748
3308         * c-common.h (warn_if_unused_value): Add quiet argument defaulted
3309         to false.
3310         * c-warn.c (warn_if_unused_value): Likewise.  Pass it down
3311         recursively and just return true instead of warning if it is true.
3312         Handle COMPLEX_EXPR.
3314 2020-11-10  Chung-Lin Tang  <cltang@codesourcery.com>
3316         * c-common.h (c_omp_adjust_map_clauses): New declaration.
3317         * c-omp.c (struct map_clause): Helper type for c_omp_adjust_map_clauses.
3318         (c_omp_adjust_map_clauses): New function.
3320 2020-11-09  Marek Polacek  <polacek@redhat.com>
3322         DR 1914
3323         * c-common.c (attribute_fallthrough_p): Tweak the warning
3324         message.
3326 2020-11-09  Patrick Palka  <ppalka@redhat.com>
3328         * c-pragma.c (handle_pragma_diagnostic): Split the
3329         unknown-option -Wpragmas diagnostic into a warning and a
3330         subsequent note containing a spelling suggestion.  Avoid
3331         computing the suggestion if -Wpragmas warnings are being
3332         suppressed.
3334 2020-11-09  Patrick Palka  <ppalka@redhat.com>
3336         PR testsuite/97117
3337         * c-indentation.c (get_visual_column): Remove location_t
3338         parameter.  Move the column-tracking diagnostic code from here
3339         to ...
3340         (should_warn_for_misleading_indentation): ... here, before the
3341         early exit for when the loci are not all distinct.  Don't pass a
3342         location_t argument to get_visual_column.
3343         (assert_get_visual_column_succeeds): Don't pass a location_t
3344         argument to get_visual_column.
3345         (assert_get_visual_column_fails): Likewise.
3347 2020-11-08  Iain Sandoe  <iain@sandoe.co.uk>
3349         * c-common.h (OBJC_IS_PATTR_KEYWORD): Add class to the list
3350         of keywords accepted in @property attribute contexts.
3351         * c-objc.h (enum objc_property_attribute_group): Add
3352         OBJC_PROPATTR_GROUP_CLASS.
3353         (enum objc_property_attribute_kind): Add
3354         OBJC_PROPERTY_ATTR_CLASS.
3356 2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>
3358         * c-common.c (c_common_reswords): Add 'atomic' property
3359         attribute.
3360         * c-common.h (enum rid): Add RID_PROPATOMIC for atomic
3361         property attributes.
3363 2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>
3365         * c-attribs.c (handle_nsobject_attribute): New.
3366         * c.opt: Add WNSObject-attribute.
3368 2020-11-06  Iain Sandoe  <iain@sandoe.co.uk>
3370         * c-objc.h (enum objc_property_attribute_group): New
3371         (enum objc_property_attribute_kind): New.
3372         (OBJC_PROPATTR_GROUP_MASK): New.
3373         (struct property_attribute_info): Small class encapsulating
3374         parser output from property attributes.
3375         (objc_prop_attr_kind_for_rid): New
3376         (objc_add_property_declaration): Simplify interface.
3377         * stub-objc.c (enum rid): Dummy type.
3378         (objc_add_property_declaration): Simplify interface.
3379         (objc_prop_attr_kind_for_rid): New.
3381 2020-11-06  Nathan Sidwell  <nathan@acm.org>
3383         * c-ada-spec.c (collect_ada_nodes): Rename
3384         DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
3385         (collect_ada_node): Likewise.
3386         (dump_forward_type): Likewise.
3387         * c-common.c (set_underlying_type): Rename
3388         DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
3389         (user_facing_original_type, c_common_finalize_early_debug): Likewise.
3391 2020-11-06  Jakub Jelinek  <jakub@redhat.com>
3393         * c-common.c (verify_sequence_points): Remove DEBUG_FUNCTION.
3395 2020-11-05  Marek Polacek  <polacek@redhat.com>
3397         PR c++/97675
3398         * c.opt (Wexceptions): New option.
3400 2020-11-05  Marek Polacek  <polacek@redhat.com>
3402         PR c++/25814
3403         * c.opt (Wvexing-parse): New option.
3405 2020-11-04  Jakub Jelinek  <jakub@redhat.com>
3407         PR c++/97670
3408         * c-omp.c (c_omp_split_clauses): Look through array reductions to find
3409         underlying decl to clear in the allocate_head bitmap.
3411 2020-11-04  Iain Sandoe  <iain@sandoe.co.uk>
3413         * c-objc.h (objc_non_constant_expr_p): New.
3414         * stub-objc.c (objc_non_constant_expr_p): New.
3416 2020-11-03  Nathan Sidwell  <nathan@acm.org>
3418         * c.opt (MQ,MT): Reword description to be make-agnostic.
3420 2020-11-02  Nathan Sidwell  <nathan@acm.org>
3422         * c-opts.c (c_common_post_options): Move var decl to its
3423         initialization point.
3425 2020-11-01  Iain Sandoe  <iain@sandoe.co.uk>
3427         * c-lex.c (c_lex_with_flags): When combining '@' with a
3428         keyword for Objective-C, combine the location ranges too.
3430 2020-10-30  Qing Zhao  <qing.zhao@oracle.com>
3431             H.J.Lu  <hjl.tools@gmail.com>
3433         * c-attribs.c (c_common_attribute_table): Add new attribute
3434         zero_call_used_regs.
3435         (handle_zero_call_used_regs_attribute): New function.
3437 2020-10-28  Marek Polacek  <polacek@redhat.com>
3439         PR c++/97573
3440         * c-opts.c (c_common_post_options): In C++20, turn on
3441         -Wdeprecated-enum-enum-conversion and
3442         -Wdeprecated-enum-float-conversion.
3443         * c.opt (Wdeprecated-enum-enum-conversion,
3444         Wdeprecated-enum-float-conversion): New options.
3445         (Wenum-conversion): Allow for C++ too.
3447 2020-10-28  Jakub Jelinek  <jakub@redhat.com>
3449         * c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALLOCATE.
3450         * c-omp.c: Include bitmap.h.
3451         (c_omp_split_clauses): Handle OMP_CLAUSE_ALLOCATE.
3453 2020-10-26  Ville Voutilainen  <ville.voutilainen@gmail.com>
3455         * c-common.c (__is_nothrow_assignable): New.
3456         (__is_nothrow_constructible): Likewise.
3457         * c-common.h (RID_IS_NOTHROW_ASSIGNABLE): New.
3458         (RID_IS_NOTHROW_CONSTRUCTIBLE): Likewise.
3460 2020-10-23  Jan Hubicka  <hubicka@ucw.cz>
3462         * c-common.c (c_common_finalize_early_debug): Update for new thunk api.
3464 2020-10-23  Marek Polacek  <polacek@redhat.com>
3466         PR c++/91741
3467         * c-common.c (verify_tree): Handle PAREN_SIZEOF_EXPR.
3468         (c_common_init_ts): Likewise.
3469         * c-common.def (PAREN_SIZEOF_EXPR): New tree code.
3470         * c-common.h (maybe_warn_sizeof_array_div): Declare.
3471         * c-warn.c (sizeof_pointer_memaccess_warning): Unwrap NOP_EXPRs.
3472         (maybe_warn_sizeof_array_div): New function.
3473         * c.opt (Wsizeof-array-div): New option.
3475 2020-10-23  Martin Sebor  <msebor@redhat.com>
3477         PR c/97463
3478         * c-warn.c (warn_parm_ptrarray_mismatch): Move null test earlier.
3480 2020-10-22  Martin Liska  <mliska@suse.cz>
3482         PR c/94722
3483         * c-attribs.c (handle_no_stack_protect_function_attribute): New.
3484         (handle_stack_protect_attribute): Add error message for a
3485         no_stack_protector function.
3487 2020-10-22  Martin Liska  <mliska@suse.cz>
3489         * c-cppbuiltin.c (c_cpp_builtins): Use the stack_protector enum.
3491 2020-10-22  Jan Hubicka  <hubicka@ucw.cz>
3493         * c-gimplify.c: Include tree-nested.h
3494         (c_genericize): Update for new nested function info.
3496 2020-10-14  Martin Sebor  <msebor@redhat.com>
3498         PR c/97413
3499         * c-attribs.c (build_attr_access_from_parms): Wrap chain of VLA
3500         bounds in an extra list.
3502 2020-10-05  Richard Biener  <rguenther@suse.de>
3503             Jakub Jelinek  <jakub@redhat.com>
3505         PR c++/97197
3506         * c-pretty-print.c: Include langhooks.h.
3507         (c_pretty_printer::postfix_expression): Handle TARGET_MEM_REF as
3508         expression.
3509         (c_pretty_printer::expression): Handle TARGET_MEM_REF as
3510         unary_expression.
3511         (c_pretty_printer::unary_expression): Handle TARGET_MEM_REF.
3513 2020-09-30  Martin Sebor  <msebor@redhat.com>
3515         PR middle-end/97189
3516         * c-attribs.c (append_access_attr): Use the function declaration
3517         location for a warning about an attribute access argument.
3519 2020-09-29  Marek Polacek  <polacek@redhat.com>
3521         PR c++/94695
3522         * c.opt (Wrange-loop-construct): New option.
3524 2020-09-23  Martin Sebor  <msebor@redhat.com>
3526         PR c/97131
3527         * c-warn.c (warn_parm_ptrarray_mismatch): Handle more invalid input.
3529 2020-09-23  Marek Polacek  <polacek@redhat.com>
3531         PR c/97125
3532         * c-gimplify.c (c_genericize): Only call do_warn_duplicated_branches_r
3533         after loops and other structured control constructs have been lowered.
3535 2020-09-22  Jakub Jelinek  <jakub@redhat.com>
3537         * c.opt (Wbuiltin-declaration-mismatch): Fix typo in variable name:
3538         warn_builtin_declaraion_mismatch -> warn_builtin_declaration_mismatch.
3540 2020-09-21  Marek Polacek  <polacek@redhat.com>
3542         * c.opt (Wctad-maybe-unsupported): New option.
3544 2020-09-19  Martin Sebor  <msebor@redhat.com>
3546         PR c/50584
3547         * c-common.h (warn_parm_array_mismatch): Declare new function.
3548         (has_attribute): Move declaration of an existing function.
3549         (build_attr_access_from_parms): Declare new function.
3550         * c-warn.c (parm_array_as_string): Define new function.
3551         (plus_one):  Define new function.
3552         (warn_parm_ptrarray_mismatch): Define new function.
3553         (warn_parm_array_mismatch):  Define new function.
3554         (vla_bound_parm_decl): New function.
3555         * c.opt (-Warray-parameter, -Wvla-parameter): New options.
3556         * c-pretty-print.c (pp_c_type_qualifier_list): Don't print array type
3557         qualifiers here...
3558         (c_pretty_printer::direct_abstract_declarator): ...but instead print
3559         them in brackets here.  Also print [static].  Strip extraneous
3560         expressions from VLA bounds.
3562 2020-09-19  Martin Sebor  <msebor@redhat.com>
3564         PR c/50584
3565         * c-attribs.c (c_common_attribute_table): Add "arg spec" attribute.
3566         (handle_argspec_attribute): New function.
3567         (get_argument, get_argument_type): New functions.
3568         (append_access_attrs): Add overload.  Handle internal attribute
3569         representation in addition to external.
3570         (handle_access_attribute): Handle internal attribute representation
3571         in addition to external.
3572         (build_attr_access_from_parms): New function.
3574 2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>
3576         * c-gimplify.c (genericize_c_loop): Rewrite to match
3577         c_finish_loop in c-typeck.c.
3579 2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>
3581         * c-common.c (c_block_may_fallthrough): New, split from
3582         cxx_block_may_fallthrough in the cp front end.
3583         (c_common_init_ts): Move handling of loop and switch-related
3584         statements here from the cp front end.
3585         * c-common.def (FOR_STMT, WHILE_STMT, DO_STMT): Move here from
3586         cp front end.
3587         (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
3588         * c-common.h (c_block_may_fallthru): Declare.
3589         (bc_state_t): Move here from cp front end.
3590         (save_bc_state, restore_bc_state): Declare.
3591         (c_genericize_control_stmt): Declare.
3592         (WHILE_COND, WHILE_BODY): Likewise.
3593         (DO_COND, DO_BODY): Likewise.
3594         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY, FOR_SCOPE): Likewise.
3595         (SWITCH_STMT_COND, SWITCH_STMT_BODY): Likewise.
3596         (SWITCH_STMT_TYPE, SWITCH_STMT_SCOPE): Likewise.
3597         (SWITCH_STMT_ALL_CASES_P, SWITCH_STMT_NO_BREAK_P): Likewise.
3598         (LABEL_DECL_BREAK, LABEL_DECL_CONTINUE): Likewise.
3599         * c-dump.c (dump_stmt): Copy from cp front end.
3600         (c_dump_tree): Move code to handle structured loop and switch
3601         tree nodes here from cp front end.
3602         * c-gimplify.c: Adjust includes.
3603         (enum bc_t, bc_label, begin_bc_block, finish_bc_block): Move from
3604         cp front end.
3605         (save_bc_state, restore_bc_state): New functions using old code
3606         from cp front end.
3607         (get_bc_label, expr_loc_or_loc): Move from cp front end.
3608         (genericize_c_loop): Move from cp front end.
3609         (genericize_for_stmt, genericize_while_stmt): Likewise.
3610         (genericize_do_stmt, genericize_switch_stmt): Likewise.
3611         (genericize_continue_stmt, genericize_break_stmt): Likewise.
3612         (genericize_omp_for_stmt): Likewise.
3613         (c_genericize_control_stmt): New function using code split from
3614         cp front end.
3615         (c_genericize_control_r): New.
3616         (c_genericize): Call walk_tree with c_genericize_control_r.
3617         * c-pretty-print.c (c_pretty_printer::statement): Move code to handle
3618         structured loop and switch tree nodes here from cp front end.
3620 2020-09-17  Patrick Palka  <ppalka@redhat.com>
3622         PR c/80076
3623         * c-indentation.c (should_warn_for_misleading_indentation): Move
3624         declarations of local variables closer to their first use.
3625         Handle virtual token locations by resolving them to their
3626         respective macro expansion points.  If all three tokens are
3627         produced from the same macro expansion, then instead use their
3628         loci within the macro definition.
3630 2020-09-16  Martin Sebor  <msebor@redhat.com>
3632         PR c/78666
3633         PR c/96126
3634         * c-attribs.c (validate_attr_args): New function.
3635         (validate_attr_arg): Same.
3636         (handle_section_attribute): Call it.  Introduce a local variable.
3637         (handle_alloc_size_attribute):  Same.
3638         (handle_alloc_align_attribute): Same.
3640 2020-09-14  Jakub Jelinek  <jakub@redhat.com>
3642         * c-attribs.c (handle_optimize_attribute): Adjust
3643         cl_optimization_save, cl_optimization_restore and
3644         build_optimization_node callers.
3645         * c-pragma.c (handle_pragma_optimize): Adjust
3646         build_optimization_node caller.
3647         (handle_pragma_push_options): Adjust
3648         build_optimization_node and build_target_option_node callers.
3649         (handle_pragma_pop_options, handle_pragma_reset_options):
3650         Adjust cl_optimization_restore callers.
3652 2020-08-28  Martin Sebor  <msebor@redhat.com>
3654         * c.opt (Wstringop-overread): New option.
3656 2020-08-11  Jakub Jelinek  <jakub@redhat.com>
3658         PR c/96545
3659         * c-common.c (get_atomic_generic_size): Require that first argument's
3660         type points to a complete type and use tree_fits_uhwi_p instead of
3661         just INTEGER_CST TREE_CODE check for the TYPE_SIZE_UNIT.
3663 2020-07-31  Martin Sebor  <msebor@redhat.com>
3665         PR c++/96003
3666         * c-common.c (check_function_arguments_recurse): Return early when
3667         no-warning bit is set.
3669 2020-07-31  Richard Biener  <rguenther@suse.de>
3671         PR debug/96383
3672         * c-common.h (c_common_finalize_early_debug): Declare.
3673         * c-common.c: Include debug.h.
3674         (c_common_finalize_early_debug): finalize_early_debug langhook
3675         implementation generating debug for extern declarations.
3677 2020-07-27  Nathan Sidwell  <nathan@acm.org>
3679         * c-common.c (try_to_locate_new_include_insertion_point): Use
3680         strcmp, not pointer equality.
3682 2020-07-25  Martin Sebor  <msebor@redhat.com>
3684         PR c++/96310
3685         * c-common.c (check_nonnull_arg): Print note only when warning was
3686         issued.
3688 2020-07-22  Tobias Burnus  <tobias@codesourcery.com>
3690         * c-omp.c (c_finish_omp_critical): Check for no name but
3691         nonzero hint provided.
3693 2020-07-20  Jason Merrill  <jason@redhat.com>
3695         * c-cppbuiltin.c (c_cpp_builtins): Update
3696         __cpp_nontype_template_args for C++20.
3698 2020-07-20  Martin Sebor  <msebor@redhat.com>
3700         PR c/96249
3701         * c.opt: Remove stray text.
3703 2020-07-14  Lewis Hyatt  <lhyatt@gmail.com>
3705         PR other/86904
3706         * c-indentation.c (should_warn_for_misleading_indentation): Get
3707         global tabstop from the new source.
3708         * c-opts.c (c_common_handle_option): Remove handling of -ftabstop, which
3709         is now a common option.
3710         * c.opt: Likewise.
3712 2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
3714         * c.opt (Wscalar-storage-order): Add explicit variable.
3716 2020-07-07  Nathan Sidwell  <nathan@acm.org>
3718         * c-opts.c (c_common_post_options): Add 'injecting' arg to
3719         cpp_read_main_file.
3720         (c_finish_options): Add linemap_line_start calls for builtin and cmd
3721         maps.  Force token position to line_table's highest line.
3722         * c-ppoutput.c (print_line_1): Refactor, print line zero.
3723         (cb_define): Always increment source line.
3725 2020-07-06  Martin Sebor  <msebor@redhat.com>
3727         PR c++/95984
3728         * c-common.c (check_function_nonnull): Avoid checking syntesized calls
3729         to stub lambda objects with null this pointer.
3730         (check_nonnull_arg): Handle C++ nullptr.
3732 2020-07-02  Jason Merrill  <jason@redhat.com>
3733             Jakub Jelinek  <jakub@redhat.com>
3735         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_consteval.
3737 2020-06-30  Jakub Jelinek  <jakub@redhat.com>
3739         PR c++/95963
3740         * c-common.c (check_function_arguments_recurse): Don't crash on
3741         calls to internal functions.
3743 2020-06-28  Martin Sebor  <msebor@redhat.com>
3745         PR c++/86568
3746         * c-common.c (struct nonnull_arg_ctx): Add members.
3747         (check_function_nonnull): Use nonnull_arg_ctx as argument.  Handle
3748         C++ member functions specially.  Consider the this pointer implicitly
3749         nonnull.
3750         (check_nonnull_arg): Use location of argument when available.
3751         (check_function_arguments): Use nonnull_arg_ctx as argument.
3753 2020-06-27  Jakub Jelinek  <jakub@redhat.com>
3755         PR middle-end/95903
3756         * c-common.c (pointer_int_sum): Use TYPE_OVERFLOW_UNDEFINED instead of
3757         !TYPE_UNSIGNED check to see if we can apply distributive law and handle
3758         smaller precision intop operands separately.
3760 2020-06-26  Marek Polacek  <polacek@redhat.com>
3762         * c-opts.c (c_common_init_options): Default to gnu++17.
3764 2020-06-17  Jonathan Wakely  <jwakely@redhat.com>
3766         PR c/95378
3767         * c-common.c (get_atomic_generic_size): Check cv-qualifiers in
3768         pointer arguments.
3770 2020-06-16  Jakub Jelinek  <jakub@redhat.com>
3772         * c-common.h (c_omp_check_loop_iv_exprs): Add an int argument.
3773         * c-omp.c (struct c_omp_check_loop_iv_data): Add maybe_nonrect and
3774         idx members.
3775         (c_omp_is_loop_iterator): New function.
3776         (c_omp_check_loop_iv_r): Use it.  Add support for silent scanning
3777         if outer loop iterator is present.  Perform duplicate checking through
3778         hash_set in the function rather than expecting caller to do that.
3779         Pass NULL instead of d->ppset to walk_tree_1.
3780         (c_omp_check_nonrect_loop_iv): New function.
3781         (c_omp_check_loop_iv): Use it.  Fill in new members, allow
3782         non-rectangular loop forms, diagnose multiple associated loops with
3783         the same iterator.  Pass NULL instead of &pset to walk_tree_1.
3784         (c_omp_check_loop_iv_exprs): Likewise.
3786 2020-06-10  Martin Liska  <mliska@suse.cz>
3788         PR tree-optimization/92860
3789         * c-attribs.c (handle_optimize_attribute):
3790         Save global options and compare it after parsing of function
3791         attribute.
3792         * c-pragma.c (opt_stack::saved_global_options): New field.
3793         (handle_pragma_push_options): Save global_options.
3794         (handle_pragma_pop_options): Compare them after pop.
3796 2020-06-09  Jakub Jelinek  <jakub@redhat.com>
3798         PR c/95580
3799         * c-pretty-print.c (c_pretty_printer::unary_expression): Handle the
3800         case when MEM_REF's first argument has type pointer to incomplete type.
3802 2020-06-05  Jason Merrill  <jason@redhat.com>
3804         * c-pretty-print.c (pp_c_additive_expression): Handle negative
3805         operand to POINTER_PLUS_EXPR.
3807 2020-06-04  Martin Sebor  <msebor@redhat.com>
3809         PR middle-end/10138
3810         PR middle-end/95136
3811         * c-attribs.c (append_access_attrs): Handle attr_access::none.
3812         (handle_access_attribute): Same.
3814 2020-06-03  Mark Wielaard  <mark@klomp.org>
3816         * known-headers.cc (get_cp_stdlib_header_for_string_macro_name):
3817         New function.
3818         * known-headers.h (get_cp_stdlib_header_for_string_macro_name):
3819         New function declaration.
3821 2020-06-03  Mark Wielaard  <mark@klomp.org>
3823         * known-headers.cc (get_string_macro_hint): New function.
3824         (get_stdlib_header_for_name): Use get_string_macro_hint.
3825         (get_c_stdlib_header_for_string_macro_name): New function.
3826         * known-headers.h (get_c_stdlib_header_for_string_macro_name):
3827         New function declaration.
3829 2020-06-03  Tobias Burnus  <tobias@codesourcery.com>
3831         * c-common.h (c_omp_predetermined_mapping): Declare.
3832         * c-omp.c (c_omp_predetermined_mapping): New.
3834 2020-05-22  Mark Wielaard  <mark@klomp.org>
3836         * known-headers.cc (get_stdlib_header_for_name): Add a new
3837         stdlib_hint array for stdbool and stdint.
3839 2020-05-22  Mark Wielaard  <mark@klomp.org>
3841         * known-headers.cc (get_stdlib_header_for_name): Return
3842         "<stdbool.h>" for "bool", "true" or "false" when STDLIB_C and
3843         flag_isoc99.
3845 2020-05-20  Nathan Sidwell  <nathan@acm.org>
3847         * c-common.c (try_to_locate_new_include_insertion_point): Revert change.
3849         * c-common.c (try_to_locate_new_include_insertion_point): Use
3850         strcmp to compare filenames.
3851         * c-lex.c (init_c_lex): Move declaration to initialization.
3852         * c-opts.c (handle_deferred_opts): Move cpp_get_deps call into
3853         deferred count loop.
3855 2020-05-15  Jason Merrill  <jason@redhat.com>
3857         * c-opts.c (set_std_cxx20): Set flag_coroutines.
3859 2020-05-13  Jason Merrill  <jason@redhat.com>
3861         * c.opt (std=c++20): Make c++2a the alias.
3862         (std=gnu++20): Likewise.
3863         * c-common.h (cxx_dialect): Change cxx2a to cxx20.
3864         * c-opts.c: Adjust.
3865         * c-cppbuiltin.c: Adjust.
3866         * c-ubsan.c: Adjust.
3867         * c-warn.c: Adjust.
3869 2020-05-12  Eric Botcazou  <ebotcazou@adacore.com>
3871         * c-ada-spec.c (dump_ads): Output pragma Warnings ("U"); on entry.
3873 2020-05-08  Nathan Sidwell  <nathan@acm.org>
3875         Reimplement directives only processing.
3876         * c-ppoutput.c (token_streamer): Ne.
3877         (directives_only_cb): New.  Swallow ...
3878         (print_lines_directives_only): ... this.
3879         (scan_translation_unit_directives_only): Reimplment using the
3880         published interface.
3882 2020-05-07  Marek Polacek  <polacek@redhat.com>
3884         * c-format.c (badwords): Add "nonstatic".
3886 202-05-07  Jakub Jelinek  <jakub@redhat.com>
3888         PR c/94968
3889         * c-common.c (speculation_safe_value_resolve_params): Return false if
3890         error_operand_p (val2).
3891         (resolve_overloaded_builtin) <case BUILT_IN_SPECULATION_SAFE_VALUE_N>:
3892         Remove extraneous semicolon.
3894 2020-05-06  qing zhao  <qing.zhao@oracle.com>
3896         PR c/94230
3897         * c-indentation.c (get_visual_column): Add a hint to use the new
3898         -flarge-source-files option.
3900 2020-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
3902         * c-attribs.c (handle_vector_size_attribute): Add attribute
3903         nonnull for argument args in order to silence warning of
3904         uninitialized variable usage.  Since this is local to the
3905         compilation unit and thus cannot be checked at call sides by the
3906         compiler, added an assert statement in order to verify this.
3908 2020-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3910         PR target/93492
3911         * c-attribs.c (handle_patchable_function_entry_attribute): Limit
3912         value to USHRT_MAX (65535).
3914 2020-04-29  Jakub Jelinek  <jakub@redhat.com>
3916         * c-format.c (PP_FORMAT_CHAR_TABLE): Add %{ and %}.
3918 2020-04-27  Jakub Jelinek  <jakub@redhat.com>
3920         PR c/94755
3921         * c-common.c (resolve_overloaded_builtin): Return error_mark_node for
3922         fncode == BUILT_IN_NONE before initialization of first_param.
3924 2020-04-23  Marek Polacek  <polacek@redhat.com>
3926         PR c++/94733
3927         * c-attribs.c (find_tm_attribute): Use get_attribute_name instead of
3928         TREE_PURPOSE.
3930 2020-04-14  Patrick Palka  <ppalka@redhat.com>
3932         PR c++/85278
3933         * c-pretty-print.c (pp_c_pointer) <case REFERENCE_TYPE>: Print a double
3934         ampersand if it's an rvalue reference type.
3936 2020-04-13  Martin Sebor  <msebor@redhat.com>
3938         PR c/92326
3939         * c-pretty-print.c (c_pretty_printer::direct_abstract_declarator): Avoid
3940         printing array bound for flexible array members.
3942 2020-04-13  Iain Sandoe  <iain@sandoe.co.uk>
3944         * c-cppbuiltin.c (c_cpp_builtins): Update coroutines builtin
3945         define, per n4861.
3947 2020-04-02  Richard Biener  <rguenther@suse.de>
3949         PR c/94392
3950         * c-opts.c (c_common_post_options): Enable -ffinite-loops
3951         for -O2 and C++11 or newer.
3953 2020-03-28  Patrick Palka  <ppalka@redhat.com>
3955         * c.opt: Add -fconcepts-diagnostics-depth.
3957 2020-03-27  Martin Sebor  <msebor@redhat.com>
3959         PR c++/94346
3960         * c-attribs.c (handle_copy_attribute): Avoid passing expressions
3961         to decl_attributes.  Make handling of different kinds of entities
3962         more robust.
3964 2020-03-27  Martin Sebor  <msebor@redhat.com>
3966         PR c++/94098
3967         * c-attribs.c (handle_access_attribute): Avoid setting TYPE_ATTRIBUTES
3968         here.
3970 2020-03-23  Jakub Jelinek  <jakub@redhat.com>
3972         PR c++/91993
3973         * c-warn.c (warnings_for_convert_and_check): For expr and/or
3974         result being COMPOUND_EXPRs, skip to ultimate rhs.
3976 2020-03-20  Richard Sandiford  <richard.sandiford@arm.com>
3978         PR middle-end/94072
3979         * c-common.c (c_common_type_for_mode): Before using a registered
3980         built-in type, check that the vectorness of the type matches
3981         the vectorness of the mode.
3983 2020-03-17  Jakub Jelinek  <jakub@redhat.com>
3985         * c-common.c (resolve_overloaded_builtin): Fix up duplicated word
3986         issue in a diagnostic message.
3988 2020-03-15  Lewis Hyatt  <lhyatt@gmail.com>
3990         * c.opt: Avoid redundancy in the help text.
3992 2020-03-02  Marek Polacek  <polacek@redhat.com>
3994         PR c++/93958 - add missing -std=gnu++20.
3995         * c.opt: Add -std=gnu++20.
3997 2020-03-01  Martin Sebor  <msebor@redhat.com>
3999         PR c++/92721
4000         * c-attribs.c (append_access_attrs): Correctly handle attribute.
4001         (handle_access_attribute): Same.
4003 2020-02-25  Jakub Jelinek  <jakub@redhat.com>
4005         PR c/93858
4006         * c-pragma.c (handle_pragma_diagnostic): Add missing ? after
4007         "did you mean" hint in diagnostics.
4009 2020-02-15  Jason Merrill  <jason@redhat.com>
4011         * c.opt: Add -std=c++20.
4013 2020-02-14  Eric Botcazou  <ebotcazou@adacore.com>
4015         * c-ada-spec.c: Include bitmap.h.
4016         (dump_ada_double_name): Rename into...
4017         (dump_anonymous_type_name): ...this.  Always use the TYPE_UID.
4018         (dump_ada_array_type): Adjust to above renaming.  Robustify.
4019         (dump_nested_types_1): New function copied from...  Add dumped_types
4020         parameter and pass it down to dump_nested_type.
4021         (dump_nested_types): ...this.  Remove parent parameter.  Just call
4022         dump_nested_types_1 on an automatic bitmap.
4023         (dump_nested_type): Add dumped_types parameter.
4024         <ARRAY_TYPE>: Do not dump it if already present in dumped_types.
4025         Adjust recursive calls and adjust to above renaming.
4026         (dump_ada_declaration): Adjust call to dump_nested_types.
4027         Tidy up and adjust to above renaming.
4028         (dump_ada_specs): Initialize and release bitmap obstack.
4030 2020-02-10  Martin Sebor  <msebor@redhat.com>
4032         PR c/93640
4033         * c-attribs.c (handle_access_attribute): Correct off-by-one mistakes.
4035 2020-02-10  Jakub Jelinek  <jakub@redhat.com>
4037         PR other/93641
4038         * c-format.c (check_plain): Fix up last argument of strncasecmp.
4039         Remove useless extra test.
4041 2020-02-03  Julian Brown  <julian@codesourcery.com>
4042             Tobias Burnus  <tobias@codesourcery.com>
4044         * c-cppbuiltin.c (c_cpp_builtins): Update _OPENACC define to 201711.
4046 2020-01-29  Jason Merrill  <jason@redhat.com>
4048         PR c++/89357
4049         * c-attribs.c (check_cxx_fundamental_alignment_constraints): Remove.
4051 2020-01-23  Jason Merrill  <jason@redhat.com>
4053         * c-warn.c (conversion_warning): Change -Wsign-conversion handling.
4055 2020-01-23  Martin Sebor  <msebor@redhat.com>
4057         PR c/84919
4058         * c-common.c (check_function_arguments): Avoid overlap checking
4059         of sprintf functions.
4061 2020-01-22  Jason Merrill  <jason@redhat.com>
4063         PR testsuite/93391 - PR 40752 test fails with unsigned plain char.
4064         PR c++/40752
4065         * c-warn.c (conversion_warning): Check operands only after checking
4066         the whole expression.  Don't check second operand of + for sign.
4068 2020-01-21  Jason Merrill  <jason@redhat.com>
4069             Manuel López-Ibáñez  <manu@gcc.gnu.org>
4071         PR c++/40752 - useless -Wconversion with short +=.
4072         * c.opt (-Warith-conversion): New.
4073         * c-warn.c (conversion_warning): Recurse for operands of
4074         operators.  Only warn about the whole expression with
4075         -Warith-conversion.
4077 2020-01-21  Jason Merrill  <jason@redhat.com>
4079         * c-common.c (unsafe_conversion_p): Don't warn, return UNSAFE_SIGN.
4080         * c-warn.c (conversion_warning): Warn about UNSAFE_SIGN.
4082 2020-01-20  Nathan Sidwell  <nathan@acm.org>
4084         PR preprocessor/80005
4085         * c-cppbuiltins.c (c_cpp_builtins): Don't define __has_include{,_next}.
4087 2020-01-18  Iain Sandoe  <iain@sandoe.co.uk>
4089         * c-common.c (co_await, co_yield, co_return): New.
4090         * c-common.h (RID_CO_AWAIT, RID_CO_YIELD,
4091         RID_CO_RETURN): New enumeration values.
4092         (D_CXX_COROUTINES): Bit to identify coroutines are active.
4093         (D_CXX_COROUTINES_FLAGS): Guard for coroutine keywords.
4094         * c-cppbuiltin.c (__cpp_coroutines): New cpp define.
4095         * c.opt (fcoroutines): New command-line switch.
4097 2020-01-10  David Malcolm  <dmalcolm@redhat.com>
4099         * c-format.c (local_event_ptr_node): New.
4100         (PP_FORMAT_CHAR_TABLE): Add entry for "%@".
4101         (init_dynamic_diag_info): Initialize local_event_ptr_node.
4102         * c-format.h (T_EVENT_PTR): New define.
4104 2020-01-10  Martin Sebor  <msebor@redhat.com>
4106         PR c/93132
4107         * c-attribs.c (append_access_attrs): Validate against the translated
4108         access string rather than the human-readable representation.
4110 2020-01-01  Jakub Jelinek  <jakub@redhat.com>
4112         Update copyright years.
4114 2019-12-20  Eric Botcazou  <ebotcazou@adacore.com>
4116         * c-ada-spec.h (decl_sloc): Delete.
4117         * c-ada-spec.c (decl_sloc): Make static.
4119 2019-12-19  Julian Brown  <julian@codesourcery.com>
4121         * c-common.h (c_omp_map_clause_name): Add prototype.
4122         * c-omp.c (c_omp_map_clause_name): New function.
4123         * c-pragma.h (pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ATTACH and
4124         PRAGMA_OACC_CLAUSE_DETACH.
4126 2019-12-19  Julian Brown  <julian@codesourcery.com>
4127             Maciej W. Rozycki  <macro@codesourcery.com>
4128             Tobias Burnus  <tobias@codesourcery.com>
4129             Thomas Schwinge  <thomas@codesourcery.com>
4131         * c-pragma.h (pragma_omp_clause): Add
4132         PRAGMA_OACC_CLAUSE_NO_CREATE.
4134 2019-12-17  Martin Sebor  <msebor@redhat.com>
4136         PR c++/61339
4137         * c.opt (-Wmismatched-tags, -Wredundant-tags): New options.
4139 2019-12-11  David Malcolm  <dmalcolm@redhat.com>
4141         * c-pretty-print.c (c_pretty_printer::clone): New vfunc
4142         implementation.
4143         * c-pretty-print.h (c_pretty_printer::clone): New vfunc decl.
4145 2019-12-09  David Malcolm  <dmalcolm@redhat.com>
4147         * c-format.c (range_label_for_format_type_mismatch::get_text):
4148         Replace label_text ctor called with true with label_text::take.
4150 2019-12-09  David Malcolm  <dmalcolm@redhat.com>
4152         * c-format.c (selftest::test_type_mismatch_range_labels): Remove
4153         initial newline from expected outputs.
4154         * c-opts.c (c_diagnostic_finalizer): Add pp_newline call before
4155         call to diagnostic_show_locus.
4157 2019-12-06  Jakub Jelinek  <jakub@redhat.com>
4159         * c-cppbuiltin.c (c_cpp_builtins): Don't define __cpp_consteval for
4160         now.
4162 2019-12-05  Marek Polacek  <polacek@redhat.com>
4163             Jakub Jelinek  <jakub@redhat.com>
4165         PR c++/91353 - P1331R2: Allow trivial default init in constexpr contexts.
4166         * c-cppbuiltin.c (c_cpp_builtins): Adjust the value of __cpp_constexpr.
4168 2019-12-05  Marek Polacek  <polacek@redhat.com>
4170         PR c++/92271 - make __is_same alias for __is_same_as.
4171         * c-common.c: Add __is_same, an alias for __is_same_as.
4173 2019-12-03  Marek Polacek  <polacek@redhat.com>
4175         PR c++/91363 - P0960R3: Parenthesized initialization of aggregates.
4176         * c-cppbuiltin.c (c_cpp_builtins): Predefine
4177         __cpp_aggregate_paren_init=201902 for -std=c++2a.
4179 2019-11-30  Jan Hubicka  <hubicka@ucw.cz>
4181         * c-attribs.c (handle_symver_attribute): New function
4182         (c_common_attributes): Add symver.
4184 2019-11-30  Richard Sandiford  <richard.sandiford@arm.com>
4186         * c-common.c (pointer_int_sum): Use verify_type_context to check
4187         whether the target allows pointer arithmetic for the types involved.
4188         (c_sizeof_or_alignof_type, c_alignof_expr): Use verify_type_context
4189         to check whether the target allows sizeof and alignof operations
4190         for the types involved.
4192 2019-11-27  Jason Merrill  <jason@redhat.com>
4194         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_deduction_guides.
4196 2019-11-26  Jakub Jelinek  <jakub@redhat.com>
4198         PR c++/61414
4199         * c-attribs.c (handle_mode_attribute): Add mode attribute to
4200         ENUMERAL_TYPEs.
4202 2019-11-25  Joseph Myers  <joseph@codesourcery.com>
4204         PR c/91985
4205         * c-common.c (c_common_type_for_mode): Handle decimal
4206         floating-point types being NULL_TREE.
4207         * c-format.c (get_format_for_type_1): Handle specified types being
4208         NULL_TREE.
4209         * c-lex.c (interpret_float): Give an error for decimal
4210         floating-point constants when decimal floating-point not
4211         supported.
4213 2019-11-23  Jakub Jelinek  <jakub@redhat.com>
4215         PR middle-end/83859
4216         * c-attribs.c (append_access_attrs): Avoid buffer overflow.  Avoid
4217         memory leak.  Use XNEWVEC macro.  Use auto_diagnostic_group to
4218         group warning with inform together.
4219         (handle_access_attribute): Formatting fix.
4221 2019-11-22  Jakub Jelinek  <jakub@redhat.com>
4223         PR c/90677
4224         * c-common.h (identifier_global_tag): Declare.
4225         * c-format.c (get_pointer_to_named_type): Renamed to ...
4226         (get_named_type): ... this.  Use identifier_global_tag instead of
4227         identifier_global_value, handle the return value being a TYPE_P.
4228         (init_dynamic_diag_info): Adjust get_pointer_to_named_type callers
4229         to call get_named_type instead.  Formatting fixes.
4231         Implement P1902R1, Missing feature-test macros 2017-2019.
4232         * c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_init_captures
4233         and __cpp_generic_lambdas for -std=c++2a.  Define
4234         __cpp_designated_initializers, __cpp_constexpr_in_decltype and
4235         __cpp_consteval for -std=c++2a.  Remove a FIXME comment about
4236         __cpp_concepts for -std=c++2a.
4238 2019-11-22  Martin Sebor  <msebor@redhat.com>
4240         PR middle-end/83859
4241         * c-attribs.c (handle_access_attribute): New function.
4242         (c_common_attribute_table): Add new attribute.
4243         (get_argument_type): New function.
4244         (append_access_attrs): New function.
4245         (get_nonnull_operand): Rename...
4246         (get_attribute_operand): ...to this.
4247         * c-common.c (get_nonnull_operand): Rename...
4248         (get_attribute_operand): ...to this.
4250 2019-11-21  Joseph Myers  <joseph@codesourcery.com>
4252         * c-attribs.c (handle_fallthrough_attribute): Use pedwarn instead
4253         of warning.
4255 2019-11-19  Joseph Myers  <joseph@codesourcery.com>
4257         * c-common.c (attribute_fallthrough_p): In C, use pedwarn not
4258         warning for standard attributes mixed with fallthrough attributes.
4260 2019-11-15  Joseph Myers  <joseph@codesourcery.com>
4262         * c-attribs.c (handle_fallthrough_attribute): Remove static.
4263         * c-common.h (handle_fallthrough_attribute): Declare.
4265 2019-11-15  Joseph Myers  <joseph@codesourcery.com>
4267         * c-attribs.c (handle_deprecated_attribute): Remove static.
4268         * c-common.h (handle_deprecated_attribute): Declare.
4270 2019-11-14  Joseph Myers  <joseph@codesourcery.com>
4272         * c-lex.c (lex_charconst): Make CPP_UTF8CHAR constants unsigned
4273         char for C.
4275 2019-11-14  Jakub Jelinek  <jakub@redhat.com>
4277         * c-omp.c (c_omp_check_context_selector): Add nvidia to the list of
4278         valid vendors.
4280         * c-omp.c (c_omp_check_context_selector): Handle name lists
4281         containing string literals.  Don't diagnose atomic_default_mem_order
4282         with multiple props.
4284 2019-11-13  Joseph Myers  <joseph@codesourcery.com>
4286         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4287         NORM_MAX constants.  Update call to get_max_float.
4288         (LAZY_HEX_FP_VALUES_CNT): Update value to include NORM_MAX
4289         constants.
4291 2019-11-13  Eric Botcazou  <ebotcazou@adacore.com>
4293         * c-ada-spec.c (get_underlying_decl): Do not look through typedefs.
4294         (dump_forward_type): Do not generate a declaration for function types.
4295         (dump_nested_type) <ARRAY_TYPE>: Do not generate a nested declaration
4296         of the component type if it is declared in another file.
4298 2019-11-12  Martin Liska  <mliska@suse.cz>
4300         * c-opts.c (c_common_post_options):
4301         Use SET_OPTION_IF_UNSET.
4303 2019-11-12  Maciej W. Rozycki  <macro@codesourcery.com>
4304             Frederik Harwath  <frederik@codesourcery.com>
4306         gcc/c-family/
4307         * c-pragma.h (pragma_kind): Add PRAGMA_OACC_SERIAL enumeration
4308         constant.
4309         * c-pragma.c (oacc_pragmas): Add "serial" entry.
4311 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
4313         * c-common.h (gnu_vector_type_p): New function.
4314         * c-common.c (c_build_vec_perm_expr): Require __builtin_shuffle
4315         vectors to satisfy gnu_vector_type_p.
4316         (c_build_vec_convert): Likewise __builtin_convertvector.
4317         (convert_vector_to_array_for_subscript): Likewise when applying
4318         implicit vector to array conversion.
4319         (scalar_to_vector): Likewise when converting vector-scalar
4320         operations to vector-vector operations.
4322 2019-11-08  Joseph Myers  <joseph@codesourcery.com>
4324         * c.opt (Wold-style-definition): Initialize to -1.
4325         * c-opts.c (c_common_post_options): Set warn_old_style_definition
4326         to flag_isoc2x if not set explicitly.
4328 2019-11-07  Joseph Myers  <joseph@codesourcery.com>
4330         * c-attribs.c (parse_tm_stmt_attr): Handle scoped attributes.
4332 2019-11-05  Jason Merrill  <jason@redhat.com>
4334         * c-opts.c (c_common_post_options): -fconcepts-ts implies
4335         -fconcepts.
4337 2019-11-04  Kamlesh Kumar  <kamleshbhalui@gmail.com>
4339         * c-opts.c (c_common_post_options): Update
4340         latest_abi_version.
4342 2019-11-02  Jakub Jelinek  <jakub@redhat.com>
4344         * c-common.h (c_omp_get_context_selector): Remove.
4345         * c-omp.c (c_omp_get_context_selector): Moved to omp-general.c
4346         and renamed to omp_get_context_selector.
4348         * c-omp.c (c_omp_mark_declare_variant): Use
4349         omp_context_selector_set_compare.
4351         PR c++/88335 - Implement P1073R3: Immediate functions
4352         * c-common.h (enum rid): Add RID_CONSTEVAL.
4353         * c-common.c (c_common_reswords): Add consteval.
4355 2019-11-01  Martin Sebor  <msebor@redhat.com>
4357         PR middle-end/91679
4358         PR middle-end/91647
4359         PR middle-end/91463
4360         PR middle-end/92312
4361         * c-pretty-print.c (direct_abstract_declarator): Print
4362         bound in zero-length arrays.
4363         * c.opt (-Wzero-length-bounds): New option.
4365 2019-10-30  Nathan Sidwell  <nathan@acm.org>
4367         * c-cppbuiltin.c (c_cpp_builtins): Add 'L' suffix to feature
4368         macros.
4370 2019-10-28  Martin Sebor  <msebor@redhat.com>
4372         PR c/66970
4373         * c-common.c (c_common_nodes_and_builtins): Call c_define_builtins
4374         even when only preprocessing.
4375         * c-common.h (names_builtin_p): Declare new function.
4376         * c-lex.c (init_c_lex): Set has_builtin.
4377         (c_common_has_builtin): Define a new function.
4378         * c-ppoutput.c (init_pp_output): Set has_builtin.
4380 2019-10-24  Jakub Jelinek  <jakub@redhat.com>
4382         * c-common.h (c_omp_context_selector_matches): Remove.
4383         * c-omp.c (c_omp_context_selector_matches): Remove.
4384         * c-attribs.c (c_common_attribute_table): Add
4385         "omp declare target {host,nohost,block}" attributes.
4387 2019-10-17  JeanHeyd Meneide  <phdofthehouse@gmail.com>
4389         * c-lex.c (c_common_has_attribute): Update nodiscard value.
4391 2019-10-14  Richard Sandiford  <richard.sandiford@arm.com>
4393         * c-common.h (user_facing_original_type_p): Declare.
4394         * c-common.c: Include c-spellcheck.h.
4395         (user_facing_original_type_p): New function.
4397 2019-10-12  Jakub Jelinek  <jakub@redhat.com>
4399         * c-common.h (c_omp_mark_declare_variant,
4400         c_omp_context_selector_matches): Declare.
4401         * c-omp.c: Include attribs.h, gimplify.h, cgraph.h, symbol-summary.h
4402         and hsa-common.h.
4403         (c_omp_get_context_selector): Support second argument NULL.
4404         (c_omp_mark_declare_variant, c_omp_context_selector_matches): New
4405         functions.
4406         * c-attribs.c (c_common_attribute_table): Remove "omp declare variant"
4407         attribute, add "omp declare variant base" and
4408         "omp declare variant variant" attributes.
4410 2019-10-11  Joseph Myers  <joseph@codesourcery.com>
4412         * c.opt (Wc11-c2x-compat): Add CPP(cpp_warn_c11_c2x_compat)
4413         CppReason(CPP_W_C11_C2X_COMPAT).
4415 2019-10-11  Joseph Myers  <joseph@codesourcery.com>
4417         * c-common.c (c_common_reswords): Do not use D_EXT for _Decimal32,
4418         _Decimal64 and _Decimal128.
4420 2019-10-10  Joseph Myers  <joseph@codesourcery.com>
4422         * c-cppbuiltin.c (c_cpp_builtins): Do not define macros for DFP
4423         types if DFP not supported.
4425 2019-10-10  Jakub Jelinek  <jakub@redhat.com>
4427         * c-common.h (c_omp_check_context_selector,
4428         c_omp_get_context_selector): Declare.
4429         * c-omp.c (c_omp_declare_simd_clauses_to_numbers): Fix spelling
4430         in diagnostic message.
4431         (c_omp_check_context_selector, c_omp_get_context_selector): New
4432         functions.
4433         * c-attribs.c (c_common_attribute_table): Add "omp declare variant"
4434         attribute.
4435         (handle_omp_declare_variant_attribute): New function.
4437 2019-10-09  Martin Sebor  <msebor@redhat.com>
4439         PR tree-optimization/90879
4440         * c.opt (-Wstring-compare): New option.
4442 2019-10-08  Andrew Sutton  <asutton@lock3software.com>
4443             Jason Merrill  <jason@redhat.com>
4445         Update the concepts implementation to conform to the C++20
4446         specification, improve compile times, and generally clean up
4447         the implementation.
4449         * c-cppbuiltin.c (c_cpp_builtins): Use new feature test values for
4450         concepts when -std=c++2a. Bump __cpp_concepts to 201907.
4451         * c.opt: Add -Wconcepts-ts.
4452         * c-opts.c (c_common_post_options): Warn when -fconcepts is used
4453         with -std=c++2a. Disable warning for -fconcepts in C++20 mode.
4454         (set_std_cxx2a): Enable concepts by default.
4456 2019-10-08  Joseph Myers  <joseph@codesourcery.com>
4458         * c-opts.c (c_common_post_options): Set
4459         -fno-fp-int-builtin-inexact for C2X.
4461 2019-10-05  Jakub Jelinek  <jakub@redhat.com>
4463         PR c++/91369 - Implement P0784R7: constexpr new
4464         * c-cppbuiltin.c (c_cpp_builtins): Predefine
4465         __cpp_constexpr_dynamic_alloc=201907 for -std=c++2a.
4467 2019-10-04  Joseph Myers  <joseph@codesourcery.com>
4469         PR c/82752
4470         * c-format.c (C_STD_VER): Handle C2x.
4471         (C_STD_NAME): Likewise.
4472         (strftime_flag_specs): Add 'O' modifier with 'p' flag.
4473         (time_char_table): Use separate entry for 'B' and 'b', with 'O'
4474         modifier allowed and 'p' flag.
4475         * c-format.h (enum format_std_version): Add STD_C2X.
4476         (struct format_char_info): Mention 'p' in comment on flags2.
4478 2019-10-01  David Malcolm  <dmalcolm@redhat.com>
4480         * c-opts.c (c_diagnostic_finalizer): Temporarily clear prefix when
4481         calling diagnostic_show_locus, rather than destroying it afterwards.
4483 2019-10-01  Jakub Jelinek  <jakub@redhat.com>
4485         PR c++/91925
4486         * c-warn.c (check_alignment_of_packed_member): Ignore FIELD_DECLs
4487         with NULL DECL_FIELD_OFFSET.
4489 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
4491         * c-pretty-print.c (pp_c_specifier_qualifier_list): If a vector type
4492         has a type name, use it in preference to the __vector syntax.
4494 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
4496         * c-pretty-print.c (pp_c_parameter_type_list): Avoid printing
4497         two spaces between a comma and "...".
4499 2019-09-27  Jakub Jelinek  <jakub@redhat.com>
4501         PR c++/88203
4502         * c-common.h (c_omp_predefined_variable): Declare.
4503         * c-omp.c (c_omp_predefined_variable): New function.
4504         (c_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
4505         for predefined variables.
4507 2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>
4509         * c-common.h (build_function_call_vec): Take the original
4510         function decl as an optional final parameter.
4511         (check_builtin_function_arguments): Take the original function decl.
4512         * c-common.c (check_builtin_function_arguments): Likewise.
4513         Handle all built-in functions, not just BUILT_IN_NORMAL ones.
4514         Use targetm.check_builtin_call to check BUILT_IN_MD functions.
4516 2019-09-15  Jason Merrill  <jason@redhat.com>
4518         * c-warn.c (warn_logical_operator): Strip location wrappers.  Don't
4519         fold_for_warn in "|| mask" warning.
4521 2019-09-10  Martin Liska  <mliska@suse.cz>
4523         * c.opt: Use newly added WarnRemoved.
4525 2019-09-09  Martin Liska  <mliska@suse.cz>
4527         * c.opt: Update comment of removed
4528         options that are preserved only for backward
4529         compatibility.
4531 2019-09-06  Martin Liska  <mliska@suse.cz>
4533         PR c++/91125
4534         * c-common.c: Remove definition of flag_use_repository.
4535         * c-common.h: Likewise.
4536         * c-opts.c (c_common_handle_option):
4537         Do not handle OPT_frepo option.
4538         * c.opt: Mark the option with Deprecated.
4540 2019-09-04  Marek Polacek  <polacek@redhat.com>
4542         * c.opt (fdeduce-init-list): Ignored.
4544 2019-09-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4546         PR c/78736
4547         * c.opt (Wenum-conversion): New option.
4549 2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4551         * c-attribs.c (handle_section_attribute): Call the
4552         handle_generic_attribute target hook after performing target
4553         independent processing.
4554         (handle_noinit_attribute): Likewise.
4556 2019-09-03  Ian Lance Taylor  <iant@golang.org>
4558         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Always expand
4559         when using -fgo-dump-spec.
4561 2019-09-02  Martin Liska  <mliska@suse.cz>
4563         PR c++/91155
4564         * c-common.c (fname_as_string): Use cxx_printable_name for
4565         __PRETTY_FUNCTION__ same as was used before r265711.
4567 2019-08-28  Marek Polacek  <polacek@redhat.com>
4569         Implement P1152R4: Deprecating some uses of volatile.
4570         PR c++/91361
4571         * c-opts.c (c_common_post_options): Enable -Wvolatile by
4572         default for C++2a, unless -Wno-deprecated.
4573         * c.opt (Wvolatile): New warning.
4575 2019-08-28  Marek Polacek  <polacek@redhat.com>
4577         PR c++/91360 - Implement C++20 P1143R2: constinit.
4578         * c-common.c (c_common_reswords): Add constinit and __constinit.
4579         (keyword_is_decl_specifier): Handle RID_CONSTINIT.
4580         * c-common.h (enum rid): Add RID_CONSTINIT, RID_FIRST_CXX20, and
4581         RID_LAST_CXX20.
4582         (D_CXX20): Define.
4583         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_constinit.
4584         * c-format.c (cxx_keywords): Add "constinit".
4585         * c.opt (Wc++2a-compat, Wc++20-compat): New options.
4587 2019-08-27  Jakub Jelinek  <jakub@redhat.com>
4589         PR c++/91415
4590         * c-common.c (verify_tree): For LSHIFT_EXPR, RSHIFT_EXPR,
4591         COMPONENT_REF and ARRAY_REF in cxx_dialect >= cxx17 mode handle it
4592         like COMPOUND_EXPR rather than normal expression.
4594 2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>
4596         PR pch/61250
4597         * c-lex.c (c_lex_with_flags):  Don't call
4598         c_common_no_more_pch () from here.
4600 2019-08-23  Jakub Jelinek  <jakub@redhat.com>
4602         PR middle-end/91283
4603         * c-common.c (c_ts18661_flt_eval_method): Use flag_excess_precision
4604         instead of flag_excess_precision_cmdline.
4605         * c-cppbuiltin.c (c_cpp_flt_eval_method_iec_559): Likewise.
4606         * c-opts.c (c_common_post_options): Likewise.
4608 2019-08-22  Martin Sebor  <msebor@redhat.com>
4610         PR middle-end/91490
4611         * c-common.c (braced_list_to_string): Add argument and overload.
4612         Handle flexible length arrays and unions.
4614 2019-08-21  Eric Botcazou  <ebotcazou@adacore.com>
4616         * c-ada-spec.c (dump_ada_function_declaration): Be prepared for broken
4617         function declarations where arguments are missing.  Rename variables.
4619 2019-08-15  Richard Biener  <rguenther@suse.de>
4621         * c-common.c (c_stddef_cpp_builtins): When the GIMPLE FE is
4622         enabled, define __SIZETYPE__.
4624 2019-08-14  Christophe Lyon  <christophe.lyon@linaro.org>
4626         * c-attribs.c (c_common_attribute_table): Add "noinit" entry. Add
4627         exclusion with "section" attribute.
4628         (attr_noinit_exclusions): New table.
4629         (handle_noinit_attribute): New function.
4631 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
4633         PR middle-end/91421
4634         * c-common.c (resolve_overloaded_builtin): Use
4635         copy_decl_built_in_function.
4637 2019-08-13  Martin Sebor  <msebor@redhat.com>
4639         PR c/80619
4640         * c-format.c (printf_length_specs): Set FMT_LEN_w for "w".
4641         (asm_fprintf_length_spec): Same.
4642         * c-format.h (format_lengths): Add FMT_LEN_w.
4644 2019-08-10  Jakub Jelinek  <jakub@redhat.com>
4646         * c-pragma.h (enum pragma_omp_clause): Add
4647         PRAGMA_OMP_CLAUSE_DEVICE_TYPE.
4649 2019-08-07  Jakub Jelinek  <jakub@redhat.com>
4651         * c-pragma.h (enum pragma_omp_clause): Add
4652         PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.  Set PRAGMA_OACC_CLAUSE_USE_DEVICE
4653         equal to PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR instead of being a separate
4654         enumeration value.
4656 2019-08-05  Marek Polacek  <polacek@redhat.com>
4658         PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
4659         * c-opts.c (c_common_post_options): Enable -Wcomma-subscript by
4660         default for C++2a, unless -Wno-deprecated.
4661         * c.opt (Wcomma-subscript): New warning.
4663 2019-07-20  Jakub Jelinek  <jakub@redhat.com>
4665         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_LOOP.
4666         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_BIND.
4667         * c-pragma.c (omp_pragmas_simd): Add PRAGMA_OMP_LOOP entry.
4668         * c-common.h (enum c_omp_clause_split): Add C_OMP_CLAUSE_SPLIT_LOOP.
4669         * c-omp.c (c_omp_split_clauses): Add support for 4 new combined
4670         constructs with the loop construct.
4672 2019-07-13  Jakub Jelinek  <jakub@redhat.com>
4674         PR c/91149
4675         * c-omp.c (c_omp_split_clauses): Fix a pasto in
4676         OMP_CLAUSE_REDUCTION_TASK handling.
4678 2019-07-12  Jakub Jelinek  <jakub@redhat.com>
4680         * c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ORDER.
4681         * c-omp.c (c_omp_split_clauses): Handle splitting of OMP_CLAUSE_ORDER.
4683 2019-07-09  Martin Sebor  <msebor@redhat.com>
4685         PR c++/61339
4686         * c-opts.c (handle_deferred_opts): Change class-key of PODs to struct
4687         and others to class.
4688         * c-pretty-print.h: Same.
4690 2019-07-09  Martin Sebor  <msebor@redhat.com>
4692         PR c++/61339
4693         * c-format.c (check_argument_type): Change class-key from class to
4694         struct and vice versa to match convention and avoid -Wclass-is-pod
4695         and -Wstruct-no-pod.
4696         * c-pretty-print.h: Same.
4698 2019-07-03  Martin Liska  <mliska@suse.cz>
4700         * c-common.c (try_to_locate_new_include_insertion_point): Remove
4701         dead assignemts.
4703 2019-07-03  Jakub Jelinek  <jakub@redhat.com>
4705         * c-omp.c (c_omp_split_clauses): Put OMP_CLAUSE_REDUCTION_INSCAN
4706         clauses on OMP_FOR rather than OMP_PARALLEL when OMP_FOR is combined
4707         with OMP_PARALLEL.
4709 2019-07-02  qing zhao  <qing.zhao@oracle.com>
4711         PR preprocessor/90581
4712         * c-opts.c (c_common_handle_option): Handle -fmax-include-depth.
4713         * c.opt: Add new option -fmax-include-depth.
4715 2019-06-26  Jason Merrill  <jason@redhat.com>
4717         PR c++/55442 - memory-hog with highly recursive constexpr.
4718         * c.opt (fconstexpr-loop-limit): New.
4720 2019-06-25  Jakub Jelinek  <jakub@redhat.com>
4722         PR sanitizer/90954
4723         * c-omp.c (c_finish_omp_atomic): Allow tree_invariant_p in addition
4724         to SAVE_EXPR in first operand of a COMPOUND_EXPR.
4726 2019-06-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4728         * c-common.c (c_common_nodes_and_builtins): Define
4729         alternate "__intN__" name for "__intN" types.
4731 2019-06-24  Jan Hubicka  <jh@suse.cz>
4733         * c-common.c (braced_lists_to_strings): Check that
4734         type is array or integer prior checking string flag.
4736 2019-06-21  Matthew Beliveau  <mbelivea@redhat.com>
4738         PR c++/90875 - added -Wswitch-outside-range option
4739         * c.opt (Wswitch-outside-range): Added new option.
4740         * c-warn.c (c_do_switch_warnings): Use OPT_Wswitch-outside-range.
4742 2019-06-21  Marek Polacek  <polacek@redhat.com>
4744         PR c++/90953 - ICE with -Wmissing-format-attribute.
4745         * c-common.c (check_function_arguments_recurse): Use
4746         get_attribute_name.
4747         (check_missing_format_attribute): Likewise.
4749 2019-06-19  Marek Polacek  <polacek@redhat.com>
4751         PR c++/60364 - noreturn after first decl not diagnosed.
4752         * c-attribs.c (handle_noreturn_attribute): No longer static.
4753         * c-common.h (handle_noreturn_attribute, attr_noreturn_exclusions):
4754         Declare.
4755         * c-format.c (check_function_format): Use get_attribute_name.
4757 2019-06-19  Martin Sebor  <msebor@redhat.com>
4759         PR translation/90156
4760         * c-format.c (function_format_info::format_type): Adjust type.
4761         (function_format_info::is_raw): New member.
4762         (decode_format_type): Adjust signature.  Handle "raw" diag attributes.
4763         (decode_format_attr): Adjust call to decode_format_type.
4764         Avoid a redundant call to convert_format_name_to_system_name.
4765         Avoid abbreviating the word "arguments" in a diagnostic.
4766         (format_warning_substr): New function.
4767         (avoid_dollar_number): Quote dollar sign in a diagnostic.
4768         (finish_dollar_format_checking): Same.
4769         (check_format_info): Same.
4770         (struct baltoks_t): New.
4771         (c_opers, c_keywords, cxx_keywords, badwords, contrs): New arrays.
4772         (maybe_diag_unbalanced_tokens, check_tokens, check_plain): New
4773         functions.
4774         (check_format_info_main): Call check_plain.  Use baltoks_t.  Call
4775         maybe_diag_unbalanced_tokens.
4776         (handle_format_attribute): Spell out the word "arguments" in
4777         a diagnostic.
4779 2019-06-11  Matthew Beliveau  <mbelivea@redhat.com>
4781         PR c++/90449 - add -Winaccessible-base option.
4782         * c.opt (Winaccessible-base): New option.
4784 2019-06-10  Jakub Jelinek  <jakub@redhat.com>
4786         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_SCAN.
4787         * c-pragma.c (omp_pragmas_simd): Add #pragma omp scan.
4788         * c-omp.c (c_omp_split_clauses): Diagnose inscan reductions on
4789         combined/composite constructs where it is not allowed.  Copy over
4790         OMP_CLAUSE_REDUCTION_INSCAN.
4792 2019-06-05  Martin Sebor  <msebor@redhat.com>
4794         * c-attribs.c (handle_mode_attribute): Adjust quoting and hyphenation.
4795         (handle_alias_ifunc_attribute): Same.
4796         (handle_copy_attribute): Same.
4797         (handle_weakref_attribute): Same.
4798         (handle_nonnull_attribute): Same.
4799         * c-warn.c (warn_for_sign_compare): Same.
4800         (warn_for_restrict): Same.
4801         * c.opt: Same.
4803 2019-06-05  Martin Sebor  <msebor@redhat.com>
4805         * c-pragma.c (handle_pragma_weak): Adjust quoting in a diagnostic.
4806         * c.opt (-Wformat-diag): Remove a spurious period.
4808 2019-05-29  Jakub Jelinek  <jakub@redhat.com>
4810         PR c/90628
4811         * c-common.c (check_builtin_function_arguments)
4812         <case BUILTIN_*_OVERFLOW>: Diagnose pointer to const qualified integer
4813         as last argument.
4815 2019-05-23  Eric Botcazou  <ebotcazou@adacore.com>
4817         * c-ada-spec.c (compare_node): Compare the DECL_UIDs as a last resort.
4819 2019-05-22  Martin Liska  <mliska@suse.cz>
4821         PR lto/90500
4822         * c-attribs.c (handle_copy_attribute): Do not copy
4823         target_clones attribute.
4825 2019-05-21  Eric Botcazou  <ebotcazou@adacore.com>
4827         * c-ada-spec.h (enum cpp_operation): Add IS_ASSIGNMENT_OPERATOR.
4828         * c-ada-spec.c (print_assignment_operator): New function.
4829         (dump_ada_declaration) <FUNCTION_DECL>: Call it do dump explicit copy
4830         assignment operators declared as methods and filter out the others.
4832 2019-05-17  Thomas Schwinge  <thomas@codesourcery.com>
4834         PR c/89433
4835         * c-attribs.c (c_common_attribute_table): Set min_len to -1 for
4836         "omp declare target".
4838 2019-05-16  Martin Sebor  <msebor@redhat.com>
4840         * c-attribs.c (handle_no_sanitize_attribute): Quote identifiers,
4841         keywords, operators, and types in diagnostics.
4842         (handle_scalar_storage_order_attribute): Same.
4843         (handle_mode_attribute): Same.
4844         (handle_visibility_attribute): Same.
4845         (handle_assume_aligned_attribute): Same.
4846         (handle_no_split_stack_attribute): Same.
4847         * c-common.c (shorten_compare): Same.
4848         (c_common_truthvalue_conversion): Same.
4849         (cb_get_source_date_epoch): Same.
4850         * c-lex.c (cb_def_pragma): Quote keywords, operators, and types
4851         in diagnostics.
4852         (interpret_float): Same.
4853         * c-omp.c (c_finish_omp_for): Same.
4854         * c-opts.c (c_common_post_options): Same.
4855         * c-pch.c (c_common_pch_pragma): Same.
4856         * c-pragma.c (pop_alignment): Same.
4857         (handle_pragma_pack): Same.
4858         (apply_pragma_weak): Same.
4859         (handle_pragma_weak): Same.
4860         (handle_pragma_scalar_storage_order): Same.
4861         (handle_pragma_redefine_extname): Same.
4862         (add_to_renaming_pragma_list): Same.
4863         (maybe_apply_renaming_pragma): Same.
4864         (push_visibility): Same.
4865         (handle_pragma_visibility): Same.
4866         (handle_pragma_optimize): Same.
4867         (handle_pragma_message): Same.
4868         * c-warn.c (warn_for_omitted_condop): Same.
4869         (lvalue_error): Same.
4871 2019-05-15  Richard Biener  <rguenther@suse.de>
4873         PR c/90474
4874         * c-common.c (c_common_mark_addressable_vec): Also mark
4875         a COMPOUND_LITERAL_EXPR_DECL addressable similar to
4876         c_mark_addressable.
4878 2019-05-06  Nathan Sidwell  <nathan@acm.org>
4880         * c-opts.c (handle_defered_opts): Rename struct deps to struc mkdeps.
4882 2019-04-30  Nathan Sidwell  <nathan@acm.org>
4884         * c-common.c (c_common_init_ts): Use MARK_TS_EXP.  Mark SIZEOF_EXPR.
4886 2019-04-30  Martin Liska  <mliska@suse.cz>
4888         * c-pragma.c (handle_pragma_diagnostic): Provide hints
4889         for unknown options.
4891 2019-04-26  Richard Sandiford  <richard.sandiford@arm.com>
4893         * c-warn.c (strict_aliasing_warning): Apply COMPLETE_TYPE_P to
4894         the pointer target rather than the pointer itself.
4896 2019-04-19  Jakub Jelinek  <jakub@redhat.com>
4898         PR c/89888
4899         * c-common.h (c_add_case_label): Remove orig_type and outside_range_p
4900         arguments.
4901         (c_do_switch_warnings): Remove outside_range_p argument.
4902         * c-common.c (check_case_bounds): Removed.
4903         (c_add_case_label): Remove orig_type and outside_range_p arguments.
4904         Don't call check_case_bounds.  Fold low_value as well as high_value.
4905         * c-warn.c (c_do_switch_warnings): Remove outside_range_p argument.
4906         Check for case labels outside of range of original type here and
4907         adjust them.
4909 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
4911         PR translation/90041
4912         * c.opt (-fhandle-exceptions): Use %< and %> around option names
4913         in the Warn diagnostics.
4915         PR c/89946
4916         * c-attribs.c (handle_patchable_function_entry_attribute): Add
4917         function comment.  Warn if arguments of the attribute are not positive
4918         integer constants.
4920 2019-04-09  Eric Botcazou  <ebotcazou@adacore.com>
4922         * c-ada-spec.c (print_destructor): Deal with deleting destructors.
4923         (dump_ada_declaration) <FUNCTION_DECL>: Likewise.
4925 2019-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4927         * c-ada-spec.c (is_float128): New predicate extracted from...
4928         (dump_ada_node) <COMPLEX_TYPE>: Use it to recognize __cfloat128.
4929         <REAL_TYPE>: ...here.  Call it.
4931 2019-04-05  David Malcolm  <dmalcolm@redhat.com>
4933         PR c/89985
4934         * c-warn.c (check_address_or_pointer_of_packed_member): Add
4935         auto_diagnostic_group.  Guard inform calls by result of
4936         warning_at call.
4938 2019-04-05  Marek Polacek  <polacek@redhat.com>
4940         PR c++/89973 - -Waddress-of-packed-member ICE with invalid conversion.
4941         * c-warn.c (check_address_or_pointer_of_packed_member): Check the type
4942         of RHS.
4944 2019-04-03  Jason Merrill  <jason@redhat.com>
4946         PR c++/86586 - -fcompare-debug=-Wsign-compare.
4947         * c-warn.c (warn_for_sign_compare): Call fold_for_warn.
4949 2019-04-01  Martin Sebor  <msebor@redhat.com>
4951         PR c/89685
4952         * c-attribs.c (handle_copy_attribute): Handle references and
4953         non-constant expressions.
4955 2019-03-22  Jakub Jelinek  <jakub@redhat.com>
4957         PR c++/87481
4958         * c.opt (-fconstexpr-ops-limit=): New option.
4960 2019-03-21  Jakub Jelinek  <jakub@redhat.com>
4962         * c-common.c (per_file_includes_t): Use false as Lazy in hash_set
4963         template param.
4965 2019-03-19  Martin Sebor  <msebor@redhat.com>
4967         PR tree-optimization/89688
4968         * c-common.c (braced_list_to_string): Make static.
4969         (braced_lists_to_strings): Define new function.
4970         * c-common.h (braced_list_to_string): Remove.
4971         (braced_lists_to_strings): Declare.
4973 2019-03-12  Martin Liska  <mliska@suse.cz>
4975         * c-opts.c (c_common_handle_option): Wrap option with %< and %>.
4977 2019-03-11  Martin Liska  <mliska@suse.cz>
4979         * c-opts.c (c_common_post_options): Wrap apostrophes
4980         in gcc internal format with %'.
4982 2019-03-11  Martin Liska  <mliska@suse.cz>
4984         * c-attribs.c (handle_nocf_check_attribute): Wrap an option name
4985         in a string format message and fix GNU coding style.
4986         * c-common.c (vector_types_convertible_p): Likewise.
4987         (c_build_vec_perm_expr): Likewise.
4988         * c-indentation.c (get_visual_column): Likewise.
4989         * c-opts.c (c_common_handle_option): Likewise.
4990         (c_common_post_options): Likewise.
4991         (sanitize_cpp_opts): Likewise.
4992         * c-pch.c (c_common_pch_pragma): Likewise.
4993         * c-pragma.c (handle_pragma_pack): Likewise.
4995 2019-03-08  Jakub Jelinek  <jakub@redhat.com>
4997         PR tree-optimization/89550
4998         * c-common.c (c_common_truthvalue_conversion): Only set
4999         TREE_NO_WARNING if warning_at returned true.
5000         * c-warn.c (overflow_warning, warn_logical_operator): Likewise.
5002 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
5003             Martin Sebor  <msebor@gmail.com>
5005         * c.opt (Wmissing-attributes): Clean up doc string.
5007 2019-02-25  Jakub Jelinek  <jakub@redhat.com>
5009         PR c/89495
5010         * c-format.c (maybe_read_dollar_number): Compute nargnum in
5011         HOST_WIDE_INT type to avoid overflows and change overflow_flag
5012         checking.
5014 2019-02-22  Richard Biener  <rguenther@suse.de>
5016         * c-pch.c (no_checksum): Remove.
5017         (pch_init): Remove assertion that executable_checksum is not
5018         all zero.
5019         (c_common_valid_pch): Likewise.
5021 2019-02-18  Martin Sebor  <msebor@redhat.com>
5023         PR middle-end/89294
5024         * c-common.c (invalid_array_size_error): Handle cst_size_not_constant.
5026 2019-02-16  David Malcolm  <dmalcolm@redhat.com>
5028         PR c++/88680
5029         * c-common.c (shorten_compare): Call fold_for_warn on op0 when
5030         implementing -Wtype-limits.
5032 2019-02-11  Martin Sebor  <msebor@redhat.com>
5034         PR c++/87996
5035         * c-common.c (invalid_array_size_error): New function.
5036         (valid_array_size_p): Call it.  Handle size as well as type.
5037         * c-common.h (valid_constant_size_p): New function.
5038         (enum cst_size_error): New type.
5040 2019-01-31  David Malcolm  <dmalcolm@redhat.com>
5042         PR c/89122
5043         * known-headers.cc (get_stdlib_header_for_name): Add
5044         {FLT|DBL|LDBL}_{MAX|MIN} to "hints" array.
5046 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
5048         PR libstdc++/88170
5049         * c-pretty-print.c (pp_c_enumeration_constant): Print always as
5050         a C cast in pp_c_flag_gnu_v3 mode.
5052 2019-01-29  Jakub Jelinek  <jakub@redhat.com>
5054         PR c/86125
5055         * c-common.c (c_common_nodes_and_builtins): Build type variants for
5056         builtin_structptr_types types even for C.
5058 2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5060         * c-warn.c (check_address_or_pointer_of_packed_member): Handle the case
5061         when rhs is of array type correctly.  Fix handling of nested structures.
5062         Fix handling of indirect_ref together with nop_expr and/or addr_expr.
5063         (check_and_warn_address_or_pointer_of_packed_member): Fix handling of
5064         type casts within nested compound expressions.
5066 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
5068         PR middle-end/88968
5069         * c-omp.c (c_finish_omp_atomic): For bitfield atomics, update type
5070         variable after using BIT_FIELD_REF.
5072 2019-01-18  H.J. Lu  <hongjiu.lu@intel.com>
5074         PR c/51628
5075         PR c/88664
5076         * c-common.h (warn_for_address_or_pointer_of_packed_member):
5077         Remove the boolean argument.
5078         * c-warn.c (check_address_of_packed_member): Renamed to ...
5079         (check_address_or_pointer_of_packed_member): This.  Also
5080         warn pointer conversion.
5081         (check_and_warn_address_of_packed_member): Renamed to ...
5082         (check_and_warn_address_or_pointer_of_packed_member): This.
5083         Also warn pointer conversion.
5084         (warn_for_address_or_pointer_of_packed_member): Remove the
5085         boolean argument.  Don't check pointer conversion here.
5087 2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
5089         PR inline-asm/52813
5090         * c.opt (Wdeprecated): Move documentation and variable to common.opt.
5092 2019-01-14  Jakub Jelinek  <jakub@redhat.com>
5094         * c-cppbuiltin.c (c_cpp_builtin): Define __cpp_guaranteed_copy_elision
5095         and __cpp_nontype_template_parameter_auto.  Add a comment that
5096         __cpp_template_auto is deprecated.
5098 2019-01-14  Tom Honermann  <tom@honermann.net>
5100         Implement P0482R5, char8_t: A type for UTF-8 characters and strings
5101         * c-common.c (c_common_reswords): Add char8_t.
5102         (fix_string_type): Use char8_t for the type of u8 string literals.
5103         (c_common_get_alias_set): char8_t doesn't alias.
5104         (c_common_nodes_and_builtins): Define char8_t as a builtin type in
5105         C++.
5106         (c_stddef_cpp_builtins): Add __CHAR8_TYPE__.
5107         (keyword_begins_type_specifier): Add RID_CHAR8.
5108         * c-common.h (rid): Add RID_CHAR8.
5109         (c_tree_index): Add CTI_CHAR8_TYPE and CTI_CHAR8_ARRAY_TYPE.
5110         Define D_CXX_CHAR8_T and D_CXX_CHAR8_T_FLAGS.
5111         Define char8_type_node and char8_array_type_node.
5112         * c-cppbuiltin.c (cpp_atomic_builtins): Predefine
5113         __GCC_ATOMIC_CHAR8_T_LOCK_FREE.
5114         (c_cpp_builtins): Predefine __cpp_char8_t.
5115         * c-lex.c (lex_string): Use char8_array_type_node as the type of
5116         CPP_UTF8STRING.
5117         (lex_charconst): Use char8_type_node as the type of CPP_UTF8CHAR.
5118         * c-opts.c: If not otherwise specified, enable -fchar8_t when
5119         targeting C++2a.
5120         * c.opt: Add the -fchar8_t command line option.
5122 2019-01-14  Martin Sebor  <msebor@redhat.com>
5124         PR target/88638
5125         * c-attribs.c (positional_argument): Call valid_format_string_type_p
5126         and issue errors if it fails.
5127         * c-common.h (valid_format_string_type_p): Declare.
5128         * c-format.c (valid_stringptr_type_p): Rename...
5129         (valid_format_string_type_p): ...to this and make extern.
5130         (handle_format_arg_attribute): Adjust to new name.
5131         (check_format_string): Same.
5133 2019-01-13  H.J. Lu  <hongjiu.lu@intel.com>
5135         * c-warn.c (warn_for_address_or_pointer_of_packed_member):
5136         Replace "may may" with "may" in warning message.
5138 2019-01-07  Jakub Jelinek  <jakub@redhat.com>
5140         PR c++/85052
5141         * c-common.h (enum rid): Add RID_BUILTIN_CONVERTVECTOR.
5142         (c_build_vec_convert): Declare.
5143         * c-common.c (c_build_vec_convert): New function.
5145 2019-01-04  Martin Sebor  <msebor@redhat.com>
5147         PR c/88546
5148         * c-attribs.c (handle_copy_attribute): Avoid copying attribute leaf.
5149         Handle C++ empty throw specification and C11 _Noreturn.
5150         (has_attribute): Also handle C11 _Noreturn.
5152 2019-01-04  Martin Sebor  <msebor@redhat.com>
5154         PR c/88363
5155         * c-attribs.c (positional_argument): Also accept enumerated types.
5157 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
5159         Update copyright years.
5161 2018-12-20  H.J. Lu  <hongjiu.lu@intel.com>
5163         PR c/51628
5164         * c-common.h (warn_for_address_or_pointer_of_packed_member): New.
5165         * c-warn.c (check_alignment_of_packed_member): New function.
5166         (check_address_of_packed_member): Likewise.
5167         (check_and_warn_address_of_packed_member): Likewise.
5168         (warn_for_address_or_pointer_of_packed_member): Likewise.
5169         * c.opt: Add -Wno-address-of-packed-member.
5171 2018-12-20  David Malcolm  <dmalcolm@redhat.com>
5173         PR c++/87504
5174         * c-warn.c (get_outermost_macro_expansion): New function.
5175         (spelled_the_same_p): Use it to unwind the macro expansions, and
5176         compare the outermost macro in each nested expansion, rather than
5177         the innermost.
5179 2018-12-19  David Malcolm  <dmalcolm@redhat.com>
5181         PR c++/87504
5182         * c-common.h (warn_tautological_cmp): Convert 1st param from
5183         location_t to const op_location_t &.
5184         * c-warn.c (find_array_ref_with_const_idx_r): Call fold_for_warn
5185         when testing for INTEGER_CST.
5186         (warn_tautological_bitwise_comparison): Convert 1st param from
5187         location_t to const op_location_t &; use it to build a
5188         binary_op_rich_location, and use this.
5189         (spelled_the_same_p): New function.
5190         (warn_tautological_cmp): Convert 1st param from location_t to
5191         const op_location_t &.  Warn for macro expansions if
5192         spelled_the_same_p.  Use binary_op_rich_location.
5194 2018-12-19  David Malcolm  <dmalcolm@redhat.com>
5196         PR c++/43064
5197         PR c++/43486
5198         * c-common.c (unsafe_conversion_p): Fold any location wrapper.
5199         (verify_tree): Handle location wrappers.
5200         (c_common_truthvalue_conversion): Strip any location wrapper.
5201         Handle CONST_DECL.
5202         (fold_offsetof): Strip any location wrapper.
5203         (complete_array_type): Likewise for initial_value.
5204         (convert_vector_to_array_for_subscript): Call fold_for_warn on the
5205         index before checking for INTEGER_CST.
5206         * c-pretty-print.c (c_pretty_printer::primary_expression): Don't
5207         print parentheses around location wrappers.
5208         * c-warn.c (warn_logical_operator): Call fold_for_warn on op_right
5209         before checking for INTEGER_CST.
5210         (warn_tautological_bitwise_comparison): Call
5211         tree_strip_any_location_wrapper on lhs, rhs, and bitop's operand
5212         before checking for INTEGER_CST.
5213         (readonly_error): Strip any location wrapper.
5214         (warn_array_subscript_with_type_char): Strip location wrappers
5215         before checking for INTEGER_CST.  Use the location of the index if
5216         available.
5218 2018-12-06  Jason Merrill  <jason@redhat.com>
5220         PR c++/88136 - -Wdeprecated-copy false positives
5221         * c.opt (Wdeprecated-copy-dtor): New.
5222         (Wdeprecated-copy): Move to -Wextra.
5224 2018-11-29  Martin Sebor  <msebor@redhat.com>
5226         PR c/88172
5227         PR testsuite/88208
5228         * c-attribs.c (common_handle_aligned_attribute): Silently avoid setting
5229         alignments to values less than the target requires.
5230         (has_attribute): For attribute aligned consider both the attribute
5231         and the alignment bits.
5232         * c-common.c (c_init_attributes): Optionally issue a warning for
5233         zero alignment.
5235 2018-11-28  Martin Sebor  <msebor@redhat.com>
5237         PR c/88065
5238         PR c/87297
5239         * c-warn.c (sizeof_pointer_memaccess_warning): Bail if source
5240         or destination is an error.
5242 2018-11-28  Jakub Jelinek  <jakub@redhat.com>
5244         PR c++/88215
5245         * c-ubsan.c: Include langhooks.h.
5246         (ubsan_instrument_division): Change gcc_assert that main variants
5247         of op0 and op1 types are equal to gcc_checking_assert that the
5248         main variants are compatible types.
5250 2018-11-27  Eric Botcazou  <ebotcazou@adacore.com>
5252         * c-ada-spec.c: Include stringpool.h.
5253         (has_static_fields): Return false for incomplete types.
5254         (is_tagged_type): Likewise.
5255         (has_nontrivial_methods): Likewise.
5256         (dump_ada_node) <INTEGER_TYPE>: Deal specifically with __int128.
5257         (struct overloaded_name_hash): New structure.
5258         (struct overloaded_name_hasher): Likewise.
5259         (overloaded_names): New global variable.
5260         (init_overloaded_names): New static function.
5261         (overloaded_name_p): New predicate.
5262         (dump_ada_declaration) <TYPE_DECL>: Tidy up and set TREE_VISITED
5263         on the TYPE_STUB_DECL of the original type of a typedef, if any.
5264         <FUNCTION_DECL>: Bail out for an unsupported overloaded name.
5265         Remove always-true condition and dump forward types.
5266         (dump_ada_specs): Delete overloaded_names.
5268 2018-11-20  Martin Sebor  <msebor@redhat.com>
5270         * c-attribs.c (type_for_vector_size): New function.
5271         (type_valid_for_vector_size): Same.
5272         (handle_vector_size_attribute): Move code to the functions above
5273         and call them.
5274         (validate_attribute, has_attribute): New functions.
5275         * c-common.h (has_attribute): Declare.
5276         (rid): Add RID_HAS_ATTRIBUTE_EXPRESSION.
5277         * c-common.c (c_common_resword): Same.
5279 2018-11-16  Jason Merrill  <jason@redhat.com>
5281         * c-lex.c (c_common_has_attribute): Handle likely/unlikely.
5282         * c-attribs.c (attr_cold_hot_exclusions): Make public.
5284 2018-11-16  Jakub Jelinek  <jakub@redhat.com>
5286         PR middle-end/87854
5287         * c-common.c (fix_string_type): Reject string literals larger than
5288         TYPE_MAX_VALUE (ssizetype) bytes.
5290 2018-11-15  Martin Sebor  <msebor@redhat.com>
5292         PR c++/87541
5293         PR c++/87542
5294         * c-attribs.c (positional_argument): New function.
5295         (handle_alloc_size_attribute): Use it and simplify.
5296         (handle_alloc_align_attribute): Same.
5297         (handle_assume_aligned_attribute): Same.
5298         (handle_nonnull_attribute): Same.
5299         * c-common.c (check_function_arguments): Pass fntype to
5300         check_function_format.
5301         * c-common.h (check_function_format): Add an argument.
5302         (PosArgFlags, positional_argument): Declare new type and function.
5303         * c-format.c (decode_format_attr): Add arguments.
5304         (check_format_string, get_constant): Same.
5305         (convert_format_name_to_system_name): Adjust.
5307 2018-11-15  David Malcolm  <dmalcolm@redhat.com>
5309         PR other/19165
5310         * c-opts.c (c_diagnostic_finalizer): Add diagnostic_t param.
5312 2018-11-14  Jakub Jelinek  <jakub@redhat.com>
5314         P1236R1 - Signed integers are two's complement
5315         * c-warn.c (maybe_warn_shift_overflow): Don't warn for c++2a.
5316         * c-ubsan.c (ubsan_instrument_shift): Make signed shifts
5317         with in-range second operand well defined for -std=c++2a.
5319         PR other/88007
5320         * c-common.c (parse_optimize_options): Allocate option string from
5321         opts_obstack rather than as GC memory.  Move the allocation after
5322         warning for invalid option.
5324 2018-11-13  David Malcolm  <dmalcolm@redhat.com>
5326         * c-common.c (c_get_substring_location): Update for renaming of
5327         get_source_location_for_substring to get_location_within_string.
5328         * c-lex.c: Replace "source_location" with "location_t".
5329         * c-opts.c: Likewise.
5330         * c-ppoutput.c: Likewise.
5332 2018-11-13  Martin Sebor  <msebor@redhat.com>
5334         PR middle-end/81824
5335         * c-attribs.c (handle_copy_attribute): Exclude inlining attributes.
5336         (handle_tls_model_attribute): Improve diagnostics.
5338 2018-11-12  Jason Merrill  <jason@redhat.com>
5340         * c-cppbuiltin.c (c_cpp_builtins): Define
5341         __cpp_impl_destroying_delete.
5343         * c-cppbuiltin.c (c_cpp_builtins): Change __cpp_explicit_bool to
5344         __cpp_conditional_explicit.
5346 2018-11-09  Martin Sebor  <msebor@redhat.com>
5348         PR middle-end/81824
5349         * c-attribs.c (handle_copy_attribute): New function.
5351 2018-11-09  Martin Sebor  <msebor@redhat.com>
5353         PR c/87795
5354         * c-common.c (check_user_alignment): Use MAX_OFILE_ALIGNMENT.
5356 2018-11-08  Jakub Jelinek  <jakub@redhat.com>
5358         * c-common.h (c_finish_omp_taskgroup): Add CLAUSES argument.
5359         (c_finish_omp_atomic): Replace bool SEQ_CST argument with
5360         enum omp_memory_order MEMORY_ORDER.
5361         (c_finish_omp_flush): Add MO argument.
5362         (c_omp_depend_t_p, c_finish_omp_depobj): Declare.
5363         (c_finish_omp_for): Add FINAL_P argument.
5364         * c-omp.c: Include memmodel.h.
5365         (c_finish_omp_taskgroup): Add CLAUSES argument.  Set
5366         OMP_TASKGROUP_CLAUSES to it.
5367         (c_finish_omp_atomic): Replace bool SEQ_CST argument with
5368         enum omp_memory_order MEMORY_ORDER.  Set OMP_ATOMIC_MEMORY_ORDER
5369         instead of OMP_ATOMIC_SEQ_CST.
5370         (c_omp_depend_t_p, c_finish_omp_depobj): New functions.
5371         (c_finish_omp_flush): Add MO argument, if not MEMMODEL_LAST, emit
5372         __atomic_thread_fence call with the given value.
5373         (check_omp_for_incr_expr): Formatting fixes.
5374         (c_finish_omp_for): Add FINAL_P argument.  Allow NE_EXPR
5375         even in OpenMP loops, diagnose if NE_EXPR and incr expression
5376         is not constant expression 1 or -1.  Transform NE_EXPR loops
5377         with iterators pointers to VLA into LT_EXPR or GT_EXPR loops.
5378         (c_omp_check_loop_iv_r): Look for orig decl of C++ range for
5379         loops too.
5380         (c_omp_split_clauses): Add support for combined
5381         #pragma omp parallel master and
5382         #pragma omp {,parallel }master taskloop{, simd} constructs.
5383         Handle OMP_CLAUSE_IN_REDUCTION.  Handle OMP_CLAUSE_REDUCTION_TASK.
5384         Handle OMP_CLAUSE_NONTEMPORAL.  Handle splitting OMP_CLAUSE_IF
5385         also to OMP_SIMD.  Copy OMP_CLAUSE_LASTPRIVATE_CONDITIONAL.
5386         (c_omp_predetermined_sharing): Don't return
5387         OMP_CLAUSE_DEFAULT_SHARED for const qualified decls.
5388         * c-pragma.c (omp_pragmas): Add PRAGMA_OMP_DEPOBJ and
5389         PRAGMA_OMP_REQUIRES.
5390         * c-pragma.h (enum pragma_kind): Likewise.
5391         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_NONTEMPORAL
5392         and PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION.
5394 2018-11-08  David Malcolm  <dmalcolm@redhat.com>
5396         * c-format.c (gcc_dump_printf_char_table): Add entry for %f.
5398 2018-11-08  David Malcolm  <dmalcolm@redhat.com>
5400         * c-format.c (local_cgraph_node_ptr_node): New variable.
5401         (gcc_dump_printf_char_table): Add entry for %C.
5402         (get_pointer_to_named_type): New function, taken from the handling
5403         code for "gimple *" from...
5404         (init_dynamic_diag_info): ...here.  Add handling for
5405         "cgraph_node *".
5406         * c-format.h (T_CGRAPH_NODE): New.
5408 2018-10-19  Jason Merrill  <jason@redhat.com>
5410         * c-cppbuiltin.c (c_cpp_builtins): Add
5411         __cpp_nontype_template_parameter_class.
5413 2018-10-31  Nathan Sidwell  <nathan@acm.org>
5415         * c-opts.c (c_finish_options): Force command line macro
5416         location.  Refactor to avoid repeating main debug hook.
5417         (push_command_line_include): Clarify comment.
5419         * c-opts.c (c_finish_options): Adjust cpp_force_token_locations call.
5421 2018-10-30  Martin Sebor  <msebor@redhat.com>
5423         PR middle-end/87041
5424         * c-format.c (check_format_types): Avoid diagnosing null pointer
5425         arguments to printf-family of functions.
5427 2018-10-30  Marek Polacek  <polacek@redhat.com>
5429         Implement P0892R2, explicit(bool).
5430         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_explicit_bool.
5432 2018-10-29  David Malcolm  <dmalcolm@redhat.com>
5434         * name-hint.h (name_hint::take_deferred): New member function.
5436 2018-10-29  David Malcolm  <dmalcolm@redhat.com>
5438         PR c++/56856
5439         * c-common.c (check_function_sentinel): Call fold_for_warn on the
5440         argument.
5441         (check_function_restrict): Rename param "argarray" to
5442         "unfolded_argarray", and make a copy named "argarray", calling
5443         fold_for_warn on each argument.
5444         (check_function_arguments): Add note about responsibility for
5445         folding the arguments.
5447 2018-10-17  Joseph Myers  <joseph@codesourcery.com>
5449         * c-common.c (flag_isoc2x): New variable.
5450         * c-common.h (clk_c): Update comment to reference C2X.
5451         (flag_isoc99, flag_isoc11): Update comments to reference future
5452         standard versions in general.
5453         (flag_isoc2x): Declare.
5454         * c-opts.c (set_std_c2x): New function.
5455         (c_common_handle_option): Handle -std=c2x and -std=gnu2x.
5456         (set_std_c89, set_std_c99, set_std_c11, set_std_c17): Set
5457         flag_isoc2x to 0.
5458         * c.opt (Wc11-c2x-compat, std=c2x, std=gnu2x): New options.
5460 2018-10-17  Joseph Myers  <joseph@codesourcery.com>
5462         * c.opt (std=c17, std=c18, std=gnu17, std=gnu18, std=iso9899:2017)
5463         (std=iso9899:2018): Document C17 as published in 2018.
5465 2018-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
5467         PR c++/87364
5468         * c-pretty-print.c (c_pretty_printer::constant): Fix typo.
5470 2018-10-11  Will Wray  <wjwray@gmail.com>
5472         PR c++/87364
5473         * c-pretty-print.h (pp_c_type_cast): Prototype.
5474         (pp_c_integer_constant): Likewise.
5475         * c-pretty-print.c (pp_c_type_cast): No longer static.
5476         (pp_c_integer_constant): Likewise.
5477         (pp_c_enumeration_constant): Fix loop termination when finding
5478         name of constant.  No longer returns a value.  Call
5479         pp_c_integer_constant.
5480         (c_pretty_printer::constant): Update for changes to
5481         pp_c_enumeration_constant.
5483 2018-10-11  Jakub Jelinek  <jakub@redhat.com>
5485         * c-lex.c (c_common_has_attribute): Return 201803 instead of 20180312
5486         for no_unique_address.
5488 2018-10-09  David Malcolm  <dmalcolm@redhat.com>
5490         * c-common.c (c_option_controlling_cpp_error): Rename to...
5491         (c_option_controlling_cpp_diagnostic): ...this, and convert
5492         "reason" from int to enum.
5493         (c_cpp_error): Rename to...
5494         (c_cpp_diagnostic): ...this, converting level and reason to enums.
5495         * c-common.h (c_cpp_error): Rename to...
5496         (c_cpp_diagnostic): ...this, converting level and reason to enums.
5497         * c-opts.c (c_common_init_options): Update for renaming.
5499 2018-10-08  Richard Sandiford  <richard.sandiford@arm.com>
5501         PR c/87286
5502         * c-common.c (vector_types_compatible_elements_p): Use
5503         INTEGRAL_TYPE_P instead of checking only for INTEGER_TYPE.
5505 2018-10-04  Vinay Kumar  <vinay.kumar@blackfigtech.com>
5507         * c-attribs.c (get_priority): Add a warning flag warn_prio_ctor_dtor
5508         to generate constructor destructor priority warning.
5509         * c.opt (-Wprio-ctor-dtor): New option.
5511 2018-10-01  Jason Merrill  <jason@redhat.com>
5513         * c-lex.c (c_common_has_attribute): Add no_unique_address.
5515 2018-10-01  Eric Botcazou  <ebotcazou@adacore.com>
5517         * c-ada-spec.c (get_underlying_decl): Get to the main type variant.
5518         (dump_ada_node): Add const keyword.
5520 2018-09-25  Martin Liska  <mliska@suse.cz>
5522         * c-common.c (c_common_truthvalue_conversion):
5523         Remove Pascal from documentation.
5525 2018-09-21  Eric Botcazou  <ebotcazou@adacore.com>
5527         * c-ada-spec.c: Include diagnostic.h.
5528         (dump_ada_declaration) <RECORD_TYPE>: Issue a warning on packed layout.
5530 2018-09-19  Marek Polacek  <polacek@redhat.com>
5532         * c.opt (Wclass-conversion): New.
5534 2018-09-17  David Malcolm  <dmalcolm@redhat.com>
5536         * c-format.c (range_label_for_format_type_mismatch::get_text):
5537         Update for new param.
5539 2018-09-17  David Malcolm  <dmalcolm@redhat.com>
5541         * c-format.c (format_warning_at_char): Update for introduction of
5542         format_string_diagnostic_t.
5543         (format_type_warning): Likewise.
5545 2018-09-17  Martin Jambor  <mjambor@suse.cz>
5547         PR c/63886
5548         * c.opt (Wabsolute-value): New.
5550 2018-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5552         * c-common.c (complete_flexible_array_elts): New helper function.
5553         * c-common.h (complete_flexible_array_elts): Declare.
5555 2018-09-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5557         * c-common.c (braced_list_to_string): Remove eval parameter.
5558         Add some more checks.  Always create zero-terminated STRING_CST.
5559         * c-common.h (braced_list_to_string): Adjust prototype.
5561 2018-08-27  David Malcolm  <dmalcolm@redhat.com>
5563         PR 87091
5564         * c-common.c (c_cpp_error): Update for conversion of show_caret_p
5565         to a tri-state.
5566         (maybe_suggest_missing_token_insertion): Likewise.
5567         (maybe_add_include_fixit): Add param "override_location".  If set,
5568         and source-printing is enabled, then override the rich_location's
5569         primary location with that of the insertion point for the fix-it
5570         hint, marking it with SHOW_LINES_WITHOUT_RANGE.
5571         * c-common.h (extern void maybe_add_include_fixit): Add bool
5572         param.
5573         * c-format.c (selftest::test_type_mismatch_range_labels): Update
5574         for conversion of show_caret_p to a tri-state.
5575         * c-warn.c (warn_for_restrict): Likewise.
5576         * known-headers.cc
5577         (suggest_missing_header::~suggest_missing_header): Update call to
5578         maybe_add_include_fixit to suggest overriding the location, as it
5579         is for a note.
5581 2018-08-27  Martin Liska  <mliska@suse.cz>
5583         * c-common.c (check_function_restrict): Use new function
5584         fndecl_built_in_p and remove check for FUNCTION_DECL if
5585         possible.
5586         (check_builtin_function_arguments): Likewise.
5587         (reject_gcc_builtin): Likewise.
5588         * c-warn.c (sizeof_pointer_memaccess_warning): Likewise.
5590 2018-08-26  Marek Polacek  <polacek@redhat.com>
5592         PR c++/87029, Implement -Wredundant-move.
5593         * c.opt (Wredundant-move): New option.
5595 2018-08-21  Marek Polacek  <polacek@redhat.com>
5597         PR c++/86981, Implement -Wpessimizing-move.
5598         * c.opt (Wpessimizing-move): New option.
5600 2018-08-20  David Malcolm  <dmalcolm@redhat.com>
5602         PR other/84889
5603         * c-attribs.c (common_handle_aligned_attribute): Add
5604         auto_diagnostic_group instance.
5605         * c-indentation.c (warn_for_misleading_indentation): Likewise.
5606         * c-opts.c (c_common_post_options): Likewise.
5607         * c-warn.c (warn_logical_not_parentheses): Likewise.
5608         (warn_duplicated_cond_add_or_warn): Likewise.
5609         (warn_for_multistatement_macros): Likewise.
5611 2018-08-20  Nathan Sidwell  <nathan@acm.org>
5613         * c-ada-spec.c (macro_length, dump_ada_macros): Adjust macro parm
5614         access.
5616 2018-08-17  Nathan Sidwell  <nathan@acm.org>
5618         * c-cppbuiltin.c (struct lazy_hex_fp_value_struct): Remove macro
5619         field.
5620         (laxy_hex_fp_value_count): Make unsigned.
5621         (lazy_hex_fp_value): Provided with macro & lazy number.  Directly
5622         manipulate the macro.
5623         (builtin_defin_with_hex_fp_value): Adjust callback name, use
5624         cpp_define_lazily.
5626 2018-08-17  David Malcolm  <dmalcolm@redhat.com>
5628         * c-format.c (enum format_type): Add gcc_dump_printf_format_type.
5629         (gcc_dump_printf_length_specs): New.
5630         (gcc_dump_printf_flag_pairs): New.
5631         (gcc_dump_printf_flag_specs): New.
5632         (gcc_dump_printf_char_table): New.
5633         (format_types_orig): Add entry for "gcc_dump_printf".
5634         (init_dynamic_diag_info): Set up length_char_specs and
5635         conversion_specs for gcc_dump_printf_format_type.
5636         (handle_format_attribute): Handle gcc_dump_printf_format_type.
5638 2018-08-17  Nathan Sidwell  <nathan@acm.org>
5640         * c-ada-spec.c (macro_length, dump_ada_macros): Constify.
5642         * c-ada-spec.c: Don't #include "cpp-id-data.h"
5643         * c-cppbuiltin.c: Likewise.
5645 2018-08-17  Martin Liska  <mliska@suse.cz>
5647         * c.opt: Remove Warn, Init and Report for options with
5648         Ignore/Deprecated flag. Warning is done automatically for
5649         Deprecated flags.
5651 2018-08-16  David Malcolm  <dmalcolm@redhat.com>
5653         PR c++/70693
5654         * c-common.c (selftest::c_family_tests): Call
5655         selftest::c_indentation_c_tests.
5656         * c-common.h (selftest::c_indentation_c_tests): New decl.
5657         * c-indentation.c: Include "selftest.h".
5658         (next_tab_stop): Add "tab_width" param, rather than accessing
5659         cpp_opts.
5660         (get_visual_column): Likewise.  Clarify comment.  Bulletproof
5661         against reading past the end of the line.
5662         (get_first_nws_vis_column): Add "tab_width" param.
5663         (detect_intervening_unindent): Likewise.
5664         (should_warn_for_misleading_indentation): Read tab width from
5665         cpp_opts and pass around.
5666         (selftest::test_next_tab_stop): New test.
5667         (selftest::assert_get_visual_column_succeeds): New function.
5668         (ASSERT_GET_VISUAL_COLUMN_SUCCEEDS): New macro.
5669         (selftest::assert_get_visual_column_fails): New function.
5670         (ASSERT_GET_VISUAL_COLUMN_FAILS): New macro.
5671         (selftest::test_get_visual_column): New test.
5672         (selftest::c_indentation_c_tests): New function.
5674 2018-08-16  Nathan Sidwell  <nathan@acm.org>
5676         * c-ada-spec.c (count_ada_macro): Use cpp_user_macro_p.
5677         (store_ada_macro): Likewise.
5678         * c-ppoutput.c (cb_used_define, dump_macro): Likewise.
5679         * c-spellcheck.cc (should-suggest_as_macro_p): Likewise,
5681 2018-08-15  David Malcolm  <dmalcolm@redhat.com>
5683         * c-format.c: Include "selftest-diagnostic.h" and
5684         "gcc-rich-location.h".
5685         (format_warning_at_char): Pass NULL for new label params of
5686         format_warning_va.
5687         (class indirection_suffix): New class.
5688         (class range_label_for_format_type_mismatch): New class.
5689         (format_type_warning): Move logic for generating "*" suffix to
5690         class indirection_suffix.  Create "fmt_label" and "param_label"
5691         to show their types, and pass them to the
5692         format_warning_at_substring calls.
5693         (selftest::test_type_mismatch_range_labels): New test.
5694         (selftest::c_format_c_tests): Call it.
5696 2018-08-13  Martin Sebor  <msebor@redhat.com>
5698         PR tree-optimization/71625
5699         * c-common.c (braced_list_to_string): New function.
5700         * c-common.h (braced_list_to_string): Declare it.
5702 2018-08-08  Nathan Sidwell  <nathan@acm.org>
5704         * c-common.c (try_to_locate_new_include_inertion_point): Use
5705         linemap_included_from_linemap.
5706         * c-lex.c (fe_file_change): Use linemap_included_from.
5707         * c-ppoutput.c (pp_file_change): Likewise.
5709 2018-08-01  Martin Sebor  <msebor@redhat.com>
5711         PR tree-optimization/86650
5712         * c-format.c (gcc_tdiag_char_table): Update comment for "%G".
5713         (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Same.
5714         (init_dynamic_diag_info): Update from "gcall *" to "gimple *".
5715         * c-format.h (T89_G): Update to be "gimple *" rather than
5716         "gcall *".
5717         (local_gcall_ptr_node): Rename...
5718         (local_gimple_ptr_node): ...to this.
5720 2018-07-31  David Malcolm  <dmalcolm@redhat.com>
5722         * c-format.c (PP_FORMAT_CHAR_TABLE): New macro, based on existing
5723         table entries for gcc_diag_char_table, and the 'Z' entry from
5724         gcc_tdiag_char_table, changing the "chain" entry for 'Z' from
5725         &gcc_tdiag_char_table[0] to &gcc_diag_char_table[0].
5726         (gcc_diag_char_table): Use PP_FORMAT_CHAR_TABLE, implicitly
5727         adding missing "Z" for this table.  Remove erroneous "G" and "K"
5728         entries.
5729         (gcc_tdiag_char_table): Use PP_FORMAT_CHAR_TABLE.  Remove "v".
5730         (gcc_cdiag_char_table): Use PP_FORMAT_CHAR_TABLE.
5731         (gcc_cxxdiag_char_table): Use PP_FORMAT_CHAR_TABLE.  Remove "v".
5733 2018-07-31  Richard Earnshaw  <rearnsha@arm.com>
5735         * c-common.c (speculation_safe_resolve_call): New function.
5736         (speculation_safe_resolve_params): New function.
5737         (speculation_safe_resolve_return): New function.
5738         (resolve_overloaded_builtin): Handle __builtin_speculation_safe_value.
5739         * c-cppbuiltin.c (c_cpp_builtins): Add pre-define for
5740         __HAVE_SPECULATION_SAFE_VALUE.
5742 2018-07-20  David Malcolm  <dmalcolm@redhat.com>
5744         * c-common.c (c_cpp_error): Remove redundant "line_table"
5745         parameter from call to rich_location::set_range.
5746         (maybe_suggest_missing_token_insertion): Likewise.
5748 2018-07-20  Martin Sebor  <msebor@redhat.com>
5750         PR middle-end/82063
5751         * c.opt (-Warray-bounds): Remove redundant -Wall.
5753 2018-07-20  Martin Sebor  <msebor@redhat.com>
5755         PR middle-end/82063
5756         * c-common.h (c_common_handle_option): Change function argument
5757         to HOST_WIDE_INT.
5758         * c-opts.c (c_common_init_options): Same.
5759         (c_common_handle_option): Same.  Remove special handling of
5760         OPT_Walloca_larger_than_ and OPT_Wvla_larger_than_.
5761         * c.opt (-Walloc-size-larger-than, -Walloca-larger-than): Change
5762         options to take a HOST_WIDE_INT argument and accept a byte-size
5763         suffix.  Initialize.
5764         (-Wvla-larger-than): Same.
5765         (-Wno-alloc-size-larger-than, -Wno-alloca-larger-than): New.
5766         (-Wno-vla-larger-than): Same.
5768 2018-07-12  Jakub Jelinek  <jakub@redhat.com>
5770         * c-attribs.c (c_common_attribute_table): Add
5771         "omp declare target implicit" attribute.
5773 2018-07-12  Richard Biener  <rguenther@suse.de>
5775         PR c/86453
5776         * c-attribs.c (handle_packed_attribute): Do not build a variant
5777         type with TYPE_PACKED, instead ignore the attribute if we may
5778         not apply to the original type.
5780 2018-07-10  Jakub Jelinek  <jakub@redhat.com>
5782         PR c++/86443
5783         * c-omp.c (c_omp_check_loop_iv_r, c_omp_check_loop_iv): Allow declv
5784         to contain TREE_LIST for both the original class iterator and the
5785         "last" helper var.
5787 2018-07-07  Eric Botcazou  <ebotcazou@adacore.com>
5789         * c-ada-spec.c (to_ada_name): Remove index parameter.
5790         (pp_ada_tree_identifier): Likewise.
5791         (dump_ada_macros): Adjust call to to_ada_name.
5792         (struct overloaded_name_hash): Delete.
5793         (struct overloaded_name_hasher): Likewise.
5794         (overloaded_names): Likewise.
5795         (compute_overloading_index): Likewise.
5796         (dump_ada_decl_name): Do not call compute_overloading_index and
5797         adjust calls to pp_ada_tree_identifier.
5798         (dump_ada_double_name): Adjust calls to pp_ada_tree_identifier.
5799         (dump_ada_import): Add spc parameter and switch to aspect syntax.
5800         (dump_ada_function_declaration): Adjust call to pp_ada_tree_identifier.
5801         (dump_ada_enum_type): Remove type and display_convention parameters.
5802         Adjust calls to pp_ada_tree_identifier.
5803         (dump_ada_node): Likewise and for dump_ada_structure.
5804         (dump_nested_type) <ENUMERAL_TYPE>: Adjust call to dump_ada_enum_type
5805         and tidy up.
5806         <RECORD_TYPE>: Adjust call to dump_ada_structure and switch to aspect
5807         syntax.
5808         (print_constructor): Adjust call to pp_ada_tree_identifier.
5809         (print_destructor): Likewise.
5810         (dump_ada_declaration): Switch to aspect syntax.
5811         (dump_ada_structure): Likewise and tidy up.  Replace display_convention
5812         parameter with nested parameter.
5813         (dump_ads): Emit pragma Ada_2012 in lieu of pragma Ada_2005.
5814         (dump_ada_specs): Do not delete overloaded_names table.
5816 2018-07-06  Peter Bergner  <bergner@linux.ibm.com>
5818         PR target/86324
5819         * c-attribs.c (handle_mode_attribute): Call translate_mode_attribute
5820         target hook.
5822 2018-07-05  Nathan Sidwell  <nathan@acm.org>
5824         * c-lex.c (fe_file_change): Check SYSTEM_IMPLICIT_EXTERN_C not
5825         NO_IMPLICIT_EXTERN_C.
5827 2018-06-28  Martin Liska  <mliska@suse.cz>
5829         * cppspec.c: Include opt-suggestions.h.
5831 2018-06-20  Chung-Lin Tang  <cltang@codesourcery.com>
5832             Thomas Schwinge  <thomas@codesourcery.com>
5833             Cesar Philippidis  <cesar@codesourcery.com>
5835         * c-pragma.h (enum pragma_omp_clause): Add
5836         PRAGMA_OACC_CLAUSE_{FINALIZE,IF_PRESENT}. Remove
5837         PRAGMA_OACC_CLAUSE_PRESENT_OR_{COPY,COPYIN,COPYOUT,CREATE}.
5839 2018-06-20  Jakub Jelinek  <jakub@redhat.com>
5841         PR c++/86210
5842         * c-common.c (check_nonnull_arg): Use fold_for_warn.  Adjust obsolete
5843         comment.
5845 2018-06-18  Martin Sebor  <msebor@redhat.com>
5847         PR middle-end/85602
5848         * c-warn.c (sizeof_pointer_memaccess_warning): Check for attribute
5849         nonstring.
5851 2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
5853         * c-common.c (c_common_truthvalue_conversion): Handle ABSU_EXPR.
5855 2018-06-13  Jason Merrill  <jason@redhat.com>
5857         * c-opts.c (c_common_post_options): Warn about useless -Wabi.
5858         (c_common_handle_option) [OPT_Wabi_]: Remove flag_abi_compat_version
5859         handling.
5861         PR c++/86094 - wrong code with defaulted move ctor.
5862         * c-opts.c (c_common_post_options): Bump the current ABI version to
5863         13.  Set warn_abi_version and flag_abi_compat_version to the current
5864         version rather than 0.  Fix defaulting flag_abi_compat_version from
5865         warn_abi_version.
5867 2018-06-12  Martin Sebor  <msebor@redhat.com>
5869         PR c/85931
5870         * c-warn.c (sizeof_pointer_memaccess_warning): Avoid warning when
5871         sizeof source and destination yields the same value.
5873 2018-06-12  Martin Liska  <mliska@suse.cz>
5875         * c.opt: Make MPX-related options as Deprecated.
5877 2018-06-08  David Malcolm  <dmalcolm@redhat.com>
5879         * c-pretty-print.c (c_pretty_printer::statement): Use TDF_NONE
5880         rather than 0.
5882 2018-06-08  Martin Liska  <mliska@suse.cz>
5884         * c-attribs.c (handle_bnd_variable_size_attribute): Remove support
5885         for MPX (macros, related functions, fields in cgraph_node, ...).
5886         (handle_bnd_legacy): Likewise.
5887         (handle_bnd_instrument): Likewise.
5888         * c.opt: Likewise.
5890 2018-06-06  Jakub Jelinek  <jakub@redhat.com>
5892         PR c++/86068
5893         * c-cppbuiltin.c (c_cpp_builtins): Fix a typo, set
5894         __cpp_transactional_memory to 201500 instead of 210500.
5896 2018-06-06  Jason Merrill  <jason@redhat.com>
5898         PR c++/85710 - ICE with -Wmemset-elt-size.
5899         * c-warn.c (warn_for_memset): Don't crash on incomplete element type.
5901 2018-06-01  Jason Merrill  <jason@redhat.com>
5903         * c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_deduction_guides to
5904         201703.
5906 2018-06-01  Eric Botcazou  <ebotcazou@adacore.com>
5908         * c-ada-spec.c (dump_ada_declaration) <TYPE_DECL>: Generate a forward
5909         declaration for a typedef independently of whether the declaration of
5910         the subtype is generated.
5912 2018-05-31  Martin Sebor  <msebor@redhat.com>
5914         PR c/82063
5915         * c.opt (-Wno-alloc-size-larger-than): New option.
5917 2018-04-22  David Pagan  <dave.pagan@oracle.com>
5919         PR c/55976
5920         * c-opts.c (c_common_post_options): Set default for warn_return_type
5921         for C++/C++ with ObjC extensions only. For C, makes it possible to
5922         differentiate between default (no option), -Wreturn-type, and
5923         -Wno-return-type.
5925 2018-05-29  Jason Merrill  <jason@redhat.com>
5927         * c.opt (Winit-list-lifetime): New flag.
5929 2018-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5931         * c-lex.c (get_fileinfo): Use splay_tree_compare_strings and
5932         splay_tree_delete_pointers.
5934 2018-05-26  Jakub Jelinek  <jakub@redhat.com>
5936         PR bootstrap/85921
5937         * c-warn.c (diagnose_mismatched_attributes): Remove unnecessary
5938         noinline variable to workaround broken kernel headers.
5940 2018-05-18  Jason Merrill  <jason@redhat.com>
5942         * c.opt (Wdeprecated-copy): New flag.
5944 2018-05-17  Martin Liska  <mliska@suse.cz>
5946         * c-warn.c (overflow_warning): Do not use
5947         space in between 'G_' and '('.
5949 2018-05-09  Jason Merrill  <jason@redhat.com>
5951         * c-common.c (valid_array_size_p): Add complain parameter.
5952         * c-common.h: ...which defaults to true.
5954 2018-05-11  Jakub Jelinek  <jakub@redhat.com>
5956         PR c/85696
5957         * c-omp.c (c_omp_predetermined_sharing): Return
5958         OMP_CLAUSE_DEFAULT_SHARED for artificial vars with integral type.
5960 2018-05-11  Martin Liska  <mliska@suse.cz>
5962         PR sanitizer/85556
5963         * c-attribs.c (handle_no_sanitize_attribute): Iterate all
5964         TREE_LIST values.
5966 2018-05-10  Jakub Jelinek  <jakub@redhat.com>
5968         PR c++/85662
5969         * c-common.h (fold_offsetof_1): Removed.
5970         (fold_offsetof): Add TYPE argument defaulted to size_type_node and
5971         CTX argument defaulted to ERROR_MARK.
5972         * c-common.c (fold_offsetof_1): Renamed to ...
5973         (fold_offsetof): ... this.  Remove wrapper function.  Add TYPE
5974         argument, convert the pointer constant to TYPE and use size_binop
5975         with PLUS_EXPR instead of fold_build_pointer_plus if type is not
5976         a pointer type.  Adjust recursive calls.
5978 2018-05-10  Eric Botcazou  <ebotcazou@adacore.com>
5980         PR c++/85400
5981         * c-attribs.c (handle_visibility_attribute): Do not set no_add_attrs.
5983 2018-05-07  Nathan Sidwell  <nathan@acm.org>
5985         * c.opt (ffor-scope): Remove functionality, issue warning.
5987 2018-05-03  Nathan Sidwell  <nathan@acm.org>
5989         * c.opt (ffriend-injection): Remove functionality, issue warning.
5991 2018-05-01  David Malcolm  <dmalcolm@redhat.com>
5993         PR c/84258
5994         * c-format.c (struct format_check_results): Add field
5995         "number_non_char".
5996         (check_format_info): Initialize it, and warn if encountered.
5997         (check_format_arg): Distinguish between wide char and
5998         everything else when detecting arrays of non-char.
6000 2018-04-30  David Malcolm  <dmalcolm@redhat.com>
6002         * c-format.c (get_corrected_substring): Update for
6003         location_get_source_line returning a char_span.  Use a char_span
6004         when handling the prefix of the correction.
6005         * c-indentation.c (get_visual_column): Update for
6006         location_get_source_line returning a char_span.
6007         (get_first_nws_vis_column): Likewise.
6009 2018-03-29  David Malcolm  <dmalcolm@redhat.com>
6011         PR c++/84269
6012         * known-headers.cc (get_stdlib_header_for_name): Add various names
6013         from <assert.h>, <string.h>, and <memory.h>; add more names from
6014         <stdio.h>.
6016 2018-03-27  Jakub Jelinek  <jakub@redhat.com>
6018         PR c++/85061
6019         * c-common.c (fold_offsetof_1) <case COMPOUND_EXPR>: Assert that
6020         get_base_address of the second operand is a VAR_P, rather than the
6021         operand itself, and use gcc_checking_assert instead of gcc_assert.
6023 2018-03-23  Marek Polacek  <polacek@redhat.com>
6025         PR c++/85045
6026         * c-pretty-print.c (c_pretty_printer::multiplicative_expression)
6027         <case RDIV_EXPR>: Tweak condition.
6029 2018-03-20  Eric Botcazou  <ebotcazou@adacore.com>
6031         * c-ada-spec.c (pp_ada_tree_identifier): Deal specifically with _Bool.
6033 2018-03-16  Jakub Jelinek  <jakub@redhat.com>
6035         PR c/84909
6036         * c-warn.c (conversion_warning): Replace "to to" with "to" in
6037         diagnostics.
6039         PR c/84910
6040         * c-warn.c (diagnose_mismatched_attributes): Remove trailing space from
6041         diagnostics.
6043 2018-03-16  Richard Biener  <rguenther@suse.de>
6045         PR c/84873
6046         * c-gimplify.c (c_gimplify_expr): Revert previous change.  Instead
6047         unshare the possibly folded expression.
6049 2018-03-15  Richard Biener  <rguenther@suse.de>
6051         PR c/84873
6052         * c-gimplify.c (c_gimplify_expr): Do not fold expressions.
6054 2018-03-13  Martin Sebor  <msebor@redhat.com>
6056         PR tree-optimization/84725
6057         * c-attribs.c (handle_nonstring_attribute): Allow attribute nonstring
6058         with all three narrow character types, including their qualified forms.
6060 2018-03-12  Martin Sebor  <msebor@redhat.com>
6062         PR tree-optimization/83456
6063         * c-common.c (check_function_restrict): Return bool.
6064         Restore checking of bounded built-in functions.
6065         (check_function_arguments): Also return the result
6066         of warn_for_restrict.
6067         * c-common.c (check_function_restrict): Return bool.
6068         * c-warn.c (warn_for_restrict): Return bool.
6070 2018-03-02  Marek Polacek  <polacek@redhat.com>
6072         PR c++/84171
6073         * c-warn.c (warn_for_sign_compare): Bail out if any of the operands
6074         is erroneous.
6076 2018-03-02  Thomas Schwinge  <thomas@codesourcery.com>
6078         * c-attribs.c (c_common_attribute_table): Remove "cilk simd
6079         function".
6081 2018-03-01  Marek Polacek  <polacek@redhat.com>
6083         PR c++/84639
6084         * c-attribs.c (common_handle_aligned_attribute): Don't use invalid
6085         alignment in computation.
6087 2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6089         * c-ada-spec.c (dump_ada_node) <NULLPTR_TYPE>: New case.
6090         <REAL_TYPE>: Deal specifically with _Float128/__float128.
6092 2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6094         * c-ada-spec.c (dump_ada_double_name) <ENUMERAL_TYPE>: New case.
6095         (is_char_array): Take a type instead of a declaration.
6096         (dump_ada_array_type): Likewise.
6097         (is_simple_enum): Minor tweak.
6098         (dump_ada_enum_type): New function extracted from...
6099         (dump_ada_node) <ENUMERAL_TYPE>: ...here.  Invoke it.
6100         <INTEGER_TYPE>: Remove unreachable code.
6101         <RECORD_TYPE>: Likewise.  Minor tweaks.
6102         (dump_nested_type) <ARRAY_TYPE>: Adjust to above changes.
6103         <ENUMERAL_TYPE>: New case.
6104         <RECORD_TYPE>: Factor out common code.
6105         (dump_ada_declaration) <ARRAY_TYPE>: Adjust to above changes.
6106         Minor tweaks.  Deal with enumeral types.
6107         (dump_ada_structure): Minor tweaks.
6109 2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6111         * c-ada-spec.c (dump_ada_node) <POINTER_TYPE>: Do not use generic
6112         address for incomplete structures.
6113         (dump_forward_type): Do not bail out for incomplete structures.
6114         (dump_ada_declaration): Do not special-case incomplete structures
6115         for subtypes.  Dump them as null records for types.
6117 2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6119         * c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
6120         (is_char_array): Fix formatting.
6121         (dump_template_types): Likewise.
6122         (dump_generic_ada_node): Rename into...
6123         (dump_ada_node): ...this.
6124         <POINTER_TYPE>: Remove superfluous space.  Use generic address for
6125         incomplete structures and not for empty structures.  Do not use it
6126         when forward declarations are needed.
6127         (dump_forward_type): New function.
6128         (dump_nested_types): Remove FORWARD parameter.  Do not consider
6129         TREE_VISITED and do not generate a forward declaration.  Only dump
6130         original nested types for nested declaration.
6131         (dump_nested_type) <POINTER_TYPE>: Call dump_forward_type.
6132         <ARRAY_TYPE>: Likewise if the component type is an anonymous pointer.
6133         <RECORD_TYPE>: Do not consider TREE_VISITED.
6134         (dump_ada_declaration): Use booleans and fix formatting throughout.
6135         <TYPE_DECL>: Skip incomplete structures and not empty structures.
6136         Call dump_forward_type instead of dump_nested_types for a typedef.
6137         Remove superfluous check and adjust call to dump_nested_types.
6138         <POINTER_TYPE>: Call dump_forward_type and fall through.
6139         (dump_ada_struct_decl): Rename into...
6140         (dump_ada_structure): ...this.  Do not special-case empty structures.
6142 2018-02-27  Martin Sebor  <msebor@redhat.com>
6144         PR c++/83871
6145         * c.opt (-Wmissing-attributes): New option.
6147 2018-02-21  Martin Liska  <mliska@suse.cz>
6149         * c.opt (Wcatch-value=): Add IntegerRange.
6151 2018-02-15  Jason Merrill  <jason@redhat.com>
6153         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_deduction_guides.
6155 2018-02-09  Nathan Sidwell  <nathan@acm.org>
6157         PR c/84293
6158         * c-common.h (strict_aliasing_warning): Drop OTYPE arg, insert LOC
6159         arg.
6160         * c-warn.c (strict_aliasing_warning): Drop OTYPE arg, require LOC
6161         arg.  Adjust.
6163 2018-02-09  Martin Sebor  <msebor@redhat.com>
6165         PR lto/84212
6166         * c.opt (-Wstringop-overflow, -Warray-bounds): Add LTO.
6167         (-Walloc-size-larger-than, -Wformat-truncation=): Same.
6168         (-Wmaybe-uninitialized, -Wnonnull, -Wrestrict): Same.
6169         (-Wstrict-overflow, -Wsuggest-attribute): Same.
6170         (-Wuninitialized): Same.
6172 2018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
6174         * c-ada-spec.c (dump_ada_declaration): Do not generate the 'constant'
6175         keyword for components.
6177 2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>
6179         * c-common.h (DECL_UNNAMED_BIT_FIELD): New.
6181 2018-02-02  Julia Koval  <julia.koval@intel.com>
6183         * c-common.h (omp_clause_mask): Move to wide_int_bitmask.h.
6185 2018-01-29  Marek Polacek  <polacek@redhat.com>
6187         PR c/83966
6188         * c-format.c (check_function_format): Check current_function_decl.
6190 2018-01-27  Jakub Jelinek  <jakub@redhat.com>
6192         * c-cppbuiltin.c (c_cpp_builtins): Use ggc_strdup for the fp_suffix
6193         argument.
6194         (LAZY_HEX_FP_VALUES_CNT): Define.
6195         (lazy_hex_fp_values): Allow up to LAZY_HEX_FP_VALUES_CNT lazy hex fp
6196         values rather than just 12.
6197         (builtin_define_with_hex_fp_value): Likewise.
6199 2018-01-18  Boris Kolpackov  <boris@codesynthesis.com>
6201         PR other/70268
6202         * c.opt (-fmacro-prefix-map): New option.
6203         * c-opts.c (c_common_handle_option): Handle it.
6204         * c-lex.c (init_c_lex): Set remap_filename cpp callback.
6205         * c-ppoutput.c (init_pp_output): Likewise.
6207 2018-01-17  David Malcolm  <dmalcolm@redhat.com>
6209         PR c++/83814
6210         * c-common.c (fold_for_warn): Move to c/c-fold.c and cp/expr.c.
6212 2018-01-10  Eric Botcazou  <ebotcazou@adacore.com>
6214         * c-ada-spec.c (dump_number): Add FLOAT_P parameter.
6215         Skip 'f' and 'F' characters if it is true.
6216         (store_ada_macro): Minor tweak.
6217         (dump_ada_macros) <CPP_COMMENT>: Likewise.
6218         <CPP_WSTRING>: Likewise.
6219         <CPP_STRING>: Output '&' in the buffer if not the first string.
6220         <CPP_NUMBER>: Adjust calls to dump_number.
6222 2018-01-10  David Malcolm  <dmalcolm@redhat.com>
6224         PR c++/43486
6225         * c-common.c: Include "selftest.h".
6226         (get_atomic_generic_size): Perform the test for integral type
6227         before the range test for any integer constant, fixing indentation
6228         of braces.  Call fold_for_warn before testing for an INTEGER_CST.
6229         (reject_gcc_builtin): Strip any location wrapper from EXPR.
6230         (selftest::test_fold_for_warn): New function.
6231         (selftest::c_common_c_tests): New function.
6232         (selftest::c_family_tests): Call it, and
6233         selftest::c_pretty_print_c_tests.
6234         * c-common.h (selftest::c_pretty_print_c_tests): New decl.
6235         * c-format.c (check_format_arg): Convert VAR_P check to a
6236         fold_for_warn.
6237         * c-pretty-print.c: Include "selftest.h".
6238         (pp_c_cast_expression): Don't print casts for location wrappers.
6239         (selftest::assert_c_pretty_printer_output): New function.
6240         (ASSERT_C_PRETTY_PRINTER_OUTPUT): New macro.
6241         (selftest::test_location_wrappers): New function.
6242         (selftest::c_pretty_print_c_tests): New function.
6243         * c-warn.c (warn_for_memset): Call fold_for_warn on the arguments.
6245 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
6246             Alan Hayward  <alan.hayward@arm.com>
6247             David Sherwood  <david.sherwood@arm.com>
6249         * c-common.c (c_common_type_for_mode): Handle MODE_VECTOR_BOOL.
6251 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
6252             Alan Hayward  <alan.hayward@arm.com>
6253             David Sherwood  <david.sherwood@arm.com>
6255         * c-ubsan.c (ubsan_instrument_shift): Treat GET_MODE_BITSIZE
6256         as polynomial.
6258 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
6259             Alan Hayward  <alan.hayward@arm.com>
6260             David Sherwood  <david.sherwood@arm.com>
6262         * c-common.c (vector_types_convertible_p, c_build_vec_perm_expr)
6263         (convert_vector_to_array_for_subscript): Handle polynomial
6264         TYPE_VECTOR_SUBPARTS.
6265         (c_common_type_for_mode): Check valid_vector_subparts_p.
6266         * c-pretty-print.c (pp_c_initializer_list): Handle polynomial
6267         VECTOR_CST_NELTS.
6269 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
6271         Update copyright years.
6273 2017-12-22  Mike Stump  <mikestump@comcast.net>
6274             Eric Botcazou  <ebotcazou@adacore.com>
6276         * c-pragma.c (init_pragma): Register pragma GCC unroll.
6277         * c-pragma.h (enum pragma_kind): Add PRAGMA_UNROLL.
6279 2017-12-22  Alexandre Oliva  <aoliva@redhat.com>
6281         PR debug/83527
6282         PR debug/83419
6283         * c-semantics.c (only_debug_stmts_after_p): New.
6284         (pop_stmt_list): Clear side effects in debug-only stmt list.
6285         Check for single nondebug stmt followed by debug stmts only.
6287 2017-12-21  Alexandre Oliva  <aoliva@redhat.com>
6289         PR debug/83419
6290         * c-semantics.c (pop_stmt_list): Propagate side effects from
6291         single nondebug stmt to container list.
6293 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
6295         * known-headers.cc (get_stdlib_header_for_name): Replace Yoda
6296         conditions with typical order conditions.
6298 2017-12-18  Marek Polacek  <polacek@redhat.com>
6300         * c-warn.c (warn_logical_operator): Return early if -Wlogical-op is
6301         not in effect.
6303 2017-12-17  Martin Sebor  <msebor@redhat.com>
6305         * c-attribs.c (common_handle_aligned_attribute): Avoid issuing
6306         an error for attribute warn_if_not_aligned.
6308 2017-12-16  Martin Sebor  <msebor@redhat.com>
6310         PR tree-optimization/78918
6311         * c-common.c (check_function_restrict): Avoid checking built-ins.
6312         * c.opt (-Wrestrict): Include in -Wall.
6314 2017-12-15  Jakub Jelinek  <jakub@redhat.com>
6316         * c-attribs.c (c_common_attribute_table,
6317         c_common_format_attribute_table): Swap affects_type_identity
6318         and handler fields, adjust comments.
6320 2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6322         * c.opt (Wcast-function-type): New warning option.
6323         * c-lex.c (get_fileinfo): Avoid warning.
6324         * c-ppoutput.c (scan_translation_unit_directives_only): Remove cast.
6326 2017-12-14  Qing Zhao  <qing.zhao@oracle.com>
6328         PR middle_end/79538
6329         * c-cppbuiltin.c (builtin_define_with_hex_fp_value):
6330         Adjust the size of buf1 and buf2, add a new buf to avoid
6331         format-overflow warning.
6333 2017-12-12  Alexandre Oliva  <aoliva@redhat.com>
6335         * c-semantics.c (pop_stmt_list): Move begin stmt marker into
6336         subsequent statement list.
6338 2017-12-07  Martin Sebor  <msebor@redhat.com>
6340         PR c/81544
6341         PR c/81566
6342         * c-attribs.c (attr_aligned_exclusions): New array.
6343         (attr_alloc_exclusions, attr_cold_hot_exclusions): Same.
6344         (attr_common_exclusions, attr_const_pure_exclusions): Same.
6345         (attr_gnu_inline_exclusions, attr_inline_exclusions): Same.
6346         (attr_noreturn_exclusions, attr_returns_twice_exclusions): Same.
6347         (attr_warn_unused_result_exclusions): Same.
6348         (handle_hot_attribute, handle_cold_attribute): Simplify.
6349         (handle_const_attribute): Warn on function returning void.
6350         (handle_pure_attribute): Same.
6351         (handle_aligned_attribute): Diagnose conflicting attribute
6352         specifications.
6353         * c-warn.c (diagnose_mismatched_attributes): Simplify.
6355 2017-12-06  David Malcolm  <dmalcolm@redhat.com>
6357         PR c/83236
6358         * c-common.c (selftest::c_family_tests): Call
6359         selftest::c_spellcheck_cc_tests.
6360         * c-common.h (selftest::c_spellcheck_cc_tests): New decl.
6361         * c-spellcheck.cc: Include "selftest.h".
6362         (name_reserved_for_implementation_p): New function.
6363         (should_suggest_as_macro_p): New function.
6364         (find_closest_macro_cpp_cb): Move the check for NT_MACRO to
6365         should_suggest_as_macro_p and call it.
6366         (selftest::test_name_reserved_for_implementation_p): New function.
6367         (selftest::c_spellcheck_cc_tests): New function.
6368         * c-spellcheck.h (name_reserved_for_implementation_p): New decl.
6370 2017-12-06  David Malcolm  <dmalcolm@redhat.com>
6372         * c-spellcheck.cc: New file, taken from macro-handling code in
6373         spellcheck-tree.c.
6374         * c-spellcheck.h: New file, taken from macro-handling code in
6375         spellcheck-tree.h.
6377 2017-12-01  Jakub Jelinek  <jakub@redhat.com>
6379         * c-attribs.c (c_common_attribute_table): Remove "cilk simd function"
6380         attribute.
6381         (handle_simd_attribute): Don't check for "cilk simd function"
6382         attribute.  Reindent, formatting changes.
6384 2017-11-30  Julia Koval  <julia.koval@intel.com>
6386         * c-common.h (inv_list): Remove.
6388 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
6390         PR sanitizer/81275
6391         * c-common.c (c_switch_covers_all_cases_p_1,
6392         c_switch_covers_all_cases_p): New functions.
6393         * c-common.h (c_switch_covers_all_cases_p): Declare.
6395 2017-11-28  Julia Koval  <julia.koval@intel.com>
6396             Sebastian Peryt  <sebastian.peryt@intel.com>
6398         * array-notation-common.c: Delete.
6399         * c-cilkplus.c: Ditto.
6400         * c-common.c (_Cilk_spawn, _Cilk_sync, _Cilk_for): Remove.
6401         * c-common.def (ARRAY_NOTATION_REF): Remove.
6402         * c-common.h (RID_CILK_SPAWN, build_array_notation_expr,
6403         build_array_notation_ref, C_ORT_CILK, c_check_cilk_loop,
6404         c_validate_cilk_plus_loop, cilkplus_an_parts,
6405         cilk_ignorable_spawn_rhs_op,
6406         cilk_recognize_spawn): Remove.
6407         * c-gimplify.c (CILK_SPAWN_STMT): Remove.
6408         * c-omp.c: Remove CILK_SIMD check.
6409         * c-pragma.c: Ditto.
6410         * c-pragma.h: Remove CILK related pragmas.
6411         * c-pretty-print.c (c_pretty_printer::postfix_expression): Remove
6412         ARRAY_NOTATION_REF condition.
6413         (c_pretty_printer::expression): Ditto.
6414         * c.opt (fcilkplus): Remove.
6415         * cilk.c: Delete.
6417 2017-11-21  Marc Glisse  <marc.glisse@inria.fr>
6419         * c-pretty-print.c (pp_c_additive_expression,
6420         c_pretty_printer::expression): Handle POINTER_DIFF_EXPR.
6422 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
6424         * c-common.c (get_nonnull_operand): Use tree_to_uhwi.
6426         PR c++/83059
6427         * c-common.c (get_atomic_generic_size): Use TREE_INT_CST_LOW
6428         instead of tree_to_uhwi, formatting fix.
6430 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
6432         PR c/81404
6433         * known-headers.cc: New file, based on material from c/c-decl.c.
6434         (suggest_missing_header): Copied as-is.
6435         (get_stdlib_header_for_name): New, based on get_c_name_hint but
6436         heavily edited to add C++ support.  Add some knowledge about
6437         <limits.h>, <stdint.h>, and <wchar.h>.
6438         * known-headers.h: Likewise.
6440 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
6442         * c-common.h (enum lookup_name_fuzzy_kind): Move to name-hint.h.
6443         (lookup_name_fuzzy): Likewise.  Convert return type from
6444         const char * to name_hint.  Add location_t param.
6445         * name-hint.h: New header.
6447 2017-11-19  Jakub Jelinek  <jakub@redhat.com>
6449         PR c/66618
6450         PR c/69960
6451         * c-common.h (c_fully_fold): Add LVAL argument defaulted to false.
6453 2017-11-16  Joseph Myers  <joseph@codesourcery.com>
6455         * c.opt (-std=c17, std=gnu17, -std=iso9899:2017): Refer to 2018
6456         expected publication date of C17.
6457         (-std=c18, -std=gnu18, -std=iso9899:2018): New option aliases.
6459 2017-11-15  Joseph Myers  <joseph@codesourcery.com>
6461         PR c/81156
6462         * c-common.c (c_common_reswords): Add __builtin_tgmath.
6463         * c-common.h (enum rid): Add RID_BUILTIN_TGMATH.
6465 2017-11-10  Martin Sebor  <msebor@redhat.com>
6467         PR c/81117
6468         * c-common.c (catenate_strings): Use memcpy instead of strncpy.
6469         * c-warn.c (sizeof_pointer_memaccess_warning): Handle arrays.
6470         * c.opt (-Wstringop-truncation): New option.
6472 2017-11-06  Martin Liska  <mliska@suse.cz>
6474         PR middle-end/82404
6475         * c-opts.c (c_common_post_options): Set -Wreturn-type for C++
6476         FE.
6477         * c.opt: Set default value of warn_return_type.
6479 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
6481         * c-common.c (binary_op_error): Update for renaming of
6482         error_at_rich_loc.
6483         (c_parse_error): Likewise.
6484         * c-warn.c (warn_logical_not_parentheses): Likewise for
6485         renaming of inform_at_rich_loc.
6486         (warn_for_restrict): Likewise for renaming of
6487         warning_at_rich_loc_n.
6489 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
6491         * c.opt (std=c17, std=gnu17, std=iso9899:2017): New options.
6492         * c-opts.c (set_std_c17): New function.
6493         (c_common_init_options): Use gnu17 as default C version.
6494         (c_common_handle_option): Handle -std=c17 and -std=gnu17.
6496 2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
6498         * c-cppbuiltin.c (mode_has_fma): Add support for PowerPC KFmode.
6499         (c_cpp_builtins): If a machine has a fast fma _Float<N> and
6500         _Float<N>X variant, define __FP_FAST_FMA<N> and/or
6501         __FP_FAST_FMA<N>X.
6503 2017-10-23  Marek Polacek  <polacek@redhat.com>
6505         PR c/82681
6506         * c-warn.c (warnings_for_convert_and_check): Fix typos.
6508 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
6510         * c-common.c (check_builtin_function_arguments): Also check arguments
6511         of __builtin_alloca_with_align_and_max.
6513 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
6515         * c-format.c (format_warning_at_char): Pass UNKNOWN_LOCATION
6516         rather than NULL to format_warning_va.
6517         (check_format_types): Likewise when calling format_type_warning.
6518         Remove code to extract source_ranges and source_range * in favor
6519         of just a location_t.
6520         (format_type_warning): Convert source_range * param to a
6521         location_t.
6523 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
6525         * c-gimplify.c (c_gimplify_expr): Handle [LR]ROTATE_EXPR like
6526         [LR]SHIFT_EXPR.
6528 2017-10-12  David Malcolm  <dmalcolm@redhat.com>
6530         * c-common.c (enum missing_token_insertion_kind): New enum.
6531         (get_missing_token_insertion_kind): New function.
6532         (maybe_suggest_missing_token_insertion): New function.
6533         * c-common.h (maybe_suggest_missing_token_insertion): New decl.
6535 2017-10-11  Nathan Sidwell  <nathan@acm.org>
6537         * c-opts.c (add_prefixed_path): Change chain to incpath_kind.
6538         (c_common_handle_option): Update incpath_kind names.
6540 2017-10-11  Martin Liska  <mliska@suse.cz>
6542         PR sanitizer/82490
6543         * c-attribs.c (handle_no_sanitize_attribute): Report directly
6544         Wattributes warning.
6546 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
6548         * c-ada-spec.c (dump_generic_ada_node): Use wi::to_wide when
6549         operating on trees as wide_ints.
6550         * c-common.c (pointer_int_sum): Likewise.
6551         * c-pretty-print.c (pp_c_integer_constant): Likewise.
6552         * c-warn.c (match_case_to_enum_1): Likewise.
6553         (c_do_switch_warnings): Likewise.
6554         (maybe_warn_shift_overflow): Likewise.
6556 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
6558         PR c/82437
6559         * c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_wide
6560         instead of wide_int::from.
6562 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
6564         PR c/82437
6565         * c-warn.c (warn_tautological_bitwise_comparison): Instead of
6566         using to_widest use wide_int with the larger of the two precisions.
6568 2017-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6570         * c-pretty-print.c (pp_c_parameter_type_list): Print ... for variadic
6571         functions.
6573 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
6575         * c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_widest
6576         when combining the original unconverted comparison operands.
6578 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
6580         * c-attribs.c (handle_noipa_attribute): Don't add "stack_protect"
6581         attribute.
6583 2017-09-29  Eric Botcazou  <ebotcazou@adacore.com>
6585         * c-ada-spec.c (to_ada_name): Add index parameter.
6586         (pp_ada_tree_identifier): Likewise.
6587         (dump_ada_macros): Adjust call to to_ada_name.
6588         (struct overloaded_name_hash): New type.
6589         (struct overloaded_name_hasher): Likewise.
6590         (overloaded_names): New hash table.
6591         (compute_overloading_index): New function.
6592         (dump_ada_decl_name): Call it and pass the result to
6593         pp_ada_tree_identifier.
6594         (dump_ada_double_name): Adjust calls to pp_ada_tree_identifier.
6595         (dump_ada_function_declaration): Likewise.
6596         (dump_generic_ada_node): Likewise.
6597         (print_constructor): Likewise.
6598         (print_destructor): Likewise.
6599         (dump_ada_specs): Delete overloaded_names table.
6601 2017-09-29  Eric Botcazou  <ebotcazou@adacore.com>
6603         * c-ada-spec.c (max_ada_macros): Move around.
6604         (store_ada_macro_index): Likewise.
6605         (source_file): Rename into...
6606         (macro_source_file): ...this.
6607         (count_ada_macro): Move around.
6608         (store_ada_macro): Likewise.
6609         (compare_macro): Likewise.
6610         (print_ada_macros): Merge in...
6611         (dump_ada_macros): ...this.
6612         (source_file_base): Rename into...
6613         (current_source_file): ...this.
6614         (print_comment): Move around.
6615         (dump_ada_nodes): Call dump_ada_declaration directly.
6616         (struct with): Change type of limited field to bool.
6617         (append_withs): Change type of limited_access parameter to bool.
6618         (pp_ada_tree_identifie): Likewise.
6619         (dump_ada_decl_nam): Likewise.
6620         (dump_generic_ada_node): Likewise.  Do not print the return type.
6621         (to_ada_name): Change type of space_found parameter to bool.
6622         (dump_ada_function_declaration): Return void and change type of
6623         parameters to bool.  Also print the return type for a function.
6624         (print_ada_methods): Rename into...
6625         (dump_ada_methods): ...this.
6626         (print_ada_declaration): Rename into ...
6627         (dump_ada_declaration): ...this.  Do not print the return type.
6628         (print_ada_struct_decl): Rename into...
6629         (dump_ada_struct_decl): ...this.
6631 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
6633         * c-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD
6634         rather than DECL_INITIAL.
6635         (common_handle_aligned_attribute): Likewise.
6637 2017-09-20  Alexandre Oliva  <aoliva@redhat.com>
6639         * c.opt (gen-decls): Add RejectNegative.
6641 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
6642             Jakub Jelinek  <jakub@redhat.com>
6644         Add support for -std=c++2a.
6645         * c-common.h (cxx_dialect): Add cxx2a as a dialect.
6646         * opt.c: Add options for -std=c++2a and -std=gnu++2a.
6647         * c-opts.c (set_std_cxx2a): New.
6648         (c_common_handle_option): Set options when -std=c++2a is enabled.
6649         (c_common_post_options): Adjust comments.
6650         (set_std_cxx14, set_std_cxx17): Likewise.
6652 2017-09-15  Eric Botcazou  <ebotcazou@adacore.com>
6654         * c-pragma.c (handle_pragma_scalar_storage_order): Expand on error
6655         message for non-uniform endianness and issue a warning in C++.
6657 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
6659         * c.opt (Wc++1z-compat): Change from option to undocumented alias.
6660         (Wc++17-compat): Change from undocumented alias to option.
6661         (Wnoexcept-type): Enable by Wc++17-compat instead of Wc++1z-compat,
6662         change C++1z to C++17 in description.
6663         (std=c++1z, std=gnu++1z): Change from option to undocumented
6664         deprecated alias.
6665         (std=c++17, std=gnu++17): Change from undocumented alias to option.
6666         Adjust description.
6667         * c-common.h (enum cxx_dialect): Rename cxx1z to cxx17.
6668         * c-opts.c (set_std_cxx1z): Rename to ...
6669         (set_std_cxx17): ... this.
6670         (c_common_handle_option): Rename OPT_std_c__1z to OPT_std_c__17
6671         and OPT_std_gnu__1z to OPT_std_gnu__17.  Adjust set_std_cxx1z
6672         caller.
6673         (c_common_post_options): Use cxx17 instead of cxx1z.  Adjust
6674         comments.
6676 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
6678         * c-attribs.c (common_handle_aligned_attribute): Don't warn
6679         function alignment if warn_if_not_aligned_p is true.
6681 2017-09-12  Nathan Sidwell  <nathan@acm.org>
6683         * c-common.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
6684         resort_sorted_fields): Move to c/c-decl.c.
6685         * c-common.h (field_decl_cmp, resort_sorted_fields): Delete.
6686         (struct sorted_fields_type): Move to c/c-lang.h.
6688 2017-09-09  Jonathan Wakely  <jwakely@redhat.com>
6690         PR c++/81852
6691         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_threadsafe_static_init.
6693 2017-09-04  Marek Polacek  <polacek@redhat.com>
6695         PR c/81783
6696         * c-warn.c (warn_tautological_bitwise_comparison): New function.
6697         (warn_tautological_cmp): Call it.
6699 2017-09-01  Boris Kolpackov  <boris@codesynthesis.com>
6701         * c-opts.c (c_common_finish): Write dependency information even if
6702         there are errors.
6704 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
6706         PR c/81887
6707         * c-pragma.c (omp_pragmas): Move "ordered" entry from here to ...
6708         (omp_pragmas_simd): ... here.
6709         * c-omp.c (c_finish_omp_ordered): If clauses isn't simd clause alone,
6710         create new clauses list containing just simd clause.
6712 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
6713             Alan Hayward  <alan.hayward@arm.com>
6714             David Sherwood  <david.sherwood@arm.com>
6716         * c-attribs.c (vector_mode_valid_p) Fold GET_MODE_INNER call
6717         into scalar_mode_supported_p call.
6718         (handle_mode_attribute): Update call to scalar_mode_supported_p.
6720 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
6721             Alan Hayward  <alan.hayward@arm.com>
6722             David Sherwood  <david.sherwood@arm.com>
6724         * c-common.c (c_common_fixed_point_type_for_size): Use opt_scalar_mode
6725         for the mode iterator.
6727 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
6728             Alan Hayward  <alan.hayward@arm.com>
6729             David Sherwood  <david.sherwood@arm.com>
6731         * c-lex.c (interpret_fixed): Use SCALAR_TYPE_MODE.
6732         * c-common.c (c_build_vec_perm_expr): Likewise.
6734 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
6735             Alan Hayward  <alan.hayward@arm.com>
6736             David Sherwood  <david.sherwood@arm.com>
6738         * c-common.c (c_common_type_for_mode): Use as_a <scalar_int_mode>.
6740 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
6741             Alan Hayward  <alan.hayward@arm.com>
6742             David Sherwood  <david.sherwood@arm.com>
6744         * c-attribs.c (handle_mode_attribute): Check for a scalar_int_mode
6745         before calling targetm.addr_space.valid_pointer_mode.
6747 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
6748             Alan Hayward  <alan.hayward@arm.com>
6749             David Sherwood  <david.sherwood@arm.com>
6751         * c-cppbuiltin.c (c_cpp_builtins): Use opt_scalar_float_mode.
6753 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
6754             Alan Hayward  <alan.hayward@arm.com>
6755             David Sherwood  <david.sherwood@arm.com>
6757         * c-common.c (c_common_fixed_point_type_for_size): Use new mode
6758         iterators.
6759         * c-cppbuiltin.c (c_cpp_builtins): Likewise.
6761 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
6762             Alan Hayward  <alan.hayward@arm.com>
6763             David Sherwood  <david.sherwood@arm.com>
6765         * c-cppbuiltin.c (mode_has_fma): Prefix mode names with E_ in
6766         case statements.
6768 2017-08-29  Martin Liska  <mliska@suse.cz>
6770         PR other/39851
6771         * c-common.c (parse_optimize_options): Add argument to function
6772         call.
6773         * c-pragma.c (handle_pragma_diagnostic): Likewise.
6775 2017-08-24  David Malcolm  <dmalcolm@redhat.com>
6777         * c-lex.c (interpret_float): Use token location
6778         when building an EXCESS_PRECISION_EXPR.
6780 2017-08-21  David Malcolm  <dmalcolm@redhat.com>
6782         * c-common.c (check_function_arguments): Add "arglogs" param; pass
6783         it to check_function_format.
6784         * c-common.h (check_function_arguments): Add vec<location_t> *
6785         param.
6786         (check_function_format): Likewise.
6787         * c-format.c (struct format_check_context): Add field "arglocs".
6788         (check_function_format): Add param "arglocs"; pass it to
6789         check_format_info.
6790         (check_format_info): Add param "arglocs"; use it to initialize
6791         new field of format_ctx.
6792         (check_format_arg): Pass format_ctx->arglocs to new param of
6793         check_format_info_main.
6794         (class argument_parser): New field "arglocs".
6795         (argument_parser::argument_parser): Add "arglocs_" param and use
6796         it to initialize new field.
6797         (argument_parser::check_argument_type): Pass new arglocs field to
6798         check_format_types.
6799         (check_format_info_main): Add param "arglocs", and use it when
6800         constructing arg_parser.
6801         (check_format_types): Add param "arglocs"; use it if non-NULL when
6802         !EXPR_HAS_LOCATION (cur_param) to get at location information.
6804 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
6806         PR c/53037
6807         * c-attribs.c (handle_warn_if_not_aligned_attribute): New.
6808         (c_common_attribute_table): Add warn_if_not_aligned.
6809         (handle_aligned_attribute): Renamed to ...
6810         (common_handle_aligned_attribute): Remove argument, name, and add
6811         argument, warn_if_not_aligned.  Handle warn_if_not_aligned.
6812         (handle_aligned_attribute): New.
6813         * c.opt: Add -Wif-not-aligned and -Wpacked-not-aligned.
6815 2017-08-14  Martin Sebor  <msebor@redhat.com>
6817         PR c/81117
6818         * c-attribs.c (c_common_attribute_table): Add nonstring entry.
6819         (handle_nonstring_attribute): New function.
6821 2017-08-14  Martin Sebor  <msebor@redhat.com>
6823         PR c/81117
6824         * c-format.h (T89_G): New macro.
6825         * c-format.c (local_gcall_ptr_node): New variable.
6826         (init_dynamic_diag_info): Initialize it.
6828 2017-08-11  Martin Liska  <mliska@suse.cz>
6830         * c-opts.c (c_common_post_options): Replace ASM_OUTPUT_DEF with
6831         TARGET_SUPPORTS_ALIASES.
6833 2017-08-10  David Malcolm  <dmalcolm@redhat.com>
6835         * c-common.c (c_parse_error): Add rich_location * param, using it
6836         rather implicitly using input_location.
6837         * c-common.h (c_parse_error): Add rich_location * param.
6839 2017-08-09  Marek Polacek  <polacek@redhat.com>
6841         * c-common.c (pointer_int_sum): Use true/false instead of 1/0.
6842         (c_common_truthvalue_conversion): Likewise.
6843         * c-omp.c (c_finish_omp_atomic): Likewise.
6844         * c-common.h (build_binary_op): Update declaration.
6846 2017-08-08  Martin Liska  <mliska@suse.cz>
6848         * c-ada-spec.c: Include header files.
6849         * c-ubsan.c: Likewise.
6850         * c-warn.c: Likewise.
6852 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
6854         PR c/69389
6855         * c-omp.c (c_finish_omp_atomic): Handle atomics on bitfields.
6857 2017-08-07  Eric Botcazou  <ebotcazou@adacore.com>
6859         * c-ada-spec.c (has_nontrivial_methods): Test for FUNCTION_DECL.
6860         (print_ada_methods): Likewise.
6861         (print_ada_declaration): Likewise.
6863 2017-08-07  Martin Liska  <mliska@suse.cz>
6865         * array-notation-common.c: Add new includes.
6866         * c-format.c( handle_format_attribute): Canonicalize a format
6867         function name.
6868         * c-lex.c (c_common_has_attribute): Canonicalize name of an
6869         attribute.
6870         * c-pretty-print.c: Add new include.
6872 2017-08-05  Eric Botcazou  <ebotcazou@adacore.com>
6874         * c-ada-spec.c (has_static_fields): Look only into variables.
6875         (print_constructor): Add TYPE parameter and use it for the name.
6876         (print_destructor): Likewise.
6877         (print_ada_declaration): Adjust to new constructor/destructor names.
6878         Adjust calls to print_constructor and print_destructor.
6879         (print_ada_struct_decl): Do not test TREE_STATIC on FIELD_DECL.
6880         Look only into variables in the final loop.
6882 2017-08-01  Eric Botcazou  <ebotcazou@adacore.com>
6884         * c-ada-spec.c (has_static_fields): Look only into fields.
6885         (dump_generic_ada_node): Small tweak.
6886         (dump_nested_types): Look only into fields.
6887         (print_ada_declaration): Look only into methods.  Small tweak.
6888         (print_ada_struct_decl): Look only into fields.  Use DECL_VIRTUAL_P.
6890 2017-08-01  Eric Botcazou  <ebotcazou@adacore.com>
6892         * c-ada-spec.c (print_generic_ada_decl): Pass correctly-typed constant.
6893         (dump_ada_function_declaration): Likewise.
6894         (dump_generic_ada_node): Likewise.
6895         (print_ada_declaration): Add support for const-qualified variables.
6897 2017-07-31  Martin Liska  <mliska@suse.cz>
6899         PR sanitize/81530
6900         * c-ubsan.c (ubsan_maybe_instrument_array_ref):
6901         Guard condition with flag_sanitize_p also with current_function_decl
6902         non-null equality.
6903         (ubsan_maybe_instrument_reference_or_call): Likewise.
6905 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
6907         * c-format.c (asm_fprintf_char_table): Add 'z' to format_chars.
6909 2017-07-29  Eric Botcazou  <ebotcazou@adacore.com>
6911         * c-ada-spec.c (dump_generic_ada_node): Take into account signedness
6912         for enumeral types.
6913         (print_ada_declaration): Add missing guard for record types.
6915 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
6917         PR c/45784
6918         * c-omp.c (c_finish_omp_for): If the condition is wrapped in
6919         rhs of COMPOUND_EXPR(s), skip them and readd their lhs into
6920         new COMPOUND_EXPRs around the rhs of the comparison.
6922 2017-07-27  Marek Polacek  <polacek@redhat.com>
6924         PR c/81417
6925         * c-warn.c (warn_for_sign_compare): Tweak the warning message.  Print
6926         the types.
6928 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
6930         * c-attribs.c (c_common_attribute_table): Add noipa attribute.
6931         (handle_noipa_attribute): New function.
6933 2017-07-07  Torsten Duwe  <duwe@suse.de>
6935         * c-attribs.c (c_common_attribute_table): Add entry for
6936         "patchable_function_entry".
6938 2017-07-20  Nathan Sidwell  <nathan@acm.org>
6940         Remove TYPE_METHODS.
6941         * c-ada-spec.c (is_tagged_type, has_nontrivial_methods,
6942         dump_ada_template, print_ada_methods,
6943         print_ada_declaration): Member fns are on TYPE_FIELDS.
6945 2017-07-18  Nathan Sidwell  <nathan@acm.org>
6947         * c-warn.c (warn_for_memset): Use TYPE_{MIN,MAX}_VALUE.
6949 2017-07-14  David Malcolm  <dmalcolm@redhat.com>
6951         * c-common.c (try_to_locate_new_include_insertion_point): New
6952         function.
6953         (per_file_includes_t): New typedef.
6954         (added_includes_t): New typedef.
6955         (added_includes): New variable.
6956         (maybe_add_include_fixit): New function.
6957         * c-common.h (maybe_add_include_fixit): New decl.
6959 2017-07-10  Martin Sebor  <msebor@redhat.com>
6961         PR other/81345
6962         * c.opt (-Wstringop-overflow): Set defaults in LangEnabledBy.
6964 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
6966         * c-common.c (selftest::c_family_tests): New.
6967         * c-common.h (selftest::run_c_tests): Move decl to c/c-lang.h.
6968         (selftest::c_family_tests): New decl.
6970 2017-07-04  Marek Polacek  <polacek@redhat.com>
6972         PR c/81231
6973         * c-common.c (sync_resolve_size): Give error for pointers to incomplete
6974         types.
6976 2017-07-04  Marek Polacek  <polacek@redhat.com>
6978         * c-warn.c (warn_if_unused_value): Remove WITH_CLEANUP_EXPR handling.
6980 2017-06-28  Martin Liska  <mliska@suse.cz>
6982         PR ipa/81128
6983         * c-attribs.c (handle_alias_ifunc_attribute): Append ifunc alias
6984         to a function declaration.
6986 2017-06-28  Martin Liska  <mliska@suse.cz>
6988         PR driver/79659
6989         * c.opt: Add IntegerRange to various options.
6991 2017-06-26  Marek Polacek  <polacek@redhat.com>
6993         PR c/80116
6994         * c-common.h (warn_for_multistatement_macros): Declare.
6995         * c-warn.c: Include "c-family/c-indentation.h".
6996         (warn_for_multistatement_macros): New function.
6997         * c.opt (Wmultistatement-macros): New option.
6998         * c-indentation.c (guard_tinfo_to_string): No longer static.
6999         Change the parameter type to "enum rid".  Handle RID_SWITCH.
7000         * c-indentation.h (guard_tinfo_to_string): Declare.
7002 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
7004         * c-common.c (c_common_nodes_and_builtins): Use builtin_structptr_types.
7006 2017-06-15  Martin Sebor  <msebor@redhat.com>
7008         PR c++/80560
7009         * c.opt (-Wclass-memaccess): New option.
7011 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
7013         * c-opts.c (c_common_finish): Handle '-' special value to -MF.
7015 2017-06-13  Marek Polacek  <polacek@redhat.com>
7017         PR objc/80949
7018         * c-warn.c (do_warn_duplicated_branches): Return if any of the
7019         branches is null.
7021 2017-06-13  Martin Liska  <mliska@suse.cz>
7023         PR sanitize/78204
7024         * c-attribs.c (add_no_sanitize_value): New function.
7025         (handle_no_sanitize_attribute): Likewise.
7026         (handle_no_sanitize_address_attribute): Use the function.
7027         (handle_no_sanitize_thread_attribute): New function.
7028         (handle_no_address_safety_analysis_attribute): Use
7029         add_no_sanitize_value.
7030         (handle_no_sanitize_undefined_attribute): Likewise.
7031         * c-common.h: Declare new functions.
7032         * c-ubsan.c (ubsan_instrument_division): Use sanitize_flags_p.
7033         (ubsan_instrument_shift): Likewise.
7034         (ubsan_instrument_bounds): Likewise.
7035         (ubsan_maybe_instrument_array_ref): Likewise.
7036         (ubsan_maybe_instrument_reference_or_call): Likewise.
7038 2017-06-11  Jason Merrill  <jason@redhat.com>
7040         * c-ada-spec.c, c-pragma.c: Use id_equal.
7042 2017-06-04  Marek Polacek  <polacek@redhat.com>
7044         PR c/80919
7045         * c-format.c (matching_type_p): Return false if any of the types
7046         requires structural equality.
7048 2017-06-02  Martin Sebor  <msebor@redhat.com>
7050         PR c/80892
7051         * c-warn.c (conversion_warning): Use -Wconversion for integer
7052         conversion and -Wfloat-conversion for floating one.
7054 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7056         * c.opt (Wsizeof-pointer-div): New warning option.
7058 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
7060         * c.opt (Wcatch-value): New shortcut for Wcatch-value=1.
7061         (Wcatch-value=1): Enable by -Wall.
7063 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
7065         * c-format.c (gcc_cxxdiag_char_table): Add 'H' and 'I' to
7066         format_chars.
7067         * c.opt (fdiagnostics-show-template-tree): New option.
7068         (felide-type): New option.
7070 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
7072         * c.opt (Wcatch-value=): New C++ warning flag.
7074 2017-05-24  Nathan Sidwell  <nathan@acm.org>
7076         * c=common.c (field_decl_cmp, resort_field_decl_cmp): Adjust T
7077         const casts to avoid warning.
7079 2017-05-24  Martin Sebor  <msebor@redhat.com>
7081         PR c/80731
7082         * c-common.h (unsafe_conversion_p): Add a function argument.
7083         * c-common.c (unsafe_conversion_p): Same.
7084         Add type names and values to diagnostics.
7085         (scalar_to_vector): Adjust.
7086         * c-warn.c (constant_expression_error): Add a function argument.
7087         Add type names and values to diagnostics.
7088         (conversion_warning): Add a function argument.
7089         Add type names and values to diagnostics.
7090         (warnings_for_convert_and_check): Same.
7092 2017-05-19  Jason Merrill  <jason@redhat.com>
7094         * c-warn.c (match_case_to_enum_1): Don't warn about enums with no
7095         enumerators.
7097 2017-05-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7099         * c-format.c (locus): Move out of function scope,
7100         add GTY attribute.
7102 2017-05-19  Nathan Sidwell  <nathan@acm.org>
7104         * c-opts.c (class_dump_file, class_dump_flags): Delete.
7105         (c_common_parse_file): Remove class dump handling.
7106         (get_dump_info): Likewise.
7108 2017-05-19  Richard Biener  <rguenther@suse.de>
7110         PR c++/80593
7111         * c-warn.c (strict_aliasing_warning): Do not warn for accesses
7112         to alias-set zero memory.
7114 2017-05-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7116         * c-format.c (local_tree_type_node): Add GTY attribute.
7118 2017-05-18  Marek Polacek  <polacek@redhat.com>
7120         * c-common.c (c_common_type_for_size): Use NULL_TREE instead of 0.
7121         (c_common_fixed_point_type_for_size): Likewise.
7122         (c_common_type_for_mode): Likewise.
7123         (shorten_compare): Likewise.
7124         (c_promoting_integer_type_p): Use false/true instead of 0/1.
7125         * c-pragma.c (maybe_apply_renaming_pragma): Use NULL_TREE instead of 0.
7127 2017-05-18  Marek Polacek  <polacek@redhat.com>
7129         * c-common.c (self_promoting_args_p): Change the return type to bool.
7130         Use false/true instead of 0/1.
7131         * c-common.h (self_promoting_args_p): Update.
7133 2017-05-17  Marek Polacek  <polacek@redhat.com>
7135         * c-common.c: Use NULL_TREE instead of 0 where appropriate.
7136         * c-warn.c: Likewise.
7138 2017-05-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
7140         Implement new C++ intrinsics __is_assignable and __is_constructible.
7141         * c-common.c (__is_assignable, __is_constructible): New.
7142         * c-common.h (RID_IS_ASSIGNABLE, RID_IS_CONSTRUCTIBLE): Likewise.
7144 2017-05-17  Martin Liska  <mliska@suse.cz>
7146         * c-common.h: Introduce dump_flags_t type and
7147         use it instead of int type.
7148         * c-gimplify.c (c_genericize): Likewise.
7149         * c-opts.c: Likewise.
7151 2017-05-17  Marek Polacek  <polacek@redhat.com>
7153         * c-common.c (c_save_expr): Remove.
7154         (c_common_truthvalue_conversion): Remove a call to c_save_expr.
7155         * c-common.h (c_save_expr): Remove declaration.
7157 2017-05-09  Volker Reichelt  <v.reichelt@netcologne.de>
7159         PR c/35441
7160         * c-pretty-print.c (c_pretty_printer::expression): Handle MAX_EXPR,
7161         MIN_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, LROTATE_EXPR, RROTATE_EXPR.
7162         (c_pretty_printer::postfix_expression): Handle MAX_EXPR, MIN_EXPR.
7163         (c_pretty_printer::multiplicative_expression): Handle EXACT_DIV_EXPR,
7164         RDIV_EXPR.
7165         (pp_c_shift_expression): Handle LROTATE_EXPR, RROTATE_EXPR.
7167 2017-05-09  Marek Polacek  <polacek@redhat.com>
7169         PR c/80525
7170         * c-warn.c (unwrap_c_maybe_const): New.
7171         (warn_logical_operator): Call it.
7173 2017-05-09  Nathan Sidwell  <nathan@acm.org>
7175         * c-common.c (c_register_builtin_type): Use pushdecl lang_hook.
7176         * c-common.h (pushdecl_top_level, pushdecl): Don't declare here.
7178 2017-05-08  Martin Sebor  <msebor@redhat.com>
7180         PR translation/80280
7181         * c-format.h (struct format_flag_spec): Add new member.
7182         (T89_T): New macro.
7183         * c-format.c (local_tree_type_node): New global.
7184         (printf_flag_specs, asm_fprintf_flag_spec): Initialize new data.
7185         (gcc_diag_flag_specs, scanf_flag_specs, strftime_flag_specs): Ditto.
7186         (strfmon_flag_specs): Likewise.
7187         (gcc_diag_char_table, gcc_cdiag_char_table): Split up specifiers
7188         with distinct quoting properties.
7189         (gcc_tdiag_char_table, gcc_cxxdiag_char_table): Same.
7190         (flag_chars_t::validate): Add argument and handle bad quoting.
7191         (check_format_info_main): Handle quoting problems.
7192         (init_dynamic_diag_info): Simplify.
7194 2017-05-08  Jason Merrill  <jason@redhat.com>
7196         * c-opts.c (c_common_post_options): Update defaults for
7197         flag_abi_version and flag_abi_compat_version.
7199 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
7201         * c-common.c (c_cpp_error): Replace report_diagnostic
7202         with diagnostic_report_diagnostic.
7204 2017-05-04  Martin Sebor  <msebor@redhat.com>
7206         PR translation/80280
7207         * c-attribs.c (handle_alias_ifunc_attribute): Quote a %D directive.
7208         (handle_weakref_attribute): Same.
7210 2017-05-03  Nathan Sidwell  <nathan@acm.org>
7212         Canonicalize canonical type hashing
7213         * c-common.c (complete_array_type): Use type_hash_canon.
7215 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
7217         PR c++/80038
7218         * c-common.h (cilk_gimplify_call_params_in_spawned_fn): Remove
7219         prototype.
7220         (cilk_install_body_pedigree_operations): Likewise.
7221         * cilk.c (cilk_set_spawn_marker): Mark functions that should be
7222         detatched.
7223         (cilk_gimplify_call_params_in_spawned_fn): Remove.
7224         (cilk_install_body_pedigree_operations): Likewise.
7225         (gimplify_cilk_spawn): Add EXPR_STMT and CLEANUP_POINT_EXPR
7226         unwrapping.
7228 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
7230         PR c++/80534
7231         * c-common.c (complete_array_type): Only hash TYPE_TYPELESS_STORAGE
7232         flag on non-aggregate element types.
7234 2017-04-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7236         * c-common.c (c_type_hasher, type_hash_table): Remove.
7237         (c_common_get_alias_set): Remove unreachable code.
7238         * c-opts.c (c_common_post_options): Make sure cc1 takes only one file.
7240 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
7242         * c.opt (Wextra-semi): New C++ warning flag.
7244 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
7246         PR middle-end/80423
7247         * c-common.c (complete_array_type): Preserve TYPE_TYPELESS_STORAGE.
7249 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
7251         PR middle-end/79788
7252         PR middle-end/80375
7253         * c-common.c (c_common_type_for_mode): Don't handle
7254         widest_*_literal_type_node here.
7255         c_common_signed_or_unsigned_type): Likewise.
7256         (c_common_nodes_and_builtins): Set widest_*_literal_type_node
7257         to *intTI_type_node or *intDI_type_node depending on whether
7258         TImode is supported by the target or not.
7260 2017-04-10  Martin Liska  <mliska@suse.cz>
7262         PR sanitizer/80350
7263         * c-ubsan.c (ubsan_instrument_shift): Evaluate RHS before
7264         doing an UBSAN check.
7266 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
7268         * c-warn.c (do_warn_double_promotion): Fix typo in comment.
7270 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
7272         PR c++/79572
7273         * c-ubsan.h (ubsan_maybe_instrument_reference): Change argument to
7274         tree *.
7275         * c-ubsan.c (ubsan_maybe_instrument_reference): Likewise.  Handle
7276         not just NOP_EXPR to REFERENCE_TYPE, but also INTEGER_CST with
7277         REFERENCE_TYPE.
7279 2017-03-31  David Malcolm  <dmalcolm@redhat.com>
7281         PR documentation/78732
7282         * c.opt (Wendif-labels): Fix description to refer to
7283         #else rather than #elif.
7285 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
7287         PR libstdc++/80251
7288         * c-common.h (enum rid): Add RID_IS_AGGREGATE.
7289         * c-common.c (c_common_reswords): Add __is_aggregate trait.
7291 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
7293         PR middle-end/80162
7294         * c-common.c (c_common_mark_addressable_vec): Don't set
7295         TREE_ADDRESSABLE on DECL_HARD_REGISTER.
7297 2017-03-21  Martin Sebor  <msebor@redhat.com>
7299         PR c++/79548
7300         * c-common.c (set_underlying_type): Mark type used only when
7301         original del is declared unused.
7303 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
7305         PR translation/79848
7306         * c-format.c (check_format_string): Simplify uses of "%<%s%>" to
7307         "%qs".
7309 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
7311         PR c/79921
7312         * c-indentation.c (warn_for_misleading_indentation): Remove parens
7313         from inform's message, so that xgettext can locate it.
7315 2017-03-09  Marek Polacek  <polacek@redhat.com>
7317         PR c++/79962
7318         PR c++/79984
7319         * c-attribs.c (handle_nonnull_attribute): Save the result of default
7320         conversion to the attribute list.
7322 2017-03-09  Martin Liska  <mliska@suse.cz>
7324         * c-ada-spec.c (macro_length): Increment value instead of a pointer.
7326 2017-03-03  Jason Merrill  <jason@redhat.com>
7328         * c.opt (Wnoexcept-type): New.
7330 2017-03-02  Richard Biener  <rguenther@suse.de>
7332         PR c/79756
7333         * c-common.c (c_common_mark_addressable_vec): Look through
7334         C_MAYBE_CONST_EXPR.
7336 2017-02-28  Martin Liska  <mliska@suse.cz>
7338         * c.opt: Replace space with tabular for options of <number>
7339         type.
7341 2017-02-28  Martin Liska  <mliska@suse.cz>
7343         * c.opt: Fix --help=option -Q for options which are of
7344         an enum type.
7346 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
7348         PR c++/79588
7349         * c-common.c (check_function_restrict): New function.
7350         (check_function_arguments): Add FNDECL argument.  Call
7351         check_function_restrict if -Wrestrict.
7352         * c-warn.c (warn_for_restrict): Remove ARGS argument, add ARGARRAY
7353         and NARGS.  Use auto_vec for ARG_POSITIONS, simplify.
7354         * c-common.h (check_function_arguments): Add FNDECL argument.
7355         (warn_for_restrict): Remove ARGS argument, add ARGARRAY and NARGS.
7357 2017-02-24  Eric Botcazou  <ebotcazou@adacore.com>
7359         * c-ada-spec.c (dump_ada_function_declaration): Add comment about the
7360         treatment of parameters with pointer-to-tagged type and tidy up.
7361         (print_ada_methods): Remove the special treatment of C++ static member
7362         functions.
7364 2017-02-22  Martin Liska  <mliska@suse.cz>
7366         * c.opt: Replace inequality signs with square brackets
7367         for -Wnornalized.
7369 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
7371         PR c++/79641
7372         * c-attribs.c (handle_mode_attribute): Use build_qualified_type to
7373         preserve quals.
7375 2017-02-17  Joseph Myers  <joseph@codesourcery.com>
7377         * c-cppbuiltin.c (builtin_define_float_constants): Define
7378         __DECIMAL_DIG__ to the value for long double.
7380 2017-02-15  Marek Polacek  <polacek@redhat.com>
7382         PR c/79515
7383         * c-warn.c (do_warn_double_promotion): Don't warn if an invalid
7384         conversion has occured.
7386 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
7388         * c-common.c (c_common_reswords): Add "__RTL".
7389         * c-common.h (enum rid): Add RID_RTL.
7391 2017-01-20  Marek Polacek  <polacek@redhat.com>
7393         PR c/64279
7394         * c-common.h (do_warn_duplicated_branches_r): Declare.
7395         * c-gimplify.c (c_genericize): Walk the function tree calling
7396         do_warn_duplicated_branches_r.
7397         * c-warn.c (expr_from_macro_expansion_r): New.
7398         (do_warn_duplicated_branches): New.
7399         (do_warn_duplicated_branches_r): New.
7400         * c.opt (Wduplicated-branches): New option.
7402 2017-01-17  David Malcolm  <dmalcolm@redhat.com>
7404         PR c++/71497
7405         * c-indentation.c (warn_for_misleading_indentation): Use the past
7406         subjunctive in the note.
7408 2017-01-17  Aldy Hernandez  <aldyh@redhat.com>
7410         PR c/79116
7411         * array-notation-common.c (cilkplus_extract_an_triplets): Convert
7412         start type to integer_type.
7414 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
7416         PR driver/49726
7417         * c.opt (gen-decls): Add Driver flag.
7419 2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
7421         Revert:
7422         2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
7424         PR c++/71737
7425         * c-common.c (set_underlying_type): Always set DECL_ORIGINAL_TYPE.
7427 2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
7429         PR c++/71737
7430         * c-common.c (set_underlying_type): Always set DECL_ORIGINAL_TYPE.
7432 2017-01-12  Martin Sebor  <msebor@redhat.com>
7434         (-Wformat-overflow): ...to this.
7436 2017-01-11  Martin Sebor  <msebor@redhat.com>
7438         PR c/78768
7439         * c.opt (-Walloca-larger-than, -Wformat-length, -Wformat-truncation):
7440         Also enable for LTO.
7442 2017-01-10  Jason Merrill  <jason@redhat.com>
7444         Implement P0195R2, C++17 variadic using.
7445         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_variadic_using.
7447 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
7449         PR translation/79019
7450         PR translation/79020
7451         * c.opt (Wnormalized=): Fix typo in description.
7453 2017-01-08  Martin Sebor  <msebor@redhat.com>
7455         PR middle-end/77708
7456         * c.opt (-Wformat-truncation): New option.
7458 2017-01-06  Alexandre Oliva  <aoliva@redhat.com>
7460         * c-pretty-print.c (pp_c_tree_decl_identifier): Convert 16-bit
7461         value to unsigned short to fit in 4 hex digits without
7462         warnings.
7464 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
7466         * c.opt (fsso-struct): Add 'native' value.
7468 2017-01-05  Martin Liska  <mliska@suse.cz>
7470         PR pch/78970
7471         * c-opts.c (c_common_post_options): Reject '-' filename for a precompiled
7472         header.
7474 2017-01-04  Marek Polacek  <polacek@redhat.com>
7476         PR c++/64767
7477         * c.opt (Wpointer-compare): New option.
7479 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
7481         PR driver/78957
7482         * c.opt (fsso-struct=): Add RejectNegative.
7484 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
7486         Update copyright years.
7488 2016-12-29  Martin Liska  <mliska@suse.cz>
7490         PR c/78933
7491         * c.opt (strong-eval-order): Add RejectNegative keyword.
7493 2016-12-22  Jason Merrill  <jason@redhat.com>
7495         Implement P0522R0, matching of template template arguments.
7496         * c-cppbuiltin.c (c_cpp_builtins): Define
7497         __cpp_template_template_args.
7499 2016-12-21  Jakub Jelinek  <jakub@redhat.com>
7501         PR bootstrap/78817
7502         * c-common.c (struct nonnull_arg_ctx): New type.
7503         (check_function_nonnull): Return bool instead of void.  Use
7504         nonnull_arg_ctx as context rather than just location_t.
7505         (check_nonnull_arg): Adjust for the new context type, set
7506         warned_p to true if a warning has been diagnosed.
7507         (check_function_arguments): Return bool instead of void.
7508         * c-common.h (check_function_arguments): Adjust prototype.
7510 2016-12-21  Jason Merrill  <jason@redhat.com>
7512         * c.opt (-fnew-ttp-matching): New flag.
7513         * c-opts.c (c_common_post_options): Default on if -std=c++1z.
7515 2016-12-14  Martin Jambor  <mjambor@suse.cz>
7517         * c-omp.c: Include omp-general.h instead of omp-low.h.
7518         (c_finish_oacc_wait): Adjusted call to find_omp_clause to use its new
7519         name.
7521 2016-12-14  Martin Sebor  <msebor@redhat.com>
7523         PR c/17308
7524         * c-common.c (check_nonnull_arg): Disable when optimization
7525         is enabled.
7527 2016-12-12  Marek Polacek  <polacek@redhat.com>
7529         PR c++/78647
7530         * c-common.c (attribute_fallthrough_p): Return false for
7531         error_mark_node.
7533 2016-12-08  Martin Sebor  <msebor@redhat.com>
7535         PR c/78284
7536         * c.opt (-Walloc-zero, -Walloc-size-larger-than): New options.
7538 2016-12-08  Martin Sebor  <msebor@redhat.com>
7540         PR c/78165
7541         * c-pretty-print (pp_c_integer_constant): Avoid formatting type
7542         suffix.
7544 2016-12-07  Martin Sebor  <msebor@redhat.com>
7546         PR c/53562
7547         PR middle-end/77784
7548         PR middle-end/78149
7549         PR middle-end/78138
7550         * c.opt (-Wstringop-overflow): New option.
7552 2016-12-02  Maxim Ostapenko  <m.ostapenko@samsung.com>
7554         * c-attribs.c (asan odr indicator): New attribute.
7555         (handle_asan_odr_indicator_attribute): New function.
7557 2016-11-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7559         * c-common.c (c_common_nodes_and_builtins): Remove initialization of
7560         ptrdiff_type_node;
7562 2016-11-23  James Greenhalgh  <james.greenhalgh@arm.com>
7564         * c-common.c (excess_precision_mode_join): New.
7565         (c_ts18661_flt_eval_method): New.
7566         (c_c11_flt_eval_method): Likewise.
7567         (c_flt_eval_method): Likewise.
7568         * c-common.h (excess_precision_mode_join): New.
7569         (c_flt_eval_method): Likewise.
7570         * c-cppbuiltin.c (c_cpp_flt_eval_method_iec_559): New.
7571         (cpp_iec_559_value): Call it.
7572         (c_cpp_builtins): Modify logic for __LIBGCC_*_EXCESS_PRECISION__,
7573         call c_flt_eval_method to set __FLT_EVAL_METHOD__ and
7574         __FLT_EVAL_METHOD_TS_18661_3__.
7576 2016-11-23  James Greenhalgh  <james.greenhalgh@arm.com>
7578         * c-opts.c (c_common_post_options): Add logic to handle the default
7579         case for -fpermitted-flt-eval-methods.
7581 2016-11-23  Paolo Bonzini  <bonzini@gnu.org>
7583         * c.opt (Wexpansion-to-defined): New.
7585 2016-11-23  Jakub Jelinek  <jakub@redhat.com>
7587         PR target/78451
7588         * c-pragma.c (handle_pragma_target): Don't replace
7589         current_target_pragma, but chainon the new args to the current one.
7591 2016-11-22  Nathan Sidwell  <nathan@acm.org>
7593         * array-notation-common.c (cilkplus_extract_an_trplets): Fix
7594         indentation and formatting.
7596 2016-11-21  Martin Sebor  <msebor@redhat.com>
7598         * c.opt (-fprintf-return-value): Enable by default.
7600 2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7602         PR c++/71973
7603         * c.opt (-Wbuiltin-declaration-mismatch): New warning.
7604         * c-common.c (c_common_nodes_and_builtins): Initialize
7605         const_tm_ptr_type_node.
7607 2016-11-16  Marek Polacek  <polacek@redhat.com>
7609         PR c/78285
7610         * c-common.c (c_add_case_label): Turn error_at calls into inform.
7612 2016-11-14  Jakub Jelinek  <jakub@redhat.com>
7614         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings.
7616 2016-11-14  Prasad Ghangal  <prasad.ghangal@gmail.com>
7617             Richard Biener  <rguenther@suse.de>
7619         * c-common.h (c_common_resword): Add RID_GIMPLE, RID_PHI types.
7620         * c-common.h (enum rid): Add RID_GIMPLE, RID_PHI.
7621         * c.opt (fgimple): New option.
7623 2016-11-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7625         PR c/35503
7626         * c-common.h (warn_for_restrict): Declare.
7627         * c-warn.c: Include gcc-rich-location.h.
7628         (warn_for_restrict): New function.
7629         * c-format.c (gcc_tdiag_char_table): Add entry for "Z" specifier.
7630         (gcc_cdiag_char_table): Likewise.
7631         (gcc_cxxdiag_char_table): Likewise.
7632         * c.opt (Wrestrict): New option.
7634 2016-11-13  Eric Botcazou  <ebotcazou@adacore.com>
7636         * c-ada-spec.c (print_ada_declaration): For typedef declarations, look
7637         for nested types only if the type is a record or union and dump SLOC.
7639 2016-11-09  Jason Merrill  <jason@redhat.com>
7641         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_template_auto.
7643 2016-11-09  Jakub Jelinek  <jakub@redhat.com>
7645         * c-ubsan.c (ubsan_instrument_shift): Handle split
7646         -fsanitize=shift-base and -fsanitize=shift-exponent.
7648 2016-11-07  Jason Merrill  <jason@redhat.com>
7650         * c.opt (Wc++1z-compat): New.
7651         * c-cppbuiltin.c (c_cpp_builtins): Add __cpp_noexcept_function_type.
7653 2016-11-07  Martin Liska  <mliska@suse.cz>
7655         * c-warn.c (warn_for_unused_label): Save all labels used
7656         in goto or in &label.
7658 2016-11-03  Jason Merrill  <jason@redhat.com>
7660         * c-cppbuiltin.c (c_cpp_builtins): Correct
7661         __cpp_inheriting_constructors.
7663 2016-11-01  Jason Merrill  <jason@redhat.com>
7665         * c-cppbuiltin.c (c_cpp_builtins): Update
7666         __cpp_inheriting_constructors.
7668         * c.opt (-fnew-inheriting-ctors): New.
7669         * c-opts.c: Default to on for ABI 11+.
7671 2016-10-31  Jakub Jelinek  <jakub@redhat.com>
7673         PR c++/77948
7674         * c.opt (fext-numeric-literals): Add Var and Init.
7675         * c-opts.c (c_common_handle_option): Don't clear
7676         cpp_opts->ext_numeric_literals for -std=c++{11,14,1z}.
7677         (c_common_post_options): Clear it here if not set
7678         explicitly.
7680 2016-10-28  Aldy Hernandez  <aldyh@redhat.com>
7682         PR debug/77773
7683         * c-pretty-print.c (simple_type_specifier): Do not dereference `t'
7684         if NULL.
7686 2016-10-25  Jakub Jelinek  <jakub@redhat.com>
7688         * c-common.h (enum rid): Add RID_BUILTIN_LAUNDER.
7689         * c-common.c (c_common_reswords): Add __builtin_launder.
7691 2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7693         * c-common.c (c_common_truthvalue_conversion): Warn for
7694         multiplications in boolean context.  Fix the quoting of '<<' and '<'
7695         in the shift warning.
7697 2016-10-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7699         * c-common.c (c_common_truthvalue_conversion): Fix the comment.
7701 2016-10-20  Jason Merrill  <jason@redhat.com>
7703         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_concepts value.
7705 2016-10-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7707         * c-common.c (c_common_truthvalue_conversion): Warn only for signed
7708         integer shift ops in boolean context.
7710 2016-10-18  Aldy Hernandez  <aldyh@redhat.com>
7712         * c.opt (Walloca): New.
7713         (Walloca-larger-than=): New.
7714         (Wvla-larger-than=): New.
7716 2016-10-17  Marek Polacek  <polacek@redhat.com>
7718         * c-warn.c (find_array_ref_with_const_idx_r): Remove parameter names.
7719         Return immediately when finding a match.
7720         (warn_tautological_cmp): Remove a boolean variable that is no longer
7721         needed.
7723 2016-10-17  Marek Polacek  <polacek@redhat.com>
7725         * c-attribs.c: New file.
7726         * c-common.c: Move attributes handling to c-attribs.c.
7727         (get_nonnull_operand): No longer static.
7728         * c-common.h: Move the declarations from c-attribs.c to its own section.
7730 2016-10-14  Jason Merrill  <jason@redhat.com>
7732         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_aggregate_bases
7733         and __cpp_deduction_guides.
7735 2016-10-13  Jason Merrill  <jason@redhat.com>
7737         * c-cppbuiltin.c (c_cpp_builtins): Add __cpp_inline_variables.
7739 2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7741         * c-cppbuiltin.c: Include memmodel.h.
7742         * c-opts.c: Likewise.
7743         * c-pragma.c: Likewise.
7744         * c-warn.c: Likewise.
7746 2016-10-12  Jakub Jelinek  <jakub@redhat.com>
7748         * c.opt (Wextra): Add as C/C++/ObjC/ObjC++ option.
7749         (Wimplicit-fallthrough=): Enable for these languages by -Wextra.
7750         * c-opts.c (sanitize_cpp_opts): Initialize
7751         cpp_opts->cpp_warn_implicit_fallthrough.
7753 2016-10-11  Marek Polacek  <polacek@redhat.com>
7755         * c-common.c (warning_candidate_p): Change the return type to bool
7756         and return true/false instead of 1/0.
7757         (vector_mode_valid_p): Likewise.
7759 2016-10-11  Marek Polacek  <polacek@redhat.com>
7761         * c-common.c (fold_for_warn): No longer static.
7762         (bool_promoted_to_int_p): Likewise.
7763         (c_common_get_narrower): Likewise.
7764         (constant_expression_warning): Move to c-warn.c.
7765         (constant_expression_error): Likewise.
7766         (overflow_warning): Likewise.
7767         (warn_logical_operator): Likewise.
7768         (find_array_ref_with_const_idx_r): Likewise.
7769         (warn_tautological_cmp): Likewise.
7770         (expr_has_boolean_operands_p): Likewise.
7771         (warn_logical_not_parentheses): Likewise.
7772         (warn_if_unused_value): Likewise.
7773         (strict_aliasing_warning): Likewise.
7774         (sizeof_pointer_memaccess_warning): Likewise.
7775         (check_main_parameter_types): Likewise.
7776         (conversion_warning): Likewise.
7777         (warnings_for_convert_and_check): Likewise.
7778         (match_case_to_enum_1): Likewise.
7779         (match_case_to_enum): Likewise.
7780         (c_do_switch_warnings): Likewise.
7781         (warn_for_omitted_condop): Likewise.
7782         (readonly_error): Likewise.
7783         (lvalue_error): Likewise.
7784         (invalid_indirection_error): Likewise.
7785         (warn_array_subscript_with_type_char): Likewise.
7786         (warn_about_parentheses): Likewise.
7787         (warn_for_unused_label): Likewise.
7788         (warn_for_div_by_zero): Likewise.
7789         (warn_for_memset): Likewise.
7790         (warn_for_sign_compare): Likewise.
7791         (do_warn_double_promotion): Likewise.
7792         (do_warn_unused_parameter): Likewise.
7793         (record_locally_defined_typedef): Likewise.
7794         (maybe_record_typedef_use): Likewise.
7795         (maybe_warn_unused_local_typedefs): Likewise.
7796         (maybe_warn_bool_compare): Likewise.
7797         (maybe_warn_shift_overflow): Likewise.
7798         (warn_duplicated_cond_add_or_warn): Likewise.
7799         (diagnose_mismatched_attributes): Likewise.
7800         * c-common.h: Move the declarations from c-warn.c to its own section.
7801         * c-warn.c: New file.
7803 2016-10-08  Jason Merrill  <jason@redhat.com>
7805         * c-common.c (c_common_truthvalue_conversion): Don't distribute
7806         into COND_EXPR in C++.
7808 2016-10-08  Jakub Jelinek  <jakub@redhat.com>
7810         * c-lex.c (c_lex_with_flags) <case CPP_COMMENT>: For CPP_COMMENT
7811         token with PREV_FALLTHROUGH, skip all following CPP_PADDING and
7812         CPP_COMMENT tokens and set add_flags to PREV_FALLTHROUGH afterwards.
7814 2016-10-07  Jakub Jelinek  <jakub@redhat.com>
7816         Implement LWG2296 helper intrinsic
7817         * c-common.h (enum rid): Add RID_ADDRESSOF.
7818         * c-common.c (c_common_reswords): Add __builtin_addressof.
7820 2016-10-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7822         PR c++/77700
7823         * c-common.c (c_common_truthvalue_conversion): Warn also for
7824         suspicious enum values in boolean context.
7826 2016-10-06  Jakub Jelinek  <jakub@redhat.com>
7828         Implement P0258R2 - helper for C++17
7829         std::has_unique_object_representations trait
7830         * c-common.h (enum rid): Add RID_HAS_UNIQUE_OBJ_REPRESENTATIONS.
7831         * c-common.c (c_common_reswords): Add
7832         __has_unique_object_representations.
7834 2016-10-05  Jakub Jelinek  <jakub@redhat.com>
7836         PR sanitizer/66343
7837         * c-ubsan.c (ubsan_instrument_return): Don't call
7838         initialize_sanitizer_builtins here.
7840 2016-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7842         * c-common.c (c_common_truthvalue_conversion): Warn also for suspicious
7843         conditional expression in boolean context when only one arm is
7844         non-boolean.
7846 2016-10-05  Jakub Jelinek  <jakub@redhat.com>
7848         PR sanitizer/77823
7849         * c-ubsan.c (ubsan_instrument_shift): Return NULL_TREE if type0
7850         is not integral.
7852         * c-common.c (c_common_reswords): Update comment for C++11.
7854 2016-10-04  Jason Merrill  <jason@redhat.com>
7856         * c-common.c (make_tree_vector_from_ctor): New.
7857         * c-common.h: Declare it.
7859 2016-10-04  Jakub Jelinek  <jakub@redhat.com>
7861         * c-cppbuiltin.c (c_cpp_builtins): Don't define
7862         __LIBGCC_JCR_SECTION_NAME__.
7864 2016-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7866         * c-common.c (c_common_truthvalue_conversion): Warn for suspicious
7867         left shift in boolean context.
7869 2016-09-29  Jakub Jelinek  <jakub@redhat.com>
7871         Implement P0001R1 - C++17 removal of register storage class specifier
7872         * c.opt (Wregister): New warning.
7873         * c-opts.c (c_common_post_options): Enable -Wregister by
7874         default for C++17.
7876 2016-09-29  James Greenhalgh  <james.greenhalgh@arm.com>
7878         * c-opts.c (c_common_post_options): Remove special case for
7879         TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard
7880         in C++.
7882 2016-09-27  Jakub Jelinek  <jakub@redhat.com>
7884         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_capture_star_this for
7885         -std=c++1z.
7887         * c-ada-spec.c (print_ada_declaration): Remove break after return.
7889 2016-09-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7891         * c-common.c: Include memmodel.h.
7893 2016-09-26  Marek Polacek  <polacek@redhat.com>
7895         * c-lex.c (c_common_has_attribute): Handle attribute fallthrough.
7897 2016-09-26  Marek Polacek  <polacek@redhat.com>
7899         PR c/7652
7900         * c-common.c (c_common_attribute_table): Add fallthrough attribute.
7901         (handle_fallthrough_attribute): New function.
7902         (attribute_fallthrough_p): New function.
7903         * c-common.h (attribute_fallthrough_p): Declare.
7905 2016-09-24  Marek Polacek  <polacek@redhat.com>
7907         PR c/77490
7908         * c.opt (Wbool-operation): New.
7910 2016-09-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7912         * c-common.c (c_common_truthvalue_conversion): Inhibit
7913         Wint-in-bool-context warning with from_macro_definition_at.
7914         Mention the expression will always evaluate to true.
7916 2016-09-21  Martin Sebor  <msebor@redhat.com>
7918         PR bootstrap/77676
7919         * c.opt (fprintf-return-value): Temporarily initialize to zero
7920         to unblock bootstrap failures.
7922 2016-09-21  Jakub Jelinek  <jakub@redhat.com>
7924         PR c++/77651
7925         * c.opt (Waligned-new=): Add RejectNegative.
7926         (faligned-new=): Likewise.  Spelling fix - change
7927         aligned_new_threshhold to aligned_new_threshold.
7928         * c-cppbuiltin.c (c_cpp_builtins): Change aligned_new_threshhold
7929         to aligned_new_threshold.
7931 2016-09-20  Martin Sebor  <msebor@redhat.com>
7933         PR middle-end/49905
7934         * c.opt: Add -Wformat-length and -fprintf-return-value.
7936 2016-09-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7938         PR c++/77434
7939         * c.opt (Wint-in-bool-context): New warning.
7940         * c-common.c (c_common_truthvalue_conversion): Warn on integer
7941         constants in boolean context.
7943 2016-09-19  Joseph Myers  <joseph@codesourcery.com>
7945         * c-common.c (max_align_t_align): Also consider alignment of
7946         float128_type_node.
7948 2016-09-15  Jason Merrill  <jason@redhat.com>
7950         * c-common.c (check_cxx_fundamental_alignment_constraints): Check
7951         DECL_EXTERNAL.
7953 2016-09-14  Jason Merrill  <jason@redhat.com>
7955         * c-common.c (check_cxx_fundamental_alignment_constraints): Don't
7956         limit FIELD_DECL, either.
7958 2016-09-14  Marek Polacek  <polacek@redhat.com>
7960         * c-common.c (c_common_truthvalue_conversion): Use false instead of 0.
7961         * c-common.h (build_unary_op): Change nonconvert parameter type to bool.
7962         * c-omp.c (c_finish_omp_atomic): Use false instead of 0.
7964 2016-09-13  David Malcolm  <dmalcolm@redhat.com>
7966         * c-common.c (warn_logical_not_parentheses): Replace
7967         rich_location::add_fixit_insert calls with add_fixit_insert_before
7968         and add_fixit_insert_after, eliminating the "next_loc" calculation.
7970 2016-09-13  Jason Merrill  <jason@redhat.com>
7971             Tom de Vries  <tom@codesourcery.com>
7973         PR c++/77427
7974         * c-common.c (set_underlying_type): Don't treat array as builtin type.
7976 2016-09-13  Jason Merrill  <jason@redhat.com>
7978         * c-common.c (check_cxx_fundamental_alignment_constraints): Don't
7979         limit types at all.
7981 2016-09-12  Jason Merrill  <jason@redhat.com>
7983         * c-common.c (check_cxx_fundamental_alignment_constraints): Fix
7984         bit/byte confusion, allow large alignment for types.
7986 2016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7988         PR c++/77496
7989         * c-common.c (warn_for_omitted_condop): Also warn for boolean data.
7991 2016-09-12  David Malcolm  <dmalcolm@redhat.com>
7993         PR c/72858
7994         * c-format.c (argument_parser::check_argument_type): Add params
7995         "type_start" and "conversion_char".  Use the former to generate
7996         offset_to_type_start and pass it and conversion_char to
7997         check_format_types.
7998         (check_format_info_main): Capture the start of the type
7999         information as "type_start", and pass it an format_char
8000         to arg_parser.check_argument_type.
8001         (check_format_types): Provide an example in the leading comment.
8002         Add params "offset_to_type_start" and "conversion_char"; pass
8003         them to format_type_warning calls.
8004         (test_get_modifier_for_format_len): Likewise.
8005         (matching_type_p): New function.
8006         (get_format_for_type): Add param "conversion_char" and move
8007         implementation into...
8008         (get_format_for_type_1): ...new function, called twice.
8009         Use new function matching_type_p rather than checking for
8010         TYPE_CANONICAL equality.
8011         (get_corrected_substring): New function.
8012         (format_type_warning): Provide an example in the leading comment.
8013         Add params "offset_to_type_start" and "conversion_char".  Replace
8014         call to get_format_for_type with call to get_corrected_substring
8015         and move rejection of hints for widths/precisions there.
8016         (assert_format_for_type_streq): Add param "conversion_char".
8017         (ASSERT_FORMAT_FOR_TYPE_STREQ): Add param CONVERSION_CHAR.
8018         (test_get_format_for_type_printf): Add conversion chars to the
8019         tests, adding coverage for various combinations of integer
8020         vs double conversions, and for preserving octal and hexadecimal
8021         conversions.
8022         (test_get_format_for_type_scanf): Add conversion chars to the
8023         tests.
8025 2016-09-10  Tom de Vries  <tom@codesourcery.com>
8027         PR C/71602
8028         * c-common.c (build_va_arg): Handle more strict
8029         targetm.canonical_va_list_type.  Replace first argument type error with
8030         assert.
8032 2016-09-09  Martin Sebor  <msebor@redhat.com>
8034         PR c/77520
8035         PR c/77521
8036         * c-format.c (argument_parser::find_format_char_info): Use %qc
8037         format directive unconditionally.
8039 2016-09-09  Jason Merrill  <jason@redhat.com>
8041         Implement C++17 new of over-aligned types.
8042         * c.opt: Add -faligned-new and -Waligned-new.
8043         * c-common.c (max_align_t_align): Split out from...
8044         (cxx_fundamental_alignment_p): ...here.
8045         * c-common.h: Declare it.
8046         * c-cppbuiltin.c (c_cpp_builtins): Handle aligned new.
8048 2016-09-09  Joseph Myers  <joseph@codesourcery.com>
8050         * c-cppbuiltin.c (builtin_define_type_width): New function.
8051         (builtin_define_stdint_macros, c_cpp_builtins): Define type width
8052         macros.
8054 2016-09-07  David Malcolm  <dmalcolm@redhat.com>
8056         * c-common.c (get_cpp_ttype_from_string_type): Handle being passed
8057         a POINTER_TYPE.
8058         (substring_loc::get_location): Move to substring-locations.c,
8059         keeping implementation as...
8060         (c_get_substring_location): New function, from the above, reworked
8061         to use accessors rather than member lookup.
8062         * c-common.h (class substring_loc): Move to substring-locations.h,
8063         replacing with a forward decl.
8064         (c_get_substring_location): New decl.
8065         * c-format.c: Include "substring-locations.h".
8066         (format_warning_va): Move to substring-locations.c.
8067         (format_warning_at_substring): Likewise.
8069 2016-09-06  Martin Sebor  <msebor@redhat.com>
8071         PR c/77336
8072         * c-format.c (check_function_format): Avoid issuing warnings for
8073         functions unless they call format functions with non-constant
8074         format strings.
8076 2016-09-06  Richard Biener  <rguenther@suse.de>
8078         PR c/77450
8079         * c-common.c (c_common_mark_addressable_vec): Handle
8080         COMPOUND_LITERAL_EXPR.
8082 2016-09-05  Marek Polacek  <polacek@redhat.com>
8084         PR c/77423
8085         * c-common.c (bool_promoted_to_int_p): New function.
8086         (expr_has_boolean_operands_p): New function.
8087         (warn_logical_not_parentheses): Return if expr_has_boolean_operands_p.
8088         (maybe_warn_bool_compare): Use bool_promoted_to_int_p.
8090 2016-09-04  Tom de Vries  <tom@codesourcery.com>
8092         revert:
8093         2016-08-29  Tom de Vries  <tom@codesourcery.com>
8095         * c-common.c (build_va_arg): Replace first argument type error
8096         with assert.
8098 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
8100         PR c/65467
8101         * c-omp.c (c_finish_omp_atomic): Reject _Atomic qualified expressions.
8102         (c_finish_omp_for): Reject _Atomic qualified iterators.
8104 2016-09-01  Martin Sebor  <msebor@redhat.com>
8106         * c-ada-spec.c (dump_ada_function_declaration): Increase buffer
8107         size to guarantee it fits the output of the formatted function
8108         regardless of its arguments.
8110 2016-09-01  Marek Polacek  <polacek@redhat.com>
8112         PR c/7652
8113         * c-common.c (resolve_overloaded_builtin): Fix formatting.  Add
8114         FALLTHRU comments.
8116 2016-08-29  Marek Polacek  <polacek@redhat.com>
8118         PR c/77292
8119         * c-common.c (warn_logical_not_parentheses): Don't warn for
8120         a comparison or a logical operator.
8122 2016-08-29  Tom de Vries  <tom@codesourcery.com>
8124         * c-common.c (build_va_arg): Fix type comparison assert.
8126 2016-08-29  Tom de Vries  <tom@codesourcery.com>
8128         * c-common.c (build_va_arg): Replace first argument type error
8129         with assert.
8131 2016-08-29  Tom de Vries  <tom@codesourcery.com>
8133         PR c/77398
8134         * c-common.c (build_va_arg): Add first argument error.  Build va_arg
8135         with error_mark_node as va_list instead of with illegal va_list.
8137 2016-08-25  Marek Polacek  <polacek@redhat.com>
8138             David Malcolm  <dmalcolm@redhat.com>
8140         * c-common.c (warn_logical_not_parentheses): Print fixit hints.
8141         * c-common.h (warn_logical_not_parentheses): Update declaration.
8143 2016-08-22  Marek Polacek  <polacek@redhat.com>
8145         PR c++/77321
8146         * c-common.c (warn_for_memset): Check type for null.
8148 2016-08-22  Joseph Myers  <joseph@codesourcery.com>
8150         * c-cppbuiltin.c (c_cpp_builtins): Check _FloatN and
8151         _FloatNx types for suffixes for built-in functions.
8153 2016-08-19  Joseph Myers  <joseph@codesourcery.com>
8155         PR c/32187
8156         * c-common.h (RID_FLOAT16, RID_FLOATN_NX_FIRST, RID_FLOAT32)
8157         (RID_FLOAT64, RID_FLOAT128, RID_FLOAT32X, RID_FLOAT64X)
8158         (RID_FLOAT128X): New enum rid values.
8159         (CASE_RID_FLOATN_NX): New macro.
8160         * c-common.c (c_common_reswords): Add _FloatN and _FloatNx
8161         keywords.
8162         (c_common_type_for_mode): Check for _FloatN and _FloatNx and
8163         corresponding complex types.
8164         (c_common_nodes_and_builtins): For non-C++, register _FloatN and
8165         _FloatNx and corresponding complex types.
8166         (keyword_begins_type_specifier): Use CASE_RID_FLOATN_NX.
8167         * c-cppbuiltin.c (builtin_define_float_constants): Check _FloatN
8168         and _FloatNx types for the widest type for determining
8169         DECIMAL_DIG.  Define __LDBL_DECIMAL_DIG__ as well as
8170         __DECIMAL_DIG__ for long double.  Handle FMA_SUFFIX being NULL.
8171         (c_cpp_builtins): Call builtin_define_float_constants for _FloatN
8172         and _FloatNx types.
8173         * c-lex.c (interpret_float): Handle _FloatN and _FloatNx
8174         constants.
8175         * c-pretty-print.c (pp_c_floating_constant): Handle _FloatN and
8176         _FloatNx types.
8178 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
8180         * c-opts.c (c_diagnostic_finalizer): Update for change to
8181         diagnostic_show_locus.
8183 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
8185         * c-common.c: Include "spellcheck.h".
8186         (cb_get_suggestion): New function.
8187         * c-common.h (cb_get_suggestion): New decl.
8188         * c-lex.c (init_c_lex): Initialize cb->get_suggestion to
8189         cb_get_suggestion.
8191 2016-08-18  Marek Polacek  <polacek@redhat.com>
8193         PR c/71514
8194         * c-common.c (get_atomic_generic_size): Disallow pointer-to-function
8195         and pointer-to-VLA.
8197 2016-08-16  David Malcolm  <dmalcolm@redhat.com>
8199         PR c/72857
8200         * c-common.c (substring_loc::get_range): Rename to...
8201         (substring_loc::get_location): ...this, converting param from a
8202         source_range * to a location_t *.  Call
8203         get_source_location_for_substring rather than
8204         get_source_range_for_substring, and pass in m_caret_idx.
8205         * c-common.h (substring_loc::substring_loc): Add param "caret_idx".
8206         (substring_loc::get_range): Replace with...
8207         (substring_loc::get_location): ...this.
8208         (substring_loc::set_caret_index): New method.
8209         (substring_loc): Add field m_caret_idx.
8210         * c-format.c (format_warning_va): Update for above changes.
8211         Rename local "substring_loc" to "fmt_substring_loc" to avoid
8212         clashing with type name.
8213         (format_warning_at_char): Add caret_idx param to substring_loc ctor.
8214         (check_argument_type): Likewise.
8215         (format_type_warning): Rename param "fmt_loc" to "whole_fmt_loc"
8216         Use a copy when emitting warnings, setting the caret index from TYPE.
8218 2016-08-16  Eric Botcazou  <ebotcazou@adacore.com>
8219             Arnaud Charlet  <charlet@adacore.com>
8221         * c-ada-spec.c (dump_number): New function.
8222         (handle_escape_character): Likewise.
8223         (print_ada_macros): Add handling of constant integers and strings.
8225 2016-08-12  Marek Polacek  <polacek@redhat.com>
8227         PR c/7652
8228         * c-common.c (scalar_to_vector): Adjust fall through comment.
8229         * c-opts.c (c_common_handle_option): Likewise.
8230         * c-pragma.c (handle_pragma_pack): Add FALLTHRU.
8231         * c-pretty-print.c (c_pretty_printer::postfix_expression): Adjust
8232         fall through comment.
8233         * cilk.c (extract_free_variables): Add FALLTHRU.
8235 2016-08-10  Jason Merrill  <jason@redhat.com>
8237         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.
8239 2016-08-09  Jason Merrill  <jason@redhat.com>
8241         * c-common.c (c_common_attribute_table): vector_size affects type
8242         identity.
8244 2016-08-09  Marek Polacek  <polacek@redhat.com>
8246         PR c/7652
8247         * c-ada-spec.c (dump_generic_ada_node): Add return.
8249 2016-08-09  Jason Merrill  <jason@redhat.com>
8251         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_constexpr for
8252         C++17 constexpr lambdas.
8254 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
8256         PR c/64955
8257         * c-common.h (selftest::c_format_c_tests): New declaration.
8258         (selftest::run_c_tests): New declaration.
8259         * c-format.c: Include "selftest.h.
8260         (format_warning_va): Add param "corrected_substring" and use
8261         it to add a replacement fix-it hint.
8262         (format_warning_at_substring): Likewise.
8263         (format_warning_at_char): Update for new param of
8264         format_warning_va.
8265         (argument_parser::check_argument_type): Pass "fki" to
8266         check_format_types.
8267         (check_format_types): Add param "fki" and pass it to
8268         format_type_warning.
8269         (deref_n_times): New function.
8270         (get_modifier_for_format_len): New function.
8271         (selftest::test_get_modifier_for_format_len): New function.
8272         (get_format_for_type): New function.
8273         (format_type_warning): Add param "fki" and use it to attempt
8274         to provide hints for argument types when calling
8275         format_warning_at_substring.
8276         (selftest::get_info): New function.
8277         (selftest::assert_format_for_type_streq): New function.
8278         (ASSERT_FORMAT_FOR_TYPE_STREQ): New macro.
8279         (selftest::test_get_format_for_type_printf): New function.
8280         (selftest::test_get_format_for_type_scanf): New function.
8281         (selftest::c_format_c_tests): New function.
8283 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
8285         PR c/52952
8286         * c-format.c: Include "diagnostic.h".
8287         (location_column_from_byte_offset): Delete.
8288         (location_from_offset): Delete.
8289         (format_warning_va): New function.
8290         (format_warning_at_substring): New function.
8291         (format_warning_at_char): New function.
8292         (check_format_arg): Capture location of format_tree and pass to
8293         check_format_info_main.
8294         (argument_parser): Add fields "start_of_this_format" and
8295         "format_string_cst".
8296         (flag_chars_t::validate): Add param "format_string_cst".  Convert
8297         warning_at call using location_from_offset to call to
8298         format_warning_at_char.
8299         (argument_parser::argument_parser): Add param "format_string_cst_"
8300         and use use it to initialize field "format_string_cst".
8301         Initialize new field "start_of_this_format".
8302         (argument_parser::read_format_flags): Convert warning_at call
8303         using location_from_offset to a call to format_warning_at_char.
8304         (argument_parser::read_any_format_left_precision): Likewise.
8305         (argument_parser::read_any_format_precision): Likewise.
8306         (argument_parser::read_any_other_modifier): Likewise.
8307         (argument_parser::find_format_char_info): Likewise, in three places.
8308         (argument_parser::parse_any_scan_set): Likewise, in one place.
8309         (argument_parser::handle_conversions): Likewise, in two places.
8310         (argument_parser::check_argument_type): Add param "fmt_param_loc"
8311         and use it to make a substring_loc.  Pass the latter to
8312         check_format_types.
8313         (check_format_info_main): Add params "fmt_param_loc" and
8314         "format_string_cst".  Convert warning_at calls using
8315         location_from_offset to calls to format_warning_at_char.  Pass the
8316         new params to the arg_parser ctor.  Pass "format_string_cst" to
8317         flag_chars.validate.  Pass "fmt_param_loc" to
8318         arg_parser.check_argument_type.
8319         (check_format_types): Convert first param from a location_t
8320         to a const substring_loc & and rename to "fmt_loc".  Attempt
8321         to extract the range of the relevant parameter and pass it
8322         to format_type_warning.
8323         (format_type_warning): Convert first param from a location_t
8324         to a const substring_loc & and rename to "fmt_loc".  Add
8325         params "param_range" and "type".  Replace calls to warning_at
8326         with calls to format_warning_at_substring.
8328 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
8330         * c-format.c (class flag_chars_t): New class.
8331         (struct length_modifier): New struct.
8332         (class argument_parser): New class.
8333         (flag_chars_t::flag_chars_t): New ctor.
8334         (flag_chars_t::has_char_p): New method.
8335         (flag_chars_t::add_char): New method.
8336         (flag_chars_t::validate): New method.
8337         (flag_chars_t::get_alloc_flag): New method.
8338         (flag_chars_t::assignment_suppression_p): New method.
8339         (argument_parser::argument_parser): New ctor.
8340         (argument_parser::read_any_dollar): New method.
8341         (argument_parser::read_format_flags): New method.
8342         (argument_parser::read_any_format_width): New method.
8343         (argument_parser::read_any_format_left_precision): New method.
8344         (argument_parser::read_any_format_precision): New method.
8345         (argument_parser::handle_alloc_chars): New method.
8346         (argument_parser::read_any_length_modifier): New method.
8347         (argument_parser::read_any_other_modifier): New method.
8348         (argument_parser::find_format_char_info): New method.
8349         (argument_parser::validate_flag_pairs): New method.
8350         (argument_parser::give_y2k_warnings): New method.
8351         (argument_parser::parse_any_scan_set): New method.
8352         (argument_parser::handle_conversions): New method.
8353         (argument_parser::check_argument_type): New method.
8354         (check_format_info_main): Introduce classes argument_parser
8355         and flag_chars_t, moving the code within the loop into methods
8356         of these classes.  Make various locals "const".
8358 2016-08-05  David Malcolm  <dmalcolm@redhat.com>
8360         * c-common.c: Include "substring-locations.h".
8361         (get_cpp_ttype_from_string_type): New function.
8362         (g_string_concat_db): New global.
8363         (substring_loc::get_range): New method.
8364         * c-common.h (g_string_concat_db): New declaration.
8365         (class substring_loc): New class.
8366         * c-lex.c (lex_string): When concatenating strings, capture the
8367         locations of all tokens using a new obstack, and record the
8368         concatenation locations within g_string_concat_db.
8369         * c-opts.c (c_common_init_options): Construct g_string_concat_db
8370         on the ggc-heap.
8372 2016-07-29  Marek Polacek  <polacek@redhat.com>
8374         PR c/71926
8375         * c-common.c (c_common_truthvalue_conversion): Use LOCATION for the
8376         parentheses warning.
8378         PR c/71574
8379         * c-common.c (handle_alloc_align_attribute): Also check FUNCTION_DECL.
8381 2016-07-28  Martin Liska  <mliska@suse.cz>
8383         PR gcov-profile/68025
8384         * c-common.c (handle_no_profile_instrument_function_attribute):
8386 2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8388         * c-common.c (check_user_alignment): Use LOG2_BITS_PER_UNIT instead of
8389         BITS_PER_UNIT_LOG.
8391 2016-07-25  Jason Merrill  <jason@redhat.com>
8393         PR c++/65970
8394         * c.opt (fconstexpr-loop-limit): New.
8396 2016-07-22  Martin Sebor  <msebor@redhat.com>
8398         PR c++/71675
8399         * c-common.c (resolve_overloaded_builtin): Avoid converting
8400         __atomic_compare_exchange_n return type to that of what its
8401         first argument points to.
8403 2016-07-22  Uros Bizjak  <ubizjak@gmail.com>
8405         * c-common.c: Use HOST_WIDE_INT_M1U instead of
8406         ~(unsigned HOST_WIDE_INT) 0.
8408 2016-07-22  Martin Liska  <mliska@suse.cz>
8410         PR gcov-profile/69028
8411         PR gcov-profile/62047
8412         * cilk.c (create_cilk_helper_decl): Set location of a new decl
8413         to the current_function_decl.
8415 2016-07-21  Jason Merrill  <jason@redhat.com>
8417         PR c++/65168
8418         * c-common.c (c_common_truthvalue_conversion): Check
8419         c_inhibit_evaluation_warnings for warning about address of
8420         reference.
8422 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
8424         * c-common.h (lookup_name_fuzzy): Convert return type from tree to
8425         const char *.
8427 2016-07-15  Jason Merrill  <jason@redhat.com>
8429         * c-opts.c (c_common_post_options): Update -fabi-version default to 11.
8431 2016-07-15  Jakub Jelinek  <jakub@redhat.com>
8433         PR c/71858
8434         * c-common.h (enum lookup_name_fuzzy_kind): Add
8435         FUZZY_LOOKUP_FUNCTION_NAME.
8437 2016-07-08  Jason Merrill  <jason@redhat.com>
8439         P0145: Refining Expression Order for C++.
8440         * c.opts (-fargs-in-order): Rename to -fstrong-eval-order.
8441         * c-opts.c: Adjust.
8443 2016-07-05  Markus Trippelsdorf  <markus@trippelsdorf.de>
8445         PR c++/71214
8446         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_rvalue_references.
8448 2016-06-29  Thomas Schwinge  <thomas@codesourcery.com>
8450         * c-pragma.h (enum pragma_kind): Rename
8451         PRAGMA_OMP_DECLARE_REDUCTION to PRAGMA_OMP_DECLARE.  Adjust all
8452         users.
8454 2016-06-29  Richard Biener  <rguenther@suse.de>
8456         PR middle-end/71002
8457         * c-common.c (c_common_get_alias_set): Remove union type punning case.
8459 2016-06-24  Jason Merrill  <jason@redhat.com>
8461         P0145R2: Refining Expression Order for C++.
8462         * c-common.c (verify_tree) [COMPOUND_EXPR]: Fix handling on LHS of
8463         MODIFY_EXPR.
8465 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
8467         * c-common.c (check_builtin_function_arguments): Require last
8468         argument of BUILT_IN_*_OVERFLOW_P to have INTEGER_TYPE type.
8469         Adjust wording of diagnostics for BUILT_IN_*_OVERLFLOW
8470         if the last argument is pointer to enumerated or boolean type.
8472 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
8474         PR c/70339
8475         * c-common.h (enum lookup_name_fuzzy_kind): New enum.
8476         (lookup_name_fuzzy): New prototype.
8478 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
8480         * c-common.c (get_source_date_epoch): Use int64_t instead of long long.
8482 2016-06-14  Jason Merrill  <jason@redhat.com>
8484         P0145R2: Refining Expression Order for C++.
8485         * c.opt (fargs-in-order): New.
8486         * c-opts.c (c_common_post_options): Adjust flag_args_in_order.
8488 2016-06-13  Jakub Jelinek  <jakub@redhat.com>
8490         PR sanitizer/71498
8491         * c-gimplify.c (ubsan_walk_array_refs_r): Set *walk_subtrees = 0 on
8492         all BIND_EXPRs, and on all BIND_EXPRs recurse also on BIND_EXPR_BODY.
8494         PR preprocessor/71183
8495         * c-ppoutput.c (init_pp_output): Set cb->get_source_date_epoch
8496         to cb_get_source_date_epoch.
8498 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
8500         PR c/68657
8501         * c.opt (Wpsabi): Add Warning flag.
8503 2016-06-10  Martin Sebor  <msebor@redhat.com>
8505         PR c/71392
8506         * c-common.c (handle_nonnull_attribute): Accept
8507         the nonnull attribute in type-generic builtins.
8509 2016-06-09  Martin Sebor  <msebor@redhat.com>
8511         PR c/70883
8512         * c-common.c (builtin_function_validate_nargs): Make text of error
8513         message consistent with others like it.
8515 2016-06-08  Martin Sebor  <msebor@redhat.com>
8516             Jakub Jelinek  <jakub@redhat.com>
8518         PR c++/70507
8519         PR c/68120
8520         * c-common.c (check_builtin_function_arguments): Handle
8521         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
8523 2016-06-08  Richard Biener  <rguenther@suse.de>
8525         * c-common.c (parse_optimize_options): Improve diagnostic messages.
8527 2016-06-07  Richard Biener  <rguenther@suse.de>
8529         PR c/61564
8530         * c-common.c (parse_optimize_options): Only apply CL_OPTIMIZATION
8531         options and warn about others.
8533 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
8535         * c-common.c (get_source_date_epoch): Rename to
8536         cb_get_source_date_epoch.
8537         * c-common.c (cb_get_source_date_epoch): Use a single generic erorr
8538         message when the parsing fails.  Use error_at instead of fatal_error.
8539         * c-common.h (get_source_date_epoch): Rename to
8540         cb_get_source_date_epoch.
8541         * c-common.h (cb_get_source_date_epoch): Prototype.
8542         * c-common.h (MAX_SOURCE_DATE_EPOCH): Define.
8543         * c-common.h (c_omp_region_type): Remove trailing comma.
8544         * c-lex.c (init_c_lex): Set cb->get_source_date_epoch callback.
8545         * c-lex.c (c_lex_with_flags): Remove initialization of
8546         pfile->source_date_epoch.
8548 2016-05-30  Jakub Jelinek  <jakub@redhat.com>
8550         PR c++/71349
8551         * c-omp.c (c_omp_split_clauses): Put OMP_CLAUSE_DEPEND to
8552         C_OMP_CLAUSE_SPLIT_TARGET.  Put OMP_CLAUSE_NOWAIT to
8553         C_OMP_CLAUSE_SPLIT_TARGET if combined with target construct,
8554         instead of C_OMP_CLAUSE_SPLIT_FOR.
8556 2016-05-24  Richard Biener  <rguenther@suse.de>
8558         PR middle-end/70434
8559         PR c/69504
8560         * c-common.h (convert_vector_to_pointer_for_subscript): Rename to ...
8561         (convert_vector_to_array_for_subscript): ... this.
8562         * c-common.c (convert_vector_to_pointer_for_subscript): Use a
8563         VIEW_CONVERT_EXPR to an array type.  Rename to ...
8564         (convert_vector_to_array_for_subscript): ... this.
8566 2016-05-12  Marek Polacek  <polacek@redhat.com>
8568         PR c/70756
8569         * c-common.c (pointer_int_sum): Call size_in_bytes_loc instead of
8570         size_in_bytes and pass LOC to it.
8572 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
8574         PR c/43651
8575         * c.opt (Wduplicate-decl-specifier): New option.
8577 2016-05-11  Marek Polacek  <polacek@redhat.com>
8579         PR c++/71024
8580         * c-common.c (diagnose_mismatched_attributes): New function.
8581         * c-common.h (diagnose_mismatched_attributes): Declare.
8583 2016-05-04  Marek Polacek  <polacek@redhat.com>
8585         * c.opt (Wdangling-else): New option.
8587 2016-05-03  Marek Polacek  <polacek@redhat.com>
8589         PR c/70859
8590         * c-common.c (builtin_function_validate_nargs): Add location
8591         parameter.  Use it.
8592         (check_builtin_function_arguments): Add location and arguments
8593         parameters.  Use them.
8594         * c-common.h (check_builtin_function_arguments): Update declaration.
8596 2016-05-03  Richard Biener  <rguenther@suse.de>
8598         * cilk.c (cilk_gimplify_call_params_in_spawned_fn): Do not
8599         allow call args to gimplify to SSA names.
8601 2016-05-03  Marek Polacek  <polacek@redhat.com>
8603         * c-common.h (enum c_omp_region_type): Remove stray comma.
8605 2016-05-02  Cesar Philippidis  <cesar@codesourcery.com>
8607         * c-common.h (enum c_omp_region_type): Define.
8609 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8611         * c-common.c (shorten_compare): Use wi::to_wide.
8613 2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>
8615         PR middle-end/70626
8616         * c-common.h (c_oacc_split_loop_clauses): Add boolean argument.
8617         * c-omp.c (c_oacc_split_loop_clauses): Use it to duplicate
8618         reduction clauses in acc parallel loops.
8620 2016-04-29  Marek Polacek  <polacek@redhat.com>
8622         PR c/70852
8623         * c-common.c (warn_for_memset): Check domain before accessing it.
8625 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8627         PR/69089
8628         * c-common.c (handle_aligned_attribute): Allow 0 as an argument to the
8629         "aligned" attribute.
8631 2016-04-28  Jason Merrill  <jason@redhat.com>
8633         * c-lex.c (c_common_has_attribute): Handle nodiscard.
8635 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
8636             Matthias Klose  <doko@debian.org>
8638         * c-common.c (get_source_date_epoch): New function, gets the environment
8639         variable SOURCE_DATE_EPOCH and parses it as long long with error
8640         handling.
8641         * c-common.h (get_source_date_epoch): Prototype.
8642         * c-lex.c (c_lex_with_flags): set parse_in->source_date_epoch.
8644 2015-04-27  Ryan Burn  <contact@rnburn.com>
8646         PR c++/69024
8647         PR c++/68997
8648         * cilk.c (cilk_ignorable_spawn_rhs_op): Change to external linkage.
8649         (cilk_recognize_spawn): Renamed from recognize_spawn and change to
8650         external linkage.
8651         (cilk_detect_and_unwrap): Corresponding changes.
8652         (extract_free_variables): Don't extract free variables from
8653         AGGR_INIT_EXPR slot.
8654         * c-common.h (cilk_ignorable_spawn_rhs_op): Prototype.
8655         (cilk_recognize_spawn): Likewise.
8657 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
8659         * c.opt (Wmemset-elt-size): New option.
8660         * c-common.c (warn_for_memset): New function.
8661         * c-common.h (warn_for_memset): Declare.
8663 2016-04-25  Jason Merrill  <jason@redhat.com>
8665         * c-common.c (handle_unused_attribute): Accept CONST_DECL.
8666         No longer static.
8667         * c-common.h: Declare it.
8668         * c-lex.c (c_common_has_attribute): Add maybe_unused.
8670 2016-04-22  Jason Merrill  <jason@redhat.com>
8672         * c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_range_based_for.
8674 2016-04-20  Ilya Verbin  <ilya.verbin@intel.com>
8676         PR c++/69363
8677         * c-cilkplus.c (c_finish_cilk_clauses): Remove function.
8678         * c-common.h (c_finish_cilk_clauses): Remove declaration.
8680 2016-04-18  Michael Matz  <matz@suse.de>
8682         * c-common.c (handle_aligned_attribute): Use SET_TYPE_ALIGN
8683         and SET_DECL_ALIGN.
8685 2016-04-17  Eric Botcazou  <ebotcazou@adacore.com>
8687         * c-ada-spec.c (get_underlying_decl): Return the typedef, if any.
8688         (dump_generic_ada_node) <POINTER_TYPE>: Clean up handling of access
8689         to incomplete types.
8690         (dump_nested_type): Remove redundant tests and tidy up.
8691         (print_ada_declaration): Also set TREE_VISITED on the declaration of
8692         a type which is the typedef of an original type.
8694 2016-04-15  Marek Polacek  <polacek@redhat.com>
8696         PR c/70651
8697         * c-common.c (build_va_arg): Change two asserts into errors and return
8698         error_mark_node.
8700 2016-04-13  Marek Polacek  <polacek@redhat.com>
8702         PR c++/70639
8703         * c-indentation.c (should_warn_for_misleading_indentation): Bail out
8704         for switch statements, too.
8706 2016-03-28  Jason Merrill  <jason@redhat.com>
8708         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_range_based_for.
8710 2016-03-23  Marek Polacek  <polacek@redhat.com>
8712         PR c++/69884
8713         * c.opt (Wignored-attributes): New option.
8715 2016-03-22  David Malcolm  <dmalcolm@redhat.com>
8717         PR c/69993
8718         * c-indentation.c (warn_for_misleading_indentation): Rewrite the
8719         diagnostic text, reversing the order of the warning and note so
8720         that they appear in source order.
8722 2016-03-17  Marek Polacek  <polacek@redhat.com>
8724         PR c/69407
8725         * c-common.c (resolve_overloaded_builtin): Set TREE_USED for the fetch
8726         operations.
8728 2016-03-14  Jason Merrill  <jason@redhat.com>
8730         * c-cppbuiltin.c (c_cpp_builtins): Set __cpp_hex_float.
8732         * c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_range_based_for.
8734 2016-03-09  Richard Biener  <rguenther@suse.de>
8736         PR c/70143
8737         * c-common.c (strict_aliasing_warning): Add back
8738         alias_sets_conflict_p check.
8740 2016-03-08  Jason Merrill  <jason@redhat.com>
8742         * c-opts.c (set_std_cxx1z): Don't enable concepts.
8744 2016-03-04  David Malcolm  <dmalcolm@redhat.com>
8746         PR c/68187
8747         * c-indentation.c (get_visual_column): Move code to determine next
8748         tab stop to...
8749         (next_tab_stop): ...this new function.
8750         (line_contains_hash_if): Delete function.
8751         (detect_preprocessor_logic): Delete function.
8752         (get_first_nws_vis_column): New function.
8753         (detect_intervening_unindent): New function.
8754         (should_warn_for_misleading_indentation): Replace call to
8755         detect_preprocessor_logic with a call to
8756         detect_intervening_unindent.
8758 2016-03-04  David Malcolm  <dmalcolm@redhat.com>
8760         PR c/68187
8761         * c-indentation.c (should_warn_for_misleading_indentation): When
8762         suppressing warnings about cases where the guard and body are on
8763         the same column, only use the first non-whitespace column in place
8764         of the guard token column when dealing with "else" clauses.
8765         When rejecting aligned BODY and NEXT, loosen the requirement
8766         from equality with the first non-whitespace of guard to simply
8767         that they not be indented relative to it.
8769 2016-03-04  Richard Biener  <rguenther@suse.de>
8771         PR c++/70054
8772         * c-common.c (strict_aliasing_warning): Use alias_set_subset_of
8773         instead of alias_sets_conflict_p.
8775 2016-03-01  Marek Polacek  <polacek@redhat.com>
8777         PR c++/69795
8778         * c-common.c (reject_gcc_builtin): Check for FUNCTION_DECL rather than
8779         any DECL.
8781 2016-02-22  Martin Sebor  <msebor@redhat.com>
8783         PR middle-end/69780
8784         * c-common.c (check_builtin_function_arguments): Validate and
8785         reject invalid arguments to __builtin_alloca_with_align.
8787 2016-02-20  Mark Wielaard  <mjw@redhat.com>
8789         PR c/28901
8790         * c.opt (Wunused-const-variable): Turn into Alias for...
8791         (Wunused-const-variable=): New option.
8793 2016-02-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8795         PR c++/69865
8796         * c-opts.c (c_common_post_options): Move call to set_std_cxx14 from
8797         here...
8798         (c_common_init_options): ...to here.
8799         (set_std_cxx98): Initialize flag_isoc94 and flag_isoc99.
8801 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
8803         PR c++/69826
8804         * c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_GRAINSIZE.
8805         (init_pragma): Register PRAGMA_CILK_GRAINSIZE even for
8806         flag_preprocess_only.
8808 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
8810         PR c/69835
8811         * c.opt (Wnonnull-compare): Enable for -Wall.
8813 2016-02-15  Jakub Jelinek  <jakub@redhat.com>
8815         PR c++/69797
8816         * c-common.c (sync_resolve_size): Diagnose too few arguments
8817         even when params is non-NULL empty vector.
8819 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
8821         PR target/60410
8822         * c.opt (fshort-double): Remove.
8824 2016-02-05  Martin Sebor  <msebor@redhat.com>
8826         PR c++/69662
8827         * c.opt (Warning options): Update -Wplacement-new to take
8828         an optional argument.
8830 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8832         PR preprocessor/69543
8833         PR c/69558
8834         * c-pragma.c (handle_pragma_diagnostic): Pass input_location
8835         instead of loc to control_warning_option.
8837 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
8839         * c.opt (fopenacc-dim=): New option.
8841 2016-01-27  Ryan Burn  <contact@rnburn.com>
8843         PR cilkplus/69267
8844         * cilk.c (cilk_gimplify_call_params_in_spawned_fn): Change to use
8845         gimplify_arg. Removed superfluous post_p argument.
8846         * c-family.h (cilk_gimplify_call_params_in_spawned_fn): Removed
8847         superfluous post_p argument.
8848         * c-gimplify.c (c_gimplify_expr): Likewise.
8850 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
8852         PR other/69006
8853         * c-opts.c (c_diagnostic_finalizer): Replace invocation of
8854         pp_newline_and_flush with pp_flush.
8856 2016-01-20  Martin Sebor  <msebor@redhat.com>
8858         PR c/69405
8859         * c-common.c (sync_resolve_size): Avoid printing diagnostic about
8860         an incompatible argument when the argument isn't a valid tree node.
8862 2016-01-18  Jason Merrill  <jason@redhat.com>
8864         PR c++/68767
8865         * c-common.c (check_function_arguments_recurse): Fold the whole
8866         COND_EXPR, not just the condition.
8868 2016-01-18  Tom de Vries  <tom@codesourcery.com>
8870         * c-omp.c (c_oacc_split_loop_clauses): Don't copy OMP_CLAUSE_REDUCTION,
8871         classify as loop clause.
8873 2016-01-15  Jakub Jelinek  <jakub@redhat.com>
8875         PR bootstrap/68271
8876         * c-pragma.c (c_register_pragma_1): Adjust comment to note that
8877         C++ FE no longer has limit on number of pragmas.
8879 2015-01-14  Ryan Burn  <contact@rnburn.com>
8881         PR c++/69048
8882         * cilk.c (create_cilk_wrapper_body): Call fold_build_cleanup_point_expr
8883         to add missing cleanup point.
8885 2016-01-14  David Malcolm  <dmalcolm@redhat.com>
8887         PR c++/68819
8888         * c-indentation.c (get_visual_column): Add location_t param.
8889         Handle the column number being zero by effectively disabling the
8890         warning, with an "inform".
8891         (should_warn_for_misleading_indentation): Add location_t argument
8892         for all uses of get_visual_column.
8894 2016-01-10  Patrick Palka  <ppalka@gcc.gnu.org>
8896         PR c++/69029
8897         * c-indentation.c (should_warn_for_misleading_indentation):
8898         Don't warn about do-while statements.
8900 2016-01-07  Martin Sebor  <msebor@redhat.com>
8902         PR c/68966
8903         * c-common.c (sync_resolve_size): Reject first argument when it's
8904         a pointer to _Bool.
8906 2016-01-05  David Malcolm  <dmalcolm@redhat.com>
8908         PR c/69122
8909         * c-indentation.c (get_visual_column): Remove default argument.
8910         (should_warn_for_misleading_indentation): For the multiline case,
8911         update call to get_visual_column for next_stmt_exploc so that it
8912         captures the location of the first non-whitespace character in the
8913         relevant line.  Don't issue warnings if there is non-whitespace
8914         before the next statement.
8916 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
8918         Update copyright years.
8920 2015-12-21  David Malcolm  <dmalcolm@redhat.com>
8922         * c-common.c (binary_op_error): Convert first param from
8923         location_t to rich_location * and use it when emitting an error.
8924         * c-common.h (binary_op_error): Convert first param from
8925         location_t to rich_location *.
8927 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
8929         * c-common.h (conflict_marker_get_final_tok_kind): New prototype.
8930         * c-lex.c (conflict_marker_get_final_tok_kind): New function.
8932 2015-12-15  Ilya Verbin  <ilya.verbin@intel.com>
8934         * c-common.c (c_common_attribute_table): Handle "omp declare target
8935         link" attribute.
8937 2015-12-14  Jakub Jelinek  <jakub@redhat.com>
8939         PR c/68833
8940         * c.opt (Wmissing-format-attribute, Wnormalized): Add Warning option.
8942 2014-12-12  Tobias Burnus  <burnus@net-b.de>
8944         PR fortran/68815
8945         * c-format.c (gcc_gfc_char_table): Add 'q' flag to remaining
8946         specifiers (%d, %i,%u and %c).
8948 2015-12-10  David Malcolm  <dmalcolm@redhat.com>
8950         * c.opt (Wmisleading-indentation): Add to -Wall for C and C++.
8952 2015-12-08  Jakub Jelinek  <jakub@redhat.com>
8954         PR c/48088
8955         PR c/68657
8956         * c.opt (Wfloat-conversion, Wsign-conversion): Add Warning.
8957         * c-pragma.c (handle_pragma_diagnostic): Adjust
8958         control_warning_option caller.
8960 2015-12-07  David Malcolm  <dmalcolm@redhat.com>
8962         * c-common.c (c_cpp_error): Update for change to
8963         rich_location::set_range.
8965 2015-12-04  Paolo Bonzini  <bonzini@gnu.org>
8967         * c-common.c (maybe_warn_shift_overflow): Warn on all overflows if
8968         shifting 1 out of the sign bit.
8970 2015-12-04  Kirill Yukhin  <kirill.yukhin@intel.com>
8972         * c-common.c (c_common_attribute_table[]): Update max arguments
8973         count for "simd" attribute.
8974         (handle_simd_attribute): Parse "notinbranch" and "inbranch" arguments.
8976 2015-12-03  Jakub Jelinek  <jakub@redhat.com>
8978         PR preprocessor/57580
8979         * c-ppoutput.c (print): Change printed field to bool.
8980         Move src_file last for smaller padding.
8981         (init_pp_output): Set print.printed to false instead of 0.
8982         (scan_translation_unit): Fix up formatting.  Set print.printed
8983         to true after printing something other than newline.
8984         (scan_translation_unit_trad): Set print.printed to true instead of 1.
8985         (maybe_print_line_1): Set print.printed to false instead of 0.
8986         (print_line_1): Likewise.
8987         (do_line_change): Set print.printed to true instead of 1.
8988         (cb_define, dump_queued_macros, cb_include, cb_def_pragma,
8989         dump_macro): Set print.printed to false after printing newline.
8991 2015-12-02  Jason Merrill  <jason@redhat.com>
8993         * c-common.c (fold_for_warn): New.
8994         (warn_logical_operator, warn_tautological_cmp)
8995         (check_function_arguments_recurse, maybe_warn_bool_compare): Use it.
8997         * c-common.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
8998         (c_fully_fold_internal, decl_constant_value_for_optimization):
8999         Move to c/c-fold.c.
9000         * c-common.h: Don't declare decl_constant_value_for_optimization.
9002 2015-12-02  Joseph Myers  <joseph@codesourcery.com>
9004         PR c/68162
9005         * c-common.h (c_build_qualified_type): Add extra default
9006         arguments.
9008 2015-12-01  Julian Brown  <julian@codesourcery.com>
9009             Cesar Philippidis  <cesar@codesourcery.com>
9010             James Norris  <James_Norris@mentor.com>
9012         * c-pragma.c (oacc_pragmas): Add PRAGMA_OACC_HOST_DATA.
9013         * c-pragma.h (pragma_kind): Add PRAGMA_OACC_HOST_DATA.
9014         (pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_USE_DEVICE.
9016 2015-11-30  Eric Botcazou  <ebotcazou@adacore.com>
9018         * c-ada-spec.c (print_ada_macros): Remove redundant blank line.
9019         (decl_sloc_common): Delete and move bulk of processing to...
9020         (decl_sloc): ...here.
9021         (pp_ada_tree_identifier): Remove reference to QUAL_UNION_TYPE.
9022         (dump_ada_double_name): Remove S parameter and compute the suffix.
9023         (dump_ada_array_type): Add PARENT parameter.  Simplify computation of
9024         element type and deal with an anonymous one.
9025         (dump_ada_template): Use RECORD_OR_UNION_TYPE_P macro.
9026         (dump_generic_ada_node): Tweak.  Adjust call to dump_ada_array_type
9027         and remove reference to QUAL_UNION_TYPE.
9028         (dump_nested_types): Make 2 passes on the fields and move bulk to...
9029         (dump_nested_type): ...here.  New function extracted from above.
9030         Generate a full declaration for anonymous element type of arrays.
9031         (print_ada_declaration): Really skip anonymous declarations.  Remove
9032         references to QUAL_UNION_TYPE.  Adjust call to dump_ada_array_type.
9033         Clean up processing of declarations of array types and objects.
9034         (print_ada_struct_decl): Remove reference to QUAL_UNION_TYPE.
9035         Remove obsolete code and tidy up.
9037 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
9039         PR c/67581
9040         * c-common.c (handle_transparent_union_attribute): Update
9041         also type variants.
9043 2015-11-27  Martin Liska  <mliska@suse.cz>
9045         PR c++/68312
9046         * array-notation-common.c (cilkplus_extract_an_triplets):
9047         Release vector of vectors.
9048         * cilk.c (gimplify_cilk_spawn): Free allocated memory.
9050 2015-11-26  Eric Botcazou  <ebotcazou@adacore.com>
9052         PR c++/68527
9053         * c-ada-spec.c (dump_nested_types): Add guard for error_mark_node.
9054         (print_ada_struct_decl): Likewise.
9056 2015-11-23  Igor Zamyatin  <igor.zamyatin@intel.com>
9058         PR c++/68001
9059         * c-gimplify.c (c_gimplify_expr): Stop the process if see an error.
9060         * cilk.c (recognize_spawn): Determine location in a more precise
9061         way.
9063 2015-11-19  Jason Merrill  <jason@redhat.com>
9065         * c-common.c (shorten_compare): But look through macros from
9066         system headers.
9068 2015-11-18  Jason Merrill  <jason@redhat.com>
9070         * c-common.c (shorten_compare): Don't -Wtype-limits if the
9071         non-constant operand comes from a macro.
9073 2015-11-17  Jason Merrill  <jason@redhat.com>
9075         PR bootstrap/68346
9076         * c-common.c (warn_tautological_cmp): Fold before checking for
9077         constants.
9079 2015-11-16  Marek Polacek  <polacek@redhat.com>
9081         PR c++/68362
9082         * c-common.c (check_case_bounds): Fold low and high cases.
9084 2015-11-16  Marek Polacek  <polacek@redhat.com>
9086         * c-ada-spec.c (dump_ada_template): Use RECORD_OR_UNION_TYPE_P.
9087         * c-common.c (c_common_get_alias_set): Likewise.
9088         (handle_visibility_attribute): Likewise.
9090 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
9092         * c-common.c (handle_simd_attribute): New.
9093         (struct attribute_spec): Add entry for "simd".
9094         (handle_simd_attribute): New.
9096 2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
9098         * c-lex.c (interpret_float): Use fold_convert.
9100 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
9102         * c-common.c (c_fully_fold_internal): Capture existing souce_range,
9103         and store it on the result.
9104         * c-opts.c (c_common_init_options): Set
9105         global_dc->colorize_source_p.
9107 2015-11-12  James Norris  <jnorris@codesourcery.com>
9108             Joseph Myers  <joseph@codesourcery.com>
9110         * c-pragma.c (oacc_pragmas): Add entry for declare directive.
9111         * c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_DECLARE.
9112         (enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT and
9113         PRAGMA_OACC_CLAUSE_LINK.
9115 2015-11-11  Marek Polacek  <polacek@redhat.com>
9117         PR c/68107
9118         PR c++/68266
9119         * c-common.c (valid_array_size_p): New function.
9120         * c-common.h (valid_array_size_p): Declare.
9122 2015-11-11  Dominique d'Humieres  <dominiq@lps.ens.fr>
9124         PR bootstrap/68271
9125         * c-pragma.c (c_register_pragma_1): Update the gcc_assert to 256.
9127 2015-11-11  Andrew MacLeod  <amacleod@redhat.com>
9129         * array-notation-common.c: Remove unused header files.
9130         * c-ada-spec.c: Likewise.
9131         * c-cilkplus.c: Likewise.
9132         * c-common.c: Likewise.
9133         * c-cppbuiltin.c: Likewise.
9134         * c-dump.c: Likewise.
9135         * c-format.c: Likewise.
9136         * c-gimplify.c: Likewise.
9137         * c-indentation.c: Likewise.
9138         * c-lex.c: Likewise.
9139         * c-omp.c: Likewise.
9140         * c-opts.c: Likewise.
9141         * c-pch.c: Likewise.
9142         * c-ppoutput.c: Likewise.
9143         * c-pragma.c: Likewise.
9144         * c-pretty-print.c: Likewise.
9145         * c-semantics.c: Likewise.
9146         * c-ubsan.c: Likewise.
9147         * cilk.c: Likewise.
9148         * stub-objc.c: Likewise.
9150 2015-11-09  Thomas Schwinge  <thomas@codesourcery.com>
9151             Cesar Philippidis  <cesar@codesourcery.com>
9152             James Norris  <jnorris@codesourcery.com>
9153             Julian Brown  <julian@codesourcery.com>
9154             Nathan Sidwell  <nathan@codesourcery.com>
9156         * c-pragma.c (oacc_pragmas): Add "routine".
9157         * c-pragma.h (pragma_kind): Add PRAGMA_OACC_ROUTINE.
9159 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
9161         * c-common.c (c_common_attributes): Add scalar_storage_order.
9162         (handle_scalar_storage_order_attribute): New function.
9163         * c-pragma.c (global_sso): New variable.
9164         (maybe_apply_pragma_scalar_storage_order): New function.
9165         (handle_pragma_scalar_storage_order): Likewise.
9166         (init_pragma): Register scalar_storage_order.
9167         * c-pragma.h (maybe_apply_pragma_scalar_storage_order): Declare.
9168         * c.opt (Wscalar-storage-order): New warning.
9169         (fsso-struct=): New option.
9171 2015-11-08  Martin Sebor  <msebor@redhat.com>
9173         * c.opt (Wplacement-new): Add a period to the end of a sentence.
9175 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
9177         * c-common.c: Don't undef DEF_BUILTIN.
9179 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
9181         * c-common.c (c_cpp_error): Convert parameter from location_t to
9182         rich_location *.  Eliminate the "column_override" parameter and
9183         the call to diagnostic_override_column.
9184         Update the "done_lexing" clause to set range 0
9185         on the rich_location, rather than overwriting a location_t.
9186         * c-common.h (c_cpp_error): Convert parameter from location_t to
9187         rich_location *.  Eliminate the "column_override" parameter.
9189 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
9190             Thomas Schwinge  <thomas@codesourcery.com>
9191             James Norris  <jnorris@codesourcery.com>
9193         * c-omp.c (c_oacc_split_loop_clauses): Make TILE, GANG, WORKER, VECTOR,
9194         AUTO, SEQ, INDEPENDENT and PRIVATE loop clauses.  Associate REDUCTION
9195         clauses with parallel and kernels and loops.
9196         * c-pragma.h (enum pragma_omp_clause): Add entries for
9197         PRAGMA_OACC_CLAUSE_{INDEPENDENT,TILE,DEFAULT}.
9198         * pt.c (tsubst_omp_clauses): Add support for OMP_CLAUSE_{NUM_GANGS,
9199         NUM_WORKERS,VECTOR_LENGTH,GANG,WORKER,VECTOR,ASYNC,WAIT,TILE,AUTO,
9200         INDEPENDENT,SEQ}.
9201         (tsubst_expr): Add support for OMP_CLAUSE_{KERNELS,PARALLEL,LOOP}.
9203 2015-11-05  Martin Sebor  <msebor@redhat.com>
9205         PR c++/67942
9206         * c.opt (-Wplacement-new): New option.
9208 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
9210         * c-common.h (c_finish_omp_atomic): Add TEST argument.
9211         (c_omp_check_loop_iv, c_omp_check_loop_iv_exprs): New prototypes.
9212         * c-omp.c (c_finish_omp_atomic): Add TEST argument.  Don't call
9213         save_expr or create_tmp_var* if TEST is true.
9214         (c_finish_omp_for): Store OMP_FOR_ORIG_DECLS always.
9215         Don't call add_stmt here.
9216         (struct c_omp_check_loop_iv_data): New type.
9217         (c_omp_check_loop_iv_r, c_omp_check_loop_iv,
9218         c_omp_check_loop_iv_exprs): New functions.
9219         (c_omp_split_clauses): Adjust for lastprivate being allowed on
9220         distribute.
9221         (c_omp_declare_simd_clauses_to_numbers): Change
9222         OMP_CLAUSE_LINEAR_VARIABLE_STRIDE OMP_CLAUSE_LINEAR_STEP into numbers.
9223         (c_omp_declare_simd_clauses_to_decls): Similarly change those
9224         from numbers to PARM_DECLs.
9226 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
9228         * c-omp.c (c_omp_split_clauses): Remove conditional compilation. Use
9229         flag_checking.
9231 2015-11-03  Bernd Schmidt  <bschmidt@redhat.com>
9233         PR c++-common/67882
9234         * c-common.h (fold_offsetof_1): Add argument.
9235         * c-common.c (fold_offsetof_1): Diagnose more invalid
9236         offsetof expressions that reference elements past the end of
9237         an array.
9239 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
9240             Chung-Lin Tang  <cltang@codesourcery.com>
9242         * c-pragma.c (oacc_pragmas): Add "atomic".
9243         * c-pragma.h (pragma_kind): Add PRAGMA_OACC_ATOMIC.
9245 2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>
9247         * c-common.c (handle_target_clones_attribute): New.
9248         (c_common_attribute_table): Add handle_target_clones_attribute.
9249         (handle_always_inline_attribute): Add check on target_clones attribute.
9250         (handle_target_attribute): Ditto.
9252 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
9254         * array-notation-common.c: Reorder #include's and remove duplicates.
9255         * c-ada-spec.c: Likewise.
9256         * c-cilkplus.c: Likewise.
9257         * c-common.c: Likewise.
9258         * c-cppbuiltin.c: Likewise.
9259         * c-dump.c: Likewise.
9260         * c-format.c: Likewise.
9261         * c-gimplify.c: Likewise.
9262         * c-indentation.c: Likewise.
9263         * c-lex.c: Likewise.
9264         * c-omp.c: Likewise.
9265         * c-opts.c: Likewise.
9266         * c-pch.c: Likewise.
9267         * c-ppoutput.c: Likewise.
9268         * c-pragma.c: Likewise.
9269         * c-pretty-print.c: Likewise.
9270         * c-semantics.c: Likewise.
9271         * c-ubsan.c: Likewise.
9272         * cilk.c: Likewise.
9273         * stub-objc.c: Likewise.
9275 2015-10-28  Jason Merrill  <jason@redhat.com>
9277         * c-common.c (pointer_int_sum): Fold the MULT_EXPR.
9279 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
9280             James Norris  <jnorris@codesourcery.com>
9281             Cesar Philippidis  <cesar@codesourcery.com>
9283         PR c/64765
9284         PR c/64880
9285         * c-common.h (c_oacc_split_loop_clauses): Declare function.
9286         * c-omp.c (c_oacc_split_loop_clauses): New function.
9288 2015-10-21  Martin Sebor  <msebor@redhat.com>
9290         PR driver/68043
9291         * c.opt: End each sentence that describes an option with a period.
9293 2015-10-20  Marek Polacek  <polacek@redhat.com>
9295         * array-notation-common.c (is_cilkplus_vector_p): Define.
9296         * c-common.h (is_cilkplus_vector_p): Declare.
9298 2015-10-20  Marek Polacek  <polacek@redhat.com>
9300         * c.opt (std=gnu++11): Do not describe as experimental.
9301         (std=gnu++14): Likewise.
9303 2015-10-19  Jason Merrill  <jason@redhat.com>
9305         * c-cppbuiltin.c (c_cpp_builtins): Define
9306         __cpp_nontype_template_args.
9308 2015-10-19  Jason Merrill  <jason@redhat.com>
9310         * c-cppbuiltin.c (c_cpp_builtins): Define
9311         __cpp_enumerator_attributes, __cpp_fold_expressions,
9312         __cpp_unicode_characters.
9314 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
9315             Aldy Hernandez  <aldyh@redhat.com>
9317         * c-common.c (enum c_builtin_type): Define DEF_FUNCTION_TYPE_9,
9318         DEF_FUNCTION_TYPE_10 and DEF_FUNCTION_TYPE_11.
9319         (c_define_builtins): Likewise.
9320         * c-common.h (enum c_omp_clause_split): Add
9321         C_OMP_CLAUSE_SPLIT_TASKLOOP.
9322         (c_finish_omp_critical, c_finish_omp_ordered): Add CLAUSES argument.
9323         (c_finish_omp_for): Add ORIG_DECLV argument.
9324         * c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP as
9325         201511 instead of 201307.
9326         * c-omp.c (c_finish_omp_critical): Add CLAUSES argument, set
9327         OMP_CRITICAL_CLAUSES to it.
9328         (c_finish_omp_ordered): Add CLAUSES argument, set
9329         OMP_ORDERED_CLAUSES to it.
9330         (c_finish_omp_for): Add ORIG_DECLV argument, set OMP_FOR_ORIG_DECLS
9331         to it if OMP_FOR.  Clear DECL_INITIAL on the IVs.
9332         (c_omp_split_clauses): Handle OpenMP 4.5 combined/composite
9333         constructs and new OpenMP 4.5 clauses.  Clear
9334         OMP_CLAUSE_SCHEDULE_SIMD if not combined with OMP_SIMD.  Add
9335         verification code.
9336         * c-pragma.c (omp_pragmas_simd): Add taskloop.
9337         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKLOOP.
9338         (enum pragma_omp_clause): Add
9339         PRAGMA_OMP_CLAUSE_{DEFAULTMAP,GRAINSIZE,HINT,{IS,USE}_DEVICE_PTR}
9340         and PRAGMA_OMP_CLAUSE_{LINK,NOGROUP,NUM_TASKS,PRIORITY,SIMD,THREADS}.
9342 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
9344         * c-lex.c (interpret_float): Use real_equal instead of
9345         REAL_VALUES_EQUAL.
9347 2015-10-04  Jason Merrill  <jason@redhat.com>
9349         Implement N4514, C++ Extensions for Transactional Memory.
9350         * c-common.c (c_common_reswords): Add C++ TM TS keywords.
9351         (c_common_attribute_table): Add transaction_safe_dynamic.
9352         transaction_safe now affects type identity.
9353         (handle_tm_attribute): Handle transaction_safe_dynamic.
9354         * c-common.h (enum rid): Add RID_ATOMIC_NOEXCEPT,
9355         RID_ATOMIC_CANCEL, RID_SYNCHRONIZED.
9356         (OBJC_IS_CXX_KEYWORD): Add RID_SYNCHRONIZED.
9357         (D_TRANSMEM): New.
9358         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_transactional_memory.
9359         * c-pretty-print.c (pp_c_attributes_display): Don't print
9360         transaction_safe in C++.
9362 2015-10-02  Marek Polacek  <polacek@redhat.com>
9364         * c.opt (Wduplicated-cond): Don't enable by -Wall anymore.
9366 2015-10-02  Marek Polacek  <polacek@redhat.com>
9368         PR c/64249
9369         * c-common.c (warn_duplicated_cond_add_or_warn): New function.
9370         * c-common.h (warn_duplicated_cond_add_or_warn): Declare.
9371         * c.opt (Wduplicated-cond): New option.
9373 2015-10-01  Joseph Myers  <joseph@codesourcery.com>
9375         * c.opt (std=c11): Do not describe as experimental.
9376         (std=gnu11): Likewise.
9377         (std=iso9899:2011): Likewise.
9379 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
9381         * c-common.c (DEF_FUNCTION_TYPE_VAR_6): New.
9382         (DEF_FUNCTION_TYPE_VAR_11): Delete.
9384 2015-09-25  Marek Polacek  <polacek@redhat.com>
9386         * c-ubsan.c (ubsan_instrument_division): Remove unnecessary code.
9387         (ubsan_instrument_shift): Likewise.
9389 2015-09-25  Marek Polacek  <polacek@redhat.com>
9391         PR sanitizer/64906
9392         * c-ubsan.c (ubsan_instrument_division): Also pre-evaluate OP1.
9394 2015-09-24  Patrick Palka  <ppalka@gcc.gnu.org>
9396         * c-indentation.c (should_warn_for_misleading_indentation):
9397         Compare next_stmt_vis_column with guard_line_first_nws instead
9398         of with guard_line_vis_column.
9400 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9402         PR c/49654
9403         PR c/49655
9404         * c-pragma.c (handle_pragma_diagnostic): Detect non-warning
9405         options and options not valid for the current language.
9407 2015-09-22  Patrick Palka  <ppalka@gcc.gnu.org>
9409         * c-indentation.c (should_warn_for_misleading_indentation):
9410         Float out and consolidate the calls to get_visual_column that
9411         are passed guard_exploc as an argument.  Compare
9412         next_stmt_vis_column with guard_line_first_nws instead of with
9413         body_line_first_nws.
9415 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
9417         * c.opt (Wmultiple-inheritance, Wvirtual-inheritance, Wtemplates,
9418         Wnamespaces): New C++ warnings.
9420 2015-09-22  Jason Merrill  <jason@redhat.com>
9422         * c-common.h (abi_compat_version_crosses): New.
9423         (warn_abi_version): Declare.
9424         * c-common.c: Define it.
9425         * c-opts.c (c_common_post_options): Handle it.
9426         flag_abi_compat_version defaults to 8.
9428 2015-09-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
9430         Complete the implementation of N4230, Nested namespace definition.
9431         * c-cppbuiltin.c: Add __cpp_namespace_attributes and
9432         __cpp_nested_namespace_definitions.
9434 2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9436         * c-pragma.c (handle_pragma_diagnostic): Fix wrong return.
9438 2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9440         * c-pragma.c (handle_pragma_diagnostic): Use explicit location
9441         when warning.
9442         * c-pragma.h (pragma_lex): Add optional loc argument.
9444 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
9446         * c-format.c (check_format_arg): Adjust to use common block size in all
9447         object pools.
9449 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
9451         * c-format.c (location_from_offset): Update for change in
9452         signature of location_get_source_line.
9453         * c-indentation.c (get_visual_column): Likewise.
9454         (line_contains_hash_if): Likewise.
9456 2015-09-14  Marek Polacek  <polacek@redhat.com>
9458         * c-opts.c (c_common_post_options): Set C++ standard earlier, before
9459         setting various warnings.
9461 2015-09-14  Marek Polacek  <polacek@redhat.com>
9463         * c-common.c (warn_for_sign_compare): Cast to unsigned when shifting
9464         a negative value.
9466 2015-09-11  Mark Wielaard  <mjw@redhat.com>
9468         PR c/28901
9469         * c.opt (Wunused-variable): Option from common.opt.
9470         (Wunused-const-variable): New option.
9472 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
9474         PR c++/53184
9475         * c.opt ([Wsubobject-linkage]): Add.
9477 2015-09-03  Martin Sebor  <msebor@redhat.com>
9479         PR c/66516
9480         * c-common.h (c_decl_implicit, reject_gcc_builtin): Declare new
9481         functions.
9482         * c-common.c (reject_gcc_builtin): Define.
9484 2015-09-02  Balaji V. Iyer  <balaji.v.iyer@intel.com>
9486         PR middle-end/60586
9487         * c-common.h (cilk_gimplify_call_params_in_spawned_fn): New
9488         prototype.
9489         * c-gimplify.c (c_gimplify_expr): Added a call to the function
9490         cilk_gimplify_call_params_in_spawned_fn.
9491         * cilk.c (cilk_gimplify_call_params_in_spawned_fn): New function.
9492         (gimplify_cilk_spawn): Removed EXPR_STMT and CLEANUP_POINT_EXPR
9493         unwrapping.
9495 2015-08-25  Marek Polacek  <polacek@redhat.com>
9497         PR middle-end/67330
9498         * c-common.c (handle_weak_attribute): Don't check whether the
9499         visibility can be changed here.
9501 2015-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9503         * c-lex.c (c_lex_with_flags): Use explicit locations.
9505 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
9507         * c-ada-spec.h, c-common.c, c-common.h, c-format.c, c-format.h,
9508         c-objc.h, c-ppoutput.c, c-pragma.c, c-pragma.h: Remove useless
9510 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9512         PR middle-end/36757
9513         * c-common.c (check_builtin_function_arguments): Add check
9514         for BUILT_IN_SIGNBIT argument.
9516 2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
9518         PR c++/67160
9519         * c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_static_assert value
9520         in c++1z mode.
9522 2015-08-17  Marek Polacek  <polacek@redhat.com>
9524         * c-pretty-print.c (pp_c_cv_qualifiers): Remove code dealing
9525         with whitespaces before qualifier names.
9527 2015-08-12  Marek Polacek  <polacek@redhat.com>
9529         PR c++/55095
9530         * c-common.c (maybe_warn_shift_overflow): Properly handle
9531         left-shifting 1 into the sign bit.
9533 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9535         * c.opt (Wchkp): Use LangEnabledBy instead of EnabledBy.
9537 2015-08-06  Andrew Sutton  <andrew.n.sutton@gmail.com>
9538             Braden Obrzut  <admin@maniacsvault.net>
9539             Jason Merrill  <jason@redhat.com>
9541         Add C++ Concepts TS support.
9542         * c-common.c (c_common_reswords): Add __is_same_as, concept, requires.
9543         * c-common.h (enum rid): Add RID_IS_SAME_AS, RID_CONCEPT, RID_REQUIRES.
9544         (D_CXX_CONCEPTS, D_CXX_CONCEPTS_FLAGS): New.
9545         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_concepts.
9546         * c-opts.c (set_std_cxx1z): Set flag_concepts.
9547         * c.opt (fconcepts): New.
9549 2015-08-02  Martin Sebor  <msebor@redhat.com>
9551         * c.opt (-Wframe-address): New warning option.
9553 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
9555         * c-indentation.c (should_warn_for_misleading_indentation):
9556         Improve heuristics.
9558 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
9560         * c-indentation.c (get_visual_column): Add parameter first_nws,
9561         use it.  Update comment documenting the function.
9562         (is_first_nonwhitespace_on_line): Remove.
9563         (should_warn_for_misleading_indentation): Replace usage of
9564         of is_first_nonwhitespace_on_line with get_visual_column.
9566 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
9568         * c-indentation.h (struct token_indent_info): Define.
9569         (get_token_indent_info): Define.
9570         (warn_for_misleading_information): Declare.
9571         * c-common.h (warn_for_misleading_information): Remove.
9572         * c-identation.c (warn_for_misleading_indentation):
9573         Change declaration to take three token_indent_infos.  Adjust
9574         accordingly.
9575         * c-identation.c (should_warn_for_misleading_indentation):
9576         Likewise.  Bail out early if the body is a compound statement.
9577         (guard_tinfo_to_string): Define.
9579 2015-07-30  Jason Merrill  <jason@redhat.com>
9581         * c-pretty-print.c (unary_expression) [INDIRECT_REF]: Don't print
9582         '*' for reference decay.
9584 2015-07-30  Marek Polacek  <polacek@redhat.com>
9586         * c-common.c (warn_tautological_cmp): Bail for float types.
9588 2015-07-27  Marek Polacek  <polacek@redhat.com>
9590         PR bootstrap/67030
9591         * c-common.c (warn_tautological_cmp): Don't warn for macro expansion.
9593 2015-07-27  Marek Polacek  <polacek@redhat.com>
9595         PR c++/66555
9596         PR c/54979
9597         * c-common.c (find_array_ref_with_const_idx_r): New function.
9598         (warn_tautological_cmp): New function.
9599         * c-common.h (warn_tautological_cmp): Declare.
9600         * c.opt (Wtautological-compare): New option.
9602 2015-07-23  Marek Polacek  <polacek@redhat.com>
9604         * c-ubsan.c (ubsan_instrument_division): Use unshare_expr throughout.
9605         (ubsan_instrument_shift): Likewise.
9607 2015-07-23  Marek Polacek  <polacek@redhat.com>
9609         PR sanitizer/66908
9610         * c-ubsan.c: Include gimplify.h.
9611         (ubsan_instrument_division): Unshare OP0 and OP1.
9612         (ubsan_instrument_shift): Likewise.
9614 2015-07-20  Marek Polacek  <polacek@redhat.com>
9615             Richard Sandiford  <richard.sandiford@arm.com>
9617         PR c++/55095
9618         * c-common.c (c_fully_fold_internal): Warn about left shift overflows.
9619         Use EXPR_LOC_OR_LOC.
9620         (maybe_warn_shift_overflow): New function.
9621         * c-common.h (maybe_warn_shift_overflow): Declare.
9622         * c-opts.c (c_common_post_options): Set warn_shift_overflow.
9623         * c.opt (Wshift-overflow): New option.
9625 2015-07-16  Martin Liska  <mliska@suse.cz>
9627         * c-format.c (static void check_format_info_main): Use
9628         object_allocator instead of pool_allocator.
9629         (check_format_arg): Likewise.
9630         (check_format_info_main): Likewise.
9632 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
9634         * c-opts.c: Remove multiline #include comment.
9636 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
9638         * c-common.c: Fix double word typos.
9640 2015-07-10  Eric Botcazou  <ebotcazou@adacore.com>
9642         * c-ada-spec.h (cpp_operation): Revert latest change.
9643         * c-ada-spec.c (print_ada_declaration): Likewise.  Skip implicit
9644         constructors and destructors.
9646 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
9648         * c-common.h: Adjust includes for flags.h changes.
9649         * stub-objc.c: Likewise.
9651 2015-07-08  Eric Botcazou  <ebotcazou@adacore.com>
9653         * c-ada-spec.h (cpp_operation): Add IS_CONSTEXPR.
9654         * c-ada-spec.c (print_ada_declaration): Skip constexpr constructors.
9656 2015-07-08  Jakub Jelinek  <jakub@redhat.com>
9658         * c-omp.c (c_omp_declare_simd_clauses_to_numbers): If all clauses
9659         are to be removed, return NULL rather than original clauses list.
9661 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
9663         * array-notation-common.c: Adjust includes.
9664         * c-ada-spec.c: Likewise.
9665         * c-cilkplus.c: Likewise.
9666         * c-common.h: Likewise.
9667         * c-cppbuiltin.c: Likewise.
9668         * c-dump.c: Likewise.
9669         * c-format.c: Likewise.
9670         * c-gimplify.c: Likewise.
9671         * c-indentation.c: Likewise.
9672         * c-lex.c: Likewise.
9673         * c-omp.c: Likewise.
9674         * c-opts.c: Likewise.
9675         * c-pch.c: Likewise.
9676         * c-ppoutput.c: Likewise.
9677         * c-pragma.c: Likewise.
9678         * c-pretty-print.c: Likewise.
9679         * c-semantics.c: Likewise.
9680         * c-ubsan.c: Likewise.
9681         * cilk.c: Likewise.
9682         * stub-objc.c: Likewise.
9684 2015-07-07  Eric Botcazou  <ebotcazou@adacore.com>
9686         * c-ada-spec.h (cpp_operation): Add IS_MOVE_CONSTRUCTOR.
9687         * c-ada-spec.c (print_ada_declaration): Skip move constructors.
9689 2015-07-01  Jason Merrill  <jason@redhat.com>
9691         * c-common.h (D_CXX11): Rename from D_CXX0X.
9692         (RID_FIRST_CXX11, RID_LAST_CXX11): Rename from *_CXX0X.
9693         * c-common.c: Adjust.
9695         * c-opts.c (c_common_post_options): Default to C++14.
9697         * c-opts.c (c_common_post_options): Highest ABI level is now 10.
9699 2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
9701         Implement N4197 - Adding u8 character literals
9702         * c-ada-spec.c (print_ada_macros): Treat CPP_UTF8CHAR like
9703         CPP_CHAR.
9704         * c-common.c (c_parse_error): Print CPP_UTF8CHAR and
9705         CPP_UTF8CHAR_USERDEF tokens.
9706         * c-lex.c (c_lex_with_flags): Treat CPP_UTF8CHAR_USERDEF
9707         and CPP_UTF8CHAR tokens.
9708         (lex_charconst): Treat CPP_UTF8CHAR token.
9710 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9712         PR fortran/66605
9713         * c-common.c (do_warn_unused_parameter): Move here.
9714         * c-common.h (do_warn_unused_parameter): Declare.
9716 2015-06-29  Marek Polacek  <polacek@redhat.com>
9718         PR c/66322
9719         * c-common.c (check_case_bounds): Add bool * parameter.  Set
9720         OUTSIDE_RANGE_P.
9721         (c_add_case_label): Add bool * parameter.  Pass it down to
9722         check_case_bounds.
9723         (c_do_switch_warnings): Add bool parameters.  Implement -Wswitch-bool
9724         warning here.
9725         * c-common.h (c_add_case_label, c_do_switch_warnings): Update
9726         declarations.
9728 2015-06-27  Marek Polacek  <polacek@redhat.com>
9730         * c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P
9731         or VECTOR_INTEGER_TYPE_P throughout.
9732         * c-gimplify.c: Likewise.
9734 2015-06-26  Marek Polacek  <polacek@redhat.com>
9736         * array-notation-common.c (find_rank): Use INDIRECT_REF_P.
9737         * c-common.c (c_fully_fold_internal): Likewise.
9738         (c_alignof_expr): Likewise.
9739         * c-pretty-print.c (c_pretty_printer::postfix_expression): Likewise.
9740         * c-ubsan.c (ubsan_instrument_bounds): Likewise.
9741         * cilk.c (create_parm_list): Likewise.
9743 2015-06-26  Marek Polacek  <polacek@redhat.com>
9745         * c-common.c (handle_unused_attribute): Use VAR_OR_FUNCTION_DECL_P.
9747 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
9749         * c-common.c: Remove ipa-ref.h and plugin-api.h from include list.
9750         * c-gimplify.c: Likewise.
9751         * c-pragma.c: Likewise.
9752         * c-ubsan.c: Likewise.
9753         * cilk.c: Likewise.
9755 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9757         * c-common.c (c_type_hasher): Inherit from ggc_ptr_hash rather than
9758         ggc_hasher.
9760 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
9762         * cilk.c: Move calls.h after tm.h in the include chain.
9764 2015-06-25  Marek Polacek  <polacek@redhat.com>
9766         * array-notation-common.c: Use VAR_P throughout.
9767         * c-ada-spec.c: Likewise.
9768         * c-common.c: Likewise.
9769         * c-format.c: Likewise.
9770         * c-gimplify.c: Likewise.
9771         * c-omp.c: Likewise.
9772         * c-pragma.c: Likewise.
9773         * c-pretty-print.c: Likewise.
9774         * cilk.c: Likewise.
9776 2015-06-25  Marek Polacek  <polacek@redhat.com>
9778         * cilk.c (extract_free_variables): Use is_global_var.
9780 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
9782         * c-common.c: Don't include target-def.h.
9784 2015-06-23  Marek Polacek  <polacek@redhat.com>
9786         * c-common.c (warn_logical_operator): Use tree_int_cst_equal
9787         when comparing INTEGER_CSTs.
9789 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
9791         * c-ada-spec.h (cpp_operation): Add HAS_DEPENDENT_TEMPLATE_ARGS.
9792         * c-ada-spec.c (collect_ada_nodes): Skip NAMESPACE_DECL
9793         (dump_ada_template): Skip partially specialized types.
9795 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
9797         * c-common.c (scalar_to_vector): Use std::swap instead of manually
9798         swapping.
9800 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
9802         * array-notation-common.c: Do not include input.h, line-map.h or is-a.h.
9803         * c-ada-spec.c: Likewise.
9804         * c-cilkplus.c: Likewise.
9805         * c-common.c: Likewise.
9806         * c-common.h: Likewise.
9807         * c-cppbuiltin.c: Likewise.
9808         * c-dump.c: Likewise.
9809         * c-format.c: Likewise.
9810         * c-gimplify.c: Likewise.
9811         * c-indentation.c: Likewise.
9812         * c-lex.c: Likewise.
9813         * c-omp.c: Likewise.
9814         * c-opts.c: Likewise.
9815         * c-pch.c: Likewise.
9816         * c-ppoutput.c: Likewise.
9817         * c-pragma.c: Likewise.
9818         * c-pretty-print.c: Likewise.
9819         * c-semantics.c: Likewise.
9820         * c-ubsan.c: Likewise.
9821         * cilk.c: Likewise.
9822         * stub-objc.c: Likewise.
9824 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
9826         PR c++/65168
9827         * c-common.c (c_common_truthvalue_conversion): Warn when
9828         converting an address of a reference to a truth value.
9830 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
9832         * array-notation-common.c : Adjust include files.
9833         * c-ada-spec.c : Likewise.
9834         * c-cilkplus.c : Likewise.
9835         * c-common.c : Likewise.
9836         * c-common.h : Likewise.
9837         * c-cppbuiltin.c : Likewise.
9838         * c-dump.c : Likewise.
9839         * c-format.c : Likewise.
9840         * c-gimplify.c : Likewise.
9841         * c-indentation.c : Likewise.
9842         * c-lex.c : Likewise.
9843         * c-omp.c : Likewise.
9844         * c-opts.c : Likewise.
9845         * c-pch.c : Likewise.
9846         * c-ppoutput.c : Likewise.
9847         * c-pragma.c : Likewise.
9848         * c-pretty-print.c : Likewise.
9849         * c-semantics.c : Likewise.
9850         * c-ubsan.c : Likewise.
9851         * cilk.c : Likewise.
9852         * stub-objc.c : Likewise.
9854 2015-06-08  Marek Polacek  <polacek@redhat.com>
9856         PR c/66415
9857         * c-format.c (location_from_offset): Return LOC if LINE is null.
9859 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
9861         * c-common.h (c_parse_final_cleanups): New prototype.
9862         * c-opts.c (c_common_parse_file): Call c_parse_final_cleanups.
9864 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
9866         * c-common.c (noplt): New attribute.
9867         (handle_noplt_attribute): New handler.
9869 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
9871         * array-notation-common.c: Adjust includes for restructured coretypes.h.
9872         * c-ada-spec.c: Likewise.
9873         * c-cilkplus.c: Likewise.
9874         * c-common.c: Likewise.
9875         * c-common.h: Likewise.
9876         * c-cppbuiltin.c: Likewise.
9877         * c-dump.c: Likewise.
9878         * c-format.c: Likewise.
9879         * c-gimplify.c: Likewise.
9880         * c-indentation.c: Likewise.
9881         * c-lex.c: Likewise.
9882         * c-omp.c: Likewise.
9883         * c-opts.c: Likewise.
9884         * c-pch.c: Likewise.
9885         * c-ppoutput.c: Likewise.
9886         * c-pragma.c: Likewise.
9887         * c-pretty-print.c: Likewise.
9888         * c-semantics.c: Likewise.
9889         * c-ubsan.c: Likewise.
9890         * cilk.c: Likewise.
9891         * stub-objc.c: Likewise.
9893 2015-06-02  David Malcolm  <dmalcolm@redhat.com>
9895         PR c/66220:
9896         * c-indentation.c (should_warn_for_misleading_indentation): Use
9897         expand_location rather than expand_location_to_spelling_point.
9898         Don't warn if the guarding statement is more indented than the
9899         next/body stmts.
9901 2015-06-02  David Malcolm  <dmalcolm@redhat.com>
9903         * c-indentation.c (warn_for_misleading_indentation): Bail out
9904         immediately if -Wmisleading-indentation isn't enabled.
9906 2015-06-01  Martin Liska  <mliska@suse.cz>
9908         * c-format.c (check_format_arg):Use new type-based pool allocator.
9909         (check_format_info_main) Likewise.
9911 2015-05-31  Eric Botcazou  <ebotcazou@adacore.com>
9913         * c-ada-spec.c (is_tagged_type): Test for TYPE_METHODS on main variant.
9914         (has_nontrivial_methods): Likewise.
9916 2015-05-25  Marek Polacek  <polacek@redhat.com>
9918         * c-ubsan.c (ubsan_instrument_shift): Use type0.
9920 2015-05-22  Marek Polacek  <polacek@redhat.com>
9922         PR c/47043
9923         * c-common.c (handle_deprecated_attribute): Allow CONST_DECL.
9925 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9927         * c-cppbuiltin.c (c_cpp_builtins): Use if instead of #if with
9928         STACK_GROWS_DOWNWARD.
9930 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9932         * c-cppbuiltin.c (c_cpp_builtins): Check the value of
9933         STACK_GROWS_DOWNWARD rather than if it is defined.
9935 2015-05-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9937         PR c/52952
9938         * c-format.c (location_column_from_byte_offset): New.
9939         (location_from_offset): New.
9940         (struct format_wanted_type): Add offset_loc field.
9941         (check_format_info): Move handling of location for extra arguments
9942         closer to the point of warning.
9943         (check_format_info_main): Pass the result of location_from_offset
9944         to warning_at.
9945         (format_type_warning): Pass the result of location_from_offset
9946         to warning_at.
9948 2015-05-20  Marek Polacek  <polacek@redhat.com>
9950         * c-omp.c (check_omp_for_incr_expr): Use BINARY_CLASS_P.
9952 2015-05-20  Marek Polacek  <polacek@redhat.com>
9954         * c-ada-spec.c (dump_sloc): Use DECL_P.
9956 2015-05-20  Marek Polacek  <polacek@redhat.com>
9958         * c-pragma.c: Use VAR_OR_FUNCTION_DECL_P throughout.
9959         * c-common.c: Likewise.
9961 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
9963         * c-common.h (fe_file_change): Strengthen param from
9964         const line_map * to const line_map_ordinary *.
9965         (pp_file_change): Likewise.
9966         * c-lex.c (fe_file_change): Likewise.
9967         (cb_define): Use linemap_check_ordinary when invoking
9968         SOURCE_LINE.
9969         (cb_undef): Likewise.
9970         * c-opts.c (c_finish_options): Use linemap_check_ordinary when
9971         invoking cb_file_change.
9972         (c_finish_options): Likewise.
9973         (push_command_line_include): Likewise.
9974         (cb_file_change): Strengthen param "new_map" from
9975         const line_map * to const line_map_ordinary *.
9976         * c-ppoutput.c (cb_define): Likewise for local "map".
9977         (pp_file_change): Likewise for param "map" and local "from".
9979 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
9981         * c-common.c (shorten_compare): Use std::swap instead of explicit swaps.
9983 2015-05-18  Tom de Vries  <tom@codesourcery.com>
9985         * c-common.c (build_va_arg_1): New function.
9986         (build_va_arg): Add address operator to va_list operand if necessary.
9988 2015-05-15  Mikhail Maltsev  <maltsevm@gmail.com>
9990         PR c/48956
9991         * c-common.c (int_safely_convertible_to_real_p): Define.
9992         (unsafe_conversion_p): Check conversions involving complex types.
9993         (conversion_warning): Add new warning message for conversions which
9994         discard imaginary component.
9995         * c-common.h: (enum conversion_safety): Add new enumerator for such
9996         conversions.
9998 2015-05-14  Marek Polacek  <polacek@redhat.com>
10000         PR c/66066
10001         PR c/66127
10002         * c-common.c (c_fully_fold): Pass false down to c_fully_fold_internal.
10003         (c_fully_fold_internal): Fold C_MAYBE_CONST_EXPRs with
10004         C_MAYBE_CONST_EXPR_INT_OPERANDS set.  Add FOR_INT_CONST argument and
10005         use it.  If FOR_INT_CONST, require that all evaluated operands be
10006         INTEGER_CSTs.
10008 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
10010         * c-common.h (warn_for_misleading_indentation): New prototype.
10011         * c-indentation.c: New file.
10012         * c.opt (Wmisleading-indentation): New option.
10014 2015-05-12  Tom de Vries  <tom@codesourcery.com>
10016         PR tree-optimization/66010
10017         * c-common.c (build_va_arg): Don't mark ap addressable unless necessary.
10019 2015-05-09  Jason Merrill  <jason@redhat.com>
10021         * c-opts.c (c_common_post_options): Also clear
10022         cpp_opts->cpp_warn_cxx11_compat.
10024         * c-common.h (enum cxx_dialect): Add cxx_unset.
10025         * c-common.c (cxx_dialect): Initialize to cxx_unset.
10026         * c-opts.c (c_common_post_options): Set C++ dialect to C++98 if unset.
10028         * c.opt (std=c++14): Remove Undocumented flag and experimental warning.
10029         (std=gnu++0x): Mark as Undocumented.
10030         (std=gnu++1y): Add deprecated message.
10032 2015-05-08  Jason Merrill  <jason@redhat.com>
10034         * c.opt (Wc++11-compat): Make primary.  Rename var warn_cxx11_compat.
10035         * c-opts.c: Adjust.
10037         * c.opt (Wc++0x-compat): Also set cpp_warn_cxx11_compat.
10039 2015-05-08  Marek Polacek  <polacek@redhat.com>
10041         PR c/64918
10042         * c.opt (Woverride-init-side-effects): New option.
10044 2015-05-07  Marek Polacek  <polacek@redhat.com>
10046         PR c/65179
10047         * c-common.c (c_fully_fold_internal): Warn when left shifting a
10048         negative value.
10049         * c.opt (Wshift-negative-value): New option.
10050         * c-opts.c (c_common_post_options): Set warn_shift_negative_value
10051         when -Wextra and C99/C++11 mode.
10053 2015-05-07  Marek Polacek  <polacek@redhat.com>
10054             Martin Uecker  <uecker@eecs.berkeley.edu>
10056         * c-ubsan.c (ubsan_instrument_bounds): Don't skip instrumenting
10057         flexible member array-like members if SANITIZE_BOUNDS_STRICT.
10059 2015-05-05  Jason Merrill  <jason@redhat.com>
10061         * c.opt (Wterminate): New.
10063 2015-04-30  Marek Polacek  <polacek@redhat.com>
10065         * c-common.c (maybe_warn_bool_compare): When comparing with 0/1,
10066         require that the non-constant be of a boolean type.
10068 2015-04-29  Josh Triplett  <josh@joshtriplett.org>
10070         * c-common.c (handle_section_attribute): Refactor to reduce
10071         nesting and distinguish between error cases.
10073 2015-04-29  Marek Polacek  <polacek@redhat.com>
10075         PR c/64610
10076         * c-common.c (maybe_warn_bool_compare): Warn when comparing a boolean
10077         with 0/1.
10079 2015-04-29  Jakub Jelinek  <jakub@redhat.com>
10081         * c-common.h (omp_clause_mask): Unconditionally define as a class.
10082         Use uint64_t instead of unsigned HOST_WIDE_INT and 64 instead of
10083         HOST_BITS_PER_WIDE_INT.
10085 2015-04-28  Tom de Vries  <tom@codesourcery.com>
10087         PR tree-optimization/65887
10088         * c-common.c (build_va_arg): Mark va_arg ap argument as addressable.
10090 2015-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10091             Pierre-Marie de Rodat  <derodat@adacore.com>
10093         * c-ada-spec.c (in_function): Delete.
10094         (dump_generic_ada_node): Do not change in_function and remove the
10095         redundant code dealing with it.
10096         (print_ada_declaration): Do not change in_function.  Use INDENT_INCR.
10097         (print_ada_methods): Output the static member functions in a nested
10098         package after the regular methods as well as associated renamings.
10100 2015-04-24  Marek Polacek  <polacek@redhat.com>
10102         PR c/65830
10103         * c-common.c (c_fully_fold_internal): Use OPT_Wshift_count_negative
10104         and OPT_Wshift_count_overflow.
10106         PR c/63357
10107         * c-common.c (warn_logical_operator): Warn if the operands have the
10108         same expressions.
10110 2015-04-24  Marek Polacek  <polacek@redhat.com>
10112         PR c/61534
10113         * c-common.c (warn_logical_operator): Bail if either operand comes
10114         from a macro expansion.
10116 2015-04-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10118         PR target/55143
10119         * c-common.c (c_default_pointer_mode): Add definition.
10120         * c-common.h (c_default_pointer_mode): Add declaration.
10122 2015-03-11  Jakub Jelinek  <jakub@redhat.com>
10124         * c-common.c (c_common_nodes_and_builtins): Don't call xstrdup
10125         on record_builtin_type argument.
10127 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
10129         PR c/65120
10130         * c-common.c (warn_logical_not_parentheses): Don't warn for
10131         !x == 0 or !x != 0.
10133 2015-03-07  Marek Polacek  <polacek@redhat.com>
10135         PR sanitizer/65280
10136         * c-ubsan.c (ubsan_instrument_bounds): Check for COMPONENT_REF
10137         before trying to figure out whether we have a flexible array member.
10139 2015-03-06  Eric Botcazou  <ebotcazou@adacore.com>
10140             Jonathan Wakely  <jwakely.gcc@gmail.com>
10142         * c-ada-spec.c (dump_ada_double_name): Fix pasto.
10144 2015-03-05  Eric Botcazou  <ebotcazou@adacore.com>
10146         PR ada/65319
10147         * c-ada-spec.c (print_destructor): Remove obsolete code.
10149 2015-03-01  Eric Botcazou  <ebotcazou@adacore.com>
10151         * c-ada-spec.c (is_tagged_type): Add guard for DECL_VINDEX.
10152         (dump_template_types): Adjust DECL_TEMPLATE_INSTANTIATIONS and
10153         DECL_TEMPLATE_RESULT emulations.
10154         (dump_ada_template)): Add guard for TYPE_METHODS.
10156 2015-02-27  Marek Polacek  <polacek@redhat.com>
10158         PR c/65040
10159         * c.opt (Wformat-signedness): Don't enable by -Wformat=2.
10161 2015-02-27  Kai Tietz  <ktietz@redhat.com>
10163         PR c/35330
10164         * c-pragma.c (handle_pragma_weak): Do not try to create
10165         weak/alias of declarations not being function, or variable
10166         declarations.
10168 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
10170         PR libgomp/64625
10171         * c-common.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
10172         Remove macros.
10173         (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
10175 2015-02-16  Marek Polacek  <polacek@redhat.com>
10177         PR c/65066
10178         * c-format.c (check_format_types): Handle null param.
10180 2015-02-13  Marek Polacek  <polacek@redhat.com>
10182         PR c/65040
10183         * c-format.c (check_format_types): Don't warn about different
10184         signedness if the original value is in the range of WANTED_TYPE.
10186 2015-02-12  Jason Merrill  <jason@redhat.com>
10188         PR c++/64956
10189         * c-opts.c (c_common_post_options): Change flag_abi_version from 0
10190         to the current highest version.
10191         * c-cppbuiltin.c (c_cpp_builtins): Assert that it isn't 0.
10193 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
10195         PR c/64824
10196         PR c/64868
10197         * c-omp.c (c_finish_omp_atomic): Use TRUNC_DIV_EXPR
10198         instead of RDIV_EXPR.  Use build_binary_op instead of
10199         build2_loc.
10201 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
10203         * c-opts.c, c-pch.c, cppspec.c: All callers of fatal_error changed
10204         to pass input_location as first argument.
10206 2015-01-23  Tom de Vries  <tom@codesourcery.com>
10208         PR libgomp/64672
10209         * c.opt (fopenacc): Mark as LTO option.
10211 2015-01-23  Tom de Vries  <tom@codesourcery.com>
10213         PR libgomp/64707
10214         * c.opt (fopenmp): Mark as LTO option.
10216 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
10218         PR c/63307
10219         * cilk.c (fill_decls_vec): Only put decls into vector v.
10220         (compare_decls): Fix up formatting.
10222 2015-01-21  Igor Zamyatin  <igor.zamyatin@intel.com>
10224         PR c/63307
10225         * cilk.c: Include vec.h.
10226         (struct cilk_decls): New structure.
10227         (wrapper_parm_cb): Split this function to...
10228         (fill_decls_vec): ...this...
10229         (create_parm_list): ...and this.
10230         (compare_decls): New function.
10231         (for_local_cb): Remove.
10232         (wrapper_local_cb): Ditto.
10233         (build_wrapper_type): For now first traverse and fill vector of
10234         declarations then sort it and then deal with sorted vector.
10235         (cilk_outline): Ditto.
10236         (declare_one_free_variable): Ditto.
10238 2015-01-21  Jason Merrill  <jason@redhat.com>
10240         PR c++/64629
10241         * c-format.c (check_format_arg): Call decl_constant_value.
10243 2015-01-19  Martin Liska  <mliska@suse.cz>
10245         * c-common.c (handle_noicf_attribute): New function.
10247 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
10248             Bernd Schmidt  <bernds@codesourcery.com>
10249             James Norris  <jnorris@codesourcery.com>
10250             Cesar Philippidis  <cesar@codesourcery.com>
10251             Ilmir Usmanov  <i.usmanov@samsung.com>
10252             Jakub Jelinek  <jakub@redhat.com>
10254         * c.opt (fopenacc): New option.
10255         * c-cppbuiltin.c (c_cpp_builtins): Conditionally define _OPENACC.
10256         * c-common.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
10257         New macros.
10258         * c-common.h (c_finish_oacc_wait): New prototype.
10259         * c-omp.c: Include "omp-low.h" and "gomp-constants.h".
10260         (c_finish_oacc_wait): New function.
10261         * c-pragma.c (oacc_pragmas): New variable.
10262         (c_pp_lookup_pragma, init_pragma): Handle it.
10263         * c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_CACHE,
10264         PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA, PRAGMA_OACC_EXIT_DATA,
10265         PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP, PRAGMA_OACC_PARALLEL,
10266         PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
10267         (enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ASYNC,
10268         PRAGMA_OACC_CLAUSE_AUTO, PRAGMA_OACC_CLAUSE_COLLAPSE,
10269         PRAGMA_OACC_CLAUSE_COPY, PRAGMA_OACC_CLAUSE_COPYIN,
10270         PRAGMA_OACC_CLAUSE_COPYOUT, PRAGMA_OACC_CLAUSE_CREATE,
10271         PRAGMA_OACC_CLAUSE_DELETE, PRAGMA_OACC_CLAUSE_DEVICE,
10272         PRAGMA_OACC_CLAUSE_DEVICEPTR, PRAGMA_OACC_CLAUSE_FIRSTPRIVATE,
10273         PRAGMA_OACC_CLAUSE_GANG, PRAGMA_OACC_CLAUSE_HOST,
10274         PRAGMA_OACC_CLAUSE_IF, PRAGMA_OACC_CLAUSE_NUM_GANGS,
10275         PRAGMA_OACC_CLAUSE_NUM_WORKERS, PRAGMA_OACC_CLAUSE_PRESENT,
10276         PRAGMA_OACC_CLAUSE_PRESENT_OR_COPY,
10277         PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYIN,
10278         PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYOUT,
10279         PRAGMA_OACC_CLAUSE_PRESENT_OR_CREATE, PRAGMA_OACC_CLAUSE_PRIVATE,
10280         PRAGMA_OACC_CLAUSE_REDUCTION, PRAGMA_OACC_CLAUSE_SELF,
10281         PRAGMA_OACC_CLAUSE_SEQ, PRAGMA_OACC_CLAUSE_VECTOR,
10282         PRAGMA_OACC_CLAUSE_VECTOR_LENGTH, PRAGMA_OACC_CLAUSE_WAIT,
10283         PRAGMA_OACC_CLAUSE_WORKER.
10285 2015-01-14  Marcos Diaz  <marcos.diaz@tallertechnologies.com>
10287         * c-cppbuiltin.c (c_cpp_builtins): New cpp define __SSP_EXPLICIT__
10288         for the new option fstack-protector_explicit.
10289         * c-common.c (c_common_attribute_table): Add stack_protect attribute.
10290         (handle_stack_protect_attribute): New function.
10292 2015-01-13  Martin Uecker  <uecker@eecs.berkeley.edu>
10294         * c.opt: New option -Warray-bounds=.
10296 2015-01-09  Michael Collison  <michael.collison@linaro.org>
10298         * array-notation-common.c: Include hash-set.h, machmode.h,
10299         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10300         fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
10301         * c-ada-spec.c: Ditto.
10302         * c-cilkplus.c: Ditto.
10303         * c-common.c: Include input.h due to flattening of tree.h.
10304         Define macro GCC_C_COMMON_C.
10305         * c-common.h: Flatten tree.h header files into c-common.h.
10306         Remove include of tree-core.h.
10307         * c-cppbuiltin.c: Include hash-set.h, machmode.h,
10308         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10309         fold-const.h, wide-int.h, and inchash.h due to
10310         flattening of tree.h.
10311         * c-dump.c: Ditto.
10312         * c-format.c: Flatten tree.h header files into c-common.h.
10313         * c-cppbuiltin.c: Include hash-set.h, machmode.h,
10314         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10315         fold-const.h, wide-int.h, and inchash.h due to
10316         flattening of tree.h.
10317         * c-dump.c: Include hash-set.h, machmode.h,
10318         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10319         fold-const.h, wide-int.h, and inchash.h due to
10320         flattening of tree.h.
10321         * c-format.c: Include hash-set.h, machmode.h,
10322         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10323         fold-const.h, wide-int.h, inchash.h and real.h due to
10324         flattening of tree.h.
10325         * c-gimplify.c: Include hash-set.h, machmode.h,
10326         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
10327         fold-const.h, wide-int.h, and inchash.h due to
10328         flattening of tree.h.
10329         * cilk.c: Ditto.
10330         * c-lex.c: Ditto.
10331         * c-omp.c: Ditto.
10332         * c-opts.c: Ditto.
10333         * c-pch.c: Ditto.
10334         * c-ppoutput.c: Ditto.
10335         * c-pragma.c: Ditto.
10336         * c-pretty-print.c: Ditto.
10337         * c-semantics.c: Ditto.
10338         * c-ubsan.c: Ditto.
10339         * stub-objc.c: Ditto.
10341 2015-01-08  Jason Merrill  <jason@redhat.com>
10343         * c-ubsan.c (ubsan_maybe_instrument_array_ref): Use
10344         do_ubsan_in_current_function.
10345         (ubsan_maybe_instrument_reference_or_call): Likewise.
10346         * c-ubsan.h: Declare it.
10348 2015-01-08  Mike Stump  <mikestump@comcast.net>
10350         * c-common.c (c_common_attribute_table): Add no_sanitize_thread.
10352 2015-01-07  Marek Polacek  <polacek@redhat.com>
10354         PR c/64440
10355         * c-common.c (c_fully_fold_internal): Warn for division and modulo
10356         if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST and is zero.
10358 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
10360         PR c++/31397
10361         * c.opt (Wsuggest-override): New option.
10363 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
10365         Update copyright years.
10367 2015-01-05  Marek Polacek  <polacek@redhat.com>
10369         PR c/64423
10370         * c-common.c (warn_array_subscript_with_type_char): Add location_t
10371         parameter.  Use it.
10372         * c-common.h (warn_array_subscript_with_type_char): Update
10373         declaration.
10375 2014-12-20  Edward Smith-Rowland  <3dw4rd@verizon.net>
10377         * c-cppbuiltin.c (__cpp_sized_deallocation): Uncomment and move macro.
10378         Control macro with flag_sized_deallocation.
10380 2014-12-20  Martin Uecker  <uecker@eecs.berkeley.edu>
10382         * c.opt (Wdiscarded-array-qualifiers): New option.
10384 2014-12-19  Jakub Jelinek  <jakub@redhat.com>
10386         PR preprocessor/63831
10387         * c-cppbuiltin.c (c_cpp_builtins): Don't define __has_attribute
10388         and __has_cpp_attribute here.
10389         * c-ppoutput.c (init_pp_output): Set cb->has_attribute to
10390         c_common_has_attribute.
10391         * c-common.h (c_common_has_attribute): New prototype.
10392         * c-lex.c (init_c_lex): Set cb->has_attribute to
10393         c_common_has_attribute instead of cb_has_attribute.
10394         (get_token_no_padding): New function.
10395         (cb_has_attribute): Renamed to ...
10396         (c_common_has_attribute): ... this.  No longer static.  Use
10397         get_token_no_padding, require ()s, don't build TREE_LIST
10398         unnecessarily, fix up formatting, adjust diagnostics, call
10399         init_attributes.
10401 2014-12-15  Jason Merrill  <jason@redhat.com>
10403         * c.opt (-fsized-deallocation, -Wc++14-compat): New.
10404         (-Wsized-deallocation): New.
10405         * c-opts.c (c_common_post_options): -fsized-deallocation defaults
10406         to on in C++14 and up.
10408 2014-12-11  Jason Merrill  <jason@redhat.com>
10410         * c-cppbuiltin.c (c_cpp_builtins): Enable C++14 __cpp_constexpr.
10412         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_runtime_arrays if
10413         we aren't complaining about VLAs.
10415 2014-12-06  Marek Polacek  <polacek@redhat.com>
10417         PR tree-optimization/64183
10418         * c-gimplify.c (c_gimplify_expr): Don't convert the RHS of a
10419         shift-expression if it is integer_type_node.  Use types_compatible_p.
10421 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
10423         * c-common.c (convert_vector_to_pointer_for_subscript): Remove NULL
10424         last argument from create_tmp_var_raw and create_tmp_var calls.
10425         * cilk.c (gimplify_cilk_spawn): Likewise.
10426         * c-omp.c (c_finish_omp_atomic): Likewise.
10428 2014-11-28  Marek Polacek  <polacek@redhat.com>
10430         * c-ubsan.c (ubsan_instrument_shift): Use op1_utype for MINUS_EXPR
10431         instead of unsigned_type_node.
10433 2014-11-28  Marek Polacek  <polacek@redhat.com>
10435         PR c/63862
10436         * c-ubsan.c (ubsan_instrument_shift): Change the type of a MINUS_EXPR
10437         to op1_utype.
10438         * c-gimplify.c (c_gimplify_expr): Convert right operand of a shift
10439         expression to unsigned_type_node.
10441 2014-11-20  Mark Wielaard  <mjw@redhat.com>
10443         PR debug/38757
10444         * c-opts.c (set_std_c89): Set lang_hooks.name.
10445         (set_std_c99): Likewise.
10446         (set_std_c11): Likewise.
10447         (set_std_cxx98): Likewise.
10448         (set_std_cxx11): Likewise.
10449         (set_std_cxx14): Likewise.
10450         (set_std_cxx1z): Likewise.
10452 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
10454         PR target/63764
10455         * c-common.h (convert_vector_to_pointer_for_subscript): Change
10456         return type to bool.
10457         * c-common.c: Include gimple-expr.h.
10458         (convert_vector_to_pointer_for_subscript): Change return type to
10459         bool.  If *vecp is not lvalue_p and has VECTOR_TYPE, return true
10460         and copy it into a TARGET_EXPR and use that instead of *vecp
10461         directly.
10463 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
10465         Merger of git branch "gimple-classes-v2-option-3".
10466         * ChangeLog.gimple-classes: New.
10467         * c-gimplify.c (add_block_to_enclosing): Strengthen local "stack"
10468         from being just a vec<gimple> to a vec<gbind *>.
10470 2014-11-18  Jakub Jelinek  <jakub@redhat.com>
10472         PR sanitizer/63813
10473         * c-ubsan.c (ubsan_maybe_instrument_reference_or_call): Change type
10474         argument to ptype, set type to TREE_TYPE (ptype).  Don't call
10475         get_pointer_alignment for non-pointers.  Use ptype, or if it is
10476         reference type, corresponding pointer type, as type of kind
10477         argument.
10478         (ubsan_maybe_instrument_reference,
10479         ubsan_maybe_instrument_member_call): Adjust callers.
10481 2014-11-15  Marek Polacek  <polacek@redhat.com>
10483         PR middle-end/63884
10484         * array-notation-common.c (is_sec_implicit_index_fn): Return false
10485         for NULL fndecl.
10486         (extract_array_notation_exprs): Return for NULL node.
10488 2014-11-12  Joseph Myers  <joseph@codesourcery.com>
10490         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define and
10491         undefine __NO_MATH_ERRNO__ based on changes to -fmath-errno state.
10493 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
10495         PR c/59708
10496         * c-common.c (check_builtin_function_arguments): Handle
10497         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW.
10499 2014-11-10  Andi Kleen  <ak@linux.intel.com>
10501         PR c/60804
10502         * c-common.h (check_no_cilk): Declare.
10503         * cilk.c (get_error_location): New function.
10504         (check_no_cilk): Dito.
10506 2014-11-10  Andi Kleen  <ak@linux.intel.com>
10508         * cilk.c (recognize_spawn): Use expression location
10509         for error message.
10511 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
10513         * c.opt ([Wshift-count-negative, Wshift-count-overflow]): Add.
10515 2014-11-10  Edward Smith-Rowland  <3dw4rd@verizon.net>
10517         * c-cppbuiltin.c (__has_attribute, __has_cpp_attribute): New macros;
10518         (__cpp_rtti, __cpp_exceptions): New macros for C++98;
10519         (__cpp_range_based_for, __cpp_initializer_lists,
10520         __cpp_delegating_constructors, __cpp_nsdmi,
10521         __cpp_inheriting_constructors, __cpp_ref_qualifiers): New macros
10522         for C++11; (__cpp_attribute_deprecated): Remove in favor of
10523         __has_cpp_attribute.
10524         * c-lex.c (cb_has_attribute): New callback CPP function;
10525         (init_c_lex): Set has_attribute callback.
10527 2014-11-04  Richard Biener  <rguenther@suse.de>
10529         * c-common.c (shorten_compare): Do not shorten mixed
10530         DFP and non-DFP compares.
10532 2014-11-01  Edward Smith-Rowland  <3dw4rd@verizon.net>
10534         * g++.dg/cpp1y/feat-cxx11.C: Commentary and rearrangement of tests.
10535         * g++.dg/cpp1y/feat-cxx11-neg.C: Add aggregate NSDMI test.
10536         Commentary and rearrangement of tests.
10537         * g++.dg/cpp1y/feat-cxx14.C: Enable aggregate NSDMI test.
10538         Commentary and rearrangement of tests.
10539         * g++.dg/cpp1y/feat-cxx98-neg.C: Ditto.
10540         * g++.dg/cpp1y/feat-cxx98.C: Commentary.
10542 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
10544         * c-common.c, c-common.h, c-cppbuiltin.c, c-lex.c: Remove redundant
10545         enum from machine_mode.
10547 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
10549         * c-common.c: Adjust include files.
10550         * c-gimplify.c: Ditto.
10551         * cilk.c: Ditto.
10552         * c-pragma.c: Ditto.
10553         * c-ubsan.c: Ditto.
10555 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
10557         * c-gimplify.c: Adjust include files.
10559 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10561         PR c++/53061
10562         * c-opts.c (c_common_diagnostics_set_defaults): Renamed from
10563         c_common_initialize_diagnostics.
10564         * c-common.h: Likewise.
10566 2014-10-24  Marek Polacek  <polacek@redhat.com>
10568         PR c/56980
10569         * c-pretty-print.c (c_pretty_printer::simple_type_specifier): Don't
10570         print "struct"/"union"/"enum" for typedefed names.
10572 2014-10-23  Marek Polacek  <polacek@redhat.com>
10574         * c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
10575         in unsigned type.
10577 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
10578             Yury Gribov  <y.gribov@samsung.com>
10580         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
10581         ubsan_instrument_vla): Check bits in flag_sanitize_recover bitmask
10582         instead of flag_sanitize_recover as bool flag.
10584 2014-10-21  Kirill Yukhin  <kirill.yukhin@intel.com>
10586         * cilk.c: Revert previous change.
10588 2014-10-20  Igor Zamyatin  <igor.zamyatin@intel.com>
10590         PR c/63307
10591         * cilk.c: Include vec.h.
10592         (struct cilk_decls): New structure.
10593         (wrapper_parm_cb): Split this function to...
10594         (fill_decls_vec): ...this...
10595         (create_parm_list): ...and this.
10596         (compare_decls): New function.
10597         (for_local_cb): Remove.
10598         (wrapper_local_cb): Ditto.
10599         (build_wrapper_type): For now first traverse and fill vector of
10600         declarations then sort it and then deal with sorted vector.
10601         (cilk_outline): Ditto.
10602         (declare_one_free_variable): Ditto.
10604 2014-10-17  Marek Polacek  <polacek@redhat.com>
10606         * c-opts.c (c_common_post_options): Set warn_implicit_int.
10607         * c.opt (Wimplicit-int): Initialize to -1.
10609 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
10611         * c-pragma.c: Adjust include files.
10612         * c-semantics.c: Likewise.
10614 2014-10-16  DJ Delorie  <dj@redhat.com>
10616         * c-cppbuiltin.c (cpp_atomic_builtins): Don't assume pointers are
10617         multiples of bytes.
10619 2014-10-14  Jason Merrill  <jason@redhat.com>
10621         PR c++/63455
10622         * c-common.h (CPP_PREPARSED_EXPR): New.
10623         (N_CP_TTYPES): Adjust.
10625 2014-10-15  Marek Polacek  <polacek@redhat.com>
10627         * c-opts.c (c_common_init_options): Make -std=gnu11 the default for C.
10629 2014-10-14  DJ Delorie  <dj@redhat.com>
10631         * c-pretty-print.c (pp_c_integer_constant): Check for all __intN
10632         types, not just __int128.
10633         * c-cppbuiltin.c (c_cpp_builtins): Add builtins for all __intN
10634         types, not just __int128.
10635         (cpp_atomic_builtins): Round pointer sizes up.
10636         (type_suffix): Use type precision, not specific types.
10637         * c-common.c (c_common_reswords): Remove __int128 special case.
10638         (c_common_type_for_size): Check for all __intN types, not just
10639         __int128.
10640         (c_common_type_for_mode): Likewise.
10641         (c_common_signed_or_unsigned_type): Likewise.
10642         (c_build_bitfield_integer_type): Likewise.
10643         (c_common_nodes_and_builtins): Likewise.
10644         (keyword_begins_type_specifier): Likewise.
10645         * c-common.h (rid): Remove RID_INT128 and add RID_INT_N_* for all
10646         __intN variants.
10648 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
10650         * c-common.c: Use hash_table instead of hashtab.
10652 2014-10-06  Edward Smith-Rowland  <3dw4rd@verizon.net>
10654         * c-cppbuiltin.c: Move __cpp_attribute_deprecated to the
10655         C++11 section.
10657 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
10659         PR c++/54427
10660         PR c++/57198
10661         PR c++/58845
10662         * c-common.c (warn_logical_operator): Punt for vectors.
10664 2014-10-01  Edward Smith-Rowland  <3dw4rd@verizon.net>
10666         Implement SD-6: SG10 Feature Test Recommendations
10667         * c-cppbuiltin.c (c_cpp_builtins()): Define language feature
10668         macros and the __has_header macro.
10670 2014-09-30  Jason Merrill  <jason@redhat.com>
10672         * c-common.h (enum rid): Add RID_IS_TRIVIALLY_ASSIGNABLE and
10673         RID_IS_TRIVIALLY_CONSTRUCTIBLE.
10674         * c-common.c (c_common_reswords): Add __is_trivially_copyable.
10676         * c-common.h (enum rid): Add RID_IS_TRIVIALLY_COPYABLE.
10677         * c-common.c (c_common_reswords): Add __is_trivially_copyable.
10679         * c-common.h (enum rid): Remove RID_IS_CONVERTIBLE_TO.
10680         * c-common.c (c_common_reswords): Remove __is_convertible_to.
10682 2014-09-24  Marek Polacek  <polacek@redhat.com>
10684         PR c/61405
10685         PR c/53874
10686         * c-common.h (struct c_common_resword): Don't define CPP_KEYWORD.
10688 2014-09-23  Andi Kleen  <ak@linux.intel.com>
10690         * c-common.c (handle_no_reorder_attribute): New function.
10691         (c_common_attribute_table): Add no_reorder attribute.
10693 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
10695         * c-cppbuiltin.c (c_cpp_builtins): Define
10696         __LIBGCC_*_EXCESS_PRECISION__ macros for supported floating-point
10697         modes.
10699 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
10701         * c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_*_FUNC_EXT__
10702         for supported floating-point modes.
10704 2014-09-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10706         * c.opt (Wpsabi): Use LangEnabledBy.
10707         * c-opts.c (c_common_handle_option): Do not handle here.
10709 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
10711         * c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_HAS_%s_MODE__
10712         macros for floating-point modes.
10714 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
10716         PR target/58757
10717         * c-cppbuiltin.c (builtin_define_float_constants): Correct
10718         __*_DENORM_MIN__ without denormals.
10720 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
10722         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
10723         ubsan_instrument_vla, ubsan_instrument_return): Adjust
10724         ubsan_create_data callers.
10725         (ubsan_instrument_bounds): Don't emit UBSAN_BOUNDS at all if
10726         index is constant or BIT_AND_EXPR with constant mask and is
10727         small enough for the bound.
10728         * c-gimplify.c (ubsan_walk_array_refs_r): For ADDR_EXPR of
10729         ARRAY_REF, make sure the inner ARRAY_REF is not walked again.
10731 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10733         * c.opt: Add CppReason to various flags.
10734         (Wdate-time): Re-sort.
10735         * c-common.c: Include c-common.h earlier.
10736         (struct reason_option_codes_t): Delete.
10737         (c_option_controlling_cpp_error): Prefix global type and struct
10738         with cpp_.
10740 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10742         * c.opt (Wnormalized): New.
10743         (Wnormalized=): Use Enum and Reject Negative.
10744         * c-opts.c (c_common_handle_option): Do not handle Wnormalized here.
10746 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
10748         * c-cppbuiltin.c (c_cpp_builtins): Define macros for mantissa
10749         digits of floating-point modes if -fbuilding-libgcc.
10751 2014-09-05  Joseph Myers  <joseph@codesourcery.com>
10753         * c-cppbuiltin.c (c_cpp_builtins): Also define
10754         __LIBGCC_EH_TABLES_CAN_BE_READ_ONLY__,
10755         __LIBGCC_EH_FRAME_SECTION_NAME__, __LIBGCC_JCR_SECTION_NAME__,
10756         __LIBGCC_CTORS_SECTION_ASM_OP__, __LIBGCC_DTORS_SECTION_ASM_OP__,
10757         __LIBGCC_TEXT_SECTION_ASM_OP__, __LIBGCC_INIT_SECTION_ASM_OP__,
10758         __LIBGCC_INIT_ARRAY_SECTION_ASM_OP__,
10759         __LIBGCC_STACK_GROWS_DOWNWARD__,
10760         __LIBGCC_DONT_USE_BUILTIN_SETJMP__,
10761         __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__,
10762         __LIBGCC_DWARF_FRAME_REGISTERS__,
10763         __LIBGCC_EH_RETURN_STACKADJ_RTX__, __LIBGCC_JMP_BUF_SIZE__,
10764         __LIBGCC_STACK_POINTER_REGNUM__ and
10765         __LIBGCC_VTABLE_USES_DESCRIPTORS__ for -fbuilding-libgcc.
10766         (builtin_define_with_value): Handle backslash-escaping in string
10767         macro values.
10769 2014-09-05  Richard Biener  <rguenther@suse.de>
10771         PR middle-end/63148
10772         * c-format.c (check_format_arg): Properly handle
10773         effectively signed POINTER_PLUS_EXPR offset.
10775 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10777         * c.opt (Wc90-c99-compat,Wc++-compat,Wcomment,Wendif-labels,
10778         Winvalid-pch,Wlong-long,Wmissing-include-dirs,Wmultichar,Wpedantic,
10779         (Wdate-time,Wtraditional,Wundef,Wvariadic-macros): Add CPP, Var
10780         and Init.
10781         * c-opts.c (c_common_handle_option): Do not handle here.
10782         (sanitize_cpp_opts): Likewise.
10783         * c-common.c (struct reason_option_codes_t): Handle
10784         CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
10786 2014-09-03  Marek Polacek  <polacek@redhat.com>
10788         * c.opt (Wlogical-not-parentheses): Enable by -Wall.
10790 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
10791             Balaji V. Iyer  <balaji.v.iyer@intel.com>
10792             Igor Zamyatin  <igor.zamyatin@intel.com>
10794         * c-cilkplus.c (cilk_for_number_of_iterations): New function.
10795         * c-common.c (c_common_reswords): Added _Cilk_for.
10796         * c-common.h (enum rid): Added RID_CILK_FOR.
10797         (cilk_for_number_of_iterations): Add declaration.
10798         * c-omp.c (c_finish_omp_for): Added checks for CILK_SIMD and
10799         CILK_FOR.
10800         * c-pragma.c (init_pragma): Register "grainsize" pragma.
10801         * c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_GRAINSIZE.
10803 2014-08-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10805         * c.opt (Wbuiltin-macro-redefined,Wdeprecated,Wendif-labels,
10806         Winvalid-pch,Wliteral-suffix,Wmissing-include-dirs,Wtrigraphs,
10807         Wundef): Use CPP, Var and Init.
10808         * c-opts.c (c_common_handle_option): Do not handle the above flags here.
10810 2014-08-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10812         * c.opt (Wbuiltin-macro-redefined): Use CPP, Var and Init.
10813         * c-opts.c (c_common_handle_option): Do not handle here.
10815 2014-08-25  Jason Merrill  <jason@redhat.com>
10817         * c.opt: Change -std=c++1y and -std=gnu++1y to be aliases for
10818         -std=c++14 and -std=gnu++14, rather than the reverse.
10819         * c-opts.c (c_common_handle_option): Change OPT_std_c__1y and
10820         OPT_std_gnu__1y to OPT_std_c__14 and OPT_std_gnu__14.
10821         * c-common.h (cxx_dialect): Remove cxx1y.
10823 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
10825         * c-common.h (enum cxx_dialect): Add cxx14.
10826         * c-opts.c (set_std_cxx1y): Rename to set_std_cxx14; Use cxx14.
10827         * c-ubsan.c (ubsan_instrument_shift): Change comment and logic from
10828         cxx_dialect == cxx11 || cxx_dialect == cxx1y to cxx_dialect >= cxx11.
10830 2014-08-22  Jason Merrill  <jason@redhat.com>
10832         * c.opt (std=gnu++17): Fix alias.
10834 2014-08-22  Marek Polacek  <polacek@redhat.com>
10836         PR c++/62199
10837         * c-common.c (warn_logical_not_parentheses): Don't check LHS.  Don't
10838         check for vector types.  Drop LHS argument.
10839         * c-common.h (warn_logical_not_parentheses): Adjust.
10841 2014-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10843         * c.opt (Wcomment): Use CPP, Var and LangEnabledBy.
10844         (Wmultichar): Likewise.
10845         (Wdate-time): Use C-family languages instead of Common. Use CPP
10846         and Var.
10847         * c-opts.c (c_common_handle_option): Do not handle the above
10848         options here.
10849         (sanitize_cpp_opts): Likewise.
10851 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10853         PR fortran/44054
10854         * c-opts.c: Include tree-diagnostics.h.
10855         (c_diagnostic_finalizer): New.
10856         (c_common_initialize_diagnostics): Use it.
10858 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10860         PR preprocessor/51303
10861         * c-common.c (struct reason_option_codes_t option_codes):
10862         Add CPP_W_MISSING_INCLUDE_DIRS. Sort alphabetically.
10864 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10866         PR c/60975
10867         PR c/53063
10868         * c.opt (Wvariadic-macros): Use CPP and LangEnabledBy.
10869         * c-opts.c (c_common_handle_option): Call cpp_handle_option_auto.
10870         (c_common_post_options): Call init_global_opts_from_cpp.
10871         (sanitize_cpp_opts): Do not handle Wvariadic-macros here.
10873 2014-08-19  Marek Polacek  <polacek@redhat.com>
10875         PR c++/62153
10876         * c-common.c (maybe_warn_bool_compare): New function.
10877         * c-common.h (maybe_warn_bool_compare): Declare.
10878         * c.opt (Wbool-compare): New option.
10880 2014-08-19  Marek Polacek  <polacek@redhat.com>
10882         * c.opt (Wc99-c11-compat): New option.
10884 2014-08-19  Marek Polacek  <polacek@redhat.com>
10886         * c-opts.c (sanitize_cpp_opts): Make warn_long_long be set according
10887         to warn_c90_c99_compat.
10888         * c.opt (Wc90-c99-compat, Wdeclaration-after-statement): Initialize
10889         to -1.
10891 2014-08-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10892             Steven Bosscher  <steven@gcc.gnu.org>
10894         PR c/52952
10895         * c-format.c: Add extra_arg_loc and format_string_loc to struct
10896         format_check_results.
10897         (check_function_format): Use true and add comment for boolean
10898         argument.
10899         (finish_dollar_format_checking): Use explicit location when warning.
10900         (check_format_info): Likewise.
10901         (check_format_arg): Set extra_arg_loc and format_string_loc.
10902         (check_format_info_main): Use explicit location when warning.
10903         (check_format_types): Pass explicit location.
10904         (format_type_warning): Likewise.
10906 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10908         PR fortran/44054
10909         * c-format.c: Handle Fortran flags.
10911 2014-08-12  Igor Zamyatin  <igor.zamyatin@intel.com>
10913         PR other/61962
10914         * array-notation-common.c (find_rank): Added handling for other
10915         types of references.
10917 2014-08-10  Marek Polacek  <polacek@redhat.com>
10919         PR c/51849
10920         * c-opts.c (sanitize_cpp_opts): Pass warn_c90_c99_compat to libcpp.
10921         * c.opt (Wc90-c99-compat): Add option.
10923 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
10925         * c-gimplify.c, cilk.c: Remove includes of pointer-set.h.
10927 2014-08-03  Marek Polacek  <polacek@redhat.com>
10929         * c-common.c (check_case_value): Add location_t parameter.  Use it.
10930         (c_add_case_label): Pass loc to check_case_value.
10932 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
10934         * cilk.c: Use hash_map instead of pointer_map.
10936 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
10938         * c-gimplify.c: Use hash_set instead of pointer_set.
10940 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
10942         PR middle-end/61455
10943         * array-notation-common.c (extract_array_notation_exprs): Handling
10944         of DECL_EXPR added.
10946 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
10948         * c-common.h (min_align_of_type): Removed prototype.
10949         * c-common.c (min_align_of_type): Removed.
10950         * c-ubsan.h (ubsan_maybe_instrument_reference,
10951         ubsan_maybe_instrument_member_call): New prototypes.
10952         * c-ubsan.c: Include stor-layout.h and builtins.h.
10953         (ubsan_maybe_instrument_reference_or_call,
10954         ubsan_maybe_instrument_reference, ubsan_maybe_instrument_call): New
10955         functions.
10957 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
10959         PR c++/60517
10960         * c.opt (-Wreturn-local-addr): Move to common.opt.
10962 2014-07-30  Jason Merrill  <jason@redhat.com>
10964         PR c++/61659
10965         PR c++/61687
10966         Revert:
10967         * c.opt (-fuse-all-virtuals): New.
10969 2014-07-30  Tom Tromey  <tromey@redhat.com>
10971         PR c/59855
10972         * c.opt (Wdesignated-init): New option.
10973         * c-common.c (c_common_attribute_table): Add "designated_init".
10974         (handle_designated_init): New function.
10976 2014-07-24  Marek Polacek  <polacek@redhat.com>
10978         PR c/57653
10979         * c-opts.c (c_finish_options): If -imacros is in effect, return.
10981 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
10983         PR preprocessor/60723 - missing system-ness marks for macro tokens
10984         * c-ppoutput.c (struct print::prev_was_system_token): New data
10985         member.
10986         (init_pp_output): Initialize it.
10987         (maybe_print_line_1, maybe_print_line, print_line_1, print_line)
10988         (do_line_change): Return a flag saying if a line marker was
10989         emitted or not.
10990         (scan_translation_unit): Detect if the system-ness of the token we
10991         are about to emit is different from the one of the previously
10992         emitted token.  If so, emit a line marker.  Avoid emitting useless
10993         adjacent line markers.  Avoid emitting line markers for tokens
10994         originating from the expansion of built-in macros.
10995         (scan_translation_unit_directives_only): Adjust.
10997 2014-07-15  Marek Polacek  <polacek@redhat.com>
10999         * c-ubsan.c (ubsan_instrument_bounds): Don't instrument if
11000         TYPE_MAX_VALUE is NULL.
11002 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
11004         PR middle-end/61294
11005         * c.opt (Wmemset-transposed-args): New warning.
11007 2014-07-10  Jason Merrill  <jason@redhat.com>
11009         PR c++/61659
11010         PR c++/61687
11011         * c.opt (-fuse-all-virtuals): New.
11013 2014-07-09  Richard Biener  <rguenther@suse.de>
11015         PR c-family/61741
11016         * c-gimplify.c (c_gimplify_expr): Gimplify self-modify expressions
11017         using unsigned arithmetic if overflow does not wrap instead of
11018         if overflow is undefined.
11020 2014-07-06  Marek Polacek  <polacek@redhat.com>
11022         PR c/6940
11023         * c.opt (Wsizeof-array-argument): New option.
11025 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
11027         * c-ada-spec.c (dump_ada_nodes): Don't call qsort if
11028         comments->count <= 1, as comments->entries might be NULL.
11030 2014-07-01  Marek Polacek  <polacek@redhat.com>
11032         * c.opt (Wint-conversion): New option.
11034 2014-07-01  Marek Polacek  <polacek@redhat.com>
11036         PR c/58286
11037         * c.opt (Wincompatible-pointer-types): New option.
11039 2014-06-30  Paolo Carlini  <paolo.carlini@oracle.com>
11041         PR c++/51400
11042         * c-common.c (handle_noreturn_attribute, handle_const_attribute):
11043         Do not discard TYPE_QUALS of type.
11045 2014-06-26  Jason Merrill  <jason@redhat.com>
11047         * c-common.h (enum cxx_dialect): Add cxx1z.
11048         * c.opt (std=c++1z, std=c++17, std=gnu++1z, std=gnu++17): New.
11049         * c-opts.c (c_common_handle_option, set_std_cxx1z): Handle it.
11051 2014-06-26  Teresa Johnson  <tejohnson@google.com>
11053         * c-common.h (get_dump_info): Declare.
11054         * c-gimplify.c (c_genericize): Use saved dump files.
11055         * c-opts.c (c_common_parse_file): Begin and end dumps
11056         once around parsing invocation.
11057         (get_dump_info): New function.
11059 2014-06-23  Marek Polacek  <polacek@redhat.com>
11060             Andrew MacLeod  <amacleod@redhat.com>
11062         PR c/61553
11063         * c-common.c (get_atomic_generic_size): Don't segfault if the
11064         type doesn't have a size.
11066 2014-06-20  Marek Polacek  <polacek@redhat.com>
11068         * c-gimplify.c: Include "c-ubsan.h" and "pointer-set.h".
11069         (ubsan_walk_array_refs_r): New function.
11070         (c_genericize): Instrument array bounds.
11071         * c-ubsan.c: Include "internal-fn.h".
11072         (ubsan_instrument_division): Mark instrumented arrays as having
11073         side effects.  Adjust ubsan_type_descriptor call.
11074         (ubsan_instrument_shift): Likewise.
11075         (ubsan_instrument_vla): Adjust ubsan_type_descriptor call.
11076         (ubsan_instrument_bounds): New function.
11077         (ubsan_array_ref_instrumented_p): New function.
11078         (ubsan_maybe_instrument_array_ref): New function.
11079         * c-ubsan.h (ubsan_instrument_bounds): Declare.
11080         (ubsan_array_ref_instrumented_p): Declare.
11081         (ubsan_maybe_instrument_array_ref): Declare.
11083 2014-06-20  Hale Wang  <hale.wang@arm.com>
11085         PR lto/61123
11086         * c.opt (fshort-enums): Add to LTO.
11087         * c.opt (fshort-wchar): Likewise.
11089 2014-06-16  Marek Polacek  <polacek@redhat.com>
11091         PR c/60439
11092         * c.opt (Wswitch-bool): Add Var.
11094 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
11096         PR middle-end/61486
11097         * c-omp.c (c_omp_split_clauses): Don't crash on firstprivate in
11098         #pragma omp target teams or
11099         #pragma omp {,target }teams distribute simd.
11101 2014-06-12  Jason Merrill  <jason@redhat.com>
11103         * c.opt (Wabi=, fabi-compat-version): New.
11104         * c-opts.c (c_common_handle_option): Handle -Wabi=.
11105         (c_common_post_options): Handle flag_abi_compat_version default.
11106         Disallow -fabi-compat-version=1.
11107         * c-common.h (abi_version_crosses): New.
11109 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
11111         * c-common.c (handle_section_attribute): Update handling for
11112         section names that are no longer trees.
11114 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
11116         PR fortran/60928
11117         * c-pragma.c (omp_pragmas_simd): Move PRAGMA_OMP_TASK...
11118         (omp_pragmas): ... back here.
11120 2014-06-05  Marek Polacek  <polacek@redhat.com>
11122         PR c/49706
11123         * c-common.c (warn_logical_not_parentheses): New function.
11124         * c-common.h (warn_logical_not_parentheses): Declare.
11125         * c.opt (Wlogical-not-parentheses): New option.
11127 2014-06-04  Marek Polacek  <polacek@redhat.com>
11129         PR c/30020
11130         * c-common.c (check_case_bounds): Add location parameter.
11131         Use it.
11132         (c_add_case_label): Pass loc to check_case_bounds.
11134 2014-06-03  Marek Polacek  <polacek@redhat.com>
11136         PR c/60439
11137         * c.opt (Wswitch-bool): New option.
11139 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
11141         * c-common.h (c_omp_sharing_predetermined, c_omp_remap_decl):
11142         Remove prototypes.
11143         (record_types_used_by_current_var_decl): Move prototype to where
11144         it belongs.
11146         * c-common.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
11147         (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
11148         (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
11150 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
11152         * c-common.h (CTI_VOID_ZERO, void_zero_node): Delete.
11153         * c-common.c (c_common_nodes_and_builtins): Don't initialize
11154         void_zero_node.
11155         * c-pretty-print.c (pp_c_void_constant): New function.
11156         (c_pretty_printer::constant, c_pretty_printer::primary_expression)
11157         (c_pretty_printer::expression): Handle VOID_CST.
11158         * cilk.c (extract_free_variables): Likewise.
11159         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift)
11160         (ubsan_instrument_vla): Use void_node instead of void_zero_node.
11162 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
11164         * c-common.h (sorted_fields_type): Remove variable_size GTY attribute.
11165         * c-pragma.c (push_alignment): Adjust.
11166         (handle_pragma_push_options): Likewise.
11168 2014-05-09  Marek Polacek  <polacek@redhat.com>
11170         PR c/50459
11171         * c-common.c (check_user_alignment): Return -1 if alignment is error
11172         node.
11173         (handle_aligned_attribute): Don't call default_conversion on
11174         FUNCTION_DECLs.
11175         (handle_vector_size_attribute): Likewise.
11176         (handle_tm_wrap_attribute): Handle case when wrap_decl is error node.
11177         (handle_sentinel_attribute): Call default_conversion and allow even
11178         integral types as an argument.
11180 2014-05-08  Marek Polacek  <polacek@redhat.com>
11182         PR c/61053
11183         * c-common.c (min_align_of_type): New function factored out from...
11184         (c_sizeof_or_alignof_type): ...here.
11185         * c-common.h (min_align_of_type): Declare.
11187 2014-05-08  Marek Polacek  <polacek@redhat.com>
11189         PR c/61077
11190         * c-common.c (check_main_parameter_types): Warn for _Atomic-qualified
11191         parameter type of main.
11193 2014-05-07  DJ Delorie  <dj@redhat.com>
11195         * c-cppbuiltin.c (print_bits_of_hex): New.
11196         (builtin_define_type_minmax): Print values using hex so as not to
11197         require a pre-computed list of string values.
11199 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
11200             Mike Stump  <mikestump@comcast.net>
11201             Richard Sandiford  <rdsandiford@googlemail.com>
11203         * c-ada-spec.c: Include wide-int.h.
11204         (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Remove.
11205         (dump_generic_ada_node): Use wide-int interfaces.
11206         * c-common.c: Include wide-int-print.h.
11207         (shorten_compare): Use wide-int interfaces and tree_int_cst_lt.
11208         (pointer_int_sum): Use wide-int interfaces.
11209         (c_common_nodes_and_builtins): Use make_int_cst.
11210         (match_case_to_enum_1): Use tree_fits_uhwi_p and tree_fits_shwi_p.
11211         (handle_alloc_size_attribute): Use wide-int interfaces.
11212         (get_nonnull_operand): Likewise.
11213         * c-format.c (get_constant): Use tree_fits_uhwi_p.
11214         * c-lex.c: Include wide-int.h.
11215         (narrowest_unsigned_type): Take a widest_int rather than two
11216         HOST_WIDE_INTs.
11217         (narrowest_signed_type): Likewise.
11218         (interpret_integer): Update accordingly.  Use wide-int interfaces.
11219         (lex_charconst): Use wide-int interfaces.
11220         * c-pretty-print.c: Include wide-int.h.
11221         (pp_c_integer_constant): Use wide-int interfaces.
11222         * cilk.c (declare_one_free_variable): Use tree_int_cst_lt instead of
11223         INT_CST_LT_UNSIGNED.
11225 2014-05-06  Richard Biener  <rguenther@suse.de>
11227         * c-opts.c (c_common_post_options): For -freestanding,
11228         -fno-hosted and -fno-builtin disable pattern recognition
11229         if not enabled explicitely.
11231 2014-05-02  Marek Polacek  <polacek@redhat.com>
11233         * c.opt (Wsizeof-pointer-memaccess): Describe option.
11235 2014-05-01  Marek Polacek  <polacek@redhat.com>
11237         PR c/43245
11238         * c.opt (Wdiscarded-qualifiers): Add.
11240 2014-04-30  Marek Polacek  <polacek@redhat.com>
11242         * c-ubsan.c (ubsan_instrument_division): Handle REAL_TYPEs.  Perform
11243         INT_MIN / -1 sanitization only for integer types.
11245 2014-04-25  Marek Polacek  <polacek@redhat.com>
11247         PR c/18079
11248         * c-common.c (handle_noinline_attribute): Warn if the attribute
11249         conflicts with always_inline attribute.
11250         (handle_always_inline_attribute): Warn if the attribute conflicts
11251         with noinline attribute.
11253 2014-04-25  Marek Polacek  <polacek@redhat.com>
11255         PR c/60156
11256         * c-common.c (check_main_parameter_types): Warn about variadic main.
11258 2014-04-24  Mike Stump  <mikestump@comcast.net>
11260         * c.opt (Wshadow-ivar): Default to on.
11262 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
11264         * c.opt (Wshadow-ivar, flocal-ivars, fivar-visibility): Add.
11266 2014-04-23  Marek Polacek  <polacek@redhat.com>
11268         * c-common.c (handle_tm_wrap_attribute): Tweak error message.
11270 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
11272         PR sanitizer/60275
11273         * c-ubsan.c (ubsan_instrument_return): Return __builtin_trap ()
11274         if flag_sanitize_undefined_trap_on_error.
11275         (ubsan_instrument_division, ubsan_instrument_shift,
11276         ubsan_instrument_vla): Likewise.  Use __ubsan_handle_*_abort ()
11277         if !flag_sanitize_recover.
11279 2014-04-22  Marc Glisse  <marc.glisse@inria.fr>
11281         PR libstdc++/43622
11282         * c-common.c (registered_builtin_types): Make non-static.
11283         * c-common.h (registered_builtin_types): Declare.
11285 2014-04-14  Richard Biener  <rguenther@suse.de>
11286             Marc Glisse  <marc.glisse@inria.fr>
11288         PR c/60819
11289         * c-common.c (convert_vector_to_pointer_for_subscript): Properly
11290         apply may-alias the scalar pointer type when applicable.
11292 2014-04-12  Igor Zamyatin  <igor.zamyatin@intel.com>
11294         PR middle-end/60467
11295         * cilk.c (cilk_set_spawn_marker): Remove FUNCTION_DECL
11296         as possible argument for Cilk_spawn.
11298 2014-04-11  Tobias Burnus  <burnus@net-b.de>
11300         PR c/60194
11301         * c.opt (Wformat-signedness): Add
11302         * c-format.c(check_format_types): Use it.
11304 2014-04-11  Jason Merrill  <jason@redhat.com>
11306         PR c++/57926
11307         * c-common.c (sync_resolve_size, get_atomic_generic_size): Call
11308         default_conversion for an array argument.
11310 2014-04-08  Marek Polacek  <polacek@redhat.com>
11312         PR sanitizer/60745
11313         * c-ubsan.c: Include asan.h.
11314         (ubsan_instrument_return): Call initialize_sanitizer_builtins.
11316 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
11318         * c.opt (Wnon-virtual-dtor): Auto set when Weffc++.
11320 2014-04-02  Marek Polacek  <polacek@redhat.com>
11322         * c-common.h (c_expand_expr): Remove declaration.
11324 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
11326         PR c++/60689
11327         * c-common.c (add_atomic_size_parameter): When creating new
11328         params vector, push the size argument first.
11330 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
11332         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
11333         ubsan_instrument_vla, ubsan_instrument_return): Adjust
11334         ubsan_create_data callers.
11336 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
11338         PR debug/60603
11339         * c-opts.c (c_finish_options): Restore cb_file_change call to
11340         <built-in>.
11342 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
11344         PR middle-end/36282
11345         * c-pragma.c (apply_pragma_weak): Only look at
11346         TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) if
11347         DECL_ASSEMBLER_NAME_SET_P (decl).
11348         (maybe_apply_pending_pragma_weaks): Exit early if
11349         vec_safe_is_empty (pending_weaks) rather than only when
11350         !pending_weaks.
11351         (maybe_apply_pragma_weak): Likewise.  If !DECL_ASSEMBLER_NAME_SET_P,
11352         set assembler name back to NULL afterwards.
11354 2014-03-11  Jason Merrill  <jason@redhat.com>
11356         * c.opt: Add -std=gnu++14.
11358 2014-03-11  Ian Bolton  <ian.bolton@arm.com>
11360         * c-opts.c (c_common_post_options): Don't override
11361         -ffp-contract=fast if unsafe-math-optimizations is on.
11363 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
11365         * c.opt: Enable LTO FE for fshort-double.
11367 2014-03-07  Jason Merrill  <jason@redhat.com>
11369         * c.opt: Add -std=c++14.
11371 2014-03-06  Marek Polacek  <polacek@redhat.com>
11373         PR c/60197
11374         * cilk.c (contains_cilk_spawn_stmt): New function.
11375         (contains_cilk_spawn_stmt_walker): Likewise.
11376         (recognize_spawn): Give error on invalid use of _Cilk_spawn.
11377         * c-common.h (contains_cilk_spawn_stmt): Add declaration.
11379 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
11381         * c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_SIMD.
11382         (init_pragma): Call cpp_register_deferred_pragma for PRAGMA_CILK_SIMD
11383         even when flag_preprocess_only.
11385 2014-02-26  Jason Merrill  <jason@redhat.com>
11387         PR c++/59231
11388         PR c++/11586
11389         * c-common.c (shorten_compare): Don't check
11390         c_inhibit_evaluation_warnings.
11392 2014-02-19  Jakub Jelinek  <jakub@redhat.com>
11394         PR c/37743
11395         * c-common.c (c_common_nodes_and_builtins): When initializing
11396         c_uint{16,32,64}_type_node, also set corresponding
11397         uint{16,32,64}_type_node to the same value.
11399         PR c++/60267
11400         * c-pragma.c (init_pragma): Don't call cpp_register_deferred_pragma
11401         for PRAGMA_IVDEP if flag_preprocess_only.
11403 2014-02-12  Jakub Jelinek  <jakub@redhat.com>
11405         PR c/60101
11406         * c-common.c (merge_tlist): If copy is true, call new_tlist,
11407         if false, add ADD itself, rather than vice versa.
11408         (verify_tree): For COND_EXPR, don't call merge_tlist with non-zero
11409         copy.  For SAVE_EXPR, only call merge_tlist once.
11411 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
11413         PR middle-end/60092
11414         * c-common.c (handle_alloc_size_attribute): Use tree_fits_uhwi_p
11415         and tree_to_uhwi.
11416         (handle_alloc_align_attribute, handle_assume_aligned_attribute): New
11417         functions.
11418         (c_common_attribute_table): Add alloc_align and assume_aligned
11419         attributes.
11421 2014-02-06  Marek Polacek  <polacek@redhat.com>
11423         PR c/60087
11424         * c-common.c (warn_for_sign_compare): Call warning_at with location
11425         instead of warning.
11427 2014-02-05  Marek Polacek  <polacek@redhat.com>
11429         PR c/53123
11430         * c-omp.c (c_finish_omp_atomic): Remove unreachable return
11431         statement.
11433 2014-02-04  Marek Polacek  <polacek@redhat.com>
11435         PR c/60036
11436         * c-common.c (conversion_warning): Unwrap C_MAYBE_CONST_EXPR and/or
11437         SAVE_EXPR.
11439 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
11441         PR c++/53017
11442         PR c++/59211
11443         * c-common.c (handle_aligned_attribute, handle_alloc_size_attribute,
11444         handle_vector_size_attribute, handle_nonnull_attribute): Call
11445         default_conversion on the attribute argument.
11446         (handle_nonnull_attribute): Increment the argument number.
11448 2014-01-31  Marek Polacek  <polacek@redhat.com>
11450         PR c/59963
11451         * c-common.c (add_atomic_size_parameter): Pass vNULL to
11452         build_function_call_vec.
11453         (resolve_overloaded_builtin): Likewise.
11454         * c-common.h (build_function_call_vec): Adjust declaration.
11456 2014-01-30  Marek Polacek  <polacek@redhat.com>
11458         PR c/59940
11459         * c-common.h (unsafe_conversion_p): Adjust declaration.
11460         (warnings_for_convert_and_check): Likewise.
11461         (convert_and_check): Likewise.
11462         * c-common.c (unsafe_conversion_p): Add location parameter.  Call
11463         expansion_point_location_if_in_system_header on it.
11464         (warnings_for_convert_and_check): Add location parameter.  Call
11465         expansion_point_location_if_in_system_header on it.  Use it.
11466         (convert_and_check): Add location parameter.  Use it.
11467         (conversion_warning): Likewise.
11468         (c_add_case_label): Adjust convert_and_check calls.
11469         (scalar_to_vector): Adjust unsafe_conversion_p calls.
11471 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
11473         * c-common.c (c_define_builtins): Replaced flag_enable_cilkplus with
11474         flag_cilkplus.
11475         * c-pragma.c (init_pragma): Likewise.
11476         * c.opt: Likewise.
11478 2014-01-23  Marek Polacek  <polacek@redhat.com>
11480         PR c/59846
11481         * c-common.c (shorten_compare): Add location_t parameter.
11482         * c-common.h (shorten_binary_op): Adjust declaration.
11484 2014-01-23  Marek Polacek  <polacek@redhat.com>
11486         PR c/58346
11487         * c-common.c (pointer_to_zero_sized_aggr_p): New function.
11488         * c-common.h: Declare it.
11490 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
11492         * c-ada-spec.h (dump_ada_specs): Revert prototype change.
11493         * c-ada-spec.c (dump_ads): Likewise.
11494         (cpp_check): Likewise.
11495         (dump_ada_specs): Likewise.
11497 2014-01-15  Laurent Alfonsi  <laurent.alfonsi@st.com>
11499         PR c++/49718
11500         * c-common.c (handle_no_instrument_function_attribute): Allow
11501         no_instrument_function attribute in class member
11502         definition/declaration.
11504 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
11506         PR c/58943
11507         * c-omp.c (c_finish_omp_atomic): Set in_late_binary_op around
11508         build_modify_expr with non-NOP_EXPR opcode.  Handle return from it
11509         being COMPOUND_EXPR.
11510         (c_finish_omp_for): Handle incr being COMPOUND_EXPR with first
11511         operand a SAVE_EXPR and second MODIFY_EXPR.
11513 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
11515         PR target/58115
11516         * c-pch.c (c_common_write_pch): Call
11517         prepare_target_option_nodes_for_pch.
11519 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11521         Update copyright years
11523 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11525         * array-notation-common.c, c-cilkplus.c: Use the standard form for
11526         the copyright notice.
11528 2013-12-28  Eric Botcazou  <ebotcazou@adacore.com>
11530         * c-ada-spec.c (print_constructor): New function.
11531         (print_destructor): Retrieve the origin of the destructor.
11532         (print_ada_declaration): Revamp handling of constructors/destructors.
11534 2013-12-23  Stuart Hastings  <stuart@apple.com>
11535             Bill Maddox  <maddox@google.com>
11536             Jason Merrill  <jason@redhat.com>
11538         * c.opt: Add -fdeclone-ctor-dtor.
11539         * c-opts.c (c_common_post_options): Default to on iff -Os.
11541 2013-12-18  Balaji V. Iyer  <balaji.v.iyer@intel.com>
11543         * c-common.c (c_common_attribute_table): Added "cilk simd function"
11544         attribute.
11545         * c-pragma.h (enum pragma_cilk_clause): Remove.
11546         (enum pragma_omp_clause): Added the following fields:
11547         PRAGMA_CILK_CLAUSE_NOMASK, PRAGMA_CILK_CLAUSE_MASK,
11548         PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_NONE,
11549         PRAGMA_CILK_CLAUSE_LINEAR, PRAGMA_CILK_CLAUSE_PRIVATE,
11550         PRAGMA_CILK_CLAUSE_FIRSTPRIVATE, PRAGMA_CILK_CLAUSE_LASTPRIVATE,
11551         PRAGMA_CILK_CLAUSE_UNIFORM.
11554 2013-12-11  Balaji V. Iyer  <balaji.v.iyer@intel.com>
11556         * cilk.c (cilk_outline): Made this function non-static.
11557         (gimplify_cilk_spawn): Removed pre_p and post_p arguments.
11558         (create_cilk_wrapper): Added a new parameter: a function pointer.
11559         (c_install_body_w_frame_cleanup): Remove
11560         (extract_free_variables): Added VEC_INIT_EXPR and CONSTRUCTOR case.
11561         * c-common.h (cilk_outline): New prototype.
11562         (gimplify_cilk_spawn): Removed two parameters.
11563         (cilk_install_body_with_frame_cleanup): New prototype.
11564         * c-gimplify.c (c_gimplify_expr): Added MODIFY_EXPR, CALL_EXPR and
11565         CILK_SPAWN_STMT case.
11567 2013-12-11  Bernd Schmidt  <bernds@codesourcery.com>
11569         * c-common.c (c_fully_fold_internal): Handle ADDR_SPACE_CONVERT_EXPR.
11571         * c-common.h (enum c_tree_index): Remove CTI_INT_ARRAY_TYPE.
11572         (int_array_type_node): Remove.
11573         * c-common.c (c_common_nodes_and_builtins): Don't build it.
11575 2013-12-05  Marek Polacek  <polacek@redhat.com>
11577         PR c/52023
11578         * c-common.c (c_sizeof_or_alignof_type): Move a declaration into
11579         [ADJUST_FIELD_ALIGN].
11581 2013-12-04  Joseph Myers  <joseph@codesourcery.com>
11583         PR c/52023
11584         * c-common.c (c_sizeof_or_alignof_type): Add parameter min_alignof
11585         and check field alignment if set.
11586         * c-common.h (c_sizeof_or_alignof_type): Update prototype.
11587         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
11589 2013-12-04  Jakub Jelinek  <jakub@redhat.com>
11590             Marek Polacek  <polacek@redhat.com>
11592         * c-gimplify.c (c_gimplify_expr): If doing the integer-overflow
11593         sanitization, call unsigned_type_for only when !TYPE_OVERFLOW_WRAPS.
11595 2013-11-29   H.J. Lu  <hongjiu.lu@intel.com>
11597         PR c/59309
11598         * cilk.c (gimplify_cilk_spawn): Properly handle function without
11599         arguments.
11601 2013-11-29  Jakub Jelinek  <jakub@redhat.com>
11603         PR c/59280
11604         * c-common.c (get_priority): If TREE_VALUE (args) is IDENTIFIER_NODE,
11605         goto invalid.  If it is error_mark_node, don't issue further
11606         diagnostics.
11608 2013-11-28  Sergey Ostanevich  <sergos.gnu@gmail.com>
11610         * c.opt (Wopenmp-simd): New.
11612 2013-11-22  Jakub Jelinek  <jakub@redhat.com>
11614         * c-ubsan.h (ubsan_instrument_return): New prototype.
11615         * c-ubsan.c (ubsan_instrument_return): New function.
11617 2013-11-22  Andrew MacLeod  <amacleod@redhat.com>
11619         * c-common.c: Add required include files from gimple.h.
11620         * c-gimplify.c: Likewise.
11621         * cilk.c: Likewise.
11623 2013-11-22  David Malcolm  <dmalcolm@redhat.com>
11625         * c-common.c (unsafe_conversion_p): Remove use of
11626         EXPR_LOC_OR_HERE macro.
11627         (conversion_warning): Likewise.
11628         (warnings_for_convert_and_check): Likewise.
11629         (warn_for_collisions_1): Likewise.
11630         (shorten_compare): Likewise, and remove use of in_system_header
11631         macro, using the location from the former.
11632         * c-lex.c (dump_one_header): Remove use of input_filename macro.
11633         (cb_def_pragma): Remove use of in_system_header macro.
11634         (lex_string): Likewise.
11635         * c-pragma.c (handle_pragma_float_const_decimal64): Likewise.
11637 2013-11-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11638             Mike Stump  <mikestump@comcast.net>
11639             Richard Sandiford  <rdsandiford@googlemail.com>
11641         * c-ada-spec.c (is_simple_enum): Use tree_to_shwi and tree_to_uhwi
11642         instead of TREE_INT_CST_LOW, in cases where there is a protecting
11643         tree_fits_shwi_p or tree_fits_uhwi_p.
11644         (dump_generic_ada_node): Likewise.
11645         * c-format.c (check_format_arg): Likewise.
11646         * c-pretty-print.c (pp_c_integer_constant): Likewise.
11648 2013-11-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11650         * c-common.c (check_function_arguments_recurse): Use tree_to_uhwi.
11652 2013-11-19  Joshua J Cogliati  <jrincayc@yahoo.com>
11654         PR c/53001
11655         * c-common.c (unsafe_conversion_p): Make this function
11656         return an enumeration with more detail.
11657         (conversion_warning): Use the new return type of
11658         unsafe_conversion_p to separately warn either about conversions
11659         that lower floating point number precision or about the other
11660         kinds of conversions.
11661         * c-common.h (enum conversion_safety): New enumeration.
11662         (unsafe_conversion_p): switching return type to
11663         conversion_safety enumeration.
11664         * c.opt: Adding new warning -Wfloat-conversion and
11665         enabling it with -Wconversion.
11667 2013-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
11669         * c-opts.c: Include plugin.h.
11670         (cb_file_change): Invoke plugin event PLUGIN_INCLUDE_FILE.
11672 2013-11-19  Marek Polacek  <polacek@redhat.com>
11674         * c-ubsan.c (ubsan_instrument_division): Adjust ubsan_create_data
11675         call.
11676         (ubsan_instrument_shift): Likewise.
11677         (ubsan_instrument_vla): Likewise.
11679 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
11681         * c-common.c (convert_vector_to_pointer_for_subscript): Remove
11682         cast to unsigned type.
11684 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
11686         * c-common.c (fold_offsetof_1): Use tree_to_uhwi rather than
11687         tree_low_cst.
11688         (complete_array_type): Update comment to refer to tree_to_[su]hwi
11689         rather than tree_low_cst.
11691 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
11693         * c-common.c, c-cppbuiltin.c: Replace tree_low_cst (..., 1) with
11694         tree_to_uhwi throughout.
11696 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
11698         * c-common.c, c-format.c, c-omp.c, c-pretty-print.c: Replace
11699         tree_low_cst (..., 0) with tree_to_shwi throughout.
11701 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
11703         * c-ada-spec.c, c-common.c, c-pretty-print.c: Replace
11704         host_integerp (..., 1) with tree_fits_uhwi_p throughout.
11706 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
11708         * c-ada-spec.c, c-common.c, c-format.c, c-pretty-print.c: Replace
11709         host_integerp (..., 0) with tree_fits_shwi_p throughout.
11711 2013-11-15  Aldy Hernandez  <aldyh@redhat.com>
11713         * c-cilkplus.c: New file.
11714         * c-common.c (readonly_error): Add location argument.
11715         * c-common.h (readonly_error): Same.
11716         (c_finish_cilk_clauses): Protoize.
11717         (c_check_cilk_loop): Same.
11718         c-omp.c (c_finish_omp_for): Handle CILK_SIMD nodes.
11719         Do not fail on error_mark_node.
11720         Abstract increment canonicalization to here...
11721         (c_omp_for_incr_canonicalize_ptr): New.
11722         c-pragma.c (init_pragma): Register "simd" pragma.
11723         c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_SIMD.
11724         (enum pragma_cilk_clause): New.
11726 2013-11-15  Richard Sandiford  <rdsandiford@googlemail.com>
11728         * c-pretty-print.c (pp_c_character_constant): Remove unnecessary
11729         wchar_type and host_integerp checks.
11731 2013-11-14  Andrew MacLeod  <amacleod@redhat.com>
11733         * c-common.c: Likewise.
11734         * c-gimplify.c: Likewise.
11735         * cilk.c: Likewise.
11737 2013-11-14  Diego Novillo  <dnovillo@google.com>
11739         * c-common.c: Include fold-const.h.
11740         Include stor-layout.h.
11741         Include calls.h.
11742         Include stringpool.h.
11743         Include attribs.h.
11744         Include varasm.h.
11745         Include trans-mem.h.
11746         * c-cppbuiltin.c: Include stor-layout.h.
11747         Include stringpool.h.
11748         * c-format.c: Include stringpool.h.
11749         * c-lex.c: Include stringpool.h.
11750         Include stor-layout.h.
11751         * c-pragma.c: Include stringpool.h.
11752         Include attribs.h.
11753         Include varasm.h.
11754         Include gcc-symtab.h.
11755         * c-pretty-print.c: Include stor-layout.h.
11756         Include attribs.h.
11757         * cilk.c: Include stringpool.h.
11758         Include calls.h.
11760 2013-11-13  Joseph Myers  <joseph@codesourcery.com>
11762         * c-common.h (enum rid): Add RID_AUTO_TYPE.
11763         * c-common.c (c_common_reswords): Add __auto_type.
11764         (keyword_begins_type_specifier): Handle RID_AUTO_TYPE.
11766 2013-11-12  Andrew MacLeod  <amacleod@redhat.com>
11768         * c-common.c: Include gimplify.h.
11769         * c-gimplify.c: Likewise.
11770         * cilk.c: Likewise.
11771         * c-omp.c: Include gimple-expr.h instead of gimple.h.
11772         * c-ubsan.c: Don't include gimple.h.
11774 2013-11-12  Joseph Myers  <joseph@codesourcery.com>
11776         * c-common.c (c_common_reswords): Add _Thread_local.
11778 2013-11-09  Joseph Myers  <joseph@codesourcery.com>
11780         * c-common.c (atomic_size_supported_p): New function.
11781         (resolve_overloaded_atomic_exchange)
11782         (resolve_overloaded_atomic_compare_exchange)
11783         (resolve_overloaded_atomic_load, resolve_overloaded_atomic_store):
11784         Use it instead of comparing size with a local list of sizes.
11786 2013-11-07  Andrew MacLeod  <amacleod@redhat.com>
11787             Joseph Myers  <joseph@codesourcery.com>
11789         * c-common.h (enum rid): Add RID_ATOMIC.
11790         * c-common.c (c_common_reswords): Add _Atomic.
11791         (sync_resolve_params): Use TYPE_MAIN_VARIANT on pointer argument.
11792         (keyword_is_type_qualifier): Accept RID_ATOMIC.
11793         * c-format.c (check_format_types): Check for extra _Atomic
11794         qualifiers in format argument.
11795         * c-pretty-print.c (pp_c_cv_qualifiers): Handle atomic qualifier.
11796         (pp_c_type_qualifier_list): Mention _Atomic in comment.
11798 2013-11-06  Tobias Burnus  <burnus@net-b.de>
11800         * c-common.c (reason_option_codes_t): Add CPP_W_DATE_TIME.
11802 2013-11-06  Joseph Myers  <joseph@codesourcery.com>
11804         * c-opts.c (c_common_post_options): Set -ffp-contract=off in C
11805         standards modes.
11806         * c-cppbuiltin.c (cpp_iec_559_value): Consider -ffp-contract=fast
11807         to mean lack of IEEE 754 support.
11809 2013-11-05  Tobias Burnus  <burnus@net-b.de>
11811         * c.opt (-Wdate-time): New option
11812         * c-opts.c (sanitize_cpp_opts): Pass on to libcpp.
11814 2013-11-05  Joseph Myers  <joseph@codesourcery.com>
11816         * c-cppbuiltin.c (cpp_iec_559_value): Test
11817         flag_excess_precision_cmdline not flag_excess_precision.
11819 2013-11-05  Tobias Burnus  <burnus@net-b.de>
11821         * c.opt (fopenmp-simd): New option.
11822         * c-pragma.c (omp_pragmas): Move pragmas which can contain simd to ...
11823         (omp_pragmas): ... this new struct.
11824         (c_pp_lookup_pragma): Also walk omp_pragmas.
11825         (init_pragma): Init pragmas for -fopenmp-simd.
11827 2013-11-04  Marek Polacek  <polacek@redhat.com>
11829         PR c++/58979
11830         * c-common.c (invalid_indirection_error): Handle RO_ARROW_STAR case.
11832 2013-11-04  Joseph Myers  <joseph@codesourcery.com>
11834         * c-cppbuiltin.c (cpp_iec_559_value, cpp_iec_559_complex_value):
11835         New functions.
11836         (c_cpp_builtins): Define __GCC_IEC_559 and __GCC_IEC_559_COMPLEX.
11838 2013-11-04  Eric Botcazou  <ebotcazou@adacore.com>
11840         * c-ada-spec.h (cpp_operation): Add IS_TRIVIAL.
11841         (dump_ada_specs): Adjust prototype of second callback.
11842         * c-ada-spec.c (cpp_check): New global variable.
11843         (dump_ada_nodes): Remove cpp_check parameter and do not pass it down.
11844         (print_generic_ada_decl): Likewise.
11845         (has_static_fields): Change return type to bool and add guard.
11846         (has_nontrivial_methods): New predicate.
11847         (is_tagged_type): Change return type to bool.
11848         (separate_class_package): Call has_nontrivial_methods.
11849         (pp_ada_tree_identifier): Minor tweaks.
11850         (dump_ada_function_declaration): Adjust calls to dump_generic_ada_node.
11851         (dump_ada_array_domains): Likewise.
11852         (dump_ada_array_type): Likewise.
11853         (dump_template_types): Remove cpp_check parameter and do not pass it to
11854         dump_generic_ada_node.
11855         (dump_ada_template): Likewise.
11856         (dump_generic_ada_node): Remove cpp_check parameter and do not pass it
11857         recursively.
11858         (print_ada_methods): Change return type to integer.  Remove cpp_check
11859         parameter and do not pass it down.
11860         (dump_nested_types): Remove cpp_check parameter and do not pass it to
11861         dump_generic_ada_node.
11862         (print_ada_declaration): Likewise.  Test RECORD_OR_UNION_TYPE_P before
11863         accessing methods.
11864         (print_ada_struct_decl): Remove cpp_check parameter and do not pass it
11865         down.  Use has_nontrivial_methods to recognize C++ classes.  Use return
11866         value of print_ada_methods.
11867         (dump_ads): Rename cpp_check parameter to check and adjust prototype.
11868         Set cpp_check to it before invoking dump_ada_nodes.
11869         (dump_ada_specs): Likewise.
11871 2013-11-03  Marek Polacek  <polacek@redhat.com>
11873         * c-ubsan.c: Don't include hash-table.h.
11874         (ubsan_instrument_vla): New function.
11875         * c-ubsan.h: Declare it.
11877 2013-10-31  David Malcolm  <dmalcolm@redhat.com>
11879         Automated part of renaming of symtab_node_base to symtab_node.
11881         Patch autogenerated by rename_symtab.py from
11882         https://github.com/davidmalcolm/gcc-refactoring-scripts
11883         revision 58bb219cc090b2f4516a9297d868c245495ee622
11885         * c-pragma.c (maybe_apply_pending_pragma_weaks): Rename
11886         symtab_node_base to symtab_node.
11888 2013-10-31  Edward Smith-Rowland  <3dw4rd@verizon.net>
11890         Implement C++14 digit separators.
11891         * c-lex.c (interpret_float): Remove digit separators from scratch string
11892         before building real literal.
11894 2013-10-30  Jakub Jelinek  <jakub@redhat.com>
11896         * cilk.c (create_cilk_helper_decl): Use HOST_WIDE_INT_PRINT_DEC.
11898 2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
11900         * c-common.c (c_common_reswords[]): Added _Cilk_spawn and _Cilk_sync
11901         fields.
11902         (c_define_builtins): Called cilk_init_builtins if Cilk Plus is
11903         enabled.
11904         * c-common.h (enum rid): Added RID_CILK_SPAWN and RID_CILK_SYNC.
11905         (insert_cilk_frame): New prototype.
11906         (cilk_init_builtins): Likewise.
11907         (gimplify_cilk_spawn): Likewise.
11908         (c_cilk_install_body_w_frame_cleanup): Likewise.
11909         (cilk_detect_spawn_and_unwrap): Likewise.
11910         (cilk_set_spawn_marker): Likewise.
11911         (build_cilk_sync): Likewise.
11912         (build_cilk_spawn): Likewise.
11913         * cilk.c: New file.
11915 2013-10-29  David Malcolm  <dmalcolm@redhat.com>
11917         Patch autogenerated by refactor_symtab.py from
11918         https://github.com/davidmalcolm/gcc-refactoring-scripts
11919         revision 58bb219cc090b2f4516a9297d868c245495ee622
11921         * c-gimplify.c (c_genericize): Update for conversion of symtab types
11922         to a true class hierarchy.
11923         * c-pragma.c (maybe_apply_pending_pragma_weaks): Likewise.
11925 2013-10-27  Richard Sandiford  <rdsandiford@googlemail.com>
11927         * c-lex.c (interpret_integer): Remove call to cpp_num_sign_extend.
11929 2013-10-26  Jeff Law  <law@redhat.com>
11931         * c-common.c (c_define_builtins): Remove mudflap support.
11932         * c.opt: Ignore and warn for mudflap options.
11934 2013-10-24  Tobias Burnus  <burnus@net-b.de>
11936         PR other/33426
11937         * c-pragma.c (init_pragma) Add #pragma ivdep handling.
11938         * c-pragma.h (pragma_kind): Add PRAGMA_IVDEP.
11940 2013-10-23  Jason Merrill  <jason@redhat.com>
11942         * c-format.c (gcc_cxxdiag_char_table): Add %X.
11944 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
11946         * c-common.h (omp_clause_mask::operator !=): New method.
11947         * c-omp.c (c_omp_split_clauses): Use if ((mask & something) != 0)
11948         instead of if (mask & something) tests everywhere.
11950         * c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP to
11951         201307 instead of 201107.
11952         * c-common.c (DEF_FUNCTION_TYPE_8): Define.
11953         (c_common_attribute_table): Add "omp declare target" and
11954         "omp declare simd" attributes.
11955         (handle_omp_declare_target_attribute,
11956         handle_omp_declare_simd_attribute): New functions.
11957         * c-omp.c: Include c-pragma.h.
11958         (c_finish_omp_taskgroup): New function.
11959         (c_finish_omp_atomic): Add swapped argument, if true,
11960         build the operation first with rhs, lhs arguments and use NOP_EXPR
11961         build_modify_expr.
11962         (c_finish_omp_for): Add code argument, pass it down to make_code.
11963         (c_omp_split_clauses): New function.
11964         (c_split_parallel_clauses): Removed.
11965         (c_omp_declare_simd_clause_cmp, c_omp_declare_simd_clauses_to_numbers,
11966         c_omp_declare_simd_clauses_to_decls): New functions.
11967         * c-common.h (omp_clause_mask): New type.
11968         (OMP_CLAUSE_MASK_1): Define.
11969         (omp_clause_mask::omp_clause_mask, omp_clause_mask::operator &=,
11970         omp_clause_mask::operator |=, omp_clause_mask::operator ~,
11971         omp_clause_mask::operator |, omp_clause_mask::operator &,
11972         omp_clause_mask::operator <<, omp_clause_mask::operator >>,
11973         omp_clause_mask::operator ==): New methods.
11974         (enum c_omp_clause_split): New.
11975         (c_finish_omp_taskgroup): New prototype.
11976         (c_finish_omp_atomic): Add swapped argument.
11977         (c_finish_omp_for): Add code argument.
11978         (c_omp_split_clauses): New prototype.
11979         (c_split_parallel_clauses): Removed.
11980         (c_omp_declare_simd_clauses_to_numbers,
11981         c_omp_declare_simd_clauses_to_decls): New prototypes.
11982         * c-pragma.c (omp_pragmas): Add new OpenMP 4.0 constructs.
11983         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_CANCEL,
11984         PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
11985         PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_SIMD,
11986         PRAGMA_OMP_TARGET, PRAGMA_OMP_TASKGROUP and PRAGMA_OMP_TEAMS.
11987         Remove PRAGMA_OMP_PARALLEL_FOR and PRAGMA_OMP_PARALLEL_SECTIONS.
11988         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALIGNED,
11989         PRAGMA_OMP_CLAUSE_DEPEND, PRAGMA_OMP_CLAUSE_DEVICE,
11990         PRAGMA_OMP_CLAUSE_DIST_SCHEDULE, PRAGMA_OMP_CLAUSE_FOR,
11991         PRAGMA_OMP_CLAUSE_FROM, PRAGMA_OMP_CLAUSE_INBRANCH,
11992         PRAGMA_OMP_CLAUSE_LINEAR, PRAGMA_OMP_CLAUSE_MAP,
11993         PRAGMA_OMP_CLAUSE_NOTINBRANCH, PRAGMA_OMP_CLAUSE_NUM_TEAMS,
11994         PRAGMA_OMP_CLAUSE_PARALLEL, PRAGMA_OMP_CLAUSE_PROC_BIND,
11995         PRAGMA_OMP_CLAUSE_SAFELEN, PRAGMA_OMP_CLAUSE_SECTIONS,
11996         PRAGMA_OMP_CLAUSE_SIMDLEN, PRAGMA_OMP_CLAUSE_TASKGROUP,
11997         PRAGMA_OMP_CLAUSE_THREAD_LIMIT, PRAGMA_OMP_CLAUSE_TO and
11998         PRAGMA_OMP_CLAUSE_UNIFORM.
12000 2013-10-09  Marc Glisse  <marc.glisse@inria.fr>
12002         PR tree-optimization/20318
12003         * c-common.c (handle_returns_nonnull_attribute): New function.
12004         (c_common_attribute_table): Add returns_nonnull.
12006 2013-10-03  Marc Glisse  <marc.glisse@inria.fr>
12008         PR c++/19476
12009         * c.opt (fcheck-new): Move to common.opt.
12011 2013-09-25  Marek Polacek  <polacek@redhat.com>
12012             Jakub Jelinek  <jakub@redhat.com>
12014         PR sanitizer/58413
12015         * c-ubsan.c (ubsan_instrument_shift): Don't instrument
12016         an expression if we can prove it is correct.
12017         (ubsan_instrument_division): Likewise.  Remove unnecessary
12018         check.
12020 2013-09-18  Marek Polacek  <polacek@redhat.com>
12022         PR sanitizer/58411
12023         * c-common.c (handle_no_sanitize_undefined_attribute): New function.
12024         Declare it.
12025         (struct attribute_spec c_common_att): Add no_sanitize_undefined.
12027 2013-09-14  Iain Sandoe  <iain@codesourcery.com>
12029         PR target/48094
12030         * c.opt (fgnu-runtime, fnext-runtime, fobjc-abi-version,
12031         fobjc-gc, freplace-objc-classes): Accept for LTO.
12033 2013-09-13  Jacek Caban  <jacek@codeweavers.com>
12035         * c-target.def: New hook
12037 2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
12039         PR c++/43452
12040         * c.opt (Wdelete-incomplete): Add.
12042 2013-09-08  Joern Rennecke  <joern.rennecke@embecosm.com>
12044         * c-common.c (same_scalar_type_ignoring_signedness): Delete.
12045         (vector_types_compatible_elements_p): New function.
12046         * c-common.h: (same_scalar_type_ignoring_signedness): Delete
12047         declaration.
12048         (vector_types_compatible_elements_p): Declare.
12050 2013-09-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12052         * c-pretty-print.h (c_pretty_printer::simple_type_specifier): Now
12053         a virtual member function.
12054         (pp_simple_type_specifier): Remove.
12055         (pp_c_type_specifier): Likewise.
12056         * c-pretty-print.c (c_pretty_printer::simple_type_specifier):
12057         Rename from pp_c_type_specifier.  Adjust.
12058         (c_pretty_printer::c_pretty_printer): Do not assign to
12059         simple_type_specifier.
12061 2013-09-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12063         * c-pretty-print.h (c_pretty_printer::type_id): Now a virtual
12064         member function.
12065         (c_pretty_printer::storage_class_specifier): Likewise.
12066         (c_pretty_printer::initializer): Likewise.
12067         (pp_declaration): Remove.
12068         (pp_declaration_specifiers): Likewise.
12069         (pp_abstract_declarator): Likewise.
12070         (pp_declarator): Likewise.
12071         (pp_type_id): Likewise.
12072         (pp_statement): Likewise.
12073         (pp_constant): Likewise.
12074         (pp_id_expression): Likewise.
12075         (pp_primary_expression): Likewise.
12076         (pp_unary_expression): Likewise.
12077         (pp_multiplicative_expression): Likewise.
12078         (pp_conditional_expression): Likewise.
12079         (pp_assignment_expression): Likewise.
12080         (pp_expression): Likewise.
12081         (pp_c_type_id): Likewise.
12082         (pp_c_storage_class_specifier): Likewise.
12083         * c-pretty-print.c (pp_c_type_cast): Tidy.
12084         (pp_c_pointer): Likewise.
12085         (pp_c_type_specifier): Likewise.
12086         (pp_c_parameter_type_list): Likewise.
12087         (pp_c_function_definition): Likewise.
12088         (pp_c_init_declarator): Likewise.
12089         (pp_c_initializer_list): Likewise.
12090         (pp_c_constructor_elts): Likewise.
12091         (c_pretty_printer::direct_abstract_declarator): Likewise.
12092         (c_pretty_printer::declaration_specifiers): Likewise.
12093         (c_pretty_printer::primary_expression): Likewise.
12094         (c_pretty_printer::postfix_expression): Likewise.
12095         (c_pretty_printer::type_id): Rename from pp_c_type_id.
12096         (c_pretty_printer::storage_class_specifier): Rename from
12097         pp_c_storage_class_specifier.
12098         (c_pretty_printer::initializer): Rename from pp_c_initializer.
12099         (c_pretty_printer::c_pretty_printer): Do not assign to type_id,
12100         storage_class_specifier, initializer, offset_list, flags.
12102 2013-08-30  Marek Polacek  <polacek@redhat.com>
12104         * c-ubsan.c: New file.
12105         * c-ubsan.h: New file.
12107 2013-08-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12109         * c-pretty-print.h (c_pretty_printer::declaration): Now a virtual
12110         member function.
12111         (c_pretty_printer::declaration_specifiers): Likewise.
12112         (c_pretty_printer::declarator): Likewise.
12113         (c_pretty_printer::abstract_declarator): Likewise.
12114         (c_pretty_printer::direct_abstract_declarator): Likewise.
12115         (c_pretty_printer::direct_declarator): Likewise.
12116         (c_pretty_printer::function_specifier): Likewise.
12117         (pp_declaration): Adjust.
12118         (pp_declaration_specifiers): Likewise.
12119         (pp_abstract_declarator): Likewise.
12120         (pp_direct_declarator): Likewise.
12121         (pp_function_specifier): Likewise.
12122         (pp_direct_abstract_declarator): Remove as unused.
12123         (pp_c_declaration): Remove.
12124         (pp_c_declaration_specifiers): Likewise.
12125         (pp_c_declarator): Likewise.
12126         (pp_c_direct_declarator): Likewise.
12127         (pp_c_function_specifier): Likewise.
12128         (pp_c_direct_abstract_declarator): Likewise.
12129         * c-pretty-print.c (c_pretty_printer::abstract_declarator): Rename
12130         from pp_c_abstract_declarator.  Adjust.
12131         (c_pretty_printer::direct_abstract_declarator): Rename from
12132         pp_c_direct_abstract_declarator.  Adjust.
12133         (c_pretty_printer::function_specifier): Rename from
12134         pp_c_function_specifier.  Adjust.
12135         (c_pretty_printer::declaration_specifiers): Rename from
12136         pp_c_declaration_specifiers.  Adjust.
12137         (c_pretty_printer::direct_declarator): Rename from
12138         pp_c_direct_declarator.  Adjust.
12139         (c_pretty_printer::declarator): Rename from pp_c_declarator.  Adjust.
12140         (c_pretty_printer::declaration): Rename from pp_c_declaration.  Adjust.
12141         (c_pretty_printer::c_pretty_printer): Do not assign to
12142         declaration, declaration_specifiers, declarator,
12143         direct_declarator, direct_abstract_declarator, function_specifier.
12145 2013-08-26  Gabriel Dos Reis  <gdre@integrable-solutions.net>
12147         * c-pretty-print.h (c_pretty_printer::unary_expression): Now a
12148         virtual member function.
12149         (c_pretty_printer::multiplicative_expression): Likewise.
12150         (c_pretty_printer::conditional_expression): Likewise.
12151         (c_pretty_printer::assignment_expression): Likewise.
12152         (c_pretty_printer::expression): Likewise.
12153         (pp_unary_expression): Adjust.
12154         (pp_multiplicative_expression): Likewise.
12155         (pp_assignment_expression): Likewise.
12156         (pp_conditional_expression): Likewise.
12157         (pp_expression): Likewise.
12158         * c-pretty-print.c (c_pretty_printer::unary_expression): Rename
12159         from pp_c_unary_expression.  Adjust.
12160         (c_pretty_printer::multiplicative_expression): Rename from
12161         pp_c_multiplicative_expression.  Adjust.
12162         (c_pretty_printer::conditional_expression): Rename from
12163         pp_c_conditional_expression.  Adjust.
12164         (c_pretty_printer::assignment_expression): Rename from
12165         pp_c_assignment_expression.  Adjust.
12166         (c_pretty_printer::expression): Rename from pp_c_expression.  Adjust.
12167         (c_pretty_printer::c_pretty_printer): Do not assign to
12168         unary_expression, multiplicative_expression,
12169         conditional_expression, expression.
12171 2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12173         * c-pretty-print.h (c_pretty_printer::postfix_expression): Now a
12174         virtual member function.
12175         (pp_postfix_expression): Adjust.
12176         (pp_c_postfix_expression): Remove.
12177         * c-pretty-print.c (c_pretty_printer::postfix_expression): Rename
12178         from pp_c_postfix_expression.  Adjust.
12179         (c_pretty_printer::c_pretty_printer): Do not assign to
12180         postfix_expression.
12182 2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12184         * c-pretty-print.h (c_pretty_printer::primary_expression): Now a
12185         virtua member function.
12186         (pp_primary_expression): Adjust.
12187         (pp_c_primary_expression): Remove.
12188         * c-pretty-print.c (c_pretty_printer::primary_expression): Rename
12189         from pp_c_primary_expression.  Adjust.
12190         (pp_c_initializer_list): Use pp_primary_expression.
12191         (c_pretty_printer::c_pretty_printer): Do not assign to
12192         primary_expression.
12194 2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12196         * c-pretty-print.h (c_pretty_printer::translate_string): Declare.
12197         * c-pretty-print.c (M_): Remove.
12198         (c_pretty_printer::translate_string): Define.
12199         (pp_c_type_specifier): Use it.
12200         (pp_c_primary_expression): Likewise.
12201         (pp_c_expression): Likewise.
12203 2013-08-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12205         * c-pretty-print.h (c_pretty_printer::id_expression): Now a
12206         virtual function.
12207         (pp_c_id_expression): Remove.
12208         (pp_id_expression): Adjust.
12209         * c-pretty-print.c (c_pretty_printer::id_expression): Rename from
12210         pp_c_id_expression.  Adjust.
12211         (pp_c_postfix_expression): Use pp_id_expression.
12212         (c_pretty_printer::c_pretty_printer): Do not assign to id_expression.
12214 2013-08-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12216         * c-pretty-print.h (c_pretty_printer::constant): Now a virtual
12217         member function.
12218         (pp_constant): Adjust.
12219         (pp_c_constant): Remove.
12220         * c-pretty-print.c (c_pretty_printer::constant): Rename from
12221         pp_c_constant.  Adjust.
12222         (pp_c_constant)
12223         (pp_c_primary_expression): Call pp_constant in lieu of pp_c_constant.
12224         (c_pretty_printer::c_pretty_printer): Remove assignment to constant.
12226 2013-08-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12228         * c-pretty-print.h (pp_c_pretty_printer_init): Remove.
12229         (c_pretty_printer::c_pretty_printer): Declare.
12230         * c-pretty-print.c (pretty_printer::c_pretty_printer): Rename from
12231         c_pretty_printer_init.  Adjust.
12232         (print_c_tree): Do not call c_pretty_printer_init.
12233         * c-ada-spec.c (dump_ads): Remove call to pp_construct.
12235 2013-08-09  Arnaud Charlet  <charlet@adacore.com>
12237         * c-ada-spec.c (print_ada_declaration): Prevent accessing null asm name
12239 2013-08-05  Paolo Carlini  <paolo.carlini@oracle.com>
12241         PR c++/58080
12242         * c-common.c (pointer_int_sum): Add bool parameter.
12243         * c-common.h (pointer_int_sum): Adjust declaration.
12245 2013-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12247         * c-pretty-print.c (print_c_tree): Simplify.  Use non-static local
12248         c_pretty_printer variable.
12250 2013-08-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12252         * c-pretty-print.h (c_pretty_printer): Derive from pretty_printer.
12253         (pp_base): Remove.
12254         (pp_c_base): Likewise.  Adjust users.
12255         * c-pretty-print.c (pp_c_maybe_whitespace): Adjust.
12256         (pp_c_whitespace): Do not call pp_base.
12257         (pp_c_left_paren): Likewise.
12258         (pp_c_right_paren): Likewise.
12259         (pp_c_left_brace): Likewise.
12260         (pp_c_right_brace): Likewise.
12261         (pp_c_left_bracket): Likewise.
12262         (pp_c_right_bracket): Likewise.
12263         (pp_c_dot): Likewise.
12264         (pp_c_ampersand): Likewise.
12265         (pp_c_star): Likewise.
12266         (pp_c_arrow): Likewise.
12267         (pp_c_semicolon): Likewise.
12268         (pp_c_complement): Likewise.
12269         (pp_c_exclamation): Likewise.
12270         (pp_c_direct_declarator): Likewise.
12271         (pp_c_ws_string): Likewise.
12272         (pp_c_identifier): Likewise.
12273         (pp_c_statement): Likewise.
12274         (print_c_tree): Likewise.
12276 2013-08-04  Ed Smith-Rowland  <3dw4rd@verizon.net>
12278         PR c++/58072
12279         * c-common.c (c_parse_error): Catch user-defined literal tokens and
12280         provide useful error strings.
12282 2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12284         * c-ada-spec.c (pp_ada_tree_identifier): Use specialized pretty
12285         printer functions instead of pp_string or operators and punctuators.
12286         (dump_generic_ada_node): Likewise.
12287         * c-pretty-print.c (pp_c_type_specifier): Likewise.
12288         (pp_c_relational_expression): Likewise.
12289         (pp_c_logical_or_expression): Likewise.
12291 2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12293         * c-ada-spec.c (print_ada_macros): Use specialized pretty printer
12294         functions instead of pp_character.
12295         (pp_ada_tree_identifier): Likewise.
12296         (dump_ada_double_name): Likewise.
12297         (dump_ada_function_declaration): Likewise.
12298         (dump_ada_array_domains): Likewise.
12299         (dump_template_types): Likewise.
12300         (dump_generic_ada_node): Likewise.
12301         (print_ada_declaration): Likewise.
12302         (print_ada_struct_decl): Likewise.
12303         * c-pretty-print.c (pp_c_integer_constant): Likewise.
12305 2013-07-23  Tom Tromey  <tromey@redhat.com>
12307         * c-common.h (enum rid) <RID_GENERIC>: New constant.
12308         * c-common.c (c_common_reswords): Add _Generic.
12310 2013-07-21   Ondřej Bílka  <neleai@seznam.cz>
12312         * c-common.c: Fix typos.
12313         * c-common.h: Likewise.
12315 2013-07-13  Lubos Lunak  <l.lunak@suse.cz>
12317         PR c++/55203
12318         * c-common.c (c_common_attribute_table): Add warn_unused.
12319         (handle_warn_unused_attribute): New.
12321 2013-07-10  Jakub Jelinek  <jakub@redhat.com>
12323         * c-ppoutput.c (scan_translation_unit): Call account_for_newlines
12324         for all CPP_TOKEN_FLD_STR tokens, not just CPP_COMMENT.
12326 2013-07-10  Paolo Carlini  <paolo.carlini@oracle.com>
12328         PR c++/57869
12329         * c.opt: Add Wconditionally-supported.
12331 2013-07-08  Graham Stott  <graham.stott@btinternet.com>
12333         * array-notation-common.c (length_mismatch_in_expr_p): Delete
12334         unused variables l_length and l_node.
12336 2013-07-04  Joern Rennecke  <joern.rennecke@embecosm.com>
12338         PR c/57821
12339         * c-common.c (complete_array_type): Delay folding first index
12340         like other indices.  When folding, check for index overflow.
12342 2013-06-27  Marc Glisse  <marc.glisse@inria.fr>
12344         PR c++/57509
12345         * c-common.h (c_build_vec_perm_expr): New complain argument.
12346         * c-common.c (c_build_vec_perm_expr): Likewise.
12347         Use save_expr also in C++.
12349 2013-06-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12351         * c-common.c (c_common_nodes_and_builtins): Use cxx11 in lieu of cxx0x.
12352         * c-cppbuiltin.c (c_cpp_builtins): Likewise.
12353         * c-opts.c (c_common_post_options): Likewise.
12355 2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>
12357         * array-notation-common.c (length_mismatch_in_expr): Changed the
12358         parameter type's from a dynamic array to a vec_tree.  Also removed
12359         the size parameters.
12360         * c-common.h (length_mismatch_in_expr_p): Fixed prototype's as per
12361         the change above.
12363 2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>
12365         * c-common.h (struct cilkplus_an_parts): New structure.
12366         (struct cilkplus_an_loop_parts): Likewise.
12367         (cilkplus_extract_an_triplets): New prototype.
12368         (fix_sec_implicit_args): Likewise.
12369         * array-notation-common.c (cilkplus_extract_an_triplets): New function.
12370         (fix_sec_implicit_args): Likewise.
12372 2013-06-20  Balaji V. Iyer  <balaji.v.iyer@intel.com>
12374         * array-notation-common.c (find_inv_trees): Removed an unwanted
12375         typecasting.
12376         * c-common.h (struct inv_list::additional_tcodes): Changed type from
12377         enum rid to enum tree_code.
12379 2013-06-11  Jan Hubicka  <jh@suse.cz>
12381         * c-common.c (handle_alias_ifunc_attribute): Do not set
12382         DECL_EXTERNAL for weakref variables.
12383         * c-pragma.c (handle_pragma_weak): Make sure aliases
12384         are not declared as external.
12386 2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
12388         * array-notation-common.c (length_mismatch_in_expr_p): Moved this
12389         function from c/c-array-notation.c.
12390         (is_cilkplus_reduce_builtin): Likewise.
12391         (find_rank): Likewise.
12392         (extract_array_notation_exprs): Likewise.
12393         (replace_array_notations): Likewise.
12394         (find_inv_trees): Likewise.
12395         (replace_inv_trees): Likewise.
12396         (contains_array_notation_expr): Likewise.
12397         (find_correct_array_notation_type): Likewise.
12398         * c-common.h (struct inv_list): Moved this struct from the file
12399         c/c-array-notation.c and added a new field called additional tcodes.
12400         (length_mismatch_in_expr_p): New prototype.
12401         (is_cilkplus_reduce_builtin): Likewise.
12402         (find_rank): Likewise.
12403         (extract_array_notation_exprs): Likewise.
12404         (replace_array_notation): Likewise.
12405         (find_inv_trees): Likewise.
12406         (replace_inv_trees): Likewise.
12407         (find_correct_array_notation_type): Likewise.
12409 2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
12411         * c-common.c (c_define_builtins): When cilkplus is enabled, the
12412         function array_notation_init_builtins is called.
12413         (c_common_init_ts): Added ARRAY_NOTATION_REF as typed.
12414         * c-common.def (ARRAY_NOTATION_REF): New tree.
12415         * c-common.h (build_array_notation_expr): New function declaration.
12416         (build_array_notation_ref): Likewise.
12417         (extract_sec_implicit_index_arg): New extern declaration.
12418         (is_sec_implicit_index_fn): Likewise.
12419         (ARRAY_NOTATION_CHECK): New define.
12420         (ARRAY_NOTATION_ARRAY): Likewise.
12421         (ARRAY_NOTATION_START): Likewise.
12422         (ARRAY_NOTATION_LENGTH): Likewise.
12423         (ARRAY_NOTATION_STRIDE): Likewise.
12424         * c-pretty-print.c (pp_c_postifix_expression): Added a new case for
12425         ARRAY_NOTATION_REF.
12426         (pp_c_expression): Likewise.
12427         * c.opt (flag_enable_cilkplus): New flag.
12428         * array-notation-common.c: New file.
12430 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
12432         PR c++/57274
12433         * c-common.c (verify_tree): Don't recurse into SIZEOF_EXPR.
12435 2013-05-10  Marc Glisse  <marc.glisse@inria.fr>
12437         * c-common.c (vector_types_convertible_p): No TYPE_PRECISION for
12438         vectors.
12440 2013-05-07  Han Shen  <shenhan@google.com>
12442         * c-cppbuiltin.c (c_cpp_builtins): Added "__SSP_STRONG__=3".
12444 2013-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12446         * c-common.c (check_user_alignment): Emit error for negative values.
12448 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
12450         * c-opts.c (set_std_cxx11): Use CLK_CXX1Y and CLK_GNUCXX1Y.
12452 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
12454         * c-cppbuiltin.c (c_cpp_builtins): Do not define
12455         __GXX_EXPERIMENTAL_CXX1Y__.
12457 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
12458             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12460         * c.opt ([Wpointer-arith]): Enabled by -Wpedantic, as documented.
12461         * c-common.c (pointer_int_sum): Change -Wpointer-arith pedwarns
12462         to simply use OPT_Wpointer_arith.
12463         (c_sizeof_or_alignof_type): Likewise.
12465 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
12467         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_EXPERIMENTAL_CXX1Y__.
12469 2013-04-12  Jakub Jelinek  <jakub@redhat.com>
12471         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
12472         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Add %r and %R format
12473         specifiers.
12475 2013-04-07  Steven Bosscher  <steven@gcc.gnu.org>
12477         * c-pragma.c (add_to_renaming_pragma_list): Fix leading comment.
12479 2013-04-03  Paolo Carlini  <paolo.carlini@oracle.com>
12481         * c-common.c (pointer_int_sum): Remove dead code.
12483 2013-03-09  Richard Sandiford  <rdsandiford@googlemail.com>
12485         PR middle-end/56524
12486         * c-common.c (handle_optimize_attribute): Don't call
12487         save_optabs_if_changed.
12489 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
12491         PR middle-end/56461
12492         * c-pch.c (pch_init): Free target_validity at the end.
12494 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
12496         * c-pretty-print.c (pp_c_pretty_printer_init): Clear pp->flags.
12498 2013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
12499             Jakub Jelinek  <jakub@redhat.com>
12501         PR sanitizer/56454
12502         * c-common.c (handle_no_sanitize_address_attribute): New function.
12503         (c_common_attribute_table): Add no_sanitize_address attribute.
12504         (handle_no_address_safety_analysis_attribute): Add
12505         no_sanitize_address attribute, not no_address_safety_analysis
12506         attribute.
12508 2013-02-18  Aldy Hernandez  <aldyh@redhat.com>
12510         PR target/52555
12511         * c-common.c (handle_optimize_attribute): Call
12512         save_optabs_if_changed.
12514 2013-02-18  Jakub Jelinek  <jakub@redhat.com>
12515             Steven Bosscher  <steven@gcc.gnu.org>
12517         PR pch/54117
12518         * c-opts.c (c_common_post_options): If debug info is enabled
12519         and non-dwarf*, refuse to load PCH files and when writing PCH
12520         file warn.
12522 2013-02-05  Jakub Jelinek  <jakub@redhat.com>
12524         PR middle-end/56167
12525         * c-common.c (handle_error_attribute): Fix condition.
12527 2013-01-30  Jakub Jelinek  <jakub@redhat.com>
12529         PR c++/55742
12530         * c-common.c (handle_target_attribute): Revert 2012-12-26 change.
12532 2013-01-18  Jason Merrill  <jason@redhat.com>
12534         PR target/54908
12535         * c.opt (-fextern-tls-init): New.
12536         * c-opts.c (c_common_post_options): Handle it.
12538 2013-01-09  Jakub Jelinek  <jakub@redhat.com>
12540         PR c/48418
12541         * c-common.c (c_fully_fold_internal): Warn for LSHIFT_EXPR and
12542         RSHIFT_EXPR, if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST
12543         and is either negative or bigger or equal to type precision
12544         of the first operand.
12546 2012-12-03  Marek Polacek  <polacek@redhat.com>
12548         PR c/55570
12549         * c-common.c (check_user_alignment): Swap order of tests,
12550         check TREE_CODE first.
12552 2012-11-29  Ed Smith-Rowland  <3dw4rd@verizon.net>
12554         PR c++/52654
12555         * c-common.h (overflow_type): New enum.
12556         (build_userdef_literal): Add overflow_type argument.
12557         (tree_userdef_literal): Add overflow_type.
12558         (USERDEF_LITERAL_OVERFLOW): New access macro.
12559         * c-common.c (build_userdef_literal): Add overflow_type
12560         argument.
12561         * c-lex.c (c_lex_with_flags): Add overflow_type to
12562         build_userdef_literal calls.
12563         (interpret_integer, interpret_float): Add overflow_type argument.
12565 2012-11-28  Richard Biener  <rguenther@suse.de>
12567         PR c/35634
12568         * c-gimplify.c (c_gimplify_expr): Gimplify self-modify expressions
12569         here and use a type with proper overflow behavior for types that would
12570         need to be promoted for the arithmetic.
12572 2012-11-23  Jakub Jelinek  <jakub@redhat.com>
12574         PR sanitizer/55435
12575         * c-common.c (handle_no_address_safety_analysis_attribute): New
12576         function.
12577         (c_common_attribute_table): Add no_address_safety_analysis.
12579 2012-11-16  Simon Baldwin  <simonb@google.com>
12581         * c.opt: Add f[no-]canonical-system-headers.
12582         * c-opts.c (c_common_handle_option): Handle
12583         OPT_fcanonical_system_headers.
12585 2012-11-09  Ed Smith-Rowland  <3dw4rd@verizon.net>
12587         PR c++/54413
12588         * c-opts.c (c_common_handle_option): Set new flags.
12589         * c.opt: Describe new flags.
12591 2012-11-09  Jason Merrill  <jason@redhat.com>
12593         * c.opt (Wabi-tag): New.
12595 2012-11-09  Andi Kleen  <ak@linux.intel.com>
12597         PR 55139
12598         * c-common.c (get_atomic_generic_size): Mask with
12599         MEMMODEL_MASK
12601 2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12603         PR c/53063
12604         * c.opt (Wformat): Make it Alias Wformat=1.
12605         (Wformat-contains-nul,Wformat-extra-args,Wformat-nonliteral,
12606         Wformat-security,Wformat-y2k,Wformat-zero-length): Use
12607         LangEnabledBy.
12608         (Wformat=): RejectNegative. Use LangEnabledBy.
12609         (Wnonnull): Use LangEnabledBy.
12610         * c-opts.c (c_common_handle_option): Do not handle Wformat here.
12611         * c-format.c (set_Wformat): Delete.
12612         (decode_format_attr): Replace OPT_Wformat with OPT_Wformat_.
12613         (maybe_read_dollar_number): Likewise.
12614         (avoid_dollar_number): Likewise.
12615         (finish_dollar_format_checking): Likewise.
12616         (check_format_info): Likewise.
12617         (check_format_info_main): Likewise.
12618         (check_format_types): Likewise.
12619         (format_type_warning): Likewise.
12620         * c-common.c (int): Likewise.
12621         (check_function_sentinel): Likewise.
12622         * c-common.h (warn_format,set_Wformat): Do not declare here.
12624 2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12626         PR c/53063
12627         * c.opt(Warray-bounds,Wdelete-non-virtual-dtor,Wenum-compare,
12628         Wmain,Woverlength-strings, Wunknown-pragmas,Wunused-macros):
12629         Use LangEnabledBy.
12630         (Wswitch,Wswitch-default,Wswitch-enum): Likewise. Move here from
12631         common.opt.
12632         (Wvariadic-macros): Init(1).
12633         * c-opts.c (c_common_handle_option): Do not handle them
12634         explicitly.
12635         (c_common_post_options): Likewise.
12636         (sanitize_cpp_opts): warn_unused_macros is now
12637         cpp_warn_unused_macros.
12638         (push_command_line_include): Likewise.
12639         * c-common.c (warn_unknown_pragmas): Do not define.
12640         * c-common.h (warn_unknown_pragmas): Do not declare.
12642 2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12644         PR c/51294
12645         * c-common.c (conversion_warning): Handle conditional expressions.
12647 2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
12649         PR c++/54930
12650         * c.opt (Wreturn_local_addr): Define new option.
12652 2012-10-25  Jason Merrill  <jason@redhat.com>
12654         * c.opt (Wvirtual-move-assign): New.
12656         * c.opt (Winherited-variadic-ctor): New.
12658 2012-10-25  Marc Glisse  <marc.glisse@inria.fr>
12660         PR c++/54427
12661         * c-common.c (scalar_to_vector): Handle VEC_COND_EXPR.
12663 2012-10-23  Joseph Myers  <joseph@codesourcery.com>
12665         * c-common.h (pch_cpp_save_state): Declare.
12666         * c-target.def (c_preinclude): New hook.
12667         * c-opts.c (done_preinclude): New.
12668         (push_command_line_include): Handle default preincluded header.
12669         (cb_file_change): Call pch_cpp_save_state when calling
12670         push_command_line_include.
12671         * c-pch.c (pch_ready_to_save_cpp_state, pch_cpp_state_saved)
12672         (pch_cpp_save_state): New.
12673         (pch_init): Call pch_cpp_save_state conditionally, instead of
12674         calling cpp_save_state.
12676 2012-10-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12678         PR c/53063
12679         PR c/40989
12680         * c.opt (Waddress,Wchar-subscripts,Wsign-conversion,Wimplicit,
12681         Wimplicit-function-declaration,Wimplicit-int,Wsizeof-pointer-memaccess,
12682         Wnarrowing,Wparentheses,Wpointer-sign,Wreturn-type,Wsequence-point,
12683         Wsign-compare,Wuninitialized,Wmaybe-uninitialized,Wunused,
12684         Wvolatile-register-var): Add LangEnabledBy or EnabledBy.
12685         * c-opts.c (c_common_handle_option): Remove explicit handling from
12686         here.
12687         (c_common_post_options): Likewise.
12689 2012-10-18  Eric Botcazou  <ebotcazou@adacore.com>
12691         * c-ada-spec.c (LOCATION_COL): Delete.
12692         (compare_location): New function.
12693         (compare_node): Use it.
12694         (compare_comment): Likewise.
12696 2012-10-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12698         PR c/53063
12699         PR c/40989
12700         * c.opt (Wstrict-aliasing=,Wstrict-overflow=): Use LangEnabledBy.
12701         * c-opts.c (c_common_handle_option): Do not set them here. Add
12702         comment.
12703         (c_common_post_options): Likewise.
12705 2012-10-16  Eric Botcazou  <ebotcazou@adacore.com>
12707         * c-ada-spec.c (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Define.
12708         (dump_generic_ada_node) <INTEGER_CST>: Deal with sizetype specially.
12709         Remove POINTER_TYPE handling, add large unsigned handling and use
12710         ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX for big numbers.
12712 2012-10-12  Jakub Jelinek  <jakub@redhat.com>
12714         PR c/54381
12715         * c-common.h (sizeof_pointer_memaccess_warning): Adjust prototype.
12716         * c-common.c (sizeof_pointer_memaccess_warning): Take array of 3
12717         locs and array of 3 trees instead of just single loc and single
12718         sizeof_arg tree.  Handle __builtin___*_chk builtins too, and
12719         also stpncpy, bcopy, bcmp, bzero, snprintf and vsnprintf builtins.
12720         For *cmp* builtins that take two sources strings report warnings
12721         about first and second source, not about destination and source.
12723 2012-10-12  Marc Glisse  <marc.glisse@inria.fr>
12725         PR c++/53055
12726         * c-common.h (enum ref_operator) [RO_ARROW_STAR]: New.
12728 2012-10-11  Eric Botcazou  <ebotcazou@adacore.com>
12730         * c-ada-spec.c (dump_ada_template): Bail out for template declarations
12731         declaring something coming from another file.
12733 2012-10-10  Arnaud Charlet  <charlet@adacore.com>
12735         PR ada/54845
12736         * c-ada-spec.c (print_ada_struct_decl): Increase buf size.
12738 2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
12740         PR c++/54194
12741         * c-common.c (warn_about_parentheses): Add location_t parameter;
12742         use EXPR_LOC_OR_LOC.
12743         * c-common.h: Update declaration.
12745 2012-10-09  Marc Glisse  <marc.glisse@inria.fr>
12747         PR c++/54427
12748         * c-common.c (scalar_to_vector): Moved from c-typeck.c. Support
12749         more operations. Make error messages optional.
12750         * c-common.h (enum stv_conv): Moved from c-typeck.c.
12751         (scalar_to_vector): Declare.
12753 2012-10-08  Jason Merrill  <jason@redhat.com>
12755         * c-common.c (c_common_reswords): Add thread_local.
12757 2012-10-08  Dodji Seketeli  <dodji@redhat.com>
12759         PR c++/53528 C++11 attribute support
12760         * c-common.h (bitfield_p, cxx_fundamental_alignment_p): Declare
12761         new functions.
12762         * c-common.c (check_cxx_fundamental_alignment_constraints): New
12763         static function.
12764         (handle_aligned_attribute): In choose strictest alignment
12765         among many.  Use new check_cxx_fundamental_alignment_constraints.
12766         (handle_transparent_union_attribute): In c++11 attribute syntax,
12767         don't look through typedefs.
12769 2012-10-04  Arnaud Charlet  <charlet@adacore.com>
12771         * c-ada-spec.c (print_ada_declaration): Remove handling of TDF_RAW.
12772         * c.opt (-fdump-ada-spec, -fdump-ada-spec-slim): Move switch definition
12773         out of dumpfile.h.
12775 2012-09-25  Dehao Chen  <dehao@google.com>
12777         PR middle-end/54645
12778         * c-pch.c (c_common_read_pch): Rebuild the location_adhoc_data
12779         map when read in the pch.
12781 2012-09-18  Arnaud Charlet  <charlet@adacore.com>
12783         * c-ada-spec.c: Style fixes.
12785 2012-09-18  Thomas Quinot  <quinot@adacore.com>
12787         * c.opt (-fada-spec-parent): Define new command line switch.
12788         * c-ada-spec.c (get_ada_package): When -fada-spec-parent
12789         is specified, generate binding spec as a child of the specified unit.
12791 2012-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
12792             Manuel López-Ibáñez  <manu@gcc.gnu.org>
12794         PR c++/53210
12795         * c.opt ([Winit-self]): Enabled by -Wall in C++.
12797 2012-08-23  Arnaud Charlet  <charlet@adacore.com>
12799         * c-ada-spec.c (dump_generic_ada_node): Fix handling of name_only
12800         for pointers, and add missing Convention C pragma.
12801         (print_ada_struct_decl): Add missing aliased keyword.
12802         (dump_ads): Add pragma Ada_2005 and Style_Checks (Off).
12804 2012-08-17  Jakub Jelinek  <jakub@redhat.com>
12806         * c-common.c (sizeof_pointer_memaccess_warning): New function.
12807         * c.opt (-Wsizeof-pointer-memaccess): Add new option.
12808         * c-opts.c (c_common_handle_option): Enable it for -Wall.
12809         * c-common.h (sizeof_pointer_memaccess_warning): Add prototype.
12810         * c-common.def (SIZEOF_EXPR): Moved here from cp-tree.def.
12812 2012-08-10  Richard Guenther  <rguenther@suse.de>
12814         * c-pretty-print.c (pp_c_expression): Handle anonymous SSA names.
12816 2012-08-07  Steven Bosscher  <steven@gcc.gnu.org>
12818         * c-pretty-print.c (pp_c_function_definition): Use pp_newline_and_flush
12819         instead of separate pp_newline and pp_flush.
12820         (print_c_tree): Likewise.
12822 2012-07-26  Richard Henderson  <rth@redhat.com>
12824         * c-common.c (handle_hot_attribute): Allow labels.
12825         (handle_cold_attribute): Likewise.
12827 2012-07-20  Jakub Jelinek  <jakub@redhat.com>
12829         PR c++/28656
12830         * c-common.c (check_function_nonnull): Handle multiple nonnull
12831         attributes properly.
12833 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
12835         * c-gimplify.c: Include dumpfile.h instead of tree-dump.h.
12836         * c-ada-spec.c: Likewise.
12837         * c-dump.c (dump_stmt): Move to cp/dump.c, the only user.
12839 2012-07-14  Steven Bosscher  <steven@gcc.gnu.org>
12841         * c-pch.c (CHECK_NO_ASM_OUT_DURING_PCH): Do not define.
12842         Remove code conditional on it.
12844 2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>
12846         * c-gimplify.c: Do not include basic-block.h.
12847         * c-common.c: Do not include linfuncs.h.
12849 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
12851         * c-common.h: Include tree.h.
12853 2012-07-02  Jason Merrill  <jason@redhat.com>
12855         PR c++/53524
12856         * c-common.c (get_priority): Call default_conversion.
12858 2012-07-01  Uros Bizjak  <ubizjak@gmail.com>
12860         * c-pch.c (c_common_write_pch): Remove unused variables.
12862 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
12864         * cppspec.c: Moved from gcc/ to here.
12866 2012-06-27  Kai Tietz  <ktietz@redhat.com>
12868         PR preprocessor/37215
12869         * c-ppoutput.c (preprocess_file): Check for nonempty buffer.
12871 2012-06-21  Steven Bosscher  <steven@gcc.gnu.org>
12873         * c-common.h (c_common_print_pch_checksum): Remove.
12874         * c-pch.c: Do not include output.h.
12875         (CHECK_NO_ASM_OUT_DURING_PCH): Define and add FIXME.
12876         (asm_out_file): Define iff CHECK_NO_ASM_OUT_DURING_PCH isdefined.
12877         (asm_file_startpos): Define iff CHECK_NO_ASM_OUT_DURING_PCH is defined.
12878         (struct c_pch_header): Remove.
12879         (get_ident): Update gpch version.
12880         (pch_init): Do not print executable_checksum to asm_out_file.
12881         Do not fail if there is no asm_out_file to read back from.  Set
12882         asm_file_startpos only if CHECK_NO_ASM_OUT_DURING_PCH is defined.
12883         (c_common_write_pch): Verify that nothing was written to asm_out_file
12884         since pch_init was called.  Do not write a c_pch_header, and do not
12885         copy from asm_out_file to the PCH.
12886         (c_common_read_pch): Do not read a c_pch_header, and do not restore
12887         the content of asm_out_file from the PCH.
12888         (c_common_print_pch_checksum): Remove.
12889         * c-opts.c (c_common_init): Print out executable_checksum directly.
12891 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
12893         * c-target.def (objc_declare_unresolved_class_reference,
12894         objc_declare_class_definition): Add new hooks.
12896 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
12898         * c-lex.c: Do not include output.h.
12899         (cb_ident): Try to put out .ident with targetm.asm_out.output_ident.
12900         Remove uses of ASM_OUTPUT_IDENT.
12902 2012-06-15  Marc Glisse  <marc.glisse@inria.fr>
12904         PR c++/51033
12905         * c-common.h (c_build_vec_perm_expr): Move decl here.
12906         * c-common.c (c_build_vec_perm_expr): Move definition
12907         here.
12909 2012-06-06  Steven Bosscher  <steven@gcc.gnu.org>
12911         * c.opt (fconserve-space): Turn into a no-op.
12913 2012-06-04  Sterling Augustine  <saugustine@google.com>
12915         * c-pretty-print.h (pp_c_flag_gnu_v3): New enumerator.
12916         * c-pretty-print.c (pp_c_specifier_qualifier_list): Check it at
12917         both the start and end of the function.
12919 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
12921         * c-common.c: Do not include output.h.
12922         * c-pragma.c: Likewise.
12924 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
12926         * error.c (dump_decl): Check pp_c_flag_gnu_v3.
12927         (decl_as_dwarf_string, lang_decl_dwarf_name): New functions.
12928         (lang_decl_name): Handle namespace decls.
12930 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
12932         * c-ada-spec.c: Do not include output.h.
12933         * c-semantics.c: Likewise.
12935 2012-05-29  Joseph Myers  <joseph@codesourcery.com>
12937         * c-common.c: Fix typo.
12939 2012-05-29  Michael Matz  <matz@suse.de>
12941         * c-common.h (c_expand_decl): Remove prototype.
12943 2012-05-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12945         * c.opt (Wmissing-braces): Use LangEnabledBy(C ObjC,Wall).
12946         * c-opts.c (c_common_handle_option): Remove code handling
12947         warn_missing_braces.
12949 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
12951         PR c++/25137
12952         * c-opts.c (c_common_handle_option): For C++ -Wall doesn't enable
12953         -Wmissing_braces.
12955 2012-05-22  Dodji Seketeli  <dodji@redhat.com>
12957         PR c++/53322
12958         * c.opt (Wunused-local-typedefs): Use EnabledBy(Wunused).
12960 2012-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12962         * c.opt (--pedantic-errors,-pedantic-errors): Do not handle here.
12963         * c-opts.c (c_common_handle_option): Do not handle explicitly
12964         Wreturn-type, Wwrite-strings, warn_ecpp, and -pedantic-errors.
12966 2012-05-16  Dodji Seketeli  <dodji@redhat.com>
12968         PR preprocessor/7263
12969         * c-lex.c (c_lex_with_flags): Pass a virtual location to the call
12970         to cpp_classify_number.  For diagnostics, use the precise location
12971         instead of the global input_location.
12973 2012-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
12975         PR c++/11856
12976         * c-common.c (shorten_compare): Check c_inhibit_evaluation_warnings.
12978 2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>
12980         * c-common.c (DEF_ATTR_STRING): Define and undefine as necessary.
12982 2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12984         PR 53063
12985         * c.opt (Wc++0X-compat,Wdelete-non-virtual-dtor,Wjump-misses-init,
12986         Wreorder): Use LangEnabledBy.
12987         * c-opts.c (c_common_handle_option): Do not enable them
12988         explicitly. Call lang-specific generated functions.
12989         (c_common_post_options): Do not set them here.
12991 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12993         * c.opt (Wclobbered,Wempty-body,Wignored-qualifiers,
12994         Wmissing-field-initializers,Wmissing-parameter-type,
12995         Wold-style-declaration,Woverride-init): Use EnabledBy.
12996         * c-opts.c (c_common_post_options): Do not set here explicitly.
12998 2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13000         PR 53063
13001         * c-opts.c (c_common_handle_option): Use handle_generated_option
13002         to enable sub-options.
13004 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
13006         PR c++/53158
13007         * c-common.c (warnings_for_convert_and_check): Use warning_at.
13009 2012-05-10  Richard Guenther  <rguenther@suse.de>
13011         * c-common.c (c_sizeof_or_alignof_type): Remove assert and
13012         adjust commentary about TYPE_IS_SIZETYPE types.
13014 2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13016         PR c++/53261
13017         * c-common.c (warn_logical_operator): Check that argument of
13018         integer_zerop is not NULL.
13020 2012-05-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13022         PR c/43772
13023         * c-common.c (warn_logical_operator): Do not warn if either side
13024         is already true or false.
13026 2012-05-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13028         PR c/51712
13029         * c-common.c (expr_original_type): New.
13030         (shorten_compare): Do not warn for enumeration types.
13032 2012-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13034         * c.opt (fpermissive): Add Var(flag_permissive).
13036 2012-04-30  Marc Glisse  <marc.glisse@inria.fr>
13038         PR c++/51033
13039         * c-common.c (convert_vector_to_pointer_for_subscript): New function.
13040         * c-common.h (convert_vector_to_pointer_for_subscript): Declare it.
13042 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
13044         Add -Wvarargs option
13045         * c.opt (Wvarargs): Define new option.
13047 2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13049         * c-common.c (check_function_arguments): Replace
13050         Wmissing-format-attribute with Wsuggest-attribute=format.
13052 2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13054         * c.opt (Wsuggest-attribute=format): New. Alias of
13055         Wmissing-format-attribute.
13056         * c-format.c (decode_format_type): Replace
13057         Wmissing-format-attribute with Wsuggest-attribute=format.
13058         (check_function_format): Likewise.
13060 2012-04-27  Ollie Wild  <aaw@google.com>
13062         * c-common.c: Add CPP_W_LITERAL_SUFFIX mapping.
13063         * c-opts.c (c_common_handle_option): Handle OPT_Wliteral_suffix.
13064         * c.opt: Add Wliteral-suffix.
13066 2012-04-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13068         PR c/44774
13069         * c.opt (Wpedantic): New.
13070         (pedantic): Alias Wpedantic.
13071         * c-opts.c (c_common_handle_option): Replace -pedantic with -Wpedantic.
13072         (c_common_post_options): Likewise.
13073         (sanitize_cpp_opts): Likewise.
13074         * c-lex.c (interpret_float): Likewise.
13075         * c-format.c (check_format_types): Likewise.
13076         * c-common.c (pointer_int_sum): Likewise.
13077         (c_sizeof_or_alignof_type): Likewise.
13078         (c_add_case_label): Likewise.
13079         (c_do_switch_warnings): Likewise.
13080         * c-pragma.c (handle_pragma_float_const_decimal64): Likewise.
13082 2012-04-15  Jason Merrill  <jason@redhat.com>
13084         PR c++/52818
13085         * c-format.c (CPLUSPLUS_STD_VER): C++11 inherits from C99.
13086         (C_STD_NAME): Distinguish between C++98 and C++11.
13088 2012-04-11  Eric Botcazou  <ebotcazou@adacore.com>
13090         PR target/52624
13091         * c-common.h (uint16_type_node): Rename into...
13092         (c_uint16_type_node): ...this.
13093         * c-common.c (c_common_nodes_and_builtins): Adjust for above renaming.
13094         * c-cppbuiltin.c (builtin_define_stdint_macros): Likewise.
13096 2012-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13098         * c-common.c (warn_if_unused_value): Move definition to here.
13099         * c-common.h (warn_if_unused_value): Move declaration to here.
13101 2012-03-23  William Bader  <williambader@hotmail.com>
13103         * c-lex.c (c_lex_with_flags): Avoid declarations after stmts.
13105 2012-03-20  Jason Merrill  <jason@redhat.com>
13107         * c-common.h (enum cxx_dialect): Add cxx1y.
13108         * c-common.c (c_common_nodes_and_builtins): Use >= for cxx_dialect
13109         test.
13110         * c-cppbuiltin.c (c_cpp_builtins): Likewise.
13111         * c-opts.c (c_common_post_options): Likewise.
13112         (set_std_cxx1y): New.
13113         (c_common_handle_option): Call it.
13114         * c.opt (-std=c++1y, -std=gnu++1y): New flags.
13116 2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
13118         PR c++/14710
13119         * c.opt ([Wuseless-cast]): Add.
13121 2012-03-16  Richard Guenther  <rguenther@suse.de>
13123         * c-pretty-print.c (pp_c_initializer_list): Adjust.
13125 2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13127         PR c++/44783
13128         * c.opt (ftemplate-backtrace-limit) Add.
13130 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13132         * c-cppbuiltin.c (c_cpp_builtins): Remove #pragma extern_prefix
13133         handling.
13134         * c-pragma.c (handle_pragma_extern_prefix): Remove.
13135         (init_pragma): Don't register extern_prefix.
13137 2012-03-12  Richard Guenther  <rguenther@suse.de>
13139         * c-common.c (c_common_get_narrower): Use c_common_type_for_size.
13140         (builtin_type_for_size): Likewise.
13142 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
13144         PR c++/52215
13145         * c-common.c (sync_resolve_params): Don't decide whether to convert
13146         or not based on TYPE_SIZE comparison, convert whenever arg_type
13147         is unsigned INTEGER_TYPE.
13149 2012-02-06  Paolo Carlini  <paolo.carlini@oracle.com>
13151         PR c/52118
13152         * c.opt ([Wunused-local-typedefs]): Fix description.
13154 2012-01-24  Mike Stump  <mikestump@comcast.net>
13156         * c-common.c (c_common_type_for_mode): Match signed/unsigned types
13157         exactly.
13159 2012-01-18  Richard Guenther  <rguenther@suse.de>
13161         * c-opts.c (c_common_post_options): Reset LTO flags if
13162         we are about to generate a PCH.
13164 2012-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
13166         PR c++/51777
13167         * c-pretty-print.c (pp_c_integer_constant): For unsigned constants
13168         use pp_unsigned_wide_integer.
13170 2012-01-10  Richard Guenther  <rguenther@suse.de>
13172         PR middle-end/51806
13173         * c-opts.c (c_common_handle_option): Move -Werror handling
13174         to language independent code.
13176 2012-01-05  Richard Guenther  <rguenther@suse.de>
13178         PR middle-end/51764
13179         * c.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move here
13180         from common.opt.
13182 2011-12-30  Paolo Carlini  <paolo.carlini@oracle.com>
13184         PR c++/51316
13185         * c-common.c (c_sizeof_or_alignof_type): In C++ allow for alignof
13186         of array types with an unknown bound.
13188 2011-12-20  Joseph Myers  <joseph@codesourcery.com>
13190         * c-common.c (flag_isoc99): Update comment to refer to C11.
13191         (flag_isoc1x): Change to flag_isoc11.
13192         * c-common.h (flag_isoc99): Update comment to refer to C11.
13193         (flag_isoc1x): Change to flag_isoc11.
13194         * c-cppbuiltin.c (cpp_atomic_builtins): Change comment to refer to
13195         C11.
13196         * c-opts.c (set_std_c1x): Change to set_std_c11.
13197         (c_common_handle_option): Handle OPT_std_c11 and OPT_std_gnu11.
13198         Call set_std_c11.
13199         (set_std_c89, set_std_c99, set_std_c11): Use flag_isoc11.
13200         (set_std_c1): Use CLK_STDC11 and CLK_GNUC11.
13201         * c.opt (std=c1x): Change to std=c11.  Document as non-draft
13202         standard.
13203         (std=c1x, std=iso9899:2011): Add as aliases of std=c11.
13204         (std=gnu1x): Change to std=gnu11.  Refer to non-draft standard.
13205         (std=gnu1x): Make alias of std=gnu11.
13207 2011-12-19  Jason Merrill  <jason@redhat.com>
13209         PR c++/51228
13210         * c-common.c (handle_transparent_union_attribute): Check the first
13211         field if the type is complete.
13213 2011-12-15  Jonathan Wakely  <jwakely.gcc@gmail.com>
13215         PR libstdc++/51365
13216         * c-common.c (RID_IS_FINAL): Add.
13217         * c-common.h (RID_IS_FINAL): Add.
13219 2011-11-30  Iain Sandoe  <iains@gcc.gnu.org>
13221         * c.opt (fgnu-runtime): Provide full description.
13222         (fnext-runtime): Likewise.
13223         * c-opts.c (OPT_fgnu_runtime, OPT_fnext_runtime) Remove.
13225 2011-11-28  Andrew MacLeod  <amacleod@redhat.com>
13227         * c-cpp-builtin.c (cpp_atomic_builtins):New.  Emit all atomic
13228         predefines in one place.  Add LOCK_FREE predefines.
13229         (c_cpp_builtins): Move Legacy HAVE_SYNC predefines to
13230         new func.
13232 2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
13234         PR c/51256
13235         * c-common.c (get_atomic_generic_size): Check for various error
13236         conditions
13237         (resolve_overloaded_atomic_exchange,
13238         resolve_overloaded_atomic_compare_exchange,
13239         resolve_overloaded_atomic_load, resolve_overloaded_atomic_store): Return
13240         error_mark_node for error conditions.
13242 2011-11-08  Richard Guenther  <rguenther@suse.de>
13244         PR middle-end/51010
13245         * c-pretty-print.c (pp_c_expression): Handle SSA_NAMEs.
13247 2011-11-07  Richard Henderson  <rth@redhat.com>
13248             Aldy Hernandez  <aldyh@redhat.com>
13249             Torvald Riegel  <triegel@redhat.com>
13251         Merged from transactional-memory.
13253         * c-common.c (handle_tm_wrap_attribute,
13254         handle_tm_attribute, ignore_attribute, parse_tm_stmt_attr): New.
13255         (struct c_common_reswords): Added __transaction* keywords.
13256         (struct c_common_attribute_table): Added transaction* and tm_regparm
13257         attributes.
13258         * c-common.h: Added RID_TRANSACTION*. Added TM_ATTR* and TM_STMT*
13259         masks.
13260         (parse_tm_stmt_attr, tm_attr_to_mask, tm_mask_to_attr,
13261         find_tm_attribute): Declare.
13263 2011-11-07  Jason Merrill  <jason@redhat.com>
13265         PR c++/35688
13266         * c-common.c, c-common.h: Revert yesterday's changes.
13268 2011-11-06  Jason Merrill  <jason@redhat.com>
13270         PR c++/35688
13271         * c-common.c (decl_has_visibility_attr): Split out from...
13272         (c_determine_visibility): ...here.
13273         * c-common.h: Declare it.
13275 2011-11-06  Joseph Myers  <joseph@codesourcery.com>
13277         * c-common.c (c_common_reswords): Add _Alignas and _Alignof.
13278         (c_sizeof_or_alignof_type): Diagnose alignof applied to a function
13279         type.
13280         (check_user_alignment): New.  Split out of
13281         handle_aligned_attribute.  Disallow integer constants with
13282         noninteger types.  Conditionally allow zero.
13283         (handle_aligned_attribute): Use check_user_alignment.
13284         * c-common.h (RID_ALIGNAS, check_user_alignment): New.
13286 2011-11-06  Andrew MacLeod  <amacleod@redhat.com>
13287             Richard Henderson  <rth@redhat.com>
13289         Merged from cxx-mem-model.
13291         * c-cppbuiltin.c (c_cpp_builtins): Test both atomic and sync patterns.
13292         * c-common.c (sync_resolve_params, sync_resolve_return): Only tweak
13293         parameters that are the same type size.
13294         (get_atomic_generic_size): New.  Find size of generic
13295         atomic function parameters and do typechecking.
13296         (add_atomic_size_parameter): New.  Insert size into parameter list.
13297         (resolve_overloaded_atomic_exchange): Restructure __atomic_exchange to
13298         either __atomic_exchange_n or external library call.
13299         (resolve_overloaded_atomic_compare_exchange): Restructure
13300         __atomic_compare_exchange to either _n variant or external library call.
13301         (resolve_overloaded_atomic_load): Restructure __atomic_load to either
13302         __atomic_load_n or an external library call.
13303         (resolve_overloaded_atomic_store): Restructure __atomic_store to either
13304         __atomic_store_n or an external library call.
13305         (resolve_overloaded_builtin): Handle new __atomic builtins.
13307 2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
13309         PR c++/50608
13310         * c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Call fold_offsetof_1.
13311         (fold_offsetof_1): Make global.  Remove STOP_REF argument and adjust.
13312         <INDIRECT_REF>: Return the argument.
13313         <ARRAY_REF>: Remove special code for negative offset.
13314         Call fold_build_pointer_plus instead of size_binop.
13315         (fold_offsetof): Remove STOP_REF argument and adjust.
13316         * c-common.h (fold_offsetof_1): Declare.
13317         (fold_offsetof): Remove STOP_REF argument.
13319 2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
13321         PR c++/50810
13322         * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
13323         of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
13324         Wnarrowing for C++0x and C++98.
13325         * c.opt ([Wnarrowing]): Update.
13327 2011-11-01  Paolo Carlini  <paolo.carlini@oracle.com>
13329         PR c++/44277
13330         * c.opt: Add Wzero-as-null-pointer-constant.
13332 2011-10-31  Jason Merrill  <jason@redhat.com>
13334         * c.opt (-fdeduce-init-list): Off by default.
13336         PR c++/50920
13337         * c-common.h (cxx_dialect): Add cxx11 and cxx03.
13338         * c.opt: Add -std=c++11, -std=gnu++11, -std=gnu++03,
13339         and -Wc++11-compat.
13340         * c-opts.c (set_std_cxx11): Rename from set_std_cxx0x.
13342 2011-10-27  Roberto Agostino Vitillo  <ravitillo@lbl.gov>
13344         PR c++/30066
13345         * c.opt (fvisibility-inlines-hidden): Description change.
13347 2011-10-26  Ed Smith-Rowland  <3dw4rd@verizon.net>
13349         Implement C++11 user-defined literals.
13350         * c-common.c (build_userdef_literal): New.
13351         * c-common.def: New tree code.
13352         * c-common.h (tree_userdef_literal): New tree struct and accessors.
13353         * c-lex.c (interpret_float): Add suffix parm.
13354         (c_lex_with_flags): Build literal tokens.
13356 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
13358         PR c++/50841
13359         Revert:
13360         2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
13362         PR c++/50810
13363         * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
13364         of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
13365         Wnarrowing for C++0x and C++98.
13366         * c.opt ([Wnarrowing]): Update.
13368 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
13370         PR c++/50810
13371         * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
13372         of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
13373         Wnarrowing for C++0x and C++98.
13374         * c.opt ([Wnarrowing]): Update.
13376 2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>
13378         PR c++/45385
13379         * c-common.c (conversion_warning): Remove code looking for
13380         artificial operands.
13382 2011-10-18  Dodji Seketeli  <dodji@redhat.com>
13384         PR bootstrap/50760
13385         * c-lex.c (fe_file_change): Use LINEMAP_SYSP when
13386         !NO_IMPLICIT_EXTERN_C.
13388 2011-10-17  Michael Spertus  <mike_spertus@symantec.com>
13390         * c-common.c (c_common_reswords): Add __bases,
13391         __direct_bases.
13392         * c-common.h: Add RID_BASES and RID_DIRECT_BASES.
13394 2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
13396         PR c++/50757
13397         * c.opt ([Wnonnull]): Add C++ and Objective-C++.
13399 2011-10-15  Tom Tromey  <tromey@redhat.com>
13400             Dodji Seketeli  <dodji@redhat.com>
13402         * c.opt (fdebug-cpp): New option.
13403         * c-opts.c (c_common_handle_option): Handle the option.
13404         * c-ppoutput.c (maybe_print_line_1): New static function. Takes an
13405         output stream in parameter. Factorized from ...
13406         (maybe_print_line): ... this. Dump location debug information when
13407         -fdebug-cpp is in effect.
13408         (print_line_1): New static function. Takes an output stream in
13409         parameter. Factorized from ...
13410         (print_line): ... here. Dump location information when -fdebug-cpp
13411         is in effect.
13412         (scan_translation_unit): Dump location information when
13413         -fdebug-cpp is in effect.
13415 2011-10-15  Tom Tromey  <tromey@redhat.com>
13416             Dodji Seketeli  <dodji@redhat.com>
13418         * c.opt (ftrack-macro-expansion): New option. Handle it with and
13419         without argument.
13420         * c-opts.c (c_common_handle_option)<case
13421         OPT_ftrack_macro_expansion_, case OPT_ftrack_macro_expansion>: New
13422         cases. Handle -ftrack-macro-expansion with and without argument.
13424 2011-10-15  Tom Tromey  <tromey@redhat.com>
13425             Dodji Seketeli  <dodji@redhat.com>
13427         * c-ppoutput.c (scan_translation_unit, maybe_print_line)
13428         (print_line, cb_define, do_line_change): Adjust to avoid touching
13429         the internals of struct line_map.  Use the public API instead.
13430         * c-pch.c (c_common_read_pch): Likewise.
13431         * c-lex.c (fe_file_change): Likewise.
13433 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
13435         PR c++/17212
13436         * c.opt ([Wformat-zero-length]): Add C++ and Objective-C++.
13438 2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
13440         PR c++/33067
13441         * c-pretty-print.c (pp_c_floating_constant): Output
13442         max_digits10 (in the ISO C++ WG N1822 sense) decimal digits.
13444 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
13446         * c-common.c (def_builtin_1): Delete old interface with two
13447         parallel arrays to hold standard builtin declarations, and replace
13448         it with a function based interface that can support creating
13449         builtins on the fly in the future.  Change all uses, and poison
13450         the old names.  Make sure 0 is not a legitimate builtin index.
13451         * c-omp.c (c_finish_omp_barrier): Ditto.
13452         (c_finish_omp_taskwait): Ditto.
13453         (c_finish_omp_flush): Ditto.
13455 2011-10-11  Tristan Gingold  <gingold@adacore.com>
13457         * c.opt: (fallow-parameterless-variadic-functions): New.
13459 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
13461         PR c++/33255 - Support -Wunused-local-typedefs warning
13462         * c-common.h (struct c_language_function::local_typedefs): New
13463         field.
13464         (record_locally_defined_typedef, maybe_record_typedef_use)
13465         (maybe_warn_unused_local_typedefs): Declare new functions.
13466         * c-common.c (record_locally_defined_typedef)
13467         (maybe_record_typedef_use)
13468         (maybe_warn_unused_local_typedefs): Define new functions.
13469         * c.opt: Declare new -Wunused-local-typedefs flag.
13471 2011-09-06  Eric Botcazou  <ebotcazou@adacore.com>
13473         PR middle-end/50266
13474         * c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Fold offsetof-like
13475         computations.
13477 2011-09-05  Richard Guenther  <rguenther@suse.de>
13479         * c-common.c (complete_array_type): Use ssize_int (-1) instead
13480         of integer_minus_one_node for empty array upper bounds.
13482 2011-08-28  Dodji Seketeli  <dodji@redhat.com>
13484         * c-pch.c (c_common_read_pch): Call linemap_add with LC_ENTER as
13485         it's the first time it's being called on this main TU.
13487 2011-08-24  Richard Guenther  <rguenther@suse.de>
13489         PR c/49396
13490         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Fix conditional.
13492 2011-08-22  Gabriel Charette  <gchare@google.com>
13494         * c-opts.c (c_finish_options): Force BUILTINS_LOCATION for tokens
13495         defined in cpp_init_builtins and c_cpp_builtins.
13497 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
13499         * c-common.c (c_common_reswords): Add __builtin_complex.
13500         * c-common.h (RID_BUILTIN_COMPLEX): New.
13502 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
13504         * c-common.c (c_common_reswords): Add _Noreturn.
13505         (keyword_is_function_specifier): Handle RID_NORETURN.
13506         * c-common.h (RID_NORETURN): New.
13508 2011-08-10  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
13510         * c-common.c (unsafe_conversion_p): New function. Check if it is
13511         unsafe to convert an expression to the type.
13512         (conversion_warning): Adjust, use unsafe_conversion_p.
13513         * c-common.h (unsafe_conversion_p): New function declaration.
13515 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
13517         * c-common.h (c_finish_omp_atomic): Adjust prototype.
13518         (c_finish_omp_taskyield): New prototype.
13519         * c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
13520         arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and
13521         OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC.  If LHS1
13522         or RHS1 have side-effects, evaluate those too in the right spot,
13523         if it is a decl and LHS is also a decl, error out if they
13524         aren't the same.
13525         (c_finish_omp_taskyield): New function.
13526         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107.
13527         * c-pragma.c (omp_pragmas): Add taskyield.
13528         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD.
13529         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and
13530         PRAGMA_OMP_CLAUSE_MERGEABLE.
13532 2011-07-25  Dodji Seketeli  <dodji@redhat.com>
13534         * c-common.h (set_underlying_type): Remove parm name from
13535         declaration.
13537 2011-07-25  Romain Geissler  <romain.geissler@gmail.com>
13539         * c-pretty-print.h: Search c-common.h in c-family.
13541 2011-07-22  Jason Merrill  <jason@redhat.com>
13543         PR c++/49793
13544         * c.opt (Wnarrowing): New.
13546         PR c++/30112
13547         * c-common.h: Declare c_linkage_bindings.
13548         * c-pragma.c (handle_pragma_redefine_extname): Use it.
13550         PR c++/49813
13551         * c-opts.c (set_std_cxx0x): Set flag_isoc94 and flag_isoc99.
13552         * c-pretty-print.c (pp_c_cv_qualifiers): Check c_dialect_cxx as well
13553         as flag_isoc99 for 'restrict'.
13554         (pp_c_specifier_qualifier_list): Likewise for _Complex.
13556 2011-07-21  Ian Lance Taylor  <iant@google.com>
13558         PR middle-end/49705
13559         * c-common.c (c_disable_warnings): New static function.
13560         (c_enable_warnings): New static function.
13561         (c_fully_fold_internal): Change local unused_p to bool.  Call
13562         c_disable_warnings and c_enable_warnings rather than change
13563         c_inhibit_evaluation_warnings.
13565 2011-07-20  Jason Merrill  <jason@redhat.com>
13567         PR c++/6709 (DR 743)
13568         PR c++/42603 (DR 950)
13569         * c-common.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move from cp/parser.h.
13570         (CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
13571         (CPP_DECLTYPE): New.
13572         * c-common.c (c_parse_error): Handle CPP_DECLTYPE.
13574 2011-07-19  Richard Guenther  <rguenther@suse.de>
13576         * c-common.c (pointer_int_sum): Use fold_build_pointer_plus.
13577         * c-omp.c (c_finish_omp_for): Likewise.
13579 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
13581         * c-ada-spec.c (dump_nested_types): Put semi-colon after empty loop
13582         body on the next line.
13584 2011-07-08  Jason Merrill  <jason@redhat.com>
13586         PR c++/45437
13587         * c-omp.c (check_omp_for_incr_expr): Handle preevaluation.
13589         PR c++/49673
13590         * c-common.c (c_apply_type_quals_to_decl): Don't check
13591         TYPE_NEEDS_CONSTRUCTING.
13593 2011-07-06  Richard Guenther  <rguenther@suse.de>
13595         * c-common.c (c_common_nodes_and_builtins):
13596         Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
13598 2011-07-05  Richard Guenther  <rguenther@suse.de>
13600         * c-common.c (c_common_nodes_and_builtins): Build all common
13601         tree nodes first.
13603 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
13605         * c-common.h (c_tree_chain_next): New static inline function.
13607         * c-common.c (check_builtin_function_arguments): Handle
13608         BUILT_IN_ASSUME_ALIGNED.
13610 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
13612         * c-common.c: Add sync_ or SYNC__ to builtin names.
13613         * c-omp.c: Add sync_ or SYNC__ to builtin names.
13615 2011-06-20  Pierre Vittet  <piervit@pvittet.com>
13617         * c-pragma.h (pragma_handler_1arg, pragma_handler_2arg): New
13618         handler.
13619         (gen_pragma_handler): New union.
13620         (internal_pragma_handler): New type.
13621         (c_register_pragma_with_data)
13622         (c_register_pragma_with_expansion_and_data): New functions.
13624         * c-pragma.c (registered_pragmas, c_register_pragma_1)
13625         (c_register_pragma, c_register_pragma_with_expansion)
13626         (c_invoke_pragma_handler): Changed to work with
13627         internal_pragma_handler.
13628         (c_register_pragma_with_data)
13629         (c_register_pragma_with_expansion_and_data): New functions.
13631 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
13633         * c-common.c: Include common/common-target.h.
13634         (handle_section_attribute): Use
13635         targetm_common.have_named_sections.
13636         * c-cppbuiltin.c: Include common/common-target.h.
13637         (c_cpp_builtins): Use targetm_common.except_unwind_info.
13639 2011-06-10  Richard Guenther  <rguenther@suse.de>
13641         * c-pretty-print.c (pp_c_type_specifier): Use pp_c_identifier
13642         to print a IDENTIFIER_NODE.
13644 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13645             Joseph Myers  <joseph@codesourcery.com>
13647         * c.opt (fbuilding-libgcc): New option.
13648         * c-cppbuiltin.c (c_cpp_builtins): Define
13649         __LIBGCC_TRAMPOLINE_SIZE__ if flag_building_libgcc.
13651 2011-06-07  Jason Merrill  <jason@redhat.com>
13653         * c-common.c (max_tinst_depth): Lower default to 900.
13655         * c-format.c (gcc_cxxdiag_char_table): Add 'S' format.
13657 2011-06-07  Richard Guenther  <rguenther@suse.de>
13659         * c-common.c (c_common_nodes_and_builtins): Do not set
13660         size_type_node or call set_sizetype.
13662 2011-06-07  Dodji Seketeli  <dodji@redhat.com>
13664         PR debug/49130
13665         * c-pretty-print.c (pp_c_integer_constant): Consider the canonical
13666         type when using pointer comparison to compare types.
13668 2011-06-02  Jonathan Wakely  <jwakely.gcc@gmail.com>
13670         * c.opt: Add -Wdelete-non-virtual-dtor.
13671         * c-opts.c (c_common_handle_option): Include it in -Wall.
13673 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
13675         PR bootstrap/49190
13677         Revert:
13678         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
13680         * c-common.h (struct c_common_identifier): Inherit from tree_typed,
13681         not tree_common.
13683 2011-05-27  Jakub Jelinek  <jakub@redhat.com>
13685         PR c++/49165
13686         * c-common.c (c_common_truthvalue_conversion) <case COND_EXPR>: For
13687         C++ don't call c_common_truthvalue_conversion on void type arms.
13689 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
13691         * c-common.h (struct stmt_tree_s) [x_cur_stmt_list]: Change to a VEC.
13692         (stmt_list_stack): Define.
13693         (cur_stmt_list): Adjust for new type of x_cur_stmt_list.
13694         * c-semantics.c (push_stmt_list, pop_stmt_list): Likewise.
13696 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
13698         * c-common.c (warning_candidate_p): Check for BLOCKs.
13700 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
13702         * c-common.h (struct c_common_identifier): Inherit from tree_typed,
13703         not tree_common.
13705 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
13707         * c-common.c (def_fn_type): Remove extra va_end.
13709 2011-05-23  Jason Merrill  <jason@redhat.com>
13711         PR c++/48106
13712         * c-common.c (c_common_get_narrower): New.
13713         (shorten_binary_op, shorten_compare, warn_for_sign_compare): Use it.
13715 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
13717         * c-common.h (check_function_arguments): Tweak prototype of
13718         check_function_arguments.
13719         * c-common.c (check_function_arguments): Likewise.  Adjust
13720         calls to check_function_nonnull, check_function_format, and
13721         check_function_sentinel.
13722         (check_function_sentinel): Take a FUNCTION_TYPE rather than
13723         separate attributes and typelist arguments.  Use
13724         FOREACH_FUNCTION_ARGS to iterate over argument types.
13726 2011-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
13728         * c-common.c (c_common_reswords): Reorder.
13729         * c-common.h (rid): Likewise.
13731 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
13733         * c-common.c (def_fn_type): Don't call build_function_type, call
13734         build_function_type_array or build_varargs_function_type_array
13735         instead.
13736         (c_common_nodes_and_builtins): Likewise.
13738 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
13740         * c-common.c (c_add_case_label): Omit the loc argument to
13741         build_case_label.
13742         * c-common.h (build_case_label): Remove.
13743         * c-semantics.c (build_case_label): Remove.
13745 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
13747         * c-objc.h (objc_start_method_definition): Update prototype.
13748         * stub-objc.c (objc_start_method_definition): Add extra parameter.
13750 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
13752         * c-common.c (check_main_parameter_types): Reindent.  Don't use
13753         TYPE_ARG_TYPES directly.
13754         (handle_nonnull_attribute): Likewise.
13755         (sync_resolve_params): Likewise.
13756         * c-format.c (handle_format_arg_attribute): Likewise.  Adjust call
13757         to check_format_string.
13758         (handle_format_attribute): Likewise.
13759         (check_format_string): Take a function type to examine instead of
13760         a type list.  Use a function_arg_iterator to step through argument
13761         types.
13763 2011-05-04  Richard Guenther  <rguenther@suse.de>
13765         * c-common.c (fix_string_type): Use size_int for index type bounds.
13766         (start_fname_decls): Do not pass NULL to build_int_cst.
13767         (c_init_attributes): Likewise.
13768         * c-lex.c (c_lex_with_flags): Likewise.
13770 2011-04-27  Jason Merrill  <jason@redhat.com>
13772         * c-common.c (make_tree_vector_from_list): New.
13773         * c-common.h: Declare it.
13775 2011-04-26  Richard Guenther  <rguenther@suse.de>
13777         PR preprocessor/48248
13778         * c-ppoutput.c (maybe_print_line): Always optimize newlines
13779         for output size with -P.
13781 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
13783         * c-common.c (struct c_common_resword): Add __underlying_type.
13784         * c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
13786 2011-04-20  Jim Meyering  <meyering@redhat.com>
13788         * c-format.c (init_dollar_format_checking): Remove useless
13789         if-before-free.
13791 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
13793         * c-objc.h (objc_get_interface_ivars): Removed.
13794         (objc_detect_field_duplicates): New.
13795         * stub-objc.c: Likewise.
13797 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
13799         * stub-objc.c (objc_declare_protocols): Renamed to
13800         objc_declare_protocol.
13801         * c-objc.h: Likewise.
13803 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
13805         * stub-objc.c (objc_declare_class): Updated argument name.
13807 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
13809         * c-common.h (c_common_init_ts): Declare.
13810         * c-common.c (c_common_init_ts): Define.
13812 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
13814         * c-objc.h (objc_build_message_expr): Updated prototype.
13815         * stub-objc.c (objc_build_message_expr): Likewise.
13817 2011-04-12  Martin Jambor  <mjambor@suse.cz>
13819         * c-gimplify.c (c_genericize): Call cgraph_get_create_node instead
13820         of cgraph_node.
13822 2011-04-11  Richard Guenther  <rguenther@suse.de>
13824         * c-common.c (complete_array_type): Build a range type of
13825         proper type.
13827 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
13829         * c-common.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
13830         (handle_type_generic_attribute): Likewise.
13832 2011-04-07  Jason Merrill  <jason@redhat.com>
13834         PR c++/48450
13835         * c-common.c (c_common_truthvalue_conversion): Don't ignore
13836         conversion from C++0x scoped enum.
13838 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
13840         * c-target-def.h: New file.
13841         * c-target.def: New file.
13842         * c-target.h: New file.
13843         * c-common.c (targetcm): Don't define here.
13844         * c-common.h (default_handle_c_option): Declare.
13845         * c-format.c: Include c-target.h instead of target.h.
13846         * c-opts.c: Include c-target.h instead of target.h.  Explicitly
13847         include tm.h.
13848         (default_handle_c_option): Move from targhooks.c.
13850 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
13852         PR preprocessor/48248
13853         * c-ppoutput.c (print): Add src_file field.
13854         (init_pp_output): Initialize it.
13855         (maybe_print_line): Don't optimize by adding up to 8 newlines
13856         if map->to_file and print.src_file are different file.
13857         (print_line): Update print.src_file.
13859 2011-03-25  Kai Tietz  <ktietz@redhat.com>
13861         * c-ada-spec.c (compare_comment): Use filename_cmp
13862         instead of strcmp for filename.
13864 2011-03-25  Jeff Law  <law@redhat.com>
13866         * c-common.c (def_fn_type): Add missing va_end.
13868 2011-03-25  Jason Merrill  <jason@redhat.com>
13870         * c.opt: Add -std=c++03.
13872 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
13874         * c-ada-spec.c (dump_ada_template): Skip non-class instances.
13876 2011-03-17  Kai Tietz  <ktietz@redhat.com>
13878         PR target/12171
13879         * c-pretty-print.c (pp_c_specifier_qualifier_list):
13880         Display allowed attributes for function pointer types.
13881         (pp_c_attributes_display): New function to display
13882         attributes having affects_type_identity flag set to true.
13883         * c-pretty-print.h (pp_c_attributes_display): New prototype.
13885         * c-common.c (c_common_attribute_table):
13886         Add new element.
13887         (c_common_format_attribute_table): Likewise.
13889 2011-03-18  Jason Merrill  <jason@redhat.com>
13891         * c.opt (fconstexpr-depth): Add Var(max_constexpr_depth).
13892         * c-common.h: Don't declare it here.
13893         * c-common.c: Or define it here.
13894         * c-opts.c (c_common_handle_option): Or set it here.
13896         PR c++/35315
13897         * c-common.c (handle_transparent_union_attribute): Don't
13898         make a duplicate type in C++.
13900 2011-03-15  Jason Merrill  <jason@redhat.com>
13902         * c-common.c (max_constexpr_depth): New.
13903         * c-common.h: Declare it.
13904         * c-opts.c (c_common_handle_option): Set it.
13905         * c.opt (fconstexpr-depth): New option.
13907 2011-03-11  Jason Merrill  <jason@redhat.com>
13909         * c-common.c (attribute_takes_identifier_p): Add missing const.
13911         PR c++/46803
13912         * c-common.c (attribute_takes_identifier_p): Assume that an
13913         unknown attribute takes an identifier.
13915 2011-03-07  Nathan Froyd  <froydnj@codesourcery.com>
13917         PR c/47786
13918         * c-common.c (c_type_hash): Call list_length instead of iterating
13919         through DECL_CHAIN.  Rename 'i' to 'n_elements'.
13921 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
13923         PR c/47809
13924         * c-common.c (c_fully_fold_internal): Handle VIEW_CONVERT_EXPR.
13926 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
13928         * c.opt (fobjc-abi-version=) New.
13929         (fobjc-nilcheck): New.
13931 2011-02-03  Nathan Froyd  <froydnj@codesourcery.com>
13933         PR c++/46890
13934         * c-common.h (keyword_is_decl_specifier): Declare.
13935         * c-common.c (keyword_is_decl_specifier): Define.
13936         (keyword_is_function_specifier): New function.
13938 2011-01-26  Jakub Jelinek  <jakub@redhat.com>
13940         PR c/47473
13941         * c-lex.c (interpret_float): If CPP_N_IMAGINARY, ensure
13942         EXCESS_PRECISION_EXPR is created with COMPLEX_TYPE instead of
13943         REAL_TYPE.
13945 2011-01-26  Arnaud Charlet  <charlet@adacore.com>
13947         * c-ada-spec.c (dump_generic_ada_node): Avoid dereferencing null type.
13949 2011-01-26  Jakub Jelinek  <jakub@redhat.com>
13951         PR pch/47430
13952         * c-opts.c (c_common_post_options): Call c_common_no_more_pch
13953         after init_c_lex if pch_file is set.
13955 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
13957         PR c++/43601
13958         * c.opt (-fkeep-inline-dllexport): New switch.
13960 2011-01-12  Richard Guenther  <rguenther@suse.de>
13962         PR middle-end/32511
13963         * c-common.c (handle_weak_attribute): Warn instead of error
13964         on declaring an inline function weak.
13966 2011-01-05  Tom Tromey  <tromey@redhat.com>
13968         * c-common.h (lvalue_error): Update.
13969         * c-common.c (lvalue_error): Add 'loc' argument.  Call error_at,
13970         not error.
13972 2010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
13974         PR objc/47075
13975         * c-objc.h (objc_finish_message_expr): Added argument to
13976         prototype.
13978 2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
13980         * c-common.c (handle_nonnull_attribute, handle_sentinel_attribute):
13981         Use prototype_p.
13983 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
13985         * c-objc.h (objc_maybe_warn_exceptions): New.
13986         * stub-objc.c (objc_maybe_warn_exceptions): New.
13988 2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>
13990         * c-common.h (readonly_error): Declare.
13991         * c-common.c (readonly_error): Define.
13993 2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>
13995         * c-common.h (invalid_indirection_error): Declare.
13996         * c-common.c (invalid_indirection_error): Define.
13998 2010-12-03  Richard Guenther  <rguenther@suse.de>
14000         PR c/46745
14001         * c-pretty-print.c (pp_c_postfix_expression): Handle MEM_REF.
14002         (pp_c_unary_expression): Likewise.
14003         (pp_c_expression): Likewise.
14005 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
14007         * c-common.h (objc_finish_function): New.
14008         (objc_non_volatilized_type): Removed.
14009         (objc_type_quals_match): Removed.
14010         * stub-objc.c (objc_finish_function): New.
14011         (objc_non_volatilized_type): Removed.
14012         (objc_type_quals_match): Removed.
14014 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
14016         * c-common.h (parse_optimize_options): Declare.
14017         * c-cppbuiltin.c, c-format.c, c-gimplify.c, c-lex.c, c-omp.c,
14018         c-pch.c, c-pragma.c, c-semantics.c: Don't include toplev.h.
14020 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
14022         * c-opts.c (check_deps_environment_vars): Use getenv instead of
14023         GET_ENVIRONMENT.
14024         * c-pch.c (O_BINARY): Don't define here.
14025         * c-pragma.h: Include "cpplib.h" instead of <cpplib.h>.
14027 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
14029         * c-cppbuiltin.c (c_cpp_builtins): Pass &global_options to
14030         targetm.except_unwind_info.
14032 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
14034         * c-opts.c (c_common_handle_option): Pass location to
14035         set_struct_debug_option.
14037 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
14039         * c-common.c (visibility_options): Move from ../opts.c.
14040         * c-common.h (struct visibility_flags, visibility_options):
14041         Declare here.
14042         * c-opts.c (finish_options): Rename to c_finish_options.
14043         (c_common_init): Update call to finish_options.
14045 2010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>
14047         PR objc/34033
14048         * c-lex.c (lex_string): Check that each string in an Objective-C
14049         string concat sequence starts with either one or zero '@', and
14050         that there are no spurious '@' signs at the end.
14052 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
14054         * c-pragma.c: Remove conditionals on HANDLE_PRAGMA_PACK,
14055         HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_PRAGMA_WEAK and
14056         HANDLE_PRAGMA_VISIBILITY.
14057         * c-pragma.h (HANDLE_PRAGMA_WEAK, HANDLE_PRAGMA_PACK,
14058         HANDLE_PRAGMA_VISIBILITY): Don't define.
14059         (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Don't test.
14061 2010-11-20  Nathan Froyd  <froydnj@codesourcery.com>
14063         PR c++/16189
14064         PR c++/36888
14065         PR c++/45331
14066         * c-common.h (keyword_begins_type_specifier): Declare.
14067         (keyword_is_storage_class_specifier): Declare.
14068         (keyword_is_type_qualifier): Declare.
14069         * c-common.c (keyword_begins_type_specifier): New function.
14070         (keyword_is_storage_class_specifier): New function.
14071         (keyword_is_type_qualifier): Declare.
14073 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
14075         PR c/46547
14076         * c-common.c (in_late_binary_op): Define.
14077         (c_common_truthvalue_conversion): Check in_late_binary_op before
14078         calling c_save_expr.
14079         * c-common.h (in_late_binary_op): Declare.
14081 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
14083         * c-opts.c (c_common_handle_option): Update calls to
14084         set_struct_debug_option.
14086 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
14088         * c-common.h (objc_declare_protocols): Added additional argument.
14089         * stub-objc.c (objc_declare_protocol): Same change.
14091 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
14093         PR c/33193
14094         * c-common.h (build_real_imag_expr): Declare.
14095         * c-semantics.c (build_real_imag_expr): Define.
14097 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
14099         * c-opts.c (c_common_parse_file): Take no arguments.
14100         * c-common.h (c_common_parse_file): Update prototype.
14102 2010-11-16  Jakub Jelinek  <jakub@redhat.com>
14104         PR c++/46401
14105         * c-common.c (warning_candidate_p): Don't track non-const calls
14106         or STRING_CSTs.
14108 2010-11-15  Ian Lance Taylor  <iant@google.com>
14110         * c-lex.c (init_c_lex): Set macro debug callbacks if
14111         flag_dump_go_spec is set.
14113 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
14115         * c-common.h (objc_build_incr_expr_for_property_ref): New.
14116         * stub-objc.c (objc_build_incr_expr_for_property_ref): New.
14118 2010-11-15  Nathan Froyd  <froydnj@codesourcery.com>
14120         PR preprocessor/45038
14121         * c-cppbuiltin.c (c_cpp_builtins): Use different format for C++
14122         dialects.
14124 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
14126         * c-common.h (c_family_lang_mask): Declare.
14127         * c-opts.c (c_family_lang_mask): Make extern.
14128         * c-pragma.c (handle_pragma_diagnostic): Use
14129         control_warning_option.
14131 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
14133         * c-common.c (parse_optimize_options): Update call to
14134         decode_options.
14135         * c-common.h (c_common_handle_option): Update prototype.
14136         * c-opts.c (c_common_handle_option): Take location_t parameter and
14137         pass it to other functions.
14139 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
14141         * c-opts.c (warning_as_error_callback): Remove.
14142         (c_common_initialize_diagnostics): Don't call
14143         register_warning_as_error_callback.
14144         (c_common_handle_option): Handle -Werror=normalized= here.
14146 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
14148         * c-common.c (handle_mode_attribute): Use %' and word "signedness"
14149         in diagnostic.
14150         * c-opts.c (c_common_parse_file): Start diagnostics with lowercase
14151         letter.
14152         * c-pragma.c (handle_pragma_target, handle_pragma_optimize):
14153         Remove trailing '.' from diagnostics.
14154         * c.opt (Wwrite-strings_: Avoid '`' in help text.
14156 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
14158         * c-common.c (parse_optimize_options): Pass global_dc to
14159         decode_options.
14160         * c-opts.c (c_common_handle_option): Pass &global_options to
14161         set_Wstrict_aliasing.
14162         * c.opt (v): Don't mark Common or document here.
14164 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
14166         PR target/44981
14167         * c-format.c (format_type): New type gcc_objc_string_format_type.
14168         (valid_stringptr_type_p): New.
14169         (handle_format_arg_attribute): Use valid_stringptr_type_p ().
14170         (check_format_string): Pass expected type, use
14171         valid_stringptr_type_p (), check that the format string types are
14172         consistent with the format specification.
14173         (decode_format_attr): Warn if NSString is used outside objective-c.
14174         (format_types_orig): Add NSString.
14175         (format_name): New.
14176         (format_flags): New.
14177         (check_format_arg): Handle format strings requiring an external parser.
14178         first_target_format_type: New variable.
14179         (handle_format_attribute): Set up first_target_format_type, pass the
14180         expected format arg string type to check_format_string().
14181         * c-common.h (FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL): New flag.
14182         * stub-objc.c (objc_string_ref_type_p): New.
14183         (objc_check_format_arg): New.
14185 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
14187         Fixed using the Objective-C 2.0 dot-syntax with class names.
14188         * c-common.h (objc_build_class_component_ref): New.
14189         * stub-objc.c (objc_build_class_component_ref): New.
14191 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
14193         * c.opt (Wproperty-assign-default): New option.
14195 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
14197         Implemented -fobjc-std=objc1 flag.
14198         * c.opt (fobjc-std=objc1): New option.
14200 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
14202         Implemented format and noreturn attributes for Objective-C methods.
14203         * c-common.c (handle_noreturn_attribute): Recognize 'noreturn'
14204         attribute for Objective-C methods.
14206 2010-10-31  Jason Merrill  <jason@redhat.com>
14208         * c-common.c (conversion_warning, warn_for_collisions_1): Use
14209         EXPR_LOC_OR_HERE.
14211 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
14213         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
14214         * c-common.h (enum rid): Removed RID_COPIES and RID_IVAR.
14215         (objc_add_property_declaration): Removed arguments for copies and
14216         ivar.
14217         (objc_build_getter_call): Renamed to
14218         objc_maybe_build_component_ref.
14219         (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
14220         (objc_is_property_ref): New.
14221         * c-common.c (c_common_reswords): Removed copies and ivar.
14222         * stub-objc.c (objc_add_property_declaration): Removed arguments
14223         for copies and ivar.
14224         (objc_build_getter_call): Renamed to
14225         objc_maybe_build_component_ref.
14226         (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
14227         (objc_is_property_ref): New.
14229 2010-10-29  Arnaud Charlet  <charlet@adacore.com>
14230             Matthew Gingell  <gingell@adacore.com>
14232         * c-ada-spec.c (separate_class_package): New function.
14233         (pp_ada_tree_identifier): Prefix references to C++ classes with the
14234         name of their enclosing package.
14235         (print_ada_declaration): Use separate_class_package.
14237 2010-10-27  Jason Merrill  <jason@redhat.com>
14239         * c-common.c (c_common_reswords): Add __is_literal_type.
14240         * c-common.h (enum rid): Add RID_IS_LITERAL_TYPE.
14242         * c-common.c (check_case_value): Remove special C++ code.
14244 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
14246         * c-common.h (enum rid): Added RID_READWRITE, RID_ASSIGN,
14247         RID_RETAIN, RID_COPY and RID_NONATOMIC.  Updated RID_FIRST_PATTR
14248         and RID_LAST_PATTR.
14249         (objc_add_property_declaration): Added additional arguments.
14250         (objc_property_attribute_kind): Removed.
14251         (objc_set_property_attr): Removed.
14252         * c-common.c (c_common_reswords): Added readwrite, assign, retain,
14253         copy and nonatomic.
14254         * stub-objc.c (objc_add_property_declaration): Added additional
14255         arguments.
14256         (objc_set_property_attr): Removed.
14258 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
14260         * c-common.h (objc_add_property_variable): Renamed to
14261         objc_add_property_declaration.  Added location argument.
14262         * stub-objc.c (objc_add_property_variable): Same change.
14264 2010-10-23  Nicola Pero  <nicola.pero@meta-innovation.com>
14266         * c-common.h (objc_maybe_printable_name): New.
14267         * stub-objc.c (objc_maybe_printable_name): New.
14269 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
14270             Andrew Pinski  <pinskia@gmail.com>
14272         * c-common.h (c_common_mark_addressable_vec): Declare.
14273         * c-common.c (c_common_mark_addressable_vec): New function.
14275 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
14277         * c-common.h (objc_set_method_type): Removed.
14278         (objc_add_method_declaration): Added boolean argument.
14279         (objc_start_method_definition): Same change.
14280         (objc_build_method_signature): Same change.
14281         * stub-objc.c (objc_set_method_type): Removed.
14282         (objc_add_method_declaration): Added boolean argument.
14283         (objc_start_method_definition): Same change.
14284         (objc_build_method_signature): Same change.
14286 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
14288         * c-common.h (finish_file): Removed.
14289         (objc_write_global_declarations): New.
14290         * c-opts.c (c_common_parse_file): Do not call finish_file.
14291         * stub-objc.c (objc_write_global_declarations): New.
14293 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
14295         Implemented parsing @synthesize and @dynamic for
14296         Objective-C/Objective-C++.
14297         * c-common.h (enum rid): Add RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
14298         (objc_add_synthesize_declaration): New.
14299         (objc_add_dynamic_declaration): New.
14300         * c-common.c (c_common_reswords): Add synthesize and dynamic.
14301         * stub-objc.c (objc_add_synthesize_declaration): New.
14302         (objc_add_dynamic_declaration): New.
14304 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
14306         PR target/46041
14307         * c-cppbuiltin.c (mode_has_fma): Move function here from
14308         builtins.c.  Don't use the fma optab, instead just use the
14309         HAVE_fma* macros, so that __FP_FAST_FMA* will be defined when
14310         using -save-temps.
14312 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
14314         Merge from 'apple/trunk' branch on FSF servers.
14316         2005-11-08  Fariborz Jahanian  <fjahanian@apple.com>
14318         Radar 4330422
14319         * c-common.h (objc_non_volatilized_type): New declaration
14320         * stub-objc.c (objc_non_volatilized_type): New stub.
14322 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
14324         Merge from 'apple/trunk' branch on FSF servers.
14326         2006-03-27  Fariborz Jahanian  <fjahanian@apple.com>
14328         Radar 4133425
14329         * c-common.h (objc_diagnose_private_ivar): New decl.
14330         * stub-objc.c (objc_diagnose_private_ivar): New stub.
14332 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
14334         * c-common.c (c_common_reswords): Add package, RID_AT_PACKAGE.
14335         * c-common.h (enum rid): Add RID_AT_PACKAGE.
14336         (objc_ivar_visibility_kind): New enum.
14337         (objc_set_visibility): Adjust prototype to use visibility enum.
14338         * stub-objc.c (objc_set_visibility): Adjust stub to use
14339         visibility enum.
14341 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
14343         * c-cppbuiltin.c (builtin_define_float_constants): Emit
14344         __FP_FAST_FMA, __FP_FAST_FMAF, and __FP_FAST_FMAL if the machine
14345         has the appropriate fma builtins.
14346         (c_cpp_builtins): Adjust call to builtin_define_float_constants.
14348 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
14350         merge from FSF apple 'trunk' branch.
14351         2006 Fariborz Jahanian  <fjahanian@apple.com>
14353         Radars 4436866, 4505126, 4506903, 4517826
14354         * c-common.c (c_common_resword): Define @property and its attributes.
14355         * c-common.h: Define property attribute enum entries.
14356         (OBJC_IS_PATTR_KEYWORD): New.
14357         (objc_property_attribute_kind): New enum.
14358         Declare objc_set_property_attr (), objc_add_property_variable (),
14359         objc_build_getter_call () and objc_build_setter_call ().
14360         * stub-objc.c (objc_set_property_attr): New stub.
14361         (objc_add_property_variable): Likewise.
14362         (objc_build_getter_call): Likewise.
14363         (objc_build_setter_call) Likewise.
14365 2010-10-13  Iain Sandoe  <iains@gcc.gnu.org>
14367         merge from FSF apple 'trunk' branch.
14368         2006-04-26  Fariborz Jahanian  <fjahanian@apple.com>
14370         Radar 3803157 (method attributes)
14371         * c-common.c (handle_deprecated_attribute): Recognize
14372         objc methods as valid declarations.
14373         * c-common.h: Declare objc_method_decl ().
14374         * stub-objc.c (objc_method_decl): New stub.
14376 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
14378         * c-common.c (parse_optimize_options): Call
14379         decode_cmdline_options_to_array_default_mask before
14380         decode_options.  Update arguments to decode_options.
14381         * c-common.h (c_common_init_options_struct): Declare.
14382         * c-opts.c (c_common_init_options_struct): New.  Split out from
14383         c_common_init_options.
14385 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
14387         Implemented fast enumeration for Objective-C.
14388         * c-common.h (objc_finish_foreach_loop): New.
14389         * stub-objc.c (objc_finish_foreach_loop): New.
14391 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
14393         * c-common.h (struct diagnostic_context): Don't declare here.
14394         (c_common_initialize_diagnostics): Declare using
14395         diagnostic_context typedef.
14396         * c-opts.c (c_common_handle_option): Pass global_dc to
14397         handle_generated_option.
14399 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
14401         * c-opts.c (c_common_handle_option): Pass &global_options_set to
14402         handle_generated_option.
14404 2010-10-03  Ian Lance Taylor  <iant@google.com>
14406         * c.opt (-fplan9-extensions): New option.
14408 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14410         * c-cppbuiltin.c (define__GNUC__, builtin_define_type_precision):
14411         Remove.
14412         (c_cpp_builtins): Call functions from cppbuiltin.c instead
14413         of duplicating code.
14415 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
14417         * c-common.c: Add two new entries for @optional
14418         and @required keywords.
14420         merge from FSF 'apple/trunk' branch.
14421         2006-01-30  Fariborz Jahanian  <fjahanian@apple.com>
14423         Radar 4386773
14424         * c-common.h (RID_AT_OPTIONAL, RID_AT_REQUIRED): Two new
14425         objective-c keywords.
14426         (objc_set_method_opt): New declaration.
14427         * stub-objc.c (objc_set_method_opt): New stub.
14429 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
14431         * c-common.c (handle_optimize_attribute): Pass &global_options to
14432         cl_optimization_save and cl_optimization_restore.
14433         * c-opts.c (c_common_handle_option): Pass &global_options to
14434         handle_generated_option.
14435         * c-pragma.c (handle_pragma_diagnostic): Use option_flag_var.
14436         (handle_pragma_pop_options, handle_pragma_reset_options): Pass
14437         &global_options to cl_optimization_restore.
14439 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
14441         * c-lex.c (c_lex_with_flags): Updated comments for CPP_AT_NAME
14442         Objective-C/Objective-C++ keywords.
14444 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
14446         Merge from 'apple/trunk' branch on FSF servers.
14448         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
14450         Radar 4281748
14451         * c-common.h (objc_check_global_decl): New declaration.
14452         * stub-objc.c (objc_check_global_decl): New stub.
14454 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
14456         * c.opt: Don't use VarExists.
14458 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
14460         * c-common.c (c_cpp_error): Update names of diagnostic_context
14461         members.
14462         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Update names of
14463         cl_optimization members.
14464         * c-opts.c (warning_as_error_callback, c_common_handle_option,
14465         sanitize_cpp_opts, finish_options): Update names of cpp_options
14466         members.
14468 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
14470         * c-common.h (OBJC_IS_CXX_KEYWORD): New macro.  Updated comments.
14471         (objc_is_reserved_word): Removed.
14472         * c-common.c: Updated comments.
14473         * c-lex.c (c_lex_with_flags): Use OBJC_IS_CXX_KEYWORD instead of
14474         objc_is_reserved_word.
14475         * stub-objc.c (objc_is_reserved_word): Removed.
14477 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
14479         * c-common.h (objc_add_method_declaration): Adjust prototype to
14480         include attributes.
14481         (objc_start_method_definition): Likewise.
14482         (objc_build_keyword_decl): Likewise.
14483         * stub-objc.c:(objc_add_method_declaration): Handle attributes.
14484         (objc_start_method_definition): Likewise.
14485         (objc_build_keyword_decl): Likewise.
14487 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
14489         * c-common.h (objc_start_class_interface): Adjust prototype.
14490         (objc_start_category_interface): Likewise.
14491         (objc_start_protocol): Likewise.
14492         * stub-objc.c (objc_start_protocol): Adjust for extra argument.
14493         (objc_start_class_interface): Likewise.
14494         (objc_start_category_interface): Likewise.
14496 2010-09-27  Ian Lance Taylor  <iant@google.com>
14498         * c-common.c (c_common_attribute_table): Add no_split_stack.
14499         (handle_no_split_stack_attribute): New static function.
14501 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
14503         Merge from 'apple/trunk' branch on FSF servers.
14505         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
14507         Radar 4229905
14508         * c-common.h (objc_have_common_type): New declaration.
14509         * stub-objc.c (objc_have_common_type): New stub.
14511         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
14513         Radar 4154928
14514         * c-common.h (objc_common_type): New prototype.
14515         * stub-objc.c (objc_common_type): New stub.
14517 2010-09-24  Jan Hubicka  <jh@suse.cz>
14519         * c-common.c (handle_leaf_attribute): New function.
14520         (struct attribute_spec c_common_att): Add leaf.
14522 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
14524         * c.opt (-all-warnings, -ansi, -assert, -assert=, -comments,
14525         -comments-in-macros, -define-macro, -define-macro=, -dependencies,
14526         -dump, -dump=, -imacros, -imacros=, -include, -include=,
14527         -include-barrier, -include-directory, -include-directory=,
14528         -include-directory-after, -include-directory-after=,
14529         -include-prefix, -include-prefix=, -include-with-prefix,
14530         -include-with-prefix=, -include-with-prefix-after,
14531         -include-with-prefix-after=, -include-with-prefix-before,
14532         -include-with-prefix-before=, -no-integrated-cpp,
14533         -no-line-commands, -no-standard-includes, -no-warnings, -output,
14534         -output=, -pedantic, -pedantic-errors, -preprocess,
14535         -print-missing-file-dependencies, -trace-includes, -traditional,
14536         -traditional-cpp, -trigraphs, -undefine-macro, -undefine-macro=,
14537         -user-dependencies, -verbose, -write-dependencies,
14538         -write-user-dependencies, no-integrated-cpp, traditional): New.
14540 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
14542         PR objc/23710
14543         * c-common.h (objc_start_method_definition): Return bool instead
14544         of void.
14545         * stub-objc.c (objc_start_method_definition): Return bool instead
14546         of void.
14548 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
14550         PR objc/25965
14551         * c-common.h (objc_get_interface_ivars): New declaration.
14552         * stub-objc.c (objc_get_interface_ivars): New stub.
14554 2010-09-15  Ian Lance Taylor  <iant@google.com>
14556         * c-common.c (parse_optimize_options): Do not capitalize warning
14557         messages.  Remove period at end of warning message.
14559 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
14561         * c-common.c (handle_alias_ifunc_attribute): New, broken out of ...
14562         (handle_alias_attribute): ... here.
14563         (handle_ifunc_attribute): New.
14565 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
14567         * c-common.h (do_warn_double_promotion): Declare.
14568         * c-common.c (do_warn_double_promotion): Define.
14570 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
14572         * c.opt (Wdouble-promotion): New.
14574 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14576         * c.opt (falt-external-templates, fhuge-objects, fvtable-gc,
14577         fvtable-thunks, fxref): Mark no longer supported in help text.
14579 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14581         * c.opt (Wimport, fall-virtual, falt-external-templates,
14582         fdefault-inline, fenum-int-equiv, fexternal-templates,
14583         fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
14584         fname-mangling-version-, fnew-abi, fnonnull-objects,
14585         foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
14586         fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
14587         applicable.
14588         (fhandle-exceptions): Mark with Alias and Warn.
14589         * c-opts.c (c_common_handle_option): Don't handle options marked
14590         as ignored.
14592 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14594         * c.opt (Wcomments, Werror-implicit-function-declaration,
14595         ftemplate-depth-, std=c89, std=c9x, std=gnu89, std=gnu9x,
14596         std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Mark as
14597         aliases.
14598         * c-common.c (option_codes): Use OPT_Wcomment instead of
14599         OPT_Wcomments.
14600         * c-opts.c (warning_as_error_callback, c_common_handle_option):
14601         Don't handle options marked as aliases.
14603 2010-08-25  Richard Guenther  <rguenther@suse.de>
14605         * c-common.c (c_common_get_alias_set): Remove special
14606         handling for pointers.
14608 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14610         * c-common.c: Use FOR_EACH_VEC_ELT.
14611         * c-gimplify.c: Likewise.
14612         * c-pragma.c: Likewise.
14614 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14616         * c.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
14617         RejectDriver.
14618         (MMDX): Change back to MMD.  Mark NoDriverArg instead of
14619         RejectDriver.
14620         * c-opts.c (c_common_handle_option): Use OPT_MD and OPT_MMD
14621         instead of OPT_MDX and OPT_MMDX.
14623 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14625         * c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
14627 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
14629         * c.opt (MD, MMD): Change to MDX and MMDX.
14630         * c-opts.c (c_common_handle_option): Use OPT_MMD and OPT_MMDX.
14632 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
14634         * c-opts.c (c_common_handle_option): Call handle_generated_option
14635         instead of handle_option.
14637 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14639         * c-pragma.c (add_to_renaming_pragma_list): Fix call to VEC_safe_push.
14640         (maybe_apply_renaming_pragma): Delete unneeded declarations.
14642 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14644         * c-pragma.c (pending_redefinition): Declare.  Declare a VEC of it.
14645         (pending_redefine_extname): Change type to a VEC.
14646         (add_to_renaming_pragma_list): Update for new type of
14647         pending_redefine_extname.
14648         (maybe_apply_renaming_pragma): Likewise.
14650 2010-08-04  Arnaud Charlet  <charlet@adacore.com>
14652         * c-ada-spec.c (dump_ada_template): Mark underlying instance type as
14653         visited.
14654         (dump_generic_ada_node): Code clean up. Use TREE_VISITED flag to
14655         decide whether a type has already been declared/seen.
14656         Do not go to the original type.
14657         (dump_nested_types): New parameter forward.
14658         Generate forward declaration if needed and mark type as visited.
14659         (print_ada_declaration): Call dump_nested_types if not already done.
14660         Mark types as visited.
14662 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
14664         * c.opt (-print-pch-checksum): Remove option.
14665         * c-opts.c (c_common_handle_option): Don't handle
14666         OPT_print_pch_checksum.
14668 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
14670         * c-common.h (c_common_handle_option): Update prototype and return
14671         value type.
14672         * c-opts.c (c_common_handle_option): Update prototype and return
14673         value type.  Update calls to handle_option and
14674         enable_warning_as_error.
14676 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
14678         PR c/45079
14679         * c-pretty-print.c (pp_c_expression): Handle C_MAYBE_CONST_EXPR.
14681 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
14683         * c-common.h (c_common_missing_argument): Remove.
14684         * c-opts.c (c_common_missing_argument): Remove.
14685         * c.opt (A, D, F, I, MD, MMD, MQ, MT, U, fconstant-string-class=,
14686         idirafter, imacros, include, isysroot, isystem, iquote): Add
14687         MissingArgError.
14688         * c-objc-common.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
14690 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
14692         * c-common.h (c_common_option_lang_mask,
14693         c_common_initialize_diagnostics, c_common_complain_wrong_lang_p):
14694         New.
14695         (c_common_init_options): Update prototype.
14696         * c-opts.c (c_common_option_lang_mask): New.
14697         (c_common_initialize_diagnostics): Split out of
14698         c_common_init_options.
14699         (accept_all_c_family_options, c_common_complain_wrong_lang_p):
14700         New.
14701         (c_common_init_options): Update prototype.  Use decoded options in
14702         search for -lang-asm.
14704 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
14706         * c-common.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
14707         * c-format.c: Likewise.
14709 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14711         * c-common.h: Include diagnostic-core.h. Error if already
14712         included.
14713         * c-semantics.c: Do not define GCC_DIAG_STYLE here.
14715 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14717         * c-common.c (IN_GCC_FRONTEND): Do not undef.
14718         Do not include expr.h
14719         (vector_mode_valid_p): Move here.
14721 2010-06-21  DJ Delorie  <dj@redhat.com>
14723         * c-pragma.c (handle_pragma_diagnostic): Add push/pop,
14724         allow these pragmas anywhere.
14726 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
14728         PR bootstrap/44509
14729         * c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
14730         (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
14731         (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
14732         ggc_strdup instead of xstrdup.
14734 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
14736         * c-cppbuiltin.c: Include cpp-id-data.h.
14737         (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
14738         (lazy_hex_fp_value): New function.
14739         (builtin_define_with_hex_fp_value): Provide definitions lazily.
14741 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14743         * c-gimplify.c: Do not include tree-flow.h
14745 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
14747         PR other/44034
14748         * c-common.c: Rename targetm member:
14749         targetm.enum_va_list -> targetm.enum_va_list_p
14751 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
14753         * c-common.c (shorten_compare): Adjust call to force_fit_type_double.
14755 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
14757         * c-cppbuiltin.c: Do not include except.h.
14759 2010-06-24  Andi Kleen  <ak@linux.intel.com>
14761         * c-common.c (warn_for_omitted_condop): New.
14762         * c-common.h (warn_for_omitted_condop): Add prototype.
14764 2010-06-21  Joseph Myers  <joseph@codesourcery.com>
14766         * c.opt (lang-objc): Remove.
14767         * c-opts.c (c_common_handle_option): Don't handle OPT_lang_objc.
14769 2010-06-21  Joern Rennecke  <joern.rennecke@embecosm.com>
14771         * c-opts.c: Include "tm_p.h".
14773 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
14775         * c-common.c (parse_optimize_options): Update call to
14776         decode_options.
14778 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
14780         * c-common.c (record_types_used_by_current_var_decl): Adjust for
14781         new type of types_used_by_cur_var_decl.
14783 2010-06-17  Joern Rennecke  <joern.rennecke@embecosm.com>
14785         PR bootstrap/44512
14786         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Add cast
14787         for C++ standard compliance.
14789 2010-06-16  Jason Merrill  <jason@redhat.com>
14791         * c.opt: Add -Wnoexcept.
14793 2010-06-16  Richard Guenther  <rguenther@suse.de>
14795         PR c/44555
14796         * c-common.c (c_common_truthvalue_conversion): Remove
14797         premature and wrong optimization concering ADDR_EXPRs.
14799 2010-06-15  Arnaud Charlet  <charlet@adacore.com>
14801         * c-ada-spec.c (dump_sloc): Remove column info.
14802         (is_simple_enum): New function.
14803         (dump_generic_ada_node, print_ada_declaration): Map C enum types to Ada
14804         enum types when relevant.
14806 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14808         * c-common.c (conversion_warning): Warn at expression
14809         location.
14811 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
14813         * c-opts.c (c_common_handle_option): Don't handle
14814         OPT_fshow_column.
14816 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14818         * c-pragma.c (push_alignment): Use typed GC allocation.
14819         (handle_pragma_push_options): Likewise.
14821         * c-common.c (parse_optimize_options): Likewise.
14823         * c-common.h (struct sorted_fields_type): Add variable_size GTY
14824         option.
14826 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
14828         * c-common.c (flag_preprocess_only, flag_undef, flag_no_builtin,
14829         flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
14830         flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
14831         flag_signed_bitfields, warn_strict_null_sentinel,
14832         flag_nil_receivers, flag_zero_link, flag_replace_objc_classes,
14833         flag_gen_declaration, flag_no_gnu_keywords,
14834         flag_implement_inlines, flag_implicit_templates,
14835         flag_implicit_inline_templates, flag_optional_diags,
14836         flag_elide_constructors, flag_default_inline, flag_rtti,
14837         flag_conserve_space, flag_access_control, flag_check_new,
14838         flag_new_for_scope, flag_weak, flag_working_directory,
14839         flag_use_cxa_atexit, flag_use_cxa_get_exception_ptr,
14840         flag_enforce_eh_specs, flag_threadsafe_statics,
14841         flag_pretty_templates): Remove.
14842         * c-common.h (flag_preprocess_only, flag_nil_receivers,
14843         flag_objc_exceptions, flag_objc_sjlj_exceptions, flag_zero_link,
14844         flag_replace_objc_classes, flag_undef, flag_no_builtin,
14845         flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
14846         flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
14847         flag_const_strings, flag_signed_bitfields, flag_gen_declaration,
14848         flag_no_gnu_keywords, flag_implement_inlines,
14849         flag_implicit_templates, flag_implicit_inline_templates,
14850         flag_optional_diags, flag_elide_constructors, flag_default_inline,
14851         flag_rtti, flag_conserve_space, flag_access_control,
14852         flag_check_new, flag_new_for_scope, flag_weak,
14853         flag_working_directory, flag_use_cxa_atexit,
14854         flag_use_cxa_get_exception_ptr, flag_enforce_eh_specs,
14855         flag_threadsafe_statics, flag_pretty_templates,
14856         warn_strict_null_sentinel): Remove.
14857         * c.opt (E, Wstrict-null-sentinel, faccess-control, fasm,
14858         fbuiltin, fcheck-new, fconserve-space, felide-constructors,
14859         fenforce-eh-specs, ffor-scope, fgnu-keywords, fimplement-inlines,
14860         fimplicit-inline-templates, fimplicit-templates,
14861         flax-vector-conversions, fms-extensions, fnil-receivers,
14862         fnonansi-builtins, fpretty-templates, freplace-objc-classes,
14863         frtti, fshort-double, fshort-enums, fshort-wchar,
14864         fsigned-bitfields, fsigned-char, fstats, fthreadsafe-statics,
14865         funsigned-bitfields, funsigned-char, fuse-cxa-atexit,
14866         fuse-cxa-get-exception-ptr, fweak, fworking-directory, fzero-link,
14867         gen-decls, undef): Use Var.
14868         (fdefault-inline, foptional-diags): Document as doing nothing.
14869         * c-opts.c (c_common_handle_option): Remove cases for options now
14870         using Var.  Mark ignored options as such.
14872 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
14874         * c-common.c: Moved to here from parent directory.
14875         * c-common.def: Likewise.
14876         * c-common.h: Likewise.
14877         * c-cppbuiltin.c: Likewise.
14878         * c-dump.c: Likewise.
14879         * c-format.c: Likewise.
14880         * c-format.h : Likewise.
14881         * c-gimplify.c: Likewise.
14882         * c-lex.c: Likewise.
14883         * c-omp.c: Likewise.
14884         * c.opt: Likewise.
14885         * c-opts.c: Likewise.
14886         * c-pch.c: Likewise.
14887         * c-ppoutput.c: Likewise.
14888         * c-pragma.c: Likewise.
14889         * c-pragma.h: Likewise.
14890         * c-pretty-print.c: Likewise.
14891         * c-pretty-print.h: Likewise.
14892         * c-semantics.c: Likewise.
14893         * stub-objc.c: Likewise.
14895         * c-common.c: Include gt-c-family-c-common.h.
14896         * c-pragma.c: Include gt-c-family-c-pragma.h.
14898 Copyright (C) 2010-2024 Free Software Foundation, Inc.
14900 Copying and distribution of this file, with or without modification,
14901 are permitted in any medium without royalty provided the copyright
14902 notice and this notice are preserved.