enable handling of -gno- command-line options as negated prefixes
[platform/upstream/gcc.git] / gcc / c-family / ChangeLog
1 2017-09-20  Alexandre Oliva <aoliva@redhat.com>
2
3         * c.opt (gen-decls): Add RejectNegative.
4
5 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
6             Jakub Jelinek  <jakub@redhat.com>
7
8         Add support for -std=c++2a.
9         * c-common.h (cxx_dialect): Add cxx2a as a dialect.
10         * opt.c: Add options for -std=c++2a and -std=gnu++2a.
11         * c-opts.c (set_std_cxx2a): New.
12         (c_common_handle_option): Set options when -std=c++2a is enabled.
13         (c_common_post_options): Adjust comments.
14         (set_std_cxx14, set_std_cxx17): Likewise.
15
16 2017-09-15  Eric Botcazou  <ebotcazou@adacore.com>
17
18         * c-pragma.c (handle_pragma_scalar_storage_order): Expand on error
19         message for non-uniform endianness and issue a warning in C++.
20
21 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
22
23         * c.opt (Wc++1z-compat): Change from option to undocumented alias.
24         (Wc++17-compat): Change from undocumented alias to option.
25         (Wnoexcept-type): Enable by Wc++17-compat instead of Wc++1z-compat,
26         change C++1z to C++17 in description.
27         (std=c++1z, std=gnu++1z): Change from option to undocumented
28         deprecated alias.
29         (std=c++17, std=gnu++17): Change from undocumented alias to option.
30         Adjust description.
31         * c-common.h (enum cxx_dialect): Rename cxx1z to cxx17.
32         * c-opts.c (set_std_cxx1z): Rename to ...
33         (set_std_cxx17): ... this.
34         (c_common_handle_option): Rename OPT_std_c__1z to OPT_std_c__17
35         and OPT_std_gnu__1z to OPT_std_gnu__17.  Adjust set_std_cxx1z
36         caller.  
37         (c_common_post_options): Use cxx17 instead of cxx1z.  Adjust
38         comments.
39
40 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
41
42         * c-attribs.c (common_handle_aligned_attribute): Don't warn
43         function alignment if warn_if_not_aligned_p is true.
44
45 2017-09-12  Nathan Sidwell  <nathan@acm.org>
46
47         * c-common.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
48         resort_sorted_fields): Move to c/c-decl.c.
49         * c-common.h (field_decl_cmp, resort_sorted_fields): Delete.
50         (struct sorted_fields_type): Move to c/c-lang.h.
51
52 2017-09-09  Jonathan Wakely  <jwakely@redhat.com>
53
54         PR c++/81852
55         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_threadsafe_static_init.
56
57 2017-09-04  Marek Polacek  <polacek@redhat.com>
58
59         PR c/81783
60         * c-warn.c (warn_tautological_bitwise_comparison): New function.
61         (warn_tautological_cmp): Call it.
62
63 2017-09-01  Boris Kolpackov <boris@codesynthesis.com>
64
65         * c-opts.c (c_common_finish): Write dependency information even if
66         there are errors.
67
68 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
69
70         PR c/81887
71         * c-pragma.c (omp_pragmas): Move "ordered" entry from here to ...
72         (omp_pragmas_simd): ... here.
73         * c-omp.c (c_finish_omp_ordered): If clauses isn't simd clause alone,
74         create new clauses list containing just simd clause.
75
76 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
77             Alan Hayward  <alan.hayward@arm.com>
78             David Sherwood  <david.sherwood@arm.com>
79
80         * c-attribs.c (vector_mode_valid_p) Fold GET_MODE_INNER call
81         into scalar_mode_supported_p call.
82         (handle_mode_attribute): Update call to scalar_mode_supported_p.
83
84 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
85             Alan Hayward  <alan.hayward@arm.com>
86             David Sherwood  <david.sherwood@arm.com>
87
88         * c-common.c (c_common_fixed_point_type_for_size): Use opt_scalar_mode
89         for the mode iterator.
90
91 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
92             Alan Hayward  <alan.hayward@arm.com>
93             David Sherwood  <david.sherwood@arm.com>
94
95         * c-lex.c (interpret_fixed): Use SCALAR_TYPE_MODE.
96         * c-common.c (c_build_vec_perm_expr): Likewise.
97
98 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
99             Alan Hayward  <alan.hayward@arm.com>
100             David Sherwood  <david.sherwood@arm.com>
101
102         * c-common.c (c_common_type_for_mode): Use as_a <scalar_int_mode>.
103
104 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
105             Alan Hayward  <alan.hayward@arm.com>
106             David Sherwood  <david.sherwood@arm.com>
107
108         * c-attribs.c (handle_mode_attribute): Check for a scalar_int_mode
109         before calling targetm.addr_space.valid_pointer_mode.
110
111 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
112             Alan Hayward  <alan.hayward@arm.com>
113             David Sherwood  <david.sherwood@arm.com>
114
115         * c-cppbuiltin.c (c_cpp_builtins): Use opt_scalar_float_mode.
116
117 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
118             Alan Hayward  <alan.hayward@arm.com>
119             David Sherwood  <david.sherwood@arm.com>
120
121         * c-common.c (c_common_fixed_point_type_for_size): Use new mode
122         iterators.
123         * c-cppbuiltin.c (c_cpp_builtins): Likewise.
124
125 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
126             Alan Hayward  <alan.hayward@arm.com>
127             David Sherwood  <david.sherwood@arm.com>
128
129         * c-cppbuiltin.c (mode_has_fma): Prefix mode names with E_ in
130         case statements.
131
132 2017-08-29  Martin Liska  <mliska@suse.cz>
133
134         PR other/39851
135         * c-common.c (parse_optimize_options): Add argument to function
136         call.
137         * c-pragma.c (handle_pragma_diagnostic): Likewise.
138
139 2017-08-24  David Malcolm  <dmalcolm@redhat.com>
140
141         * c-lex.c (interpret_float): Use token location
142         when building an EXCESS_PRECISION_EXPR.
143
144 2017-08-21  David Malcolm  <dmalcolm@redhat.com>
145
146         * c-common.c (check_function_arguments): Add "arglogs" param; pass
147         it to check_function_format.
148         * c-common.h (check_function_arguments): Add vec<location_t> *
149         param.
150         (check_function_format): Likewise.
151         * c-format.c (struct format_check_context): Add field "arglocs".
152         (check_function_format): Add param "arglocs"; pass it to
153         check_format_info.
154         (check_format_info):  Add param "arglocs"; use it to initialize
155         new field of format_ctx.
156         (check_format_arg): Pass format_ctx->arglocs to new param of
157         check_format_info_main.
158         (class argument_parser): New field "arglocs".
159         (argument_parser::argument_parser): Add "arglocs_" param and use
160         it to initialize new field.
161         (argument_parser::check_argument_type): Pass new arglocs field to
162         check_format_types.
163         (check_format_info_main): Add param "arglocs", and use it when
164         constructing arg_parser.
165         (check_format_types): Add param "arglocs"; use it if non-NULL when
166         !EXPR_HAS_LOCATION (cur_param) to get at location information.
167
168 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
169
170         PR c/53037
171         * c-attribs.c (handle_warn_if_not_aligned_attribute): New.
172         (c_common_attribute_table): Add warn_if_not_aligned.
173         (handle_aligned_attribute): Renamed to ...
174         (common_handle_aligned_attribute): Remove argument, name, and add
175         argument, warn_if_not_aligned.  Handle warn_if_not_aligned.
176         (handle_aligned_attribute): New.
177         * c.opt: Add -Wif-not-aligned and -Wpacked-not-aligned.
178
179 2017-08-14  Martin Sebor  <msebor@redhat.com>
180
181         PR c/81117
182         * c-attribs.c (c_common_attribute_table): Add nonstring entry.
183         (handle_nonstring_attribute): New function.
184
185 2017-08-14  Martin Sebor  <msebor@redhat.com>
186
187         PR c/81117
188         * c-format.h (T89_G): New macro.
189         * c-format.c (local_gcall_ptr_node): New variable.
190         (init_dynamic_diag_info): Initialize it.
191
192 2017-08-11  Martin Liska  <mliska@suse.cz>
193
194         * c-opts.c (c_common_post_options): Replace ASM_OUTPUT_DEF with
195         TARGET_SUPPORTS_ALIASES.
196
197 2017-08-10  David Malcolm  <dmalcolm@redhat.com>
198
199         * c-common.c (c_parse_error): Add rich_location * param, using it
200         rather implicitly using input_location.
201         * c-common.h (c_parse_error): Add rich_location * param.
202
203 2017-08-09  Marek Polacek  <polacek@redhat.com>
204
205         * c-common.c (pointer_int_sum): Use true/false instead of 1/0.
206         (c_common_truthvalue_conversion): Likewise.
207         * c-omp.c (c_finish_omp_atomic): Likewise.
208         * c-common.h (build_binary_op): Update declaration.
209
210 2017-08-08  Martin Liska  <mliska@suse.cz>
211
212         * c-ada-spec.c: Include header files.
213         * c-ubsan.c: Likewise.
214         * c-warn.c: Likewise.
215
216 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
217
218         PR c/69389
219         * c-omp.c (c_finish_omp_atomic): Handle atomics on bitfields.
220
221 2017-08-07  Eric Botcazou  <ebotcazou@adacore.com>
222
223         * c-ada-spec.c (has_nontrivial_methods): Test for FUNCTION_DECL.
224         (print_ada_methods): Likewise.
225         (print_ada_declaration): Likewise.
226
227 2017-08-07  Martin Liska  <mliska@suse.cz>
228
229         * array-notation-common.c: Add new includes.
230         * c-format.c( handle_format_attribute): Canonicalize a format
231         function name.
232         * c-lex.c (c_common_has_attribute): Canonicalize name of an
233         attribute.
234         * c-pretty-print.c: Add new include.
235
236 2017-08-05  Eric Botcazou  <ebotcazou@adacore.com>
237
238         * c-ada-spec.c (has_static_fields): Look only into variables.
239         (print_constructor): Add TYPE parameter and use it for the name.
240         (print_destructor): Likewise.
241         (print_ada_declaration): Adjust to new constructor/destructor names.
242         Adjust calls to print_constructor and print_destructor.
243         (print_ada_struct_decl): Do not test TREE_STATIC on FIELD_DECL.
244         Look only into variables in the final loop.
245
246 2017-08-01  Eric Botcazou  <ebotcazou@adacore.com>
247
248         * c-ada-spec.c (has_static_fields): Look only into fields.
249         (dump_generic_ada_node): Small tweak.
250         (dump_nested_types): Look only into fields.
251         (print_ada_declaration): Look only into methods.  Small tweak.
252         (print_ada_struct_decl): Look only into fields.  Use DECL_VIRTUAL_P.
253
254 2017-08-01  Eric Botcazou  <ebotcazou@adacore.com>
255
256         * c-ada-spec.c (print_generic_ada_decl): Pass correctly-typed constant.
257         (dump_ada_function_declaration): Likewise.
258         (dump_generic_ada_node): Likewise.
259         (print_ada_declaration): Add support for const-qualified variables.
260
261 2017-07-31  Martin Liska  <mliska@suse.cz>
262
263         PR sanitize/81530
264         * c-ubsan.c (ubsan_maybe_instrument_array_ref):
265         Guard condition with flag_sanitize_p also with current_function_decl
266         non-null equality.
267         (ubsan_maybe_instrument_reference_or_call): Likewise.
268
269 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
270
271         * c-format.c (asm_fprintf_char_table): Add 'z' to format_chars.
272
273 2017-07-29  Eric Botcazou  <ebotcazou@adacore.com>
274
275         * c-ada-spec.c (dump_generic_ada_node): Take into account signedness
276         for enumeral types.
277         (print_ada_declaration): Add missing guard for record types.
278
279 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
280
281         PR c/45784
282         * c-omp.c (c_finish_omp_for): If the condition is wrapped in
283         rhs of COMPOUND_EXPR(s), skip them and readd their lhs into
284         new COMPOUND_EXPRs around the rhs of the comparison.
285
286 2017-07-27  Marek Polacek  <polacek@redhat.com>
287
288         PR c/81417
289         * c-warn.c (warn_for_sign_compare): Tweak the warning message.  Print
290         the types.
291
292 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
293
294         * c-attribs.c (c_common_attribute_table): Add noipa attribute.
295         (handle_noipa_attribute): New function.
296
297 2017-07-07  Torsten Duwe  <duwe@suse.de>
298
299         * c-attribs.c (c_common_attribute_table): Add entry for
300         "patchable_function_entry".
301
302 2017-07-20  Nathan Sidwell  <nathan@acm.org>
303
304         Remove TYPE_METHODS.
305         * c-ada-spec.c (is_tagged_type, has_nontrivial_methods,
306         dump_ada_template, print_ada_methods,
307         print_ada_declaration): Member fns are on TYPE_FIELDS.
308
309 2017-07-18  Nathan Sidwell  <nathan@acm.org>
310
311         * c-warn.c (warn_for_memset): Use TYPE_{MIN,MAX}_VALUE.
312
313 2017-07-14  David Malcolm  <dmalcolm@redhat.com>
314
315         * c-common.c (try_to_locate_new_include_insertion_point): New
316         function.
317         (per_file_includes_t): New typedef.
318         (added_includes_t): New typedef.
319         (added_includes): New variable.
320         (maybe_add_include_fixit): New function.
321         * c-common.h (maybe_add_include_fixit): New decl.
322
323 2017-07-10  Martin Sebor  <msebor@redhat.com>
324
325         PR other/81345
326         * c.opt (-Wstringop-overflow): Set defaults in LangEnabledBy.
327
328 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
329
330         * c-common.c (selftest::c_family_tests): New.
331         * c-common.h (selftest::run_c_tests): Move decl to c/c-lang.h.
332         (selftest::c_family_tests): New decl.
333
334 2017-07-04  Marek Polacek  <polacek@redhat.com>
335
336         PR c/81231
337         * c-common.c (sync_resolve_size): Give error for pointers to incomplete
338         types.
339
340 2017-07-04  Marek Polacek  <polacek@redhat.com>
341
342         * c-warn.c (warn_if_unused_value): Remove WITH_CLEANUP_EXPR handling.
343
344 2017-06-28  Martin Liska  <mliska@suse.cz>
345
346         PR ipa/81128
347         * c-attribs.c (handle_alias_ifunc_attribute): Append ifunc alias
348         to a function declaration.
349
350 2017-06-28  Martin Liska  <mliska@suse.cz>
351
352         PR driver/79659
353         * c.opt: Add IntegerRange to various options.
354
355 2017-06-26  Marek Polacek  <polacek@redhat.com>
356
357         PR c/80116
358         * c-common.h (warn_for_multistatement_macros): Declare.
359         * c-warn.c: Include "c-family/c-indentation.h".
360         (warn_for_multistatement_macros): New function.
361         * c.opt (Wmultistatement-macros): New option.
362         * c-indentation.c (guard_tinfo_to_string): No longer static.
363         Change the parameter type to "enum rid".  Handle RID_SWITCH.
364         * c-indentation.h (guard_tinfo_to_string): Declare.
365
366 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
367
368         * c-common.c (c_common_nodes_and_builtins): Use builtin_structptr_types.
369
370 2017-06-15  Martin Sebor  <msebor@redhat.com>
371
372         PR c++/80560
373         * c.opt (-Wclass-memaccess): New option.
374
375 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
376
377         * c-opts.c (c_common_finish): Handle '-' special value to -MF.
378
379 2017-06-13  Marek Polacek  <polacek@redhat.com>
380
381         PR objc/80949
382         * c-warn.c (do_warn_duplicated_branches): Return if any of the
383         branches is null.
384
385 2017-06-13  Martin Liska  <mliska@suse.cz>
386
387         PR sanitize/78204
388         * c-attribs.c (add_no_sanitize_value): New function.
389         (handle_no_sanitize_attribute): Likewise.
390         (handle_no_sanitize_address_attribute): Use the function.
391         (handle_no_sanitize_thread_attribute): New function.
392         (handle_no_address_safety_analysis_attribute): Use
393         add_no_sanitize_value.
394         (handle_no_sanitize_undefined_attribute): Likewise.
395         * c-common.h: Declare new functions.
396         * c-ubsan.c (ubsan_instrument_division): Use sanitize_flags_p.
397         (ubsan_instrument_shift): Likewise.
398         (ubsan_instrument_bounds): Likewise.
399         (ubsan_maybe_instrument_array_ref): Likewise.
400         (ubsan_maybe_instrument_reference_or_call): Likewise.
401
402 2017-06-11  Jason Merrill  <jason@redhat.com>
403
404         * c-ada-spec.c, c-pragma.c: Use id_equal.
405
406 2017-06-04  Marek Polacek  <polacek@redhat.com>
407
408         PR c/80919
409         * c-format.c (matching_type_p): Return false if any of the types
410         requires structural equality.
411
412 2017-06-02  Martin Sebor  <msebor@redhat.com>
413
414         PR c/80892
415         * c-warn.c (conversion_warning): Use -Wconversion for integer
416         conversion and -Wfloat-conversion for floating one.
417
418 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
419
420         * c.opt (Wsizeof-pointer-div): New warning option.
421
422 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
423
424         * c.opt (Wcatch-value): New shortcut for Wcatch-value=1.
425         (Wcatch-value=1): Enable by -Wall.
426
427 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
428
429         * c-format.c (gcc_cxxdiag_char_table): Add 'H' and 'I' to
430         format_chars.
431         * c.opt (fdiagnostics-show-template-tree): New option.
432         (felide-type): New option.
433
434 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
435
436         * c.opt (Wcatch-value=): New C++ warning flag.
437
438 2017-05-24  Nathan Sidwell  <nathan@acm.org>
439
440         * c=common.c (field_decl_cmp, resort_field_decl_cmp): Adjust T
441         const casts to avoid warning.
442
443 2017-05-24  Martin Sebor  <msebor@redhat.com>
444
445         PR c/80731
446         * c-common.h (unsafe_conversion_p): Add a function argument.
447         * c-common.c (unsafe_conversion_p): Same.
448         Add type names and values to diagnostics.
449         (scalar_to_vector): Adjust.
450         * c-warn.c (constant_expression_error): Add a function argument.
451         Add type names and values to diagnostics.
452         (conversion_warning): Add a function argument.
453         Add type names and values to diagnostics.
454         (warnings_for_convert_and_check): Same.
455
456 2017-05-19  Jason Merrill  <jason@redhat.com>
457
458         * c-warn.c (match_case_to_enum_1): Don't warn about enums with no
459         enumerators.
460
461 2017-05-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
462
463         * c-format.c (locus): Move out of function scope,
464         add GTY attribute.
465
466 2017-05-19  Nathan Sidwell  <nathan@acm.org>
467
468         * c-opts.c (class_dump_file, class_dump_flags): Delete.
469         (c_common_parse_file): Remove class dump handling.
470         (get_dump_info): Likewise.
471
472 2017-05-19  Richard Biener  <rguenther@suse.de>
473
474         PR c++/80593
475         * c-warn.c (strict_aliasing_warning): Do not warn for accesses
476         to alias-set zero memory.
477
478 2017-05-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
479
480         * c-format.c (local_tree_type_node): Add GTY attribute.
481
482 2017-05-18  Marek Polacek  <polacek@redhat.com>
483
484         * c-common.c (c_common_type_for_size): Use NULL_TREE instead of 0.
485         (c_common_fixed_point_type_for_size): Likewise.
486         (c_common_type_for_mode): Likewise.
487         (shorten_compare): Likewise.
488         (c_promoting_integer_type_p): Use false/true instead of 0/1.
489         * c-pragma.c (maybe_apply_renaming_pragma): Use NULL_TREE instead of 0.
490
491 2017-05-18  Marek Polacek  <polacek@redhat.com>
492
493         * c-common.c (self_promoting_args_p): Change the return type to bool.
494         Use false/true instead of 0/1.
495         * c-common.h (self_promoting_args_p): Update.
496
497 2017-05-17  Marek Polacek  <polacek@redhat.com>
498
499         * c-common.c: Use NULL_TREE instead of 0 where appropriate.
500         * c-warn.c: Likewise.
501
502 2017-05-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
503
504         Implement new C++ intrinsics __is_assignable and __is_constructible.
505         * c-common.c (__is_assignable, __is_constructible): New.
506         * c-common.h (RID_IS_ASSIGNABLE, RID_IS_CONSTRUCTIBLE): Likewise.
507
508 2017-05-17  Martin Liska  <mliska@suse.cz>
509
510         * c-common.h: Introduce dump_flags_t type and
511         use it instead of int type.
512         * c-gimplify.c (c_genericize): Likewise.
513         * c-opts.c: Likewise.
514
515 2017-05-17  Marek Polacek  <polacek@redhat.com>
516
517         * c-common.c (c_save_expr): Remove.
518         (c_common_truthvalue_conversion): Remove a call to c_save_expr.
519         * c-common.h (c_save_expr): Remove declaration.
520
521 2017-05-09  Volker Reichelt  <v.reichelt@netcologne.de>
522
523         PR c/35441
524         * c-pretty-print.c (c_pretty_printer::expression): Handle MAX_EXPR,
525         MIN_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, LROTATE_EXPR, RROTATE_EXPR.
526         (c_pretty_printer::postfix_expression): Handle MAX_EXPR, MIN_EXPR.
527         (c_pretty_printer::multiplicative_expression): Handle EXACT_DIV_EXPR,
528         RDIV_EXPR.
529         (pp_c_shift_expression): Handle LROTATE_EXPR, RROTATE_EXPR.
530
531 2017-05-09  Marek Polacek  <polacek@redhat.com>
532
533         PR c/80525
534         * c-warn.c (unwrap_c_maybe_const): New.
535         (warn_logical_operator): Call it.
536
537 2017-05-09  Nathan Sidwell  <nathan@acm.org>
538
539         * c-common.c (c_register_builtin_type): Use pushdecl lang_hook.
540         * c-common.h (pushdecl_top_level, pushdecl): Don't declare here.
541
542 2017-05-08  Martin Sebor  <msebor@redhat.com>
543
544         PR translation/80280
545         * c-format.h (struct format_flag_spec): Add new member.
546         (T89_T): New macro.
547         * c-format.c (local_tree_type_node): New global.
548         (printf_flag_specs, asm_fprintf_flag_spec): Initialize new data.
549         (gcc_diag_flag_specs, scanf_flag_specs, strftime_flag_specs): Ditto.
550         (strfmon_flag_specs): Likewise.
551         (gcc_diag_char_table, gcc_cdiag_char_table): Split up specifiers
552         with distinct quoting properties.
553         (gcc_tdiag_char_table, gcc_cxxdiag_char_table): Same.
554         (flag_chars_t::validate): Add argument and handle bad quoting.
555         (check_format_info_main): Handle quoting problems.
556         (init_dynamic_diag_info): Simplify.
557
558 2017-05-08  Jason Merrill  <jason@redhat.com>
559
560         * c-opts.c (c_common_post_options): Update defaults for
561         flag_abi_version and flag_abi_compat_version.
562
563 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
564
565         * c-common.c (c_cpp_error): Replace report_diagnostic
566         with diagnostic_report_diagnostic.
567
568 2017-05-04  Martin Sebor  <msebor@redhat.com>
569
570         PR translation/80280
571         * c-attribs.c (handle_alias_ifunc_attribute): Quote a %D directive.
572         (handle_weakref_attribute): Same.
573
574 2017-05-03  Nathan Sidwell  <nathan@acm.org>
575
576         Canonicalize canonical type hashing
577         * c-common.c (complete_array_type): Use type_hash_canon.
578
579 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
580
581         PR c++/80038
582         * c-common.h (cilk_gimplify_call_params_in_spawned_fn): Remove
583         prototype.
584         (cilk_install_body_pedigree_operations): Likewise.
585         * cilk.c (cilk_set_spawn_marker): Mark functions that should be
586         detatched.
587         (cilk_gimplify_call_params_in_spawned_fn): Remove.
588         (cilk_install_body_pedigree_operations): Likewise.
589         (gimplify_cilk_spawn): Add EXPR_STMT and CLEANUP_POINT_EXPR
590         unwrapping.
591
592 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
593
594         PR c++/80534
595         * c-common.c (complete_array_type): Only hash TYPE_TYPELESS_STORAGE
596         flag on non-aggregate element types.
597
598 2017-04-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
599
600         * c-common.c (c_type_hasher, type_hash_table): Remove.
601         (c_common_get_alias_set): Remove unreachable code.
602         * c-opts.c (c_common_post_options): Make sure cc1 takes only one file.
603
604 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
605
606         * c.opt (Wextra-semi): New C++ warning flag.
607
608 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
609
610         PR middle-end/80423
611         * c-common.c (complete_array_type): Preserve TYPE_TYPELESS_STORAGE.
612
613 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
614
615         PR middle-end/79788
616         PR middle-end/80375
617         * c-common.c (c_common_type_for_mode): Don't handle
618         widest_*_literal_type_node here.
619         c_common_signed_or_unsigned_type): Likewise.
620         (c_common_nodes_and_builtins): Set widest_*_literal_type_node
621         to *intTI_type_node or *intDI_type_node depending on whether
622         TImode is supported by the target or not.
623
624 2017-04-10  Martin Liska  <mliska@suse.cz>
625
626         PR sanitizer/80350
627         * c-ubsan.c (ubsan_instrument_shift): Evaluate RHS before
628         doing an UBSAN check.
629
630 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
631
632         * c-warn.c (do_warn_double_promotion): Fix typo in comment.
633
634 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
635
636         PR c++/79572
637         * c-ubsan.h (ubsan_maybe_instrument_reference): Change argument to
638         tree *.
639         * c-ubsan.c (ubsan_maybe_instrument_reference): Likewise.  Handle
640         not just NOP_EXPR to REFERENCE_TYPE, but also INTEGER_CST with
641         REFERENCE_TYPE.
642
643 2017-03-31  David Malcolm  <dmalcolm@redhat.com>
644
645         PR documentation/78732
646         * c.opt (Wendif-labels): Fix description to refer to
647         #else rather than #elif.
648
649 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
650
651         PR libstdc++/80251
652         * c-common.h (enum rid): Add RID_IS_AGGREGATE.
653         * c-common.c (c_common_reswords): Add __is_aggregate trait.
654
655 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
656
657         PR middle-end/80162
658         * c-common.c (c_common_mark_addressable_vec): Don't set
659         TREE_ADDRESSABLE on DECL_HARD_REGISTER.
660
661 2017-03-21  Martin Sebor  <msebor@redhat.com>
662
663         PR c++/79548
664         * c-common.c (set_underlying_type): Mark type used only when
665         original del is declared unused.
666
667 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
668
669         PR translation/79848
670         * c-format.c (check_format_string): Simplify uses of "%<%s%>" to
671         "%qs".
672
673 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
674
675         PR c/79921
676         * c-indentation.c (warn_for_misleading_indentation): Remove parens
677         from inform's message, so that xgettext can locate it.
678
679 2017-03-09  Marek Polacek  <polacek@redhat.com>
680
681         PR c++/79962
682         PR c++/79984
683         * c-attribs.c (handle_nonnull_attribute): Save the result of default
684         conversion to the attribute list.
685
686 2017-03-09  Martin Liska  <mliska@suse.cz>
687
688         * c-ada-spec.c (macro_length): Increment value instead of a pointer.
689
690 2017-03-03  Jason Merrill  <jason@redhat.com>
691
692         * c.opt (Wnoexcept-type): New.
693
694 2017-03-02  Richard Biener  <rguenther@suse.de>
695
696         PR c/79756
697         * c-common.c (c_common_mark_addressable_vec): Look through
698         C_MAYBE_CONST_EXPR.
699
700 2017-02-28  Martin Liska  <mliska@suse.cz>
701
702         * c.opt: Replace space with tabular for options of <number>
703         type.
704
705 2017-02-28  Martin Liska  <mliska@suse.cz>
706
707         * c.opt: Fix --help=option -Q for options which are of
708         an enum type.
709
710 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
711
712         PR c++/79588
713         * c-common.c (check_function_restrict): New function.
714         (check_function_arguments): Add FNDECL argument.  Call
715         check_function_restrict if -Wrestrict.
716         * c-warn.c (warn_for_restrict): Remove ARGS argument, add ARGARRAY
717         and NARGS.  Use auto_vec for ARG_POSITIONS, simplify.
718         * c-common.h (check_function_arguments): Add FNDECL argument.
719         (warn_for_restrict): Remove ARGS argument, add ARGARRAY and NARGS.
720
721 2017-02-24  Eric Botcazou  <ebotcazou@adacore.com>
722
723         * c-ada-spec.c (dump_ada_function_declaration): Add comment about the
724         treatment of parameters with pointer-to-tagged type and tidy up.
725         (print_ada_methods): Remove the special treatment of C++ static member
726         functions.
727
728 2017-02-22  Martin Liska  <mliska@suse.cz>
729
730         * c.opt: Replace inequality signs with square brackets
731         for -Wnornalized.
732
733 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
734
735         PR c++/79641
736         * c-attribs.c (handle_mode_attribute): Use build_qualified_type to
737         preserve quals.
738
739 2017-02-17  Joseph Myers  <joseph@codesourcery.com>
740
741         * c-cppbuiltin.c (builtin_define_float_constants): Define
742         __DECIMAL_DIG__ to the value for long double.
743
744 2017-02-15  Marek Polacek  <polacek@redhat.com>
745
746         PR c/79515
747         * c-warn.c (do_warn_double_promotion): Don't warn if an invalid
748         conversion has occured.
749
750 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
751
752         * c-common.c (c_common_reswords): Add "__RTL".
753         * c-common.h (enum rid): Add RID_RTL.
754
755 2017-01-20  Marek Polacek  <polacek@redhat.com>
756
757         PR c/64279
758         * c-common.h (do_warn_duplicated_branches_r): Declare.
759         * c-gimplify.c (c_genericize): Walk the function tree calling
760         do_warn_duplicated_branches_r.
761         * c-warn.c (expr_from_macro_expansion_r): New.
762         (do_warn_duplicated_branches): New.
763         (do_warn_duplicated_branches_r): New.
764         * c.opt (Wduplicated-branches): New option.
765
766 2017-01-17  David Malcolm  <dmalcolm@redhat.com>
767
768         PR c++/71497
769         * c-indentation.c (warn_for_misleading_indentation): Use the past
770         subjunctive in the note.
771
772 2017-01-17  Aldy Hernandez  <aldyh@redhat.com>
773
774         PR c/79116
775         * array-notation-common.c (cilkplus_extract_an_triplets): Convert
776         start type to integer_type.
777
778 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
779
780         PR driver/49726
781         * c.opt (gen-decls): Add Driver flag.
782
783 2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
784
785         Revert:
786         2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
787
788         PR c++/71737
789         * c-common.c (set_underlying_type): Always set DECL_ORIGINAL_TYPE.
790
791 2017-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
792
793         PR c++/71737
794         * c-common.c (set_underlying_type): Always set DECL_ORIGINAL_TYPE.
795
796 2017-01-12  Martin Sebor  <msebor@redhat.com>
797
798         (-Wformat-overflow): ...to this.
799
800 2017-01-11  Martin Sebor  <msebor@redhat.com>
801
802         PR c/78768
803         * c.opt (-Walloca-larger-than, -Wformat-length, -Wformat-truncation):
804         Also enable for LTO.
805
806 2017-01-10  Jason Merrill  <jason@redhat.com>
807
808         Implement P0195R2, C++17 variadic using.
809         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_variadic_using.
810
811 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
812
813         PR translation/79019
814         PR translation/79020
815         * c.opt (Wnormalized=): Fix typo in description.
816
817 2017-01-08  Martin Sebor  <msebor@redhat.com>
818
819         PR middle-end/77708
820         * c.opt (-Wformat-truncation): New option.
821
822 2017-01-06  Alexandre Oliva <aoliva@redhat.com>
823
824         * c-pretty-print.c (pp_c_tree_decl_identifier): Convert 16-bit
825         value to unsigned short to fit in 4 hex digits without
826         warnings.
827
828 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
829
830         * c.opt (fsso-struct): Add 'native' value.
831
832 2017-01-05  Martin Liska  <mliska@suse.cz>
833
834         PR pch/78970
835         * c-opts.c (c_common_post_options): Reject '-' filename for a precompiled
836         header.
837
838 2017-01-04  Marek Polacek  <polacek@redhat.com>
839
840         PR c++/64767
841         * c.opt (Wpointer-compare): New option.
842
843 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
844
845         PR driver/78957
846         * c.opt (fsso-struct=): Add RejectNegative.
847
848 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
849
850         Update copyright years.
851
852 2016-12-29  Martin Liska  <mliska@suse.cz>
853
854         PR c/78933
855         * c.opt (strong-eval-order): Add RejectNegative keyword.
856
857 2016-12-22  Jason Merrill  <jason@redhat.com>
858
859         Implement P0522R0, matching of template template arguments.
860         * c-cppbuiltin.c (c_cpp_builtins): Define
861         __cpp_template_template_args.
862
863 2016-12-21  Jakub Jelinek  <jakub@redhat.com>
864
865         PR bootstrap/78817
866         * c-common.c (struct nonnull_arg_ctx): New type.
867         (check_function_nonnull): Return bool instead of void.  Use
868         nonnull_arg_ctx as context rather than just location_t.
869         (check_nonnull_arg): Adjust for the new context type, set
870         warned_p to true if a warning has been diagnosed.
871         (check_function_arguments): Return bool instead of void.
872         * c-common.h (check_function_arguments): Adjust prototype.
873
874 2016-12-21  Jason Merrill  <jason@redhat.com>
875
876         * c.opt (-fnew-ttp-matching): New flag.
877         * c-opts.c (c_common_post_options): Default on if -std=c++1z.
878
879 2016-12-14  Martin Jambor  <mjambor@suse.cz>
880
881         * c-omp.c: Include omp-general.h instead of omp-low.h.
882         (c_finish_oacc_wait): Adjusted call to find_omp_clause to use its new
883         name.
884
885 2016-12-14  Martin Sebor  <msebor@redhat.com>
886
887         PR c/17308
888         * c-common.c (check_nonnull_arg): Disable when optimization
889         is enabled.
890
891 2016-12-12  Marek Polacek  <polacek@redhat.com>
892
893         PR c++/78647
894         * c-common.c (attribute_fallthrough_p): Return false for
895         error_mark_node.
896
897 2016-12-08  Martin Sebor  <msebor@redhat.com>
898
899         PR c/78284
900         * c.opt (-Walloc-zero, -Walloc-size-larger-than): New options.
901
902 2016-12-08  Martin Sebor  <msebor@redhat.com>
903
904         PR c/78165
905         * c-pretty-print (pp_c_integer_constant): Avoid formatting type
906         suffix.
907
908 2016-12-07  Martin Sebor  <msebor@redhat.com>
909
910         PR c/53562
911         PR middle-end/77784
912         PR middle-end/78149
913         PR middle-end/78138
914         * c.opt (-Wstringop-overflow): New option.
915
916 2016-12-02  Maxim Ostapenko  <m.ostapenko@samsung.com>
917
918         * c-attribs.c (asan odr indicator): New attribute.
919         (handle_asan_odr_indicator_attribute): New function.
920
921 2016-11-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
922
923         * c-common.c (c_common_nodes_and_builtins): Remove initialization of
924         ptrdiff_type_node;
925
926 2016-11-23  James Greenhalgh  <james.greenhalgh@arm.com>
927
928         * c-common.c (excess_precision_mode_join): New.
929         (c_ts18661_flt_eval_method): New.
930         (c_c11_flt_eval_method): Likewise.
931         (c_flt_eval_method): Likewise.
932         * c-common.h (excess_precision_mode_join): New.
933         (c_flt_eval_method): Likewise.
934         * c-cppbuiltin.c (c_cpp_flt_eval_method_iec_559): New.
935         (cpp_iec_559_value): Call it.
936         (c_cpp_builtins): Modify logic for __LIBGCC_*_EXCESS_PRECISION__,
937         call c_flt_eval_method to set __FLT_EVAL_METHOD__ and
938         __FLT_EVAL_METHOD_TS_18661_3__.
939
940 2016-11-23  James Greenhalgh  <james.greenhalgh@arm.com>
941
942         * c-opts.c (c_common_post_options): Add logic to handle the default
943         case for -fpermitted-flt-eval-methods.
944
945 2016-11-23  Paolo Bonzini  <bonzini@gnu.org>
946
947         * c.opt (Wexpansion-to-defined): New.
948
949 2016-11-23  Jakub Jelinek  <jakub@redhat.com>
950
951         PR target/78451
952         * c-pragma.c (handle_pragma_target): Don't replace
953         current_target_pragma, but chainon the new args to the current one.
954
955 2016-11-22  Nathan Sidwell  <nathan@acm.org>
956
957         * array-notation-common.c (cilkplus_extract_an_trplets): Fix
958         indentation and formatting.
959
960 2016-11-21  Martin Sebor  <msebor@redhat.com>
961
962         * c.opt (-fprintf-return-value): Enable by default.
963
964 2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
965
966         PR c++/71973
967         * c.opt (-Wbuiltin-declaration-mismatch): New warning.
968         * c-common.c (c_common_nodes_and_builtins): Initialize
969         const_tm_ptr_type_node.
970
971 2016-11-16  Marek Polacek  <polacek@redhat.com>
972
973         PR c/78285
974         * c-common.c (c_add_case_label): Turn error_at calls into inform.
975
976 2016-11-14  Jakub Jelinek  <jakub@redhat.com>
977
978         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings.
979
980 2016-11-14  Prasad Ghangal  <prasad.ghangal@gmail.com>
981             Richard Biener  <rguenther@suse.de>
982
983         * c-common.h (c_common_resword): Add RID_GIMPLE, RID_PHI types.
984         * c-common.h (enum rid): Add RID_GIMPLE, RID_PHI.
985         * c.opt (fgimple): New option.
986
987 2016-11-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
988
989         PR c/35503
990         * c-common.h (warn_for_restrict): Declare.
991         * c-warn.c: Include gcc-rich-location.h.
992         (warn_for_restrict): New function.
993         * c-format.c (gcc_tdiag_char_table): Add entry for "Z" specifier.
994         (gcc_cdiag_char_table): Likewise.
995         (gcc_cxxdiag_char_table): Likewise.
996         * c.opt (Wrestrict): New option.
997
998 2016-11-13  Eric Botcazou  <ebotcazou@adacore.com>
999
1000         * c-ada-spec.c (print_ada_declaration): For typedef declarations, look
1001         for nested types only if the type is a record or union and dump SLOC.
1002
1003 2016-11-09  Jason Merrill  <jason@redhat.com>
1004
1005         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_template_auto.
1006
1007 2016-11-09  Jakub Jelinek  <jakub@redhat.com>
1008
1009         * c-ubsan.c (ubsan_instrument_shift): Handle split
1010         -fsanitize=shift-base and -fsanitize=shift-exponent.
1011
1012 2016-11-07  Jason Merrill  <jason@redhat.com>
1013
1014         * c.opt (Wc++1z-compat): New.
1015         * c-cppbuiltin.c (c_cpp_builtins): Add __cpp_noexcept_function_type.
1016
1017 2016-11-07  Martin Liska  <mliska@suse.cz>
1018
1019         * c-warn.c (warn_for_unused_label): Save all labels used
1020         in goto or in &label.
1021
1022 2016-11-03  Jason Merrill  <jason@redhat.com>
1023
1024         * c-cppbuiltin.c (c_cpp_builtins): Correct
1025         __cpp_inheriting_constructors.
1026
1027 2016-11-01  Jason Merrill  <jason@redhat.com>
1028
1029         * c-cppbuiltin.c (c_cpp_builtins): Update
1030         __cpp_inheriting_constructors.
1031
1032         * c.opt (-fnew-inheriting-ctors): New.
1033         * c-opts.c: Default to on for ABI 11+.
1034
1035 2016-10-31  Jakub Jelinek  <jakub@redhat.com>
1036
1037         PR c++/77948
1038         * c.opt (fext-numeric-literals): Add Var and Init.
1039         * c-opts.c (c_common_handle_option): Don't clear
1040         cpp_opts->ext_numeric_literals for -std=c++{11,14,1z}.
1041         (c_common_post_options): Clear it here if not set
1042         explicitly.
1043
1044 2016-10-28  Aldy Hernandez  <aldyh@redhat.com>
1045
1046         PR debug/77773
1047         * c-pretty-print.c (simple_type_specifier): Do not dereference `t'
1048         if NULL.
1049
1050 2016-10-25  Jakub Jelinek  <jakub@redhat.com>
1051
1052         * c-common.h (enum rid): Add RID_BUILTIN_LAUNDER.
1053         * c-common.c (c_common_reswords): Add __builtin_launder.
1054
1055 2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1056
1057         * c-common.c (c_common_truthvalue_conversion): Warn for
1058         multiplications in boolean context.  Fix the quoting of '<<' and '<'
1059         in the shift warning.
1060
1061 2016-10-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1062
1063         * c-common.c (c_common_truthvalue_conversion): Fix the comment.
1064
1065 2016-10-20  Jason Merrill  <jason@redhat.com>
1066
1067         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_concepts value.
1068
1069 2016-10-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1070
1071         * c-common.c (c_common_truthvalue_conversion): Warn only for signed
1072         integer shift ops in boolean context.
1073
1074 2016-10-18  Aldy Hernandez  <aldyh@redhat.com>
1075
1076         * c.opt (Walloca): New.
1077         (Walloca-larger-than=): New.
1078         (Wvla-larger-than=): New.
1079
1080 2016-10-17  Marek Polacek  <polacek@redhat.com>
1081
1082         * c-warn.c (find_array_ref_with_const_idx_r): Remove parameter names.
1083         Return immediately when finding a match.
1084         (warn_tautological_cmp): Remove a boolean variable that is no longer
1085         needed.
1086
1087 2016-10-17  Marek Polacek  <polacek@redhat.com>
1088
1089         * c-attribs.c: New file.
1090         * c-common.c: Move attributes handling to c-attribs.c.
1091         (get_nonnull_operand): No longer static.
1092         * c-common.h: Move the declarations from c-attribs.c to its own section.
1093
1094 2016-10-14  Jason Merrill  <jason@redhat.com>
1095
1096         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_aggregate_bases
1097         and __cpp_deduction_guides.
1098
1099 2016-10-13  Jason Merrill  <jason@redhat.com>
1100
1101         * c-cppbuiltin.c (c_cpp_builtins): Add __cpp_inline_variables.
1102
1103 2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1104
1105         * c-cppbuiltin.c: Include memmodel.h.
1106         * c-opts.c: Likewise.
1107         * c-pragma.c: Likewise.
1108         * c-warn.c: Likewise.
1109
1110 2016-10-12  Jakub Jelinek  <jakub@redhat.com>
1111
1112         * c.opt (Wextra): Add as C/C++/ObjC/ObjC++ option.
1113         (Wimplicit-fallthrough=): Enable for these languages by -Wextra.
1114         * c-opts.c (sanitize_cpp_opts): Initialize
1115         cpp_opts->cpp_warn_implicit_fallthrough.
1116
1117 2016-10-11  Marek Polacek  <polacek@redhat.com>
1118
1119         * c-common.c (warning_candidate_p): Change the return type to bool
1120         and return true/false instead of 1/0.
1121         (vector_mode_valid_p): Likewise.
1122
1123 2016-10-11  Marek Polacek  <polacek@redhat.com>
1124
1125         * c-common.c (fold_for_warn): No longer static.
1126         (bool_promoted_to_int_p): Likewise.
1127         (c_common_get_narrower): Likewise.
1128         (constant_expression_warning): Move to c-warn.c.
1129         (constant_expression_error): Likewise.
1130         (overflow_warning): Likewise.
1131         (warn_logical_operator): Likewise.
1132         (find_array_ref_with_const_idx_r): Likewise.
1133         (warn_tautological_cmp): Likewise.
1134         (expr_has_boolean_operands_p): Likewise.
1135         (warn_logical_not_parentheses): Likewise.
1136         (warn_if_unused_value): Likewise.
1137         (strict_aliasing_warning): Likewise.
1138         (sizeof_pointer_memaccess_warning): Likewise.
1139         (check_main_parameter_types): Likewise.
1140         (conversion_warning): Likewise.
1141         (warnings_for_convert_and_check): Likewise.
1142         (match_case_to_enum_1): Likewise.
1143         (match_case_to_enum): Likewise.
1144         (c_do_switch_warnings): Likewise.
1145         (warn_for_omitted_condop): Likewise.
1146         (readonly_error): Likewise.
1147         (lvalue_error): Likewise.
1148         (invalid_indirection_error): Likewise.
1149         (warn_array_subscript_with_type_char): Likewise.
1150         (warn_about_parentheses): Likewise.
1151         (warn_for_unused_label): Likewise.
1152         (warn_for_div_by_zero): Likewise.
1153         (warn_for_memset): Likewise.
1154         (warn_for_sign_compare): Likewise.
1155         (do_warn_double_promotion): Likewise.
1156         (do_warn_unused_parameter): Likewise.
1157         (record_locally_defined_typedef): Likewise.
1158         (maybe_record_typedef_use): Likewise.
1159         (maybe_warn_unused_local_typedefs): Likewise.
1160         (maybe_warn_bool_compare): Likewise.
1161         (maybe_warn_shift_overflow): Likewise.
1162         (warn_duplicated_cond_add_or_warn): Likewise.
1163         (diagnose_mismatched_attributes): Likewise.
1164         * c-common.h: Move the declarations from c-warn.c to its own section.
1165         * c-warn.c: New file.
1166
1167 2016-10-08  Jason Merrill  <jason@redhat.com>
1168
1169         * c-common.c (c_common_truthvalue_conversion): Don't distribute
1170         into COND_EXPR in C++.
1171
1172 2016-10-08  Jakub Jelinek  <jakub@redhat.com>
1173
1174         * c-lex.c (c_lex_with_flags) <case CPP_COMMENT>: For CPP_COMMENT
1175         token with PREV_FALLTHROUGH, skip all following CPP_PADDING and
1176         CPP_COMMENT tokens and set add_flags to PREV_FALLTHROUGH afterwards.
1177
1178 2016-10-07  Jakub Jelinek  <jakub@redhat.com>
1179
1180         Implement LWG2296 helper intrinsic
1181         * c-common.h (enum rid): Add RID_ADDRESSOF.
1182         * c-common.c (c_common_reswords): Add __builtin_addressof.
1183
1184 2016-10-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1185
1186         PR c++/77700
1187         * c-common.c (c_common_truthvalue_conversion): Warn also for
1188         suspicious enum values in boolean context.
1189
1190 2016-10-06  Jakub Jelinek  <jakub@redhat.com>
1191
1192         Implement P0258R2 - helper for C++17
1193         std::has_unique_object_representations trait
1194         * c-common.h (enum rid): Add RID_HAS_UNIQUE_OBJ_REPRESENTATIONS.
1195         * c-common.c (c_common_reswords): Add
1196         __has_unique_object_representations.
1197
1198 2016-10-05  Jakub Jelinek  <jakub@redhat.com>
1199
1200         PR sanitizer/66343
1201         * c-ubsan.c (ubsan_instrument_return): Don't call
1202         initialize_sanitizer_builtins here.
1203
1204 2016-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1205
1206         * c-common.c (c_common_truthvalue_conversion): Warn also for suspicious
1207         conditional expression in boolean context when only one arm is
1208         non-boolean.
1209
1210 2016-10-05  Jakub Jelinek  <jakub@redhat.com>
1211
1212         PR sanitizer/77823
1213         * c-ubsan.c (ubsan_instrument_shift): Return NULL_TREE if type0
1214         is not integral.
1215
1216         * c-common.c (c_common_reswords): Update comment for C++11.
1217
1218 2016-10-04  Jason Merrill  <jason@redhat.com>
1219
1220         * c-common.c (make_tree_vector_from_ctor): New.
1221         * c-common.h: Declare it.
1222
1223 2016-10-04  Jakub Jelinek  <jakub@redhat.com>
1224
1225         * c-cppbuiltin.c (c_cpp_builtins): Don't define
1226         __LIBGCC_JCR_SECTION_NAME__.
1227
1228 2016-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1229
1230         * c-common.c (c_common_truthvalue_conversion): Warn for suspicious
1231         left shift in boolean context.
1232
1233 2016-09-29  Jakub Jelinek  <jakub@redhat.com>
1234
1235         Implement P0001R1 - C++17 removal of register storage class specifier
1236         * c.opt (Wregister): New warning.
1237         * c-opts.c (c_common_post_options): Enable -Wregister by
1238         default for C++17.
1239
1240 2016-09-29  James Greenhalgh  <james.greenhalgh@arm.com>
1241
1242         * c-opts.c (c_common_post_options): Remove special case for
1243         TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard
1244         in C++.
1245
1246 2016-09-27  Jakub Jelinek  <jakub@redhat.com>
1247
1248         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_capture_star_this for
1249         -std=c++1z.
1250
1251         * c-ada-spec.c (print_ada_declaration): Remove break after return.
1252
1253 2016-09-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1254
1255         * c-common.c: Include memmodel.h.
1256
1257 2016-09-26  Marek Polacek  <polacek@redhat.com>
1258
1259         * c-lex.c (c_common_has_attribute): Handle attribute fallthrough.
1260
1261 2016-09-26  Marek Polacek  <polacek@redhat.com>
1262
1263         PR c/7652
1264         * c-common.c (c_common_attribute_table): Add fallthrough attribute.
1265         (handle_fallthrough_attribute): New function.
1266         (attribute_fallthrough_p): New function.
1267         * c-common.h (attribute_fallthrough_p): Declare.
1268
1269 2016-09-24  Marek Polacek  <polacek@redhat.com>
1270
1271         PR c/77490
1272         * c.opt (Wbool-operation): New.
1273
1274 2016-09-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1275
1276         * c-common.c (c_common_truthvalue_conversion): Inhibit
1277         Wint-in-bool-context warning with from_macro_definition_at.
1278         Mention the expression will always evaluate to true.
1279
1280 2016-09-21  Martin Sebor  <msebor@redhat.com>
1281
1282         PR bootstrap/77676
1283         * c.opt (fprintf-return-value): Temporarily initialize to zero
1284         to unblock bootstrap failures.
1285
1286 2016-09-21  Jakub Jelinek  <jakub@redhat.com>
1287
1288         PR c++/77651
1289         * c.opt (Waligned-new=): Add RejectNegative.
1290         (faligned-new=): Likewise.  Spelling fix - change
1291         aligned_new_threshhold to aligned_new_threshold.
1292         * c-cppbuiltin.c (c_cpp_builtins): Change aligned_new_threshhold
1293         to aligned_new_threshold.
1294
1295 2016-09-20  Martin Sebor  <msebor@redhat.com>
1296
1297         PR middle-end/49905
1298         * c.opt: Add -Wformat-length and -fprintf-return-value.
1299
1300 2016-09-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1301
1302         PR c++/77434
1303         * c.opt (Wint-in-bool-context): New warning.
1304         * c-common.c (c_common_truthvalue_conversion): Warn on integer
1305         constants in boolean context.
1306
1307 2016-09-19  Joseph Myers  <joseph@codesourcery.com>
1308
1309         * c-common.c (max_align_t_align): Also consider alignment of
1310         float128_type_node.
1311
1312 2016-09-15  Jason Merrill  <jason@redhat.com>
1313
1314         * c-common.c (check_cxx_fundamental_alignment_constraints): Check
1315         DECL_EXTERNAL.
1316
1317 2016-09-14  Jason Merrill  <jason@redhat.com>
1318
1319         * c-common.c (check_cxx_fundamental_alignment_constraints): Don't
1320         limit FIELD_DECL, either.
1321
1322 2016-09-14  Marek Polacek  <polacek@redhat.com>
1323
1324         * c-common.c (c_common_truthvalue_conversion): Use false instead of 0.
1325         * c-common.h (build_unary_op): Change nonconvert parameter type to bool.
1326         * c-omp.c (c_finish_omp_atomic): Use false instead of 0.
1327
1328 2016-09-13  David Malcolm  <dmalcolm@redhat.com>
1329
1330         * c-common.c (warn_logical_not_parentheses): Replace
1331         rich_location::add_fixit_insert calls with add_fixit_insert_before
1332         and add_fixit_insert_after, eliminating the "next_loc" calculation.
1333
1334 2016-09-13  Jason Merrill  <jason@redhat.com>
1335             Tom de Vries  <tom@codesourcery.com>
1336
1337         PR c++/77427
1338         * c-common.c (set_underlying_type): Don't treat array as builtin type.
1339
1340 2016-09-13  Jason Merrill  <jason@redhat.com>
1341
1342         * c-common.c (check_cxx_fundamental_alignment_constraints): Don't
1343         limit types at all.
1344
1345 2016-09-12  Jason Merrill  <jason@redhat.com>
1346
1347         * c-common.c (check_cxx_fundamental_alignment_constraints): Fix
1348         bit/byte confusion, allow large alignment for types.
1349
1350 2016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1351
1352         PR c++/77496
1353         * c-common.c (warn_for_omitted_condop): Also warn for boolean data.
1354
1355 2016-09-12  David Malcolm  <dmalcolm@redhat.com>
1356
1357         PR c/72858
1358         * c-format.c (argument_parser::check_argument_type): Add params
1359         "type_start" and "conversion_char".  Use the former to generate
1360         offset_to_type_start and pass it and conversion_char to
1361         check_format_types.
1362         (check_format_info_main): Capture the start of the type
1363         information as "type_start", and pass it an format_char
1364         to arg_parser.check_argument_type.
1365         (check_format_types): Provide an example in the leading comment.
1366         Add params "offset_to_type_start" and "conversion_char"; pass
1367         them to format_type_warning calls.
1368         (test_get_modifier_for_format_len): Likewise.
1369         (matching_type_p): New function.
1370         (get_format_for_type): Add param "conversion_char" and move
1371         implementation into...
1372         (get_format_for_type_1): ...new function, called twice.
1373         Use new function matching_type_p rather than checking for
1374         TYPE_CANONICAL equality.
1375         (get_corrected_substring): New function.
1376         (format_type_warning): Provide an example in the leading comment.
1377         Add params "offset_to_type_start" and "conversion_char".  Replace
1378         call to get_format_for_type with call to get_corrected_substring
1379         and move rejection of hints for widths/precisions there.
1380         (assert_format_for_type_streq): Add param "conversion_char".
1381         (ASSERT_FORMAT_FOR_TYPE_STREQ): Add param CONVERSION_CHAR.
1382         (test_get_format_for_type_printf): Add conversion chars to the
1383         tests, adding coverage for various combinations of integer
1384         vs double conversions, and for preserving octal and hexadecimal
1385         conversions.
1386         (test_get_format_for_type_scanf): Add conversion chars to the
1387         tests.
1388
1389 2016-09-10  Tom de Vries  <tom@codesourcery.com>
1390
1391         PR C/71602
1392         * c-common.c (build_va_arg): Handle more strict
1393         targetm.canonical_va_list_type.  Replace first argument type error with
1394         assert.
1395
1396 2016-09-09  Martin Sebor  <msebor@redhat.com>
1397
1398         PR c/77520
1399         PR c/77521
1400         * c-format.c (argument_parser::find_format_char_info): Use %qc
1401         format directive unconditionally.
1402
1403 2016-09-09  Jason Merrill  <jason@redhat.com>
1404
1405         Implement C++17 new of over-aligned types.
1406         * c.opt: Add -faligned-new and -Waligned-new.
1407         * c-common.c (max_align_t_align): Split out from...
1408         (cxx_fundamental_alignment_p): ...here.
1409         * c-common.h: Declare it.
1410         * c-cppbuiltin.c (c_cpp_builtins): Handle aligned new.
1411
1412 2016-09-09  Joseph Myers  <joseph@codesourcery.com>
1413
1414         * c-cppbuiltin.c (builtin_define_type_width): New function.
1415         (builtin_define_stdint_macros, c_cpp_builtins): Define type width
1416         macros.
1417
1418 2016-09-07  David Malcolm  <dmalcolm@redhat.com>
1419
1420         * c-common.c (get_cpp_ttype_from_string_type): Handle being passed
1421         a POINTER_TYPE.
1422         (substring_loc::get_location): Move to substring-locations.c,
1423         keeping implementation as...
1424         (c_get_substring_location): New function, from the above, reworked
1425         to use accessors rather than member lookup.
1426         * c-common.h (class substring_loc): Move to substring-locations.h,
1427         replacing with a forward decl.
1428         (c_get_substring_location): New decl.
1429         * c-format.c: Include "substring-locations.h".
1430         (format_warning_va): Move to substring-locations.c.
1431         (format_warning_at_substring): Likewise.
1432
1433 2016-09-06 Martin Sebor  <msebor@redhat.com>
1434
1435         PR c/77336
1436         * c-format.c (check_function_format): Avoid issuing warnings for
1437         functions unless they call format functions with non-constant
1438         format strings.
1439
1440 2016-09-06  Richard Biener  <rguenther@suse.de>
1441
1442         PR c/77450
1443         * c-common.c (c_common_mark_addressable_vec): Handle
1444         COMPOUND_LITERAL_EXPR.
1445
1446 2016-09-05  Marek Polacek  <polacek@redhat.com>
1447
1448         PR c/77423
1449         * c-common.c (bool_promoted_to_int_p): New function.
1450         (expr_has_boolean_operands_p): New function.
1451         (warn_logical_not_parentheses): Return if expr_has_boolean_operands_p.
1452         (maybe_warn_bool_compare): Use bool_promoted_to_int_p.
1453
1454 2016-09-04  Tom de Vries  <tom@codesourcery.com>
1455
1456         revert:
1457         2016-08-29  Tom de Vries  <tom@codesourcery.com>
1458
1459         * c-common.c (build_va_arg): Replace first argument type error
1460         with assert.
1461
1462 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
1463
1464         PR c/65467
1465         * c-omp.c (c_finish_omp_atomic): Reject _Atomic qualified expressions.
1466         (c_finish_omp_for): Reject _Atomic qualified iterators.
1467
1468 2016-09-01  Martin Sebor  <msebor@redhat.com>
1469
1470         * c-ada-spec.c (dump_ada_function_declaration): Increase buffer
1471         size to guarantee it fits the output of the formatted function
1472         regardless of its arguments.
1473
1474 2016-09-01  Marek Polacek  <polacek@redhat.com>
1475
1476         PR c/7652
1477         * c-common.c (resolve_overloaded_builtin): Fix formatting.  Add
1478         FALLTHRU comments.
1479
1480 2016-08-29  Marek Polacek  <polacek@redhat.com>
1481
1482         PR c/77292
1483         * c-common.c (warn_logical_not_parentheses): Don't warn for
1484         a comparison or a logical operator.
1485
1486 2016-08-29  Tom de Vries  <tom@codesourcery.com>
1487
1488         * c-common.c (build_va_arg): Fix type comparison assert.
1489
1490 2016-08-29  Tom de Vries  <tom@codesourcery.com>
1491
1492         * c-common.c (build_va_arg): Replace first argument type error
1493         with assert.
1494
1495 2016-08-29  Tom de Vries  <tom@codesourcery.com>
1496
1497         PR c/77398
1498         * c-common.c (build_va_arg): Add first argument error.  Build va_arg
1499         with error_mark_node as va_list instead of with illegal va_list.
1500
1501 2016-08-25  Marek Polacek  <polacek@redhat.com>
1502             David Malcolm  <dmalcolm@redhat.com>
1503
1504         * c-common.c (warn_logical_not_parentheses): Print fixit hints.
1505         * c-common.h (warn_logical_not_parentheses): Update declaration.
1506
1507 2016-08-22  Marek Polacek  <polacek@redhat.com>
1508
1509         PR c++/77321
1510         * c-common.c (warn_for_memset): Check type for null.
1511
1512 2016-08-22  Joseph Myers  <joseph@codesourcery.com>
1513
1514         * c-family/c-cppbuiltin.c (c_cpp_builtins): Check _FloatN and
1515         _FloatNx types for suffixes for built-in functions.
1516
1517 2016-08-19  Joseph Myers  <joseph@codesourcery.com>
1518
1519         PR c/32187
1520         * c-common.h (RID_FLOAT16, RID_FLOATN_NX_FIRST, RID_FLOAT32)
1521         (RID_FLOAT64, RID_FLOAT128, RID_FLOAT32X, RID_FLOAT64X)
1522         (RID_FLOAT128X): New enum rid values.
1523         (CASE_RID_FLOATN_NX): New macro.
1524         * c-common.c (c_common_reswords): Add _FloatN and _FloatNx
1525         keywords.
1526         (c_common_type_for_mode): Check for _FloatN and _FloatNx and
1527         corresponding complex types.
1528         (c_common_nodes_and_builtins): For non-C++, register _FloatN and
1529         _FloatNx and corresponding complex types.
1530         (keyword_begins_type_specifier): Use CASE_RID_FLOATN_NX.
1531         * c-cppbuiltin.c (builtin_define_float_constants): Check _FloatN
1532         and _FloatNx types for the widest type for determining
1533         DECIMAL_DIG.  Define __LDBL_DECIMAL_DIG__ as well as
1534         __DECIMAL_DIG__ for long double.  Handle FMA_SUFFIX being NULL.
1535         (c_cpp_builtins): Call builtin_define_float_constants for _FloatN
1536         and _FloatNx types.
1537         * c-lex.c (interpret_float): Handle _FloatN and _FloatNx
1538         constants.
1539         * c-pretty-print.c (pp_c_floating_constant): Handle _FloatN and
1540         _FloatNx types.
1541
1542 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
1543
1544         * c-opts.c (c_diagnostic_finalizer): Update for change to
1545         diagnostic_show_locus.
1546
1547 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
1548
1549         * c-common.c: Include "spellcheck.h".
1550         (cb_get_suggestion): New function.
1551         * c-common.h (cb_get_suggestion): New decl.
1552         * c-lex.c (init_c_lex): Initialize cb->get_suggestion to
1553         cb_get_suggestion.
1554
1555 2016-08-18  Marek Polacek  <polacek@redhat.com>
1556
1557         PR c/71514
1558         * c-common.c (get_atomic_generic_size): Disallow pointer-to-function
1559         and pointer-to-VLA.
1560
1561 2016-08-16  David Malcolm  <dmalcolm@redhat.com>
1562
1563         PR c/72857
1564         * c-common.c (substring_loc::get_range): Rename to...
1565         (substring_loc::get_location): ...this, converting param from a
1566         source_range * to a location_t *.  Call
1567         get_source_location_for_substring rather than
1568         get_source_range_for_substring, and pass in m_caret_idx.
1569         * c-common.h (substring_loc::substring_loc): Add param "caret_idx".
1570         (substring_loc::get_range): Replace with...
1571         (substring_loc::get_location): ...this.
1572         (substring_loc::set_caret_index): New method.
1573         (substring_loc): Add field m_caret_idx.
1574         * c-format.c (format_warning_va): Update for above changes.
1575         Rename local "substring_loc" to "fmt_substring_loc" to avoid
1576         clashing with type name.
1577         (format_warning_at_char): Add caret_idx param to substring_loc ctor.
1578         (check_argument_type): Likewise.
1579         (format_type_warning): Rename param "fmt_loc" to "whole_fmt_loc"
1580         Use a copy when emitting warnings, setting the caret index from TYPE.
1581
1582 2016-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1583             Arnaud Charlet  <charlet@adacore.com>
1584
1585         * c-ada-spec.c (dump_number): New function.
1586         (handle_escape_character): Likewise.
1587         (print_ada_macros): Add handling of constant integers and strings.
1588
1589 2016-08-12  Marek Polacek  <polacek@redhat.com>
1590
1591         PR c/7652
1592         * c-common.c (scalar_to_vector): Adjust fall through comment.
1593         * c-opts.c (c_common_handle_option): Likewise.
1594         * c-pragma.c (handle_pragma_pack): Add FALLTHRU.
1595         * c-pretty-print.c (c_pretty_printer::postfix_expression): Adjust
1596         fall through comment.
1597         * cilk.c (extract_free_variables): Add FALLTHRU.
1598
1599 2016-08-10  Jason Merrill  <jason@redhat.com>
1600
1601         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.
1602
1603 2016-08-09  Jason Merrill  <jason@redhat.com>
1604
1605         * c-common.c (c_common_attribute_table): vector_size affects type
1606         identity.
1607
1608 2016-08-09  Marek Polacek  <polacek@redhat.com>
1609
1610         PR c/7652
1611         * c-ada-spec.c (dump_generic_ada_node): Add return.
1612
1613 2016-08-09  Jason Merrill  <jason@redhat.com>
1614
1615         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_constexpr for
1616         C++17 constexpr lambdas.
1617
1618 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
1619
1620         PR c/64955
1621         * c-common.h (selftest::c_format_c_tests): New declaration.
1622         (selftest::run_c_tests): New declaration.
1623         * c-format.c: Include "selftest.h.
1624         (format_warning_va): Add param "corrected_substring" and use
1625         it to add a replacement fix-it hint.
1626         (format_warning_at_substring): Likewise.
1627         (format_warning_at_char): Update for new param of
1628         format_warning_va.
1629         (argument_parser::check_argument_type): Pass "fki" to
1630         check_format_types.
1631         (check_format_types): Add param "fki" and pass it to
1632         format_type_warning.
1633         (deref_n_times): New function.
1634         (get_modifier_for_format_len): New function.
1635         (selftest::test_get_modifier_for_format_len): New function.
1636         (get_format_for_type): New function.
1637         (format_type_warning): Add param "fki" and use it to attempt
1638         to provide hints for argument types when calling
1639         format_warning_at_substring.
1640         (selftest::get_info): New function.
1641         (selftest::assert_format_for_type_streq): New function.
1642         (ASSERT_FORMAT_FOR_TYPE_STREQ): New macro.
1643         (selftest::test_get_format_for_type_printf): New function.
1644         (selftest::test_get_format_for_type_scanf): New function.
1645         (selftest::c_format_c_tests): New function.
1646
1647 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
1648
1649         PR c/52952
1650         * c-format.c: Include "diagnostic.h".
1651         (location_column_from_byte_offset): Delete.
1652         (location_from_offset): Delete.
1653         (format_warning_va): New function.
1654         (format_warning_at_substring): New function.
1655         (format_warning_at_char): New function.
1656         (check_format_arg): Capture location of format_tree and pass to
1657         check_format_info_main.
1658         (argument_parser): Add fields "start_of_this_format" and
1659         "format_string_cst".
1660         (flag_chars_t::validate): Add param "format_string_cst".  Convert
1661         warning_at call using location_from_offset to call to
1662         format_warning_at_char.
1663         (argument_parser::argument_parser): Add param "format_string_cst_"
1664         and use use it to initialize field "format_string_cst".
1665         Initialize new field "start_of_this_format".
1666         (argument_parser::read_format_flags): Convert warning_at call
1667         using location_from_offset to a call to format_warning_at_char.
1668         (argument_parser::read_any_format_left_precision): Likewise.
1669         (argument_parser::read_any_format_precision): Likewise.
1670         (argument_parser::read_any_other_modifier): Likewise.
1671         (argument_parser::find_format_char_info): Likewise, in three places.
1672         (argument_parser::parse_any_scan_set): Likewise, in one place.
1673         (argument_parser::handle_conversions): Likewise, in two places.
1674         (argument_parser::check_argument_type): Add param "fmt_param_loc"
1675         and use it to make a substring_loc.  Pass the latter to
1676         check_format_types.
1677         (check_format_info_main): Add params "fmt_param_loc" and
1678         "format_string_cst".  Convert warning_at calls using
1679         location_from_offset to calls to format_warning_at_char.  Pass the
1680         new params to the arg_parser ctor.  Pass "format_string_cst" to
1681         flag_chars.validate.  Pass "fmt_param_loc" to
1682         arg_parser.check_argument_type.
1683         (check_format_types): Convert first param from a location_t
1684         to a const substring_loc & and rename to "fmt_loc".  Attempt
1685         to extract the range of the relevant parameter and pass it
1686         to format_type_warning.
1687         (format_type_warning): Convert first param from a location_t
1688         to a const substring_loc & and rename to "fmt_loc".  Add
1689         params "param_range" and "type".  Replace calls to warning_at
1690         with calls to format_warning_at_substring.
1691
1692 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
1693
1694         * c-format.c (class flag_chars_t): New class.
1695         (struct length_modifier): New struct.
1696         (class argument_parser): New class.
1697         (flag_chars_t::flag_chars_t): New ctor.
1698         (flag_chars_t::has_char_p): New method.
1699         (flag_chars_t::add_char): New method.
1700         (flag_chars_t::validate): New method.
1701         (flag_chars_t::get_alloc_flag): New method.
1702         (flag_chars_t::assignment_suppression_p): New method.
1703         (argument_parser::argument_parser): New ctor.
1704         (argument_parser::read_any_dollar): New method.
1705         (argument_parser::read_format_flags): New method.
1706         (argument_parser::read_any_format_width): New method.
1707         (argument_parser::read_any_format_left_precision): New method.
1708         (argument_parser::read_any_format_precision): New method.
1709         (argument_parser::handle_alloc_chars): New method.
1710         (argument_parser::read_any_length_modifier): New method.
1711         (argument_parser::read_any_other_modifier): New method.
1712         (argument_parser::find_format_char_info): New method.
1713         (argument_parser::validate_flag_pairs): New method.
1714         (argument_parser::give_y2k_warnings): New method.
1715         (argument_parser::parse_any_scan_set): New method.
1716         (argument_parser::handle_conversions): New method.
1717         (argument_parser::check_argument_type): New method.
1718         (check_format_info_main): Introduce classes argument_parser
1719         and flag_chars_t, moving the code within the loop into methods
1720         of these classes.  Make various locals "const".
1721
1722 2016-08-05  David Malcolm  <dmalcolm@redhat.com>
1723
1724         * c-common.c: Include "substring-locations.h".
1725         (get_cpp_ttype_from_string_type): New function.
1726         (g_string_concat_db): New global.
1727         (substring_loc::get_range): New method.
1728         * c-common.h (g_string_concat_db): New declaration.
1729         (class substring_loc): New class.
1730         * c-lex.c (lex_string): When concatenating strings, capture the
1731         locations of all tokens using a new obstack, and record the
1732         concatenation locations within g_string_concat_db.
1733         * c-opts.c (c_common_init_options): Construct g_string_concat_db
1734         on the ggc-heap.
1735
1736 2016-07-29  Marek Polacek  <polacek@redhat.com>
1737
1738         PR c/71926
1739         * c-common.c (c_common_truthvalue_conversion): Use LOCATION for the
1740         parentheses warning.
1741
1742         PR c/71574
1743         * c-common.c (handle_alloc_align_attribute): Also check FUNCTION_DECL.
1744
1745 2016-07-28  Martin Liska  <mliska@suse.cz>
1746
1747         PR gcov-profile/68025
1748         * c-common.c (handle_no_profile_instrument_function_attribute):
1749
1750 2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1751
1752         * c-common.c (check_user_alignment): Use LOG2_BITS_PER_UNIT instead of
1753         BITS_PER_UNIT_LOG.
1754
1755 2016-07-25  Jason Merrill  <jason@redhat.com>
1756
1757         PR c++/65970
1758         * c.opt (fconstexpr-loop-limit): New.
1759
1760 2016-07-22  Martin Sebor  <msebor@redhat.com>
1761
1762         PR c++/71675
1763         * c-common.c (resolve_overloaded_builtin): Avoid converting
1764         __atomic_compare_exchange_n return type to that of what its
1765         first argument points to.
1766
1767 2016-07-22  Uros Bizjak  <ubizjak@gmail.com>
1768
1769         * c-common.c: Use HOST_WIDE_INT_M1U instead of
1770         ~(unsigned HOST_WIDE_INT) 0.
1771
1772 2016-07-22  Martin Liska  <mliska@suse.cz>
1773
1774         PR gcov-profile/69028
1775         PR gcov-profile/62047
1776         * cilk.c (create_cilk_helper_decl): Set location of a new decl
1777         to the current_function_decl.
1778
1779 2016-07-21  Jason Merrill  <jason@redhat.com>
1780
1781         PR c++/65168
1782         * c-common.c (c_common_truthvalue_conversion): Check
1783         c_inhibit_evaluation_warnings for warning about address of
1784         reference.
1785
1786 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
1787
1788         * c-common.h (lookup_name_fuzzy): Convert return type from tree to
1789         const char *.
1790
1791 2016-07-15  Jason Merrill  <jason@redhat.com>
1792
1793         * c-opts.c (c_common_post_options): Update -fabi-version default to 11.
1794
1795 2016-07-15  Jakub Jelinek  <jakub@redhat.com>
1796
1797         PR c/71858
1798         * c-common.h (enum lookup_name_fuzzy_kind): Add
1799         FUZZY_LOOKUP_FUNCTION_NAME.
1800
1801 2016-07-08  Jason Merrill  <jason@redhat.com>
1802
1803         P0145: Refining Expression Order for C++.
1804         * c.opts (-fargs-in-order): Rename to -fstrong-eval-order.
1805         * c-opts.c: Adjust.
1806
1807 2016-07-05  Markus Trippelsdorf  <markus@trippelsdorf.de>
1808
1809         PR c++/71214
1810         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_rvalue_references.
1811
1812 2016-06-29  Thomas Schwinge  <thomas@codesourcery.com>
1813
1814         * c-pragma.h (enum pragma_kind): Rename
1815         PRAGMA_OMP_DECLARE_REDUCTION to PRAGMA_OMP_DECLARE.  Adjust all
1816         users.
1817
1818 2016-06-29  Richard Biener  <rguenther@suse.de>
1819
1820         PR middle-end/71002
1821         * c-common.c (c_common_get_alias_set): Remove union type punning case.
1822
1823 2016-06-24  Jason Merrill  <jason@redhat.com>
1824
1825         P0145R2: Refining Expression Order for C++.
1826         * c-common.c (verify_tree) [COMPOUND_EXPR]: Fix handling on LHS of
1827         MODIFY_EXPR.
1828
1829 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1830
1831         * c-common.c (check_builtin_function_arguments): Require last
1832         argument of BUILT_IN_*_OVERFLOW_P to have INTEGER_TYPE type.
1833         Adjust wording of diagnostics for BUILT_IN_*_OVERLFLOW
1834         if the last argument is pointer to enumerated or boolean type.
1835
1836 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
1837
1838         PR c/70339
1839         * c-common.h (enum lookup_name_fuzzy_kind): New enum.
1840         (lookup_name_fuzzy): New prototype.
1841
1842 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
1843
1844         * c-common.c (get_source_date_epoch): Use int64_t instead of long long.
1845
1846 2016-06-14  Jason Merrill  <jason@redhat.com>
1847
1848         P0145R2: Refining Expression Order for C++.
1849         * c.opt (fargs-in-order): New.
1850         * c-opts.c (c_common_post_options): Adjust flag_args_in_order.
1851
1852 2016-06-13  Jakub Jelinek  <jakub@redhat.com>
1853
1854         PR sanitizer/71498
1855         * c-gimplify.c (ubsan_walk_array_refs_r): Set *walk_subtrees = 0 on
1856         all BIND_EXPRs, and on all BIND_EXPRs recurse also on BIND_EXPR_BODY.
1857
1858         PR preprocessor/71183
1859         * c-ppoutput.c (init_pp_output): Set cb->get_source_date_epoch
1860         to cb_get_source_date_epoch.
1861
1862 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
1863
1864         PR c/68657
1865         * c.opt (Wpsabi): Add Warning flag.
1866
1867 2016-06-10  Martin Sebor  <msebor@redhat.com>
1868
1869         PR c/71392
1870         * gcc/c-family/c-common.c (handle_nonnull_attribute): Accept
1871         the nonnull attribute in type-generic builtins.
1872
1873 2016-06-09  Martin Sebor  <msebor@redhat.com>
1874
1875         PR c/70883
1876         * c-common.c (builtin_function_validate_nargs): Make text of error
1877         message consistent with others like it.
1878
1879 2016-06-08  Martin Sebor  <msebor@redhat.com>
1880             Jakub Jelinek  <jakub@redhat.com>
1881
1882         PR c++/70507
1883         PR c/68120
1884         * c-common.c (check_builtin_function_arguments): Handle
1885         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
1886
1887 2016-06-08  Richard Biener  <rguenther@suse.de>
1888
1889         * c-common.c (parse_optimize_options): Improve diagnostic messages.
1890
1891 2016-06-07  Richard Biener  <rguenther@suse.de>
1892
1893         PR c/61564
1894         * c-common.c (parse_optimize_options): Only apply CL_OPTIMIZATION
1895         options and warn about others.
1896
1897 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
1898
1899         * c-common.c (get_source_date_epoch): Rename to
1900         cb_get_source_date_epoch.
1901         * c-common.c (cb_get_source_date_epoch): Use a single generic erorr
1902         message when the parsing fails.  Use error_at instead of fatal_error.
1903         * c-common.h (get_source_date_epoch): Rename to
1904         cb_get_source_date_epoch.
1905         * c-common.h (cb_get_source_date_epoch): Prototype.
1906         * c-common.h (MAX_SOURCE_DATE_EPOCH): Define.
1907         * c-common.h (c_omp_region_type): Remove trailing comma.
1908         * c-lex.c (init_c_lex): Set cb->get_source_date_epoch callback.
1909         * c-lex.c (c_lex_with_flags): Remove initialization of
1910         pfile->source_date_epoch.
1911
1912 2016-05-30  Jakub Jelinek  <jakub@redhat.com>
1913
1914         PR c++/71349
1915         * c-omp.c (c_omp_split_clauses): Put OMP_CLAUSE_DEPEND to
1916         C_OMP_CLAUSE_SPLIT_TARGET.  Put OMP_CLAUSE_NOWAIT to
1917         C_OMP_CLAUSE_SPLIT_TARGET if combined with target construct,
1918         instead of C_OMP_CLAUSE_SPLIT_FOR.
1919
1920 2016-05-24  Richard Biener  <rguenther@suse.de>
1921
1922         PR middle-end/70434
1923         PR c/69504
1924         * c-common.h (convert_vector_to_pointer_for_subscript): Rename to ...
1925         (convert_vector_to_array_for_subscript): ... this.
1926         * c-common.c (convert_vector_to_pointer_for_subscript): Use a
1927         VIEW_CONVERT_EXPR to an array type.  Rename to ...
1928         (convert_vector_to_array_for_subscript): ... this.
1929
1930 2016-05-12  Marek Polacek  <polacek@redhat.com>
1931
1932         PR c/70756
1933         * c-common.c (pointer_int_sum): Call size_in_bytes_loc instead of
1934         size_in_bytes and pass LOC to it.
1935
1936 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
1937
1938         PR c/43651
1939         * c.opt (Wduplicate-decl-specifier): New option.
1940
1941 2016-05-11  Marek Polacek  <polacek@redhat.com>
1942
1943         PR c++/71024
1944         * c-common.c (diagnose_mismatched_attributes): New function.
1945         * c-common.h (diagnose_mismatched_attributes): Declare.
1946
1947 2016-05-04  Marek Polacek  <polacek@redhat.com>
1948
1949         * c.opt (Wdangling-else): New option.
1950
1951 2016-05-03  Marek Polacek  <polacek@redhat.com>
1952
1953         PR c/70859
1954         * c-common.c (builtin_function_validate_nargs): Add location
1955         parameter.  Use it.
1956         (check_builtin_function_arguments): Add location and arguments
1957         parameters.  Use them.
1958         * c-common.h (check_builtin_function_arguments): Update declaration.
1959
1960 2016-05-03  Richard Biener  <rguenther@suse.de>
1961
1962         * cilk.c (cilk_gimplify_call_params_in_spawned_fn): Do not
1963         allow call args to gimplify to SSA names.
1964
1965 2016-05-03  Marek Polacek  <polacek@redhat.com>
1966
1967         * c-common.h (enum c_omp_region_type): Remove stray comma.
1968
1969 2016-05-02  Cesar Philippidis  <cesar@codesourcery.com>
1970
1971         * c-common.h (enum c_omp_region_type): Define.
1972
1973 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
1974
1975         * c-common.c (shorten_compare): Use wi::to_wide.
1976
1977 2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>
1978
1979         PR middle-end/70626
1980         * c-common.h (c_oacc_split_loop_clauses): Add boolean argument.
1981         * c-omp.c (c_oacc_split_loop_clauses): Use it to duplicate
1982         reduction clauses in acc parallel loops.
1983
1984 2016-04-29  Marek Polacek  <polacek@redhat.com>
1985
1986         PR c/70852
1987         * c-common.c (warn_for_memset): Check domain before accessing it.
1988
1989 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1990
1991         PR/69089
1992         * c-common.c (handle_aligned_attribute): Allow 0 as an argument to the
1993         "aligned" attribute.
1994
1995 2016-04-28  Jason Merrill  <jason@redhat.com>
1996
1997         * c-lex.c (c_common_has_attribute): Handle nodiscard.
1998
1999 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
2000             Matthias Klose  <doko@debian.org>
2001
2002         * c-common.c (get_source_date_epoch): New function, gets the environment
2003         variable SOURCE_DATE_EPOCH and parses it as long long with error 
2004         handling.
2005         * c-common.h (get_source_date_epoch): Prototype.
2006         * c-lex.c (c_lex_with_flags): set parse_in->source_date_epoch.
2007
2008 2015-04-27  Ryan Burn  <contact@rnburn.com>
2009
2010         PR c++/69024
2011         PR c++/68997
2012         * cilk.c (cilk_ignorable_spawn_rhs_op): Change to external linkage.
2013         (cilk_recognize_spawn): Renamed from recognize_spawn and change to
2014         external linkage.
2015         (cilk_detect_and_unwrap): Corresponding changes.
2016         (extract_free_variables): Don't extract free variables from
2017         AGGR_INIT_EXPR slot.
2018         * c-common.h (cilk_ignorable_spawn_rhs_op): Prototype.
2019         (cilk_recognize_spawn): Likewise.
2020
2021 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
2022
2023         * c.opt (Wmemset-elt-size): New option.
2024         * c-common.c (warn_for_memset): New function.
2025         * c-common.h (warn_for_memset): Declare.
2026
2027 2016-04-25  Jason Merrill  <jason@redhat.com>
2028
2029         * c-common.c (handle_unused_attribute): Accept CONST_DECL.
2030         No longer static.
2031         * c-common.h: Declare it.
2032         * c-lex.c (c_common_has_attribute): Add maybe_unused.
2033
2034 2016-04-22  Jason Merrill  <jason@redhat.com>
2035
2036         * c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_range_based_for.
2037
2038 2016-04-20  Ilya Verbin  <ilya.verbin@intel.com>
2039
2040         PR c++/69363
2041         * c-cilkplus.c (c_finish_cilk_clauses): Remove function.
2042         * c-common.h (c_finish_cilk_clauses): Remove declaration.
2043
2044 2016-04-18  Michael Matz  <matz@suse.de>
2045
2046         * c-common.c (handle_aligned_attribute): Use SET_TYPE_ALIGN
2047         and SET_DECL_ALIGN.
2048
2049 2016-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2050
2051         * c-ada-spec.c (get_underlying_decl): Return the typedef, if any.
2052         (dump_generic_ada_node) <POINTER_TYPE>: Clean up handling of access
2053         to incomplete types.
2054         (dump_nested_type): Remove redundant tests and tidy up.
2055         (print_ada_declaration): Also set TREE_VISITED on the declaration of
2056         a type which is the typedef of an original type.
2057
2058 2016-04-15  Marek Polacek  <polacek@redhat.com>
2059
2060         PR c/70651
2061         * c-common.c (build_va_arg): Change two asserts into errors and return
2062         error_mark_node.
2063
2064 2016-04-13  Marek Polacek  <polacek@redhat.com>
2065
2066         PR c++/70639
2067         * c-indentation.c (should_warn_for_misleading_indentation): Bail out
2068         for switch statements, too.
2069
2070 2016-03-28  Jason Merrill  <jason@redhat.com>
2071
2072         * c-cppbuiltin.c (c_cpp_builtins): Update __cpp_range_based_for.
2073
2074 2016-03-23  Marek Polacek  <polacek@redhat.com>
2075
2076         PR c++/69884
2077         * c.opt (Wignored-attributes): New option.
2078
2079 2016-03-22  David Malcolm  <dmalcolm@redhat.com>
2080
2081         PR c/69993
2082         * c-indentation.c (warn_for_misleading_indentation): Rewrite the
2083         diagnostic text, reversing the order of the warning and note so
2084         that they appear in source order.
2085
2086 2016-03-17  Marek Polacek  <polacek@redhat.com>
2087
2088         PR c/69407
2089         * c-common.c (resolve_overloaded_builtin): Set TREE_USED for the fetch
2090         operations.
2091
2092 2016-03-14  Jason Merrill  <jason@redhat.com>
2093
2094         * c-cppbuiltin.c (c_cpp_builtins): Set __cpp_hex_float.
2095
2096         * c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_range_based_for.
2097
2098 2016-03-09  Richard Biener  <rguenther@suse.de>
2099
2100         PR c/70143
2101         * c-common.c (strict_aliasing_warning): Add back
2102         alias_sets_conflict_p check.
2103
2104 2016-03-08  Jason Merrill  <jason@redhat.com>
2105
2106         * c-opts.c (set_std_cxx1z): Don't enable concepts.
2107
2108 2016-03-04  David Malcolm  <dmalcolm@redhat.com>
2109
2110         PR c/68187
2111         * c-indentation.c (get_visual_column): Move code to determine next
2112         tab stop to...
2113         (next_tab_stop): ...this new function.
2114         (line_contains_hash_if): Delete function.
2115         (detect_preprocessor_logic): Delete function.
2116         (get_first_nws_vis_column): New function.
2117         (detect_intervening_unindent): New function.
2118         (should_warn_for_misleading_indentation): Replace call to
2119         detect_preprocessor_logic with a call to
2120         detect_intervening_unindent.
2121
2122 2016-03-04  David Malcolm  <dmalcolm@redhat.com>
2123
2124         PR c/68187
2125         * c-indentation.c (should_warn_for_misleading_indentation): When
2126         suppressing warnings about cases where the guard and body are on
2127         the same column, only use the first non-whitespace column in place
2128         of the guard token column when dealing with "else" clauses.
2129         When rejecting aligned BODY and NEXT, loosen the requirement
2130         from equality with the first non-whitespace of guard to simply
2131         that they not be indented relative to it.
2132
2133 2016-03-04  Richard Biener  <rguenther@suse.de>
2134
2135         PR c++/70054
2136         * c-common.c (strict_aliasing_warning): Use alias_set_subset_of
2137         instead of alias_sets_conflict_p.
2138
2139 2016-03-01  Marek Polacek  <polacek@redhat.com>
2140
2141         PR c++/69795
2142         * c-common.c (reject_gcc_builtin): Check for FUNCTION_DECL rather than
2143         any DECL.
2144
2145 2016-02-22  Martin Sebor  <msebor@redhat.com>
2146
2147         PR middle-end/69780
2148         * c-common.c (check_builtin_function_arguments): Validate and
2149         reject invalid arguments to __builtin_alloca_with_align.
2150
2151 2016-02-20  Mark Wielaard  <mjw@redhat.com>
2152
2153         PR c/28901
2154         * c.opt (Wunused-const-variable): Turn into Alias for...
2155         (Wunused-const-variable=): New option.
2156
2157 2016-02-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2158
2159         PR c++/69865
2160         * c-opts.c (c_common_post_options): Move call to set_std_cxx14 from
2161         here...
2162         (c_common_init_options): ...to here.
2163         (set_std_cxx98): Initialize flag_isoc94 and flag_isoc99.
2164
2165 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
2166
2167         PR c++/69826
2168         * c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_GRAINSIZE.
2169         (init_pragma): Register PRAGMA_CILK_GRAINSIZE even for
2170         flag_preprocess_only.
2171
2172 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
2173
2174         PR c/69835
2175         * c.opt (Wnonnull-compare): Enable for -Wall.
2176
2177 2016-02-15  Jakub Jelinek  <jakub@redhat.com>
2178
2179         PR c++/69797
2180         * c-common.c (sync_resolve_size): Diagnose too few arguments
2181         even when params is non-NULL empty vector.
2182
2183 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
2184
2185         PR target/60410
2186         * c.opt (fshort-double): Remove.
2187
2188 2016-02-05  Martin Sebor  <msebor@redhat.com>
2189
2190         PR c++/69662
2191         * c.opt (Warning options): Update -Wplacement-new to take
2192         an optional argument.
2193
2194 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
2195
2196         PR preprocessor/69543
2197         PR c/69558
2198         * c-pragma.c (handle_pragma_diagnostic): Pass input_location
2199         instead of loc to control_warning_option.
2200
2201 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
2202
2203         * c.opt (fopenacc-dim=): New option.
2204
2205 2016-01-27  Ryan Burn  <contact@rnburn.com>
2206
2207         PR cilkplus/69267
2208         * cilk.c (cilk_gimplify_call_params_in_spawned_fn): Change to use
2209         gimplify_arg. Removed superfluous post_p argument.
2210         * c-family.h (cilk_gimplify_call_params_in_spawned_fn): Removed
2211         superfluous post_p argument.
2212         * c-gimplify.c (c_gimplify_expr): Likewise.
2213
2214 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
2215
2216         PR other/69006
2217         * c-opts.c (c_diagnostic_finalizer): Replace invocation of
2218         pp_newline_and_flush with pp_flush.
2219
2220 2016-01-20  Martin Sebor  <msebor@redhat.com>
2221
2222         PR c/69405
2223         * c-common.c (sync_resolve_size): Avoid printing diagnostic about
2224         an incompatible argument when the argument isn't a valid tree node.
2225
2226 2016-01-18  Jason Merrill  <jason@redhat.com>
2227
2228         PR c++/68767
2229         * c-common.c (check_function_arguments_recurse): Fold the whole
2230         COND_EXPR, not just the condition.
2231
2232 2016-01-18  Tom de Vries  <tom@codesourcery.com>
2233
2234         * c-omp.c (c_oacc_split_loop_clauses): Don't copy OMP_CLAUSE_REDUCTION,
2235         classify as loop clause.
2236
2237 2016-01-15  Jakub Jelinek  <jakub@redhat.com>
2238
2239         PR bootstrap/68271
2240         * c-pragma.c (c_register_pragma_1): Adjust comment to note that
2241         C++ FE no longer has limit on number of pragmas.
2242
2243 2015-01-14  Ryan Burn  <contact@rnburn.com>
2244
2245         PR c++/69048
2246         * cilk.c (create_cilk_wrapper_body): Call fold_build_cleanup_point_expr
2247         to add missing cleanup point.
2248
2249 2016-01-14  David Malcolm  <dmalcolm@redhat.com>
2250
2251         PR c++/68819
2252         * c-indentation.c (get_visual_column): Add location_t param.
2253         Handle the column number being zero by effectively disabling the
2254         warning, with an "inform".
2255         (should_warn_for_misleading_indentation): Add location_t argument
2256         for all uses of get_visual_column.
2257
2258 2016-01-10  Patrick Palka  <ppalka@gcc.gnu.org>
2259
2260         PR c++/69029
2261         * c-indentation.c (should_warn_for_misleading_indentation):
2262         Don't warn about do-while statements.
2263
2264 2016-01-07  Martin Sebor  <msebor@redhat.com>
2265
2266         PR c/68966
2267         * c-common.c (sync_resolve_size): Reject first argument when it's
2268         a pointer to _Bool.
2269
2270 2016-01-05  David Malcolm  <dmalcolm@redhat.com>
2271
2272         PR c/69122
2273         * c-indentation.c (get_visual_column): Remove default argument.
2274         (should_warn_for_misleading_indentation): For the multiline case,
2275         update call to get_visual_column for next_stmt_exploc so that it
2276         captures the location of the first non-whitespace character in the
2277         relevant line.  Don't issue warnings if there is non-whitespace
2278         before the next statement.
2279
2280 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
2281
2282         Update copyright years.
2283
2284 2015-12-21  David Malcolm  <dmalcolm@redhat.com>
2285
2286         * c-common.c (binary_op_error): Convert first param from
2287         location_t to rich_location * and use it when emitting an error.
2288         * c-common.h (binary_op_error): Convert first param from
2289         location_t to rich_location *.
2290
2291 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
2292
2293         * c-common.h (conflict_marker_get_final_tok_kind): New prototype.
2294         * c-lex.c (conflict_marker_get_final_tok_kind): New function.
2295
2296 2015-12-15  Ilya Verbin  <ilya.verbin@intel.com>
2297
2298         * c-common.c (c_common_attribute_table): Handle "omp declare target
2299         link" attribute.
2300
2301 2015-12-14  Jakub Jelinek  <jakub@redhat.com>
2302
2303         PR c/68833
2304         * c.opt (Wmissing-format-attribute, Wnormalized): Add Warning option.
2305
2306 2014-12-12  Tobias Burnus  <burnus@net-b.de>
2307
2308         PR fortran/68815
2309         * c-format.c (gcc_gfc_char_table): Add 'q' flag to remaining
2310         specifiers (%d, %i,%u and %c).
2311
2312 2015-12-10  David Malcolm  <dmalcolm@redhat.com>
2313
2314         * c.opt (Wmisleading-indentation): Add to -Wall for C and C++.
2315
2316 2015-12-08  Jakub Jelinek  <jakub@redhat.com>
2317
2318         PR c/48088
2319         PR c/68657
2320         * c.opt (Wfloat-conversion, Wsign-conversion): Add Warning.
2321         * c-pragma.c (handle_pragma_diagnostic): Adjust
2322         control_warning_option caller.
2323
2324 2015-12-07  David Malcolm  <dmalcolm@redhat.com>
2325
2326         * c-common.c (c_cpp_error): Update for change to
2327         rich_location::set_range.
2328
2329 2015-12-04  Paolo Bonzini  <bonzini@gnu.org>
2330
2331         * c-common.c (maybe_warn_shift_overflow): Warn on all overflows if
2332         shifting 1 out of the sign bit.
2333
2334 2015-12-04  Kirill Yukhin  <kirill.yukhin@intel.com>
2335
2336         * c-common.c (c_common_attribute_table[]): Update max arguments
2337         count for "simd" attribute.
2338         (handle_simd_attribute): Parse "notinbranch" and "inbranch" arguments.
2339
2340 2015-12-03  Jakub Jelinek  <jakub@redhat.com>
2341
2342         PR preprocessor/57580
2343         * c-ppoutput.c (print): Change printed field to bool.
2344         Move src_file last for smaller padding.
2345         (init_pp_output): Set print.printed to false instead of 0.
2346         (scan_translation_unit): Fix up formatting.  Set print.printed
2347         to true after printing something other than newline.
2348         (scan_translation_unit_trad): Set print.printed to true instead of 1.
2349         (maybe_print_line_1): Set print.printed to false instead of 0.
2350         (print_line_1): Likewise.
2351         (do_line_change): Set print.printed to true instead of 1.
2352         (cb_define, dump_queued_macros, cb_include, cb_def_pragma,
2353         dump_macro): Set print.printed to false after printing newline.
2354
2355 2015-12-02  Jason Merrill  <jason@redhat.com>
2356
2357         * c-common.c (fold_for_warn): New.
2358         (warn_logical_operator, warn_tautological_cmp)
2359         (check_function_arguments_recurse, maybe_warn_bool_compare): Use it.
2360
2361         * c-common.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
2362         (c_fully_fold_internal, decl_constant_value_for_optimization):
2363         Move to c/c-fold.c.
2364         * c-common.h: Don't declare decl_constant_value_for_optimization.
2365
2366 2015-12-02  Joseph Myers  <joseph@codesourcery.com>
2367
2368         PR c/68162
2369         * c-common.h (c_build_qualified_type): Add extra default
2370         arguments.
2371
2372 2015-12-01  Julian Brown  <julian@codesourcery.com>
2373             Cesar Philippidis  <cesar@codesourcery.com>
2374             James Norris  <James_Norris@mentor.com>
2375
2376         * c-pragma.c (oacc_pragmas): Add PRAGMA_OACC_HOST_DATA.
2377         * c-pragma.h (pragma_kind): Add PRAGMA_OACC_HOST_DATA.
2378         (pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_USE_DEVICE.
2379
2380 2015-11-30  Eric Botcazou  <ebotcazou@adacore.com>
2381
2382         * c-ada-spec.c (print_ada_macros): Remove redundant blank line.
2383         (decl_sloc_common): Delete and move bulk of processing to...
2384         (decl_sloc): ...here.
2385         (pp_ada_tree_identifier): Remove reference to QUAL_UNION_TYPE.
2386         (dump_ada_double_name): Remove S parameter and compute the suffix.
2387         (dump_ada_array_type): Add PARENT parameter.  Simplify computation of
2388         element type and deal with an anonymous one.
2389         (dump_ada_template): Use RECORD_OR_UNION_TYPE_P macro.
2390         (dump_generic_ada_node): Tweak.  Adjust call to dump_ada_array_type
2391         and remove reference to QUAL_UNION_TYPE.
2392         (dump_nested_types): Make 2 passes on the fields and move bulk to...
2393         (dump_nested_type): ...here.  New function extracted from above.
2394         Generate a full declaration for anonymous element type of arrays.
2395         (print_ada_declaration): Really skip anonymous declarations.  Remove
2396         references to QUAL_UNION_TYPE.  Adjust call to dump_ada_array_type.
2397         Clean up processing of declarations of array types and objects.
2398         (print_ada_struct_decl): Remove reference to QUAL_UNION_TYPE.
2399         Remove obsolete code and tidy up.
2400
2401 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
2402
2403         PR c/67581
2404         * c-common.c (handle_transparent_union_attribute): Update
2405         also type variants.
2406
2407 2015-11-27  Martin Liska  <mliska@suse.cz>
2408
2409         PR c++/68312
2410         * array-notation-common.c (cilkplus_extract_an_triplets):
2411         Release vector of vectors.
2412         * cilk.c (gimplify_cilk_spawn): Free allocated memory.
2413
2414 2015-11-26  Eric Botcazou  <ebotcazou@adacore.com>
2415
2416         PR c++/68527
2417         * c-ada-spec.c (dump_nested_types): Add guard for error_mark_node.
2418         (print_ada_struct_decl): Likewise.
2419
2420 2015-11-23  Igor Zamyatin  <igor.zamyatin@intel.com>
2421
2422         PR c++/68001
2423         * c-gimplify.c (c_gimplify_expr): Stop the process if see an error.
2424         * cilk.c (recognize_spawn): Determine location in a more precise
2425         way.
2426
2427 2015-11-19  Jason Merrill  <jason@redhat.com>
2428
2429         * c-common.c (shorten_compare): But look through macros from
2430         system headers.
2431
2432 2015-11-18  Jason Merrill  <jason@redhat.com>
2433
2434         * c-common.c (shorten_compare): Don't -Wtype-limits if the
2435         non-constant operand comes from a macro.
2436
2437 2015-11-17  Jason Merrill  <jason@redhat.com>
2438
2439         PR bootstrap/68346
2440         * c-common.c (warn_tautological_cmp): Fold before checking for
2441         constants.
2442
2443 2015-11-16  Marek Polacek  <polacek@redhat.com>
2444
2445         PR c++/68362
2446         * c-common.c (check_case_bounds): Fold low and high cases.
2447
2448 2015-11-16  Marek Polacek  <polacek@redhat.com>
2449
2450         * c-ada-spec.c (dump_ada_template): Use RECORD_OR_UNION_TYPE_P.
2451         * c-common.c (c_common_get_alias_set): Likewise.
2452         (handle_visibility_attribute): Likewise.
2453
2454 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
2455
2456         * c-common.c (handle_simd_attribute): New.
2457         (struct attribute_spec): Add entry for "simd".
2458         (handle_simd_attribute): New.
2459
2460 2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
2461
2462         * c-lex.c (interpret_float): Use fold_convert.
2463
2464 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2465
2466         * c-common.c (c_fully_fold_internal): Capture existing souce_range,
2467         and store it on the result.
2468         * c-opts.c (c_common_init_options): Set
2469         global_dc->colorize_source_p.
2470
2471 2015-11-12  James Norris  <jnorris@codesourcery.com>
2472             Joseph Myers  <joseph@codesourcery.com>
2473
2474         * c-pragma.c (oacc_pragmas): Add entry for declare directive. 
2475         * c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_DECLARE.
2476         (enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT and
2477         PRAGMA_OACC_CLAUSE_LINK.
2478
2479 2015-11-11  Marek Polacek  <polacek@redhat.com>
2480
2481         PR c/68107
2482         PR c++/68266
2483         * c-common.c (valid_array_size_p): New function.
2484         * c-common.h (valid_array_size_p): Declare.
2485
2486 2015-11-11  Dominique d'Humieres  <dominiq@lps.ens.fr>
2487
2488         PR bootstrap/68271
2489         * c-pragma.c (c_register_pragma_1): Update the gcc_assert to 256.
2490
2491 2015-11-11  Andrew MacLeod  <amacleod@redhat.com>
2492
2493         * array-notation-common.c: Remove unused header files.
2494         * c-ada-spec.c: Likewise.
2495         * c-cilkplus.c: Likewise.
2496         * c-common.c: Likewise.
2497         * c-cppbuiltin.c: Likewise.
2498         * c-dump.c: Likewise.
2499         * c-format.c: Likewise.
2500         * c-gimplify.c: Likewise.
2501         * c-indentation.c: Likewise.
2502         * c-lex.c: Likewise.
2503         * c-omp.c: Likewise.
2504         * c-opts.c: Likewise.
2505         * c-pch.c: Likewise.
2506         * c-ppoutput.c: Likewise.
2507         * c-pragma.c: Likewise.
2508         * c-pretty-print.c: Likewise.
2509         * c-semantics.c: Likewise.
2510         * c-ubsan.c: Likewise.
2511         * cilk.c: Likewise.
2512         * stub-objc.c: Likewise.
2513
2514 2015-11-09  Thomas Schwinge  <thomas@codesourcery.com>
2515             Cesar Philippidis  <cesar@codesourcery.com>
2516             James Norris  <jnorris@codesourcery.com>
2517             Julian Brown  <julian@codesourcery.com>
2518             Nathan Sidwell  <nathan@codesourcery.com>
2519
2520         * c-pragma.c (oacc_pragmas): Add "routine".
2521         * c-pragma.h (pragma_kind): Add PRAGMA_OACC_ROUTINE.
2522
2523 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
2524
2525         * c-common.c (c_common_attributes): Add scalar_storage_order.
2526         (handle_scalar_storage_order_attribute): New function.
2527         * c-pragma.c (global_sso): New variable.
2528         (maybe_apply_pragma_scalar_storage_order): New function.
2529         (handle_pragma_scalar_storage_order): Likewise.
2530         (init_pragma): Register scalar_storage_order.
2531         * c-pragma.h (maybe_apply_pragma_scalar_storage_order): Declare.
2532         * c.opt (Wscalar-storage-order): New warning.
2533         (fsso-struct=): New option.
2534
2535 2015-11-08  Martin Sebor  <msebor@redhat.com>
2536
2537         * c.opt (Wplacement-new): Add a period to the end of a sentence.
2538
2539 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
2540
2541         * c-common.c: Don't undef DEF_BUILTIN.
2542
2543 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
2544
2545         * c-common.c (c_cpp_error): Convert parameter from location_t to
2546         rich_location *.  Eliminate the "column_override" parameter and
2547         the call to diagnostic_override_column.
2548         Update the "done_lexing" clause to set range 0
2549         on the rich_location, rather than overwriting a location_t.
2550         * c-common.h (c_cpp_error): Convert parameter from location_t to
2551         rich_location *.  Eliminate the "column_override" parameter.
2552
2553 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
2554             Thomas Schwinge  <thomas@codesourcery.com>
2555             James Norris  <jnorris@codesourcery.com>
2556
2557         * c-omp.c (c_oacc_split_loop_clauses): Make TILE, GANG, WORKER, VECTOR,
2558         AUTO, SEQ, INDEPENDENT and PRIVATE loop clauses.  Associate REDUCTION
2559         clauses with parallel and kernels and loops.
2560         * c-pragma.h (enum pragma_omp_clause): Add entries for
2561         PRAGMA_OACC_CLAUSE_{INDEPENDENT,TILE,DEFAULT}.
2562         * pt.c (tsubst_omp_clauses): Add support for OMP_CLAUSE_{NUM_GANGS,
2563         NUM_WORKERS,VECTOR_LENGTH,GANG,WORKER,VECTOR,ASYNC,WAIT,TILE,AUTO,
2564         INDEPENDENT,SEQ}.
2565         (tsubst_expr): Add support for OMP_CLAUSE_{KERNELS,PARALLEL,LOOP}.
2566
2567 2015-11-05  Martin Sebor  <msebor@redhat.com>
2568
2569         PR c++/67942
2570         * c.opt (-Wplacement-new): New option.
2571
2572 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
2573
2574         * c-common.h (c_finish_omp_atomic): Add TEST argument.
2575         (c_omp_check_loop_iv, c_omp_check_loop_iv_exprs): New prototypes.
2576         * c-omp.c (c_finish_omp_atomic): Add TEST argument.  Don't call
2577         save_expr or create_tmp_var* if TEST is true.
2578         (c_finish_omp_for): Store OMP_FOR_ORIG_DECLS always.
2579         Don't call add_stmt here.
2580         (struct c_omp_check_loop_iv_data): New type.
2581         (c_omp_check_loop_iv_r, c_omp_check_loop_iv,
2582         c_omp_check_loop_iv_exprs): New functions.
2583         (c_omp_split_clauses): Adjust for lastprivate being allowed on
2584         distribute.
2585         (c_omp_declare_simd_clauses_to_numbers): Change
2586         OMP_CLAUSE_LINEAR_VARIABLE_STRIDE OMP_CLAUSE_LINEAR_STEP into numbers.
2587         (c_omp_declare_simd_clauses_to_decls): Similarly change those
2588         from numbers to PARM_DECLs.
2589
2590 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
2591
2592         * c-omp.c (c_omp_split_clauses): Remove conditional compilation. Use
2593         flag_checking.
2594
2595 2015-11-03  Bernd Schmidt  <bschmidt@redhat.com>
2596
2597         PR c++-common/67882
2598         * c-common.h (fold_offsetof_1): Add argument.
2599         * c-common.c (fold_offsetof_1): Diagnose more invalid
2600         offsetof expressions that reference elements past the end of
2601         an array.
2602
2603 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
2604             Chung-Lin Tang  <cltang@codesourcery.com>
2605
2606         * c-pragma.c (oacc_pragmas): Add "atomic".
2607         * c-pragma.h (pragma_kind): Add PRAGMA_OACC_ATOMIC.
2608
2609 2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>
2610
2611         * c-common.c (handle_target_clones_attribute): New.
2612         (c_common_attribute_table): Add handle_target_clones_attribute.
2613         (handle_always_inline_attribute): Add check on target_clones attribute.
2614         (handle_target_attribute): Ditto.
2615
2616 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
2617
2618         * array-notation-common.c: Reorder #include's and remove duplicates.
2619         * c-ada-spec.c: Likewise.
2620         * c-cilkplus.c: Likewise.
2621         * c-common.c: Likewise.
2622         * c-cppbuiltin.c: Likewise.
2623         * c-dump.c: Likewise.
2624         * c-format.c: Likewise.
2625         * c-gimplify.c: Likewise.
2626         * c-indentation.c: Likewise.
2627         * c-lex.c: Likewise.
2628         * c-omp.c: Likewise.
2629         * c-opts.c: Likewise.
2630         * c-pch.c: Likewise.
2631         * c-ppoutput.c: Likewise.
2632         * c-pragma.c: Likewise.
2633         * c-pretty-print.c: Likewise.
2634         * c-semantics.c: Likewise.
2635         * c-ubsan.c: Likewise.
2636         * cilk.c: Likewise.
2637         * stub-objc.c: Likewise.
2638
2639 2015-10-28  Jason Merrill  <jason@redhat.com>
2640
2641         * c-common.c (pointer_int_sum): Fold the MULT_EXPR.
2642
2643 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
2644             James Norris  <jnorris@codesourcery.com>
2645             Cesar Philippidis  <cesar@codesourcery.com>
2646
2647         PR c/64765
2648         PR c/64880
2649         * c-common.h (c_oacc_split_loop_clauses): Declare function.
2650         * c-omp.c (c_oacc_split_loop_clauses): New function.
2651
2652 2015-10-21  Martin Sebor  <msebor@redhat.com>
2653
2654         PR driver/68043
2655         * c.opt: End each sentence that describes an option with a period.
2656
2657 2015-10-20  Marek Polacek  <polacek@redhat.com>
2658
2659         * array-notation-common.c (is_cilkplus_vector_p): Define.
2660         * c-common.h (is_cilkplus_vector_p): Declare.
2661
2662 2015-10-20  Marek Polacek  <polacek@redhat.com>
2663
2664         * c.opt (std=gnu++11): Do not describe as experimental.
2665         (std=gnu++14): Likewise.
2666
2667 2015-10-19  Jason Merrill  <jason@redhat.com>
2668
2669         * c-cppbuiltin.c (c_cpp_builtins): Define
2670         __cpp_nontype_template_args.
2671
2672 2015-10-19  Jason Merrill  <jason@redhat.com>
2673
2674         * c-cppbuiltin.c (c_cpp_builtins): Define
2675         __cpp_enumerator_attributes, __cpp_fold_expressions,
2676         __cpp_unicode_characters.
2677
2678 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
2679             Aldy Hernandez  <aldyh@redhat.com>
2680
2681         * c-common.c (enum c_builtin_type): Define DEF_FUNCTION_TYPE_9,
2682         DEF_FUNCTION_TYPE_10 and DEF_FUNCTION_TYPE_11.
2683         (c_define_builtins): Likewise.
2684         * c-common.h (enum c_omp_clause_split): Add
2685         C_OMP_CLAUSE_SPLIT_TASKLOOP.
2686         (c_finish_omp_critical, c_finish_omp_ordered): Add CLAUSES argument.
2687         (c_finish_omp_for): Add ORIG_DECLV argument.
2688         * c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP as
2689         201511 instead of 201307.
2690         * c-omp.c (c_finish_omp_critical): Add CLAUSES argument, set
2691         OMP_CRITICAL_CLAUSES to it.
2692         (c_finish_omp_ordered): Add CLAUSES argument, set
2693         OMP_ORDERED_CLAUSES to it.
2694         (c_finish_omp_for): Add ORIG_DECLV argument, set OMP_FOR_ORIG_DECLS
2695         to it if OMP_FOR.  Clear DECL_INITIAL on the IVs.
2696         (c_omp_split_clauses): Handle OpenMP 4.5 combined/composite
2697         constructs and new OpenMP 4.5 clauses.  Clear
2698         OMP_CLAUSE_SCHEDULE_SIMD if not combined with OMP_SIMD.  Add
2699         verification code.
2700         * c-pragma.c (omp_pragmas_simd): Add taskloop.
2701         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKLOOP.
2702         (enum pragma_omp_clause): Add
2703         PRAGMA_OMP_CLAUSE_{DEFAULTMAP,GRAINSIZE,HINT,{IS,USE}_DEVICE_PTR}
2704         and PRAGMA_OMP_CLAUSE_{LINK,NOGROUP,NUM_TASKS,PRIORITY,SIMD,THREADS}.
2705
2706 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2707
2708         * c-lex.c (interpret_float): Use real_equal instead of
2709         REAL_VALUES_EQUAL.
2710
2711 2015-10-04  Jason Merrill  <jason@redhat.com>
2712
2713         Implement N4514, C++ Extensions for Transactional Memory.
2714         * c-common.c (c_common_reswords): Add C++ TM TS keywords.
2715         (c_common_attribute_table): Add transaction_safe_dynamic.
2716         transaction_safe now affects type identity.
2717         (handle_tm_attribute): Handle transaction_safe_dynamic.
2718         * c-common.h (enum rid): Add RID_ATOMIC_NOEXCEPT,
2719         RID_ATOMIC_CANCEL, RID_SYNCHRONIZED.
2720         (OBJC_IS_CXX_KEYWORD): Add RID_SYNCHRONIZED.
2721         (D_TRANSMEM): New.
2722         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_transactional_memory.
2723         * c-pretty-print.c (pp_c_attributes_display): Don't print
2724         transaction_safe in C++.
2725
2726 2015-10-02  Marek Polacek  <polacek@redhat.com>
2727
2728         * c.opt (Wduplicated-cond): Don't enable by -Wall anymore.
2729
2730 2015-10-02  Marek Polacek  <polacek@redhat.com>
2731
2732         PR c/64249
2733         * c-common.c (warn_duplicated_cond_add_or_warn): New function.
2734         * c-common.h (warn_duplicated_cond_add_or_warn): Declare.
2735         * c.opt (Wduplicated-cond): New option.
2736
2737 2015-10-01  Joseph Myers  <joseph@codesourcery.com>
2738
2739         * c.opt (std=c11): Do not describe as experimental.
2740         (std=gnu11): Likewise.
2741         (std=iso9899:2011): Likewise.
2742
2743 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
2744
2745         * c-common.c (DEF_FUNCTION_TYPE_VAR_6): New.
2746         (DEF_FUNCTION_TYPE_VAR_11): Delete.
2747
2748 2015-09-25  Marek Polacek  <polacek@redhat.com>
2749
2750         * c-ubsan.c (ubsan_instrument_division): Remove unnecessary code.
2751         (ubsan_instrument_shift): Likewise.
2752
2753 2015-09-25  Marek Polacek  <polacek@redhat.com>
2754
2755         PR sanitizer/64906
2756         * c-ubsan.c (ubsan_instrument_division): Also pre-evaluate OP1.
2757
2758 2015-09-24  Patrick Palka  <ppalka@gcc.gnu.org>
2759
2760         * c-indentation.c (should_warn_for_misleading_indentation):
2761         Compare next_stmt_vis_column with guard_line_first_nws instead
2762         of with guard_line_vis_column.
2763
2764 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2765
2766         PR c/49654
2767         PR c/49655
2768         * c-pragma.c (handle_pragma_diagnostic): Detect non-warning
2769         options and options not valid for the current language.
2770
2771 2015-09-22  Patrick Palka  <ppalka@gcc.gnu.org>
2772
2773         * c-indentation.c (should_warn_for_misleading_indentation):
2774         Float out and consolidate the calls to get_visual_column that
2775         are passed guard_exploc as an argument.  Compare
2776         next_stmt_vis_column with guard_line_first_nws instead of with
2777         body_line_first_nws.
2778
2779 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
2780
2781         * c.opt (Wmultiple-inheritance, Wvirtual-inheritance, Wtemplates,
2782         Wnamespaces): New C++ warnings.
2783
2784 2015-09-22  Jason Merrill  <jason@redhat.com>
2785
2786         * c-common.h (abi_compat_version_crosses): New.
2787         (warn_abi_version): Declare.
2788         * c-common.c: Define it.
2789         * c-opts.c (c_common_post_options): Handle it.
2790         flag_abi_compat_version defaults to 8.
2791
2792 2015-09-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
2793
2794         Complete the implementation of N4230, Nested namespace definition.
2795         * c-cppbuiltin.c: Add __cpp_namespace_attributes and
2796         __cpp_nested_namespace_definitions.
2797
2798 2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2799
2800         * c-pragma.c (handle_pragma_diagnostic): Fix wrong return.
2801
2802 2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2803
2804         * c-pragma.c (handle_pragma_diagnostic): Use explicit location
2805         when warning.
2806         * c-pragma.h (pragma_lex): Add optional loc argument.
2807
2808 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
2809
2810         * c-format.c (check_format_arg): Adjust to use common block size in all
2811         object pools.
2812
2813 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
2814
2815         * c-format.c (location_from_offset): Update for change in
2816         signature of location_get_source_line.
2817         * c-indentation.c (get_visual_column): Likewise.
2818         (line_contains_hash_if): Likewise.
2819
2820 2015-09-14  Marek Polacek  <polacek@redhat.com>
2821
2822         * c-opts.c (c_common_post_options): Set C++ standard earlier, before
2823         setting various warnings.
2824
2825 2015-09-14  Marek Polacek  <polacek@redhat.com>
2826
2827         * c-common.c (warn_for_sign_compare): Cast to unsigned when shifting
2828         a negative value.
2829
2830 2015-09-11  Mark Wielaard  <mjw@redhat.com>
2831
2832         PR c/28901
2833         * c.opt (Wunused-variable): Option from common.opt.
2834         (Wunused-const-variable): New option.
2835
2836 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
2837
2838         PR c++/53184
2839         * c.opt ([Wsubobject-linkage]): Add.
2840
2841 2015-09-03  Martin Sebor  <msebor@redhat.com>
2842
2843         PR c/66516
2844         * c-common.h (c_decl_implicit, reject_gcc_builtin): Declare new
2845         functions.
2846         * c-common.c (reject_gcc_builtin): Define.
2847
2848 2015-09-02  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2849
2850         PR middle-end/60586
2851         * c-common.h (cilk_gimplify_call_params_in_spawned_fn): New
2852         prototype.
2853         * c-gimplify.c (c_gimplify_expr): Added a call to the function
2854         cilk_gimplify_call_params_in_spawned_fn.
2855         * cilk.c (cilk_gimplify_call_params_in_spawned_fn): New function.
2856         (gimplify_cilk_spawn): Removed EXPR_STMT and CLEANUP_POINT_EXPR
2857         unwrapping.
2858
2859 2015-08-25  Marek Polacek  <polacek@redhat.com>
2860
2861         PR middle-end/67330
2862         * c-common.c (handle_weak_attribute): Don't check whether the
2863         visibility can be changed here.
2864
2865 2015-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2866
2867         * c-lex.c (c_lex_with_flags): Use explicit locations.
2868
2869 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
2870
2871         * c-ada-spec.h, c-common.c, c-common.h, c-format.c, c-format.h,
2872         c-objc.h, c-ppoutput.c, c-pragma.c, c-pragma.h: Remove useless
2873
2874 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2875
2876         PR middle-end/36757
2877         * c-common.c (check_builtin_function_arguments): Add check
2878         for BUILT_IN_SIGNBIT argument.
2879
2880 2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
2881
2882         PR c++/67160
2883         * c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_static_assert value
2884         in c++1z mode.
2885
2886 2015-08-17  Marek Polacek  <polacek@redhat.com>
2887
2888         * c-pretty-print.c (pp_c_cv_qualifiers): Remove code dealing
2889         with whitespaces before qualifier names.
2890
2891 2015-08-12  Marek Polacek  <polacek@redhat.com>
2892
2893         PR c++/55095
2894         * c-common.c (maybe_warn_shift_overflow): Properly handle
2895         left-shifting 1 into the sign bit.
2896
2897 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2898
2899         * c.opt (Wchkp): Use LangEnabledBy instead of EnabledBy.
2900
2901 2015-08-06  Andrew Sutton  <andrew.n.sutton@gmail.com>
2902             Braden Obrzut  <admin@maniacsvault.net>
2903             Jason Merrill  <jason@redhat.com>
2904
2905         Add C++ Concepts TS support.
2906         * c-common.c (c_common_reswords): Add __is_same_as, concept, requires.
2907         * c-common.h (enum rid): Add RID_IS_SAME_AS, RID_CONCEPT, RID_REQUIRES.
2908         (D_CXX_CONCEPTS, D_CXX_CONCEPTS_FLAGS): New.
2909         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_concepts.
2910         * c-opts.c (set_std_cxx1z): Set flag_concepts.
2911         * c.opt (fconcepts): New.
2912
2913 2015-08-02  Martin Sebor  <msebor@redhat.com>
2914
2915         * c.opt (-Wframe-address): New warning option.
2916
2917 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
2918
2919         * c-indentation.c (should_warn_for_misleading_indentation):
2920         Improve heuristics.
2921
2922 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
2923
2924         * c-indentation.c (get_visual_column): Add parameter first_nws,
2925         use it.  Update comment documenting the function.
2926         (is_first_nonwhitespace_on_line): Remove.
2927         (should_warn_for_misleading_indentation): Replace usage of
2928         of is_first_nonwhitespace_on_line with get_visual_column.
2929
2930 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
2931
2932         * c-indentation.h (struct token_indent_info): Define.
2933         (get_token_indent_info): Define.
2934         (warn_for_misleading_information): Declare.
2935         * c-common.h (warn_for_misleading_information): Remove.
2936         * c-identation.c (warn_for_misleading_indentation):
2937         Change declaration to take three token_indent_infos.  Adjust
2938         accordingly.
2939         * c-identation.c (should_warn_for_misleading_indentation):
2940         Likewise.  Bail out early if the body is a compound statement.
2941         (guard_tinfo_to_string): Define.
2942
2943 2015-07-30  Jason Merrill  <jason@redhat.com>
2944
2945         * c-pretty-print.c (unary_expression) [INDIRECT_REF]: Don't print
2946         '*' for reference decay.
2947
2948 2015-07-30  Marek Polacek  <polacek@redhat.com>
2949
2950         * c-common.c (warn_tautological_cmp): Bail for float types.
2951
2952 2015-07-27  Marek Polacek  <polacek@redhat.com>
2953
2954         PR bootstrap/67030
2955         * c-common.c (warn_tautological_cmp): Don't warn for macro expansion.
2956
2957 2015-07-27  Marek Polacek  <polacek@redhat.com>
2958
2959         PR c++/66555
2960         PR c/54979
2961         * c-common.c (find_array_ref_with_const_idx_r): New function.
2962         (warn_tautological_cmp): New function.
2963         * c-common.h (warn_tautological_cmp): Declare.
2964         * c.opt (Wtautological-compare): New option.
2965
2966 2015-07-23  Marek Polacek  <polacek@redhat.com>
2967
2968         * c-ubsan.c (ubsan_instrument_division): Use unshare_expr throughout.
2969         (ubsan_instrument_shift): Likewise.
2970
2971 2015-07-23  Marek Polacek  <polacek@redhat.com>
2972
2973         PR sanitizer/66908
2974         * c-ubsan.c: Include gimplify.h.
2975         (ubsan_instrument_division): Unshare OP0 and OP1.
2976         (ubsan_instrument_shift): Likewise.
2977
2978 2015-07-20  Marek Polacek  <polacek@redhat.com>
2979             Richard Sandiford  <richard.sandiford@arm.com>
2980
2981         PR c++/55095
2982         * c-common.c (c_fully_fold_internal): Warn about left shift overflows.
2983         Use EXPR_LOC_OR_LOC.
2984         (maybe_warn_shift_overflow): New function.
2985         * c-common.h (maybe_warn_shift_overflow): Declare.
2986         * c-opts.c (c_common_post_options): Set warn_shift_overflow.
2987         * c.opt (Wshift-overflow): New option.
2988
2989 2015-07-16  Martin Liska  <mliska@suse.cz>
2990
2991         * c-format.c (static void check_format_info_main): Use
2992         object_allocator instead of pool_allocator.
2993         (check_format_arg): Likewise.
2994         (check_format_info_main): Likewise.
2995
2996 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
2997
2998         * c-opts.c: Remove multiline #include comment.
2999
3000 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
3001
3002         * c-common.c: Fix double word typos.
3003
3004 2015-07-10  Eric Botcazou  <ebotcazou@adacore.com>
3005
3006         * c-ada-spec.h (cpp_operation): Revert latest change.
3007         * c-ada-spec.c (print_ada_declaration): Likewise.  Skip implicit
3008         constructors and destructors.
3009
3010 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
3011
3012         * c-common.h: Adjust includes for flags.h changes.
3013         * stub-objc.c: Likewise.
3014
3015 2015-07-08  Eric Botcazou  <ebotcazou@adacore.com>
3016
3017         * c-ada-spec.h (cpp_operation): Add IS_CONSTEXPR.
3018         * c-ada-spec.c (print_ada_declaration): Skip constexpr constructors.
3019
3020 2015-07-08  Jakub Jelinek  <jakub@redhat.com>
3021
3022         * c-omp.c (c_omp_declare_simd_clauses_to_numbers): If all clauses
3023         are to be removed, return NULL rather than original clauses list.
3024
3025 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
3026
3027         * array-notation-common.c: Adjust includes.
3028         * c-ada-spec.c: Likewise.
3029         * c-cilkplus.c: Likewise.
3030         * c-common.h: Likewise.
3031         * c-cppbuiltin.c: Likewise.
3032         * c-dump.c: Likewise.
3033         * c-format.c: Likewise.
3034         * c-gimplify.c: Likewise.
3035         * c-indentation.c: Likewise.
3036         * c-lex.c: Likewise.
3037         * c-omp.c: Likewise.
3038         * c-opts.c: Likewise.
3039         * c-pch.c: Likewise.
3040         * c-ppoutput.c: Likewise.
3041         * c-pragma.c: Likewise.
3042         * c-pretty-print.c: Likewise.
3043         * c-semantics.c: Likewise.
3044         * c-ubsan.c: Likewise.
3045         * cilk.c: Likewise.
3046         * stub-objc.c: Likewise.
3047
3048 2015-07-07  Eric Botcazou  <ebotcazou@adacore.com>
3049
3050         * c-ada-spec.h (cpp_operation): Add IS_MOVE_CONSTRUCTOR.
3051         * c-ada-spec.c (print_ada_declaration): Skip move constructors.
3052
3053 2015-07-01  Jason Merrill  <jason@redhat.com>
3054
3055         * c-common.h (D_CXX11): Rename from D_CXX0X.
3056         (RID_FIRST_CXX11, RID_LAST_CXX11): Rename from *_CXX0X.
3057         * c-common.c: Adjust.
3058
3059         * c-opts.c (c_common_post_options): Default to C++14.
3060
3061         * c-opts.c (c_common_post_options): Highest ABI level is now 10.
3062
3063 2015-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
3064
3065         Implement N4197 - Adding u8 character literals
3066         * c-ada-spec.c (print_ada_macros): Treat CPP_UTF8CHAR like
3067         CPP_CHAR.
3068         * c-common.c (c_parse_error): Print CPP_UTF8CHAR and
3069         CPP_UTF8CHAR_USERDEF tokens.
3070         * c-lex.c (c_lex_with_flags): Treat CPP_UTF8CHAR_USERDEF
3071         and CPP_UTF8CHAR tokens.
3072         (lex_charconst): Treat CPP_UTF8CHAR token.
3073
3074 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3075
3076         PR fortran/66605
3077         * c-common.c (do_warn_unused_parameter): Move here.
3078         * c-common.h (do_warn_unused_parameter): Declare.
3079
3080 2015-06-29  Marek Polacek  <polacek@redhat.com>
3081
3082         PR c/66322
3083         * c-common.c (check_case_bounds): Add bool * parameter.  Set
3084         OUTSIDE_RANGE_P.
3085         (c_add_case_label): Add bool * parameter.  Pass it down to
3086         check_case_bounds.
3087         (c_do_switch_warnings): Add bool parameters.  Implement -Wswitch-bool
3088         warning here.
3089         * c-common.h (c_add_case_label, c_do_switch_warnings): Update
3090         declarations.
3091
3092 2015-06-27  Marek Polacek  <polacek@redhat.com>
3093
3094         * c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P
3095         or VECTOR_INTEGER_TYPE_P throughout.
3096         * c-gimplify.c: Likewise.
3097
3098 2015-06-26  Marek Polacek  <polacek@redhat.com>
3099
3100         * array-notation-common.c (find_rank): Use INDIRECT_REF_P.
3101         * c-common.c (c_fully_fold_internal): Likewise.
3102         (c_alignof_expr): Likewise.
3103         * c-pretty-print.c (c_pretty_printer::postfix_expression): Likewise.
3104         * c-ubsan.c (ubsan_instrument_bounds): Likewise.
3105         * cilk.c (create_parm_list): Likewise.
3106
3107 2015-06-26  Marek Polacek  <polacek@redhat.com>
3108
3109         * c-common.c (handle_unused_attribute): Use VAR_OR_FUNCTION_DECL_P.
3110
3111 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3112
3113         * c-common.c: Remove ipa-ref.h and plugin-api.h from include list.
3114         * c-gimplify.c: Likewise.
3115         * c-pragma.c: Likewise.
3116         * c-ubsan.c: Likewise.
3117         * cilk.c: Likewise.
3118
3119 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3120
3121         * c-common.c (c_type_hasher): Inherit from ggc_ptr_hash rather than
3122         ggc_hasher.
3123
3124 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3125
3126         * cilk.c: Move calls.h after tm.h in the include chain.
3127
3128 2015-06-25  Marek Polacek  <polacek@redhat.com>
3129
3130         * array-notation-common.c: Use VAR_P throughout.
3131         * c-ada-spec.c: Likewise.
3132         * c-common.c: Likewise.
3133         * c-format.c: Likewise.
3134         * c-gimplify.c: Likewise.
3135         * c-omp.c: Likewise.
3136         * c-pragma.c: Likewise.
3137         * c-pretty-print.c: Likewise.
3138         * cilk.c: Likewise.
3139
3140 2015-06-25  Marek Polacek  <polacek@redhat.com>
3141
3142         * cilk.c (extract_free_variables): Use is_global_var.
3143
3144 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
3145
3146         * c-common.c: Don't include target-def.h.
3147
3148 2015-06-23  Marek Polacek  <polacek@redhat.com>
3149
3150         * c-common.c (warn_logical_operator): Use tree_int_cst_equal
3151         when comparing INTEGER_CSTs.
3152
3153 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
3154
3155         * c-ada-spec.h (cpp_operation): Add HAS_DEPENDENT_TEMPLATE_ARGS.
3156         * c-ada-spec.c (collect_ada_nodes): Skip NAMESPACE_DECL
3157         (dump_ada_template): Skip partially specialized types.
3158
3159 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
3160
3161         * c-common.c (scalar_to_vector): Use std::swap instead of manually
3162         swapping.
3163
3164 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
3165
3166         * array-notation-common.c: Do not include input.h, line-map.h or is-a.h.
3167         * c-ada-spec.c: Likewise.
3168         * c-cilkplus.c: Likewise.
3169         * c-common.c: Likewise.
3170         * c-common.h: Likewise.
3171         * c-cppbuiltin.c: Likewise.
3172         * c-dump.c: Likewise.
3173         * c-format.c: Likewise.
3174         * c-gimplify.c: Likewise.
3175         * c-indentation.c: Likewise.
3176         * c-lex.c: Likewise.
3177         * c-omp.c: Likewise.
3178         * c-opts.c: Likewise.
3179         * c-pch.c: Likewise.
3180         * c-ppoutput.c: Likewise.
3181         * c-pragma.c: Likewise.
3182         * c-pretty-print.c: Likewise.
3183         * c-semantics.c: Likewise.
3184         * c-ubsan.c: Likewise.
3185         * cilk.c: Likewise.
3186         * stub-objc.c: Likewise.
3187
3188 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
3189
3190         PR c++/65168
3191         * c-common.c (c_common_truthvalue_conversion): Warn when
3192         converting an address of a reference to a truth value.
3193
3194 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
3195
3196         * array-notation-common.c : Adjust include files.
3197         * c-ada-spec.c : Likewise.
3198         * c-cilkplus.c : Likewise.
3199         * c-common.c : Likewise.
3200         * c-common.h : Likewise.
3201         * c-cppbuiltin.c : Likewise.
3202         * c-dump.c : Likewise.
3203         * c-format.c : Likewise.
3204         * c-gimplify.c : Likewise.
3205         * c-indentation.c : Likewise.
3206         * c-lex.c : Likewise.
3207         * c-omp.c : Likewise.
3208         * c-opts.c : Likewise.
3209         * c-pch.c : Likewise.
3210         * c-ppoutput.c : Likewise.
3211         * c-pragma.c : Likewise.
3212         * c-pretty-print.c : Likewise.
3213         * c-semantics.c : Likewise.
3214         * c-ubsan.c : Likewise.
3215         * cilk.c : Likewise.
3216         * stub-objc.c : Likewise.
3217
3218 2015-06-08  Marek Polacek  <polacek@redhat.com>
3219
3220         PR c/66415
3221         * c-format.c (location_from_offset): Return LOC if LINE is null.
3222
3223 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
3224
3225         * c-common.h (c_parse_final_cleanups): New prototype.
3226         * c-opts.c (c_common_parse_file): Call c_parse_final_cleanups.
3227
3228 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
3229
3230         * c-common.c (noplt): New attribute.
3231         (handle_noplt_attribute): New handler.
3232
3233 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
3234
3235         * array-notation-common.c: Adjust includes for restructured coretypes.h.
3236         * c-ada-spec.c: Likewise.
3237         * c-cilkplus.c: Likewise.
3238         * c-common.c: Likewise.
3239         * c-common.h: Likewise.
3240         * c-cppbuiltin.c: Likewise.
3241         * c-dump.c: Likewise.
3242         * c-format.c: Likewise.
3243         * c-gimplify.c: Likewise.
3244         * c-indentation.c: Likewise.
3245         * c-lex.c: Likewise.
3246         * c-omp.c: Likewise.
3247         * c-opts.c: Likewise.
3248         * c-pch.c: Likewise.
3249         * c-ppoutput.c: Likewise.
3250         * c-pragma.c: Likewise.
3251         * c-pretty-print.c: Likewise.
3252         * c-semantics.c: Likewise.
3253         * c-ubsan.c: Likewise.
3254         * cilk.c: Likewise.
3255         * stub-objc.c: Likewise.
3256
3257 2015-06-02  David Malcolm  <dmalcolm@redhat.com>
3258
3259         PR c/66220:
3260         * c-indentation.c (should_warn_for_misleading_indentation): Use
3261         expand_location rather than expand_location_to_spelling_point.
3262         Don't warn if the guarding statement is more indented than the
3263         next/body stmts.
3264
3265 2015-06-02  David Malcolm  <dmalcolm@redhat.com>
3266
3267         * c-indentation.c (warn_for_misleading_indentation): Bail out
3268         immediately if -Wmisleading-indentation isn't enabled.
3269
3270 2015-06-01  Martin Liska  <mliska@suse.cz>
3271
3272         * c-format.c (check_format_arg):Use new type-based pool allocator.
3273         (check_format_info_main) Likewise.
3274
3275 2015-05-31  Eric Botcazou  <ebotcazou@adacore.com>
3276
3277         * c-ada-spec.c (is_tagged_type): Test for TYPE_METHODS on main variant.
3278         (has_nontrivial_methods): Likewise.
3279
3280 2015-05-25  Marek Polacek  <polacek@redhat.com>
3281
3282         * c-ubsan.c (ubsan_instrument_shift): Use type0.
3283
3284 2015-05-22  Marek Polacek  <polacek@redhat.com>
3285
3286         PR c/47043
3287         * c-common.c (handle_deprecated_attribute): Allow CONST_DECL.
3288
3289 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3290
3291         * c-cppbuiltin.c (c_cpp_builtins): Use if instead of #if with
3292         STACK_GROWS_DOWNWARD.
3293
3294 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3295
3296         * c-cppbuiltin.c (c_cpp_builtins): Check the value of
3297         STACK_GROWS_DOWNWARD rather than if it is defined.
3298
3299 2015-05-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3300
3301         PR c/52952
3302         * c-format.c (location_column_from_byte_offset): New.
3303         (location_from_offset): New.
3304         (struct format_wanted_type): Add offset_loc field.
3305         (check_format_info): Move handling of location for extra arguments
3306         closer to the point of warning.
3307         (check_format_info_main): Pass the result of location_from_offset
3308         to warning_at.
3309         (format_type_warning): Pass the result of location_from_offset
3310         to warning_at.
3311
3312 2015-05-20  Marek Polacek  <polacek@redhat.com>
3313
3314         * c-omp.c (check_omp_for_incr_expr): Use BINARY_CLASS_P.
3315
3316 2015-05-20  Marek Polacek  <polacek@redhat.com>
3317
3318         * c-ada-spec.c (dump_sloc): Use DECL_P.
3319
3320 2015-05-20  Marek Polacek  <polacek@redhat.com>
3321
3322         * c-pragma.c: Use VAR_OR_FUNCTION_DECL_P throughout.
3323         * c-common.c: Likewise.
3324
3325 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
3326
3327         * c-common.h (fe_file_change): Strengthen param from
3328         const line_map * to const line_map_ordinary *.
3329         (pp_file_change): Likewise.
3330         * c-lex.c (fe_file_change): Likewise.
3331         (cb_define): Use linemap_check_ordinary when invoking
3332         SOURCE_LINE.
3333         (cb_undef): Likewise.
3334         * c-opts.c (c_finish_options): Use linemap_check_ordinary when
3335         invoking cb_file_change.
3336         (c_finish_options): Likewise.
3337         (push_command_line_include): Likewise.
3338         (cb_file_change): Strengthen param "new_map" from
3339         const line_map * to const line_map_ordinary *.
3340         * c-ppoutput.c (cb_define): Likewise for local "map".
3341         (pp_file_change): Likewise for param "map" and local "from".
3342
3343 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
3344
3345         * c-common.c (shorten_compare): Use std::swap instead of explicit swaps.
3346
3347 2015-05-18  Tom de Vries  <tom@codesourcery.com>
3348
3349         * c-common.c (build_va_arg_1): New function.
3350         (build_va_arg): Add address operator to va_list operand if necessary.
3351
3352 2015-05-15  Mikhail Maltsev  <maltsevm@gmail.com>
3353
3354         PR c/48956
3355         * c-common.c (int_safely_convertible_to_real_p): Define.
3356         (unsafe_conversion_p): Check conversions involving complex types.
3357         (conversion_warning): Add new warning message for conversions which
3358         discard imaginary component.
3359         * c-common.h: (enum conversion_safety): Add new enumerator for such
3360         conversions.
3361
3362 2015-05-14  Marek Polacek  <polacek@redhat.com>
3363
3364         PR c/66066
3365         PR c/66127
3366         * c-common.c (c_fully_fold): Pass false down to c_fully_fold_internal.
3367         (c_fully_fold_internal): Fold C_MAYBE_CONST_EXPRs with
3368         C_MAYBE_CONST_EXPR_INT_OPERANDS set.  Add FOR_INT_CONST argument and
3369         use it.  If FOR_INT_CONST, require that all evaluated operands be
3370         INTEGER_CSTs.
3371
3372 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
3373
3374         * c-common.h (warn_for_misleading_indentation): New prototype.
3375         * c-indentation.c: New file.
3376         * c.opt (Wmisleading-indentation): New option.
3377
3378 2015-05-12  Tom de Vries  <tom@codesourcery.com>
3379
3380         PR tree-optimization/66010
3381         * c-common.c (build_va_arg): Don't mark ap addressable unless necessary.
3382
3383 2015-05-09  Jason Merrill  <jason@redhat.com>
3384
3385         * c-opts.c (c_common_post_options): Also clear
3386         cpp_opts->cpp_warn_cxx11_compat.
3387
3388         * c-common.h (enum cxx_dialect): Add cxx_unset.
3389         * c-common.c (cxx_dialect): Initialize to cxx_unset.
3390         * c-opts.c (c_common_post_options): Set C++ dialect to C++98 if unset.
3391
3392         * c.opt (std=c++14): Remove Undocumented flag and experimental warning.
3393         (std=gnu++0x): Mark as Undocumented.
3394         (std=gnu++1y): Add deprecated message.
3395
3396 2015-05-08  Jason Merrill  <jason@redhat.com>
3397
3398         * c.opt (Wc++11-compat): Make primary.  Rename var warn_cxx11_compat.
3399         * c-opts.c: Adjust.
3400
3401         * c.opt (Wc++0x-compat): Also set cpp_warn_cxx11_compat.
3402
3403 2015-05-08  Marek Polacek  <polacek@redhat.com>
3404
3405         PR c/64918
3406         * c.opt (Woverride-init-side-effects): New option.
3407
3408 2015-05-07  Marek Polacek  <polacek@redhat.com>
3409
3410         PR c/65179
3411         * c-common.c (c_fully_fold_internal): Warn when left shifting a
3412         negative value.
3413         * c.opt (Wshift-negative-value): New option.
3414         * c-opts.c (c_common_post_options): Set warn_shift_negative_value
3415         when -Wextra and C99/C++11 mode.
3416
3417 2015-05-07  Marek Polacek  <polacek@redhat.com>
3418             Martin Uecker  <uecker@eecs.berkeley.edu>
3419
3420         * c-ubsan.c (ubsan_instrument_bounds): Don't skip instrumenting
3421         flexible member array-like members if SANITIZE_BOUNDS_STRICT.
3422
3423 2015-05-05  Jason Merrill  <jason@redhat.com>
3424
3425         * c.opt (Wterminate): New.
3426
3427 2015-04-30  Marek Polacek  <polacek@redhat.com>
3428
3429         * c-common.c (maybe_warn_bool_compare): When comparing with 0/1,
3430         require that the non-constant be of a boolean type.
3431
3432 2015-04-29  Josh Triplett  <josh@joshtriplett.org>
3433
3434         * c-common.c (handle_section_attribute): Refactor to reduce
3435         nesting and distinguish between error cases.
3436
3437 2015-04-29  Marek Polacek  <polacek@redhat.com>
3438
3439         PR c/64610
3440         * c-common.c (maybe_warn_bool_compare): Warn when comparing a boolean
3441         with 0/1.
3442
3443 2015-04-29  Jakub Jelinek  <jakub@redhat.com>
3444
3445         * c-common.h (omp_clause_mask): Unconditionally define as a class.
3446         Use uint64_t instead of unsigned HOST_WIDE_INT and 64 instead of
3447         HOST_BITS_PER_WIDE_INT.
3448
3449 2015-04-28  Tom de Vries  <tom@codesourcery.com>
3450
3451         PR tree-optimization/65887
3452         * c-common.c (build_va_arg): Mark va_arg ap argument as addressable.
3453
3454 2015-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3455             Pierre-Marie de Rodat  <derodat@adacore.com>
3456
3457         * c-ada-spec.c (in_function): Delete.
3458         (dump_generic_ada_node): Do not change in_function and remove the
3459         redundant code dealing with it.
3460         (print_ada_declaration): Do not change in_function.  Use INDENT_INCR.
3461         (print_ada_methods): Output the static member functions in a nested
3462         package after the regular methods as well as associated renamings.
3463
3464 2015-04-24  Marek Polacek  <polacek@redhat.com>
3465
3466         PR c/65830
3467         * c-common.c (c_fully_fold_internal): Use OPT_Wshift_count_negative
3468         and OPT_Wshift_count_overflow.
3469
3470         PR c/63357
3471         * c-common.c (warn_logical_operator): Warn if the operands have the
3472         same expressions.
3473
3474 2015-04-24  Marek Polacek  <polacek@redhat.com>
3475
3476         PR c/61534
3477         * c-common.c (warn_logical_operator): Bail if either operand comes
3478         from a macro expansion.
3479
3480 2015-04-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3481
3482         PR target/55143
3483         * c-common.c (c_default_pointer_mode): Add definition.
3484         * c-common.h (c_default_pointer_mode): Add declaration.
3485
3486 2015-03-11  Jakub Jelinek  <jakub@redhat.com>
3487
3488         * c-common.c (c_common_nodes_and_builtins): Don't call xstrdup
3489         on record_builtin_type argument.
3490
3491 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
3492
3493         PR c/65120
3494         * c-common.c (warn_logical_not_parentheses): Don't warn for
3495         !x == 0 or !x != 0.
3496
3497 2015-03-07  Marek Polacek  <polacek@redhat.com>
3498
3499         PR sanitizer/65280
3500         * c-ubsan.c (ubsan_instrument_bounds): Check for COMPONENT_REF
3501         before trying to figure out whether we have a flexible array member.
3502
3503 2015-03-06  Eric Botcazou  <ebotcazou@adacore.com>
3504             Jonathan Wakely  <jwakely.gcc@gmail.com>
3505
3506         * c-ada-spec.c (dump_ada_double_name): Fix pasto.
3507
3508 2015-03-05  Eric Botcazou  <ebotcazou@adacore.com>
3509
3510         PR ada/65319
3511         * c-ada-spec.c (print_destructor): Remove obsolete code.
3512
3513 2015-03-01  Eric Botcazou  <ebotcazou@adacore.com>
3514
3515         * c-ada-spec.c (is_tagged_type): Add guard for DECL_VINDEX.
3516         (dump_template_types): Adjust DECL_TEMPLATE_INSTANTIATIONS and
3517         DECL_TEMPLATE_RESULT emulations.
3518         (dump_ada_template)): Add guard for TYPE_METHODS.
3519
3520 2015-02-27  Marek Polacek  <polacek@redhat.com>
3521
3522         PR c/65040
3523         * c.opt (Wformat-signedness): Don't enable by -Wformat=2.
3524
3525 2015-02-27  Kai Tietz  <ktietz@redhat.com>
3526
3527         PR c/35330
3528         * c-pragma.c (handle_pragma_weak): Do not try to create
3529         weak/alias of declarations not being function, or variable
3530         declarations.
3531
3532 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
3533
3534         PR libgomp/64625
3535         * c-common.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
3536         Remove macros.
3537         (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
3538
3539 2015-02-16  Marek Polacek  <polacek@redhat.com>
3540
3541         PR c/65066
3542         * c-format.c (check_format_types): Handle null param.
3543
3544 2015-02-13  Marek Polacek  <polacek@redhat.com>
3545
3546         PR c/65040
3547         * c-format.c (check_format_types): Don't warn about different
3548         signedness if the original value is in the range of WANTED_TYPE.
3549
3550 2015-02-12  Jason Merrill  <jason@redhat.com>
3551
3552         PR c++/64956
3553         * c-opts.c (c_common_post_options): Change flag_abi_version from 0
3554         to the current highest version.
3555         * c-cppbuiltin.c (c_cpp_builtins): Assert that it isn't 0.
3556
3557 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
3558
3559         PR c/64824
3560         PR c/64868
3561         * c-omp.c (c_finish_omp_atomic): Use TRUNC_DIV_EXPR
3562         instead of RDIV_EXPR.  Use build_binary_op instead of
3563         build2_loc.
3564
3565 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
3566
3567         * c-opts.c, c-pch.c, cppspec.c: All callers of fatal_error changed
3568         to pass input_location as first argument.
3569
3570 2015-01-23  Tom de Vries  <tom@codesourcery.com>
3571
3572         PR libgomp/64672
3573         * c.opt (fopenacc): Mark as LTO option.
3574
3575 2015-01-23  Tom de Vries  <tom@codesourcery.com>
3576
3577         PR libgomp/64707
3578         * c.opt (fopenmp): Mark as LTO option.
3579
3580 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
3581
3582         PR c/63307
3583         * cilk.c (fill_decls_vec): Only put decls into vector v.
3584         (compare_decls): Fix up formatting.
3585
3586 2015-01-21  Igor Zamyatin  <igor.zamyatin@intel.com>
3587
3588         PR c/63307
3589         * cilk.c: Include vec.h.
3590         (struct cilk_decls): New structure.
3591         (wrapper_parm_cb): Split this function to...
3592         (fill_decls_vec): ...this...
3593         (create_parm_list): ...and this.
3594         (compare_decls): New function.
3595         (for_local_cb): Remove.
3596         (wrapper_local_cb): Ditto.
3597         (build_wrapper_type): For now first traverse and fill vector of
3598         declarations then sort it and then deal with sorted vector.
3599         (cilk_outline): Ditto.
3600         (declare_one_free_variable): Ditto.
3601
3602 2015-01-21  Jason Merrill  <jason@redhat.com>
3603
3604         PR c++/64629
3605         * c-format.c (check_format_arg): Call decl_constant_value.
3606
3607 2015-01-19  Martin Liska  <mliska@suse.cz>
3608
3609         * c-common.c (handle_noicf_attribute): New function.
3610
3611 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
3612             Bernd Schmidt  <bernds@codesourcery.com>
3613             James Norris  <jnorris@codesourcery.com>
3614             Cesar Philippidis  <cesar@codesourcery.com>
3615             Ilmir Usmanov  <i.usmanov@samsung.com>
3616             Jakub Jelinek  <jakub@redhat.com>
3617
3618         * c.opt (fopenacc): New option.
3619         * c-cppbuiltin.c (c_cpp_builtins): Conditionally define _OPENACC.
3620         * c-common.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
3621         New macros.
3622         * c-common.h (c_finish_oacc_wait): New prototype.
3623         * c-omp.c: Include "omp-low.h" and "gomp-constants.h".
3624         (c_finish_oacc_wait): New function.
3625         * c-pragma.c (oacc_pragmas): New variable.
3626         (c_pp_lookup_pragma, init_pragma): Handle it.
3627         * c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_CACHE,
3628         PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA, PRAGMA_OACC_EXIT_DATA,
3629         PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP, PRAGMA_OACC_PARALLEL,
3630         PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
3631         (enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ASYNC,
3632         PRAGMA_OACC_CLAUSE_AUTO, PRAGMA_OACC_CLAUSE_COLLAPSE,
3633         PRAGMA_OACC_CLAUSE_COPY, PRAGMA_OACC_CLAUSE_COPYIN,
3634         PRAGMA_OACC_CLAUSE_COPYOUT, PRAGMA_OACC_CLAUSE_CREATE,
3635         PRAGMA_OACC_CLAUSE_DELETE, PRAGMA_OACC_CLAUSE_DEVICE,
3636         PRAGMA_OACC_CLAUSE_DEVICEPTR, PRAGMA_OACC_CLAUSE_FIRSTPRIVATE,
3637         PRAGMA_OACC_CLAUSE_GANG, PRAGMA_OACC_CLAUSE_HOST,
3638         PRAGMA_OACC_CLAUSE_IF, PRAGMA_OACC_CLAUSE_NUM_GANGS,
3639         PRAGMA_OACC_CLAUSE_NUM_WORKERS, PRAGMA_OACC_CLAUSE_PRESENT,
3640         PRAGMA_OACC_CLAUSE_PRESENT_OR_COPY,
3641         PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYIN,
3642         PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYOUT,
3643         PRAGMA_OACC_CLAUSE_PRESENT_OR_CREATE, PRAGMA_OACC_CLAUSE_PRIVATE,
3644         PRAGMA_OACC_CLAUSE_REDUCTION, PRAGMA_OACC_CLAUSE_SELF,
3645         PRAGMA_OACC_CLAUSE_SEQ, PRAGMA_OACC_CLAUSE_VECTOR,
3646         PRAGMA_OACC_CLAUSE_VECTOR_LENGTH, PRAGMA_OACC_CLAUSE_WAIT,
3647         PRAGMA_OACC_CLAUSE_WORKER.
3648
3649 2015-01-14  Marcos Diaz  <marcos.diaz@tallertechnologies.com>
3650
3651         * c-cppbuiltin.c (c_cpp_builtins): New cpp define __SSP_EXPLICIT__
3652         for the new option fstack-protector_explicit.
3653         * c-common.c (c_common_attribute_table): Add stack_protect attribute.
3654         (handle_stack_protect_attribute): New function.
3655
3656 2015-01-13  Martin Uecker  <uecker@eecs.berkeley.edu>
3657
3658         * c.opt: New option -Warray-bounds=.
3659
3660 2015-01-09  Michael Collison  <michael.collison@linaro.org>
3661
3662         * array-notation-common.c: Include hash-set.h, machmode.h,
3663         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3664         fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
3665         * c-ada-spec.c: Ditto.
3666         * c-cilkplus.c: Ditto.
3667         * c-common.c: Include input.h due to flattening of tree.h.
3668         Define macro GCC_C_COMMON_C.
3669         * c-common.h: Flatten tree.h header files into c-common.h.
3670         Remove include of tree-core.h.
3671         * c-cppbuiltin.c: Include hash-set.h, machmode.h,
3672         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3673         fold-const.h, wide-int.h, and inchash.h due to
3674         flattening of tree.h.
3675         * c-dump.c: Ditto.
3676         * c-format.c: Flatten tree.h header files into c-common.h.
3677         * c-cppbuiltin.c: Include hash-set.h, machmode.h,
3678         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3679         fold-const.h, wide-int.h, and inchash.h due to
3680         flattening of tree.h.
3681         * c-dump.c: Include hash-set.h, machmode.h,
3682         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3683         fold-const.h, wide-int.h, and inchash.h due to
3684         flattening of tree.h.
3685         * c-format.c: Include hash-set.h, machmode.h,
3686         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3687         fold-const.h, wide-int.h, inchash.h and real.h due to
3688         flattening of tree.h.
3689         * c-gimplify.c: Include hash-set.h, machmode.h,
3690         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3691         fold-const.h, wide-int.h, and inchash.h due to
3692         flattening of tree.h.
3693         * cilk.c: Ditto.
3694         * c-lex.c: Ditto.
3695         * c-omp.c: Ditto.
3696         * c-opts.c: Ditto.
3697         * c-pch.c: Ditto.
3698         * c-ppoutput.c: Ditto.
3699         * c-pragma.c: Ditto.
3700         * c-pretty-print.c: Ditto.
3701         * c-semantics.c: Ditto.
3702         * c-ubsan.c: Ditto.
3703         * stub-objc.c: Ditto.
3704
3705 2015-01-08  Jason Merrill  <jason@redhat.com>
3706
3707         * c-ubsan.c (ubsan_maybe_instrument_array_ref): Use
3708         do_ubsan_in_current_function.
3709         (ubsan_maybe_instrument_reference_or_call): Likewise.
3710         * c-ubsan.h: Declare it.
3711
3712 2015-01-08  Mike Stump  <mikestump@comcast.net>
3713
3714         * c-common.c (c_common_attribute_table): Add no_sanitize_thread.
3715
3716 2015-01-07  Marek Polacek  <polacek@redhat.com>
3717
3718         PR c/64440
3719         * c-common.c (c_fully_fold_internal): Warn for division and modulo
3720         if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST and is zero.
3721
3722 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
3723
3724         PR c++/31397
3725         * c.opt (Wsuggest-override): New option.
3726
3727 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
3728
3729         Update copyright years.
3730
3731 2015-01-05  Marek Polacek  <polacek@redhat.com>
3732
3733         PR c/64423
3734         * c-common.c (warn_array_subscript_with_type_char): Add location_t
3735         parameter.  Use it.
3736         * c-common.h (warn_array_subscript_with_type_char): Update
3737         declaration.
3738
3739 2014-12-20  Edward Smith-Rowland  <3dw4rd@verizon.net>
3740
3741         * c-cppbuiltin.c (__cpp_sized_deallocation): Uncomment and move macro.
3742         Control macro with flag_sized_deallocation.
3743
3744 2014-12-20  Martin Uecker  <uecker@eecs.berkeley.edu>
3745
3746         * c.opt (Wdiscarded-array-qualifiers): New option.
3747
3748 2014-12-19  Jakub Jelinek  <jakub@redhat.com>
3749
3750         PR preprocessor/63831
3751         * c-cppbuiltin.c (c_cpp_builtins): Don't define __has_attribute
3752         and __has_cpp_attribute here.
3753         * c-ppoutput.c (init_pp_output): Set cb->has_attribute to
3754         c_common_has_attribute.
3755         * c-common.h (c_common_has_attribute): New prototype.
3756         * c-lex.c (init_c_lex): Set cb->has_attribute to
3757         c_common_has_attribute instead of cb_has_attribute.
3758         (get_token_no_padding): New function.
3759         (cb_has_attribute): Renamed to ...
3760         (c_common_has_attribute): ... this.  No longer static.  Use
3761         get_token_no_padding, require ()s, don't build TREE_LIST
3762         unnecessarily, fix up formatting, adjust diagnostics, call
3763         init_attributes.
3764
3765 2014-12-15  Jason Merrill  <jason@redhat.com>
3766
3767         * c.opt (-fsized-deallocation, -Wc++14-compat): New.
3768         (-Wsized-deallocation): New.
3769         * c-opts.c (c_common_post_options): -fsized-deallocation defaults
3770         to on in C++14 and up.
3771
3772 2014-12-11  Jason Merrill  <jason@redhat.com>
3773
3774         * c-cppbuiltin.c (c_cpp_builtins): Enable C++14 __cpp_constexpr.
3775
3776         * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_runtime_arrays if
3777         we aren't complaining about VLAs.
3778
3779 2014-12-06  Marek Polacek  <polacek@redhat.com>
3780
3781         PR tree-optimization/64183
3782         * c-gimplify.c (c_gimplify_expr): Don't convert the RHS of a
3783         shift-expression if it is integer_type_node.  Use types_compatible_p.
3784
3785 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
3786
3787         * c-common.c (convert_vector_to_pointer_for_subscript): Remove NULL
3788         last argument from create_tmp_var_raw and create_tmp_var calls.
3789         * cilk.c (gimplify_cilk_spawn): Likewise.
3790         * c-omp.c (c_finish_omp_atomic): Likewise.
3791
3792 2014-11-28  Marek Polacek  <polacek@redhat.com>
3793
3794         * c-ubsan.c (ubsan_instrument_shift): Use op1_utype for MINUS_EXPR
3795         instead of unsigned_type_node.
3796
3797 2014-11-28  Marek Polacek  <polacek@redhat.com>
3798
3799         PR c/63862
3800         * c-ubsan.c (ubsan_instrument_shift): Change the type of a MINUS_EXPR
3801         to op1_utype.
3802         * c-gimplify.c (c_gimplify_expr): Convert right operand of a shift
3803         expression to unsigned_type_node.
3804
3805 2014-11-20  Mark Wielaard  <mjw@redhat.com>
3806
3807         PR debug/38757
3808         * c-opts.c (set_std_c89): Set lang_hooks.name.
3809         (set_std_c99): Likewise.
3810         (set_std_c11): Likewise.
3811         (set_std_cxx98): Likewise.
3812         (set_std_cxx11): Likewise.
3813         (set_std_cxx14): Likewise.
3814         (set_std_cxx1z): Likewise.
3815
3816 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3817
3818         PR target/63764
3819         * c-common.h (convert_vector_to_pointer_for_subscript): Change
3820         return type to bool.
3821         * c-common.c: Include gimple-expr.h.
3822         (convert_vector_to_pointer_for_subscript): Change return type to
3823         bool.  If *vecp is not lvalue_p and has VECTOR_TYPE, return true
3824         and copy it into a TARGET_EXPR and use that instead of *vecp
3825         directly.
3826
3827 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3828
3829         Merger of git branch "gimple-classes-v2-option-3".
3830         * ChangeLog.gimple-classes: New.
3831         * c-gimplify.c (add_block_to_enclosing): Strengthen local "stack"
3832         from being just a vec<gimple> to a vec<gbind *>.
3833
3834 2014-11-18  Jakub Jelinek  <jakub@redhat.com>
3835
3836         PR sanitizer/63813
3837         * c-ubsan.c (ubsan_maybe_instrument_reference_or_call): Change type
3838         argument to ptype, set type to TREE_TYPE (ptype).  Don't call
3839         get_pointer_alignment for non-pointers.  Use ptype, or if it is
3840         reference type, corresponding pointer type, as type of kind
3841         argument.
3842         (ubsan_maybe_instrument_reference,
3843         ubsan_maybe_instrument_member_call): Adjust callers.
3844
3845 2014-11-15  Marek Polacek  <polacek@redhat.com>
3846
3847         PR middle-end/63884
3848         * array-notation-common.c (is_sec_implicit_index_fn): Return false
3849         for NULL fndecl.
3850         (extract_array_notation_exprs): Return for NULL node.
3851
3852 2014-11-12  Joseph Myers  <joseph@codesourcery.com>
3853
3854         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define and
3855         undefine __NO_MATH_ERRNO__ based on changes to -fmath-errno state.
3856
3857 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
3858
3859         PR c/59708
3860         * c-common.c (check_builtin_function_arguments): Handle
3861         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW.
3862
3863 2014-11-10  Andi Kleen  <ak@linux.intel.com>
3864
3865         PR c/60804
3866         * c-common.h (check_no_cilk): Declare.
3867         * cilk.c (get_error_location): New function.
3868         (check_no_cilk): Dito.
3869
3870 2014-11-10  Andi Kleen  <ak@linux.intel.com>
3871
3872         * cilk.c (recognize_spawn): Use expression location
3873         for error message.
3874
3875 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
3876
3877         * c.opt ([Wshift-count-negative, Wshift-count-overflow]): Add.
3878
3879 2014-11-10  Edward Smith-Rowland  <3dw4rd@verizon.net>
3880
3881         * c-cppbuiltin.c (__has_attribute, __has_cpp_attribute): New macros;
3882         (__cpp_rtti, __cpp_exceptions): New macros for C++98;
3883         (__cpp_range_based_for, __cpp_initializer_lists,
3884         __cpp_delegating_constructors, __cpp_nsdmi,
3885         __cpp_inheriting_constructors, __cpp_ref_qualifiers): New macros
3886         for C++11; (__cpp_attribute_deprecated): Remove in favor of
3887         __has_cpp_attribute.
3888         * c-lex.c (cb_has_attribute): New callback CPP function;
3889         (init_c_lex): Set has_attribute callback.
3890
3891 2014-11-04  Richard Biener  <rguenther@suse.de>
3892
3893         * c-common.c (shorten_compare): Do not shorten mixed
3894         DFP and non-DFP compares.
3895
3896 2014-11-01  Edward Smith-Rowland  <3dw4rd@verizon.net>
3897
3898         * g++.dg/cpp1y/feat-cxx11.C: Commentary and rearrangement of tests.
3899         * g++.dg/cpp1y/feat-cxx11-neg.C: Add aggregate NSDMI test.
3900         Commentary and rearrangement of tests.
3901         * g++.dg/cpp1y/feat-cxx14.C: Enable aggregate NSDMI test.
3902         Commentary and rearrangement of tests.
3903         * g++.dg/cpp1y/feat-cxx98-neg.C: Ditto
3904         * g++.dg/cpp1y/feat-cxx98.C: Commentary.
3905
3906 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
3907
3908         * c-common.c, c-common.h, c-cppbuiltin.c, c-lex.c: Remove redundant
3909         enum from machine_mode.
3910
3911 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
3912
3913         * c-common.c: Adjust include files.
3914         * c-gimplify.c: Ditto.
3915         * cilk.c: Ditto.
3916         * c-pragma.c: Ditto.
3917         * c-ubsan.c: Ditto.
3918
3919 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
3920
3921         * c-gimplify.c: Adjust include files.
3922
3923 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3924
3925         PR c++/53061
3926         * c-opts.c (c_common_diagnostics_set_defaults): Renamed from
3927         c_common_initialize_diagnostics.
3928         * c-common.h: Likewise.
3929
3930 2014-10-24  Marek Polacek  <polacek@redhat.com>
3931
3932         PR c/56980
3933         * c-pretty-print.c (c_pretty_printer::simple_type_specifier): Don't
3934         print "struct"/"union"/"enum" for typedefed names.
3935
3936 2014-10-23  Marek Polacek  <polacek@redhat.com>
3937
3938         * c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
3939         in unsigned type.
3940
3941 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
3942             Yury Gribov  <y.gribov@samsung.com>
3943
3944         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
3945         ubsan_instrument_vla): Check bits in flag_sanitize_recover bitmask
3946         instead of flag_sanitize_recover as bool flag.
3947
3948 2014-10-21  Kirill Yukhin  <kirill.yukhin@intel.com>
3949
3950         * cilk.c: Revert previous change.
3951
3952 2014-10-20  Igor Zamyatin  <igor.zamyatin@intel.com>
3953
3954         PR c/63307
3955         * cilk.c: Include vec.h.
3956         (struct cilk_decls): New structure.
3957         (wrapper_parm_cb): Split this function to...
3958         (fill_decls_vec): ...this...
3959         (create_parm_list): ...and this.
3960         (compare_decls): New function.
3961         (for_local_cb): Remove.
3962         (wrapper_local_cb): Ditto.
3963         (build_wrapper_type): For now first traverse and fill vector of
3964         declarations then sort it and then deal with sorted vector.
3965         (cilk_outline): Ditto.
3966         (declare_one_free_variable): Ditto.
3967
3968 2014-10-17  Marek Polacek  <polacek@redhat.com>
3969
3970         * c-opts.c (c_common_post_options): Set warn_implicit_int.
3971         * c.opt (Wimplicit-int): Initialize to -1.
3972
3973 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
3974
3975         * c-pragma.c: Adjust include files.
3976         * c-semantics.c: Likewise.
3977
3978 2014-10-16  DJ Delorie  <dj@redhat.com>
3979
3980         * c-cppbuiltin.c (cpp_atomic_builtins): Don't assume pointers are
3981         multiples of bytes.
3982
3983 2014-10-14  Jason Merrill  <jason@redhat.com>
3984
3985         PR c++/63455
3986         * c-common.h (CPP_PREPARSED_EXPR): New.
3987         (N_CP_TTYPES): Adjust.
3988
3989 2014-10-15  Marek Polacek  <polacek@redhat.com>
3990
3991         * c-opts.c (c_common_init_options): Make -std=gnu11 the default for C.
3992
3993 2014-10-14  DJ Delorie  <dj@redhat.com>
3994
3995         * c-pretty-print.c (pp_c_integer_constant): Check for all __intN
3996         types, not just __int128.
3997         * c-cppbuiltin.c (c_cpp_builtins): Add builtins for all __intN
3998         types, not just __int128.
3999         (cpp_atomic_builtins): Round pointer sizes up.
4000         (type_suffix): Use type precision, not specific types.
4001         * c-common.c (c_common_reswords): Remove __int128 special case.
4002         (c_common_type_for_size): Check for all __intN types, not just
4003         __int128.
4004         (c_common_type_for_mode): Likewise.
4005         (c_common_signed_or_unsigned_type): Likewise.
4006         (c_build_bitfield_integer_type): Likewise.
4007         (c_common_nodes_and_builtins): Likewise.
4008         (keyword_begins_type_specifier): Likewise.
4009         * c-common.h (rid): Remove RID_INT128 and add RID_INT_N_* for all
4010         __intN variants.
4011
4012 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
4013
4014         * c-common.c: Use hash_table instead of hashtab.
4015
4016 2014-10-06  Edward Smith-Rowland  <3dw4rd@verizon.net>
4017
4018         * c-cppbuiltin.c: Move __cpp_attribute_deprecated to the
4019         C++11 section.
4020
4021 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
4022
4023         PR c++/54427
4024         PR c++/57198
4025         PR c++/58845
4026         * c-common.c (warn_logical_operator): Punt for vectors.
4027
4028 2014-10-01  Edward Smith-Rowland  <3dw4rd@verizon.net>
4029
4030         Implement SD-6: SG10 Feature Test Recommendations
4031         * c-cppbuiltin.c (c_cpp_builtins()): Define language feature
4032         macros and the __has_header macro.
4033
4034 2014-09-30  Jason Merrill  <jason@redhat.com>
4035
4036         * c-common.h (enum rid): Add RID_IS_TRIVIALLY_ASSIGNABLE and
4037         RID_IS_TRIVIALLY_CONSTRUCTIBLE.
4038         * c-common.c (c_common_reswords): Add __is_trivially_copyable.
4039
4040         * c-common.h (enum rid): Add RID_IS_TRIVIALLY_COPYABLE.
4041         * c-common.c (c_common_reswords): Add __is_trivially_copyable.
4042
4043         * c-common.h (enum rid): Remove RID_IS_CONVERTIBLE_TO.
4044         * c-common.c (c_common_reswords): Remove __is_convertible_to.
4045
4046 2014-09-24  Marek Polacek  <polacek@redhat.com>
4047
4048         PR c/61405
4049         PR c/53874
4050         * c-common.h (struct c_common_resword): Don't define CPP_KEYWORD.
4051
4052 2014-09-23  Andi Kleen  <ak@linux.intel.com>
4053
4054         * c-common.c (handle_no_reorder_attribute): New function.
4055         (c_common_attribute_table): Add no_reorder attribute.
4056
4057 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
4058
4059         * c-cppbuiltin.c (c_cpp_builtins): Define
4060         __LIBGCC_*_EXCESS_PRECISION__ macros for supported floating-point
4061         modes.
4062
4063 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
4064
4065         * c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_*_FUNC_EXT__
4066         for supported floating-point modes.
4067
4068 2014-09-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4069
4070         * c.opt (Wpsabi): Use LangEnabledBy.
4071         * c-opts.c (c_common_handle_option): Do not handle here.
4072
4073 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
4074
4075         * c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_HAS_%s_MODE__
4076         macros for floating-point modes.
4077
4078 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
4079
4080         PR target/58757
4081         * c-cppbuiltin.c (builtin_define_float_constants): Correct
4082         __*_DENORM_MIN__ without denormals.
4083
4084 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
4085
4086         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
4087         ubsan_instrument_vla, ubsan_instrument_return): Adjust
4088         ubsan_create_data callers.
4089         (ubsan_instrument_bounds): Don't emit UBSAN_BOUNDS at all if
4090         index is constant or BIT_AND_EXPR with constant mask and is
4091         small enough for the bound.
4092         * c-gimplify.c (ubsan_walk_array_refs_r): For ADDR_EXPR of
4093         ARRAY_REF, make sure the inner ARRAY_REF is not walked again.
4094
4095 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4096
4097         * c.opt: Add CppReason to various flags.
4098         (Wdate-time): Re-sort.
4099         * c-common.c: Include c-common.h earlier.
4100         (struct reason_option_codes_t): Delete.
4101         (c_option_controlling_cpp_error): Prefix global type and struct
4102         with cpp_.
4103
4104 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4105
4106         * c.opt (Wnormalized): New.
4107         (Wnormalized=): Use Enum and Reject Negative.
4108         * c-opts.c (c_common_handle_option): Do not handle Wnormalized here.
4109
4110 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
4111
4112         * c-cppbuiltin.c (c_cpp_builtins): Define macros for mantissa
4113         digits of floating-point modes if -fbuilding-libgcc.
4114
4115 2014-09-05  Joseph Myers  <joseph@codesourcery.com>
4116
4117         * c-cppbuiltin.c (c_cpp_builtins): Also define
4118         __LIBGCC_EH_TABLES_CAN_BE_READ_ONLY__,
4119         __LIBGCC_EH_FRAME_SECTION_NAME__, __LIBGCC_JCR_SECTION_NAME__,
4120         __LIBGCC_CTORS_SECTION_ASM_OP__, __LIBGCC_DTORS_SECTION_ASM_OP__,
4121         __LIBGCC_TEXT_SECTION_ASM_OP__, __LIBGCC_INIT_SECTION_ASM_OP__,
4122         __LIBGCC_INIT_ARRAY_SECTION_ASM_OP__,
4123         __LIBGCC_STACK_GROWS_DOWNWARD__,
4124         __LIBGCC_DONT_USE_BUILTIN_SETJMP__,
4125         __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__,
4126         __LIBGCC_DWARF_FRAME_REGISTERS__,
4127         __LIBGCC_EH_RETURN_STACKADJ_RTX__, __LIBGCC_JMP_BUF_SIZE__,
4128         __LIBGCC_STACK_POINTER_REGNUM__ and
4129         __LIBGCC_VTABLE_USES_DESCRIPTORS__ for -fbuilding-libgcc.
4130         (builtin_define_with_value): Handle backslash-escaping in string
4131         macro values.
4132
4133 2014-09-05  Richard Biener  <rguenther@suse.de>
4134
4135         PR middle-end/63148
4136         * c-format.c (check_format_arg): Properly handle
4137         effectively signed POINTER_PLUS_EXPR offset.
4138
4139 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4140
4141         * c.opt (Wc90-c99-compat,Wc++-compat,Wcomment,Wendif-labels,
4142         Winvalid-pch,Wlong-long,Wmissing-include-dirs,Wmultichar,Wpedantic,
4143         (Wdate-time,Wtraditional,Wundef,Wvariadic-macros): Add CPP, Var
4144         and Init.
4145         * c-opts.c (c_common_handle_option): Do not handle here.
4146         (sanitize_cpp_opts): Likewise.
4147         * c-common.c (struct reason_option_codes_t): Handle
4148         CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
4149
4150 2014-09-03  Marek Polacek  <polacek@redhat.com>
4151
4152         * c.opt (Wlogical-not-parentheses): Enable by -Wall.
4153
4154 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
4155             Balaji V. Iyer  <balaji.v.iyer@intel.com>
4156             Igor Zamyatin  <igor.zamyatin@intel.com>
4157
4158         * c-cilkplus.c (cilk_for_number_of_iterations): New function.
4159         * c-common.c (c_common_reswords): Added _Cilk_for.
4160         * c-common.h (enum rid): Added RID_CILK_FOR.
4161         (cilk_for_number_of_iterations): Add declaration.
4162         * c-omp.c (c_finish_omp_for): Added checks for CILK_SIMD and
4163         CILK_FOR.
4164         * c-pragma.c (init_pragma): Register "grainsize" pragma.
4165         * c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_GRAINSIZE.
4166
4167 2014-08-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4168
4169         * c.opt (Wbuiltin-macro-redefined,Wdeprecated,Wendif-labels,
4170         Winvalid-pch,Wliteral-suffix,Wmissing-include-dirs,Wtrigraphs,
4171         Wundef): Use CPP, Var and Init.
4172         * c-opts.c (c_common_handle_option): Do not handle the above flags here.
4173
4174 2014-08-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4175
4176         * c.opt (Wbuiltin-macro-redefined): Use CPP, Var and Init.
4177         * c-opts.c (c_common_handle_option): Do not handle here.
4178
4179 2014-08-25  Jason Merrill  <jason@redhat.com>
4180
4181         * c.opt: Change -std=c++1y and -std=gnu++1y to be aliases for
4182         -std=c++14 and -std=gnu++14, rather than the reverse.
4183         * c-opts.c (c_common_handle_option): Change OPT_std_c__1y and
4184         OPT_std_gnu__1y to OPT_std_c__14 and OPT_std_gnu__14.
4185         * c-common.h (cxx_dialect): Remove cxx1y.
4186
4187 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
4188
4189         * c-common.h (enum cxx_dialect): Add cxx14.
4190         * c-opts.c (set_std_cxx1y): Rename to set_std_cxx14; Use cxx14.
4191         * c-ubsan.c (ubsan_instrument_shift): Change comment and logic from
4192         cxx_dialect == cxx11 || cxx_dialect == cxx1y to cxx_dialect >= cxx11.
4193
4194 2014-08-22  Jason Merrill  <jason@redhat.com>
4195
4196         * c.opt (std=gnu++17): Fix alias.
4197
4198 2014-08-22  Marek Polacek  <polacek@redhat.com>
4199
4200         PR c++/62199
4201         * c-common.c (warn_logical_not_parentheses): Don't check LHS.  Don't
4202         check for vector types.  Drop LHS argument.
4203         * c-common.h (warn_logical_not_parentheses): Adjust.
4204
4205 2014-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4206
4207         * c.opt (Wcomment): Use CPP, Var and LangEnabledBy.
4208         (Wmultichar): Likewise.
4209         (Wdate-time): Use C-family languages instead of Common. Use CPP
4210         and Var.
4211         * c-opts.c (c_common_handle_option): Do not handle the above
4212         options here.
4213         (sanitize_cpp_opts): Likewise.
4214
4215 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4216
4217         PR fortran/44054
4218         * c-opts.c: Include tree-diagnostics.h.
4219         (c_diagnostic_finalizer): New.
4220         (c_common_initialize_diagnostics): Use it.
4221
4222 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4223
4224         PR preprocessor/51303
4225         * c-common.c (struct reason_option_codes_t option_codes):
4226         Add CPP_W_MISSING_INCLUDE_DIRS. Sort alphabetically.
4227
4228 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4229
4230         PR c/60975
4231         PR c/53063
4232         * c.opt (Wvariadic-macros): Use CPP and LangEnabledBy.
4233         * c-opts.c (c_common_handle_option): Call cpp_handle_option_auto.
4234         (c_common_post_options): Call init_global_opts_from_cpp.
4235         (sanitize_cpp_opts): Do not handle Wvariadic-macros here.
4236
4237 2014-08-19  Marek Polacek  <polacek@redhat.com>
4238
4239         PR c++/62153
4240         * c-common.c (maybe_warn_bool_compare): New function.
4241         * c-common.h (maybe_warn_bool_compare): Declare.
4242         * c.opt (Wbool-compare): New option.
4243
4244 2014-08-19  Marek Polacek  <polacek@redhat.com>
4245
4246         * c.opt (Wc99-c11-compat): New option.
4247
4248 2014-08-19  Marek Polacek  <polacek@redhat.com>
4249
4250         * c-opts.c (sanitize_cpp_opts): Make warn_long_long be set according
4251         to warn_c90_c99_compat.
4252         * c.opt (Wc90-c99-compat, Wdeclaration-after-statement): Initialize
4253         to -1.
4254
4255 2014-08-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4256             Steven Bosscher  <steven@gcc.gnu.org>
4257
4258         PR c/52952
4259         * c-format.c: Add extra_arg_loc and format_string_loc to struct
4260         format_check_results.
4261         (check_function_format): Use true and add comment for boolean
4262         argument.
4263         (finish_dollar_format_checking): Use explicit location when warning.
4264         (check_format_info): Likewise.
4265         (check_format_arg): Set extra_arg_loc and format_string_loc.
4266         (check_format_info_main): Use explicit location when warning.
4267         (check_format_types): Pass explicit location.
4268         (format_type_warning): Likewise.
4269
4270 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4271
4272         PR fortran/44054
4273         * c-format.c: Handle Fortran flags.
4274
4275 2014-08-12  Igor Zamyatin  <igor.zamyatin@intel.com>
4276
4277         PR other/61962
4278         * array-notation-common.c (find_rank): Added handling for other
4279         types of references.
4280
4281 2014-08-10  Marek Polacek  <polacek@redhat.com>
4282
4283         PR c/51849
4284         * c-opts.c (sanitize_cpp_opts): Pass warn_c90_c99_compat to libcpp.
4285         * c.opt (Wc90-c99-compat): Add option.
4286
4287 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
4288
4289         * c-gimplify.c, cilk.c: Remove includes of pointer-set.h.
4290
4291 2014-08-03  Marek Polacek  <polacek@redhat.com>
4292
4293         * c-common.c (check_case_value):  Add location_t parameter.  Use it.
4294         (c_add_case_label): Pass loc to check_case_value.
4295
4296 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
4297
4298         * cilk.c: Use hash_map instead of pointer_map.
4299
4300 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
4301
4302         * c-gimplify.c: Use hash_set instead of pointer_set.
4303
4304 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
4305
4306         PR middle-end/61455
4307         * array-notation-common.c (extract_array_notation_exprs): Handling
4308         of DECL_EXPR added.
4309
4310 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
4311
4312         * c-common.h (min_align_of_type): Removed prototype.
4313         * c-common.c (min_align_of_type): Removed.
4314         * c-ubsan.h (ubsan_maybe_instrument_reference,
4315         ubsan_maybe_instrument_member_call): New prototypes.
4316         * c-ubsan.c: Include stor-layout.h and builtins.h.
4317         (ubsan_maybe_instrument_reference_or_call,
4318         ubsan_maybe_instrument_reference, ubsan_maybe_instrument_call): New
4319         functions.
4320
4321 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
4322
4323         PR c++/60517
4324         * c.opt (-Wreturn-local-addr): Move to common.opt.
4325
4326 2014-07-30  Jason Merrill  <jason@redhat.com>
4327
4328         PR c++/61659
4329         PR c++/61687
4330         Revert:
4331         * c.opt (-fuse-all-virtuals): New.
4332
4333 2014-07-30  Tom Tromey  <tromey@redhat.com>
4334
4335         PR c/59855
4336         * c.opt (Wdesignated-init): New option.
4337         * c-common.c (c_common_attribute_table): Add "designated_init".
4338         (handle_designated_init): New function.
4339
4340 2014-07-24  Marek Polacek  <polacek@redhat.com>
4341
4342         PR c/57653
4343         * c-opts.c (c_finish_options): If -imacros is in effect, return.
4344
4345 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
4346
4347         PR preprocessor/60723 - missing system-ness marks for macro tokens
4348         * c-ppoutput.c (struct print::prev_was_system_token): New data
4349         member.
4350         (init_pp_output): Initialize it.
4351         (maybe_print_line_1, maybe_print_line, print_line_1, print_line)
4352         (do_line_change): Return a flag saying if a line marker was
4353         emitted or not.
4354         (scan_translation_unit): Detect if the system-ness of the token we
4355         are about to emit is different from the one of the previously
4356         emitted token.  If so, emit a line marker.  Avoid emitting useless
4357         adjacent line markers.  Avoid emitting line markers for tokens
4358         originating from the expansion of built-in macros.
4359         (scan_translation_unit_directives_only): Adjust.
4360
4361 2014-07-15  Marek Polacek  <polacek@redhat.com>
4362
4363         * c-ubsan.c (ubsan_instrument_bounds): Don't instrument if
4364         TYPE_MAX_VALUE is NULL.
4365
4366 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
4367
4368         PR middle-end/61294
4369         * c.opt (Wmemset-transposed-args): New warning.
4370
4371 2014-07-10  Jason Merrill  <jason@redhat.com>
4372
4373         PR c++/61659
4374         PR c++/61687
4375         * c.opt (-fuse-all-virtuals): New.
4376
4377 2014-07-09  Richard Biener  <rguenther@suse.de>
4378
4379         PR c-family/61741
4380         * c-gimplify.c (c_gimplify_expr): Gimplify self-modify expressions
4381         using unsigned arithmetic if overflow does not wrap instead of
4382         if overflow is undefined.
4383
4384 2014-07-06  Marek Polacek  <polacek@redhat.com>
4385
4386         PR c/6940
4387         * c.opt (Wsizeof-array-argument): New option.
4388
4389 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
4390
4391         * c-ada-spec.c (dump_ada_nodes): Don't call qsort if
4392         comments->count <= 1, as comments->entries might be NULL.
4393
4394 2014-07-01  Marek Polacek  <polacek@redhat.com>
4395
4396         * c.opt (Wint-conversion): New option.
4397
4398 2014-07-01  Marek Polacek  <polacek@redhat.com>
4399
4400         PR c/58286
4401         * c.opt (Wincompatible-pointer-types): New option.
4402
4403 2014-06-30  Paolo Carlini  <paolo.carlini@oracle.com>
4404
4405         PR c++/51400
4406         * c-common.c (handle_noreturn_attribute, handle_const_attribute):
4407         Do not discard TYPE_QUALS of type.
4408
4409 2014-06-26  Jason Merrill  <jason@redhat.com>
4410
4411         * c-common.h (enum cxx_dialect): Add cxx1z.
4412         * c.opt (std=c++1z, std=c++17, std=gnu++1z, std=gnu++17): New.
4413         * c-opts.c (c_common_handle_option, set_std_cxx1z): Handle it.
4414
4415 2014-06-26  Teresa Johnson  <tejohnson@google.com>
4416
4417         * c-common.h (get_dump_info): Declare.
4418         * c-gimplify.c (c_genericize): Use saved dump files.
4419         * c-opts.c (c_common_parse_file): Begin and end dumps
4420         once around parsing invocation.
4421         (get_dump_info): New function.
4422
4423 2014-06-23  Marek Polacek  <polacek@redhat.com>
4424             Andrew MacLeod  <amacleod@redhat.com>
4425
4426         PR c/61553
4427         * c-common.c (get_atomic_generic_size): Don't segfault if the
4428         type doesn't have a size.
4429
4430 2014-06-20  Marek Polacek  <polacek@redhat.com>
4431
4432         * c-gimplify.c: Include "c-ubsan.h" and "pointer-set.h".
4433         (ubsan_walk_array_refs_r): New function.
4434         (c_genericize): Instrument array bounds.
4435         * c-ubsan.c: Include "internal-fn.h".
4436         (ubsan_instrument_division): Mark instrumented arrays as having
4437         side effects.  Adjust ubsan_type_descriptor call.
4438         (ubsan_instrument_shift): Likewise.
4439         (ubsan_instrument_vla): Adjust ubsan_type_descriptor call.
4440         (ubsan_instrument_bounds): New function.
4441         (ubsan_array_ref_instrumented_p): New function.
4442         (ubsan_maybe_instrument_array_ref): New function.
4443         * c-ubsan.h (ubsan_instrument_bounds): Declare.
4444         (ubsan_array_ref_instrumented_p): Declare.
4445         (ubsan_maybe_instrument_array_ref): Declare.
4446
4447 2014-06-20  Hale Wang  <hale.wang@arm.com>
4448
4449         PR lto/61123
4450         * c.opt (fshort-enums): Add to LTO.
4451         * c.opt (fshort-wchar): Likewise.
4452
4453 2014-06-16  Marek Polacek  <polacek@redhat.com>
4454
4455         PR c/60439
4456         * c.opt (Wswitch-bool): Add Var.
4457
4458 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
4459
4460         PR middle-end/61486
4461         * c-omp.c (c_omp_split_clauses): Don't crash on firstprivate in
4462         #pragma omp target teams or
4463         #pragma omp {,target }teams distribute simd.
4464
4465 2014-06-12  Jason Merrill  <jason@redhat.com>
4466
4467         * c.opt (Wabi=, fabi-compat-version): New.
4468         * c-opts.c (c_common_handle_option): Handle -Wabi=.
4469         (c_common_post_options): Handle flag_abi_compat_version default.
4470         Disallow -fabi-compat-version=1.
4471         * c-common.h (abi_version_crosses): New.
4472
4473 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
4474
4475         * c-common.c (handle_section_attribute): Update handling for
4476         section names that are no longer trees.
4477
4478 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
4479
4480         PR fortran/60928
4481         * c-pragma.c (omp_pragmas_simd): Move PRAGMA_OMP_TASK...
4482         (omp_pragmas): ... back here.
4483
4484 2014-06-05  Marek Polacek  <polacek@redhat.com>
4485
4486         PR c/49706
4487         * c-common.c (warn_logical_not_parentheses): New function.
4488         * c-common.h (warn_logical_not_parentheses): Declare.
4489         * c.opt (Wlogical-not-parentheses): New option.
4490
4491 2014-06-04  Marek Polacek  <polacek@redhat.com>
4492
4493         PR c/30020
4494         * c-common.c (check_case_bounds): Add location parameter.
4495         Use it.
4496         (c_add_case_label): Pass loc to check_case_bounds.
4497
4498 2014-06-03  Marek Polacek  <polacek@redhat.com>
4499
4500         PR c/60439
4501         * c.opt (Wswitch-bool): New option.
4502
4503 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
4504
4505         * c-common.h (c_omp_sharing_predetermined, c_omp_remap_decl):
4506         Remove prototypes.
4507         (record_types_used_by_current_var_decl): Move prototype to where
4508         it belongs.
4509
4510         * c-common.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
4511         (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
4512         (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
4513
4514 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
4515
4516         * c-common.h (CTI_VOID_ZERO, void_zero_node): Delete.
4517         * c-common.c (c_common_nodes_and_builtins): Don't initialize
4518         void_zero_node.
4519         * c-pretty-print.c (pp_c_void_constant): New function.
4520         (c_pretty_printer::constant, c_pretty_printer::primary_expression)
4521         (c_pretty_printer::expression): Handle VOID_CST.
4522         * cilk.c (extract_free_variables): Likewise.
4523         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift)
4524         (ubsan_instrument_vla): Use void_node instead of void_zero_node.
4525
4526 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
4527
4528         * c-common.h (sorted_fields_type): Remove variable_size GTY attribute.
4529         * c-pragma.c (push_alignment): Adjust.
4530         (handle_pragma_push_options): Likewise.
4531
4532 2014-05-09  Marek Polacek  <polacek@redhat.com>
4533
4534         PR c/50459
4535         * c-common.c (check_user_alignment): Return -1 if alignment is error
4536         node.
4537         (handle_aligned_attribute): Don't call default_conversion on
4538         FUNCTION_DECLs.
4539         (handle_vector_size_attribute): Likewise.
4540         (handle_tm_wrap_attribute): Handle case when wrap_decl is error node.
4541         (handle_sentinel_attribute): Call default_conversion and allow even
4542         integral types as an argument.
4543
4544 2014-05-08  Marek Polacek  <polacek@redhat.com>
4545
4546         PR c/61053
4547         * c-common.c (min_align_of_type): New function factored out from...
4548         (c_sizeof_or_alignof_type): ...here.
4549         * c-common.h (min_align_of_type): Declare.
4550
4551 2014-05-08  Marek Polacek  <polacek@redhat.com>
4552
4553         PR c/61077
4554         * c-common.c (check_main_parameter_types): Warn for _Atomic-qualified
4555         parameter type of main.
4556
4557 2014-05-07  DJ Delorie  <dj@redhat.com>
4558
4559         * c-cppbuiltin.c (print_bits_of_hex): New.
4560         (builtin_define_type_minmax): Print values using hex so as not to
4561         require a pre-computed list of string values.
4562
4563 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
4564             Mike Stump  <mikestump@comcast.net>
4565             Richard Sandiford  <rdsandiford@googlemail.com>
4566
4567         * c-ada-spec.c: Include wide-int.h.
4568         (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Remove.
4569         (dump_generic_ada_node): Use wide-int interfaces.
4570         * c-common.c: Include wide-int-print.h.
4571         (shorten_compare): Use wide-int interfaces and tree_int_cst_lt.
4572         (pointer_int_sum): Use wide-int interfaces.
4573         (c_common_nodes_and_builtins): Use make_int_cst.
4574         (match_case_to_enum_1): Use tree_fits_uhwi_p and tree_fits_shwi_p.
4575         (handle_alloc_size_attribute): Use wide-int interfaces.
4576         (get_nonnull_operand): Likewise.
4577         * c-format.c (get_constant): Use tree_fits_uhwi_p.
4578         * c-lex.c: Include wide-int.h.
4579         (narrowest_unsigned_type): Take a widest_int rather than two
4580         HOST_WIDE_INTs.
4581         (narrowest_signed_type): Likewise.
4582         (interpret_integer): Update accordingly.  Use wide-int interfaces.
4583         (lex_charconst): Use wide-int interfaces.
4584         * c-pretty-print.c: Include wide-int.h.
4585         (pp_c_integer_constant): Use wide-int interfaces.
4586         * cilk.c (declare_one_free_variable): Use tree_int_cst_lt instead of
4587         INT_CST_LT_UNSIGNED.
4588
4589 2014-05-06  Richard Biener  <rguenther@suse.de>
4590
4591         * c-opts.c (c_common_post_options): For -freestanding,
4592         -fno-hosted and -fno-builtin disable pattern recognition
4593         if not enabled explicitely.
4594
4595 2014-05-02  Marek Polacek  <polacek@redhat.com>
4596
4597         * c.opt (Wsizeof-pointer-memaccess): Describe option.
4598
4599 2014-05-01  Marek Polacek  <polacek@redhat.com>
4600
4601         PR c/43245
4602         * c.opt (Wdiscarded-qualifiers): Add.
4603
4604 2014-04-30  Marek Polacek  <polacek@redhat.com>
4605
4606         * c-ubsan.c (ubsan_instrument_division): Handle REAL_TYPEs.  Perform
4607         INT_MIN / -1 sanitization only for integer types.
4608
4609 2014-04-25  Marek Polacek  <polacek@redhat.com>
4610
4611         PR c/18079
4612         * c-common.c (handle_noinline_attribute): Warn if the attribute
4613         conflicts with always_inline attribute.
4614         (handle_always_inline_attribute): Warn if the attribute conflicts
4615         with noinline attribute.
4616
4617 2014-04-25  Marek Polacek  <polacek@redhat.com>
4618
4619         PR c/60156
4620         * c-common.c (check_main_parameter_types): Warn about variadic main.
4621
4622 2014-04-24  Mike Stump  <mikestump@comcast.net>
4623
4624         * c.opt (Wshadow-ivar): Default to on.
4625
4626 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
4627
4628         * c.opt (Wshadow-ivar, flocal-ivars, fivar-visibility): Add.
4629
4630 2014-04-23  Marek Polacek  <polacek@redhat.com>
4631
4632         * c-common.c (handle_tm_wrap_attribute): Tweak error message.
4633
4634 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
4635
4636         PR sanitizer/60275
4637         * c-ubsan.c (ubsan_instrument_return): Return __builtin_trap ()
4638         if flag_sanitize_undefined_trap_on_error.
4639         (ubsan_instrument_division, ubsan_instrument_shift,
4640         ubsan_instrument_vla): Likewise.  Use __ubsan_handle_*_abort ()
4641         if !flag_sanitize_recover.
4642
4643 2014-04-22  Marc Glisse  <marc.glisse@inria.fr>
4644
4645         PR libstdc++/43622
4646         * c-common.c (registered_builtin_types): Make non-static.
4647         * c-common.h (registered_builtin_types): Declare.
4648
4649 2014-04-14  Richard Biener  <rguenther@suse.de>
4650         Marc Glisse  <marc.glisse@inria.fr>
4651
4652         PR c/60819
4653         * c-common.c (convert_vector_to_pointer_for_subscript): Properly
4654         apply may-alias the scalar pointer type when applicable.
4655
4656 2014-04-12  Igor Zamyatin  <igor.zamyatin@intel.com>
4657
4658         PR middle-end/60467
4659         * cilk.c (cilk_set_spawn_marker): Remove FUNCTION_DECL
4660         as possible argument for Cilk_spawn.
4661
4662 2014-04-11  Tobias Burnus  <burnus@net-b.de>
4663
4664         PR c/60194
4665         * c.opt (Wformat-signedness): Add
4666         * c-format.c(check_format_types): Use it.
4667
4668 2014-04-11  Jason Merrill  <jason@redhat.com>
4669
4670         PR c++/57926
4671         * c-common.c (sync_resolve_size, get_atomic_generic_size): Call
4672         default_conversion for an array argument.
4673
4674 2014-04-08  Marek Polacek  <polacek@redhat.com>
4675
4676         PR sanitizer/60745
4677         * c-ubsan.c: Include asan.h.
4678         (ubsan_instrument_return): Call initialize_sanitizer_builtins.
4679
4680 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
4681
4682         * c.opt (Wnon-virtual-dtor): Auto set when Weffc++.
4683
4684 2014-04-02  Marek Polacek  <polacek@redhat.com>
4685
4686         * c-common.h (c_expand_expr): Remove declaration.
4687
4688 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
4689
4690         PR c++/60689
4691         * c-common.c (add_atomic_size_parameter): When creating new
4692         params vector, push the size argument first.
4693
4694 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
4695
4696         * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
4697         ubsan_instrument_vla, ubsan_instrument_return): Adjust
4698         ubsan_create_data callers.
4699
4700 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
4701
4702         PR debug/60603
4703         * c-opts.c (c_finish_options): Restore cb_file_change call to
4704         <built-in>.
4705
4706 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
4707
4708         PR middle-end/36282
4709         * c-pragma.c (apply_pragma_weak): Only look at
4710         TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) if
4711         DECL_ASSEMBLER_NAME_SET_P (decl).
4712         (maybe_apply_pending_pragma_weaks): Exit early if
4713         vec_safe_is_empty (pending_weaks) rather than only when
4714         !pending_weaks.
4715         (maybe_apply_pragma_weak): Likewise.  If !DECL_ASSEMBLER_NAME_SET_P,
4716         set assembler name back to NULL afterwards.
4717
4718 2014-03-11  Jason Merrill  <jason@redhat.com>
4719
4720         * c.opt: Add -std=gnu++14.
4721
4722 2014-03-11  Ian Bolton  <ian.bolton@arm.com>
4723
4724         * c-opts.c (c_common_post_options): Don't override
4725         -ffp-contract=fast if unsafe-math-optimizations is on.
4726
4727 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
4728
4729         * c.opt: Enable LTO FE for fshort-double.
4730
4731 2014-03-07  Jason Merrill  <jason@redhat.com>
4732
4733         * c.opt: Add -std=c++14.
4734
4735 2014-03-06  Marek Polacek  <polacek@redhat.com>
4736
4737         PR c/60197
4738         * cilk.c (contains_cilk_spawn_stmt): New function.
4739         (contains_cilk_spawn_stmt_walker): Likewise.
4740         (recognize_spawn): Give error on invalid use of _Cilk_spawn.
4741         * c-common.h (contains_cilk_spawn_stmt): Add declaration.
4742
4743 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
4744
4745         * c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_SIMD.
4746         (init_pragma): Call cpp_register_deferred_pragma for PRAGMA_CILK_SIMD
4747         even when flag_preprocess_only.
4748
4749 2014-02-26  Jason Merrill  <jason@redhat.com>
4750
4751         PR c++/59231
4752         PR c++/11586
4753         * c-common.c (shorten_compare): Don't check
4754         c_inhibit_evaluation_warnings.
4755
4756 2014-02-19  Jakub Jelinek  <jakub@redhat.com>
4757
4758         PR c/37743
4759         * c-common.c (c_common_nodes_and_builtins): When initializing
4760         c_uint{16,32,64}_type_node, also set corresponding
4761         uint{16,32,64}_type_node to the same value.
4762
4763         PR c++/60267
4764         * c-pragma.c (init_pragma): Don't call cpp_register_deferred_pragma
4765         for PRAGMA_IVDEP if flag_preprocess_only.
4766
4767 2014-02-12  Jakub Jelinek  <jakub@redhat.com>
4768
4769         PR c/60101
4770         * c-common.c (merge_tlist): If copy is true, call new_tlist,
4771         if false, add ADD itself, rather than vice versa.
4772         (verify_tree): For COND_EXPR, don't call merge_tlist with non-zero
4773         copy.  For SAVE_EXPR, only call merge_tlist once.
4774
4775 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
4776
4777         PR middle-end/60092
4778         * c-common.c (handle_alloc_size_attribute): Use tree_fits_uhwi_p
4779         and tree_to_uhwi.
4780         (handle_alloc_align_attribute, handle_assume_aligned_attribute): New
4781         functions.
4782         (c_common_attribute_table): Add alloc_align and assume_aligned
4783         attributes.
4784
4785 2014-02-06  Marek Polacek  <polacek@redhat.com>
4786
4787         PR c/60087
4788         * c-common.c (warn_for_sign_compare): Call warning_at with location
4789         instead of warning.
4790
4791 2014-02-05  Marek Polacek  <polacek@redhat.com>
4792
4793         PR c/53123
4794         * c-omp.c (c_finish_omp_atomic): Remove unreachable return
4795         statement.
4796
4797 2014-02-04  Marek Polacek  <polacek@redhat.com>
4798
4799         PR c/60036
4800         * c-common.c (conversion_warning): Unwrap C_MAYBE_CONST_EXPR and/or
4801         SAVE_EXPR.
4802
4803 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
4804
4805         PR c++/53017
4806         PR c++/59211
4807         * c-common.c (handle_aligned_attribute, handle_alloc_size_attribute,
4808         handle_vector_size_attribute, handle_nonnull_attribute): Call
4809         default_conversion on the attribute argument.
4810         (handle_nonnull_attribute): Increment the argument number.
4811
4812 2014-01-31  Marek Polacek  <polacek@redhat.com>
4813
4814         PR c/59963
4815         * c-common.c (add_atomic_size_parameter): Pass vNULL to
4816         build_function_call_vec.
4817         (resolve_overloaded_builtin): Likewise.
4818         * c-common.h (build_function_call_vec): Adjust declaration.
4819
4820 2014-01-30  Marek Polacek  <polacek@redhat.com>
4821
4822         PR c/59940
4823         * c-common.h (unsafe_conversion_p): Adjust declaration.
4824         (warnings_for_convert_and_check): Likewise.
4825         (convert_and_check): Likewise.
4826         * c-common.c (unsafe_conversion_p): Add location parameter.  Call
4827         expansion_point_location_if_in_system_header on it.
4828         (warnings_for_convert_and_check): Add location parameter.  Call
4829         expansion_point_location_if_in_system_header on it.  Use it.
4830         (convert_and_check): Add location parameter.  Use it.
4831         (conversion_warning): Likewise.
4832         (c_add_case_label): Adjust convert_and_check calls.
4833         (scalar_to_vector): Adjust unsafe_conversion_p calls.
4834
4835 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
4836
4837         * c-common.c (c_define_builtins): Replaced flag_enable_cilkplus with
4838         flag_cilkplus.
4839         * c-pragma.c (init_pragma): Likewise.
4840         * c.opt: Likewise.
4841
4842 2014-01-23  Marek Polacek  <polacek@redhat.com>
4843
4844         PR c/59846
4845         * c-common.c (shorten_compare): Add location_t parameter.
4846         * c-common.h (shorten_binary_op): Adjust declaration.
4847
4848 2014-01-23  Marek Polacek  <polacek@redhat.com>
4849
4850         PR c/58346
4851         * c-common.c (pointer_to_zero_sized_aggr_p): New function.
4852         * c-common.h: Declare it.
4853
4854 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
4855
4856         * c-ada-spec.h (dump_ada_specs): Revert prototype change.
4857         * c-ada-spec.c (dump_ads): Likewise.
4858         (cpp_check): Likewise.
4859         (dump_ada_specs): Likewise.
4860
4861 2014-01-15  Laurent Alfonsi  <laurent.alfonsi@st.com>
4862
4863         PR c++/49718
4864         * c-common.c (handle_no_instrument_function_attribute): Allow
4865         no_instrument_function attribute in class member
4866         definition/declaration.
4867
4868 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
4869
4870         PR c/58943
4871         * c-omp.c (c_finish_omp_atomic): Set in_late_binary_op around
4872         build_modify_expr with non-NOP_EXPR opcode.  Handle return from it
4873         being COMPOUND_EXPR.
4874         (c_finish_omp_for): Handle incr being COMPOUND_EXPR with first
4875         operand a SAVE_EXPR and second MODIFY_EXPR.
4876
4877 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
4878
4879         PR target/58115
4880         * c-pch.c (c_common_write_pch): Call
4881         prepare_target_option_nodes_for_pch.
4882
4883 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4884
4885         Update copyright years
4886
4887 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4888
4889         * array-notation-common.c, c-cilkplus.c: Use the standard form for
4890         the copyright notice.
4891
4892 2013-12-28  Eric Botcazou  <ebotcazou@adacore.com>
4893
4894         * c-ada-spec.c (print_constructor): New function.
4895         (print_destructor): Retrieve the origin of the destructor.
4896         (print_ada_declaration): Revamp handling of constructors/destructors.
4897
4898 2013-12-23  Stuart Hastings  <stuart@apple.com>
4899             Bill Maddox  <maddox@google.com>
4900             Jason Merrill  <jason@redhat.com>
4901
4902         * c.opt: Add -fdeclone-ctor-dtor.
4903         * c-opts.c (c_common_post_options): Default to on iff -Os.
4904
4905 2013-12-18  Balaji V. Iyer  <balaji.v.iyer@intel.com>
4906
4907         * c-common.c (c_common_attribute_table): Added "cilk simd function"
4908         attribute.
4909         * c-pragma.h (enum pragma_cilk_clause): Remove.
4910         (enum pragma_omp_clause):  Added the following fields:
4911         PRAGMA_CILK_CLAUSE_NOMASK, PRAGMA_CILK_CLAUSE_MASK,
4912         PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_NONE,
4913         PRAGMA_CILK_CLAUSE_LINEAR, PRAGMA_CILK_CLAUSE_PRIVATE,
4914         PRAGMA_CILK_CLAUSE_FIRSTPRIVATE, PRAGMA_CILK_CLAUSE_LASTPRIVATE,
4915         PRAGMA_CILK_CLAUSE_UNIFORM.
4916
4917
4918 2013-12-11  Balaji V. Iyer  <balaji.v.iyer@intel.com>
4919
4920         * cilk.c (cilk_outline): Made this function non-static.
4921         (gimplify_cilk_spawn): Removed pre_p and post_p arguments.
4922         (create_cilk_wrapper): Added a new parameter: a function pointer.
4923         (c_install_body_w_frame_cleanup): Remove
4924         (extract_free_variables): Added VEC_INIT_EXPR and CONSTRUCTOR case.
4925         * c-common.h (cilk_outline): New prototype.
4926         (gimplify_cilk_spawn): Removed two parameters.
4927         (cilk_install_body_with_frame_cleanup): New prototype.
4928         * c-gimplify.c (c_gimplify_expr): Added MODIFY_EXPR, CALL_EXPR and
4929         CILK_SPAWN_STMT case.
4930
4931 2013-12-11  Bernd Schmidt  <bernds@codesourcery.com>
4932
4933         * c-common.c (c_fully_fold_internal): Handle ADDR_SPACE_CONVERT_EXPR.
4934
4935         * c-common.h (enum c_tree_index): Remove CTI_INT_ARRAY_TYPE.
4936         (int_array_type_node): Remove.
4937         * c-common.c (c_common_nodes_and_builtins): Don't build it.
4938
4939 2013-12-05  Marek Polacek  <polacek@redhat.com>
4940
4941         PR c/52023
4942         * c-common.c (c_sizeof_or_alignof_type): Move a declaration into
4943         [ADJUST_FIELD_ALIGN].
4944
4945 2013-12-04  Joseph Myers  <joseph@codesourcery.com>
4946
4947         PR c/52023
4948         * c-common.c (c_sizeof_or_alignof_type): Add parameter min_alignof
4949         and check field alignment if set.
4950         * c-common.h (c_sizeof_or_alignof_type): Update prototype.
4951         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
4952
4953 2013-12-04  Jakub Jelinek  <jakub@redhat.com>
4954             Marek Polacek  <polacek@redhat.com>
4955
4956         * c-gimplify.c (c_gimplify_expr): If doing the integer-overflow
4957         sanitization, call unsigned_type_for only when !TYPE_OVERFLOW_WRAPS.
4958
4959 2013-11-29   H.J. Lu  <hongjiu.lu@intel.com>
4960
4961         PR c/59309
4962         * cilk.c (gimplify_cilk_spawn): Properly handle function without
4963         arguments.
4964
4965 2013-11-29  Jakub Jelinek  <jakub@redhat.com>
4966
4967         PR c/59280
4968         * c-common.c (get_priority): If TREE_VALUE (args) is IDENTIFIER_NODE,
4969         goto invalid.  If it is error_mark_node, don't issue further
4970         diagnostics.
4971
4972 2013-11-28  Sergey Ostanevich  <sergos.gnu@gmail.com>
4973
4974         * c.opt (Wopenmp-simd): New.
4975
4976 2013-11-22  Jakub Jelinek  <jakub@redhat.com>
4977
4978         * c-ubsan.h (ubsan_instrument_return): New prototype.
4979         * c-ubsan.c (ubsan_instrument_return): New function.
4980
4981 2013-11-22  Andrew MacLeod  <amacleod@redhat.com>
4982
4983         * c-common.c: Add required include files from gimple.h.
4984         * c-gimplify.c: Likewise
4985         * cilk.c: Likewise
4986
4987 2013-11-22  David Malcolm  <dmalcolm@redhat.com>
4988
4989         * c-common.c (unsafe_conversion_p): Remove use of
4990         EXPR_LOC_OR_HERE macro.
4991         (conversion_warning): Likewise.
4992         (warnings_for_convert_and_check): Likewise.
4993         (warn_for_collisions_1): Likewise.
4994         (shorten_compare): Likewise, and remove use of in_system_header
4995         macro, using the location from the former.
4996         * c-lex.c (dump_one_header): Remove use of input_filename macro.
4997         (cb_def_pragma): Remove use of in_system_header macro.
4998         (lex_string): Likewise.
4999         * c-pragma.c (handle_pragma_float_const_decimal64): Likewise.
5000
5001 2013-11-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
5002             Mike Stump  <mikestump@comcast.net>
5003             Richard Sandiford  <rdsandiford@googlemail.com>
5004
5005         * c-ada-spec.c (is_simple_enum): Use tree_to_shwi and tree_to_uhwi
5006         instead of TREE_INT_CST_LOW, in cases where there is a protecting
5007         tree_fits_shwi_p or tree_fits_uhwi_p.
5008         (dump_generic_ada_node): Likewise.
5009         * c-format.c (check_format_arg): Likewise.
5010         * c-pretty-print.c (pp_c_integer_constant): Likewise.
5011
5012 2013-11-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
5013
5014         * c-common.c (check_function_arguments_recurse): Use tree_to_uhwi.
5015
5016 2013-11-19  Joshua J Cogliati  <jrincayc@yahoo.com>
5017
5018         PR c/53001
5019         * c-common.c (unsafe_conversion_p): Make this function
5020         return an enumeration with more detail.
5021         (conversion_warning): Use the new return type of
5022         unsafe_conversion_p to separately warn either about conversions
5023         that lower floating point number precision or about the other
5024         kinds of conversions.
5025         * c-common.h (enum conversion_safety): New enumeration.
5026         (unsafe_conversion_p): switching return type to
5027         conversion_safety enumeration.
5028         * c.opt: Adding new warning -Wfloat-conversion and
5029         enabling it with -Wconversion.
5030
5031 2013-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
5032
5033         * c-opts.c: Include plugin.h.
5034         (cb_file_change): Invoke plugin event PLUGIN_INCLUDE_FILE.
5035
5036 2013-11-19  Marek Polacek  <polacek@redhat.com>
5037
5038         * c-ubsan.c (ubsan_instrument_division): Adjust ubsan_create_data
5039         call.
5040         (ubsan_instrument_shift): Likewise.
5041         (ubsan_instrument_vla): Likewise.
5042
5043 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
5044
5045         * c-common.c (convert_vector_to_pointer_for_subscript): Remove
5046         cast to unsigned type.
5047
5048 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
5049
5050         * c-common.c (fold_offsetof_1): Use tree_to_uhwi rather than
5051         tree_low_cst.
5052         (complete_array_type): Update comment to refer to tree_to_[su]hwi
5053         rather than tree_low_cst.
5054
5055 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
5056
5057         * c-common.c, c-cppbuiltin.c: Replace tree_low_cst (..., 1) with
5058         tree_to_uhwi throughout.
5059
5060 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
5061
5062         * c-common.c, c-format.c, c-omp.c, c-pretty-print.c: Replace
5063         tree_low_cst (..., 0) with tree_to_shwi throughout.
5064
5065 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
5066
5067         * c-ada-spec.c, c-common.c, c-pretty-print.c: Replace
5068         host_integerp (..., 1) with tree_fits_uhwi_p throughout.
5069
5070 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
5071
5072         * c-ada-spec.c, c-common.c, c-format.c, c-pretty-print.c: Replace
5073         host_integerp (..., 0) with tree_fits_shwi_p throughout.
5074
5075 2013-11-15  Aldy Hernandez  <aldyh@redhat.com>
5076
5077         * c-cilkplus.c: New file.
5078         * c-common.c (readonly_error): Add location argument.
5079         * c-common.h (readonly_error): Same.
5080         (c_finish_cilk_clauses): Protoize.
5081         (c_check_cilk_loop): Same.
5082         c-omp.c (c_finish_omp_for): Handle CILK_SIMD nodes.
5083         Do not fail on error_mark_node.
5084         Abstract increment canonicalization to here...
5085         (c_omp_for_incr_canonicalize_ptr): New.
5086         c-pragma.c (init_pragma): Register "simd" pragma.
5087         c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_SIMD.
5088         (enum pragma_cilk_clause): New.
5089
5090 2013-11-15  Richard Sandiford  <rdsandiford@googlemail.com>
5091
5092         * c-pretty-print.c (pp_c_character_constant): Remove unnecessary
5093         wchar_type and host_integerp checks.
5094
5095 2013-11-14  Andrew MacLeod  <amacleod@redhat.com>
5096
5097         * c-common.c: Likewise.
5098         * c-gimplify.c: Likewise.
5099         * cilk.c: Likewise.
5100
5101 2013-11-14  Diego Novillo  <dnovillo@google.com>
5102
5103         * c-common.c: Include fold-const.h.
5104         Include stor-layout.h.
5105         Include calls.h.
5106         Include stringpool.h.
5107         Include attribs.h.
5108         Include varasm.h.
5109         Include trans-mem.h.
5110         * c-cppbuiltin.c: Include stor-layout.h.
5111         Include stringpool.h.
5112         * c-format.c: Include stringpool.h.
5113         * c-lex.c: Include stringpool.h.
5114         Include stor-layout.h.
5115         * c-pragma.c: Include stringpool.h.
5116         Include attribs.h.
5117         Include varasm.h.
5118         Include gcc-symtab.h.
5119         * c-pretty-print.c: Include stor-layout.h.
5120         Include attribs.h.
5121         * cilk.c: Include stringpool.h.
5122         Include calls.h.
5123
5124 2013-11-13  Joseph Myers  <joseph@codesourcery.com>
5125
5126         * c-common.h (enum rid): Add RID_AUTO_TYPE.
5127         * c-common.c (c_common_reswords): Add __auto_type.
5128         (keyword_begins_type_specifier): Handle RID_AUTO_TYPE.
5129
5130 2013-11-12  Andrew MacLeod  <amacleod@redhat.com>
5131
5132         * c-common.c: Include gimplify.h.
5133         * c-gimplify.c: Likewise.
5134         * cilk.c: Likewise.
5135         * c-omp.c: Include gimple-expr.h instead of gimple.h.
5136         * c-ubsan.c: Don't include gimple.h.
5137
5138 2013-11-12  Joseph Myers  <joseph@codesourcery.com>
5139
5140         * c-common.c (c_common_reswords): Add _Thread_local.
5141
5142 2013-11-09  Joseph Myers  <joseph@codesourcery.com>
5143
5144         * c-common.c (atomic_size_supported_p): New function.
5145         (resolve_overloaded_atomic_exchange)
5146         (resolve_overloaded_atomic_compare_exchange)
5147         (resolve_overloaded_atomic_load, resolve_overloaded_atomic_store):
5148         Use it instead of comparing size with a local list of sizes.
5149
5150 2013-11-07  Andrew MacLeod  <amacleod@redhat.com>
5151             Joseph Myers  <joseph@codesourcery.com>
5152
5153         * c-common.h (enum rid): Add RID_ATOMIC.
5154         * c-common.c (c_common_reswords): Add _Atomic.
5155         (sync_resolve_params): Use TYPE_MAIN_VARIANT on pointer argument.
5156         (keyword_is_type_qualifier): Accept RID_ATOMIC.
5157         * c-format.c (check_format_types): Check for extra _Atomic
5158         qualifiers in format argument.
5159         * c-pretty-print.c (pp_c_cv_qualifiers): Handle atomic qualifier.
5160         (pp_c_type_qualifier_list): Mention _Atomic in comment.
5161
5162 2013-11-06  Tobias Burnus  <burnus@net-b.de>
5163
5164         * c-common.c (reason_option_codes_t): Add CPP_W_DATE_TIME.
5165
5166 2013-11-06  Joseph Myers  <joseph@codesourcery.com>
5167
5168         * c-opts.c (c_common_post_options): Set -ffp-contract=off in C
5169         standards modes.
5170         * c-cppbuiltin.c (cpp_iec_559_value): Consider -ffp-contract=fast
5171         to mean lack of IEEE 754 support.
5172
5173 2013-11-05  Tobias Burnus  <burnus@net-b.de>
5174
5175         * c.opt (-Wdate-time): New option
5176         * c-opts.c (sanitize_cpp_opts): Pass on to libcpp.
5177
5178 2013-11-05  Joseph Myers  <joseph@codesourcery.com>
5179
5180         * c-cppbuiltin.c (cpp_iec_559_value): Test
5181         flag_excess_precision_cmdline not flag_excess_precision.
5182
5183 2013-11-05  Tobias Burnus  <burnus@net-b.de>
5184
5185         * c.opt (fopenmp-simd): New option.
5186         * c-pragma.c (omp_pragmas): Move pragmas which can contain simd to ...
5187         (omp_pragmas): ... this new struct.
5188         (c_pp_lookup_pragma): Also walk omp_pragmas.
5189         (init_pragma): Init pragmas for -fopenmp-simd.
5190
5191 2013-11-04  Marek Polacek  <polacek@redhat.com>
5192
5193         PR c++/58979
5194         * c-common.c (invalid_indirection_error): Handle RO_ARROW_STAR case.
5195
5196 2013-11-04  Joseph Myers  <joseph@codesourcery.com>
5197
5198         * c-cppbuiltin.c (cpp_iec_559_value, cpp_iec_559_complex_value):
5199         New functions.
5200         (c_cpp_builtins): Define __GCC_IEC_559 and __GCC_IEC_559_COMPLEX.
5201
5202 2013-11-04  Eric Botcazou  <ebotcazou@adacore.com>
5203
5204         * c-ada-spec.h (cpp_operation): Add IS_TRIVIAL.
5205         (dump_ada_specs): Adjust prototype of second callback.
5206         * c-ada-spec.c (cpp_check): New global variable.
5207         (dump_ada_nodes): Remove cpp_check parameter and do not pass it down.
5208         (print_generic_ada_decl): Likewise.
5209         (has_static_fields): Change return type to bool and add guard.
5210         (has_nontrivial_methods): New predicate.
5211         (is_tagged_type): Change return type to bool.
5212         (separate_class_package): Call has_nontrivial_methods.
5213         (pp_ada_tree_identifier): Minor tweaks.
5214         (dump_ada_function_declaration): Adjust calls to dump_generic_ada_node.
5215         (dump_ada_array_domains): Likewise.
5216         (dump_ada_array_type): Likewise.
5217         (dump_template_types): Remove cpp_check parameter and do not pass it to
5218         dump_generic_ada_node.
5219         (dump_ada_template): Likewise.
5220         (dump_generic_ada_node): Remove cpp_check parameter and do not pass it
5221         recursively.
5222         (print_ada_methods): Change return type to integer.  Remove cpp_check
5223         parameter and do not pass it down.
5224         (dump_nested_types): Remove cpp_check parameter and do not pass it to
5225         dump_generic_ada_node.
5226         (print_ada_declaration): Likewise.  Test RECORD_OR_UNION_TYPE_P before
5227         accessing methods.
5228         (print_ada_struct_decl): Remove cpp_check parameter and do not pass it
5229         down.  Use has_nontrivial_methods to recognize C++ classes.  Use return
5230         value of print_ada_methods.
5231         (dump_ads): Rename cpp_check parameter to check and adjust prototype.
5232         Set cpp_check to it before invoking dump_ada_nodes.
5233         (dump_ada_specs): Likewise.
5234
5235 2013-11-03  Marek Polacek  <polacek@redhat.com>
5236
5237         * c-ubsan.c: Don't include hash-table.h.
5238         (ubsan_instrument_vla): New function.
5239         * c-ubsan.h: Declare it.
5240
5241 2013-10-31  David Malcolm  <dmalcolm@redhat.com>
5242
5243         Automated part of renaming of symtab_node_base to symtab_node.
5244
5245         Patch autogenerated by rename_symtab.py from
5246         https://github.com/davidmalcolm/gcc-refactoring-scripts
5247         revision 58bb219cc090b2f4516a9297d868c245495ee622
5248
5249         * c-pragma.c (maybe_apply_pending_pragma_weaks): Rename
5250         symtab_node_base to symtab_node.
5251
5252 2013-10-31  Edward Smith-Rowland  <3dw4rd@verizon.net>
5253
5254         Implement C++14 digit separators.
5255         * c-lex.c (interpret_float): Remove digit separators from scratch string
5256         before building real literal.
5257
5258 2013-10-30  Jakub Jelinek  <jakub@redhat.com>
5259
5260         * cilk.c (create_cilk_helper_decl): Use HOST_WIDE_INT_PRINT_DEC.
5261
5262 2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5263
5264         * c-common.c (c_common_reswords[]): Added _Cilk_spawn and _Cilk_sync
5265         fields.
5266         (c_define_builtins): Called cilk_init_builtins if Cilk Plus is
5267         enabled.
5268         * c-common.h (enum rid): Added RID_CILK_SPAWN and RID_CILK_SYNC.
5269         (insert_cilk_frame): New prototype.
5270         (cilk_init_builtins): Likewise.
5271         (gimplify_cilk_spawn): Likewise.
5272         (c_cilk_install_body_w_frame_cleanup): Likewise.
5273         (cilk_detect_spawn_and_unwrap): Likewise.
5274         (cilk_set_spawn_marker): Likewise.
5275         (build_cilk_sync): Likewise.
5276         (build_cilk_spawn): Likewise.
5277         * cilk.c: New file.
5278
5279 2013-10-29  David Malcolm  <dmalcolm@redhat.com>
5280
5281         Patch autogenerated by refactor_symtab.py from
5282         https://github.com/davidmalcolm/gcc-refactoring-scripts
5283         revision 58bb219cc090b2f4516a9297d868c245495ee622
5284
5285         * c-gimplify.c (c_genericize): Update for conversion of symtab types
5286         to a true class hierarchy.
5287         * c-pragma.c (maybe_apply_pending_pragma_weaks): Likewise.
5288
5289 2013-10-27  Richard Sandiford  <rdsandiford@googlemail.com>
5290
5291         * c-lex.c (interpret_integer): Remove call to cpp_num_sign_extend.
5292
5293 2013-10-26  Jeff Law  <law@redhat.com>
5294
5295         * c-common.c (c_define_builtins): Remove mudflap support.
5296         * c.opt: Ignore and warn for mudflap options.
5297
5298 2013-10-24  Tobias Burnus  <burnus@net-b.de>
5299
5300         PR other/33426
5301         * c-pragma.c (init_pragma) Add #pragma ivdep handling.
5302         * c-pragma.h (pragma_kind): Add PRAGMA_IVDEP.
5303
5304 2013-10-23  Jason Merrill  <jason@redhat.com>
5305
5306         * c-format.c (gcc_cxxdiag_char_table): Add %X.
5307
5308 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
5309
5310         * c-common.h (omp_clause_mask::operator !=): New method.
5311         * c-omp.c (c_omp_split_clauses): Use if ((mask & something) != 0)
5312         instead of if (mask & something) tests everywhere.
5313
5314         * c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP to
5315         201307 instead of 201107.
5316         * c-common.c (DEF_FUNCTION_TYPE_8): Define.
5317         (c_common_attribute_table): Add "omp declare target" and
5318         "omp declare simd" attributes.
5319         (handle_omp_declare_target_attribute,
5320         handle_omp_declare_simd_attribute): New functions.
5321         * c-omp.c: Include c-pragma.h.
5322         (c_finish_omp_taskgroup): New function.
5323         (c_finish_omp_atomic): Add swapped argument, if true,
5324         build the operation first with rhs, lhs arguments and use NOP_EXPR
5325         build_modify_expr.
5326         (c_finish_omp_for): Add code argument, pass it down to make_code.
5327         (c_omp_split_clauses): New function.
5328         (c_split_parallel_clauses): Removed.
5329         (c_omp_declare_simd_clause_cmp, c_omp_declare_simd_clauses_to_numbers,
5330         c_omp_declare_simd_clauses_to_decls): New functions.
5331         * c-common.h (omp_clause_mask): New type.
5332         (OMP_CLAUSE_MASK_1): Define.
5333         (omp_clause_mask::omp_clause_mask, omp_clause_mask::operator &=,
5334         omp_clause_mask::operator |=, omp_clause_mask::operator ~,
5335         omp_clause_mask::operator |, omp_clause_mask::operator &,
5336         omp_clause_mask::operator <<, omp_clause_mask::operator >>,
5337         omp_clause_mask::operator ==): New methods.
5338         (enum c_omp_clause_split): New.
5339         (c_finish_omp_taskgroup): New prototype.
5340         (c_finish_omp_atomic): Add swapped argument.
5341         (c_finish_omp_for): Add code argument.
5342         (c_omp_split_clauses): New prototype.
5343         (c_split_parallel_clauses): Removed.
5344         (c_omp_declare_simd_clauses_to_numbers,
5345         c_omp_declare_simd_clauses_to_decls): New prototypes.
5346         * c-pragma.c (omp_pragmas): Add new OpenMP 4.0 constructs.
5347         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_CANCEL,
5348         PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
5349         PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_SIMD,
5350         PRAGMA_OMP_TARGET, PRAGMA_OMP_TASKGROUP and PRAGMA_OMP_TEAMS.
5351         Remove PRAGMA_OMP_PARALLEL_FOR and PRAGMA_OMP_PARALLEL_SECTIONS.
5352         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALIGNED,
5353         PRAGMA_OMP_CLAUSE_DEPEND, PRAGMA_OMP_CLAUSE_DEVICE,
5354         PRAGMA_OMP_CLAUSE_DIST_SCHEDULE, PRAGMA_OMP_CLAUSE_FOR,
5355         PRAGMA_OMP_CLAUSE_FROM, PRAGMA_OMP_CLAUSE_INBRANCH,
5356         PRAGMA_OMP_CLAUSE_LINEAR, PRAGMA_OMP_CLAUSE_MAP,
5357         PRAGMA_OMP_CLAUSE_NOTINBRANCH, PRAGMA_OMP_CLAUSE_NUM_TEAMS,
5358         PRAGMA_OMP_CLAUSE_PARALLEL, PRAGMA_OMP_CLAUSE_PROC_BIND,
5359         PRAGMA_OMP_CLAUSE_SAFELEN, PRAGMA_OMP_CLAUSE_SECTIONS,
5360         PRAGMA_OMP_CLAUSE_SIMDLEN, PRAGMA_OMP_CLAUSE_TASKGROUP,
5361         PRAGMA_OMP_CLAUSE_THREAD_LIMIT, PRAGMA_OMP_CLAUSE_TO and
5362         PRAGMA_OMP_CLAUSE_UNIFORM.
5363
5364 2013-10-09  Marc Glisse  <marc.glisse@inria.fr>
5365
5366         PR tree-optimization/20318
5367         * c-common.c (handle_returns_nonnull_attribute): New function.
5368         (c_common_attribute_table): Add returns_nonnull.
5369
5370 2013-10-03  Marc Glisse  <marc.glisse@inria.fr>
5371
5372         PR c++/19476
5373         * c.opt (fcheck-new): Move to common.opt.
5374
5375 2013-09-25  Marek Polacek  <polacek@redhat.com>
5376             Jakub Jelinek  <jakub@redhat.com>
5377
5378         PR sanitizer/58413
5379         * c-ubsan.c (ubsan_instrument_shift): Don't instrument
5380         an expression if we can prove it is correct.
5381         (ubsan_instrument_division): Likewise.  Remove unnecessary
5382         check.
5383
5384 2013-09-18  Marek Polacek  <polacek@redhat.com>
5385
5386         PR sanitizer/58411
5387         * c-common.c (handle_no_sanitize_undefined_attribute): New function.
5388         Declare it.
5389         (struct attribute_spec c_common_att): Add no_sanitize_undefined.
5390
5391 2013-09-14  Iain Sandoe  <iain@codesourcery.com>
5392
5393         PR target/48094
5394         * c.opt (fgnu-runtime, fnext-runtime, fobjc-abi-version,
5395         fobjc-gc, freplace-objc-classes): Accept for LTO.
5396
5397 2013-09-13  Jacek Caban  <jacek@codeweavers.com>
5398
5399         * c-target.def: New hook
5400
5401 2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
5402
5403         PR c++/43452
5404         * c.opt (Wdelete-incomplete): Add.
5405
5406 2013-09-08  Joern Rennecke  <joern.rennecke@embecosm.com>
5407
5408         * c-common.c (same_scalar_type_ignoring_signedness): Delete.
5409         (vector_types_compatible_elements_p): New function.
5410         * c-common.h: (same_scalar_type_ignoring_signedness): Delete
5411         declaration.
5412         (vector_types_compatible_elements_p): Declare.
5413
5414 2013-09-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5415
5416         * c-pretty-print.h (c_pretty_printer::simple_type_specifier): Now
5417         a virtual member function.
5418         (pp_simple_type_specifier): Remove.
5419         (pp_c_type_specifier): Likewise.
5420         * c-pretty-print.c (c_pretty_printer::simple_type_specifier):
5421         Rename from pp_c_type_specifier.  Adjust.
5422         (c_pretty_printer::c_pretty_printer): Do not assign to
5423         simple_type_specifier.
5424
5425 2013-09-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5426
5427         * c-pretty-print.h (c_pretty_printer::type_id): Now a virtual
5428         member function.
5429         (c_pretty_printer::storage_class_specifier): Likewise.
5430         (c_pretty_printer::initializer): Likewise.
5431         (pp_declaration): Remove.
5432         (pp_declaration_specifiers): Likewise.
5433         (pp_abstract_declarator): Likewise.
5434         (pp_declarator): Likewise.
5435         (pp_type_id): Likewise.
5436         (pp_statement): Likewise.
5437         (pp_constant): Likewise.
5438         (pp_id_expression): Likewise.
5439         (pp_primary_expression): Likewise.
5440         (pp_unary_expression): Likewise.
5441         (pp_multiplicative_expression): Likewise.
5442         (pp_conditional_expression): Likewise.
5443         (pp_assignment_expression): Likewise.
5444         (pp_expression): Likewise.
5445         (pp_c_type_id): Likewise.
5446         (pp_c_storage_class_specifier): Likewise.
5447         * c-pretty-print.c (pp_c_type_cast): Tidy.
5448         (pp_c_pointer): Likewise.
5449         (pp_c_type_specifier): Likewise.
5450         (pp_c_parameter_type_list): Likewise.
5451         (pp_c_function_definition): Likewise.
5452         (pp_c_init_declarator): Likewise.
5453         (pp_c_initializer_list): Likewise.
5454         (pp_c_constructor_elts): Likewise.
5455         (c_pretty_printer::direct_abstract_declarator): Likewise.
5456         (c_pretty_printer::declaration_specifiers): Likewise.
5457         (c_pretty_printer::primary_expression): Likewise.
5458         (c_pretty_printer::postfix_expression): Likewise.
5459         (c_pretty_printer::type_id): Rename from pp_c_type_id.
5460         (c_pretty_printer::storage_class_specifier): Rename from
5461         pp_c_storage_class_specifier.
5462         (c_pretty_printer::initializer): Rename from pp_c_initializer.
5463         (c_pretty_printer::c_pretty_printer): Do not assign to type_id,
5464         storage_class_specifier, initializer, offset_list, flags.
5465
5466 2013-08-30  Marek Polacek  <polacek@redhat.com>
5467
5468         * c-ubsan.c: New file.
5469         * c-ubsan.h: New file.
5470
5471 2013-08-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5472
5473         * c-pretty-print.h (c_pretty_printer::declaration): Now a virtual
5474         member function.
5475         (c_pretty_printer::declaration_specifiers): Likewise.
5476         (c_pretty_printer::declarator): Likewise.
5477         (c_pretty_printer::abstract_declarator): Likewise.
5478         (c_pretty_printer::direct_abstract_declarator): Likewise.
5479         (c_pretty_printer::direct_declarator): Likewise.
5480         (c_pretty_printer::function_specifier): Likewise.
5481         (pp_declaration): Adjust.
5482         (pp_declaration_specifiers): Likewise.
5483         (pp_abstract_declarator): Likewise.
5484         (pp_direct_declarator): Likewise.
5485         (pp_function_specifier): Likewise.
5486         (pp_direct_abstract_declarator): Remove as unused.
5487         (pp_c_declaration): Remove.
5488         (pp_c_declaration_specifiers): Likewise.
5489         (pp_c_declarator): Likewise.
5490         (pp_c_direct_declarator): Likewise.
5491         (pp_c_function_specifier): Likewise.
5492         (pp_c_direct_abstract_declarator): Likewise.
5493         * c-pretty-print.c (c_pretty_printer::abstract_declarator): Rename
5494         from pp_c_abstract_declarator.  Adjust.
5495         (c_pretty_printer::direct_abstract_declarator):  Rename from
5496         pp_c_direct_abstract_declarator.  Adjust.
5497         (c_pretty_printer::function_specifier): Rename from
5498         pp_c_function_specifier.  Adjust.
5499         (c_pretty_printer::declaration_specifiers): Rename from
5500         pp_c_declaration_specifiers.  Adjust.
5501         (c_pretty_printer::direct_declarator): Rename from
5502         pp_c_direct_declarator.  Adjust.
5503         (c_pretty_printer::declarator): Rename from pp_c_declarator.  Adjust.
5504         (c_pretty_printer::declaration): Rename from pp_c_declaration.  Adjust.
5505         (c_pretty_printer::c_pretty_printer): Do not assign to
5506         declaration, declaration_specifiers, declarator,
5507         direct_declarator, direct_abstract_declarator, function_specifier.
5508
5509 2013-08-26  Gabriel Dos Reis  <gdre@integrable-solutions.net>
5510
5511         * c-pretty-print.h (c_pretty_printer::unary_expression): Now a
5512         virtual member function.
5513         (c_pretty_printer::multiplicative_expression): Likewise.
5514         (c_pretty_printer::conditional_expression): Likewise.
5515         (c_pretty_printer::assignment_expression): Likewise.
5516         (c_pretty_printer::expression): Likewise.
5517         (pp_unary_expression): Adjust.
5518         (pp_multiplicative_expression): Likewise.
5519         (pp_assignment_expression): Likewise.
5520         (pp_conditional_expression): Likewise.
5521         (pp_expression): Likewise.
5522         * c-pretty-print.c (c_pretty_printer::unary_expression): Rename
5523         from pp_c_unary_expression.  Adjust.
5524         (c_pretty_printer::multiplicative_expression): Rename from
5525         pp_c_multiplicative_expression.  Adjust.
5526         (c_pretty_printer::conditional_expression): Rename from
5527         pp_c_conditional_expression.  Adjust.
5528         (c_pretty_printer::assignment_expression): Rename from
5529         pp_c_assignment_expression.  Adjust.
5530         (c_pretty_printer::expression): Rename from pp_c_expression.  Adjust.
5531         (c_pretty_printer::c_pretty_printer): Do not assign to
5532         unary_expression, multiplicative_expression,
5533         conditional_expression, expression.
5534
5535 2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5536
5537         * c-pretty-print.h (c_pretty_printer::postfix_expression): Now a
5538         virtual member function.
5539         (pp_postfix_expression): Adjust.
5540         (pp_c_postfix_expression): Remove.
5541         * c-pretty-print.c (c_pretty_printer::postfix_expression): Rename
5542         from pp_c_postfix_expression.  Adjust.
5543         (c_pretty_printer::c_pretty_printer): Do not assign to
5544         postfix_expression.
5545
5546 2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5547
5548         * c-pretty-print.h (c_pretty_printer::primary_expression): Now a
5549         virtua member function.
5550         (pp_primary_expression): Adjust.
5551         (pp_c_primary_expression): Remove.
5552         * c-pretty-print.c (c_pretty_printer::primary_expression): Rename
5553         from pp_c_primary_expression.  Adjust.
5554         (pp_c_initializer_list): Use pp_primary_expression.
5555         (c_pretty_printer::c_pretty_printer): Do not assign to
5556         primary_expression.
5557
5558 2013-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5559
5560         * c-pretty-print.h (c_pretty_printer::translate_string): Declare.
5561         * c-pretty-print.c (M_): Remove.
5562         (c_pretty_printer::translate_string): Define.
5563         (pp_c_type_specifier): Use it.
5564         (pp_c_primary_expression): Likewise.
5565         (pp_c_expression): Likewise.
5566
5567 2013-08-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5568
5569         * c-pretty-print.h (c_pretty_printer::id_expression): Now a
5570         virtual function.
5571         (pp_c_id_expression): Remove.
5572         (pp_id_expression): Adjust.
5573         * c-pretty-print.c (c_pretty_printer::id_expression): Rename from
5574         pp_c_id_expression.  Adjust.
5575         (pp_c_postfix_expression): Use pp_id_expression.
5576         (c_pretty_printer::c_pretty_printer): Do not assign to id_expression.
5577
5578 2013-08-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5579
5580         * c-pretty-print.h (c_pretty_printer::constant): Now a virtual
5581         member function.
5582         (pp_constant): Adjust.
5583         (pp_c_constant): Remove.
5584         * c-pretty-print.c (c_pretty_printer::constant): Rename from
5585         pp_c_constant.  Adjust.
5586         (pp_c_constant)
5587         (pp_c_primary_expression): Call pp_constant in lieu of pp_c_constant.
5588         (c_pretty_printer::c_pretty_printer): Remove assignment to constant.
5589
5590 2013-08-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5591
5592         * c-pretty-print.h (pp_c_pretty_printer_init): Remove.
5593         (c_pretty_printer::c_pretty_printer): Declare.
5594         * c-pretty-print.c (pretty_printer::c_pretty_printer): Rename from
5595         c_pretty_printer_init.  Adjust.
5596         (print_c_tree): Do not call c_pretty_printer_init.
5597         * c-ada-spec.c (dump_ads): Remove call to pp_construct.
5598
5599 2013-08-09  Arnaud Charlet  <charlet@adacore.com>
5600
5601         * c-ada-spec.c (print_ada_declaration): Prevent accessing null asm name
5602
5603 2013-08-05  Paolo Carlini  <paolo.carlini@oracle.com>
5604
5605         PR c++/58080
5606         * c-common.c (pointer_int_sum): Add bool parameter.
5607         * c-common.h (pointer_int_sum): Adjust declaration.
5608
5609 2013-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5610
5611         * c-pretty-print.c (print_c_tree): Simplify.  Use non-static local
5612         c_pretty_printer variable.
5613
5614 2013-08-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5615
5616         * c-pretty-print.h (c_pretty_printer): Derive from pretty_printer.
5617         (pp_base): Remove.
5618         (pp_c_base): Likewise.  Adjust users.
5619         * c-pretty-print.c (pp_c_maybe_whitespace): Adjust.
5620         (pp_c_whitespace): Do not call pp_base.
5621         (pp_c_left_paren): Likewise.
5622         (pp_c_right_paren): Likewise.
5623         (pp_c_left_brace): Likewise.
5624         (pp_c_right_brace): Likewise.
5625         (pp_c_left_bracket): Likewise.
5626         (pp_c_right_bracket): Likewise.
5627         (pp_c_dot): Likewise.
5628         (pp_c_ampersand): Likewise.
5629         (pp_c_star): Likewise.
5630         (pp_c_arrow): Likewise.
5631         (pp_c_semicolon): Likewise.
5632         (pp_c_complement): Likewise.
5633         (pp_c_exclamation): Likewise.
5634         (pp_c_direct_declarator): Likewise.
5635         (pp_c_ws_string): Likewise.
5636         (pp_c_identifier): Likewise.
5637         (pp_c_statement): Likewise.
5638         (print_c_tree): Likewise.
5639
5640 2013-08-04  Ed Smith-Rowland  <3dw4rd@verizon.net>
5641
5642         PR c++/58072
5643         * c-common.c (c_parse_error): Catch user-defined literal tokens and
5644         provide useful error strings.
5645
5646 2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5647
5648         * c-ada-spec.c (pp_ada_tree_identifier): Use specialized pretty
5649         printer functions instead of pp_string or operators and punctuators.
5650         (dump_generic_ada_node): Likewise.
5651         * c-pretty-print.c (pp_c_type_specifier): Likewise.
5652         (pp_c_relational_expression): Likewise.
5653         (pp_c_logical_or_expression): Likewise.
5654
5655 2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5656
5657         * c-ada-spec.c (print_ada_macros): Use specialized pretty printer
5658         functions instead of pp_character.
5659         (pp_ada_tree_identifier): Likewise.
5660         (dump_ada_double_name): Likewise.
5661         (dump_ada_function_declaration): Likewise.
5662         (dump_ada_array_domains): Likewise.
5663         (dump_template_types): Likewise.
5664         (dump_generic_ada_node): Likewise.
5665         (print_ada_declaration): Likewise.
5666         (print_ada_struct_decl): Likewise.
5667         * c-pretty-print.c (pp_c_integer_constant): Likewise.
5668
5669 2013-07-23  Tom Tromey  <tromey@redhat.com>
5670
5671         * c-common.h (enum rid) <RID_GENERIC>: New constant.
5672         * c-common.c (c_common_reswords): Add _Generic.
5673
5674 2013-07-21   OndÅ\99ej Bílka  <neleai@seznam.cz>
5675
5676         * c-common.c: Fix typos.
5677         * c-common.h: Likewise.
5678
5679 2013-07-13  Lubos Lunak  <l.lunak@suse.cz>
5680
5681         PR c++/55203
5682         * c-common.c (c_common_attribute_table): Add warn_unused.
5683         (handle_warn_unused_attribute): New.
5684
5685 2013-07-10  Jakub Jelinek  <jakub@redhat.com>
5686
5687         * c-ppoutput.c (scan_translation_unit): Call account_for_newlines
5688         for all CPP_TOKEN_FLD_STR tokens, not just CPP_COMMENT.
5689
5690 2013-07-10  Paolo Carlini  <paolo.carlini@oracle.com>
5691
5692         PR c++/57869
5693         * c.opt: Add Wconditionally-supported.
5694
5695 2013-07-08  Graham Stott  <graham.stott@btinternet.com>
5696
5697         * array-notation-common.c (length_mismatch_in_expr_p): Delete
5698         unused variables l_length and l_node.
5699
5700 2013-07-04  Joern Rennecke  <joern.rennecke@embecosm.com>
5701
5702         PR c/57821
5703         * c-common.c (complete_array_type): Delay folding first index
5704         like other indices.  When folding, check for index overflow.
5705
5706 2013-06-27  Marc Glisse  <marc.glisse@inria.fr>
5707
5708         PR c++/57509
5709         * c-common.h (c_build_vec_perm_expr): New complain argument.
5710         * c-common.c (c_build_vec_perm_expr): Likewise.
5711         Use save_expr also in C++.
5712
5713 2013-06-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5714
5715         * c-common.c (c_common_nodes_and_builtins): Use cxx11 in lieu of cxx0x.
5716         * c-cppbuiltin.c (c_cpp_builtins): Likewise.
5717         * c-opts.c (c_common_post_options): Likewise.
5718
5719 2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5720
5721         * array-notation-common.c (length_mismatch_in_expr): Changed the
5722         parameter type's from a dynamic array to a vec_tree.  Also removed
5723         the size parameters.
5724         * c-common.h (length_mismatch_in_expr_p): Fixed prototype's as per
5725         the change above.
5726
5727 2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5728
5729         * c-common.h (struct cilkplus_an_parts): New structure.
5730         (struct cilkplus_an_loop_parts): Likewise.
5731         (cilkplus_extract_an_triplets): New prototype.
5732         (fix_sec_implicit_args): Likewise.
5733         * array-notation-common.c (cilkplus_extract_an_triplets): New function.
5734         (fix_sec_implicit_args): Likewise.
5735
5736 2013-06-20  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5737
5738         * array-notation-common.c (find_inv_trees): Removed an unwanted
5739         typecasting.
5740         * c-common.h (struct inv_list::additional_tcodes): Changed type from
5741         enum rid to enum tree_code.
5742
5743 2013-06-11  Jan Hubicka  <jh@suse.cz>
5744
5745         * c-common.c (handle_alias_ifunc_attribute): Do not set
5746         DECL_EXTERNAL for weakref variables.
5747         * c-pragma.c (handle_pragma_weak): Make sure aliases
5748         are not declared as external.
5749
5750 2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5751
5752         * array-notation-common.c (length_mismatch_in_expr_p): Moved this
5753         function from c/c-array-notation.c.
5754         (is_cilkplus_reduce_builtin): Likewise.
5755         (find_rank): Likewise.
5756         (extract_array_notation_exprs): Likewise.
5757         (replace_array_notations): Likewise.
5758         (find_inv_trees): Likewise.
5759         (replace_inv_trees): Likewise.
5760         (contains_array_notation_expr): Likewise.
5761         (find_correct_array_notation_type): Likewise.
5762         * c-common.h (struct inv_list): Moved this struct from the file
5763         c/c-array-notation.c and added a new field called additional tcodes.
5764         (length_mismatch_in_expr_p): New prototype.
5765         (is_cilkplus_reduce_builtin): Likewise.
5766         (find_rank): Likewise.
5767         (extract_array_notation_exprs): Likewise.
5768         (replace_array_notation): Likewise.
5769         (find_inv_trees): Likewise.
5770         (replace_inv_trees): Likewise.
5771         (find_correct_array_notation_type): Likewise.
5772
5773 2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5774
5775         * c-common.c (c_define_builtins): When cilkplus is enabled, the
5776         function array_notation_init_builtins is called.
5777         (c_common_init_ts): Added ARRAY_NOTATION_REF as typed.
5778         * c-common.def (ARRAY_NOTATION_REF): New tree.
5779         * c-common.h (build_array_notation_expr): New function declaration.
5780         (build_array_notation_ref): Likewise.
5781         (extract_sec_implicit_index_arg): New extern declaration.
5782         (is_sec_implicit_index_fn): Likewise.
5783         (ARRAY_NOTATION_CHECK): New define.
5784         (ARRAY_NOTATION_ARRAY): Likewise.
5785         (ARRAY_NOTATION_START): Likewise.
5786         (ARRAY_NOTATION_LENGTH): Likewise.
5787         (ARRAY_NOTATION_STRIDE): Likewise.
5788         * c-pretty-print.c (pp_c_postifix_expression): Added a new case for
5789         ARRAY_NOTATION_REF.
5790         (pp_c_expression): Likewise.
5791         * c.opt (flag_enable_cilkplus): New flag.
5792         * array-notation-common.c: New file.
5793
5794 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
5795
5796         PR c++/57274
5797         * c-common.c (verify_tree): Don't recurse into SIZEOF_EXPR.
5798
5799 2013-05-10  Marc Glisse  <marc.glisse@inria.fr>
5800
5801         * c-common.c (vector_types_convertible_p): No TYPE_PRECISION for
5802         vectors.
5803
5804 2013-05-07  Han Shen  <shenhan@google.com>
5805
5806         * c-cppbuiltin.c (c_cpp_builtins): Added "__SSP_STRONG__=3".
5807
5808 2013-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5809
5810         * c-common.c (check_user_alignment): Emit error for negative values.
5811
5812 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
5813
5814         * c-opts.c (set_std_cxx11): Use CLK_CXX1Y and CLK_GNUCXX1Y.
5815
5816 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
5817
5818         * c-cppbuiltin.c (c_cpp_builtins): Do not define
5819         __GXX_EXPERIMENTAL_CXX1Y__.
5820
5821 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
5822             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5823
5824         * c.opt ([Wpointer-arith]): Enabled by -Wpedantic, as documented.
5825         * c-common.c (pointer_int_sum): Change -Wpointer-arith pedwarns
5826         to simply use OPT_Wpointer_arith.
5827         (c_sizeof_or_alignof_type): Likewise.
5828
5829 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
5830
5831         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_EXPERIMENTAL_CXX1Y__.
5832
5833 2013-04-12  Jakub Jelinek  <jakub@redhat.com>
5834
5835         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
5836         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Add %r and %R format
5837         specifiers.
5838
5839 2013-04-07  Steven Bosscher  <steven@gcc.gnu.org>
5840
5841         * c-pragma.c (add_to_renaming_pragma_list): Fix leading comment.
5842
5843 2013-04-03  Paolo Carlini  <paolo.carlini@oracle.com>
5844
5845         * c-common.c (pointer_int_sum): Remove dead code.
5846
5847 2013-03-09  Richard Sandiford  <rdsandiford@googlemail.com>
5848
5849         PR middle-end/56524
5850         * c-common.c (handle_optimize_attribute): Don't call
5851         save_optabs_if_changed.
5852
5853 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
5854
5855         PR middle-end/56461
5856         * c-pch.c (pch_init): Free target_validity at the end.
5857
5858 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
5859
5860         * c-pretty-print.c (pp_c_pretty_printer_init): Clear pp->flags.
5861
5862 2013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
5863             Jakub Jelinek  <jakub@redhat.com>
5864
5865         PR sanitizer/56454
5866         * c-common.c (handle_no_sanitize_address_attribute): New function.
5867         (c_common_attribute_table): Add no_sanitize_address attribute.
5868         (handle_no_address_safety_analysis_attribute): Add
5869         no_sanitize_address attribute, not no_address_safety_analysis
5870         attribute.
5871
5872 2013-02-18  Aldy Hernandez  <aldyh@redhat.com>
5873
5874         PR target/52555
5875         * c-common.c (handle_optimize_attribute): Call
5876         save_optabs_if_changed.
5877
5878 2013-02-18  Jakub Jelinek  <jakub@redhat.com>
5879             Steven Bosscher  <steven@gcc.gnu.org>
5880
5881         PR pch/54117
5882         * c-opts.c (c_common_post_options): If debug info is enabled
5883         and non-dwarf*, refuse to load PCH files and when writing PCH
5884         file warn.
5885
5886 2013-02-05  Jakub Jelinek  <jakub@redhat.com>
5887
5888         PR middle-end/56167
5889         * c-common.c (handle_error_attribute): Fix condition.
5890
5891 2013-01-30  Jakub Jelinek  <jakub@redhat.com>
5892
5893         PR c++/55742
5894         * c-common.c (handle_target_attribute): Revert 2012-12-26 change.
5895
5896 2013-01-18  Jason Merrill  <jason@redhat.com>
5897
5898         PR target/54908
5899         * c.opt (-fextern-tls-init): New.
5900         * c-opts.c (c_common_post_options): Handle it.
5901
5902 2013-01-09  Jakub Jelinek  <jakub@redhat.com>
5903
5904         PR c/48418
5905         * c-common.c (c_fully_fold_internal): Warn for LSHIFT_EXPR and
5906         RSHIFT_EXPR, if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST
5907         and is either negative or bigger or equal to type precision
5908         of the first operand.
5909
5910 2012-12-03  Marek Polacek  <polacek@redhat.com>
5911
5912         PR c/55570
5913         * c-common.c (check_user_alignment): Swap order of tests,
5914         check TREE_CODE first.
5915
5916 2012-11-29  Ed Smith-Rowland  <3dw4rd@verizon.net>
5917
5918         PR c++/52654
5919         * c-common.h (overflow_type): New enum.
5920         (build_userdef_literal): Add overflow_type argument.
5921         (tree_userdef_literal): Add overflow_type.
5922         (USERDEF_LITERAL_OVERFLOW): New access macro.
5923         * c-common.c (build_userdef_literal): Add overflow_type
5924         argument.
5925         * c-lex.c (c_lex_with_flags): Add overflow_type to
5926         build_userdef_literal calls.
5927         (interpret_integer, interpret_float): Add overflow_type argument.
5928
5929 2012-11-28  Richard Biener  <rguenther@suse.de>
5930
5931         PR c/35634
5932         * c-gimplify.c (c_gimplify_expr): Gimplify self-modify expressions
5933         here and use a type with proper overflow behavior for types that would
5934         need to be promoted for the arithmetic.
5935
5936 2012-11-23  Jakub Jelinek  <jakub@redhat.com>
5937
5938         PR sanitizer/55435
5939         * c-common.c (handle_no_address_safety_analysis_attribute): New
5940         function.
5941         (c_common_attribute_table): Add no_address_safety_analysis.
5942
5943 2012-11-16  Simon Baldwin  <simonb@google.com>
5944
5945         * c.opt: Add f[no-]canonical-system-headers.
5946         * c-opts.c (c_common_handle_option): Handle
5947         OPT_fcanonical_system_headers.
5948
5949 2012-11-09  Ed Smith-Rowland  <3dw4rd@verizon.net>
5950
5951         PR c++/54413
5952         * c-opts.c (c_common_handle_option): Set new flags.
5953         * c.opt: Describe new flags.
5954
5955 2012-11-09  Jason Merrill  <jason@redhat.com>
5956
5957         * c.opt (Wabi-tag): New.
5958
5959 2012-11-09  Andi Kleen  <ak@linux.intel.com>
5960
5961         PR 55139
5962         * c-common.c (get_atomic_generic_size): Mask with
5963         MEMMODEL_MASK
5964
5965 2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5966
5967         PR c/53063
5968         * c.opt (Wformat): Make it Alias Wformat=1.
5969         (Wformat-contains-nul,Wformat-extra-args,Wformat-nonliteral,
5970         Wformat-security,Wformat-y2k,Wformat-zero-length): Use
5971         LangEnabledBy.
5972         (Wformat=): RejectNegative. Use LangEnabledBy.
5973         (Wnonnull): Use LangEnabledBy.
5974         * c-opts.c (c_common_handle_option): Do not handle Wformat here.
5975         * c-format.c (set_Wformat): Delete.
5976         (decode_format_attr): Replace OPT_Wformat with OPT_Wformat_.
5977         (maybe_read_dollar_number):  Likewise.
5978         (avoid_dollar_number):  Likewise.
5979         (finish_dollar_format_checking):  Likewise.
5980         (check_format_info):  Likewise.
5981         (check_format_info_main):  Likewise.
5982         (check_format_types):  Likewise.
5983         (format_type_warning):  Likewise.
5984         * c-common.c (int):  Likewise.
5985         (check_function_sentinel):  Likewise.
5986         * c-common.h (warn_format,set_Wformat): Do not declare here.
5987
5988 2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5989
5990         PR c/53063
5991         * c.opt(Warray-bounds,Wdelete-non-virtual-dtor,Wenum-compare,
5992         Wmain,Woverlength-strings, Wunknown-pragmas,Wunused-macros):
5993         Use LangEnabledBy.
5994         (Wswitch,Wswitch-default,Wswitch-enum): Likewise. Move here from
5995         common.opt.
5996         (Wvariadic-macros): Init(1).
5997         * c-opts.c (c_common_handle_option): Do not handle them
5998         explicitly.
5999         (c_common_post_options): Likewise.
6000         (sanitize_cpp_opts): warn_unused_macros is now
6001         cpp_warn_unused_macros.
6002         (push_command_line_include): Likewise.
6003         * c-common.c (warn_unknown_pragmas): Do not define.
6004         * c-common.h (warn_unknown_pragmas): Do not declare.
6005
6006 2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6007
6008         PR c/51294
6009         * c-common.c (conversion_warning): Handle conditional expressions.
6010
6011 2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
6012
6013         PR c++/54930
6014         * c.opt (Wreturn_local_addr): Define new option.
6015
6016 2012-10-25  Jason Merrill  <jason@redhat.com>
6017
6018         * c.opt (Wvirtual-move-assign): New.
6019
6020         * c.opt (Winherited-variadic-ctor): New.
6021
6022 2012-10-25  Marc Glisse  <marc.glisse@inria.fr>
6023
6024         PR c++/54427
6025         * c-common.c (scalar_to_vector): Handle VEC_COND_EXPR.
6026
6027 2012-10-23  Joseph Myers  <joseph@codesourcery.com>
6028
6029         * c-common.h (pch_cpp_save_state): Declare.
6030         * c-target.def (c_preinclude): New hook.
6031         * c-opts.c (done_preinclude): New.
6032         (push_command_line_include): Handle default preincluded header.
6033         (cb_file_change): Call pch_cpp_save_state when calling
6034         push_command_line_include.
6035         * c-pch.c (pch_ready_to_save_cpp_state, pch_cpp_state_saved)
6036         (pch_cpp_save_state): New.
6037         (pch_init): Call pch_cpp_save_state conditionally, instead of
6038         calling cpp_save_state.
6039
6040 2012-10-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6041
6042         PR c/53063
6043         PR c/40989
6044         * c.opt (Waddress,Wchar-subscripts,Wsign-conversion,Wimplicit,
6045         Wimplicit-function-declaration,Wimplicit-int,Wsizeof-pointer-memaccess,
6046         Wnarrowing,Wparentheses,Wpointer-sign,Wreturn-type,Wsequence-point,
6047         Wsign-compare,Wuninitialized,Wmaybe-uninitialized,Wunused,
6048         Wvolatile-register-var): Add LangEnabledBy or EnabledBy.
6049         * c-opts.c (c_common_handle_option): Remove explicit handling from
6050         here.
6051         (c_common_post_options): Likewise.
6052
6053 2012-10-18  Eric Botcazou  <ebotcazou@adacore.com>
6054
6055         * c-ada-spec.c (LOCATION_COL): Delete.
6056         (compare_location): New function.
6057         (compare_node): Use it.
6058         (compare_comment): Likewise.
6059
6060 2012-10-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6061
6062         PR c/53063
6063         PR c/40989
6064         * c.opt (Wstrict-aliasing=,Wstrict-overflow=): Use LangEnabledBy.
6065         * c-opts.c (c_common_handle_option): Do not set them here. Add
6066         comment.
6067         (c_common_post_options): Likewise.
6068
6069 2012-10-16  Eric Botcazou  <ebotcazou@adacore.com>
6070
6071         * c-ada-spec.c (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Define.
6072         (dump_generic_ada_node) <INTEGER_CST>: Deal with sizetype specially.
6073         Remove POINTER_TYPE handling, add large unsigned handling and use
6074         ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX for big numbers.
6075
6076 2012-10-12  Jakub Jelinek  <jakub@redhat.com>
6077
6078         PR c/54381
6079         * c-common.h (sizeof_pointer_memaccess_warning): Adjust prototype.
6080         * c-common.c (sizeof_pointer_memaccess_warning): Take array of 3
6081         locs and array of 3 trees instead of just single loc and single
6082         sizeof_arg tree.  Handle __builtin___*_chk builtins too, and
6083         also stpncpy, bcopy, bcmp, bzero, snprintf and vsnprintf builtins.
6084         For *cmp* builtins that take two sources strings report warnings
6085         about first and second source, not about destination and source.
6086
6087 2012-10-12  Marc Glisse  <marc.glisse@inria.fr>
6088
6089         PR c++/53055
6090         * c-common.h (enum ref_operator) [RO_ARROW_STAR]: New.
6091
6092 2012-10-11  Eric Botcazou  <ebotcazou@adacore.com>
6093
6094         * c-ada-spec.c (dump_ada_template): Bail out for template declarations
6095         declaring something coming from another file.
6096
6097 2012-10-10  Arnaud Charlet  <charlet@adacore.com>
6098
6099         PR ada/54845
6100         * c-ada-spec.c (print_ada_struct_decl): Increase buf size.
6101
6102 2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
6103
6104         PR c++/54194
6105         * c-common.c (warn_about_parentheses): Add location_t parameter;
6106         use EXPR_LOC_OR_LOC.
6107         * c-common.h: Update declaration.
6108
6109 2012-10-09  Marc Glisse  <marc.glisse@inria.fr>
6110
6111         PR c++/54427
6112         * c-common.c (scalar_to_vector): Moved from c-typeck.c. Support
6113         more operations. Make error messages optional.
6114         * c-common.h (enum stv_conv): Moved from c-typeck.c.
6115         (scalar_to_vector): Declare.
6116
6117 2012-10-08  Jason Merrill  <jason@redhat.com>
6118
6119         * c-common.c (c_common_reswords): Add thread_local.
6120
6121 2012-10-08  Dodji Seketeli  <dodji@redhat.com>
6122
6123         PR c++/53528 C++11 attribute support
6124         * c-common.h (bitfield_p, cxx_fundamental_alignment_p): Declare
6125         new functions.
6126         * c-common.c (check_cxx_fundamental_alignment_constraints): New
6127         static function.
6128         (handle_aligned_attribute): In choose strictest alignment
6129         among many.  Use new check_cxx_fundamental_alignment_constraints.
6130         (handle_transparent_union_attribute): In c++11 attribute syntax,
6131         don't look through typedefs.
6132
6133 2012-10-04  Arnaud Charlet  <charlet@adacore.com>
6134
6135         * c-ada-spec.c (print_ada_declaration): Remove handling of TDF_RAW.
6136         * c.opt (-fdump-ada-spec, -fdump-ada-spec-slim): Move switch definition
6137         out of dumpfile.h.
6138
6139 2012-09-25  Dehao Chen  <dehao@google.com>
6140
6141         PR middle-end/54645
6142         * c-pch.c (c_common_read_pch): Rebuild the location_adhoc_data
6143         map when read in the pch.
6144
6145 2012-09-18  Arnaud Charlet  <charlet@adacore.com>
6146
6147         * c-ada-spec.c: Style fixes.
6148
6149 2012-09-18  Thomas Quinot  <quinot@adacore.com>
6150
6151         * c.opt (-fada-spec-parent): Define new command line switch.
6152         * c-ada-spec.c (get_ada_package): When -fada-spec-parent
6153         is specified, generate binding spec as a child of the specified unit.
6154
6155 2012-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
6156             Manuel López-Ibáñez  <manu@gcc.gnu.org>
6157
6158         PR c++/53210
6159         * c.opt ([Winit-self]): Enabled by -Wall in C++.
6160
6161 2012-08-23  Arnaud Charlet  <charlet@adacore.com>
6162
6163         * c-ada-spec.c (dump_generic_ada_node): Fix handling of name_only
6164         for pointers, and add missing Convention C pragma.
6165         (print_ada_struct_decl): Add missing aliased keyword.
6166         (dump_ads): Add pragma Ada_2005 and Style_Checks (Off).
6167
6168 2012-08-17  Jakub Jelinek  <jakub@redhat.com>
6169
6170         * c-common.c (sizeof_pointer_memaccess_warning): New function.
6171         * c.opt (-Wsizeof-pointer-memaccess): Add new option.
6172         * c-opts.c (c_common_handle_option): Enable it for -Wall.
6173         * c-common.h (sizeof_pointer_memaccess_warning): Add prototype.
6174         * c-common.def (SIZEOF_EXPR): Moved here from cp-tree.def.
6175
6176 2012-08-10  Richard Guenther  <rguenther@suse.de>
6177
6178         * c-pretty-print.c (pp_c_expression): Handle anonymous SSA names.
6179
6180 2012-08-07  Steven Bosscher  <steven@gcc.gnu.org>
6181
6182         * c-pretty-print.c (pp_c_function_definition): Use pp_newline_and_flush
6183         instead of separate pp_newline and pp_flush.
6184         (print_c_tree): Likewise.
6185
6186 2012-07-26  Richard Henderson  <rth@redhat.com>
6187
6188         * c-common.c (handle_hot_attribute): Allow labels.
6189         (handle_cold_attribute): Likewise.
6190
6191 2012-07-20  Jakub Jelinek  <jakub@redhat.com>
6192
6193         PR c++/28656
6194         * c-common.c (check_function_nonnull): Handle multiple nonnull
6195         attributes properly.
6196
6197 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
6198
6199         * c-gimplify.c: Include dumpfile.h instead of tree-dump.h.
6200         * c-ada-spec.c: Likewise.
6201         * c-dump.c (dump_stmt): Move to cp/dump.c, the only user.
6202
6203 2012-07-14  Steven Bosscher  <steven@gcc.gnu.org>
6204
6205         * c-pch.c (CHECK_NO_ASM_OUT_DURING_PCH): Do not define.
6206         Remove code conditional on it.
6207
6208 2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>
6209
6210         * c-gimplify.c: Do not include basic-block.h.
6211         * c-common.c: Do not include linfuncs.h.
6212
6213 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
6214
6215         * c-common.h: Include tree.h.
6216
6217 2012-07-02  Jason Merrill  <jason@redhat.com>
6218
6219         PR c++/53524
6220         * c-common.c (get_priority): Call default_conversion.
6221
6222 2012-07-01  Uros Bizjak  <ubizjak@gmail.com>
6223
6224         * c-pch.c (c_common_write_pch): Remove unused variables.
6225
6226 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
6227
6228         * cppspec.c: Moved from gcc/ to here.
6229
6230 2012-06-27  Kai Tietz  <ktietz@redhat.com>
6231
6232         PR preprocessor/37215
6233         * c-ppoutput.c (preprocess_file): Check for nonempty buffer.
6234
6235 2012-06-21  Steven Bosscher  <steven@gcc.gnu.org>
6236
6237         * c-common.h (c_common_print_pch_checksum): Remove.
6238         * c-pch.c: Do not include output.h.
6239         (CHECK_NO_ASM_OUT_DURING_PCH): Define and add FIXME.
6240         (asm_out_file): Define iff CHECK_NO_ASM_OUT_DURING_PCH isdefined.
6241         (asm_file_startpos): Define iff CHECK_NO_ASM_OUT_DURING_PCH is defined.
6242         (struct c_pch_header): Remove.
6243         (get_ident): Update gpch version.
6244         (pch_init): Do not print executable_checksum to asm_out_file.
6245         Do not fail if there is no asm_out_file to read back from.  Set
6246         asm_file_startpos only if CHECK_NO_ASM_OUT_DURING_PCH is defined.
6247         (c_common_write_pch): Verify that nothing was written to asm_out_file
6248         since pch_init was called.  Do not write a c_pch_header, and do not
6249         copy from asm_out_file to the PCH.
6250         (c_common_read_pch): Do not read a c_pch_header, and do not restore
6251         the content of asm_out_file from the PCH.
6252         (c_common_print_pch_checksum): Remove.
6253         * c-opts.c (c_common_init): Print out executable_checksum directly.
6254
6255 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
6256
6257         * c-target.def (objc_declare_unresolved_class_reference,
6258         objc_declare_class_definition): Add new hooks.
6259
6260 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
6261
6262         * c-lex.c: Do not include output.h.
6263         (cb_ident): Try to put out .ident with targetm.asm_out.output_ident.
6264         Remove uses of ASM_OUTPUT_IDENT.
6265
6266 2012-06-15  Marc Glisse  <marc.glisse@inria.fr>
6267
6268         PR c++/51033
6269         * c-common.h (c_build_vec_perm_expr): Move decl here.
6270         * c-common.c (c_build_vec_perm_expr): Move definition
6271         here.
6272
6273 2012-06-06  Steven Bosscher  <steven@gcc.gnu.org>
6274
6275         * c.opt (fconserve-space): Turn into a no-op.
6276
6277 2012-06-04  Sterling Augustine  <saugustine@google.com>
6278
6279         * c-pretty-print.h (pp_c_flag_gnu_v3): New enumerator.
6280         * c-pretty-print.c (pp_c_specifier_qualifier_list): Check it at
6281         both the start and end of the function.
6282
6283 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
6284
6285         * c-common.c: Do not include output.h.
6286         * c-pragma.c: Likewise.
6287
6288 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
6289
6290         * error.c (dump_decl): Check pp_c_flag_gnu_v3.
6291         (decl_as_dwarf_string, lang_decl_dwarf_name): New functions.
6292         (lang_decl_name): Handle namespace decls.
6293
6294 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
6295
6296         * c-ada-spec.c: Do not include output.h.
6297         * c-semantics.c: Likewise.
6298
6299 2012-05-29  Joseph Myers  <joseph@codesourcery.com>
6300
6301         * c-common.c: Fix typo.
6302
6303 2012-05-29  Michael Matz  <matz@suse.de>
6304
6305         * c-common.h (c_expand_decl): Remove prototype.
6306
6307 2012-05-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6308
6309         * c.opt (Wmissing-braces): Use LangEnabledBy(C ObjC,Wall).
6310         * c-opts.c (c_common_handle_option): Remove code handling
6311         warn_missing_braces.
6312
6313 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
6314
6315         PR c++/25137
6316         * c-opts.c (c_common_handle_option): For C++ -Wall doesn't enable
6317         -Wmissing_braces.
6318
6319 2012-05-22  Dodji Seketeli  <dodji@redhat.com>
6320
6321         PR c++/53322
6322         * c.opt (Wunused-local-typedefs): Use EnabledBy(Wunused).
6323
6324 2012-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6325
6326         * c.opt (--pedantic-errors,-pedantic-errors): Do not handle here.
6327         * c-opts.c (c_common_handle_option): Do not handle explicitly
6328         Wreturn-type, Wwrite-strings, warn_ecpp, and -pedantic-errors.
6329
6330 2012-05-16  Dodji Seketeli  <dodji@redhat.com>
6331
6332         PR preprocessor/7263
6333         * c-lex.c (c_lex_with_flags):  Pass a virtual location to the call
6334         to cpp_classify_number.  For diagnostics, use the precise location
6335         instead of the global input_location.
6336
6337 2012-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
6338
6339         PR c++/11856
6340         * c-common.c (shorten_compare): Check c_inhibit_evaluation_warnings.
6341
6342 2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>
6343
6344         * c-common.c (DEF_ATTR_STRING): Define and undefine as necessary.
6345
6346 2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6347
6348         PR 53063
6349         * c.opt (Wc++0X-compat,Wdelete-non-virtual-dtor,Wjump-misses-init,
6350         Wreorder): Use LangEnabledBy.
6351         * c-opts.c (c_common_handle_option): Do not enable them
6352         explicitly. Call lang-specific generated functions.
6353         (c_common_post_options): Do not set them here.
6354
6355 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6356
6357         * c.opt (Wclobbered,Wempty-body,Wignored-qualifiers,
6358         Wmissing-field-initializers,Wmissing-parameter-type,
6359         Wold-style-declaration,Woverride-init): Use EnabledBy.
6360         * c-opts.c (c_common_post_options): Do not set here explicitly.
6361
6362 2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6363
6364         PR 53063
6365         * c-opts.c (c_common_handle_option): Use handle_generated_option
6366         to enable sub-options.
6367
6368 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
6369
6370         PR c++/53158
6371         * c-common.c (warnings_for_convert_and_check): Use warning_at.
6372
6373 2012-05-10  Richard Guenther  <rguenther@suse.de>
6374
6375         * c-common.c (c_sizeof_or_alignof_type): Remove assert and
6376         adjust commentary about TYPE_IS_SIZETYPE types.
6377
6378 2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6379
6380         PR c++/53261
6381         * c-common.c (warn_logical_operator): Check that argument of
6382         integer_zerop is not NULL.
6383
6384 2012-05-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6385
6386         PR c/43772
6387         * c-common.c (warn_logical_operator): Do not warn if either side
6388         is already true or false.
6389
6390 2012-05-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6391
6392         PR c/51712
6393         * c-common.c (expr_original_type): New.
6394         (shorten_compare): Do not warn for enumeration types.
6395
6396 2012-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6397
6398         * c.opt (fpermissive): Add Var(flag_permissive).
6399
6400 2012-04-30  Marc Glisse  <marc.glisse@inria.fr>
6401
6402         PR c++/51033
6403         * c-common.c (convert_vector_to_pointer_for_subscript): New function.
6404         * c-common.h (convert_vector_to_pointer_for_subscript): Declare it.
6405
6406 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
6407
6408         Add -Wvarargs option
6409         * c.opt (Wvarargs):  Define new option.
6410
6411 2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6412
6413         * c-common.c (check_function_arguments): Replace
6414         Wmissing-format-attribute with Wsuggest-attribute=format.
6415
6416 2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6417
6418         * c.opt (Wsuggest-attribute=format): New. Alias of
6419         Wmissing-format-attribute.
6420         * c-format.c (decode_format_type): Replace
6421         Wmissing-format-attribute with Wsuggest-attribute=format.
6422         (check_function_format): Likewise.
6423
6424 2012-04-27  Ollie Wild  <aaw@google.com>
6425
6426         * c-common.c: Add CPP_W_LITERAL_SUFFIX mapping.
6427         * c-opts.c (c_common_handle_option): Handle OPT_Wliteral_suffix.
6428         * c.opt: Add Wliteral-suffix.
6429
6430 2012-04-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6431
6432         PR c/44774
6433         * c.opt (Wpedantic): New.
6434         (pedantic): Alias Wpedantic.
6435         * c-opts.c (c_common_handle_option): Replace -pedantic with -Wpedantic.
6436         (c_common_post_options): Likewise.
6437         (sanitize_cpp_opts): Likewise.
6438         * c-lex.c (interpret_float): Likewise.
6439         * c-format.c (check_format_types): Likewise.
6440         * c-common.c (pointer_int_sum): Likewise.
6441         (c_sizeof_or_alignof_type): Likewise.
6442         (c_add_case_label): Likewise.
6443         (c_do_switch_warnings): Likewise.
6444         * c-pragma.c (handle_pragma_float_const_decimal64): Likewise.
6445
6446 2012-04-15  Jason Merrill  <jason@redhat.com>
6447
6448         PR c++/52818
6449         * c-format.c (CPLUSPLUS_STD_VER): C++11 inherits from C99.
6450         (C_STD_NAME): Distinguish between C++98 and C++11.
6451
6452 2012-04-11  Eric Botcazou  <ebotcazou@adacore.com>
6453
6454         PR target/52624
6455         * c-common.h (uint16_type_node): Rename into...
6456         (c_uint16_type_node): ...this.
6457         * c-common.c (c_common_nodes_and_builtins): Adjust for above renaming.
6458         * c-cppbuiltin.c (builtin_define_stdint_macros): Likewise.
6459
6460 2012-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6461
6462         * c-common.c (warn_if_unused_value): Move definition to here.
6463         * c-common.h (warn_if_unused_value): Move declaration to here.
6464
6465 2012-03-23  William Bader  <williambader@hotmail.com>
6466
6467         * c-lex.c (c_lex_with_flags): Avoid declarations after stmts.
6468
6469 2012-03-20  Jason Merrill  <jason@redhat.com>
6470
6471         * c-common.h (enum cxx_dialect): Add cxx1y.
6472         * c-common.c (c_common_nodes_and_builtins): Use >= for cxx_dialect
6473         test.
6474         * c-cppbuiltin.c (c_cpp_builtins): Likewise.
6475         * c-opts.c (c_common_post_options): Likewise.
6476         (set_std_cxx1y): New.
6477         (c_common_handle_option): Call it.
6478         * c.opt (-std=c++1y, -std=gnu++1y): New flags.
6479
6480 2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
6481
6482         PR c++/14710
6483         * c.opt ([Wuseless-cast]): Add.
6484
6485 2012-03-16  Richard Guenther  <rguenther@suse.de>
6486
6487         * c-pretty-print.c (pp_c_initializer_list): Adjust.
6488
6489 2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6490
6491         PR c++/44783
6492         * c.opt (ftemplate-backtrace-limit) Add.
6493
6494 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6495
6496         * c-cppbuiltin.c (c_cpp_builtins): Remove #pragma extern_prefix
6497         handling.
6498         * c-pragma.c (handle_pragma_extern_prefix): Remove.
6499         (init_pragma): Don't register extern_prefix.
6500
6501 2012-03-12  Richard Guenther  <rguenther@suse.de>
6502
6503         * c-common.c (c_common_get_narrower): Use c_common_type_for_size.
6504         (builtin_type_for_size): Likewise.
6505
6506 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
6507
6508         PR c++/52215
6509         * c-common.c (sync_resolve_params): Don't decide whether to convert
6510         or not based on TYPE_SIZE comparison, convert whenever arg_type
6511         is unsigned INTEGER_TYPE.
6512
6513 2012-02-06  Paolo Carlini  <paolo.carlini@oracle.com>
6514
6515         PR c/52118
6516         * c.opt ([Wunused-local-typedefs]): Fix description.
6517
6518 2012-01-24  Mike Stump  <mikestump@comcast.net>
6519
6520         * c-common.c (c_common_type_for_mode): Match signed/unsigned types
6521         exactly.
6522
6523 2012-01-18  Richard Guenther  <rguenther@suse.de>
6524
6525         * c-opts.c (c_common_post_options): Reset LTO flags if
6526         we are about to generate a PCH.
6527
6528 2012-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
6529
6530         PR c++/51777
6531         * c-pretty-print.c (pp_c_integer_constant): For unsigned constants
6532         use pp_unsigned_wide_integer.
6533
6534 2012-01-10  Richard Guenther  <rguenther@suse.de>
6535
6536         PR middle-end/51806
6537         * c-opts.c (c_common_handle_option): Move -Werror handling
6538         to language independent code.
6539
6540 2012-01-05  Richard Guenther  <rguenther@suse.de>
6541
6542         PR middle-end/51764
6543         * c.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move here
6544         from common.opt.
6545
6546 2011-12-30  Paolo Carlini  <paolo.carlini@oracle.com>
6547
6548         PR c++/51316
6549         * c-common.c (c_sizeof_or_alignof_type): In C++ allow for alignof
6550         of array types with an unknown bound.
6551
6552 2011-12-20  Joseph Myers  <joseph@codesourcery.com>
6553
6554         * c-common.c (flag_isoc99): Update comment to refer to C11.
6555         (flag_isoc1x): Change to flag_isoc11.
6556         * c-common.h (flag_isoc99): Update comment to refer to C11.
6557         (flag_isoc1x): Change to flag_isoc11.
6558         * c-cppbuiltin.c (cpp_atomic_builtins): Change comment to refer to
6559         C11.
6560         * c-opts.c (set_std_c1x): Change to set_std_c11.
6561         (c_common_handle_option): Handle OPT_std_c11 and OPT_std_gnu11.
6562         Call set_std_c11.
6563         (set_std_c89, set_std_c99, set_std_c11): Use flag_isoc11.
6564         (set_std_c1): Use CLK_STDC11 and CLK_GNUC11.
6565         * c.opt (std=c1x): Change to std=c11.  Document as non-draft
6566         standard.
6567         (std=c1x, std=iso9899:2011): Add as aliases of std=c11.
6568         (std=gnu1x): Change to std=gnu11.  Refer to non-draft standard.
6569         (std=gnu1x): Make alias of std=gnu11.
6570
6571 2011-12-19  Jason Merrill  <jason@redhat.com>
6572
6573         PR c++/51228
6574         * c-common.c (handle_transparent_union_attribute): Check the first
6575         field if the type is complete.
6576
6577 2011-12-15  Jonathan Wakely  <jwakely.gcc@gmail.com>
6578
6579         PR libstdc++/51365
6580         * c-common.c (RID_IS_FINAL): Add.
6581         * c-common.h (RID_IS_FINAL): Add.
6582
6583 2011-11-30  Iain Sandoe  <iains@gcc.gnu.org>
6584
6585         * c.opt (fgnu-runtime): Provide full description.
6586         (fnext-runtime): Likewise.
6587         * c-opts.c (OPT_fgnu_runtime, OPT_fnext_runtime) Remove.
6588
6589 2011-11-28  Andrew MacLeod  <amacleod@redhat.com>
6590
6591         * c-cpp-builtin.c (cpp_atomic_builtins):New.  Emit all atomic
6592         predefines in one place.  Add LOCK_FREE predefines.
6593         (c_cpp_builtins): Move Legacy HAVE_SYNC predefines to
6594         new func.
6595
6596 2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
6597
6598         PR c/51256
6599         * c-common.c (get_atomic_generic_size): Check for various error
6600         conditions
6601         (resolve_overloaded_atomic_exchange,
6602         resolve_overloaded_atomic_compare_exchange,
6603         resolve_overloaded_atomic_load, resolve_overloaded_atomic_store): Return
6604         error_mark_node for error conditions.
6605
6606 2011-11-08  Richard Guenther  <rguenther@suse.de>
6607
6608         PR middle-end/51010
6609         c-family/
6610
6611 2011-11-07  Richard Henderson  <rth@redhat.com>
6612             Aldy Hernandez  <aldyh@redhat.com>
6613             Torvald Riegel  <triegel@redhat.com>
6614
6615         Merged from transactional-memory.
6616
6617         * c-common.c (handle_tm_wrap_attribute,
6618         handle_tm_attribute, ignore_attribute, parse_tm_stmt_attr): New.
6619         (struct c_common_reswords): Added __transaction* keywords.
6620         (struct c_common_attribute_table): Added transaction* and tm_regparm
6621         attributes.
6622         * c-common.h: Added RID_TRANSACTION*. Added TM_ATTR* and TM_STMT*
6623         masks.
6624         (parse_tm_stmt_attr, tm_attr_to_mask, tm_mask_to_attr,
6625         find_tm_attribute): Declare.
6626
6627 2011-11-07  Jason Merrill  <jason@redhat.com>
6628
6629         PR c++/35688
6630         * c-common.c, c-common.h: Revert yesterday's changes.
6631
6632 2011-11-06  Jason Merrill  <jason@redhat.com>
6633
6634         PR c++/35688
6635         * c-common.c (decl_has_visibility_attr): Split out from...
6636         (c_determine_visibility): ...here.
6637         * c-common.h: Declare it.
6638
6639 2011-11-06  Joseph Myers  <joseph@codesourcery.com>
6640
6641         * c-common.c (c_common_reswords): Add _Alignas and _Alignof.
6642         (c_sizeof_or_alignof_type): Diagnose alignof applied to a function
6643         type.
6644         (check_user_alignment): New.  Split out of
6645         handle_aligned_attribute.  Disallow integer constants with
6646         noninteger types.  Conditionally allow zero.
6647         (handle_aligned_attribute): Use check_user_alignment.
6648         * c-common.h (RID_ALIGNAS, check_user_alignment): New.
6649
6650 2011-11-06  Andrew MacLeod  <amacleod@redhat.com>
6651             Richard Henderson  <rth@redhat.com>
6652
6653         Merged from cxx-mem-model.
6654
6655         * c-cppbuiltin.c (c_cpp_builtins): Test both atomic and sync patterns.
6656         * c-common.c (sync_resolve_params, sync_resolve_return): Only tweak
6657         parameters that are the same type size.
6658         (get_atomic_generic_size): New.  Find size of generic
6659         atomic function parameters and do typechecking.
6660         (add_atomic_size_parameter): New.  Insert size into parameter list.
6661         (resolve_overloaded_atomic_exchange): Restructure __atomic_exchange to
6662         either __atomic_exchange_n or external library call.
6663         (resolve_overloaded_atomic_compare_exchange): Restructure
6664         __atomic_compare_exchange to either _n variant or external library call.
6665         (resolve_overloaded_atomic_load): Restructure __atomic_load to either
6666         __atomic_load_n or an external library call.
6667         (resolve_overloaded_atomic_store): Restructure __atomic_store to either
6668         __atomic_store_n or an external library call.
6669         (resolve_overloaded_builtin): Handle new __atomic builtins.
6670
6671 2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
6672
6673         PR c++/50608
6674         * c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Call fold_offsetof_1.
6675         (fold_offsetof_1): Make global.  Remove STOP_REF argument and adjust.
6676         <INDIRECT_REF>: Return the argument.
6677         <ARRAY_REF>: Remove special code for negative offset.
6678         Call fold_build_pointer_plus instead of size_binop.
6679         (fold_offsetof): Remove STOP_REF argument and adjust.
6680         * c-common.h (fold_offsetof_1): Declare.
6681         (fold_offsetof): Remove STOP_REF argument.
6682
6683 2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
6684
6685         PR c++/50810
6686         * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
6687         of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
6688         Wnarrowing for C++0x and C++98.
6689         * c.opt ([Wnarrowing]): Update.
6690
6691 2011-11-01  Paolo Carlini  <paolo.carlini@oracle.com>
6692
6693         PR c++/44277
6694         * c.opt: Add Wzero-as-null-pointer-constant.
6695
6696 2011-10-31  Jason Merrill  <jason@redhat.com>
6697
6698         * c.opt (-fdeduce-init-list): Off by default.
6699
6700         PR c++/50920
6701         * c-common.h (cxx_dialect): Add cxx11 and cxx03.
6702         * c.opt: Add -std=c++11, -std=gnu++11, -std=gnu++03,
6703         and -Wc++11-compat.
6704         * c-opts.c (set_std_cxx11): Rename from set_std_cxx0x.
6705
6706 2011-10-27  Roberto Agostino Vitillo  <ravitillo@lbl.gov>
6707
6708         PR c++/30066
6709         * c.opt (fvisibility-inlines-hidden): Description change.
6710
6711 2011-10-26  Ed Smith-Rowland  <3dw4rd@verizon.net>
6712
6713         Implement C++11 user-defined literals.
6714         * c-common.c (build_userdef_literal): New.
6715         * c-common.def: New tree code.
6716         * c-common.h (tree_userdef_literal): New tree struct and accessors.
6717         * c-lex.c (interpret_float): Add suffix parm.
6718         (c_lex_with_flags): Build literal tokens.
6719
6720 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
6721
6722         PR c++/50841
6723         Revert:
6724         2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
6725
6726         PR c++/50810
6727         * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
6728         of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
6729         Wnarrowing for C++0x and C++98.
6730         * c.opt ([Wnarrowing]): Update.
6731
6732 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
6733
6734         PR c++/50810
6735         * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
6736         of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
6737         Wnarrowing for C++0x and C++98.
6738         * c.opt ([Wnarrowing]): Update.
6739
6740 2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>
6741
6742         PR c++/45385
6743         * c-common.c (conversion_warning): Remove code looking for
6744         artificial operands.
6745
6746 2011-10-18  Dodji Seketeli  <dodji@redhat.com>
6747
6748         PR bootstrap/50760
6749         * c-lex.c (fe_file_change): Use LINEMAP_SYSP when
6750         !NO_IMPLICIT_EXTERN_C.
6751
6752 2011-10-17  Michael Spertus  <mike_spertus@symantec.com>
6753
6754         * c-common.c (c_common_reswords): Add __bases,
6755         __direct_bases.
6756         * c-common.h: Add RID_BASES and RID_DIRECT_BASES.
6757
6758 2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
6759
6760         PR c++/50757
6761         * c.opt ([Wnonnull]): Add C++ and Objective-C++.
6762
6763 2011-10-15  Tom Tromey  <tromey@redhat.com>
6764             Dodji Seketeli  <dodji@redhat.com>
6765
6766         * c.opt (fdebug-cpp): New option.
6767         * c-opts.c (c_common_handle_option): Handle the option.
6768         * c-ppoutput.c (maybe_print_line_1): New static function. Takes an
6769         output stream in parameter. Factorized from ...
6770         (maybe_print_line): ... this. Dump location debug information when
6771         -fdebug-cpp is in effect.
6772         (print_line_1): New static function. Takes an output stream in
6773         parameter. Factorized from ...
6774         (print_line): ... here. Dump location information when -fdebug-cpp
6775         is in effect.
6776         (scan_translation_unit): Dump location information when
6777         -fdebug-cpp is in effect.
6778
6779 2011-10-15  Tom Tromey  <tromey@redhat.com>
6780             Dodji Seketeli  <dodji@redhat.com>
6781
6782         * c.opt (ftrack-macro-expansion): New option. Handle it with and
6783         without argument.
6784         * c-opts.c (c_common_handle_option)<case
6785         OPT_ftrack_macro_expansion_, case OPT_ftrack_macro_expansion>: New
6786         cases. Handle -ftrack-macro-expansion with and without argument.
6787
6788 2011-10-15  Tom Tromey  <tromey@redhat.com>
6789             Dodji Seketeli  <dodji@redhat.com>
6790
6791         * c-ppoutput.c (scan_translation_unit, maybe_print_line)
6792         (print_line, cb_define, do_line_change): Adjust to avoid touching
6793         the internals of struct line_map.  Use the public API instead.
6794         * c-pch.c (c_common_read_pch): Likewise.
6795         * c-lex.c (fe_file_change): Likewise.
6796
6797 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
6798
6799         PR c++/17212
6800         * c.opt ([Wformat-zero-length]): Add C++ and Objective-C++.
6801
6802 2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
6803
6804         PR c++/33067
6805         * c-pretty-print.c (pp_c_floating_constant): Output
6806         max_digits10 (in the ISO C++ WG N1822 sense) decimal digits.
6807
6808 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6809
6810         * c-common.c (def_builtin_1): Delete old interface with two
6811         parallel arrays to hold standard builtin declarations, and replace
6812         it with a function based interface that can support creating
6813         builtins on the fly in the future.  Change all uses, and poison
6814         the old names.  Make sure 0 is not a legitimate builtin index.
6815         * c-omp.c (c_finish_omp_barrier): Ditto.
6816         (c_finish_omp_taskwait): Ditto.
6817         (c_finish_omp_flush): Ditto.
6818
6819 2011-10-11  Tristan Gingold  <gingold@adacore.com>
6820
6821         * c.opt: (fallow-parameterless-variadic-functions): New.
6822
6823 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
6824
6825         PR c++/33255 - Support -Wunused-local-typedefs warning
6826         * c-common.h (struct c_language_function::local_typedefs): New
6827         field.
6828         (record_locally_defined_typedef, maybe_record_typedef_use)
6829         (maybe_warn_unused_local_typedefs): Declare new functions.
6830         * c-common.c (record_locally_defined_typedef)
6831         (maybe_record_typedef_use)
6832         (maybe_warn_unused_local_typedefs): Define new functions.
6833         * c.opt: Declare new -Wunused-local-typedefs flag.
6834
6835 2011-09-06  Eric Botcazou  <ebotcazou@adacore.com>
6836
6837         PR middle-end/50266
6838         * c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Fold offsetof-like
6839         computations.
6840
6841 2011-09-05  Richard Guenther  <rguenther@suse.de>
6842
6843         * c-common.c (complete_array_type): Use ssize_int (-1) instead
6844         of integer_minus_one_node for empty array upper bounds.
6845
6846 2011-08-28  Dodji Seketeli  <dodji@redhat.com>
6847
6848         * c-pch.c (c_common_read_pch): Call linemap_add with LC_ENTER as
6849         it's the first time it's being called on this main TU.
6850
6851 2011-08-24  Richard Guenther  <rguenther@suse.de>
6852
6853         PR c/49396
6854         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Fix conditional.
6855
6856 2011-08-22  Gabriel Charette  <gchare@google.com>
6857
6858         * c-opts.c (c_finish_options): Force BUILTINS_LOCATION for tokens
6859         defined in cpp_init_builtins and c_cpp_builtins.
6860
6861 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
6862
6863         * c-common.c (c_common_reswords): Add __builtin_complex.
6864         * c-common.h (RID_BUILTIN_COMPLEX): New.
6865
6866 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
6867
6868         * c-common.c (c_common_reswords): Add _Noreturn.
6869         (keyword_is_function_specifier): Handle RID_NORETURN.
6870         * c-common.h (RID_NORETURN): New.
6871
6872 2011-08-10  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6873
6874         * c-common.c (unsafe_conversion_p): New function. Check if it is
6875         unsafe to convert an expression to the type.
6876         (conversion_warning): Adjust, use unsafe_conversion_p.
6877         * c-common.h (unsafe_conversion_p): New function declaration.
6878
6879 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
6880
6881         * c-common.h (c_finish_omp_atomic): Adjust prototype.
6882         (c_finish_omp_taskyield): New prototype.
6883         * c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
6884         arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and
6885         OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC.  If LHS1
6886         or RHS1 have side-effects, evaluate those too in the right spot,
6887         if it is a decl and LHS is also a decl, error out if they
6888         aren't the same.
6889         (c_finish_omp_taskyield): New function.
6890         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107.
6891         * c-pragma.c (omp_pragmas): Add taskyield.
6892         * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD.
6893         (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and
6894         PRAGMA_OMP_CLAUSE_MERGEABLE.
6895
6896 2011-07-25  Dodji Seketeli  <dodji@redhat.com>
6897
6898         * c-common.h (set_underlying_type): Remove parm name from
6899         declaration.
6900
6901 2011-07-25  Romain Geissler  <romain.geissler@gmail.com>
6902
6903         * c-pretty-print.h: Search c-common.h in c-family.
6904
6905 2011-07-22  Jason Merrill  <jason@redhat.com>
6906
6907         PR c++/49793
6908         * c.opt (Wnarrowing): New.
6909
6910         PR c++/30112
6911         * c-common.h: Declare c_linkage_bindings.
6912         * c-pragma.c (handle_pragma_redefine_extname): Use it.
6913
6914         PR c++/49813
6915         * c-opts.c (set_std_cxx0x): Set flag_isoc94 and flag_isoc99.
6916         * c-pretty-print.c (pp_c_cv_qualifiers): Check c_dialect_cxx as well
6917         as flag_isoc99 for 'restrict'.
6918         (pp_c_specifier_qualifier_list): Likewise for _Complex.
6919
6920 2011-07-21  Ian Lance Taylor  <iant@google.com>
6921
6922         PR middle-end/49705
6923         * c-common.c (c_disable_warnings): New static function.
6924         (c_enable_warnings): New static function.
6925         (c_fully_fold_internal): Change local unused_p to bool.  Call
6926         c_disable_warnings and c_enable_warnings rather than change
6927         c_inhibit_evaluation_warnings.
6928
6929 2011-07-20  Jason Merrill  <jason@redhat.com>
6930
6931         PR c++/6709 (DR 743)
6932         PR c++/42603 (DR 950)
6933         * c-common.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move from cp/parser.h.
6934         (CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
6935         (CPP_DECLTYPE): New.
6936         * c-common.c (c_parse_error): Handle CPP_DECLTYPE.
6937
6938 2011-07-19  Richard Guenther  <rguenther@suse.de>
6939
6940         * c-common.c (pointer_int_sum): Use fold_build_pointer_plus.
6941         * c-omp.c (c_finish_omp_for): Likewise.
6942
6943 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
6944
6945         * c-ada-spec.c (dump_nested_types): Put semi-colon after empty loop
6946         body on the next line.
6947
6948 2011-07-08  Jason Merrill  <jason@redhat.com>
6949
6950         PR c++/45437
6951         * c-omp.c (check_omp_for_incr_expr): Handle preevaluation.
6952
6953         PR c++/49673
6954         * c-common.c (c_apply_type_quals_to_decl): Don't check
6955         TYPE_NEEDS_CONSTRUCTING.
6956
6957 2011-07-06  Richard Guenther  <rguenther@suse.de>
6958
6959         * c-common.c (c_common_nodes_and_builtins):
6960         Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
6961
6962 2011-07-05  Richard Guenther  <rguenther@suse.de>
6963
6964         * c-common.c (c_common_nodes_and_builtins): Build all common
6965         tree nodes first.
6966
6967 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
6968
6969         * c-common.h (c_tree_chain_next): New static inline function.
6970
6971         * c-common.c (check_builtin_function_arguments): Handle
6972         BUILT_IN_ASSUME_ALIGNED.
6973
6974 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
6975
6976         * c-common.c: Add sync_ or SYNC__ to builtin names.
6977         * c-omp.c: Add sync_ or SYNC__ to builtin names.
6978
6979 2011-06-20  Pierre Vittet  <piervit@pvittet.com>
6980
6981         * c-pragma.h (pragma_handler_1arg, pragma_handler_2arg): New
6982         handler.
6983         (gen_pragma_handler): New union.
6984         (internal_pragma_handler): New type.
6985         (c_register_pragma_with_data)
6986         (c_register_pragma_with_expansion_and_data): New functions.
6987
6988         * c-pragma.c (registered_pragmas, c_register_pragma_1)
6989         (c_register_pragma, c_register_pragma_with_expansion)
6990         (c_invoke_pragma_handler): Changed to work with
6991         internal_pragma_handler.
6992         (c_register_pragma_with_data)
6993         (c_register_pragma_with_expansion_and_data): New functions.
6994
6995 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
6996
6997         * c-common.c: Include common/common-target.h.
6998         (handle_section_attribute): Use
6999         targetm_common.have_named_sections.
7000         * c-cppbuiltin.c: Include common/common-target.h.
7001         (c_cpp_builtins): Use targetm_common.except_unwind_info.
7002
7003 2011-06-10  Richard Guenther  <rguenther@suse.de>
7004
7005         * c-pretty-print.c (pp_c_type_specifier): Use pp_c_identifier
7006         to print a IDENTIFIER_NODE.
7007
7008 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7009             Joseph Myers  <joseph@codesourcery.com>
7010
7011         * c.opt (fbuilding-libgcc): New option.
7012         * c-cppbuiltin.c (c_cpp_builtins): Define
7013         __LIBGCC_TRAMPOLINE_SIZE__ if flag_building_libgcc.
7014
7015 2011-06-07  Jason Merrill  <jason@redhat.com>
7016
7017         * c-common.c (max_tinst_depth): Lower default to 900.
7018
7019         * c-format.c (gcc_cxxdiag_char_table): Add 'S' format.
7020
7021 2011-06-07  Richard Guenther  <rguenther@suse.de>
7022
7023         * c-common.c (c_common_nodes_and_builtins): Do not set
7024         size_type_node or call set_sizetype.
7025
7026 2011-06-07  Dodji Seketeli  <dodji@redhat.com>
7027
7028         PR debug/49130
7029         * c-pretty-print.c (pp_c_integer_constant): Consider the canonical
7030         type when using pointer comparison to compare types.
7031
7032 2011-06-02  Jonathan Wakely  <jwakely.gcc@gmail.com>
7033
7034         * c.opt: Add -Wdelete-non-virtual-dtor.
7035         * c-opts.c (c_common_handle_option): Include it in -Wall.
7036
7037 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
7038
7039         PR bootstrap/49190
7040
7041         Revert:
7042         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
7043
7044         * c-common.h (struct c_common_identifier): Inherit from tree_typed,
7045         not tree_common.
7046
7047 2011-05-27  Jakub Jelinek  <jakub@redhat.com>
7048
7049         PR c++/49165
7050         * c-common.c (c_common_truthvalue_conversion) <case COND_EXPR>: For
7051         C++ don't call c_common_truthvalue_conversion on void type arms.
7052
7053 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
7054
7055         * c-common.h (struct stmt_tree_s) [x_cur_stmt_list]: Change to a VEC.
7056         (stmt_list_stack): Define.
7057         (cur_stmt_list): Adjust for new type of x_cur_stmt_list.
7058         * c-semantics.c (push_stmt_list, pop_stmt_list): Likewise.
7059
7060 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
7061
7062         * c-common.c (warning_candidate_p): Check for BLOCKs.
7063
7064 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
7065
7066         * c-common.h (struct c_common_identifier): Inherit from tree_typed,
7067         not tree_common.
7068
7069 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
7070
7071         * c-common.c (def_fn_type): Remove extra va_end.
7072
7073 2011-05-23  Jason Merrill  <jason@redhat.com>
7074
7075         PR c++/48106
7076         * c-common.c (c_common_get_narrower): New.
7077         (shorten_binary_op, shorten_compare, warn_for_sign_compare): Use it.
7078
7079 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
7080
7081         * c-common.h (check_function_arguments): Tweak prototype of
7082         check_function_arguments.
7083         * c-common.c (check_function_arguments): Likewise.  Adjust
7084         calls to check_function_nonnull, check_function_format, and
7085         check_function_sentinel.
7086         (check_function_sentinel): Take a FUNCTION_TYPE rather than
7087         separate attributes and typelist arguments.  Use
7088         FOREACH_FUNCTION_ARGS to iterate over argument types.
7089
7090 2011-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
7091
7092         * c-common.c (c_common_reswords): Reorder.
7093         * c-common.h (rid): Likewise.
7094
7095 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
7096
7097         * c-common.c (def_fn_type): Don't call build_function_type, call
7098         build_function_type_array or build_varargs_function_type_array
7099         instead.
7100         (c_common_nodes_and_builtins): Likewise.
7101
7102 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
7103
7104         * c-common.c (c_add_case_label): Omit the loc argument to
7105         build_case_label.
7106         * c-common.h (build_case_label): Remove.
7107         * c-semantics.c (build_case_label): Remove.
7108
7109 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
7110
7111         * c-objc.h (objc_start_method_definition): Update prototype.
7112         * stub-objc.c (objc_start_method_definition): Add extra parameter.
7113
7114 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
7115
7116         * c-common.c (check_main_parameter_types): Reindent.  Don't use
7117         TYPE_ARG_TYPES directly.
7118         (handle_nonnull_attribute): Likewise.
7119         (sync_resolve_params): Likewise.
7120         * c-format.c (handle_format_arg_attribute): Likewise.  Adjust call
7121         to check_format_string.
7122         (handle_format_attribute): Likewise.
7123         (check_format_string): Take a function type to examine instead of
7124         a type list.  Use a function_arg_iterator to step through argument
7125         types.
7126
7127 2011-05-04  Richard Guenther  <rguenther@suse.de>
7128
7129         * c-common.c (fix_string_type): Use size_int for index type bounds.
7130         (start_fname_decls): Do not pass NULL to build_int_cst.
7131         (c_init_attributes): Likewise.
7132         * c-lex.c (c_lex_with_flags): Likewise.
7133
7134 2011-04-27  Jason Merrill  <jason@redhat.com>
7135
7136         * c-common.c (make_tree_vector_from_list): New.
7137         * c-common.h: Declare it.
7138
7139 2011-04-26  Richard Guenther  <rguenther@suse.de>
7140
7141         PR preprocessor/48248
7142         * c-ppoutput.c (maybe_print_line): Always optimize newlines
7143         for output size with -P.
7144
7145 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
7146
7147         * c-common.c (struct c_common_resword): Add __underlying_type.
7148         * c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
7149
7150 2011-04-20  Jim Meyering  <meyering@redhat.com>
7151
7152         * c-format.c (init_dollar_format_checking): Remove useless
7153         if-before-free.
7154
7155 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
7156
7157         * c-objc.h (objc_get_interface_ivars): Removed.
7158         (objc_detect_field_duplicates): New.
7159         * stub-objc.c: Likewise.
7160
7161 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
7162
7163         * stub-objc.c (objc_declare_protocols): Renamed to
7164         objc_declare_protocol.
7165         * c-objc.h: Likewise.
7166
7167 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
7168
7169         * stub-objc.c (objc_declare_class): Updated argument name.
7170
7171 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
7172
7173         * c-common.h (c_common_init_ts): Declare.
7174         * c-common.c (c_common_init_ts): Define.
7175
7176 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
7177
7178         * c-objc.h (objc_build_message_expr): Updated prototype.
7179         * stub-objc.c (objc_build_message_expr): Likewise.
7180
7181 2011-04-12  Martin Jambor  <mjambor@suse.cz>
7182
7183         * c-gimplify.c (c_genericize): Call cgraph_get_create_node instead
7184         of cgraph_node.
7185
7186 2011-04-11  Richard Guenther  <rguenther@suse.de>
7187
7188         * c-common.c (complete_array_type): Build a range type of
7189         proper type.
7190
7191 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
7192
7193         * c-common.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
7194         (handle_type_generic_attribute): Likewise.
7195
7196 2011-04-07  Jason Merrill  <jason@redhat.com>
7197
7198         PR c++/48450
7199         * c-common.c (c_common_truthvalue_conversion): Don't ignore
7200         conversion from C++0x scoped enum.
7201
7202 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7203
7204         * c-target-def.h: New file.
7205         * c-target.def: New file.
7206         * c-target.h: New file.
7207         * c-common.c (targetcm): Don't define here.
7208         * c-common.h (default_handle_c_option): Declare.
7209         * c-format.c: Include c-target.h instead of target.h.
7210         * c-opts.c: Include c-target.h instead of target.h.  Explicitly
7211         include tm.h.
7212         (default_handle_c_option): Move from targhooks.c.
7213
7214 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
7215
7216         PR preprocessor/48248
7217         * c-ppoutput.c (print): Add src_file field.
7218         (init_pp_output): Initialize it.
7219         (maybe_print_line): Don't optimize by adding up to 8 newlines
7220         if map->to_file and print.src_file are different file.
7221         (print_line): Update print.src_file.
7222
7223 2011-03-25  Kai Tietz  <ktietz@redhat.com>
7224
7225         * c-ada-spec.c (compare_comment): Use filename_cmp
7226         instead of strcmp for filename.
7227
7228 2011-03-25  Jeff Law  <law@redhat.com>
7229
7230         * c-common.c (def_fn_type): Add missing va_end.
7231
7232 2011-03-25  Jason Merrill  <jason@redhat.com>
7233
7234         * c.opt: Add -std=c++03.
7235
7236 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
7237
7238         * c-ada-spec.c (dump_ada_template): Skip non-class instances.
7239
7240 2011-03-17  Kai Tietz  <ktietz@redhat.com>
7241
7242         PR target/12171
7243         * c-pretty-print.c (pp_c_specifier_qualifier_list):
7244         Display allowed attributes for function pointer types.
7245         (pp_c_attributes_display): New function to display
7246         attributes having affects_type_identity flag set to true.
7247         * c-pretty-print.h (pp_c_attributes_display): New prototype.
7248
7249         * c-common.c (c_common_attribute_table):
7250         Add new element.
7251         (c_common_format_attribute_table): Likewise.
7252
7253 2011-03-18  Jason Merrill  <jason@redhat.com>
7254
7255         * c.opt (fconstexpr-depth): Add Var(max_constexpr_depth).
7256         * c-common.h: Don't declare it here.
7257         * c-common.c: Or define it here.
7258         * c-opts.c (c_common_handle_option): Or set it here.
7259
7260         PR c++/35315
7261         * c-common.c (handle_transparent_union_attribute): Don't
7262         make a duplicate type in C++.
7263
7264 2011-03-15  Jason Merrill  <jason@redhat.com>
7265
7266         * c-common.c (max_constexpr_depth): New.
7267         * c-common.h: Declare it.
7268         * c-opts.c (c_common_handle_option): Set it.
7269         * c.opt (fconstexpr-depth): New option.
7270
7271 2011-03-11  Jason Merrill  <jason@redhat.com>
7272
7273         * c-common.c (attribute_takes_identifier_p): Add missing const.
7274
7275         PR c++/46803
7276         * c-common.c (attribute_takes_identifier_p): Assume that an
7277         unknown attribute takes an identifier.
7278
7279 2011-03-07  Nathan Froyd  <froydnj@codesourcery.com>
7280
7281         PR c/47786
7282         * c-common.c (c_type_hash): Call list_length instead of iterating
7283         through DECL_CHAIN.  Rename 'i' to 'n_elements'.
7284
7285 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
7286
7287         PR c/47809
7288         * c-common.c (c_fully_fold_internal): Handle VIEW_CONVERT_EXPR.
7289
7290 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
7291
7292         * c.opt (fobjc-abi-version=) New.
7293         (fobjc-nilcheck): New.
7294
7295 2011-02-03  Nathan Froyd  <froydnj@codesourcery.com>
7296
7297         PR c++/46890
7298         * c-common.h (keyword_is_decl_specifier): Declare.
7299         * c-common.c (keyword_is_decl_specifier): Define.
7300         (keyword_is_function_specifier): New function.
7301
7302 2011-01-26  Jakub Jelinek  <jakub@redhat.com>
7303
7304         PR c/47473
7305         * c-lex.c (interpret_float): If CPP_N_IMAGINARY, ensure
7306         EXCESS_PRECISION_EXPR is created with COMPLEX_TYPE instead of
7307         REAL_TYPE.
7308
7309 2011-01-26  Arnaud Charlet  <charlet@adacore.com>
7310
7311         * c-ada-spec.c (dump_generic_ada_node): Avoid dereferencing null type.
7312
7313 2011-01-26  Jakub Jelinek  <jakub@redhat.com>
7314
7315         PR pch/47430
7316         * c-opts.c (c_common_post_options): Call c_common_no_more_pch
7317         after init_c_lex if pch_file is set.
7318
7319 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
7320
7321         PR c++/43601
7322         * c.opt (-fkeep-inline-dllexport): New switch.
7323
7324 2011-01-12  Richard Guenther  <rguenther@suse.de>
7325
7326         PR middle-end/32511
7327         * c-common.c (handle_weak_attribute): Warn instead of error
7328         on declaring an inline function weak.
7329
7330 2011-01-05  Tom Tromey  <tromey@redhat.com>
7331
7332         * c-common.h (lvalue_error): Update.
7333         * c-common.c (lvalue_error): Add 'loc' argument.  Call error_at,
7334         not error.
7335
7336 2010-12-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7337
7338         PR objc/47075
7339         * c-objc.h (objc_finish_message_expr): Added argument to
7340         prototype.
7341
7342 2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
7343
7344         * c-common.c (handle_nonnull_attribute, handle_sentinel_attribute):
7345         Use prototype_p.
7346
7347 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7348
7349         * c-objc.h (objc_maybe_warn_exceptions): New.
7350         * stub-objc.c (objc_maybe_warn_exceptions): New.
7351
7352 2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>
7353
7354         * c-common.h (readonly_error): Declare.
7355         * c-common.c (readonly_error): Define.
7356
7357 2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>
7358
7359         * c-common.h (invalid_indirection_error): Declare.
7360         * c-common.c (invalid_indirection_error): Define.
7361
7362 2010-12-03  Richard Guenther  <rguenther@suse.de>
7363
7364         PR c/46745
7365         * c-pretty-print.c (pp_c_postfix_expression): Handle MEM_REF.
7366         (pp_c_unary_expression): Likewise.
7367         (pp_c_expression): Likewise.
7368
7369 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7370
7371         * c-common.h (objc_finish_function): New.
7372         (objc_non_volatilized_type): Removed.
7373         (objc_type_quals_match): Removed.
7374         * stub-objc.c (objc_finish_function): New.
7375         (objc_non_volatilized_type): Removed.
7376         (objc_type_quals_match): Removed.
7377
7378 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
7379
7380         * c-common.h (parse_optimize_options): Declare.
7381         * c-cppbuiltin.c, c-format.c, c-gimplify.c, c-lex.c, c-omp.c,
7382         c-pch.c, c-pragma.c, c-semantics.c: Don't include toplev.h.
7383
7384 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
7385
7386         * c-opts.c (check_deps_environment_vars): Use getenv instead of
7387         GET_ENVIRONMENT.
7388         * c-pch.c (O_BINARY): Don't define here.
7389         * c-pragma.h: Include "cpplib.h" instead of <cpplib.h>.
7390
7391 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
7392
7393         * c-cppbuiltin.c (c_cpp_builtins): Pass &global_options to
7394         targetm.except_unwind_info.
7395
7396 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
7397
7398         * c-opts.c (c_common_handle_option): Pass location to
7399         set_struct_debug_option.
7400
7401 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
7402
7403         * c-common.c (visibility_options): Move from ../opts.c.
7404         * c-common.h (struct visibility_flags, visibility_options):
7405         Declare here.
7406         * c-opts.c (finish_options): Rename to c_finish_options.
7407         (c_common_init): Update call to finish_options.
7408
7409 2010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>
7410
7411         PR objc/34033
7412         * c-lex.c (lex_string): Check that each string in an Objective-C
7413         string concat sequence starts with either one or zero '@', and
7414         that there are no spurious '@' signs at the end.
7415
7416 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
7417
7418         * c-pragma.c: Remove conditionals on HANDLE_PRAGMA_PACK,
7419         HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_PRAGMA_WEAK and
7420         HANDLE_PRAGMA_VISIBILITY.
7421         * c-pragma.h (HANDLE_PRAGMA_WEAK, HANDLE_PRAGMA_PACK,
7422         HANDLE_PRAGMA_VISIBILITY): Don't define.
7423         (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Don't test.
7424
7425 2010-11-20  Nathan Froyd  <froydnj@codesourcery.com>
7426
7427         PR c++/16189
7428         PR c++/36888
7429         PR c++/45331
7430         * c-common.h (keyword_begins_type_specifier): Declare.
7431         (keyword_is_storage_class_specifier): Declare.
7432         (keyword_is_type_qualifier): Declare.
7433         * c-common.c (keyword_begins_type_specifier): New function.
7434         (keyword_is_storage_class_specifier): New function.
7435         (keyword_is_type_qualifier): Declare.
7436
7437 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
7438
7439         PR c/46547
7440         * c-common.c (in_late_binary_op): Define.
7441         (c_common_truthvalue_conversion): Check in_late_binary_op before
7442         calling c_save_expr.
7443         * c-common.h (in_late_binary_op): Declare.
7444
7445 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
7446
7447         * c-opts.c (c_common_handle_option): Update calls to
7448         set_struct_debug_option.
7449
7450 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
7451
7452         * c-common.h (objc_declare_protocols): Added additional argument.
7453         * stub-objc.c (objc_declare_protocol): Same change.
7454
7455 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
7456
7457         PR c/33193
7458         * c-common.h (build_real_imag_expr): Declare.
7459         * c-semantics.c (build_real_imag_expr): Define.
7460
7461 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
7462
7463         * c-opts.c (c_common_parse_file): Take no arguments.
7464         * c-common.h (c_common_parse_file): Update prototype.
7465
7466 2010-11-16  Jakub Jelinek  <jakub@redhat.com>
7467
7468         PR c++/46401
7469         * c-common.c (warning_candidate_p): Don't track non-const calls
7470         or STRING_CSTs.
7471
7472 2010-11-15  Ian Lance Taylor  <iant@google.com>
7473
7474         * c-lex.c (init_c_lex): Set macro debug callbacks if
7475         flag_dump_go_spec is set.
7476
7477 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
7478
7479         * c-common.h (objc_build_incr_expr_for_property_ref): New.
7480         * stub-objc.c (objc_build_incr_expr_for_property_ref): New.
7481
7482 2010-11-15  Nathan Froyd  <froydnj@codesourcery.com>
7483
7484         PR preprocessor/45038
7485         * c-cppbuiltin.c (c_cpp_builtins): Use different format for C++
7486         dialects.
7487
7488 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
7489
7490         * c-common.h (c_family_lang_mask): Declare.
7491         * c-opts.c (c_family_lang_mask): Make extern.
7492         * c-pragma.c (handle_pragma_diagnostic): Use
7493         control_warning_option.
7494
7495 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
7496
7497         * c-common.c (parse_optimize_options): Update call to
7498         decode_options.
7499         * c-common.h (c_common_handle_option): Update prototype.
7500         * c-opts.c (c_common_handle_option): Take location_t parameter and
7501         pass it to other functions.
7502
7503 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
7504
7505         * c-opts.c (warning_as_error_callback): Remove.
7506         (c_common_initialize_diagnostics): Don't call
7507         register_warning_as_error_callback.
7508         (c_common_handle_option): Handle -Werror=normalized= here.
7509
7510 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
7511
7512         * c-common.c (handle_mode_attribute): Use %' and word "signedness"
7513         in diagnostic.
7514         * c-opts.c (c_common_parse_file): Start diagnostics with lowercase
7515         letter.
7516         * c-pragma.c (handle_pragma_target, handle_pragma_optimize):
7517         Remove trailing '.' from diagnostics.
7518         * c.opt (Wwrite-strings_: Avoid '`' in help text.
7519
7520 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
7521
7522         * c-common.c (parse_optimize_options): Pass global_dc to
7523         decode_options.
7524         * c-opts.c (c_common_handle_option): Pass &global_options to
7525         set_Wstrict_aliasing.
7526         * c.opt (v): Don't mark Common or document here.
7527
7528 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
7529
7530         PR target/44981
7531         * c-format.c (format_type): New type gcc_objc_string_format_type.
7532         (valid_stringptr_type_p): New.
7533         (handle_format_arg_attribute): Use valid_stringptr_type_p ().
7534         (check_format_string): Pass expected type, use
7535         valid_stringptr_type_p (), check that the format string types are
7536         consistent with the format specification.
7537         (decode_format_attr): Warn if NSString is used outside objective-c.
7538         (format_types_orig): Add NSString.
7539         (format_name): New.
7540         (format_flags): New.
7541         (check_format_arg): Handle format strings requiring an external parser.
7542         first_target_format_type: New variable.
7543         (handle_format_attribute): Set up first_target_format_type, pass the
7544         expected format arg string type to check_format_string().
7545         * c-common.h (FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL):  New flag.
7546         * stub-objc.c (objc_string_ref_type_p): New.
7547         (objc_check_format_arg): New.
7548
7549 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
7550
7551         Fixed using the Objective-C 2.0 dot-syntax with class names.
7552         * c-common.h (objc_build_class_component_ref): New.
7553         * stub-objc.c (objc_build_class_component_ref): New.
7554
7555 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
7556
7557         * c.opt (Wproperty-assign-default): New option.
7558
7559 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
7560
7561         Implemented -fobjc-std=objc1 flag.
7562         * c.opt (fobjc-std=objc1): New option.
7563
7564 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
7565
7566         Implemented format and noreturn attributes for Objective-C methods.
7567         * c-common.c (handle_noreturn_attribute): Recognize 'noreturn'
7568         attribute for Objective-C methods.
7569
7570 2010-10-31  Jason Merrill  <jason@redhat.com>
7571
7572         * c-common.c (conversion_warning, warn_for_collisions_1): Use
7573         EXPR_LOC_OR_HERE.
7574
7575 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7576
7577         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
7578         * c-common.h (enum rid): Removed RID_COPIES and RID_IVAR.
7579         (objc_add_property_declaration): Removed arguments for copies and
7580         ivar.
7581         (objc_build_getter_call): Renamed to
7582         objc_maybe_build_component_ref.
7583         (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
7584         (objc_is_property_ref): New.
7585         * c-common.c (c_common_reswords): Removed copies and ivar.
7586         * stub-objc.c (objc_add_property_declaration): Removed arguments
7587         for copies and ivar.
7588         (objc_build_getter_call): Renamed to
7589         objc_maybe_build_component_ref.
7590         (objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
7591         (objc_is_property_ref): New.
7592
7593 2010-10-29  Arnaud Charlet  <charlet@adacore.com>
7594             Matthew Gingell  <gingell@adacore.com>
7595
7596         * c-ada-spec.c (separate_class_package): New function.
7597         (pp_ada_tree_identifier): Prefix references to C++ classes with the
7598         name of their enclosing package.
7599         (print_ada_declaration): Use separate_class_package.
7600
7601 2010-10-27  Jason Merrill  <jason@redhat.com>
7602
7603         * c-common.c (c_common_reswords): Add __is_literal_type.
7604         * c-common.h (enum rid): Add RID_IS_LITERAL_TYPE.
7605
7606         * c-common.c (check_case_value): Remove special C++ code.
7607
7608 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7609
7610         * c-common.h (enum rid): Added RID_READWRITE, RID_ASSIGN,
7611         RID_RETAIN, RID_COPY and RID_NONATOMIC.  Updated RID_FIRST_PATTR
7612         and RID_LAST_PATTR.
7613         (objc_add_property_declaration): Added additional arguments.
7614         (objc_property_attribute_kind): Removed.
7615         (objc_set_property_attr): Removed.
7616         * c-common.c (c_common_reswords): Added readwrite, assign, retain,
7617         copy and nonatomic.
7618         * stub-objc.c (objc_add_property_declaration): Added additional
7619         arguments.
7620         (objc_set_property_attr): Removed.
7621
7622 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7623
7624         * c-common.h (objc_add_property_variable): Renamed to
7625         objc_add_property_declaration.  Added location argument.
7626         * stub-objc.c (objc_add_property_variable): Same change.
7627
7628 2010-10-23  Nicola Pero  <nicola.pero@meta-innovation.com>
7629
7630         * c-common.h (objc_maybe_printable_name): New.
7631         * stub-objc.c (objc_maybe_printable_name): New.
7632
7633 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
7634             Andrew Pinski  <pinskia@gmail.com>
7635
7636         * c-common.h (c_common_mark_addressable_vec): Declare.
7637         * c-common.c (c_common_mark_addressable_vec): New function.
7638
7639 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7640
7641         * c-common.h (objc_set_method_type): Removed.
7642         (objc_add_method_declaration): Added boolean argument.
7643         (objc_start_method_definition): Same change.
7644         (objc_build_method_signature): Same change.
7645         * stub-objc.c (objc_set_method_type): Removed.
7646         (objc_add_method_declaration): Added boolean argument.
7647         (objc_start_method_definition): Same change.
7648         (objc_build_method_signature): Same change.
7649
7650 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7651
7652         * c-common.h (finish_file): Removed.
7653         (objc_write_global_declarations): New.
7654         * c-opts.c (c_common_parse_file): Do not call finish_file.
7655         * stub-objc.c (objc_write_global_declarations): New.
7656
7657 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7658
7659         Implemented parsing @synthesize and @dynamic for
7660         Objective-C/Objective-C++.
7661         * c-common.h (enum rid): Add RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7662         (objc_add_synthesize_declaration): New.
7663         (objc_add_dynamic_declaration): New.
7664         * c-common.c (c_common_reswords): Add synthesize and dynamic.
7665         * stub-objc.c (objc_add_synthesize_declaration): New.
7666         (objc_add_dynamic_declaration): New.
7667
7668 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7669
7670         PR target/46041
7671         * c-cppbuiltin.c (mode_has_fma): Move function here from
7672         builtins.c.  Don't use the fma optab, instead just use the
7673         HAVE_fma* macros, so that __FP_FAST_FMA* will be defined when
7674         using -save-temps.
7675
7676 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7677
7678         Merge from 'apple/trunk' branch on FSF servers.
7679
7680         2005-11-08  Fariborz Jahanian  <fjahanian@apple.com>
7681
7682         Radar 4330422
7683         * c-common.h (objc_non_volatilized_type): New declaration
7684         * stub-objc.c (objc_non_volatilized_type): New stub.
7685
7686 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7687
7688         Merge from 'apple/trunk' branch on FSF servers.
7689
7690         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7691
7692         Radar 4133425
7693         * c-common.h (objc_diagnose_private_ivar): New decl.
7694         * stub-objc.c (objc_diagnose_private_ivar): New stub.
7695
7696 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7697
7698         * c-common.c (c_common_reswords): Add package, RID_AT_PACKAGE.
7699         * c-common.h (enum rid): Add RID_AT_PACKAGE.
7700         (objc_ivar_visibility_kind): New enum.
7701         (objc_set_visibility): Adjust prototype to use visibility enum.
7702         * stub-objc.c (objc_set_visibility): Adjust stub to use
7703         visibility enum.
7704
7705 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7706
7707         * c-cppbuiltin.c (builtin_define_float_constants): Emit
7708         __FP_FAST_FMA, __FP_FAST_FMAF, and __FP_FAST_FMAL if the machine
7709         has the appropriate fma builtins.
7710         (c_cpp_builtins): Adjust call to builtin_define_float_constants.
7711
7712 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7713
7714         merge from FSF apple 'trunk' branch.
7715         2006 Fariborz Jahanian  <fjahanian@apple.com>
7716
7717         Radars 4436866, 4505126, 4506903, 4517826
7718         * c-common.c (c_common_resword): Define @property and its attributes.
7719         * c-common.h: Define property attribute enum entries.
7720         (OBJC_IS_PATTR_KEYWORD): New.
7721         (objc_property_attribute_kind): New enum.
7722         Declare objc_set_property_attr (), objc_add_property_variable (),
7723         objc_build_getter_call () and objc_build_setter_call ().
7724         * stub-objc.c (objc_set_property_attr): New stub.
7725         (objc_add_property_variable): Likewise.
7726         (objc_build_getter_call): Likewise.
7727         (objc_build_setter_call) Likewise.
7728
7729 2010-10-13  Iain Sandoe  <iains@gcc.gnu.org>
7730
7731         merge from FSF apple 'trunk' branch.
7732         2006-04-26 Fariborz Jahanian  <fjahanian@apple.com>
7733
7734         Radar 3803157 (method attributes)
7735         * c-common.c (handle_deprecated_attribute): Recognize
7736         objc methods as valid declarations.
7737         * c-common.h: Declare objc_method_decl ().
7738         * stub-objc.c (objc_method_decl): New stub.
7739
7740 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
7741
7742         * c-common.c (parse_optimize_options): Call
7743         decode_cmdline_options_to_array_default_mask before
7744         decode_options.  Update arguments to decode_options.
7745         * c-common.h (c_common_init_options_struct): Declare.
7746         * c-opts.c (c_common_init_options_struct): New.  Split out from
7747         c_common_init_options.
7748
7749 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
7750
7751         Implemented fast enumeration for Objective-C.
7752         * c-common.h (objc_finish_foreach_loop): New.
7753         * stub-objc.c (objc_finish_foreach_loop): New.
7754
7755 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
7756
7757         * c-common.h (struct diagnostic_context): Don't declare here.
7758         (c_common_initialize_diagnostics): Declare using
7759         diagnostic_context typedef.
7760         * c-opts.c (c_common_handle_option): Pass global_dc to
7761         handle_generated_option.
7762
7763 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
7764
7765         * c-opts.c (c_common_handle_option): Pass &global_options_set to
7766         handle_generated_option.
7767
7768 2010-10-03  Ian Lance Taylor  <iant@google.com>
7769
7770         * c.opt (-fplan9-extensions): New option.
7771
7772 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7773
7774         * c-cppbuiltin.c (define__GNUC__, builtin_define_type_precision):
7775         Remove.
7776         (c_cpp_builtins): Call functions from cppbuiltin.c instead
7777         of duplicating code.
7778
7779 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
7780
7781         * c-common.c: Add two new entries for @optional
7782         and @required keywords.
7783
7784         merge from FSF 'apple/trunk' branch.
7785         2006-01-30  Fariborz Jahanian  <fjahanian@apple.com>
7786
7787         Radar 4386773
7788         * c-common.h (RID_AT_OPTIONAL, RID_AT_REQUIRED): Two new
7789         objective-c keywords.
7790         (objc_set_method_opt): New declaration.
7791         * stub-objc.c (objc_set_method_opt): New stub.
7792
7793 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
7794
7795         * c-common.c (handle_optimize_attribute): Pass &global_options to
7796         cl_optimization_save and cl_optimization_restore.
7797         * c-opts.c (c_common_handle_option): Pass &global_options to
7798         handle_generated_option.
7799         * c-pragma.c (handle_pragma_diagnostic): Use option_flag_var.
7800         (handle_pragma_pop_options, handle_pragma_reset_options): Pass
7801         &global_options to cl_optimization_restore.
7802
7803 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7804
7805         * c-lex.c (c_lex_with_flags): Updated comments for CPP_AT_NAME
7806         Objective-C/Objective-C++ keywords.
7807
7808 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7809
7810         Merge from 'apple/trunk' branch on FSF servers.
7811
7812         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
7813
7814         Radar 4281748
7815         * c-common.h (objc_check_global_decl): New declaration.
7816         * stub-objc.c (objc_check_global_decl): New stub.
7817
7818 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
7819
7820         * c.opt: Don't use VarExists.
7821
7822 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
7823
7824         * c-common.c (c_cpp_error): Update names of diagnostic_context
7825         members.
7826         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Update names of
7827         cl_optimization members.
7828         * c-opts.c (warning_as_error_callback, c_common_handle_option,
7829         sanitize_cpp_opts, finish_options): Update names of cpp_options
7830         members.
7831
7832 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7833
7834         * c-common.h (OBJC_IS_CXX_KEYWORD): New macro.  Updated comments.
7835         (objc_is_reserved_word): Removed.
7836         * c-common.c: Updated comments.
7837         * c-lex.c (c_lex_with_flags): Use OBJC_IS_CXX_KEYWORD instead of
7838         objc_is_reserved_word.
7839         * stub-objc.c (objc_is_reserved_word): Removed.
7840
7841 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
7842
7843         * c-common.h (objc_add_method_declaration): Adjust prototype to
7844         include attributes.
7845         (objc_start_method_definition): Likewise.
7846         (objc_build_keyword_decl): Likewise.
7847         * stub-objc.c:(objc_add_method_declaration): Handle attributes.
7848         (objc_start_method_definition): Likewise.
7849         (objc_build_keyword_decl): Likewise.
7850
7851 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
7852
7853         * c-common.h (objc_start_class_interface): Adjust prototype.
7854         (objc_start_category_interface): Likewise.
7855         (objc_start_protocol): Likewise.
7856         * stub-objc.c (objc_start_protocol): Adjust for extra argument.
7857         (objc_start_class_interface): Likewise.
7858         (objc_start_category_interface): Likewise.
7859
7860 2010-09-27  Ian Lance Taylor  <iant@google.com>
7861
7862         * c-common.c (c_common_attribute_table): Add no_split_stack.
7863         (handle_no_split_stack_attribute): New static function.
7864
7865 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7866
7867         Merge from 'apple/trunk' branch on FSF servers.
7868
7869         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
7870
7871         Radar 4229905
7872         * c-common.h (objc_have_common_type): New declaration.
7873         * stub-objc.c (objc_have_common_type): New stub.
7874
7875         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
7876
7877         Radar 4154928
7878         * c-common.h (objc_common_type): New prototype.
7879         * stub-objc.c (objc_common_type): New stub.
7880
7881 2010-09-24  Jan Hubicka  <jh@suse.cz>
7882
7883         * c-common.c (handle_leaf_attribute): New function.
7884         (struct attribute_spec c_common_att): Add leaf.
7885
7886 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
7887
7888         * c.opt (-all-warnings, -ansi, -assert, -assert=, -comments,
7889         -comments-in-macros, -define-macro, -define-macro=, -dependencies,
7890         -dump, -dump=, -imacros, -imacros=, -include, -include=,
7891         -include-barrier, -include-directory, -include-directory=,
7892         -include-directory-after, -include-directory-after=,
7893         -include-prefix, -include-prefix=, -include-with-prefix,
7894         -include-with-prefix=, -include-with-prefix-after,
7895         -include-with-prefix-after=, -include-with-prefix-before,
7896         -include-with-prefix-before=, -no-integrated-cpp,
7897         -no-line-commands, -no-standard-includes, -no-warnings, -output,
7898         -output=, -pedantic, -pedantic-errors, -preprocess,
7899         -print-missing-file-dependencies, -trace-includes, -traditional,
7900         -traditional-cpp, -trigraphs, -undefine-macro, -undefine-macro=,
7901         -user-dependencies, -verbose, -write-dependencies,
7902         -write-user-dependencies, no-integrated-cpp, traditional): New.
7903
7904 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
7905
7906         PR objc/23710
7907         * c-common.h (objc_start_method_definition): Return bool instead
7908         of void.
7909         * stub-objc.c (objc_start_method_definition): Return bool instead
7910         of void.
7911
7912 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
7913
7914         PR objc/25965
7915         * c-common.h (objc_get_interface_ivars): New declaration.
7916         * stub-objc.c (objc_get_interface_ivars): New stub.
7917
7918 2010-09-15  Ian Lance Taylor  <iant@google.com>
7919
7920         * c-common.c (parse_optimize_options): Do not capitalize warning
7921         messages.  Remove period at end of warning message.
7922
7923 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
7924
7925         * c-common.c (handle_alias_ifunc_attribute): New, broken out of ...
7926         (handle_alias_attribute): ... here.
7927         (handle_ifunc_attribute): New.
7928
7929 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
7930
7931         * c-common.h (do_warn_double_promotion): Declare.
7932         * c-common.c (do_warn_double_promotion): Define.
7933
7934 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
7935
7936         * c.opt (Wdouble-promotion): New.
7937
7938 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7939
7940         * c.opt (falt-external-templates, fhuge-objects, fvtable-gc,
7941         fvtable-thunks, fxref): Mark no longer supported in help text.
7942
7943 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7944
7945         * c.opt (Wimport, fall-virtual, falt-external-templates,
7946         fdefault-inline, fenum-int-equiv, fexternal-templates,
7947         fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
7948         fname-mangling-version-, fnew-abi, fnonnull-objects,
7949         foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
7950         fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
7951         applicable.
7952         (fhandle-exceptions): Mark with Alias and Warn.
7953         * c-opts.c (c_common_handle_option): Don't handle options marked
7954         as ignored.
7955
7956 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7957
7958         * c.opt (Wcomments, Werror-implicit-function-declaration,
7959         ftemplate-depth-, std=c89, std=c9x, std=gnu89, std=gnu9x,
7960         std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Mark as
7961         aliases.
7962         * c-common.c (option_codes): Use OPT_Wcomment instead of
7963         OPT_Wcomments.
7964         * c-opts.c (warning_as_error_callback, c_common_handle_option):
7965         Don't handle options marked as aliases.
7966
7967 2010-08-25  Richard Guenther  <rguenther@suse.de>
7968
7969         * c-common.c (c_common_get_alias_set): Remove special
7970         handling for pointers.
7971
7972 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
7973
7974         * c-common.c: Use FOR_EACH_VEC_ELT.
7975         * c-gimplify.c: Likewise.
7976         * c-pragma.c: Likewise.
7977
7978 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
7979
7980         * c.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
7981         RejectDriver.
7982         (MMDX): Change back to MMD.  Mark NoDriverArg instead of
7983         RejectDriver.
7984         * c-opts.c (c_common_handle_option): Use OPT_MD and OPT_MMD
7985         instead of OPT_MDX and OPT_MMDX.
7986
7987 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
7988
7989         * c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
7990
7991 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
7992
7993         * c.opt (MD, MMD): Change to MDX and MMDX.
7994         * c-opts.c (c_common_handle_option): Use OPT_MMD and OPT_MMDX.
7995
7996 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
7997
7998         * c-opts.c (c_common_handle_option): Call handle_generated_option
7999         instead of handle_option.
8000
8001 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
8002
8003         * c-pragma.c (add_to_renaming_pragma_list): Fix call to VEC_safe_push.
8004         (maybe_apply_renaming_pragma): Delete unneeded declarations.
8005
8006 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
8007
8008         * c-pragma.c (pending_redefinition): Declare.  Declare a VEC of it.
8009         (pending_redefine_extname): Change type to a VEC.
8010         (add_to_renaming_pragma_list): Update for new type of
8011         pending_redefine_extname.
8012         (maybe_apply_renaming_pragma): Likewise.
8013
8014 2010-08-04  Arnaud Charlet  <charlet@adacore.com>
8015
8016         * c-ada-spec.c (dump_ada_template): Mark underlying instance type as
8017         visited.
8018         (dump_generic_ada_node): Code clean up. Use TREE_VISITED flag to
8019         decide whether a type has already been declared/seen.
8020         Do not go to the original type.
8021         (dump_nested_types): New parameter forward.
8022         Generate forward declaration if needed and mark type as visited.
8023         (print_ada_declaration): Call dump_nested_types if not already done.
8024         Mark types as visited.
8025
8026 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
8027
8028         * c.opt (-print-pch-checksum): Remove option.
8029         * c-opts.c (c_common_handle_option): Don't handle
8030         OPT_print_pch_checksum.
8031
8032 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
8033
8034         * c-common.h (c_common_handle_option): Update prototype and return
8035         value type.
8036         * c-opts.c (c_common_handle_option): Update prototype and return
8037         value type.  Update calls to handle_option and
8038         enable_warning_as_error.
8039
8040 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
8041
8042         PR c/45079
8043         * c-pretty-print.c (pp_c_expression): Handle C_MAYBE_CONST_EXPR.
8044
8045 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
8046
8047         * c-common.h (c_common_missing_argument): Remove.
8048         * c-opts.c (c_common_missing_argument): Remove.
8049         * c.opt (A, D, F, I, MD, MMD, MQ, MT, U, fconstant-string-class=,
8050         idirafter, imacros, include, isysroot, isystem, iquote): Add
8051         MissingArgError.
8052         * c-objc-common.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
8053
8054 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
8055
8056         * c-common.h (c_common_option_lang_mask,
8057         c_common_initialize_diagnostics, c_common_complain_wrong_lang_p):
8058         New.
8059         (c_common_init_options): Update prototype.
8060         * c-opts.c (c_common_option_lang_mask): New.
8061         (c_common_initialize_diagnostics): Split out of
8062         c_common_init_options.
8063         (accept_all_c_family_options, c_common_complain_wrong_lang_p):
8064         New.
8065         (c_common_init_options): Update prototype.  Use decoded options in
8066         search for -lang-asm.
8067
8068 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
8069
8070         * c-common.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
8071         * c-format.c: Likewise.
8072
8073 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8074
8075         * c-common.h: Include diagnostic-core.h. Error if already
8076         included.
8077         * c-semantics.c: Do not define GCC_DIAG_STYLE here.
8078
8079 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8080
8081         * c-common.c (IN_GCC_FRONTEND): Do not undef.
8082         Do not include expr.h
8083         (vector_mode_valid_p): Move here.
8084
8085 2010-06-21  DJ Delorie  <dj@redhat.com>
8086
8087         * c-pragma.c (handle_pragma_diagnostic): Add push/pop,
8088         allow these pragmas anywhere.
8089
8090 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
8091
8092         PR bootstrap/44509
8093         * c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
8094         (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
8095         (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
8096         ggc_strdup instead of xstrdup.
8097
8098 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
8099
8100         * c-cppbuiltin.c: Include cpp-id-data.h.
8101         (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
8102         (lazy_hex_fp_value): New function.
8103         (builtin_define_with_hex_fp_value): Provide definitions lazily.
8104
8105 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8106
8107         * c-gimplify.c: Do not include tree-flow.h
8108
8109 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
8110
8111         PR other/44034
8112         * c-common.c: Rename targetm member:
8113         targetm.enum_va_list -> targetm.enum_va_list_p
8114
8115 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
8116
8117         * c-common.c (shorten_compare): Adjust call to force_fit_type_double.
8118
8119 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
8120
8121         * c-cppbuiltin.c: Do not include except.h.
8122
8123 2010-06-24  Andi Kleen  <ak@linux.intel.com>
8124
8125         * c-common.c (warn_for_omitted_condop): New.
8126         * c-common.h (warn_for_omitted_condop): Add prototype.
8127
8128 2010-06-21  Joseph Myers  <joseph@codesourcery.com>
8129
8130         * c.opt (lang-objc): Remove.
8131         * c-opts.c (c_common_handle_option): Don't handle OPT_lang_objc.
8132
8133 2010-06-21  Joern Rennecke  <joern.rennecke@embecosm.com>
8134
8135         * c-opts.c: Include "tm_p.h".
8136
8137 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
8138
8139         * c-common.c (parse_optimize_options): Update call to
8140         decode_options.
8141
8142 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
8143
8144         * c-common.c (record_types_used_by_current_var_decl): Adjust for
8145         new type of types_used_by_cur_var_decl.
8146
8147 2010-06-17  Joern Rennecke  <joern.rennecke@embecosm.com>
8148
8149         PR bootstrap/44512
8150         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Add cast
8151         for C++ standard compliance.
8152
8153 2010-06-16  Jason Merrill  <jason@redhat.com>
8154
8155         * c.opt: Add -Wnoexcept.
8156
8157 2010-06-16  Richard Guenther  <rguenther@suse.de>
8158
8159         PR c/44555
8160         * c-common.c (c_common_truthvalue_conversion): Remove
8161         premature and wrong optimization concering ADDR_EXPRs.
8162
8163 2010-06-15  Arnaud Charlet  <charlet@adacore.com>
8164
8165         * c-ada-spec.c (dump_sloc): Remove column info.
8166         (is_simple_enum): New function.
8167         (dump_generic_ada_node, print_ada_declaration): Map C enum types to Ada
8168         enum types when relevant.
8169
8170 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8171
8172         * c-common.c (conversion_warning): Warn at expression
8173         location.
8174
8175 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
8176
8177         * c-opts.c (c_common_handle_option): Don't handle
8178         OPT_fshow_column.
8179
8180 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
8181
8182         * c-pragma.c (push_alignment): Use typed GC allocation.
8183         (handle_pragma_push_options): Likewise.
8184
8185         * c-common.c (parse_optimize_options): Likewise.
8186
8187         * c-common.h (struct sorted_fields_type): Add variable_size GTY
8188         option.
8189
8190 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
8191
8192         * c-common.c (flag_preprocess_only, flag_undef, flag_no_builtin,
8193         flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
8194         flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
8195         flag_signed_bitfields, warn_strict_null_sentinel,
8196         flag_nil_receivers, flag_zero_link, flag_replace_objc_classes,
8197         flag_gen_declaration, flag_no_gnu_keywords,
8198         flag_implement_inlines, flag_implicit_templates,
8199         flag_implicit_inline_templates, flag_optional_diags,
8200         flag_elide_constructors, flag_default_inline, flag_rtti,
8201         flag_conserve_space, flag_access_control, flag_check_new,
8202         flag_new_for_scope, flag_weak, flag_working_directory,
8203         flag_use_cxa_atexit, flag_use_cxa_get_exception_ptr,
8204         flag_enforce_eh_specs, flag_threadsafe_statics,
8205         flag_pretty_templates): Remove.
8206         * c-common.h (flag_preprocess_only, flag_nil_receivers,
8207         flag_objc_exceptions, flag_objc_sjlj_exceptions, flag_zero_link,
8208         flag_replace_objc_classes, flag_undef, flag_no_builtin,
8209         flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
8210         flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
8211         flag_const_strings, flag_signed_bitfields, flag_gen_declaration,
8212         flag_no_gnu_keywords, flag_implement_inlines,
8213         flag_implicit_templates, flag_implicit_inline_templates,
8214         flag_optional_diags, flag_elide_constructors, flag_default_inline,
8215         flag_rtti, flag_conserve_space, flag_access_control,
8216         flag_check_new, flag_new_for_scope, flag_weak,
8217         flag_working_directory, flag_use_cxa_atexit,
8218         flag_use_cxa_get_exception_ptr, flag_enforce_eh_specs,
8219         flag_threadsafe_statics, flag_pretty_templates,
8220         warn_strict_null_sentinel): Remove.
8221         * c.opt (E, Wstrict-null-sentinel, faccess-control, fasm,
8222         fbuiltin, fcheck-new, fconserve-space, felide-constructors,
8223         fenforce-eh-specs, ffor-scope, fgnu-keywords, fimplement-inlines,
8224         fimplicit-inline-templates, fimplicit-templates,
8225         flax-vector-conversions, fms-extensions, fnil-receivers,
8226         fnonansi-builtins, fpretty-templates, freplace-objc-classes,
8227         frtti, fshort-double, fshort-enums, fshort-wchar,
8228         fsigned-bitfields, fsigned-char, fstats, fthreadsafe-statics,
8229         funsigned-bitfields, funsigned-char, fuse-cxa-atexit,
8230         fuse-cxa-get-exception-ptr, fweak, fworking-directory, fzero-link,
8231         gen-decls, undef): Use Var.
8232         (fdefault-inline, foptional-diags): Document as doing nothing.
8233         * c-opts.c (c_common_handle_option): Remove cases for options now
8234         using Var.  Mark ignored options as such.
8235
8236 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
8237
8238         * c-common.c: Moved to here from parent directory.
8239         * c-common.def: Likewise.
8240         * c-common.h: Likewise.
8241         * c-cppbuiltin.c: Likewise.
8242         * c-dump.c: Likewise.
8243         * c-format.c: Likewise.
8244         * c-format.h : Likewise.
8245         * c-gimplify.c: Likewise.
8246         * c-lex.c: Likewise.
8247         * c-omp.c: Likewise.
8248         * c.opt: Likewise.
8249         * c-opts.c: Likewise.
8250         * c-pch.c: Likewise.
8251         * c-ppoutput.c: Likewise.
8252         * c-pragma.c: Likewise.
8253         * c-pragma.h: Likewise.
8254         * c-pretty-print.c: Likewise.
8255         * c-pretty-print.h: Likewise.
8256         * c-semantics.c: Likewise.
8257         * stub-objc.c: Likewise.
8258
8259         * c-common.c: Include gt-c-family-c-common.h.
8260         * c-pragma.c: Include gt-c-family-c-pragma.h.
8261 \f
8262 Copyright (C) 2010-2017 Free Software Foundation, Inc.
8263
8264 Copying and distribution of this file, with or without modification,
8265 are permitted in any medium without royalty provided the copyright
8266 notice and this notice are preserved.