Update ChangeLog and version files for release
[official-gcc.git] / gcc / c / ChangeLog
blob68fccd84f76bfa54a2653224338b6aee2a24b476
1 2016-12-21  Release Manager
3         * GCC 6.3.0 released.
5 2016-11-05  Martin Sebor  <msebor@redhat.com>
7         Backport from trunk.
8         PR c/71115
9         * c-typeck.c (error_init): Use
10         expansion_point_location_if_in_system_header.
11         (warning_init): Same.
13 2016-08-22  Release Manager
15         * GCC 6.2.0 released.
17 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
18             Martin Liska  <mliska@suse.cz>
20         PR c/67410
21         * c-typeck.c (set_nonincremental_init_from_string): Use / instead of
22         % to determine val element to change.  Assert that
23         wchar_bytes * charwidth fits into val array.
25 2016-08-11  Jakub Jelinek  <jakub@redhat.com>
27         Backported from mainline
28         2016-08-11  Jakub Jelinek  <jakub@redhat.com>
30         PR c/72816
31         * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
32         array member through typedef, for orig_qual_indirect == 0 clear
33         orig_qual_type.
35 2016-07-02  Jakub Jelinek  <jakub@redhat.com>
37         Backported from mainline
38         2016-06-29  Jakub Jelinek  <jakub@redhat.com>
40         PR c/71685
41         * c-typeck.c (c_build_qualified_type): Don't clear
42         C_TYPE_INCOMPLETE_VARS for the main variant.
44 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
46         PR c/71381
47         Backport from trunk r237290:
48         * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
49         Loosen checking.
51 2016-05-30  Jakub Jelinek  <jakub@redhat.com>
53         PR c++/71349
54         * c-parser.c (c_parser_omp_for): Don't disallow nowait clause
55         when combined with target construct.
57 2016-05-19  David Malcolm  <dmalcolm@redhat.com>
59         Backport from trunk r236488.
60         PR c/71171
61         * c-parser.c (c_parser_generic_selection): Use c_expr::set_error
62         in error-handling.
63         (c_parser_postfix_expression): Likewise.
64         * c-tree.h (c_expr::set_error): New method.
65         * c-typeck.c (parser_build_binary_op): In error-handling, ensure
66         that result's range is initialized.
68 2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>
70         PR middle-end/70626
71         * c-parser.c (c_parser_oacc_loop): Don't augment mask with
72         OACC_LOOP_CLAUSE_MASK.
73         (c_parser_oacc_kernels_parallel): Update call to
74         c_oacc_split_loop_clauses.
76 2016-04-27  Release Manager
78         * GCC 6.1.0 released.
80 2016-04-15  Marek Polacek  <polacek@redhat.com>
82         PR c/70671
83         * c-typeck.c (build_unary_op): Pass location down to error and
84         warning call.
86 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
88         PR c/70436
89         * c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
90         where needed.
91         (c_parser_external_declaration, c_parser_struct_or_union_specifier,
92         c_parser_parameter_declaration, c_parser_compound_statement_nostart,
93         c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
94         Adjust c_parser_pragma callers.
95         (c_parser_statement_after_labels): Likewise.  Adjust c_parser_cilk_for
96         caller.
97         (c_parser_omp_structured_block): Add IF_P argument, pass it down to
98         c_parser_statement.
99         (c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
100         c_parser_oacc_kernels_parallel, c_parser_omp_critical,
101         c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
102         c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
103         c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
104         c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
105         c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
106         c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
107         down where needed.
108         (c_parser_omp_for_loop): Likewise.  Clear IF_P if nbraces.
109         (c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
110         calls.
112 2016-04-13  Marek Polacek  <polacek@redhat.com>
114         PR c/70436
115         * c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
116         adjust callers.
117         (c_parser_statement): Likewise.
118         (c_parser_c99_block_statement): Likewise.
119         (c_parser_while_statement): Likewise.
120         (c_parser_for_statement): Likewise.
121         (c_parser_if_body): Don't set IF_P here.
122         (c_parser_if_statement): Add IF_P argument.  Set IF_P here.  Warn
123         about dangling else here.
124         * c-tree.h (c_finish_if_stmt): Adjust declaration.
125         * c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter.  Don't
126         warn about dangling else here.
128 2016-04-04  Marek Polacek  <polacek@redhat.com>
130         PR c/70307
131         * c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.
133 2016-03-31  Marek Polacek  <polacek@redhat.com>
135         PR c/70297
136         * c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
138 2016-03-18  David Malcolm  <dmalcolm@redhat.com>
140         PR c/70281
141         * c-parser.c (c_parser_postfix_expression): Set the source range
142         for uses of "__builtin_types_compatible_p".
144 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
146         PR c/70280
147         * c-typeck.c (composite_type): Don't count void_list_node
148         into len, if the list is terminated by void_list_node, start
149         with void_list_node instead of NULL for newargs.  Stop
150         at void_list_node.
152 2016-03-16  Marek Polacek  <polacek@redhat.com>
154         PR c/70093
155         * c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
156         nested functions returning VM types.
158 2016-03-09  Cesar Philippidis  <cesar@codesourcery.com>
160         * c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
161         when calling c_finish_omp_clauses.
163 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
165         PR c/69824
166         * c-decl.c (get_parm_info): Don't queue implicit function declarations
167         for later.
169 2016-03-04  Marek Polacek  <polacek@redhat.com>
171         PR c/69798
172         * c-parser.c (c_parser_postfix_expression): Call
173         c_parser_cast_expression rather than c_parser_postfix_expression.
175 2016-03-01  Jakub Jelinek  <jakub@redhat.com>
177         PR c/69796
178         PR c/69974
179         * c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
180         of incomplete decls to error_mark_node.
182 2016-02-24  Marek Polacek  <polacek@redhat.com>
184         PR c/69819
185         * c-decl.c (finish_decl): Don't update the copy of the type of a
186         different decl type.
188 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
190         PR objc/69844
191         * c-parser.c (c_parser_for_statement): Properly handle ObjC classes
192         in id_kind reclassification.
194 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
196         PR c/69835
197         * c-typeck.c (build_binary_op): Revert 2015-09-09 change.
199 2016-02-16  James Norris  <jnorris@codesourcery.com>
201         PR c/64748
202         * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
204 2016-02-12  Bernd Schmidt  <bschmidt@redhat.com>
206         * c-decl.c (build_null_declspecs): Zero the entire struct.
208         PR c/69522
209         * c-parser.c (c_parser_braced_init): New arg outer_obstack.  All
210         callers changed.  If nested_p is true, use it to call
211         finish_implicit_inits.
212         * c-tree.h (finish_implicit_inits): Declare.
213         * c-typeck.c (finish_implicit_inits): New function.  Move code
214         from ...
215         (push_init_level): ... here.
216         (set_designator, process_init_element): Call finish_implicit_inits.
218 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
220         PR c/69768
221         * c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
222         arguments for -Waddress warning.
224 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
226         PR c/69669
227         * c-decl.c (finish_enum): When honoring mode attribute,
228         make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
230 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
232         PR debug/69518
233         * c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
234         all type variants, not just TYPE_MAIN_VARIANT.
236 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
238         PR debug/66869
239         * c-decl.c (c_write_global_declarations_1): Warn with
240         warn_unused_function if static prototype without definition
241         is not C_DECL_USED.
243 2016-01-27  Marek Polacek  <polacek@redhat.com>
245         PR c/68062
246         * c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
247         to unsigned, if needed.  Add -Wsign-compare warning.
249 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
251         PR tree-optimization/69483
252         * c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.
254 2016-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
256         PR c/24293
257         * c-tree.h (incomplete_record_decls): Declare.
258         * c-parser.c (incomplete_record_decls): Define.
259         (c_parser_translation_unit): Iterate through incomplete_record_decls and
260         report error if any decl has zero size.
261         * c-decl.c (finish_decl): Append static decl with incomplete struct/union
262         or enum type to incomplete_record_decls.
264 2016-01-14  Tom de Vries  <tom@codesourcery.com>
266         PR tree-optimization/68773
267         * c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
268         set force_output.
270 2016-01-14  Marek Polacek  <polacek@redhat.com>
272         PR c/69262
273         * c-decl.c (grokdeclarator): Provide more information for invalid
274         array declarations.
276 2016-01-06  David Malcolm  <dmalcolm@redhat.com>
278         * c-parser.c (c_parser_unary_expression): For dereferences, build
279         a combined location before calling build_indirect_ref, so that
280         error reports cover the full range, manually updating the c_expr
281         src_range.
283 2016-01-06  Marek Polacek  <polacek@redhat.com>
285         PR sanitizer/69099
286         * c-convert.c (convert) [INTEGER_TYPE]: Drop ARG.  Don't pass ARG to
287         ubsan_instrument_float_cast.  Fold EXPR.  Use NULL_TREE instead of
288         NULL.
290 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
292         Update copyright years.
294 2016-01-04  Marek Polacek  <polacek@redhat.com>
296         PR c/68908
297         * c-typeck.c (build_atomic_assign): Improve commentary.  Add
298         optimization to use __atomic_fetch_* built-in if possible.
300 2015-12-23  Thomas Schwinge  <thomas@codesourcery.com>
302         * c-parser.c (c_parser_oacc_clause_use_device): Merge function
303         into...
304         (c_parser_omp_clause_use_device_ptr): ... this function.  Adjust
305         all users.
307 2015-12-22  Marek Polacek  <polacek@redhat.com>
309         PR c/69002
310         * c-typeck.c (build_component_ref): Warn when acessing elements of
311         atomic structures or unions.
313 2015-12-21  David Malcolm  <dmalcolm@redhat.com>
315         * c-typeck.c: Include "gcc-rich-location.h".
316         (build_binary_op): In the two places that call binary_op_error,
317         create a gcc_rich_location and populate it with the location of
318         the binary op and its two operands.
320 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
322         * c-parser.c (c_parser_statement_after_labels): When calling
323         c_finish_return, Use the return expression's location if it has
324         one, falling back to the location of the first token within it.
325         * c-typeck.c (c_finish_return): When issuing warnings about
326         the incorrect presence/absence of a return value, issue a note
327         showing the declaration of the function.
329 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
331         * c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
332         to 4.
333         (c_parser_peek_nth_token): New function.
334         (c_parser_peek_conflict_marker): New function.
335         (c_parser_error): Detect conflict markers and report them as such.
337 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
339         * c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
340         to preserve range information for the primary expression
341         in the call to c_parser_postfix_expression_after_primary.
343 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
345         * c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
346         expression location, falling back on the first token location,
347         rather than always using the latter.
349 2015-12-16  Marek Polacek  <polacek@redhat.com>
351         PR c/64637
352         * c-typeck.c (c_process_expr_stmt): Use location of the expression if
353         available.
355 2015-12-15  Marek Polacek  <polacek@redhat.com>
357         PR c/68907
358         * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
359         artificial decl.
361 2015-12-08  David Malcolm  <dmalcolm@redhat.com>
363         * c-parser.c (c_parser_alignof_expression): Capture location of
364         closing parenthesis (if any), or of end of unary expression, and
365         use it to build a src_range for the expression.
367 2015-12-08  David Malcolm  <dmalcolm@redhat.com>
369         PR c/68757
370         * c-parser.c (c_parser_get_builtin_args): Add
371         "out_close_paren_loc" param, and write back to it.
372         (c_parser_postfix_expression): Capture the closing
373         parenthesis location for RID_CHOOSE_EXPR,
374         RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
375         RID_BUILTIN_SHUFFLE and use it to set the source range
376         for such expressions; within RID_BUILTIN_COMPLEX set
377         the underlying location.
379 2015-12-07  Marek Polacek  <polacek@redhat.com>
381         PR c/68668
382         * c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
383         TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.
385 2015-12-04  Eric Botcazou  <ebotcazou@adacore.com>
387         * c-tree.h (c_build_va_arg): Adjust prototype.
388         * c-parser.c (c_parser_postfix_expression): Adjust call to above.
389         * c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
390         parameter, adjust throughout and issue an error if EXPR is a component
391         with reverse storage order.
393 2015-12-02  Jason Merrill  <jason@redhat.com>
395         * c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
396         (c_fully_fold_internal, decl_constant_value_for_optimization):
397         Move from c-common.c.
398         * c-tree.h: Declare decl_constant_value_for_optimization.
399         * Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
401 2015-12-02  Joseph Myers  <joseph@codesourcery.com>
403         PR c/68162
404         * c-decl.c (grokdeclarator): Set first_non_attr_kind before
405         following link from declarator to next declarator.  Track original
406         qualified type and pass it to c_build_qualified_type.
407         * c-typeck.c (c_build_qualified_type): Add arguments
408         orig_qual_type and orig_qual_indirect.
410 2015-12-02  Thomas Schwinge  <thomas@codesourcery.com>
412         * c-parser.c (c_parser_omp_clause_name)
413         (c_parser_oacc_all_clauses): Alphabetical sorting.
415 2015-12-02  Jakub Jelinek  <jakub@redhat.com>
417         PR c/68533
418         * c-decl.c (get_parm_info): Use b->locus instead of input_location
419         for diagnostics.
421 2015-12-01  Julian Brown  <julian@codesourcery.com>
422             Cesar Philippidis  <cesar@codesourcery.com>
423             James Norris  <James_Norris@mentor.com>
425         * c-parser.c (c_parser_omp_clause_name): Add use_device support.
426         (c_parser_oacc_clause_use_device): New function.
427         (c_parser_oacc_all_clauses): Add use_device support.
428         (OACC_HOST_DATA_CLAUSE_MASK): New macro.
429         (c_parser_oacc_host_data): New function.
430         (c_parser_omp_construct): Add host_data support.
431         * c-tree.h (c_finish_oacc_host_data): Add prototype.
432         * c-typeck.c (c_finish_oacc_host_data): New function.
433         (c_finish_omp_clauses): Add use_device support.
435 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
437         PR c/67106
438         * c-decl.c: Set TYPE_PACKED in variants.
440 2015-11-27  Martin Liska  <mliska@suse.cz>
442         PR c++/68312
443         * c-array-notation.c (fix_builtin_array_notation_fn):
444         Use release_vec_vec instead of vec::release.
445         (build_array_notation_expr): Likewise.
446         (fix_conditional_array_notations_1): Likewise.
447         (fix_array_notation_expr): Likewise.
448         (fix_array_notation_call_expr): Likewise.
450 2015-11-27  Jakub Jelinek  <jakub@redhat.com>
452         PR c/63326
453         * c-parser.c (c_parser_compound_statement_nostart): If
454         last_label is true, use pragma_stmt instead of pragma_compound
455         as second c_parser_pragma argument.
456         (c_parser_omp_ordered, c_parser_omp_target_update,
457         c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
458         false as second argument to c_parser_skip_to_pragma_eol after
459         diagnosing standalone directives used in pragma_stmt context.
461 2015-11-24  Ilya Verbin  <ilya.verbin@intel.com>
463         * c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
464         with "if (ENABLE_OFFLOADING)".
466 2015-11-23  David Malcolm  <dmalcolm@redhat.com>
468         PR objc/68438
469         * c-parser.c (c_parser_postfix_expression): Set up source ranges
470         for various Objective-C constructs: Class.name syntax,
471         @selector(), @protocol(), @encode(), and [] message syntax.
473 2015-11-20  David Malcolm  <dmalcolm@redhat.com>
475         PR 62314
476         * c-typeck.c (should_suggest_deref_p): New function.
477         (build_component_ref): Special-case POINTER_TYPE when
478         generating a "not a structure of union"  error message, and
479         suggest a "->" rather than a ".", providing a fix-it hint.
481 2015-11-19  David Malcolm  <dmalcolm@redhat.com>
483         * c-typeck.c (lookup_field_fuzzy): Move determination of closest
484         candidate into a new function, find_closest_identifier.
486 2015-11-19  Marek Polacek  <polacek@redhat.com>
488         PR c/68412
489         * c-typeck.c (parser_build_binary_op): Properly handle
490         C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.
492 2015-11-17  David Malcolm  <dmalcolm@redhat.com>
494         * c-parser.c (set_c_expr_source_range): Bulletproof both
495         overloaded implementations against NULL expr->value.
496         (c_parser_braced_init): Set src_range for "ret" to a sane pair of
497         values.
498         (c_parser_unary_expression): Likewise when handling addresses of
499         labels.
500         (c_parser_postfix_expression): Likewise for statement expressions,
501         for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
502         __builtin_va_arg, and for __builtin_offset_of.
503         (c_parser_postfix_expression_after_paren_type): Initialize expr's
504         src_range using the range of the braced initializer.
505         (c_parser_transaction_expression): Set src_range for "ret" to a
506         sane pair of values.
508 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
510         * c-parser.c (c_finish_omp_declare_simd): Look for
511         "simd" attribute as well. Update error message.
513 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
515         * c-parser.c (c_parser_omp_declare_target): Adjust.
517 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
519         * c-typeck.c (c_finish_omp_clauses): Don't mark
520         GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
522 2015-11-14  Marek Polacek  <polacek@redhat.com>
524         * c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
525         * c-typeck.c: Likewise.
527 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
529         * c-decl.c (warn_defaults_to): Pass line_table to
530         rich_location ctor.
531         * c-errors.c (pedwarn_c99): Likewise.
532         (pedwarn_c90): Likewise.
533         * c-parser.c (set_c_expr_source_range): New functions.
534         (c_token::get_range): New method.
535         (c_token::get_finish): New method.
536         (c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
537         based on the range from the start of the LHS to the end of the
538         RHS.
539         (c_parser_conditional_expression): Likewise, based on the range
540         from the start of the cond.value to the end of exp2.value.
541         (c_parser_binary_expression): Call set_c_expr_source_range on
542         the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
543         (c_parser_cast_expression): Call set_c_expr_source_range on ret
544         based on the cast_loc through to the end of the expr.
545         (c_parser_unary_expression): Likewise, based on the
546         op_loc through to the end of op.
547         (c_parser_sizeof_expression) Likewise, based on the start of the
548         sizeof token through to either the closing paren or the end of
549         expr.
550         (c_parser_postfix_expression): Likewise, using the token range,
551         or from the open paren through to the close paren for
552         parenthesized expressions.
553         (c_parser_postfix_expression_after_primary): Likewise, for
554         various kinds of expression.
555         * c-tree.h (struct c_expr): Add field "src_range".
556         (c_expr::get_start): New method.
557         (c_expr::get_finish): New method.
558         (set_c_expr_source_range): New decls.
559         * c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
560         on ret for prefix unary ops.
561         (parser_build_binary_op): Likewise, running from the start of
562         arg1.value through to the end of arg2.value.
564 2015-11-13  Marek Polacek  <polacek@redhat.com>
566         PR c/68320
567         * c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.
569 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
571         * c-typeck.c: Include spellcheck.h.
572         (lookup_field_fuzzy_find_candidates): New function.
573         (lookup_field_fuzzy): New function.
574         (build_component_ref): If the field was not found, try using
575         lookup_field_fuzzy and potentially offer a suggestion.
577 2015-11-12  James Norris  <jnorris@codesourcery.com>
578             Joseph Myers  <joseph@codesourcery.com>
580         * c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
581         (c_parser_omp_clause_name): Handle 'device_resident' clause.
582         (c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
583         and PRAGMA_OMP_CLAUSE_LINK.
584         (c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
585         and PRAGMA_OACC_CLAUSE_LINK.
586         (OACC_DECLARE_CLAUSE_MASK): New definition.
587         (c_parser_oacc_declare): New function.
589 2015-11-12  Marek Polacek  <polacek@redhat.com>
591         PR c/67784
592         * c-parser.c (c_parser_for_statement): Reclassify the token in
593         a correct scope.
595 2015-11-11  Marek Polacek  <polacek@redhat.com>
597         PR c/68107
598         PR c++/68266
599         * c-decl.c (grokdeclarator): Call valid_array_size_p.  Remove code
600         checking the size of an array.
602 2015-11-11  Andrew MacLeod  <amacleod@redhat.com>
604         * c-array-notation.c: Remove unused header files.
605         * c-aux-info.c: Likewise.
606         * c-convert.c: Likewise.
607         * c-decl.c: Likewise.
608         * c-errors.c: Likewise.
609         * c-lang.c: Likewise.
610         * c-objc-common.c: Likewise.
611         * c-parser.c: Likewise.
612         * c-typeck.c: Likewise.
613         * gccspec.c: Likewise.
615 2015-11-09  Thomas Schwinge  <thomas@codesourcery.com>
616             Cesar Philippidis  <cesar@codesourcery.com>
617             James Norris  <jnorris@codesourcery.com>
618             Julian Brown  <julian@codesourcery.com>
619             Nathan Sidwell  <nathan@codesourcery.com>
621         c/
622         * c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
623         routine arg.
624         (c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
625         (c_parser_pragma): Parse 'acc routine'.
626         (OACC_ROUTINE_CLAUSE_MARK): Define.
627         (c_parser_oacc_routine, (c_finish_oacc_routine): New.
629 2015-11-09  Andreas Arnez  <arnez@linux.vnet.ibm.com>
631         PR debug/67192
632         * c-typeck.c (c_finish_loop): For unconditional loops, set the
633         location of the backward-goto to the start of the loop body.
635 2015-11-09  Andreas Arnez  <arnez@linux.vnet.ibm.com>
637         PR debug/67192
638         * c-parser.c (c_parser_while_statement): Finish the loop before
639         parsing ahead for misleading indentation.
640         (c_parser_for_statement): Likewise.
642 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
644         * c-decl.c (finish_struct): If the structure has reverse storage
645         order, rewrite the type of array fields with scalar component.  Call
646         maybe_apply_pragma_scalar_storage_order on entry.
647         * c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs.  Issue
648         errors on bit-fields and reverse SSO here and not...
649         (c_mark_addressable): ...here.
650         (output_init_element): Adjust call to initializer_constant_valid_p.
651         (c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.
653 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
655         * c-decl.c (warn_defaults_to): Update for change in signature
656         of diagnostic_set_info.
657         * c-errors.c (pedwarn_c99): Likewise.
658         (pedwarn_c90): Likewise.
659         * c-objc-common.c (c_tree_printer): Update for new "caret_p" param
660         for textinfo::set_location.
662 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
663             Thomas Schwinge  <thomas@codesourcery.com>
664             James Norris  <jnorris@codesourcery.com>
666         * c-parser.c (c_parser_omp_clause_name): Add support for
667         PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
668         (c_parser_omp_clause_default): Add is_oacc argument. Handle
669         default(none) in OpenACC.
670         (c_parser_oacc_shape_clause): Allow pointer variables as gang static
671         arguments.
672         (c_parser_oacc_clause_tile): New function.
673         (c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
674         OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
675         (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
676         TILE}.
677         (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
678         (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
679         FIRSTPRIVATE}.
680         (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
681         (c_parser_oacc_update): Update the error message for missing clauses.
682         * c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
683         and OMP_CLAUSE_INDEPENDENT.
685 2015-11-05  Marek Polacek  <polacek@redhat.com>
687         PR c/68090
688         * c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
689         deal with pre-evaluation on invalid types.
691 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
692             Ilya Verbin  <ilya.verbin@intel.com>
694         * c-parser.c: Include context.h and gimple-expr.h.
695         (c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
696         monotonic together with nonmonotonic.
697         (c_parser_omp_for_loop): Call c_omp_check_loop_iv.  Call add_stmt here.
698         (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
699         (c_parser_omp_target_data, c_parser_omp_target_enter_data,
700         c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
701         (c_parser_omp_target): Likewise.  Evaluate num_teams and thread_limit
702         expressions on combined target teams before the target.
703         (c_parser_omp_declare_target): If decl has "omp declare target" or
704         "omp declare target link" attribute, and cgraph or varpool node already
705         exists, then set corresponding flags.  Call c_finish_omp_clauses
706         in the parenthesized extended-list syntax case.
707         * c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
708         declare target.
709         * c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
710         on OMP_CLAUSE_REDUCTION array sections.
711         (handle_omp_array_sections): Encode low-bound into the MEM_REF, either
712         into the constant offset, or for variable low-bound using
713         POINTER_PLUS_EXPR.  For structure element based array sections use
714         GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
715         (c_finish_omp_clauses): Drop generic_field_head, structure
716         elements are now always mapped even as array section bases,
717         diagnose same var in data sharing and mapping clauses.  Diagnose if
718         linear step on declare simd is neither a constant nor a uniform
719         parameter.  Look through POINTER_PLUS_EXPR for array section
720         reductions.  Diagnose the same var or function appearing multiple
721         times on the same directive.  Fix up wording for the to clause if t
722         is neither a FUNCTION_DECL nor a VAR_DECL.  Diagnose nonmonotonic
723         modifier on kinds other than dynamic or guided or nonmonotonic
724         modifier together with ordered clause.
726 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
727             Chung-Lin Tang  <cltang@codesourcery.com>
729         * c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
731 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
733         * c-array-notation.c: Reorder #include's and remove duplicates.
734         * c-aux-info.c: Likewise.
735         * c-convert.c: Likewise.
736         * c-decl.c: Likewise.
737         * c-errors.c: Likewise.
738         * c-lang.c: Likewise.
739         * c-objc-common.c: Likewise.
740         * c-parser.c: Likewise.
741         * c-typeck.c: Likewise.
743 2015-10-26  Jim Wilson  <jim.wilson@linaro.org>
745         PR debug/66068
746         * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
747         after calling build_qualified_type.
749 2015-10-27  Cesar Philippidis  <cesar@codesourcery.com>
750             Thomas Schwinge  <thomas@codesourcery.com>
751             James Norris  <jnorris@codesourcery.com>
752             Joseph Myers  <joseph@codesourcery.com>
753             Julian Brown  <julian@codesourcery.com>
754             Bernd Schmidt  <bschmidt@redhat.com>
756         * c-parser.c (c_parser_oacc_shape_clause): New.
757         (c_parser_oacc_simple_clause): New.
758         (c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
759         (OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.
761 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
762             James Norris  <jnorris@codesourcery.com>
763             Cesar Philippidis  <cesar@codesourcery.com>
765         PR c/64765
766         PR c/64880
767         * c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
768         parameters, and handle these.  Adjust all users.
769         (c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
770         into...
771         (c_parser_oacc_kernels_parallel): ... this new function.  Adjust
772         all users.
773         * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
774         declare functions.
775         (c_finish_omp_construct): Declare function.
776         * c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
777         Merge functions into...
778         (c_finish_omp_construct): ... this new function.
780 2015-10-22  Richard Biener  <rguenther@suse.de>
782         * c-typeck.c (c_finish_omp_clauses): Properly convert operands
783         before folding a MINUS_EXPR.
785 2015-10-21  Marek Polacek  <polacek@redhat.com>
787         PR c/68024
788         * c-decl.c (start_function): Warn about vararg functions without
789         a prototype.
791 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
793         * c-typeck.c (build_conditional_expr): Use boolean vector
794         type for vector comparison.
795         (build_vec_cmp): New.
796         (build_binary_op): Use build_vec_cmp for comparison.
798 2015-10-20  Marek Polacek  <polacek@redhat.com>
800         * c-parser.c (is_cilkplus_vector_p): Don't define here.
802 2015-10-20  Marek Polacek  <polacek@redhat.com>
804         PR c/67964
805         * c-parser.c (c_parser_attributes): Break out of the loop if the
806         token after an attribute isn't a comma.
808 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
809             Aldy Hernandez  <aldyh@redhat.com>
811         * c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
812         (c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
813         (c_parser_omp_variable_list): Handle structure elements for
814         map, to and from clauses.  Handle array sections in reduction
815         clause.  Formatting fixes.
816         (c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
817         if clause modifiers.
818         (c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
819         c_parser_omp_clause_priority, c_parser_omp_clause_hint,
820         c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
821         c_parser_omp_clause_is_device_ptr): New functions.
822         (c_parser_omp_clause_ordered): Parse optional parameter.
823         (c_parser_omp_clause_reduction): Handle array reductions.
824         (c_parser_omp_clause_schedule): Parse optional simd modifier.
825         (c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
826         functions.
827         (c_parser_omp_clause_linear): Parse linear clause modifiers.
828         (c_parser_omp_clause_depend_sink): New function.
829         (c_parser_omp_clause_depend): Parse source/sink depend kinds.
830         (c_parser_omp_clause_map): Parse release/delete map kinds and
831         optional always modifier.
832         (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
833         and c_finish_omp_clauses callers.
834         (c_parser_omp_all_clauses): Likewise.  Parse OpenMP 4.5 clauses.
835         Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
836         (c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
837         (OMP_CRITICAL_CLAUSE_MASK): Define.
838         (c_parser_omp_critical): Parse critical clauses.
839         (c_parser_omp_for_loop): Handle doacross loops, adjust
840         c_finish_omp_for and c_finish_omp_clauses callers.
841         (OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
842         (c_parser_omp_simd): Allow ordered clause if it has no parameter.
843         (OMP_FOR_CLAUSE_MASK): Add linear clause.
844         (c_parser_omp_for): Disallow ordered clause when combined with
845         distribute.  Disallow linear clause when combined with distribute
846         and not combined with simd.
847         (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
848         (c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
849         parse clauses and if depend clause is found, don't parse a body.
850         (c_parser_omp_parallel): Disallow copyin clause on target parallel.
851         Allow target parallel without for after it.
852         (OMP_TASK_CLAUSE_MASK): Add priority clause.
853         (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
854         (c_parser_omp_target_data): Diagnose no map clauses or clauses with
855         invalid kinds.
856         (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
857         (OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
858         OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
859         (c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
860         functions.
861         (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
862         defaultmap and is_device_ptr clauses.
863         (c_parser_omp_target): Parse target parallel and target simd.  Set
864         OMP_TARGET_COMBINED on combined constructs.  Parse target enter data
865         and target exit data.  Diagnose invalid map kinds.
866         (OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
867         (c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
868         construct.
869         (c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
870         &omp_priv.
871         (OMP_TASKLOOP_CLAUSE_MASK): Define.
872         (c_parser_omp_taskloop): New function.
873         (c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
874         handle PRAGMA_OMP_TASKLOOP.
875         (c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
876         * c-tree.h (c_finish_omp_clauses): Add two new arguments.
877         * c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
878         Add IS_OMP argument, handle structure element bases, diagnose
879         bitfields, pass IS_OMP recursively, diagnose known zero length
880         array sections in depend clauses, handle array sections in reduction
881         clause, diagnose negative length even for pointers.
882         (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
883         types, pass IS_OMP down to handle_omp_array_sections_1, handle
884         array sections in reduction clause, set
885         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
886         length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
887         (c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
888         Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
890 2015-10-06  Marek Polacek  <polacek@redhat.com>
892         * c-parser.c (c_parser_statement_after_labels): Use
893         protected_set_expr_location.
894         (c_parser_omp_clause_num_gangs): Likewise.
895         (c_parser_omp_clause_num_threads): Likewise.
896         (c_parser_omp_clause_num_workers): Likewise.
897         (c_parser_omp_clause_vector_length): Likewise.
898         (c_parser_omp_clause_num_teams): Likewise.
899         (c_parser_omp_clause_thread_limit): Likewise.
900         * c-typeck.c (build_c_cast): Likewise.
901         (c_cast_expr): Likewise.
903 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
905         * c-typeck.c (c_tree_equal): Use real_equal instead of
906         REAL_VALUES_EQUAL.
908 2015-10-04  Jason Merrill  <jason@redhat.com>
910         * c-parser.c (c_lex_one_token): Handle @synchronized.
911         * c-decl.c (match_builtin_function_types): A declaration of a built-in
912         can change whether the function is transaction_safe.
914 2015-10-02  Marek Polacek  <polacek@redhat.com>
916         PR c/67730
917         * c-typeck.c (convert_for_assignment): Use the expansion point
918         location throughout.
920 2015-10-02  Marek Polacek  <polacek@redhat.com>
922         PR c/64249
923         * c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
924         and pass it down to c_parser_if_statement.
925         (c_parser_else_body): Add CHAIN parameter and pass it down to
926         c_parser_statement_after_labels.
927         (c_parser_if_statement): Add CHAIN parameter.  Add code to warn about
928         duplicated if-else-if conditions.
930 2015-10-01  Marek Polacek  <polacek@redhat.com>
932         * c-typeck.c (convert_for_assignment): Improve commentary.
934 2015-09-30  Marek Polacek  <polacek@redhat.com>
936         PR c/67730
937         * c-typeck.c (c_finish_return): Use the expansion point location for
938         certain "return with value" warnings.
940 2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
942         * c-parser.c (pragma_lex): Add loc argument.
944 2015-09-15  Marek Polacek  <polacek@redhat.com>
946         PR c/67580
947         * c-decl.c (tag_exists_p): New function.
948         * c-parser.c (c_parser_declaration_or_fndef): Give a hint when
949         struct/union/enum keywords are missing.
950         * c-tree.h (tag_exists_p): Declare.
952 2015-09-15  Marek Polacek  <polacek@redhat.com>
954         * c-decl.c (lookup_label): Return NULL_TREE instead of 0.
955         (lookup_tag): Change the type of THISLEVEL_ONLY to bool.
956         Return NULL_TREE instead of 0.
957         (lookup_name): Return NULL_TREE instead of 0.
958         (lookup_name_in_scope): Likewise.
959         (shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
960         (parser_xref_tag): Use false instead of 0.
961         (start_struct): Use true instead of 1.
962         (start_enum): Use true instead of 1 and NULL_TREE instead of 0.
964 2015-09-14  Marek Polacek  <polacek@redhat.com>
966         * c-typeck.c (set_nonincremental_init_from_string): Use
967         HOST_WIDE_INT_M1U when shifting a negative value.
969 2015-09-09  Mark Wielaard  <mjw@redhat.com>
971         * c-typeck.c (build_binary_op): Check and warn when nonnull arg
972         parm against NULL.
974 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
976         PR c/67502
977         * c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
978         into OMP_FOR_PRE_BODY rather than before the loop.
980 2015-09-09  Jakub Jelinek  <jakub@redhat.com>
982         PR c/67501
983         * c-parser.c (c_parser_oacc_all_clauses,
984         c_parser_omp_all_clauses): Remove invalid clause from
985         list of clauses even if parser->error is set.
987         PR c/67500
988         * c-parser.c (c_parser_omp_clause_aligned,
989         c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
990         test for errors.
991         * c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
992         error_mark_node.
994         PR c/67495
995         * c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
996         instead of c_parser_unary_expression.  If the result is !lvalue_p,
997         wrap the result of c_fully_fold into NON_LVALUE_EXPR.
999 2015-09-04  Marek Polacek  <polacek@redhat.com>
1001         PR sanitizer/67279
1002         * c-typeck.c (build_binary_op): Don't instrument static initializers.
1004 2015-09-03  Martin Sebor  <msebor@redhat.com>
1006         PR c/66516
1007         * c-typeck.c (convert_arguments, parser_build_unary_op,
1008         build_conditional_expr, c_cast_expr, convert_for_assignment,
1009         build_binary_op, _objc_common_truthvalue_conversion): Call
1010         reject_gcc_builtin.
1011         (c_decl_implicit): Define.
1013 2015-09-02  Marek Polacek  <polacek@redhat.com>
1015         PR c/67432
1016         * c-parser.c (c_parser_enum_specifier): Give a better error for
1017         an empty enum.
1019 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
1021         * c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
1023 2015-08-12  Marek Polacek  <polacek@redhat.com>
1025         * c-decl.c (grokdeclarator): Call error_at instead of error and pass
1026         LOC to it.
1028 2015-08-03  Marek Polacek  <polacek@redhat.com>
1030         PR c/67088
1031         * c-decl.c (check_bitfield_type_and_width): Add location parameter.
1032         Use it.
1033         (grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
1035 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
1037         * c-parser.c (c_parser_if_body): Take token_indent_info
1038         argument. Call warn_for_misleading_indentation even when the
1039         body is a semicolon.  Extract token_indent_infos corresponding
1040         to the guard, body and next tokens.  Adjust call to
1041         warn_for_misleading_indentation accordingly.
1042         (c_parser_else_body): Likewise.
1043         (c_parser_if_statement): Likewise.
1044         (c_parser_while_statement): Likewise.
1045         (c_parser_for_statement): Likewise.
1047 2015-07-28  Luis Felipe Strano Moraes  <luis.strano@gmail.com>
1048             Manuel López-Ibáñez  <manu@gcc.gnu.org>
1050         * c-decl.c (get_parm_info): Remove static var. Update warning
1051         message.
1053 2015-07-27  Marek Polacek  <polacek@redhat.com>
1055         PR c++/66555
1056         PR c/54979
1057         * c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
1059 2015-07-20  Marek Polacek  <polacek@redhat.com>
1061         PR c++/55095
1062         * c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
1063         (build_binary_op): Warn about left shift overflows.
1065 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1067         * c-array-notation.c: Adjust includes for flags.h changes.
1068         * c-objc-common.c: Likewise.
1070 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
1072         * c-array-notation.c: Adjust includes.
1073         * c-aux-info.c: Likewise.
1074         * c-convert.c: Likewise.
1075         * c-decl.c: Likewise.
1076         * c-errors.c: Likewise.
1077         * c-lang.c: Likewise.
1078         * c-objc-common.c: Likewise.
1079         * c-parser.c: Likewise.
1080         * c-typeck.c: Likewise.
1082 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1084         PR fortran/66605
1085         * c-decl.c (finish_function): Call do_warn_unused_parameter.
1087 2015-06-29  Marek Polacek  <polacek@redhat.com>
1089         PR c/66322
1090         * c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
1091         (c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P.  Don't warn
1092         about -Wswitch-bool here.
1093         (do_case): Update c_add_case_label call.
1094         (c_finish_case): Update c_do_switch_warnings call.
1096 2015-06-27  Marek Polacek  <polacek@redhat.com>
1098         * c-typeck.c: Use VECTOR_TYPE_P throughout.
1100 2015-06-26  Marek Polacek  <polacek@redhat.com>
1102         * c-array-notation.c (fix_builtin_array_notation_fn): Use
1103         INDIRECT_REF_P.
1104         * c-typeck.c (array_to_pointer_conversion): Likewise.
1105         (build_unary_op): Likewise.
1106         (c_finish_return): Likewise.
1108 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
1110         * c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
1111         * c-parser.c: Likewise.
1113 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
1115         * c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
1116         instead of pointer_hash.
1117         (detect_field_duplicates): Likewise.
1119 2015-06-25  Marek Polacek  <polacek@redhat.com>
1121         * c-array-notation.c: Use VAR_P throughout.
1122         * c-decl.c: Likewise.
1123         * c-objc-common.c: Likewise.
1124         * c-parser.c: Likewise.
1125         * c-typeck.c: Likewise.
1127 2015-06-25  Marek Polacek  <polacek@redhat.com>
1129         * c-decl.c: Use is_global_var throughout.
1130         * c-parser.c: Likewise.
1131         * c-typeck.c: Likewise.
1133 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
1135         * c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
1136         * c-aux-info.c: Likewise.
1137         * c-convert.c: Likewise.
1138         * c-decl.c: Likewise.
1139         * c-errors.c: Likewise.
1140         * c-lang.c: Likewise.
1141         * c-objc-common.c: Likewise.
1142         * c-parser.c: Likewise.
1143         * c-typeck.c: Likewise.
1145 2015-06-11  Jan Hubicka  <hubicka@ucw.cz>
1147         PR middle-end/66325
1148         * c-decl.c (start_enum): Set TYPE_PACKED consistently among type
1149         variants.
1151 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
1153         * c-decl.c (pop_scope): Register the main translation unit
1154         through the new debug hook.
1156 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
1158         * c-array-notation.c : Adjust include files.
1159         * c-aux-info.c : Likewise.
1160         * c-convert.c : Likewise.
1161         * c-decl.c : Likewise.
1162         * c-errors.c : Likewise.
1163         * c-lang.c : Likewise.
1164         * c-lang.h : Likewise.
1165         * c-objc-common.c : Likewise.
1166         * c-parser.c : Likewise.
1167         * c-typeck.c : Likewise.
1169 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
1171         * c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
1172         immediately clobber it.
1173         (c_write_global_declarations_1): Remove call to
1174         check_global_declaration_1.
1175         (c_write_global_declarations_2): Remove.
1176         (c_write_final_cleanups): Rename from c_write_global_declarations.
1177         Remove call to finalize_compilation_unit.
1178         Remove calls to debugging hooks.
1179         * c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
1180         * c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
1181         * c-tree.h: Remove c_write_global_declarations.
1183 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
1185         * c-array-notation.c: Adjust includes for restructured coretypes.h.
1186         * c-aux-info.c: Likewise.
1187         * c-convert.c: Likewise.
1188         * c-decl.c: Likewise.
1189         * c-errors.c: Likewise.
1190         * c-lang.c: Likewise.
1191         * c-objc-common.c: Likewise.
1192         * c-parser.c: Likewise.
1193         * c-typeck.c: Likewise.
1195 2015-06-04  Marek Polacek  <polacek@redhat.com>
1197         PR c/66341
1198         * c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
1199         it is a lvalue.
1201 2015-06-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1203         * c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
1204         Warn for empty struct.
1205         (finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.
1207 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
1209         * c-decl.c (start_function): Call plugin before parsing.
1210         (finish_function): Call plugin after parsing.
1212 2015-06-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1214         PR c/49551
1215         * c-decl.c (merge_decls): Merge DECL_COMMON.
1217 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
1219         * Make-lang.in (check_gcc_pallelize): Define.
1221 2015-05-22  Marek Polacek  <polacek@redhat.com>
1223         PR c/47043
1224         * c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
1225         attributes.
1227 2015-05-21  Marek Polacek  <polacek@redhat.com>
1229         * c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
1230         DECL_BUILT_IN.
1232 2015-05-20  Marek Polacek  <polacek@redhat.com>
1234         * c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
1235         * c-typeck.c: Likewise.
1237 2015-05-19  Marek Polacek  <polacek@redhat.com>
1239         * c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
1241 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
1243         PR middle-end/66199
1244         * c-parser.c (c_parser_omp_for_loop): Don't add
1245         OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
1246         OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
1247         (c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
1248         constructs.
1250 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
1252         * c-typeck.c (build_array_ref): Use std::swap instead of explicit
1253         swaps.
1255 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1257         PR fortran/44054
1258         * c-objc-common.c (c_tree_printer): Replace locus pointer with
1259         accessor function.
1261 2015-05-14  Marek Polacek  <polacek@redhat.com>
1263         PR c/66066
1264         PR c/66127
1265         * c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
1266         rather than with 0.
1268 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
1270         * c-parser.c (c_parser_if_body): Add param "if_loc", use it
1271         to add a call to warn_for_misleading_indentation.
1272         (c_parser_else_body): Likewise, adding param "else_loc".
1273         (c_parser_if_statement): Check for misleading indentation.
1274         (c_parser_while_statement): Likewise.
1275         (c_parser_for_statement): Likewise.
1277 2015-05-08  Marek Polacek  <polacek@redhat.com>
1279         PR c/64918
1280         * c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
1281         (output_init_element): Likewise.
1283 2015-05-07  Marek Polacek  <polacek@redhat.com>
1285         PR c/65179
1286         * c-typeck.c (build_binary_op): Warn when left shifting a negative
1287         value.
1289 2015-04-30  Marek Polacek  <polacek@redhat.com>
1291         * c-typeck.c (set_init_label): Call error_at instead of error and
1292         pass LOC to it.
1294         * c-typeck.c (c_incomplete_type_error): Refactor to use %qT.  Print
1295         the type of a decl.
1297         * c-typeck.c (c_build_va_arg): Clarify the error message.
1299 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
1301         * c-parser.c (c_parser_oacc_enter_exit_data): Use
1302         OMP_STANDALONE_CLAUSES.
1304 2015-04-28  Marek Polacek  <polacek@redhat.com>
1306         * c-parser.c (c_parser_binary_expression): Remove duplicate line.
1308 2015-04-28  Marek Polacek  <polacek@redhat.com>
1310         PR c/65901
1311         * c-typeck.c (c_build_va_arg): Require TYPE be a complete type.
1313 2015-04-25  Marek Polacek  <polacek@redhat.com>
1315         PR c/52085
1316         * c-decl.c (finish_enum): Copy over TYPE_ALIGN.  Also check for "mode"
1317         attribute.
1319 2015-04-23  Marek Polacek  <polacek@redhat.com>
1321         PR c/65345
1322         * c-decl.c (set_labels_context_r): New function.
1323         (store_parm_decls): Call it via walk_tree_without_duplicates.
1324         * c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
1325         instead of create_tmp_var.  Build TARGET_EXPR instead of
1326         COMPOUND_EXPR.
1327         (build_atomic_assign): Use create_tmp_var_raw instead of
1328         create_tmp_var.  Build TARGET_EXPRs instead of MODIFY_EXPR.
1330 2015-04-20  Ilya Verbin  <ilya.verbin@intel.com>
1332         * c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
1333         (c_parser_omp_target_update): Add missed %> to error_at ().
1335 2015-04-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1337         PR target/55143
1338         * c-decl.c (c_default_pointer_mode): Remove definition.
1339         * c-tree.h (c_default_pointer_mode): Remove declaration.
1341 2015-03-27  Tobias Burnus  <burnus@net-b.de>
1343         PR c/65586
1344         * c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
1345         error out.
1346         (c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
1347         c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
1348         Update calls to not error for skipped omp pragmas with -fopenmp-simd.
1350 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
1352         * c-decl.c (c_decl_attributes): Also add "omp declare target"
1353         attribute for DECL_EXTERNAL VAR_DECLs.
1355 2015-03-11  Jakub Jelinek  <jakub@redhat.com>
1357         * c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
1358         argument.
1360 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
1362         PR c/65120
1363         * c-typeck.c (parser_build_binary_op): Check for tcc_comparison
1364         before preparing arguments to warn_logical_not_parentheses.
1366 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
1368         PR c/65120
1369         * c-typeck.c (parser_build_binary_op): Don't warn for
1370         !!x == y or !b == y where b is _Bool.
1372 2015-03-09  Marek Polacek  <polacek@redhat.com>
1374         * c-convert.c (convert): Make use of do_ubsan_in_current_function.
1375         * c-decl.c (grokdeclarator): Likewise.
1376         * c-typeck.c (build_binary_op): Likewise.
1378 2015-02-27  Marek Polacek  <polacek@redhat.com>
1380         PR c/65228
1381         * c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
1383 2015-02-14  Marek Polacek  <polacek@redhat.com>
1385         PR c/64768
1386         * c-decl.c (grokdeclarator): Set the range of a flexible array member
1387         declared through a typedef name.
1389 2015-02-13  Marek Polacek  <polacek@redhat.com>
1391         PR c/65050
1392         * c-decl.c (grokdeclarator): Print also the type when giving
1393         the error message about array's incomplete element type.
1395 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
1397         PR c/64824
1398         * c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
1399         check in the POP macro.
1401 2015-02-09  Marek Polacek  <polacek@redhat.com>
1403         PR c/64856
1404         * c-typeck.c (process_init_element): Don't always wrap
1405         COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when
1406         initializing a range of elements.
1408 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
1410         PR c/64824
1411         PR c/64868
1412         * c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.
1414 2015-02-02  Bruno Loff  <bruno.loff@gmail.com>
1416         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
1417         processing enum declaration.
1419 2015-01-29  Marek Polacek  <polacek@redhat.com>
1421         PR c/64709
1422         * c-typeck.c (pop_init_level): If constructor_elements has
1423         exactly one element with integer_zerop value, set constructor_zeroinit
1424         to 1.  Remove braces around warning_init call.
1426 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
1428         PR c/64766
1429         * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
1430         of FUNCTION_DECLs with error_mark_node.
1432 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
1434         PR c/64778
1435         * c-typeck.c (convert_arguments): Return -1 if there are
1436         error_args, even if we've diagnosed too many arguments.
1438 2015-01-21  Richard Biener  <rguenther@suse.de>
1440         PR middle-end/64313
1441         * c-decl.c (merge_decls): Call set_builtin_decl_declared_p
1442         for builtins the user declared correctly.
1444 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
1445             Bernd Schmidt  <bernds@codesourcery.com>
1446             Cesar Philippidis  <cesar@codesourcery.com>
1447             James Norris  <jnorris@codesourcery.com>
1448             Jakub Jelinek  <jakub@redhat.com>
1449             Ilmir Usmanov  <i.usmanov@samsung.com>
1451         * c-parser.c: Include "gomp-constants.h".
1452         (c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
1453         omp_clause_map_kind.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
1454         Use OMP_CLAUSE_SET_MAP_KIND.
1455         (c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
1456         PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
1457         (c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
1458         PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
1459         PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
1460         (c_parser_omp_clause_name): Handle "auto", "async", "copy",
1461         "copyout", "create", "delete", "deviceptr", "gang", "host",
1462         "num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
1463         "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
1464         "present_or_create", "pcreate", "seq", "self", "vector",
1465         "vector_length", "wait", "worker".
1466         (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
1467         (OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
1468         (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
1469         (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
1470         (c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
1471         (c_parser_oacc_wait_list, c_parser_oacc_data_clause)
1472         (c_parser_oacc_data_clause_deviceptr)
1473         (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
1474         (c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
1475         (c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
1476         (c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
1477         (c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
1478         (c_parser_oacc_parallel, c_parser_oacc_update)
1479         (c_parser_oacc_wait): New functions.
1480         * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
1481         (c_finish_oacc_data): New prototypes.
1482         * c-typeck.c: Include "gomp-constants.h".
1483         (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR.  Use
1484         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
1485         OMP_CLAUSE_SET_MAP_KIND.
1486         (c_finish_oacc_parallel, c_finish_oacc_kernels)
1487         (c_finish_oacc_data): New functions.
1488         (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
1489         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
1490         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
1491         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
1492         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
1493         GOMP_MAP_FORCE_DEVICEPTR.
1495 2015-01-09  Michael Collison  <michael.collison@linaro.org>
1497         * c-array-notation.c: Include hash-set.h, machmode.h,
1498         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
1499         fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
1500         * c-aux-info.c: Ditto.
1501         * c-convert.c: Ditto.
1502         * c-decl.c: Ditto.
1503         * c-errors.c: Ditto.
1504         * c-lang.c: Dittoxs.
1505         * c-objc-common.c: Ditto.
1506         * c-parser.c: Ditto.
1507         * c-typeck.c: Include hash-set.h, machmode.h,
1508         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
1509         fold-const.h, wide-int.h, inchash.h, real.h and
1510         fixed-value.h due to flattening of tree.h.
1512 2015-01-07  Marek Polacek  <polacek@redhat.com>
1514         PR c/64417
1515         * c-typeck.c (process_init_element): Disallow initialization of
1516         a flexible array member with a string constant if the structure
1517         is in an array.
1519 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
1521         PR sanitizer/64344
1522         * c-typeck.c (convert_for_assignment, c_finish_return): For
1523         -fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
1524         types also set in_late_binary_op around convert call.
1525         * c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
1526         to integral type casts, if not in_late_binary_op, pass c_fully_fold
1527         result on expr as last argument to ubsan_instrument_float_cast,
1528         if in_late_binary_op, don't use c_save_expr but save_expr.
1530         Update copyright years.
1532 2015-01-05  Marek Polacek  <polacek@redhat.com>
1534         PR c/64423
1535         * c-typeck.c (build_array_ref): Pass loc down to
1536         warn_array_subscript_with_type_char.
1538 2014-12-20  Martin Uecker <uecker@eecs.berkeley.edu>
1540         * c-typeck.c: New behavious for pointers to arrays with qualifiers
1541         (common-pointer-type): For pointers to arrays take qualifiers from
1542         element type.
1543         (build_conditional_expr): Add warnings for lost qualifiers.
1544         (comp-target-types): Allow pointers to arrays with different qualifiers.
1545         (convert-for-assignment): Adapt warnings for discarded qualifiers. Add
1546         WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
1547         to PEDWARN_FOR_QUALIFIERS.
1549 2014-12-17  Jakub Jelinek  <jakub@redhat.com>
1551         PR sanitizer/64289
1552         * c-convert.c: Include ubsan.h.
1553         (convert): For real -> integral casts and
1554         -fsanitize=float-cast-overflow don't call convert_to_integer, but
1555         instead instrument the float cast directly.
1557 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
1559         * c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
1560         c_finish_stmt_expr): Remove NULL last argument from
1561         create_tmp_var_raw and create_tmp_var calls.
1562         * c-array-notation.c (fix_builtin_array_notation_fn,
1563         build_array_notation_expr, fix_conditional_array_notations_1,
1564         fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
1566 2014-11-28  Marek Polacek  <polacek@redhat.com>
1568         PR c/63862
1569         * c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
1570         convert the right operand to integer type.
1572 2014-11-25  Marek Polacek  <polacek@redhat.com>
1574         PR c/63877
1575         * c-decl.c (start_function): Disable -Wmissing-declarations warning
1576         for inline functions.
1578 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
1580         PR target/63764
1581         * c-typeck.c (build_array_ref): Adjust
1582         convert_vector_to_pointer_for_subscript caller.  If it returns true,
1583         call non_lvalue_loc on the result.
1585 2014-11-11  Richard Biener  <rguenther@suse.de>
1587         * c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
1588         to true.
1590 2014-11-10  Andi Kleen  <ak@linux.intel.com>
1592         PR c/60804
1593         * c-parser.c (c_parser_statement_after_labels): Call
1594         check_no_cilk.
1595         (c_parser_if_statement): Dito.
1596         (c_parser_switch_statement): Dito.
1597         (c_parser_while_statement): Dito.
1598         (c_parser_do_statement): Dito.
1599         (c_parser_for_statement): Dito.
1600         * c-typeck.c (c_finish_loop): Dito.
1602 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
1604         * c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
1605         OPT_Wshift_count_overflow in the warnings.
1607 2014-10-30  Marek Polacek  <polacek@redhat.com>
1609         * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
1610         print the stripped version as well, if they're not the same.
1612 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
1614         * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
1615         machine_mode.
1617 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
1619         * c-decl.c: Adjust include files.
1620         * c-parser.c: Ditto.
1622 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
1623             Tom Tromey  <tromey@redhat.com>
1625         * c-tree.h (enum c_oracle_request): New.
1626         (c_binding_oracle_function): New typedef.
1627         (c_binding_oracle, c_pushtag, c_bind): Declare.
1628         * c-decl.c (c_binding_oracle): New global.
1629         (I_SYMBOL_CHECKED): New macro.
1630         (i_symbol_binding): New function.
1631         (I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
1632         (I_TAG_CHECKED): New macro.
1633         (i_tag_binding): New function.
1634         (I_TAG_BINDING, I_TAG_DECL): Redefine.
1635         (I_LABEL_CHECKED): New macro.
1636         (i_label_binding): New function.
1637         (I_LABEL_BINDING, I_LABEL_DECL): Redefine.
1638         (c_print_identifier): Save and restore c_binding_oracle.
1639         (c_pushtag, c_bind): New functions.
1641 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
1643         * c-typeck.c: Adjust include files.
1645 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1647         PR c++/53061
1648         * c-objc-common.c (c_objc_common_init): Do not do diagnostics
1649         initialization here...
1650         (c_initialize_diagnostics): ... but here. Set defaults after
1651         building pretty-printer.
1653 2014-10-23  Marek Polacek  <polacek@redhat.com>
1655         PR c/63626
1656         * c-decl.c (pop_scope): Don't print warning in external_scope.
1658 2014-10-19  Marek Polacek  <polacek@redhat.com>
1660         PR c/63567
1661         * c-typeck.c (output_init_element): Allow initializing objects with
1662         static storage duration with compound literals even in C99 and add
1663         pedwarn for it.
1665 2014-10-17  Marek Polacek  <polacek@redhat.com>
1667         PR c/63567
1668         * c-typeck.c (digest_init): Allow initializing objects with static
1669         storage duration with compound literals even in C99 and add pedwarn
1670         for it.
1672 2014-10-17  Marek Polacek  <polacek@redhat.com>
1674         PR c/63543
1675         * c-tree.h (C_TYPE_ERROR_REPORTED): Define.
1676         * c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
1677         error multiple times.  Print the type.
1679 2014-10-17  Marek Polacek  <polacek@redhat.com>
1681         PR c/63549
1682         * c-typeck.c (build_array_ref): Bail if the index in an incomplete
1683         type.
1685 2014-10-17  Marek Polacek  <polacek@redhat.com>
1687         * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
1688         (start_function): Use OPT_Wimplicit_int instead of 0.
1689         (store_parm_decls_oldstyle): Likewise.
1691 2014-10-17  Alan Modra  <amodra@gmail.com>
1693         PR middle-end/61848
1694         * c-decl.c (merge_decls): Don't merge section name or tls model
1695         to newdecl symtab node, instead merge to olddecl.  Override
1696         existing olddecl section name.  Set tls_model for all thread-local
1697         vars, not just OMP thread-private ones.  Remove incorrect comment.
1699 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
1701         * c-decl.c: Adjust include files.
1703 2014-10-14  DJ Delorie  <dj@redhat.com>
1705         * c-parser.c (c_parse_init): Add RID entries for each __intN.
1706         (c_token_starts_typename): Check all __intN, not just __int128.
1707         (c_token_starts_declspecs): Likewise.
1708         (c_parser_declspecs): Likewise.
1709         (c_parser_attribute_any_word): Likewise.
1710         (c_parser_objc_selector): Likewise.
1711         * c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
1712         (struct c_declspecs): Add int_n_idx field to record *which* __intN
1713         is specified.
1714         * c-decl.c (declspecs_add_type): Check for all __intN, not just
1715         __int128.
1716         (finish_declspecs): Likewise.
1718 2014-10-13  Anthony Brandon  <anthony.brandon@gmail.com>
1720         * c-parser.c (c_parser_all_labels): New function to replace
1721         the duplicate code.
1722         (c_parser_statement): Call the new function.
1724 2014-10-09  Marek Polacek  <polacek@redhat.com>
1726         PR c/63480
1727         * c-typeck.c (pop_init_level): Don't warn about initializing
1728         with { }.
1730 2014-10-07  Marek Polacek  <polacek@redhat.com>
1732         PR c/59717
1733         * c-decl.c (header_for_builtin_fn): New function.
1734         (implicitly_declare): Suggest which header to include.
1736 2014-10-07  Marek Polacek  <polacek@redhat.com>
1738         * c-convert.c (convert): Use error_operand_p.
1739         * c-typeck.c (require_complete_type): Likewise.
1740         (really_atomic_lvalue): Likewise.
1741         (digest_init): Likewise.
1742         (handle_omp_array_sections_1): Likewise.
1744 2014-10-03  Marek Polacek  <polacek@redhat.com>
1746         PR c/63453
1747         * c-decl.c (pop_scope): Don't warn about "inline function declared
1748         but never defined" for functions marked with gnu_inline attribute.
1750 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
1752         PR c++/63249
1753         * c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
1754         on low_bound and length.
1756 2014-09-24  Marek Polacek  <polacek@redhat.com>
1758         PR c/61405
1759         PR c/53874
1760         * c-parser.c: Don't define CPP_KEYWORD.
1761         (c_parser_switch_statement): Pass original type to c_finish_case.
1762         * c-tree.h (c_finish_case): Update declaration.
1763         * c-typeck.c (c_finish_case): Add TYPE parameter.  Pass it
1764         conditionally to c_do_switch_warnings.
1766 2014-09-03  Marek Polacek  <polacek@redhat.com>
1768         PR c/62024
1769         * c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
1770         conversions.
1772 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
1773             Balaji V. Iyer  <balaji.v.iyer@intel.com>
1774             Igor Zamyatin  <igor.zamyatin@intel.com>
1776         * c-parser.c (c_parser_cilk_for): New function.
1777         (c_parser_cilk_grainsize): Likewise.
1778         (c_get_temp_regvar): Likewise.
1779         (c_parser_statement_after_labels): Added RID_CILK_FOR case.
1780         (c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
1781         (c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
1782         * c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
1783         case.
1785 2014-08-27  Chen Gang  <gang.chen.5i5j@gmail.com>
1787         * c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
1788         with using HOST_WIDE_INT without truncation to 'int'
1790 2014-08-22  Marek Polacek  <polacek@redhat.com>
1792         PR c++/62199
1793         * c-typeck.c (parser_build_binary_op): Adjust call to
1794         warn_logical_not_parentheses.
1796 2014-08-22  Igor Zamyatin  <igor.zamyatin@intel.com>
1798         PR other/62008
1799         * c-parser.c (c_parser_array_notation): Check for correct
1800         type of an array added.
1802 2014-08-19  Marek Polacek  <polacek@redhat.com>
1804         PR c++/62153
1805         * c-typeck.c (build_binary_op): If either operand of a comparison
1806         is a boolean expression, call maybe_warn_bool_compare.
1808 2014-08-19  Patrick Palka  <ppalka@gcc.gnu.org>
1810         PR c/45584
1811         * c-typeck.c (build_c_cast): Do a conversion even when the
1812         TYPE_MAIN_VARIANTs are the same.
1814 2014-08-19  Marek Polacek  <polacek@redhat.com>
1816         * c-decl.c (diagnose_mismatched_decls): Unconditionally call
1817         pedwarn_c99 instead of pedwarn.
1818         (grokfield): Likewise.
1819         (warn_defaults_to): New function.
1820         (grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
1821         Unconditionally call pedwarn_c99 instead of pedwarn.
1822         (start_function): Call warn_defaults_to instead of pedwarn_c99.
1823         (declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
1824         check flag_isoc11 before.
1825         * c-errors.c (pedwarn_c99): Change the return type to bool.
1826         Handle -Wc99-c11-compat.
1827         * c-parser.c (disable_extension_diagnostics): Handle
1828         warn_c99_c11_compat.
1829         (restore_extension_diagnostics): Likewise.
1830         (c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
1831         instead of pedwarn, don't check flag_isoc11 before.
1832         (c_parser_declspecs): Likewise.
1833         (c_parser_alignas_specifier): Likewise.
1834         (c_parser_alignof_expression): Likewise.
1835         (c_parser_generic_selection): Likewise.
1836         * c-tree.h (pedwarn_c99): Update declaration.
1837         * c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
1838         of pedwarn_c99.
1840 2014-08-19  Marek Polacek  <polacek@redhat.com>
1842         * c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
1843         to pedwarn_c90.
1844         * c-errors.c: Include "opts.h".
1845         (pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
1846         * c-parser.c (disable_extension_diagnostics): Handle negative value
1847         of warn_c90_c99_compat, too.
1848         (restore_extension_diagnostics): Likewise.
1849         (c_parser_compound_statement_nostart): Pass
1850         OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.
1852 2014-08-12  Marek Polacek  <polacek@redhat.com>
1854         * c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
1855         Add pedwarn.
1856         (c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
1857         Likewise.
1858         (c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.
1860 2014-08-10 Marek Polacek  <polacek@redhat.com>
1862         PR c/51849
1863         * c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
1864         Call pedwarn_c90 instead of pedwarn.
1865         (check_bitfield_type_and_width): Likewise.
1866         (declspecs_add_qual): Likewise.
1867         (declspecs_add_type): Likewise.
1868         (warn_variable_length_array): Unify function for -pedantic and -Wvla.
1869         Adjust to only call pedwarn_c90.
1870         (grokdeclarator): Remove pedantic && !flag_isoc99 check.  Call
1871         pedwarn_c90 instead of pedwarn.
1872         * c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
1873         * c-parser.c (disable_extension_diagnostics): Handle
1874         warn_c90_c99_compat.
1875         (restore_extension_diagnostics): Likewise.
1876         (c_parser_enum_specifier): Remove check for !flag_isoc99.  Call
1877         pedwarn_c90 instead of pedwarn.
1878         (c_parser_initelt): Likewise.
1879         (c_parser_postfix_expression): Likewise.
1880         (c_parser_postfix_expression_after_paren_type): Likewise.
1881         (c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
1882         * c-tree.h: Fix formatting.
1883         * c-typeck.c (build_array_ref): Remove check for !flag_isoc99.  Call
1884         pedwarn_c90 instead of pedwarn.
1886 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
1888         * c-typeck.c: Remove include of pointer-set.h.
1890 2014-08-07  Marek Polacek  <polacek@redhat.com>
1892         * c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.
1894 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
1896         * c-typeck.c: Use hash_map instead of pointer_map.
1898 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
1900         * c-decl.c: Use hash_set instead of pointer_set.
1902 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
1904         PR middle-end/61455
1905         * c-array-notation.c (expand_array_notations): Handling
1906         of DECL_EXPR added.
1908 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
1910         PR c++/60517
1911         * c-typeck.c (c_finish_return): Return 0 instead of the address of
1912         a local variable.
1914 2014-07-30  Tom Tromey  <tromey@redhat.com>
1916         * c-typeck.c (struct constructor_stack) <designator_depth>: New
1917         field.
1918         (really_start_incremental_init, push_init_level): Initialize
1919         designator_depth.
1920         (pop_init_level): Set global designator_depth.
1921         (process_init_element): Check for designated_init attribute.
1923 2014-07-20  Marek Polacek  <polacek@redhat.com>
1925         PR c/61852
1926         * c-decl.c (implicit_decl_warning): Add location_t parameter.  Use it.
1927         (implicitly_declare): Pass location to implicit_decl_warning.
1929 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
1931         PR middle-end/61294
1932         * c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
1933         If non-NULL, call c_parser_check_literal_zero.
1934         (c_parser_check_literal_zero): New function.
1935         (c_parser_postfix_expression_after_primary): Adjust
1936         c_parser_expr_list caller, handle -Wmemset-transposed-args.
1938 2014-07-06  Marek Polacek  <polacek@redhat.com>
1940         PR c/6940
1941         * c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
1942         * c-tree.h (C_ARRAY_PARAMETER): Define.
1943         * c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
1944         function parameter.
1946 2014-07-02  Jan Hubicka  <hubicka@ucw.cz>
1947             Chen Gang <gang.chen.5i5j@gmail.com>
1949         * c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
1950         releasing symbol.
1952 2014-07-01  Marek Polacek  <polacek@redhat.com>
1954         * c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
1955         instead of 0 to WARN_FOR_ASSIGNMENT.
1957 2014-07-01  Marek Polacek  <polacek@redhat.com>
1959         PR c/58286
1960         * c-typeck.c (convert_for_assignment): Pass
1961         OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
1963 2014-06-30  Marek Polacek  <polacek@redhat.com>
1965         * c-decl.c (grokdeclarator): Don't instrument VLAs if the function
1966         has no_sanitize_undefined attribute.
1968 2014-06-30  Igor Zamyatin  <igor.zamyatin@intel.com>
1970         PR middle-end/57541
1971         * c-array-notation.c (fix_builtin_array_notation_fn):
1972         Check for 0 arguments in builtin call. Check that bultin argument is
1973         correct.
1974         * c-parser.c (c_parser_array_notation): Check for incorrect initial
1975         index.
1977 2014-06-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1979         * c-parser.c (c_parser_declaration_or_fndef): Discard all type
1980         qualifiers in __auto_type for atomic types.
1981         (c_parser_typeof_specifier): Discard all type qualifiers in
1982         __typeof__ for atomic types.
1984 2014-06-25  Marek Polacek  <polacek@redhat.com>
1986         PR c/61162
1987         * c-parser.c (c_parser_statement_after_labels): Pass the location of
1988         the return expression to c_finish_return.
1990 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
1992         * c-typeck.c (c_finish_omp_clauses): Make sure
1993         OMP_CLAUSE_LINEAR_STEP has correct type.
1995 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
1997         * c-decl.c: Adjust.
1999 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
2001         * c-parser.c (c_parser_omp_for_loop): For
2002         #pragma omp parallel for simd move lastprivate clause from parallel
2003         to for rather than simd.
2005 2014-06-23  Marek Polacek  <polacek@redhat.com>
2007         * c-typeck.c (parser_build_binary_op): Don't call
2008         warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
2010 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
2012         * c-parser.c (c_parser_omp_threadprivate): Likewise.
2013         * c-decl.c (merge_decls): Likewise.
2015 2014-06-09  Marek Polacek  <polacek@redhat.com>
2017         PR c/36446
2018         * c-typeck.c (error_init): Call inform instead of error_at.
2019         (pedwarn_init): Call inform instead of pedwarn.
2020         (warning_init): Call inform instead of warning_at.
2022 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
2024         * c-decl.c (merge_decls): Use set_decl_section_name.
2025         (duplicate_decls): Remove node if it exists.
2027 2014-06-05  S. Gilles  <sgilles@terpmail.umd.edu>
2029         PR c/53119
2030         * c-typeck.c (push_init_level, process_init_element,
2031         pop_init_level): Correct check for zero initialization, move
2032         missing brace warning to respect zero initialization.
2034 2014-06-05  Marek Polacek  <polacek@redhat.com>
2036         PR c/56724
2037         * c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.
2039 2014-06-05  Marek Polacek  <polacek@redhat.com>
2041         PR c/49706
2042         * c-typeck.c (parser_build_binary_op): Warn when logical not is used
2043         on the left hand side operand of a comparison. 
2045 2014-06-05  Marek Polacek  <polacek@redhat.com>
2047         PR c/48062
2048         * c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
2049         Print note only if the warning was printed.
2051 2014-06-04  Igor Zamyatin  <igor.zamyatin@intel.com>
2053         PR c/58942
2054         * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
2055         with a pointer.
2057 2014-06-03  Marek Polacek  <polacek@redhat.com>
2059         PR c/60439
2060         * c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
2061         c_start_case.
2062         * c-tree.h (c_start_case): Update.
2063         * c-typeck.c (c_start_case): Add new boolean parameter.  Warn if
2064         switch condition has boolean value.
2066 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
2068         * c-decl.c: Include builtins.h.
2069         * c-parser.c: Likewise.
2071 2014-05-27  Marek Polacek  <polacek@redhat.com>
2073         PR c/56724
2074         * c-typeck.c (convert_arguments): Get location of a parameter.  Change
2075         error and warning calls to error_at and warning_at.  Pass location of
2076         a parameter to it.  Call warning_at with OPT_Wtraditional_conversion.
2077         (convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
2078         WARN_FOR_QUALIFIERS.  Pass expr_loc to those.
2080 2014-05-26  Igor Zamyatin  <igor.zamyatin@intel.com>
2082         PR c/61191
2083         * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
2084         function parameters.
2086 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
2088         * c-decl.c (merge_decls): Preserve symtab node pointers.
2089         (duplicate_decls): Free new decl.
2091 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
2093         * c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
2094         initialization.
2096         * c-parser.c (c_parser_omp_target): Return bool values.
2098 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
2100         * c-parser.c (c_parser_omp_clause_thread_limit): Rename
2101         num_teams_loc variable to num_thread_limit_loc.
2103 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
2105         * c-array-notation.c (expand_array_notations): Use void_node
2106         instead of void_zero_node.
2108 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
2110         * c-decl.c (finish_struct): Adjust.
2111         (finish_enum): Likewise.
2112         (bind): Adjust.
2113         (record_inline_static): Likewise.
2114         (push_scope): Likewise.
2115         (make_label): Likewise.
2116         (lookup_label_for_goto): Likewise.
2117         (finish_struct): Likewise.
2118         (finish_enum): Likewise.
2119         (store_parm_decls): Likewise.
2120         (c_push_function_context): Likewise.
2121         * c-lang.h: Remove usage of variable_size gty attribute.
2122         * c-parser.c (c_parse_init): Adjust.
2123         (c_parse_file): Likewise.
2125 2014-05-13  Marek Polacek  <polacek@redhat.com>
2127         PR c/61162
2128         * c-typeck.c (convert_for_assignment): Pass location to
2129         WARN_FOR_ASSIGNMENT instead of input_location.
2131 2014-05-10  Marek Polacek  <polacek@redhat.com>
2133         * c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
2134         maybe_warn_string_init.
2135         (c_parser_postfix_expression_after_paren_type): Pass type_loc to
2136         maybe_warn_string_init.
2137         * c-tree.h (maybe_warn_string_init): Update declaration.
2138         * c-typeck.c (maybe_warn_string_init): Add location parameter.
2139         Call pedwarn_init with loc instead of with input_location.
2140         (digest_init): Pass init_loc to maybe_warn_string_init.
2141         (pop_init_level): Call pedwarn_init with loc instead of with
2142         input_location.
2143         (set_init_index): Likewise.
2144         (process_init_element): Likewise.
2146 2014-05-09  Marek Polacek  <polacek@redhat.com>
2148         PR c/61096
2149         * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
2150         (c_parser_initelt): Pass location to set_init_label.  Pass array index
2151         location to set_init_index.
2152         * c-tree.h (push_init_level): Update declaration.
2153         (pop_init_level): Likewise.
2154         (set_init_index): Likewise.
2155         (set_init_label): Likewise.
2156         * c-typeck.c (error_init): Add location parameter.  Call error_at
2157         instead of error.
2158         (digest_init): Pass init_loc to error_init.
2159         (really_start_incremental_init):
2160         (push_init_level): Add location parameter.  Pass loc to pop_init_level
2161         and error_init.
2162         (pop_init_level): Likewise.
2163         (set_designator): Add location parameter.  Pass loc to pop_init_level,
2164         push_init_level, and error_init.
2165         (set_init_index): Add location parameter.  Pass loc to error_init and
2166         set_designator.
2167         (set_init_label): Likewise.
2168         (output_init_element): Pass loc to error_init.
2169         (process_init_element): Pass loc to error_init, pop_init_level,
2170         pedwarn_init, and push_init_level.
2172 2014-05-09  Marek Polacek  <polacek@redhat.com>
2174         PR c/50459
2175         * c-parser.c (c_parser_attributes): Parse the arguments as an
2176         expression-list if the attribute takes identifier.
2178 2014-05-08  Marek Polacek  <polacek@redhat.com>
2180         PR c/61053
2181         * c-decl.c (grokdeclarator): Use min_align_of_type instead of
2182         TYPE_ALIGN_UNIT.
2184 2014-05-08  Marek Polacek  <polacek@redhat.com>
2186         PR c/61077
2187         * c-decl.c (start_function): Warn for _Atomic-qualified return type
2188         of main.
2190 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
2191             Mike Stump  <mikestump@comcast.net>
2192             Richard Sandiford  <rdsandiford@googlemail.com>
2194         * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
2195         (finish_enum): Use wide-int interfaces.
2196         * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
2197         * c-typeck.c (build_c_cast): Likewise.
2198         (set_nonincremental_init_from_string): Likewise.
2199         (c_tree_equal): Likewise.
2201 2014-05-02  Marek Polacek  <polacek@redhat.com>
2203         PR c/25801
2204         * c-typeck.c (c_size_in_bytes): Update comment.  Don't call error.
2205         Return size_one_node when the type is not complete.
2206         (pointer_diff): Remove comment.
2207         (build_unary_op): Improve error messages.
2209 2014-05-02  Marek Polacek  <polacek@redhat.com>
2211         * c-typeck.c (c_finish_return): Separate warning_at calls.
2213 2014-05-02  Marek Polacek  <polacek@redhat.com>
2215         * c-tree.h (error_init): Remove declaration.
2216         (pedwarn_init): Likewise.
2217         * c-typeck.c (error_init): Make static and move above.
2218         (pedwarn_init): Likewise.
2219         (warning_init): Move above.
2220         (maybe_warn_string_init): Likewise.
2222 2014-05-01  Jeff Law  <law@redhat.com>
2224         Revert:
2226         2014-04-24  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2227         * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
2228         avoid goto.
2230 2014-05-02  Marek Polacek  <polacek@redhat.com>
2232         PR c/60784
2233         * c-typeck.c (push_init_level): Set constructor_designated to
2234         p->designated for structures.
2236 2014-05-01  Marek Polacek  <polacek@redhat.com>
2238         PR c/60915
2239         * c-parser.c (c_parser_declaration_or_fndef): Give better error if
2240         function-definition has an attribute after the declarator.
2242 2014-05-01  Marek Polacek  <polacek@redhat.com>
2244         PR c/60257
2245         * c-typeck.c (warning_init): Add location_t parameter.  Call
2246         warning_at instead of warning.
2247         (push_init_level): Pass input_location to warning_init.
2248         (add_pending_init): Add location_t parameter.  Pass loc to
2249         warning_init.
2250         (set_nonincremental_init): Pass input_location to add_pending_init.
2251         (set_nonincremental_init_from_string): Likewise.
2252         (output_init_element): Pass loc to warning_init and to
2253         add_pending_init.
2255 2014-05-01  Marek Polacek  <polacek@redhat.com>
2257         PR c/43395
2258         * c-typeck.c (c_finish_return): Distinguish between label and variable
2259         when warning about returning local address.
2261 2014-05-01  Marek Polacek  <polacek@redhat.com>
2263         PR c/29467
2264         * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
2265         in C89 mode.
2267 2014-05-01  Marek Polacek  <polacek@redhat.com>
2269         PR c/43245
2270         * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
2271         instead of 0 to WARN_FOR_QUALIFIERS.
2273 2014-05-01  Marek Polacek  <polacek@redhat.com>
2275         PR c/56989
2276         * c-typeck.c (default_conversion): Use better location for
2277         error call.
2279 2014-04-30  Marek Polacek  <polacek@redhat.com>
2281         * c-typeck.c (build_binary_op): Call ubsan_instrument_division
2282         also when SANITIZE_FLOAT_DIVIDE is on.
2284 2014-04-30  Marek Polacek  <polacek@redhat.com>
2286         PR c/60139
2287         * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
2288         and pedwarn_init.  Use loc insted of input_location.
2290 2014-04-30  Marek Polacek  <polacek@redhat.com>
2292         PR c/60351
2293         * c-typeck.c (build_binary_op): Use location when warning about
2294         shift count.
2296 2014-04-25  Marek Polacek  <polacek@redhat.com>
2298         PR c/18079
2299         * c-decl.c (diagnose_mismatched_decls): Warn for mismatched
2300         always_inline/noinline and hot/cold attributes.
2302 2014-04-25  Marek Polacek  <polacek@redhat.com>
2304         PR c/60114
2305         * c-parser.c (c_parser_initelt): Pass input_location to
2306         process_init_element.
2307         (c_parser_initval): Pass loc to process_init_element.
2308         * c-tree.h (process_init_element): Adjust declaration.
2309         * c-typeck.c (push_init_level): Pass input_location to
2310         process_init_element.
2311         (pop_init_level): Likewise.
2312         (set_designator): Likewise.
2313         (output_init_element): Add location_t parameter.  Pass loc to
2314         digest_init.
2315         (output_pending_init_elements): Pass input_location to
2316         output_init_element.
2317         (process_init_element): Add location_t parameter.  Pass loc to
2318         output_init_element.
2320 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
2322         * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
2323         atomic-clause, allow comma in between atomic-clause and
2324         seq_cst.
2326 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
2328         PR c/59073
2329         * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
2330         fails, don't set OM_PARALLEL_COMBINED and return NULL.
2332 2014-04-12  Igor Zamyatin  <igor.zamyatin@intel.com>
2334         PR middle-end/60469
2335         * c-array-notation.c (fix_builtin_array_notation_fn): Use
2336         create_tmp_var instead build_decl for creating temps.
2337         (build_array_notation_expr): Likewise.
2338         (fix_conditional_array_notations_1): Likewise.
2339         (fix_array_notation_expr): Likewise.
2340         (fix_array_notation_call_expr): Likewise.
2342 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
2344         PR c++/60689
2345         * c-tree.h (c_build_function_call_vec): New prototype.
2346         * c-typeck.c (build_function_call_vec): Don't call
2347         resolve_overloaded_builtin here.
2348         (c_build_function_call_vec): New wrapper function around
2349         build_function_call_vec.  Call resolve_overloaded_builtin here.
2350         (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
2351         Call c_build_function_call_vec instead of build_function_call_vec.
2352         * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
2353         * c-decl.c (finish_decl): Likewise.
2355 2014-03-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2357         PR c/55383
2358         * c-typeck.c: Use correct format string in cast-qual warning
2360 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
2362         * c-decl.c (c_decl_attributes): Use
2363         lang_hooks.types.omp_mappable_type.
2364         * c-typeck.c (c_finish_omp_clauses): Likewise.
2366 2014-03-06  Marek Polacek  <polacek@redhat.com>
2368         PR c/60197
2369         * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
2370         of checking tree code.
2372 2014-02-19  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2374         * c-parser.c (c_parser_declspecs): Replace call to error by error_at.
2375         (c_parser_parameter_declaration): Likewise.
2377 2014-02-19  Marek Polacek  <polacek@redhat.com>
2379         PR c/60195
2380         * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
2381         Call mark_exp_read on exp.value.
2382         (build_atomic_assign): Set TREE_NO_WARNING on val and old.  Set
2383         TREE_ADDRESSABLE on old instead of val.
2384         (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
2386 2014-02-07  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2388         * c-parser.c (c_parser_get_builtin_args): Replace calls to
2389         C_EXPR_APPEND by vec_safe_push.
2390         * c-tree.h (C_EXPR_APPEND): Remove.
2392 2014-01-31  Marek Polacek  <polacek@redhat.com>
2394         PR c/59963
2395         * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
2396         build_function_call_vec.
2397         (build_function_call): Likewise.
2398         (build_atomic_assign): Likewise.
2399         (build_function_call_vec): Add arg_loc parameter.  Use it.
2400         (convert_arguments): Likewise.
2401         (convert_for_assignment): Rename rhs_loc to expr_loc.
2402         * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
2403         (c_parser_objc_keywordexpr): Likewise.
2404         (c_parser_postfix_expression_after_primary): Call
2405         build_function_call_vec with expr_loc rather than op_loc.
2406         Call c_parser_expr_list to fill arg_loc.  Pass arg_loc to
2407         build_function_call_vec.
2408         (c_parser_expr_list): Add locations parameter.  Fill it with locations
2409         of function arguments.
2410         * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
2412 2014-01-30  Marek Polacek  <polacek@redhat.com>
2414         PR c/59940
2415         * c-typeck.c (build_function_call_vec): Use loc parameter.
2416         (convert_arguments): Add location parameter.  Use it.
2417         (ep_convert_and_check): Likewise.
2418         (build_atomic_assign): Adjust convert_for_assignment call.
2419         (build_modify_expr): Likewise.
2420         (digest_init): Likewise.
2421         (c_finish_return): Likewise.
2422         (build_conditional_expr): Adjust ep_convert_and_check calls.
2423         (convert_for_assignment): Add rhs_loc parameter.  Use it.
2424         (build_binary_op): Adjust convert_and_check and ep_convert_and_check
2425         calls.
2427 2014-01-30  Richard Biener  <rguenther@suse.de>
2429         PR c/59905
2430         * c-typeck.c (build_function_call_vec): Do not replace calls
2431         to a function via an incompatible type with a runtime abort.
2433 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2435         * c-parser.c (c_parser_declaration_or_fndef): Replaced
2436         flag_enable_cilkplus with flag_cilkplus.
2437         (c_parser_direct_declarator_inner): Likewise.
2438         (c_parser_attribute_any_word): Likewise.
2439         (c_parser_attributes): Likewise.
2440         (c_parser_compound_statement): Likewise.
2441         (c_parser_statement_after_labels): Likewise.
2442         (c_parser_if_statement): Likewise.
2443         (c_parser_switch_statement): Likewise.
2444         (c_parser_do_statement): Likewise.
2445         (c_parser_for_statement): Likewise.
2446         (c_parser_unary_expression): Likewise.
2447         (c_parser_postfix_expression): Likewise.
2448         (c_parser_postfix_expression_after_primary): Likewise.
2449         (c_parser_postfix_expression_after_primary): Likewise.
2450         (c_parser_omp_clause_name): Likewise.
2451         (c_finish_omp_declare_simd): Likewise.
2452         (c_parser_cilk_verify_simd): Likewise.
2453         * c-typeck.c (build_array_ref): Likewise.
2454         (build_function_call_vec): Likewise.
2455         (convert_arguments): Likewise.
2456         (build_compound_expr): Likewise.
2457         (c_finish_return): Likewise.
2458         (c_finish_if_stmt): Likewise.
2459         (c_finish_loop): Likewise.
2460         (build_binary_op): Likewise.
2462 2014-01-23  Marek Polacek  <polacek@redhat.com>
2464         PR c/59846
2465         * c-typeck.c (parser_build_binary_op): Use location instead of
2466         input_location.
2467         (build_binary_op): Pass location to shorten_compare.
2469 2014-01-23  Marek Polacek  <polacek@redhat.com>
2471         PR c/58346
2472         * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
2473         an empty aggregate.
2475 2014-01-23  Marek Polacek  <polacek@redhat.com>
2477         PR c/59871
2478         * c-typeck.c (build_compound_expr): Warn even for right-hand operand
2479         of a comma expression.
2480         (emit_side_effect_warnings): Likewise.
2482 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2484         PR c/59825
2485         * c-array-notation.c (expand_array_notation_exprs): Rewrote this
2486         function to use walk_tree and moved a lot of its functionality to
2487         expand_array_notations.
2488         (expand_array_notations): New function.
2490 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2492         * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
2493         attribute an attribute without value.
2495 2014-01-23  Jakub Jelinek  <jakub@redhat.com>
2497         PR middle-end/58809
2498         * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
2499         BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
2501 2014-01-22  Marek Polacek  <polacek@redhat.com>
2503         PR c/59891
2504         * c-typeck.c (build_conditional_expr): Call c_fully_fold instead
2505         of remove_c_maybe_const_expr on op1 and op2.
2507 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
2509         PR c/58943
2510         * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
2511         effects, preevaluate rhs using SAVE_EXPR first.
2513 2014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2515         PR c++/59631
2516         * c-parser.c (c_parser_postfix_expression): Replaced consecutive if
2517         statements with if-elseif statements.
2519 2014-01-06  Marek Polacek  <polacek@redhat.com>
2521         PR c/57773
2522         * c-decl.c (check_bitfield_type_and_width): Warn for implementation
2523         defined bit-field types only in ISO C.
2525 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2527         Update copyright years
2529 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2531         * c-array-notation.c: Use the standard form for the copyright notice.
2533 2013-12-18  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2535         * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
2536         (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
2537         field in parser is not empty.  If not-empty, call the function
2538         c_parser_finish_omp_declare_simd.
2539         (c_parser_cilk_clause_vectorlength): Modified function to be shared
2540         between SIMD-enabled functions and #pragma simd.  Added new parameter.
2541         (c_parser_cilk_all_clauses): Modified the usage of the function
2542         c_parser_cilk_clause_vectorlength as mentioned above.
2543         (c_parser_cilk_simd_fn_vector_attrs): New function.
2544         (c_finish_cilk_simd_fn_tokens): Likewise.
2545         (is_cilkplus_vector_p): Likewise.
2546         (c_parser_omp_clause_name): Added checking for "vectorlength,"
2547         "nomask," and "mask" strings in clause name.
2548         (c_parser_omp_all_clauses): Added 3 new case statements:
2549         PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
2550         PRAGMA_CILK_CLAUSE_NOMASK.
2551         (c_parser_attributes): Added a cilk_simd_fn_tokens parameter.  Added a
2552         check for vector attribute and if so call the function
2553         c_parser_cilk_simd_fn_vector_attrs.  Also, when Cilk plus is enabled,
2554         called the function c_finish_cilk_simd_fn_tokens.
2555         (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
2556         parser field is non-empty.  If so, parse them as you would parse
2557         the omp declare simd pragma.
2558         (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
2559         Added a check when step is a parameter and flag it as error.
2560         (CILK_SIMD_FN_CLAUSE_MASK): New #define.
2561         (c_parser_cilk_clause_name): Changed pragma_cilk_clause to
2562         pragma_omp_clause.
2564 2013-12-17  Thomas Schwinge  <thomas@codesourcery.com>
2566         * c-parser.c (c_parser_omp_parallel): Fix description.
2568 2013-12-11  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2570         * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
2571         (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
2572         (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
2573         * c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
2575 2013-12-04  Joseph Myers  <joseph@codesourcery.com>
2577         PR c/52023
2578         * c-parser.c (c_parser_alignas_specifier): Use
2579         c_sizeof_or_alignof_type instead of c_alignof.
2580         (c_parser_alignof_expression): Likewise, with min_alignof
2581         parameter depending on alignof spelling used.
2583 2013-12-04  Marek Polacek  <polacek@redhat.com>
2585         PR c/54113
2586         * c-decl.c (start_function): Don't warn for missing prototype for
2587         inline functions.
2589 2013-12-03  Marek Polacek  <polacek@redhat.com>
2591         PR c/59351
2592         * c-decl.c (build_compound_literal): Allow compound literals with
2593         empty initial value.
2595 2013-12-02  Joseph Myers  <joseph@codesourcery.com>
2597         PR c/58235
2598         * c-typeck.c (build_modify_expr): Diagnose assignment to
2599         expression with array type.
2601 2013-11-29  Joseph Myers  <joseph@codesourcery.com>
2603         PR c/42262
2604         * c-typeck.c (process_init_element): Do not treat a string as
2605         initializing a whole array when used with a designator for an
2606         individual element.
2608 2013-11-29  Joseph Myers  <joseph@codesourcery.com>
2610         PR c/57574
2611         * c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
2612         an inline function following a static declaration.
2614 2013-11-28  Jakub Jelinek  <jakub@redhat.com>
2616         PR c/59310
2617         * c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
2618         to p_name before calling c_parser_omp_teams instead of after.
2619         (c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
2620         argument.  Remove unused p_name variable.
2622 2013-11-27  Aldy Hernandez  <aldyh@redhat.com>
2623             Jakub Jelinek  <jakub@redhat.com>
2625         * c-decl.c (c_builtin_function_ext_scope): Avoid binding if
2626         external_scope is NULL.
2628 2013-11-27  Tom de Vries  <tom@codesourcery.com>
2629             Marc Glisse  <marc.glisse@inria.fr>
2631         PR c++/59032
2632         * c-typeck.c (build_unary_op): Allow vector increment and decrement.
2634 2013-11-22  Andrew MacLeod  <amacleod@redhat.com>
2636         * c-typeck.c: Add required include files from gimple.h.
2638 2013-11-22  David Malcolm  <dmalcolm@redhat.com>
2640         * c-decl.c (define_label, shadow_tag_warned)
2641         (check_bitfield_type_and_width, grokdeclarator, grokparms,
2642         store_parm_decls_newstyle, store_parm_decls_oldstyle)
2643         (declspecs_add_type): Remove use of in_system_header macro.
2644         * c-parser.c (c_parser_unary_expression): Likewise.
2645         * c-typeck.c (store_init_value, process_init_element)
2646         (c_start_case): Likewise.
2648         * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
2649         macro.
2651         * c-parser.c (c_parser_set_source_position_from_token): Remove
2652         reference to in_system_header from comment.
2654 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2656         * c-decl.c (grokdeclarator): Update comment to refer to
2657         tree_to_[su]hwi rather than tree_low_cst.
2659 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2661         * c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
2662         tree_to_uhwi throughout.
2664 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2666         * c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
2667         throughout.
2669 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2671         * c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
2672         throughout.
2674 2013-11-15  Aldy Hernandez  <aldyh@redhat.com>
2676         * c-parser.c (c_parser_cilk_simd): New.
2677         (c_parser_cilk_verify_simd): New.
2678         (c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
2679         (c_parser_omp_for_loop): Add case for NE_EXPR.
2680         Set c_break_label for CILK_SIMD.
2681         (c_parser_cilk_clause_vectorlength): New.
2682         (c_parser_cilk_clause_linear): New.
2683         (c_parser_cilk_clause_name): New.
2684         (c_parser_cilk_all_clauses): New.
2685         * c-typeck.c (build_unary_op): Pass location argument to
2686         readonly_error.
2687         (build_modify_expr): Same.
2688         (build_asm_expr): Same.
2689         (c_finish_bc_stmt): Error on break/continue in loops.
2691 2013-11-14  Andrew MacLeod  <amacleod@redhat.com>
2693         * c-typeck.c: Include only gimplify.h and gimple.h as needed.
2695 2013-11-14  Diego Novillo  <dnovillo@google.com>
2697         * c-decl.c: Include print-tree.h.
2698         Include stor-layout.h.
2699         Include varasm.h.
2700         Include attribs.h.
2701         Include stringpool.h.
2702         * c-lang.c: Include fold-const.h.
2703         * c-parser.c: Include stringpool.h.
2704         Include attribs.h.
2705         Include stor-layout.h.
2706         Include varasm.h.
2707         Include trans-mem.h.
2708         * c-typeck.c: Include stor-layout.h.
2709         Include trans-mem.h.
2710         Include varasm.h.
2711         Include stmt.h.
2713 2013-11-13  Joseph Myers  <joseph@codesourcery.com>
2715         * c-tree.h (c_typespec_keyword): Add cts_auto_type.
2716         * c-decl.c (declspecs_add_type, finish_declspecs): Handle
2717         __auto_type.
2718         * c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
2719         (c_parser_attribute_any_word, c_parser_objc_selector): Handle
2720         RID_AUTO_TYPE.
2721         (c_parser_declspecs): Take argument AUTO_TYPE_OK.
2722         (c_parser_declaration_or_fndef, c_parser_struct_declaration)
2723         (c_parser_declarator, c_parser_direct_declarator_inner)
2724         (c_parser_parameter_declaration, c_parser_type_name): All callers
2725         changed.
2726         (c_parser_declaration_or_fndef): Handle declarations with type
2727         determined from the initializer.
2729 2013-11-12  Andrew MacLeod  <amacleod@redhat.com>
2731         * c-typeck.c: Include gimplify.h.
2733 2013-11-12  Joseph Myers  <joseph@codesourcery.com>
2735         * c-tree.h (struct c_declspecs): Add thread_gnu_p field.
2736         * c-parser.c (c_parser_declspecs): Mention _Thread_local in
2737         comment.
2738         * c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
2739         or _Thread_local as appropriate in diagnostics.
2740         (build_null_declspecs): Initialize ret->thread_gnu_p.
2741         (declspecs_add_scspec): Handle either __thread or _Thread_local
2742         for RID_THREAD.  Diagnose _Thread_local for pre-C11 standards if
2743         pedantic.  Do not disallow _Thread_local extern and _Thread_local
2744         static.
2746 2013-11-07  Joseph Myers  <joseph@codesourcery.com>
2747             Andrew MacLeod  <amacleod@redhat.com>
2749         * c-aux-info.c (gen_type): Handle atomic qualifier.
2750         * c-decl.c (validate_proto_after_old_defn): Do not remove atomic
2751         qualifiers when compating types.
2752         (shadow_tag_warned): Handle atomic_p in declspecs.
2753         (quals_from_declspecs): Likewise.
2754         (start_decl): Use c_type_promotes_to when promoting argument
2755         types.
2756         (grokdeclarator): Handle _Atomic.
2757         (get_parm_info): Diagnose any qualifier on "void" as only
2758         parameter.
2759         (store_parm_decls_oldstyle): Do not remove atomic qualifiers when
2760         comparing types.  Use c_type_promotes_to when promoting argument
2761         types.
2762         (finish_function): Use c_type_promotes_to when promoting argument
2763         types.
2764         (build_null_declspecs): Handle atomic_p in declspecs.
2765         (declspecs_add_qual): Handle RID_ATOMIC.
2766         * c-parser.c (c_token_starts_typename, c_token_is_qualifier)
2767         (c_token_starts_declspecs): Handle RID_ATOMIC.
2768         (c_parser_declspecs): Handle atomic type specifiers and
2769         qualifiers.
2770         (c_parser_typeof_specifier): Remove const and _Atomic qualifiers
2771         from types of expressions with atomic type.
2772         (c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
2773         (c_parser_attribute_any_word): Handle RID_ATOMIC.
2774         (c_parser_initializer, c_parser_initelt, c_parser_initval)
2775         (c_parser_statement_after_labels, c_parser_switch_statement)
2776         (c_parser_for_statement, c_parser_expr_no_commas)
2777         (c_parser_conditional_expression, c_parser_binary_expression)
2778         (c_parser_cast_expression, c_parser_unary_expression)
2779         (c_parser_postfix_expression)
2780         (c_parser_postfix_expression_after_primary, c_parser_expression):
2781         Use convert_lvalue_to_rvalue.
2782         (c_parser_expression_conv, c_parser_expr_list): Document
2783         conversion of lvalues to rvalues.  Use convert_lvalue_to_rvalue.
2784         (c_parser_objc_synchronized_statement): Use
2785         convert_lvalue_to_rvalue.
2786         (c_parser_objc_selector): Handle RID_ATOMIC.
2787         (c_parser_objc_receiver, c_parser_array_notation): Use
2788         convert_lvalue_to_rvalue.
2789         * c-tree.h (ctsk_typeof): Adjust comment to mention use for
2790         _Atomic (type-name).
2791         (struct c_declspecs): Add atomic_p field.
2792         (convert_lvalue_to_rvalue): Declare.
2793         * c-typeck.c (c_type_promotes_to): Promote atomic types to
2794         corresponding atomic types.
2795         (qualify_type): Don't add _Atomic qualifiers from second argument.
2796         (comp_target_types): Do not allow _Atomic mismatches.
2797         (type_lists_compatible_p): Do not remove atomic qualifiers when
2798         comparing types.
2799         (really_atomic_lvalue, convert_lvalue_to_rvalue)
2800         (build_atomic_assign): New functions.
2801         (build_unary_op): Use build_atomic_assign for atomic increment and
2802         decrement.
2803         (build_conditional_expr): Do not treat _Atomic void as a qualified
2804         version of void.
2805         (build_modify_expr): Use build_atomic_assign for atomic LHS.
2806         (find_anonymous_field_with_type, convert_to_anonymous_field)
2807         (convert_for_assignment): Do not remove atomic qualifiers when
2808         comparing types.
2809         (digest_init): Do not accept initialization of arrays of atomic
2810         elements by string constants.
2811         (build_asm_expr): Use convert_lvalue_to_rvalue.
2812         (build_binary_op): Do not treat _Atomic void as a qualified
2813         version of void.
2815 2013-11-06  DJ Delorie  <dj@redhat.com>
2817         * c-decl.c (locate_old_decl): If a previous conflicting decl is
2818         both explicit and builtin, print the location of the explicit one.
2820 2013-11-05  Tobias Burnus  <burnus@net-b.de>
2822         * c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
2823         c_parser_omp_distribute, c_parser_omp_teams,
2824         c_parser_omp_target, c_parser_omp_declare): Handle
2825         -fopenmp-simd.
2827 2013-11-03  Marek Polacek  <polacek@redhat.com>
2829         * c-decl.c (grokdeclarator): Add VLA instrumentation.
2831 2013-11-01  Jakub Jelinek  <jakub@redhat.com>
2833         * c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
2834         check_dup_generic at the end, unless remove is true.
2835         (c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
2836         remove = true;.
2837         (c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
2839 2013-10-31  Jakub Jelinek  <jakub@redhat.com>
2841         * c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
2842         with decl that is not pointer nor array.
2844 2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2846         * c-decl.c (finish_function): Added a call for insert_cilk_frame when
2847         a spawning function is found.
2848         * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
2849         (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
2850         (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
2851         * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
2852         case.
2853         (c_parser_postfix_expression): Added RID_CILK_SPAWN case.
2854         * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
2855         expr.
2856         (c_finish_return): Added a check to reject _Cilk_spawn in return
2857         expression.
2858         (build_cilk_spawn): New function.
2859         (build_cilk_sync): Likewise.
2860         * Makefile.in (c-decl.o): Added cilk.h in dependency list.
2861         
2862 2013-10-27  Tobias Burnus  <burnus@net-b.de>
2864         PR other/33426
2865         * c-parser.c (c_parser_while_statement, c_parser_while_statement,
2866         c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
2867         (c_parser_statement_after_labels): Update calls.
2869 2013-10-24  Tobias Burnus  <burnus@net-b.de>
2871         PR other/33426
2872         * c-parser.c (c_parser_pragma, c_parser_for_statement):
2873         Handle PRAGMA_IVDEP.
2874         (c_parser_statement_after_labels): Update call.
2876 2013-10-24  Marek Polacek  <polacek@redhat.com>
2878         * c-parser.c (c_parser_struct_declaration): Add a comment.
2879         (c_parser_declarator): Don't allow _Alignas here.
2881 2013-10-17  Andrew MacLeod  <amacleod@redhat.com>
2883         * c-parser.c: Include omp-low.h.
2884         * c-typeck.c: Likewise.
2886 2013-10-17  Marek Polacek  <polacek@redhat.com>
2888         PR c/58267
2889         * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
2890         Document syntax of the array-declarator.
2891         (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
2892         are not permitted.
2893         (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
2894         (c_parser_struct_declaration): Likewise.
2895         (c_parser_declarator): Likewise.
2896         (c_parser_direct_declarator_inner): Likewise.
2897         (c_parser_parameter_declaration): Likewise.
2898         (c_parser_type_name): Likewise.
2900 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
2902         * c-lang.h (current_omp_declare_target_attribute): New extern
2903         decl.
2904         * c-parser.c: Include c-lang.h.
2905         (struct c_parser): Change tokens to c_token *.
2906         Add tokens_buf field.  Change tokens_avail type to unsigned int.
2907         (c_parser_consume_token): If parser->tokens isn't
2908         &parser->tokens_buf[0], increment parser->tokens.
2909         (c_parser_consume_pragma): Likewise.
2910         (enum pragma_context): Add pragma_struct and pragma_param.
2911         (c_parser_external_declaration): Adjust
2912         c_parser_declaration_or_fndef caller.
2913         (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
2914         argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
2915         Adjust recursive call.
2916         (c_parser_struct_or_union_specifier): Use pragma_struct instead
2917         of pragma_external.
2918         (c_parser_parameter_declaration): Use pragma_param instead of
2919         pragma_external.
2920         (c_parser_compound_statement_nostart, c_parser_label,
2921         c_parser_for_statement): Adjust
2922         c_parser_declaration_or_fndef callers.
2923         (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
2924         it through to c_parser_conditional_expression.
2925         (c_parser_conditional_expression): Add omp_atomic_lhs argument,
2926         pass it through to c_parser_binary_expression.  Adjust recursive
2927         call.
2928         (c_parser_binary_expression): Remove prec argument, add
2929         omp_atomic_lhs argument instead.  Always start from PREC_NONE, if
2930         omp_atomic_lhs is non-NULL and one of the arguments of toplevel
2931         binop matches it, use build2 instead of parser_build_binary_op.
2932         (c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
2933         PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
2934         PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
2935         Handle pragma_struct and pragma_param the same as pragma_external.
2936         (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
2937         (c_parser_omp_variable_list): Parse array sections for
2938         OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
2939         (c_parser_omp_clause_collapse): Fully fold collapse expression.
2940         (c_parser_omp_clause_reduction): Handle user defined reductions.
2941         (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
2942         c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
2943         c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
2944         c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
2945         c_parser_omp_clause_depend, c_parser_omp_clause_map,
2946         c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
2947         c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
2948         c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
2949         (c_parser_omp_all_clauses): Add finish_p argument.  Don't call
2950         c_finish_omp_clauses if it is false.  Handle new OpenMP 4.0 clauses.
2951         (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
2952         present to c_finish_omp_atomic.  Handle OpenMP 4.0 atomic forms.
2953         (c_parser_omp_for_loop): Add CODE argument, pass it through
2954         to c_finish_omp_for.  Change last argument to cclauses,
2955         and adjust uses to grab parallel clauses from the array of all
2956         the split clauses.  Adjust c_parser_binary_expression,
2957         c_parser_declaration_or_fndef and c_finish_omp_for callers.
2958         (omp_split_clauses): New function.
2959         (c_parser_omp_simd): New function.
2960         (c_parser_omp_for): Add p_name, mask and cclauses arguments.
2961         Allow the function to be called also when parsing combined constructs,
2962         and call c_parser_omp_simd when parsing for simd.
2963         (c_parser_omp_sections_scope): If section-sequence doesn't start with
2964         #pragma omp section, require exactly one structured-block instead of
2965         sequence of statements.
2966         (c_parser_omp_sections): Add p_name, mask and cclauses arguments.
2967         Allow the function to be called also when parsing combined constructs.
2968         (c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
2969         Allow the function to be called also when parsing combined
2970         constructs.
2971         (c_parser_omp_taskgroup, c_parser_omp_cancel,
2972         c_parser_omp_cancellation_point, c_parser_omp_distribute,
2973         c_parser_omp_teams, c_parser_omp_target_data,
2974         c_parser_omp_target_update, c_parser_omp_target,
2975         c_parser_omp_declare_simd, c_finish_omp_declare_simd,
2976         c_parser_omp_declare_target, c_parser_omp_end_declare_target,
2977         c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
2978         (c_parser_omp_construct): Add p_name and mask vars.  Handle
2979         PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
2980         PRAGMA_OMP_TEAMS.  Adjust c_parser_omp_for, c_parser_omp_parallel
2981         and c_parser_omp_sections callers.
2982         (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
2983         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
2984         OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
2985         (OMP_PARALLEL_CLAUSE_MASK): Likewise.  Add OMP_CLAUSE_PROC_BIND.
2986         (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.  Add
2987         OMP_CLAUSE_DEPEND.
2988         (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
2989         OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
2990         OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
2991         OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
2992         OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
2993         * c-typeck.c: Include tree-inline.h.
2994         (c_finish_omp_cancel, c_finish_omp_cancellation_point,
2995         handle_omp_array_sections_1, handle_omp_array_sections,
2996         c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
2997         (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
2998         user defined reductions.
2999         (c_tree_equal): New function.
3000         * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
3001         c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
3002         c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
3003         c_check_omp_declare_reduction_r): New prototypes.
3004         * c-decl.c (current_omp_declare_target_attribute): New variable.
3005         (c_decl_attributes): New function.
3006         (start_decl, start_function): Use it instead of decl_attributes.
3007         (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
3008         c_omp_reduction_decl, c_omp_reduction_lookup,
3009         c_check_omp_declare_reduction_r): New functions.
3011 2013-09-25  Tom Tromey  <tromey@redhat.com>
3013         * Make-lang.in (c/gccspec.o): Remove.
3014         (CFLAGS-c/gccspec.o): New variable.
3015         (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
3016         (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
3017         (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
3019 2013-09-25  Tom Tromey  <tromey@redhat.com>
3021         * Make-lang.in (c/gccspec.o): Don't use subshell.
3023 2013-09-18  Marek Polacek  <polacek@redhat.com>
3025         PR sanitize/58443
3026         * c-typeck.c (build_binary_op): Properly honor -fsanitize options.
3027         Remove unnecessary check.
3029 2013-09-18  Marek Polacek  <polacek@redhat.com>
3031         PR sanitizer/58411
3032         * c-typeck.c (build_binary_op): Don't sanitize function if it has the
3033         no_sanitize_undefined attribute.
3035 2013-09-13  Kai Tietz  <ktietz@redhat.com>
3037         PR target/57848
3038         * c-decl.c (c_builtin_function_ext_scope): Remove
3039         wrong assumption that it is never called on prexisting
3040         symbol.
3042 2013-09-08  Joern Rennecke  <joern.rennecke@embecosm.com>
3044         * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
3046 2013-09-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3048         * c-objc-common.c (c_tree_printer): Tidy.
3050 2013-08-30  Marek Polacek  <polacek@redhat.com>
3052         * c-typeck.c (build_binary_op): Add division by zero and shift
3053         instrumentation.
3055 2013-08-26  Joern Rennecke  <joern.rennecke@embecosm.com>
3056             Joseph Myers  <joseph@codesourcery.com>
3058         PR c/35649
3059         * c-typeck.c (c_common_type): Prefer double_type_node over
3060         other REAL_TYPE types with the same precision.
3061         (convert_arguments): Likewise.
3063 2013-08-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3065         * c-objc-common.c (c_tree_printer): Document the nature of the cast.
3066         (c_initialize_diagnostics): Call a destructor for the early printer.
3068 2013-08-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3070         * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
3071         printer initialization.
3073 2013-08-19  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3075         PR c/57490
3076         * c-array-notation.c (fix_conditional_array_notations_1): Added a
3077         check for truth values.
3078         (expand_array_notation_exprs): Added truth values case.  Removed an
3079         unwanted else.  Added for-loop to walk through subtrees in default
3080         case.
3082 2013-08-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3084         * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
3086 2013-07-23  Joseph Myers  <joseph@codesourcery.com>
3088         * c-parser.c (struct c_generic_association): Fix typo.
3090 2013-07-23  Tom Tromey  <tromey@redhat.com>
3091             Joseph Myers  <joseph@codesourcery.com>
3093         * c-parser.c (struct c_generic_association): New.
3094         (c_generic_association_d): New typedef.
3095         (c_parser_generic_selection): New function.
3096         (c_parser_postfix_expression): Handle RID_GENERIC.
3098 2013-07-13  Jason Merrill  <jason@redhat.com>
3100         PR c++/57793
3101         * c-decl.c (finish_struct): Check for too-large class.
3103 2013-07-04  Joern Rennecke  <joern.rennecke@embecosm.com>
3105         PR c/57821
3106         * c-typeck.c (set_init_index): When folding, check for index overflow.
3108 2013-06-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3110         * c-parser.c (c_parser_array_notation): Removed rejection of array
3111         notations in an array of function pointers.
3113 2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3115         * c-array-notation.c (make_triplet_val_inv): New function.
3116         (create_cmp_incr): Likewise.
3117         (create_array_refs): Likewise.
3118         (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
3119         Also modularized common parts between functions and called the function.
3120         (build_array_notation_expr): Likewise.
3121         (fix_conditional_array_notations_1): Likewise.
3122         (fix_array_notation_expr): Likewise.
3123         (fix_array_notation_call_expr): Likewise.
3125 2013-06-18  Marek Polacek  <polacek@redhat.com>
3127         PR c/57630
3128         * c-decl.c (check_for_loop_decls): Improve diagnostics messages.
3130 2013-06-12  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3132         * c-array-notation.c (build_array_notation_expr): Reject array notation
3133         mismatch between LHS and RHS even inside a call_expr.  Also, removed
3134         a couple while statements that were dead code.
3136 2013-06-10  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3138         * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
3139         excessive precision expressions in function parameters.  Also removed
3140         couple unwanted while statements.
3142 2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3144         * c-array-notation.c (expand_array_notation_exprs): Added
3145         ARRAY_NOTATION_REF case.
3146         
3147 2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3149         * c-array-notation.c (length_mismatch_in_expr_p): Moved this
3150         function to c-family/array-notation-common.c.
3151         (is_cilkplus_reduce_builtin): Likewise.
3152         (find_rank): Likewise.
3153         (extract_array_notation_exprs): Likewise.
3154         (replace_array_notations): Likewise.
3155         (find_inv_trees): Likewise.
3156         (replace_inv_trees): Likewise.
3157         (contains_array_notation_expr): Likewise.
3158         (find_correct_array_notation_type): Likewise.
3159         (replace_invariant_exprs): Initialized additional_tcodes to NULL.
3160         (struct inv_list): Moved this to c-family/array-notation-common.c.
3161         * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
3162         
3163 2013-06-05  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3165         * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
3166         reduction functions outside the for-loop.  Added a check if the fundecl
3167         is non-NULL.  Finally, removed an unwanted if-statement, and made the
3168         body unconditional.
3170 2013-06-03  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3172         * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
3173         condition of the if-statement matches the rank of else-block and then-
3174         block when array notations are used.
3175         * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
3176         expression after the entire function body is parsed.
3177         (c_parser_expr_no_commas): Delayed creating array notation expressions
3178         to the end of function parsing.
3179         * c-array-notation.c (fix_conditional_array_notations_1): Expanded the
3180         whole if-statement instead of just the condition.
3181         (expand_array_notation_exprs): Added MODIFY_EXPR case.  
3183 2013-06-03  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3185         PR c/57474
3186         * c-array-notation.c (build_array_notation_expr): Initialized rhs_length
3187         array to NULL_TREE if they are unused.  Also added a check for the
3188         field to be NULL before its fields are used in future.
3189         
3190 2013-05-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3192         PR bootstrap/57450
3193         * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
3194         (build_array_notation_expr): Likewise.
3196 2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3198         * c-typeck.c (build_array_ref): Added a check to see if array's
3199         index is greater than one.  If true, then emit an error.
3200         (build_function_call_vec): Exclude error reporting and checking
3201         for builtin array-notation functions.
3202         (convert_arguments): Likewise.
3203         (c_finish_return): Added a check for array notations as a return
3204         expression.  If true, then emit an error.
3205         (c_finish_loop): Added a check for array notations in a loop
3206         condition.  If true then emit an error.
3207         (lvalue_p): Added a ARRAY_NOTATION_REF case.
3208         (build_binary_op): Added a check for array notation expr inside
3209         op1 and op0.  If present, we call another function to find correct
3210         type.
3211         * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
3212         * c-parser.c (c_parser_compound_statement): Check if array
3213         notation code is used in tree, if so, then transform them into
3214         appropriate C code.
3215         (c_parser_expr_no_commas): Check if array notation is used in LHS
3216         or RHS, if so, then build array notation expression instead of
3217         regular modify.
3218         (c_parser_postfix_expression_after_primary): Added a check for
3219         colon(s) after square braces, if so then handle it like an array
3220         notation.  Also, break up array notations in unary op if found.
3221         (c_parser_direct_declarator_inner): Added a check for array
3222         notation.
3223         (c_parser_compound_statement): Added a check for array notation in
3224         a stmt.  If one is present, then expand array notation expr.
3225         (c_parser_if_statement): Likewise.
3226         (c_parser_switch_statement): Added a check for array notations in
3227         a switch statement's condition.  If true, then output an error.
3228         (c_parser_while_statement): Similarly, but for a while.
3229         (c_parser_do_statement): Similarly, but for a do-while.
3230         (c_parser_for_statement): Similarly, but for a for-loop.
3231         (c_parser_unary_expression): Check if array notation is used in a
3232         pre-increment or pre-decrement expression.  If true, then expand
3233         them.
3234         (c_parser_array_notation): New function.
3235         * c-array-notation.c: New file.
3236         * c-tree.h (is_cilkplus_reduce_builtin): Protoize.
3237         
3238 2013-05-23  Mike Stump  <mikestump@comcast.net>
3240         * c-typeck.c (convert_for_assignment): Handle references to memory
3241         spaces better.
3243 2013-05-16  Jason Merrill  <jason@redhat.com>
3245         * Make-lang.in (cc1$(exeext)): Use link mutex.
3247 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
3249         * c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
3250         to simply use OPT_Wpointer_arith.
3251         (build_unary_op): Likewise.
3253 2013-04-03  Jakub Jelinek  <jakub@redhat.com>
3255         PR c/19449
3256         * c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
3257         argument.  If set, or it temporarily for parsing of the first
3258         argument into force_folding_builtin_constant_p.
3259         (c_parser_postfix_expression): Adjust callers.
3261 2013-03-21  Richard Biener  <rguenther@suse.de>
3263         * c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
3264         instead of DECL_DEBUG_EXPR_IS_FROM.  Guard properly.
3266 2013-02-12  Marek Polacek  <polacek@redhat.com>
3268         PR c/44938
3269         * c-parser.c (c_parser_postfix_expression_after_primary): Initialize
3270         origtypes to NULL.
3272 2013-01-24  Jakub Jelinek  <jakub@redhat.com>
3274         PR c/56078
3275         * c-typeck.c (set_nonincremental_init_from_string): If
3276         constructor_max_index is NULL, treat it as if tree_int_cst_lt
3277         returned false.
3278         (process_init_element): Likewise.
3280 2012-12-20  Jakub Jelinek  <jakub@redhat.com>
3282         PR c++/55619
3283         * c-parser.c (c_parser_asm_operands): Remove CONVERT_P
3284         argument, don't call default_function_array_conversion
3285         nor c_fully_fold here.
3286         (c_parser_asm_statement): Adjust callers.
3287         * c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
3288         and outputs here, and call default_function_array_conversion
3289         on inputs that don't need to be addressable.
3291 2012-12-18  Jakub Jelinek  <jakub@redhat.com>
3293         PR c/39464
3294         * c-typeck.c (convert_for_assignment): For -Wpointer-sign
3295         warning require that both c_common_unsigned_type as well as
3296         c_common_signed_type is the same for both mvl and mvr types.
3298 2012-11-16  Diego Novillo  <dnovillo@google.com>
3300         Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
3302         * c-common.c: Use new vec API in vec.h.
3303         * c-common.h: Likewise.
3304         * c-gimplify.c: Likewise.
3305         * c-pragma.c: Likewise.
3306         * c-pretty-print.c: Likewise.
3307         * c-pretty-print.h: Likewise.
3308         * c-semantics.c: Likewise.
3309         * c-decl.c: Likewise.
3310         * c-parser.c: Likewise.
3311         * c-tree.h: Likewise.
3312         * c-typeck.c: Likewise.
3314 2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
3316         PR c++/54930
3317         * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.
3319 2012-10-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3321         PR c/53066
3322         * c-decl.c (warn_if_shadowing): Do not warn if a variable
3323         shadows a function, unless the variable is a function or a
3324         pointer-to-function.
3326 2012-10-12  Jakub Jelinek  <jakub@redhat.com>
3328         PR c/54381
3329         * c-parser.c (struct c_tree_loc_pair): Removed.
3330         (c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
3331         add location_t * and tree * arguments, fill in array of 3
3332         sizeof_arg trees and corresponding locs.
3333         (c_parser_attributes, c_parser_objc_keywordexpr): Adjust
3334         c_parser_expr_list callers.
3335         (c_parser_postfix_expression_after_primary): Likewise.  Pass
3336         array of 3 sizeof_arg trees and locs (corresponding to first
3337         3 arguments) to sizeof_pointer_memaccess_warning.
3339 2012-10-09  Lawrence Crowl  <crowl@google.com>
3341         * Make-lang.in (c-decl.o): Add dependence on hash-table.h.
3342         * c-decl.c (detect_field_duplicates_hash): Change to new type-safe
3343         hash table.
3345 2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
3347         PR c++/54194
3348         * c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
3349         call.
3351 2012-10-09  Marc Glisse  <marc.glisse@inria.fr>
3353         PR c++/54427
3354         * c-typeck.c: Include c-common.h.
3355         (enum stv_conv): Moved to c-common.h.
3356         (scalar_to_vector): Moved to c-common.c.
3357         (build_binary_op): Adapt to scalar_to_vector's new prototype.
3358         * Make-lang.in: c-typeck.c depends on c-common.h.
3360 2012-10-04  Arnaud Charlet  <charlet@adacore.com>
3362         * c-decl.c (c_write_global_declarations): Fix handling of
3363         -fdump-ada-spec*.
3365 2012-09-30  Sharad Singhai  <singhai@google.com>
3367         * c-decl.c (c_write_global_declarations): Use a different method
3368         to determine if the dump has ben initialized.
3370 2012-09-14  Joseph Myers  <joseph@codesourcery.com>
3372         PR c/54552
3373         * c-typeck.c (c_cast_expr): When casting to a type requiring
3374         C_MAYBE_CONST_EXPR to be created, pass the inner expression to
3375         c_fully_fold first.
3377 2012-09-14  Joseph Myers  <joseph@codesourcery.com>
3379         PR c/54103
3380         * c-typeck.c (build_unary_op): Pass original argument of
3381         TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
3382         any C_MAYBE_CONST_EXPR, if it has integer operands.
3383         (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
3384         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
3385         to c_objc_common_truthvalue_conversion, then remove any
3386         C_MAYBE_CONST_EXPR, if they have integer operands.  Use
3387         c_objc_common_truthvalue_conversion not
3388         c_common_truthvalue_conversion.
3389         (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
3390         call note_integer_operands for arguments with integer operands
3391         that are not integer constants.
3393 2012-09-13  Jakub Jelinek  <jakub@redhat.com>
3395         PR c/54559
3396         * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
3397         COMPLEX_TYPE with in_late_binary_op set temporarily to true.
3399 2012-08-31  Jakub Jelinek  <jakub@redhat.com>
3401         PR c/54428
3402         * c-convert.c (convert): Don't call fold_convert_loc if
3403         TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
3404         is a COMPLEX_EXPR.  Remove TYPE_MAIN_VARIANT check from
3405         COMPLEX_TYPE -> COMPLEX_TYPE conversion.
3407 2012-08-24  Jakub Jelinek  <jakub@redhat.com>
3409         PR c/54355
3410         * c-decl.c (c_parser_label): Pass true as nested and fix up comments
3411         for nested and empty_ok arguments in the call to
3412         c_parser_declaration_or_fndef.
3414 2012-08-17  Jakub Jelinek  <jakub@redhat.com>
3416         * c-tree.h (c_last_sizeof_arg): Declare.
3417         * c-parser.c (struct c_tree_loc_pair): New type.
3418         (c_parser_expr_list): Add sizeof_arg argument.  Fill it in if
3419         non-NULL.
3420         (c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
3421         (c_parser_postfix_expression_after_primary): Likewise.  Call
3422         sizeof_pointer_memaccess_warning if needed.
3423         (sizeof_ptr_memacc_comptypes): New function.
3424         * c-typeck.c (c_last_sizeof_arg): New global variable.
3425         (c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
3427 2012-07-24  Uros Bizjak  <ubizjak@gmail.com>
3429         * c-lang.h (lang_decl): Add variable_size GTY option.
3431 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
3433         * c-decl.c: Include dumpfile.h instead of tree-dump.h.
3434         * Make-lang.in: Fix dependencies.
3436 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
3438         * Make-lang.in: New file, rules migrated from gcc/Makefile.in
3439         and add language Makefile hooks.
3440         * config-lang.in: New file.
3441         * c-config-lang.in: Moved from gcc/config-lang.in to here, and
3442         add the required "normal" config-lang.in rules.
3443         * c-lang.h: Moved from gcc/ to here.
3444         * c-tree.h: Likewise.
3445         * c-objc-common.c: Likewise.
3446         * c-objc-common.h: Likewise.
3447         * c-typeck.c: Likewise.
3448         * c-convert.c: Likewise.
3449         * c-lang.c: Likewise.
3450         * c-aux-info.c: Likewise.
3451         * c-errors.c: Likewise.
3452         * gccspec.c: Likewise.
3453         * c-decl.c: Likewise.  Include gt-c-c-decl.h, not gt-c-decl.h.
3454         * c-parser.c: Likewise.  Include gt-c-c-parser.h, not gt-c-parser.h.
3456 Copyright (C) 2012-2016 Free Software Foundation, Inc.
3458 Copying and distribution of this file, with or without modification,
3459 are permitted in any medium without royalty provided the copyright
3460 notice and this notice are preserved.