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