]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c/ChangeLog
PR middle-end/100574 - ICE in size_remaining, at builtins.c
[thirdparty/gcc.git] / gcc / c / ChangeLog
CommitLineData
0ff3a0f2
GA
12021-05-12 Marcel Vollweiler <marcel@codesourcery.com>
2
3 * c-parser.c (c_parser_omp_clause_map): Support map-type-modifier
4 'close'.
5
aa891c56
GA
62021-05-10 Martin Liska <mliska@suse.cz>
7
8 * c-aux-info.c (affix_data_type): Use startswith
9 function instead of strncmp.
10 * c-typeck.c (build_function_call_vec): Likewise.
11 * gimple-parser.c (c_parser_gimple_parse_bb_spec): Likewise.
12
62d87a32
GA
132021-05-07 Eric Botcazou <ebotcazou@adacore.com>
14
15 * c-typeck.c (build_unary_op) <ADDR_EXPR>: Do not issue an error
16 on the address of a pointer field in a record with reverse SSO.
17
99e8df7a
GA
182021-05-04 Tobias Burnus <tobias@codesourcery.com>
19
20 * c-typeck.c (c_finish_omp_clauses): Accept float + complex
21 for || and && reductions.
22
3c8e539d
GA
232021-04-29 Joseph Myers <joseph@codesourcery.com>
24
25 * c-typeck.c (function_types_compatible_p): For C2X, treat
26 unprototyped function as compatible with non-variadic prototyped
27 function even if some argument types are changed by the default
28 argument promotions.
29
ee351f7f
GA
302021-04-15 Martin Sebor <msebor@redhat.com>
31
32 PR c/99420
33 PR c/99972
34 * c-decl.c (pushdecl): Always propagate type attribute.
35
362021-04-15 Richard Sandiford <richard.sandiford@arm.com>
37
38 PR c/98852
39 * c-typeck.c (c_common_type): Do not drop attributes that
40 affect type identity.
41
1d54b138
GA
422021-04-10 Jakub Jelinek <jakub@redhat.com>
43
44 PR c/99990
45 * c-decl.c (finish_decl): Don't overwrite TREE_TYPE of
46 error_mark_node.
47
4493b1c1
GA
482021-03-25 Jakub Jelinek <jakub@redhat.com>
49
50 PR c++/99565
51 * c-typeck.c (build_conditional_expr): Pass OEP_ADDRESS_OF_SAME_FIELD
52 to operand_equal_p.
53
5f256a70
GA
542021-03-19 Jakub Jelinek <jakub@redhat.com>
55
56 PR c/99588
57 * c-typeck.c (mark_exp_read): Recognize what build_atomic_assign
58 with modifycode NOP_EXPR produces and mark the _Atomic var as read
59 if found.
60 (build_atomic_assign): For modifycode of NOP_EXPR, use COMPOUND_EXPRs
61 rather than STATEMENT_LIST. Otherwise call mark_exp_read on lhs.
62 Set TREE_SIDE_EFFECTS on the TARGET_EXPR.
63
3c5b6d24
GA
642021-03-15 Tobias Burnus <tobias@codesourcery.com>
65
66 PR c++/99509
67 * c-decl.c (finish_decl): For 'omp declare target implicit' vars,
68 ensure that the varpool node is marked as offloadable.
69
ceae9533
GA
702021-03-05 Tobias Burnus <tobias@codesourcery.com>
71
72 PR c/99137
73 * c-parser.c (c_parser_oacc_clause_async): Reject comma expressions.
74
4028d01a
GA
752021-02-24 Martin Sebor <msebor@redhat.com>
76
77 PR middle-end/97172
78 * c-decl.c (free_attr_access_data): Clear attribute arg spec.
79
bf81237e
GA
802021-02-18 Jakub Jelinek <jakub@redhat.com>
81
82 PR c/99136
83 * c-typeck.c (c_finish_return): Don't wrap retval into
84 EXCESS_PRECISION_EXPR in functions that return void.
85
0c5cdb31
GA
862021-02-11 Marek Polacek <polacek@redhat.com>
87
88 * c-parser.c (c_parser_if_statement): Use vec_free.
89
a19dd5e6
GA
902021-02-04 Martin Sebor <msebor@redhat.com>
91
92 PR c/97882
93 * c-decl.c (locate_old_decl): Add type to diagnostic output.
94 (diagnose_mismatched_decls): Same.
95 (start_function): Introduce temporaries for better readability.
96 * c-typeck.c (comptypes_internal): Only consider complete enum
97 types in comparisons with integers.
98
f7884fb1
GA
992021-02-01 Martin Sebor <msebor@redhat.com>
100
101 PR middle-end/97172
102 * c-decl.c (free_attr_access_data): New function.
103 (c_parse_final_cleanups): Call free_attr_access_data.
104
59cf67d1
GA
1052021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
106
107 * c-parser.c (c_parser_omp_clause_detach): New.
108 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH clause.
109 (OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH.
110 * c-typeck.c (c_finish_omp_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH
111 clause. Prevent use of detach with mergeable and overriding the
112 data sharing mode of the event handle.
113
2f7f0d32
GA
1142021-01-15 Jakub Jelinek <jakub@redhat.com>
115
116 * c-typeck.c (c_finish_omp_clauses): For reduction build array with
117 unqualified element type and then call c_build_qualified_type on the
118 ARRAY_TYPE.
119
7d187e4f
GA
1202021-01-07 Richard Biener <rguenther@suse.de>
121
122 * gimple-parser.c (c_parser_gimple_compound_statement): Only
123 reallocate loop array if it is too small.
124
eefe499f
GA
1252020-12-16 Martin Uecker <muecker@gwdg.de>
126
127 PR c/98047
128 * c-typeck.c (build_modify_expr): Drop qualifiers.
129
1302020-12-16 Martin Uecker <muecker@gwdg.de>
131
132 PR c/98260
133 * c-parser.c (c_parser_expression): Look into
134 nop expression when marking expressions as read.
135
d52945ce
GA
1362020-12-14 Martin Liska <mliska@suse.cz>
137
138 PR sanitizer/98204
139 * c-typeck.c (pointer_diff): Do not emit a top-level
140 sanitization.
141 (build_binary_op): Likewise.
142
ca2bd949
GA
1432020-12-09 Tobias Burnus <tobias@codesourcery.com>
144
145 * c-parser.c (c_parser_omp_allocate): New.
146 (c_parser_omp_construct): Call it.
147
1482020-12-09 Richard Biener <rguenther@suse.de>
149
150 PR c/98200
151 * gimple-parser.c (c_parser_gimple_postfix_expression): Return
152 early on error.
153
bc8a7013
GA
1542020-12-07 Martin Uecker <muecker@gwdg.de>
155
156 PR c/97981
157 * c-typeck.c (convert_lvalue_to_rvalue): Move the code
158 that drops qualifiers to the end of the function.
159
d48df6f2
GA
1602020-11-26 Martin Uecker <muecker@gwdg.de>
161
162 PR c/65455
163 PR c/92935
164 * c-parser.c (c_parser_declaration_or_fndef): Remove
165 redundant code to drop qualifiers of _Atomic types for __auto_type.
166 (c_parser_typeof_specifier): Do not drop qualifiers of _Atomic
167 types for __typeof__.
168
1e2c9a27
GA
1692020-11-24 Jakub Jelinek <jakub@redhat.com>
170
171 PR c/97958
172 * c-parser.c (c_parser_binary_expression): For omp atomic binary
173 expressions, use make_node instead of build2 to avoid checking build2
174 performs.
175
8e6198d0
GA
1762020-11-23 Joseph Myers <joseph@codesourcery.com>
177
178 PR c/95630
179 * c-typeck.c (build_binary_op): Use pedwarn_c99 with OPT_Wpedantic
180 for comparisons of complete and incomplete pointers.
181
7a97e2fc
GA
1822020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
183
184 * c-aux-info.c (gen_type): Support opaque types.
185
82e5048e
GA
1862020-11-20 Martin Sebor <msebor@redhat.com>
187
188 PR middle-end/97879
189 * c-decl.c (start_function): Set ATTR_FLAG_INTERNAL in flags.
190
1912020-11-20 Jakub Jelinek <jakub@redhat.com>
192
193 PR other/97911
194 * Make-lang.in (c.serial): Change from goal to a variable.
195 (.PHONY): Drop c.serial.
196
1972020-11-20 Martin Uecker <muecker@gwdg.de>
198
199 * c-typeck.c (convert_lvalue_to_rvalue): Drop qualifiers.
200
d62586ee
GA
2012020-11-19 Jakub Jelinek <jakub@redhat.com>
202
203 PR c/97860
204 * c-decl.c (get_parm_array_spec): Bail out of nelts is
205 error_operand_p.
206
25bb75f8
GA
2072020-11-18 Jakub Jelinek <jakub@redhat.com>
208
209 * Make-lang.in (c.serial): New goal.
210 (.PHONY): Add c.serial c.prev.
211 (cc1$(exeext)): Call LINK_PROGRESS.
212
77f67db2
GA
2132020-11-13 Vladimir N. Makarov <vmakarov@redhat.com>
214
215 * c-parser.c (c_parser_asm_statement): Parse outputs for asm
216 goto too.
217 * c-typeck.c (build_asm_expr): Remove an assert checking output
218 absence for asm goto.
219
2202020-11-13 Jakub Jelinek <jakub@redhat.com>
221
222 * c-typeck.c (c_finish_omp_clauses): Don't clear
223 OMP_CLAUSE_REDUCTION_INSCAN unless reduction_seen == -2.
224
2252020-11-13 Iain Sandoe <iain@sandoe.co.uk>
226
227 PR objc/77404
228 * c-parser.c (c_parser_objc_class_definition): Pass the
229 location of the class name to the interface declaration.
230
bb622641
GA
2312020-11-10 Strager Neds <strager.nds@gmail.com>
232
233 * c-decl.c (merge_decls): Use new overload of
234 set_decl_section_name.
235
2362020-11-10 Chung-Lin Tang <cltang@codesourcery.com>
237
238 * c-parser.c (c_parser_omp_target_data): Add use of
239 new c_omp_adjust_map_clauses function. Add GOMP_MAP_ATTACH_DETACH as
240 handled map clause kind.
241 (c_parser_omp_target_enter_data): Likewise.
242 (c_parser_omp_target_exit_data): Likewise.
243 (c_parser_omp_target): Likewise.
244 * c-typeck.c (handle_omp_array_sections): Adjust COMPONENT_REF case to
245 use GOMP_MAP_ATTACH_DETACH map kind for C_ORT_OMP region type.
246 (c_finish_omp_clauses): Adjust bitmap checks to allow struct decl and
247 same struct field access to co-exist on OpenMP construct.
248
2da7ee05
GA
2492020-11-07 Martin Uecker <muecker@gwdg.de>
250
251 * c-parser.c (c_parser_label): Implement mixing of labels and code.
252 (c_parser_all_labels): Likewise.
253
44cab2d8
GA
2542020-11-06 Iain Sandoe <iain@sandoe.co.uk>
255
256 * c-parser.c (c_parser_objc_at_property_declaration):
257 Improve parsing fidelity. Associate better location info
258 with @property attributes. Clean up the interface to
259 objc_add_property_declaration ().
260
2612020-11-06 Nathan Sidwell <nathan@acm.org>
262
263 * c-decl.c (diagnose_mismatched_decls): Rename
264 DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
265 (warn_if_shadowing, implicitly_declare, names_builtin_p)
266 (collect_source_refs): Likewise.
267 * c-typeck.c (inform_declaration, inform_for_arg)
268 (convert_for_assignment): Likewise.
269
2702020-11-06 Tobias Burnus <tobias@codesourcery.com>
271
272 * c-parser.c (c_parser_omp_atomic): Add openacc parameter and update
273 OpenACC matching.
274 (c_parser_omp_construct): Update call.
275
35c125cb
GA
2762020-11-04 Jakub Jelinek <jakub@redhat.com>
277
278 PR c++/97670
279 * c-typeck.c (c_finish_omp_clauses): Look through array reductions to
280 find underlying decl to clear in the aligned_head bitmap.
281
2822020-11-04 Joseph Myers <joseph@codesourcery.com>
283
284 * c-decl.c (handle_nodiscard_attribute): New.
285 (std_attribute_table): Add nodiscard.
286 * c-parser.c (c_parser_std_attribute): Expect argument to
287 nodiscard attribute to be a string. Do not special-case ignoring
288 nodiscard.
289 * c-typeck.c (maybe_warn_nodiscard): New.
290 (build_compound_expr, emit_side_effect_warnings): Call
291 maybe_warn_nodiscard.
292 (c_process_expr_stmt, c_finish_stmt_expr): Also call
293 emit_side_effect_warnings if warn_unused_result.
294
4f0606fe
GA
2952020-10-29 Asher Gordon <AsDaGo@posteo.net>
296
297 * c-typeck.c (free_all_tagged_tu_seen_up_to): Replace free
298 with XDELETE.
299 (finish_init): Likewise.
300 (pop_init_level): Likewise.
301
e93aae4a
GA
3022020-10-28 Joseph Myers <joseph@codesourcery.com>
303
304 * c-decl.c (store_parm_decls_newstyle): Use pedwarn_c11 not
305 error_at for omitted parameter name.
306
3072020-10-28 Jakub Jelinek <jakub@redhat.com>
308
309 * c-parser.c (c_parser_omp_clause_name): Handle allocate.
310 (c_parser_omp_clause_allocate): New function.
311 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_ALLOCATE.
312 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
313 OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK,
314 OMP_TASK_CLAUSE_MASK, OMP_TASKGROUP_CLAUSE_MASK,
315 OMP_DISTRIBUTE_CLAUSE_MASK, OMP_TEAMS_CLAUSE_MASK,
316 OMP_TARGET_CLAUSE_MASK, OMP_TASKLOOP_CLAUSE_MASK): Add
317 PRAGMA_OMP_CLAUSE_ALLOCATE.
318 * c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_ALLOCATE.
319
89bb01e7
GA
3202020-10-27 Joseph Myers <joseph@codesourcery.com>
321
322 * c-parser.c (c_parser_std_attribute_specifier): Allow duplicate
323 standard attributes.
324
efe71fcc
GA
3252020-10-23 Marek Polacek <polacek@redhat.com>
326
327 PR c++/91741
328 * c-parser.c (c_parser_binary_expression): Implement -Wsizeof-array-div.
329 (c_parser_postfix_expression): Set PAREN_SIZEOF_EXPR.
330 (c_parser_expr_list): Handle PAREN_SIZEOF_EXPR like SIZEOF_EXPR.
331 * c-tree.h (char_type_p): Declare.
332 * c-typeck.c (char_type_p): No longer static.
333
3342020-10-23 Martin Sebor <msebor@redhat.com>
335
336 PR middle-end/97552
337 * c-decl.c (get_parm_array_spec): Handle static VLA parameters.
338
2fe5b7d1
GA
3392020-09-19 Martin Sebor <msebor@redhat.com>
340
341 PR c/50584
342 * c-decl.c (lookup_last_decl): Define new function.
343 (c_decl_attributes): Call it.
344 (start_decl): Add argument and use it.
345 (finish_decl): Call build_attr_access_from_parms and decl_attributes.
346 (get_parm_array_spec): Define new function.
347 (push_parm_decl): Call get_parm_array_spec.
348 (start_function): Call warn_parm_array_mismatch. Build attribute
349 access and add it to current function.
350 * c-parser.c (c_parser_declaration_or_fndef): Diagnose mismatches
351 in forms of array parameters.
352 * c-tree.h (start_decl): Add argument.
353
3542020-09-19 Sandra Loosemore <sandra@codesourcery.com>
355
356 * c-decl.c (c_break_label, c_cont_label): Delete, and replace
357 with...
358 (in_statement): New.
359 (start_function): Adjust for above change.
360 (c_push_function_context, c_pop_function_context): Likewise.
361 * c-lang.h (struct language_function): Likewise.
362 * c-objc-common.h (LANG_HOOKS_BLOCK_MAY_FALLTHRU): Define.
363 * c-parser.c (objc_foreach_break_label, objc_foreach_continue_label):
364 New.
365 (c_parser_statement_after_labels): Adjust calls to c_finish_bc_stmt.
366 (c_parser_switch_statement): Adjust break/switch context handling
367 and calls to renamed functions.
368 (c_parser_while_statement): Adjust break/switch context handling and
369 build a WHILE_STMT.
370 (c_parser_do_statement): Ditto, with DO_STMT respectively.
371 (c_parser_for_statement): Ditto, with FOR_STMT respectively.
372 (c_parser_omp_for_loop): Adjust break/switch context handling.
373 * c-tree.h (c_break_label, c_cont_label): Delete.
374 (IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
375 (IN_OMP_BLOCK, IN_OMP_FOR, IN_OBJC_FOREACH): Define.
376 (in_statement, switch_statement_break_seen_p): Declare.
377 (c_start_case, c_finish_case): Renamed to...
378 (c_start_switch, c_finish_switch).
379 (c_finish_bc_stmt): Adjust arguments.
380 * c-typeck.c (build_function_call_vec): Don't try to print
381 statements with %qE format.
382 (struct c_switch): Rename switch_expr field to switch_stmt.
383 Add break_stmt_seen_p field.
384 (c_start_case): Rename to c_start_switch. Build a SWITCH_STMT
385 instead of a SWITCH_EXPR. Update for changes to struct c_switch.
386 (do_case): Update for changes to struct c_switch.
387 (c_finish_case): Rename to c_finish_switch. Update for changes to
388 struct c_switch and change of representation from SWITCH_EXPR to
389 SWITCH_STMT.
390 (c_finish_loop): Delete.
391 (c_finish_bc_stmt): Update to reflect changes to break/continue
392 state representation. Build a BREAK_STMT or CONTINUE_STMT instead
393 of a GOTO_EXPR except for objc foreach loops.
394
e1a4a8a0
GA
3952020-09-01 Jakub Jelinek <jakub@redhat.com>
396
397 PR c++/96867
398 * c-typeck.c (handle_omp_array_sections_1): Test C_ARRAY_PARAMETER
399 only on PARM_DECLs.
400
8f7ea26a
GA
4012020-08-28 Martin Sebor <msebor@redhat.com>
402
403 PR c/96596
404 * c-decl.c (match_builtin_function_types): Avoid dealing with erroneous
405 argument type.
406
8b394f01
GA
4072020-08-27 Martin Liska <mliska@suse.cz>
408
409 * gimple-parser.c (c_parser_gimple_compound_statement): Set exact argument of a vector
410 growth function to true.
411
db0f6efe
GA
4122020-08-25 Tobias Burnus <tobias@codesourcery.com>
413
414 PR c/96678
415 * c-typeck.c (handle_omp_array_sections_1): Talk about
416 array function parameter in the error message.
417
5c265693
GA
4182020-08-18 Jakub Jelinek <jakub@redhat.com>
419
420 PR c/96571
421 * c-parser.c (c_parser_generic_selection): Change match_found from bool
422 to int, holding index of the match. Call mark_exp_read on the selector
423 expression and on expressions other than the selected one.
424
4967ca2f
GA
4252020-08-01 Richard Sandiford <richard.sandiford@arm.com>
426
427 PR c/96377
428 * c-typeck.c (process_init_element): Split test for whether to
429 recurse into a record, union or array into...
430 (initialize_elementwise_p): ...this new function. Don't recurse
431 into a vector type if the initialization value is also a vector.
432
48cc2e46
GA
4332020-07-31 Richard Biener <rguenther@suse.de>
434
435 PR debug/96383
436 * c-objc-common.h (LANG_HOOKS_FINALIZE_EARLY_DEBUG):
437 Define to c_common_finalize_early_debug.
438
3ea9abca
GA
4392020-07-22 Tobias Burnus <tobias@codesourcery.com>
440
441 * c-parser.c (c_parser_omp_clause_hint): Require nonnegative hint clause.
442 (c_parser_omp_critical): Permit hint(0) clause without named critical.
443 (c_parser_omp_construct): Don't assert if error_mark_node is returned.
444
30430061
GA
4452020-07-21 Sunil K Pandey <skpgkp2@gmail.com>
446
447 PR target/95237
448 * c-decl.c (finish_decl): Call target hook
449 lower_local_decl_alignment to lower local decl alignment.
450
3f8ca9cb
GA
4512020-07-09 Julian Brown <julian@codesourcery.com>
452 Thomas Schwinge <thomas@codesourcery.com>
453
454 PR middle-end/95270
455 * c-typeck.c (c_finish_omp_clauses): Set OMP_CLAUSE_SIZE (bias) to zero
456 for standalone attach/detach clauses.
457
a82c4c4c 4582020-07-08 Eric Botcazou <ebotcazou@adacore.com>
50873cc5
GA
459
460 * c-typeck.c (convert_for_assignment): If -Wscalar-storage-order is
461 set, warn for conversion between pointers that point to incompatible
462 scalar storage orders.
463
f60ee68d
GA
4642020-07-07 Kaipeng Zhou <zhoukaipeng3@huawei.com>
465
466 * c-parser.c (c_parser_statement_after_labels): Pass correct
467 parameters to c_parser_do_statement.
468
56638b9b
GA
4692020-06-16 Jakub Jelinek <jakub@redhat.com>
470
471 * c-parser.c (c_parser_expr_no_commas): Save, clear and restore
472 c_in_omp_for.
473 (c_parser_omp_for_loop): Set c_in_omp_for around some calls to avoid
474 premature c_fully_fold. Defer explicit c_fully_fold calls to after
475 c_finish_omp_for.
476 * c-tree.h (c_in_omp_for): Declare.
477 * c-typeck.c (c_in_omp_for): Define.
478 (build_modify_expr): Avoid c_fully_fold if c_in_omp_for.
479 (digest_init): Likewise.
480 (build_binary_op): Likewise.
481
4822020-06-16 Jakub Jelinek <jakub@redhat.com>
483
484 * c-parser.c (c_parser_omp_clause_schedule): Reject modifier separated
485 from kind by comma rather than colon.
486
1a59f3db
GA
4872020-06-05 Mark Wielaard <mark@klomp.org>
488
489 * c-decl.c (implicit_decl_warning): When warned and olddecl is
490 an undeclared builtin, then add a fixit header hint, if found.
491 (implicitly_declare): Add OPT_Wbuiltin_declaration_mismatch to
492 warning_at about implicit builtin declaration type mismatch.
493
9a5b7438
GA
4942020-06-03 Mark Wielaard <mark@klomp.org>
495
496 * c-parser.c (struct c_parser): Add seen_string_literal
497 bitfield.
498 (c_parser_consume_token): Reset seen_string_literal.
499 (c_parser_error_richloc): Add name_hint if seen_string_literal
500 and next token is a CPP_NAME and we have a missing header
501 suggestion for the name.
502 (c_parser_string_literal): Set seen_string_literal.
503
5042020-06-03 Mark Wielaard <mark@klomp.org>
505
506 * c-parser.c (c_parser_postfix_expression_after_primary): Add
507 scope with matching_parens after CPP_OPEN_PAREN.
508
5092020-06-03 Tobias Burnus <tobias@codesourcery.com>
510
511 * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redefine.
512
53ffb43a
GA
5132020-05-28 Nicolas Bértolo <nicolasbertolo@gmail.com>
514
515 * Make-lang.in: Remove extra slash.
516
8f66f175
ML
5172020-05-19 Martin Liska <mliska@suse.cz>
518
519 * c-parser.c: Fix typo.
520
49ddde69
JJ
5212020-05-14 Jakub Jelinek <jakub@redhat.com>
522
523 * c-parser.c (c_parser_omp_target): Set cfun->has_omp_target.
524
eb72dc66
RB
5252020-05-07 Richard Biener <rguenther@suse.de>
526
527 PR middle-end/94703
528 * gimple-parser.c (c_parser_parse_ssa_name): Do not set
529 DECL_GIMPLE_REG_P.
530
bf915591
JJ
5312020-04-30 Jakub Jelinek <jakub@redhat.com>
532
533 PR c/94842
534 * c-decl.c (set_labels_context_r): In addition to context-less
535 LABEL_DECLs adjust also LABEL_DECLs with context equal to
536 parent function if any.
537 (store_parm_decls): Adjust comment.
538
e1113ffb
JJ
5392020-04-19 Jakub Jelinek <jakub@redhat.com>
540
541 PR objc/94637
542 * c-parser.c (c_parser_objc_selector_arg): Handle CPP_SCOPE like
543 two CPP_COLON tokens.
544
2e389749
JJ
5452020-04-17 Jakub Jelinek <jakub@redhat.com>
546
547 PR other/94629
548 * c-parser.c (c_parser_oacc_routine): Remove redundant assignment
549 to data.clauses.
550
2dc9294c
JJ
5512020-04-15 Jakub Jelinek <jakub@redhat.com>
552
553 PR c/94593
554 * c-parser.c (c_parser_pragma) <case PRAGMA_OMP_REQUIRES>: Reject
555 requires directive when not at file scope.
556
13e41d8b
TB
5572020-04-08 Tobias Burnus <tobias@codesourcery.com>
558
559 PR middle-end/94120
560 * c-decl.c (c_check_in_current_scope): New function.
561 * c-tree.h (c_check_in_current_scope): Declare it.
562 * c-parser.c (c_parser_oacc_declare): Add check that variables
563 are declared in the same scope as the directive. Fix handling
564 of namespace vars.
565
4df50a05
JJ
5662020-04-07 Jakub Jelinek <jakub@redhat.com>
567
568 PR c++/94512
569 * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
570 if c_parser_omp_master succeeded.
571
5db9e893
JJ
5722020-03-23 Jakub Jelinek <jakub@redhat.com>
573
574 PR gcov-profile/94029
575 PR c/94239
576 * c-parser.c (c_parser_declaration_or_fndef): Initialize endloc to
577 the function_start_locus location. Don't do that afterwards for the
578 __GIMPLE body parsing.
579
9def91e9
JJ
5802020-03-19 Jakub Jelinek <jakub@redhat.com>
581
582 PR gcov-profile/94029
583 * c-tree.h (finish_function): Add location_t argument defaulted to
584 input_location.
585 * c-parser.c (c_parser_compound_statement): Add endlocp argument and
586 set it to the locus of closing } if non-NULL.
587 (c_parser_compound_statement_nostart): Return locus of closing }.
588 (c_parser_parse_rtl_body): Likewise.
589 (c_parser_declaration_or_fndef): Propagate locus of closing } to
590 finish_function.
591 * c-decl.c (finish_function): Add end_loc argument, use it instead of
592 input_location to set function_end_locus.
593
046c5890
JJ
5942020-03-17 Jakub Jelinek <jakub@redhat.com>
595
596 PR c/94172
597 * c-tree.h (C_TYPE_INCOMPLETE_VARS): Define to TYPE_LANG_SLOT_1
598 instead of TYPE_VFIELD, and support it on {RECORD,UNION,ENUMERAL}_TYPE.
599 (TYPE_ACTUAL_ARG_TYPES): Check that it is only used on FUNCTION_TYPEs.
600 * c-decl.c (pushdecl): Push C_TYPE_INCOMPLETE_VARS also to
601 ENUMERAL_TYPEs.
602 (finish_incomplete_vars): New function, moved from finish_struct. Use
603 relayout_decl instead of layout_decl.
604 (finish_struct): Remove obsolete comment about C_TYPE_INCOMPLETE_VARS
605 being TYPE_VFIELD. Use finish_incomplete_vars.
606 (finish_enum): Clear C_TYPE_INCOMPLETE_VARS. Call
607 finish_incomplete_vars.
608 * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
609 also on ENUMERAL_TYPEs.
610
c015ff8c
JJ
6112020-03-16 Jakub Jelinek <jakub@redhat.com>
612
613 PR c/94179
614 * c-fold.c (c_fully_fold_internal): Handle MEM_REF.
615
f2e9fe5f
MS
6162020-03-13 Martin Sebor <msebor@redhat.com>
617
618 PR c/94040
619 * c-decl.c (builtin_structptr_type_count): New constant.
620 (match_builtin_function_types): Reject decls that are incompatible
621 in types pointed to by pointers.
622 (diagnose_mismatched_decls): Adjust comments.
623
c9d70946
JM
6242020-03-05 Joseph Myers <joseph@codesourcery.com>
625
626 PR c/93577
627 * c-typeck.c (pop_init_level): Do not diagnose initializers as
628 empty when initialized type is error_mark_node.
629 (set_designator, process_init_element): Ignore initializers for
630 elements of a variable-size type or of error_mark_node.
631
726e292d
MS
6322020-03-01 Martin Sebor <msebor@redhat.com>
633
634 PR middle-end/93926
635 * c-decl.c (types_close_enough_to_match): New function.
636 (match_builtin_function_types):
637 (diagnose_mismatched_decls): Add missing inform call to a warning.
638
a499c2f8
MS
6392020-03-01 Martin Sebor <msebor@redhat.com>
640
641 PR c/93812
642 * c-typeck.c (build_functype_attribute_variant): New function.
643 (composite_type): Call it.
644
9c3da8cc
JJ
6452020-02-25 Jakub Jelinek <jakub@redhat.com>
646
647 PR other/93912
648 * gimple-parser.c (c_parser_gimple_parse_bb_spec_edge_probability):
649 Rename last argument from probablity to probability.
650
bacdd5e9
JJ
6512020-02-13 Jakub Jelinek <jakub@redhat.com>
652
653 PR c/93576
654 * c-decl.c (grokdeclarator): If this_size_varies, only push size into
655 *expr if it has side effects.
656
f9eb0973
JL
6572020-01-30 Jeff Law <law@redhat.com>
658
659 PR c/88660
660 * c-parser.c (c_parser_switch_statement): Make sure to request
661 marking the switch expr as used.
662
ac68e287
JM
6632020-01-22 Joseph Myers <joseph@codesourcery.com>
664
665 PR c/93348
666 * c-typeck.c (build_c_cast): Call remove_c_maybe_const_expr on
667 argument with integer operands.
668
852f0ae8
KK
6692020-01-16 Kerem Kat <keremkat@gmail.com>
670
671 PR c/92833
672 * c-parser.c (c_parser_consume_token): Fix peeked token stack pop
673 to support 4 available tokens.
674
e2346a33
JM
6752020-01-15 Joseph Myers <joseph@codesourcery.com>
676
677 PR c/93072
678 * c-decl.c (pushdecl): Use TREE_PUBLIC, not DECL_EXTERNAL, to
679 determine whether to set DECL_CONTEXT.
680
3d77686d
JM
6812020-01-13 Joseph Myers <joseph@codesourcery.com>
682
683 PR c/93241
684 * c-typeck.c (build_c_cast): Check for expressions with integer
685 operands that can occur in an unevaluated part of an integer
686 constant expression and call note_integer_operands as needed.
687
f74c4b2c
RB
6882019-01-08 Richard Biener <rguenther@suse.de>
689
690 PR middle-end/93199
691 * gimple-parser.c (c_parser_parse_gimple_body): Remove __PHI IFN
692 permanently.
693
8d9254fc
JJ
6942020-01-01 Jakub Jelinek <jakub@redhat.com>
695
696 Update copyright years.
697
39292e25
EB
6982019-12-20 Eric Botcazou <ebotcazou@adacore.com>
699
700 * c-decl.c (collect_source_ref_cb): Delete.
701 (for_each_global_decl): Rename into...
702 (collect_source_refs): ...this. Call collect_source_ref directly.
703 (c_parse_final_cleanups): Always call collect_source_ref on the main
704 input filename.
705
519d7496
JB
7062019-12-19 Julian Brown <julian@codesourcery.com>
707 Cesar Philippidis <cesar@codesourcery.com>
708
709 * c-parser.c (c_parser_omp_clause_name): Add parsing of attach and
710 detach clauses.
711 (c_parser_omp_variable_list): Add ALLOW_DEREF optional parameter.
712 Allow deref (->) in variable lists if true.
713 (c_parser_omp_var_list_parens): Add ALLOW_DEREF optional parameter.
714 Pass to c_parser_omp_variable_list.
715 (c_parser_oacc_data_clause): Support attach and detach clauses. Update
716 call to c_parser_omp_variable_list.
717 (c_parser_oacc_all_clauses): Support attach and detach clauses.
718 (OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK,
719 OACC_KERNELS_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK,
720 OACC_SERIAL_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_ATTACH.
721 (OACC_EXIT_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_DETACH.
722 * c-typeck.c (handle_omp_array_sections_1): Reject subarrays for attach
723 and detach. Support deref.
724 (handle_omp_array_sections): Use GOMP_MAP_ATTACH_DETACH instead of
725 GOMP_MAP_ALWAYS_POINTER for OpenACC.
726 (c_oacc_check_attachments): New function.
727 (c_finish_omp_clauses): Check attach/detach arguments for being
728 pointers using above. Support deref.
729
a6163563
JB
7302019-12-19 Julian Brown <julian@codesourcery.com>
731 Maciej W. Rozycki <macro@codesourcery.com>
732 Tobias Burnus <tobias@codesourcery.com>
733 Thomas Schwinge <thomas@codesourcery.com>
734
735 * c-parser.c (c_parser_omp_clause_name): Support no_create.
736 (c_parser_oacc_data_clause): Likewise.
737 (c_parser_oacc_all_clauses): Likewise.
738 (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
739 (OACC_PARALLEL_CLAUSE_MASK, OACC_SERIAL_CLAUSE_MASK): Add
740 PRAGMA_OACC_CLAUSE_NO_CREATE.
741 * c-typeck.c (handle_omp_array_sections): Support
742 GOMP_MAP_NO_ALLOC.
743
d68f5d45
DM
7442019-12-09 David Malcolm <dmalcolm@redhat.com>
745
746 * c-objc-common.c (range_label_for_type_mismatch::get_text):
747 Replace label_text ctor calls.
748
4691bf46
JM
7492019-12-04 Joseph Myers <joseph@codesourcery.com>
750
751 PR c/36941
752 PR c/88827
753 * c-typeck.c (convert_lvalue_to_rvalue): Call
754 require_complete_type for arguments not of void types.
755 (build_indirect_ref): Do not diagnose dereferencing pointers to
756 incomplete types.
757 * c-tree.h (C_TYPE_ERROR_REPORTED): Remove.
758
85d11957
JM
7592019-12-03 Joseph Myers <joseph@codesourcery.com>
760
761 PR c/88704
762 * c-decl.c (store_parm_decls_oldstyle): Diagnose use of [*] in
763 old-style parameter definitions.
764
4569f8b3
SL
7652019-12-01 Sandra Loosemore <sandra@codesourcery.com>
766
767 PR target/92499
768
769 * c-decl.c (flexible_array_type_p): Move to common code.
770
65ef05d0
RS
7712019-11-30 Richard Sandiford <richard.sandiford@arm.com>
772
773 * c-decl.c (start_decl): Allow initialization of variables whose
774 size is a POLY_INT_CST.
775 (finish_decl): Use verify_type_context to check whether the target
776 allows variables with a particular type to have static or thread-local
777 storage duration. Don't raise a second error if such variables do
778 not have a constant size.
779 (grokdeclarator): Use verify_type_context to check whether the
780 target allows fields or array elements to have a particular type.
781 * c-typeck.c (pointer_diff): Use verify_type_context to test whether
782 the target allows pointer difference for the types involved.
783 (build_unary_op): Likewise for pointer increment and decrement.
784
34b43828
JM
7852019-11-29 Joseph Myers <joseph@codesourcery.com>
786
787 * c-parser.c (struct c_parser): Add members raw_tokens and
788 raw_tokens_used.
789 (c_lex_one_token): Add argument raw. Handle lexing raw tokens and
790 using previously-lexed raw tokens.
791 (c_parser_peek_nth_token_raw)
792 (c_parser_check_balanced_raw_token_sequence): New functions.
793 (c_parser_nth_token_starts_std_attributes): Use
794 c_parser_check_balanced_raw_token_sequence for Objective-C.
795
5b8d9367
JM
7962019-11-25 Joseph Myers <joseph@codesourcery.com>
797
798 PR c/91985
799 * c-decl.c (finish_declspecs): Use int instead of decimal
800 floating-point types if decimal floating-point not supported.
801
1723e1be
JM
8022019-11-25 Joseph Myers <joseph@codesourcery.com>
803
804 * c-tree.h (struct c_declarator): Use a structure for id member.
805 * c-decl.c (grokdeclarator): Extract attributes from cdk_id
806 declarators at the start, not when handling individual declarators
807 later. Use u.id.id instead of u.id.
808 (grokfield): Use u.id.id instead of u.id.
809 (build_id_declarator): Set u.id.id and u.id.attrs.
810 (finish_declspecs): Handle postfix attributes in case of typedef
811 name or typeof used.
812 * c-parser.c (c_parser_direct_declarator)
813 (c_parser_direct_declarator_inner): Place declarator for
814 attributes inside that for function or array, not outside. Set
815 u.id.attrs for identifiers.
816 (c_parser_parameter_declaration): Use u.id.id instead of u.id.
817 * gimple-parser.c (c_parser_gimple_declaration): Use u.id.id
818 instead of u.id.
819
bdaf8be1
JJ
8202019-11-22 Jakub Jelinek <jakub@redhat.com>
821
822 PR c/90677
823 * c-decl.c (identifier_global_tag): Define.
824
3e00ba47
RB
8252019-11-20 Richard Biener <rguenther@suse.de>
826
827 PR c/92088
828 * c-decl.c (grokdeclarator): Prevent inlining of nested
829 function with VLA arguments.
830
8c5b727a
JM
8312019-11-20 Joseph Myers <joseph@codesourcery.com>
832
833 * c-decl.c (c_warn_type_attributes): New function.
834 (groktypename, grokdeclarator, finish_declspecs): Call
835 c_warn_type_attributes before applying attributes to types.
836 * c-tree.h (c_warn_type_attributes): Declare.
837
192961ff
JM
8382019-11-19 Joseph Myers <joseph@codesourcery.com>
839
840 * c-decl.c (c_warn_unused_attributes): Use pedwarn not warning for
841 standard attributes.
842 * c-parser.c (c_parser_std_attribute): Take argument for_tm. Use
843 pedwarn for unknown standard attributes and return error_mark_node
844 for them.
845
20a38017
MM
8462019-11-18 Matthew Malcomson <matthew.malcomson@arm.com>
847
848 * c-parser.c (c_parser_parse_rtl_body): Always call
849 run_rtl_passes, even if startwith pass is not provided.
850
d5fbe5e0
JM
8512019-11-15 Joseph Myers <joseph@codesourcery.com>
852
853 * c-parser.c (c_parser_std_attribute_specifier): Diagnose
854 duplicate standard attributes.
855
97cc1187
JM
8562019-11-15 Joseph Myers <joseph@codesourcery.com>
857
858 * c-decl.c (std_attribute_table): Add maybe_unused.
859
f8aea5e3
JM
8602019-11-15 Joseph Myers <joseph@codesourcery.com>
861
862 * c-decl.c (std_attribute_table): Add fallthrough.
863 * c-parser.c (c_parser_declaration_or_fndef): Diagnose fallthrough
864 attribute at top level.
865
2cc94aa8
JM
8662019-11-15 Joseph Myers <joseph@codesourcery.com>
867
868 * c-decl.c (std_attribute_table): New.
869 (c_init_decl_processing): Register attributes from
870 std_attribute_table.
871 * c-parser.c (c_parser_attribute_arguments): Add arguments
872 require_string and allow_empty_args. All callers changed.
873 (c_parser_std_attribute): Set require_string argument for
874 "deprecated" attribute.
875
7c5890cc
JM
8762019-11-14 Joseph Myers <joseph@codesourcery.com>
877
878 * c-parser.c (c_parser_postfix_expression)
879 (c_parser_check_literal_zero): Handle CPP_UTF8CHAR.
880 * gimple-parser.c (c_parser_gimple_postfix_expression): Likewise.
881
e8738f4e
RS
8822019-11-14 Richard Sandiford <richard.sandiford@arm.com>
883
884 * c-typeck.c (build_conditional_expr): Use truth_type_for instead
885 of build_same_sized_truth_vector_type.
886 (build_vec_cmp): Likewise.
887
b2417b59
JJ
8882019-11-14 Jakub Jelinek <jakub@redhat.com>
889
bedb7f04
JJ
890 * c-parser.c (c_parser_omp_context_selector): Don't require score
891 argument to fit into shwi, just to be INTEGER_CST. Diagnose
892 negative score.
893
b2417b59
JJ
894 * c-parser.c (c_parser_omp_context_selector): Rename
895 CTX_PROPERTY_IDLIST to CTX_PROPERTY_NAME_LIST, add CTX_PROPERTY_ID.
896 Use CTX_PROPERTY_ID for atomic_default_mem_order, only allow a single
897 identifier in that. For CTX_PROPERTY_NAME_LIST, allow identifiers
898 and string literals.
899
4e03c3a7
JM
9002019-11-14 Joseph Myers <joseph@codesourcery.com>
901
902 * c-tree.h (enum c_typespec_kind): Add ctsk_tagref_attrs and
903 ctsk_tagfirstref_attrs.
904 (struct c_declspecs): Update description of attrs. Add
905 postfix_attrs and non_std_attrs_seen_p. Increase size of
906 typespec_kind bit-field.
907 (c_warn_unused_attributes): New declaration.
908 (parser_xref_tag): Update prototype.
909 * c-decl.c (c_warn_unused_attributes): New function.
910 (shadow_tag_warned): Handle ctsk_tagfirstref_attrs and
911 ctsk_tagref_attrs. Handle attribute declarations.
912 (check_compound_literal_type): Handle ctsk_tagfirstref_attrs.
913 (grokdeclarator): Handle standard attributes.
914 (parser_xref_tag): Add arguments have_std_attrs and attrs. Apply
915 attributes to incomplete type reference.
916 (xref_tag): Update call to parser_xref_tag.
917 (declspecs_add_addrspace, declspecs_add_type)
918 (declspecs_add_scspec, declspecs_add_attrs): Set
919 non_std_attrs_seen_p.
920 (finish_declspecs): Apply postfix standard attributes to type.
921 * c-parser.c (c_token_starts_declspecs)
922 (c_token_starts_declaration, c_parser_next_token_starts_declspecs)
923 (c_parser_next_tokens_start_declaration): Update comments.
924 (c_parser_consume_token, c_parser_consume_pragma): Handle moving
925 parser->tokens[2] to parser->tokens[1].
926 (c_parser_nth_token_starts_std_attributes)
927 (c_parser_std_attribute_specifier_sequence): New functions.
928 (c_parser_declaration_or_fndef): Add arguments have_attrs and
929 attrs. All callers changed. Handle standard attributes.
930 (c_parser_parms_declarator, c_parser_parms_list_declarator)
931 (c_parser_parameter_declaration): Add argument have_gnu_attrs.
932 All callers changed.
933 (c_parser_declspecs): Add arguments start_std_attr_ok and
934 end_std_attr_ok. All callers changed. Handle standard
935 attributes.
936 (c_parser_enum_specifier, c_parser_struct_or_union_specifier)
937 (c_parser_direct_declarator, c_parser_direct_declarator_inner)
938 (c_parser_compound_statement_nostart, c_parser_all_labels)
939 (c_parser_label, c_parser_statement, c_parser_for_statement):
940 Handle standard attributes.
941 * c-parser.h (c_parser_declspecs): Update prototype.
942 * gimple-parser.c (c_parser_gimple_declaration): Update call to
943 c_parser_declspecs.
944
0c29cac4
ML
9452019-11-12 Martin Liska <mliska@suse.cz>
946
947 * gimple-parser.c: Do not include params.h.
948
028d4092
ML
9492019-11-12 Martin Liska <mliska@suse.cz>
950
951 * gimple-parser.c (c_parser_parse_gimple_body): Replace old parameter syntax
952 with the new one, include opts.h if needed. Use SET_OPTION_IF_UNSET
953 macro.
954
62aee289
MR
9552019-11-12 Maciej W. Rozycki <macro@codesourcery.com>
956 Frederik Harwath <frederik@codesourcery.com>
957
958 gcc/c/
959 * c-parser.c (OACC_SERIAL_CLAUSE_MASK): New macro.
960 (c_parser_oacc_kernels_parallel): Rename function to...
961 (c_parser_oacc_compute): ... this. Handle PRAGMA_OACC_SERIAL.
962 (c_parser_omp_construct): Update accordingly.
963
964
7cec9588
JJ
9652019-11-11 Jakub Jelinek <jakub@redhat.com>
966
967 * c-parser.c (c_parser_translation_unit): Diagnose declare target
968 without corresponding end declare target.
969
f486280c
RS
9702019-11-08 Richard Sandiford <richard.sandiford@arm.com>
971
972 * c-convert.c (convert): Only handle vector conversions if one of
973 the types satisfies gnu_vector_type_p or if -flax-vector-conversions
974 allows it.
975 * c-typeck.c (build_array_ref): Only allow vector indexing if the
976 vectors satisfy gnu_vector_type_p.
977 (build_unary_op): Only allow unary operators to be applied to
978 vectors if they satisfy gnu_vector_type_p.
979 (digest_init): Only allow by-element initialization of vectors
980 if they satisfy gnu_vector_type_p.
981 (really_start_incremental_init): Likewise.
982 (push_init_level): Likewise.
983 (pop_init_level): Likewise.
984 (process_init_element): Likewise.
985 (build_binary_op): Only allow binary operators to be applied to
986 vectors if they satisfy gnu_vector_type_p.
987
017c6491
JM
9882019-11-08 Joseph Myers <joseph@codesourcery.com>
989
990 * c-decl.c (grokparms): Convert () in a function definition to
991 (void) for C2x.
992 (store_parm_decls_oldstyle): Pedwarn for C2x.
993 (store_parm_decls): Update comment about () not generating a
994 prototype.
995
c01bd174
JM
9962019-11-07 Joseph Myers <joseph@codesourcery.com>
997
998 * c-parser.c (c_parser_attribute_arguments): New function.
999 Factored out of c_parser_gnu_attribute.
1000 (c_parser_gnu_attribute): Use c_parser_attribute_arguments.
1001 (c_parser_balanced_token_sequence, c_parser_std_attribute)
1002 (c_parser_std_attribute_specifier): New functions.
1003 (c_parser_transaction_attributes): Use
1004 c_parser_std_attribute_specifier.
1005
471c5330
JM
10062019-11-07 Joseph Myers <joseph@codesourcery.com>
1007
1008 * c-parser.c (c_parser): Remove lex_untranslated_string. Add
1009 lex_joined_string and translate_strings_p.
1010 (c_lex_one_token): Pass 0 or C_LEX_STRING_NO_JOIN to
1011 c_lex_with_flags.
1012 (c_parser_string_literal): New function.
1013 (c_parser_static_assert_declaration_no_semi): Use
1014 c_parser_string_literal. Do not set lex_untranslated_string.
1015 (c_parser_asm_string_literal): Use c_parser_string_literal.
1016 (c_parser_simple_asm_expr): Do not set lex_untranslated_string.
1017 (c_parser_gnu_attributes): Set and restore translate_strings_p
1018 instead of lex_untranslated_string.
1019 (c_parser_asm_statement): Do not set lex_untranslated_string.
1020 (c_parser_asm_operands): Likewise.
1021 (c_parser_has_attribute_expression): Set and restore
1022 translate_strings_p instead of lex_untranslated_string.
1023 (c_parser_postfix_expression): Use c_parser_string_literal.
1024 (pragma_lex): Likewise.
1025 (c_parser_pragma_pch_preprocess): Set lex_joined_string.
1026 (c_parse_file): Set translate_strings_p.
1027 * gimple-parser.c (c_parser_gimple_postfix_expression)
1028 (c_parser_gimple_or_rtl_pass_list): Use c_parser_string_literal.
1029 * c-parser.c (c_parser_string_literal): Declare function.
1030
d0c464d2
JJ
10312019-11-02 Jakub Jelinek <jakub@redhat.com>
1032
1033 * c-parser.c (c_finish_omp_declare_variant): Use
1034 omp_get_context_selector instead of c_omp_get_context_selector.
1035
ac2cfa6c
RS
10362019-10-29 Richard Sandiford <richard.sandiford@arm.com>
1037
1038 * c-tree.h (c_simulate_enum_decl): Declare.
1039 * c-decl.c (c_simulate_enum_decl): New function.
1040 * c-objc-common.h (LANG_HOOKS_SIMULATE_ENUM_DECL): Define to the above.
1041
74078538
RS
10422019-10-29 Richard Sandiford <richard.sandiford@arm.com>
1043
1044 * c-tree.h (c_simulate_builtin_function_decl): Declare.
1045 * c-decl.c (c_simulate_builtin_function_decl): New function.
1046 * c-objc-common.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define
1047 to the above.
1048
ad1539d5
MS
10492019-10-28 Martin Sebor <msebor@redhat.com>
1050
1051 PR c/66970
1052 * c-decl.c (names_builtin_p): Define a new function.
1053
cb73e4e7
RB
10542019-10-28 Richard Biener <rguenther@suse.de>
1055
1056 PR c/92249
1057 * gimple-parser.c (c_parser_parse_gimple_body): Make
1058 current_bb the entry block initially to easier recover
1059 from errors.
1060 (c_parser_gimple_compound_statement): Adjust.
1061
135df52c
JJ
10622019-10-24 Jakub Jelinek <jakub@redhat.com>
1063
1064 * c-parser.c (c_finish_omp_declare_variant): Use
1065 omp_context_selector_matches instead of
1066 c_omp_context_selector_matches.
1067 * c-decl.c (c_decl_attributes): Add "omp declare target block"
1068 attribute in between declare target and end declare target
1069 pragmas.
1070
783bfe5e
JM
10712019-10-15 Joseph Myers <joseph@codesourcery.com>
1072
1073 * c-parser.c (c_parser_attribute_any_word): Rename to
1074 c_parser_gnu_attribute_any_word. All callers changed.
1075 (c_parser_attribute): Rename to c_parser_gnu_attribute. All
1076 callers changed.
1077 (c_parser_attributes): Rename to c_parser_gnu_attributes. All
1078 callers changed.
1079 (c_parser_declaration_or_fndef, c_parser_declspecs)
1080 (c_parser_enum_specifier, c_parser_struct_or_union_specifier)
1081 (c_parser_struct_declaration, c_parser_declarator)
1082 (c_parser_gnu_attribute, c_parser_compound_statement)
1083 (c_parser_label, c_parser_statement, c_parser_objc_method_decl)
1084 (c_parser_transaction_attributes): Add "gnu-" prefix to names of
1085 attribute-related syntax productions.
1086
56898e43
RS
10872019-10-14 Richard Sandiford <richard.sandiford@arm.com>
1088
1089 * c-objc-common.c (useful_aka_type_p): Replace with...
1090 (get_aka_type): ...this new function. Given the original type,
1091 decide which aka type to print (if any). Only look through typedefs
1092 if user_facing_original_type_p.
1093 (print_type): Update accordingly.
1094
b9424661
JJ
10952019-10-14 Jakub Jelinek <jakub@redhat.com>
1096
1097 * c-parser.c (c_parser_omp_all_clauses): Change bool NESTED_P argument
1098 into int NESTED, if it is 2, diagnose missing commas in between
1099 clauses.
1100 (c_parser_omp_context_selector): Pass 2 as last argument to
1101 c_parser_omp_all_clauses.
1102
20de9568
JJ
11032019-10-12 Jakub Jelinek <jakub@redhat.com>
1104
1105 * c-parser.c (c_parser_omp_context_selector): Improve error recovery.
1106 For simd properties, put them directly into TREE_VALUE.
1107 (c_finish_omp_declare_variant): Call c_omp_mark_declare_variant.
1108 If c_omp_context_selector_matches is 0, don't add attribute, otherwise
1109 add "omp declare variant base" attribute rather than
1110 "omp declare variant".
1111
fe2bc27c
JM
11122019-10-11 Joseph Myers <joseph@codesourcery.com>
1113
1114 * c-decl.c (declspecs_add_type): Use pedwarn_c11 for DFP types.
1115
94e7f906
JJ
11162019-10-10 Jakub Jelinek <jakub@redhat.com>
1117
1118 * c-parser.c (c_parser_omp_all_clauses): Add NESTED_P argument, if
1119 true, terminate processing on closing paren and don't skip to end of
1120 pragma line.
1121 (c_parser_omp_declare_simd): Handle also declare variant.
1122 (omp_construct_selectors, omp_device_selectors,
1123 omp_implementation_selectors, omp_user_selectors): New variables.
1124 (c_parser_omp_context_selector,
1125 c_parser_omp_context_selector_specification,
1126 c_finish_omp_declare_variant): New functions.
1127 (c_finish_omp_declare_simd): Handle both declare simd and
1128 declare variant.
1129 (c_parser_omp_declare): Handle declare variant.
1130
93313b94
JM
11312019-10-02 Joseph Myers <joseph@codesourcery.com>
1132
1133 * c-parser.c (c_parser_asm_statement): Handle CPP_SCOPE like two
1134 CPP_COLON tokens.
1135
55879815
RS
11362019-10-01 Richard Sandiford <richard.sandiford@arm.com>
1137
1138 * c-objc-common.c (useful_aka_type_p): New function.
1139 (print_type): Use it to decide whether an aka type is worth printing.
1140
59bc434a
JJ
11412019-09-27 Jakub Jelinek <jakub@redhat.com>
1142
1143 PR c++/88203
1144 * c-parser.c (c_parser_predefined_identifier): New function.
1145 (c_parser_postfix_expression): Use it.
1146 (c_parser_omp_variable_list): Parse predefined identifiers.
1147 * c-typeck.c (c_finish_omp_clauses): Allow predefined variables
1148 in shared and firstprivate clauses, even when they are predetermined
1149 shared.
1150
c6447c20
RS
11512019-09-27 Richard Sandiford <richard.sandiford@arm.com>
1152
1153 * c-typeck.c (build_function_call_vec): Take the original function
1154 decl as an optional final parameter. Pass all built-in calls to
1155 check_builtin_function_arguments.
1156
522da4c2
EB
11572019-09-20 Eric Botcazou <ebotcazou@adacore.com>
1158
1159 PR c/91815
1160 * c-decl.c (pushdecl): In C detect duplicate declarations across scopes
1161 of identifiers in the external scope only for variables and functions.
1162
68e2c199
PK
11632019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1164
1165 PR c/78736
1166 * c-typeck.c (convert_for_assignment): Handle Wenum-conversion.
1167
22f8849d
IS
11682019-08-23 Iain Sandoe <iain@sandoe.co.uk>
1169
1170 PR pch/61250
1171 * c-parser.c (c_parse_file): Call c_common_no_more_pch ()
1172 after determining that the first token is not
1173 PRAGMA_GCC_PCH_PREPROCESS.
1174
db376f45
EB
11752019-08-22 Eric Botcazou <ebotcazou@adacore.com>
1176
1177 * c-parser.c (c_parser_declaration_or_fndef): Set DECL_ARGUMENTS of a
1178 FUNCTION_DECL to the right value in the presence of nested declarators.
1179
4d732405
RS
11802019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1181
1182 PR middle-end/91421
1183 * c-decl.c (merge_decls): Use copy_decl_built_in_function.
1184
cb1180d5
RS
11852019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1186
1187 PR middle-end/91421
1188 * c-decl.c (header_for_builtin_fn): Take a FUNCTION_DECL instead
1189 of a built_in_function.
1190 (diagnose_mismatched_decls, implicitly_declare): Update accordingly.
1191
77eb117f
JJ
11922019-08-10 Jakub Jelinek <jakub@redhat.com>
1193
1194 * c-parser.c (c_parser_omp_clause_name): Parse device_type.
1195 (c_parser_omp_clause_device_type): New function.
1196 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DEVICE_TYPE.
1197 (OMP_DECLARE_TARGET_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_DEVICE_TYPE.
1198 (c_parser_omp_declare_target): Handle device_type clauses. Remove
1199 diagnostics for declare target with clauses nested in clause-less
1200 declare target declaration-definition-seq.
1201 * c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_DEVICE_TYPE.
1202
2c3b8bad
JJ
12032019-08-09 Jakub Jelinek <jakub@redhat.com>
1204
bb522e2e
JJ
1205 * c-parser.c (check_no_duplicate_clause): Simplify using
1206 omp_find_clause.
1207 (c_parser_omp_clause_if): Fix up printing of target {enter,exit} data
1208 directive name modifiers.
1209 (c_parser_omp_clause_proc_bind): Check for duplicate proc_bind clause.
1210
2c3b8bad
JJ
1211 PR c/91401
1212 * c-parser.c (c_parser_omp_clause_dist_schedule): Fix up typos in the
1213 check_no_duplicate_clause call. Comment it out, instead emit a
1214 warning for duplicate dist_schedule clauses.
1215
99769e7f
RS
12162019-08-08 Richard Sandiford <richard.sandiford@arm.com>
1217
1218 * c-decl.c (finish_enum): Clear C_TYPE_BEING_DEFINED.
1219
8860d270
JJ
12202019-08-08 Jakub Jelinek <jakub@redhat.com>
1221
1222 * c-typeck.c (c_finish_omp_clauses): For C_ORT_OMP
1223 OMP_CLAUSE_USE_DEVICE_* clauses use oacc_reduction_head bitmap
1224 instead of generic_head to track duplicates.
1225
398e3feb
JJ
12262019-08-07 Jakub Jelinek <jakub@redhat.com>
1227
1228 * c-parser.c (c_parser_omp_clause_name): Parse use_device_addr clause.
1229 (c_parser_omp_clause_use_device_addr): New function.
1230 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
1231 (OMP_TARGET_DATA_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
1232 (c_parser_omp_target_data): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR
1233 like PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR, adjust diagnostics about no
1234 map or use_device_* clauses.
1235 * c-typeck.c (c_finish_omp_clauses): For OMP_CLAUSE_USE_DEVICE_PTR
1236 in OpenMP, require pointer type rather than pointer or array type.
1237 Handle OMP_CLAUSE_USE_DEVICE_ADDR.
1238
a28351e7
JJ
12392019-07-31 Jakub Jelinek <jakub@redhat.com>
1240
1241 PR c/91192
1242 * c-parser.c (c_parser_sizeof_expression): Call set_c_expr_source_range
1243 even if finish is UNKNOWN_LOCATION, just use start as finish in that
1244 case.
1245
6343b6bf
ML
12462019-07-25 Martin Liska <mliska@suse.cz>
1247 Dominik Infuhr <dominik.infuehr@theobroma-systems.com>
1248
1249 PR c++/23383
1250 * c-decl.c (merge_decls): Merge OPERATOR_DELETE flag.
1251
cb50701e
ML
12522019-07-25 Martin Liska <mliska@suse.cz>
1253
1254 * c-decl.c (merge_decls): Use new macros
1255 (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
1256
62e3e66f
RB
12572019-07-23 Richard Biener <rguenther@suse.de>
1258
1259 PR tree-optimization/83518
1260 * gimple-parser.c (c_parser_parse_gimple_body): When we have
1261 a CFG also rebuild cgraph edges.
1262
554a530f
JJ
12632019-07-20 Jakub Jelinek <jakub@redhat.com>
1264
1265 * c-parser.c (c_parser_omp_clause_name): Handle bind clause.
1266 (c_parser_omp_clause_bind): New function.
1267 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_BIND.
1268 (OMP_LOOP_CLAUSE_MASK): Define.
1269 (c_parser_omp_loop): New function.
1270 (c_parser_omp_parallel, c_parser_omp_teams): Handle parsing of
1271 loop combined with parallel or teams.
1272 (c_parser_omp_construct): Handle PRAGMA_OMP_LOOP.
1273 * c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_BIND.
1274
d119bf79
RS
12752019-07-18 Richard Sandiford <richard.sandiford@arm.com>
1276
1277 PR c/53633
1278 * c-decl.c (finish_function): Check targetm.warn_func_return
1279 before issuing a -Wreturn-type warning.
1280
ab20d992 12812019-07-12 Alexandre Oliva <oliva@adacore.com>
fdc1f343
AO
1282
1283 * gimple-parser.c (c_parser_gimple_try_stmt): New.
1284 (c_parser_compound_statement): Call it.
1285
1fdd6f04
JJ
12862019-07-12 Jakub Jelinek <jakub@redhat.com>
1287
1288 * c-parser.c (c_parser_omp_clause_name): Handle order clause.
1289 (c_parser_omp_clause_order): New function.
1290 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_ORDER.
1291 (OMP_SIMD_CLAUSE_MASK, OMP_FOR_CLAUSE_MASK): Add
1292 PRAGMA_OMP_CLAUSE_ORDER.
1293 * c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_ORDER.
1294
8389386c
RB
12952019-07-10 Richard Biener <rguenther@suse.de>
1296
1297 * gimple-parser.c (c_parser_gimple_postfix_expression): Support
1298 _Literal (int *) &x for address literals.
1299
99b1c316
MS
13002019-07-09 Martin Sebor <msebor@redhat.com>
1301
1302 PR c++/61339
1303 * c-decl.c (xref_tag): Change class-key of PODs to struct and others
1304 to class.
1305 (field_decl_cmp): Same.
1306 * c-parser.c (c_parser_struct_or_union_specifier): Same.
1307 * c-tree.h: Same.
1308 * gimple-parser.c (c_parser_gimple_compound_statement): Same.
1309
6c1dae73
MS
13102019-07-09 Martin Sebor <msebor@redhat.com>
1311
1312 PR c++/61339
1313 * c-decl.c: Change class-key from class to struct and vice versa
1314 to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
1315 * gimple-parser.c: Same.
1316
69b5279e
RB
13172019-07-01 Richard Biener <rguenther@suse.de>
1318
1319 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
1320 _Literal (char *) &"foo" for address literals pointing to
1321 STRING_CSTs.
1322
ab20d992
JJ
13232019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1324
1325 * c-parser.c (c_parse_init): Create keyword for "__intN__" type.
1326 * c-decl.c (declspecs_add_type): Don't pedwarn about "__intN" ISO
1327 C incompatibility if alternate "__intN__" form is used.
1328
1e3d475e
MS
13292019-06-24 Martin Sebor <msebor@redhat.com>
1330
1331 * c-typeck.c (build_binary_op): Hyphenate floating-point.
1332
bf38f7e9
JJ
13332019-06-10 Jakub Jelinek <jakub@redhat.com>
1334
1335 * c-parser.c (c_parser_pragma): Reject PRAGMA_OMP_SCAN.
1336 (c_parser_omp_clause_reduction): Don't sorry_at on inscan reductions.
1337 (c_parser_omp_scan_loop_body): New function.
1338 (c_parser_omp_for_loop): Call c_parser_omp_scan_loop_body if there are
1339 inscan reduction clauses.
1340 * c-typeck.c (c_finish_omp_clauses): Reject mixing inscan with
1341 non-inscan reductions on the same construct, or inscan reductions with
1342 ordered or schedule clauses, or inscan array reductions.
1343
65985d78
MS
13442019-06-05 Martin Sebor <msebor@redhat.com>
1345
1346 PR c/90737
1347 * c-typeck.c (c_finish_return): Only consider functions returning
1348 pointers as candidates for -Wreturn-local-addr.
1349
0ecf545c
MS
13502019-06-05 Martin Sebor <msebor@redhat.com>
1351
1352 * c-decl.c (start_decl): Adjust quoting and hyphenation
1353 in diagnostics.
1354 (finish_decl): Same.
1355 (finish_enum): Same.
1356 (start_function): Same.
1357 (declspecs_add_type): Same.
1358 * c-parser.c (warn_for_abs): Same.
1359 * c-typeck.c (build_binary_op): Same.
1360
e03436e7
TS
13612019-05-17 Thomas Schwinge <thomas@codesourcery.com>
1362
b48f44bf
TS
1363 PR c/89433
1364 * c-parser.c (c_finish_oacc_routine): Rework checking if already
1365 marked with an OpenACC 'routine' directive.
1366
5bf04509
TS
1367 PR c/89433
1368 * c-parser.c (c_parser_oacc_routine): Normalize order of clauses.
1369 (c_finish_oacc_routine): Call oacc_verify_routine_clauses.
1370
e03436e7
TS
1371 PR c/89433
1372 * c-parser.c (c_finish_oacc_routine): Refer to OpenACC 'routine'
1373 clauses from "omp declare target" attribute.
1374
a9c697b8
MS
13752019-05-16 Martin Sebor <msebor@redhat.com>
1376
ab20d992
JJ
1377 * c-decl.c (start_decl): Quote keywords, operators, and
1378 types in diagnostics.
1379 (finish_decl): Same.
1380 * c-parser.c (c_parser_asm_statement): Same.
1381 (c_parser_conditional_expression): Same.
1382 (c_parser_transaction_cancel): Same.
1383 * c-typeck.c (c_common_type): Same.
1384 (build_conditional_expr): Same.
1385 (digest_init): Same.
1386 (process_init_element): Same.
1387 (build_binary_op): Same.
a9c697b8 1388
c4499192
RB
13892019-05-17 Richard Biener <rguenther@suse.de>
1390
1391 * gimple-parser.c (c_parser_gimple_statement): Handle __VEC_PERM.
1392 (c_parser_gimple_unary_expression): Likewise.
1393 (c_parser_gimple_parentized_ternary_expression): New function.
1394
adfe6e4b
RB
13952019-05-16 Richard Biener <rguenther@suse.de>
1396
1397 * gimple-parser.c (c_parser_gimple_statement): Handle __BIT_INSERT.
1398 (c_parser_gimple_unary_expression): Likewise.
1399
186dabf2
RB
14002019-05-15 Richard Biener <rguenther@suse.de>
1401
1402 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
1403 __BIT_FIELD_REF.
1404
1158c5b4
RB
14052019-05-14 Richard Biener <rguenther@suse.de>
1406
1407 * gimple-parser.c (c_parser_gimple_statement): Remove
1408 questionable auto-promotion to VIEW_CONVERT_EXPR.
1409 (c_parser_gimple_typespec): Split out from __MEM parsing.
1410 (c_parser_gimple_postfix_expression): Handle __VIEW_CONVERT.
1411 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
1412 as __VIEW_CONVERT with -gimple.
1413
fd4485aa
ML
14142019-05-09 Martin Liska <mliska@suse.cz>
1415
1416 * gimple-parser.c (c_parser_gimple_statement): Support __MIN and
1417 __MAX.
1418 (c_parser_gimple_unary_expression): Parse also binary expression
1419 __MIN and __MAX.
1420 (c_parser_gimple_parentized_binary_expression): New function.
1421
d276406a
ML
14222019-05-09 Martin Liska <mliska@suse.cz>
1423
1424 * gimple-parser.c (struct gimple_parser): Add probability.
1425 for gimple_parser_edge.
1426 (gimple_parser::push_edge): Add new argument probability.
1427 (c_parser_gimple_parse_bb_spec): Parse also probability
1428 if present.
1429 (c_parser_parse_gimple_body): Set edge probability.
1430 (c_parser_gimple_compound_statement): Consume token
1431 before calling c_parser_gimple_goto_stmt.
1432 Parse BB counts.
1433 (c_parser_gimple_statement): Pass new argument.
1434 (c_parser_gimple_goto_stmt): Likewise.
1435 (c_parser_gimple_if_stmt): Likewise.
1436 (c_parser_gimple_or_rtl_pass_list): Parse hot_bb_threshold.
1437 * c-parser.c (c_parser_declaration_or_fndef): Pass
1438 hot_bb_threshold argument.
1439 * c-tree.h (struct c_declspecs): Add hot_bb_threshold
1440 field.
1441 (c_parser_gimple_parse_bb_spec_edge_probability): New.
1442
f179b64e
JJ
14432019-04-26 Jakub Jelinek <jakub@redhat.com>
1444
1445 PR debug/90197
1446 * c-tree.h (c_finish_loop): Add 2 further location_t arguments.
1447 * c-parser.c (c_parser_while_statement): Adjust c_finish_loop caller.
1448 (c_parser_do_statement): Likewise.
1449 (c_parser_for_statement): Likewise. Formatting fixes.
1450 * c-typeck.c (c_finish_loop): Add COND_LOCUS and INCR_LOCUS arguments,
1451 emit DEBUG_BEGIN_STMTs if needed.
1452
e7178413
JJ
14532019-04-19 Jakub Jelinek <jakub@redhat.com>
1454
c280b7ee
JJ
1455 PR c/89888
1456 * c-typeck.c (struct c_switch): Remove outside_range_p member.
1457 (c_start_case): Don't clear it.
1458 (do_case): Adjust c_add_case_label caller.
1459 (c_finish_case): Adjust c_do_switch_warnings caller.
1460
e7178413
JJ
1461 PR c++/90108
1462 * c-decl.c (merge_decls): If remove is main variant and
1463 DECL_ORIGINAL_TYPE is some other type, remove a DECL_ORIGINAL_TYPE
1464 variant that has newdecl as TYPE_NAME if any.
1465
60a2c645
JJ
14662019-04-12 Jakub Jelinek <jakub@redhat.com>
1467
1468 PR c/89933
1469 * c-decl.c (merge_decls): When newdecl's type is its main variant,
1470 don't try to remove it from the variant list, but instead assert
1471 it has no variants.
1472
2a82beaa
RB
14732019-04-01 Richard Biener <rguenther@suse.de>
1474
1475 PR c/71598
1476 * c-tree.h (c_get_alias_set): Declare.
1477 * c-objc-common.h (LANG_HOOKS_GET_ALIAS_SET): Use c_get_alias_set.
1478 * c-objc-common.c (c_get_alias_set): Treat enumeral types
1479 as the underlying integer type.
1480
bec1da64
MS
14812019-03-19 Martin Sebor <msebor@redhat.com>
1482
1483 PR tree-optimization/89688
1484 * c-decl.c (finish_decl): Call braced_lists_to_string for more
1485 kinds of initializers.
1486
855cd9b1
JJ
14872019-03-19 Jakub Jelinek <jakub@redhat.com>
1488
1489 PR c/89734
1490 * c-decl.c (grokdeclarator): Call c_build_qualified_type on function
1491 return type even if quals_used is 0. Formatting fixes.
1492
baa09dc5
RB
14932019-03-14 Richard Biener <rguenther@suse.de>
1494
1495 * c-tree.h (enum c_declspec_il): New.
1496 (struct c_declspecs): Merge gimple_p and rtl_p into declspec_il
1497 enum bitfield.
1498 * c-parser.c (c_parser_declaration_or_fndef): Adjust accordingly.
1499 Pass start pass and declspec_il to c_parser_parse_gimple_body.
1500 (c_parser_declspecs): Adjust.
1501 * gimple-parser.c: Include cfg.h, cfghooks.h, cfganal.h, tree-cfg.h,
1502 gimple-iterator.h, cfgloop.h, tree-phinodes.h, tree-into-ssa.h
1503 and bitmap.h.
1504 (struct gimple_parser): New.
1505 (gimple_parser::push_edge): New method.
1506 (c_parser_gimple_parse_bb_spec): New helper.
1507 (c_parser_parse_gimple_body): Get start pass and IL specification.
1508 Initialize SSA and CFG.
1509 (c_parser_gimple_compound_statement): Handle CFG and SSA build.
1510 Build a gimple_parser parsing state and pass it along.
1511 (c_parser_gimple_statement): Change intermittend __PHI internal
1512 function argument for the edge.
1513 (c_parser_gimple_or_rtl_pass_list): Handle ssa, cfg flags.
1514 (c_parser_gimple_goto_stmt): Record edges to build.
1515 (c_parser_gimple_if_stmt): Likewise.
1516 * gimple-parser.h (c_parser_parse_gimple_body): Adjust.
1517 (c_parser_gimple_or_rtl_pass_list): Likewise.
1518
a3f9f006
ML
15192019-03-11 Martin Liska <mliska@suse.cz>
1520
1521 * c-decl.c (check_for_loop_decls): Wrap an option name
1522 in a string format message and fix GNU coding style.
1523 * c-parser.c (c_parser_declspecs): Likewise.
1524
1db01ff9
JJ
15252019-03-08 Jakub Jelinek <jakub@redhat.com>
1526
1527 PR tree-optimization/89550
1528 * c-decl.c (finish_function): Only set TREE_NO_WARNING if warning_at
1529 returned true.
1530 (c_write_global_declarations_1): Only set TREE_NO_WARNING if pedwarn
1531 or warning returned true.
1532
66dcb747
JJ
15332019-02-28 Jakub Jelinek <jakub@redhat.com>
1534
1535 PR c/89525
1536 * c-typeck.c (convert_arguments): Call inform_declaration only if
1537 the previous warning_at call returned true.
1538
2263c9f2
TS
15392019-02-22 Thomas Schwinge <thomas@codesourcery.com>
1540
1541 * c-parser.c (c_parser_oacc_shape_clause): Add loc formal
1542 parameter. Adjust all users.
1543 (c_parser_oacc_simple_clause): Replace parser with loc formal
1544 parameter. Adjust all users.
1545
ab20d992 15462019-02-19 Chung-Lin Tang <cltang@codesourcery.com>
19695f4d
CLT
1547
1548 PR c/87924
1549 * c-parser.c (c_parser_oacc_clause_wait): Add representation of wait
1550 clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.
1551
5f88ba10
JJ
15522019-02-15 Jakub Jelinek <jakub@redhat.com>
1553
1554 PR c/89340
1555 * c-decl.c (start_function): Clear TREE_PUBLIC on nested functions
1556 before c_decl_attributes rather than after it.
1557
cfc30fd1
JJ
15582019-02-06 Jakub Jelinek <jakub@redhat.com>
1559
1560 PR c/89211
1561 * c-parser.c (c_parser_declaration_or_fndef): Don't update
1562 DECL_ARGUMENTS of d if it has been defined already. Use a single if
1563 instead of 3 nested ifs.
1564
fbe83e6b
JM
15652019-02-06 Joseph Myers <joseph@codesourcery.com>
1566
1567 PR c/88584
1568 * c-decl.c (finish_decl): Do not complete array types for arrays
1569 with external linkage not at file scope.
1570
f461f938
RB
15712019-02-05 Richard Biener <rguenther@suse.de>
1572
1573 PR c/88606
1574 * c-decl.c (finish_struct): Reset TYPE_TRANSPARENT_AGGR on
1575 all type variants when not supported.
1576
fe509359
JJ
15772019-01-30 Jakub Jelinek <jakub@redhat.com>
1578
1579 PR c/89061
1580 * c-tree.h (C_DECL_COMPOUND_LITERAL_P): Define.
1581 * c-decl.c (decl_jump_unsafe): Return false for
1582 C_DECL_COMPOUND_LITERAL_P decls.
1583 (build_compound_literal): Set C_DECL_COMPOUND_LITERAL_P.
1584
6a335b96
JJ
15852019-01-29 Jakub Jelinek <jakub@redhat.com>
1586
f4b7e754
JJ
1587 PR c/89045
1588 * c-decl.c (build_compound_literal): Don't pushdecl if in parameter
1589 scope.
1590
6a335b96
JJ
1591 PR c/86125
1592 * c-decl.c (last_fileptr_type): Remove.
1593 (last_structptr_types): New variable.
1594 (match_builtin_function_types): Compare TYPE_MAIN_VARIANT of
1595 {old,new}rettype instead of the types themselves. Assert
1596 last_structptr_types array has the same number of elements
1597 as builtin_structptr_types array. Use TYPE_MAIN_VARIANT for
1598 argument oldtype and newtype. Instead of handling
1599 just fileptr_type_node specially, handle all builtin_structptr_types
1600 pointer nodes. Formatting fix.
1601
d8b5a1a0
MS
16022019-01-24 Martin Sebor <msebor@redhat.com>
1603
1604 PR c/86125
1605 PR c/88886
1606 PR middle-end/86308
1607 * c-decl.c (match_builtin_function_types): Add arguments.
1608 (diagnose_mismatched_decls): Diagnose mismatched declarations
1609 of built-ins more strictly.
1610
e21c4491
JJ
16112019-01-24 Jakub Jelinek <jakub@redhat.com>
1612
1613 PR c++/88976
1614 * c-typeck.c (c_finish_omp_cancel): Diagnose more than one if
1615 on #pragma omp cancel with different modifiers.
1616
420183d9
L
16172019-01-18 H.J. Lu <hongjiu.lu@intel.com>
1618
1619 PR c/51628
1620 PR c/88664
1621 * c-typeck.c (convert_for_assignment): Upate the
1622 warn_for_address_or_pointer_of_packed_member call.
1623
17ad43dd
TH
16242019-01-16 Tom Honermann <tom@honermann.net>
1625 Jason Merrill <jason@redhat.com>
1626
1627 * c-typeck.c (digest_init): Revised the error message produced for
1628 ill-formed cases of array initialization with a string literal.
1629 (error_init): Make variadic.
1630
5f07d78a
JJ
16312019-01-12 Jakub Jelinek <jakub@redhat.com>
1632
1633 * c-typeck.c (convert_for_assignment): Fix a comment typo.
1634
c4581bbf
JJ
16352019-01-07 Jakub Jelinek <jakub@redhat.com>
1636
1637 PR c/88701
1638 * c-decl.c (build_compound_literal): If not TREE_STATIC, only pushdecl
1639 if current_function_decl is non-NULL.
1640
65c5b1eb
JM
16412019-01-07 Joseph Myers <joseph@codesourcery.com>
1642
1643 PR c/88720
1644 PR c/88726
1645 * c-decl.c (pop_scope): Use TREE_PUBLIC and b->nested to determine
1646 whether a function is nested, not DECL_EXTERNAL. Diagnose inline
1647 functions declared but never defined only for external scope, not
1648 for other scopes.
1649
d8fcab68
JJ
16502019-01-07 Jakub Jelinek <jakub@redhat.com>
1651
1652 PR c++/85052
1653 * c-parser.c (c_parser_postfix_expression): Parse
1654 __builtin_convertvector.
1655
a5544970
JJ
16562019-01-01 Jakub Jelinek <jakub@redhat.com>
1657
1658 Update copyright years.
1659
da77eace
L
16602018-12-20 H.J. Lu <hongjiu.lu@intel.com>
1661
1662 PR c/51628
1663 * c-typeck.c (convert_for_assignment): Call
1664 warn_for_address_or_pointer_of_packed_member.
1665
1edf8866
SB
16662018-12-19 Segher Boessenkool <segher@kernel.crashing.org>
1667
1668 * c-parser.c (c_parser_asm_statement) <RID_CONST, RID_RESTRICT>: Give
1669 a more specific error message (instead of just falling through).
1670
db4fd626
SB
16712018-12-19 Segher Boessenkool <segher@kernel.crashing.org>
1672
1673 * c-parser.c (c_parser_asm_statement): Keep track of the location each
1674 asm qualifier is first seen; use that to give nicer "duplicate asm
1675 qualifier" messages. Delete 'quals" variable, instead pass the
1676 "is_volatile_ flag to build_asm_stmt directly.
1677 * c-tree.h (build_asm_stmt): Make the first arg bool instead of tree.
1678 * c-typeck.c (build_asm_stmt): Ditto; adjust.
1679
9c9cfcbb
SB
16802018-12-19 Segher Boessenkool <segher@kernel.crashing.org>
1681
1682 * c-parser.c (c_parser_asm_statement): Rewrite the loop to work without
1683 "done" boolean variable.
1684
a14feb3c
DM
16852018-12-19 David Malcolm <dmalcolm@redhat.com>
1686
1687 PR c++/87504
1688 * c-typeck.c (class maybe_range_label_for_tree_type_mismatch):
1689 Move from here to gcc-rich-location.h and gcc-rich-location.c.
1690 (build_binary_op): Use struct op_location_t and
1691 class binary_op_rich_location.
1692
6d939173
JJ
16932018-12-11 Jakub Jelinek <jakub@redhat.com>
1694
1695 PR sanitizer/88426
1696 * c-convert.c (convert): Call c_fully_fold before calling
1697 ubsan_instrument_float_cast.
1698
b7055028
SB
16992018-12-08 Segher Boessenkool <segher@kernel.crashing.org>
1700
1701 * c-parser (c_parser_asm_statement) [RID_INLINE]: Delete stray line
1702 setting "quals".
1703
5b76e75f
SB
17042018-12-06 Segher Boessenkool <segher@kernel.crashing.org>
1705
1706 * c-parser.c (c_parser_asm_statement): Detect the inline keyword
1707 after asm. Pass a flag for it to build_asm_expr.
1708 * c-tree.h (build_asm_expr): Update declaration.
1709 * c-typeck.c (build_asm_stmt): Add is_inline parameter. Use it to
1710 set ASM_INLINE_P.
1711
30bd42b9
SB
17122018-12-06 Segher Boessenkool <segher@kernel.crashing.org>
1713
1714 PR inline-asm/55681
1715 * c-parser.c (c_parser_asm_statement): Update grammar. Allow any
1716 combination of volatile and goto, in any order, without repetitions.
1717
9df6c0e4
JB
17182018-12-04 James Norris <jnorris@codesourcery.com>
1719 Cesar Philippidis <cesar@codesourcery.com>
1720 Julian Brown <julian@codesourcery.com>
1721
1722 * c-parser.c (c_parser_oacc_wait_list): Remove dead diagnostic
1723 code.
1724
f44697b7
RB
17252018-11-30 Richard Biener <rguenther@suse.de>
1726
1727 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
1728 _Literal (type) { ... } as empty aggregate or vector constructor.
1729
550dfbdc
MS
17302018-11-29 Martin Sebor <msebor@redhat.com>
1731
1732 PR c/88091
1733 * c-typeck.c (convert_argument): Add a parameter. Adjust indentation.
1734 (convert_arguments): Add comments. Pass additional argument to
1735 the function above.
1736
673670da
MS
17372018-11-29 Martin Sebor <msebor@redhat.com>
1738
1739 PR c/88172
1740 PR testsuite/88208
1741 * c-decl.c (declspec_add_alignas): Adjust call to check_user_alignment.
1742
db1d09b0
MS
17432018-11-23 Martin Sebor <msebor@redhat.com>
1744
1745 PR testsuite/88098
1746 * c-typeck.c (convert_arguments): Call builtin_decl_explicit instead.
1747 (maybe_warn_builtin_no_proto_arg): Handle short enum to int promotion.
1748
98f08eb8
MS
17492018-11-20 Martin Sebor <msebor@redhat.com>
1750
1751 * c-parser.c (c_parser_has_attribute_expression): New function.
1752 (c_parser_attribute): New function.
1753 (c_parser_attributes): Move code into c_parser_attribute.
1754 (c_parser_unary_expression): Handle RID_HAS_ATTRIBUTE_EXPRESSION.
1755
cd5da983
MS
17562018-11-15 Martin Sebor <msebor@redhat.com>
1757
1758 PR c/83656
1759 * c-decl.c (header_for_builtin_fn): Declare.
1760 (diagnose_mismatched_decls): Diagnose declarations of built-in
1761 functions without a prototype.
1762 * c-typeck.c (maybe_warn_builtin_no_proto_arg): New function.
1763 (convert_argument): Same.
1764 (convert_arguments): Factor code out into convert_argument.
1765 Detect mismatches between built-in formal arguments in calls
1766 to built-in without prototype.
1767 (build_conditional_expr): Same.
1768 (type_or_builtin_type): New function.
1769 (convert_for_assignment): Add argument. Conditionally issue
1770 warnings instead of errors for mismatches.
1771
620e594b
DM
17722018-11-13 David Malcolm <dmalcolm@redhat.com>
1773
1774 * c-decl.c: Replace "source_location" with "location_t".
1775 * c-tree.h: Likewise.
1776 * c-typeck.c: Likewise.
1777 * gimple-parser.c: Likewise.
1778
3179ebae
JJ
17792018-11-09 Jakub Jelinek <jakub@redhat.com>
1780
81a227c6
JJ
1781 * c-parser.c (c_parser_omp_clause_final): Use
1782 c_parser_expr_no_commas, convert_lvalue_to_rvalue,
1783 c_objc_common_truthvalue_conversion, c_fully_fold and parentheses
1784 parsing instead of c_parser_paren_condition.
1785 (c_parser_omp_clause_if): Use c_parser_expr_no_commas,
1786 convert_lvalue_to_rvalue, c_objc_common_truthvalue_conversion and
1787 c_fully_fold instead of c_parser_condition.
1788 (c_parser_omp_clause_num_threads, c_parser_omp_clause_num_tasks,
1789 c_parser_omp_clause_grainsize, c_parser_omp_clause_priority,
1790 c_parser_omp_clause_hint, c_parser_omp_clause_num_teams,
1791 c_parser_omp_clause_thread_limit, c_parser_omp_clause_linear): Use
1792 c_parser_expr_no_commas instead of c_parser_expression.
1793
98c91c56
JJ
1794 * c-parser.c (c_parser_omp_clause_reduction): Call sorry_at on
1795 reduction clause with inscan modifier.
1796
3179ebae
JJ
1797 * c-parser.c (c_parser_omp_requires): Call sorry_at on requires
1798 clauses other than atomic_default_mem_order.
1799
28567c40
JJ
18002018-11-08 Jakub Jelinek <jakub@redhat.com>
1801
1802 * c-parser.c: Include memmode.h.
1803 (c_parser_omp_depobj, c_parser_omp_requires): New functions.
1804 (c_parser_pragma): Handle PRAGMA_OMP_DEPOBJ and PRAGMA_OMP_REQUIRES.
1805 (c_parser_omp_clause_name): Handle nontemporal, in_reduction and
1806 task_reduction clauses.
1807 (c_parser_omp_variable_list): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION.
1808 For OMP_CLAUSE_DEPEND, parse clause operands as either an array
1809 section, or lvalue assignment expression.
1810 (c_parser_omp_clause_if): Handle cancel and simd modifiers.
1811 (c_parser_omp_clause_lastprivate): Parse optional
1812 conditional: modifier.
1813 (c_parser_omp_clause_hint): Require constant integer expression rather
1814 than just integer expression.
1815 (c_parser_omp_clause_defaultmap): Parse new kinds of defaultmap
1816 clause.
1817 (c_parser_omp_clause_reduction): Add IS_OMP and KIND arguments.
1818 Parse reduction modifiers. Pass KIND to c_parser_omp_variable_list.
1819 (c_parser_omp_clause_nontemporal, c_parser_omp_iterators): New
1820 functions.
1821 (c_parser_omp_clause_depend): Parse iterator modifier and handle
1822 iterators. Parse mutexinoutset and depobj kinds.
1823 (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_reduction
1824 callers.
1825 (c_parser_omp_all_clauses): Likewise. Handle
1826 PRAGMA_OMP_CLAUSE_NONTEMPORAL and
1827 PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION.
1828 (c_parser_omp_atomic): Parse hint and memory order clauses. Handle
1829 default memory order from requires directive if any. Adjust
1830 c_finish_omp_atomic caller.
1831 (c_parser_omp_critical): Allow comma in between (name) and hint clause.
1832 (c_parser_omp_flush): Parse flush with memory-order-clause.
1833 (c_parser_omp_for_loop): Allow NE_EXPR even in
1834 OpenMP loops, adjust c_finish_omp_for caller.
1835 (OMP_SIMD_CLAUSE_MASK): Add if and nontemporal clauses.
1836 (c_parser_omp_master): Add p_name, mask and cclauses arguments.
1837 Allow to be called while parsing combined parallel master.
1838 Parse combined master taskloop{, simd}.
1839 (c_parser_omp_parallel): Parse combined
1840 parallel master{, taskloop{, simd}} constructs.
1841 (OMP_TASK_CLAUSE_MASK): Add in_reduction clause.
1842 (OMP_TASKGROUP_CLAUSE_MASK): Define.
1843 (c_parser_omp_taskgroup): Add LOC argument. Parse taskgroup clauses.
1844 (OMP_TASKWAIT_CLAUSE_MASK): Define.
1845 (c_parser_omp_taskwait): Handle taskwait with depend clauses.
1846 (c_parser_omp_teams): Force a BIND_EXPR with BLOCK
1847 around teams body. Use SET_EXPR_LOCATION.
1848 (c_parser_omp_target_data): Allow target data
1849 with only use_device_ptr clauses.
1850 (c_parser_omp_target): Use SET_EXPR_LOCATION. Set
1851 OMP_REQUIRES_TARGET_USED bit in omp_requires_mask.
1852 (c_parser_omp_requires): New function.
1853 (c_finish_taskloop_clauses): New function.
1854 (OMP_TASKLOOP_CLAUSE_MASK): Add reduction and in_reduction clauses.
1855 (c_parser_omp_taskloop): Use c_finish_taskloop_clauses. Add forward
1856 declaration. Disallow in_reduction clause when combined with parallel
1857 master.
1858 (c_parser_omp_construct): Adjust c_parser_omp_master and
1859 c_parser_omp_taskgroup callers.
1860 * c-typeck.c (c_finish_omp_cancel): Diagnose if clause with modifier
1861 other than cancel.
1862 (handle_omp_array_sections_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION
1863 like OMP_CLAUSE_REDUCTION.
1864 (handle_omp_array_sections): Likewise. Call save_expr on array
1865 reductions before calling build_index_type. Handle depend clauses
1866 with iterators.
1867 (struct c_find_omp_var_s): New type.
1868 (c_find_omp_var_r, c_omp_finish_iterators): New functions.
1869 (c_finish_omp_clauses): Don't diagnose nonmonotonic clause
1870 with static, runtime or auto schedule kinds. Call save_expr for whole
1871 array reduction sizes. Diagnose reductions with zero sized elements
1872 or variable length structures. Diagnose nogroup clause used with
1873 reduction clause(s). Handle depend clause with
1874 OMP_CLAUSE_DEPEND_DEPOBJ. Diagnose bit-fields. Require
1875 omp_depend_t type for OMP_CLAUSE_DEPEND_DEPOBJ kinds and
1876 some different type for other kinds. Use build_unary_op with
1877 ADDR_EXPR and build_indirect_ref instead of c_mark_addressable.
1878 Handle depend clauses with iterators. Remove no longer needed special
1879 case that predetermined const qualified vars may be specified in
1880 firstprivate clause. Complain if const qualified vars are mentioned
1881 in data-sharing clauses other than firstprivate or shared. Use
1882 error_at with OMP_CLAUSE_LOCATION (c) as first argument instead of
1883 error. Formatting fix. Handle OMP_CLAUSE_NONTEMPORAL and
1884 OMP_CLAUSE_{IN,TASK}_REDUCTION. Allow any lvalue as
1885 OMP_CLAUSE_DEPEND operand (besides array section), adjust diagnostics.
1886
7e2de6df
DM
18872018-10-29 David Malcolm <dmalcolm@redhat.com>
1888
1889 * c-decl.c (implicit_decl_warning): Update "is there a suggestion"
1890 logic for change to name_hint::operator bool.
1891 (undeclared_variable): Likewise.
1892 * c-parser.c (c_parser_declaration_or_fndef): Likewise.
1893 (c_parser_parameter_declaration): Likewise.
1894
9f936c86
JM
18952018-10-17 Joseph Myers <joseph@codesourcery.com>
1896
1897 * c-errors.c (pedwarn_c11): New function.
1898 * c-parser.c (disable_extension_diagnostics): Save
1899 warn_c11_c2x_compat and set it to 0.
1900 (restore_extension_diagnostics): Restore warn_c11_c2x_compat.
1901 (c_parser_static_assert_declaration_no_semi): Handle
1902 _Static_assert without string constant.
1903 * c-tree.h (pedwarn_c11): New prototype.
1904
033eb567
DM
19052018-10-17 David Malcolm <dmalcolm@redhat.com>
1906
1907 * Make-lang.in (selftest-c): New.
1908 (C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
1909 (selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move here
1910 from gcc/Makefile.in.
1911
0edf3afe
RB
19122018-10-02 Richard Biener <rguenther@suse.de>
1913
1914 * c-decl.c (warn_if_shadowing): Do not test DECL_FROM_INLINE.
1915
8313a764
JM
19162018-09-26 Joseph Myers <joseph@codesourcery.com>
1917
1918 PR c/87390
1919 * c-typeck.c (build_binary_op): Use excess precision for
1920 comparisons of integers and floating-point for C11 and later.
1921
ce6f0888
MJ
19222018-09-26 Martin Jambor <mjambor@suse.cz>
1923
1924 PR c/87347
1925 * c-parser.c (warn_for_abs): Bail out if TYPE_ARG_TYPES is NULL. Fix
ab20d992 1926 comment.
ce6f0888 1927
9c4a4b3c
DM
19282018-09-17 David Malcolm <dmalcolm@redhat.com>
1929
1930 * c-objc-common.c (range_label_for_type_mismatch::get_text):
1931 Update for new param.
1932 * c-typeck.c (maybe_range_label_for_tree_type_mismatch::get_text):
1933 Likewise.
1934
80c6d1f4
MJ
19352018-09-17 Martin Jambor <mjambor@suse.cz>
1936
1937 PR c/63886
1938 * c-parser.c: (warn_for_abs): New function.
1939 (c_parser_postfix_expression_after_primary): Call it.
1940
4a426e36
BE
19412018-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
1942
1943 * c-typeck.c (digest_init): Shorten overlength strings.
1944
6d900107
BE
19452018-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
1946
1947 * c-decl.c (finish_decl): Call complete_flexible_array_elts.
1948
b5764229
BE
19492018-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
1950
1951 * c-decl.c (finish_decl): Call braced_list_to_string here ...
1952 * c-parser.c (c_parser_declaration_or_fndef): ... instead of here.
1953
22eea6b2
AM
19542018-08-30 Alexander Monakov <amonakov@ispras.ru>
1955
1956 * gimple-parser.c (c_parser_gimple_binary_expression): Accept infix
1957 "__MULT_HIGHPART" for MULT_HIGHPART_EXPR.
1958
85204e23
DM
19592018-08-27 David Malcolm <dmalcolm@redhat.com>
1960
1961 PR 87091
1962 * c-decl.c (implicitly_declare): Update call to
1963 maybe_add_include_fixit to suggest overriding the location, as it
1964 is for a note.
1965 * c-objc-common.c (c_tree_printer): Update for conversion of
1966 show_caret_p to a tri-state.
1967
3d78e008
ML
19682018-08-27 Martin Liska <mliska@suse.cz>
1969
1970 * c-decl.c (locate_old_decl): Use new function
92a285c1
ML
1971 fndecl_built_in_p and remove check for FUNCTION_DECL if
1972 possible.
3d78e008
ML
1973 (diagnose_mismatched_decls): Likewise.
1974 (merge_decls): Likewise.
1975 (warn_if_shadowing): Likewise.
1976 (pushdecl): Likewise.
1977 (implicitly_declare): Likewise.
1978 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
1979 * c-tree.h (C_DECL_ISNT_PROTOTYPE): Likewise.
1980 * c-typeck.c (build_function_call_vec): Likewise.
1981 (convert_arguments): Likewise.
1982
097f82ec
DM
19832018-08-20 David Malcolm <dmalcolm@redhat.com>
1984
1985 PR other/84889
1986 * c-decl.c (pushtag): Add auto_diagnostic_group instance.
1987 (diagnose_mismatched_decls): Likewise, in various places.
1988 (warn_if_shadowing): Likewise.
1989 (implicit_decl_warning): Likewise.
1990 (implicitly_declare): Likewise.
1991 (undeclared_variable): Likewise.
1992 (declare_label): Likewise.
1993 (grokdeclarator): Likewise.
1994 (start_function): Likewise.
1995 * c-parser.c (c_parser_declaration_or_fndef): Likewise.
1996 (c_parser_parameter_declaration): Likewise.
1997 (c_parser_binary_expression): Likewise.
1998 * c-typeck.c (c_expr_sizeof_expr): Likewise.
1999 (parser_build_binary_op): Likewise.
2000 (build_unary_op): Likewise.
2001 (error_init): Likewise.
2002 (pedwarn_init): Likewise.
2003 (warning_init): Likewise.
2004 (convert_for_assignment): Likewise.
2005
96e6ae57
DM
20062018-08-15 David Malcolm <dmalcolm@redhat.com>
2007
2008 * c-objc-common.c: Include "gcc-rich-location.h".
2009 (c_tree_printer): Move implemenation of '%T' to...
2010 (print_type): ...this new function.
2011 (range_label_for_type_mismatch::get_text): New function.
2012 * c-typeck.c (convert_for_assignment): Add type labels to the rhs
2013 range for the various ic_argpass cases.
2014 (class maybe_range_label_for_tree_type_mismatch): New class.
2015 (build_binary_op): Use it when calling binary_op_error.
2016
0cd020ae 20172018-08-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
ab20d992 2018
0cd020ae
PK
2019 * c-decl.c (start_decl): Do not warn if variables is named as main
2020 and is a local variable.
2021
72733314
IS
20222018-08-15 Iain Sandoe <iain@sandoe.co.uk>
2023
2024 PR c/19315
2025 * c-decl.c (finish_decl): Don't add the 'extern' storage class to
2026 objects of unknown size.
2027
23aa9f7c
MS
20282018-08-13 Martin Sebor <msebor@redhat.com>
2029
2030 PR tree-optimization/71625
2031 * c-parser.c (c_parser_declaration_or_fndef): Call
2032 braced_list_to_string.
2033
e5e7e50d
BH
20342018-08-03 Bogdan Harjoc <harjoc@gmail.com>
2035
2036 PR c/86690
2037 * c-typeck.c (lookup_field): Do not use TYPE_LANG_SPECIFIC after
2038 errors.
2039
8a45b051
MS
20402018-08-01 Martin Sebor <msebor@redhat.com>
2041
2042 PR tree-optimization/86650
2043 * c-objc-common.c (c_tree_printer): Move usage of EXPR_LOCATION (t)
2044 and TREE_BLOCK (t) from within percent_K_format to this callsite.
2045
5922dcb5
JJ
20462018-08-01 Jakub Jelinek <jakub@redhat.com>
2047
2048 PR c/85704
2049 * c-typeck.c (init_field_decl_cmp): New function.
2050 (output_pending_init_elements): Use it for field comparisons
2051 instead of pure bit_position comparisons.
2052
9b452033
JJ
20532018-07-12 Jakub Jelinek <jakub@redhat.com>
2054
2055 * c-decl.c (c_decl_attributes): Don't diagnose vars without mappable
2056 type here, instead add "omp declare target implicit" attribute.
2057 (finish_decl): Diagnose vars without mappable type here.
2058
ab20d992
JJ
20592018-06-20 Chung-Lin Tang <cltang@codesourcery.com>
2060 Thomas Schwinge <thomas@codesourcery.com>
829c6349
CLT
2061 Cesar Philippidis <cesar@codesourcery.com>
2062
2063 * c-parser.c (c_parser_omp_clause_name): Add support for finalize
2064 and if_present. Make present_or_{copy,copyin,copyout,create} aliases
2065 to their non-present_or_* counterparts. Make 'self' an alias to
2066 PRAGMA_OACC_CLAUSE_HOST.
2067 (c_parser_oacc_data_clause): Update GOMP mappings for
2068 PRAGMA_OACC_CLAUSE_{COPY,COPYIN,COPYOUT,CREATE,DELETE}. Remove
2069 PRAGMA_OACC_CLAUSE_{SELF,PRESENT_OR_*}.
2070 (c_parser_oacc_all_clauses): Handle finalize and if_present clauses.
2071 Remove support for present_or_* clauses.
2072 (OACC_KERNELS_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
2073 (OACC_PARALLEL_CLAUSE_MASK): Likewise.
2074 (OACC_DECLARE_CLAUSE_MASK): Likewise.
2075 (OACC_DATA_CLAUSE_MASK): Likewise.
2076 (OACC_ENTER_DATA_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
2077 (OACC_EXIT_DATA_CLAUSE_MASK): Add FINALIZE clause.
2078 (OACC_UPDATE_CLAUSE_MASK): Remove SELF, add IF_PRESENT.
2079 (c_parser_oacc_declare): Remove PRESENT_OR_* clauses.
2080 * c-typeck.c (c_finish_omp_clauses): Handle IF_PRESENT and FINALIZE.
2081
e197e64e
KV
20822018-06-16 Kugan Vivekanandarajah <kuganv@linaro.org>
2083
2084 * c-typeck.c (build_unary_op): Handle ABSU_EXPR;
2085 * gimple-parser.c (c_parser_gimple_statement): Likewise.
2086 (c_parser_gimple_unary_expression): Likewise.
2087
487f2f61
JJ
20882018-06-15 Jakub Jelinek <jakub@redhat.com>
2089
2090 PR c/86093
2091 * c-typeck.c (pointer_diff): Cast both pointers to unqualified types
2092 before doing POINTER_DIFF_EXPR.
2093
e4d44a37
MP
20942018-06-07 Marek Polacek <polacek@redhat.com>
2095
2096 PR c/85318
2097 * c-decl.c (check_for_loop_decls): Add -Wc90-c99-compat warning about
2098 for loop initial declarations.
2099
b67b9225
DP
21002018-05-30 David Pagan <dave.pagan@oracle.com>
2101
2102 PR c/55976
2103 * c-decl.c (grokdeclarator): Update check for return type warnings.
2104 (start_function): Likewise.
2105 (finish_function): Likewise.
2106 * c-typeck.c (c_finish_return): Update check for return type warnings.
2107 Pass OPT_Wreturn_type to pedwarn when appropriate.
2108
c566cc9f
RS
21092018-05-18 Richard Sandiford <richard.sandiford@linaro.org>
2110
2111 * gimple-parser.c (c_parser_gimple_postfix_expression): Remove
2112 __FMA_EXPR handlng.
2113
e4f81565
RS
21142018-05-17 Richard Sandiford <richard.sandiford@linaro.org>
2115
2116 * gimple-parser.c: Include internal-fn.h.
2117 (c_parser_gimple_statement): Treat a leading CPP_DOT as a call.
2118 (c_parser_gimple_call_internal): New function.
2119 (c_parser_gimple_postfix_expression): Use it to handle CPP_DOT.
2120 Fix typos in comment.
2121
79e7b1fe
JJ
21222018-05-10 Jakub Jelinek <jakub@redhat.com>
2123
2124 PR c++/85662
2125 * c-fold.c (c_fully_fold_internal): Use fold_offsetof rather than
2126 fold_offsetof_1, pass TREE_TYPE (expr) as TYPE to it and drop the
2127 fold_convert_loc.
2128 * c-typeck.c (build_unary_op): Use fold_offsetof rather than
2129 fold_offsetof_1, pass argtype as TYPE to it and drop the
2130 fold_convert_loc.
2131
f7584c81
DP
21322018-05-02 David Pagan <dave.pagan@oracle.com>
2133
2134 PR c/30552
2135 * c-decl.c (old_style_parameter_scope): New function.
2136 * c-parser.c (c_parser_postfix_expression): Check for statement
2137 expressions in old-style function parameter list declarations.
2138 * c-parser.h (old_style_parameter_scope): New extern declaration.
2139
b33a0cb3
JJ
21402018-04-25 Jakub Jelinek <jakub@redhat.com>
2141
2142 PR sanitizer/84307
2143 * c-decl.c (build_compound_literal): Call pushdecl (decl) even when
2144 it is not TREE_STATIC.
2145 * c-typeck.c (c_mark_addressable) <case COMPOUND_LITERAL_EXPR>: Mark
2146 not just the COMPOUND_LITERAL_EXPR node itself addressable, but also
2147 its COMPOUND_LITERAL_EXPR_DECL.
2148
c5c5822a
JM
21492018-03-21 Joseph Myers <joseph@codesourcery.com>
2150
2151 * c-parser.c (c_parser_postfix_expression): For __builtin_tgmath
2152 where all functions return the same _FloatN or _FloatNx type,
2153 treat integer types as _Float64 instead of double.
2154
aa1c9429
JJ
21552018-03-21 Jakub Jelinek <jakub@redhat.com>
2156
2157 PR c/84999
2158 * c-typeck.c (build_binary_op): If c_common_type_for_size fails when
2159 building vector comparison, diagnose it and return error_mark_node.
2160
9bb45a95
JJ
21612018-03-15 Jakub Jelinek <jakub@redhat.com>
2162
2163 PR c/84853
2164 * c-typeck.c (build_binary_op) <case RSHIFT_EXPR, case LSHIFT_EXPR>:
2165 If code1 is INTEGER_TYPE, only allow code0 VECTOR_TYPE if it has
2166 INTEGER_TYPE element type.
2167
ada6bad9
DP
21682018-03-13 David Pagan <dave.pagan@oracle.com>
2169
2170 PR c/46921
2171 * c-typeck.c (output_init_element): Ensure field initializer
2172 expression is always evaluated if there are side effects.
2173
849bbdb9
JJ
21742018-03-06 Jakub Jelinek <jakub@redhat.com>
2175
2176 PR c/84721
2177 * c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if
2178 !building_stmt_list_p ().
2179
d74641bd
RS
21802018-02-13 Richard Sandiford <richard.sandiford@linaro.org>
2181
2182 PR c/84305
2183 * c-decl.c (grokdeclarator): Create an anonymous TYPE_DECL
2184 in PARM and TYPENAME contexts too, but attach it to a BIND_EXPR
2185 and include the BIND_EXPR in the list of things that need to be
2186 pre-evaluated.
2187
0444aa9c
NS
21882018-02-09 Nathan Sidwell <nathan@acm.org>
2189
2190 PR c/84293
2191 * c-typeck.c (build_indirect_ref, build_c_cast): Pass expr location
2192 to strict_aliasing_warning.
2193
7c30b12a
PC
21942018-02-02 Paolo Carlini <paolo.carlini@oracle.com>
2195
2196 * c-typeck.c (really_start_incremental_init, push_init_level,
2197 set_nonincremental_init, output_init_element, process_init_element):
2198 Use DECL_UNNAMED_BIT_FIELD.
2199
2be4dfcb
MP
22002018-01-31 Marek Polacek <polacek@redhat.com>
2201
2202 PR c/81779
2203 * c-parser.c (c_parser_compound_statement_nostart): Call
2204 expansion_point_location_if_in_system_header.
2205
bb9869d5
DM
22062018-01-17 David Malcolm <dmalcolm@redhat.com>
2207
2208 PR c++/83814
2209 * c-fold.c (fold_for_warn): Move from c-common.c, reducing to just
2210 the C part.
2211
b4923738
JJ
22122018-01-13 Jakub Jelinek <jakub@redhat.com>
2213
2214 PR c/83801
2215 * c-tree.h (decl_constant_value_1): Add a bool argument.
2216 * c-typeck.c (decl_constant_value_1): Add IN_INIT argument, allow
2217 returning a CONSTRUCTOR if it is true. Use error_operand_p.
2218 (decl_constant_value): Adjust caller.
2219 * c-fold.c (c_fully_fold_internal): If in_init, pass true to
2220 decl_constant_value_1 as IN_INIT. Otherwise, punt if
2221 decl_constant_value returns initializer that has BLKmode or
2222 array type.
2223 (c_fully_fold_internal) <case COMPONENT_REF>: Fold if !lval.
2224
928686b1
RS
22252018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
2226 Alan Hayward <alan.hayward@arm.com>
2227 David Sherwood <david.sherwood@arm.com>
2228
2229 * c-typeck.c (comptypes_internal, build_binary_op): Handle polynomial
2230 TYPE_VECTOR_SUBPARTS.
2231
85ec4feb
JJ
22322018-01-03 Jakub Jelinek <jakub@redhat.com>
2233
2234 Update copyright years.
2235
913884f7
JJ
22362018-01-01 Jakub Jelinek <jakub@redhat.com>
2237
2238 PR c/83595
2239 * c-parser.c (c_parser_braced_init, c_parser_initelt,
2240 c_parser_conditional_expression, c_parser_cast_expression,
2241 c_parser_sizeof_expression, c_parser_alignof_expression,
2242 c_parser_postfix_expression, c_parser_omp_declare_reduction,
2243 c_parser_transaction_expression): Use set_error () method instead
2244 of setting value member to error_mark_node.
2245
c6cfa2bf
MM
22462017-12-28 Michael Meissner <meissner@linux.vnet.ibm.com>
2247
2248 * c-decl.c (header_for_builtin_fn): Add integer rounding _Float<N>
2249 and _Float<N>X built-in functions.
2250
11d29d63
JJ
22512017-12-22 Jakub Jelinek <jakub@redhat.com>
2252
14ec014e
JJ
2253 PR debug/83550
2254 * c-decl.c (finish_struct): Set DECL_SOURCE_LOCATION on
2255 TYPE_STUB_DECL and call rest_of_type_compilation before processing
2256 incomplete vars rather than after it.
2257
11d29d63
JJ
2258 PR debug/83547
2259 * c-typeck.c (c_finish_stmt_expr): Ignore !TREE_SIDE_EFFECTS as
2260 indicator of ({ }), instead skip all trailing DEBUG_BEGIN_STMTs first,
2261 and consider empty ones if there are no other stmts. For
2262 -Wunused-value walk all statements before the one only followed by
2263 DEBUG_BEGIN_STMTs.
2264
170a8bd6 22652017-12-22 Mike Stump <mikestump@comcast.net>
92a285c1 2266 Eric Botcazou <ebotcazou@adacore.com>
170a8bd6
EB
2267
2268 * c-parser.c (c_parser_while_statement): Add unroll parameter and
2269 build ANNOTATE_EXPR if present. Add 3rd operand to ANNOTATE_EXPR.
2270 (c_parser_do_statement): Likewise.
2271 (c_parser_for_statement): Likewise.
2272 (c_parser_statement_after_labels): Adjust calls to above.
2273 (c_parse_pragma_ivdep): New static function.
2274 (c_parser_pragma_unroll): Likewise.
2275 (c_parser_pragma) <PRAGMA_IVDEP>: Add support for pragma Unroll.
2276 <PRAGMA_UNROLL>: New case.
2277
01512446
JJ
22782017-12-19 Jakub Jelinek <jakub@redhat.com>
2279
2280 * c-typeck.c (comptypes_internal, function_types_compatible_p,
2281 perform_integral_promotions, digest_init): Replace Yoda conditions
2282 with typical order conditions.
2283 * c-decl.c (check_bitfield_type_and_width): Likewise.
2284
c65e18d3
BE
22852017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
2286
2287 * c-typeck.c (c_safe_arg_type_equiv_p,
2288 c_safe_function_type_cast_p): New function.
2289 (build_c_cast): Implement -Wcast-function-type.
2290
b7280579
RB
22912017-12-14 Richard Biener <rguenther@suse.de>
2292
2293 PR c/83415
2294 * c-fold.c (c_fully_fold_internal): Treat VIEW_CONVERT_EXPR
2295 like REALPART_EXPR for the behavior of whether its operand
2296 is an lvalue.
2297
49e6a6c0
MP
22982017-12-12 Marek Polacek <polacek@redhat.com>
2299
2300 PR c/82679
2301 * c-decl.c (grokdeclarator): Check declspecs insted of atomicp.
2302
ab20d992 23032017-12-12 Alexandre Oliva <aoliva@redhat.com>
96a95ac1
AO
2304
2305 * c-objc-common.h (LANG_HOOKS_EMITS_BEGIN_STMT): Redefine as true.
2306 * c-parser.c (add_debug_begin_stmt): New.
2307 (c_parser_declaration_or_fndef): Call it.
2308 (c_parser_compound_statement_nostart): Likewise.
2309 (c_parser_statement_after_labels): Likewise.
2310 * c-typeck (c_finish_stmt_expr): Skip begin stmts markers.
2311
4b2b493f
JM
23122017-12-07 Joseph Myers <joseph@codesourcery.com>
2313
2314 * c-decl.c (build_compound_literal): Add parameter alignas_align
2315 and set alignment of decl if nonzero.
2316 * c-parser.c (c_keyword_starts_typename): Allow RID_ALIGNAS.
2317 (c_parser_declspecs): Allow RID_ALIGNAS to follow a type, like a
2318 qualifier.
2319 (c_parser_struct_declaration): Update syntax comment.
2320 (c_parser_type_name): Add alignas_ok argument and pass it to
2321 c_parser_declspecs.
2322 (c_parser_cast_expression): Pass true to c_parser_type_name and
2323 give error if a cast used an _Alignas specifier.
2324 (c_parser_sizeof_expression): Pass true to c_parser_type_name and
2325 give error if sizeof (type-name) used an _Alignas specifier.
2326 (c_parser_alignof_expression): Pass true to c_parser_type_name and
2327 give error if _Alignof (type-name) used an _Alignas specifier.
2328 (c_parser_postfix_expression_after_paren_type): Check specified
2329 alignment for a compound literal and pass it to
2330 build_compound_literal.
2331 * c-parser.h (c_parser_type_name): Update prototype.
2332 * c-tree.h (build_compound_literal): Update prototype.
2333
5d9ae53d
MS
23342017-12-07 Martin Sebor <msebor@redhat.com>
2335
2336 PR c/81544
2337 * c-decl.c (c_decl_attributes): Look up existing declaration and
2338 pass it to decl_attributes.
2339
c79144f8
DM
23402017-12-06 David Malcolm <dmalcolm@redhat.com>
2341
2342 PR c/83236
2343 * c-decl.c (lookup_name_fuzzy): Don't suggest names that are
2344 reserved for use by the implementation.
2345
613bc14f
DM
23462017-12-06 David Malcolm <dmalcolm@redhat.com>
2347
2348 * c-decl.c: Include "c-family/c-spellcheck.h".
2349
05abad4c
ML
23502017-12-05 Martin Liska <mliska@suse.cz>
2351 Jakub Jelinek <jakub@redhat.com>
2352
2353 * c-typeck.c (pointer_diff): Add new argument and instrument
2354 pointer subtraction.
2355 (build_binary_op): Similar for pointer comparison.
2356
cc6534d4
JJ
23572017-12-01 Jakub Jelinek <jakub@redhat.com>
2358
65791f42
JJ
2359 PR c/79153
2360 * c-parser.c: Include tree-iterator.h.
2361 (c_parser_switch_statement): Emit LABEL_EXPR for the break label
2362 into SWITCH_BODY instead of after it and set SWITCH_BREAK_LABEL_P
2363 on it.
2364
cc6534d4
JJ
2365 PR c/83222
2366 * c-tree.h (decl_constant_value_1): Declare.
2367 * c-typeck.c (decl_constant_value_1): New function.
2368 (decl_constant_value): Use it.
2369 * c-fold.c (c_fully_fold_internal): If in_init, use
2370 decl_constant_value_1 instead of decl_constant_value.
2371
5de73c05
JJ
23722017-11-30 Jakub Jelinek <jakub@redhat.com>
2373
2374 * c-parser.c (c_parser_postfix_expression): Use ; instead of ;;.
2375
058f0b9e
JJ
23762017-11-28 Jakub Jelinek <jakub@redhat.com>
2377
2378 PR sanitizer/81275
2379 * c-typeck.c (c_finish_case): Set SWITCH_ALL_CASES_P if
2380 c_switch_covers_all_cases_p returns true.
2381
5e9d6aa4 23822017-11-28 Julia Koval <julia.koval@intel.com>
92a285c1 2383 Sebastian Peryt <sebastian.peryt@intel.com>
5e9d6aa4
JK
2384
2385 * Make-lang.in (c/c-array-notation.o): Remove.
2386 * c-array-notation.c: Delete.
2387 * c-decl.c: Remove cilkplus condition.
2388 * c-parser.c (c_parser_cilk_simd, c_parser_cilk_for,
2389 c_parser_cilk_verify_simd, c_parser_array_notation,
2390 c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize,
2391 c_parser_cilk_simd_fn_vector_attrs,
2392 c_finish_cilk_simd_fn_tokens): Delete.
2393 (c_parser_declaration_or_fndef): Remove cilkplus condition.
2394 (c_parser_direct_declarator_inner): Ditto.
2395 (CILK_SIMD_FN_CLAUSE_MASK): Delete.
2396 (c_parser_attributes, c_parser_compound_statement,
2397 c_parser_statement_after_labels, c_parser_if_statement,
2398 c_parser_switch_statement, c_parser_while_statement,
2399 c_parser_do_statement, c_parser_for_statement,
2400 c_parser_unary_expression, c_parser_postfix_expression,
2401 c_parser_postfix_expression_after_primary,
2402 c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses,
2403 c_parser_omp_for_loop, c_finish_omp_declare_simd): Remove cilkplus
2404 support.
2405 * c-typeck.c (build_array_ref, build_function_call_vec,
2406 convert_arguments,
2407 lvalue_p, build_compound_expr, c_finish_return, c_finish_if_stmt,
2408 c_finish_loop, build_binary_op): Remove cilkplus support.
2409
9e851845
JJ
24102017-11-28 Jakub Jelinek <jakub@redhat.com>
2411
2412 * c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead
2413 of build3.
2414
ab20d992 24152017-11-14 Boris Kolpackov <boris@codesynthesis.com>
8c7dbea9
BK
2416
2417 * Make-lang.in (c.install-plugin): Install backend import library.
2418
41521dee
JJ
24192017-11-23 Jakub Jelinek <jakub@redhat.com>
2420
2421 * c-parser.c (c_parser_omp_declare_simd): Reject declare simd in
2422 pragma_stmt context.
2423
ac9effed
EB
24242017-11-23 Mike Stump <mikestump@comcast.net>
2425 Eric Botcazou <ebotcazou@adacore.com>
2426
2427 * c-parser.c (c_parser_while_statement): Pass 3rd operand to
2428 ANNOTATE_EXPR.
2429 (c_parser_do_statement): Likewise.
2430 (c_parser_for_statement): Likewise.
2431
ce95abc4
DM
24322017-11-22 David Malcolm <dmalcolm@redhat.com>
2433
2434 PR c++/62170
2435 * c-objc-common.c (c_tree_printer): Convert penultimate param from
2436 bool to bool *. Within '%T' handling, if showing an "aka", use
2437 "quoted" param to add appropriate quoting.
2438
974aedcc
MP
24392017-11-22 Marek Polacek <polacek@redhat.com>
2440
2441 PR c++/60336
2442 PR middle-end/67239
2443 PR target/68355
2444 * c-decl.c (grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.
2445
d4300cc6
DM
24462017-11-21 David Malcolm <dmalcolm@redhat.com>
2447
2448 PR c/83056
2449 * c-decl.c (lookup_name_fuzzy): Don't suggest names that came from
2450 earlier failed lookups.
2451
1af4ebf5
MG
24522017-11-21 Marc Glisse <marc.glisse@inria.fr>
2453
2454 * c-fold.c (c_fully_fold_internal): Handle POINTER_DIFF_EXPR.
2455 * c-typeck.c (pointer_diff): Use POINTER_DIFF_EXPR.
2456
26edace6
DM
24572017-11-20 David Malcolm <dmalcolm@redhat.com>
2458
2459 PR c/81404
2460 * c-decl.c: Include "c-family/known-headers.h".
2461 (get_c_name_hint): Rename to get_stdlib_header_for_name and move
2462 to known-headers.cc.
2463 (class suggest_missing_header): Move to known-header.h.
2464 (lookup_name_fuzzy): Call get_c_stdlib_header_for_name rather
2465 than get_c_name_hint.
2466
b1212255
DM
24672017-11-20 David Malcolm <dmalcolm@redhat.com>
2468
2469 * c-decl.c (get_c_name_hint): New function.
2470 (class suggest_missing_header): New class.
2471 (lookup_name_fuzzy): Call get_c_name_hint and use it to
2472 suggest missing headers to the user.
2473
6c7a259b
DM
24742017-11-20 David Malcolm <dmalcolm@redhat.com>
2475
2476 * c-decl.c: Define INCLUDE_UNIQUE_PTR before including system.h.
2477 Include "c-family/name-hint.h"
2478 (implicit_decl_warning): Convert "hint" from
2479 const char * to name_hint. Pass location to
2480 lookup_name_fuzzy. Suppress any deferred diagnostic if the
2481 warning was not printed.
2482 (undeclared_variable): Likewise for "guessed_id".
2483 (lookup_name_fuzzy): Convert return type from const char *
2484 to name_hint. Add location_t param.
2485 * c-parser.c: Define INCLUDE_UNIQUE_PTR before including system.h.
2486 Include "c-family/name-hint.h"
2487 (c_parser_declaration_or_fndef): Convert "hint" from
2488 const char * to name_hint. Pass location to lookup_name_fuzzy.
2489 (c_parser_parameter_declaration): Likewise.
2490
f9c59f7e
JJ
24912017-11-19 Jakub Jelinek <jakub@redhat.com>
2492
2493 PR c/66618
2494 PR c/69960
2495 * c-parser.c (c_parser_omp_atomic): Pass true as LVAL to c_fully_fold
2496 where needed.
2497 * c-typeck.c (build_unary_op, build_modify_expr, build_asm_expr,
2498 handle_omp_array_sections): Likewise.
2499 (digest_init): Don't call decl_constant_value_for_optimization.
2500 * c-tree.h (decl_constant_value_for_optimization): Removed.
2501 * c-fold.c (c_fold_array_ref): New function.
2502 (c_fully_fold_internal): Add LVAL argument, propagate it through
2503 recursive calls. For VAR_P call decl_constant_value and
2504 unshare if not LVAL and either optimizing or IN_INIT. Remove
2505 decl_constant_value_for_optimization calls. If IN_INIT and not LVAL,
2506 fold ARRAY_REF with STRING_CST and INTEGER_CST operands.
2507 (c_fully_fold): Add LVAL argument, pass it through to
2508 c_fully_fold_internal.
2509 (decl_constant_value_for_optimization): Removed.
2510
3ca0dc60
JM
25112017-11-15 Joseph Myers <joseph@codesourcery.com>
2512
2513 PR c/81156
2514 * c-parser.c (check_tgmath_function): New function.
2515 (enum tgmath_parm_kind): New enum.
2516 (c_parser_postfix_expression): Handle __builtin_tgmath.
2517
64a5912c
DM
25182017-10-31 David Malcolm <dmalcolm@redhat.com>
2519
2520 * c-decl.c (implicit_decl_warning): Update for renaming of
2521 pedwarn_at_rich_loc and warning_at_rich_loc.
2522 (implicitly_declare): Likewise for renaming of inform_at_rich_loc.
2523 (undeclared_variable): Likewise for renaming of error_at_rich_loc.
2524 * c-parser.c (c_parser_declaration_or_fndef): Likewise.
2525 (c_parser_struct_or_union_specifier): Likewise for renaming of
2526 pedwarn_at_rich_loc.
2527 (c_parser_parameter_declaration): Likewise for renaming of
2528 error_at_rich_loc.
2529 * c-typeck.c (build_component_ref): Likewise.
2530 (build_unary_op): Likewise for renaming of inform_at_rich_loc.
2531 (pop_init_level): Likewise for renaming of warning_at_rich_loc.
2532 (set_init_label): Likewise for renaming of error_at_rich_loc.
2533
c1136864
RB
25342017-10-30 Richard Biener <rguenther@suse.de>
2535
2536 * gimple-parser.c (c_parser_gimple_statement): Parse conditional
2537 stmts.
2538
ee5fd23a
MM
25392017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com>
2540
2541 * c-decl.c (header_for_builtin_fn): Add support for copysign, fma,
2542 fmax, fmin, and sqrt _Float<N> and _Float<N>X variants.
2543
1a59ccf2
DM
25442017-10-25 David Malcolm <dmalcolm@redhat.com>
2545
2546 PR c/7356
2547 * c-parser.c (c_parser_declaration_or_fndef): Detect missing
2548 semicolons.
2549
bc1a75dd
JJ
25502017-10-25 Jakub Jelinek <jakub@redhat.com>
2551
2552 PR libstdc++/81706
2553 * c-decl.c (merge_decls): Copy "omp declare simd" attributes from
2554 newdecl to corresponding __builtin_ if any.
2555
ff1ff960
PC
25562017-10-24 Paolo Carlini <paolo.carlini@oracle.com>
2557
2558 PR c++/82466
2559 * c-decl.c (diagnose_mismatched_decls): Use
2560 OPT_Wbuiltin_declaration_mismatch.
2561
62e1c678
DM
25622017-10-12 David Malcolm <dmalcolm@redhat.com>
2563
2564 * c-parser.c (c_parser_require): Add "type_is_unique" param and
2565 use it to guard calls to maybe_suggest_missing_token_insertion.
2566 (c_parser_parms_list_declarator): Override default value of new
2567 "type_is_unique" param to c_parser_require.
2568 (c_parser_asm_statement): Likewise.
2569 * c-parser.h (c_parser_require): Add "type_is_unique" param,
2570 defaulting to true.
2571
a92f6726
NS
25722017-10-11 Nathan Sidwell <nathan@acm.org>
2573
2574 * c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too.
2575
8e6cdc90
RS
25762017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
2577
2578 * c-parser.c (c_parser_cilk_clause_vectorlength): Use wi::to_wide when
2579 operating on trees as wide_ints.
2580 * c-typeck.c (build_c_cast, c_finish_omp_clauses): Likewise.
2581 (c_tree_equal): Likewise.
2582
8139a48e
DM
25832017-10-04 David Malcolm <dmalcolm@redhat.com>
2584
2585 * c-decl.c (push_parm_decl): Store c_parm's location into the
2586 PARAM_DECL.
2587 (build_c_parm): Add "loc" param and store it within the c_parm.
2588 * c-parser.c (struct c_parser): Add "last_token_location" field.
2589 (c_parser_consume_token): Store location of the token into the
2590 new field.
2591 (c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS
2592 when handling a FUNCTION_DECL, if it doesn't already have them.
2593 (c_parser_parameter_declaration): Generate a location for the
2594 parameter, and pass it to the call to build_c_parm.
2595 * c-tree.h (struct c_parm): Add field "loc".
2596 (build_c_parm): Add location_t param.
2597 * c-typeck.c (get_fndecl_argument_location): New function.
2598 (inform_for_arg): New function.
2599 (convert_for_assignment): Use inform_for_arg when dealing with
2600 ic_argpass.
2601
2a389958
JJ
26022017-09-29 Jakub Jelinek <jakub@redhat.com>
2603
7d386d45
JJ
2604 * c-decl.c (grokfield): Use SET_DECL_C_BIT_FIELD here if
2605 width is non-NULL.
2606 (finish_struct): Test DECL_C_BIT_FIELD instead of DECL_INITIAL,
2607 don't SET_DECL_C_BIT_FIELD here.
2608
2a389958
JJ
2609 PR c/82340
2610 * c-decl.c (build_compound_literal): Use c_apply_type_quals_to_decl
2611 instead of trying to set just TREE_READONLY manually.
2612
ebc6a85e
TV
26132017-09-16 Tom de Vries <tom@codesourcery.com>
2614
2615 PR c/81875
2616 * c-parser.c (c_parser_omp_for_loop): Fold only operands of cond, not
2617 cond itself.
2618
bb75facd
JM
26192017-09-15 Joseph Myers <joseph@codesourcery.com>
2620
2621 PR c/82071
2622 * c-typeck.c (ep_convert_and_check): Just call convert_and_check
2623 for C11.
2624 (build_conditional_expr): For C11, generate result with excess
2625 precision when one argument is an integer and the other is of a
2626 type using excess precision.
2627
1d933576
BE
26282017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
2629
2630 * c-typeck.c (build_c_cast): Implement -Wcast-align=strict.
2631
267bbb6f
MP
26322017-09-13 Marek Polacek <polacek@redhat.com>
2633
2634 PR c/82167
2635 * c-typeck.c (c_expr_sizeof_expr): Use the type of expr.value rather
2636 than expr.original_type.
2637
6836632e
NS
26382017-09-12 Nathan Sidwell <nathan@acm.org>
2639
2640 * c-decl.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
2641 resort_sorted_fields): Moved from c-family/c-common.c.
2642 * c-lang.h (struct sorted_fields_type): Moved from c-family/c-common.h.
2643
e035be33
JM
26442017-09-01 Joseph Myers <joseph@codesourcery.com>
2645
2646 PR c/82071
2647 * c-typeck.c (build_atomic_assign): Handle argument with excess
2648 precision. Ensure any EXCESS_PRECISION_EXPR is present in
2649 argument passed to build_binary_op and convert_for_assignment but
2650 not for call to c_fully_fold.
2651 (build_modify_expr): Do not remove EXCESS_PRECISION_EXPR early.
2652 Ensure build_binary_op is called with argument with original
2653 semantic type. Avoid calling c_fully_fold with an
2654 EXCESS_PRECISION_EXPR from build_binary_op.
2655
d2e05fcb
JJ
26562017-09-01 Jakub Jelinek <jakub@redhat.com>
2657
2658 PR c/81887
2659 * c-parser.c (c_parser_omp_ordered): Handle -fopenmp-simd.
2660
b397965c
RS
26612017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2662 Alan Hayward <alan.hayward@arm.com>
2663 David Sherwood <david.sherwood@arm.com>
2664
2665 * c-typeck.c (build_binary_op): Use SCALAR_TYPE_MODE.
2666 (c_common_type): Likewise. Use as_a <scalar_mode> when setting
2667 m1 and m2 to the signed equivalent of a fixed-point
2668 SCALAR_TYPE_MODE.
2669
14e18d71
DM
26702017-08-24 David Malcolm <dmalcolm@redhat.com>
2671
2672 * c-tree.h (c_expr::get_location) Use EXPR_HAS_LOCATION rather
2673 than CAN_HAVE_LOCATION_P when determining whether to use the
2674 location_t value within "value".
2675
7f204c0f
DM
26762017-08-21 David Malcolm <dmalcolm@redhat.com>
2677
2678 * c-parser.c (c_parser_expr_list): Use c_expr::get_location ()
2679 rather than peeking the location of the first token.
2680 * c-tree.h (c_expr::get_location): New method.
2681
2f687306
DM
26822017-08-21 David Malcolm <dmalcolm@redhat.com>
2683
2684 * c-typeck.c (build_function_call_vec): Pass arg_loc to call
2685 to check_function_arguments.
2686
3e7b80d7
MP
26872017-08-18 Marek Polacek <polacek@redhat.com>
2688
2689 * c-parser.c (c_parser_postfix_expression): Remove unused code. Update
2690 commentary.
2691
00aa1fa2
L
26922017-08-18 H.J. Lu <hongjiu.lu@intel.com>
2693
2694 PR c/53037
2695 * c-decl.c (merge_decls): Also merge DECL_WARN_IF_NOT_ALIGN.
2696 (check_bitfield_type_and_width): Don't allow bit-field with
2697 warn_if_not_aligned type.
2698
da67acb9
MS
26992017-08-14 Martin Sebor <msebor@redhat.com>
2700
2701 PR c/81117
2702 * c-objc-common.c (c_objc_common_init): Handle 'G'.
2703
bb85aa74
MP
27042017-08-11 Marek Polacek <polacek@redhat.com>
2705
2706 PR c/81795
2707 * c-decl.c (pushtag): Only print inform if the warning was printed.
2708 (grokdeclarator): Likewise.
2709
32129a17
DM
27102017-08-10 David Malcolm <dmalcolm@redhat.com>
2711
2712 * c-parser.c (c_parser_error): Rename to...
2713 (c_parser_error_richloc): ...this, making static, and adding
2714 "richloc" parameter, passing it to the c_parse_error call,
2715 rather than calling c_parser_set_source_position_from_token.
2716 (c_parser_error): Reintroduce, reimplementing in terms of the
2717 above, converting return type from void to bool.
2718 (class token_pair): New class.
2719 (struct matching_paren_traits): New struct.
2720 (matching_parens): New typedef.
2721 (struct matching_brace_traits): New struct.
2722 (matching_braces): New typedef.
2723 (get_matching_symbol): New function.
2724 (c_parser_require): Add param MATCHING_LOCATION, using it to
2725 highlight matching "opening" tokens for missing "closing" tokens.
2726 (c_parser_skip_until_found): Likewise.
2727 (c_parser_static_assert_declaration_no_semi): Convert explicit
2728 parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of
2729 class matching_parens, so that the pertinent open parenthesis is
2730 highlighted when there are problems locating the close
2731 parenthesis.
2732 (c_parser_struct_or_union_specifier): Likewise.
2733 (c_parser_typeof_specifier): Likewise.
2734 (c_parser_alignas_specifier): Likewise.
2735 (c_parser_simple_asm_expr): Likewise.
2736 (c_parser_braced_init): Likewise, for matching_braces.
2737 (c_parser_paren_condition): Likewise, for matching_parens.
2738 (c_parser_switch_statement): Likewise.
2739 (c_parser_for_statement): Likewise.
2740 (c_parser_asm_statement): Likewise.
2741 (c_parser_asm_operands): Likewise.
2742 (c_parser_cast_expression): Likewise.
2743 (c_parser_sizeof_expression): Likewise.
2744 (c_parser_alignof_expression): Likewise.
2745 (c_parser_generic_selection): Likewise.
2746 (c_parser_postfix_expression): Likewise for cases RID_VA_ARG,
2747 RID_OFFSETOF, RID_TYPES_COMPATIBLE_P, RID_AT_SELECTOR,
2748 RID_AT_PROTOCOL, RID_AT_ENCODE, reindenting as necessary.
2749 In case CPP_OPEN_PAREN, pass loc_open_paren to the
2750 c_parser_skip_until_found call.
2751 (c_parser_objc_class_definition): Use class matching_parens as
2752 above.
2753 (c_parser_objc_method_decl): Likewise.
2754 (c_parser_objc_try_catch_finally_statement): Likewise.
2755 (c_parser_objc_synchronized_statement): Likewise.
2756 (c_parser_objc_at_property_declaration): Likewise.
2757 (c_parser_oacc_wait_list): Likewise.
2758 (c_parser_omp_var_list_parens): Likewise.
2759 (c_parser_omp_clause_collapse): Likewise.
2760 (c_parser_omp_clause_default): Likewise.
2761 (c_parser_omp_clause_if): Likewise.
2762 (c_parser_omp_clause_num_threads): Likewise.
2763 (c_parser_omp_clause_num_tasks): Likewise.
2764 (c_parser_omp_clause_grainsize): Likewise.
2765 (c_parser_omp_clause_priority): Likewise.
2766 (c_parser_omp_clause_hint): Likewise.
2767 (c_parser_omp_clause_defaultmap): Likewise.
2768 (c_parser_oacc_single_int_clause): Likewise.
2769 (c_parser_omp_clause_ordered): Likewise.
2770 (c_parser_omp_clause_reduction): Likewise.
2771 (c_parser_omp_clause_schedule): Likewise.
2772 (c_parser_omp_clause_num_teams): Likewise.
2773 (c_parser_omp_clause_thread_limit): Likewise.
2774 (c_parser_omp_clause_aligned): Likewise.
2775 (c_parser_omp_clause_linear): Likewise.
2776 (c_parser_omp_clause_safelen): Likewise.
2777 (c_parser_omp_clause_simdlen): Likewise.
2778 (c_parser_omp_clause_depend): Likewise.
2779 (c_parser_omp_clause_map): Likewise.
2780 (c_parser_omp_clause_device): Likewise.
2781 (c_parser_omp_clause_dist_schedule): Likewise.
2782 (c_parser_omp_clause_proc_bind): Likewise.
2783 (c_parser_omp_clause_uniform): Likewise.
2784 (c_parser_omp_for_loop): Likewise.
2785 (c_parser_cilk_clause_vectorlength): Likewise.
2786 (c_parser_cilk_clause_linear): Likewise.
2787 (c_parser_transaction_expression): Likewise.
2788 * c-parser.h (c_parser_require): Add param matching_location with
2789 default UNKNOWN_LOCATION.
2790 (c_parser_error): Convert return type from void to bool.
2791 (c_parser_skip_until_found): Add param matching_location with
2792 default UNKNOWN_LOCATION.
2793
30af3a2b
MP
27942017-08-09 Marek Polacek <polacek@redhat.com>
2795
2796 * c-decl.c (build_enumerator): Use true/false instead of 1/0.
2797 * c-tree.h (build_external_ref): Update declaration.
2798 * c-typeck.c (build_array_ref): Use true/false instead of 1/0.
2799 (build_external_ref): Change the type of a parameter to bool.
2800 (parser_build_binary_op): Use true/false instead of 1/0.
2801 (pointer_diff): Likewise.
2802 (build_modify_expr): Likewise.
2803 (set_designator): Change the type of a parameter to bool.
2804 (set_init_index): Use true/false instead of 1/0.
2805 (set_init_label): Likewise.
2806 (output_init_element): Change the type of a parameter to bool.
2807 (output_pending_init_elements): Use true/false instead of 1/0.
2808 (process_init_element): Likewise.
2809 (build_binary_op): Change the type of a parameter to bool.
2810
296c53ac
MP
28112017-08-09 Marek Polacek <polacek@redhat.com>
2812
2813 PR c/81233
2814 * c-typeck.c (pedwarn_init): Make the function take a variable list.
2815 Call emit_diagnostic_valist instead of pedwarn.
2816 (convert_for_assignment): Unroll the PEDWARN_FOR_ASSIGNMENT macro.
2817 Print the relevant types in diagnostics.
2818
a32c8316
MP
28192017-08-09 Marek Polacek <polacek@redhat.com>
2820
2821 PR c/81417
2822 * c-array-notation.c (fix_builtin_array_notation_fn): Update calls to
ab20d992 2823 build_conditional_expr.
a32c8316
MP
2824 * c-parser.c (c_parser_conditional_expression): Create locations for
2825 EXP1 and EXP2 from their source ranges. Pass the locations down to
2826 build_conditional_expr.
2827 * c-tree.h (build_conditional_expr): Update declaration.
2828 * c-typeck.c (build_conditional_expr): Add location_t parameters.
2829 For -Wsign-compare, also print the types.
2830
314e6352
ML
28312017-08-08 Martin Liska <mliska@suse.cz>
2832
2833 * c-convert.c: Include header files.
2834 * c-typeck.c: Likewise.
2835
577eec56
ML
28362017-08-07 Martin Liska <mliska@suse.cz>
2837
2838 * c-parser.c (c_parser_attributes): Canonicalize name of an
2839 attribute.
2840
f7b6353a
MP
28412017-08-02 Marek Polacek <polacek@redhat.com>
2842
2843 PR c/81289
2844 * c-parser.c (c_parser_unary_expression): Use set_error.
2845
8a6eab34
MP
2846 PR c/81448
2847 PR c/81306
2848 * c-warn.c (warn_for_multistatement_macros): Prevent bogus
2849 warnings. Avoid walking MACRO_MAP_LOCATIONS.
2850
ab20d992 28512017-07-31 Jan Hubicka <hubicka@ucw.cz>
7fef86d3
JH
2852 Martin Liska <mliska@suse.cz>
2853
2854 * c-typeck.c (c_finish_goto_label): Build gimple predict
f7b6353a 2855 statement.
7fef86d3 2856
f34ebeb2
ML
28572017-07-31 Martin Liska <mliska@suse.cz>
2858
2859 PR sanitize/81530
2860 * c-convert.c (convert): Guard condition with flag_sanitize_p
2861 also with current_function_decl non-null equality.
2862 * c-decl.c (grokdeclarator): Likewise.
2863 * c-typeck.c (build_binary_op): Likewise.
2864
8595f67b
MP
28652017-07-25 Marek Polacek <polacek@redhat.com>
2866
2867 * c-decl.c (grokfield): Remove local variable.
2868
d49718d6
MP
28692017-07-25 Marek Polacek <polacek@redhat.com>
2870
2871 PR c/81364
2872 * c-parser.c (c_parser_else_body): Don't warn about multistatement
2873 macro expansion if the body is in { }.
2874 (c_parser_while_statement): Likewise.
2875 (c_parser_for_statement): Likewise.
2876
ff22eb12
NS
28772017-07-18 Nathan Sidwell <nathan@acm.org>
2878
2879 * c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE.
2880
eea77d1f
DM
28812017-07-14 David Malcolm <dmalcolm@redhat.com>
2882
2883 * c-decl.c (implicitly_declare): When suggesting a missing
2884 #include, provide a fix-it hint.
2885
b6f43128
DM
28862017-07-06 David Malcolm <dmalcolm@redhat.com>
2887
2888 * c-lang.c (selftest::run_c_tests): Move body to c_family_tests,
2889 and call that instead.
2890 * c-tree.h (selftest::run_c_tests): New decl.
2891
3e2becc4
MP
28922017-06-26 Marek Polacek <polacek@redhat.com>
2893
2894 PR c/80116
2895 * c-parser.c (c_parser_if_body): Set the location of the
2896 body of the conditional after parsing all the labels. Call
2897 warn_for_multistatement_macros.
2898 (c_parser_else_body): Likewise.
2899 (c_parser_switch_statement): Likewise.
2900 (c_parser_while_statement): Likewise.
2901 (c_parser_for_statement): Likewise.
2902 (c_parser_statement): Add a default argument. Save the location
2903 after labels have been parsed.
2904 (c_parser_c99_block_statement): Likewise.
2905
343ae898
RB
29062017-06-19 Richard Biener <rguenther@suse.de>
2907
2908 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
2909 negated _Literals to parse _Literal (int) -1.
2910
45b2222a
ML
29112017-06-13 Martin Liska <mliska@suse.cz>
2912
2913 PR sanitize/78204
2914 * c-convert.c (convert): Use sanitize_flags_p.
2915 * c-decl.c (grokdeclarator): Likewise.
2916 * c-typeck.c (convert_for_assignment): Likewise.
2917 (c_finish_return): Likewise.
2918 (build_binary_op): Likewise.
2919
8ab7005b
JJ
29202017-06-08 Jakub Jelinek <jakub@redhat.com>
2921
2922 PR c/81006
2923 * c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE
2924 to sizetype before size_binop.
2925
363dc72c
JJ
29262017-06-07 Jakub Jelinek <jakub@redhat.com>
2927
2928 * gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead
2929 of TDI_generic.
2930
dc949728
MP
29312017-06-06 Marek Polacek <polacek@redhat.com>
2932
2933 PR c/79983
2934 * c-decl.c (start_struct): Use the location of TYPE_STUB_DECL of
2935 ref.
2936 (start_enum): Use the location of TYPE_STUB_DECL of enumtype.
2937
40ffd95f
BE
29382017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
2939
2940 * c-parser.c (c_parser_binary_expression): Implement the
2941 -Wsizeof_pointer_div warning.
2942 (c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code
2943 from a parenthesized expression.
2944 (c_parser_expr_list): Use c_last_sizeof_loc.
2945 * c-tree.h (c_last_sizeof_loc): New external.
2946 * c-typeck.c (c_last_sizeof_loc): New variable.
2947 (c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc.
2948
9fc5e7a4
MM
29492017-05-31 Mikhail Maltsev <maltsevm@gmail.com>
2950
2951 PR testsuite/80580
2952 * gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels.
2953
f012c8ef
DM
29542017-05-30 David Malcolm <dmalcolm@redhat.com>
2955
2956 * c-objc-common.c (c_tree_printer): Gain bool and const char **
2957 parameters.
2958
3cd211af
MS
29592017-05-24 Martin Sebor <msebor@redhat.com>
2960
2961 PR c/80731
2962 * c-fold.c (c_fully_fold_internal): Adjust.
2963 * c-typeck.c (parser_build_unary_op): Adjust.
2964
fd71a9a2
TS
29652017-05-23 Thomas Schwinge <thomas@codesourcery.com>
2966
2967 * c-parser.c (OACC_KERNELS_CLAUSE_MASK): Add
2968 "PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS",
2969 "VECTOR_LENGTH".
2970
92fa0f9e
MP
29712017-05-23 Marek Polacek <polacek@redhat.com>
2972
2973 * c-parser.c (c_parser_compound_statement_nostart): Remove redundant
2974 quotes.
2975
d11c168a
JJ
29762017-05-22 Jakub Jelinek <jakub@redhat.com>
2977
2978 * c-fold.c (c_fully_fold_internal): Save the c_fully_fold_internal
2979 result for SAVE_EXPR operand and set SAVE_EXPR_FOLDED_P even if
2980 it returned invariant. Call tree_invariant_p unconditionally
2981 afterwards to decide whether to return expr or op0.
2982
58aca9d9
NS
29832017-05-22 Nathan Sidwell <nathan@acm.org>
2984
2985 * c-decl.c (c_parse_final_cleanups): Drop TDI_tu handling.
2986
7fd549d2
TS
29872017-05-19 Thomas Schwinge <thomas@codesourcery.com>
2988
2989 * c-parser.c (c_parser_omp_clause_default): Handle
2990 "OMP_CLAUSE_DEFAULT_PRESENT".
2991
6ecd2339
BE
29922017-05-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
2993
2994 * config-lang.in (gtfiles): Add c-family/c-format.c.
2995
8a57ecff
NS
29962017-05-18 Nathan Sidwell <nathan@acm.org>
2997
2998 * c-decl.c (pushdecl_top_level): Delete unused function.
2999
6574d78e
MP
30002017-05-18 Marek Polacek <polacek@redhat.com>
3001
3002 * c-decl.c (match_builtin_function_types): Use NULL_TREE instead of 0.
3003 (check_earlier_gotos): Likewise.
3004 (define_label): Likewise.
3005 (pending_xref_error): Likewise.
3006 (smallest_type_quals_location): Likewise.
3007 (grokdeclarator): Likewise.
3008 (grokparms): Likewise.
3009 (identifier_global_value): Likewise.
3010 * c-typeck.c (set_nonincremental_init_from_string): Likewise.
3011 (find_init_member): Likewise.
3012
e3455240
MP
30132017-05-18 Marek Polacek <polacek@redhat.com>
3014
3015 * c-decl.c (start_decl): Use false/true instead of 0/1.
3016 (grokdeclarator): Likewise.
3017 (finish_struct): Likewise.
3018 (start_function): Change the return type to bool. Use false/true
3019 instead of 0/1.
3020 (declspecs_add_qual): Use UNKNOWN_LOCATION instead of 0.
3021 * c-tree.h (start_function): Update.
3022 * c-typeck.c (same_translation_unit_p): Change the return type to bool.
3023 (set_designator): Change the return type to bool. Use false/true
3024 instead of 0/1.
3025
3fa8871b
MP
30262017-05-17 Marek Polacek <polacek@redhat.com>
3027
3028 * c-decl.c: Use NULL_TREE instead of 0 where appropriate.
3029 * c-typeck.c: Likewise.
3030
142473df
MP
30312017-05-17 Marek Polacek <polacek@redhat.com>
3032
3033 PR sanitizer/80659
3034 * c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and
3035 DECL_IGNORED_P even for non-static compound literals.
3036
1a817418
ML
30372017-05-17 Martin Liska <mliska@suse.cz>
3038
3039 * c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and
3040 use it instead of int type.
3041
b2fa0a8b
MP
30422017-05-17 Marek Polacek <polacek@redhat.com>
3043
3044 * c-convert.c (convert): Replace c_save_expr with save_expr. Don't
3045 call c_fully_fold.
3046 (convert) <case COMPLEX_TYPE>: Remove special handling of COMPLEX_TYPEs.
ab20d992 3047 * c-decl.c (grokdeclarator): Replace c_save_expr with save_expr.
b2fa0a8b
MP
3048 * c-fold.c (c_fully_fold_internal): Handle SAVE_EXPR.
3049 * c-parser.c (c_parser_declaration_or_fndef): Replace c_save_expr with
3050 save_expr.
3051 (c_parser_conditional_expression): Likewise.
3052 * c-tree.h (SAVE_EXPR_FOLDED_P): Define.
3053 * c-typeck.c (build_modify_expr): Replace c_save_expr with save_expr.
3054 (process_init_element): Likewise.
3055 (build_binary_op): Likewise.
3056 (handle_omp_array_sections_1): Likewise.
3057
1e47f02b
TS
30582017-05-12 Thomas Schwinge <thomas@codesourcery.com>
3059
3060 * c-parser.c (c_parser_omp_clause_num_gangs)
3061 (c_parser_omp_clause_num_workers)
3062 (c_parser_omp_clause_vector_length): Merge functions into...
3063 (c_parser_oacc_single_int_clause): ... this new function. Adjust
3064 all users.
3065
c24e924f
NS
30662017-05-11 Nathan Sidwell <nathan@acm.org>
3067
3068 * gimple-parser.c: Don't #include tree-dump.h.
3069
c587104e
MM
30702017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
3071
3072 PR testsuite/80580
3073 * gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.
3074
67ac9a9d
MM
30752017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
3076
3077 PR testsuite/80580
3078 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
3079 incorrect __MEM syntax.
3080
ac4eb40f
MM
30812017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
3082
3083 PR testsuite/80580
3084 * gimple-parser.c (c_parser_gimple_unary_expression): Check argument
3085 type of unary '*'.
3086
641da50a
NS
30872017-05-09 Nathan Sidwell <nathan@acm.org>
3088
3089 * c-tree.h (pushdecl): Declare.
3090
56d35585
DM
30912017-05-05 David Malcolm <dmalcolm@redhat.com>
3092
3093 * c-decl.c (warn_defaults_to): Replace report_diagnostic
3094 with diagnostic_report_diagnostic.
3095 * c-errors.c (pedwarn_c99): Likewise.
3096 (pedwarn_c90): Likewise.
3097
815d9cc6
XR
30982017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
3099
92a285c1 3100 PR c++/80038
815d9cc6
XR
3101 * c-gimplify.c (c_gimplify_expr): Remove calls to
3102 cilk_gimplifY_call_params_in_spawned_fn.
3103
1c4ea66f
DM
31042017-04-25 David Malcolm <dmalcolm@redhat.com>
3105
3106 * c-parser.c (c_parser_struct_or_union_specifier): Add fix-it
3107 hint for removing extra semicolon.
3108
666f7903
JJ
31092017-04-21 Jakub Jelinek <jakub@redhat.com>
3110
3111 PR c/80468
3112 * c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not
3113 enabled, set specs->type to integer_type_node.
3114
5764ee3c
JW
31152017-04-03 Jonathan Wakely <jwakely@redhat.com>
3116
3117 * c-array-notation.c: Fix typo in comment.
3118
10fa8dfb
MP
31192017-03-29 Marek Polacek <polacek@redhat.com>
3120
3121 PR c/79730
3122 * c-decl.c (finish_decl): Check VAR_P.
3123
a9e4a1a5
JJ
31242017-03-27 Jakub Jelinek <jakub@redhat.com>
3125
3126 PR middle-end/80162
3127 * c-tree.h (c_mark_addressable): Add array_ref_p argument.
3128 * c-typeck.c (c_mark_addressable): Likewise. Look through
3129 VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
3130 to ARRAY_TYPE.
3131 (build_array_ref): Pass true as array_ref_p to c_mark_addressable.
3132
ee3ff394
MP
31332017-03-23 Marek Polacek <polacek@redhat.com>
3134
3135 * c-tree.h: Remove a C_RID_YYCODE reference.
3136
4d1b8e70
JJ
31372017-03-21 Jakub Jelinek <jakub@redhat.com>
3138
3139 PR c/80097
3140 * c-typeck.c (build_binary_op): Add EXCESS_PRECISION_EXPR only around
3141 optional COMPOUND_EXPR with ubsan instrumentation.
3142
31dc71a8
MP
31432017-03-17 Marek Polacek <polacek@redhat.com>
3144
3145 * c-parser.c: Add C11 references.
3146
d579c385
MP
31472017-03-15 Marek Polacek <polacek@redhat.com>
3148
3149 * c-parser.c (c_parser_enum_specifier): Remove redundant line.
3150
85059a38
MP
31512017-03-11 Marek Polacek <polacek@redhat.com>
3152
3153 * c-decl.c (implicit_decl_warning): Add a comment. Fix formatting.
3154
2f6f187a
DM
31552017-03-10 David Malcolm <dmalcolm@redhat.com>
3156
3157 PR translation/79848
3158 * c-decl.c (declspecs_add_type): Simplify uses of "%<%s%>" to
3159 "%qs".
3160 * c-parser.c (c_parser_oacc_shape_clause): Likewise.
3161
36618428
MP
31622017-03-09 Marek Polacek <polacek@redhat.com>
3163
3164 PR sanitizer/79757
3165 * c-parser.c (c_parser_declaration_or_fndef): Don't sanitize old-style
3166 parameter declarations with initializers.
3167
01e5af5a
JJ
31682017-03-09 Jakub Jelinek <jakub@redhat.com>
3169
3170 PR c/79969
3171 * c-decl.c (start_enum): Adjust DECL_SOURCE_LOCATION of
3172 TYPE_STUB_DECL.
3173
a71dbc63
JJ
31742017-03-07 Jakub Jelinek <jakub@redhat.com>
3175
3176 PR c/79834
3177 * c-parser.c (c_parser_pragma): Use error_at instead of c_parser_error
3178 for "may only be used in compound statements" diagnostics, change it
3179 such that the same translatable string is used for all pragmas. For
3180 PRAGMA_OACC_WAIT use "acc wait" rather than "acc enter data" in the
3181 diagnostics.
3182 (c_parser_omp_cancellation_point, c_parser_omp_target_update,
3183 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Change
3184 "may only be used in compound statements" diagnostics, such that the
3185 same translatable string is used for all pragmas.
3186
1ff4bae6
MP
31872017-03-04 Marek Polacek <polacek@redhat.com>
3188
3189 PR c/79847
3190 * c-decl.c (implicit_decl_warning): Add missing space.
3191
7f5a7d78
MP
31922017-03-03 Marek Polacek <polacek@redhat.com>
3193
3194 PR c/79758
3195 * c-decl.c (store_parm_decls_oldstyle): Check if the element of
3196 current_function_prototype_arg_types is error_mark_node. Fix
3197 formatting. Use TREE_VALUE instead of TREE_TYPE.
3198
883c8f06
JJ
31992017-03-03 Jakub Jelinek <jakub@redhat.com>
3200
79c9b7a8
JJ
3201 PR c/79837
3202 * c-parser.c (c_parser_omp_clause_reduction): Don't mention
3203 %<min%> or %<max%> in the diagnostics, instead mention identifier.
3204 (c_parser_omp_declare_reduction): Don't mention %<min%> in the
3205 diagnostics.
3206
883c8f06
JJ
3207 PR c/79836
3208 * c-parser.c (c_parser_generic_selection): Use %<_Generic%>
3209 instead of %<_Generic>.
3210 (c_parser_omp_ordered): Use %<depend%> instead of %<depend>.
3211 (c_parser_omp_target_exit_data): Use %<release%> instead of
3212 %<release>.
3213
324ff1a0
JJ
32142017-02-28 Jakub Jelinek <jakub@redhat.com>
3215
3216 * c-parser.c (c_parser_asm_statement): Use cond ? G_("...") : G_("...")
3217 instead of just cond ? "..." : "...".
3218 (c_parser_oacc_enter_exit_data): Use %s and ternary operator only
3219 for "enter"/"exit" keyword.
3220 (c_finish_oacc_routine): Don't use %s to supply portions of the
3221 message.
3222
4227c9ad
JJ
32232017-02-24 Jakub Jelinek <jakub@redhat.com>
3224
3225 PR c++/79588
3226 * c-parser.c (c_parser_postfix_expression_after_primary): Don't
3227 handle -Wrestrict here.
3228 * c-typeck.c (build_function_call_vec): Adjust
3229 check_function_arguments caller.
3230
5d972e66
RB
32312017-02-23 Richard Biener <rguenther@suse.de>
3232
3233 PR c/79684
3234 * gimple-parser.c (c_parser_gimple_statement): Use set_error
3235 to initialize c_exprs to return.
3236 (c_parser_gimple_binary_expression): Likewise.
3237 (c_parser_gimple_unary_expression): Likewise.
3238 (c_parser_gimple_postfix_expression): Likewise.
3239
61ac5ebe
MP
32402017-02-22 Marek Polacek <polacek@redhat.com>
3241
3242 PR c/79662
3243 * c-typeck.c (convert_arguments): Handle error_mark_node.
3244
41d1b0b1
PK
32452017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3246
3247 * gimple-parser.c (c_parser_gimple_postfix_expression): Check return
3248 value of c_parser_parse_ssa_name against error_mark_node and emit
3249 error if ssa name is anonymous and written as default definition.
3250
eab1f169
PK
32512017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3252
3253 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
3254 FMA_EXPR.
3255
bcac0b4d
JJ
32562017-02-16 Jakub Jelinek <jakub@redhat.com>
3257
3258 PR c++/79512
3259 * c-parser.c (c_parser_omp_target): For -fopenmp-simd
3260 ignore #pragma omp target even when not followed by identifier.
3261
1be33173
PK
32622017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3263
3264 * gimpler-parser.c (c_parser_gimple_statement): Handle ABS_EXPR.
3265 (c_parser_gimple_unary_expression): Likewise.
3266
aa326bfb
JJ
32672017-02-13 Jakub Jelinek <jakub@redhat.com>
3268
3269 * c-parser.c (c_parser_oacc_declare): Add missing space in
3270 diagnostics.
3271
8a398bc5
PK
32722017-02-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3273
3274 PR c/79478
3275 * gimple-parser.c (c_parser_gimple_postfix_expression): Call
3276 set_c_expr_source_range when parsing ssa-name.
3277
3dcde5ef 32782017-02-10 Prasad Ghangal <prasad.ghangal@gmail.com>
ab20d992 3279 Richard Biener <rguenther@suse.de>
3dcde5ef
PG
3280
3281 * gimple-parser.c (c_parser_gimple_binary_expression): Avoid
3282 building IL when arguments are error_mark_node.
3283 (c_parser_gimple_unary_expression): Likewise.
3284 (c_parser_gimple_if_stmt): Likewise.
3285 (c_parser_gimple_switch_stmt): Likewise.
3286 (c_parser_gimple_return_stmt): Likewise.
3287 (c_parser_parse_ssa_name): When name lookup fails do not build
3288 an SSA name. Use undeclared rather than not declared in error
3289 reporting.
3290
192b048b
MP
32912017-02-09 Marek Polacek <polacek@redhat.com>
3292
3293 PR c/79428
3294 * c-parser.c (c_parser_omp_ordered): Call c_parser_skip_to_pragma_eol
3295 instead of c_parser_skip_until_found.
3296
56f71478
JJ
32972017-02-09 Jakub Jelinek <jakub@redhat.com>
3298
3299 PR c/79431
3300 * c-parser.c (c_parser_omp_declare_target): Don't invoke
3301 symtab_node::get on automatic variables.
3302
02889d23
CLT
33032016-02-09 Nathan Sidwell <nathan@codesourcery.com>
3304 Chung-Lin Tang <cltang@codesourcery.com>
3305
3306 * c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
3307 (c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
3308 semantic checking.
3309 * c-parser.c (c_parser_omp_for_loop): Accept tiling constructs.
3310
7af4b20d
RB
33112017-02-07 Richard Biener <rguenther@suse.de>
3312
3313 * gimple-parser.c (c_parser_gimple_expr_list): Simplify.
3314 (c_parser_gimple_postfix_expression_after_primary):
3315 Do not use c_build_function_call_vec to avoid folding and promotion.
3316 Simplify.
3317
e5e391d6
MO
33182017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
3319
3320 PR lto/79061
3321 * c-decl.c (pop_scope): Pass main_input_filename to
3322 build_translation_unit_decl.
3323
c2e84327
DM
33242017-01-24 David Malcolm <dmalcolm@redhat.com>
3325
3326 * c-parser.c: Include "read-rtl-function.h" and
3327 "run-rtl-passes.h".
3328 (c_parser_declaration_or_fndef): Rename "gimple-pass-list" in
3329 grammar to gimple-or-rtl-pass-list. Add rtl-function-definition
3330 production. Update for renaming of field "gimple_pass" to
3331 "gimple_or_rtl_pass". If __RTL was seen, call
3332 c_parser_parse_rtl_body. Convert a timevar_push/pop pair
3333 to an auto_timevar, to cope with early exit.
3334 (c_parser_declspecs): Update RID_GIMPLE handling for renaming of
3335 field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of
3336 c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list.
3337 Handle RID_RTL.
3338 (c_parser_parse_rtl_body): New function.
3339 * c-tree.h (enum c_declspec_word): Add cdw_rtl.
3340 (struct c_declspecs): Rename field "gimple_pass" to
3341 "gimple_or_rtl_pass". Add field "rtl_p".
3342 * gimple-parser.c (c_parser_gimple_pass_list): Rename to...
3343 (c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly.
3344 * gimple-parser.h (c_parser_gimple_pass_list): Rename to...
3345 (c_parser_gimple_or_rtl_pass_list): ...this.
3346
2ebd93e1
MP
33472017-01-20 Marek Polacek <polacek@redhat.com>
3348
3349 PR c/64279
3350 * c-typeck.c (build_conditional_expr): Warn about duplicated branches.
3351
b1c95bb5
RB
33522017-01-13 Richard Biener <rguenther@suse.de>
3353
3354 * gimple-parser.c (c_parser_gimple_compound_statement): Handle
3355 nops.
3356
25329913
RB
33572017-01-13 Richard Biener <rguenther@suse.de>
3358
3359 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
3360 _Literal ( type-name ) number.
3361
6bb4ea5c
RB
33622017-01-12 Richard Biener <rguenther@suse.de>
3363
3364 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
3365 __MEM.
3366
6b5b4e9c
JJ
33672017-01-11 Jakub Jelinek <jakub@redhat.com>
3368
3369 PR c++/72813
3370 * c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing
3371 PCH file.
3372
e3252775
RB
33732017-01-11 Richard Biener <rguenther@suse.de>
3374
3375 PR bootstrap/79052
3376 * gimple-parser.c (c_parser_gimple_switch_stmt): Add missing
3377 returns on parse errors.
3378
a9342885
MP
33792017-01-04 Marek Polacek <polacek@redhat.com>
3380
3381 PR c++/64767
3382 * c-parser.c (c_parser_postfix_expression): Mark zero character
3383 constants by setting original_type in c_expr.
3384 * c-typeck.c (parser_build_binary_op): Warn when a pointer is compared
3385 with a zero character constant.
3386 (char_type_p): New function.
3387
5dd9a9d0
DM
33882017-01-04 David Malcolm <dmalcolm@redhat.com>
3389
3390 * c-parser.c (c_parser_declaration_or_fndef): Create a
3391 rich_location at init_loc and parse it to start_init.
3392 (last_init_list_comma): New global.
3393 (c_parser_braced_init): Update last_init_list_comma when parsing
3394 commas. Pass it to pop_init_level. Pass location of closing
3395 brace to pop_init_level.
3396 (c_parser_postfix_expression_after_paren_type): Create a
3397 rich_location at type_loc and parse it to start_init.
3398 (c_parser_omp_declare_reduction): Likewise for loc.
3399 * c-tree.h (start_init): Add rich_location * param.
3400 (pop_init_level): Add location_t param.
3401 * c-typeck.c (struct initializer_stack): Add field
3402 "missing_brace_richloc".
3403 (start_init): Add richloc param, use it to initialize
3404 the stack node's missing_brace_richloc.
3405 (last_init_list_comma): New decl.
3406 (finish_implicit_inits): Pass last_init_list_comma to
3407 pop_init_level.
3408 (push_init_level): When finding missing open braces, add fix-it
3409 hints to the richloc.
3410 (pop_init_level): Add "insert_before" param and pass it
3411 when calling pop_init_level. Add fixits about missing
3412 close braces to any richloc. Use the richloc for the
3413 -Wmissing-braces warning.
3414 (set_designator): Pass last_init_list_comma to pop_init_level.
3415 (process_init_element): Likewise.
3416
cbe34bb5
JJ
34172017-01-01 Jakub Jelinek <jakub@redhat.com>
3418
3419 Update copyright years.
3420
d17680f3
JJ
34212016-12-21 Jakub Jelinek <jakub@redhat.com>
3422
0dba7960
JJ
3423 PR bootstrap/78817
3424 * c-typeck.c (build_function_call_vec): If check_function_arguments
3425 returns true, set TREE_NO_WARNING on CALL_EXPR.
3426
d17680f3
JJ
3427 PR c/77767
3428 * c-decl.c (grokdeclarator): If *expr is non-NULL, append expression
3429 to *expr instead of overwriting it.
3430
aa90531e
RB
34312016-12-20 Richard Biener <rguenther@suse.de>
3432
3433 * gimple-parser.c (c_parser_gimple_compound_statement): Improve
3434 error recovery.
3435 (c_parser_gimple_statement): Only build assigns for non-error
3436 stmts.
3437 (c_parser_gimple_postfix_expression_after): Improve error recovery.
3438
629b3d75
MJ
34392016-12-14 Martin Jambor <mjambor@suse.cz>
3440
3441 * c-parser.c: Include omp-general.h and omp-offload.h instead of
3442 omp-low.h.
3443 (c_finish_oacc_routine): Adjusted call to
3444 get_oacc_fn_attrib, build_oacc_routine_dims and replace_oacc_fn_attrib
3445 to use their new names.
3446 (c_parser_oacc_enter_exit_data): Adjusted call to find_omp_clause to
3447 use its new name.
3448 (c_parser_oacc_update): Likewise.
3449 (c_parser_omp_simd): Likewise.
3450 (c_parser_omp_target_update): Likewise.
3451 * c-typeck.c: Include omp-general.h instead of omp-low.h.
3452 (c_finish_omp_cancel): Adjusted call to find_omp_clause to use its new
3453 name.
3454 (c_finish_omp_cancellation_point): Likewise.
3455 * gimple-parser.c: Do not include omp-low.h
3456
c5af52eb
CP
34572016-12-02 Cesar Philippidis <cesar@codesourcery.com>
3458 James Norris <jnorris@codesourcery.com>
3459
3460 * c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
3461 EXIT_DATA,WAIT} are not used in compound statements.
3462 (c_parser_oacc_enter_exit_data): Update diagnostics.
3463
48330c93
BE
34642016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
3465
3466 PR c++/71973
3467 * c-decl.c (diagnose_mismatched_decls): Use
3468 OPT_Wbuiltin_declaration_mismatch here too.
3469
899ca90e 34702016-11-18 Richard Sandiford <richard.sandiford@arm.com>
48330c93
BE
3471 Alan Hayward <alan.hayward@arm.com>
3472 David Sherwood <david.sherwood@arm.com>
899ca90e
RS
3473
3474 * c-decl.c (merge_decls): Use SET_DECL_MODE.
3475 (make_label, finish_struct): Likewise.
3476
1ee62b92 34772016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com>
8e745a17 3478 Richard Biener <rguenther@suse.de>
22b15758 3479
8e745a17
JJ
3480 * Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.
3481 * config-lang.in (gtfiles): Add c/c-parser.h.
3482 * c-tree.h (enum c_declspec_word): Add cdw_gimple.
3483 (struct c_declspecs): Add gimple_pass member and gimple_p flag.
3484 * c-parser.c (enum c_id_kind, struct c_token,
3485 c_parser_next_token_is, c_parser_next_token_is_not,
3486 c_parser_next_token_is_keyword,
3487 enum c_lookahead_kind, enum c_dtr_syn, enum c_parser_prec):
3488 Split out to ...
3489 * c-parser.h: ... new header.
3490 * c-parser.c: Include c-parser.h and gimple-parser.h.
1ee62b92 3491 (c_parser_peek_token, c_parser_peek_2nd_token,
8e745a17
JJ
3492 c_token_starts_typename, c_parser_next_token_starts_declspecs,
3493 c_parser_next_tokens_start_declaration, c_parser_consume_token,
3494 c_parser_error, c_parser_require, c_parser_skip_until_found,
3495 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
3496 c_parser_type_name): Export.
3497 (c_parser_tokens_buf): New function.
3498 (c_parser_error): Likewise.
3499 (c_parser_set_error): Likewise.
3500 (c_parser_declspecs): Handle RID_GIMPLE.
1ee62b92
PG
3501 (c_parser_declaration_or_fndef): Parse __GIMPLE marked body
3502 via c_parser_parse_gimple_body.
8e745a17
JJ
3503 * c-parser.h (c_parser_peek_token, c_parser_peek_2nd_token,
3504 c_token_starts_typename, c_parser_next_token_starts_declspecs,
3505 c_parser_next_tokens_start_declaration, c_parser_consume_token,
3506 c_parser_error, c_parser_require, c_parser_skip_until_found,
3507 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
3508 c_parser_type_name): Declare.
1ee62b92
PG
3509 (struct c_parser): Declare forward.
3510 (c_parser_tokens_buf): Declare.
8e745a17
JJ
3511 (c_parser_error): Likewise.
3512 (c_parser_set_error): Likewise.
3513 * gimple-parser.c: New file.
3514 * gimple-parser.h: Likewise.
1ee62b92 3515
22b15758
UB
35162016-11-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3517
3518 PR c/35503
3519 * c-parser.c (c_parser_postfix_expression_after_primary): Call
3520 warn_for_restrict.
3521
84ff4775
LCW
35222016-09-11 Le-Chun Wu <lcwu@google.com>
3523 Mark Wielaard <mjw@redhat.com>
3524
3525 * c-decl.c (warn_if_shadowing): Use the warning code corresponding
3526 to the given -Wshadow= variant.
3527
4d0cdd0c
TP
35282016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
3529
3530 * c-typeck.c: Include memmodel.h.
3531
1202f33e
JJ
35322016-10-13 Jakub Jelinek <jakub@redhat.com>
3533
3534 PR target/77957
3535 * c-objc-common.h (LANG_HOOKS_GETDECLS): Use hook_tree_void_null
3536 instead of lhd_return_null_tree_v.
3537
8a14afd0
BS
35382016-10-07 Bernd Schmidt <bschmidt@redhat.com>
3539
3540 PR c++/69733
3541 * c-decl.c (smallest_type_quals_location): New static function.
3542 (grokdeclarator): Try to find the correct location for an ignored
3543 qualifier.
3544
81fea426
MP
35452016-09-26 Marek Polacek <polacek@redhat.com>
3546
3547 PR c/7652
3548 * c-decl.c (pop_scope): Add gcc_fallthrough.
3549
35502016-09-26 Marek Polacek <polacek@redhat.com>
3551
3552 PR c/7652
3553 * c-parser.c (struct c_token): Add flags field.
3554 (c_lex_one_token): Pass it to c_lex_with_flags.
3555 (c_parser_declaration_or_fndef): Turn __attribute__((fallthrough));
3556 into IFN_FALLTHROUGH.
3557 (c_parser_label): Set FALLTHROUGH_LABEL_P on labels. Handle
3558 attribute fallthrough after a case label or default label.
3559 (c_parser_statement_after_labels): Handle RID_ATTRIBUTE.
3560
9a2300e9
MP
35612016-09-24 Marek Polacek <polacek@redhat.com>
3562
3563 PR c/77490
3564 * c-typeck.c (build_unary_op): Warn about bit not on expressions that
3565 have boolean value. Warn about ++/-- on booleans.
3566
7de76362
JJ
35672016-09-23 Jakub Jelinek <jakub@redhat.com>
3568
3569 * c-parser.c (incomplete_record_decls): Remove unnecessary
3570 = vNULL initialization of file scope vec.
3571
5b73d2ab
MP
35722016-09-16 Marek Polacek <polacek@redhat.com>
3573
3574 * c-typeck.c (lvalue_p): Use true and false instead of 1 and 0.
3575
e51fbec3
MP
35762016-09-14 Marek Polacek <polacek@redhat.com>
3577
3578 * c-array-notation.c (create_cmp_incr): Use false instead of 0.
3579 (fix_array_notation_expr): Likewise.
3580 * c-decl.c (finish_decl): Likewise.
3581 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
3582 * c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
3583 (function_to_pointer_conversion): Use false instead of 0.
3584 (convert_lvalue_to_rvalue): Likewise.
3585 (parser_build_unary_op): Likewise.
3586 (build_atomic_assign): Likewise.
3587 (build_unary_op): Change nonconvert parameter type to bool, use
3588 true/false instead of 1/0.
3589 (build_binary_op): Use true instead of 1.
3590
254830ba
DM
35912016-09-13 David Malcolm <dmalcolm@redhat.com>
3592
3593 * c-parser.c (c_parser_declaration_or_fndef): Update for renaming
3594 of add_fixit_insert to add_fixit_insert_before.
3595
4c13ba17
MP
35962016-09-13 Marek Polacek <polacek@redhat.com>
3597
3598 * c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT. Use
3599 it.
3600
54dcdb88
BE
36012016-09-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
3602
3603 PR c++/77496
3604 * c-parser.c (c_parser_conditional_expression): Pass the rightmost
3605 COMPOUND_EXPR to warn_for_omitted_condop.
3606
e5106e27
DM
36072016-09-07 David Malcolm <dmalcolm@redhat.com>
3608
3609 * c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
3610 c_get_substring_location for this new langhook.
3611
9dc5773f
JJ
36122016-09-02 Jakub Jelinek <jakub@redhat.com>
3613
3614 PR c/65467
3615 * c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
3616 flag_openmp.
3617 (c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
3618 instead of mark_exp_read on low_bound/length expression.
3619 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
3620 c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
3621 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
3622 c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
3623 c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
3624 c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
3625 c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
3626 c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
3627 c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
3628 c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
3629 instead of mark_expr_read.
3630 (c_parser_omp_declare_reduction): Reject _Atomic qualified types.
3631 * c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
3632 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
3633 * c-tree.h (c_omp_clause_copy_ctor): New prototype.
3634 * c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
3635 array section bases outside of depend clause, for depend clause
3636 use convert_lvalue_to_rvalue on the base.
3637 (c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
3638 linear, aligned, map, to and from clauses.
3639 (c_omp_clause_copy_ctor): New function.
3640
295844f6
MP
36412016-09-01 Marek Polacek <polacek@redhat.com>
3642
3643 PR c/7652
3644 * c-typeck.c (composite_type): Add FALLTHRU comment.
3645
089af25c
DM
36462016-08-31 David Malcolm <dmalcolm@redhat.com>
3647
3648 * c-parser.c (c_parser_declaration_or_fndef): Add trailing space
3649 to the insertion fixits for "struct", "union", and "enum".
3650
f9087798
DM
36512016-08-30 David Malcolm <dmalcolm@redhat.com>
3652
3653 * c-decl.c (implicit_decl_warning): Use add_fixit_replace
3654 rather than add_fixit_misspelled_id.
3655 (undeclared_variable): Likewise.
3656 * c-parser.c (c_parser_declaration_or_fndef): Likewise. Remove
3657 now-redundant "here" params from add_fixit_insert method calls.
3658 (c_parser_parameter_declaration): Likewise.
3659 * c-typeck.c (build_component_ref): Remove now-redundant range
3660 param from add_fixit_replace method calls.
3661
ebef225f
MP
36622016-08-25 Marek Polacek <polacek@redhat.com>
3663
3664 * c-typeck.c (parser_build_binary_op): Pass LHS to
3665 warn_logical_not_parentheses.
3666
fe377a48
MP
36672016-08-25 Marek Polacek <polacek@redhat.com>
3668
3669 PR c/77323
3670 * c-decl.c (declspecs_add_type): Set typespec_word even when __intN
3671 or _FloatN or _FloatNx is not supported.
3672 (finish_declspecs): Set type to integer_type_node when _FloatN or
3673 _FloatNx is not supported.
3674
c65699ef
JM
36752016-08-19 Joseph Myers <joseph@codesourcery.com>
3676
3677 PR c/32187
3678 * c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
3679 (struct c_declspecs): Add field floatn_nx_idx.
3680 * c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
3681 and _FloatNx type specifiers.
3682 * c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
3683 (c_parser_declspecs, c_parser_attribute_any_word)
3684 (c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
3685 * c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
3686 (convert_arguments): Avoid promoting _FloatN and _FloatNx types
3687 narrower than double.
3688
2f1364c2
JJ
36892016-08-12 Jakub Jelinek <jakub@redhat.com>
3690 Martin Liska <mliska@suse.cz>
3691
3692 PR c/67410
3693 * c-typeck.c (set_nonincremental_init_from_string): Use / instead of
3694 % to determine val element to change. Assert that
3695 wchar_bytes * charwidth fits into val array.
3696
191816a3
MP
36972016-08-12 Marek Polacek <polacek@redhat.com>
3698
3699 PR c/7652
3700 * c-parser.c (c_parser_external_declaration): Add FALLTHRU.
3701 (c_parser_postfix_expression): Likewise.
3702 * c-typeck.c (build_unary_op): Adjust fall through comment.
3703 (c_mark_addressable): Likewise.
3704
b95a64bb
JJ
37052016-08-11 Jakub Jelinek <jakub@redhat.com>
3706
3707 PR c/72816
3708 * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
3709 array member through typedef, for orig_qual_indirect == 0 clear
3710 orig_qual_type.
3711
895aa8e1
DM
37122016-08-08 David Malcolm <dmalcolm@redhat.com>
3713
3714 PR c/64955
3715 * c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
3716 this up to selftest::run_c_tests.
3717 (selftest::run_c_tests): New function.
3718
0b212d8c
TS
37192016-08-04 Thomas Schwinge <thomas@codesourcery.com>
3720
ae9281fc
TS
3721 * c-parser.c (struct oacc_routine_data): Add error_seen and
3722 fndecl_seen members.
3723 (c_finish_oacc_routine): Use these.
3724 (c_parser_declaration_or_fndef): Adjust.
3725 (c_parser_oacc_routine): Likewise. Support more C language
3726 constructs, and improve diagnostics. Move pragma context
3727 checking...
3728 (c_parser_pragma): ... here.
3729
0b212d8c
TS
3730 * c-parser.c (struct oacc_routine_data): New.
3731 (c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
3732 Simplify code.
3733 (c_finish_oacc_routine): Likewise. Don't attach clauses to "omp
3734 declare target" attribute.
3735
76e2c821
JB
37362016-08-01 Jan Beulich <jbeulich@suse.com>
3737
3738 * c-fold.c (c_fully_fold_internal): Also emit shift count
3739 warnings for vector types.
3740 * c-typeck.c (build_binary_op): Likewise.
3741
f618a472
MP
37422016-07-29 Marek Polacek <polacek@redhat.com>
3743
3744 PR c/71742
3745 * c-decl.c (finish_struct): Rephrase an error message.
3746
efd0786f
MP
3747 PR c/71853
3748 * c-parser.c (c_parser_switch_statement): Initialize ce.original_type
3749 to error node for invalid code.
3750
e00dceaf
MP
3751 PR c/71573
3752 * c-decl.c (implicitly_declare): Return decl early not only for
3753 error_mark_nodes, but for anything that is not a FUNCTION_DECL.
3754
673a107a
JJ
37552016-07-29 Jakub Jelinek <jakub@redhat.com>
3756
3757 PR c/71969
3758 * c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
3759 on GNU extern inline functions.
3760
a5b5c8b6
MP
37612016-07-29 Marek Polacek <polacek@redhat.com>
3762
3763 PR c/71583
3764 * c-parser.c (c_parser_postfix_expression_after_paren_type): Also
3765 check expr.value.
3766
e3fe09c1
UB
37672016-07-22 Uros Bizjak <ubizjak@gmail.com>
3768
3769 * c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
3770
7c8f7eaa
DM
37712016-07-20 David Malcolm <dmalcolm@redhat.com>
3772
3773 * c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
3774 spellcheck-tree.h
3775 (best_macro_match): Likewise, converting from a typedef to a
3776 subclass.
3777 (find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
3778 (lookup_name_fuzzy): Update for change of best_macro_match to a
3779 subclass with a ctor that calls cpp_forall_identifiers.
3780
de6a69ee
DM
37812016-07-20 David Malcolm <dmalcolm@redhat.com>
3782
3783 * c-decl.c (implicit_decl_warning): Update for conversion of
3784 return type of lookup_name_fuzzy to const char *.
3785 (undeclared_variable): Likewise.
3786 (lookup_name_fuzzy): Convert return type from tree to
3787 const char *.
3788 * c-parser.c (c_parser_declaration_or_fndef): Update for
3789 conversion of return type of lookup_name_fuzzy to const char *.
3790 (c_parser_parameter_declaration): Likewise.
3791
b1c9c068
CP
37922016-07-15 Cesar Philippidis <cesar@codesourcery.com>
3793
3794 * c-parser.c (c_parser_oacc_declare): Don't scan for
3795 GOMP_MAP_POINTER.
3796 * c-typeck.c (handle_omp_array_sections): Mark data clauses with
3797 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
3798 zero-length subarrays.
3799
ddbbcb19
JJ
38002016-07-15 Jakub Jelinek <jakub@redhat.com>
3801
3802 PR c/71858
3803 * c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
3804 instead of FUZZY_LOOKUP_NAME.
3805 (lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
3806 FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.
3807
dd36b877
JJ
38082016-07-14 Jakub Jelinek <jakub@redhat.com>
3809
3810 PR c/71858
3811 * c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.
3812
8c681247
TS
38132016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3814
3815 * c-parser.c (c_parser_generic_selection): Make type of variable
3816 auto_vec.
3817 (c_parser_omp_declare_simd): Likewise.
3818
bf4fa671
TS
38192016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3820
3821 * c-decl.c (struct c_struct_parse_info): Change member types
3822 from vec to auto_vec.
3823 (start_struct): Adjust.
3824 (finish_struct): Likewise.
3825
557e8c49
JJ
38262016-07-02 Jakub Jelinek <jakub@redhat.com>
3827
3828 PR c/71719
3829 * c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
3830
54d19c3b
TS
38312016-06-29 Thomas Schwinge <thomas@codesourcery.com>
3832
3833 * c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
3834 Move pragma context checking into...
3835 (c_parser_omp_cancellation_point): ... here, and improve
3836 diagnostic messages.
3837 * c-typeck.c (c_finish_omp_cancel)
3838 (c_finish_omp_cancellation_point): Improve diagnostic messages.
3839
152ef731
JJ
38402016-06-29 Jakub Jelinek <jakub@redhat.com>
3841
3842 PR c/71685
3843 * c-typeck.c (c_build_qualified_type): Don't clear
3844 C_TYPE_INCOMPLETE_VARS for the main variant.
3845
38462016-06-28 Martin Sebor <msebor@redhat.com>
4378d117
MS
3847
3848 PR c/71552
3849 * c-typeck.c (output_init_element): Diagnose incompatible types
3850 before non-constant initializers.
3851
e9ac1f86
JJ
38522016-06-28 Jakub Jelinek <jakub@redhat.com>
3853
3854 * Make-lang.in: Don't cat ../stage_current if it does not exist.
3855
277d7ee0
AK
38562016-06-23 Andi Kleen <ak@linux.intel.com>
3857
3858 * Make-lang.in: Add support for autofdo.
3859
1a4f11c8
DM
38602016-06-22 David Malcolm <dmalcolm@redhat.com>
3861
3862 PR c/70339
3863 * c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
3864 (implicit_decl_warning): When issuing warnings for implicit
3865 declarations, attempt to provide a suggestion via
3866 lookup_name_fuzzy.
3867 (undeclared_variable): Likewise when issuing errors.
3868 (lookup_name_in_scope): Likewise.
3869 (struct edit_distance_traits<cpp_hashnode *>): New struct.
3870 (best_macro_match): New typedef.
3871 (find_closest_macro_cpp_cb): New function.
3872 (lookup_name_fuzzy): New function.
3873 * c-parser.c: Include gcc-rich-location.h.
3874 (c_token_starts_typename): Split out case CPP_KEYWORD into...
3875 (c_keyword_starts_typename): ...this new function.
3876 (c_parser_declaration_or_fndef): When issuing errors about
3877 missing "struct" etc, add a fixit. For other kinds of errors,
3878 attempt to provide a suggestion via lookup_name_fuzzy.
3879 (c_parser_parms_declarator): When looking ahead to detect typos in
3880 type names, also reject CPP_KEYWORD.
3881 (c_parser_parameter_declaration): When issuing errors about
3882 unknown type names, attempt to provide a suggestion via
3883 lookup_name_fuzzy.
3884 * c-tree.h (c_keyword_starts_typename): New prototype.
3885
5a578671
JM
38862016-06-20 Joseph Myers <joseph@codesourcery.com>
3887
3888 PR c/71601
3889 * c-typeck.c (build_conditional_expr): Return error_mark_node if
3890 c_common_type returns error_mark_node.
3891
3f8257db 38922016-06-19 Martin Sebor <msebor@redhat.com>
aa0db437
MS
3893
3894 PR c/69507
3895 * c-parser.c (c_parser_alignof_expression): Avoid diagnosing
3896 __alignof__ (expression).
3897
6a3f203c
DM
38982016-06-14 David Malcolm <dmalcolm@redhat.com>
3899
3900 * c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h.
3901
264757fb
DM
39022016-06-14 David Malcolm <dmalcolm@redhat.com>
3903
3904 * c-typeck.c (build_component_ref): Simplify fixit code by
3905 using gcc_rich_location::add_fixit_misspelled_id.
3906 (set_init_label): Likewise.
3907
f7e4f2e3
DM
39082016-06-13 David Malcolm <dmalcolm@redhat.com>
3909
3910 * c-parser.c (c_parser_initelt): Provide location of name for new
3911 location_t param of set_init_label.
3912 * c-tree.h (set_init_label): Add location_t param.
3913 * c-typeck.c (set_init_index): Add "fieldname_loc" location_t
3914 param and use it when issuing error messages about unrecognized
3915 field names. Attempt to provide a fixit hint if appropriate,
3916 otherwise update the error message to provide the type name.
3917
4b1ffdb1
TS
39182016-06-10 Thomas Schwinge <thomas@codesourcery.com>
3919
3920 PR c/71381
3921 * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
3922 Loosen checking.
3923
44a845ca
MS
39242016-06-08 Martin Sebor <msebor@redhat.com>
3925 Jakub Jelinek <jakub@redhat.com>
3926
3927 PR c++/70507
3928 PR c/68120
3929 * c-typeck.c (convert_arguments): Don't promote last argument
3930 of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
3931
92a5f2ba
MP
39322016-06-08 Marek Polacek <polacek@redhat.com>
3933
3934 PR c/71418
3935 * c-decl.c (grokdeclarator): Check TYPE_P.
3936
08203f73
MP
3937 PR c/71426
3938 * c-decl.c (get_parm_info): Don't crash on an assert on invalid
3939 code.
3940
6ffd47b7
DM
39412016-06-07 David Malcolm <dmalcolm@redhat.com>
3942
3943 * c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
3944 and structure element reference, capture the location of the
3945 element name token and pass it to build_component_ref.
3946 (c_parser_postfix_expression_after_primary): Likewise for
3947 structure element dereference.
3948 (c_parser_omp_variable_list): Likewise for
3949 OMP_CLAUSE_{_CACHE, MAP, FROM, TO},
3950 * c-tree.h (build_component_ref): Add location_t param.
3951 * c-typeck.c (build_component_ref): Add location_t param
3952 COMPONENT_LOC. Use it, if available, when issuing hints about
3953 mispelled member names to provide a fixit replacement hint.
3954
1f40cff3
MP
39552016-06-06 Marek Polacek <polacek@redhat.com>
3956
3957 PR c/71362
3958 * c-parser.c (c_parser_direct_declarator): Set location.
3959
5545a907
MP
39602016-06-06 Marek Polacek <polacek@redhat.com>
3961
3962 * c-typeck.c (comptypes_internal): Handle comparisons of
3963 INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes. Don't check
3964 TYPE_REF_CAN_ALIAS_ALL.
3965
b605f663
CLT
39662016-06-03 Chung-Lin Tang <cltang@codesourcery.com>
3967
3968 * c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
3969 arguments as addressable when async clause exists.
3970
00631022
JJ
39712016-05-30 Jakub Jelinek <jakub@redhat.com>
3972
3973 PR c++/71349
3974 * c-parser.c (c_parser_omp_for): Don't disallow nowait clause
3975 when combined with target construct.
3976
7211a097
JJ
39772016-05-26 Jakub Jelinek <jakub@redhat.com>
3978
3979 * c-parser.c (c_parser_omp_clause_schedule): Warn if
3980 OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
3981
95efe6b6
MP
39822016-05-25 Marek Polacek <polacek@redhat.com>
3983
3984 PR c/71265
3985 * c-decl.c (c_make_fname_decl): Don't check seen_error.
3986
a23faf7a
MP
3987 PR c/71266
3988 * c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.
3989
e46c7770
CP
39902016-05-24 Cesar Philippidis <cesar@codesourcery.com>
3991
3992 * c-parser.c (c_parser_oacc_declare): Add support for
3993 GOMP_MAP_FIRSTPRIVATE_POINTER.
3994 * c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
3995 argument with enum c_omp_region_type ort.
3996 (handle_omp_array_sections): Likewise. Update call to
3997 handle_omp_array_sections_1.
3998 (c_finish_omp_clauses): Add specific errors and warning messages for
3999 OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update
4000 call to handle_omp_array_sections.
4001
a04e69c0
TS
40022016-05-24 Thomas Schwinge <thomas@codesourcery.com>
4003
4004 * c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
4005
f17a223d
RB
40062016-05-24 Richard Biener <rguenther@suse.de>
4007
4008 PR middle-end/70434
4009 PR c/69504
4010 * c-typeck.c (build_array_ref): Do not complain about indexing
4011 non-lvalue vectors. Adjust for function name change.
4012
79063edd
MS
40132016-05-20 Martin Sebor <msebor@redhat.com>
4014
4015 PR c/71115
4016 * c-typeck.c (error_init): Use
4017 expansion_point_location_if_in_system_header.
4018 (warning_init): Same.
4019
8a40fef3
DM
40202016-05-19 David Malcolm <dmalcolm@redhat.com>
4021
4022 PR c/71171
4023 * c-parser.c (c_parser_generic_selection): Use c_expr::set_error
4024 in error-handling.
4025 (c_parser_postfix_expression): Likewise.
4026 * c-tree.h (c_expr::set_error): New method.
4027 * c-typeck.c (parser_build_binary_op): In error-handling, ensure
4028 that result's range is initialized.
4029
e9892350
JG
40302016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
4031
4032 * c-typeck.c (parser_build_unary_op): Fix formatting.
4033
8fad45f5
MW
40342016-05-16 Matthew Wahab <matthew.wahab@arm.com>
4035
4036 * c-decl.c (grokdeclarator): Remove errmsg and use of
4037 targetm.invalid_return_type.
4038 (grokparms): Remove errmsg and use of
4039 targetm.invalid_parameter_type.
4040
aa4b467b
JM
40412016-05-13 Joseph Myers <joseph@codesourcery.com>
4042
4043 * c-decl.c (grokdeclarator): For C11, discard qualifiers on
4044 function return type.
4045
4f2e1536
MP
40462016-05-12 Marek Polacek <polacek@redhat.com>
4047
4048 PR c/70756
4049 * c-decl.c (build_compound_literal): Pass LOC down to
4050 c_incomplete_type_error.
4051 * c-tree.h (require_complete_type): Adjust declaration.
4052 (c_incomplete_type_error): Likewise.
4053 * c-typeck.c (require_complete_type): Add location parameter, pass it
4054 down to c_incomplete_type_error.
4055 (c_incomplete_type_error): Add location parameter, pass it down to
4056 error_at.
4057 (build_component_ref): Pass location down to c_incomplete_type_error.
4058 (default_conversion): Pass location down to require_complete_type.
4059 (build_array_ref): Likewise.
4060 (build_function_call_vec): Likewise.
4061 (convert_arguments): Likewise.
4062 (build_unary_op): Likewise.
4063 (build_c_cast): Likewise.
4064 (build_modify_expr): Likewise.
4065 (convert_for_assignment): Likewise.
4066 (c_finish_omp_clauses): Likewise.
4067
d6e83a8d
MM
40682016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
4069
4070 PR c/43651
4071 * c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
4072 is enabled.
4073 * c-errors.c (pedwarn_c90): Return true if warned.
4074 * c-tree.h (pedwarn_c90): Change return type to bool.
4075 (enum c_declspec_word): Add new enumerator cdw_atomic.
4076
5c3a10fb
MP
40772016-05-11 Marek Polacek <polacek@redhat.com>
4078
4079 PR c++/71024
4080 * c-decl.c (diagnose_mismatched_decls): Factor out code to
4081 diagnose_mismatched_attributes and call it.
4082
cf68d92c
MP
40832016-05-10 Marek Polacek <polacek@redhat.com>
4084
4085 PR c/70255
4086 * c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute
4087 on a declaration following the definition.
4088
351f85c5
JJ
40892016-05-05 Jakub Jelinek <jakub@redhat.com>
4090
4091 * c-parser.c (c_parser_switch_statement): Add IF_P argument,
4092 parse it through to c_parser_c99_block_statement.
4093 (c_parser_statement_after_labels): Adjust c_parser_switch_statement
4094 caller.
4095
deef7113
MP
40962016-05-04 Marek Polacek <polacek@redhat.com>
4097
4098 * c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
4099 OPT_Wdangling_else.
4100
de55efd5
MP
41012016-05-04 Marek Polacek <polacek@redhat.com>
4102
4103 PR c/48778
4104 * c-typeck.c (build_binary_op): Don't issue -Waddress warnings
4105 for macro expansions.
4106
79ce98bc
MP
41072016-05-03 Marek Polacek <polacek@redhat.com>
4108
4109 PR c/70859
4110 * c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
4111 check_builtin_function_arguments.
4112
fb2647aa
RB
41132016-05-03 Richard Biener <rguenther@suse.de>
4114
4115 * Make-lang.in (cc1-checksum.c): For stage-final re-use
4116 the checksum from the previous stage.
4117
77886428
CP
41182016-05-02 Cesar Philippidis <cesar@codesourcery.com>
4119
4120 * c-parser.c (c_parser_oacc_all_clauses): Update call to
4121 c_finish_omp_clauses.
4122 (c_parser_omp_all_clauses): Likewise.
4123 (c_parser_oacc_cache): Likewise.
4124 (c_parser_oacc_loop): Likewise.
4125 (omp_split_clauses): Likewise.
4126 (c_parser_omp_declare_target): Likewise.
4127 (c_parser_cilk_all_clauses): Likewise.
4128 (c_parser_cilk_for): Likewise.
4129 * c-typeck.c (c_finish_omp_clauses): Replace bool arguments
4130 is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.
4131
7176a4a0
MP
41322016-05-02 Marek Polacek <polacek@redhat.com>
4133
4134 PR c/70851
4135 * c-decl.c (grokdeclarator): Diagnose when array's size has an
4136 incomplete type.
4137
e7ff0319
CP
41382016-04-29 Cesar Philippidis <cesar@codesourcery.com>
4139
4140 PR middle-end/70626
4141 * c-parser.c (c_parser_oacc_loop): Don't augment mask with
4142 OACC_LOOP_CLAUSE_MASK.
4143 (c_parser_oacc_kernels_parallel): Update call to
4144 c_oacc_split_loop_clauses.
4145
9f405ce1
AM
41462016-04-28 Andrew MacLeod <amacleod@redhat.com>
4147
4148 * c-array-notation.c (fix_builtin_array_notation_fn): Fix final
4149 argument to build_modify_expr in two cases.
4150
c1e1f433
BS
41512016-04-27 Bernd Schmidt <bschmidt@redhat.com>
4152
4153 * c-parser.c (c_parser_postfix_expression_after_primary): Call
4154 warn_for_memset instead of warning directly here.
4155
2448a956
MP
41562016-04-26 Marek Polacek <polacek@redhat.com>
4157
4158 PR c/67784
4159 * c-parser.c (c_parser_maybe_reclassify_token): New function factored
4160 out of ...
4161 (c_parser_for_statement): ... here.
4162 (c_parser_if_statement): Use it.
4163 (c_parser_switch_statement): Use it.
4164 (c_parser_while_statement): Use it.
4165
b02a5e26
MP
4166 PR c/70791
4167 * c-decl.c (pushdecl): Pass LOCUS down to warning.
4168
477d4906
IV
41692016-04-20 Ilya Verbin <ilya.verbin@intel.com>
4170
4171 PR c++/69363
4172 * c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
4173 instead of c_finish_cilk_clauses.
4174 * c-tree.h (c_finish_omp_clauses): Add new default argument.
4175 * c-typeck.c (c_finish_omp_clauses): Add new argument. Allow
4176 floating-point variables in the linear clause for Cilk Plus.
4177
fe37c7af
MM
41782016-04-18 Michael Matz <matz@suse.de>
4179
4180 * c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4181 (grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.
4182
949505a9
MP
41832016-04-15 Marek Polacek <polacek@redhat.com>
4184
4185 PR c/70671
4186 * c-typeck.c (build_unary_op): Pass location down to error and
4187 warning call.
4188
dda1bf61
JJ
41892016-04-15 Jakub Jelinek <jakub@redhat.com>
4190
4191 PR c/70436
4192 * c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
4193 where needed.
4194 (c_parser_external_declaration, c_parser_struct_or_union_specifier,
4195 c_parser_parameter_declaration, c_parser_compound_statement_nostart,
4196 c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
4197 Adjust c_parser_pragma callers.
4198 (c_parser_statement_after_labels): Likewise. Adjust c_parser_cilk_for
4199 caller.
4200 (c_parser_omp_structured_block): Add IF_P argument, pass it down to
4201 c_parser_statement.
4202 (c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
4203 c_parser_oacc_kernels_parallel, c_parser_omp_critical,
4204 c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
4205 c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
4206 c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
4207 c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
4208 c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
4209 c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
4210 down where needed.
4211 (c_parser_omp_for_loop): Likewise. Clear IF_P if nbraces.
4212 (c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
4213 calls.
4214
99cd9857
MP
42152016-04-13 Marek Polacek <polacek@redhat.com>
4216
4217 PR c/70436
4218 * c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
4219 adjust callers.
4220 (c_parser_statement): Likewise.
4221 (c_parser_c99_block_statement): Likewise.
4222 (c_parser_while_statement): Likewise.
4223 (c_parser_for_statement): Likewise.
4224 (c_parser_if_body): Don't set IF_P here.
4225 (c_parser_if_statement): Add IF_P argument. Set IF_P here. Warn
4226 about dangling else here.
4227 * c-tree.h (c_finish_if_stmt): Adjust declaration.
4228 * c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter. Don't
4229 warn about dangling else here.
4230
f13355da
MP
42312016-04-04 Marek Polacek <polacek@redhat.com>
4232
4233 PR c/70307
4234 * c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.
4235
5fde6a45
MP
42362016-03-31 Marek Polacek <polacek@redhat.com>
4237
4238 PR c/70297
4239 * c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
4240
4bbf545b
DM
42412016-03-18 David Malcolm <dmalcolm@redhat.com>
4242
4243 PR c/70281
4244 * c-parser.c (c_parser_postfix_expression): Set the source range
4245 for uses of "__builtin_types_compatible_p".
4246
fcc2b74f
JJ
42472016-03-17 Jakub Jelinek <jakub@redhat.com>
4248
4249 PR c/70280
4250 * c-typeck.c (composite_type): Don't count void_list_node
4251 into len, if the list is terminated by void_list_node, start
4252 with void_list_node instead of NULL for newargs. Stop
4253 at void_list_node.
4254
ab4c578f
MP
42552016-03-16 Marek Polacek <polacek@redhat.com>
4256
4257 PR c/70093
4258 * c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
4259 nested functions returning VM types.
4260
96b3c82d
CP
42612016-03-09 Cesar Philippidis <cesar@codesourcery.com>
4262
4263 * c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
4264 when calling c_finish_omp_clauses.
4265
29b9828f
BS
42662016-03-04 Bernd Schmidt <bschmidt@redhat.com>
4267
4268 PR c/69824
4269 * c-decl.c (get_parm_info): Don't queue implicit function declarations
4270 for later.
4271
7ff6ca38
MP
42722016-03-04 Marek Polacek <polacek@redhat.com>
4273
4274 PR c/69798
4275 * c-parser.c (c_parser_postfix_expression): Call
4276 c_parser_cast_expression rather than c_parser_postfix_expression.
4277
686e2237
JJ
42782016-03-01 Jakub Jelinek <jakub@redhat.com>
4279
4280 PR c/69796
4281 PR c/69974
4282 * c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
4283 of incomplete decls to error_mark_node.
4284
0b05329b
MP
42852016-02-24 Marek Polacek <polacek@redhat.com>
4286
4287 PR c/69819
4288 * c-decl.c (finish_decl): Don't update the copy of the type of a
4289 different decl type.
4290
067fbd8b
JJ
42912016-02-23 Jakub Jelinek <jakub@redhat.com>
4292
4293 PR objc/69844
4294 * c-parser.c (c_parser_for_statement): Properly handle ObjC classes
4295 in id_kind reclassification.
4296
bf14eba2
JJ
42972016-02-16 Jakub Jelinek <jakub@redhat.com>
4298
4299 PR c/69835
4300 * c-typeck.c (build_binary_op): Revert 2015-09-09 change.
4301
ba539195
JN
43022016-02-16 James Norris <jnorris@codesourcery.com>
4303
4304 PR c/64748
4305 * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
4306
16595a1f
BS
43072016-02-12 Bernd Schmidt <bschmidt@redhat.com>
4308
f48dfe98
BS
4309 * c-decl.c (build_null_declspecs): Zero the entire struct.
4310
16595a1f
BS
4311 PR c/69522
4312 * c-parser.c (c_parser_braced_init): New arg outer_obstack. All
4313 callers changed. If nested_p is true, use it to call
4314 finish_implicit_inits.
4315 * c-tree.h (finish_implicit_inits): Declare.
4316 * c-typeck.c (finish_implicit_inits): New function. Move code
4317 from ...
4318 (push_init_level): ... here.
4319 (set_designator, process_init_element): Call finish_implicit_inits.
4320
66756373
JJ
43212016-02-11 Jakub Jelinek <jakub@redhat.com>
4322
4323 PR c/69768
4324 * c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
4325 arguments for -Waddress warning.
4326
1066e9b5
JJ
43272016-02-04 Jakub Jelinek <jakub@redhat.com>
4328
4329 PR c/69669
4330 * c-decl.c (finish_enum): When honoring mode attribute,
4331 make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
4332
3a5d2ba4
JJ
43332016-01-29 Jakub Jelinek <jakub@redhat.com>
4334
4335 PR debug/69518
4336 * c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
4337 all type variants, not just TYPE_MAIN_VARIANT.
4338
cbdd8ae0
JJ
43392016-01-27 Jakub Jelinek <jakub@redhat.com>
4340
4341 PR debug/66869
4342 * c-decl.c (c_write_global_declarations_1): Warn with
4343 warn_unused_function if static prototype without definition
4344 is not C_DECL_USED.
4345
fa74a4bc
MP
43462016-01-27 Marek Polacek <polacek@redhat.com>
4347
4348 PR c/68062
4349 * c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
4350 to unsigned, if needed. Add -Wsign-compare warning.
4351
13f92e8d
JJ
43522016-01-26 Jakub Jelinek <jakub@redhat.com>
4353
4354 PR tree-optimization/69483
4355 * c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.
4356
cd8e73dc 43572016-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
d25c7690
PK
4358
4359 PR c/24293
4360 * c-tree.h (incomplete_record_decls): Declare.
4361 * c-parser.c (incomplete_record_decls): Define.
4362 (c_parser_translation_unit): Iterate through incomplete_record_decls and
4363 report error if any decl has zero size.
4364 * c-decl.c (finish_decl): Append static decl with incomplete struct/union
4365 or enum type to incomplete_record_decls.
4366
e6d6ec9e
TV
43672016-01-14 Tom de Vries <tom@codesourcery.com>
4368
4369 PR tree-optimization/68773
4370 * c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
4371 set force_output.
4372
00083992
MP
43732016-01-14 Marek Polacek <polacek@redhat.com>
4374
4375 PR c/69262
4376 * c-decl.c (grokdeclarator): Provide more information for invalid
4377 array declarations.
4378
7443cf13
DM
43792016-01-06 David Malcolm <dmalcolm@redhat.com>
4380
4381 * c-parser.c (c_parser_unary_expression): For dereferences, build
4382 a combined location before calling build_indirect_ref, so that
4383 error reports cover the full range, manually updating the c_expr
4384 src_range.
4385
6b131d5b
MP
43862016-01-06 Marek Polacek <polacek@redhat.com>
4387
4388 PR sanitizer/69099
4389 * c-convert.c (convert) [INTEGER_TYPE]: Drop ARG. Don't pass ARG to
4390 ubsan_instrument_float_cast. Fold EXPR. Use NULL_TREE instead of
4391 NULL.
4392
818ab71a
JJ
43932016-01-04 Jakub Jelinek <jakub@redhat.com>
4394
4395 Update copyright years.
4396
2fe0a208
MP
43972016-01-04 Marek Polacek <polacek@redhat.com>
4398
4399 PR c/68908
4400 * c-typeck.c (build_atomic_assign): Improve commentary. Add
4401 optimization to use __atomic_fetch_* built-in if possible.
4402
c7b48c8a
TS
44032015-12-23 Thomas Schwinge <thomas@codesourcery.com>
4404
4405 * c-parser.c (c_parser_oacc_clause_use_device): Merge function
4406 into...
4407 (c_parser_omp_clause_use_device_ptr): ... this function. Adjust
4408 all users.
4409
fda5652f
MP
44102015-12-22 Marek Polacek <polacek@redhat.com>
4411
4412 PR c/69002
4413 * c-typeck.c (build_component_ref): Warn when acessing elements of
4414 atomic structures or unions.
4415
745e411d
DM
44162015-12-21 David Malcolm <dmalcolm@redhat.com>
4417
4418 * c-typeck.c: Include "gcc-rich-location.h".
4419 (build_binary_op): In the two places that call binary_op_error,
4420 create a gcc_rich_location and populate it with the location of
4421 the binary op and its two operands.
4422
94c40e19
DM
44232015-12-16 David Malcolm <dmalcolm@redhat.com>
4424
4425 * c-parser.c (c_parser_statement_after_labels): When calling
4426 c_finish_return, Use the return expression's location if it has
4427 one, falling back to the location of the first token within it.
4428 * c-typeck.c (c_finish_return): When issuing warnings about
4429 the incorrect presence/absence of a return value, issue a note
4430 showing the declaration of the function.
4431
de67c4c3
DM
44322015-12-16 David Malcolm <dmalcolm@redhat.com>
4433
4434 * c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
4435 to 4.
4436 (c_parser_peek_nth_token): New function.
4437 (c_parser_peek_conflict_marker): New function.
4438 (c_parser_error): Detect conflict markers and report them as such.
4439
a10704e1
DM
44402015-12-16 David Malcolm <dmalcolm@redhat.com>
4441
4442 * c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
4443 to preserve range information for the primary expression
4444 in the call to c_parser_postfix_expression_after_primary.
4445
8062bca6
DM
44462015-12-16 David Malcolm <dmalcolm@redhat.com>
4447
4448 * c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
4449 expression location, falling back on the first token location,
4450 rather than always using the latter.
4451
d06f8b75
MP
44522015-12-16 Marek Polacek <polacek@redhat.com>
4453
4454 PR c/64637
4455 * c-typeck.c (c_process_expr_stmt): Use location of the expression if
4456 available.
4457
2994fb91
MP
44582015-12-15 Marek Polacek <polacek@redhat.com>
4459
4460 PR c/68907
4461 * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
4462 artificial decl.
4463
a1b93f8d
DM
44642015-12-08 David Malcolm <dmalcolm@redhat.com>
4465
4466 * c-parser.c (c_parser_alignof_expression): Capture location of
4467 closing parenthesis (if any), or of end of unary expression, and
4468 use it to build a src_range for the expression.
4469
46c6e1e2
DM
44702015-12-08 David Malcolm <dmalcolm@redhat.com>
4471
4472 PR c/68757
4473 * c-parser.c (c_parser_get_builtin_args): Add
4474 "out_close_paren_loc" param, and write back to it.
4475 (c_parser_postfix_expression): Capture the closing
4476 parenthesis location for RID_CHOOSE_EXPR,
4477 RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
4478 RID_BUILTIN_SHUFFLE and use it to set the source range
4479 for such expressions; within RID_BUILTIN_COMPLEX set
4480 the underlying location.
4481
66189108
MP
44822015-12-07 Marek Polacek <polacek@redhat.com>
4483
4484 PR c/68668
4485 * c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
4486 TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.
4487
f187980b
EB
44882015-12-04 Eric Botcazou <ebotcazou@adacore.com>
4489
4490 * c-tree.h (c_build_va_arg): Adjust prototype.
4491 * c-parser.c (c_parser_postfix_expression): Adjust call to above.
4492 * c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
4493 parameter, adjust throughout and issue an error if EXPR is a component
4494 with reverse storage order.
4495
4250754e
JM
44962015-12-02 Jason Merrill <jason@redhat.com>
4497
4498 * c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
4499 (c_fully_fold_internal, decl_constant_value_for_optimization):
4500 Move from c-common.c.
4501 * c-tree.h: Declare decl_constant_value_for_optimization.
4502 * Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
4503
e9e32ee6
JM
45042015-12-02 Joseph Myers <joseph@codesourcery.com>
4505
4506 PR c/68162
4507 * c-decl.c (grokdeclarator): Set first_non_attr_kind before
4508 following link from declarator to next declarator. Track original
4509 qualified type and pass it to c_build_qualified_type.
4510 * c-typeck.c (c_build_qualified_type): Add arguments
4511 orig_qual_type and orig_qual_indirect.
4512
ff7a55bf
TS
45132015-12-02 Thomas Schwinge <thomas@codesourcery.com>
4514
4515 * c-parser.c (c_parser_omp_clause_name)
4516 (c_parser_oacc_all_clauses): Alphabetical sorting.
4517
657e4e47
JJ
45182015-12-02 Jakub Jelinek <jakub@redhat.com>
4519
4520 PR c/68533
4521 * c-decl.c (get_parm_info): Use b->locus instead of input_location
4522 for diagnostics.
4523
37d5ad46
JB
45242015-12-01 Julian Brown <julian@codesourcery.com>
4525 Cesar Philippidis <cesar@codesourcery.com>
4526 James Norris <James_Norris@mentor.com>
4527
4528 * c-parser.c (c_parser_omp_clause_name): Add use_device support.
4529 (c_parser_oacc_clause_use_device): New function.
4530 (c_parser_oacc_all_clauses): Add use_device support.
4531 (OACC_HOST_DATA_CLAUSE_MASK): New macro.
4532 (c_parser_oacc_host_data): New function.
4533 (c_parser_omp_construct): Add host_data support.
4534 * c-tree.h (c_finish_oacc_host_data): Add prototype.
4535 * c-typeck.c (c_finish_oacc_host_data): New function.
4536 (c_finish_omp_clauses): Add use_device support.
4537
a4850ce9
JH
45382015-11-29 Jan Hubicka <hubicka@ucw.cz>
4539
4540 PR c/67106
4541 * c-decl.c: Set TYPE_PACKED in variants.
4542
b58d3df2
ML
45432015-11-27 Martin Liska <mliska@suse.cz>
4544
4545 PR c++/68312
4546 * c-array-notation.c (fix_builtin_array_notation_fn):
4547 Use release_vec_vec instead of vec::release.
4548 (build_array_notation_expr): Likewise.
4549 (fix_conditional_array_notations_1): Likewise.
4550 (fix_array_notation_expr): Likewise.
4551 (fix_array_notation_call_expr): Likewise.
4552
aec17bfe
JJ
45532015-11-27 Jakub Jelinek <jakub@redhat.com>
4554
4555 PR c/63326
4556 * c-parser.c (c_parser_compound_statement_nostart): If
4557 last_label is true, use pragma_stmt instead of pragma_compound
4558 as second c_parser_pragma argument.
4559 (c_parser_omp_ordered, c_parser_omp_target_update,
4560 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
4561 false as second argument to c_parser_skip_to_pragma_eol after
4562 diagnosing standalone directives used in pragma_stmt context.
4563
688c4de0
IV
45642015-11-24 Ilya Verbin <ilya.verbin@intel.com>
4565
4566 * c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
4567 with "if (ENABLE_OFFLOADING)".
4568
cbd03aee
DM
45692015-11-23 David Malcolm <dmalcolm@redhat.com>
4570
4571 PR objc/68438
4572 * c-parser.c (c_parser_postfix_expression): Set up source ranges
4573 for various Objective-C constructs: Class.name syntax,
4574 @selector(), @protocol(), @encode(), and [] message syntax.
4575
a87a86e1
DM
45762015-11-20 David Malcolm <dmalcolm@redhat.com>
4577
4578 PR 62314
4579 * c-typeck.c (should_suggest_deref_p): New function.
4580 (build_component_ref): Special-case POINTER_TYPE when
4581 generating a "not a structure of union" error message, and
4582 suggest a "->" rather than a ".", providing a fix-it hint.
4583
8ece8dfb
DM
45842015-11-19 David Malcolm <dmalcolm@redhat.com>
4585
4586 * c-typeck.c (lookup_field_fuzzy): Move determination of closest
4587 candidate into a new function, find_closest_identifier.
4588
433068cc
MP
45892015-11-19 Marek Polacek <polacek@redhat.com>
4590
4591 PR c/68412
4592 * c-typeck.c (parser_build_binary_op): Properly handle
4593 C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.
4594
bef08b71
DM
45952015-11-17 David Malcolm <dmalcolm@redhat.com>
4596
4597 * c-parser.c (set_c_expr_source_range): Bulletproof both
4598 overloaded implementations against NULL expr->value.
4599 (c_parser_braced_init): Set src_range for "ret" to a sane pair of
4600 values.
4601 (c_parser_unary_expression): Likewise when handling addresses of
4602 labels.
4603 (c_parser_postfix_expression): Likewise for statement expressions,
4604 for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
4605 __builtin_va_arg, and for __builtin_offset_of.
4606 (c_parser_postfix_expression_after_paren_type): Initialize expr's
4607 src_range using the range of the braced initializer.
4608 (c_parser_transaction_expression): Set src_range for "ret" to a
4609 sane pair of values.
4610
fff77217
KY
46112015-11-16 Kirill Yukhin <kirill.yukhin@intel.com>
4612
4613 * c-parser.c (c_finish_omp_declare_simd): Look for
4614 "simd" attribute as well. Update error message.
4615
1d899da2
TS
46162015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4617
4618 * c-parser.c (c_parser_omp_declare_target): Adjust.
4619
e4606348
JJ
46202015-11-14 Jakub Jelinek <jakub@redhat.com>
4621
4622 * c-typeck.c (c_finish_omp_clauses): Don't mark
4623 GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
4624
3e636daf
MP
46252015-11-14 Marek Polacek <polacek@redhat.com>
4626
4627 * c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
4628 * c-typeck.c: Likewise.
4629
ebedc9a3
DM
46302015-11-13 David Malcolm <dmalcolm@redhat.com>
4631
4632 * c-decl.c (warn_defaults_to): Pass line_table to
4633 rich_location ctor.
4634 * c-errors.c (pedwarn_c99): Likewise.
4635 (pedwarn_c90): Likewise.
4636 * c-parser.c (set_c_expr_source_range): New functions.
4637 (c_token::get_range): New method.
4638 (c_token::get_finish): New method.
4639 (c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
4640 based on the range from the start of the LHS to the end of the
4641 RHS.
4642 (c_parser_conditional_expression): Likewise, based on the range
4643 from the start of the cond.value to the end of exp2.value.
4644 (c_parser_binary_expression): Call set_c_expr_source_range on
4645 the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
4646 (c_parser_cast_expression): Call set_c_expr_source_range on ret
4647 based on the cast_loc through to the end of the expr.
4648 (c_parser_unary_expression): Likewise, based on the
4649 op_loc through to the end of op.
4650 (c_parser_sizeof_expression) Likewise, based on the start of the
4651 sizeof token through to either the closing paren or the end of
4652 expr.
4653 (c_parser_postfix_expression): Likewise, using the token range,
4654 or from the open paren through to the close paren for
4655 parenthesized expressions.
4656 (c_parser_postfix_expression_after_primary): Likewise, for
4657 various kinds of expression.
4658 * c-tree.h (struct c_expr): Add field "src_range".
4659 (c_expr::get_start): New method.
4660 (c_expr::get_finish): New method.
4661 (set_c_expr_source_range): New decls.
4662 * c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
4663 on ret for prefix unary ops.
4664 (parser_build_binary_op): Likewise, running from the start of
4665 arg1.value through to the end of arg2.value.
4666
ec8b536f
MP
46672015-11-13 Marek Polacek <polacek@redhat.com>
4668
4669 PR c/68320
4670 * c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.
4671
277fe616
DM
46722015-11-13 David Malcolm <dmalcolm@redhat.com>
4673
4674 * c-typeck.c: Include spellcheck.h.
4675 (lookup_field_fuzzy_find_candidates): New function.
4676 (lookup_field_fuzzy): New function.
4677 (build_component_ref): If the field was not found, try using
4678 lookup_field_fuzzy and potentially offer a suggestion.
4679
6e232ba4
JN
46802015-11-12 James Norris <jnorris@codesourcery.com>
4681 Joseph Myers <joseph@codesourcery.com>
4682
4683 * c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
4684 (c_parser_omp_clause_name): Handle 'device_resident' clause.
4685 (c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
4686 and PRAGMA_OMP_CLAUSE_LINK.
4687 (c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
4688 and PRAGMA_OACC_CLAUSE_LINK.
4689 (OACC_DECLARE_CLAUSE_MASK): New definition.
4690 (c_parser_oacc_declare): New function.
4691
9be4f715
MP
46922015-11-12 Marek Polacek <polacek@redhat.com>
4693
4694 PR c/67784
4695 * c-parser.c (c_parser_for_statement): Reclassify the token in
4696 a correct scope.
4697
e78bede6
MP
46982015-11-11 Marek Polacek <polacek@redhat.com>
4699
4700 PR c/68107
4701 PR c++/68266
4702 * c-decl.c (grokdeclarator): Call valid_array_size_p. Remove code
4703 checking the size of an array.
4704
69f293c9
AM
47052015-11-11 Andrew MacLeod <amacleod@redhat.com>
4706
4707 * c-array-notation.c: Remove unused header files.
4708 * c-aux-info.c: Likewise.
4709 * c-convert.c: Likewise.
4710 * c-decl.c: Likewise.
4711 * c-errors.c: Likewise.
4712 * c-lang.c: Likewise.
4713 * c-objc-common.c: Likewise.
4714 * c-parser.c: Likewise.
4715 * c-typeck.c: Likewise.
4716 * gccspec.c: Likewise.
4717
3a40d81d
NS
47182015-11-09 Thomas Schwinge <thomas@codesourcery.com>
4719 Cesar Philippidis <cesar@codesourcery.com>
4720 James Norris <jnorris@codesourcery.com>
4721 Julian Brown <julian@codesourcery.com>
4722 Nathan Sidwell <nathan@codesourcery.com>
4723
3a40d81d
NS
4724 * c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
4725 routine arg.
4726 (c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
4727 (c_parser_pragma): Parse 'acc routine'.
4728 (OACC_ROUTINE_CLAUSE_MARK): Define.
4729 (c_parser_oacc_routine, (c_finish_oacc_routine): New.
4730
fc402eec
AA
47312015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
4732
4733 PR debug/67192
4734 * c-typeck.c (c_finish_loop): For unconditional loops, set the
4735 location of the backward-goto to the start of the loop body.
4736
f6b0b3db
AA
47372015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
4738
4739 PR debug/67192
4740 * c-parser.c (c_parser_while_statement): Finish the loop before
4741 parsing ahead for misleading indentation.
4742 (c_parser_for_statement): Likewise.
4743
ee45a32d
EB
47442015-11-08 Eric Botcazou <ebotcazou@adacore.com>
4745
4746 * c-decl.c (finish_struct): If the structure has reverse storage
4747 order, rewrite the type of array fields with scalar component. Call
4748 maybe_apply_pragma_scalar_storage_order on entry.
4749 * c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs. Issue
4750 errors on bit-fields and reverse SSO here and not...
4751 (c_mark_addressable): ...here.
4752 (output_init_element): Adjust call to initializer_constant_valid_p.
4753 (c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.
4754
8a645150
DM
47552015-11-06 David Malcolm <dmalcolm@redhat.com>
4756
4757 * c-decl.c (warn_defaults_to): Update for change in signature
4758 of diagnostic_set_info.
4759 * c-errors.c (pedwarn_c99): Likewise.
4760 (pedwarn_c90): Likewise.
4761 * c-objc-common.c (c_tree_printer): Update for new "caret_p" param
4762 for textinfo::set_location.
4763
7a5e4956
CP
47642015-11-05 Cesar Philippidis <cesar@codesourcery.com>
4765 Thomas Schwinge <thomas@codesourcery.com>
4766 James Norris <jnorris@codesourcery.com>
4767
4768 * c-parser.c (c_parser_omp_clause_name): Add support for
4769 PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
4770 (c_parser_omp_clause_default): Add is_oacc argument. Handle
4771 default(none) in OpenACC.
4772 (c_parser_oacc_shape_clause): Allow pointer variables as gang static
4773 arguments.
4774 (c_parser_oacc_clause_tile): New function.
4775 (c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
4776 OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
4777 (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
4778 TILE}.
4779 (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
4780 (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
4781 FIRSTPRIVATE}.
4782 (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
4783 (c_parser_oacc_update): Update the error message for missing clauses.
4784 * c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
4785 and OMP_CLAUSE_INDEPENDENT.
4786
bfcfbfa0
MP
47872015-11-05 Marek Polacek <polacek@redhat.com>
4788
4789 PR c/68090
4790 * c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
4791 deal with pre-evaluation on invalid types.
4792
e01d41e5
JJ
47932015-11-05 Jakub Jelinek <jakub@redhat.com>
4794 Ilya Verbin <ilya.verbin@intel.com>
4795
4796 * c-parser.c: Include context.h and gimple-expr.h.
4797 (c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
4798 monotonic together with nonmonotonic.
4799 (c_parser_omp_for_loop): Call c_omp_check_loop_iv. Call add_stmt here.
4800 (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
4801 (c_parser_omp_target_data, c_parser_omp_target_enter_data,
4802 c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
4803 (c_parser_omp_target): Likewise. Evaluate num_teams and thread_limit
4804 expressions on combined target teams before the target.
4805 (c_parser_omp_declare_target): If decl has "omp declare target" or
4806 "omp declare target link" attribute, and cgraph or varpool node already
4807 exists, then set corresponding flags. Call c_finish_omp_clauses
4808 in the parenthesized extended-list syntax case.
4809 * c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
4810 declare target.
4811 * c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
4812 on OMP_CLAUSE_REDUCTION array sections.
4813 (handle_omp_array_sections): Encode low-bound into the MEM_REF, either
4814 into the constant offset, or for variable low-bound using
4815 POINTER_PLUS_EXPR. For structure element based array sections use
4816 GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
4817 (c_finish_omp_clauses): Drop generic_field_head, structure
4818 elements are now always mapped even as array section bases,
4819 diagnose same var in data sharing and mapping clauses. Diagnose if
4820 linear step on declare simd is neither a constant nor a uniform
4821 parameter. Look through POINTER_PLUS_EXPR for array section
4822 reductions. Diagnose the same var or function appearing multiple
4823 times on the same directive. Fix up wording for the to clause if t
4824 is neither a FUNCTION_DECL nor a VAR_DECL. Diagnose nonmonotonic
4825 modifier on kinds other than dynamic or guided or nonmonotonic
4826 modifier together with ordered clause.
4827
4bf9e5a8
TS
48282015-11-03 Thomas Schwinge <thomas@codesourcery.com>
4829 Chung-Lin Tang <cltang@codesourcery.com>
4830
4831 * c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
4832
2adfab87
AM
48332015-10-29 Andrew MacLeod <amacleod@redhat.com>
4834
4835 * c-array-notation.c: Reorder #include's and remove duplicates.
4836 * c-aux-info.c: Likewise.
4837 * c-convert.c: Likewise.
4838 * c-decl.c: Likewise.
4839 * c-errors.c: Likewise.
4840 * c-lang.c: Likewise.
4841 * c-objc-common.c: Likewise.
4842 * c-parser.c: Likewise.
4843 * c-typeck.c: Likewise.
4844
e922069e
JW
48452015-10-26 Jim Wilson <jim.wilson@linaro.org>
4846
4847 PR debug/66068
4848 * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
4849 after calling build_qualified_type.
4850
765dd391
CP
48512015-10-27 Cesar Philippidis <cesar@codesourcery.com>
4852 Thomas Schwinge <thomas@codesourcery.com>
4853 James Norris <jnorris@codesourcery.com>
4854 Joseph Myers <joseph@codesourcery.com>
4855 Julian Brown <julian@codesourcery.com>
4856 Bernd Schmidt <bschmidt@redhat.com>
4857
4858 * c-parser.c (c_parser_oacc_shape_clause): New.
4859 (c_parser_oacc_simple_clause): New.
4860 (c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
4861 (OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.
4862
88bae6f4
TS
48632015-10-27 Thomas Schwinge <thomas@codesourcery.com>
4864 James Norris <jnorris@codesourcery.com>
4865 Cesar Philippidis <cesar@codesourcery.com>
4866
4867 PR c/64765
4868 PR c/64880
4869 * c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
4870 parameters, and handle these. Adjust all users.
4871 (c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
4872 into...
4873 (c_parser_oacc_kernels_parallel): ... this new function. Adjust
4874 all users.
4875 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
4876 declare functions.
4877 (c_finish_omp_construct): Declare function.
4878 * c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
4879 Merge functions into...
4880 (c_finish_omp_construct): ... this new function.
4881
a8fc2579
RB
48822015-10-22 Richard Biener <rguenther@suse.de>
4883
4884 * c-typeck.c (c_finish_omp_clauses): Properly convert operands
4885 before folding a MINUS_EXPR.
4886
e9122ef6
MP
48872015-10-21 Marek Polacek <polacek@redhat.com>
4888
4889 PR c/68024
4890 * c-decl.c (start_function): Warn about vararg functions without
4891 a prototype.
4892
9f47c7e5
IE
48932015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
4894
4895 * c-typeck.c (build_conditional_expr): Use boolean vector
4896 type for vector comparison.
4897 (build_vec_cmp): New.
4898 (build_binary_op): Use build_vec_cmp for comparison.
4899
fa60eeb9
MP
49002015-10-20 Marek Polacek <polacek@redhat.com>
4901
4902 * c-parser.c (is_cilkplus_vector_p): Don't define here.
4903
2c7020eb
MP
49042015-10-20 Marek Polacek <polacek@redhat.com>
4905
4906 PR c/67964
4907 * c-parser.c (c_parser_attributes): Break out of the loop if the
4908 token after an attribute isn't a comma.
4909
d9a6bd32
JJ
49102015-10-13 Jakub Jelinek <jakub@redhat.com>
4911 Aldy Hernandez <aldyh@redhat.com>
4912
4913 * c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
4914 (c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
4915 (c_parser_omp_variable_list): Handle structure elements for
4916 map, to and from clauses. Handle array sections in reduction
4917 clause. Formatting fixes.
4918 (c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
4919 if clause modifiers.
4920 (c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
4921 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
4922 c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
4923 c_parser_omp_clause_is_device_ptr): New functions.
4924 (c_parser_omp_clause_ordered): Parse optional parameter.
4925 (c_parser_omp_clause_reduction): Handle array reductions.
4926 (c_parser_omp_clause_schedule): Parse optional simd modifier.
4927 (c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
4928 functions.
4929 (c_parser_omp_clause_linear): Parse linear clause modifiers.
4930 (c_parser_omp_clause_depend_sink): New function.
4931 (c_parser_omp_clause_depend): Parse source/sink depend kinds.
4932 (c_parser_omp_clause_map): Parse release/delete map kinds and
4933 optional always modifier.
4934 (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
4935 and c_finish_omp_clauses callers.
4936 (c_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
4937 Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
4938 (c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
4939 (OMP_CRITICAL_CLAUSE_MASK): Define.
4940 (c_parser_omp_critical): Parse critical clauses.
4941 (c_parser_omp_for_loop): Handle doacross loops, adjust
4942 c_finish_omp_for and c_finish_omp_clauses callers.
4943 (OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
4944 (c_parser_omp_simd): Allow ordered clause if it has no parameter.
4945 (OMP_FOR_CLAUSE_MASK): Add linear clause.
4946 (c_parser_omp_for): Disallow ordered clause when combined with
4947 distribute. Disallow linear clause when combined with distribute
4948 and not combined with simd.
4949 (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
4950 (c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
4951 parse clauses and if depend clause is found, don't parse a body.
4952 (c_parser_omp_parallel): Disallow copyin clause on target parallel.
4953 Allow target parallel without for after it.
4954 (OMP_TASK_CLAUSE_MASK): Add priority clause.
4955 (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
4956 (c_parser_omp_target_data): Diagnose no map clauses or clauses with
4957 invalid kinds.
4958 (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
4959 (OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
4960 OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
4961 (c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
4962 functions.
4963 (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
4964 defaultmap and is_device_ptr clauses.
4965 (c_parser_omp_target): Parse target parallel and target simd. Set
4966 OMP_TARGET_COMBINED on combined constructs. Parse target enter data
4967 and target exit data. Diagnose invalid map kinds.
4968 (OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
4969 (c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
4970 construct.
4971 (c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
4972 &omp_priv.
4973 (OMP_TASKLOOP_CLAUSE_MASK): Define.
4974 (c_parser_omp_taskloop): New function.
4975 (c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
4976 handle PRAGMA_OMP_TASKLOOP.
4977 (c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
4978 * c-tree.h (c_finish_omp_clauses): Add two new arguments.
4979 * c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
4980 Add IS_OMP argument, handle structure element bases, diagnose
4981 bitfields, pass IS_OMP recursively, diagnose known zero length
4982 array sections in depend clauses, handle array sections in reduction
4983 clause, diagnose negative length even for pointers.
4984 (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
4985 types, pass IS_OMP down to handle_omp_array_sections_1, handle
4986 array sections in reduction clause, set
4987 OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
4988 length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
4989 (c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
4990 Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
4991
21ba0cea
MP
49922015-10-06 Marek Polacek <polacek@redhat.com>
4993
4994 * c-parser.c (c_parser_statement_after_labels): Use
4995 protected_set_expr_location.
4996 (c_parser_omp_clause_num_gangs): Likewise.
4997 (c_parser_omp_clause_num_threads): Likewise.
4998 (c_parser_omp_clause_num_workers): Likewise.
4999 (c_parser_omp_clause_vector_length): Likewise.
5000 (c_parser_omp_clause_num_teams): Likewise.
5001 (c_parser_omp_clause_thread_limit): Likewise.
5002 * c-typeck.c (build_c_cast): Likewise.
5003 (c_cast_expr): Likewise.
5004
624d31fe
RS
50052015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5006
5007 * c-typeck.c (c_tree_equal): Use real_equal instead of
5008 REAL_VALUES_EQUAL.
5009
b8fd7909
JM
50102015-10-04 Jason Merrill <jason@redhat.com>
5011
5012 * c-parser.c (c_lex_one_token): Handle @synchronized.
5013 * c-decl.c (match_builtin_function_types): A declaration of a built-in
5014 can change whether the function is transaction_safe.
5015
1c7485af
MP
50162015-10-02 Marek Polacek <polacek@redhat.com>
5017
5018 PR c/67730
5019 * c-typeck.c (convert_for_assignment): Use the expansion point
5020 location throughout.
5021
3e3b8d63
MP
50222015-10-02 Marek Polacek <polacek@redhat.com>
5023
5024 PR c/64249
5025 * c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
5026 and pass it down to c_parser_if_statement.
5027 (c_parser_else_body): Add CHAIN parameter and pass it down to
5028 c_parser_statement_after_labels.
5029 (c_parser_if_statement): Add CHAIN parameter. Add code to warn about
5030 duplicated if-else-if conditions.
5031
aabef2de
MP
50322015-10-01 Marek Polacek <polacek@redhat.com>
5033
5034 * c-typeck.c (convert_for_assignment): Improve commentary.
5035
de8ddd5f
MP
50362015-09-30 Marek Polacek <polacek@redhat.com>
5037
5038 PR c/67730
5039 * c-typeck.c (c_finish_return): Use the expansion point location for
5040 certain "return with value" warnings.
5041
c4914de6
MLI
50422015-09-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
5043
5044 * c-parser.c (pragma_lex): Add loc argument.
5045
0e36f5c7
MP
50462015-09-15 Marek Polacek <polacek@redhat.com>
5047
5048 PR c/67580
5049 * c-decl.c (tag_exists_p): New function.
5050 * c-parser.c (c_parser_declaration_or_fndef): Give a hint when
5051 struct/union/enum keywords are missing.
5052 * c-tree.h (tag_exists_p): Declare.
5053
2f3bb934
MP
50542015-09-15 Marek Polacek <polacek@redhat.com>
5055
5056 * c-decl.c (lookup_label): Return NULL_TREE instead of 0.
5057 (lookup_tag): Change the type of THISLEVEL_ONLY to bool.
5058 Return NULL_TREE instead of 0.
5059 (lookup_name): Return NULL_TREE instead of 0.
5060 (lookup_name_in_scope): Likewise.
5061 (shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
5062 (parser_xref_tag): Use false instead of 0.
5063 (start_struct): Use true instead of 1.
5064 (start_enum): Use true instead of 1 and NULL_TREE instead of 0.
5065
aa256c4a
MP
50662015-09-14 Marek Polacek <polacek@redhat.com>
5067
5068 * c-typeck.c (set_nonincremental_init_from_string): Use
5069 HOST_WIDE_INT_M1U when shifting a negative value.
5070
dbb68221
MW
50712015-09-09 Mark Wielaard <mjw@redhat.com>
5072
5073 * c-typeck.c (build_binary_op): Check and warn when nonnull arg
5074 parm against NULL.
5075
a8a098ac
JJ
50762015-09-10 Jakub Jelinek <jakub@redhat.com>
5077
5078 PR c/67502
5079 * c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
5080 into OMP_FOR_PRE_BODY rather than before the loop.
5081
f4b189d5
JJ
50822015-09-09 Jakub Jelinek <jakub@redhat.com>
5083
0bb99c11
JJ
5084 PR c/67501
5085 * c-parser.c (c_parser_oacc_all_clauses,
5086 c_parser_omp_all_clauses): Remove invalid clause from
5087 list of clauses even if parser->error is set.
5088
fce5e5e3
JJ
5089 PR c/67500
5090 * c-parser.c (c_parser_omp_clause_aligned,
5091 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
5092 test for errors.
5093 * c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
5094 error_mark_node.
5095
f4b189d5
JJ
5096 PR c/67495
5097 * c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
5098 instead of c_parser_unary_expression. If the result is !lvalue_p,
5099 wrap the result of c_fully_fold into NON_LVALUE_EXPR.
5100
b2aaf235
MP
51012015-09-04 Marek Polacek <polacek@redhat.com>
5102
5103 PR sanitizer/67279
5104 * c-typeck.c (build_binary_op): Don't instrument static initializers.
5105
1807ffc1
MS
51062015-09-03 Martin Sebor <msebor@redhat.com>
5107
5108 PR c/66516
8b652e65
JJ
5109 * c-typeck.c (convert_arguments, parser_build_unary_op,
5110 build_conditional_expr, c_cast_expr, convert_for_assignment,
5111 build_binary_op, _objc_common_truthvalue_conversion): Call
1807ffc1
MS
5112 reject_gcc_builtin.
5113 (c_decl_implicit): Define.
5114
d04ff417
MP
51152015-09-02 Marek Polacek <polacek@redhat.com>
5116
5117 PR c/67432
5118 * c-parser.c (c_parser_enum_specifier): Give a better error for
5119 an empty enum.
5120
a79683d5
TS
51212015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
5122
5123 * c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
5124
191a6b94
MP
51252015-08-12 Marek Polacek <polacek@redhat.com>
5126
5127 * c-decl.c (grokdeclarator): Call error_at instead of error and pass
5128 LOC to it.
5129
420a9d9b
MP
51302015-08-03 Marek Polacek <polacek@redhat.com>
5131
5132 PR c/67088
5133 * c-decl.c (check_bitfield_type_and_width): Add location parameter.
5134 Use it.
5135 (grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
5136
992118a1
PP
51372015-08-02 Patrick Palka <ppalka@gcc.gnu.org>
5138
5139 * c-parser.c (c_parser_if_body): Take token_indent_info
5140 argument. Call warn_for_misleading_indentation even when the
5141 body is a semicolon. Extract token_indent_infos corresponding
5142 to the guard, body and next tokens. Adjust call to
5143 warn_for_misleading_indentation accordingly.
5144 (c_parser_else_body): Likewise.
5145 (c_parser_if_statement): Likewise.
5146 (c_parser_while_statement): Likewise.
5147 (c_parser_for_statement): Likewise.
5148
46308474
LFSM
51492015-07-28 Luis Felipe Strano Moraes <luis.strano@gmail.com>
5150 Manuel López-Ibáñez <manu@gcc.gnu.org>
5151
5152 * c-decl.c (get_parm_info): Remove static var. Update warning
5153 message.
5154
05b28fd6
MP
51552015-07-27 Marek Polacek <polacek@redhat.com>
5156
5157 PR c++/66555
5158 PR c/54979
5159 * c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
5160
451b5e48
MP
51612015-07-20 Marek Polacek <polacek@redhat.com>
5162
5163 PR c++/55095
5164 * c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
5165 (build_binary_op): Warn about left shift overflows.
5166
1916bcb5
AM
51672015-07-09 Andrew MacLeod <amacleod@redhat.com>
5168
5169 * c-array-notation.c: Adjust includes for flags.h changes.
5170 * c-objc-common.c: Likewise.
5171
c7131fb2
AM
51722015-07-07 Andrew MacLeod <amacleod@redhat.com>
5173
5174 * c-array-notation.c: Adjust includes.
5175 * c-aux-info.c: Likewise.
5176 * c-convert.c: Likewise.
5177 * c-decl.c: Likewise.
5178 * c-errors.c: Likewise.
5179 * c-lang.c: Likewise.
5180 * c-objc-common.c: Likewise.
5181 * c-parser.c: Likewise.
5182 * c-typeck.c: Likewise.
5183
da2e71c9
MLI
51842015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
5185
5186 PR fortran/66605
5187 * c-decl.c (finish_function): Call do_warn_unused_parameter.
5188
b155cfd9
MP
51892015-06-29 Marek Polacek <polacek@redhat.com>
5190
5191 PR c/66322
5192 * c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
5193 (c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P. Don't warn
5194 about -Wswitch-bool here.
5195 (do_case): Update c_add_case_label call.
5196 (c_finish_case): Update c_do_switch_warnings call.
5197
31521951
MP
51982015-06-27 Marek Polacek <polacek@redhat.com>
5199
5200 * c-typeck.c: Use VECTOR_TYPE_P throughout.
5201
22d03525
MP
52022015-06-26 Marek Polacek <polacek@redhat.com>
5203
5204 * c-array-notation.c (fix_builtin_array_notation_fn): Use
5205 INDIRECT_REF_P.
5206 * c-typeck.c (array_to_pointer_conversion): Likewise.
5207 (build_unary_op): Likewise.
5208 (c_finish_return): Likewise.
5209
f0889939
AM
52102015-06-25 Andrew MacLeod <amacleod@redhat.com>
5211
5212 * c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
5213 * c-parser.c: Likewise.
5214
8d67ee55
RS
52152015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5216
5217 * c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
5218 instead of pointer_hash.
5219 (detect_field_duplicates): Likewise.
5220
0ae9bd27
MP
52212015-06-25 Marek Polacek <polacek@redhat.com>
5222
5223 * c-array-notation.c: Use VAR_P throughout.
5224 * c-decl.c: Likewise.
5225 * c-objc-common.c: Likewise.
5226 * c-parser.c: Likewise.
5227 * c-typeck.c: Likewise.
5228
62f9079a
MP
52292015-06-25 Marek Polacek <polacek@redhat.com>
5230
5231 * c-decl.c: Use is_global_var throughout.
5232 * c-parser.c: Likewise.
5233 * c-typeck.c: Likewise.
5234
abb226c9
AM
52352015-06-17 Andrew MacLeod <amacleod@redhat.com>
5236
5237 * c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
5238 * c-aux-info.c: Likewise.
5239 * c-convert.c: Likewise.
5240 * c-decl.c: Likewise.
5241 * c-errors.c: Likewise.
5242 * c-lang.c: Likewise.
5243 * c-objc-common.c: Likewise.
5244 * c-parser.c: Likewise.
5245 * c-typeck.c: Likewise.
5246
8cbababc
JH
52472015-06-11 Jan Hubicka <hubicka@ucw.cz>
5248
5249 PR middle-end/66325
5250 * c-decl.c (start_enum): Set TYPE_PACKED consistently among type
5251 variants.
5252
a0349665
PMR
52532015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
5254
5255 * c-decl.c (pop_scope): Register the main translation unit
5256 through the new debug hook.
5257
13fdf2e2
AM
52582015-06-08 Andrew MacLeod <amacleod@redhat.com>
5259
5260 * c-array-notation.c : Adjust include files.
5261 * c-aux-info.c : Likewise.
5262 * c-convert.c : Likewise.
5263 * c-decl.c : Likewise.
5264 * c-errors.c : Likewise.
5265 * c-lang.c : Likewise.
5266 * c-lang.h : Likewise.
5267 * c-objc-common.c : Likewise.
5268 * c-parser.c : Likewise.
5269 * c-typeck.c : Likewise.
5270
d7438551
AH
52712015-06-05 Aldy Hernandez <aldyh@redhat.com>
5272
5273 * c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
5274 immediately clobber it.
5275 (c_write_global_declarations_1): Remove call to
5276 check_global_declaration_1.
5277 (c_write_global_declarations_2): Remove.
5278 (c_write_final_cleanups): Rename from c_write_global_declarations.
5279 Remove call to finalize_compilation_unit.
5280 Remove calls to debugging hooks.
5281 * c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
5282 * c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
5283 * c-tree.h: Remove c_write_global_declarations.
5284
ecb9f223
AM
52852015-06-04 Andrew MacLeod <amacleod@redhat.com>
5286
5287 * c-array-notation.c: Adjust includes for restructured coretypes.h.
5288 * c-aux-info.c: Likewise.
5289 * c-convert.c: Likewise.
5290 * c-decl.c: Likewise.
5291 * c-errors.c: Likewise.
5292 * c-lang.c: Likewise.
5293 * c-objc-common.c: Likewise.
5294 * c-parser.c: Likewise.
5295 * c-typeck.c: Likewise.
5296
9482b620
MP
52972015-06-04 Marek Polacek <polacek@redhat.com>
5298
5299 PR c/66341
5300 * c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
5301 it is a lvalue.
5302
bc51ace3
PK
53032015-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5304
5305 * c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
5306 Warn for empty struct.
5307 (finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.
5308
ea5b45b6
AT
53092015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
5310
5311 * c-decl.c (start_function): Call plugin before parsing.
5312 (finish_function): Call plugin after parsing.
5313
c2d47482
PK
53142015-06-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5315
5316 PR c/49551
5317 * c-decl.c (merge_decls): Merge DECL_COMMON.
5318
a95492ab
JW
53192015-05-22 Jim Wilson <jim.wilson@linaro.org>
5320
5321 * Make-lang.in (check_gcc_pallelize): Define.
5322
fd5c817a
MP
53232015-05-22 Marek Polacek <polacek@redhat.com>
5324
5325 PR c/47043
5326 * c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
5327 attributes.
5328
c7b70a3c
MP
53292015-05-21 Marek Polacek <polacek@redhat.com>
5330
5331 * c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
5332 DECL_BUILT_IN.
5333
21b634ae
MP
53342015-05-20 Marek Polacek <polacek@redhat.com>
5335
5336 * c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
5337 * c-typeck.c: Likewise.
5338
296a8c2f
MP
53392015-05-19 Marek Polacek <polacek@redhat.com>
5340
5341 * c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
5342
41b37d5e
JJ
53432015-05-19 Jakub Jelinek <jakub@redhat.com>
5344
5345 PR middle-end/66199
5346 * c-parser.c (c_parser_omp_for_loop): Don't add
5347 OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
5348 OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
5349 (c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
5350 constructs.
5351
fab27f52
MM
53522015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
5353
5354 * c-typeck.c (build_array_ref): Use std::swap instead of explicit
296a8c2f 5355 swaps.
fab27f52 5356
40de31cf
MLI
53572015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
5358
5359 PR fortran/44054
5360 * c-objc-common.c (c_tree_printer): Replace locus pointer with
5361 accessor function.
5362
3aa3c9fc
MP
53632015-05-14 Marek Polacek <polacek@redhat.com>
5364
5365 PR c/66066
5366 PR c/66127
5367 * c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
5368 rather than with 0.
5369
c3388e62
DM
53702015-05-12 David Malcolm <dmalcolm@redhat.com>
5371
5372 * c-parser.c (c_parser_if_body): Add param "if_loc", use it
5373 to add a call to warn_for_misleading_indentation.
5374 (c_parser_else_body): Likewise, adding param "else_loc".
5375 (c_parser_if_statement): Check for misleading indentation.
5376 (c_parser_while_statement): Likewise.
5377 (c_parser_for_statement): Likewise.
5378
755e528f
MP
53792015-05-08 Marek Polacek <polacek@redhat.com>
5380
5381 PR c/64918
5382 * c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
5383 (output_init_element): Likewise.
5384
0173bd2a
MP
53852015-05-07 Marek Polacek <polacek@redhat.com>
5386
5387 PR c/65179
5388 * c-typeck.c (build_binary_op): Warn when left shifting a negative
5389 value.
5390
9babc352
MP
53912015-04-30 Marek Polacek <polacek@redhat.com>
5392
5393 * c-typeck.c (set_init_label): Call error_at instead of error and
5394 pass LOC to it.
5395
ac9f18db
MP
5396 * c-typeck.c (c_incomplete_type_error): Refactor to use %qT. Print
5397 the type of a decl.
5398
ec3fba51
MP
5399 * c-typeck.c (c_build_va_arg): Clarify the error message.
5400
b811915d
TS
54012015-04-29 Thomas Schwinge <thomas@codesourcery.com>
5402
5403 * c-parser.c (c_parser_oacc_enter_exit_data): Use
5404 OMP_STANDALONE_CLAUSES.
5405
f3075008
MP
54062015-04-28 Marek Polacek <polacek@redhat.com>
5407
5408 * c-parser.c (c_parser_binary_expression): Remove duplicate line.
5409
4e81b788
MP
54102015-04-28 Marek Polacek <polacek@redhat.com>
5411
5412 PR c/65901
5413 * c-typeck.c (c_build_va_arg): Require TYPE be a complete type.
5414
6c1db78e
MP
54152015-04-25 Marek Polacek <polacek@redhat.com>
5416
5417 PR c/52085
5418 * c-decl.c (finish_enum): Copy over TYPE_ALIGN. Also check for "mode"
5419 attribute.
5420
5c4abbb8
MP
54212015-04-23 Marek Polacek <polacek@redhat.com>
5422
5423 PR c/65345
5424 * c-decl.c (set_labels_context_r): New function.
5425 (store_parm_decls): Call it via walk_tree_without_duplicates.
5426 * c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
5427 instead of create_tmp_var. Build TARGET_EXPR instead of
5428 COMPOUND_EXPR.
5429 (build_atomic_assign): Use create_tmp_var_raw instead of
5430 create_tmp_var. Build TARGET_EXPRs instead of MODIFY_EXPR.
5431
06aca1d5
IV
54322015-04-20 Ilya Verbin <ilya.verbin@intel.com>
5433
5434 * c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
5435 (c_parser_omp_target_update): Add missed %> to error_at ().
5436
8fba1830
BRF
54372015-04-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
5438
5439 PR target/55143
5440 * c-decl.c (c_default_pointer_mode): Remove definition.
5441 * c-tree.h (c_default_pointer_mode): Remove declaration.
5442
62021f64
TB
54432015-03-27 Tobias Burnus <burnus@net-b.de>
5444
5445 PR c/65586
5446 * c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
5447 error out.
5448 (c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
5449 c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
5450 Update calls to not error for skipped omp pragmas with -fopenmp-simd.
5451
9b65e171
JJ
54522015-03-19 Jakub Jelinek <jakub@redhat.com>
5453
5454 * c-decl.c (c_decl_attributes): Also add "omp declare target"
5455 attribute for DECL_EXTERNAL VAR_DECLs.
5456
17958621
JJ
54572015-03-11 Jakub Jelinek <jakub@redhat.com>
5458
5459 * c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
5460 argument.
5461
7ccb1a11
JJ
54622015-03-10 Jakub Jelinek <jakub@redhat.com>
5463
5464 PR c/65120
5465 * c-typeck.c (parser_build_binary_op): Check for tcc_comparison
5466 before preparing arguments to warn_logical_not_parentheses.
5467
01177669
JJ
54682015-03-09 Jakub Jelinek <jakub@redhat.com>
5469
5470 PR c/65120
5471 * c-typeck.c (parser_build_binary_op): Don't warn for
5472 !!x == y or !b == y where b is _Bool.
5473
802ac282
MP
54742015-03-09 Marek Polacek <polacek@redhat.com>
5475
5476 * c-convert.c (convert): Make use of do_ubsan_in_current_function.
5477 * c-decl.c (grokdeclarator): Likewise.
5478 * c-typeck.c (build_binary_op): Likewise.
5479
e5165b60
MP
54802015-02-27 Marek Polacek <polacek@redhat.com>
5481
5482 PR c/65228
5483 * c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
5484
065d214c
MP
54852015-02-14 Marek Polacek <polacek@redhat.com>
5486
5487 PR c/64768
5488 * c-decl.c (grokdeclarator): Set the range of a flexible array member
5489 declared through a typedef name.
5490
e5d9235b
MP
54912015-02-13 Marek Polacek <polacek@redhat.com>
5492
5493 PR c/65050
5494 * c-decl.c (grokdeclarator): Print also the type when giving
5495 the error message about array's incomplete element type.
5496
fa01ffcc
JJ
54972015-02-11 Jakub Jelinek <jakub@redhat.com>
5498
5499 PR c/64824
5500 * c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
5501 check in the POP macro.
5502
c3e38a03
MP
55032015-02-09 Marek Polacek <polacek@redhat.com>
5504
5505 PR c/64856
5506 * c-typeck.c (process_init_element): Don't always wrap
5507 COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when
5508 initializing a range of elements.
5509
4886ec8e
JJ
55102015-02-04 Jakub Jelinek <jakub@redhat.com>
5511
5512 PR c/64824
5513 PR c/64868
5514 * c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.
5515
c3e38a03 55162015-02-02 Bruno Loff <bruno.loff@gmail.com>
a4bb6959
BL
5517
5518 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
5519 processing enum declaration.
5520
7b33f0c8
MP
55212015-01-29 Marek Polacek <polacek@redhat.com>
5522
5523 PR c/64709
5524 * c-typeck.c (pop_init_level): If constructor_elements has
5525 exactly one element with integer_zerop value, set constructor_zeroinit
5526 to 1. Remove braces around warning_init call.
5527
dea63e49
JJ
55282015-01-27 Jakub Jelinek <jakub@redhat.com>
5529
5530 PR c/64766
5531 * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
5532 of FUNCTION_DECLs with error_mark_node.
5533
d38f7dce
JJ
55342015-01-26 Jakub Jelinek <jakub@redhat.com>
5535
5536 PR c/64778
5537 * c-typeck.c (convert_arguments): Return -1 if there are
5538 error_args, even if we've diagnosed too many arguments.
5539
cbf5d0e7
RB
55402015-01-21 Richard Biener <rguenther@suse.de>
5541
5542 PR middle-end/64313
5543 * c-decl.c (merge_decls): Call set_builtin_decl_declared_p
5544 for builtins the user declared correctly.
5545
41dbbb37
TS
55462015-01-15 Thomas Schwinge <thomas@codesourcery.com>
5547 Bernd Schmidt <bernds@codesourcery.com>
5548 Cesar Philippidis <cesar@codesourcery.com>
5549 James Norris <jnorris@codesourcery.com>
5550 Jakub Jelinek <jakub@redhat.com>
5551 Ilmir Usmanov <i.usmanov@samsung.com>
5552
5553 * c-parser.c: Include "gomp-constants.h".
5554 (c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
5555 omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
5556 Use OMP_CLAUSE_SET_MAP_KIND.
5557 (c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
5558 PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
5559 (c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
5560 PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
5561 PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
5562 (c_parser_omp_clause_name): Handle "auto", "async", "copy",
5563 "copyout", "create", "delete", "deviceptr", "gang", "host",
5564 "num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
5565 "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
5566 "present_or_create", "pcreate", "seq", "self", "vector",
5567 "vector_length", "wait", "worker".
5568 (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
5569 (OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
5570 (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
5571 (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
5572 (c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
5573 (c_parser_oacc_wait_list, c_parser_oacc_data_clause)
5574 (c_parser_oacc_data_clause_deviceptr)
5575 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
5576 (c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
5577 (c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
5578 (c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
5579 (c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
5580 (c_parser_oacc_parallel, c_parser_oacc_update)
5581 (c_parser_oacc_wait): New functions.
5582 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
5583 (c_finish_oacc_data): New prototypes.
5584 * c-typeck.c: Include "gomp-constants.h".
5585 (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
5586 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
5587 OMP_CLAUSE_SET_MAP_KIND.
5588 (c_finish_oacc_parallel, c_finish_oacc_kernels)
5589 (c_finish_oacc_data): New functions.
5590 (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
5591 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
5592 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
5593 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
5594 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
5595 GOMP_MAP_FORCE_DEVICEPTR.
5596
adfac8df
JJ
55972015-01-09 Michael Collison <michael.collison@linaro.org>
5598
5599 * c-array-notation.c: Include hash-set.h, machmode.h,
5600 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
5601 fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
5602 * c-aux-info.c: Ditto.
5603 * c-convert.c: Ditto.
5604 * c-decl.c: Ditto.
5605 * c-errors.c: Ditto.
5606 * c-lang.c: Dittoxs.
5607 * c-objc-common.c: Ditto.
5608 * c-parser.c: Ditto.
5609 * c-typeck.c: Include hash-set.h, machmode.h,
5610 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
5611 fold-const.h, wide-int.h, inchash.h, real.h and
5612 fixed-value.h due to flattening of tree.h.
5613
2cc901dc
MP
56142015-01-07 Marek Polacek <polacek@redhat.com>
5615
5616 PR c/64417
5617 * c-typeck.c (process_init_element): Disallow initialization of
5618 a flexible array member with a string constant if the structure
5619 is in an array.
5620
5624e564
JJ
56212015-01-05 Jakub Jelinek <jakub@redhat.com>
5622
e5341100
JJ
5623 PR sanitizer/64344
5624 * c-typeck.c (convert_for_assignment, c_finish_return): For
5625 -fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
5626 types also set in_late_binary_op around convert call.
5627 * c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
5628 to integral type casts, if not in_late_binary_op, pass c_fully_fold
5629 result on expr as last argument to ubsan_instrument_float_cast,
5630 if in_late_binary_op, don't use c_save_expr but save_expr.
5631
5624e564
JJ
5632 Update copyright years.
5633
5bd012f8
MP
56342015-01-05 Marek Polacek <polacek@redhat.com>
5635
5636 PR c/64423
5637 * c-typeck.c (build_array_ref): Pass loc down to
5638 warn_array_subscript_with_type_char.
5639
3f8257db 56402014-12-20 Martin Uecker <uecker@eecs.berkeley.edu>
768952be
MU
5641
5642 * c-typeck.c: New behavious for pointers to arrays with qualifiers
8e745a17 5643 (common-pointer-type): For pointers to arrays take qualifiers from
768952be 5644 element type.
8e745a17 5645 (build_conditional_expr): Add warnings for lost qualifiers.
768952be 5646 (comp-target-types): Allow pointers to arrays with different qualifiers.
8e745a17 5647 (convert-for-assignment): Adapt warnings for discarded qualifiers. Add
768952be 5648 WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
8e745a17 5649 to PEDWARN_FOR_QUALIFIERS.
768952be 5650
8f94a8c4
JJ
56512014-12-17 Jakub Jelinek <jakub@redhat.com>
5652
5653 PR sanitizer/64289
5654 * c-convert.c: Include ubsan.h.
5655 (convert): For real -> integral casts and
5656 -fsanitize=float-cast-overflow don't call convert_to_integer, but
5657 instead instrument the float cast directly.
5658
b731b390
JJ
56592014-11-29 Jakub Jelinek <jakub@redhat.com>
5660
5661 * c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
5662 c_finish_stmt_expr): Remove NULL last argument from
5663 create_tmp_var_raw and create_tmp_var calls.
5664 * c-array-notation.c (fix_builtin_array_notation_fn,
5665 build_array_notation_expr, fix_conditional_array_notations_1,
5666 fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
5667
541e35a6
MP
56682014-11-28 Marek Polacek <polacek@redhat.com>
5669
5670 PR c/63862
5671 * c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
5672 convert the right operand to integer type.
5673
b286be94
MP
56742014-11-25 Marek Polacek <polacek@redhat.com>
5675
5676 PR c/63877
5677 * c-decl.c (start_function): Disable -Wmissing-declarations warning
5678 for inline functions.
5679
aa7da51a
JJ
56802014-11-21 Jakub Jelinek <jakub@redhat.com>
5681
5682 PR target/63764
5683 * c-typeck.c (build_array_ref): Adjust
5684 convert_vector_to_pointer_for_subscript caller. If it returns true,
5685 call non_lvalue_loc on the result.
5686
d876207f
RB
56872014-11-11 Richard Biener <rguenther@suse.de>
5688
5689 * c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
5690 to true.
5691
e5e44252
AK
56922014-11-10 Andi Kleen <ak@linux.intel.com>
5693
5694 PR c/60804
5695 * c-parser.c (c_parser_statement_after_labels): Call
5696 check_no_cilk.
5697 (c_parser_if_statement): Dito.
5698 (c_parser_switch_statement): Dito.
5699 (c_parser_while_statement): Dito.
5700 (c_parser_do_statement): Dito.
5701 (c_parser_for_statement): Dito.
5702 * c-typeck.c (c_finish_loop): Dito.
5703
13c21655
PC
57042014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
5705
5706 * c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
5707 OPT_Wshift_count_overflow in the warnings.
5708
2d51fcef
MP
57092014-10-30 Marek Polacek <polacek@redhat.com>
5710
5711 * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
5712 print the stripped version as well, if they're not the same.
5713
ef4bddc2
RS
57142014-10-29 Richard Sandiford <richard.sandiford@arm.com>
5715
5716 * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
5717 machine_mode.
5718
c582198b
AM
57192014-10-28 Andrew MacLeod <amacleod@redhat.com>
5720
5721 * c-decl.c: Adjust include files.
5722 * c-parser.c: Ditto.
5723
ddc8de03
PM
57242014-10-27 Phil Muldoon <pmuldoon@redhat.com>
5725 Tom Tromey <tromey@redhat.com>
5726
5727 * c-tree.h (enum c_oracle_request): New.
5728 (c_binding_oracle_function): New typedef.
5729 (c_binding_oracle, c_pushtag, c_bind): Declare.
5730 * c-decl.c (c_binding_oracle): New global.
5731 (I_SYMBOL_CHECKED): New macro.
5732 (i_symbol_binding): New function.
5733 (I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
5734 (I_TAG_CHECKED): New macro.
5735 (i_tag_binding): New function.
5736 (I_TAG_BINDING, I_TAG_DECL): Redefine.
5737 (I_LABEL_CHECKED): New macro.
5738 (i_label_binding): New function.
5739 (I_LABEL_BINDING, I_LABEL_DECL): Redefine.
5740 (c_print_identifier): Save and restore c_binding_oracle.
5741 (c_pushtag, c_bind): New functions.
5742
60393bbc
AM
57432014-10-27 Andrew MacLeod <amacleod@redhat.com>
5744
5745 * c-typeck.c: Adjust include files.
5746
d723bb7c
MLI
57472014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
5748
5749 PR c++/53061
5750 * c-objc-common.c (c_objc_common_init): Do not do diagnostics
5751 initialization here...
5752 (c_initialize_diagnostics): ... but here. Set defaults after
5753 building pretty-printer.
5754
1bc5a451
MP
57552014-10-23 Marek Polacek <polacek@redhat.com>
5756
5757 PR c/63626
5758 * c-decl.c (pop_scope): Don't print warning in external_scope.
5759
4435bb92
MP
57602014-10-19 Marek Polacek <polacek@redhat.com>
5761
5762 PR c/63567
5763 * c-typeck.c (output_init_element): Allow initializing objects with
5764 static storage duration with compound literals even in C99 and add
5765 pedwarn for it.
5766
7278465e
MP
57672014-10-17 Marek Polacek <polacek@redhat.com>
5768
5769 PR c/63567
5770 * c-typeck.c (digest_init): Allow initializing objects with static
5771 storage duration with compound literals even in C99 and add pedwarn
5772 for it.
5773
d9b7be2e
MP
57742014-10-17 Marek Polacek <polacek@redhat.com>
5775
5776 PR c/63543
5777 * c-tree.h (C_TYPE_ERROR_REPORTED): Define.
5778 * c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
5779 error multiple times. Print the type.
5780
f406ae1f
MP
57812014-10-17 Marek Polacek <polacek@redhat.com>
5782
5783 PR c/63549
5784 * c-typeck.c (build_array_ref): Bail if the index in an incomplete
5785 type.
5786
92574c7c
MP
57872014-10-17 Marek Polacek <polacek@redhat.com>
5788
5789 * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
5790 (start_function): Use OPT_Wimplicit_int instead of 0.
5791 (store_parm_decls_oldstyle): Likewise.
5792
1bc4a978
MT
57932014-10-17 Alan Modra <amodra@gmail.com>
5794
5795 PR middle-end/61848
5796 * c-decl.c (merge_decls): Don't merge section name or tls model
5797 to newdecl symtab node, instead merge to olddecl. Override
5798 existing olddecl section name. Set tls_model for all thread-local
5799 vars, not just OMP thread-private ones. Remove incorrect comment.
5800
83685514
AM
58012014-10-16 Andrew MacLeod <amacleod@redhat.com>
5802
5803 * c-decl.c: Adjust include files.
5804
78a7c317
DD
58052014-10-14 DJ Delorie <dj@redhat.com>
5806
5807 * c-parser.c (c_parse_init): Add RID entries for each __intN.
5808 (c_token_starts_typename): Check all __intN, not just __int128.
5809 (c_token_starts_declspecs): Likewise.
5810 (c_parser_declspecs): Likewise.
5811 (c_parser_attribute_any_word): Likewise.
5812 (c_parser_objc_selector): Likewise.
5813 * c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
5814 (struct c_declspecs): Add int_n_idx field to record *which* __intN
5815 is specified.
5816 * c-decl.c (declspecs_add_type): Check for all __intN, not just
5817 __int128.
5818 (finish_declspecs): Likewise.
5819
74d98c1e
AB
58202014-10-13 Anthony Brandon <anthony.brandon@gmail.com>
5821
8e745a17 5822 * c-parser.c (c_parser_all_labels): New function to replace
74d98c1e 5823 the duplicate code.
8e745a17 5824 (c_parser_statement): Call the new function.
74d98c1e 5825
84937de2
MP
58262014-10-09 Marek Polacek <polacek@redhat.com>
5827
5828 PR c/63480
5829 * c-typeck.c (pop_init_level): Don't warn about initializing
5830 with { }.
5831
0382aaa0
MP
58322014-10-07 Marek Polacek <polacek@redhat.com>
5833
5834 PR c/59717
5835 * c-decl.c (header_for_builtin_fn): New function.
5836 (implicitly_declare): Suggest which header to include.
5837
7a0ca710
MP
58382014-10-07 Marek Polacek <polacek@redhat.com>
5839
5840 * c-convert.c (convert): Use error_operand_p.
5841 * c-typeck.c (require_complete_type): Likewise.
5842 (really_atomic_lvalue): Likewise.
5843 (digest_init): Likewise.
5844 (handle_omp_array_sections_1): Likewise.
5845
6bc8a126
MP
58462014-10-03 Marek Polacek <polacek@redhat.com>
5847
5848 PR c/63453
5849 * c-decl.c (pop_scope): Don't warn about "inline function declared
5850 but never defined" for functions marked with gnu_inline attribute.
5851
d90c0a59
JJ
58522014-09-25 Jakub Jelinek <jakub@redhat.com>
5853
5854 PR c++/63249
5855 * c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
5856 on low_bound and length.
5857
083e891e
MP
58582014-09-24 Marek Polacek <polacek@redhat.com>
5859
5860 PR c/61405
5861 PR c/53874
5862 * c-parser.c: Don't define CPP_KEYWORD.
5863 (c_parser_switch_statement): Pass original type to c_finish_case.
5864 * c-tree.h (c_finish_case): Update declaration.
5865 * c-typeck.c (c_finish_case): Add TYPE parameter. Pass it
5866 conditionally to c_do_switch_warnings.
5867
8d95fe25
MP
58682014-09-03 Marek Polacek <polacek@redhat.com>
5869
5870 PR c/62024
5871 * c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
5872 conversions.
5873
9a771876
JJ
58742014-09-02 Jakub Jelinek <jakub@redhat.com>
5875 Balaji V. Iyer <balaji.v.iyer@intel.com>
5876 Igor Zamyatin <igor.zamyatin@intel.com>
5877
5878 * c-parser.c (c_parser_cilk_for): New function.
5879 (c_parser_cilk_grainsize): Likewise.
5880 (c_get_temp_regvar): Likewise.
5881 (c_parser_statement_after_labels): Added RID_CILK_FOR case.
5882 (c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
5883 (c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
5884 * c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
5885 case.
5886
b7679d96
CG
58872014-08-27 Chen Gang <gang.chen.5i5j@gmail.com>
5888
5889 * c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
5890 with using HOST_WIDE_INT without truncation to 'int'
5891
59ea0364
MP
58922014-08-22 Marek Polacek <polacek@redhat.com>
5893
5894 PR c++/62199
5895 * c-typeck.c (parser_build_binary_op): Adjust call to
5896 warn_logical_not_parentheses.
5897
671a475e
IZ
58982014-08-22 Igor Zamyatin <igor.zamyatin@intel.com>
5899
5900 PR other/62008
5901 * c-parser.c (c_parser_array_notation): Check for correct
5902 type of an array added.
5903
04159acf
MP
59042014-08-19 Marek Polacek <polacek@redhat.com>
5905
5906 PR c++/62153
5907 * c-typeck.c (build_binary_op): If either operand of a comparison
5908 is a boolean expression, call maybe_warn_bool_compare.
5909
c77935ee
PP
59102014-08-19 Patrick Palka <ppalka@gcc.gnu.org>
5911
5912 PR c/45584
5913 * c-typeck.c (build_c_cast): Do a conversion even when the
5914 TYPE_MAIN_VARIANTs are the same.
5915
35aff4fb
MP
59162014-08-19 Marek Polacek <polacek@redhat.com>
5917
5918 * c-decl.c (diagnose_mismatched_decls): Unconditionally call
5919 pedwarn_c99 instead of pedwarn.
5920 (grokfield): Likewise.
5921 (warn_defaults_to): New function.
5922 (grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
5923 Unconditionally call pedwarn_c99 instead of pedwarn.
5924 (start_function): Call warn_defaults_to instead of pedwarn_c99.
5925 (declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
5926 check flag_isoc11 before.
5927 * c-errors.c (pedwarn_c99): Change the return type to bool.
5928 Handle -Wc99-c11-compat.
5929 * c-parser.c (disable_extension_diagnostics): Handle
5930 warn_c99_c11_compat.
5931 (restore_extension_diagnostics): Likewise.
5932 (c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
5933 instead of pedwarn, don't check flag_isoc11 before.
5934 (c_parser_declspecs): Likewise.
5935 (c_parser_alignas_specifier): Likewise.
5936 (c_parser_alignof_expression): Likewise.
5937 (c_parser_generic_selection): Likewise.
5938 * c-tree.h (pedwarn_c99): Update declaration.
5939 * c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
5940 of pedwarn_c99.
5941
177cce46
MP
59422014-08-19 Marek Polacek <polacek@redhat.com>
5943
5944 * c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
5945 to pedwarn_c90.
5946 * c-errors.c: Include "opts.h".
5947 (pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
5948 * c-parser.c (disable_extension_diagnostics): Handle negative value
5949 of warn_c90_c99_compat, too.
5950 (restore_extension_diagnostics): Likewise.
5951 (c_parser_compound_statement_nostart): Pass
5952 OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.
5953
6dc99c33
MP
59542014-08-12 Marek Polacek <polacek@redhat.com>
5955
5956 * c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
5957 Add pedwarn.
5958 (c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
5959 Likewise.
5960 (c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.
5961
3f8257db 59622014-08-10 Marek Polacek <polacek@redhat.com>
f3bede71
MP
5963
5964 PR c/51849
5965 * c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
5966 Call pedwarn_c90 instead of pedwarn.
5967 (check_bitfield_type_and_width): Likewise.
5968 (declspecs_add_qual): Likewise.
5969 (declspecs_add_type): Likewise.
5970 (warn_variable_length_array): Unify function for -pedantic and -Wvla.
5971 Adjust to only call pedwarn_c90.
5972 (grokdeclarator): Remove pedantic && !flag_isoc99 check. Call
5973 pedwarn_c90 instead of pedwarn.
5974 * c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
5975 * c-parser.c (disable_extension_diagnostics): Handle
5976 warn_c90_c99_compat.
5977 (restore_extension_diagnostics): Likewise.
5978 (c_parser_enum_specifier): Remove check for !flag_isoc99. Call
5979 pedwarn_c90 instead of pedwarn.
5980 (c_parser_initelt): Likewise.
5981 (c_parser_postfix_expression): Likewise.
5982 (c_parser_postfix_expression_after_paren_type): Likewise.
5983 (c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
5984 * c-tree.h: Fix formatting.
5985 * c-typeck.c (build_array_ref): Remove check for !flag_isoc99. Call
5986 pedwarn_c90 instead of pedwarn.
5987
9f25a338
TS
59882014-08-07 Trevor Saunders <tsaunders@mozilla.com>
5989
5990 * c-typeck.c: Remove include of pointer-set.h.
5991
044331a8
MP
59922014-08-07 Marek Polacek <polacek@redhat.com>
5993
5994 * c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.
5995
b787e7a2
TS
59962014-08-02 Trevor Saunders <tsaunders@mozilla.com>
5997
5998 * c-typeck.c: Use hash_map instead of pointer_map.
5999
6e2830c3
TS
60002014-08-02 Trevor Saunders <tsaunders@mozilla.com>
6001
6002 * c-decl.c: Use hash_set instead of pointer_set.
6003
a7ee52fb
IZ
60042014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
6005
6006 PR middle-end/61455
6007 * c-array-notation.c (expand_array_notations): Handling
6008 of DECL_EXPR added.
6009
b4dfdc11
MG
60102014-07-31 Marc Glisse <marc.glisse@inria.fr>
6011
6012 PR c++/60517
6013 * c-typeck.c (c_finish_return): Return 0 instead of the address of
6014 a local variable.
6015
976d5a22
TT
60162014-07-30 Tom Tromey <tromey@redhat.com>
6017
6018 * c-typeck.c (struct constructor_stack) <designator_depth>: New
6019 field.
6020 (really_start_incremental_init, push_init_level): Initialize
6021 designator_depth.
6022 (pop_init_level): Set global designator_depth.
6023 (process_init_element): Check for designated_init attribute.
6024
30281de2
MP
60252014-07-20 Marek Polacek <polacek@redhat.com>
6026
6027 PR c/61852
6028 * c-decl.c (implicit_decl_warning): Add location_t parameter. Use it.
6029 (implicitly_declare): Pass location to implicit_decl_warning.
6030
b108f48f
JJ
60312014-07-14 Jakub Jelinek <jakub@redhat.com>
6032
6033 PR middle-end/61294
6034 * c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
6035 If non-NULL, call c_parser_check_literal_zero.
6036 (c_parser_check_literal_zero): New function.
6037 (c_parser_postfix_expression_after_primary): Adjust
6038 c_parser_expr_list caller, handle -Wmemset-transposed-args.
6039
773ec47f
MP
60402014-07-06 Marek Polacek <polacek@redhat.com>
6041
6042 PR c/6940
6043 * c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
6044 * c-tree.h (C_ARRAY_PARAMETER): Define.
6045 * c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
6046 function parameter.
6047
22e1cf1c 60482014-07-02 Jan Hubicka <hubicka@ucw.cz>
3f8257db 6049 Chen Gang <gang.chen.5i5j@gmail.com>
22e1cf1c
JH
6050
6051 * c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
6052 releasing symbol.
6053
52ec0ea3
MP
60542014-07-01 Marek Polacek <polacek@redhat.com>
6055
6056 * c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
6057 instead of 0 to WARN_FOR_ASSIGNMENT.
6058
d5c3d343
MP
60592014-07-01 Marek Polacek <polacek@redhat.com>
6060
6061 PR c/58286
6062 * c-typeck.c (convert_for_assignment): Pass
6063 OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
6064
6a7253a4
MP
60652014-06-30 Marek Polacek <polacek@redhat.com>
6066
6067 * c-decl.c (grokdeclarator): Don't instrument VLAs if the function
6068 has no_sanitize_undefined attribute.
6069
5e88a8f4
IZ
60702014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
6071
6072 PR middle-end/57541
6073 * c-array-notation.c (fix_builtin_array_notation_fn):
6074 Check for 0 arguments in builtin call. Check that bultin argument is
6075 correct.
6076 * c-parser.c (c_parser_array_notation): Check for incorrect initial
6077 index.
6078
9698b078
SH
60792014-06-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
6080
6081 * c-parser.c (c_parser_declaration_or_fndef): Discard all type
6082 qualifiers in __auto_type for atomic types.
6083 (c_parser_typeof_specifier): Discard all type qualifiers in
6084 __typeof__ for atomic types.
6085
6e07c515
MP
60862014-06-25 Marek Polacek <polacek@redhat.com>
6087
6088 PR c/61162
6089 * c-parser.c (c_parser_statement_after_labels): Pass the location of
6090 the return expression to c_finish_return.
6091
da6f124d
JJ
60922014-06-25 Jakub Jelinek <jakub@redhat.com>
6093
6094 * c-typeck.c (c_finish_omp_clauses): Make sure
6095 OMP_CLAUSE_LINEAR_STEP has correct type.
6096
c203e8a7
TS
60972014-06-24 Trevor Saunders <tsaunders@mozilla.com>
6098
6099 * c-decl.c: Adjust.
6100
56ad0e38
JJ
61012014-06-24 Jakub Jelinek <jakub@redhat.com>
6102
6103 * c-parser.c (c_parser_omp_for_loop): For
6104 #pragma omp parallel for simd move lastprivate clause from parallel
6105 to for rather than simd.
6106
47c2554f
MP
61072014-06-23 Marek Polacek <polacek@redhat.com>
6108
6109 * c-typeck.c (parser_build_binary_op): Don't call
6110 warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
6111
56363ffd
JH
61122014-06-15 Jan Hubicka <hubicka@ucw.cz>
6113
6114 * c-parser.c (c_parser_omp_threadprivate): Likewise.
6115 * c-decl.c (merge_decls): Likewise.
6116
d7ff7ae5
MP
61172014-06-09 Marek Polacek <polacek@redhat.com>
6118
6119 PR c/36446
6120 * c-typeck.c (error_init): Call inform instead of error_at.
6121 (pedwarn_init): Call inform instead of pedwarn.
6122 (warning_init): Call inform instead of warning_at.
6123
24d047a3
JH
61242014-06-07 Jan Hubicka <hubicka@ucw.cz>
6125
6126 * c-decl.c (merge_decls): Use set_decl_section_name.
6127 (duplicate_decls): Remove node if it exists.
6128
9bac5cbb
G
61292014-06-05 S. Gilles <sgilles@terpmail.umd.edu>
6130
6131 PR c/53119
6132 * c-typeck.c (push_init_level, process_init_element,
6133 pop_init_level): Correct check for zero initialization, move
6134 missing brace warning to respect zero initialization.
6135
8ffcdea8
MP
61362014-06-05 Marek Polacek <polacek@redhat.com>
6137
6138 PR c/56724
6139 * c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.
6140
742938c9
MP
61412014-06-05 Marek Polacek <polacek@redhat.com>
6142
6143 PR c/49706
6144 * c-typeck.c (parser_build_binary_op): Warn when logical not is used
ab20d992 6145 on the left hand side operand of a comparison.
742938c9 6146
6447c55d
MP
61472014-06-05 Marek Polacek <polacek@redhat.com>
6148
6149 PR c/48062
6150 * c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
6151 Print note only if the warning was printed.
6152
9dc7743c
IZ
61532014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
6154
6155 PR c/58942
6156 * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
6157 with a pointer.
6158
fedfecef
MP
61592014-06-03 Marek Polacek <polacek@redhat.com>
6160
6161 PR c/60439
6162 * c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
6163 c_start_case.
6164 * c-tree.h (c_start_case): Update.
6165 * c-typeck.c (c_start_case): Add new boolean parameter. Warn if
6166 switch condition has boolean value.
6167
9b2b7279
AM
61682014-06-02 Andrew MacLeod <amacleod@redhat.com>
6169
6170 * c-decl.c: Include builtins.h.
6171 * c-parser.c: Likewise.
6172
5c1bc275
MP
61732014-05-27 Marek Polacek <polacek@redhat.com>
6174
6175 PR c/56724
6176 * c-typeck.c (convert_arguments): Get location of a parameter. Change
6177 error and warning calls to error_at and warning_at. Pass location of
6178 a parameter to it. Call warning_at with OPT_Wtraditional_conversion.
6179 (convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
6180 WARN_FOR_QUALIFIERS. Pass expr_loc to those.
6181
97563bc8
IZ
61822014-05-26 Igor Zamyatin <igor.zamyatin@intel.com>
6183
6184 PR c/61191
6185 * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
6186 function parameters.
6187
aede2c10
JH
61882014-05-23 Jan Hubicka <hubicka@ucw.cz>
6189
6190 * c-decl.c (merge_decls): Preserve symtab node pointers.
6191 (duplicate_decls): Free new decl.
6192
edbba2ce
TS
61932014-05-23 Thomas Schwinge <thomas@codesourcery.com>
6194
f3316c6d
TS
6195 * c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
6196 initialization.
6197
edbba2ce
TS
6198 * c-parser.c (c_parser_omp_target): Return bool values.
6199
68c81f24
TS
62002014-05-22 Thomas Schwinge <thomas@codesourcery.com>
6201
6202 * c-parser.c (c_parser_omp_clause_thread_limit): Rename
6203 num_teams_loc variable to num_thread_limit_loc.
6204
632f2871
RS
62052014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
6206
6207 * c-array-notation.c (expand_array_notations): Use void_node
6208 instead of void_zero_node.
6209
766090c2
TS
62102014-05-17 Trevor Saunders <tsaunders@mozilla.com>
6211
6212 * c-decl.c (finish_struct): Adjust.
6213 (finish_enum): Likewise.
6214 (bind): Adjust.
6215 (record_inline_static): Likewise.
6216 (push_scope): Likewise.
6217 (make_label): Likewise.
6218 (lookup_label_for_goto): Likewise.
6219 (finish_struct): Likewise.
6220 (finish_enum): Likewise.
6221 (store_parm_decls): Likewise.
6222 (c_push_function_context): Likewise.
6223 * c-lang.h: Remove usage of variable_size gty attribute.
6224 * c-parser.c (c_parse_init): Adjust.
6225 (c_parse_file): Likewise.
6226
2b107f6b
MP
62272014-05-13 Marek Polacek <polacek@redhat.com>
6228
6229 PR c/61162
6230 * c-typeck.c (convert_for_assignment): Pass location to
6231 WARN_FOR_ASSIGNMENT instead of input_location.
6232
d033409e
MP
62332014-05-10 Marek Polacek <polacek@redhat.com>
6234
6235 * c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
6236 maybe_warn_string_init.
6237 (c_parser_postfix_expression_after_paren_type): Pass type_loc to
6238 maybe_warn_string_init.
6239 * c-tree.h (maybe_warn_string_init): Update declaration.
6240 * c-typeck.c (maybe_warn_string_init): Add location parameter.
6241 Call pedwarn_init with loc instead of with input_location.
6242 (digest_init): Pass init_loc to maybe_warn_string_init.
6243 (pop_init_level): Call pedwarn_init with loc instead of with
6244 input_location.
6245 (set_init_index): Likewise.
6246 (process_init_element): Likewise.
6247
ea58ef42
MP
62482014-05-09 Marek Polacek <polacek@redhat.com>
6249
6250 PR c/61096
6251 * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
6252 (c_parser_initelt): Pass location to set_init_label. Pass array index
6253 location to set_init_index.
6254 * c-tree.h (push_init_level): Update declaration.
6255 (pop_init_level): Likewise.
6256 (set_init_index): Likewise.
6257 (set_init_label): Likewise.
6258 * c-typeck.c (error_init): Add location parameter. Call error_at
6259 instead of error.
6260 (digest_init): Pass init_loc to error_init.
6261 (really_start_incremental_init):
6262 (push_init_level): Add location parameter. Pass loc to pop_init_level
6263 and error_init.
6264 (pop_init_level): Likewise.
6265 (set_designator): Add location parameter. Pass loc to pop_init_level,
6266 push_init_level, and error_init.
6267 (set_init_index): Add location parameter. Pass loc to error_init and
6268 set_designator.
6269 (set_init_label): Likewise.
6270 (output_init_element): Pass loc to error_init.
6271 (process_init_element): Pass loc to error_init, pop_init_level,
6272 pedwarn_init, and push_init_level.
6273
661a0813
MP
62742014-05-09 Marek Polacek <polacek@redhat.com>
6275
6276 PR c/50459
6277 * c-parser.c (c_parser_attributes): Parse the arguments as an
6278 expression-list if the attribute takes identifier.
6279
2793eeab
MP
62802014-05-08 Marek Polacek <polacek@redhat.com>
6281
6282 PR c/61053
6283 * c-decl.c (grokdeclarator): Use min_align_of_type instead of
6284 TYPE_ALIGN_UNIT.
6285
f827930a
MP
62862014-05-08 Marek Polacek <polacek@redhat.com>
6287
6288 PR c/61077
6289 * c-decl.c (start_function): Warn for _Atomic-qualified return type
6290 of main.
6291
1d60af08
KZ
62922014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
6293 Mike Stump <mikestump@comcast.net>
6294 Richard Sandiford <rdsandiford@googlemail.com>
6295
6296 * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
6297 (finish_enum): Use wide-int interfaces.
6298 * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
6299 * c-typeck.c (build_c_cast): Likewise.
6300 (set_nonincremental_init_from_string): Likewise.
6301 (c_tree_equal): Likewise.
6302
a0e24419
MP
63032014-05-02 Marek Polacek <polacek@redhat.com>
6304
6305 PR c/25801
6306 * c-typeck.c (c_size_in_bytes): Update comment. Don't call error.
6307 Return size_one_node when the type is not complete.
6308 (pointer_diff): Remove comment.
6309 (build_unary_op): Improve error messages.
6310
19fc9faa
MP
63112014-05-02 Marek Polacek <polacek@redhat.com>
6312
6313 * c-typeck.c (c_finish_return): Separate warning_at calls.
6314
63bc4e87
MP
63152014-05-02 Marek Polacek <polacek@redhat.com>
6316
6317 * c-tree.h (error_init): Remove declaration.
6318 (pedwarn_init): Likewise.
6319 * c-typeck.c (error_init): Make static and move above.
6320 (pedwarn_init): Likewise.
6321 (warning_init): Move above.
6322 (maybe_warn_string_init): Likewise.
6323
4bd2511b
JL
63242014-05-01 Jeff Law <law@redhat.com>
6325
6326 Revert:
6327
6328 2014-04-24 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
6329 * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
6330 avoid goto.
6331
6a358dcb
MP
63322014-05-02 Marek Polacek <polacek@redhat.com>
6333
6334 PR c/60784
6335 * c-typeck.c (push_init_level): Set constructor_designated to
6336 p->designated for structures.
6337
ae5ebda4
MP
63382014-05-01 Marek Polacek <polacek@redhat.com>
6339
6340 PR c/60915
6341 * c-parser.c (c_parser_declaration_or_fndef): Give better error if
6342 function-definition has an attribute after the declarator.
6343
96b40f8d
MP
63442014-05-01 Marek Polacek <polacek@redhat.com>
6345
6346 PR c/60257
6347 * c-typeck.c (warning_init): Add location_t parameter. Call
6348 warning_at instead of warning.
6349 (push_init_level): Pass input_location to warning_init.
6350 (add_pending_init): Add location_t parameter. Pass loc to
6351 warning_init.
6352 (set_nonincremental_init): Pass input_location to add_pending_init.
6353 (set_nonincremental_init_from_string): Likewise.
6354 (output_init_element): Pass loc to warning_init and to
6355 add_pending_init.
6356
32e00768
MP
63572014-05-01 Marek Polacek <polacek@redhat.com>
6358
6359 PR c/43395
6360 * c-typeck.c (c_finish_return): Distinguish between label and variable
6361 when warning about returning local address.
6362
c9379ce2
MP
63632014-05-01 Marek Polacek <polacek@redhat.com>
6364
6365 PR c/29467
6366 * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
6367 in C89 mode.
6368
d00887e8
MP
63692014-05-01 Marek Polacek <polacek@redhat.com>
6370
6371 PR c/43245
6372 * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
6373 instead of 0 to WARN_FOR_QUALIFIERS.
6374
5436fa2e
MP
63752014-05-01 Marek Polacek <polacek@redhat.com>
6376
6377 PR c/56989
6378 * c-typeck.c (default_conversion): Use better location for
6379 error call.
6380
f8ed5150
MP
63812014-04-30 Marek Polacek <polacek@redhat.com>
6382
6383 * c-typeck.c (build_binary_op): Call ubsan_instrument_division
6384 also when SANITIZE_FLOAT_DIVIDE is on.
6385
8337d1db
MP
63862014-04-30 Marek Polacek <polacek@redhat.com>
6387
6388 PR c/60139
6389 * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
6390 and pedwarn_init. Use loc insted of input_location.
6391
c4bdc42f
MP
63922014-04-30 Marek Polacek <polacek@redhat.com>
6393
6394 PR c/60351
6395 * c-typeck.c (build_binary_op): Use location when warning about
6396 shift count.
6397
45484dcf
MP
63982014-04-25 Marek Polacek <polacek@redhat.com>
6399
6400 PR c/18079
6401 * c-decl.c (diagnose_mismatched_decls): Warn for mismatched
6402 always_inline/noinline and hot/cold attributes.
6403
34cf811f
MP
64042014-04-25 Marek Polacek <polacek@redhat.com>
6405
6406 PR c/60114
6407 * c-parser.c (c_parser_initelt): Pass input_location to
6408 process_init_element.
6409 (c_parser_initval): Pass loc to process_init_element.
6410 * c-tree.h (process_init_element): Adjust declaration.
6411 * c-typeck.c (push_init_level): Pass input_location to
6412 process_init_element.
6413 (pop_init_level): Likewise.
6414 (set_designator): Likewise.
6415 (output_init_element): Add location_t parameter. Pass loc to
6416 digest_init.
6417 (output_pending_init_elements): Pass input_location to
6418 output_init_element.
6419 (process_init_element): Add location_t parameter. Pass loc to
6420 output_init_element.
6421
42056eac
JJ
64222014-04-24 Jakub Jelinek <jakub@redhat.com>
6423
6424 * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
6425 atomic-clause, allow comma in between atomic-clause and
6426 seq_cst.
6427
e162a134
JJ
64282014-04-22 Jakub Jelinek <jakub@redhat.com>
6429
6430 PR c/59073
6431 * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
6432 fails, don't set OM_PARALLEL_COMBINED and return NULL.
6433
2f6babac
IZ
64342014-04-12 Igor Zamyatin <igor.zamyatin@intel.com>
6435
6436 PR middle-end/60469
6437 * c-array-notation.c (fix_builtin_array_notation_fn): Use
6438 create_tmp_var instead build_decl for creating temps.
6439 (build_array_notation_expr): Likewise.
6440 (fix_conditional_array_notations_1): Likewise.
6441 (fix_array_notation_expr): Likewise.
6442 (fix_array_notation_call_expr): Likewise.
6443
8edbfaa6
JJ
64442014-03-28 Jakub Jelinek <jakub@redhat.com>
6445
6446 PR c++/60689
6447 * c-tree.h (c_build_function_call_vec): New prototype.
6448 * c-typeck.c (build_function_call_vec): Don't call
6449 resolve_overloaded_builtin here.
6450 (c_build_function_call_vec): New wrapper function around
6451 build_function_call_vec. Call resolve_overloaded_builtin here.
6452 (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
6453 Call c_build_function_call_vec instead of build_function_call_vec.
6454 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
6455 * c-decl.c (finish_decl): Likewise.
6456
7485aeea
MLI
64572014-03-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
6458
6459 PR c/55383
6460 * c-typeck.c: Use correct format string in cast-qual warning
6461
b17a8b07
TS
64622014-03-07 Thomas Schwinge <thomas@codesourcery.com>
6463
6464 * c-decl.c (c_decl_attributes): Use
6465 lang_hooks.types.omp_mappable_type.
6466 * c-typeck.c (c_finish_omp_clauses): Likewise.
6467
3af9c5e9
MP
64682014-03-06 Marek Polacek <polacek@redhat.com>
6469
6470 PR c/60197
6471 * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
6472 of checking tree code.
6473
1c9f5f33
PK
64742014-02-19 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
6475
6476 * c-parser.c (c_parser_declspecs): Replace call to error by error_at.
6477 (c_parser_parameter_declaration): Likewise.
6478
cc28fc7f
MP
64792014-02-19 Marek Polacek <polacek@redhat.com>
6480
6481 PR c/60195
6482 * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
6483 Call mark_exp_read on exp.value.
6484 (build_atomic_assign): Set TREE_NO_WARNING on val and old. Set
6485 TREE_ADDRESSABLE on old instead of val.
6486 (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
6487
b581c05c
PK
64882014-02-07 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
6489
6490 * c-parser.c (c_parser_get_builtin_args): Replace calls to
6491 C_EXPR_APPEND by vec_safe_push.
6492 * c-tree.h (C_EXPR_APPEND): Remove.
6493
81e5eca8
MP
64942014-01-31 Marek Polacek <polacek@redhat.com>
6495
6496 PR c/59963
6497 * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
6498 build_function_call_vec.
6499 (build_function_call): Likewise.
6500 (build_atomic_assign): Likewise.
6501 (build_function_call_vec): Add arg_loc parameter. Use it.
6502 (convert_arguments): Likewise.
6503 (convert_for_assignment): Rename rhs_loc to expr_loc.
6504 * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
6505 (c_parser_objc_keywordexpr): Likewise.
6506 (c_parser_postfix_expression_after_primary): Call
6507 build_function_call_vec with expr_loc rather than op_loc.
6508 Call c_parser_expr_list to fill arg_loc. Pass arg_loc to
6509 build_function_call_vec.
6510 (c_parser_expr_list): Add locations parameter. Fill it with locations
6511 of function arguments.
6512 * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
6513
68fca595
MP
65142014-01-30 Marek Polacek <polacek@redhat.com>
6515
6516 PR c/59940
6517 * c-typeck.c (build_function_call_vec): Use loc parameter.
6518 (convert_arguments): Add location parameter. Use it.
6519 (ep_convert_and_check): Likewise.
6520 (build_atomic_assign): Adjust convert_for_assignment call.
6521 (build_modify_expr): Likewise.
6522 (digest_init): Likewise.
6523 (c_finish_return): Likewise.
6524 (build_conditional_expr): Adjust ep_convert_and_check calls.
6525 (convert_for_assignment): Add rhs_loc parameter. Use it.
6526 (build_binary_op): Adjust convert_and_check and ep_convert_and_check
6527 calls.
6528
fa337f3a
RB
65292014-01-30 Richard Biener <rguenther@suse.de>
6530
6531 PR c/59905
6532 * c-typeck.c (build_function_call_vec): Do not replace calls
6533 to a function via an incompatible type with a runtime abort.
6534
b72271b9
BI
65352014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
6536
6537 * c-parser.c (c_parser_declaration_or_fndef): Replaced
6538 flag_enable_cilkplus with flag_cilkplus.
6539 (c_parser_direct_declarator_inner): Likewise.
6540 (c_parser_attribute_any_word): Likewise.
6541 (c_parser_attributes): Likewise.
6542 (c_parser_compound_statement): Likewise.
6543 (c_parser_statement_after_labels): Likewise.
6544 (c_parser_if_statement): Likewise.
6545 (c_parser_switch_statement): Likewise.
6546 (c_parser_do_statement): Likewise.
6547 (c_parser_for_statement): Likewise.
6548 (c_parser_unary_expression): Likewise.
6549 (c_parser_postfix_expression): Likewise.
6550 (c_parser_postfix_expression_after_primary): Likewise.
6551 (c_parser_postfix_expression_after_primary): Likewise.
6552 (c_parser_omp_clause_name): Likewise.
6553 (c_finish_omp_declare_simd): Likewise.
6554 (c_parser_cilk_verify_simd): Likewise.
6555 * c-typeck.c (build_array_ref): Likewise.
6556 (build_function_call_vec): Likewise.
6557 (convert_arguments): Likewise.
6558 (build_compound_expr): Likewise.
6559 (c_finish_return): Likewise.
6560 (c_finish_if_stmt): Likewise.
6561 (c_finish_loop): Likewise.
6562 (build_binary_op): Likewise.
6563
393e8e8b
MP
65642014-01-23 Marek Polacek <polacek@redhat.com>
6565
6566 PR c/59846
6567 * c-typeck.c (parser_build_binary_op): Use location instead of
6568 input_location.
6569 (build_binary_op): Pass location to shorten_compare.
6570
f04dda30
MP
65712014-01-23 Marek Polacek <polacek@redhat.com>
6572
6573 PR c/58346
6574 * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
6575 an empty aggregate.
6576
789eadcd
MP
65772014-01-23 Marek Polacek <polacek@redhat.com>
6578
6579 PR c/59871
6580 * c-typeck.c (build_compound_expr): Warn even for right-hand operand
6581 of a comma expression.
6582 (emit_side_effect_warnings): Likewise.
6583
40f14e9f
BI
65842014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
6585
6586 PR c/59825
6587 * c-array-notation.c (expand_array_notation_exprs): Rewrote this
6588 function to use walk_tree and moved a lot of its functionality to
6589 expand_array_notations.
6590 (expand_array_notations): New function.
6591
74558dd9
BI
65922014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
6593
6594 * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
6595 attribute an attribute without value.
6596
652fea39
JJ
65972014-01-23 Jakub Jelinek <jakub@redhat.com>
6598
6599 PR middle-end/58809
6600 * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
6601 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
6602
f34f1c87
MP
66032014-01-22 Marek Polacek <polacek@redhat.com>
6604
6605 PR c/59891
6606 * c-typeck.c (build_conditional_expr): Call c_fully_fold instead
6607 of remove_c_maybe_const_expr on op1 and op2.
6608
241f845a
JJ
66092014-01-15 Jakub Jelinek <jakub@redhat.com>
6610
6611 PR c/58943
6612 * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
6613 effects, preevaluate rhs using SAVE_EXPR first.
6614
9a74f20c
BI
66152014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
6616
6617 PR c++/59631
6618 * c-parser.c (c_parser_postfix_expression): Replaced consecutive if
6619 statements with if-elseif statements.
6620
96066ce1
MP
66212014-01-06 Marek Polacek <polacek@redhat.com>
6622
6623 PR c/57773
6624 * c-decl.c (check_bitfield_type_and_width): Warn for implementation
6625 defined bit-field types only in ISO C.
6626
23a5b65a
RS
66272014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
6628
6629 Update copyright years
6630
f9030485
RS
66312014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
6632
6633 * c-array-notation.c: Use the standard form for the copyright notice.
6634
41958c28
BI
66352013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com>
6636
6637 * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
6638 (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
6639 field in parser is not empty. If not-empty, call the function
6640 c_parser_finish_omp_declare_simd.
6641 (c_parser_cilk_clause_vectorlength): Modified function to be shared
6642 between SIMD-enabled functions and #pragma simd. Added new parameter.
6643 (c_parser_cilk_all_clauses): Modified the usage of the function
6644 c_parser_cilk_clause_vectorlength as mentioned above.
6645 (c_parser_cilk_simd_fn_vector_attrs): New function.
6646 (c_finish_cilk_simd_fn_tokens): Likewise.
6647 (is_cilkplus_vector_p): Likewise.
6648 (c_parser_omp_clause_name): Added checking for "vectorlength,"
6649 "nomask," and "mask" strings in clause name.
6650 (c_parser_omp_all_clauses): Added 3 new case statements:
6651 PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
6652 PRAGMA_CILK_CLAUSE_NOMASK.
6653 (c_parser_attributes): Added a cilk_simd_fn_tokens parameter. Added a
6654 check for vector attribute and if so call the function
6655 c_parser_cilk_simd_fn_vector_attrs. Also, when Cilk plus is enabled,
6656 called the function c_finish_cilk_simd_fn_tokens.
6657 (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
6658 parser field is non-empty. If so, parse them as you would parse
6659 the omp declare simd pragma.
6660 (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
6661 Added a check when step is a parameter and flag it as error.
6662 (CILK_SIMD_FN_CLAUSE_MASK): New #define.
6663 (c_parser_cilk_clause_name): Changed pragma_cilk_clause to
6664 pragma_omp_clause.
6665
cef0fd0e
TS
66662013-12-17 Thomas Schwinge <thomas@codesourcery.com>
6667
6668 * c-parser.c (c_parser_omp_parallel): Fix description.
6669
12893402
BI
66702013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com>
6671
6672 * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
6673 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
6674 (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
6675 * c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
6676
296674db
JM
66772013-12-04 Joseph Myers <joseph@codesourcery.com>
6678
6679 PR c/52023
6680 * c-parser.c (c_parser_alignas_specifier): Use
6681 c_sizeof_or_alignof_type instead of c_alignof.
6682 (c_parser_alignof_expression): Likewise, with min_alignof
6683 parameter depending on alignof spelling used.
6684
edd28054
MP
66852013-12-04 Marek Polacek <polacek@redhat.com>
6686
6687 PR c/54113
6688 * c-decl.c (start_function): Don't warn for missing prototype for
6689 inline functions.
6690
da0fc454
MP
66912013-12-03 Marek Polacek <polacek@redhat.com>
6692
6693 PR c/59351
6694 * c-decl.c (build_compound_literal): Allow compound literals with
6695 empty initial value.
6696
4c2ecab0
JM
66972013-12-02 Joseph Myers <joseph@codesourcery.com>
6698
6699 PR c/58235
6700 * c-typeck.c (build_modify_expr): Diagnose assignment to
6701 expression with array type.
6702
340baef7
JM
67032013-11-29 Joseph Myers <joseph@codesourcery.com>
6704
6705 PR c/42262
6706 * c-typeck.c (process_init_element): Do not treat a string as
6707 initializing a whole array when used with a designator for an
6708 individual element.
6709
6763b9f7
JM
67102013-11-29 Joseph Myers <joseph@codesourcery.com>
6711
6712 PR c/57574
6713 * c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
6714 an inline function following a static declaration.
6715
e7bd1de1
JJ
67162013-11-28 Jakub Jelinek <jakub@redhat.com>
6717
6718 PR c/59310
6719 * c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
6720 to p_name before calling c_parser_omp_teams instead of after.
6721 (c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
6722 argument. Remove unused p_name variable.
6723
0136f8f0
AH
67242013-11-27 Aldy Hernandez <aldyh@redhat.com>
6725 Jakub Jelinek <jakub@redhat.com>
6726
6727 * c-decl.c (c_builtin_function_ext_scope): Avoid binding if
6728 external_scope is NULL.
6729
241b71bb
TV
67302013-11-27 Tom de Vries <tom@codesourcery.com>
6731 Marc Glisse <marc.glisse@inria.fr>
6732
6733 PR c++/59032
6734 * c-typeck.c (build_unary_op): Allow vector increment and decrement.
6735
2fb9a547
AM
67362013-11-22 Andrew MacLeod <amacleod@redhat.com>
6737
6738 * c-typeck.c: Add required include files from gimple.h.
6739
8400e75e
DM
67402013-11-22 David Malcolm <dmalcolm@redhat.com>
6741
6742 * c-decl.c (define_label, shadow_tag_warned)
6743 (check_bitfield_type_and_width, grokdeclarator, grokparms,
6744 store_parm_decls_newstyle, store_parm_decls_oldstyle)
6745 (declspecs_add_type): Remove use of in_system_header macro.
6746 * c-parser.c (c_parser_unary_expression): Likewise.
6747 * c-typeck.c (store_init_value, process_init_element)
6748 (c_start_case): Likewise.
6749
6750 * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
6751 macro.
6752
6753 * c-parser.c (c_parser_set_source_position_from_token): Remove
6754 reference to in_system_header from comment.
6755
386b1f1f
RS
67562013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6757
6758 * c-decl.c (grokdeclarator): Update comment to refer to
6759 tree_to_[su]hwi rather than tree_low_cst.
6760
ae7e9ddd
RS
67612013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6762
6763 * c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
6764 tree_to_uhwi throughout.
6765
9439e9a1
RS
67662013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6767
6768 * c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
6769 throughout.
6770
9541ffee
RS
67712013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
6772
6773 * c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
6774 throughout.
6775
c02065fc
AH
67762013-11-15 Aldy Hernandez <aldyh@redhat.com>
6777
6778 * c-parser.c (c_parser_cilk_simd): New.
6779 (c_parser_cilk_verify_simd): New.
6780 (c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
6781 (c_parser_omp_for_loop): Add case for NE_EXPR.
6782 Set c_break_label for CILK_SIMD.
6783 (c_parser_cilk_clause_vectorlength): New.
6784 (c_parser_cilk_clause_linear): New.
6785 (c_parser_cilk_clause_name): New.
6786 (c_parser_cilk_all_clauses): New.
6787 * c-typeck.c (build_unary_op): Pass location argument to
6788 readonly_error.
6789 (build_modify_expr): Same.
6790 (build_asm_expr): Same.
6791 (c_finish_bc_stmt): Error on break/continue in loops.
6792
18f429e2
AM
67932013-11-14 Andrew MacLeod <amacleod@redhat.com>
6794
6795 * c-typeck.c: Include only gimplify.h and gimple.h as needed.
6796
d8a2d370
DN
67972013-11-14 Diego Novillo <dnovillo@google.com>
6798
6799 * c-decl.c: Include print-tree.h.
6800 Include stor-layout.h.
6801 Include varasm.h.
6802 Include attribs.h.
6803 Include stringpool.h.
6804 * c-lang.c: Include fold-const.h.
6805 * c-parser.c: Include stringpool.h.
6806 Include attribs.h.
6807 Include stor-layout.h.
6808 Include varasm.h.
6809 Include trans-mem.h.
6810 * c-typeck.c: Include stor-layout.h.
6811 Include trans-mem.h.
6812 Include varasm.h.
6813 Include stmt.h.
6814
38b7bc7f
JM
68152013-11-13 Joseph Myers <joseph@codesourcery.com>
6816
6817 * c-tree.h (c_typespec_keyword): Add cts_auto_type.
6818 * c-decl.c (declspecs_add_type, finish_declspecs): Handle
6819 __auto_type.
6820 * c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
6821 (c_parser_attribute_any_word, c_parser_objc_selector): Handle
6822 RID_AUTO_TYPE.
6823 (c_parser_declspecs): Take argument AUTO_TYPE_OK.
6824 (c_parser_declaration_or_fndef, c_parser_struct_declaration)
6825 (c_parser_declarator, c_parser_direct_declarator_inner)
6826 (c_parser_parameter_declaration, c_parser_type_name): All callers
6827 changed.
6828 (c_parser_declaration_or_fndef): Handle declarations with type
6829 determined from the initializer.
6830
45b0be94
AM
68312013-11-12 Andrew MacLeod <amacleod@redhat.com>
6832
18f429e2 6833 * c-typeck.c: Include gimplify.h.
45b0be94 6834
582d9b50
JM
68352013-11-12 Joseph Myers <joseph@codesourcery.com>
6836
6837 * c-tree.h (struct c_declspecs): Add thread_gnu_p field.
6838 * c-parser.c (c_parser_declspecs): Mention _Thread_local in
6839 comment.
6840 * c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
6841 or _Thread_local as appropriate in diagnostics.
6842 (build_null_declspecs): Initialize ret->thread_gnu_p.
6843 (declspecs_add_scspec): Handle either __thread or _Thread_local
6844 for RID_THREAD. Diagnose _Thread_local for pre-C11 standards if
6845 pedantic. Do not disallow _Thread_local extern and _Thread_local
6846 static.
6847
267bac10
JM
68482013-11-07 Joseph Myers <joseph@codesourcery.com>
6849 Andrew MacLeod <amacleod@redhat.com>
6850
6851 * c-aux-info.c (gen_type): Handle atomic qualifier.
6852 * c-decl.c (validate_proto_after_old_defn): Do not remove atomic
6853 qualifiers when compating types.
6854 (shadow_tag_warned): Handle atomic_p in declspecs.
6855 (quals_from_declspecs): Likewise.
6856 (start_decl): Use c_type_promotes_to when promoting argument
6857 types.
6858 (grokdeclarator): Handle _Atomic.
6859 (get_parm_info): Diagnose any qualifier on "void" as only
6860 parameter.
6861 (store_parm_decls_oldstyle): Do not remove atomic qualifiers when
6862 comparing types. Use c_type_promotes_to when promoting argument
6863 types.
6864 (finish_function): Use c_type_promotes_to when promoting argument
6865 types.
6866 (build_null_declspecs): Handle atomic_p in declspecs.
6867 (declspecs_add_qual): Handle RID_ATOMIC.
6868 * c-parser.c (c_token_starts_typename, c_token_is_qualifier)
6869 (c_token_starts_declspecs): Handle RID_ATOMIC.
6870 (c_parser_declspecs): Handle atomic type specifiers and
6871 qualifiers.
6872 (c_parser_typeof_specifier): Remove const and _Atomic qualifiers
6873 from types of expressions with atomic type.
6874 (c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
6875 (c_parser_attribute_any_word): Handle RID_ATOMIC.
6876 (c_parser_initializer, c_parser_initelt, c_parser_initval)
6877 (c_parser_statement_after_labels, c_parser_switch_statement)
6878 (c_parser_for_statement, c_parser_expr_no_commas)
6879 (c_parser_conditional_expression, c_parser_binary_expression)
6880 (c_parser_cast_expression, c_parser_unary_expression)
6881 (c_parser_postfix_expression)
6882 (c_parser_postfix_expression_after_primary, c_parser_expression):
6883 Use convert_lvalue_to_rvalue.
6884 (c_parser_expression_conv, c_parser_expr_list): Document
6885 conversion of lvalues to rvalues. Use convert_lvalue_to_rvalue.
6886 (c_parser_objc_synchronized_statement): Use
6887 convert_lvalue_to_rvalue.
6888 (c_parser_objc_selector): Handle RID_ATOMIC.
6889 (c_parser_objc_receiver, c_parser_array_notation): Use
6890 convert_lvalue_to_rvalue.
6891 * c-tree.h (ctsk_typeof): Adjust comment to mention use for
6892 _Atomic (type-name).
6893 (struct c_declspecs): Add atomic_p field.
6894 (convert_lvalue_to_rvalue): Declare.
6895 * c-typeck.c (c_type_promotes_to): Promote atomic types to
6896 corresponding atomic types.
6897 (qualify_type): Don't add _Atomic qualifiers from second argument.
6898 (comp_target_types): Do not allow _Atomic mismatches.
6899 (type_lists_compatible_p): Do not remove atomic qualifiers when
6900 comparing types.
6901 (really_atomic_lvalue, convert_lvalue_to_rvalue)
6902 (build_atomic_assign): New functions.
6903 (build_unary_op): Use build_atomic_assign for atomic increment and
6904 decrement.
6905 (build_conditional_expr): Do not treat _Atomic void as a qualified
6906 version of void.
6907 (build_modify_expr): Use build_atomic_assign for atomic LHS.
6908 (find_anonymous_field_with_type, convert_to_anonymous_field)
6909 (convert_for_assignment): Do not remove atomic qualifiers when
6910 comparing types.
6911 (digest_init): Do not accept initialization of arrays of atomic
6912 elements by string constants.
6913 (build_asm_expr): Use convert_lvalue_to_rvalue.
6914 (build_binary_op): Do not treat _Atomic void as a qualified
6915 version of void.
6916
0c249d4b
DD
69172013-11-06 DJ Delorie <dj@redhat.com>
6918
6919 * c-decl.c (locate_old_decl): If a previous conflicting decl is
6920 both explicit and builtin, print the location of the explicit one.
6921
6d7f7e0a
TB
69222013-11-05 Tobias Burnus <burnus@net-b.de>
6923
6924 * c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
6925 c_parser_omp_distribute, c_parser_omp_teams,
6926 c_parser_omp_target, c_parser_omp_declare): Handle
6927 -fopenmp-simd.
6928
b906f4ca
MP
69292013-11-03 Marek Polacek <polacek@redhat.com>
6930
6931 * c-decl.c (grokdeclarator): Add VLA instrumentation.
6932
ee1d5a02
JJ
69332013-11-01 Jakub Jelinek <jakub@redhat.com>
6934
6935 * c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
6936 check_dup_generic at the end, unless remove is true.
6937 (c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
6938 remove = true;.
6939 (c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
6940
5a9785fb
JJ
69412013-10-31 Jakub Jelinek <jakub@redhat.com>
6942
6943 * c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
6944 with decl that is not pointer nor array.
6945
939b37da
BI
69462013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
6947
6948 * c-decl.c (finish_function): Added a call for insert_cilk_frame when
6949 a spawning function is found.
6950 * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
6951 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
6952 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
6953 * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
6954 case.
6955 (c_parser_postfix_expression): Added RID_CILK_SPAWN case.
6956 * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
6957 expr.
6958 (c_finish_return): Added a check to reject _Cilk_spawn in return
6959 expression.
6960 (build_cilk_spawn): New function.
6961 (build_cilk_sync): Likewise.
6962 * Makefile.in (c-decl.o): Added cilk.h in dependency list.
ab20d992 6963
d4af74d4
TB
69642013-10-27 Tobias Burnus <burnus@net-b.de>
6965
6966 PR other/33426
6967 * c-parser.c (c_parser_while_statement, c_parser_while_statement,
6968 c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
6969 (c_parser_statement_after_labels): Update calls.
6970
d73749df 69712013-10-24 Tobias Burnus <burnus@net-b.de>
8170608b
TB
6972
6973 PR other/33426
6974 * c-parser.c (c_parser_pragma, c_parser_for_statement):
6975 Handle PRAGMA_IVDEP.
6976 (c_parser_statement_after_labels): Update call.
6977
f28aa681
MP
69782013-10-24 Marek Polacek <polacek@redhat.com>
6979
6980 * c-parser.c (c_parser_struct_declaration): Add a comment.
6981 (c_parser_declarator): Don't allow _Alignas here.
6982
0645c1a2
AM
69832013-10-17 Andrew MacLeod <amacleod@redhat.com>
6984
6985 * c-parser.c: Include omp-low.h.
6986 * c-typeck.c: Likewise.
6987
568a31f2
MP
69882013-10-17 Marek Polacek <polacek@redhat.com>
6989
6990 PR c/58267
6991 * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
6992 Document syntax of the array-declarator.
6993 (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
6994 are not permitted.
6995 (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
6996 (c_parser_struct_declaration): Likewise.
6997 (c_parser_declarator): Likewise.
6998 (c_parser_direct_declarator_inner): Likewise.
6999 (c_parser_parameter_declaration): Likewise.
7000 (c_parser_type_name): Likewise.
7001
acf0174b
JJ
70022013-10-11 Jakub Jelinek <jakub@redhat.com>
7003
7004 * c-lang.h (current_omp_declare_target_attribute): New extern
7005 decl.
7006 * c-parser.c: Include c-lang.h.
7007 (struct c_parser): Change tokens to c_token *.
7008 Add tokens_buf field. Change tokens_avail type to unsigned int.
7009 (c_parser_consume_token): If parser->tokens isn't
7010 &parser->tokens_buf[0], increment parser->tokens.
7011 (c_parser_consume_pragma): Likewise.
7012 (enum pragma_context): Add pragma_struct and pragma_param.
7013 (c_parser_external_declaration): Adjust
7014 c_parser_declaration_or_fndef caller.
7015 (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
7016 argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
7017 Adjust recursive call.
7018 (c_parser_struct_or_union_specifier): Use pragma_struct instead
7019 of pragma_external.
7020 (c_parser_parameter_declaration): Use pragma_param instead of
7021 pragma_external.
7022 (c_parser_compound_statement_nostart, c_parser_label,
7023 c_parser_for_statement): Adjust
7024 c_parser_declaration_or_fndef callers.
7025 (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
7026 it through to c_parser_conditional_expression.
7027 (c_parser_conditional_expression): Add omp_atomic_lhs argument,
7028 pass it through to c_parser_binary_expression. Adjust recursive
7029 call.
7030 (c_parser_binary_expression): Remove prec argument, add
7031 omp_atomic_lhs argument instead. Always start from PREC_NONE, if
7032 omp_atomic_lhs is non-NULL and one of the arguments of toplevel
7033 binop matches it, use build2 instead of parser_build_binary_op.
7034 (c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
7035 PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
7036 PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
7037 Handle pragma_struct and pragma_param the same as pragma_external.
7038 (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
7039 (c_parser_omp_variable_list): Parse array sections for
7040 OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
7041 (c_parser_omp_clause_collapse): Fully fold collapse expression.
7042 (c_parser_omp_clause_reduction): Handle user defined reductions.
7043 (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
7044 c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
7045 c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
7046 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
7047 c_parser_omp_clause_depend, c_parser_omp_clause_map,
7048 c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
7049 c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
7050 c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
7051 (c_parser_omp_all_clauses): Add finish_p argument. Don't call
7052 c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
7053 (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
7054 present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms.
7055 (c_parser_omp_for_loop): Add CODE argument, pass it through
7056 to c_finish_omp_for. Change last argument to cclauses,
7057 and adjust uses to grab parallel clauses from the array of all
7058 the split clauses. Adjust c_parser_binary_expression,
7059 c_parser_declaration_or_fndef and c_finish_omp_for callers.
7060 (omp_split_clauses): New function.
7061 (c_parser_omp_simd): New function.
7062 (c_parser_omp_for): Add p_name, mask and cclauses arguments.
7063 Allow the function to be called also when parsing combined constructs,
7064 and call c_parser_omp_simd when parsing for simd.
7065 (c_parser_omp_sections_scope): If section-sequence doesn't start with
7066 #pragma omp section, require exactly one structured-block instead of
7067 sequence of statements.
7068 (c_parser_omp_sections): Add p_name, mask and cclauses arguments.
7069 Allow the function to be called also when parsing combined constructs.
7070 (c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
7071 Allow the function to be called also when parsing combined
7072 constructs.
7073 (c_parser_omp_taskgroup, c_parser_omp_cancel,
7074 c_parser_omp_cancellation_point, c_parser_omp_distribute,
7075 c_parser_omp_teams, c_parser_omp_target_data,
7076 c_parser_omp_target_update, c_parser_omp_target,
7077 c_parser_omp_declare_simd, c_finish_omp_declare_simd,
7078 c_parser_omp_declare_target, c_parser_omp_end_declare_target,
7079 c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
7080 (c_parser_omp_construct): Add p_name and mask vars. Handle
7081 PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
7082 PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel
7083 and c_parser_omp_sections callers.
7084 (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
7085 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
7086 OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
7087 (OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
7088 (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
7089 OMP_CLAUSE_DEPEND.
7090 (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
7091 OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
7092 OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
7093 OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
7094 OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
7095 * c-typeck.c: Include tree-inline.h.
7096 (c_finish_omp_cancel, c_finish_omp_cancellation_point,
7097 handle_omp_array_sections_1, handle_omp_array_sections,
7098 c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
7099 (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
7100 user defined reductions.
7101 (c_tree_equal): New function.
7102 * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
7103 c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
7104 c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
7105 c_check_omp_declare_reduction_r): New prototypes.
7106 * c-decl.c (current_omp_declare_target_attribute): New variable.
7107 (c_decl_attributes): New function.
7108 (start_decl, start_function): Use it instead of decl_attributes.
7109 (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
7110 c_omp_reduction_decl, c_omp_reduction_lookup,
7111 c_check_omp_declare_reduction_r): New functions.
7112
0a6c2227
TT
71132013-09-25 Tom Tromey <tromey@redhat.com>
7114
7115 * Make-lang.in (c/gccspec.o): Remove.
7116 (CFLAGS-c/gccspec.o): New variable.
7117 (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
7118 (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
7119 (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
7120
f3bc55f0
TT
71212013-09-25 Tom Tromey <tromey@redhat.com>
7122
7123 * Make-lang.in (c/gccspec.o): Don't use subshell.
7124
a24d975c
MP
71252013-09-18 Marek Polacek <polacek@redhat.com>
7126
7127 PR sanitize/58443
7128 * c-typeck.c (build_binary_op): Properly honor -fsanitize options.
7129 Remove unnecessary check.
7130
ce6923c5
MP
71312013-09-18 Marek Polacek <polacek@redhat.com>
7132
7133 PR sanitizer/58411
7134 * c-typeck.c (build_binary_op): Don't sanitize function if it has the
7135 no_sanitize_undefined attribute.
7136
a1e51df9
KT
71372013-09-13 Kai Tietz <ktietz@redhat.com>
7138
7139 PR target/57848
7140 * c-decl.c (c_builtin_function_ext_scope): Remove
7141 wrong assumption that it is never called on prexisting
7142 symbol.
7143
0af94e6f
JR
71442013-09-08 Joern Rennecke <joern.rennecke@embecosm.com>
7145
7146 * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
7147
20059c8b
GDR
71482013-09-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
7149
7150 * c-objc-common.c (c_tree_printer): Tidy.
7151
de5a5fa1
MP
71522013-08-30 Marek Polacek <polacek@redhat.com>
7153
7154 * c-typeck.c (build_binary_op): Add division by zero and shift
7155 instrumentation.
7156
2531a1d9 71572013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
0fdd4508 7158 Joseph Myers <joseph@codesourcery.com>
2531a1d9 7159
6e2bcc98 7160 PR c/35649
2531a1d9
JR
7161 * c-typeck.c (c_common_type): Prefer double_type_node over
7162 other REAL_TYPE types with the same precision.
7163 (convert_arguments): Likewise.
7164
025311c4
GDR
71652013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
7166
7167 * c-objc-common.c (c_tree_printer): Document the nature of the cast.
7168 (c_initialize_diagnostics): Call a destructor for the early printer.
7169
da6ca2b5
GDR
71702013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
7171
7172 * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
7173 printer initialization.
7174
318cda85 71752013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com>
da6ca2b5 7176
318cda85
BI
7177 PR c/57490
7178 * c-array-notation.c (fix_conditional_array_notations_1): Added a
7179 check for truth values.
7180 (expand_array_notation_exprs): Added truth values case. Removed an
7181 unwanted else. Added for-loop to walk through subtrees in default
7182 case.
7183
b066401f
GDR
71842013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
7185
7186 * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
7187
fb48aadc
JM
71882013-07-23 Joseph Myers <joseph@codesourcery.com>
7189
7190 * c-parser.c (struct c_generic_association): Fix typo.
7191
433cc7b0
TT
71922013-07-23 Tom Tromey <tromey@redhat.com>
7193 Joseph Myers <joseph@codesourcery.com>
7194
7195 * c-parser.c (struct c_generic_association): New.
7196 (c_generic_association_d): New typedef.
7197 (c_parser_generic_selection): New function.
7198 (c_parser_postfix_expression): Handle RID_GENERIC.
7199
26d40c3d
JM
72002013-07-13 Jason Merrill <jason@redhat.com>
7201
7202 PR c++/57793
7203 * c-decl.c (finish_struct): Check for too-large class.
7204
ecdbd01a 72052013-07-04 Joern Rennecke <joern.rennecke@embecosm.com>
40d3d530
JR
7206
7207 PR c/57821
7208 * c-typeck.c (set_init_index): When folding, check for index overflow.
7209
1141ed3f
BI
72102013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
7211
7212 * c-parser.c (c_parser_array_notation): Removed rejection of array
7213 notations in an array of function pointers.
7214
713b46fa
BI
72152013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com>
7216
7217 * c-array-notation.c (make_triplet_val_inv): New function.
7218 (create_cmp_incr): Likewise.
7219 (create_array_refs): Likewise.
7220 (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
7221 Also modularized common parts between functions and called the function.
7222 (build_array_notation_expr): Likewise.
7223 (fix_conditional_array_notations_1): Likewise.
7224 (fix_array_notation_expr): Likewise.
7225 (fix_array_notation_call_expr): Likewise.
7226
92f20202
MP
72272013-06-18 Marek Polacek <polacek@redhat.com>
7228
7229 PR c/57630
7230 * c-decl.c (check_for_loop_decls): Improve diagnostics messages.
7231
73a23b06
BI
72322013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com>
7233
7234 * c-array-notation.c (build_array_notation_expr): Reject array notation
7235 mismatch between LHS and RHS even inside a call_expr. Also, removed
7236 a couple while statements that were dead code.
7237
00b8517d
BI
72382013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
7239
7240 * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
7241 excessive precision expressions in function parameters. Also removed
7242 couple unwanted while statements.
7243
1509bdda
BI
72442013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
7245
7246 * c-array-notation.c (expand_array_notation_exprs): Added
7247 ARRAY_NOTATION_REF case.
ab20d992 7248
d60f1706
BI
72492013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
7250
7251 * c-array-notation.c (length_mismatch_in_expr_p): Moved this
7252 function to c-family/array-notation-common.c.
7253 (is_cilkplus_reduce_builtin): Likewise.
7254 (find_rank): Likewise.
7255 (extract_array_notation_exprs): Likewise.
7256 (replace_array_notations): Likewise.
7257 (find_inv_trees): Likewise.
7258 (replace_inv_trees): Likewise.
7259 (contains_array_notation_expr): Likewise.
7260 (find_correct_array_notation_type): Likewise.
7261 (replace_invariant_exprs): Initialized additional_tcodes to NULL.
7262 (struct inv_list): Moved this to c-family/array-notation-common.c.
7263 * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
ab20d992 7264
6d6efbb3
BI
72652013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com>
7266
7267 * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
7268 reduction functions outside the for-loop. Added a check if the fundecl
7269 is non-NULL. Finally, removed an unwanted if-statement, and made the
7270 body unconditional.
7271
25c22937
BI
72722013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
7273
7274 * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
7275 condition of the if-statement matches the rank of else-block and then-
7276 block when array notations are used.
7277 * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
7278 expression after the entire function body is parsed.
7279 (c_parser_expr_no_commas): Delayed creating array notation expressions
7280 to the end of function parsing.
7281 * c-array-notation.c (fix_conditional_array_notations_1): Expanded the
7282 whole if-statement instead of just the condition.
ab20d992 7283 (expand_array_notation_exprs): Added MODIFY_EXPR case.
25c22937 7284
edd25645
BI
72852013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
7286
7287 PR c/57474
7288 * c-array-notation.c (build_array_notation_expr): Initialized rhs_length
7289 array to NULL_TREE if they are unused. Also added a check for the
7290 field to be NULL before its fields are used in future.
ab20d992 7291
065ce7f1
RO
72922013-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7293
7294 PR bootstrap/57450
7295 * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
7296 (build_array_notation_expr): Likewise.
7297
36536d79
BI
72982013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
7299
7300 * c-typeck.c (build_array_ref): Added a check to see if array's
7301 index is greater than one. If true, then emit an error.
7302 (build_function_call_vec): Exclude error reporting and checking
7303 for builtin array-notation functions.
7304 (convert_arguments): Likewise.
7305 (c_finish_return): Added a check for array notations as a return
7306 expression. If true, then emit an error.
7307 (c_finish_loop): Added a check for array notations in a loop
7308 condition. If true then emit an error.
7309 (lvalue_p): Added a ARRAY_NOTATION_REF case.
7310 (build_binary_op): Added a check for array notation expr inside
7311 op1 and op0. If present, we call another function to find correct
7312 type.
7313 * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
7314 * c-parser.c (c_parser_compound_statement): Check if array
7315 notation code is used in tree, if so, then transform them into
7316 appropriate C code.
7317 (c_parser_expr_no_commas): Check if array notation is used in LHS
7318 or RHS, if so, then build array notation expression instead of
7319 regular modify.
7320 (c_parser_postfix_expression_after_primary): Added a check for
7321 colon(s) after square braces, if so then handle it like an array
7322 notation. Also, break up array notations in unary op if found.
7323 (c_parser_direct_declarator_inner): Added a check for array
7324 notation.
7325 (c_parser_compound_statement): Added a check for array notation in
7326 a stmt. If one is present, then expand array notation expr.
7327 (c_parser_if_statement): Likewise.
7328 (c_parser_switch_statement): Added a check for array notations in
7329 a switch statement's condition. If true, then output an error.
7330 (c_parser_while_statement): Similarly, but for a while.
7331 (c_parser_do_statement): Similarly, but for a do-while.
7332 (c_parser_for_statement): Similarly, but for a for-loop.
7333 (c_parser_unary_expression): Check if array notation is used in a
7334 pre-increment or pre-decrement expression. If true, then expand
7335 them.
7336 (c_parser_array_notation): New function.
7337 * c-array-notation.c: New file.
7338 * c-tree.h (is_cilkplus_reduce_builtin): Protoize.
ab20d992 7339
cd192ccc
MS
73402013-05-23 Mike Stump <mikestump@comcast.net>
7341
7342 * c-typeck.c (convert_for_assignment): Handle references to memory
7343 spaces better.
7344
427b248d
JM
73452013-05-16 Jason Merrill <jason@redhat.com>
7346
7347 * Make-lang.in (cc1$(exeext)): Use link mutex.
7348
44d90fe1
PC
73492013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
7350
7351 * c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
7352 to simply use OPT_Wpointer_arith.
7353 (build_unary_op): Likewise.
7354
4e7d7b3d
JJ
73552013-04-03 Jakub Jelinek <jakub@redhat.com>
7356
7357 PR c/19449
7358 * c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
7359 argument. If set, or it temporarily for parsing of the first
7360 argument into force_folding_builtin_constant_p.
7361 (c_parser_postfix_expression): Adjust callers.
7362
839b422f
RB
73632013-03-21 Richard Biener <rguenther@suse.de>
7364
7365 * c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
7366 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
7367
2ee028f1
MP
73682013-02-12 Marek Polacek <polacek@redhat.com>
7369
7370 PR c/44938
7371 * c-parser.c (c_parser_postfix_expression_after_primary): Initialize
7372 origtypes to NULL.
7373
8824edff
JJ
73742013-01-24 Jakub Jelinek <jakub@redhat.com>
7375
7376 PR c/56078
7377 * c-typeck.c (set_nonincremental_init_from_string): If
7378 constructor_max_index is NULL, treat it as if tree_int_cst_lt
7379 returned false.
7380 (process_init_element): Likewise.
7381
eadd3d0d
JJ
73822012-12-20 Jakub Jelinek <jakub@redhat.com>
7383
7384 PR c++/55619
7385 * c-parser.c (c_parser_asm_operands): Remove CONVERT_P
7386 argument, don't call default_function_array_conversion
7387 nor c_fully_fold here.
7388 (c_parser_asm_statement): Adjust callers.
7389 * c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
7390 and outputs here, and call default_function_array_conversion
7391 on inputs that don't need to be addressable.
7392
f8a93a2e
JJ
73932012-12-18 Jakub Jelinek <jakub@redhat.com>
7394
7395 PR c/39464
7396 * c-typeck.c (convert_for_assignment): For -Wpointer-sign
7397 warning require that both c_common_unsigned_type as well as
7398 c_common_signed_type is the same for both mvl and mvr types.
7399
9771b263
DN
74002012-11-16 Diego Novillo <dnovillo@google.com>
7401
7402 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
7403
7404 * c-common.c: Use new vec API in vec.h.
7405 * c-common.h: Likewise.
7406 * c-gimplify.c: Likewise.
7407 * c-pragma.c: Likewise.
7408 * c-pretty-print.c: Likewise.
7409 * c-pretty-print.h: Likewise.
7410 * c-semantics.c: Likewise.
7411 * c-decl.c: Likewise.
7412 * c-parser.c: Likewise.
7413 * c-tree.h: Likewise.
7414 * c-typeck.c: Likewise.
7415
880661a4
JW
74162012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
7417
7418 PR c++/54930
7419 * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.
7420
077d1abe
MLI
74212012-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
7422
7423 PR c/53066
7424 * c-decl.c (warn_if_shadowing): Do not warn if a variable
7425 shadows a function, unless the variable is a function or a
7426 pointer-to-function.
7427
3a785c97
JJ
74282012-10-12 Jakub Jelinek <jakub@redhat.com>
7429
7430 PR c/54381
7431 * c-parser.c (struct c_tree_loc_pair): Removed.
7432 (c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
7433 add location_t * and tree * arguments, fill in array of 3
7434 sizeof_arg trees and corresponding locs.
7435 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust
7436 c_parser_expr_list callers.
7437 (c_parser_postfix_expression_after_primary): Likewise. Pass
7438 array of 3 sizeof_arg trees and locs (corresponding to first
7439 3 arguments) to sizeof_pointer_memaccess_warning.
7440
703c8606
LC
74412012-10-09 Lawrence Crowl <crowl@google.com>
7442
7443 * Make-lang.in (c-decl.o): Add dependence on hash-table.h.
7444 * c-decl.c (detect_field_duplicates_hash): Change to new type-safe
7445 hash table.
7446
5d9de0d0
PC
74472012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
7448
7449 PR c++/54194
7450 * c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
7451 call.
7452
a212e43f
MG
74532012-10-09 Marc Glisse <marc.glisse@inria.fr>
7454
7455 PR c++/54427
7456 * c-typeck.c: Include c-common.h.
7457 (enum stv_conv): Moved to c-common.h.
7458 (scalar_to_vector): Moved to c-common.c.
7459 (build_binary_op): Adapt to scalar_to_vector's new prototype.
7460 * Make-lang.in: c-typeck.c depends on c-common.h.
7461
3b78de56
AC
74622012-10-04 Arnaud Charlet <charlet@adacore.com>
7463
7464 * c-decl.c (c_write_global_declarations): Fix handling of
7465 -fdump-ada-spec*.
7466
78c60e3d
SS
74672012-09-30 Sharad Singhai <singhai@google.com>
7468
7469 * c-decl.c (c_write_global_declarations): Use a different method
7470 to determine if the dump has ben initialized.
7471
9f33203d
JM
74722012-09-14 Joseph Myers <joseph@codesourcery.com>
7473
7474 PR c/54552
7475 * c-typeck.c (c_cast_expr): When casting to a type requiring
7476 C_MAYBE_CONST_EXPR to be created, pass the inner expression to
7477 c_fully_fold first.
7478
a27d595d
JM
74792012-09-14 Joseph Myers <joseph@codesourcery.com>
7480
7481 PR c/54103
7482 * c-typeck.c (build_unary_op): Pass original argument of
7483 TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
7484 any C_MAYBE_CONST_EXPR, if it has integer operands.
7485 (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
7486 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
7487 to c_objc_common_truthvalue_conversion, then remove any
7488 C_MAYBE_CONST_EXPR, if they have integer operands. Use
7489 c_objc_common_truthvalue_conversion not
7490 c_common_truthvalue_conversion.
7491 (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
7492 call note_integer_operands for arguments with integer operands
7493 that are not integer constants.
7494
9feb29df
JJ
74952012-09-13 Jakub Jelinek <jakub@redhat.com>
7496
7497 PR c/54559
7498 * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
7499 COMPLEX_TYPE with in_late_binary_op set temporarily to true.
7500
d409320c
JJ
75012012-08-31 Jakub Jelinek <jakub@redhat.com>
7502
7503 PR c/54428
7504 * c-convert.c (convert): Don't call fold_convert_loc if
7505 TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
7506 is a COMPLEX_EXPR. Remove TYPE_MAIN_VARIANT check from
7507 COMPLEX_TYPE -> COMPLEX_TYPE conversion.
7508
6265d07c
JJ
75092012-08-24 Jakub Jelinek <jakub@redhat.com>
7510
7511 PR c/54355
7512 * c-decl.c (c_parser_label): Pass true as nested and fix up comments
7513 for nested and empty_ok arguments in the call to
7514 c_parser_declaration_or_fndef.
7515
1a4049e7
JJ
75162012-08-17 Jakub Jelinek <jakub@redhat.com>
7517
7518 * c-tree.h (c_last_sizeof_arg): Declare.
7519 * c-parser.c (struct c_tree_loc_pair): New type.
7520 (c_parser_expr_list): Add sizeof_arg argument. Fill it in if
7521 non-NULL.
7522 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
7523 (c_parser_postfix_expression_after_primary): Likewise. Call
7524 sizeof_pointer_memaccess_warning if needed.
7525 (sizeof_ptr_memacc_comptypes): New function.
7526 * c-typeck.c (c_last_sizeof_arg): New global variable.
7527 (c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
7528
0229aee9
UB
75292012-07-24 Uros Bizjak <ubizjak@gmail.com>
7530
7531 * c-lang.h (lang_decl): Add variable_size GTY option.
7532
7ee2468b
SB
75332012-07-16 Steven Bosscher <steven@gcc.gnu.org>
7534
7535 * c-decl.c: Include dumpfile.h instead of tree-dump.h.
7536 * Make-lang.in: Fix dependencies.
7537
d4a10d0a
SB
75382012-06-29 Steven Bosscher <steven@gcc.gnu.org>
7539
7540 * Make-lang.in: New file, rules migrated from gcc/Makefile.in
7541 and add language Makefile hooks.
7542 * config-lang.in: New file.
7543 * c-config-lang.in: Moved from gcc/config-lang.in to here, and
7544 add the required "normal" config-lang.in rules.
7545 * c-lang.h: Moved from gcc/ to here.
7546 * c-tree.h: Likewise.
7547 * c-objc-common.c: Likewise.
7548 * c-objc-common.h: Likewise.
7549 * c-typeck.c: Likewise.
7550 * c-convert.c: Likewise.
7551 * c-lang.c: Likewise.
7552 * c-aux-info.c: Likewise.
7553 * c-errors.c: Likewise.
7554 * gccspec.c: Likewise.
7555 * c-decl.c: Likewise. Include gt-c-c-decl.h, not gt-c-decl.h.
7556 * c-parser.c: Likewise. Include gt-c-c-parser.h, not gt-c-parser.h.
7557\f
c48514be 7558Copyright (C) 2012-2021 Free Software Foundation, Inc.
d4a10d0a
SB
7559
7560Copying and distribution of this file, with or without modification,
7561are permitted in any medium without royalty provided the copyright
7562notice and this notice are preserved.