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