]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / c / ChangeLog
CommitLineData
2e0f3f97
GA
12023-12-01 Florian Weimer <fweimer@redhat.com>
2
3 PR other/44209
4 * c-decl.cc (grokparms): Issue permerror for
5 OPT_Wdeclaration_missing_parameter_type instead of a pedwarn.
6
72023-12-01 Florian Weimer <fweimer@redhat.com>
8
9 PR c/96284
10 * c-typeck.cc (build_conditional_expr): Upgrade most pointer
11 type mismatches to a permerror.
12 (convert_for_assignment): Use permerror_opt and
13 permerror_init for OPT_Wincompatible_pointer_types warnings.
14
152023-12-01 Florian Weimer <fweimer@redhat.com>
16
17 PR c/96284
18 * c-typeck.cc (c_finish_return): Use permerrors
19 for OPT_Wreturn_mismatch diagnostics.
20
212023-12-01 Florian Weimer <fweimer@redhat.com>
22
23 * c-decl.cc (grokdeclarator): Do not skip -Wimplicit-int
24 warnings or errors in system headers.
25
262023-12-01 Florian Weimer <fweimer@redhat.com>
27
28 * c-decl.cc (warn_defaults_to): Remove.
29 (grok_declarator, start_function): Call permerror_opt
30 instead of warn_defaults_to.
31 (store_parm_decls_oldstyle): Call permerror_opt for
32 OPT_Wimplicit_int.
33
342023-12-01 Florian Weimer <fweimer@redhat.com>
35
36 PR c/91092
37 PR c/96284
38 * c-decl.cc (implicit_decl_permerror): Rename from
39 implicit_decl_warning. Call permerror_opt instead of
40 pedwarn and warning_at.
41 (implicitly_declare): Adjust callers.
42
432023-12-01 Florian Weimer <fweimer@redhat.com>
44
45 PR c/96284
46 PR c/106416
47 * c-typeck.cc (build_conditional_expr): Use permerror_opt for
48 pointer/integer type mismatches, based on -Wint-conversion.
49 (pedwarn_permerror_init, permerror_init): New function.
50 (pedwarn_init): Call pedwarn_permerror_init.
51 (convert_for_assignment): Use permerror_opt and
52 permerror_init for -Wint-conversion warnings.
53
31d8cf17
GA
542023-11-29 Alexandre Oliva <oliva@adacore.com>
55
56 * c-typeck.cc (convert_lvalue_to_rvalue): Decay hardbools.
57 * c-convert.cc (convert): Convert to hardbool through
58 truthvalue.
59 * c-decl.cc (check_bitfield_type_and_width): Skip enumeral
60 truncation warnings for hardbool.
61 (finish_struct): Propagate hardbool attribute to bitfield
62 types.
63 (digest_init): Convert to hardbool.
64
6c85b8a9
GA
652023-11-28 Jason Merrill <jason@redhat.com>
66
67 PR c++/94264
68 PR c++/53220
69 * c-typeck.cc (array_to_pointer_conversion): Adjust -Wc++-compat
70 diagnostic.
71
722023-11-28 Richard Biener <rguenther@suse.de>
73
74 PR middle-end/112741
75 * gimple-parser.cc (c_parser_parse_gimple_body): Also
76 set DECL_SEEN_IN_BIND_EXPR_Pfor locals.
77
ad3e759c
GA
782023-11-27 Alex Coplan <alex.coplan@arm.com>
79 Iain Sandoe <iain@sandoe.co.uk>
80
81 PR c++/60512
82 * c-lang.cc (c_family_register_lang_features): New.
83 * c-objc-common.cc (struct c_feature_info): New.
84 (c_register_features): New.
85 * c-objc-common.h (c_register_features): New.
86
77cf1dba
GA
872023-11-24 Tobias Burnus <tobias@codesourcery.com>
88
89 * c-parser.cc (c_parser_omp_clause_num_threads,
90 c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
91 c_parser_omp_clause_priority, c_parser_omp_clause_schedule,
92 c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
93 c_parser_omp_clause_dist_schedule, c_parser_omp_depobj,
94 c_parser_omp_scan_loop_body, c_parser_omp_assumption_clauses):
95 Add OPT_Wopenmp to warning_at.
96
972023-11-24 Tobias Burnus <tobias@codesourcery.com>
98
99 * c-parser.cc (c_parser_omp_depobj): Accept optionally an argument
100 to the destroy clause.
101
6fb55db0
GA
1022023-11-23 Jakub Jelinek <jakub@redhat.com>
103
104 * c-parser.cc (c_parser_postfix_expression): Handle RID_BUILTIN_STDC.
105 * c-decl.cc (names_builtin_p): Likewise.
106
b9fd8399
GA
1072023-11-14 Jakub Jelinek <jakub@redhat.com>
108
109 PR c/111309
110 * c-typeck.cc (convert_arguments): Don't promote first argument
111 of BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.
112
1132023-11-10 Martin Uecker <uecker@tugraz.at>
114
115 * c-typeck.cc (struct comptypes_data): Add anon_field flag.
116 (comptypes, comptypes_check_unum_int,
117 comptypes_check_different_types): Remove old cache.
118 (tagged_tu_types_compatible_p): Rewrite.
119
1202023-11-09 Florian Weimer <fweimer@redhat.com>
121
122 * c-typeck.cc (c_finish_return): Use pedwarn with
123 OPT_Wreturn_mismatch for missing/extra return expressions.
124
c48f1056
GA
1252023-11-07 Kwok Cheung Yeung <kcy@codesourcery.com>
126
127 * c-decl.cc (c_decl_attributes): Add attribute for indirect
128 functions.
129 * c-lang.h (c_omp_declare_target_attr): Add indirect field.
130 * c-parser.cc (c_parser_omp_clause_name): Handle indirect clause.
131 (c_parser_omp_clause_indirect): New.
132 (c_parser_omp_all_clauses): Handle indirect clause.
133 (OMP_DECLARE_TARGET_CLAUSE_MASK): Add indirect clause to mask.
134 (c_parser_omp_declare_target): Handle indirect clause. Emit error
135 message if device_type or indirect clauses used alone. Emit error
136 if indirect clause used with device_type that is not 'any'.
137 (OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK): Add indirect clause to mask.
138 (c_parser_omp_begin): Handle indirect clause.
139 * c-typeck.cc (c_finish_omp_clauses): Handle indirect clause.
140
1412023-11-07 Joseph Myers <joseph@codesourcery.com>
142
143 * c-decl.cc: Use flag_isoc23 instead of flag_isoc2x and c23_auto_p
144 instead of c2x_auto_p. Refer to C23 instead of C2X in diagnostics
145 and comments.
146 * c-errors.cc: Use flag_isoc23 instead of flag_isoc2x and
147 warn_c11_c23_compat instead of warn_c11_c2x_compat. Refer to C23
148 instead of C2X in comments.
149 * c-parser.cc: Use flag_isoc23 instead of flag_isoc2x,
150 warn_c11_c23_compat instead of warn_c11_c2x_compat, c23_auto_p
151 instead of c2x_auto_p and D_C23 instead of D_C2X. Refer to C23
152 instead of C2X in diagnostics and comments.
153 * c-tree.h: Refer to C23 instead of C2X in comments.
154 (struct c_declspecs): Rename c2x_auto_p to c23_auto_p.
155 * c-typeck.cc: Use flag_isoc23 instead of flag_isoc2x and
156 warn_c11_c23_compat instead of warn_c11_c2x_compat. Refer to C23
157 instead of C2X in diagnostics and comments.
158
2cca6ae6
GA
1592023-11-06 Joseph Myers <joseph@codesourcery.com>
160
161 PR c/107954
162 * c-errors.cc (pedwarn_c11): Use OPT_Wc11_c23_compat instead of
163 OPT_Wc11_c2x_compat.
164 * c-typeck.cc (build_conditional_expr, convert_for_assignment):
165 Use OPT_Wc11_c23_compat instead of OPT_Wc11_c2x_compat.
166
eb4e1b62
GA
1672023-11-04 Jakub Jelinek <jakub@redhat.com>
168
169 * c-parser.h (c_maybe_parse_omp_decl): Declare.
170 * c-parser.cc (struct c_parser): Add in_omp_decl_attribute member.
171 (c_parser_std_attribute): Uncoment omp::decl handling.
172 (c_parser_omp_var_list_parens): If parser->in_omp_decl_attribute
173 don't expect any arguments, instead create clause or TREE_LIST for
174 that decl.
175 (c_maybe_parse_omp_decl): New function.
176 (c_parser_omp_declare_target): If parser->in_omp_decl_attribute and
177 first token isn't name or comma invoke c_parser_omp_var_list_parens.
178 * c-decl.cc (c_decl_attributes): Uncomment omp::decl handling and
179 use *node rather than non-existing *decl.
180
1812023-11-04 Jakub Jelinek <jakub@redhat.com>
182
183 * c-tree.def: New file.
184 * c-tree.h (struct c_tree_token_vec): Forward declare.
185 (c_tree_size): Declare.
186 * c-lang.h (struct c_omp_declare_target_attr): Add attr_syntax member.
187 (struct c_omp_begin_assumes_data): New type.
188 (current_omp_begin_assumes): Change type from int to
189 vec<c_omp_begin_assumes_data, va_gc> *.
190 * c-lang.cc: Include c-family/c-pragma.h and c-parser.h.
191 * c-parser.h (struct c_tree_token_vec_struct): New type.
192 (C_TOKEN_VEC_TOKENS): New macro.
193 * c-parser.cc (struct c_parser): Add omp_attrs_forbidden_p and
194 in_omp_attribute_pragma members.
195 (c_parser_skip_until_found): Handle CPP_PRAGMA_EOL when
196 parser->in_omp_attribute_pragma.
197 (c_parser_skip_to_pragma_eol): Likewise.
198 (c_parser_translation_unit): Adjust for current_omp_begin_assumes
199 being a vector rather than counter.
200 (c_parser_declaration_or_fndef): Handle omp::directive and
201 omp::sequence attributes on attribute declaration and declare simd
202 or declare variant directives in those on function declarations.
203 (c_parser_check_balanced_raw_token_sequence): Forward declare.
204 (c_parser_omp_directive_args, c_parser_omp_sequence_args): New
205 functions.
206 (c_parser_std_attribute): Handle omp::directive and omp::sequence
207 attributes.
208 (struct c_omp_attribute_data): New type.
209 (c_parser_handle_statement_omp_attributes,
210 c_parser_handle_directive_omp_attributes): New functions.
211 (c_parser_compound_statement_nostart): Handle omp::directive and
212 omp::sequence attributes on statements. Formatting fix.
213 (c_parser_all_labels): Handle omp::directive and omp::sequence
214 attributes on statements.
215 (c_parser_statement): Clear parser->omp_attrs_forbidden_p.
216 (c_parser_omp_variable_list): Handle parser->tokens
217 != &parser->tokens_buf[0] by saving/restoring it.
218 (c_parser_omp_structured_block): Set parser->omp_attrs_forbidden_p.
219 (c_parser_omp_section_scan): New function.
220 (c_parser_omp_structured_block_sequence, c_parser_omp_sections_scope):
221 Use it.
222 (c_parser_omp_parallel): Set parser->omp_attrs_forbidden_p.
223 (c_parser_omp_task): Likewise.
224 (c_parser_omp_declare_simd): Handle function declaration after
225 std attributes.
226 (c_finish_omp_declare_simd): Don't assert all kinds are the same.
227 (c_parser_omp_declare_target): Also push attr_syntax flag.
228 (c_parser_omp_begin): Likewise. Adjust for current_omp_begin_assumes
229 type change.
230 (c_parser_omp_end): Adjust for current_omp_begin_assumes type
231 change. Diagnose mixing of attribute vs. pragma syntax on end assumes
232 or end declare target.
233 (c_parser_omp_declare_reduction): Handle parser->tokens
234 != &parser->tokens_buf[0] by saving/restoring it.
235 * c-decl.cc: Include c-parser.h.
236 (current_omp_begin_assumes): Change type from int to
237 vec<c_omp_begin_assumes_data, va_gc> *.
238 (struct c_tree_token_vec): New type. Add static assertions
239 for sizeof and offsetof.
240 (union lang_tree_node): Add c_token_vec member and adjust GTY
241 desc for it.
242 (c_tree_size): New function.
243 (c_decl_attributes): Diagnose invalid omp::directive attribute
244 uses.
245 * c-objc-common.h (LANG_HOOKS_TREE_SIZE): Redefine.
246
9daed0b5
GA
2472023-11-02 Martin Uecker <uecker@tugraz.at>
248
249 PR c/112347
250 * c-typeck.cc (convert_for_assignment): Add missing check.
251
c73d2d49
GA
2522023-11-01 Martin Uecker <uecker@tugraz.at>
253
254 PR c/71219
255 * c-typeck.cc (convert_for_assignment): Add warning.
256
ecca503b
GA
2572023-10-26 liuhongt <hongtao.liu@intel.com>
258
259 * c-typeck.cc (build_vec_cmp): Pass type of arg0 to
260 truth_type_for.
261
f75fc1f0
GA
2622023-10-25 Thomas Schwinge <thomas@codesourcery.com>
263
264 * c-parser.cc (c_parser_omp_clause_name): Return
265 'PRAGMA_OACC_CLAUSE_SELF' for "self".
266 (c_parser_oacc_data_clause, OACC_UPDATE_CLAUSE_MASK): Adjust.
267 (c_parser_oacc_all_clauses): Remove 'bool compute_p' formal
268 parameter, and instead locally determine whether we're called for
269 an OpenACC compute construct or OpenACC 'update' directive.
270 (c_parser_oacc_compute): Adjust.
271
2722023-10-25 Chung-Lin Tang <cltang@codesourcery.com>
273
274 * c-parser.cc (c_parser_oacc_compute_clause_self): New function.
275 (c_parser_oacc_all_clauses): Add new 'bool compute_p = false'
276 parameter, add parsing of self clause when compute_p is true.
277 (OACC_KERNELS_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_SELF.
278 (OACC_PARALLEL_CLAUSE_MASK): Likewise,
279 (OACC_SERIAL_CLAUSE_MASK): Likewise.
280 (c_parser_oacc_compute): Adjust call to c_parser_oacc_all_clauses to
281 set compute_p argument to true.
282 * c-typeck.cc (c_finish_omp_clauses): Add OMP_CLAUSE_SELF case.
283
6f684dd2
GA
2842023-10-20 Florian Weimer <fweimer@redhat.com>
285
286 PR c/109827
287 PR other/44209
288 * c-typeck.cc (build_conditional_expr): Use OPT_Wint_conversion
289 for pointer/integer mismatch warnings.
290
2912023-10-20 Florian Weimer <fweimer@redhat.com>
292
293 PR c/109826
294 PR other/44209
295 * c-typeck.cc (build_conditional_expr): Use
296 OPT_Wincompatible_pointer_types for pointer mismatches.
297 Emit location information for the operand.
298
c85f7481
GA
2992023-10-19 Andrew Pinski <pinskia@gmail.com>
300
301 PR c/100532
302 * c-typeck.cc (convert_argument): After erroring out
303 about an incomplete type return error_mark_node.
304
3052023-10-19 Andrew Pinski <pinskia@gmail.com>
306
307 PR c/104822
308 * c-typeck.cc (convert_for_assignment): Check for null pointer
309 before warning about an incompatible scalar storage order.
310
0308461d
GA
3112023-10-18 Andrew Pinski <pinskia@gmail.com>
312
313 PR c/101364
314 * c-decl.cc (diagnose_arglist_conflict): Test for
315 error mark before calling of c_type_promotes_to.
316
3172023-10-18 Andrew Pinski <pinskia@gmail.com>
318
319 PR c/101285
320 * c-typeck.cc (c_safe_arg_type_equiv_p): Return true for error
321 operands early.
322
fb69acff
GA
3232023-10-17 Martin Uecker <uecker@tugraz.at>
324
325 PR c/111708
326 * c-decl.cc (grokdeclarator): Add error.
327
96557ee6
GA
3282023-10-03 David Malcolm <dmalcolm@redhat.com>
329
330 * c-objc-common.cc (c_tree_printer): Update for "m_" prefixes to
331 text_info fields.
332
125781fb
GA
3332023-09-30 Eugene Rozenfeld <erozen@microsoft.com>
334
335 * Make-lang.in: Make create_fdas_for_cc1 target not .PHONY
336
4907d220
GA
3372023-09-20 Jakub Jelinek <jakub@redhat.com>
338
339 * c-parser.cc (c_parser_postfix_expression_after_primary): Parse
340 __builtin_classify_type call with typename as argument.
341
590a8bec
GA
3422023-09-19 Richard Biener <rguenther@suse.de>
343
344 PR c/111468
345 * gimple-parser.cc (c_parser_gimple_binary_expression): Handle __LTGT.
346
3472023-09-19 Richard Biener <rguenther@suse.de>
348
349 PR c/111468
350 * gimple-parser.cc (c_parser_gimple_binary_expression): Add
351 return type argument.
352 (c_parser_gimple_statement): Adjust.
353 (c_parser_gimple_paren_condition): Likewise.
354 (c_parser_gimple_binary_expression): Use passed in return type,
355 add support for - as POINTER_DIFF_EXPR, __UN{LT,LE,GT,GE,EQ},
356 __UNORDERED and __ORDERED.
357
a1c20158
GA
3582023-09-12 Tobias Burnus <tobias@codesourcery.com>
359
360 * c-parser.cc (struct c_omp_loc_tree): New.
361 (c_check_omp_allocate_allocator_r): New; checking moved from ...
362 (c_parser_omp_allocate): ... here. Call it via walk_tree. Avoid
363 ICE with tree_to_shwi for invalid too-large value.
364
3652023-09-12 Tobias Burnus <tobias@codesourcery.com>
366
367 * c-parser.cc (c_parser_omp_construct): Move call to
368 c_parser_omp_allocate to ...
369 (c_parser_pragma): ... here.
370 (c_parser_omp_allocate): Avoid ICE is allocator could not be
371 parsed; set 'omp allocate' attribute for stack/automatic variables
372 and only reject static variables; add several additional
373 restriction checks.
374 * c-tree.h (c_mark_decl_jump_unsafe_in_current_scope): New prototype.
375 * c-decl.cc (decl_jump_unsafe): Return true for omp-allocated decls.
376 (c_mark_decl_jump_unsafe_in_current_scope): New.
377 (warn_about_goto, c_check_switch_jump_warnings): Add error for
378 omp-allocated decls.
379
3802023-09-12 Martin Uecker <uecker@tugraz.at>
381
382 * c-typeck.cc (struct comptypes_data): Add structure.
383 (tagged_types_tu_compatible_p,
384 function_types_compatible_p, type_lists_compatible_p,
385 comptypes_internal): Add structure to interface, change
386 return type to bool, and adapt calls.
387 (comptarget_types): Change return type too bool.
388 (comptypes, comptypes_check_enum_int,
389 comptypes_check_different_types): Adapt calls.
390
a134b6ce
GA
3912023-09-06 Jakub Jelinek <jakub@redhat.com>
392
393 PR c/102989
394 * c-decl.cc (finish_declspecs): Emit pedwarn_c11 on _BitInt.
395 * c-typeck.cc (c_common_type): Emit sorry for common type between
396 _Complex integer and larger _BitInt and return the _Complex integer.
397
3982023-09-06 Jakub Jelinek <jakub@redhat.com>
399
400 PR c/102989
401 * c-convert.cc (c_convert): Handle BITINT_TYPE like INTEGER_TYPE.
402 * c-decl.cc (check_bitfield_type_and_width): Allow BITINT_TYPE
403 bit-fields.
404 (finish_struct): Prefer to use BITINT_TYPE for BITINT_TYPE bit-fields
405 if possible.
406 (declspecs_add_type): Formatting fixes. Handle cts_bitint. Adjust
407 for added union in *specs. Handle RID_BITINT.
408 (finish_declspecs): Handle cts_bitint. Adjust for added union
409 in *specs.
410 * c-parser.cc (c_keyword_starts_typename, c_token_starts_declspecs,
411 c_parser_declspecs, c_parser_gnu_attribute_any_word): Handle
412 RID_BITINT.
413 (c_parser_omp_clause_schedule): Handle BITINT_TYPE like INTEGER_TYPE.
414 * c-tree.h (enum c_typespec_keyword): Mention _BitInt in comment.
415 Add cts_bitint enumerator.
416 (struct c_declspecs): Move int_n_idx and floatn_nx_idx into a union
417 and add bitint_prec there as well.
418 * c-typeck.cc (c_common_type, comptypes_internal):
419 Handle BITINT_TYPE.
420 (perform_integral_promotions): Promote BITINT_TYPE bit-fields to
421 their declared type.
422 (build_array_ref, build_unary_op, build_conditional_expr,
423 build_c_cast, convert_for_assignment, digest_init, build_binary_op):
424 Handle BITINT_TYPE.
425 * c-fold.cc (c_fully_fold_internal): Handle BITINT_TYPE like
426 INTEGER_TYPE.
427 * c-aux-info.cc (gen_type): Handle BITINT_TYPE.
428
4292023-09-06 Jakub Jelinek <jakub@redhat.com>
430
431 * c-decl.cc (declspecs_add_type): Use pedwarn_c11 rather than pedwarn
432 for _FloatN{,x} diagnostics and append " before C2X" to the diagnostic
433 text.
434
4388bc82
GA
4352023-09-05 Tobias Burnus <tobias@codesourcery.com>
436
437 * c-parser.cc (c_parser_omp_clause_allocate): Handle
438 error_mark_node.
439
b8863640
GA
4402023-08-25 Sandra Loosemore <sandra@codesourcery.com>
441
442 * c-parser.cc (struct c_parser): Add omp_for_parse_state field.
443 (struct omp_for_parse_data): New.
444 (check_omp_intervening_code): New.
445 (add_structured_block_stmt): New.
446 (c_parser_compound_statement_nostart): Recognize intervening code,
447 nested loops, and other things that need special handling in
448 OpenMP loop constructs.
449 (c_parser_while_statement): Error on loop in intervening code.
450 (c_parser_do_statement): Likewise.
451 (c_parser_for_statement): Likewise.
452 (c_parser_postfix_expression_after_primary): Error on calls to
453 the OpenMP runtime in intervening code.
454 (c_parser_pragma): Error on OpenMP pragmas in intervening code.
455 (c_parser_omp_loop_nest): New.
456 (c_parser_omp_for_loop): Rewrite to use recursive descent, calling
457 c_parser_omp_loop_nest to do the heavy lifting.
458
6d47c9b4
GA
4592023-08-24 Richard Sandiford <richard.sandiford@arm.com>
460
461 * c-parser.cc (c_parser_std_attribute): Conditionally allow
462 two colons to be used in place of ::.
463 (c_parser_std_attribute_list): New function, split out from...
464 (c_parser_std_attribute_specifier): ...here. Allow the attribute-list
465 to start with __extension__. When it does, also allow two colons
466 to be used in place of ::.
467
6cd85273
GA
4682023-08-22 Tobias Burnus <tobias@codesourcery.com>
469
470 * c-parser.cc (c_parser_omp_clause_defaultmap): Parse
471 'all' as category.
472
1eb2433f
GA
4732023-08-17 Jose E. Marchesi <jose.marchesi@oracle.com>
474
475 PR c/106537
476 * c-typeck.cc (build_binary_op): Warning on comparing distinct
477 pointer types only when -Wcompare-distinct-pointer-types.
478
b01e96f8
GA
4792023-08-15 Chung-Lin Tang <cltang@codesourcery.com>
480 Thomas Schwinge <thomas@codesourcery.com>
481
482 * c-parser.cc (OACC_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
483
886afed6
GA
4842023-08-11 Jakub Jelinek <jakub@redhat.com>
485
486 * c-parser.cc (c_parser_typeof_specifier): Handle
487 __typeof_unqual and __typeof_unqual__ as !is_std.
488
4892023-08-11 Martin Uecker <uecker@tugraz.at>
490
491 PR c/84510
492 * c-typeck.cc (build_c_cast): Add warning.
493
87b0749c
GA
4942023-08-05 Martin Uecker <uecker@tugraz.at>
495
496 * c-parser.cc (c_parser_generic_selection): Inhibit evaluation
497 warnings branches that are known not be taken during parsing.
498
5b42ee2c
GA
4992023-08-04 Tamar Christina <tamar.christina@arm.com>
500
501 * c-parser.cc (c_parser_while_statement, c_parser_do_statement,
502 c_parser_for_statement, c_parser_statement_after_labels,
503 c_parse_pragma_novector, c_parser_pragma): Wire through novector and
504 default to false.
505
4297a08e
GA
5062023-08-02 Eric Feng <ef2648@columbia.edu>
507
508 PR analyzer/107646
509 * c-parser.cc: New functions on stashing values for the
510 analyzer.
511
cf58b896
GA
5122023-08-01 Lewis Hyatt <lhyatt@gmail.com>
513
514 * c-parser.cc (pragma_lex_discard_to_eol): New function.
515 (c_init_preprocess): New function.
516
a2f31d79
GA
5172023-07-31 Hamza Mahfooz <someguy@effective-light.com>
518
519 PR c/65213
520 * c-decl.cc (start_decl): Handle
521 -Wmissing-variable-declarations.
522
5232023-07-31 Chung-Lin Tang <cltang@codesourcery.com>
524
525 * c-parser.cc (c_parser_oacc_host_data): Add checking requiring OpenACC
526 host_data construct to have an use_device clause.
527
14bfda60
GA
5282023-06-29 Qing Zhao <qing.zhao@oracle.com>
529
530 PR c/77650
531 * c-decl.cc (finish_struct): Issue warnings for new option.
532
5332023-06-29 Qing Zhao <qing.zhao@oracle.com>
534
535 * c-decl.cc (finish_struct): Set TYPE_INCLUDES_FLEXARRAY for
536 struct/union type.
537
5382023-06-29 Richard Biener <rguenther@suse.de>
539
540 PR c/110454
541 * c-typeck.cc (convert_argument): Sink formal_prec compute
542 to where TYPE_PRECISION is valid to use.
543
5442023-06-29 Eugene Rozenfeld <erozen@microsoft.com>
545
546 * Make-lang.in: Pass correct stage cc1 when processing
547 profile data collected while building target libraries
548
f10a4ce0
GA
5492023-06-16 David Malcolm <dmalcolm@redhat.com>
550
551 PR c/107583
552 * c-parser.cc (c_parser_declspecs): Add hints to "unknown type
553 name" error.
554
9d250bdb
GA
5552023-06-12 Tobias Burnus <tobias@codesourcery.com>
556
557 * c-parser.cc (c_parser_omp_clause_map): Reword error message for
558 clearness especially with 'omp target (enter/exit) data.'
559
4f0d4825
GA
5602023-06-06 Kwok Cheung Yeung <kcy@codesourcery.com>
561 Tobias Burnus <tobias@codesourcery.com>
562
563 * c-parser.cc (c_parser_omp_clause_defaultmap,
564 c_parser_omp_clause_map): Parse 'present'.
565 (c_parser_omp_clause_to, c_parser_omp_clause_from): Remove.
566 (c_parser_omp_clause_from_to): New; parse to/from clauses with
567 optional present modifer.
568 (c_parser_omp_all_clauses): Update call.
569 (c_parser_omp_target_data, c_parser_omp_target_enter_data,
570 c_parser_omp_target_exit_data): Handle new map enum values
571 for 'present' mapping.
572
df2762ac
GA
5732023-05-30 Tobias Burnus <tobias@codesourcery.com>
574
575 PR c/109999
576 * c-parser.cc (c_parser_oacc_all_clauses,
577 c_parser_omp_all_clauses): Improve error wording.
578
03c7c418
GA
5792023-05-23 Martin Uecker <uecker@tugraz.at>
580
581 PR c/109450
582 * c-decl.cc (add_decl_expr): New function.
583 (grokdeclarator): Add decl expr for size expression in
584 types pointed to by parameters declared as arrays.
585
5862023-05-23 Martin Uecker <uecker@tugraz.at>
587
588 PR c/70418
589 PR c/106465
590 PR c/107557
591 PR c/108423
592 * c-decl.cc (start_decl): Make sure size expression are
593 evaluated only in correct context.
594 (grokdeclarator): Size expression in fields may need a bind
595 expression, make sure DECL_EXPR is always created.
596 (grokfield, declspecs_add_type): Pass along size expressions.
597 (finish_struct): Remove unneeded DECL_EXPR.
598 (start_function): Evaluate size expressions for nested functions.
599 * c-parser.cc (c_parser_struct_declarations,
600 c_parser_struct_or_union_specifier): Pass along size expressions.
601 (c_parser_declaration_or_fndef): Evaluate size expression.
602 (c_parser_objc_at_property_declaration,
603 c_parser_objc_class_instance_variables): Adapt.
604 * c-tree.h (grokfield): Adapt declaration.
605
5df01f89
GA
6062023-05-19 Martin Uecker <uecker@tugraz.at>
607
608 * c-decl.cc (set_type_context): Remove.
609 (pop_scope, diagnose_mismatched_decls, pushdecl):
610 Remove dead code.
611 * c-typeck.cc (comptypes_internal): Remove dead code.
612 (same_translation_unit_p): Remove.
613 (tagged_types_tu_compatible_p): Some fixes.
614
6152023-05-19 Joseph Myers <joseph@codesourcery.com>
616
617 * c-decl.cc (diagnose_mismatched_decls): Do not handle
618 thread-local declarations as tentative definitions for C2x.
619 (finish_decl): Do not allow thread-local definition with
620 incomplete type for C2x.
621
b2776076
GA
6222023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
623
624 * c-convert.cc (c_convert): Ditto.
625 * c-decl.cc (merge_decls): Ditto.
626 * c-parser.cc (c_parser_omp_clause_reduction): Ditto.
627 (c_parser_omp_declare_reduction): Ditto.
628 * c-typeck.cc (build_component_ref): Ditto.
629 (convert_argument): Ditto.
630 (pointer_diff): Ditto.
631 (build_unary_op): Ditto.
632 (build_c_cast): Ditto.
633 (build_modify_expr): Ditto.
634 (store_init_value): Ditto.
635 (constexpr_init_fits_real_type): Ditto.
636 (check_constexpr_init): Ditto.
637 (c_finish_return): Ditto.
638 (handle_omp_array_sections_1): Ditto.
639 (c_finish_omp_clauses): Ditto.
640 * gimple-parser.cc (c_finish_gimple_return): Ditto.
641
0d566057
GA
6422023-05-16 Joseph Myers <joseph@codesourcery.com>
643
644 * c-decl.cc (check_for_loop_decls): Use pedwarn_c11 for
645 diagnostics.
646
3427b51b
GA
6472023-05-15 Joseph Myers <joseph@codesourcery.com>
648
649 * c-decl.cc (grokdeclarator): Ignore _Atomic on function return
650 type for C2x.
651
4d68c7f7
GA
6522023-04-30 Andrew Pinski <apinski@marvell.com>
653
654 * c-typeck.cc (process_init_element): Print out array type
655 for excessive elements.
656
6572023-04-30 Andrew Pinski <apinski@marvell.com>
658
659 PR c/107926
660 * c-typeck.cc (process_init_element): Move the check
661 for string cst until after the error message.
662
50205195
GA
6632023-04-28 Eugene Rozenfeld <erozen@microsoft.com>
664
665 * Make-lang.in: Merge perf data collected when compiling cc1 and runtime libraries
666
32a98ccd
GA
6672023-04-27 Jakub Jelinek <jakub@redhat.com>
668
669 PR c/109409
670 * c-parser.cc (c_parser_initializer): Move diagnostics about
671 initialization of variable sized object with non-empty initializer
672 after c_parser_expr_no_commas call and ret.set_error (); after it.
673
6742023-04-27 Jakub Jelinek <jakub@redhat.com>
675
676 PR c/107682
677 PR c/109412
678 * c-typeck.cc (pop_init_level): If constructor_type is FUNCTION_TYPE,
679 reject empty initializer as invalid.
680
4a3dbcbd
GA
6812023-04-26 Richard Biener <rguenther@suse.de>
682
683 * gimple-parser.cc (c_parser_parse_gimple_body): Avoid
684 last_stmt.
685
49cea02d
GA
6862023-04-25 Tobias Burnus <tobias@codesourcery.com>
687
688 * c-parser.cc (c_parser_omp_scan_loop_body): Handle
689 zero exec statements before/after 'omp scan'.
690
ce4e4f37
GA
6912023-04-20 Jakub Jelinek <jakub@redhat.com>
692
693 PR c/107041
694 * c-decl.cc (diagnose_mismatched_decls): Avoid -Wenum-int-mismatch
695 warning on acc_on_device declaration.
696
579cdc1e
GA
6972023-03-28 David Malcolm <dmalcolm@redhat.com>
698
699 PR c/107002
700 * c-typeck.cc (parser_build_binary_op): Update for new param of
701 check_for_xor_used_as_pow.
702
c8065441
GA
7032023-03-10 Jakub Jelinek <jakub@redhat.com>
704
705 PR c/108079
706 * c-decl.cc (pop_scope): Suppress OPT_Wunused_variable warning
707 after diagnosing it.
708
6f9e2f14
GA
7092023-02-28 Jakub Jelinek <jakub@redhat.com>
710
711 PR sanitizer/108894
712 * c-decl.cc (strict_flex_array_level_of): Move to c-common.cc
713 and rename to c_strict_flex_array_level_of.
714 (is_flexible_array_member_p): Adjust caller.
715
0263e9d5
GA
7162023-02-18 Martin Uecker <uecker@tugraz.at>
717
718 PR c/108375
719 * c-decl.cc (decl_jump_unsafe): Use c_type_variably_modified_p.
720 (diagnose_mismatched_decl): Dito.
721 (warn_about_goto): Dito:
722 (c_check_switch_jump_warnings): Dito.
723 (finish_decl): Dito.
724 (finish_struct): Dito.
725 (grokdeclarator): Set C_TYPE_VARIABLY_MODIFIED.
726 (finish_struct): Set C_TYPE_VARIABLY_MODIFIED.
727 * c-objc-common.cc (c_var_mod_p): New function.
728 (c_var_unspec_p): Remove.
729 * c-objc-common.h: Set lang hook.
730 * c-parser.cc (c_parser_declararion_or_fndef): Use c_type_variably_modified_p.
731 (c_parser_typeof_specifier): Dito.
732 (c_parser_has_attribute_expression): Dito.
733 (c_parser_generic_selection): Dito.
734 * c-tree.h: Define C_TYPE_VARIABLY_MODIFIED and define c_var_mode_p.
735 * c-typeck.cc: Remove c_vla_mod_p and use C_TYPE_VARIABLY_MODIFIED.
736
88cc4495
GA
7372023-02-16 Patrick Palka <ppalka@redhat.com>
738
739 * c-parser.h: Mechanically drop static from static inline
740 functions via s/^static inline/inline/g.
741
d7a47ed1
GA
7422023-02-10 Joseph Myers <joseph@codesourcery.com>
743
744 * c-convert.cc (c_convert): Allow conversion of a null pointer
745 constant to nullptr_t.
746 * c-typeck.cc (null_pointer_constant_p): Remove static.
747 (convert_for_assignment): Allow conversion of a null pointer
748 constant to nullptr_t.
749 (digest_init): Handle NULLPTR_TYPE among scalar conversions.
750 * c-tree.h (null_pointer_constant_p): Declare.
751
e92e2c96
GA
7522023-02-09 Tobias Burnus <tobias@codesourcery.com>
753
754 * c-parser.cc (c_parser_omp_allocate): Parse align
755 clause and check for restrictions.
756
f6fc79d0
GA
7572023-02-08 Joseph Myers <joseph@codesourcery.com>
758
759 * c-typeck.cc (check_constexpr_init): Remove argument
760 null_pointer_constant. Only check pointer initializers for being
761 null.
762 (digest_init): Update calls to check_constexpr_init.
763
a37a0cb3
GA
7642023-02-02 Joseph Myers <joseph@codesourcery.com>
765
766 * c-typeck.cc (build_binary_op): Allow comparisons between
767 pointers and nullptr_t values that are not null pointer constants.
768
7692023-02-02 Joseph Myers <joseph@codesourcery.com>
770
771 * c-typeck.cc: Include "realmpfr.h".
772 (constexpr_init_fits_real_type): Do not allow signaling NaN
773 conversions to different types with the same mode. Handle
774 conversions from binary to decimal types.
775 (check_constexpr_init): Do not disallow real initializers for
776 complex types. Do not disallow binary initializers for decimal
777 floating types.
778
317525b0
GA
7792023-01-31 Marek Polacek <polacek@redhat.com>
780
781 PR c++/107593
782 PR c++/108597
783 * c-objc-common.cc (instantiation_dependent_expression_p): New.
784
338eb0f0
GA
7852023-01-27 Joseph Myers <joseph@codesourcery.com>
786
787 * c-parser.cc (c_parser_declaration_or_fndef): Do not allow braces
788 around auto initializer.
789
f457a62e
GA
7902023-01-16 Jakub Jelinek <jakub@redhat.com>
791
792 PR c++/105593
793 * c-parser.cc (c_parser_initializer): Check warning_enabled_at
794 at the DECL_SOURCE_LOCATION (decl) for OPT_Winit_self instead
795 of warn_init_self.
796
5013c3bb
GA
7972023-01-14 Jakub Jelinek <jakub@redhat.com>
798
799 PR c++/108365
800 * c-typeck.cc (build_binary_op): Use may_shorten_divmod for integral
801 division or modulo.
802
8032023-01-13 Qing Zhao <qing.zhao@oracle.com>
804
805 * c-decl.cc (strict_flex_array_level_of): ... here.
806
81ed98bc
GA
8072023-01-11 Jakub Jelinek <jakub@redhat.com>
808
809 PR c/105972
810 * c-parser.cc (c_parser_declaration_or_fndef): Disable debug non-bind
811 markers for K&R function parameter declarations of nested functions.
812
84723aca
GA
8132023-01-09 Joseph Myers <joseph@codesourcery.com>
814
815 * c-decl.cc (build_compound_literal): Call record_inline_static.
816
d808db1f
GA
8172023-01-06 Joseph Myers <joseph@codesourcery.com>
818
819 * c-parser.cc (c_parser_postfix_expression): Handle integer
820 generic arguments to functions passed to __builtin_tgmath as
821 _Float32x if any argument has _FloatNx or _Complex _FloatNx type.
822 Do not handle integer arguments to some narrowing functions as
823 _Float64.
824
d2ef2327
GA
8252022-12-19 Jakub Jelinek <jakub@redhat.com>
826
827 PR c/108043
828 * c-parser.cc (c_parser_postfix_expression_after_paren_type): Diagnose
829 compound literals with function type.
830
4bc2d9f6
GA
8312022-12-07 Joseph Myers <joseph@codesourcery.com>
832
833 * c-decl.cc (declspecs_add_type, declspecs_add_scspec): Check for
834 auto, constexpr and a type used together.
835
3fe66f7f
GA
8362022-12-06 Qing Zhao <qing.zhao@oracle.com>
837
838 * c-decl.cc (is_flexible_array_member_p): Call new function
839 strict_flex_array_level_of.
840
9a1b4f1d
GA
8412022-11-24 Florian Weimer <fweimer@redhat.com>
842
843 PR c/107805
844 * c-decl.cc (declspecs_add_type): Propagate error_mark_bode
845 from type to specs.
846
add89840
GA
8472022-11-17 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
848
849 * c-decl.cc (start_function): Set the result decl source
850 location to the location of the typespec.
851
8522022-11-17 David Malcolm <dmalcolm@redhat.com>
853
854 PR analyzer/107711
855 * c-parser.cc (ana::c_translation_unit::consider_macro): Pass NULL
856 to cpp_create_reader, rather than ident_hash, so that the new
857 reader gets its own hash table.
858
cdc34229
GA
8592022-11-15 David Malcolm <dmalcolm@redhat.com>
860
861 PR analyzer/106302
862 * c-parser.cc: Include "analyzer/analyzer-language.h" and "toplev.h".
863 (class ana::c_translation_unit): New.
864 (c_parser_translation_unit): Call ana::on_finish_translation_unit.
865
30d77d49
GA
8662022-11-12 Joseph Myers <joseph@codesourcery.com>
867
868 * c-decl.cc (start_underspecified_init)
869 (finish_underspecified_init): Handle name == NULL_TREE for
870 compound literals.
871 (merge_decls): Merge C_DECL_DECLARED_CONSTEXPR.
872 (shadow_tag_warned): Check for constexpr.
873 (start_decl): Add parameter do_push.
874 (build_compound_literal): Set C_DECL_DECLARED_CONSTEXPR.
875 (grokdeclarator): Handle constexpr.
876 (finish_struct): Set C_TYPE_FIELDS_NON_CONSTEXPR.
877 (declspecs_add_scspec): Handle constexpr.
878 * c-parser.cc (c_token_starts_compound_literal)
879 (c_token_starts_declspecs, c_parser_declaration_or_fndef)
880 (c_parser_declspecs, c_parser_gnu_attribute_any_word)
881 (c_parser_compound_literal_scspecs)
882 (c_parser_postfix_expression_after_paren_type): Handle constexpr.
883 Update calls to start_init.
884 (c_parser_declaration_or_fndef, c_parser_initializer)
885 (c_parser_initval): Pass true for new argument of
886 convert_lvalue_to_rvalue. Call convert_lvalue_to_rvalue for
887 constexpr compound literals.
888 (c_parser_static_assert_declaration_no_semi)
889 (c_parser_enum_specifier, c_parser_struct_declaration)
890 (c_parser_alignas_specifier, c_parser_initelt, c_parser_label):
891 Call convert_lvalue_to_rvalue on expressions required to be
892 integer constant expressions.
893 (c_parser_omp_declare_reduction): Update call to start_init.
894 * c-tree.h (C_TYPE_FIELDS_NON_CONSTEXPR)
895 (C_DECL_DECLARED_CONSTEXPR): New macros.
896 (struct c_declspecs): Add constexpr_p.
897 (start_decl, convert_lvalue_to_rvalue, start_init): Update
898 prototypes.
899 * c-typeck.cc (require_constant_value, require_constant_elements):
900 Change to bool.
901 (require_constexpr_value, maybe_get_constexpr_init)
902 (constexpr_init_fits_real_type, check_constexpr_init): New.
903 (convert_lvalue_to_rvalue): Add new parameter for_init. Call
904 maybe_get_constexpr_init.
905 (store_init_value): Update call to digest_init.
906 (digest_init): Add parameters int_const_expr, arith_const_expr and
907 require_constexpr. Check constexpr initializers.
908 (constructor_top_level): Remove.
909 (struct initializer_stack): Remove top_level. Add
910 require_constexpr_value.
911 (start_init): Remove parameter top_level. Add parameters
912 init_require_constant and init_require_constexpr. Save
913 require_constexpr_value on stack.
914 (pop_init_level): Use a null pointer constant for zero initializer
915 of pointer initialized with {}.
916 (output_init_element): Update call to digest_init. Avoid passing
917 null pointer constants of pointer type through digest_init a
918 second time when initializing a constexpr object.
919
d29260ce
GA
9202022-11-03 Joseph Myers <joseph@codesourcery.com>
921
922 * c-decl.cc (in_underspecified_init, start_underspecified_init)
923 (finish_underspecified_init): New.
924 (shadow_tag_warned, parser_xref_tag, start_struct, start_enum):
925 Give errors inside initializers of underspecified declarations.
926 (grokdeclarator): Handle (erroneous) case of C2X auto on a
927 parameter.
928 (declspecs_add_type): Handle c2x_auto_p case.
929 (declspecs_add_scspec): Handle auto possibly setting c2x_auto_p in
930 C2X mode.
931 (finish_declspecs): Handle c2x_auto_p.
932 * c-parser.cc (c_parser_declaration_or_fndef): Handle C2X auto.
933 * c-tree.h (C_DECL_UNDERSPECIFIED): New macro.
934 (struct c_declspecs): Add c2x_auto_p.
935 (start_underspecified_init, finish_underspecified_init): New
936 prototypes.
937 * c-typeck.cc (build_external_ref): Give error for underspecified
938 declaration referenced in its initializer.
939
3055829a
GA
9402022-10-28 Joseph Myers <joseph@codesourcery.com>
941
942 * c-decl.cc (grokdeclarator): Pass
943 arg_info->no_named_args_stdarg_p to build_function_type.
944 (grokparms): Check arg_info->no_named_args_stdarg_p before
945 converting () to (void).
946 (build_arg_info): Initialize no_named_args_stdarg_p.
947 (get_parm_info): Set no_named_args_stdarg_p.
948 (start_function): Pass TYPE_NO_NAMED_ARGS_STDARG_P to
949 build_function_type.
950 (store_parm_decls): Count (...) functions as prototyped.
951 * c-parser.cc (c_parser_direct_declarator): Allow '...' after open
952 parenthesis to start parameter list.
953 (c_parser_parms_list_declarator): Always allow '...' with no
954 arguments, call pedwarn_c11 and set no_named_args_stdarg_p.
955 * c-tree.h (struct c_arg_info): Add field no_named_args_stdarg_p.
956 * c-typeck.cc (composite_type): Handle
957 TYPE_NO_NAMED_ARGS_STDARG_P.
958 (function_types_compatible_p): Compare
959 TYPE_NO_NAMED_ARGS_STDARG_P.
960
9612022-10-28 Jakub Jelinek <jakub@redhat.com>
962
963 * c-parser.cc (c_parser_omp_all_clauses): Allow optional
964 comma before the first clause.
965 (c_parser_omp_allocate, c_parser_omp_atomic, c_parser_omp_depobj,
966 c_parser_omp_flush, c_parser_omp_scan_loop_body,
967 c_parser_omp_ordered, c_finish_omp_declare_variant,
968 c_parser_omp_declare_target, c_parser_omp_declare_reduction,
969 c_parser_omp_requires, c_parser_omp_error,
970 c_parser_omp_assumption_clauses): Likewise.
971
9722022-10-28 Joseph Myers <joseph@codesourcery.com>
973
974 PR c/61469
975 * c-convert.cc (c_convert): Handle enums with underlying boolean
976 type like bool.
977 * c-decl.cc (shadow_tag_warned): Allow shadowing declarations for
978 enums with enum type specifier, but give errors for storage class
979 specifiers, qualifiers or alignment specifiers in non-definition
980 declarations of such enums.
981 (grokdeclarator): Give error for non-definition use of type
982 specifier with an enum type specifier.
983 (parser_xref_tag): Add argument has_enum_type_specifier. Pass it
984 to lookup_tag and use it to set ENUM_FIXED_UNDERLYING_TYPE_P.
985 (xref_tag): Update call to parser_xref_tag.
986 (start_enum): Add argument fixed_underlying_type. Complete enum
987 type with a fixed underlying type given in the definition. Give
988 error for defining without a fixed underlying type in the
989 definition if one was given in a prior declaration. Do not mark
990 enums with fixed underlying type as packed for -fshort-enums.
991 Store the enum type in the_enum.
992 (finish_enum): Do not adjust types of values or check their range
993 for an enum with a fixed underlying type. Set underlying type of
994 enum and variants.
995 (build_enumerator): Check enumeration constants for enum with
996 fixed underlying type against that type and convert to that type.
997 Increment in the underlying integer type, with handling for bool.
998 (c_simulate_enum_decl): Update call to start_enum.
999 (declspecs_add_type): Set specs->enum_type_specifier_ref_p.
1000 * c-objc-common.cc (c_get_alias_set): Use ENUM_UNDERLYING_TYPE
1001 rather than recomputing an underlying type based on size.
1002 * c-parser.cc (c_parser_declspecs)
1003 (c_parser_struct_or_union_specifier, c_parser_typeof_specifier):
1004 Set has_enum_type_specifier for type specifiers.
1005 (c_parser_enum_specifier): Handle enum type specifiers.
1006 (c_parser_struct_or_union_specifier): Update call to
1007 parser_xref_tag.
1008 (c_parser_omp_atomic): Check for boolean increment or decrement
1009 using C_BOOLEAN_TYPE_P.
1010 * c-tree.h (C_BOOLEAN_TYPE_P): New.
1011 (struct c_typespec): Add has_enum_type_specifier.
1012 (struct c_declspecs): Add enum_type_specifier_ref_p.
1013 (struct c_enum_contents): Add enum_type.
1014 (start_enum, parser_xref_tag): Update prototypes.
1015 * c-typeck.cc (composite_type): Allow for enumerated types
1016 compatible with bool.
1017 (common_type, comptypes_internal, perform_integral_promotions):
1018 Use ENUM_UNDERLYING_TYPE.
1019 (parser_build_binary_op, build_unary_op, convert_for_assignment)
1020 (c_finish_return, c_start_switch, build_binary_op): Check for
1021 boolean types using C_BOOLEAN_TYPE_P.
1022
4e939ae1
GA
10232022-10-24 Jakub Jelinek <jakub@redhat.com>
1024
1025 PR c++/107358
1026 * c-typeck.cc (build_binary_op): Pass operands before excess precision
1027 promotions to scalar_to_vector call.
1028
10292022-10-24 Arsen Arsenović <arsen@aarsen.me>
1030
1031 * c-decl.cc (finish_function): Ignore hosted when deciding
1032 whether to implicitly return zero, but check noreturn.
1033 * c-objc-common.cc (c_missing_noreturn_ok_p): Loosen the
1034 requirements to just MAIN_NAME_P when hosted, or `int main'
1035 otherwise.
1036
47a6ae56
GA
10372022-10-20 Richard Biener <rguenther@suse.de>
1038
1039 PR c/107305
1040 PR c/107306
1041 * gimple-parser.cc (c_parser_parse_gimple_body): Verify
1042 the parsed IL and zap the body on error.
1043
21de009f
GA
10442022-10-18 Joseph Myers <joseph@codesourcery.com>
1045
1046 PR c/107164
1047 * c-decl.cc (shadow_tag_warned): If pedantic, diagnose "enum tag;"
1048 with previous declaration visible.
1049
10502022-10-18 Joseph Myers <joseph@codesourcery.com>
1051
1052 PR c/36113
1053 * c-decl.cc (finish_enum): If any enumerators do not fit in int,
1054 convert all to the type of the enumeration. pedwarn if no integer
1055 type fits all enumerators and default to
1056 widest_integer_literal_type_node in that case. Otherwise pedwarn
1057 for type wider than intmax_t.
1058 (build_enumerator): pedwarn for enumerators outside the range of
1059 uintmax_t or intmax_t, and otherwise use pedwarn_c11 for
1060 enumerators outside the range of int. On overflow, attempt to
1061 find a wider type that can hold the value of the next enumerator.
1062 Do not convert value to type determined with
1063 c_common_type_for_size.
1064
baeec7cc
GA
10652022-10-14 Jakub Jelinek <jakub@redhat.com>
1066
1067 * c-typeck.cc (convert_arguments): Don't promote __bf16 to
1068 double.
1069
10702022-10-14 Joseph Myers <joseph@codesourcery.com>
1071
1072 * c-decl.cc (build_compound_literal): Add parameter scspecs.
1073 Handle storage class specifiers.
1074 * c-parser.cc (c_token_starts_compound_literal)
1075 (c_parser_compound_literal_scspecs): New.
1076 (c_parser_postfix_expression_after_paren_type): Add parameter
1077 scspecs. Call pedwarn_c11 for use of storage class specifiers.
1078 Update call to build_compound_literal.
1079 (c_parser_cast_expression, c_parser_sizeof_expression)
1080 (c_parser_alignof_expression): Handle storage class specifiers for
1081 compound literals. Update calls to
1082 c_parser_postfix_expression_after_paren_type.
1083 (c_parser_postfix_expression): Update syntax comment.
1084 * c-tree.h (build_compound_literal): Update prototype.
1085 * c-typeck.cc (c_mark_addressable): Diagnose taking address of
1086 register compound literal.
1087
9ff6c33e
GA
10882022-10-07 Qing Zhao <qing.zhao@oracle.com>
1089
1090 * c-decl.cc (flexible_array_member_type_p): New function.
1091 (one_element_array_type_p): Likewise.
1092 (zero_length_array_type_p): Likewise.
1093 (add_flexible_array_elts_to_size): Call new utility
1094 routine flexible_array_member_type_p.
1095 (is_flexible_array_member_p): New function.
1096 (finish_struct): Set the new DECL_NOT_FLEXARRAY flag.
1097
629d04d3
GA
10982022-10-06 Joseph Myers <joseph@codesourcery.com>
1099
1100 * c-parser.cc (c_parse_init): Add D_EXT11 to mask if flag_no_asm
1101 and not C2x.
1102 (c_keyword_starts_typename, c_token_starts_declspecs)
1103 (c_parser_declspecs, c_parser_objc_selector): Handle
1104 RID_TYPEOF_UNQUAL.
1105 (c_parser_typeof_specifier): Handle RID_TYPEOF_UNQUAL.
1106 Distinguish typeof for C2x from __typeof__ for all standard
1107 versions and typeof before C2x.
1108 * c-typeck.cc (build_function_call_vec): Use unqualified version
1109 of non-void return type.
1110 (build_unary_op): Use unqualified type for increment and
1111 decrement.
1112
11132022-10-06 Jakub Jelinek <jakub@redhat.com>
1114
1115 * c-parser.cc (c_parser_omp_assumption_clauses): Emit IFN_ASSUME
1116 call for holds clause on assume construct.
1117
11182022-10-06 Jakub Jelinek <jakub@redhat.com>
1119
1120 PR c++/106654
1121 * c-parser.cc (handle_assume_attribute): New function.
1122 (c_parser_declaration_or_fndef): Handle assume attribute.
1123 (c_parser_attribute_arguments): Add assume_attr argument,
1124 if true, parse first argument as conditional expression.
1125 (c_parser_gnu_attribute, c_parser_std_attribute): Adjust
1126 c_parser_attribute_arguments callers.
1127 (c_parser_statement_after_labels) <case RID_ATTRIBUTE>: Handle
1128 assume attribute.
1129
85872a69
GA
11302022-10-04 Jakub Jelinek <jakub@redhat.com>
1131
1132 * c-lang.h (struct c_omp_declare_target_attr): New type.
1133 (current_omp_declare_target_attribute): Change type from
1134 int to vec<c_omp_declare_target_attr, va_gc> *.
1135 * c-parser.cc (c_parser_translation_unit): Adjust for that change.
1136 If last pushed directive was begin declare target, use different
1137 wording and simplify format strings for easier translations.
1138 (c_parser_omp_clause_device_type): Uncomment
1139 check_no_duplicate_clause call.
1140 (c_parser_omp_declare_target): Adjust for the
1141 current_omp_declare_target_attribute type change, push { -1 }.
1142 Use error_at rather than warning_at for declare target with
1143 only device_type clauses.
1144 (OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK): Define.
1145 (c_parser_omp_begin): Add begin declare target support.
1146 (c_parser_omp_end): Adjust for the
1147 current_omp_declare_target_attribute type change, adjust
1148 diagnostics wording and simplify format strings for easier
1149 translations.
1150 * c-decl.cc (current_omp_declare_target_attribute): Change type from
1151 int to vec<c_omp_declare_target_attr, va_gc> *.
1152 (c_decl_attributes): Adjust for the
1153 current_omp_declare_target_attribute type change. If device_type
1154 was present on begin declare target, add "omp declare target host"
1155 and/or "omp declare target nohost" attributes.
1156
bbdcdf5c
GA
11572022-09-29 Joseph Myers <joseph@codesourcery.com>
1158
1159 * c-decl.cc (handle_std_noreturn_attribute): New function.
1160 (std_attribute_table): Add _Noreturn and noreturn.
1161
1f16a020
GA
11622022-09-27 Jakub Jelinek <jakub@redhat.com>
1163
1164 * c-lang.h (current_omp_begin_assumes): Declare.
1165 * c-parser.cc: Include bitmap.h.
1166 (c_parser_omp_end_declare_target): Rename to ...
1167 (c_parser_omp_end): ... this. Handle also end assumes.
1168 (c_parser_omp_begin, c_parser_omp_assumption_clauses,
1169 c_parser_omp_assumes, c_parser_omp_assume): New functions.
1170 (c_parser_translation_unit): Also diagnose #pragma omp begin assumes
1171 without corresponding #pragma omp end assumes.
1172 (c_parser_pragma): Use %s in may only be used at file scope
1173 diagnostics to decrease number of translatable messages. Handle
1174 PRAGMA_OMP_BEGIN and PRAGMA_OMP_ASSUMES. Handle PRAGMA_OMP_END
1175 rather than PRAGMA_OMP_END_DECLARE_TARGET and call c_parser_omp_end
1176 for it rather than c_parser_omp_end_declare_target.
1177 (c_parser_omp_construct): Handle PRAGMA_OMP_ASSUME.
1178 * c-decl.cc (current_omp_begin_assumes): Define.
1179
28a61ecd
GA
11802022-09-24 Jakub Jelinek <jakub@redhat.com>
1181
1182 PR c/106981
1183 * c-typeck.cc (c_tree_equal): Only strip NON_LVALUE_EXPRs at the
1184 start. For CONSTANT_CLASS_P or CASE_CONVERT: return false if t1 and
1185 t2 have different types.
1186
279c6715
GA
11872022-09-22 David Malcolm <dmalcolm@redhat.com>
1188
1189 PR c/106830
1190 * c-parser.cc (c_parser_initelt): Initialize m_decimal.
1191 (c_parser_cast_expression): Likewise.
1192 (c_parser_alignof_expression): Likewise.
1193 (c_parser_postfix_expression_after_paren_type): Likewise.
1194 (c_parser_postfix_expression_after_primary): Likewise.
1195 (c_parser_expression): Likewise.
1196 (c_parser_omp_variable_list): Likewise.
1197 (c_parser_transaction_expression): Likewise.
1198 * c-tree.h (c_expr::set_error): Likewise.
1199 * c-typeck.cc (c_expr_sizeof_expr): Likewise.
1200 (parser_build_unary_op): Likewise.
1201 (parser_build_binary_op): Likewise.
1202 (digest_init): Likewise.
1203 (pop_init_level): Likewise.
1204 * gimple-parser.cc (c_parser_gimple_call_internal): Likewise.
1205
43be56c4
GA
12062022-09-19 Marek Polacek <polacek@redhat.com>
1207
1208 PR c/106947
1209 * c-typeck.cc (maybe_warn_for_null_address): Don't emit stray
1210 notes.
1211
d0fc05e8
GA
12122022-09-15 Richard Biener <rguenther@suse.de>
1213
1214 * c-decl.cc (build_void_list_node): Remove.
1215
ff822367
GA
12162022-09-14 Julian Brown <julian@codesourcery.com>
1217
1218 * c-typeck.cc (c_finish_omp_clauses): Remove whole mapping node group
1219 on error.
1220
fe2a8ce9
GA
12212022-09-07 Joseph Myers <joseph@codesourcery.com>
1222
1223 * c-parser.cc (c_parser_static_assert_declaration_no_semi)
1224 (c_parser_alignas_specifier, c_parser_alignof_expression): Allow
1225 for C2x spellings of keywords.
1226 (c_parser_postfix_expression): Handle RID_TRUE and RID_FALSE.
1227
25aeb922
GA
12282022-09-06 Jakub Jelinek <jakub@redhat.com>
1229
1230 * c-parser.cc (c_parser_omp_clause_doacross_sink): Don't verify val
1231 in omp_cur_iteration - 1 has integer_type_node type.
1232
83f2f228
GA
12332022-09-03 Jakub Jelinek <jakub@redhat.com>
1234
1235 * c-parser.cc (c_parser_omp_clause_name): Handle doacross.
1236 (c_parser_omp_clause_depend_sink): Renamed to ...
1237 (c_parser_omp_clause_doacross_sink): ... this. Add depend_p argument.
1238 Handle parsing of doacross(sink:omp_cur_iteration-1). Use
1239 OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
1240 OMP_CLAUSE_DEPEND_SINK_NEGATIVE, build OMP_CLAUSE_DOACROSS instead
1241 of OMP_CLAUSE_DEPEND and set OMP_CLAUSE_DOACROSS_DEPEND flag on it.
1242 (c_parser_omp_clause_depend): Use OMP_CLAUSE_DOACROSS_SINK and
1243 OMP_CLAUSE_DOACROSS_SOURCE instead of OMP_CLAUSE_DEPEND_SINK and
1244 OMP_CLAUSE_DEPEND_SOURCE, build OMP_CLAUSE_DOACROSS for depend(source)
1245 and set OMP_CLAUSE_DOACROSS_DEPEND on it.
1246 (c_parser_omp_clause_doacross): New function.
1247 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DOACROSS.
1248 (c_parser_omp_depobj): Use OMP_CLAUSE_DEPEND_INVALID instead of
1249 OMP_CLAUSE_DEPEND_SOURCE.
1250 (c_parser_omp_for_loop): Don't diagnose here linear clause together
1251 with ordered with argument.
1252 (c_parser_omp_simd): Don't diagnose ordered clause with argument on
1253 for simd.
1254 (OMP_ORDERED_DEPEND_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_DOACROSS.
1255 (c_parser_omp_ordered): Handle also doacross and adjust for it
1256 diagnostic wording.
1257 * c-typeck.cc (c_finish_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
1258 Don't handle OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.
1259
c64b0947
GA
12602022-09-02 David Malcolm <dmalcolm@redhat.com>
1261
1262 PR c/90885
1263 * c-parser.cc (c_parser_string_literal): Clear ret.m_decimal.
1264 (c_parser_expr_no_commas): Likewise.
1265 (c_parser_conditional_expression): Likewise.
1266 (c_parser_binary_expression): Clear m_decimal when popping the
1267 stack.
1268 (c_parser_unary_expression): Clear ret.m_decimal.
1269 (c_parser_has_attribute_expression): Likewise for result.
1270 (c_parser_predefined_identifier): Likewise for expr.
1271 (c_parser_postfix_expression): Likewise for expr.
1272 Set expr.m_decimal when handling a CPP_NUMBER that was a decimal
1273 token.
1274 * c-tree.h (c_expr::m_decimal): New bitfield.
1275 * c-typeck.cc (parser_build_binary_op): Clear result.m_decimal.
1276 (parser_build_binary_op): Call check_for_xor_used_as_pow.
1277
bb0a1556
GA
12782022-09-01 Joseph Myers <joseph@codesourcery.com>
1279
1280 * c-decl.cc (grokparms): Handle () in a function declaration the
1281 same as (void) for C2X.
1282
542c60c4
GA
12832022-08-31 Joseph Myers <joseph@codesourcery.com>
1284
1285 * c-parser.cc (c_parser_label): Pass attributes to do_case.
1286 * c-typeck.cc (do_case): Add argument ATTRS. Pass it to
1287 c_add_case_label.
1288
16f542d6
GA
12892022-08-26 Jakub Jelinek <jakub@redhat.com>
1290
1291 * c-typeck.cc (convert_arguments): Handle BUILT_IN_ISSIGNALING.
1292
5d4389dc
GA
12932022-08-25 Marek Polacek <polacek@redhat.com>
1294
1295 * c-convert.cc (c_convert) <case POINTER_TYPE>: Handle NULLPTR_TYPE.
1296 Give a better diagnostic when converting to nullptr_t.
1297 * c-decl.cc (c_init_decl_processing): Perform C-specific nullptr
1298 initialization.
1299 * c-parser.cc (c_parse_init): Maybe OR D_C2X into mask.
1300 (c_parser_postfix_expression): Handle RID_NULLPTR.
1301 * c-typeck.cc (null_pointer_constant_p): Return true when expr is
1302 nullptr_node.
1303 (build_unary_op) <case TRUTH_NOT_EXPR>: Handle NULLPTR_TYPE.
1304 (build_conditional_expr): Handle the case when the second/third operand
1305 is NULLPTR_TYPE and third/second operand is POINTER_TYPE.
1306 (convert_for_assignment): Handle converting an expression of type
1307 nullptr_t to pointer/bool.
1308 (build_binary_op) <case TRUTH_XOR_EXPR>: Handle NULLPTR_TYPE.
1309 <case EQ_EXPR>: Handle comparing operands of type nullptr_t.
1310
13112022-08-25 Joseph Myers <joseph@codesourcery.com>
1312
1313 * c-decl.cc (start_decl): Do not diagnose initialization of
1314 variable-sized objects here.
1315 * c-parser.cc (c_parser_braced_init): Add argument DECL. All
1316 callers changed.
1317 (c_parser_initializer): Diagnose initialization of variable-sized
1318 objects other than with braced initializer.
1319 (c_parser_braced_init): Use pedwarn_c11 for empty initializer
1320 braces and update diagnostic text. Diagnose initialization of
1321 variable-sized objects with nonempty braces.
1322 * c-typeck.cc (digest_init): Update diagnostic for initialization
1323 of variable-sized objects.
1324 (really_start_incremental_init, set_designator)
1325 (process_init_element): Update comments.
1326 (pop_init_level): Allow scalar empty initializers.
1327
0342f034
GA
13282022-08-17 Tobias Burnus <tobias@codesourcery.com>
1329 Chung-Lin Tang <cltang@codesourcery.com>
1330
1331 PR c++/104493
1332 * c-decl.cc (c_decl_attributes, finish_decl): Call omp_mappable_type
1333 instead of removed langhook.
1334 * c-typeck.cc (c_finish_omp_clauses): Likewise.
1335
5cd525f0
GA
13362022-08-11 Marek Polacek <polacek@redhat.com>
1337
1338 PR middle-end/102633
1339 * c-parser.cc (c_parser_initializer): Add new tree parameter. Use it.
1340 Call suppress_warning.
1341 (c_parser_declaration_or_fndef): Pass d down to c_parser_initializer.
1342 (c_parser_omp_declare_reduction): Pass omp_priv down to
1343 c_parser_initializer.
1344
5f17badb
GA
13452022-08-08 Tom Honermann <tom@honermann.net>
1346
1347 * c-parser.cc (c_parser_string_literal): Use char8_t as the type
1348 of CPP_UTF8STRING when char8_t support is enabled.
1349 * c-typeck.cc (digest_init): Allow initialization of an array
1350 of character type by a string literal with type array of
1351 char8_t.
1352
32510382
GA
13532022-08-01 David Malcolm <dmalcolm@redhat.com>
1354
1355 * c-typeck.cc (build_c_cast): Quote names of address spaces in
1356 diagnostics.
1357 (convert_for_assignment): Add a note to address space mismatch
1358 diagnostics, specifying the expected and actual types.
1359
b53ebbc5
GA
13602022-07-10 Lewis Hyatt <lhyatt@gmail.com>
1361
1362 PR preprocessor/97498
1363 * c-parser.cc (c_parser_pragma): Set input_location to the
1364 location of the pragma, rather than the start of the line.
1365
8467574d
GA
13662022-07-04 Tobias Burnus <tobias@codesourcery.com>
1367 Chung-Lin Tang <cltang@codesourcery.com>
1368 Thomas Schwinge <thomas@codesourcery.com>
1369
1370 * c-parser.cc (c_parser_omp_target_data, c_parser_omp_target_update,
1371 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Set
1372 OMP_REQUIRES_TARGET_USED.
1373 (c_parser_omp_requires): Remove sorry.
1374
ed974488
GA
13752022-07-01 Tobias Burnus <tobias@codesourcery.com>
1376
1377 * c-parser.cc (c_parser_omp_target_enter_data,
1378 c_parser_omp_target_exit_data): Accept tofrom
1379 map-type modifier but use 'to' / 'from' internally.
1380
bc7e9f76
GA
13812022-06-16 David Malcolm <dmalcolm@redhat.com>
1382
1383 * c-decl.cc (implicitly_declare): Add auto_diagnostic_group to
1384 group the warning with any note.
1385 (warn_about_goto): Likewise to group error or warning with note.
1386 Bail out if the warning wasn't emitted, to avoid emitting orphan
1387 notes.
1388 (lookup_label_for_goto): Add auto_diagnostic_group to
1389 group the error with the note.
1390 (check_earlier_gotos): Likewise.
1391 (c_check_switch_jump_warnings): Likewise for any error/warning.
1392 Conditionalize emission of the notes.
1393 (diagnose_uninitialized_cst_member): Likewise for warning,
1394 conditionalizing emission of the note.
1395 (grokdeclarator): Add auto_diagnostic_group to group the "array
1396 type has incomplete element type" error with any note.
1397 (parser_xref_tag): Add auto_diagnostic_group to group warnings
1398 with their notes. Conditionalize emission of notes.
1399 (start_struct): Add auto_diagnostic_group to group the
1400 "redefinition of" errors with any note.
1401 (start_enum): Likewise for "redeclaration of %<enum %E%>" error.
1402 (check_for_loop_decls): Likewise for pre-C99 error.
1403
445ba599
GA
14042022-06-07 Jakub Jelinek <jakub@redhat.com>
1405
1406 * c-parser.cc (c_parser_omp_clause_linear): Parse OpenMP 5.2
1407 style linear clause modifiers. Set
1408 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER flag on the clauses when
1409 old style modifiers are used.
1410 * c-typeck.cc (c_finish_omp_clauses): Only reject linear clause
1411 with val modifier on simd or for if the old style modifiers are
1412 used.
1413
b168441c
GA
14142022-06-02 David Malcolm <dmalcolm@redhat.com>
1415
1416 * c-lang.cc (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): Redefine.
1417 (c_get_sarif_source_language): New.
1418 * c-tree.h (c_get_sarif_source_language): New decl.
1419
820ead45
GA
14202022-05-31 Jason Merrill <jason@redhat.com>
1421
1422 * Make-lang.in (c.tags): Look at *.cc.
1423
14242022-05-31 Jakub Jelinek <jakub@redhat.com>
1425
1426 * c-parser.cc (OMP_SCOPE_CLAUSE_MASK): Add firstprivate and allocate
1427 clauses.
1428
37b3b5da
GA
14292022-05-28 Jakub Jelinek <jakub@redhat.com>
1430
1431 * c-parser.cc (c_parser_omp_declare_target): If OMP_CLAUSE_LINK was
1432 seen first, use "%<to%>" or "%<enter%>" depending on
1433 OMP_CLAUSE_ENTER_TO of the current clause, otherwise use
1434 "%<to%> or %<enter%>" wording.
1435
d9176e64
GA
14362022-05-27 Jakub Jelinek <jakub@redhat.com>
1437
1438 * c-parser.cc (c_parser_omp_clause_name): Parse enter clause.
1439 (c_parser_omp_all_clauses): For to clause on declare target, use
1440 OMP_CLAUSE_ENTER clause with OMP_CLAUSE_ENTER_TO instead of
1441 OMP_CLAUSE_TO_DECLARE clause. Handle PRAGMA_OMP_CLAUSE_ENTER.
1442 (OMP_DECLARE_TARGET_CLAUSE_MASK): Add enter clause.
1443 (c_parser_omp_declare_target): Use OMP_CLAUSE_ENTER instead of
1444 OMP_CLAUSE_TO_DECLARE.
1445 * c-typeck.cc (c_finish_omp_clauses): Handle OMP_CLAUSE_ENTER instead
1446 of OMP_CLAUSE_TO_DECLARE, to OMP_CLAUSE_ENTER_TO use "to" as clause
1447 name in diagnostics instead of
1448 omp_clause_code_name[OMP_CLAUSE_CODE (c)].
1449
3dff965c
GA
14502022-05-25 Jakub Jelinek <jakub@redhat.com>
1451
1452 PR c/91134
1453 * c-tree.h (build_component_ref): Add ARROW_LOC location_t argument.
1454 * c-typeck.cc (build_component_ref): Likewise. If DATUM is
1455 INDIRECT_REF and ARROW_LOC isn't UNKNOWN_LOCATION, print a different
1456 diagnostic and fixit hint if DATUM has pointer type.
1457 * c-parser.cc (c_parser_postfix_expression,
1458 c_parser_omp_variable_list): Adjust build_component_ref callers.
1459 * gimple-parser.cc (c_parser_gimple_postfix_expression_after_primary):
1460 Likewise.
1461
768f49a2
GA
14622022-05-24 Jakub Jelinek <jakub@redhat.com>
1463
1464 PR c/105378
1465 * c-parser.cc (OMP_TASKWAIT_CLAUSE_MASK): Add nowait clause.
1466
1cda629f
GA
14672022-05-18 Marek Polacek <polacek@redhat.com>
1468
1469 PR c/105131
1470 * c-decl.cc (diagnose_mismatched_decls): Warn about enum/integer type
1471 mismatches.
1472 * c-tree.h (comptypes_check_enum_int): Declare.
1473 * c-typeck.cc (comptypes): No longer static.
1474
3d9439b1
GA
14752022-05-17 Marek Polacek <polacek@redhat.com>
1476
1477 * c-decl.cc (finish_enum): Store the CONST_DECL into TREE_VALUE, not
1478 its value.
1479
14802022-05-17 Jakub Jelinek <jakub@redhat.com>
1481
1482 * c-parser.cc (c_parser_omp_clause_depend): Parse
1483 inoutset depend-kind.
1484 (c_parser_omp_depobj): Likewise.
1485
702bd11f
GA
14862022-05-16 Martin Liska <mliska@suse.cz>
1487
1488 * c-decl.cc (match_builtin_function_types): Use ARRAY_SIZE.
1489
49ace834
GA
14902022-05-12 Jakub Jelinek <jakub@redhat.com>
1491
1492 * c-parser.cc (c_parse_init): Register omp_all_memory as keyword
1493 if flag_openmp.
1494 (c_parser_postfix_expression): Diagnose uses of omp_all_memory
1495 in postfix expressions.
1496 (c_parser_omp_variable_list): Handle omp_all_memory in depend
1497 clause.
1498 * c-typeck.cc (c_finish_omp_clauses): Handle omp_all_memory
1499 keyword in depend clause as null_pointer_node, diagnose invalid
1500 uses.
1501
bd022ff9
GA
15022022-05-09 Martin Liska <mliska@suse.cz>
1503
1504 * c-parser.cc (c_parser_conditional_expression): Use {,UN}LIKELY
1505 macros.
1506 (c_parser_binary_expression): Likewise.
1507
a1947c92
GA
15082022-05-07 Marek Polacek <polacek@redhat.com>
1509
1510 PR c++/101833
1511 PR c++/47634
1512 * c-objc-common.cc (maybe_adjust_arg_pos_for_attribute): New.
1513
405eda0d
GA
15142022-04-08 Jakub Jelinek <jakub@redhat.com>
1515
1516 PR c/105149
1517 * c-typeck.cc (c_build_va_arg): Reject function types.
1518
a2287813
GA
15192022-03-22 Marek Polacek <polacek@redhat.com>
1520
1521 PR c/82283
1522 PR c/84685
1523 * c-typeck.cc (struct initializer_stack): Add 'designated' member.
1524 (start_init): Set it.
1525 (finish_init): Restore constructor_designated.
1526 (push_init_level): Set constructor_designated to the value of
1527 constructor_designated in the upper constructor_stack.
1528
57eeedda
GA
15292022-03-12 Thomas Schwinge <thomas@codesourcery.com>
1530
1531 PR other/65095
1532 * c-typeck.cc (handle_omp_array_sections_1)
1533 (c_oacc_check_attachments): Call 'user_omp_clause_code_name'
1534 instead of 'c_omp_map_clause_name'.
1535
8cc4f9cd
GA
15362022-03-09 Joseph Myers <joseph@codesourcery.com>
1537
1538 * c-typeck.cc (function_types_compatible_p): Do not handle C2X
1539 differently from earlier standards for unprototyped function type
1540 compatibility.
1541
15422022-03-09 Jakub Jelinek <jakub@redhat.com>
1543
1544 PR c/104711
1545 * c-fold.cc (c_fully_fold_internal): Don't emit
1546 -Wshift-negative-value warning if TYPE_OVERFLOW_WRAPS.
1547 * c-typeck.cc (build_binary_op): Likewise.
1548
e6533e2e
GA
15492022-03-07 Jakub Jelinek <jakub@redhat.com>
1550
1551 * c-parser.cc (c_parser_omp_clause_map): Add missing space in string
1552 literal.
1553
4bf3bac1
GA
15542022-02-23 Richard Biener <rguenther@suse.de>
1555
1556 * gimple-parser.cc (c_parser_parse_gimple_body): Diagnose
1557 SSA names without definition.
1558 (c_parser_gimple_declaration): Handle pointer typed SSA names.
1559
0bdb0498
GA
15602022-02-17 Jakub Jelinek <jakub@redhat.com>
1561
1562 PR c/104532
1563 * c-parser.cc (c_parser_omp_variable_list): For CPP_DEREF, use
1564 convert_lvalue_to_rvalue and build_indirect_ref instead of
1565 build_simple_mem_ref.
1566
e8d68f0a
GA
15672022-02-11 Richard Biener <rguenther@suse.de>
1568
1569 * gimple-parser.cc (c_parser_gimple_statement): Properly parse
1570 VEC_COND_EXPRs.
1571
a645583d
GA
15722022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
1573
1574 * c-parser.cc (c_parser_omp_clause_name): Parse 'has_device_addr'
1575 clause.
1576 (c_parser_omp_variable_list): Handle array sections.
1577 (c_parser_omp_clause_has_device_addr): Added.
1578 (c_parser_omp_all_clauses): Added PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR
1579 case.
1580 (c_parser_omp_target_exit_data): Added HAS_DEVICE_ADDR to
1581 OMP_CLAUSE_MASK.
1582 * c-typeck.cc (handle_omp_array_sections): Handle clause restrictions.
1583 (c_finish_omp_clauses): Handle array sections.
1584
3adf509f
GA
15852022-02-09 Jakub Jelinek <jakub@redhat.com>
1586
1587 PR c/104427
1588 * c-parser.cc (c_parser_postfix_expression)
1589 <case RID_BUILTIN_ASSOC_BARRIER>: Use parser_build_unary_op
1590 instead of build1_loc to build PAREN_EXPR.
1591 * c-typeck.cc (build_unary_op): Handle PAREN_EXPR.
1592 * c-fold.cc (c_fully_fold_internal): Likewise.
1593
fc829782
GA
15942022-01-17 Martin Liska <mliska@suse.cz>
1595
1596 * Make-lang.in: Rename .c names to .cc.
1597 * c-convert.cc: Likewise.
1598 * c-decl.cc (struct lang_identifier): Likewise.
1599 (pop_scope): Likewise.
1600 (finish_decl): Likewise.
1601 * c-objc-common.h (GCC_C_OBJC_COMMON): Likewise.
1602 * c-parser.cc (c_parser_skip_to_end_of_block_or_statement): Likewise.
1603 * c-parser.h (GCC_C_PARSER_H): Likewise.
1604 * c-tree.h (c_keyword_starts_typename): Likewise.
1605 (finish_declspecs): Likewise.
1606 (c_get_alias_set): Likewise.
1607 (enum c_oracle_request): Likewise.
1608 (tag_exists_p): Likewise.
1609 (set_c_expr_source_range): Likewise.
1610 * c-typeck.cc (c_common_type): Likewise.
1611 (c_finish_omp_clauses): Likewise.
1612 * config-lang.in: Likewise.
1613
16142022-01-17 Martin Liska <mliska@suse.cz>
1615
1616 * c-aux-info.c: Moved to...
1617 * c-aux-info.cc: ...here.
1618 * c-convert.c: Moved to...
1619 * c-convert.cc: ...here.
1620 * c-decl.c: Moved to...
1621 * c-decl.cc: ...here.
1622 * c-errors.c: Moved to...
1623 * c-errors.cc: ...here.
1624 * c-fold.c: Moved to...
1625 * c-fold.cc: ...here.
1626 * c-lang.c: Moved to...
1627 * c-lang.cc: ...here.
1628 * c-objc-common.c: Moved to...
1629 * c-objc-common.cc: ...here.
1630 * c-parser.c: Moved to...
1631 * c-parser.cc: ...here.
1632 * c-typeck.c: Moved to...
1633 * c-typeck.cc: ...here.
1634 * gccspec.c: Moved to...
1635 * gccspec.cc: ...here.
1636 * gimple-parser.c: Moved to...
1637 * gimple-parser.cc: ...here.
1638
16392022-01-17 Andrew Stubbs <ams@codesourcery.com>
1640
1641 * c-parser.c (c_parser_omp_requires): Don't "sorry" dynamic_allocators.
1642
617db51d
GA
16432022-01-14 Chung-Lin Tang <cltang@codesourcery.com>
1644
1645 PR c++/103705
1646 * c-typeck.c (c_finish_omp_clauses): Also continue peeling off of
1647 outer node for ARRAY_REFs.
1648
62eb5308
GA
16492022-01-01 Jakub Jelinek <jakub@redhat.com>
1650
1651 PR objc/103639
1652 * c-typeck.c (c_finish_bc_stmt): For break inside of switch inside of
1653 ObjC foreach, emit normal BREAK_STMT rather than goto to label.
1654
2554e2da
GA
16552021-12-17 Marek Polacek <polacek@redhat.com>
1656
1657 PR c/103649
1658 * c-decl.c (c_warn_unused_attributes): Don't warn for
1659 attribute_ignored_p.
1660 * c-parser.c (c_parser_std_attribute): Skip parsing of the attribute
1661 arguments when the attribute is ignored.
1662
9c6586bc
GA
16632021-12-14 Jakub Jelinek <jakub@redhat.com>
1664
1665 PR c/103587
1666 * c-parser.c (c_parser_balanced_token_sequence): For CPP_PRAGMA,
1667 consume the pragma and silently skip to the pragma eol.
1668
c8dcf64b
GA
16692021-12-12 Jonathan Wakely <jwakely@redhat.com>
1670
1671 * c-decl.c: Define INCLUDE_MEMORY instead of INCLUDE_UNIQUE_PTR.
1672 * c-parser.c: Likewise.
1673
4b4839e3
GA
16742021-12-09 Jakub Jelinek <jakub@redhat.com>
1675
1676 PR pch/71934
1677 * c-decl.c (resort_field_decl_cmp): Pass the same pointer twice
1678 to resort_data.new_value.
1679
641ff219
GA
16802021-12-08 Chung-Lin Tang <cltang@codesourcery.com>
1681
1682 * c-parser.c (struct omp_dim): New struct type for use inside
1683 c_parser_omp_variable_list.
1684 (c_parser_omp_variable_list): Allow multiple levels of array and
1685 component accesses in array section base-pointer expression.
1686 (c_parser_omp_clause_to): Set 'allow_deref' to true in call to
1687 c_parser_omp_var_list_parens.
1688 (c_parser_omp_clause_from): Likewise.
1689 * c-typeck.c (handle_omp_array_sections_1): Extend allowed range
1690 of base-pointer expressions involving INDIRECT/MEM/ARRAY_REF and
1691 POINTER_PLUS_EXPR.
1692 (c_finish_omp_clauses): Extend allowed ranged of expressions
1693 involving INDIRECT/MEM/ARRAY_REF and POINTER_PLUS_EXPR.
1694
16952021-12-08 Chung-Lin Tang <cltang@codesourcery.com>
1696
1697 PR middle-end/92120
1698 * c-parser.c (c_parser_omp_clause_map): Set 'allow_deref' argument in
1699 call to c_parser_omp_variable_list to 'true'.
1700 * c-typeck.c (handle_omp_array_sections_1): Add strip of MEM_REF in
1701 array base handling.
1702 (c_finish_omp_clauses): Handle 'A->member' case in map clauses.
1703
c177e806
GA
17042021-11-30 Thomas Schwinge <thomas@codesourcery.com>
1705
1706 * c-typeck.c (c_finish_omp_clauses): Remove "gang reduction on an
1707 orphan loop" checking.
1708
17092021-11-30 Cesar Philippidis <cesar@codesourcery.com>
1710 Thomas Schwinge <thomas@codesourcery.com>
1711
1712 * c-typeck.c (c_finish_omp_clauses): Emit an error on orphan
1713 OpenACC gang reductions.
1714
17152021-11-30 Richard Biener <rguenther@suse.de>
1716
1717 * gimple-parser.c (c_parser_gimple_postfix_expression):
1718 avoid unreachable code after break.
1719
87cd82c8
GA
17202021-11-29 Eric Gallager <egallager@gcc.gnu.org>
1721
1722 PR other/103021
1723 * Make-lang.in: Use ETAGS variable in TAGS target.
1724
17252021-11-29 Richard Biener <rguenther@suse.de>
1726
1727 * c-typeck.c (c_tree_equal): Remove unreachable return.
1728 * c-parser.c (get_matching_symbol): Likewise.
1729
e1d43592
GA
17302021-11-23 Jakub Jelinek <jakub@redhat.com>
1731
1732 * c-typeck.c (c_clone_omp_udr): Don't initialize
1733 id.transform_lang_insert_block.
1734
9c077398
GA
17352021-11-19 Martin Sebor <msebor@redhat.com>
1736
1737 PR c++/33925
1738 PR c/102867
1739 * c-typeck.c (maybe_warn_for_null_address): Suppress warnings for
1740 code resulting from macro expansion.
1741
17422021-11-19 Martin Liska <mliska@suse.cz>
1743
1744 Revert:
1745 2021-11-19 Martin Liska <mliska@suse.cz>
1746
1747 * c-parser.c (add_debug_begin_stmt): Use option directly.
1748
483092d3
GA
17492021-11-18 Matthias Kretz <m.kretz@gsi.de>
1750
1751 * c-decl.c (names_builtin_p): Handle RID_BUILTIN_ASSOC_BARRIER.
1752 * c-parser.c (c_parser_postfix_expression): Likewise.
1753
17542021-11-18 Martin Liska <mliska@suse.cz>
1755
1756 * c-parser.c (add_debug_begin_stmt): Use option directly.
1757
280d2838
GA
17582021-11-17 Martin Sebor <msebor@redhat.com>
1759
1760 PR c/101702
1761 * c-decl.c (get_parm_array_spec): Strip casts earlier and fold array
1762 bounds before deciding if they're constant.
1763
e2b57363
GA
17642021-11-15 Jakub Jelinek <jakub@redhat.com>
1765
1766 * c-parser.c (OMP_TARGET_CLAUSE_MASK): Add
1767 PRAGMA_OMP_CLAUSE_THREAD_LIMIT.
1768
b39265d4
GA
17692021-11-11 Jakub Jelinek <jakub@redhat.com>
1770
1771 * c-parser.c (c_parser_omp_clause_num_teams): Parse optional
1772 lower-bound and store it into OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR.
1773 Use OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead of
1774 OMP_CLAUSE_NUM_TEAMS_EXPR.
1775 (c_parser_omp_target): For OMP_CLAUSE_NUM_TEAMS evaluate before
1776 combined target teams even lower-bound expression.
1777
17782021-11-11 Richard Biener <rguenther@suse.de>
1779
1780 * gimple-parser.c: Shuffle bitmap.h include.
1781
18ae471f
GA
17822021-11-03 Joseph Myers <joseph@codesourcery.com>
1783
1784 PR c/103031
1785 * c-convert.c (c_convert): New function, based on convert.
1786 (convert): Make into wrapper of c_convert.
1787 (convert_init): New function.
1788 * c-typeck.c (enum impl_conv): Add ic_init_const.
1789 (convert_for_assignment): Handle ic_init_const like ic_init. Add
1790 new argument to convert_and_check call.
1791 (digest_init): Pass ic_init_const to convert_for_assignment for
1792 initializers required to be constant.
1793
b4df2dd3
GA
17942021-11-02 Richard Sandiford <richard.sandiford@arm.com>
1795
1796 * c-tree.h (c_simulate_record_decl): Declare.
1797 * c-objc-common.h (LANG_HOOKS_SIMULATE_RECORD_DECL): Override.
1798 * c-decl.c (c_simulate_record_decl): New function.
1799
c2bd5d8a
GA
18002021-10-22 Eric Gallager <egallager@gcc.gnu.org>
1801
1802 PR other/102663
1803 * Make-lang.in: Add dummy c.install-dvi target.
1804
93d183a5
GA
18052021-10-15 Richard Biener <rguenther@suse.de>
1806
1807 PR c/102763
1808 * gimple-parser.c
1809 (c_parser_gimple_postfix_expression_after_primary): Check
1810 for a pointer do be dereferenced by ->.
1811
5d5885c9
GA
18122021-10-14 Kwok Cheung Yeung <kcy@codesourcery.com>
1813
1814 * c-parser.c (c_finish_omp_declare_variant): Change call from
1815 c_omp_check_context_selector to omp_check_context_selector. Change
1816 call from c_omp_mark_declare_variant to omp_mark_declare_variant.
1817
c9db17b8
GA
18182021-10-09 Jakub Jelinek <jakub@redhat.com>
1819
1820 * c-parser.c (c_parser_omp_structured_block_sequence): New function.
1821 (c_parser_omp_scan_loop_body): Use it.
1822 (c_parser_omp_sections_scope): Likewise.
1823
50e20ee6
GA
18242021-10-07 Richard Biener <rguenther@suse.de>
1825
1826 * c-typeck.c (lvalue_p): Also allow MEM_REF and TARGET_MEM_REF.
1827
bb6194e0
GA
18282021-10-05 Richard Biener <rguenther@suse.de>
1829
1830 PR c/102605
1831 * gimple-parser.c (c_parser_gimple_postfix_expression):
1832 Accept more address _Literals.
1833
da9c5f78
GA
18342021-10-04 Marek Polacek <polacek@redhat.com>
1835
1836 PR c++/97573
1837 * c-typeck.c (parser_build_binary_op): Call do_warn_array_compare.
1838
9d116bcc
GA
18392021-10-01 Martin Sebor <msebor@redhat.com>
1840
1841 PR c/102103
1842 * c-typeck.c (maybe_warn_for_null_address): New function.
1843 (build_binary_op): Call it.
1844
18452021-10-01 Jakub Jelinek <jakub@redhat.com>
1846 Richard Biener <rguenther@suse.de>
1847
1848 PR sanitizer/102515
1849 * c-typeck.c (build_binary_op): Call ubsan_instrument_division
1850 for division even for SANITIZE_SI_OVERFLOW.
1851
18522021-10-01 Jakub Jelinek <jakub@redhat.com>
1853
1854 * c-parser.c (c_parser_omp_clause_order): Set
1855 OMP_CLAUSE_ORDER_REPRODUCIBLE for explicit reproducible: modifier.
1856
fd133479
GA
18572021-09-28 Andrew Pinski <apinski@marvell.com>
1858
1859 PR c/32122
1860 * c-parser.c (c_parser_statement_after_labels): Pass
1861 the c_expr instead of the tree to c_finish_goto_ptr.
1862 * c-typeck.c (c_finish_goto_ptr): Change the second
1863 argument type to c_expr.
1864 * c-tree.h (c_finish_goto_ptr): Likewise.
1865 Error out if the expression was not of a pointer type.
1866
e4777439
GA
18672021-09-22 Jakub Jelinek <jakub@redhat.com>
1868
1869 * c-parser.c (c_parser_omp_clause_allocate): Parse allocate clause
1870 modifiers.
1871
cf74e7b5
GA
18722021-09-18 Jakub Jelinek <jakub@redhat.com>
1873
1874 * c-parser.c (c_parser_omp_clause_order): Parse unconstrained
1875 and reproducible modifiers.
1876 (OMP_DISTRIBUTE_CLAUSE_MASK): Add order clause.
1877
18782021-09-18 Jakub Jelinek <jakub@redhat.com>
1879
1880 * c-parser.c (c_parser_omp_clause_default): Handle private and
1881 firstprivate arguments, adjust diagnostics on unknown argument.
1882
0a4cb439
GA
18832021-09-17 Jakub Jelinek <jakub@redhat.com>
1884
1885 * c-parser.c (c_parser_omp_atomic): Reject atomic swap if capture
1886 is true.
1887
a26206ec
GA
18882021-09-10 Jakub Jelinek <jakub@redhat.com>
1889
1890 * c-parser.c (c_parser_conditional_expression): If omp_atomic_lhs and
1891 cond.value is >, < or == with omp_atomic_lhs as one of the operands,
1892 don't call build_conditional_expr, instead build a COND_EXPR directly.
1893 (c_parser_binary_expression): Avoid calling parser_build_binary_op
1894 if omp_atomic_lhs even in more cases for >, < or ==.
1895 (c_parser_omp_atomic): Update function comment for OpenMP 5.1 atomics,
1896 parse OpenMP 5.1 atomics and fail, compare and weak clauses, allow
1897 acq_rel on atomic read/write and acq_rel/acquire clauses on update.
1898 * c-typeck.c (build_binary_op): For flag_openmp only handle
1899 MIN_EXPR/MAX_EXPR.
1900
b2748138
GA
19012021-09-07 Marcel Vollweiler <marcel@codesourcery.com>
1902
1903 * c-parser.c (c_parser_omp_flush): Parse 'seq_cst' clause on 'flush'
1904 directive.
1905
e11c6046
GA
19062021-09-01 Iain Sandoe <iain@sandoe.co.uk>
1907
1908 * c-decl.c (enum deprecated_states): Add unavailable state.
1909 (merge_decls): Copy unavailability.
1910 (quals_from_declspecs): Handle unavailable case.
1911 (start_decl): Amend the logic handling suppression of nested
1912 deprecation states to include unavailability.
1913 (smallest_type_quals_location): Amend comment.
1914 (grokdeclarator): Handle the unavailable deprecation state.
1915 (declspecs_add_type): Set TREE_UNAVAILABLE from the decl specs.
1916 * c-tree.h (struct c_declspecs): Add unavailable_p.
1917 * c-typeck.c (build_component_ref): Handle unavailability.
1918 (build_external_ref): Likewise.
1919
19202021-09-01 Roger Sayle <roger@nextmovesoftware.com>
1921 Joseph Myers <joseph@codesourcery.com>
1922
1923 PR c/79412
1924 * c-decl.c (duplicate_decls): On significant mismatches, mark the
1925 types of both (non-function) decls as error_mark_node, so that the
1926 middle-end can see the code is malformed.
1927 (free_attr_access_data): Don't process if the type has been set to
1928 error_mark_node.
1929
6d51ee43
GA
19302021-08-31 Marcel Vollweiler <marcel@codesourcery.com>
1931
1932 * c-parser.c (c_parser_omp_clause_device): Parse device-modifiers 'device_num'
1933 and 'ancestor' in 'target device' clauses.
1934
38b19c5b
GA
19352021-08-23 Jakub Jelinek <jakub@redhat.com>
1936
1937 * c-parser.c (c_parser_omp_clause_num_tasks,
1938 c_parser_omp_clause_grainsize): Parse the optional strict: modifier.
1939
5b2876f9
GA
19402021-08-22 Martin Uecker <muecker@gwdg.de>
1941
1942 PR c/98397
1943 * c-typeck.c (comp_target_types): Change pedwarn to pedwarn_c11
1944 for pointers to arrays with qualifiers.
1945 (build_conditional_expr): For C23 don't lose qualifiers for pointers
1946 to arrays when the other pointer is a void pointer. Update warnings.
1947 (convert_for_assignment): Update warnings for C2X when converting from
1948 void* with qualifiers to a pointer to array with the same qualifiers.
1949
7c9e1645
GA
19502021-08-20 Jakub Jelinek <jakub@redhat.com>
1951
1952 * c-parser.c (c_parser_omp_error): New function.
1953 (c_parser_pragma): Handle PRAGMA_OMP_ERROR.
1954
19552021-08-20 Jakub Jelinek <jakub@redhat.com>
1956
1957 * c-parser.c (c_parser_omp_clause_depend_sink): Reject spurious
1958 comma at the end of list.
1959 (c_parser_omp_requires): Likewise.
1960
b57fba5e
GA
19612021-08-19 Jakub Jelinek <jakub@redhat.com>
1962
1963 * c-parser.c (c_parser_omp_requires): Don't call
1964 c_parser_peek_2nd_token and optionally consume token if current
1965 token is CPP_EOF, CPP_PRAGMA_EOL or CPP_CLOSE_PAREN.
1966
6e529985
GA
19672021-08-18 Jakub Jelinek <jakub@redhat.com>
1968
1969 * c-parser.c (c_parser_omp_nothing): New function.
1970 (c_parser_pragma): Handle PRAGMA_OMP_NOTHING.
1971
19722021-08-18 Jakub Jelinek <jakub@redhat.com>
1973
1974 * c-parser.c (c_parser_statement_after_labels): Add restart label
1975 near the start of the function. If c_parser_pragma returns false,
1976 goto restart.
1977 (c_parser_pragma): For PRAGMA_OMP_CANCELLATION_POINT return what
1978 c_parser_omp_cancellation_point returned. For PRAGMA_OMP_DECLARE
1979 return what c_parser_omp_declare returned. Return true instead of
1980 false after emitting errors that the directive is not allowed in
1981 pragma_stmt context.
1982 (c_parser_omp_ordered): Return true instead of
1983 false after emitting errors that the directive is not allowed in
1984 pragma_stmt context.
1985 (c_parser_omp_target_update): Likewise.
1986 (c_parser_omp_target_enter_data, c_parser_omp_target_exit_data):
1987 Change return type from tree to bool, return false if the
1988 directive should be ignored in pragma_stmt contexts.
1989 (c_parser_omp_target): Adjust callers of c_parser_omp_target_*_data,
1990 return their result directly.
1991 (c_parser_omp_cancellation_point): Change return type from void to
1992 bool, return false if the directive should be ignored in pragma_stmt
1993 contexts.
1994 (c_parser_omp_declare): Likewise.
1995
2d14d64b
GA
19962021-08-17 Jakub Jelinek <jakub@redhat.com>
1997
1998 * c-parser.c (OMP_SCOPE_CLAUSE_MASK): Define.
1999 (c_parser_omp_scope): New function.
2000 (c_parser_omp_construct): Handle PRAGMA_OMP_SCOPE.
2001
72be20e2
GA
20022021-08-12 Jakub Jelinek <jakub@redhat.com>
2003
2004 * c-parser.c (c_parser_omp_clause_name): Parse filter clause name.
2005 (c_parser_omp_clause_filter): New function.
2006 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FILTER.
2007 (OMP_MASKED_CLAUSE_MASK): Define.
2008 (c_parser_omp_masked): New function.
2009 (c_parser_omp_parallel): Handle parallel masked.
2010 (c_parser_omp_construct): Handle PRAGMA_OMP_MASKED.
2011 * c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_FILTER.
2012
20132021-08-12 Martin Uecker <muecker@gwdg.de>
2014
2015 PR c/101838
2016 PR c/29970
2017 * c-typeck.c (c_expr_sizeof_type): Evaluate
2018 size expressions for structs of variable size.
2019
20202021-08-12 Tobias Burnus <tobias@codesourcery.com>
2021
2022 * c-parser.c (c_parser_omp_clause_proc_bind): Accept
2023 'primary' as alias for 'master'.
2024
3ae564ea
GA
20252021-08-10 Martin Uecker <muecker@gwdg.de>
2026
2027 PR c/29970
2028 * c-typeck.c (c_expr_sizeof_expr): Evaluate
2029 size expressions for structs of variable size.
2030
f92f4778
GA
20312021-08-06 Tamar Christina <tamar.christina@arm.com>
2032
2033 * c-decl.c (c_simulate_enum_decl): Pass vec<> by pointer.
2034 * c-tree.h (c_simulate_enum_decl): Likewise.
2035
20362021-08-06 Martin Sebor <msebor@redhat.com>
2037
2038 * c-parser.c (c_parser_declaration_or_fndef): Adjust by-value function
2039 vec arguments to by-reference.
2040 (c_finish_omp_declare_simd): Same.
2041 (c_parser_compound_statement_nostart): Same.
2042 (c_parser_for_statement): Same.
2043 (c_parser_objc_methodprotolist): Same.
2044 (c_parser_oacc_routine): Same.
2045 (c_parser_omp_for_loop): Same.
2046 (c_parser_omp_declare_simd): Same.
2047
419c6c68
GA
20482021-07-21 Thomas Schwinge <thomas@codesourcery.com>
2049 Joseph Myers <joseph@codesourcery.com>
2050 Cesar Philippidis <cesar@codesourcery.com>
2051
2052 * c-parser.c (c_parser_omp_clause_name): Handle 'nohost'.
2053 (c_parser_oacc_all_clauses): Handle 'PRAGMA_OACC_CLAUSE_NOHOST'.
2054 (OACC_ROUTINE_CLAUSE_MASK): Add 'PRAGMA_OACC_CLAUSE_NOHOST'.
2055 * c-typeck.c (c_finish_omp_clauses): Handle 'OMP_CLAUSE_NOHOST'.
2056
92d45509
GA
20572021-07-20 Martin Sebor <msebor@redhat.com>
2058
2059 * c-tree.h (c_build_function_call_vec): Adjust by-value argument to
2060 by-const-reference.
2061 * c-typeck.c (c_build_function_call_vec): Same.
2062
d97d71a1
GA
20632021-07-15 Martin Sebor <msebor@redhat.com>
2064
2065 PR c/101289
2066 PR c/97548
2067 * c-decl.c (get_parm_array_spec): Strip nops.
2068
6fba0eea
GA
20692021-07-06 Martin Sebor <msebor@redhat.com>
2070
2071 * c-objc-common.c (c_tree_printer): Remove support for %G and %K.
2072
7a60a6e8
GA
20732021-07-02 Jakub Jelinek <jakub@redhat.com>
2074
2075 PR c/101297
2076 * c-parser.c (c_parser_omp_atomic): Consume comma only if it
2077 appears before a CPP_NAME.
2078
90708f87
GA
20792021-06-25 Martin Sebor <msebor@redhat.com>
2080
2081 * c-decl.c (pop_scope): Replace direct uses of TREE_NO_WARNING with
2082 warning_suppressed_p, suppress_warning, and copy_no_warning.
2083 (diagnose_mismatched_decls): Same.
2084 (duplicate_decls): Same.
2085 (grokdeclarator): Same.
2086 (finish_function): Same.
2087 (c_write_global_declarations_1): Same.
2088 * c-fold.c (c_fully_fold_internal): Same.
2089 * c-parser.c (c_parser_expr_no_commas): Same.
2090 (c_parser_postfix_expression): Same.
2091 * c-typeck.c (array_to_pointer_conversion): Same.
2092 (function_to_pointer_conversion): Same.
2093 (default_function_array_conversion): Same.
2094 (convert_lvalue_to_rvalue): Same.
2095 (default_conversion): Same.
2096 (build_indirect_ref): Same.
2097 (build_function_call_vec): Same.
2098 (build_atomic_assign): Same.
2099 (build_unary_op): Same.
2100 (c_finish_return): Same.
2101 (emit_side_effect_warnings): Same.
2102 (c_finish_stmt_expr): Same.
2103 (c_omp_clause_copy_ctor): Same.
2104
9aa8327e
GA
21052021-06-24 Jakub Jelinek <jakub@redhat.com>
2106
2107 PR c/101176
2108 * c-parser.c (c_parser_has_attribute_expression): Set source range for
2109 the result.
2110
21112021-06-24 Jakub Jelinek <jakub@redhat.com>
2112
2113 PR c/101171
2114 * c-typeck.c (build_c_cast): Don't call note_integer_operands on
2115 error_mark_node.
2116
21172021-06-24 Jakub Jelinek <jakub@redhat.com>
2118
2119 * c-parser.c (omp_split_clauses): Pass C_ORT_OMP_TARGET instead of
2120 C_ORT_OMP for clauses on target construct.
2121 (OMP_TARGET_CLAUSE_MASK): Add in_reduction clause.
2122 (c_parser_omp_target): For non-combined target add
2123 map (always, tofrom:) clauses for OMP_CLAUSE_IN_REDUCTION. Pass
2124 C_ORT_OMP_TARGET to c_finish_omp_clauses.
2125 * c-typeck.c (handle_omp_array_sections): Adjust ort handling
2126 for addition of C_ORT_OMP_TARGET and simplify, mapping clauses are
2127 never present on C_ORT_*DECLARE_SIMD.
2128 (c_finish_omp_clauses): Likewise. Handle OMP_CLAUSE_IN_REDUCTION
2129 on C_ORT_OMP_TARGET, set OMP_CLAUSE_MAP_IN_REDUCTION on
2130 corresponding map clauses.
2131
2f080224
GA
21322021-06-21 Jakub Jelinek <jakub@redhat.com>
2133
2134 PR inline-asm/100785
2135 * c-typeck.c (c_mark_addressable): Diagnose trying to make
2136 bit-fields addressable.
2137
ede6c356
GA
21382021-06-15 Robin Dapp <rdapp@linux.ibm.com>
2139
2140 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN if DECL_ALIGN is
2141 similar.
2142
8dc48181
GA
21432021-06-14 Tobias Burnus <tobias@codesourcery.com>
2144
2145 PR c/100913
2146 * c-parser.c (c_parser_omp_clause_affinity): No need to set iterator
2147 var in the error case.
2148
438aac59
GA
21492021-06-07 Eric Botcazou <ebotcazou@adacore.com>
2150
2151 PR c/100920
2152 * c-typeck.c (convert_for_assignment): Test fndecl_built_in_p to
2153 spot built-in functions.
2154
7d6987e9
GA
21552021-06-06 Jakub Jelinek <jakub@redhat.com>
2156
2157 PR c/100902
2158 * c-parser.c (c_parser_omp_target): Call c_omp_adjust_map_clauses
2159 even when target is combined with other constructs.
2160
21612021-06-06 Eric Botcazou <ebotcazou@adacore.com>
2162
2163 PR c/100920
2164 * c-decl.c (finish_struct): Fix thinko in previous change.
2165 * c-typeck.c (convert_for_assignment): Do not warn on pointer
2166 assignment and initialization for storage order purposes if the
2167 RHS is a call to a DECL_IS_MALLOC function.
2168
600f90cb
GA
21692021-06-04 Martin Sebor <msebor@redhat.com>
2170
2171 PR c/100783
2172 * c-objc-common.c (print_type): Handle erroneous types.
2173
440c8a0a
GA
21742021-06-03 Jakub Jelinek <jakub@redhat.com>
2175
2176 PR c++/100859
2177 * c-typeck.c (c_finish_omp_clauses): Move OMP_CLAUSE_AFFINITY
2178 after depend only cases.
2179
ee682192
GA
21802021-05-31 Richard Biener <rguenther@suse.de>
2181
2182 PR c++/88601
2183 * c-decl.c (names_builtin_p): Handle RID_BUILTIN_SHUFFLEVECTOR.
2184 * c-parser.c (c_parser_postfix_expression): Likewise.
2185
48166757
GA
21862021-05-28 Richard Biener <rguenther@suse.de>
2187
2188 PR c/100803
2189 * gimple-parser.c (c_parser_gimple_paren_condition): Diagnose
2190 invalid if conditions.
2191
21922021-05-28 Jakub Jelinek <jakub@redhat.com>
2193
2194 PR middle-end/99928
2195 * c-typeck.c (handle_omp_array_sections): Copy OMP_CLAUSE_MAP_IMPLICIT.
2196 (c_finish_omp_clauses): Move not just OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT
2197 marked clauses last, but also OMP_CLAUSE_MAP_IMPLICIT. Add
2198 map_firstprivate_head bitmap, set it for GOMP_MAP_FIRSTPRIVATE_POINTER
2199 maps and silently remove OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT if it is
2200 present too. For OMP_CLAUSE_MAP_IMPLICIT silently remove the clause
2201 if present in map_head, map_field_head or map_firstprivate_head
2202 bitmaps.
2203
22042021-05-28 Tobias Burnus <tobias@codesourcery.com>
2205
2206 * c-parser.c (c_parser_omp_clause_affinity): New.
2207 (c_parser_omp_clause_name, c_parser_omp_variable_list,
2208 c_parser_omp_all_clauses, OMP_TASK_CLAUSE_MASK): Handle affinity clause.
2209 * c-typeck.c (handle_omp_array_sections_1, handle_omp_array_sections,
2210 c_finish_omp_clauses): Likewise.
2211
01c59ef2
GA
22122021-05-26 Eric Botcazou <ebotcazou@adacore.com>
2213
2214 PR c/100653
2215 * c-decl.c (finish_struct): Warn for a union containing an aggregate
2216 field with a differing scalar storage order.
2217
2832d51b
GA
22182021-05-21 Jakub Jelinek <jakub@redhat.com>
2219
2220 PR middle-end/99928
2221 * c-typeck.c (c_finish_omp_clauses): Move firstprivate clauses with
2222 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT to the end of the chain. Don't error
2223 if a decl is mentioned both in map clause and in such firstprivate
2224 clause unless OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET is also set.
2225
65f32e5d
GA
22262021-05-19 Jakub Jelinek <jakub@redhat.com>
2227
2228 PR middle-end/99928
2229 * c-parser.c (c_parser_omp_master): Set OMP_MASTER_COMBINED on
2230 master when combined with taskloop.
2231 (c_parser_omp_parallel): Don't set OMP_PARALLEL_COMBINED on
2232 parallel master when not combined with taskloop.
2233
a8daf9a1
GA
22342021-05-18 Richard Biener <rguenther@suse.de>
2235
2236 PR c/100522
2237 * gimple-parser.c (c_parser_gimple_postfix_expression_after_primary):
2238 Diagnose calls to non-functions.
2239 (c_parser_gimple_statement): Diagnose unexpected assignment RHS.
2240
a7ffc1ef
GA
22412021-05-17 Richard Biener <rguenther@suse.de>
2242
2243 PR c/100625
2244 * gimple-parser.c (c_parser_gimple_label): Avoid building
2245 a GIMPLE label with NULL label decl.
2246
f9af11c7
GA
22472021-05-13 Martin Sebor <msebor@redhat.com>
2248
2249 PR c/100550
2250 * c-decl.c (get_parm_array_spec): Avoid erroneous VLA bounds.
2251
0ff3a0f2
GA
22522021-05-12 Marcel Vollweiler <marcel@codesourcery.com>
2253
2254 * c-parser.c (c_parser_omp_clause_map): Support map-type-modifier
2255 'close'.
2256
aa891c56
GA
22572021-05-10 Martin Liska <mliska@suse.cz>
2258
2259 * c-aux-info.c (affix_data_type): Use startswith
2260 function instead of strncmp.
2261 * c-typeck.c (build_function_call_vec): Likewise.
2262 * gimple-parser.c (c_parser_gimple_parse_bb_spec): Likewise.
2263
62d87a32
GA
22642021-05-07 Eric Botcazou <ebotcazou@adacore.com>
2265
2266 * c-typeck.c (build_unary_op) <ADDR_EXPR>: Do not issue an error
2267 on the address of a pointer field in a record with reverse SSO.
2268
99e8df7a
GA
22692021-05-04 Tobias Burnus <tobias@codesourcery.com>
2270
2271 * c-typeck.c (c_finish_omp_clauses): Accept float + complex
2272 for || and && reductions.
2273
3c8e539d
GA
22742021-04-29 Joseph Myers <joseph@codesourcery.com>
2275
2276 * c-typeck.c (function_types_compatible_p): For C2X, treat
2277 unprototyped function as compatible with non-variadic prototyped
2278 function even if some argument types are changed by the default
2279 argument promotions.
2280
ee351f7f
GA
22812021-04-15 Martin Sebor <msebor@redhat.com>
2282
2283 PR c/99420
2284 PR c/99972
2285 * c-decl.c (pushdecl): Always propagate type attribute.
2286
22872021-04-15 Richard Sandiford <richard.sandiford@arm.com>
2288
2289 PR c/98852
2290 * c-typeck.c (c_common_type): Do not drop attributes that
2291 affect type identity.
2292
1d54b138
GA
22932021-04-10 Jakub Jelinek <jakub@redhat.com>
2294
2295 PR c/99990
2296 * c-decl.c (finish_decl): Don't overwrite TREE_TYPE of
2297 error_mark_node.
2298
4493b1c1
GA
22992021-03-25 Jakub Jelinek <jakub@redhat.com>
2300
2301 PR c++/99565
2302 * c-typeck.c (build_conditional_expr): Pass OEP_ADDRESS_OF_SAME_FIELD
2303 to operand_equal_p.
2304
5f256a70
GA
23052021-03-19 Jakub Jelinek <jakub@redhat.com>
2306
2307 PR c/99588
2308 * c-typeck.c (mark_exp_read): Recognize what build_atomic_assign
2309 with modifycode NOP_EXPR produces and mark the _Atomic var as read
2310 if found.
2311 (build_atomic_assign): For modifycode of NOP_EXPR, use COMPOUND_EXPRs
2312 rather than STATEMENT_LIST. Otherwise call mark_exp_read on lhs.
2313 Set TREE_SIDE_EFFECTS on the TARGET_EXPR.
2314
3c5b6d24
GA
23152021-03-15 Tobias Burnus <tobias@codesourcery.com>
2316
2317 PR c++/99509
2318 * c-decl.c (finish_decl): For 'omp declare target implicit' vars,
2319 ensure that the varpool node is marked as offloadable.
2320
ceae9533
GA
23212021-03-05 Tobias Burnus <tobias@codesourcery.com>
2322
2323 PR c/99137
2324 * c-parser.c (c_parser_oacc_clause_async): Reject comma expressions.
2325
4028d01a
GA
23262021-02-24 Martin Sebor <msebor@redhat.com>
2327
2328 PR middle-end/97172
2329 * c-decl.c (free_attr_access_data): Clear attribute arg spec.
2330
bf81237e
GA
23312021-02-18 Jakub Jelinek <jakub@redhat.com>
2332
2333 PR c/99136
2334 * c-typeck.c (c_finish_return): Don't wrap retval into
2335 EXCESS_PRECISION_EXPR in functions that return void.
2336
0c5cdb31
GA
23372021-02-11 Marek Polacek <polacek@redhat.com>
2338
2339 * c-parser.c (c_parser_if_statement): Use vec_free.
2340
a19dd5e6
GA
23412021-02-04 Martin Sebor <msebor@redhat.com>
2342
2343 PR c/97882
2344 * c-decl.c (locate_old_decl): Add type to diagnostic output.
2345 (diagnose_mismatched_decls): Same.
2346 (start_function): Introduce temporaries for better readability.
2347 * c-typeck.c (comptypes_internal): Only consider complete enum
2348 types in comparisons with integers.
2349
f7884fb1
GA
23502021-02-01 Martin Sebor <msebor@redhat.com>
2351
2352 PR middle-end/97172
2353 * c-decl.c (free_attr_access_data): New function.
2354 (c_parse_final_cleanups): Call free_attr_access_data.
2355
59cf67d1
GA
23562021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
2357
2358 * c-parser.c (c_parser_omp_clause_detach): New.
2359 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH clause.
2360 (OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH.
2361 * c-typeck.c (c_finish_omp_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH
2362 clause. Prevent use of detach with mergeable and overriding the
2363 data sharing mode of the event handle.
2364
2f7f0d32
GA
23652021-01-15 Jakub Jelinek <jakub@redhat.com>
2366
2367 * c-typeck.c (c_finish_omp_clauses): For reduction build array with
2368 unqualified element type and then call c_build_qualified_type on the
2369 ARRAY_TYPE.
2370
7d187e4f
GA
23712021-01-07 Richard Biener <rguenther@suse.de>
2372
2373 * gimple-parser.c (c_parser_gimple_compound_statement): Only
2374 reallocate loop array if it is too small.
2375
eefe499f
GA
23762020-12-16 Martin Uecker <muecker@gwdg.de>
2377
2378 PR c/98047
2379 * c-typeck.c (build_modify_expr): Drop qualifiers.
2380
23812020-12-16 Martin Uecker <muecker@gwdg.de>
2382
2383 PR c/98260
2384 * c-parser.c (c_parser_expression): Look into
2385 nop expression when marking expressions as read.
2386
d52945ce
GA
23872020-12-14 Martin Liska <mliska@suse.cz>
2388
2389 PR sanitizer/98204
2390 * c-typeck.c (pointer_diff): Do not emit a top-level
2391 sanitization.
2392 (build_binary_op): Likewise.
2393
ca2bd949
GA
23942020-12-09 Tobias Burnus <tobias@codesourcery.com>
2395
2396 * c-parser.c (c_parser_omp_allocate): New.
2397 (c_parser_omp_construct): Call it.
2398
23992020-12-09 Richard Biener <rguenther@suse.de>
2400
2401 PR c/98200
2402 * gimple-parser.c (c_parser_gimple_postfix_expression): Return
2403 early on error.
2404
bc8a7013
GA
24052020-12-07 Martin Uecker <muecker@gwdg.de>
2406
2407 PR c/97981
2408 * c-typeck.c (convert_lvalue_to_rvalue): Move the code
2409 that drops qualifiers to the end of the function.
2410
d48df6f2
GA
24112020-11-26 Martin Uecker <muecker@gwdg.de>
2412
2413 PR c/65455
2414 PR c/92935
2415 * c-parser.c (c_parser_declaration_or_fndef): Remove
2416 redundant code to drop qualifiers of _Atomic types for __auto_type.
2417 (c_parser_typeof_specifier): Do not drop qualifiers of _Atomic
2418 types for __typeof__.
2419
1e2c9a27
GA
24202020-11-24 Jakub Jelinek <jakub@redhat.com>
2421
2422 PR c/97958
2423 * c-parser.c (c_parser_binary_expression): For omp atomic binary
2424 expressions, use make_node instead of build2 to avoid checking build2
2425 performs.
2426
8e6198d0
GA
24272020-11-23 Joseph Myers <joseph@codesourcery.com>
2428
2429 PR c/95630
2430 * c-typeck.c (build_binary_op): Use pedwarn_c99 with OPT_Wpedantic
2431 for comparisons of complete and incomplete pointers.
2432
7a97e2fc
GA
24332020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com>
2434
2435 * c-aux-info.c (gen_type): Support opaque types.
2436
82e5048e
GA
24372020-11-20 Martin Sebor <msebor@redhat.com>
2438
2439 PR middle-end/97879
2440 * c-decl.c (start_function): Set ATTR_FLAG_INTERNAL in flags.
2441
24422020-11-20 Jakub Jelinek <jakub@redhat.com>
2443
2444 PR other/97911
2445 * Make-lang.in (c.serial): Change from goal to a variable.
2446 (.PHONY): Drop c.serial.
2447
24482020-11-20 Martin Uecker <muecker@gwdg.de>
2449
2450 * c-typeck.c (convert_lvalue_to_rvalue): Drop qualifiers.
2451
d62586ee
GA
24522020-11-19 Jakub Jelinek <jakub@redhat.com>
2453
2454 PR c/97860
2455 * c-decl.c (get_parm_array_spec): Bail out of nelts is
2456 error_operand_p.
2457
25bb75f8
GA
24582020-11-18 Jakub Jelinek <jakub@redhat.com>
2459
2460 * Make-lang.in (c.serial): New goal.
2461 (.PHONY): Add c.serial c.prev.
2462 (cc1$(exeext)): Call LINK_PROGRESS.
2463
77f67db2
GA
24642020-11-13 Vladimir N. Makarov <vmakarov@redhat.com>
2465
2466 * c-parser.c (c_parser_asm_statement): Parse outputs for asm
2467 goto too.
2468 * c-typeck.c (build_asm_expr): Remove an assert checking output
2469 absence for asm goto.
2470
24712020-11-13 Jakub Jelinek <jakub@redhat.com>
2472
2473 * c-typeck.c (c_finish_omp_clauses): Don't clear
2474 OMP_CLAUSE_REDUCTION_INSCAN unless reduction_seen == -2.
2475
24762020-11-13 Iain Sandoe <iain@sandoe.co.uk>
2477
2478 PR objc/77404
2479 * c-parser.c (c_parser_objc_class_definition): Pass the
2480 location of the class name to the interface declaration.
2481
bb622641
GA
24822020-11-10 Strager Neds <strager.nds@gmail.com>
2483
2484 * c-decl.c (merge_decls): Use new overload of
2485 set_decl_section_name.
2486
24872020-11-10 Chung-Lin Tang <cltang@codesourcery.com>
2488
2489 * c-parser.c (c_parser_omp_target_data): Add use of
2490 new c_omp_adjust_map_clauses function. Add GOMP_MAP_ATTACH_DETACH as
2491 handled map clause kind.
2492 (c_parser_omp_target_enter_data): Likewise.
2493 (c_parser_omp_target_exit_data): Likewise.
2494 (c_parser_omp_target): Likewise.
2495 * c-typeck.c (handle_omp_array_sections): Adjust COMPONENT_REF case to
2496 use GOMP_MAP_ATTACH_DETACH map kind for C_ORT_OMP region type.
2497 (c_finish_omp_clauses): Adjust bitmap checks to allow struct decl and
2498 same struct field access to co-exist on OpenMP construct.
2499
2da7ee05
GA
25002020-11-07 Martin Uecker <muecker@gwdg.de>
2501
2502 * c-parser.c (c_parser_label): Implement mixing of labels and code.
2503 (c_parser_all_labels): Likewise.
2504
44cab2d8
GA
25052020-11-06 Iain Sandoe <iain@sandoe.co.uk>
2506
2507 * c-parser.c (c_parser_objc_at_property_declaration):
2508 Improve parsing fidelity. Associate better location info
2509 with @property attributes. Clean up the interface to
2510 objc_add_property_declaration ().
2511
25122020-11-06 Nathan Sidwell <nathan@acm.org>
2513
2514 * c-decl.c (diagnose_mismatched_decls): Rename
2515 DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
2516 (warn_if_shadowing, implicitly_declare, names_builtin_p)
2517 (collect_source_refs): Likewise.
2518 * c-typeck.c (inform_declaration, inform_for_arg)
2519 (convert_for_assignment): Likewise.
2520
25212020-11-06 Tobias Burnus <tobias@codesourcery.com>
2522
2523 * c-parser.c (c_parser_omp_atomic): Add openacc parameter and update
2524 OpenACC matching.
2525 (c_parser_omp_construct): Update call.
2526
35c125cb
GA
25272020-11-04 Jakub Jelinek <jakub@redhat.com>
2528
2529 PR c++/97670
2530 * c-typeck.c (c_finish_omp_clauses): Look through array reductions to
2531 find underlying decl to clear in the aligned_head bitmap.
2532
25332020-11-04 Joseph Myers <joseph@codesourcery.com>
2534
2535 * c-decl.c (handle_nodiscard_attribute): New.
2536 (std_attribute_table): Add nodiscard.
2537 * c-parser.c (c_parser_std_attribute): Expect argument to
2538 nodiscard attribute to be a string. Do not special-case ignoring
2539 nodiscard.
2540 * c-typeck.c (maybe_warn_nodiscard): New.
2541 (build_compound_expr, emit_side_effect_warnings): Call
2542 maybe_warn_nodiscard.
2543 (c_process_expr_stmt, c_finish_stmt_expr): Also call
2544 emit_side_effect_warnings if warn_unused_result.
2545
4f0606fe
GA
25462020-10-29 Asher Gordon <AsDaGo@posteo.net>
2547
2548 * c-typeck.c (free_all_tagged_tu_seen_up_to): Replace free
2549 with XDELETE.
2550 (finish_init): Likewise.
2551 (pop_init_level): Likewise.
2552
e93aae4a
GA
25532020-10-28 Joseph Myers <joseph@codesourcery.com>
2554
2555 * c-decl.c (store_parm_decls_newstyle): Use pedwarn_c11 not
2556 error_at for omitted parameter name.
2557
25582020-10-28 Jakub Jelinek <jakub@redhat.com>
2559
2560 * c-parser.c (c_parser_omp_clause_name): Handle allocate.
2561 (c_parser_omp_clause_allocate): New function.
2562 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_ALLOCATE.
2563 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
2564 OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK,
2565 OMP_TASK_CLAUSE_MASK, OMP_TASKGROUP_CLAUSE_MASK,
2566 OMP_DISTRIBUTE_CLAUSE_MASK, OMP_TEAMS_CLAUSE_MASK,
2567 OMP_TARGET_CLAUSE_MASK, OMP_TASKLOOP_CLAUSE_MASK): Add
2568 PRAGMA_OMP_CLAUSE_ALLOCATE.
2569 * c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_ALLOCATE.
2570
89bb01e7
GA
25712020-10-27 Joseph Myers <joseph@codesourcery.com>
2572
2573 * c-parser.c (c_parser_std_attribute_specifier): Allow duplicate
2574 standard attributes.
2575
efe71fcc
GA
25762020-10-23 Marek Polacek <polacek@redhat.com>
2577
2578 PR c++/91741
2579 * c-parser.c (c_parser_binary_expression): Implement -Wsizeof-array-div.
2580 (c_parser_postfix_expression): Set PAREN_SIZEOF_EXPR.
2581 (c_parser_expr_list): Handle PAREN_SIZEOF_EXPR like SIZEOF_EXPR.
2582 * c-tree.h (char_type_p): Declare.
2583 * c-typeck.c (char_type_p): No longer static.
2584
25852020-10-23 Martin Sebor <msebor@redhat.com>
2586
2587 PR middle-end/97552
2588 * c-decl.c (get_parm_array_spec): Handle static VLA parameters.
2589
2fe5b7d1
GA
25902020-09-19 Martin Sebor <msebor@redhat.com>
2591
2592 PR c/50584
2593 * c-decl.c (lookup_last_decl): Define new function.
2594 (c_decl_attributes): Call it.
2595 (start_decl): Add argument and use it.
2596 (finish_decl): Call build_attr_access_from_parms and decl_attributes.
2597 (get_parm_array_spec): Define new function.
2598 (push_parm_decl): Call get_parm_array_spec.
2599 (start_function): Call warn_parm_array_mismatch. Build attribute
2600 access and add it to current function.
2601 * c-parser.c (c_parser_declaration_or_fndef): Diagnose mismatches
2602 in forms of array parameters.
2603 * c-tree.h (start_decl): Add argument.
2604
26052020-09-19 Sandra Loosemore <sandra@codesourcery.com>
2606
2607 * c-decl.c (c_break_label, c_cont_label): Delete, and replace
2608 with...
2609 (in_statement): New.
2610 (start_function): Adjust for above change.
2611 (c_push_function_context, c_pop_function_context): Likewise.
2612 * c-lang.h (struct language_function): Likewise.
2613 * c-objc-common.h (LANG_HOOKS_BLOCK_MAY_FALLTHRU): Define.
2614 * c-parser.c (objc_foreach_break_label, objc_foreach_continue_label):
2615 New.
2616 (c_parser_statement_after_labels): Adjust calls to c_finish_bc_stmt.
2617 (c_parser_switch_statement): Adjust break/switch context handling
2618 and calls to renamed functions.
2619 (c_parser_while_statement): Adjust break/switch context handling and
2620 build a WHILE_STMT.
2621 (c_parser_do_statement): Ditto, with DO_STMT respectively.
2622 (c_parser_for_statement): Ditto, with FOR_STMT respectively.
2623 (c_parser_omp_for_loop): Adjust break/switch context handling.
2624 * c-tree.h (c_break_label, c_cont_label): Delete.
2625 (IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
2626 (IN_OMP_BLOCK, IN_OMP_FOR, IN_OBJC_FOREACH): Define.
2627 (in_statement, switch_statement_break_seen_p): Declare.
2628 (c_start_case, c_finish_case): Renamed to...
2629 (c_start_switch, c_finish_switch).
2630 (c_finish_bc_stmt): Adjust arguments.
2631 * c-typeck.c (build_function_call_vec): Don't try to print
2632 statements with %qE format.
2633 (struct c_switch): Rename switch_expr field to switch_stmt.
2634 Add break_stmt_seen_p field.
2635 (c_start_case): Rename to c_start_switch. Build a SWITCH_STMT
2636 instead of a SWITCH_EXPR. Update for changes to struct c_switch.
2637 (do_case): Update for changes to struct c_switch.
2638 (c_finish_case): Rename to c_finish_switch. Update for changes to
2639 struct c_switch and change of representation from SWITCH_EXPR to
2640 SWITCH_STMT.
2641 (c_finish_loop): Delete.
2642 (c_finish_bc_stmt): Update to reflect changes to break/continue
2643 state representation. Build a BREAK_STMT or CONTINUE_STMT instead
2644 of a GOTO_EXPR except for objc foreach loops.
2645
e1a4a8a0
GA
26462020-09-01 Jakub Jelinek <jakub@redhat.com>
2647
2648 PR c++/96867
2649 * c-typeck.c (handle_omp_array_sections_1): Test C_ARRAY_PARAMETER
2650 only on PARM_DECLs.
2651
8f7ea26a
GA
26522020-08-28 Martin Sebor <msebor@redhat.com>
2653
2654 PR c/96596
2655 * c-decl.c (match_builtin_function_types): Avoid dealing with erroneous
2656 argument type.
2657
8b394f01
GA
26582020-08-27 Martin Liska <mliska@suse.cz>
2659
2660 * gimple-parser.c (c_parser_gimple_compound_statement): Set exact argument of a vector
2661 growth function to true.
2662
db0f6efe
GA
26632020-08-25 Tobias Burnus <tobias@codesourcery.com>
2664
2665 PR c/96678
2666 * c-typeck.c (handle_omp_array_sections_1): Talk about
2667 array function parameter in the error message.
2668
5c265693
GA
26692020-08-18 Jakub Jelinek <jakub@redhat.com>
2670
2671 PR c/96571
2672 * c-parser.c (c_parser_generic_selection): Change match_found from bool
2673 to int, holding index of the match. Call mark_exp_read on the selector
2674 expression and on expressions other than the selected one.
2675
4967ca2f
GA
26762020-08-01 Richard Sandiford <richard.sandiford@arm.com>
2677
2678 PR c/96377
2679 * c-typeck.c (process_init_element): Split test for whether to
2680 recurse into a record, union or array into...
2681 (initialize_elementwise_p): ...this new function. Don't recurse
2682 into a vector type if the initialization value is also a vector.
2683
48cc2e46
GA
26842020-07-31 Richard Biener <rguenther@suse.de>
2685
2686 PR debug/96383
2687 * c-objc-common.h (LANG_HOOKS_FINALIZE_EARLY_DEBUG):
2688 Define to c_common_finalize_early_debug.
2689
3ea9abca
GA
26902020-07-22 Tobias Burnus <tobias@codesourcery.com>
2691
2692 * c-parser.c (c_parser_omp_clause_hint): Require nonnegative hint clause.
2693 (c_parser_omp_critical): Permit hint(0) clause without named critical.
2694 (c_parser_omp_construct): Don't assert if error_mark_node is returned.
2695
30430061
GA
26962020-07-21 Sunil K Pandey <skpgkp2@gmail.com>
2697
2698 PR target/95237
2699 * c-decl.c (finish_decl): Call target hook
2700 lower_local_decl_alignment to lower local decl alignment.
2701
3f8ca9cb
GA
27022020-07-09 Julian Brown <julian@codesourcery.com>
2703 Thomas Schwinge <thomas@codesourcery.com>
2704
2705 PR middle-end/95270
2706 * c-typeck.c (c_finish_omp_clauses): Set OMP_CLAUSE_SIZE (bias) to zero
2707 for standalone attach/detach clauses.
2708
a82c4c4c 27092020-07-08 Eric Botcazou <ebotcazou@adacore.com>
50873cc5
GA
2710
2711 * c-typeck.c (convert_for_assignment): If -Wscalar-storage-order is
2712 set, warn for conversion between pointers that point to incompatible
2713 scalar storage orders.
2714
f60ee68d
GA
27152020-07-07 Kaipeng Zhou <zhoukaipeng3@huawei.com>
2716
2717 * c-parser.c (c_parser_statement_after_labels): Pass correct
2718 parameters to c_parser_do_statement.
2719
56638b9b
GA
27202020-06-16 Jakub Jelinek <jakub@redhat.com>
2721
2722 * c-parser.c (c_parser_expr_no_commas): Save, clear and restore
2723 c_in_omp_for.
2724 (c_parser_omp_for_loop): Set c_in_omp_for around some calls to avoid
2725 premature c_fully_fold. Defer explicit c_fully_fold calls to after
2726 c_finish_omp_for.
2727 * c-tree.h (c_in_omp_for): Declare.
2728 * c-typeck.c (c_in_omp_for): Define.
2729 (build_modify_expr): Avoid c_fully_fold if c_in_omp_for.
2730 (digest_init): Likewise.
2731 (build_binary_op): Likewise.
2732
27332020-06-16 Jakub Jelinek <jakub@redhat.com>
2734
2735 * c-parser.c (c_parser_omp_clause_schedule): Reject modifier separated
2736 from kind by comma rather than colon.
2737
1a59f3db
GA
27382020-06-05 Mark Wielaard <mark@klomp.org>
2739
2740 * c-decl.c (implicit_decl_warning): When warned and olddecl is
2741 an undeclared builtin, then add a fixit header hint, if found.
2742 (implicitly_declare): Add OPT_Wbuiltin_declaration_mismatch to
2743 warning_at about implicit builtin declaration type mismatch.
2744
9a5b7438
GA
27452020-06-03 Mark Wielaard <mark@klomp.org>
2746
2747 * c-parser.c (struct c_parser): Add seen_string_literal
2748 bitfield.
2749 (c_parser_consume_token): Reset seen_string_literal.
2750 (c_parser_error_richloc): Add name_hint if seen_string_literal
2751 and next token is a CPP_NAME and we have a missing header
2752 suggestion for the name.
2753 (c_parser_string_literal): Set seen_string_literal.
2754
27552020-06-03 Mark Wielaard <mark@klomp.org>
2756
2757 * c-parser.c (c_parser_postfix_expression_after_primary): Add
2758 scope with matching_parens after CPP_OPEN_PAREN.
2759
27602020-06-03 Tobias Burnus <tobias@codesourcery.com>
2761
2762 * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redefine.
2763
53ffb43a
GA
27642020-05-28 Nicolas Bértolo <nicolasbertolo@gmail.com>
2765
2766 * Make-lang.in: Remove extra slash.
2767
8f66f175
ML
27682020-05-19 Martin Liska <mliska@suse.cz>
2769
2770 * c-parser.c: Fix typo.
2771
49ddde69
JJ
27722020-05-14 Jakub Jelinek <jakub@redhat.com>
2773
2774 * c-parser.c (c_parser_omp_target): Set cfun->has_omp_target.
2775
eb72dc66
RB
27762020-05-07 Richard Biener <rguenther@suse.de>
2777
2778 PR middle-end/94703
2779 * gimple-parser.c (c_parser_parse_ssa_name): Do not set
2780 DECL_GIMPLE_REG_P.
2781
bf915591
JJ
27822020-04-30 Jakub Jelinek <jakub@redhat.com>
2783
2784 PR c/94842
2785 * c-decl.c (set_labels_context_r): In addition to context-less
2786 LABEL_DECLs adjust also LABEL_DECLs with context equal to
2787 parent function if any.
2788 (store_parm_decls): Adjust comment.
2789
e1113ffb
JJ
27902020-04-19 Jakub Jelinek <jakub@redhat.com>
2791
2792 PR objc/94637
2793 * c-parser.c (c_parser_objc_selector_arg): Handle CPP_SCOPE like
2794 two CPP_COLON tokens.
2795
2e389749
JJ
27962020-04-17 Jakub Jelinek <jakub@redhat.com>
2797
2798 PR other/94629
2799 * c-parser.c (c_parser_oacc_routine): Remove redundant assignment
2800 to data.clauses.
2801
2dc9294c
JJ
28022020-04-15 Jakub Jelinek <jakub@redhat.com>
2803
2804 PR c/94593
2805 * c-parser.c (c_parser_pragma) <case PRAGMA_OMP_REQUIRES>: Reject
2806 requires directive when not at file scope.
2807
13e41d8b
TB
28082020-04-08 Tobias Burnus <tobias@codesourcery.com>
2809
2810 PR middle-end/94120
2811 * c-decl.c (c_check_in_current_scope): New function.
2812 * c-tree.h (c_check_in_current_scope): Declare it.
2813 * c-parser.c (c_parser_oacc_declare): Add check that variables
2814 are declared in the same scope as the directive. Fix handling
2815 of namespace vars.
2816
4df50a05
JJ
28172020-04-07 Jakub Jelinek <jakub@redhat.com>
2818
2819 PR c++/94512
2820 * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
2821 if c_parser_omp_master succeeded.
2822
5db9e893
JJ
28232020-03-23 Jakub Jelinek <jakub@redhat.com>
2824
2825 PR gcov-profile/94029
2826 PR c/94239
2827 * c-parser.c (c_parser_declaration_or_fndef): Initialize endloc to
2828 the function_start_locus location. Don't do that afterwards for the
2829 __GIMPLE body parsing.
2830
9def91e9
JJ
28312020-03-19 Jakub Jelinek <jakub@redhat.com>
2832
2833 PR gcov-profile/94029
2834 * c-tree.h (finish_function): Add location_t argument defaulted to
2835 input_location.
2836 * c-parser.c (c_parser_compound_statement): Add endlocp argument and
2837 set it to the locus of closing } if non-NULL.
2838 (c_parser_compound_statement_nostart): Return locus of closing }.
2839 (c_parser_parse_rtl_body): Likewise.
2840 (c_parser_declaration_or_fndef): Propagate locus of closing } to
2841 finish_function.
2842 * c-decl.c (finish_function): Add end_loc argument, use it instead of
2843 input_location to set function_end_locus.
2844
046c5890
JJ
28452020-03-17 Jakub Jelinek <jakub@redhat.com>
2846
2847 PR c/94172
2848 * c-tree.h (C_TYPE_INCOMPLETE_VARS): Define to TYPE_LANG_SLOT_1
2849 instead of TYPE_VFIELD, and support it on {RECORD,UNION,ENUMERAL}_TYPE.
2850 (TYPE_ACTUAL_ARG_TYPES): Check that it is only used on FUNCTION_TYPEs.
2851 * c-decl.c (pushdecl): Push C_TYPE_INCOMPLETE_VARS also to
2852 ENUMERAL_TYPEs.
2853 (finish_incomplete_vars): New function, moved from finish_struct. Use
2854 relayout_decl instead of layout_decl.
2855 (finish_struct): Remove obsolete comment about C_TYPE_INCOMPLETE_VARS
2856 being TYPE_VFIELD. Use finish_incomplete_vars.
2857 (finish_enum): Clear C_TYPE_INCOMPLETE_VARS. Call
2858 finish_incomplete_vars.
2859 * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
2860 also on ENUMERAL_TYPEs.
2861
c015ff8c
JJ
28622020-03-16 Jakub Jelinek <jakub@redhat.com>
2863
2864 PR c/94179
2865 * c-fold.c (c_fully_fold_internal): Handle MEM_REF.
2866
f2e9fe5f
MS
28672020-03-13 Martin Sebor <msebor@redhat.com>
2868
2869 PR c/94040
2870 * c-decl.c (builtin_structptr_type_count): New constant.
2871 (match_builtin_function_types): Reject decls that are incompatible
2872 in types pointed to by pointers.
2873 (diagnose_mismatched_decls): Adjust comments.
2874
c9d70946
JM
28752020-03-05 Joseph Myers <joseph@codesourcery.com>
2876
2877 PR c/93577
2878 * c-typeck.c (pop_init_level): Do not diagnose initializers as
2879 empty when initialized type is error_mark_node.
2880 (set_designator, process_init_element): Ignore initializers for
2881 elements of a variable-size type or of error_mark_node.
2882
726e292d
MS
28832020-03-01 Martin Sebor <msebor@redhat.com>
2884
2885 PR middle-end/93926
2886 * c-decl.c (types_close_enough_to_match): New function.
2887 (match_builtin_function_types):
2888 (diagnose_mismatched_decls): Add missing inform call to a warning.
2889
a499c2f8
MS
28902020-03-01 Martin Sebor <msebor@redhat.com>
2891
2892 PR c/93812
2893 * c-typeck.c (build_functype_attribute_variant): New function.
2894 (composite_type): Call it.
2895
9c3da8cc
JJ
28962020-02-25 Jakub Jelinek <jakub@redhat.com>
2897
2898 PR other/93912
2899 * gimple-parser.c (c_parser_gimple_parse_bb_spec_edge_probability):
2900 Rename last argument from probablity to probability.
2901
bacdd5e9
JJ
29022020-02-13 Jakub Jelinek <jakub@redhat.com>
2903
2904 PR c/93576
2905 * c-decl.c (grokdeclarator): If this_size_varies, only push size into
2906 *expr if it has side effects.
2907
f9eb0973
JL
29082020-01-30 Jeff Law <law@redhat.com>
2909
2910 PR c/88660
2911 * c-parser.c (c_parser_switch_statement): Make sure to request
2912 marking the switch expr as used.
2913
ac68e287
JM
29142020-01-22 Joseph Myers <joseph@codesourcery.com>
2915
2916 PR c/93348
2917 * c-typeck.c (build_c_cast): Call remove_c_maybe_const_expr on
2918 argument with integer operands.
2919
852f0ae8
KK
29202020-01-16 Kerem Kat <keremkat@gmail.com>
2921
2922 PR c/92833
2923 * c-parser.c (c_parser_consume_token): Fix peeked token stack pop
2924 to support 4 available tokens.
2925
e2346a33
JM
29262020-01-15 Joseph Myers <joseph@codesourcery.com>
2927
2928 PR c/93072
2929 * c-decl.c (pushdecl): Use TREE_PUBLIC, not DECL_EXTERNAL, to
2930 determine whether to set DECL_CONTEXT.
2931
3d77686d
JM
29322020-01-13 Joseph Myers <joseph@codesourcery.com>
2933
2934 PR c/93241
2935 * c-typeck.c (build_c_cast): Check for expressions with integer
2936 operands that can occur in an unevaluated part of an integer
2937 constant expression and call note_integer_operands as needed.
2938
f74c4b2c
RB
29392019-01-08 Richard Biener <rguenther@suse.de>
2940
2941 PR middle-end/93199
2942 * gimple-parser.c (c_parser_parse_gimple_body): Remove __PHI IFN
2943 permanently.
2944
8d9254fc
JJ
29452020-01-01 Jakub Jelinek <jakub@redhat.com>
2946
2947 Update copyright years.
2948
39292e25
EB
29492019-12-20 Eric Botcazou <ebotcazou@adacore.com>
2950
2951 * c-decl.c (collect_source_ref_cb): Delete.
2952 (for_each_global_decl): Rename into...
2953 (collect_source_refs): ...this. Call collect_source_ref directly.
2954 (c_parse_final_cleanups): Always call collect_source_ref on the main
2955 input filename.
2956
519d7496
JB
29572019-12-19 Julian Brown <julian@codesourcery.com>
2958 Cesar Philippidis <cesar@codesourcery.com>
2959
2960 * c-parser.c (c_parser_omp_clause_name): Add parsing of attach and
2961 detach clauses.
2962 (c_parser_omp_variable_list): Add ALLOW_DEREF optional parameter.
2963 Allow deref (->) in variable lists if true.
2964 (c_parser_omp_var_list_parens): Add ALLOW_DEREF optional parameter.
2965 Pass to c_parser_omp_variable_list.
2966 (c_parser_oacc_data_clause): Support attach and detach clauses. Update
2967 call to c_parser_omp_variable_list.
2968 (c_parser_oacc_all_clauses): Support attach and detach clauses.
2969 (OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK,
2970 OACC_KERNELS_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK,
2971 OACC_SERIAL_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_ATTACH.
2972 (OACC_EXIT_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_DETACH.
2973 * c-typeck.c (handle_omp_array_sections_1): Reject subarrays for attach
2974 and detach. Support deref.
2975 (handle_omp_array_sections): Use GOMP_MAP_ATTACH_DETACH instead of
2976 GOMP_MAP_ALWAYS_POINTER for OpenACC.
2977 (c_oacc_check_attachments): New function.
2978 (c_finish_omp_clauses): Check attach/detach arguments for being
2979 pointers using above. Support deref.
2980
a6163563
JB
29812019-12-19 Julian Brown <julian@codesourcery.com>
2982 Maciej W. Rozycki <macro@codesourcery.com>
2983 Tobias Burnus <tobias@codesourcery.com>
2984 Thomas Schwinge <thomas@codesourcery.com>
2985
2986 * c-parser.c (c_parser_omp_clause_name): Support no_create.
2987 (c_parser_oacc_data_clause): Likewise.
2988 (c_parser_oacc_all_clauses): Likewise.
2989 (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
2990 (OACC_PARALLEL_CLAUSE_MASK, OACC_SERIAL_CLAUSE_MASK): Add
2991 PRAGMA_OACC_CLAUSE_NO_CREATE.
2992 * c-typeck.c (handle_omp_array_sections): Support
2993 GOMP_MAP_NO_ALLOC.
2994
d68f5d45
DM
29952019-12-09 David Malcolm <dmalcolm@redhat.com>
2996
2997 * c-objc-common.c (range_label_for_type_mismatch::get_text):
2998 Replace label_text ctor calls.
2999
4691bf46
JM
30002019-12-04 Joseph Myers <joseph@codesourcery.com>
3001
3002 PR c/36941
3003 PR c/88827
3004 * c-typeck.c (convert_lvalue_to_rvalue): Call
3005 require_complete_type for arguments not of void types.
3006 (build_indirect_ref): Do not diagnose dereferencing pointers to
3007 incomplete types.
3008 * c-tree.h (C_TYPE_ERROR_REPORTED): Remove.
3009
85d11957
JM
30102019-12-03 Joseph Myers <joseph@codesourcery.com>
3011
3012 PR c/88704
3013 * c-decl.c (store_parm_decls_oldstyle): Diagnose use of [*] in
3014 old-style parameter definitions.
3015
4569f8b3
SL
30162019-12-01 Sandra Loosemore <sandra@codesourcery.com>
3017
3018 PR target/92499
3019
3020 * c-decl.c (flexible_array_type_p): Move to common code.
3021
65ef05d0
RS
30222019-11-30 Richard Sandiford <richard.sandiford@arm.com>
3023
3024 * c-decl.c (start_decl): Allow initialization of variables whose
3025 size is a POLY_INT_CST.
3026 (finish_decl): Use verify_type_context to check whether the target
3027 allows variables with a particular type to have static or thread-local
3028 storage duration. Don't raise a second error if such variables do
3029 not have a constant size.
3030 (grokdeclarator): Use verify_type_context to check whether the
3031 target allows fields or array elements to have a particular type.
3032 * c-typeck.c (pointer_diff): Use verify_type_context to test whether
3033 the target allows pointer difference for the types involved.
3034 (build_unary_op): Likewise for pointer increment and decrement.
3035
34b43828
JM
30362019-11-29 Joseph Myers <joseph@codesourcery.com>
3037
3038 * c-parser.c (struct c_parser): Add members raw_tokens and
3039 raw_tokens_used.
3040 (c_lex_one_token): Add argument raw. Handle lexing raw tokens and
3041 using previously-lexed raw tokens.
3042 (c_parser_peek_nth_token_raw)
3043 (c_parser_check_balanced_raw_token_sequence): New functions.
3044 (c_parser_nth_token_starts_std_attributes): Use
3045 c_parser_check_balanced_raw_token_sequence for Objective-C.
3046
5b8d9367
JM
30472019-11-25 Joseph Myers <joseph@codesourcery.com>
3048
3049 PR c/91985
3050 * c-decl.c (finish_declspecs): Use int instead of decimal
3051 floating-point types if decimal floating-point not supported.
3052
1723e1be
JM
30532019-11-25 Joseph Myers <joseph@codesourcery.com>
3054
3055 * c-tree.h (struct c_declarator): Use a structure for id member.
3056 * c-decl.c (grokdeclarator): Extract attributes from cdk_id
3057 declarators at the start, not when handling individual declarators
3058 later. Use u.id.id instead of u.id.
3059 (grokfield): Use u.id.id instead of u.id.
3060 (build_id_declarator): Set u.id.id and u.id.attrs.
3061 (finish_declspecs): Handle postfix attributes in case of typedef
3062 name or typeof used.
3063 * c-parser.c (c_parser_direct_declarator)
3064 (c_parser_direct_declarator_inner): Place declarator for
3065 attributes inside that for function or array, not outside. Set
3066 u.id.attrs for identifiers.
3067 (c_parser_parameter_declaration): Use u.id.id instead of u.id.
3068 * gimple-parser.c (c_parser_gimple_declaration): Use u.id.id
3069 instead of u.id.
3070
bdaf8be1
JJ
30712019-11-22 Jakub Jelinek <jakub@redhat.com>
3072
3073 PR c/90677
3074 * c-decl.c (identifier_global_tag): Define.
3075
3e00ba47
RB
30762019-11-20 Richard Biener <rguenther@suse.de>
3077
3078 PR c/92088
3079 * c-decl.c (grokdeclarator): Prevent inlining of nested
3080 function with VLA arguments.
3081
8c5b727a
JM
30822019-11-20 Joseph Myers <joseph@codesourcery.com>
3083
3084 * c-decl.c (c_warn_type_attributes): New function.
3085 (groktypename, grokdeclarator, finish_declspecs): Call
3086 c_warn_type_attributes before applying attributes to types.
3087 * c-tree.h (c_warn_type_attributes): Declare.
3088
192961ff
JM
30892019-11-19 Joseph Myers <joseph@codesourcery.com>
3090
3091 * c-decl.c (c_warn_unused_attributes): Use pedwarn not warning for
3092 standard attributes.
3093 * c-parser.c (c_parser_std_attribute): Take argument for_tm. Use
3094 pedwarn for unknown standard attributes and return error_mark_node
3095 for them.
3096
20a38017
MM
30972019-11-18 Matthew Malcomson <matthew.malcomson@arm.com>
3098
3099 * c-parser.c (c_parser_parse_rtl_body): Always call
3100 run_rtl_passes, even if startwith pass is not provided.
3101
d5fbe5e0
JM
31022019-11-15 Joseph Myers <joseph@codesourcery.com>
3103
3104 * c-parser.c (c_parser_std_attribute_specifier): Diagnose
3105 duplicate standard attributes.
3106
97cc1187
JM
31072019-11-15 Joseph Myers <joseph@codesourcery.com>
3108
3109 * c-decl.c (std_attribute_table): Add maybe_unused.
3110
f8aea5e3
JM
31112019-11-15 Joseph Myers <joseph@codesourcery.com>
3112
3113 * c-decl.c (std_attribute_table): Add fallthrough.
3114 * c-parser.c (c_parser_declaration_or_fndef): Diagnose fallthrough
3115 attribute at top level.
3116
2cc94aa8
JM
31172019-11-15 Joseph Myers <joseph@codesourcery.com>
3118
3119 * c-decl.c (std_attribute_table): New.
3120 (c_init_decl_processing): Register attributes from
3121 std_attribute_table.
3122 * c-parser.c (c_parser_attribute_arguments): Add arguments
3123 require_string and allow_empty_args. All callers changed.
3124 (c_parser_std_attribute): Set require_string argument for
3125 "deprecated" attribute.
3126
7c5890cc
JM
31272019-11-14 Joseph Myers <joseph@codesourcery.com>
3128
3129 * c-parser.c (c_parser_postfix_expression)
3130 (c_parser_check_literal_zero): Handle CPP_UTF8CHAR.
3131 * gimple-parser.c (c_parser_gimple_postfix_expression): Likewise.
3132
e8738f4e
RS
31332019-11-14 Richard Sandiford <richard.sandiford@arm.com>
3134
3135 * c-typeck.c (build_conditional_expr): Use truth_type_for instead
3136 of build_same_sized_truth_vector_type.
3137 (build_vec_cmp): Likewise.
3138
b2417b59
JJ
31392019-11-14 Jakub Jelinek <jakub@redhat.com>
3140
bedb7f04
JJ
3141 * c-parser.c (c_parser_omp_context_selector): Don't require score
3142 argument to fit into shwi, just to be INTEGER_CST. Diagnose
3143 negative score.
3144
b2417b59
JJ
3145 * c-parser.c (c_parser_omp_context_selector): Rename
3146 CTX_PROPERTY_IDLIST to CTX_PROPERTY_NAME_LIST, add CTX_PROPERTY_ID.
3147 Use CTX_PROPERTY_ID for atomic_default_mem_order, only allow a single
3148 identifier in that. For CTX_PROPERTY_NAME_LIST, allow identifiers
3149 and string literals.
3150
4e03c3a7
JM
31512019-11-14 Joseph Myers <joseph@codesourcery.com>
3152
3153 * c-tree.h (enum c_typespec_kind): Add ctsk_tagref_attrs and
3154 ctsk_tagfirstref_attrs.
3155 (struct c_declspecs): Update description of attrs. Add
3156 postfix_attrs and non_std_attrs_seen_p. Increase size of
3157 typespec_kind bit-field.
3158 (c_warn_unused_attributes): New declaration.
3159 (parser_xref_tag): Update prototype.
3160 * c-decl.c (c_warn_unused_attributes): New function.
3161 (shadow_tag_warned): Handle ctsk_tagfirstref_attrs and
3162 ctsk_tagref_attrs. Handle attribute declarations.
3163 (check_compound_literal_type): Handle ctsk_tagfirstref_attrs.
3164 (grokdeclarator): Handle standard attributes.
3165 (parser_xref_tag): Add arguments have_std_attrs and attrs. Apply
3166 attributes to incomplete type reference.
3167 (xref_tag): Update call to parser_xref_tag.
3168 (declspecs_add_addrspace, declspecs_add_type)
3169 (declspecs_add_scspec, declspecs_add_attrs): Set
3170 non_std_attrs_seen_p.
3171 (finish_declspecs): Apply postfix standard attributes to type.
3172 * c-parser.c (c_token_starts_declspecs)
3173 (c_token_starts_declaration, c_parser_next_token_starts_declspecs)
3174 (c_parser_next_tokens_start_declaration): Update comments.
3175 (c_parser_consume_token, c_parser_consume_pragma): Handle moving
3176 parser->tokens[2] to parser->tokens[1].
3177 (c_parser_nth_token_starts_std_attributes)
3178 (c_parser_std_attribute_specifier_sequence): New functions.
3179 (c_parser_declaration_or_fndef): Add arguments have_attrs and
3180 attrs. All callers changed. Handle standard attributes.
3181 (c_parser_parms_declarator, c_parser_parms_list_declarator)
3182 (c_parser_parameter_declaration): Add argument have_gnu_attrs.
3183 All callers changed.
3184 (c_parser_declspecs): Add arguments start_std_attr_ok and
3185 end_std_attr_ok. All callers changed. Handle standard
3186 attributes.
3187 (c_parser_enum_specifier, c_parser_struct_or_union_specifier)
3188 (c_parser_direct_declarator, c_parser_direct_declarator_inner)
3189 (c_parser_compound_statement_nostart, c_parser_all_labels)
3190 (c_parser_label, c_parser_statement, c_parser_for_statement):
3191 Handle standard attributes.
3192 * c-parser.h (c_parser_declspecs): Update prototype.
3193 * gimple-parser.c (c_parser_gimple_declaration): Update call to
3194 c_parser_declspecs.
3195
0c29cac4
ML
31962019-11-12 Martin Liska <mliska@suse.cz>
3197
3198 * gimple-parser.c: Do not include params.h.
3199
028d4092
ML
32002019-11-12 Martin Liska <mliska@suse.cz>
3201
3202 * gimple-parser.c (c_parser_parse_gimple_body): Replace old parameter syntax
3203 with the new one, include opts.h if needed. Use SET_OPTION_IF_UNSET
3204 macro.
3205
62aee289
MR
32062019-11-12 Maciej W. Rozycki <macro@codesourcery.com>
3207 Frederik Harwath <frederik@codesourcery.com>
3208
3209 gcc/c/
3210 * c-parser.c (OACC_SERIAL_CLAUSE_MASK): New macro.
3211 (c_parser_oacc_kernels_parallel): Rename function to...
3212 (c_parser_oacc_compute): ... this. Handle PRAGMA_OACC_SERIAL.
3213 (c_parser_omp_construct): Update accordingly.
3214
3215
7cec9588
JJ
32162019-11-11 Jakub Jelinek <jakub@redhat.com>
3217
3218 * c-parser.c (c_parser_translation_unit): Diagnose declare target
3219 without corresponding end declare target.
3220
f486280c
RS
32212019-11-08 Richard Sandiford <richard.sandiford@arm.com>
3222
3223 * c-convert.c (convert): Only handle vector conversions if one of
3224 the types satisfies gnu_vector_type_p or if -flax-vector-conversions
3225 allows it.
3226 * c-typeck.c (build_array_ref): Only allow vector indexing if the
3227 vectors satisfy gnu_vector_type_p.
3228 (build_unary_op): Only allow unary operators to be applied to
3229 vectors if they satisfy gnu_vector_type_p.
3230 (digest_init): Only allow by-element initialization of vectors
3231 if they satisfy gnu_vector_type_p.
3232 (really_start_incremental_init): Likewise.
3233 (push_init_level): Likewise.
3234 (pop_init_level): Likewise.
3235 (process_init_element): Likewise.
3236 (build_binary_op): Only allow binary operators to be applied to
3237 vectors if they satisfy gnu_vector_type_p.
3238
017c6491
JM
32392019-11-08 Joseph Myers <joseph@codesourcery.com>
3240
3241 * c-decl.c (grokparms): Convert () in a function definition to
3242 (void) for C2x.
3243 (store_parm_decls_oldstyle): Pedwarn for C2x.
3244 (store_parm_decls): Update comment about () not generating a
3245 prototype.
3246
c01bd174
JM
32472019-11-07 Joseph Myers <joseph@codesourcery.com>
3248
3249 * c-parser.c (c_parser_attribute_arguments): New function.
3250 Factored out of c_parser_gnu_attribute.
3251 (c_parser_gnu_attribute): Use c_parser_attribute_arguments.
3252 (c_parser_balanced_token_sequence, c_parser_std_attribute)
3253 (c_parser_std_attribute_specifier): New functions.
3254 (c_parser_transaction_attributes): Use
3255 c_parser_std_attribute_specifier.
3256
471c5330
JM
32572019-11-07 Joseph Myers <joseph@codesourcery.com>
3258
3259 * c-parser.c (c_parser): Remove lex_untranslated_string. Add
3260 lex_joined_string and translate_strings_p.
3261 (c_lex_one_token): Pass 0 or C_LEX_STRING_NO_JOIN to
3262 c_lex_with_flags.
3263 (c_parser_string_literal): New function.
3264 (c_parser_static_assert_declaration_no_semi): Use
3265 c_parser_string_literal. Do not set lex_untranslated_string.
3266 (c_parser_asm_string_literal): Use c_parser_string_literal.
3267 (c_parser_simple_asm_expr): Do not set lex_untranslated_string.
3268 (c_parser_gnu_attributes): Set and restore translate_strings_p
3269 instead of lex_untranslated_string.
3270 (c_parser_asm_statement): Do not set lex_untranslated_string.
3271 (c_parser_asm_operands): Likewise.
3272 (c_parser_has_attribute_expression): Set and restore
3273 translate_strings_p instead of lex_untranslated_string.
3274 (c_parser_postfix_expression): Use c_parser_string_literal.
3275 (pragma_lex): Likewise.
3276 (c_parser_pragma_pch_preprocess): Set lex_joined_string.
3277 (c_parse_file): Set translate_strings_p.
3278 * gimple-parser.c (c_parser_gimple_postfix_expression)
3279 (c_parser_gimple_or_rtl_pass_list): Use c_parser_string_literal.
3280 * c-parser.c (c_parser_string_literal): Declare function.
3281
d0c464d2
JJ
32822019-11-02 Jakub Jelinek <jakub@redhat.com>
3283
3284 * c-parser.c (c_finish_omp_declare_variant): Use
3285 omp_get_context_selector instead of c_omp_get_context_selector.
3286
ac2cfa6c
RS
32872019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3288
3289 * c-tree.h (c_simulate_enum_decl): Declare.
3290 * c-decl.c (c_simulate_enum_decl): New function.
3291 * c-objc-common.h (LANG_HOOKS_SIMULATE_ENUM_DECL): Define to the above.
3292
74078538
RS
32932019-10-29 Richard Sandiford <richard.sandiford@arm.com>
3294
3295 * c-tree.h (c_simulate_builtin_function_decl): Declare.
3296 * c-decl.c (c_simulate_builtin_function_decl): New function.
3297 * c-objc-common.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define
3298 to the above.
3299
ad1539d5
MS
33002019-10-28 Martin Sebor <msebor@redhat.com>
3301
3302 PR c/66970
3303 * c-decl.c (names_builtin_p): Define a new function.
3304
cb73e4e7
RB
33052019-10-28 Richard Biener <rguenther@suse.de>
3306
3307 PR c/92249
3308 * gimple-parser.c (c_parser_parse_gimple_body): Make
3309 current_bb the entry block initially to easier recover
3310 from errors.
3311 (c_parser_gimple_compound_statement): Adjust.
3312
135df52c
JJ
33132019-10-24 Jakub Jelinek <jakub@redhat.com>
3314
3315 * c-parser.c (c_finish_omp_declare_variant): Use
3316 omp_context_selector_matches instead of
3317 c_omp_context_selector_matches.
3318 * c-decl.c (c_decl_attributes): Add "omp declare target block"
3319 attribute in between declare target and end declare target
3320 pragmas.
3321
783bfe5e
JM
33222019-10-15 Joseph Myers <joseph@codesourcery.com>
3323
3324 * c-parser.c (c_parser_attribute_any_word): Rename to
3325 c_parser_gnu_attribute_any_word. All callers changed.
3326 (c_parser_attribute): Rename to c_parser_gnu_attribute. All
3327 callers changed.
3328 (c_parser_attributes): Rename to c_parser_gnu_attributes. All
3329 callers changed.
3330 (c_parser_declaration_or_fndef, c_parser_declspecs)
3331 (c_parser_enum_specifier, c_parser_struct_or_union_specifier)
3332 (c_parser_struct_declaration, c_parser_declarator)
3333 (c_parser_gnu_attribute, c_parser_compound_statement)
3334 (c_parser_label, c_parser_statement, c_parser_objc_method_decl)
3335 (c_parser_transaction_attributes): Add "gnu-" prefix to names of
3336 attribute-related syntax productions.
3337
56898e43
RS
33382019-10-14 Richard Sandiford <richard.sandiford@arm.com>
3339
3340 * c-objc-common.c (useful_aka_type_p): Replace with...
3341 (get_aka_type): ...this new function. Given the original type,
3342 decide which aka type to print (if any). Only look through typedefs
3343 if user_facing_original_type_p.
3344 (print_type): Update accordingly.
3345
b9424661
JJ
33462019-10-14 Jakub Jelinek <jakub@redhat.com>
3347
3348 * c-parser.c (c_parser_omp_all_clauses): Change bool NESTED_P argument
3349 into int NESTED, if it is 2, diagnose missing commas in between
3350 clauses.
3351 (c_parser_omp_context_selector): Pass 2 as last argument to
3352 c_parser_omp_all_clauses.
3353
20de9568
JJ
33542019-10-12 Jakub Jelinek <jakub@redhat.com>
3355
3356 * c-parser.c (c_parser_omp_context_selector): Improve error recovery.
3357 For simd properties, put them directly into TREE_VALUE.
3358 (c_finish_omp_declare_variant): Call c_omp_mark_declare_variant.
3359 If c_omp_context_selector_matches is 0, don't add attribute, otherwise
3360 add "omp declare variant base" attribute rather than
3361 "omp declare variant".
3362
fe2bc27c
JM
33632019-10-11 Joseph Myers <joseph@codesourcery.com>
3364
3365 * c-decl.c (declspecs_add_type): Use pedwarn_c11 for DFP types.
3366
94e7f906
JJ
33672019-10-10 Jakub Jelinek <jakub@redhat.com>
3368
3369 * c-parser.c (c_parser_omp_all_clauses): Add NESTED_P argument, if
3370 true, terminate processing on closing paren and don't skip to end of
3371 pragma line.
3372 (c_parser_omp_declare_simd): Handle also declare variant.
3373 (omp_construct_selectors, omp_device_selectors,
3374 omp_implementation_selectors, omp_user_selectors): New variables.
3375 (c_parser_omp_context_selector,
3376 c_parser_omp_context_selector_specification,
3377 c_finish_omp_declare_variant): New functions.
3378 (c_finish_omp_declare_simd): Handle both declare simd and
3379 declare variant.
3380 (c_parser_omp_declare): Handle declare variant.
3381
93313b94
JM
33822019-10-02 Joseph Myers <joseph@codesourcery.com>
3383
3384 * c-parser.c (c_parser_asm_statement): Handle CPP_SCOPE like two
3385 CPP_COLON tokens.
3386
55879815
RS
33872019-10-01 Richard Sandiford <richard.sandiford@arm.com>
3388
3389 * c-objc-common.c (useful_aka_type_p): New function.
3390 (print_type): Use it to decide whether an aka type is worth printing.
3391
59bc434a
JJ
33922019-09-27 Jakub Jelinek <jakub@redhat.com>
3393
3394 PR c++/88203
3395 * c-parser.c (c_parser_predefined_identifier): New function.
3396 (c_parser_postfix_expression): Use it.
3397 (c_parser_omp_variable_list): Parse predefined identifiers.
3398 * c-typeck.c (c_finish_omp_clauses): Allow predefined variables
3399 in shared and firstprivate clauses, even when they are predetermined
3400 shared.
3401
c6447c20
RS
34022019-09-27 Richard Sandiford <richard.sandiford@arm.com>
3403
3404 * c-typeck.c (build_function_call_vec): Take the original function
3405 decl as an optional final parameter. Pass all built-in calls to
3406 check_builtin_function_arguments.
3407
522da4c2
EB
34082019-09-20 Eric Botcazou <ebotcazou@adacore.com>
3409
3410 PR c/91815
3411 * c-decl.c (pushdecl): In C detect duplicate declarations across scopes
3412 of identifiers in the external scope only for variables and functions.
3413
68e2c199
PK
34142019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3415
3416 PR c/78736
3417 * c-typeck.c (convert_for_assignment): Handle Wenum-conversion.
3418
22f8849d
IS
34192019-08-23 Iain Sandoe <iain@sandoe.co.uk>
3420
3421 PR pch/61250
3422 * c-parser.c (c_parse_file): Call c_common_no_more_pch ()
3423 after determining that the first token is not
3424 PRAGMA_GCC_PCH_PREPROCESS.
3425
db376f45
EB
34262019-08-22 Eric Botcazou <ebotcazou@adacore.com>
3427
3428 * c-parser.c (c_parser_declaration_or_fndef): Set DECL_ARGUMENTS of a
3429 FUNCTION_DECL to the right value in the presence of nested declarators.
3430
4d732405
RS
34312019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3432
3433 PR middle-end/91421
3434 * c-decl.c (merge_decls): Use copy_decl_built_in_function.
3435
cb1180d5
RS
34362019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3437
3438 PR middle-end/91421
3439 * c-decl.c (header_for_builtin_fn): Take a FUNCTION_DECL instead
3440 of a built_in_function.
3441 (diagnose_mismatched_decls, implicitly_declare): Update accordingly.
3442
77eb117f
JJ
34432019-08-10 Jakub Jelinek <jakub@redhat.com>
3444
3445 * c-parser.c (c_parser_omp_clause_name): Parse device_type.
3446 (c_parser_omp_clause_device_type): New function.
3447 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DEVICE_TYPE.
3448 (OMP_DECLARE_TARGET_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_DEVICE_TYPE.
3449 (c_parser_omp_declare_target): Handle device_type clauses. Remove
3450 diagnostics for declare target with clauses nested in clause-less
3451 declare target declaration-definition-seq.
3452 * c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_DEVICE_TYPE.
3453
2c3b8bad
JJ
34542019-08-09 Jakub Jelinek <jakub@redhat.com>
3455
bb522e2e
JJ
3456 * c-parser.c (check_no_duplicate_clause): Simplify using
3457 omp_find_clause.
3458 (c_parser_omp_clause_if): Fix up printing of target {enter,exit} data
3459 directive name modifiers.
3460 (c_parser_omp_clause_proc_bind): Check for duplicate proc_bind clause.
3461
2c3b8bad
JJ
3462 PR c/91401
3463 * c-parser.c (c_parser_omp_clause_dist_schedule): Fix up typos in the
3464 check_no_duplicate_clause call. Comment it out, instead emit a
3465 warning for duplicate dist_schedule clauses.
3466
99769e7f
RS
34672019-08-08 Richard Sandiford <richard.sandiford@arm.com>
3468
3469 * c-decl.c (finish_enum): Clear C_TYPE_BEING_DEFINED.
3470
8860d270
JJ
34712019-08-08 Jakub Jelinek <jakub@redhat.com>
3472
3473 * c-typeck.c (c_finish_omp_clauses): For C_ORT_OMP
3474 OMP_CLAUSE_USE_DEVICE_* clauses use oacc_reduction_head bitmap
3475 instead of generic_head to track duplicates.
3476
398e3feb
JJ
34772019-08-07 Jakub Jelinek <jakub@redhat.com>
3478
3479 * c-parser.c (c_parser_omp_clause_name): Parse use_device_addr clause.
3480 (c_parser_omp_clause_use_device_addr): New function.
3481 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
3482 (OMP_TARGET_DATA_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
3483 (c_parser_omp_target_data): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR
3484 like PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR, adjust diagnostics about no
3485 map or use_device_* clauses.
3486 * c-typeck.c (c_finish_omp_clauses): For OMP_CLAUSE_USE_DEVICE_PTR
3487 in OpenMP, require pointer type rather than pointer or array type.
3488 Handle OMP_CLAUSE_USE_DEVICE_ADDR.
3489
a28351e7
JJ
34902019-07-31 Jakub Jelinek <jakub@redhat.com>
3491
3492 PR c/91192
3493 * c-parser.c (c_parser_sizeof_expression): Call set_c_expr_source_range
3494 even if finish is UNKNOWN_LOCATION, just use start as finish in that
3495 case.
3496
6343b6bf
ML
34972019-07-25 Martin Liska <mliska@suse.cz>
3498 Dominik Infuhr <dominik.infuehr@theobroma-systems.com>
3499
3500 PR c++/23383
3501 * c-decl.c (merge_decls): Merge OPERATOR_DELETE flag.
3502
cb50701e
ML
35032019-07-25 Martin Liska <mliska@suse.cz>
3504
3505 * c-decl.c (merge_decls): Use new macros
3506 (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
3507
62e3e66f
RB
35082019-07-23 Richard Biener <rguenther@suse.de>
3509
3510 PR tree-optimization/83518
3511 * gimple-parser.c (c_parser_parse_gimple_body): When we have
3512 a CFG also rebuild cgraph edges.
3513
554a530f
JJ
35142019-07-20 Jakub Jelinek <jakub@redhat.com>
3515
3516 * c-parser.c (c_parser_omp_clause_name): Handle bind clause.
3517 (c_parser_omp_clause_bind): New function.
3518 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_BIND.
3519 (OMP_LOOP_CLAUSE_MASK): Define.
3520 (c_parser_omp_loop): New function.
3521 (c_parser_omp_parallel, c_parser_omp_teams): Handle parsing of
3522 loop combined with parallel or teams.
3523 (c_parser_omp_construct): Handle PRAGMA_OMP_LOOP.
3524 * c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_BIND.
3525
d119bf79
RS
35262019-07-18 Richard Sandiford <richard.sandiford@arm.com>
3527
3528 PR c/53633
3529 * c-decl.c (finish_function): Check targetm.warn_func_return
3530 before issuing a -Wreturn-type warning.
3531
ab20d992 35322019-07-12 Alexandre Oliva <oliva@adacore.com>
fdc1f343
AO
3533
3534 * gimple-parser.c (c_parser_gimple_try_stmt): New.
3535 (c_parser_compound_statement): Call it.
3536
1fdd6f04
JJ
35372019-07-12 Jakub Jelinek <jakub@redhat.com>
3538
3539 * c-parser.c (c_parser_omp_clause_name): Handle order clause.
3540 (c_parser_omp_clause_order): New function.
3541 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_ORDER.
3542 (OMP_SIMD_CLAUSE_MASK, OMP_FOR_CLAUSE_MASK): Add
3543 PRAGMA_OMP_CLAUSE_ORDER.
3544 * c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_ORDER.
3545
8389386c
RB
35462019-07-10 Richard Biener <rguenther@suse.de>
3547
3548 * gimple-parser.c (c_parser_gimple_postfix_expression): Support
3549 _Literal (int *) &x for address literals.
3550
99b1c316
MS
35512019-07-09 Martin Sebor <msebor@redhat.com>
3552
3553 PR c++/61339
3554 * c-decl.c (xref_tag): Change class-key of PODs to struct and others
3555 to class.
3556 (field_decl_cmp): Same.
3557 * c-parser.c (c_parser_struct_or_union_specifier): Same.
3558 * c-tree.h: Same.
3559 * gimple-parser.c (c_parser_gimple_compound_statement): Same.
3560
6c1dae73
MS
35612019-07-09 Martin Sebor <msebor@redhat.com>
3562
3563 PR c++/61339
3564 * c-decl.c: Change class-key from class to struct and vice versa
3565 to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
3566 * gimple-parser.c: Same.
3567
69b5279e
RB
35682019-07-01 Richard Biener <rguenther@suse.de>
3569
3570 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
3571 _Literal (char *) &"foo" for address literals pointing to
3572 STRING_CSTs.
3573
ab20d992
JJ
35742019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3575
3576 * c-parser.c (c_parse_init): Create keyword for "__intN__" type.
3577 * c-decl.c (declspecs_add_type): Don't pedwarn about "__intN" ISO
3578 C incompatibility if alternate "__intN__" form is used.
3579
1e3d475e
MS
35802019-06-24 Martin Sebor <msebor@redhat.com>
3581
3582 * c-typeck.c (build_binary_op): Hyphenate floating-point.
3583
bf38f7e9
JJ
35842019-06-10 Jakub Jelinek <jakub@redhat.com>
3585
3586 * c-parser.c (c_parser_pragma): Reject PRAGMA_OMP_SCAN.
3587 (c_parser_omp_clause_reduction): Don't sorry_at on inscan reductions.
3588 (c_parser_omp_scan_loop_body): New function.
3589 (c_parser_omp_for_loop): Call c_parser_omp_scan_loop_body if there are
3590 inscan reduction clauses.
3591 * c-typeck.c (c_finish_omp_clauses): Reject mixing inscan with
3592 non-inscan reductions on the same construct, or inscan reductions with
3593 ordered or schedule clauses, or inscan array reductions.
3594
65985d78
MS
35952019-06-05 Martin Sebor <msebor@redhat.com>
3596
3597 PR c/90737
3598 * c-typeck.c (c_finish_return): Only consider functions returning
3599 pointers as candidates for -Wreturn-local-addr.
3600
0ecf545c
MS
36012019-06-05 Martin Sebor <msebor@redhat.com>
3602
3603 * c-decl.c (start_decl): Adjust quoting and hyphenation
3604 in diagnostics.
3605 (finish_decl): Same.
3606 (finish_enum): Same.
3607 (start_function): Same.
3608 (declspecs_add_type): Same.
3609 * c-parser.c (warn_for_abs): Same.
3610 * c-typeck.c (build_binary_op): Same.
3611
e03436e7
TS
36122019-05-17 Thomas Schwinge <thomas@codesourcery.com>
3613
b48f44bf
TS
3614 PR c/89433
3615 * c-parser.c (c_finish_oacc_routine): Rework checking if already
3616 marked with an OpenACC 'routine' directive.
3617
5bf04509
TS
3618 PR c/89433
3619 * c-parser.c (c_parser_oacc_routine): Normalize order of clauses.
3620 (c_finish_oacc_routine): Call oacc_verify_routine_clauses.
3621
e03436e7
TS
3622 PR c/89433
3623 * c-parser.c (c_finish_oacc_routine): Refer to OpenACC 'routine'
3624 clauses from "omp declare target" attribute.
3625
a9c697b8
MS
36262019-05-16 Martin Sebor <msebor@redhat.com>
3627
ab20d992
JJ
3628 * c-decl.c (start_decl): Quote keywords, operators, and
3629 types in diagnostics.
3630 (finish_decl): Same.
3631 * c-parser.c (c_parser_asm_statement): Same.
3632 (c_parser_conditional_expression): Same.
3633 (c_parser_transaction_cancel): Same.
3634 * c-typeck.c (c_common_type): Same.
3635 (build_conditional_expr): Same.
3636 (digest_init): Same.
3637 (process_init_element): Same.
3638 (build_binary_op): Same.
a9c697b8 3639
c4499192
RB
36402019-05-17 Richard Biener <rguenther@suse.de>
3641
3642 * gimple-parser.c (c_parser_gimple_statement): Handle __VEC_PERM.
3643 (c_parser_gimple_unary_expression): Likewise.
3644 (c_parser_gimple_parentized_ternary_expression): New function.
3645
adfe6e4b
RB
36462019-05-16 Richard Biener <rguenther@suse.de>
3647
3648 * gimple-parser.c (c_parser_gimple_statement): Handle __BIT_INSERT.
3649 (c_parser_gimple_unary_expression): Likewise.
3650
186dabf2
RB
36512019-05-15 Richard Biener <rguenther@suse.de>
3652
3653 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
3654 __BIT_FIELD_REF.
3655
1158c5b4
RB
36562019-05-14 Richard Biener <rguenther@suse.de>
3657
3658 * gimple-parser.c (c_parser_gimple_statement): Remove
3659 questionable auto-promotion to VIEW_CONVERT_EXPR.
3660 (c_parser_gimple_typespec): Split out from __MEM parsing.
3661 (c_parser_gimple_postfix_expression): Handle __VIEW_CONVERT.
3662 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
3663 as __VIEW_CONVERT with -gimple.
3664
fd4485aa
ML
36652019-05-09 Martin Liska <mliska@suse.cz>
3666
3667 * gimple-parser.c (c_parser_gimple_statement): Support __MIN and
3668 __MAX.
3669 (c_parser_gimple_unary_expression): Parse also binary expression
3670 __MIN and __MAX.
3671 (c_parser_gimple_parentized_binary_expression): New function.
3672
d276406a
ML
36732019-05-09 Martin Liska <mliska@suse.cz>
3674
3675 * gimple-parser.c (struct gimple_parser): Add probability.
3676 for gimple_parser_edge.
3677 (gimple_parser::push_edge): Add new argument probability.
3678 (c_parser_gimple_parse_bb_spec): Parse also probability
3679 if present.
3680 (c_parser_parse_gimple_body): Set edge probability.
3681 (c_parser_gimple_compound_statement): Consume token
3682 before calling c_parser_gimple_goto_stmt.
3683 Parse BB counts.
3684 (c_parser_gimple_statement): Pass new argument.
3685 (c_parser_gimple_goto_stmt): Likewise.
3686 (c_parser_gimple_if_stmt): Likewise.
3687 (c_parser_gimple_or_rtl_pass_list): Parse hot_bb_threshold.
3688 * c-parser.c (c_parser_declaration_or_fndef): Pass
3689 hot_bb_threshold argument.
3690 * c-tree.h (struct c_declspecs): Add hot_bb_threshold
3691 field.
3692 (c_parser_gimple_parse_bb_spec_edge_probability): New.
3693
f179b64e
JJ
36942019-04-26 Jakub Jelinek <jakub@redhat.com>
3695
3696 PR debug/90197
3697 * c-tree.h (c_finish_loop): Add 2 further location_t arguments.
3698 * c-parser.c (c_parser_while_statement): Adjust c_finish_loop caller.
3699 (c_parser_do_statement): Likewise.
3700 (c_parser_for_statement): Likewise. Formatting fixes.
3701 * c-typeck.c (c_finish_loop): Add COND_LOCUS and INCR_LOCUS arguments,
3702 emit DEBUG_BEGIN_STMTs if needed.
3703
e7178413
JJ
37042019-04-19 Jakub Jelinek <jakub@redhat.com>
3705
c280b7ee
JJ
3706 PR c/89888
3707 * c-typeck.c (struct c_switch): Remove outside_range_p member.
3708 (c_start_case): Don't clear it.
3709 (do_case): Adjust c_add_case_label caller.
3710 (c_finish_case): Adjust c_do_switch_warnings caller.
3711
e7178413
JJ
3712 PR c++/90108
3713 * c-decl.c (merge_decls): If remove is main variant and
3714 DECL_ORIGINAL_TYPE is some other type, remove a DECL_ORIGINAL_TYPE
3715 variant that has newdecl as TYPE_NAME if any.
3716
60a2c645
JJ
37172019-04-12 Jakub Jelinek <jakub@redhat.com>
3718
3719 PR c/89933
3720 * c-decl.c (merge_decls): When newdecl's type is its main variant,
3721 don't try to remove it from the variant list, but instead assert
3722 it has no variants.
3723
2a82beaa
RB
37242019-04-01 Richard Biener <rguenther@suse.de>
3725
3726 PR c/71598
3727 * c-tree.h (c_get_alias_set): Declare.
3728 * c-objc-common.h (LANG_HOOKS_GET_ALIAS_SET): Use c_get_alias_set.
3729 * c-objc-common.c (c_get_alias_set): Treat enumeral types
3730 as the underlying integer type.
3731
bec1da64
MS
37322019-03-19 Martin Sebor <msebor@redhat.com>
3733
3734 PR tree-optimization/89688
3735 * c-decl.c (finish_decl): Call braced_lists_to_string for more
3736 kinds of initializers.
3737
855cd9b1
JJ
37382019-03-19 Jakub Jelinek <jakub@redhat.com>
3739
3740 PR c/89734
3741 * c-decl.c (grokdeclarator): Call c_build_qualified_type on function
3742 return type even if quals_used is 0. Formatting fixes.
3743
baa09dc5
RB
37442019-03-14 Richard Biener <rguenther@suse.de>
3745
3746 * c-tree.h (enum c_declspec_il): New.
3747 (struct c_declspecs): Merge gimple_p and rtl_p into declspec_il
3748 enum bitfield.
3749 * c-parser.c (c_parser_declaration_or_fndef): Adjust accordingly.
3750 Pass start pass and declspec_il to c_parser_parse_gimple_body.
3751 (c_parser_declspecs): Adjust.
3752 * gimple-parser.c: Include cfg.h, cfghooks.h, cfganal.h, tree-cfg.h,
3753 gimple-iterator.h, cfgloop.h, tree-phinodes.h, tree-into-ssa.h
3754 and bitmap.h.
3755 (struct gimple_parser): New.
3756 (gimple_parser::push_edge): New method.
3757 (c_parser_gimple_parse_bb_spec): New helper.
3758 (c_parser_parse_gimple_body): Get start pass and IL specification.
3759 Initialize SSA and CFG.
3760 (c_parser_gimple_compound_statement): Handle CFG and SSA build.
3761 Build a gimple_parser parsing state and pass it along.
3762 (c_parser_gimple_statement): Change intermittend __PHI internal
3763 function argument for the edge.
3764 (c_parser_gimple_or_rtl_pass_list): Handle ssa, cfg flags.
3765 (c_parser_gimple_goto_stmt): Record edges to build.
3766 (c_parser_gimple_if_stmt): Likewise.
3767 * gimple-parser.h (c_parser_parse_gimple_body): Adjust.
3768 (c_parser_gimple_or_rtl_pass_list): Likewise.
3769
a3f9f006
ML
37702019-03-11 Martin Liska <mliska@suse.cz>
3771
3772 * c-decl.c (check_for_loop_decls): Wrap an option name
3773 in a string format message and fix GNU coding style.
3774 * c-parser.c (c_parser_declspecs): Likewise.
3775
1db01ff9
JJ
37762019-03-08 Jakub Jelinek <jakub@redhat.com>
3777
3778 PR tree-optimization/89550
3779 * c-decl.c (finish_function): Only set TREE_NO_WARNING if warning_at
3780 returned true.
3781 (c_write_global_declarations_1): Only set TREE_NO_WARNING if pedwarn
3782 or warning returned true.
3783
66dcb747
JJ
37842019-02-28 Jakub Jelinek <jakub@redhat.com>
3785
3786 PR c/89525
3787 * c-typeck.c (convert_arguments): Call inform_declaration only if
3788 the previous warning_at call returned true.
3789
2263c9f2
TS
37902019-02-22 Thomas Schwinge <thomas@codesourcery.com>
3791
3792 * c-parser.c (c_parser_oacc_shape_clause): Add loc formal
3793 parameter. Adjust all users.
3794 (c_parser_oacc_simple_clause): Replace parser with loc formal
3795 parameter. Adjust all users.
3796
ab20d992 37972019-02-19 Chung-Lin Tang <cltang@codesourcery.com>
19695f4d
CLT
3798
3799 PR c/87924
3800 * c-parser.c (c_parser_oacc_clause_wait): Add representation of wait
3801 clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.
3802
5f88ba10
JJ
38032019-02-15 Jakub Jelinek <jakub@redhat.com>
3804
3805 PR c/89340
3806 * c-decl.c (start_function): Clear TREE_PUBLIC on nested functions
3807 before c_decl_attributes rather than after it.
3808
cfc30fd1
JJ
38092019-02-06 Jakub Jelinek <jakub@redhat.com>
3810
3811 PR c/89211
3812 * c-parser.c (c_parser_declaration_or_fndef): Don't update
3813 DECL_ARGUMENTS of d if it has been defined already. Use a single if
3814 instead of 3 nested ifs.
3815
fbe83e6b
JM
38162019-02-06 Joseph Myers <joseph@codesourcery.com>
3817
3818 PR c/88584
3819 * c-decl.c (finish_decl): Do not complete array types for arrays
3820 with external linkage not at file scope.
3821
f461f938
RB
38222019-02-05 Richard Biener <rguenther@suse.de>
3823
3824 PR c/88606
3825 * c-decl.c (finish_struct): Reset TYPE_TRANSPARENT_AGGR on
3826 all type variants when not supported.
3827
fe509359
JJ
38282019-01-30 Jakub Jelinek <jakub@redhat.com>
3829
3830 PR c/89061
3831 * c-tree.h (C_DECL_COMPOUND_LITERAL_P): Define.
3832 * c-decl.c (decl_jump_unsafe): Return false for
3833 C_DECL_COMPOUND_LITERAL_P decls.
3834 (build_compound_literal): Set C_DECL_COMPOUND_LITERAL_P.
3835
6a335b96
JJ
38362019-01-29 Jakub Jelinek <jakub@redhat.com>
3837
f4b7e754
JJ
3838 PR c/89045
3839 * c-decl.c (build_compound_literal): Don't pushdecl if in parameter
3840 scope.
3841
6a335b96
JJ
3842 PR c/86125
3843 * c-decl.c (last_fileptr_type): Remove.
3844 (last_structptr_types): New variable.
3845 (match_builtin_function_types): Compare TYPE_MAIN_VARIANT of
3846 {old,new}rettype instead of the types themselves. Assert
3847 last_structptr_types array has the same number of elements
3848 as builtin_structptr_types array. Use TYPE_MAIN_VARIANT for
3849 argument oldtype and newtype. Instead of handling
3850 just fileptr_type_node specially, handle all builtin_structptr_types
3851 pointer nodes. Formatting fix.
3852
d8b5a1a0
MS
38532019-01-24 Martin Sebor <msebor@redhat.com>
3854
3855 PR c/86125
3856 PR c/88886
3857 PR middle-end/86308
3858 * c-decl.c (match_builtin_function_types): Add arguments.
3859 (diagnose_mismatched_decls): Diagnose mismatched declarations
3860 of built-ins more strictly.
3861
e21c4491
JJ
38622019-01-24 Jakub Jelinek <jakub@redhat.com>
3863
3864 PR c++/88976
3865 * c-typeck.c (c_finish_omp_cancel): Diagnose more than one if
3866 on #pragma omp cancel with different modifiers.
3867
420183d9
L
38682019-01-18 H.J. Lu <hongjiu.lu@intel.com>
3869
3870 PR c/51628
3871 PR c/88664
3872 * c-typeck.c (convert_for_assignment): Upate the
3873 warn_for_address_or_pointer_of_packed_member call.
3874
17ad43dd
TH
38752019-01-16 Tom Honermann <tom@honermann.net>
3876 Jason Merrill <jason@redhat.com>
3877
3878 * c-typeck.c (digest_init): Revised the error message produced for
3879 ill-formed cases of array initialization with a string literal.
3880 (error_init): Make variadic.
3881
5f07d78a
JJ
38822019-01-12 Jakub Jelinek <jakub@redhat.com>
3883
3884 * c-typeck.c (convert_for_assignment): Fix a comment typo.
3885
c4581bbf
JJ
38862019-01-07 Jakub Jelinek <jakub@redhat.com>
3887
3888 PR c/88701
3889 * c-decl.c (build_compound_literal): If not TREE_STATIC, only pushdecl
3890 if current_function_decl is non-NULL.
3891
65c5b1eb
JM
38922019-01-07 Joseph Myers <joseph@codesourcery.com>
3893
3894 PR c/88720
3895 PR c/88726
3896 * c-decl.c (pop_scope): Use TREE_PUBLIC and b->nested to determine
3897 whether a function is nested, not DECL_EXTERNAL. Diagnose inline
3898 functions declared but never defined only for external scope, not
3899 for other scopes.
3900
d8fcab68
JJ
39012019-01-07 Jakub Jelinek <jakub@redhat.com>
3902
3903 PR c++/85052
3904 * c-parser.c (c_parser_postfix_expression): Parse
3905 __builtin_convertvector.
3906
a5544970
JJ
39072019-01-01 Jakub Jelinek <jakub@redhat.com>
3908
3909 Update copyright years.
3910
da77eace
L
39112018-12-20 H.J. Lu <hongjiu.lu@intel.com>
3912
3913 PR c/51628
3914 * c-typeck.c (convert_for_assignment): Call
3915 warn_for_address_or_pointer_of_packed_member.
3916
1edf8866
SB
39172018-12-19 Segher Boessenkool <segher@kernel.crashing.org>
3918
3919 * c-parser.c (c_parser_asm_statement) <RID_CONST, RID_RESTRICT>: Give
3920 a more specific error message (instead of just falling through).
3921
db4fd626
SB
39222018-12-19 Segher Boessenkool <segher@kernel.crashing.org>
3923
3924 * c-parser.c (c_parser_asm_statement): Keep track of the location each
3925 asm qualifier is first seen; use that to give nicer "duplicate asm
3926 qualifier" messages. Delete 'quals" variable, instead pass the
3927 "is_volatile_ flag to build_asm_stmt directly.
3928 * c-tree.h (build_asm_stmt): Make the first arg bool instead of tree.
3929 * c-typeck.c (build_asm_stmt): Ditto; adjust.
3930
9c9cfcbb
SB
39312018-12-19 Segher Boessenkool <segher@kernel.crashing.org>
3932
3933 * c-parser.c (c_parser_asm_statement): Rewrite the loop to work without
3934 "done" boolean variable.
3935
a14feb3c
DM
39362018-12-19 David Malcolm <dmalcolm@redhat.com>
3937
3938 PR c++/87504
3939 * c-typeck.c (class maybe_range_label_for_tree_type_mismatch):
3940 Move from here to gcc-rich-location.h and gcc-rich-location.c.
3941 (build_binary_op): Use struct op_location_t and
3942 class binary_op_rich_location.
3943
6d939173
JJ
39442018-12-11 Jakub Jelinek <jakub@redhat.com>
3945
3946 PR sanitizer/88426
3947 * c-convert.c (convert): Call c_fully_fold before calling
3948 ubsan_instrument_float_cast.
3949
b7055028
SB
39502018-12-08 Segher Boessenkool <segher@kernel.crashing.org>
3951
3952 * c-parser (c_parser_asm_statement) [RID_INLINE]: Delete stray line
3953 setting "quals".
3954
5b76e75f
SB
39552018-12-06 Segher Boessenkool <segher@kernel.crashing.org>
3956
3957 * c-parser.c (c_parser_asm_statement): Detect the inline keyword
3958 after asm. Pass a flag for it to build_asm_expr.
3959 * c-tree.h (build_asm_expr): Update declaration.
3960 * c-typeck.c (build_asm_stmt): Add is_inline parameter. Use it to
3961 set ASM_INLINE_P.
3962
30bd42b9
SB
39632018-12-06 Segher Boessenkool <segher@kernel.crashing.org>
3964
3965 PR inline-asm/55681
3966 * c-parser.c (c_parser_asm_statement): Update grammar. Allow any
3967 combination of volatile and goto, in any order, without repetitions.
3968
9df6c0e4
JB
39692018-12-04 James Norris <jnorris@codesourcery.com>
3970 Cesar Philippidis <cesar@codesourcery.com>
3971 Julian Brown <julian@codesourcery.com>
3972
3973 * c-parser.c (c_parser_oacc_wait_list): Remove dead diagnostic
3974 code.
3975
f44697b7
RB
39762018-11-30 Richard Biener <rguenther@suse.de>
3977
3978 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
3979 _Literal (type) { ... } as empty aggregate or vector constructor.
3980
550dfbdc
MS
39812018-11-29 Martin Sebor <msebor@redhat.com>
3982
3983 PR c/88091
3984 * c-typeck.c (convert_argument): Add a parameter. Adjust indentation.
3985 (convert_arguments): Add comments. Pass additional argument to
3986 the function above.
3987
673670da
MS
39882018-11-29 Martin Sebor <msebor@redhat.com>
3989
3990 PR c/88172
3991 PR testsuite/88208
3992 * c-decl.c (declspec_add_alignas): Adjust call to check_user_alignment.
3993
db1d09b0
MS
39942018-11-23 Martin Sebor <msebor@redhat.com>
3995
3996 PR testsuite/88098
3997 * c-typeck.c (convert_arguments): Call builtin_decl_explicit instead.
3998 (maybe_warn_builtin_no_proto_arg): Handle short enum to int promotion.
3999
98f08eb8
MS
40002018-11-20 Martin Sebor <msebor@redhat.com>
4001
4002 * c-parser.c (c_parser_has_attribute_expression): New function.
4003 (c_parser_attribute): New function.
4004 (c_parser_attributes): Move code into c_parser_attribute.
4005 (c_parser_unary_expression): Handle RID_HAS_ATTRIBUTE_EXPRESSION.
4006
cd5da983
MS
40072018-11-15 Martin Sebor <msebor@redhat.com>
4008
4009 PR c/83656
4010 * c-decl.c (header_for_builtin_fn): Declare.
4011 (diagnose_mismatched_decls): Diagnose declarations of built-in
4012 functions without a prototype.
4013 * c-typeck.c (maybe_warn_builtin_no_proto_arg): New function.
4014 (convert_argument): Same.
4015 (convert_arguments): Factor code out into convert_argument.
4016 Detect mismatches between built-in formal arguments in calls
4017 to built-in without prototype.
4018 (build_conditional_expr): Same.
4019 (type_or_builtin_type): New function.
4020 (convert_for_assignment): Add argument. Conditionally issue
4021 warnings instead of errors for mismatches.
4022
620e594b
DM
40232018-11-13 David Malcolm <dmalcolm@redhat.com>
4024
4025 * c-decl.c: Replace "source_location" with "location_t".
4026 * c-tree.h: Likewise.
4027 * c-typeck.c: Likewise.
4028 * gimple-parser.c: Likewise.
4029
3179ebae
JJ
40302018-11-09 Jakub Jelinek <jakub@redhat.com>
4031
81a227c6
JJ
4032 * c-parser.c (c_parser_omp_clause_final): Use
4033 c_parser_expr_no_commas, convert_lvalue_to_rvalue,
4034 c_objc_common_truthvalue_conversion, c_fully_fold and parentheses
4035 parsing instead of c_parser_paren_condition.
4036 (c_parser_omp_clause_if): Use c_parser_expr_no_commas,
4037 convert_lvalue_to_rvalue, c_objc_common_truthvalue_conversion and
4038 c_fully_fold instead of c_parser_condition.
4039 (c_parser_omp_clause_num_threads, c_parser_omp_clause_num_tasks,
4040 c_parser_omp_clause_grainsize, c_parser_omp_clause_priority,
4041 c_parser_omp_clause_hint, c_parser_omp_clause_num_teams,
4042 c_parser_omp_clause_thread_limit, c_parser_omp_clause_linear): Use
4043 c_parser_expr_no_commas instead of c_parser_expression.
4044
98c91c56
JJ
4045 * c-parser.c (c_parser_omp_clause_reduction): Call sorry_at on
4046 reduction clause with inscan modifier.
4047
3179ebae
JJ
4048 * c-parser.c (c_parser_omp_requires): Call sorry_at on requires
4049 clauses other than atomic_default_mem_order.
4050
28567c40
JJ
40512018-11-08 Jakub Jelinek <jakub@redhat.com>
4052
4053 * c-parser.c: Include memmode.h.
4054 (c_parser_omp_depobj, c_parser_omp_requires): New functions.
4055 (c_parser_pragma): Handle PRAGMA_OMP_DEPOBJ and PRAGMA_OMP_REQUIRES.
4056 (c_parser_omp_clause_name): Handle nontemporal, in_reduction and
4057 task_reduction clauses.
4058 (c_parser_omp_variable_list): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION.
4059 For OMP_CLAUSE_DEPEND, parse clause operands as either an array
4060 section, or lvalue assignment expression.
4061 (c_parser_omp_clause_if): Handle cancel and simd modifiers.
4062 (c_parser_omp_clause_lastprivate): Parse optional
4063 conditional: modifier.
4064 (c_parser_omp_clause_hint): Require constant integer expression rather
4065 than just integer expression.
4066 (c_parser_omp_clause_defaultmap): Parse new kinds of defaultmap
4067 clause.
4068 (c_parser_omp_clause_reduction): Add IS_OMP and KIND arguments.
4069 Parse reduction modifiers. Pass KIND to c_parser_omp_variable_list.
4070 (c_parser_omp_clause_nontemporal, c_parser_omp_iterators): New
4071 functions.
4072 (c_parser_omp_clause_depend): Parse iterator modifier and handle
4073 iterators. Parse mutexinoutset and depobj kinds.
4074 (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_reduction
4075 callers.
4076 (c_parser_omp_all_clauses): Likewise. Handle
4077 PRAGMA_OMP_CLAUSE_NONTEMPORAL and
4078 PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION.
4079 (c_parser_omp_atomic): Parse hint and memory order clauses. Handle
4080 default memory order from requires directive if any. Adjust
4081 c_finish_omp_atomic caller.
4082 (c_parser_omp_critical): Allow comma in between (name) and hint clause.
4083 (c_parser_omp_flush): Parse flush with memory-order-clause.
4084 (c_parser_omp_for_loop): Allow NE_EXPR even in
4085 OpenMP loops, adjust c_finish_omp_for caller.
4086 (OMP_SIMD_CLAUSE_MASK): Add if and nontemporal clauses.
4087 (c_parser_omp_master): Add p_name, mask and cclauses arguments.
4088 Allow to be called while parsing combined parallel master.
4089 Parse combined master taskloop{, simd}.
4090 (c_parser_omp_parallel): Parse combined
4091 parallel master{, taskloop{, simd}} constructs.
4092 (OMP_TASK_CLAUSE_MASK): Add in_reduction clause.
4093 (OMP_TASKGROUP_CLAUSE_MASK): Define.
4094 (c_parser_omp_taskgroup): Add LOC argument. Parse taskgroup clauses.
4095 (OMP_TASKWAIT_CLAUSE_MASK): Define.
4096 (c_parser_omp_taskwait): Handle taskwait with depend clauses.
4097 (c_parser_omp_teams): Force a BIND_EXPR with BLOCK
4098 around teams body. Use SET_EXPR_LOCATION.
4099 (c_parser_omp_target_data): Allow target data
4100 with only use_device_ptr clauses.
4101 (c_parser_omp_target): Use SET_EXPR_LOCATION. Set
4102 OMP_REQUIRES_TARGET_USED bit in omp_requires_mask.
4103 (c_parser_omp_requires): New function.
4104 (c_finish_taskloop_clauses): New function.
4105 (OMP_TASKLOOP_CLAUSE_MASK): Add reduction and in_reduction clauses.
4106 (c_parser_omp_taskloop): Use c_finish_taskloop_clauses. Add forward
4107 declaration. Disallow in_reduction clause when combined with parallel
4108 master.
4109 (c_parser_omp_construct): Adjust c_parser_omp_master and
4110 c_parser_omp_taskgroup callers.
4111 * c-typeck.c (c_finish_omp_cancel): Diagnose if clause with modifier
4112 other than cancel.
4113 (handle_omp_array_sections_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION
4114 like OMP_CLAUSE_REDUCTION.
4115 (handle_omp_array_sections): Likewise. Call save_expr on array
4116 reductions before calling build_index_type. Handle depend clauses
4117 with iterators.
4118 (struct c_find_omp_var_s): New type.
4119 (c_find_omp_var_r, c_omp_finish_iterators): New functions.
4120 (c_finish_omp_clauses): Don't diagnose nonmonotonic clause
4121 with static, runtime or auto schedule kinds. Call save_expr for whole
4122 array reduction sizes. Diagnose reductions with zero sized elements
4123 or variable length structures. Diagnose nogroup clause used with
4124 reduction clause(s). Handle depend clause with
4125 OMP_CLAUSE_DEPEND_DEPOBJ. Diagnose bit-fields. Require
4126 omp_depend_t type for OMP_CLAUSE_DEPEND_DEPOBJ kinds and
4127 some different type for other kinds. Use build_unary_op with
4128 ADDR_EXPR and build_indirect_ref instead of c_mark_addressable.
4129 Handle depend clauses with iterators. Remove no longer needed special
4130 case that predetermined const qualified vars may be specified in
4131 firstprivate clause. Complain if const qualified vars are mentioned
4132 in data-sharing clauses other than firstprivate or shared. Use
4133 error_at with OMP_CLAUSE_LOCATION (c) as first argument instead of
4134 error. Formatting fix. Handle OMP_CLAUSE_NONTEMPORAL and
4135 OMP_CLAUSE_{IN,TASK}_REDUCTION. Allow any lvalue as
4136 OMP_CLAUSE_DEPEND operand (besides array section), adjust diagnostics.
4137
7e2de6df
DM
41382018-10-29 David Malcolm <dmalcolm@redhat.com>
4139
4140 * c-decl.c (implicit_decl_warning): Update "is there a suggestion"
4141 logic for change to name_hint::operator bool.
4142 (undeclared_variable): Likewise.
4143 * c-parser.c (c_parser_declaration_or_fndef): Likewise.
4144 (c_parser_parameter_declaration): Likewise.
4145
9f936c86
JM
41462018-10-17 Joseph Myers <joseph@codesourcery.com>
4147
4148 * c-errors.c (pedwarn_c11): New function.
4149 * c-parser.c (disable_extension_diagnostics): Save
4150 warn_c11_c2x_compat and set it to 0.
4151 (restore_extension_diagnostics): Restore warn_c11_c2x_compat.
4152 (c_parser_static_assert_declaration_no_semi): Handle
4153 _Static_assert without string constant.
4154 * c-tree.h (pedwarn_c11): New prototype.
4155
033eb567
DM
41562018-10-17 David Malcolm <dmalcolm@redhat.com>
4157
4158 * Make-lang.in (selftest-c): New.
4159 (C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
4160 (selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move here
4161 from gcc/Makefile.in.
4162
0edf3afe
RB
41632018-10-02 Richard Biener <rguenther@suse.de>
4164
4165 * c-decl.c (warn_if_shadowing): Do not test DECL_FROM_INLINE.
4166
8313a764
JM
41672018-09-26 Joseph Myers <joseph@codesourcery.com>
4168
4169 PR c/87390
4170 * c-typeck.c (build_binary_op): Use excess precision for
4171 comparisons of integers and floating-point for C11 and later.
4172
ce6f0888
MJ
41732018-09-26 Martin Jambor <mjambor@suse.cz>
4174
4175 PR c/87347
4176 * c-parser.c (warn_for_abs): Bail out if TYPE_ARG_TYPES is NULL. Fix
ab20d992 4177 comment.
ce6f0888 4178
9c4a4b3c
DM
41792018-09-17 David Malcolm <dmalcolm@redhat.com>
4180
4181 * c-objc-common.c (range_label_for_type_mismatch::get_text):
4182 Update for new param.
4183 * c-typeck.c (maybe_range_label_for_tree_type_mismatch::get_text):
4184 Likewise.
4185
80c6d1f4
MJ
41862018-09-17 Martin Jambor <mjambor@suse.cz>
4187
4188 PR c/63886
4189 * c-parser.c: (warn_for_abs): New function.
4190 (c_parser_postfix_expression_after_primary): Call it.
4191
4a426e36
BE
41922018-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
4193
4194 * c-typeck.c (digest_init): Shorten overlength strings.
4195
6d900107
BE
41962018-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
4197
4198 * c-decl.c (finish_decl): Call complete_flexible_array_elts.
4199
b5764229
BE
42002018-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
4201
4202 * c-decl.c (finish_decl): Call braced_list_to_string here ...
4203 * c-parser.c (c_parser_declaration_or_fndef): ... instead of here.
4204
22eea6b2
AM
42052018-08-30 Alexander Monakov <amonakov@ispras.ru>
4206
4207 * gimple-parser.c (c_parser_gimple_binary_expression): Accept infix
4208 "__MULT_HIGHPART" for MULT_HIGHPART_EXPR.
4209
85204e23
DM
42102018-08-27 David Malcolm <dmalcolm@redhat.com>
4211
4212 PR 87091
4213 * c-decl.c (implicitly_declare): Update call to
4214 maybe_add_include_fixit to suggest overriding the location, as it
4215 is for a note.
4216 * c-objc-common.c (c_tree_printer): Update for conversion of
4217 show_caret_p to a tri-state.
4218
3d78e008
ML
42192018-08-27 Martin Liska <mliska@suse.cz>
4220
4221 * c-decl.c (locate_old_decl): Use new function
92a285c1
ML
4222 fndecl_built_in_p and remove check for FUNCTION_DECL if
4223 possible.
3d78e008
ML
4224 (diagnose_mismatched_decls): Likewise.
4225 (merge_decls): Likewise.
4226 (warn_if_shadowing): Likewise.
4227 (pushdecl): Likewise.
4228 (implicitly_declare): Likewise.
4229 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
4230 * c-tree.h (C_DECL_ISNT_PROTOTYPE): Likewise.
4231 * c-typeck.c (build_function_call_vec): Likewise.
4232 (convert_arguments): Likewise.
4233
097f82ec
DM
42342018-08-20 David Malcolm <dmalcolm@redhat.com>
4235
4236 PR other/84889
4237 * c-decl.c (pushtag): Add auto_diagnostic_group instance.
4238 (diagnose_mismatched_decls): Likewise, in various places.
4239 (warn_if_shadowing): Likewise.
4240 (implicit_decl_warning): Likewise.
4241 (implicitly_declare): Likewise.
4242 (undeclared_variable): Likewise.
4243 (declare_label): Likewise.
4244 (grokdeclarator): Likewise.
4245 (start_function): Likewise.
4246 * c-parser.c (c_parser_declaration_or_fndef): Likewise.
4247 (c_parser_parameter_declaration): Likewise.
4248 (c_parser_binary_expression): Likewise.
4249 * c-typeck.c (c_expr_sizeof_expr): Likewise.
4250 (parser_build_binary_op): Likewise.
4251 (build_unary_op): Likewise.
4252 (error_init): Likewise.
4253 (pedwarn_init): Likewise.
4254 (warning_init): Likewise.
4255 (convert_for_assignment): Likewise.
4256
96e6ae57
DM
42572018-08-15 David Malcolm <dmalcolm@redhat.com>
4258
4259 * c-objc-common.c: Include "gcc-rich-location.h".
4260 (c_tree_printer): Move implemenation of '%T' to...
4261 (print_type): ...this new function.
4262 (range_label_for_type_mismatch::get_text): New function.
4263 * c-typeck.c (convert_for_assignment): Add type labels to the rhs
4264 range for the various ic_argpass cases.
4265 (class maybe_range_label_for_tree_type_mismatch): New class.
4266 (build_binary_op): Use it when calling binary_op_error.
4267
0cd020ae 42682018-08-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
ab20d992 4269
0cd020ae
PK
4270 * c-decl.c (start_decl): Do not warn if variables is named as main
4271 and is a local variable.
4272
72733314
IS
42732018-08-15 Iain Sandoe <iain@sandoe.co.uk>
4274
4275 PR c/19315
4276 * c-decl.c (finish_decl): Don't add the 'extern' storage class to
4277 objects of unknown size.
4278
23aa9f7c
MS
42792018-08-13 Martin Sebor <msebor@redhat.com>
4280
4281 PR tree-optimization/71625
4282 * c-parser.c (c_parser_declaration_or_fndef): Call
4283 braced_list_to_string.
4284
e5e7e50d
BH
42852018-08-03 Bogdan Harjoc <harjoc@gmail.com>
4286
4287 PR c/86690
4288 * c-typeck.c (lookup_field): Do not use TYPE_LANG_SPECIFIC after
4289 errors.
4290
8a45b051
MS
42912018-08-01 Martin Sebor <msebor@redhat.com>
4292
4293 PR tree-optimization/86650
4294 * c-objc-common.c (c_tree_printer): Move usage of EXPR_LOCATION (t)
4295 and TREE_BLOCK (t) from within percent_K_format to this callsite.
4296
5922dcb5
JJ
42972018-08-01 Jakub Jelinek <jakub@redhat.com>
4298
4299 PR c/85704
4300 * c-typeck.c (init_field_decl_cmp): New function.
4301 (output_pending_init_elements): Use it for field comparisons
4302 instead of pure bit_position comparisons.
4303
9b452033
JJ
43042018-07-12 Jakub Jelinek <jakub@redhat.com>
4305
4306 * c-decl.c (c_decl_attributes): Don't diagnose vars without mappable
4307 type here, instead add "omp declare target implicit" attribute.
4308 (finish_decl): Diagnose vars without mappable type here.
4309
ab20d992
JJ
43102018-06-20 Chung-Lin Tang <cltang@codesourcery.com>
4311 Thomas Schwinge <thomas@codesourcery.com>
829c6349
CLT
4312 Cesar Philippidis <cesar@codesourcery.com>
4313
4314 * c-parser.c (c_parser_omp_clause_name): Add support for finalize
4315 and if_present. Make present_or_{copy,copyin,copyout,create} aliases
4316 to their non-present_or_* counterparts. Make 'self' an alias to
4317 PRAGMA_OACC_CLAUSE_HOST.
4318 (c_parser_oacc_data_clause): Update GOMP mappings for
4319 PRAGMA_OACC_CLAUSE_{COPY,COPYIN,COPYOUT,CREATE,DELETE}. Remove
4320 PRAGMA_OACC_CLAUSE_{SELF,PRESENT_OR_*}.
4321 (c_parser_oacc_all_clauses): Handle finalize and if_present clauses.
4322 Remove support for present_or_* clauses.
4323 (OACC_KERNELS_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
4324 (OACC_PARALLEL_CLAUSE_MASK): Likewise.
4325 (OACC_DECLARE_CLAUSE_MASK): Likewise.
4326 (OACC_DATA_CLAUSE_MASK): Likewise.
4327 (OACC_ENTER_DATA_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
4328 (OACC_EXIT_DATA_CLAUSE_MASK): Add FINALIZE clause.
4329 (OACC_UPDATE_CLAUSE_MASK): Remove SELF, add IF_PRESENT.
4330 (c_parser_oacc_declare): Remove PRESENT_OR_* clauses.
4331 * c-typeck.c (c_finish_omp_clauses): Handle IF_PRESENT and FINALIZE.
4332
e197e64e
KV
43332018-06-16 Kugan Vivekanandarajah <kuganv@linaro.org>
4334
4335 * c-typeck.c (build_unary_op): Handle ABSU_EXPR;
4336 * gimple-parser.c (c_parser_gimple_statement): Likewise.
4337 (c_parser_gimple_unary_expression): Likewise.
4338
487f2f61
JJ
43392018-06-15 Jakub Jelinek <jakub@redhat.com>
4340
4341 PR c/86093
4342 * c-typeck.c (pointer_diff): Cast both pointers to unqualified types
4343 before doing POINTER_DIFF_EXPR.
4344
e4d44a37
MP
43452018-06-07 Marek Polacek <polacek@redhat.com>
4346
4347 PR c/85318
4348 * c-decl.c (check_for_loop_decls): Add -Wc90-c99-compat warning about
4349 for loop initial declarations.
4350
b67b9225
DP
43512018-05-30 David Pagan <dave.pagan@oracle.com>
4352
4353 PR c/55976
4354 * c-decl.c (grokdeclarator): Update check for return type warnings.
4355 (start_function): Likewise.
4356 (finish_function): Likewise.
4357 * c-typeck.c (c_finish_return): Update check for return type warnings.
4358 Pass OPT_Wreturn_type to pedwarn when appropriate.
4359
c566cc9f
RS
43602018-05-18 Richard Sandiford <richard.sandiford@linaro.org>
4361
4362 * gimple-parser.c (c_parser_gimple_postfix_expression): Remove
4363 __FMA_EXPR handlng.
4364
e4f81565
RS
43652018-05-17 Richard Sandiford <richard.sandiford@linaro.org>
4366
4367 * gimple-parser.c: Include internal-fn.h.
4368 (c_parser_gimple_statement): Treat a leading CPP_DOT as a call.
4369 (c_parser_gimple_call_internal): New function.
4370 (c_parser_gimple_postfix_expression): Use it to handle CPP_DOT.
4371 Fix typos in comment.
4372
79e7b1fe
JJ
43732018-05-10 Jakub Jelinek <jakub@redhat.com>
4374
4375 PR c++/85662
4376 * c-fold.c (c_fully_fold_internal): Use fold_offsetof rather than
4377 fold_offsetof_1, pass TREE_TYPE (expr) as TYPE to it and drop the
4378 fold_convert_loc.
4379 * c-typeck.c (build_unary_op): Use fold_offsetof rather than
4380 fold_offsetof_1, pass argtype as TYPE to it and drop the
4381 fold_convert_loc.
4382
f7584c81
DP
43832018-05-02 David Pagan <dave.pagan@oracle.com>
4384
4385 PR c/30552
4386 * c-decl.c (old_style_parameter_scope): New function.
4387 * c-parser.c (c_parser_postfix_expression): Check for statement
4388 expressions in old-style function parameter list declarations.
4389 * c-parser.h (old_style_parameter_scope): New extern declaration.
4390
b33a0cb3
JJ
43912018-04-25 Jakub Jelinek <jakub@redhat.com>
4392
4393 PR sanitizer/84307
4394 * c-decl.c (build_compound_literal): Call pushdecl (decl) even when
4395 it is not TREE_STATIC.
4396 * c-typeck.c (c_mark_addressable) <case COMPOUND_LITERAL_EXPR>: Mark
4397 not just the COMPOUND_LITERAL_EXPR node itself addressable, but also
4398 its COMPOUND_LITERAL_EXPR_DECL.
4399
c5c5822a
JM
44002018-03-21 Joseph Myers <joseph@codesourcery.com>
4401
4402 * c-parser.c (c_parser_postfix_expression): For __builtin_tgmath
4403 where all functions return the same _FloatN or _FloatNx type,
4404 treat integer types as _Float64 instead of double.
4405
aa1c9429
JJ
44062018-03-21 Jakub Jelinek <jakub@redhat.com>
4407
4408 PR c/84999
4409 * c-typeck.c (build_binary_op): If c_common_type_for_size fails when
4410 building vector comparison, diagnose it and return error_mark_node.
4411
9bb45a95
JJ
44122018-03-15 Jakub Jelinek <jakub@redhat.com>
4413
4414 PR c/84853
4415 * c-typeck.c (build_binary_op) <case RSHIFT_EXPR, case LSHIFT_EXPR>:
4416 If code1 is INTEGER_TYPE, only allow code0 VECTOR_TYPE if it has
4417 INTEGER_TYPE element type.
4418
ada6bad9
DP
44192018-03-13 David Pagan <dave.pagan@oracle.com>
4420
4421 PR c/46921
4422 * c-typeck.c (output_init_element): Ensure field initializer
4423 expression is always evaluated if there are side effects.
4424
849bbdb9
JJ
44252018-03-06 Jakub Jelinek <jakub@redhat.com>
4426
4427 PR c/84721
4428 * c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if
4429 !building_stmt_list_p ().
4430
d74641bd
RS
44312018-02-13 Richard Sandiford <richard.sandiford@linaro.org>
4432
4433 PR c/84305
4434 * c-decl.c (grokdeclarator): Create an anonymous TYPE_DECL
4435 in PARM and TYPENAME contexts too, but attach it to a BIND_EXPR
4436 and include the BIND_EXPR in the list of things that need to be
4437 pre-evaluated.
4438
0444aa9c
NS
44392018-02-09 Nathan Sidwell <nathan@acm.org>
4440
4441 PR c/84293
4442 * c-typeck.c (build_indirect_ref, build_c_cast): Pass expr location
4443 to strict_aliasing_warning.
4444
7c30b12a
PC
44452018-02-02 Paolo Carlini <paolo.carlini@oracle.com>
4446
4447 * c-typeck.c (really_start_incremental_init, push_init_level,
4448 set_nonincremental_init, output_init_element, process_init_element):
4449 Use DECL_UNNAMED_BIT_FIELD.
4450
2be4dfcb
MP
44512018-01-31 Marek Polacek <polacek@redhat.com>
4452
4453 PR c/81779
4454 * c-parser.c (c_parser_compound_statement_nostart): Call
4455 expansion_point_location_if_in_system_header.
4456
bb9869d5
DM
44572018-01-17 David Malcolm <dmalcolm@redhat.com>
4458
4459 PR c++/83814
4460 * c-fold.c (fold_for_warn): Move from c-common.c, reducing to just
4461 the C part.
4462
b4923738
JJ
44632018-01-13 Jakub Jelinek <jakub@redhat.com>
4464
4465 PR c/83801
4466 * c-tree.h (decl_constant_value_1): Add a bool argument.
4467 * c-typeck.c (decl_constant_value_1): Add IN_INIT argument, allow
4468 returning a CONSTRUCTOR if it is true. Use error_operand_p.
4469 (decl_constant_value): Adjust caller.
4470 * c-fold.c (c_fully_fold_internal): If in_init, pass true to
4471 decl_constant_value_1 as IN_INIT. Otherwise, punt if
4472 decl_constant_value returns initializer that has BLKmode or
4473 array type.
4474 (c_fully_fold_internal) <case COMPONENT_REF>: Fold if !lval.
4475
928686b1
RS
44762018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
4477 Alan Hayward <alan.hayward@arm.com>
4478 David Sherwood <david.sherwood@arm.com>
4479
4480 * c-typeck.c (comptypes_internal, build_binary_op): Handle polynomial
4481 TYPE_VECTOR_SUBPARTS.
4482
85ec4feb
JJ
44832018-01-03 Jakub Jelinek <jakub@redhat.com>
4484
4485 Update copyright years.
4486
913884f7
JJ
44872018-01-01 Jakub Jelinek <jakub@redhat.com>
4488
4489 PR c/83595
4490 * c-parser.c (c_parser_braced_init, c_parser_initelt,
4491 c_parser_conditional_expression, c_parser_cast_expression,
4492 c_parser_sizeof_expression, c_parser_alignof_expression,
4493 c_parser_postfix_expression, c_parser_omp_declare_reduction,
4494 c_parser_transaction_expression): Use set_error () method instead
4495 of setting value member to error_mark_node.
4496
c6cfa2bf
MM
44972017-12-28 Michael Meissner <meissner@linux.vnet.ibm.com>
4498
4499 * c-decl.c (header_for_builtin_fn): Add integer rounding _Float<N>
4500 and _Float<N>X built-in functions.
4501
11d29d63
JJ
45022017-12-22 Jakub Jelinek <jakub@redhat.com>
4503
14ec014e
JJ
4504 PR debug/83550
4505 * c-decl.c (finish_struct): Set DECL_SOURCE_LOCATION on
4506 TYPE_STUB_DECL and call rest_of_type_compilation before processing
4507 incomplete vars rather than after it.
4508
11d29d63
JJ
4509 PR debug/83547
4510 * c-typeck.c (c_finish_stmt_expr): Ignore !TREE_SIDE_EFFECTS as
4511 indicator of ({ }), instead skip all trailing DEBUG_BEGIN_STMTs first,
4512 and consider empty ones if there are no other stmts. For
4513 -Wunused-value walk all statements before the one only followed by
4514 DEBUG_BEGIN_STMTs.
4515
170a8bd6 45162017-12-22 Mike Stump <mikestump@comcast.net>
92a285c1 4517 Eric Botcazou <ebotcazou@adacore.com>
170a8bd6
EB
4518
4519 * c-parser.c (c_parser_while_statement): Add unroll parameter and
4520 build ANNOTATE_EXPR if present. Add 3rd operand to ANNOTATE_EXPR.
4521 (c_parser_do_statement): Likewise.
4522 (c_parser_for_statement): Likewise.
4523 (c_parser_statement_after_labels): Adjust calls to above.
4524 (c_parse_pragma_ivdep): New static function.
4525 (c_parser_pragma_unroll): Likewise.
4526 (c_parser_pragma) <PRAGMA_IVDEP>: Add support for pragma Unroll.
4527 <PRAGMA_UNROLL>: New case.
4528
01512446
JJ
45292017-12-19 Jakub Jelinek <jakub@redhat.com>
4530
4531 * c-typeck.c (comptypes_internal, function_types_compatible_p,
4532 perform_integral_promotions, digest_init): Replace Yoda conditions
4533 with typical order conditions.
4534 * c-decl.c (check_bitfield_type_and_width): Likewise.
4535
c65e18d3
BE
45362017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
4537
4538 * c-typeck.c (c_safe_arg_type_equiv_p,
4539 c_safe_function_type_cast_p): New function.
4540 (build_c_cast): Implement -Wcast-function-type.
4541
b7280579
RB
45422017-12-14 Richard Biener <rguenther@suse.de>
4543
4544 PR c/83415
4545 * c-fold.c (c_fully_fold_internal): Treat VIEW_CONVERT_EXPR
4546 like REALPART_EXPR for the behavior of whether its operand
4547 is an lvalue.
4548
49e6a6c0
MP
45492017-12-12 Marek Polacek <polacek@redhat.com>
4550
4551 PR c/82679
4552 * c-decl.c (grokdeclarator): Check declspecs insted of atomicp.
4553
ab20d992 45542017-12-12 Alexandre Oliva <aoliva@redhat.com>
96a95ac1
AO
4555
4556 * c-objc-common.h (LANG_HOOKS_EMITS_BEGIN_STMT): Redefine as true.
4557 * c-parser.c (add_debug_begin_stmt): New.
4558 (c_parser_declaration_or_fndef): Call it.
4559 (c_parser_compound_statement_nostart): Likewise.
4560 (c_parser_statement_after_labels): Likewise.
4561 * c-typeck (c_finish_stmt_expr): Skip begin stmts markers.
4562
4b2b493f
JM
45632017-12-07 Joseph Myers <joseph@codesourcery.com>
4564
4565 * c-decl.c (build_compound_literal): Add parameter alignas_align
4566 and set alignment of decl if nonzero.
4567 * c-parser.c (c_keyword_starts_typename): Allow RID_ALIGNAS.
4568 (c_parser_declspecs): Allow RID_ALIGNAS to follow a type, like a
4569 qualifier.
4570 (c_parser_struct_declaration): Update syntax comment.
4571 (c_parser_type_name): Add alignas_ok argument and pass it to
4572 c_parser_declspecs.
4573 (c_parser_cast_expression): Pass true to c_parser_type_name and
4574 give error if a cast used an _Alignas specifier.
4575 (c_parser_sizeof_expression): Pass true to c_parser_type_name and
4576 give error if sizeof (type-name) used an _Alignas specifier.
4577 (c_parser_alignof_expression): Pass true to c_parser_type_name and
4578 give error if _Alignof (type-name) used an _Alignas specifier.
4579 (c_parser_postfix_expression_after_paren_type): Check specified
4580 alignment for a compound literal and pass it to
4581 build_compound_literal.
4582 * c-parser.h (c_parser_type_name): Update prototype.
4583 * c-tree.h (build_compound_literal): Update prototype.
4584
5d9ae53d
MS
45852017-12-07 Martin Sebor <msebor@redhat.com>
4586
4587 PR c/81544
4588 * c-decl.c (c_decl_attributes): Look up existing declaration and
4589 pass it to decl_attributes.
4590
c79144f8
DM
45912017-12-06 David Malcolm <dmalcolm@redhat.com>
4592
4593 PR c/83236
4594 * c-decl.c (lookup_name_fuzzy): Don't suggest names that are
4595 reserved for use by the implementation.
4596
613bc14f
DM
45972017-12-06 David Malcolm <dmalcolm@redhat.com>
4598
4599 * c-decl.c: Include "c-family/c-spellcheck.h".
4600
05abad4c
ML
46012017-12-05 Martin Liska <mliska@suse.cz>
4602 Jakub Jelinek <jakub@redhat.com>
4603
4604 * c-typeck.c (pointer_diff): Add new argument and instrument
4605 pointer subtraction.
4606 (build_binary_op): Similar for pointer comparison.
4607
cc6534d4
JJ
46082017-12-01 Jakub Jelinek <jakub@redhat.com>
4609
65791f42
JJ
4610 PR c/79153
4611 * c-parser.c: Include tree-iterator.h.
4612 (c_parser_switch_statement): Emit LABEL_EXPR for the break label
4613 into SWITCH_BODY instead of after it and set SWITCH_BREAK_LABEL_P
4614 on it.
4615
cc6534d4
JJ
4616 PR c/83222
4617 * c-tree.h (decl_constant_value_1): Declare.
4618 * c-typeck.c (decl_constant_value_1): New function.
4619 (decl_constant_value): Use it.
4620 * c-fold.c (c_fully_fold_internal): If in_init, use
4621 decl_constant_value_1 instead of decl_constant_value.
4622
5de73c05
JJ
46232017-11-30 Jakub Jelinek <jakub@redhat.com>
4624
4625 * c-parser.c (c_parser_postfix_expression): Use ; instead of ;;.
4626
058f0b9e
JJ
46272017-11-28 Jakub Jelinek <jakub@redhat.com>
4628
4629 PR sanitizer/81275
4630 * c-typeck.c (c_finish_case): Set SWITCH_ALL_CASES_P if
4631 c_switch_covers_all_cases_p returns true.
4632
5e9d6aa4 46332017-11-28 Julia Koval <julia.koval@intel.com>
92a285c1 4634 Sebastian Peryt <sebastian.peryt@intel.com>
5e9d6aa4
JK
4635
4636 * Make-lang.in (c/c-array-notation.o): Remove.
4637 * c-array-notation.c: Delete.
4638 * c-decl.c: Remove cilkplus condition.
4639 * c-parser.c (c_parser_cilk_simd, c_parser_cilk_for,
4640 c_parser_cilk_verify_simd, c_parser_array_notation,
4641 c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize,
4642 c_parser_cilk_simd_fn_vector_attrs,
4643 c_finish_cilk_simd_fn_tokens): Delete.
4644 (c_parser_declaration_or_fndef): Remove cilkplus condition.
4645 (c_parser_direct_declarator_inner): Ditto.
4646 (CILK_SIMD_FN_CLAUSE_MASK): Delete.
4647 (c_parser_attributes, c_parser_compound_statement,
4648 c_parser_statement_after_labels, c_parser_if_statement,
4649 c_parser_switch_statement, c_parser_while_statement,
4650 c_parser_do_statement, c_parser_for_statement,
4651 c_parser_unary_expression, c_parser_postfix_expression,
4652 c_parser_postfix_expression_after_primary,
4653 c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses,
4654 c_parser_omp_for_loop, c_finish_omp_declare_simd): Remove cilkplus
4655 support.
4656 * c-typeck.c (build_array_ref, build_function_call_vec,
4657 convert_arguments,
4658 lvalue_p, build_compound_expr, c_finish_return, c_finish_if_stmt,
4659 c_finish_loop, build_binary_op): Remove cilkplus support.
4660
9e851845
JJ
46612017-11-28 Jakub Jelinek <jakub@redhat.com>
4662
4663 * c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead
4664 of build3.
4665
ab20d992 46662017-11-14 Boris Kolpackov <boris@codesynthesis.com>
8c7dbea9
BK
4667
4668 * Make-lang.in (c.install-plugin): Install backend import library.
4669
41521dee
JJ
46702017-11-23 Jakub Jelinek <jakub@redhat.com>
4671
4672 * c-parser.c (c_parser_omp_declare_simd): Reject declare simd in
4673 pragma_stmt context.
4674
ac9effed
EB
46752017-11-23 Mike Stump <mikestump@comcast.net>
4676 Eric Botcazou <ebotcazou@adacore.com>
4677
4678 * c-parser.c (c_parser_while_statement): Pass 3rd operand to
4679 ANNOTATE_EXPR.
4680 (c_parser_do_statement): Likewise.
4681 (c_parser_for_statement): Likewise.
4682
ce95abc4
DM
46832017-11-22 David Malcolm <dmalcolm@redhat.com>
4684
4685 PR c++/62170
4686 * c-objc-common.c (c_tree_printer): Convert penultimate param from
4687 bool to bool *. Within '%T' handling, if showing an "aka", use
4688 "quoted" param to add appropriate quoting.
4689
974aedcc
MP
46902017-11-22 Marek Polacek <polacek@redhat.com>
4691
4692 PR c++/60336
4693 PR middle-end/67239
4694 PR target/68355
4695 * c-decl.c (grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.
4696
d4300cc6
DM
46972017-11-21 David Malcolm <dmalcolm@redhat.com>
4698
4699 PR c/83056
4700 * c-decl.c (lookup_name_fuzzy): Don't suggest names that came from
4701 earlier failed lookups.
4702
1af4ebf5
MG
47032017-11-21 Marc Glisse <marc.glisse@inria.fr>
4704
4705 * c-fold.c (c_fully_fold_internal): Handle POINTER_DIFF_EXPR.
4706 * c-typeck.c (pointer_diff): Use POINTER_DIFF_EXPR.
4707
26edace6
DM
47082017-11-20 David Malcolm <dmalcolm@redhat.com>
4709
4710 PR c/81404
4711 * c-decl.c: Include "c-family/known-headers.h".
4712 (get_c_name_hint): Rename to get_stdlib_header_for_name and move
4713 to known-headers.cc.
4714 (class suggest_missing_header): Move to known-header.h.
4715 (lookup_name_fuzzy): Call get_c_stdlib_header_for_name rather
4716 than get_c_name_hint.
4717
b1212255
DM
47182017-11-20 David Malcolm <dmalcolm@redhat.com>
4719
4720 * c-decl.c (get_c_name_hint): New function.
4721 (class suggest_missing_header): New class.
4722 (lookup_name_fuzzy): Call get_c_name_hint and use it to
4723 suggest missing headers to the user.
4724
6c7a259b
DM
47252017-11-20 David Malcolm <dmalcolm@redhat.com>
4726
4727 * c-decl.c: Define INCLUDE_UNIQUE_PTR before including system.h.
4728 Include "c-family/name-hint.h"
4729 (implicit_decl_warning): Convert "hint" from
4730 const char * to name_hint. Pass location to
4731 lookup_name_fuzzy. Suppress any deferred diagnostic if the
4732 warning was not printed.
4733 (undeclared_variable): Likewise for "guessed_id".
4734 (lookup_name_fuzzy): Convert return type from const char *
4735 to name_hint. Add location_t param.
4736 * c-parser.c: Define INCLUDE_UNIQUE_PTR before including system.h.
4737 Include "c-family/name-hint.h"
4738 (c_parser_declaration_or_fndef): Convert "hint" from
4739 const char * to name_hint. Pass location to lookup_name_fuzzy.
4740 (c_parser_parameter_declaration): Likewise.
4741
f9c59f7e
JJ
47422017-11-19 Jakub Jelinek <jakub@redhat.com>
4743
4744 PR c/66618
4745 PR c/69960
4746 * c-parser.c (c_parser_omp_atomic): Pass true as LVAL to c_fully_fold
4747 where needed.
4748 * c-typeck.c (build_unary_op, build_modify_expr, build_asm_expr,
4749 handle_omp_array_sections): Likewise.
4750 (digest_init): Don't call decl_constant_value_for_optimization.
4751 * c-tree.h (decl_constant_value_for_optimization): Removed.
4752 * c-fold.c (c_fold_array_ref): New function.
4753 (c_fully_fold_internal): Add LVAL argument, propagate it through
4754 recursive calls. For VAR_P call decl_constant_value and
4755 unshare if not LVAL and either optimizing or IN_INIT. Remove
4756 decl_constant_value_for_optimization calls. If IN_INIT and not LVAL,
4757 fold ARRAY_REF with STRING_CST and INTEGER_CST operands.
4758 (c_fully_fold): Add LVAL argument, pass it through to
4759 c_fully_fold_internal.
4760 (decl_constant_value_for_optimization): Removed.
4761
3ca0dc60
JM
47622017-11-15 Joseph Myers <joseph@codesourcery.com>
4763
4764 PR c/81156
4765 * c-parser.c (check_tgmath_function): New function.
4766 (enum tgmath_parm_kind): New enum.
4767 (c_parser_postfix_expression): Handle __builtin_tgmath.
4768
64a5912c
DM
47692017-10-31 David Malcolm <dmalcolm@redhat.com>
4770
4771 * c-decl.c (implicit_decl_warning): Update for renaming of
4772 pedwarn_at_rich_loc and warning_at_rich_loc.
4773 (implicitly_declare): Likewise for renaming of inform_at_rich_loc.
4774 (undeclared_variable): Likewise for renaming of error_at_rich_loc.
4775 * c-parser.c (c_parser_declaration_or_fndef): Likewise.
4776 (c_parser_struct_or_union_specifier): Likewise for renaming of
4777 pedwarn_at_rich_loc.
4778 (c_parser_parameter_declaration): Likewise for renaming of
4779 error_at_rich_loc.
4780 * c-typeck.c (build_component_ref): Likewise.
4781 (build_unary_op): Likewise for renaming of inform_at_rich_loc.
4782 (pop_init_level): Likewise for renaming of warning_at_rich_loc.
4783 (set_init_label): Likewise for renaming of error_at_rich_loc.
4784
c1136864
RB
47852017-10-30 Richard Biener <rguenther@suse.de>
4786
4787 * gimple-parser.c (c_parser_gimple_statement): Parse conditional
4788 stmts.
4789
ee5fd23a
MM
47902017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com>
4791
4792 * c-decl.c (header_for_builtin_fn): Add support for copysign, fma,
4793 fmax, fmin, and sqrt _Float<N> and _Float<N>X variants.
4794
1a59ccf2
DM
47952017-10-25 David Malcolm <dmalcolm@redhat.com>
4796
4797 PR c/7356
4798 * c-parser.c (c_parser_declaration_or_fndef): Detect missing
4799 semicolons.
4800
bc1a75dd
JJ
48012017-10-25 Jakub Jelinek <jakub@redhat.com>
4802
4803 PR libstdc++/81706
4804 * c-decl.c (merge_decls): Copy "omp declare simd" attributes from
4805 newdecl to corresponding __builtin_ if any.
4806
ff1ff960
PC
48072017-10-24 Paolo Carlini <paolo.carlini@oracle.com>
4808
4809 PR c++/82466
4810 * c-decl.c (diagnose_mismatched_decls): Use
4811 OPT_Wbuiltin_declaration_mismatch.
4812
62e1c678
DM
48132017-10-12 David Malcolm <dmalcolm@redhat.com>
4814
4815 * c-parser.c (c_parser_require): Add "type_is_unique" param and
4816 use it to guard calls to maybe_suggest_missing_token_insertion.
4817 (c_parser_parms_list_declarator): Override default value of new
4818 "type_is_unique" param to c_parser_require.
4819 (c_parser_asm_statement): Likewise.
4820 * c-parser.h (c_parser_require): Add "type_is_unique" param,
4821 defaulting to true.
4822
a92f6726
NS
48232017-10-11 Nathan Sidwell <nathan@acm.org>
4824
4825 * c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too.
4826
8e6cdc90
RS
48272017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
4828
4829 * c-parser.c (c_parser_cilk_clause_vectorlength): Use wi::to_wide when
4830 operating on trees as wide_ints.
4831 * c-typeck.c (build_c_cast, c_finish_omp_clauses): Likewise.
4832 (c_tree_equal): Likewise.
4833
8139a48e
DM
48342017-10-04 David Malcolm <dmalcolm@redhat.com>
4835
4836 * c-decl.c (push_parm_decl): Store c_parm's location into the
4837 PARAM_DECL.
4838 (build_c_parm): Add "loc" param and store it within the c_parm.
4839 * c-parser.c (struct c_parser): Add "last_token_location" field.
4840 (c_parser_consume_token): Store location of the token into the
4841 new field.
4842 (c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS
4843 when handling a FUNCTION_DECL, if it doesn't already have them.
4844 (c_parser_parameter_declaration): Generate a location for the
4845 parameter, and pass it to the call to build_c_parm.
4846 * c-tree.h (struct c_parm): Add field "loc".
4847 (build_c_parm): Add location_t param.
4848 * c-typeck.c (get_fndecl_argument_location): New function.
4849 (inform_for_arg): New function.
4850 (convert_for_assignment): Use inform_for_arg when dealing with
4851 ic_argpass.
4852
2a389958
JJ
48532017-09-29 Jakub Jelinek <jakub@redhat.com>
4854
7d386d45
JJ
4855 * c-decl.c (grokfield): Use SET_DECL_C_BIT_FIELD here if
4856 width is non-NULL.
4857 (finish_struct): Test DECL_C_BIT_FIELD instead of DECL_INITIAL,
4858 don't SET_DECL_C_BIT_FIELD here.
4859
2a389958
JJ
4860 PR c/82340
4861 * c-decl.c (build_compound_literal): Use c_apply_type_quals_to_decl
4862 instead of trying to set just TREE_READONLY manually.
4863
ebc6a85e
TV
48642017-09-16 Tom de Vries <tom@codesourcery.com>
4865
4866 PR c/81875
4867 * c-parser.c (c_parser_omp_for_loop): Fold only operands of cond, not
4868 cond itself.
4869
bb75facd
JM
48702017-09-15 Joseph Myers <joseph@codesourcery.com>
4871
4872 PR c/82071
4873 * c-typeck.c (ep_convert_and_check): Just call convert_and_check
4874 for C11.
4875 (build_conditional_expr): For C11, generate result with excess
4876 precision when one argument is an integer and the other is of a
4877 type using excess precision.
4878
1d933576
BE
48792017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
4880
4881 * c-typeck.c (build_c_cast): Implement -Wcast-align=strict.
4882
267bbb6f
MP
48832017-09-13 Marek Polacek <polacek@redhat.com>
4884
4885 PR c/82167
4886 * c-typeck.c (c_expr_sizeof_expr): Use the type of expr.value rather
4887 than expr.original_type.
4888
6836632e
NS
48892017-09-12 Nathan Sidwell <nathan@acm.org>
4890
4891 * c-decl.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
4892 resort_sorted_fields): Moved from c-family/c-common.c.
4893 * c-lang.h (struct sorted_fields_type): Moved from c-family/c-common.h.
4894
e035be33
JM
48952017-09-01 Joseph Myers <joseph@codesourcery.com>
4896
4897 PR c/82071
4898 * c-typeck.c (build_atomic_assign): Handle argument with excess
4899 precision. Ensure any EXCESS_PRECISION_EXPR is present in
4900 argument passed to build_binary_op and convert_for_assignment but
4901 not for call to c_fully_fold.
4902 (build_modify_expr): Do not remove EXCESS_PRECISION_EXPR early.
4903 Ensure build_binary_op is called with argument with original
4904 semantic type. Avoid calling c_fully_fold with an
4905 EXCESS_PRECISION_EXPR from build_binary_op.
4906
d2e05fcb
JJ
49072017-09-01 Jakub Jelinek <jakub@redhat.com>
4908
4909 PR c/81887
4910 * c-parser.c (c_parser_omp_ordered): Handle -fopenmp-simd.
4911
b397965c
RS
49122017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
4913 Alan Hayward <alan.hayward@arm.com>
4914 David Sherwood <david.sherwood@arm.com>
4915
4916 * c-typeck.c (build_binary_op): Use SCALAR_TYPE_MODE.
4917 (c_common_type): Likewise. Use as_a <scalar_mode> when setting
4918 m1 and m2 to the signed equivalent of a fixed-point
4919 SCALAR_TYPE_MODE.
4920
14e18d71
DM
49212017-08-24 David Malcolm <dmalcolm@redhat.com>
4922
4923 * c-tree.h (c_expr::get_location) Use EXPR_HAS_LOCATION rather
4924 than CAN_HAVE_LOCATION_P when determining whether to use the
4925 location_t value within "value".
4926
7f204c0f
DM
49272017-08-21 David Malcolm <dmalcolm@redhat.com>
4928
4929 * c-parser.c (c_parser_expr_list): Use c_expr::get_location ()
4930 rather than peeking the location of the first token.
4931 * c-tree.h (c_expr::get_location): New method.
4932
2f687306
DM
49332017-08-21 David Malcolm <dmalcolm@redhat.com>
4934
4935 * c-typeck.c (build_function_call_vec): Pass arg_loc to call
4936 to check_function_arguments.
4937
3e7b80d7
MP
49382017-08-18 Marek Polacek <polacek@redhat.com>
4939
4940 * c-parser.c (c_parser_postfix_expression): Remove unused code. Update
4941 commentary.
4942
00aa1fa2
L
49432017-08-18 H.J. Lu <hongjiu.lu@intel.com>
4944
4945 PR c/53037
4946 * c-decl.c (merge_decls): Also merge DECL_WARN_IF_NOT_ALIGN.
4947 (check_bitfield_type_and_width): Don't allow bit-field with
4948 warn_if_not_aligned type.
4949
da67acb9
MS
49502017-08-14 Martin Sebor <msebor@redhat.com>
4951
4952 PR c/81117
4953 * c-objc-common.c (c_objc_common_init): Handle 'G'.
4954
bb85aa74
MP
49552017-08-11 Marek Polacek <polacek@redhat.com>
4956
4957 PR c/81795
4958 * c-decl.c (pushtag): Only print inform if the warning was printed.
4959 (grokdeclarator): Likewise.
4960
32129a17
DM
49612017-08-10 David Malcolm <dmalcolm@redhat.com>
4962
4963 * c-parser.c (c_parser_error): Rename to...
4964 (c_parser_error_richloc): ...this, making static, and adding
4965 "richloc" parameter, passing it to the c_parse_error call,
4966 rather than calling c_parser_set_source_position_from_token.
4967 (c_parser_error): Reintroduce, reimplementing in terms of the
4968 above, converting return type from void to bool.
4969 (class token_pair): New class.
4970 (struct matching_paren_traits): New struct.
4971 (matching_parens): New typedef.
4972 (struct matching_brace_traits): New struct.
4973 (matching_braces): New typedef.
4974 (get_matching_symbol): New function.
4975 (c_parser_require): Add param MATCHING_LOCATION, using it to
4976 highlight matching "opening" tokens for missing "closing" tokens.
4977 (c_parser_skip_until_found): Likewise.
4978 (c_parser_static_assert_declaration_no_semi): Convert explicit
4979 parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of
4980 class matching_parens, so that the pertinent open parenthesis is
4981 highlighted when there are problems locating the close
4982 parenthesis.
4983 (c_parser_struct_or_union_specifier): Likewise.
4984 (c_parser_typeof_specifier): Likewise.
4985 (c_parser_alignas_specifier): Likewise.
4986 (c_parser_simple_asm_expr): Likewise.
4987 (c_parser_braced_init): Likewise, for matching_braces.
4988 (c_parser_paren_condition): Likewise, for matching_parens.
4989 (c_parser_switch_statement): Likewise.
4990 (c_parser_for_statement): Likewise.
4991 (c_parser_asm_statement): Likewise.
4992 (c_parser_asm_operands): Likewise.
4993 (c_parser_cast_expression): Likewise.
4994 (c_parser_sizeof_expression): Likewise.
4995 (c_parser_alignof_expression): Likewise.
4996 (c_parser_generic_selection): Likewise.
4997 (c_parser_postfix_expression): Likewise for cases RID_VA_ARG,
4998 RID_OFFSETOF, RID_TYPES_COMPATIBLE_P, RID_AT_SELECTOR,
4999 RID_AT_PROTOCOL, RID_AT_ENCODE, reindenting as necessary.
5000 In case CPP_OPEN_PAREN, pass loc_open_paren to the
5001 c_parser_skip_until_found call.
5002 (c_parser_objc_class_definition): Use class matching_parens as
5003 above.
5004 (c_parser_objc_method_decl): Likewise.
5005 (c_parser_objc_try_catch_finally_statement): Likewise.
5006 (c_parser_objc_synchronized_statement): Likewise.
5007 (c_parser_objc_at_property_declaration): Likewise.
5008 (c_parser_oacc_wait_list): Likewise.
5009 (c_parser_omp_var_list_parens): Likewise.
5010 (c_parser_omp_clause_collapse): Likewise.
5011 (c_parser_omp_clause_default): Likewise.
5012 (c_parser_omp_clause_if): Likewise.
5013 (c_parser_omp_clause_num_threads): Likewise.
5014 (c_parser_omp_clause_num_tasks): Likewise.
5015 (c_parser_omp_clause_grainsize): Likewise.
5016 (c_parser_omp_clause_priority): Likewise.
5017 (c_parser_omp_clause_hint): Likewise.
5018 (c_parser_omp_clause_defaultmap): Likewise.
5019 (c_parser_oacc_single_int_clause): Likewise.
5020 (c_parser_omp_clause_ordered): Likewise.
5021 (c_parser_omp_clause_reduction): Likewise.
5022 (c_parser_omp_clause_schedule): Likewise.
5023 (c_parser_omp_clause_num_teams): Likewise.
5024 (c_parser_omp_clause_thread_limit): Likewise.
5025 (c_parser_omp_clause_aligned): Likewise.
5026 (c_parser_omp_clause_linear): Likewise.
5027 (c_parser_omp_clause_safelen): Likewise.
5028 (c_parser_omp_clause_simdlen): Likewise.
5029 (c_parser_omp_clause_depend): Likewise.
5030 (c_parser_omp_clause_map): Likewise.
5031 (c_parser_omp_clause_device): Likewise.
5032 (c_parser_omp_clause_dist_schedule): Likewise.
5033 (c_parser_omp_clause_proc_bind): Likewise.
5034 (c_parser_omp_clause_uniform): Likewise.
5035 (c_parser_omp_for_loop): Likewise.
5036 (c_parser_cilk_clause_vectorlength): Likewise.
5037 (c_parser_cilk_clause_linear): Likewise.
5038 (c_parser_transaction_expression): Likewise.
5039 * c-parser.h (c_parser_require): Add param matching_location with
5040 default UNKNOWN_LOCATION.
5041 (c_parser_error): Convert return type from void to bool.
5042 (c_parser_skip_until_found): Add param matching_location with
5043 default UNKNOWN_LOCATION.
5044
30af3a2b
MP
50452017-08-09 Marek Polacek <polacek@redhat.com>
5046
5047 * c-decl.c (build_enumerator): Use true/false instead of 1/0.
5048 * c-tree.h (build_external_ref): Update declaration.
5049 * c-typeck.c (build_array_ref): Use true/false instead of 1/0.
5050 (build_external_ref): Change the type of a parameter to bool.
5051 (parser_build_binary_op): Use true/false instead of 1/0.
5052 (pointer_diff): Likewise.
5053 (build_modify_expr): Likewise.
5054 (set_designator): Change the type of a parameter to bool.
5055 (set_init_index): Use true/false instead of 1/0.
5056 (set_init_label): Likewise.
5057 (output_init_element): Change the type of a parameter to bool.
5058 (output_pending_init_elements): Use true/false instead of 1/0.
5059 (process_init_element): Likewise.
5060 (build_binary_op): Change the type of a parameter to bool.
5061
296c53ac
MP
50622017-08-09 Marek Polacek <polacek@redhat.com>
5063
5064 PR c/81233
5065 * c-typeck.c (pedwarn_init): Make the function take a variable list.
5066 Call emit_diagnostic_valist instead of pedwarn.
5067 (convert_for_assignment): Unroll the PEDWARN_FOR_ASSIGNMENT macro.
5068 Print the relevant types in diagnostics.
5069
a32c8316
MP
50702017-08-09 Marek Polacek <polacek@redhat.com>
5071
5072 PR c/81417
5073 * c-array-notation.c (fix_builtin_array_notation_fn): Update calls to
ab20d992 5074 build_conditional_expr.
a32c8316
MP
5075 * c-parser.c (c_parser_conditional_expression): Create locations for
5076 EXP1 and EXP2 from their source ranges. Pass the locations down to
5077 build_conditional_expr.
5078 * c-tree.h (build_conditional_expr): Update declaration.
5079 * c-typeck.c (build_conditional_expr): Add location_t parameters.
5080 For -Wsign-compare, also print the types.
5081
314e6352
ML
50822017-08-08 Martin Liska <mliska@suse.cz>
5083
5084 * c-convert.c: Include header files.
5085 * c-typeck.c: Likewise.
5086
577eec56
ML
50872017-08-07 Martin Liska <mliska@suse.cz>
5088
5089 * c-parser.c (c_parser_attributes): Canonicalize name of an
5090 attribute.
5091
f7b6353a
MP
50922017-08-02 Marek Polacek <polacek@redhat.com>
5093
5094 PR c/81289
5095 * c-parser.c (c_parser_unary_expression): Use set_error.
5096
8a6eab34
MP
5097 PR c/81448
5098 PR c/81306
5099 * c-warn.c (warn_for_multistatement_macros): Prevent bogus
5100 warnings. Avoid walking MACRO_MAP_LOCATIONS.
5101
ab20d992 51022017-07-31 Jan Hubicka <hubicka@ucw.cz>
7fef86d3
JH
5103 Martin Liska <mliska@suse.cz>
5104
5105 * c-typeck.c (c_finish_goto_label): Build gimple predict
f7b6353a 5106 statement.
7fef86d3 5107
f34ebeb2
ML
51082017-07-31 Martin Liska <mliska@suse.cz>
5109
5110 PR sanitize/81530
5111 * c-convert.c (convert): Guard condition with flag_sanitize_p
5112 also with current_function_decl non-null equality.
5113 * c-decl.c (grokdeclarator): Likewise.
5114 * c-typeck.c (build_binary_op): Likewise.
5115
8595f67b
MP
51162017-07-25 Marek Polacek <polacek@redhat.com>
5117
5118 * c-decl.c (grokfield): Remove local variable.
5119
d49718d6
MP
51202017-07-25 Marek Polacek <polacek@redhat.com>
5121
5122 PR c/81364
5123 * c-parser.c (c_parser_else_body): Don't warn about multistatement
5124 macro expansion if the body is in { }.
5125 (c_parser_while_statement): Likewise.
5126 (c_parser_for_statement): Likewise.
5127
ff22eb12
NS
51282017-07-18 Nathan Sidwell <nathan@acm.org>
5129
5130 * c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE.
5131
eea77d1f
DM
51322017-07-14 David Malcolm <dmalcolm@redhat.com>
5133
5134 * c-decl.c (implicitly_declare): When suggesting a missing
5135 #include, provide a fix-it hint.
5136
b6f43128
DM
51372017-07-06 David Malcolm <dmalcolm@redhat.com>
5138
5139 * c-lang.c (selftest::run_c_tests): Move body to c_family_tests,
5140 and call that instead.
5141 * c-tree.h (selftest::run_c_tests): New decl.
5142
3e2becc4
MP
51432017-06-26 Marek Polacek <polacek@redhat.com>
5144
5145 PR c/80116
5146 * c-parser.c (c_parser_if_body): Set the location of the
5147 body of the conditional after parsing all the labels. Call
5148 warn_for_multistatement_macros.
5149 (c_parser_else_body): Likewise.
5150 (c_parser_switch_statement): Likewise.
5151 (c_parser_while_statement): Likewise.
5152 (c_parser_for_statement): Likewise.
5153 (c_parser_statement): Add a default argument. Save the location
5154 after labels have been parsed.
5155 (c_parser_c99_block_statement): Likewise.
5156
343ae898
RB
51572017-06-19 Richard Biener <rguenther@suse.de>
5158
5159 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
5160 negated _Literals to parse _Literal (int) -1.
5161
45b2222a
ML
51622017-06-13 Martin Liska <mliska@suse.cz>
5163
5164 PR sanitize/78204
5165 * c-convert.c (convert): Use sanitize_flags_p.
5166 * c-decl.c (grokdeclarator): Likewise.
5167 * c-typeck.c (convert_for_assignment): Likewise.
5168 (c_finish_return): Likewise.
5169 (build_binary_op): Likewise.
5170
8ab7005b
JJ
51712017-06-08 Jakub Jelinek <jakub@redhat.com>
5172
5173 PR c/81006
5174 * c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE
5175 to sizetype before size_binop.
5176
363dc72c
JJ
51772017-06-07 Jakub Jelinek <jakub@redhat.com>
5178
5179 * gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead
5180 of TDI_generic.
5181
dc949728
MP
51822017-06-06 Marek Polacek <polacek@redhat.com>
5183
5184 PR c/79983
5185 * c-decl.c (start_struct): Use the location of TYPE_STUB_DECL of
5186 ref.
5187 (start_enum): Use the location of TYPE_STUB_DECL of enumtype.
5188
40ffd95f
BE
51892017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
5190
5191 * c-parser.c (c_parser_binary_expression): Implement the
5192 -Wsizeof_pointer_div warning.
5193 (c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code
5194 from a parenthesized expression.
5195 (c_parser_expr_list): Use c_last_sizeof_loc.
5196 * c-tree.h (c_last_sizeof_loc): New external.
5197 * c-typeck.c (c_last_sizeof_loc): New variable.
5198 (c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc.
5199
9fc5e7a4
MM
52002017-05-31 Mikhail Maltsev <maltsevm@gmail.com>
5201
5202 PR testsuite/80580
5203 * gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels.
5204
f012c8ef
DM
52052017-05-30 David Malcolm <dmalcolm@redhat.com>
5206
5207 * c-objc-common.c (c_tree_printer): Gain bool and const char **
5208 parameters.
5209
3cd211af
MS
52102017-05-24 Martin Sebor <msebor@redhat.com>
5211
5212 PR c/80731
5213 * c-fold.c (c_fully_fold_internal): Adjust.
5214 * c-typeck.c (parser_build_unary_op): Adjust.
5215
fd71a9a2
TS
52162017-05-23 Thomas Schwinge <thomas@codesourcery.com>
5217
5218 * c-parser.c (OACC_KERNELS_CLAUSE_MASK): Add
5219 "PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS",
5220 "VECTOR_LENGTH".
5221
92fa0f9e
MP
52222017-05-23 Marek Polacek <polacek@redhat.com>
5223
5224 * c-parser.c (c_parser_compound_statement_nostart): Remove redundant
5225 quotes.
5226
d11c168a
JJ
52272017-05-22 Jakub Jelinek <jakub@redhat.com>
5228
5229 * c-fold.c (c_fully_fold_internal): Save the c_fully_fold_internal
5230 result for SAVE_EXPR operand and set SAVE_EXPR_FOLDED_P even if
5231 it returned invariant. Call tree_invariant_p unconditionally
5232 afterwards to decide whether to return expr or op0.
5233
58aca9d9
NS
52342017-05-22 Nathan Sidwell <nathan@acm.org>
5235
5236 * c-decl.c (c_parse_final_cleanups): Drop TDI_tu handling.
5237
7fd549d2
TS
52382017-05-19 Thomas Schwinge <thomas@codesourcery.com>
5239
5240 * c-parser.c (c_parser_omp_clause_default): Handle
5241 "OMP_CLAUSE_DEFAULT_PRESENT".
5242
6ecd2339
BE
52432017-05-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
5244
5245 * config-lang.in (gtfiles): Add c-family/c-format.c.
5246
8a57ecff
NS
52472017-05-18 Nathan Sidwell <nathan@acm.org>
5248
5249 * c-decl.c (pushdecl_top_level): Delete unused function.
5250
6574d78e
MP
52512017-05-18 Marek Polacek <polacek@redhat.com>
5252
5253 * c-decl.c (match_builtin_function_types): Use NULL_TREE instead of 0.
5254 (check_earlier_gotos): Likewise.
5255 (define_label): Likewise.
5256 (pending_xref_error): Likewise.
5257 (smallest_type_quals_location): Likewise.
5258 (grokdeclarator): Likewise.
5259 (grokparms): Likewise.
5260 (identifier_global_value): Likewise.
5261 * c-typeck.c (set_nonincremental_init_from_string): Likewise.
5262 (find_init_member): Likewise.
5263
e3455240
MP
52642017-05-18 Marek Polacek <polacek@redhat.com>
5265
5266 * c-decl.c (start_decl): Use false/true instead of 0/1.
5267 (grokdeclarator): Likewise.
5268 (finish_struct): Likewise.
5269 (start_function): Change the return type to bool. Use false/true
5270 instead of 0/1.
5271 (declspecs_add_qual): Use UNKNOWN_LOCATION instead of 0.
5272 * c-tree.h (start_function): Update.
5273 * c-typeck.c (same_translation_unit_p): Change the return type to bool.
5274 (set_designator): Change the return type to bool. Use false/true
5275 instead of 0/1.
5276
3fa8871b
MP
52772017-05-17 Marek Polacek <polacek@redhat.com>
5278
5279 * c-decl.c: Use NULL_TREE instead of 0 where appropriate.
5280 * c-typeck.c: Likewise.
5281
142473df
MP
52822017-05-17 Marek Polacek <polacek@redhat.com>
5283
5284 PR sanitizer/80659
5285 * c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and
5286 DECL_IGNORED_P even for non-static compound literals.
5287
1a817418
ML
52882017-05-17 Martin Liska <mliska@suse.cz>
5289
5290 * c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and
5291 use it instead of int type.
5292
b2fa0a8b
MP
52932017-05-17 Marek Polacek <polacek@redhat.com>
5294
5295 * c-convert.c (convert): Replace c_save_expr with save_expr. Don't
5296 call c_fully_fold.
5297 (convert) <case COMPLEX_TYPE>: Remove special handling of COMPLEX_TYPEs.
ab20d992 5298 * c-decl.c (grokdeclarator): Replace c_save_expr with save_expr.
b2fa0a8b
MP
5299 * c-fold.c (c_fully_fold_internal): Handle SAVE_EXPR.
5300 * c-parser.c (c_parser_declaration_or_fndef): Replace c_save_expr with
5301 save_expr.
5302 (c_parser_conditional_expression): Likewise.
5303 * c-tree.h (SAVE_EXPR_FOLDED_P): Define.
5304 * c-typeck.c (build_modify_expr): Replace c_save_expr with save_expr.
5305 (process_init_element): Likewise.
5306 (build_binary_op): Likewise.
5307 (handle_omp_array_sections_1): Likewise.
5308
1e47f02b
TS
53092017-05-12 Thomas Schwinge <thomas@codesourcery.com>
5310
5311 * c-parser.c (c_parser_omp_clause_num_gangs)
5312 (c_parser_omp_clause_num_workers)
5313 (c_parser_omp_clause_vector_length): Merge functions into...
5314 (c_parser_oacc_single_int_clause): ... this new function. Adjust
5315 all users.
5316
c24e924f
NS
53172017-05-11 Nathan Sidwell <nathan@acm.org>
5318
5319 * gimple-parser.c: Don't #include tree-dump.h.
5320
c587104e
MM
53212017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
5322
5323 PR testsuite/80580
5324 * gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.
5325
67ac9a9d
MM
53262017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
5327
5328 PR testsuite/80580
5329 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
5330 incorrect __MEM syntax.
5331
ac4eb40f
MM
53322017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
5333
5334 PR testsuite/80580
5335 * gimple-parser.c (c_parser_gimple_unary_expression): Check argument
5336 type of unary '*'.
5337
641da50a
NS
53382017-05-09 Nathan Sidwell <nathan@acm.org>
5339
5340 * c-tree.h (pushdecl): Declare.
5341
56d35585
DM
53422017-05-05 David Malcolm <dmalcolm@redhat.com>
5343
5344 * c-decl.c (warn_defaults_to): Replace report_diagnostic
5345 with diagnostic_report_diagnostic.
5346 * c-errors.c (pedwarn_c99): Likewise.
5347 (pedwarn_c90): Likewise.
5348
815d9cc6
XR
53492017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
5350
92a285c1 5351 PR c++/80038
815d9cc6
XR
5352 * c-gimplify.c (c_gimplify_expr): Remove calls to
5353 cilk_gimplifY_call_params_in_spawned_fn.
5354
1c4ea66f
DM
53552017-04-25 David Malcolm <dmalcolm@redhat.com>
5356
5357 * c-parser.c (c_parser_struct_or_union_specifier): Add fix-it
5358 hint for removing extra semicolon.
5359
666f7903
JJ
53602017-04-21 Jakub Jelinek <jakub@redhat.com>
5361
5362 PR c/80468
5363 * c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not
5364 enabled, set specs->type to integer_type_node.
5365
5764ee3c
JW
53662017-04-03 Jonathan Wakely <jwakely@redhat.com>
5367
5368 * c-array-notation.c: Fix typo in comment.
5369
10fa8dfb
MP
53702017-03-29 Marek Polacek <polacek@redhat.com>
5371
5372 PR c/79730
5373 * c-decl.c (finish_decl): Check VAR_P.
5374
a9e4a1a5
JJ
53752017-03-27 Jakub Jelinek <jakub@redhat.com>
5376
5377 PR middle-end/80162
5378 * c-tree.h (c_mark_addressable): Add array_ref_p argument.
5379 * c-typeck.c (c_mark_addressable): Likewise. Look through
5380 VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
5381 to ARRAY_TYPE.
5382 (build_array_ref): Pass true as array_ref_p to c_mark_addressable.
5383
ee3ff394
MP
53842017-03-23 Marek Polacek <polacek@redhat.com>
5385
5386 * c-tree.h: Remove a C_RID_YYCODE reference.
5387
4d1b8e70
JJ
53882017-03-21 Jakub Jelinek <jakub@redhat.com>
5389
5390 PR c/80097
5391 * c-typeck.c (build_binary_op): Add EXCESS_PRECISION_EXPR only around
5392 optional COMPOUND_EXPR with ubsan instrumentation.
5393
31dc71a8
MP
53942017-03-17 Marek Polacek <polacek@redhat.com>
5395
5396 * c-parser.c: Add C11 references.
5397
d579c385
MP
53982017-03-15 Marek Polacek <polacek@redhat.com>
5399
5400 * c-parser.c (c_parser_enum_specifier): Remove redundant line.
5401
85059a38
MP
54022017-03-11 Marek Polacek <polacek@redhat.com>
5403
5404 * c-decl.c (implicit_decl_warning): Add a comment. Fix formatting.
5405
2f6f187a
DM
54062017-03-10 David Malcolm <dmalcolm@redhat.com>
5407
5408 PR translation/79848
5409 * c-decl.c (declspecs_add_type): Simplify uses of "%<%s%>" to
5410 "%qs".
5411 * c-parser.c (c_parser_oacc_shape_clause): Likewise.
5412
36618428
MP
54132017-03-09 Marek Polacek <polacek@redhat.com>
5414
5415 PR sanitizer/79757
5416 * c-parser.c (c_parser_declaration_or_fndef): Don't sanitize old-style
5417 parameter declarations with initializers.
5418
01e5af5a
JJ
54192017-03-09 Jakub Jelinek <jakub@redhat.com>
5420
5421 PR c/79969
5422 * c-decl.c (start_enum): Adjust DECL_SOURCE_LOCATION of
5423 TYPE_STUB_DECL.
5424
a71dbc63
JJ
54252017-03-07 Jakub Jelinek <jakub@redhat.com>
5426
5427 PR c/79834
5428 * c-parser.c (c_parser_pragma): Use error_at instead of c_parser_error
5429 for "may only be used in compound statements" diagnostics, change it
5430 such that the same translatable string is used for all pragmas. For
5431 PRAGMA_OACC_WAIT use "acc wait" rather than "acc enter data" in the
5432 diagnostics.
5433 (c_parser_omp_cancellation_point, c_parser_omp_target_update,
5434 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Change
5435 "may only be used in compound statements" diagnostics, such that the
5436 same translatable string is used for all pragmas.
5437
1ff4bae6
MP
54382017-03-04 Marek Polacek <polacek@redhat.com>
5439
5440 PR c/79847
5441 * c-decl.c (implicit_decl_warning): Add missing space.
5442
7f5a7d78
MP
54432017-03-03 Marek Polacek <polacek@redhat.com>
5444
5445 PR c/79758
5446 * c-decl.c (store_parm_decls_oldstyle): Check if the element of
5447 current_function_prototype_arg_types is error_mark_node. Fix
5448 formatting. Use TREE_VALUE instead of TREE_TYPE.
5449
883c8f06
JJ
54502017-03-03 Jakub Jelinek <jakub@redhat.com>
5451
79c9b7a8
JJ
5452 PR c/79837
5453 * c-parser.c (c_parser_omp_clause_reduction): Don't mention
5454 %<min%> or %<max%> in the diagnostics, instead mention identifier.
5455 (c_parser_omp_declare_reduction): Don't mention %<min%> in the
5456 diagnostics.
5457
883c8f06
JJ
5458 PR c/79836
5459 * c-parser.c (c_parser_generic_selection): Use %<_Generic%>
5460 instead of %<_Generic>.
5461 (c_parser_omp_ordered): Use %<depend%> instead of %<depend>.
5462 (c_parser_omp_target_exit_data): Use %<release%> instead of
5463 %<release>.
5464
324ff1a0
JJ
54652017-02-28 Jakub Jelinek <jakub@redhat.com>
5466
5467 * c-parser.c (c_parser_asm_statement): Use cond ? G_("...") : G_("...")
5468 instead of just cond ? "..." : "...".
5469 (c_parser_oacc_enter_exit_data): Use %s and ternary operator only
5470 for "enter"/"exit" keyword.
5471 (c_finish_oacc_routine): Don't use %s to supply portions of the
5472 message.
5473
4227c9ad
JJ
54742017-02-24 Jakub Jelinek <jakub@redhat.com>
5475
5476 PR c++/79588
5477 * c-parser.c (c_parser_postfix_expression_after_primary): Don't
5478 handle -Wrestrict here.
5479 * c-typeck.c (build_function_call_vec): Adjust
5480 check_function_arguments caller.
5481
5d972e66
RB
54822017-02-23 Richard Biener <rguenther@suse.de>
5483
5484 PR c/79684
5485 * gimple-parser.c (c_parser_gimple_statement): Use set_error
5486 to initialize c_exprs to return.
5487 (c_parser_gimple_binary_expression): Likewise.
5488 (c_parser_gimple_unary_expression): Likewise.
5489 (c_parser_gimple_postfix_expression): Likewise.
5490
61ac5ebe
MP
54912017-02-22 Marek Polacek <polacek@redhat.com>
5492
5493 PR c/79662
5494 * c-typeck.c (convert_arguments): Handle error_mark_node.
5495
41d1b0b1
PK
54962017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5497
5498 * gimple-parser.c (c_parser_gimple_postfix_expression): Check return
5499 value of c_parser_parse_ssa_name against error_mark_node and emit
5500 error if ssa name is anonymous and written as default definition.
5501
eab1f169
PK
55022017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5503
5504 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
5505 FMA_EXPR.
5506
bcac0b4d
JJ
55072017-02-16 Jakub Jelinek <jakub@redhat.com>
5508
5509 PR c++/79512
5510 * c-parser.c (c_parser_omp_target): For -fopenmp-simd
5511 ignore #pragma omp target even when not followed by identifier.
5512
1be33173
PK
55132017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5514
5515 * gimpler-parser.c (c_parser_gimple_statement): Handle ABS_EXPR.
5516 (c_parser_gimple_unary_expression): Likewise.
5517
aa326bfb
JJ
55182017-02-13 Jakub Jelinek <jakub@redhat.com>
5519
5520 * c-parser.c (c_parser_oacc_declare): Add missing space in
5521 diagnostics.
5522
8a398bc5
PK
55232017-02-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5524
5525 PR c/79478
5526 * gimple-parser.c (c_parser_gimple_postfix_expression): Call
5527 set_c_expr_source_range when parsing ssa-name.
5528
3dcde5ef 55292017-02-10 Prasad Ghangal <prasad.ghangal@gmail.com>
ab20d992 5530 Richard Biener <rguenther@suse.de>
3dcde5ef
PG
5531
5532 * gimple-parser.c (c_parser_gimple_binary_expression): Avoid
5533 building IL when arguments are error_mark_node.
5534 (c_parser_gimple_unary_expression): Likewise.
5535 (c_parser_gimple_if_stmt): Likewise.
5536 (c_parser_gimple_switch_stmt): Likewise.
5537 (c_parser_gimple_return_stmt): Likewise.
5538 (c_parser_parse_ssa_name): When name lookup fails do not build
5539 an SSA name. Use undeclared rather than not declared in error
5540 reporting.
5541
192b048b
MP
55422017-02-09 Marek Polacek <polacek@redhat.com>
5543
5544 PR c/79428
5545 * c-parser.c (c_parser_omp_ordered): Call c_parser_skip_to_pragma_eol
5546 instead of c_parser_skip_until_found.
5547
56f71478
JJ
55482017-02-09 Jakub Jelinek <jakub@redhat.com>
5549
5550 PR c/79431
5551 * c-parser.c (c_parser_omp_declare_target): Don't invoke
5552 symtab_node::get on automatic variables.
5553
02889d23
CLT
55542016-02-09 Nathan Sidwell <nathan@codesourcery.com>
5555 Chung-Lin Tang <cltang@codesourcery.com>
5556
5557 * c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
5558 (c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
5559 semantic checking.
5560 * c-parser.c (c_parser_omp_for_loop): Accept tiling constructs.
5561
7af4b20d
RB
55622017-02-07 Richard Biener <rguenther@suse.de>
5563
5564 * gimple-parser.c (c_parser_gimple_expr_list): Simplify.
5565 (c_parser_gimple_postfix_expression_after_primary):
5566 Do not use c_build_function_call_vec to avoid folding and promotion.
5567 Simplify.
5568
e5e391d6
MO
55692017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
5570
5571 PR lto/79061
5572 * c-decl.c (pop_scope): Pass main_input_filename to
5573 build_translation_unit_decl.
5574
c2e84327
DM
55752017-01-24 David Malcolm <dmalcolm@redhat.com>
5576
5577 * c-parser.c: Include "read-rtl-function.h" and
5578 "run-rtl-passes.h".
5579 (c_parser_declaration_or_fndef): Rename "gimple-pass-list" in
5580 grammar to gimple-or-rtl-pass-list. Add rtl-function-definition
5581 production. Update for renaming of field "gimple_pass" to
5582 "gimple_or_rtl_pass". If __RTL was seen, call
5583 c_parser_parse_rtl_body. Convert a timevar_push/pop pair
5584 to an auto_timevar, to cope with early exit.
5585 (c_parser_declspecs): Update RID_GIMPLE handling for renaming of
5586 field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of
5587 c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list.
5588 Handle RID_RTL.
5589 (c_parser_parse_rtl_body): New function.
5590 * c-tree.h (enum c_declspec_word): Add cdw_rtl.
5591 (struct c_declspecs): Rename field "gimple_pass" to
5592 "gimple_or_rtl_pass". Add field "rtl_p".
5593 * gimple-parser.c (c_parser_gimple_pass_list): Rename to...
5594 (c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly.
5595 * gimple-parser.h (c_parser_gimple_pass_list): Rename to...
5596 (c_parser_gimple_or_rtl_pass_list): ...this.
5597
2ebd93e1
MP
55982017-01-20 Marek Polacek <polacek@redhat.com>
5599
5600 PR c/64279
5601 * c-typeck.c (build_conditional_expr): Warn about duplicated branches.
5602
b1c95bb5
RB
56032017-01-13 Richard Biener <rguenther@suse.de>
5604
5605 * gimple-parser.c (c_parser_gimple_compound_statement): Handle
5606 nops.
5607
25329913
RB
56082017-01-13 Richard Biener <rguenther@suse.de>
5609
5610 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
5611 _Literal ( type-name ) number.
5612
6bb4ea5c
RB
56132017-01-12 Richard Biener <rguenther@suse.de>
5614
5615 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
5616 __MEM.
5617
6b5b4e9c
JJ
56182017-01-11 Jakub Jelinek <jakub@redhat.com>
5619
5620 PR c++/72813
5621 * c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing
5622 PCH file.
5623
e3252775
RB
56242017-01-11 Richard Biener <rguenther@suse.de>
5625
5626 PR bootstrap/79052
5627 * gimple-parser.c (c_parser_gimple_switch_stmt): Add missing
5628 returns on parse errors.
5629
a9342885
MP
56302017-01-04 Marek Polacek <polacek@redhat.com>
5631
5632 PR c++/64767
5633 * c-parser.c (c_parser_postfix_expression): Mark zero character
5634 constants by setting original_type in c_expr.
5635 * c-typeck.c (parser_build_binary_op): Warn when a pointer is compared
5636 with a zero character constant.
5637 (char_type_p): New function.
5638
5dd9a9d0
DM
56392017-01-04 David Malcolm <dmalcolm@redhat.com>
5640
5641 * c-parser.c (c_parser_declaration_or_fndef): Create a
5642 rich_location at init_loc and parse it to start_init.
5643 (last_init_list_comma): New global.
5644 (c_parser_braced_init): Update last_init_list_comma when parsing
5645 commas. Pass it to pop_init_level. Pass location of closing
5646 brace to pop_init_level.
5647 (c_parser_postfix_expression_after_paren_type): Create a
5648 rich_location at type_loc and parse it to start_init.
5649 (c_parser_omp_declare_reduction): Likewise for loc.
5650 * c-tree.h (start_init): Add rich_location * param.
5651 (pop_init_level): Add location_t param.
5652 * c-typeck.c (struct initializer_stack): Add field
5653 "missing_brace_richloc".
5654 (start_init): Add richloc param, use it to initialize
5655 the stack node's missing_brace_richloc.
5656 (last_init_list_comma): New decl.
5657 (finish_implicit_inits): Pass last_init_list_comma to
5658 pop_init_level.
5659 (push_init_level): When finding missing open braces, add fix-it
5660 hints to the richloc.
5661 (pop_init_level): Add "insert_before" param and pass it
5662 when calling pop_init_level. Add fixits about missing
5663 close braces to any richloc. Use the richloc for the
5664 -Wmissing-braces warning.
5665 (set_designator): Pass last_init_list_comma to pop_init_level.
5666 (process_init_element): Likewise.
5667
cbe34bb5
JJ
56682017-01-01 Jakub Jelinek <jakub@redhat.com>
5669
5670 Update copyright years.
5671
d17680f3
JJ
56722016-12-21 Jakub Jelinek <jakub@redhat.com>
5673
0dba7960
JJ
5674 PR bootstrap/78817
5675 * c-typeck.c (build_function_call_vec): If check_function_arguments
5676 returns true, set TREE_NO_WARNING on CALL_EXPR.
5677
d17680f3
JJ
5678 PR c/77767
5679 * c-decl.c (grokdeclarator): If *expr is non-NULL, append expression
5680 to *expr instead of overwriting it.
5681
aa90531e
RB
56822016-12-20 Richard Biener <rguenther@suse.de>
5683
5684 * gimple-parser.c (c_parser_gimple_compound_statement): Improve
5685 error recovery.
5686 (c_parser_gimple_statement): Only build assigns for non-error
5687 stmts.
5688 (c_parser_gimple_postfix_expression_after): Improve error recovery.
5689
629b3d75
MJ
56902016-12-14 Martin Jambor <mjambor@suse.cz>
5691
5692 * c-parser.c: Include omp-general.h and omp-offload.h instead of
5693 omp-low.h.
5694 (c_finish_oacc_routine): Adjusted call to
5695 get_oacc_fn_attrib, build_oacc_routine_dims and replace_oacc_fn_attrib
5696 to use their new names.
5697 (c_parser_oacc_enter_exit_data): Adjusted call to find_omp_clause to
5698 use its new name.
5699 (c_parser_oacc_update): Likewise.
5700 (c_parser_omp_simd): Likewise.
5701 (c_parser_omp_target_update): Likewise.
5702 * c-typeck.c: Include omp-general.h instead of omp-low.h.
5703 (c_finish_omp_cancel): Adjusted call to find_omp_clause to use its new
5704 name.
5705 (c_finish_omp_cancellation_point): Likewise.
5706 * gimple-parser.c: Do not include omp-low.h
5707
c5af52eb
CP
57082016-12-02 Cesar Philippidis <cesar@codesourcery.com>
5709 James Norris <jnorris@codesourcery.com>
5710
5711 * c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
5712 EXIT_DATA,WAIT} are not used in compound statements.
5713 (c_parser_oacc_enter_exit_data): Update diagnostics.
5714
48330c93
BE
57152016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
5716
5717 PR c++/71973
5718 * c-decl.c (diagnose_mismatched_decls): Use
5719 OPT_Wbuiltin_declaration_mismatch here too.
5720
899ca90e 57212016-11-18 Richard Sandiford <richard.sandiford@arm.com>
48330c93
BE
5722 Alan Hayward <alan.hayward@arm.com>
5723 David Sherwood <david.sherwood@arm.com>
899ca90e
RS
5724
5725 * c-decl.c (merge_decls): Use SET_DECL_MODE.
5726 (make_label, finish_struct): Likewise.
5727
1ee62b92 57282016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com>
8e745a17 5729 Richard Biener <rguenther@suse.de>
22b15758 5730
8e745a17
JJ
5731 * Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.
5732 * config-lang.in (gtfiles): Add c/c-parser.h.
5733 * c-tree.h (enum c_declspec_word): Add cdw_gimple.
5734 (struct c_declspecs): Add gimple_pass member and gimple_p flag.
5735 * c-parser.c (enum c_id_kind, struct c_token,
5736 c_parser_next_token_is, c_parser_next_token_is_not,
5737 c_parser_next_token_is_keyword,
5738 enum c_lookahead_kind, enum c_dtr_syn, enum c_parser_prec):
5739 Split out to ...
5740 * c-parser.h: ... new header.
5741 * c-parser.c: Include c-parser.h and gimple-parser.h.
1ee62b92 5742 (c_parser_peek_token, c_parser_peek_2nd_token,
8e745a17
JJ
5743 c_token_starts_typename, c_parser_next_token_starts_declspecs,
5744 c_parser_next_tokens_start_declaration, c_parser_consume_token,
5745 c_parser_error, c_parser_require, c_parser_skip_until_found,
5746 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
5747 c_parser_type_name): Export.
5748 (c_parser_tokens_buf): New function.
5749 (c_parser_error): Likewise.
5750 (c_parser_set_error): Likewise.
5751 (c_parser_declspecs): Handle RID_GIMPLE.
1ee62b92
PG
5752 (c_parser_declaration_or_fndef): Parse __GIMPLE marked body
5753 via c_parser_parse_gimple_body.
8e745a17
JJ
5754 * c-parser.h (c_parser_peek_token, c_parser_peek_2nd_token,
5755 c_token_starts_typename, c_parser_next_token_starts_declspecs,
5756 c_parser_next_tokens_start_declaration, c_parser_consume_token,
5757 c_parser_error, c_parser_require, c_parser_skip_until_found,
5758 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
5759 c_parser_type_name): Declare.
1ee62b92
PG
5760 (struct c_parser): Declare forward.
5761 (c_parser_tokens_buf): Declare.
8e745a17
JJ
5762 (c_parser_error): Likewise.
5763 (c_parser_set_error): Likewise.
5764 * gimple-parser.c: New file.
5765 * gimple-parser.h: Likewise.
1ee62b92 5766
22b15758
UB
57672016-11-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5768
5769 PR c/35503
5770 * c-parser.c (c_parser_postfix_expression_after_primary): Call
5771 warn_for_restrict.
5772
84ff4775
LCW
57732016-09-11 Le-Chun Wu <lcwu@google.com>
5774 Mark Wielaard <mjw@redhat.com>
5775
5776 * c-decl.c (warn_if_shadowing): Use the warning code corresponding
5777 to the given -Wshadow= variant.
5778
4d0cdd0c
TP
57792016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
5780
5781 * c-typeck.c: Include memmodel.h.
5782
1202f33e
JJ
57832016-10-13 Jakub Jelinek <jakub@redhat.com>
5784
5785 PR target/77957
5786 * c-objc-common.h (LANG_HOOKS_GETDECLS): Use hook_tree_void_null
5787 instead of lhd_return_null_tree_v.
5788
8a14afd0
BS
57892016-10-07 Bernd Schmidt <bschmidt@redhat.com>
5790
5791 PR c++/69733
5792 * c-decl.c (smallest_type_quals_location): New static function.
5793 (grokdeclarator): Try to find the correct location for an ignored
5794 qualifier.
5795
81fea426
MP
57962016-09-26 Marek Polacek <polacek@redhat.com>
5797
5798 PR c/7652
5799 * c-decl.c (pop_scope): Add gcc_fallthrough.
5800
58012016-09-26 Marek Polacek <polacek@redhat.com>
5802
5803 PR c/7652
5804 * c-parser.c (struct c_token): Add flags field.
5805 (c_lex_one_token): Pass it to c_lex_with_flags.
5806 (c_parser_declaration_or_fndef): Turn __attribute__((fallthrough));
5807 into IFN_FALLTHROUGH.
5808 (c_parser_label): Set FALLTHROUGH_LABEL_P on labels. Handle
5809 attribute fallthrough after a case label or default label.
5810 (c_parser_statement_after_labels): Handle RID_ATTRIBUTE.
5811
9a2300e9
MP
58122016-09-24 Marek Polacek <polacek@redhat.com>
5813
5814 PR c/77490
5815 * c-typeck.c (build_unary_op): Warn about bit not on expressions that
5816 have boolean value. Warn about ++/-- on booleans.
5817
7de76362
JJ
58182016-09-23 Jakub Jelinek <jakub@redhat.com>
5819
5820 * c-parser.c (incomplete_record_decls): Remove unnecessary
5821 = vNULL initialization of file scope vec.
5822
5b73d2ab
MP
58232016-09-16 Marek Polacek <polacek@redhat.com>
5824
5825 * c-typeck.c (lvalue_p): Use true and false instead of 1 and 0.
5826
e51fbec3
MP
58272016-09-14 Marek Polacek <polacek@redhat.com>
5828
5829 * c-array-notation.c (create_cmp_incr): Use false instead of 0.
5830 (fix_array_notation_expr): Likewise.
5831 * c-decl.c (finish_decl): Likewise.
5832 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
5833 * c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
5834 (function_to_pointer_conversion): Use false instead of 0.
5835 (convert_lvalue_to_rvalue): Likewise.
5836 (parser_build_unary_op): Likewise.
5837 (build_atomic_assign): Likewise.
5838 (build_unary_op): Change nonconvert parameter type to bool, use
5839 true/false instead of 1/0.
5840 (build_binary_op): Use true instead of 1.
5841
254830ba
DM
58422016-09-13 David Malcolm <dmalcolm@redhat.com>
5843
5844 * c-parser.c (c_parser_declaration_or_fndef): Update for renaming
5845 of add_fixit_insert to add_fixit_insert_before.
5846
4c13ba17
MP
58472016-09-13 Marek Polacek <polacek@redhat.com>
5848
5849 * c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT. Use
5850 it.
5851
54dcdb88
BE
58522016-09-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
5853
5854 PR c++/77496
5855 * c-parser.c (c_parser_conditional_expression): Pass the rightmost
5856 COMPOUND_EXPR to warn_for_omitted_condop.
5857
e5106e27
DM
58582016-09-07 David Malcolm <dmalcolm@redhat.com>
5859
5860 * c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
5861 c_get_substring_location for this new langhook.
5862
9dc5773f
JJ
58632016-09-02 Jakub Jelinek <jakub@redhat.com>
5864
5865 PR c/65467
5866 * c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
5867 flag_openmp.
5868 (c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
5869 instead of mark_exp_read on low_bound/length expression.
5870 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
5871 c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
5872 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
5873 c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
5874 c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
5875 c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
5876 c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
5877 c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
5878 c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
5879 c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
5880 instead of mark_expr_read.
5881 (c_parser_omp_declare_reduction): Reject _Atomic qualified types.
5882 * c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
5883 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
5884 * c-tree.h (c_omp_clause_copy_ctor): New prototype.
5885 * c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
5886 array section bases outside of depend clause, for depend clause
5887 use convert_lvalue_to_rvalue on the base.
5888 (c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
5889 linear, aligned, map, to and from clauses.
5890 (c_omp_clause_copy_ctor): New function.
5891
295844f6
MP
58922016-09-01 Marek Polacek <polacek@redhat.com>
5893
5894 PR c/7652
5895 * c-typeck.c (composite_type): Add FALLTHRU comment.
5896
089af25c
DM
58972016-08-31 David Malcolm <dmalcolm@redhat.com>
5898
5899 * c-parser.c (c_parser_declaration_or_fndef): Add trailing space
5900 to the insertion fixits for "struct", "union", and "enum".
5901
f9087798
DM
59022016-08-30 David Malcolm <dmalcolm@redhat.com>
5903
5904 * c-decl.c (implicit_decl_warning): Use add_fixit_replace
5905 rather than add_fixit_misspelled_id.
5906 (undeclared_variable): Likewise.
5907 * c-parser.c (c_parser_declaration_or_fndef): Likewise. Remove
5908 now-redundant "here" params from add_fixit_insert method calls.
5909 (c_parser_parameter_declaration): Likewise.
5910 * c-typeck.c (build_component_ref): Remove now-redundant range
5911 param from add_fixit_replace method calls.
5912
ebef225f
MP
59132016-08-25 Marek Polacek <polacek@redhat.com>
5914
5915 * c-typeck.c (parser_build_binary_op): Pass LHS to
5916 warn_logical_not_parentheses.
5917
fe377a48
MP
59182016-08-25 Marek Polacek <polacek@redhat.com>
5919
5920 PR c/77323
5921 * c-decl.c (declspecs_add_type): Set typespec_word even when __intN
5922 or _FloatN or _FloatNx is not supported.
5923 (finish_declspecs): Set type to integer_type_node when _FloatN or
5924 _FloatNx is not supported.
5925
c65699ef
JM
59262016-08-19 Joseph Myers <joseph@codesourcery.com>
5927
5928 PR c/32187
5929 * c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
5930 (struct c_declspecs): Add field floatn_nx_idx.
5931 * c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
5932 and _FloatNx type specifiers.
5933 * c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
5934 (c_parser_declspecs, c_parser_attribute_any_word)
5935 (c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
5936 * c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
5937 (convert_arguments): Avoid promoting _FloatN and _FloatNx types
5938 narrower than double.
5939
2f1364c2
JJ
59402016-08-12 Jakub Jelinek <jakub@redhat.com>
5941 Martin Liska <mliska@suse.cz>
5942
5943 PR c/67410
5944 * c-typeck.c (set_nonincremental_init_from_string): Use / instead of
5945 % to determine val element to change. Assert that
5946 wchar_bytes * charwidth fits into val array.
5947
191816a3
MP
59482016-08-12 Marek Polacek <polacek@redhat.com>
5949
5950 PR c/7652
5951 * c-parser.c (c_parser_external_declaration): Add FALLTHRU.
5952 (c_parser_postfix_expression): Likewise.
5953 * c-typeck.c (build_unary_op): Adjust fall through comment.
5954 (c_mark_addressable): Likewise.
5955
b95a64bb
JJ
59562016-08-11 Jakub Jelinek <jakub@redhat.com>
5957
5958 PR c/72816
5959 * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
5960 array member through typedef, for orig_qual_indirect == 0 clear
5961 orig_qual_type.
5962
895aa8e1
DM
59632016-08-08 David Malcolm <dmalcolm@redhat.com>
5964
5965 PR c/64955
5966 * c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
5967 this up to selftest::run_c_tests.
5968 (selftest::run_c_tests): New function.
5969
0b212d8c
TS
59702016-08-04 Thomas Schwinge <thomas@codesourcery.com>
5971
ae9281fc
TS
5972 * c-parser.c (struct oacc_routine_data): Add error_seen and
5973 fndecl_seen members.
5974 (c_finish_oacc_routine): Use these.
5975 (c_parser_declaration_or_fndef): Adjust.
5976 (c_parser_oacc_routine): Likewise. Support more C language
5977 constructs, and improve diagnostics. Move pragma context
5978 checking...
5979 (c_parser_pragma): ... here.
5980
0b212d8c
TS
5981 * c-parser.c (struct oacc_routine_data): New.
5982 (c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
5983 Simplify code.
5984 (c_finish_oacc_routine): Likewise. Don't attach clauses to "omp
5985 declare target" attribute.
5986
76e2c821
JB
59872016-08-01 Jan Beulich <jbeulich@suse.com>
5988
5989 * c-fold.c (c_fully_fold_internal): Also emit shift count
5990 warnings for vector types.
5991 * c-typeck.c (build_binary_op): Likewise.
5992
f618a472
MP
59932016-07-29 Marek Polacek <polacek@redhat.com>
5994
5995 PR c/71742
5996 * c-decl.c (finish_struct): Rephrase an error message.
5997
efd0786f
MP
5998 PR c/71853
5999 * c-parser.c (c_parser_switch_statement): Initialize ce.original_type
6000 to error node for invalid code.
6001
e00dceaf
MP
6002 PR c/71573
6003 * c-decl.c (implicitly_declare): Return decl early not only for
6004 error_mark_nodes, but for anything that is not a FUNCTION_DECL.
6005
673a107a
JJ
60062016-07-29 Jakub Jelinek <jakub@redhat.com>
6007
6008 PR c/71969
6009 * c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
6010 on GNU extern inline functions.
6011
a5b5c8b6
MP
60122016-07-29 Marek Polacek <polacek@redhat.com>
6013
6014 PR c/71583
6015 * c-parser.c (c_parser_postfix_expression_after_paren_type): Also
6016 check expr.value.
6017
e3fe09c1
UB
60182016-07-22 Uros Bizjak <ubizjak@gmail.com>
6019
6020 * c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
6021
7c8f7eaa
DM
60222016-07-20 David Malcolm <dmalcolm@redhat.com>
6023
6024 * c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
6025 spellcheck-tree.h
6026 (best_macro_match): Likewise, converting from a typedef to a
6027 subclass.
6028 (find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
6029 (lookup_name_fuzzy): Update for change of best_macro_match to a
6030 subclass with a ctor that calls cpp_forall_identifiers.
6031
de6a69ee
DM
60322016-07-20 David Malcolm <dmalcolm@redhat.com>
6033
6034 * c-decl.c (implicit_decl_warning): Update for conversion of
6035 return type of lookup_name_fuzzy to const char *.
6036 (undeclared_variable): Likewise.
6037 (lookup_name_fuzzy): Convert return type from tree to
6038 const char *.
6039 * c-parser.c (c_parser_declaration_or_fndef): Update for
6040 conversion of return type of lookup_name_fuzzy to const char *.
6041 (c_parser_parameter_declaration): Likewise.
6042
b1c9c068
CP
60432016-07-15 Cesar Philippidis <cesar@codesourcery.com>
6044
6045 * c-parser.c (c_parser_oacc_declare): Don't scan for
6046 GOMP_MAP_POINTER.
6047 * c-typeck.c (handle_omp_array_sections): Mark data clauses with
6048 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
6049 zero-length subarrays.
6050
ddbbcb19
JJ
60512016-07-15 Jakub Jelinek <jakub@redhat.com>
6052
6053 PR c/71858
6054 * c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
6055 instead of FUZZY_LOOKUP_NAME.
6056 (lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
6057 FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.
6058
dd36b877
JJ
60592016-07-14 Jakub Jelinek <jakub@redhat.com>
6060
6061 PR c/71858
6062 * c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.
6063
8c681247
TS
60642016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6065
6066 * c-parser.c (c_parser_generic_selection): Make type of variable
6067 auto_vec.
6068 (c_parser_omp_declare_simd): Likewise.
6069
bf4fa671
TS
60702016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6071
6072 * c-decl.c (struct c_struct_parse_info): Change member types
6073 from vec to auto_vec.
6074 (start_struct): Adjust.
6075 (finish_struct): Likewise.
6076
557e8c49
JJ
60772016-07-02 Jakub Jelinek <jakub@redhat.com>
6078
6079 PR c/71719
6080 * c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
6081
54d19c3b
TS
60822016-06-29 Thomas Schwinge <thomas@codesourcery.com>
6083
6084 * c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
6085 Move pragma context checking into...
6086 (c_parser_omp_cancellation_point): ... here, and improve
6087 diagnostic messages.
6088 * c-typeck.c (c_finish_omp_cancel)
6089 (c_finish_omp_cancellation_point): Improve diagnostic messages.
6090
152ef731
JJ
60912016-06-29 Jakub Jelinek <jakub@redhat.com>
6092
6093 PR c/71685
6094 * c-typeck.c (c_build_qualified_type): Don't clear
6095 C_TYPE_INCOMPLETE_VARS for the main variant.
6096
60972016-06-28 Martin Sebor <msebor@redhat.com>
4378d117
MS
6098
6099 PR c/71552
6100 * c-typeck.c (output_init_element): Diagnose incompatible types
6101 before non-constant initializers.
6102
e9ac1f86
JJ
61032016-06-28 Jakub Jelinek <jakub@redhat.com>
6104
6105 * Make-lang.in: Don't cat ../stage_current if it does not exist.
6106
277d7ee0
AK
61072016-06-23 Andi Kleen <ak@linux.intel.com>
6108
6109 * Make-lang.in: Add support for autofdo.
6110
1a4f11c8
DM
61112016-06-22 David Malcolm <dmalcolm@redhat.com>
6112
6113 PR c/70339
6114 * c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
6115 (implicit_decl_warning): When issuing warnings for implicit
6116 declarations, attempt to provide a suggestion via
6117 lookup_name_fuzzy.
6118 (undeclared_variable): Likewise when issuing errors.
6119 (lookup_name_in_scope): Likewise.
6120 (struct edit_distance_traits<cpp_hashnode *>): New struct.
6121 (best_macro_match): New typedef.
6122 (find_closest_macro_cpp_cb): New function.
6123 (lookup_name_fuzzy): New function.
6124 * c-parser.c: Include gcc-rich-location.h.
6125 (c_token_starts_typename): Split out case CPP_KEYWORD into...
6126 (c_keyword_starts_typename): ...this new function.
6127 (c_parser_declaration_or_fndef): When issuing errors about
6128 missing "struct" etc, add a fixit. For other kinds of errors,
6129 attempt to provide a suggestion via lookup_name_fuzzy.
6130 (c_parser_parms_declarator): When looking ahead to detect typos in
6131 type names, also reject CPP_KEYWORD.
6132 (c_parser_parameter_declaration): When issuing errors about
6133 unknown type names, attempt to provide a suggestion via
6134 lookup_name_fuzzy.
6135 * c-tree.h (c_keyword_starts_typename): New prototype.
6136
5a578671
JM
61372016-06-20 Joseph Myers <joseph@codesourcery.com>
6138
6139 PR c/71601
6140 * c-typeck.c (build_conditional_expr): Return error_mark_node if
6141 c_common_type returns error_mark_node.
6142
3f8257db 61432016-06-19 Martin Sebor <msebor@redhat.com>
aa0db437
MS
6144
6145 PR c/69507
6146 * c-parser.c (c_parser_alignof_expression): Avoid diagnosing
6147 __alignof__ (expression).
6148
6a3f203c
DM
61492016-06-14 David Malcolm <dmalcolm@redhat.com>
6150
6151 * c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h.
6152
264757fb
DM
61532016-06-14 David Malcolm <dmalcolm@redhat.com>
6154
6155 * c-typeck.c (build_component_ref): Simplify fixit code by
6156 using gcc_rich_location::add_fixit_misspelled_id.
6157 (set_init_label): Likewise.
6158
f7e4f2e3
DM
61592016-06-13 David Malcolm <dmalcolm@redhat.com>
6160
6161 * c-parser.c (c_parser_initelt): Provide location of name for new
6162 location_t param of set_init_label.
6163 * c-tree.h (set_init_label): Add location_t param.
6164 * c-typeck.c (set_init_index): Add "fieldname_loc" location_t
6165 param and use it when issuing error messages about unrecognized
6166 field names. Attempt to provide a fixit hint if appropriate,
6167 otherwise update the error message to provide the type name.
6168
4b1ffdb1
TS
61692016-06-10 Thomas Schwinge <thomas@codesourcery.com>
6170
6171 PR c/71381
6172 * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
6173 Loosen checking.
6174
44a845ca
MS
61752016-06-08 Martin Sebor <msebor@redhat.com>
6176 Jakub Jelinek <jakub@redhat.com>
6177
6178 PR c++/70507
6179 PR c/68120
6180 * c-typeck.c (convert_arguments): Don't promote last argument
6181 of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
6182
92a5f2ba
MP
61832016-06-08 Marek Polacek <polacek@redhat.com>
6184
6185 PR c/71418
6186 * c-decl.c (grokdeclarator): Check TYPE_P.
6187
08203f73
MP
6188 PR c/71426
6189 * c-decl.c (get_parm_info): Don't crash on an assert on invalid
6190 code.
6191
6ffd47b7
DM
61922016-06-07 David Malcolm <dmalcolm@redhat.com>
6193
6194 * c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
6195 and structure element reference, capture the location of the
6196 element name token and pass it to build_component_ref.
6197 (c_parser_postfix_expression_after_primary): Likewise for
6198 structure element dereference.
6199 (c_parser_omp_variable_list): Likewise for
6200 OMP_CLAUSE_{_CACHE, MAP, FROM, TO},
6201 * c-tree.h (build_component_ref): Add location_t param.
6202 * c-typeck.c (build_component_ref): Add location_t param
6203 COMPONENT_LOC. Use it, if available, when issuing hints about
6204 mispelled member names to provide a fixit replacement hint.
6205
1f40cff3
MP
62062016-06-06 Marek Polacek <polacek@redhat.com>
6207
6208 PR c/71362
6209 * c-parser.c (c_parser_direct_declarator): Set location.
6210
5545a907
MP
62112016-06-06 Marek Polacek <polacek@redhat.com>
6212
6213 * c-typeck.c (comptypes_internal): Handle comparisons of
6214 INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes. Don't check
6215 TYPE_REF_CAN_ALIAS_ALL.
6216
b605f663
CLT
62172016-06-03 Chung-Lin Tang <cltang@codesourcery.com>
6218
6219 * c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
6220 arguments as addressable when async clause exists.
6221
00631022
JJ
62222016-05-30 Jakub Jelinek <jakub@redhat.com>
6223
6224 PR c++/71349
6225 * c-parser.c (c_parser_omp_for): Don't disallow nowait clause
6226 when combined with target construct.
6227
7211a097
JJ
62282016-05-26 Jakub Jelinek <jakub@redhat.com>
6229
6230 * c-parser.c (c_parser_omp_clause_schedule): Warn if
6231 OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
6232
95efe6b6
MP
62332016-05-25 Marek Polacek <polacek@redhat.com>
6234
6235 PR c/71265
6236 * c-decl.c (c_make_fname_decl): Don't check seen_error.
6237
a23faf7a
MP
6238 PR c/71266
6239 * c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.
6240
e46c7770
CP
62412016-05-24 Cesar Philippidis <cesar@codesourcery.com>
6242
6243 * c-parser.c (c_parser_oacc_declare): Add support for
6244 GOMP_MAP_FIRSTPRIVATE_POINTER.
6245 * c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
6246 argument with enum c_omp_region_type ort.
6247 (handle_omp_array_sections): Likewise. Update call to
6248 handle_omp_array_sections_1.
6249 (c_finish_omp_clauses): Add specific errors and warning messages for
6250 OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update
6251 call to handle_omp_array_sections.
6252
a04e69c0
TS
62532016-05-24 Thomas Schwinge <thomas@codesourcery.com>
6254
6255 * c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
6256
f17a223d
RB
62572016-05-24 Richard Biener <rguenther@suse.de>
6258
6259 PR middle-end/70434
6260 PR c/69504
6261 * c-typeck.c (build_array_ref): Do not complain about indexing
6262 non-lvalue vectors. Adjust for function name change.
6263
79063edd
MS
62642016-05-20 Martin Sebor <msebor@redhat.com>
6265
6266 PR c/71115
6267 * c-typeck.c (error_init): Use
6268 expansion_point_location_if_in_system_header.
6269 (warning_init): Same.
6270
8a40fef3
DM
62712016-05-19 David Malcolm <dmalcolm@redhat.com>
6272
6273 PR c/71171
6274 * c-parser.c (c_parser_generic_selection): Use c_expr::set_error
6275 in error-handling.
6276 (c_parser_postfix_expression): Likewise.
6277 * c-tree.h (c_expr::set_error): New method.
6278 * c-typeck.c (parser_build_binary_op): In error-handling, ensure
6279 that result's range is initialized.
6280
e9892350
JG
62812016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
6282
6283 * c-typeck.c (parser_build_unary_op): Fix formatting.
6284
8fad45f5
MW
62852016-05-16 Matthew Wahab <matthew.wahab@arm.com>
6286
6287 * c-decl.c (grokdeclarator): Remove errmsg and use of
6288 targetm.invalid_return_type.
6289 (grokparms): Remove errmsg and use of
6290 targetm.invalid_parameter_type.
6291
aa4b467b
JM
62922016-05-13 Joseph Myers <joseph@codesourcery.com>
6293
6294 * c-decl.c (grokdeclarator): For C11, discard qualifiers on
6295 function return type.
6296
4f2e1536
MP
62972016-05-12 Marek Polacek <polacek@redhat.com>
6298
6299 PR c/70756
6300 * c-decl.c (build_compound_literal): Pass LOC down to
6301 c_incomplete_type_error.
6302 * c-tree.h (require_complete_type): Adjust declaration.
6303 (c_incomplete_type_error): Likewise.
6304 * c-typeck.c (require_complete_type): Add location parameter, pass it
6305 down to c_incomplete_type_error.
6306 (c_incomplete_type_error): Add location parameter, pass it down to
6307 error_at.
6308 (build_component_ref): Pass location down to c_incomplete_type_error.
6309 (default_conversion): Pass location down to require_complete_type.
6310 (build_array_ref): Likewise.
6311 (build_function_call_vec): Likewise.
6312 (convert_arguments): Likewise.
6313 (build_unary_op): Likewise.
6314 (build_c_cast): Likewise.
6315 (build_modify_expr): Likewise.
6316 (convert_for_assignment): Likewise.
6317 (c_finish_omp_clauses): Likewise.
6318
d6e83a8d
MM
63192016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
6320
6321 PR c/43651
6322 * c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
6323 is enabled.
6324 * c-errors.c (pedwarn_c90): Return true if warned.
6325 * c-tree.h (pedwarn_c90): Change return type to bool.
6326 (enum c_declspec_word): Add new enumerator cdw_atomic.
6327
5c3a10fb
MP
63282016-05-11 Marek Polacek <polacek@redhat.com>
6329
6330 PR c++/71024
6331 * c-decl.c (diagnose_mismatched_decls): Factor out code to
6332 diagnose_mismatched_attributes and call it.
6333
cf68d92c
MP
63342016-05-10 Marek Polacek <polacek@redhat.com>
6335
6336 PR c/70255
6337 * c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute
6338 on a declaration following the definition.
6339
351f85c5
JJ
63402016-05-05 Jakub Jelinek <jakub@redhat.com>
6341
6342 * c-parser.c (c_parser_switch_statement): Add IF_P argument,
6343 parse it through to c_parser_c99_block_statement.
6344 (c_parser_statement_after_labels): Adjust c_parser_switch_statement
6345 caller.
6346
deef7113
MP
63472016-05-04 Marek Polacek <polacek@redhat.com>
6348
6349 * c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
6350 OPT_Wdangling_else.
6351
de55efd5
MP
63522016-05-04 Marek Polacek <polacek@redhat.com>
6353
6354 PR c/48778
6355 * c-typeck.c (build_binary_op): Don't issue -Waddress warnings
6356 for macro expansions.
6357
79ce98bc
MP
63582016-05-03 Marek Polacek <polacek@redhat.com>
6359
6360 PR c/70859
6361 * c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
6362 check_builtin_function_arguments.
6363
fb2647aa
RB
63642016-05-03 Richard Biener <rguenther@suse.de>
6365
6366 * Make-lang.in (cc1-checksum.c): For stage-final re-use
6367 the checksum from the previous stage.
6368
77886428
CP
63692016-05-02 Cesar Philippidis <cesar@codesourcery.com>
6370
6371 * c-parser.c (c_parser_oacc_all_clauses): Update call to
6372 c_finish_omp_clauses.
6373 (c_parser_omp_all_clauses): Likewise.
6374 (c_parser_oacc_cache): Likewise.
6375 (c_parser_oacc_loop): Likewise.
6376 (omp_split_clauses): Likewise.
6377 (c_parser_omp_declare_target): Likewise.
6378 (c_parser_cilk_all_clauses): Likewise.
6379 (c_parser_cilk_for): Likewise.
6380 * c-typeck.c (c_finish_omp_clauses): Replace bool arguments
6381 is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.
6382
7176a4a0
MP
63832016-05-02 Marek Polacek <polacek@redhat.com>
6384
6385 PR c/70851
6386 * c-decl.c (grokdeclarator): Diagnose when array's size has an
6387 incomplete type.
6388
e7ff0319
CP
63892016-04-29 Cesar Philippidis <cesar@codesourcery.com>
6390
6391 PR middle-end/70626
6392 * c-parser.c (c_parser_oacc_loop): Don't augment mask with
6393 OACC_LOOP_CLAUSE_MASK.
6394 (c_parser_oacc_kernels_parallel): Update call to
6395 c_oacc_split_loop_clauses.
6396
9f405ce1
AM
63972016-04-28 Andrew MacLeod <amacleod@redhat.com>
6398
6399 * c-array-notation.c (fix_builtin_array_notation_fn): Fix final
6400 argument to build_modify_expr in two cases.
6401
c1e1f433
BS
64022016-04-27 Bernd Schmidt <bschmidt@redhat.com>
6403
6404 * c-parser.c (c_parser_postfix_expression_after_primary): Call
6405 warn_for_memset instead of warning directly here.
6406
2448a956
MP
64072016-04-26 Marek Polacek <polacek@redhat.com>
6408
6409 PR c/67784
6410 * c-parser.c (c_parser_maybe_reclassify_token): New function factored
6411 out of ...
6412 (c_parser_for_statement): ... here.
6413 (c_parser_if_statement): Use it.
6414 (c_parser_switch_statement): Use it.
6415 (c_parser_while_statement): Use it.
6416
b02a5e26
MP
6417 PR c/70791
6418 * c-decl.c (pushdecl): Pass LOCUS down to warning.
6419
477d4906
IV
64202016-04-20 Ilya Verbin <ilya.verbin@intel.com>
6421
6422 PR c++/69363
6423 * c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
6424 instead of c_finish_cilk_clauses.
6425 * c-tree.h (c_finish_omp_clauses): Add new default argument.
6426 * c-typeck.c (c_finish_omp_clauses): Add new argument. Allow
6427 floating-point variables in the linear clause for Cilk Plus.
6428
fe37c7af
MM
64292016-04-18 Michael Matz <matz@suse.de>
6430
6431 * c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
6432 (grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.
6433
949505a9
MP
64342016-04-15 Marek Polacek <polacek@redhat.com>
6435
6436 PR c/70671
6437 * c-typeck.c (build_unary_op): Pass location down to error and
6438 warning call.
6439
dda1bf61
JJ
64402016-04-15 Jakub Jelinek <jakub@redhat.com>
6441
6442 PR c/70436
6443 * c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
6444 where needed.
6445 (c_parser_external_declaration, c_parser_struct_or_union_specifier,
6446 c_parser_parameter_declaration, c_parser_compound_statement_nostart,
6447 c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
6448 Adjust c_parser_pragma callers.
6449 (c_parser_statement_after_labels): Likewise. Adjust c_parser_cilk_for
6450 caller.
6451 (c_parser_omp_structured_block): Add IF_P argument, pass it down to
6452 c_parser_statement.
6453 (c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
6454 c_parser_oacc_kernels_parallel, c_parser_omp_critical,
6455 c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
6456 c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
6457 c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
6458 c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
6459 c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
6460 c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
6461 down where needed.
6462 (c_parser_omp_for_loop): Likewise. Clear IF_P if nbraces.
6463 (c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
6464 calls.
6465
99cd9857
MP
64662016-04-13 Marek Polacek <polacek@redhat.com>
6467
6468 PR c/70436
6469 * c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
6470 adjust callers.
6471 (c_parser_statement): Likewise.
6472 (c_parser_c99_block_statement): Likewise.
6473 (c_parser_while_statement): Likewise.
6474 (c_parser_for_statement): Likewise.
6475 (c_parser_if_body): Don't set IF_P here.
6476 (c_parser_if_statement): Add IF_P argument. Set IF_P here. Warn
6477 about dangling else here.
6478 * c-tree.h (c_finish_if_stmt): Adjust declaration.
6479 * c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter. Don't
6480 warn about dangling else here.
6481
f13355da
MP
64822016-04-04 Marek Polacek <polacek@redhat.com>
6483
6484 PR c/70307
6485 * c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.
6486
5fde6a45
MP
64872016-03-31 Marek Polacek <polacek@redhat.com>
6488
6489 PR c/70297
6490 * c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
6491
4bbf545b
DM
64922016-03-18 David Malcolm <dmalcolm@redhat.com>
6493
6494 PR c/70281
6495 * c-parser.c (c_parser_postfix_expression): Set the source range
6496 for uses of "__builtin_types_compatible_p".
6497
fcc2b74f
JJ
64982016-03-17 Jakub Jelinek <jakub@redhat.com>
6499
6500 PR c/70280
6501 * c-typeck.c (composite_type): Don't count void_list_node
6502 into len, if the list is terminated by void_list_node, start
6503 with void_list_node instead of NULL for newargs. Stop
6504 at void_list_node.
6505
ab4c578f
MP
65062016-03-16 Marek Polacek <polacek@redhat.com>
6507
6508 PR c/70093
6509 * c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
6510 nested functions returning VM types.
6511
96b3c82d
CP
65122016-03-09 Cesar Philippidis <cesar@codesourcery.com>
6513
6514 * c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
6515 when calling c_finish_omp_clauses.
6516
29b9828f
BS
65172016-03-04 Bernd Schmidt <bschmidt@redhat.com>
6518
6519 PR c/69824
6520 * c-decl.c (get_parm_info): Don't queue implicit function declarations
6521 for later.
6522
7ff6ca38
MP
65232016-03-04 Marek Polacek <polacek@redhat.com>
6524
6525 PR c/69798
6526 * c-parser.c (c_parser_postfix_expression): Call
6527 c_parser_cast_expression rather than c_parser_postfix_expression.
6528
686e2237
JJ
65292016-03-01 Jakub Jelinek <jakub@redhat.com>
6530
6531 PR c/69796
6532 PR c/69974
6533 * c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
6534 of incomplete decls to error_mark_node.
6535
0b05329b
MP
65362016-02-24 Marek Polacek <polacek@redhat.com>
6537
6538 PR c/69819
6539 * c-decl.c (finish_decl): Don't update the copy of the type of a
6540 different decl type.
6541
067fbd8b
JJ
65422016-02-23 Jakub Jelinek <jakub@redhat.com>
6543
6544 PR objc/69844
6545 * c-parser.c (c_parser_for_statement): Properly handle ObjC classes
6546 in id_kind reclassification.
6547
bf14eba2
JJ
65482016-02-16 Jakub Jelinek <jakub@redhat.com>
6549
6550 PR c/69835
6551 * c-typeck.c (build_binary_op): Revert 2015-09-09 change.
6552
ba539195
JN
65532016-02-16 James Norris <jnorris@codesourcery.com>
6554
6555 PR c/64748
6556 * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
6557
16595a1f
BS
65582016-02-12 Bernd Schmidt <bschmidt@redhat.com>
6559
f48dfe98
BS
6560 * c-decl.c (build_null_declspecs): Zero the entire struct.
6561
16595a1f
BS
6562 PR c/69522
6563 * c-parser.c (c_parser_braced_init): New arg outer_obstack. All
6564 callers changed. If nested_p is true, use it to call
6565 finish_implicit_inits.
6566 * c-tree.h (finish_implicit_inits): Declare.
6567 * c-typeck.c (finish_implicit_inits): New function. Move code
6568 from ...
6569 (push_init_level): ... here.
6570 (set_designator, process_init_element): Call finish_implicit_inits.
6571
66756373
JJ
65722016-02-11 Jakub Jelinek <jakub@redhat.com>
6573
6574 PR c/69768
6575 * c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
6576 arguments for -Waddress warning.
6577
1066e9b5
JJ
65782016-02-04 Jakub Jelinek <jakub@redhat.com>
6579
6580 PR c/69669
6581 * c-decl.c (finish_enum): When honoring mode attribute,
6582 make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
6583
3a5d2ba4
JJ
65842016-01-29 Jakub Jelinek <jakub@redhat.com>
6585
6586 PR debug/69518
6587 * c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
6588 all type variants, not just TYPE_MAIN_VARIANT.
6589
cbdd8ae0
JJ
65902016-01-27 Jakub Jelinek <jakub@redhat.com>
6591
6592 PR debug/66869
6593 * c-decl.c (c_write_global_declarations_1): Warn with
6594 warn_unused_function if static prototype without definition
6595 is not C_DECL_USED.
6596
fa74a4bc
MP
65972016-01-27 Marek Polacek <polacek@redhat.com>
6598
6599 PR c/68062
6600 * c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
6601 to unsigned, if needed. Add -Wsign-compare warning.
6602
13f92e8d
JJ
66032016-01-26 Jakub Jelinek <jakub@redhat.com>
6604
6605 PR tree-optimization/69483
6606 * c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.
6607
cd8e73dc 66082016-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
d25c7690
PK
6609
6610 PR c/24293
6611 * c-tree.h (incomplete_record_decls): Declare.
6612 * c-parser.c (incomplete_record_decls): Define.
6613 (c_parser_translation_unit): Iterate through incomplete_record_decls and
6614 report error if any decl has zero size.
6615 * c-decl.c (finish_decl): Append static decl with incomplete struct/union
6616 or enum type to incomplete_record_decls.
6617
e6d6ec9e
TV
66182016-01-14 Tom de Vries <tom@codesourcery.com>
6619
6620 PR tree-optimization/68773
6621 * c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
6622 set force_output.
6623
00083992
MP
66242016-01-14 Marek Polacek <polacek@redhat.com>
6625
6626 PR c/69262
6627 * c-decl.c (grokdeclarator): Provide more information for invalid
6628 array declarations.
6629
7443cf13
DM
66302016-01-06 David Malcolm <dmalcolm@redhat.com>
6631
6632 * c-parser.c (c_parser_unary_expression): For dereferences, build
6633 a combined location before calling build_indirect_ref, so that
6634 error reports cover the full range, manually updating the c_expr
6635 src_range.
6636
6b131d5b
MP
66372016-01-06 Marek Polacek <polacek@redhat.com>
6638
6639 PR sanitizer/69099
6640 * c-convert.c (convert) [INTEGER_TYPE]: Drop ARG. Don't pass ARG to
6641 ubsan_instrument_float_cast. Fold EXPR. Use NULL_TREE instead of
6642 NULL.
6643
818ab71a
JJ
66442016-01-04 Jakub Jelinek <jakub@redhat.com>
6645
6646 Update copyright years.
6647
2fe0a208
MP
66482016-01-04 Marek Polacek <polacek@redhat.com>
6649
6650 PR c/68908
6651 * c-typeck.c (build_atomic_assign): Improve commentary. Add
6652 optimization to use __atomic_fetch_* built-in if possible.
6653
c7b48c8a
TS
66542015-12-23 Thomas Schwinge <thomas@codesourcery.com>
6655
6656 * c-parser.c (c_parser_oacc_clause_use_device): Merge function
6657 into...
6658 (c_parser_omp_clause_use_device_ptr): ... this function. Adjust
6659 all users.
6660
fda5652f
MP
66612015-12-22 Marek Polacek <polacek@redhat.com>
6662
6663 PR c/69002
6664 * c-typeck.c (build_component_ref): Warn when acessing elements of
6665 atomic structures or unions.
6666
745e411d
DM
66672015-12-21 David Malcolm <dmalcolm@redhat.com>
6668
6669 * c-typeck.c: Include "gcc-rich-location.h".
6670 (build_binary_op): In the two places that call binary_op_error,
6671 create a gcc_rich_location and populate it with the location of
6672 the binary op and its two operands.
6673
94c40e19
DM
66742015-12-16 David Malcolm <dmalcolm@redhat.com>
6675
6676 * c-parser.c (c_parser_statement_after_labels): When calling
6677 c_finish_return, Use the return expression's location if it has
6678 one, falling back to the location of the first token within it.
6679 * c-typeck.c (c_finish_return): When issuing warnings about
6680 the incorrect presence/absence of a return value, issue a note
6681 showing the declaration of the function.
6682
de67c4c3
DM
66832015-12-16 David Malcolm <dmalcolm@redhat.com>
6684
6685 * c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
6686 to 4.
6687 (c_parser_peek_nth_token): New function.
6688 (c_parser_peek_conflict_marker): New function.
6689 (c_parser_error): Detect conflict markers and report them as such.
6690
a10704e1
DM
66912015-12-16 David Malcolm <dmalcolm@redhat.com>
6692
6693 * c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
6694 to preserve range information for the primary expression
6695 in the call to c_parser_postfix_expression_after_primary.
6696
8062bca6
DM
66972015-12-16 David Malcolm <dmalcolm@redhat.com>
6698
6699 * c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
6700 expression location, falling back on the first token location,
6701 rather than always using the latter.
6702
d06f8b75
MP
67032015-12-16 Marek Polacek <polacek@redhat.com>
6704
6705 PR c/64637
6706 * c-typeck.c (c_process_expr_stmt): Use location of the expression if
6707 available.
6708
2994fb91
MP
67092015-12-15 Marek Polacek <polacek@redhat.com>
6710
6711 PR c/68907
6712 * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
6713 artificial decl.
6714
a1b93f8d
DM
67152015-12-08 David Malcolm <dmalcolm@redhat.com>
6716
6717 * c-parser.c (c_parser_alignof_expression): Capture location of
6718 closing parenthesis (if any), or of end of unary expression, and
6719 use it to build a src_range for the expression.
6720
46c6e1e2
DM
67212015-12-08 David Malcolm <dmalcolm@redhat.com>
6722
6723 PR c/68757
6724 * c-parser.c (c_parser_get_builtin_args): Add
6725 "out_close_paren_loc" param, and write back to it.
6726 (c_parser_postfix_expression): Capture the closing
6727 parenthesis location for RID_CHOOSE_EXPR,
6728 RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
6729 RID_BUILTIN_SHUFFLE and use it to set the source range
6730 for such expressions; within RID_BUILTIN_COMPLEX set
6731 the underlying location.
6732
66189108
MP
67332015-12-07 Marek Polacek <polacek@redhat.com>
6734
6735 PR c/68668
6736 * c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
6737 TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.
6738
f187980b
EB
67392015-12-04 Eric Botcazou <ebotcazou@adacore.com>
6740
6741 * c-tree.h (c_build_va_arg): Adjust prototype.
6742 * c-parser.c (c_parser_postfix_expression): Adjust call to above.
6743 * c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
6744 parameter, adjust throughout and issue an error if EXPR is a component
6745 with reverse storage order.
6746
4250754e
JM
67472015-12-02 Jason Merrill <jason@redhat.com>
6748
6749 * c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
6750 (c_fully_fold_internal, decl_constant_value_for_optimization):
6751 Move from c-common.c.
6752 * c-tree.h: Declare decl_constant_value_for_optimization.
6753 * Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
6754
e9e32ee6
JM
67552015-12-02 Joseph Myers <joseph@codesourcery.com>
6756
6757 PR c/68162
6758 * c-decl.c (grokdeclarator): Set first_non_attr_kind before
6759 following link from declarator to next declarator. Track original
6760 qualified type and pass it to c_build_qualified_type.
6761 * c-typeck.c (c_build_qualified_type): Add arguments
6762 orig_qual_type and orig_qual_indirect.
6763
ff7a55bf
TS
67642015-12-02 Thomas Schwinge <thomas@codesourcery.com>
6765
6766 * c-parser.c (c_parser_omp_clause_name)
6767 (c_parser_oacc_all_clauses): Alphabetical sorting.
6768
657e4e47
JJ
67692015-12-02 Jakub Jelinek <jakub@redhat.com>
6770
6771 PR c/68533
6772 * c-decl.c (get_parm_info): Use b->locus instead of input_location
6773 for diagnostics.
6774
37d5ad46
JB
67752015-12-01 Julian Brown <julian@codesourcery.com>
6776 Cesar Philippidis <cesar@codesourcery.com>
6777 James Norris <James_Norris@mentor.com>
6778
6779 * c-parser.c (c_parser_omp_clause_name): Add use_device support.
6780 (c_parser_oacc_clause_use_device): New function.
6781 (c_parser_oacc_all_clauses): Add use_device support.
6782 (OACC_HOST_DATA_CLAUSE_MASK): New macro.
6783 (c_parser_oacc_host_data): New function.
6784 (c_parser_omp_construct): Add host_data support.
6785 * c-tree.h (c_finish_oacc_host_data): Add prototype.
6786 * c-typeck.c (c_finish_oacc_host_data): New function.
6787 (c_finish_omp_clauses): Add use_device support.
6788
a4850ce9
JH
67892015-11-29 Jan Hubicka <hubicka@ucw.cz>
6790
6791 PR c/67106
6792 * c-decl.c: Set TYPE_PACKED in variants.
6793
b58d3df2
ML
67942015-11-27 Martin Liska <mliska@suse.cz>
6795
6796 PR c++/68312
6797 * c-array-notation.c (fix_builtin_array_notation_fn):
6798 Use release_vec_vec instead of vec::release.
6799 (build_array_notation_expr): Likewise.
6800 (fix_conditional_array_notations_1): Likewise.
6801 (fix_array_notation_expr): Likewise.
6802 (fix_array_notation_call_expr): Likewise.
6803
aec17bfe
JJ
68042015-11-27 Jakub Jelinek <jakub@redhat.com>
6805
6806 PR c/63326
6807 * c-parser.c (c_parser_compound_statement_nostart): If
6808 last_label is true, use pragma_stmt instead of pragma_compound
6809 as second c_parser_pragma argument.
6810 (c_parser_omp_ordered, c_parser_omp_target_update,
6811 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
6812 false as second argument to c_parser_skip_to_pragma_eol after
6813 diagnosing standalone directives used in pragma_stmt context.
6814
688c4de0
IV
68152015-11-24 Ilya Verbin <ilya.verbin@intel.com>
6816
6817 * c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
6818 with "if (ENABLE_OFFLOADING)".
6819
cbd03aee
DM
68202015-11-23 David Malcolm <dmalcolm@redhat.com>
6821
6822 PR objc/68438
6823 * c-parser.c (c_parser_postfix_expression): Set up source ranges
6824 for various Objective-C constructs: Class.name syntax,
6825 @selector(), @protocol(), @encode(), and [] message syntax.
6826
a87a86e1
DM
68272015-11-20 David Malcolm <dmalcolm@redhat.com>
6828
6829 PR 62314
6830 * c-typeck.c (should_suggest_deref_p): New function.
6831 (build_component_ref): Special-case POINTER_TYPE when
6832 generating a "not a structure of union" error message, and
6833 suggest a "->" rather than a ".", providing a fix-it hint.
6834
8ece8dfb
DM
68352015-11-19 David Malcolm <dmalcolm@redhat.com>
6836
6837 * c-typeck.c (lookup_field_fuzzy): Move determination of closest
6838 candidate into a new function, find_closest_identifier.
6839
433068cc
MP
68402015-11-19 Marek Polacek <polacek@redhat.com>
6841
6842 PR c/68412
6843 * c-typeck.c (parser_build_binary_op): Properly handle
6844 C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.
6845
bef08b71
DM
68462015-11-17 David Malcolm <dmalcolm@redhat.com>
6847
6848 * c-parser.c (set_c_expr_source_range): Bulletproof both
6849 overloaded implementations against NULL expr->value.
6850 (c_parser_braced_init): Set src_range for "ret" to a sane pair of
6851 values.
6852 (c_parser_unary_expression): Likewise when handling addresses of
6853 labels.
6854 (c_parser_postfix_expression): Likewise for statement expressions,
6855 for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
6856 __builtin_va_arg, and for __builtin_offset_of.
6857 (c_parser_postfix_expression_after_paren_type): Initialize expr's
6858 src_range using the range of the braced initializer.
6859 (c_parser_transaction_expression): Set src_range for "ret" to a
6860 sane pair of values.
6861
fff77217
KY
68622015-11-16 Kirill Yukhin <kirill.yukhin@intel.com>
6863
6864 * c-parser.c (c_finish_omp_declare_simd): Look for
6865 "simd" attribute as well. Update error message.
6866
1d899da2
TS
68672015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6868
6869 * c-parser.c (c_parser_omp_declare_target): Adjust.
6870
e4606348
JJ
68712015-11-14 Jakub Jelinek <jakub@redhat.com>
6872
6873 * c-typeck.c (c_finish_omp_clauses): Don't mark
6874 GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
6875
3e636daf
MP
68762015-11-14 Marek Polacek <polacek@redhat.com>
6877
6878 * c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
6879 * c-typeck.c: Likewise.
6880
ebedc9a3
DM
68812015-11-13 David Malcolm <dmalcolm@redhat.com>
6882
6883 * c-decl.c (warn_defaults_to): Pass line_table to
6884 rich_location ctor.
6885 * c-errors.c (pedwarn_c99): Likewise.
6886 (pedwarn_c90): Likewise.
6887 * c-parser.c (set_c_expr_source_range): New functions.
6888 (c_token::get_range): New method.
6889 (c_token::get_finish): New method.
6890 (c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
6891 based on the range from the start of the LHS to the end of the
6892 RHS.
6893 (c_parser_conditional_expression): Likewise, based on the range
6894 from the start of the cond.value to the end of exp2.value.
6895 (c_parser_binary_expression): Call set_c_expr_source_range on
6896 the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
6897 (c_parser_cast_expression): Call set_c_expr_source_range on ret
6898 based on the cast_loc through to the end of the expr.
6899 (c_parser_unary_expression): Likewise, based on the
6900 op_loc through to the end of op.
6901 (c_parser_sizeof_expression) Likewise, based on the start of the
6902 sizeof token through to either the closing paren or the end of
6903 expr.
6904 (c_parser_postfix_expression): Likewise, using the token range,
6905 or from the open paren through to the close paren for
6906 parenthesized expressions.
6907 (c_parser_postfix_expression_after_primary): Likewise, for
6908 various kinds of expression.
6909 * c-tree.h (struct c_expr): Add field "src_range".
6910 (c_expr::get_start): New method.
6911 (c_expr::get_finish): New method.
6912 (set_c_expr_source_range): New decls.
6913 * c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
6914 on ret for prefix unary ops.
6915 (parser_build_binary_op): Likewise, running from the start of
6916 arg1.value through to the end of arg2.value.
6917
ec8b536f
MP
69182015-11-13 Marek Polacek <polacek@redhat.com>
6919
6920 PR c/68320
6921 * c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.
6922
277fe616
DM
69232015-11-13 David Malcolm <dmalcolm@redhat.com>
6924
6925 * c-typeck.c: Include spellcheck.h.
6926 (lookup_field_fuzzy_find_candidates): New function.
6927 (lookup_field_fuzzy): New function.
6928 (build_component_ref): If the field was not found, try using
6929 lookup_field_fuzzy and potentially offer a suggestion.
6930
6e232ba4
JN
69312015-11-12 James Norris <jnorris@codesourcery.com>
6932 Joseph Myers <joseph@codesourcery.com>
6933
6934 * c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
6935 (c_parser_omp_clause_name): Handle 'device_resident' clause.
6936 (c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
6937 and PRAGMA_OMP_CLAUSE_LINK.
6938 (c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
6939 and PRAGMA_OACC_CLAUSE_LINK.
6940 (OACC_DECLARE_CLAUSE_MASK): New definition.
6941 (c_parser_oacc_declare): New function.
6942
9be4f715
MP
69432015-11-12 Marek Polacek <polacek@redhat.com>
6944
6945 PR c/67784
6946 * c-parser.c (c_parser_for_statement): Reclassify the token in
6947 a correct scope.
6948
e78bede6
MP
69492015-11-11 Marek Polacek <polacek@redhat.com>
6950
6951 PR c/68107
6952 PR c++/68266
6953 * c-decl.c (grokdeclarator): Call valid_array_size_p. Remove code
6954 checking the size of an array.
6955
69f293c9
AM
69562015-11-11 Andrew MacLeod <amacleod@redhat.com>
6957
6958 * c-array-notation.c: Remove unused header files.
6959 * c-aux-info.c: Likewise.
6960 * c-convert.c: Likewise.
6961 * c-decl.c: Likewise.
6962 * c-errors.c: Likewise.
6963 * c-lang.c: Likewise.
6964 * c-objc-common.c: Likewise.
6965 * c-parser.c: Likewise.
6966 * c-typeck.c: Likewise.
6967 * gccspec.c: Likewise.
6968
3a40d81d
NS
69692015-11-09 Thomas Schwinge <thomas@codesourcery.com>
6970 Cesar Philippidis <cesar@codesourcery.com>
6971 James Norris <jnorris@codesourcery.com>
6972 Julian Brown <julian@codesourcery.com>
6973 Nathan Sidwell <nathan@codesourcery.com>
6974
3a40d81d
NS
6975 * c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
6976 routine arg.
6977 (c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
6978 (c_parser_pragma): Parse 'acc routine'.
6979 (OACC_ROUTINE_CLAUSE_MARK): Define.
6980 (c_parser_oacc_routine, (c_finish_oacc_routine): New.
6981
fc402eec
AA
69822015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
6983
6984 PR debug/67192
6985 * c-typeck.c (c_finish_loop): For unconditional loops, set the
6986 location of the backward-goto to the start of the loop body.
6987
f6b0b3db
AA
69882015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
6989
6990 PR debug/67192
6991 * c-parser.c (c_parser_while_statement): Finish the loop before
6992 parsing ahead for misleading indentation.
6993 (c_parser_for_statement): Likewise.
6994
ee45a32d
EB
69952015-11-08 Eric Botcazou <ebotcazou@adacore.com>
6996
6997 * c-decl.c (finish_struct): If the structure has reverse storage
6998 order, rewrite the type of array fields with scalar component. Call
6999 maybe_apply_pragma_scalar_storage_order on entry.
7000 * c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs. Issue
7001 errors on bit-fields and reverse SSO here and not...
7002 (c_mark_addressable): ...here.
7003 (output_init_element): Adjust call to initializer_constant_valid_p.
7004 (c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.
7005
8a645150
DM
70062015-11-06 David Malcolm <dmalcolm@redhat.com>
7007
7008 * c-decl.c (warn_defaults_to): Update for change in signature
7009 of diagnostic_set_info.
7010 * c-errors.c (pedwarn_c99): Likewise.
7011 (pedwarn_c90): Likewise.
7012 * c-objc-common.c (c_tree_printer): Update for new "caret_p" param
7013 for textinfo::set_location.
7014
7a5e4956
CP
70152015-11-05 Cesar Philippidis <cesar@codesourcery.com>
7016 Thomas Schwinge <thomas@codesourcery.com>
7017 James Norris <jnorris@codesourcery.com>
7018
7019 * c-parser.c (c_parser_omp_clause_name): Add support for
7020 PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
7021 (c_parser_omp_clause_default): Add is_oacc argument. Handle
7022 default(none) in OpenACC.
7023 (c_parser_oacc_shape_clause): Allow pointer variables as gang static
7024 arguments.
7025 (c_parser_oacc_clause_tile): New function.
7026 (c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
7027 OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
7028 (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
7029 TILE}.
7030 (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
7031 (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
7032 FIRSTPRIVATE}.
7033 (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
7034 (c_parser_oacc_update): Update the error message for missing clauses.
7035 * c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
7036 and OMP_CLAUSE_INDEPENDENT.
7037
bfcfbfa0
MP
70382015-11-05 Marek Polacek <polacek@redhat.com>
7039
7040 PR c/68090
7041 * c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
7042 deal with pre-evaluation on invalid types.
7043
e01d41e5
JJ
70442015-11-05 Jakub Jelinek <jakub@redhat.com>
7045 Ilya Verbin <ilya.verbin@intel.com>
7046
7047 * c-parser.c: Include context.h and gimple-expr.h.
7048 (c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
7049 monotonic together with nonmonotonic.
7050 (c_parser_omp_for_loop): Call c_omp_check_loop_iv. Call add_stmt here.
7051 (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
7052 (c_parser_omp_target_data, c_parser_omp_target_enter_data,
7053 c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
7054 (c_parser_omp_target): Likewise. Evaluate num_teams and thread_limit
7055 expressions on combined target teams before the target.
7056 (c_parser_omp_declare_target): If decl has "omp declare target" or
7057 "omp declare target link" attribute, and cgraph or varpool node already
7058 exists, then set corresponding flags. Call c_finish_omp_clauses
7059 in the parenthesized extended-list syntax case.
7060 * c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
7061 declare target.
7062 * c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
7063 on OMP_CLAUSE_REDUCTION array sections.
7064 (handle_omp_array_sections): Encode low-bound into the MEM_REF, either
7065 into the constant offset, or for variable low-bound using
7066 POINTER_PLUS_EXPR. For structure element based array sections use
7067 GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
7068 (c_finish_omp_clauses): Drop generic_field_head, structure
7069 elements are now always mapped even as array section bases,
7070 diagnose same var in data sharing and mapping clauses. Diagnose if
7071 linear step on declare simd is neither a constant nor a uniform
7072 parameter. Look through POINTER_PLUS_EXPR for array section
7073 reductions. Diagnose the same var or function appearing multiple
7074 times on the same directive. Fix up wording for the to clause if t
7075 is neither a FUNCTION_DECL nor a VAR_DECL. Diagnose nonmonotonic
7076 modifier on kinds other than dynamic or guided or nonmonotonic
7077 modifier together with ordered clause.
7078
4bf9e5a8
TS
70792015-11-03 Thomas Schwinge <thomas@codesourcery.com>
7080 Chung-Lin Tang <cltang@codesourcery.com>
7081
7082 * c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
7083
2adfab87
AM
70842015-10-29 Andrew MacLeod <amacleod@redhat.com>
7085
7086 * c-array-notation.c: Reorder #include's and remove duplicates.
7087 * c-aux-info.c: Likewise.
7088 * c-convert.c: Likewise.
7089 * c-decl.c: Likewise.
7090 * c-errors.c: Likewise.
7091 * c-lang.c: Likewise.
7092 * c-objc-common.c: Likewise.
7093 * c-parser.c: Likewise.
7094 * c-typeck.c: Likewise.
7095
e922069e
JW
70962015-10-26 Jim Wilson <jim.wilson@linaro.org>
7097
7098 PR debug/66068
7099 * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
7100 after calling build_qualified_type.
7101
765dd391
CP
71022015-10-27 Cesar Philippidis <cesar@codesourcery.com>
7103 Thomas Schwinge <thomas@codesourcery.com>
7104 James Norris <jnorris@codesourcery.com>
7105 Joseph Myers <joseph@codesourcery.com>
7106 Julian Brown <julian@codesourcery.com>
7107 Bernd Schmidt <bschmidt@redhat.com>
7108
7109 * c-parser.c (c_parser_oacc_shape_clause): New.
7110 (c_parser_oacc_simple_clause): New.
7111 (c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
7112 (OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.
7113
88bae6f4
TS
71142015-10-27 Thomas Schwinge <thomas@codesourcery.com>
7115 James Norris <jnorris@codesourcery.com>
7116 Cesar Philippidis <cesar@codesourcery.com>
7117
7118 PR c/64765
7119 PR c/64880
7120 * c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
7121 parameters, and handle these. Adjust all users.
7122 (c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
7123 into...
7124 (c_parser_oacc_kernels_parallel): ... this new function. Adjust
7125 all users.
7126 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
7127 declare functions.
7128 (c_finish_omp_construct): Declare function.
7129 * c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
7130 Merge functions into...
7131 (c_finish_omp_construct): ... this new function.
7132
a8fc2579
RB
71332015-10-22 Richard Biener <rguenther@suse.de>
7134
7135 * c-typeck.c (c_finish_omp_clauses): Properly convert operands
7136 before folding a MINUS_EXPR.
7137
e9122ef6
MP
71382015-10-21 Marek Polacek <polacek@redhat.com>
7139
7140 PR c/68024
7141 * c-decl.c (start_function): Warn about vararg functions without
7142 a prototype.
7143
9f47c7e5
IE
71442015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
7145
7146 * c-typeck.c (build_conditional_expr): Use boolean vector
7147 type for vector comparison.
7148 (build_vec_cmp): New.
7149 (build_binary_op): Use build_vec_cmp for comparison.
7150
fa60eeb9
MP
71512015-10-20 Marek Polacek <polacek@redhat.com>
7152
7153 * c-parser.c (is_cilkplus_vector_p): Don't define here.
7154
2c7020eb
MP
71552015-10-20 Marek Polacek <polacek@redhat.com>
7156
7157 PR c/67964
7158 * c-parser.c (c_parser_attributes): Break out of the loop if the
7159 token after an attribute isn't a comma.
7160
d9a6bd32
JJ
71612015-10-13 Jakub Jelinek <jakub@redhat.com>
7162 Aldy Hernandez <aldyh@redhat.com>
7163
7164 * c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
7165 (c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
7166 (c_parser_omp_variable_list): Handle structure elements for
7167 map, to and from clauses. Handle array sections in reduction
7168 clause. Formatting fixes.
7169 (c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
7170 if clause modifiers.
7171 (c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
7172 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
7173 c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
7174 c_parser_omp_clause_is_device_ptr): New functions.
7175 (c_parser_omp_clause_ordered): Parse optional parameter.
7176 (c_parser_omp_clause_reduction): Handle array reductions.
7177 (c_parser_omp_clause_schedule): Parse optional simd modifier.
7178 (c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
7179 functions.
7180 (c_parser_omp_clause_linear): Parse linear clause modifiers.
7181 (c_parser_omp_clause_depend_sink): New function.
7182 (c_parser_omp_clause_depend): Parse source/sink depend kinds.
7183 (c_parser_omp_clause_map): Parse release/delete map kinds and
7184 optional always modifier.
7185 (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
7186 and c_finish_omp_clauses callers.
7187 (c_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
7188 Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
7189 (c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
7190 (OMP_CRITICAL_CLAUSE_MASK): Define.
7191 (c_parser_omp_critical): Parse critical clauses.
7192 (c_parser_omp_for_loop): Handle doacross loops, adjust
7193 c_finish_omp_for and c_finish_omp_clauses callers.
7194 (OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
7195 (c_parser_omp_simd): Allow ordered clause if it has no parameter.
7196 (OMP_FOR_CLAUSE_MASK): Add linear clause.
7197 (c_parser_omp_for): Disallow ordered clause when combined with
7198 distribute. Disallow linear clause when combined with distribute
7199 and not combined with simd.
7200 (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
7201 (c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
7202 parse clauses and if depend clause is found, don't parse a body.
7203 (c_parser_omp_parallel): Disallow copyin clause on target parallel.
7204 Allow target parallel without for after it.
7205 (OMP_TASK_CLAUSE_MASK): Add priority clause.
7206 (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
7207 (c_parser_omp_target_data): Diagnose no map clauses or clauses with
7208 invalid kinds.
7209 (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
7210 (OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
7211 OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
7212 (c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
7213 functions.
7214 (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
7215 defaultmap and is_device_ptr clauses.
7216 (c_parser_omp_target): Parse target parallel and target simd. Set
7217 OMP_TARGET_COMBINED on combined constructs. Parse target enter data
7218 and target exit data. Diagnose invalid map kinds.
7219 (OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
7220 (c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
7221 construct.
7222 (c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
7223 &omp_priv.
7224 (OMP_TASKLOOP_CLAUSE_MASK): Define.
7225 (c_parser_omp_taskloop): New function.
7226 (c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
7227 handle PRAGMA_OMP_TASKLOOP.
7228 (c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
7229 * c-tree.h (c_finish_omp_clauses): Add two new arguments.
7230 * c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
7231 Add IS_OMP argument, handle structure element bases, diagnose
7232 bitfields, pass IS_OMP recursively, diagnose known zero length
7233 array sections in depend clauses, handle array sections in reduction
7234 clause, diagnose negative length even for pointers.
7235 (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
7236 types, pass IS_OMP down to handle_omp_array_sections_1, handle
7237 array sections in reduction clause, set
7238 OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
7239 length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
7240 (c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
7241 Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
7242
21ba0cea
MP
72432015-10-06 Marek Polacek <polacek@redhat.com>
7244
7245 * c-parser.c (c_parser_statement_after_labels): Use
7246 protected_set_expr_location.
7247 (c_parser_omp_clause_num_gangs): Likewise.
7248 (c_parser_omp_clause_num_threads): Likewise.
7249 (c_parser_omp_clause_num_workers): Likewise.
7250 (c_parser_omp_clause_vector_length): Likewise.
7251 (c_parser_omp_clause_num_teams): Likewise.
7252 (c_parser_omp_clause_thread_limit): Likewise.
7253 * c-typeck.c (build_c_cast): Likewise.
7254 (c_cast_expr): Likewise.
7255
624d31fe
RS
72562015-10-05 Richard Sandiford <richard.sandiford@arm.com>
7257
7258 * c-typeck.c (c_tree_equal): Use real_equal instead of
7259 REAL_VALUES_EQUAL.
7260
b8fd7909
JM
72612015-10-04 Jason Merrill <jason@redhat.com>
7262
7263 * c-parser.c (c_lex_one_token): Handle @synchronized.
7264 * c-decl.c (match_builtin_function_types): A declaration of a built-in
7265 can change whether the function is transaction_safe.
7266
1c7485af
MP
72672015-10-02 Marek Polacek <polacek@redhat.com>
7268
7269 PR c/67730
7270 * c-typeck.c (convert_for_assignment): Use the expansion point
7271 location throughout.
7272
3e3b8d63
MP
72732015-10-02 Marek Polacek <polacek@redhat.com>
7274
7275 PR c/64249
7276 * c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
7277 and pass it down to c_parser_if_statement.
7278 (c_parser_else_body): Add CHAIN parameter and pass it down to
7279 c_parser_statement_after_labels.
7280 (c_parser_if_statement): Add CHAIN parameter. Add code to warn about
7281 duplicated if-else-if conditions.
7282
aabef2de
MP
72832015-10-01 Marek Polacek <polacek@redhat.com>
7284
7285 * c-typeck.c (convert_for_assignment): Improve commentary.
7286
de8ddd5f
MP
72872015-09-30 Marek Polacek <polacek@redhat.com>
7288
7289 PR c/67730
7290 * c-typeck.c (c_finish_return): Use the expansion point location for
7291 certain "return with value" warnings.
7292
c4914de6
MLI
72932015-09-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
7294
7295 * c-parser.c (pragma_lex): Add loc argument.
7296
0e36f5c7
MP
72972015-09-15 Marek Polacek <polacek@redhat.com>
7298
7299 PR c/67580
7300 * c-decl.c (tag_exists_p): New function.
7301 * c-parser.c (c_parser_declaration_or_fndef): Give a hint when
7302 struct/union/enum keywords are missing.
7303 * c-tree.h (tag_exists_p): Declare.
7304
2f3bb934
MP
73052015-09-15 Marek Polacek <polacek@redhat.com>
7306
7307 * c-decl.c (lookup_label): Return NULL_TREE instead of 0.
7308 (lookup_tag): Change the type of THISLEVEL_ONLY to bool.
7309 Return NULL_TREE instead of 0.
7310 (lookup_name): Return NULL_TREE instead of 0.
7311 (lookup_name_in_scope): Likewise.
7312 (shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
7313 (parser_xref_tag): Use false instead of 0.
7314 (start_struct): Use true instead of 1.
7315 (start_enum): Use true instead of 1 and NULL_TREE instead of 0.
7316
aa256c4a
MP
73172015-09-14 Marek Polacek <polacek@redhat.com>
7318
7319 * c-typeck.c (set_nonincremental_init_from_string): Use
7320 HOST_WIDE_INT_M1U when shifting a negative value.
7321
dbb68221
MW
73222015-09-09 Mark Wielaard <mjw@redhat.com>
7323
7324 * c-typeck.c (build_binary_op): Check and warn when nonnull arg
7325 parm against NULL.
7326
a8a098ac
JJ
73272015-09-10 Jakub Jelinek <jakub@redhat.com>
7328
7329 PR c/67502
7330 * c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
7331 into OMP_FOR_PRE_BODY rather than before the loop.
7332
f4b189d5
JJ
73332015-09-09 Jakub Jelinek <jakub@redhat.com>
7334
0bb99c11
JJ
7335 PR c/67501
7336 * c-parser.c (c_parser_oacc_all_clauses,
7337 c_parser_omp_all_clauses): Remove invalid clause from
7338 list of clauses even if parser->error is set.
7339
fce5e5e3
JJ
7340 PR c/67500
7341 * c-parser.c (c_parser_omp_clause_aligned,
7342 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
7343 test for errors.
7344 * c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
7345 error_mark_node.
7346
f4b189d5
JJ
7347 PR c/67495
7348 * c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
7349 instead of c_parser_unary_expression. If the result is !lvalue_p,
7350 wrap the result of c_fully_fold into NON_LVALUE_EXPR.
7351
b2aaf235
MP
73522015-09-04 Marek Polacek <polacek@redhat.com>
7353
7354 PR sanitizer/67279
7355 * c-typeck.c (build_binary_op): Don't instrument static initializers.
7356
1807ffc1
MS
73572015-09-03 Martin Sebor <msebor@redhat.com>
7358
7359 PR c/66516
8b652e65
JJ
7360 * c-typeck.c (convert_arguments, parser_build_unary_op,
7361 build_conditional_expr, c_cast_expr, convert_for_assignment,
7362 build_binary_op, _objc_common_truthvalue_conversion): Call
1807ffc1
MS
7363 reject_gcc_builtin.
7364 (c_decl_implicit): Define.
7365
d04ff417
MP
73662015-09-02 Marek Polacek <polacek@redhat.com>
7367
7368 PR c/67432
7369 * c-parser.c (c_parser_enum_specifier): Give a better error for
7370 an empty enum.
7371
a79683d5
TS
73722015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
7373
7374 * c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
7375
191a6b94
MP
73762015-08-12 Marek Polacek <polacek@redhat.com>
7377
7378 * c-decl.c (grokdeclarator): Call error_at instead of error and pass
7379 LOC to it.
7380
420a9d9b
MP
73812015-08-03 Marek Polacek <polacek@redhat.com>
7382
7383 PR c/67088
7384 * c-decl.c (check_bitfield_type_and_width): Add location parameter.
7385 Use it.
7386 (grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
7387
992118a1
PP
73882015-08-02 Patrick Palka <ppalka@gcc.gnu.org>
7389
7390 * c-parser.c (c_parser_if_body): Take token_indent_info
7391 argument. Call warn_for_misleading_indentation even when the
7392 body is a semicolon. Extract token_indent_infos corresponding
7393 to the guard, body and next tokens. Adjust call to
7394 warn_for_misleading_indentation accordingly.
7395 (c_parser_else_body): Likewise.
7396 (c_parser_if_statement): Likewise.
7397 (c_parser_while_statement): Likewise.
7398 (c_parser_for_statement): Likewise.
7399
46308474
LFSM
74002015-07-28 Luis Felipe Strano Moraes <luis.strano@gmail.com>
7401 Manuel López-Ibáñez <manu@gcc.gnu.org>
7402
7403 * c-decl.c (get_parm_info): Remove static var. Update warning
7404 message.
7405
05b28fd6
MP
74062015-07-27 Marek Polacek <polacek@redhat.com>
7407
7408 PR c++/66555
7409 PR c/54979
7410 * c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
7411
451b5e48
MP
74122015-07-20 Marek Polacek <polacek@redhat.com>
7413
7414 PR c++/55095
7415 * c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
7416 (build_binary_op): Warn about left shift overflows.
7417
1916bcb5
AM
74182015-07-09 Andrew MacLeod <amacleod@redhat.com>
7419
7420 * c-array-notation.c: Adjust includes for flags.h changes.
7421 * c-objc-common.c: Likewise.
7422
c7131fb2
AM
74232015-07-07 Andrew MacLeod <amacleod@redhat.com>
7424
7425 * c-array-notation.c: Adjust includes.
7426 * c-aux-info.c: Likewise.
7427 * c-convert.c: Likewise.
7428 * c-decl.c: Likewise.
7429 * c-errors.c: Likewise.
7430 * c-lang.c: Likewise.
7431 * c-objc-common.c: Likewise.
7432 * c-parser.c: Likewise.
7433 * c-typeck.c: Likewise.
7434
da2e71c9
MLI
74352015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
7436
7437 PR fortran/66605
7438 * c-decl.c (finish_function): Call do_warn_unused_parameter.
7439
b155cfd9
MP
74402015-06-29 Marek Polacek <polacek@redhat.com>
7441
7442 PR c/66322
7443 * c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
7444 (c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P. Don't warn
7445 about -Wswitch-bool here.
7446 (do_case): Update c_add_case_label call.
7447 (c_finish_case): Update c_do_switch_warnings call.
7448
31521951
MP
74492015-06-27 Marek Polacek <polacek@redhat.com>
7450
7451 * c-typeck.c: Use VECTOR_TYPE_P throughout.
7452
22d03525
MP
74532015-06-26 Marek Polacek <polacek@redhat.com>
7454
7455 * c-array-notation.c (fix_builtin_array_notation_fn): Use
7456 INDIRECT_REF_P.
7457 * c-typeck.c (array_to_pointer_conversion): Likewise.
7458 (build_unary_op): Likewise.
7459 (c_finish_return): Likewise.
7460
f0889939
AM
74612015-06-25 Andrew MacLeod <amacleod@redhat.com>
7462
7463 * c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
7464 * c-parser.c: Likewise.
7465
8d67ee55
RS
74662015-06-25 Richard Sandiford <richard.sandiford@arm.com>
7467
7468 * c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
7469 instead of pointer_hash.
7470 (detect_field_duplicates): Likewise.
7471
0ae9bd27
MP
74722015-06-25 Marek Polacek <polacek@redhat.com>
7473
7474 * c-array-notation.c: Use VAR_P throughout.
7475 * c-decl.c: Likewise.
7476 * c-objc-common.c: Likewise.
7477 * c-parser.c: Likewise.
7478 * c-typeck.c: Likewise.
7479
62f9079a
MP
74802015-06-25 Marek Polacek <polacek@redhat.com>
7481
7482 * c-decl.c: Use is_global_var throughout.
7483 * c-parser.c: Likewise.
7484 * c-typeck.c: Likewise.
7485
abb226c9
AM
74862015-06-17 Andrew MacLeod <amacleod@redhat.com>
7487
7488 * c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
7489 * c-aux-info.c: Likewise.
7490 * c-convert.c: Likewise.
7491 * c-decl.c: Likewise.
7492 * c-errors.c: Likewise.
7493 * c-lang.c: Likewise.
7494 * c-objc-common.c: Likewise.
7495 * c-parser.c: Likewise.
7496 * c-typeck.c: Likewise.
7497
8cbababc
JH
74982015-06-11 Jan Hubicka <hubicka@ucw.cz>
7499
7500 PR middle-end/66325
7501 * c-decl.c (start_enum): Set TYPE_PACKED consistently among type
7502 variants.
7503
a0349665
PMR
75042015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
7505
7506 * c-decl.c (pop_scope): Register the main translation unit
7507 through the new debug hook.
7508
13fdf2e2
AM
75092015-06-08 Andrew MacLeod <amacleod@redhat.com>
7510
7511 * c-array-notation.c : Adjust include files.
7512 * c-aux-info.c : Likewise.
7513 * c-convert.c : Likewise.
7514 * c-decl.c : Likewise.
7515 * c-errors.c : Likewise.
7516 * c-lang.c : Likewise.
7517 * c-lang.h : Likewise.
7518 * c-objc-common.c : Likewise.
7519 * c-parser.c : Likewise.
7520 * c-typeck.c : Likewise.
7521
d7438551
AH
75222015-06-05 Aldy Hernandez <aldyh@redhat.com>
7523
7524 * c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
7525 immediately clobber it.
7526 (c_write_global_declarations_1): Remove call to
7527 check_global_declaration_1.
7528 (c_write_global_declarations_2): Remove.
7529 (c_write_final_cleanups): Rename from c_write_global_declarations.
7530 Remove call to finalize_compilation_unit.
7531 Remove calls to debugging hooks.
7532 * c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
7533 * c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
7534 * c-tree.h: Remove c_write_global_declarations.
7535
ecb9f223
AM
75362015-06-04 Andrew MacLeod <amacleod@redhat.com>
7537
7538 * c-array-notation.c: Adjust includes for restructured coretypes.h.
7539 * c-aux-info.c: Likewise.
7540 * c-convert.c: Likewise.
7541 * c-decl.c: Likewise.
7542 * c-errors.c: Likewise.
7543 * c-lang.c: Likewise.
7544 * c-objc-common.c: Likewise.
7545 * c-parser.c: Likewise.
7546 * c-typeck.c: Likewise.
7547
9482b620
MP
75482015-06-04 Marek Polacek <polacek@redhat.com>
7549
7550 PR c/66341
7551 * c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
7552 it is a lvalue.
7553
bc51ace3
PK
75542015-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7555
7556 * c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
7557 Warn for empty struct.
7558 (finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.
7559
ea5b45b6
AT
75602015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
7561
7562 * c-decl.c (start_function): Call plugin before parsing.
7563 (finish_function): Call plugin after parsing.
7564
c2d47482
PK
75652015-06-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7566
7567 PR c/49551
7568 * c-decl.c (merge_decls): Merge DECL_COMMON.
7569
a95492ab
JW
75702015-05-22 Jim Wilson <jim.wilson@linaro.org>
7571
7572 * Make-lang.in (check_gcc_pallelize): Define.
7573
fd5c817a
MP
75742015-05-22 Marek Polacek <polacek@redhat.com>
7575
7576 PR c/47043
7577 * c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
7578 attributes.
7579
c7b70a3c
MP
75802015-05-21 Marek Polacek <polacek@redhat.com>
7581
7582 * c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
7583 DECL_BUILT_IN.
7584
21b634ae
MP
75852015-05-20 Marek Polacek <polacek@redhat.com>
7586
7587 * c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
7588 * c-typeck.c: Likewise.
7589
296a8c2f
MP
75902015-05-19 Marek Polacek <polacek@redhat.com>
7591
7592 * c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
7593
41b37d5e
JJ
75942015-05-19 Jakub Jelinek <jakub@redhat.com>
7595
7596 PR middle-end/66199
7597 * c-parser.c (c_parser_omp_for_loop): Don't add
7598 OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
7599 OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
7600 (c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
7601 constructs.
7602
fab27f52
MM
76032015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
7604
7605 * c-typeck.c (build_array_ref): Use std::swap instead of explicit
296a8c2f 7606 swaps.
fab27f52 7607
40de31cf
MLI
76082015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
7609
7610 PR fortran/44054
7611 * c-objc-common.c (c_tree_printer): Replace locus pointer with
7612 accessor function.
7613
3aa3c9fc
MP
76142015-05-14 Marek Polacek <polacek@redhat.com>
7615
7616 PR c/66066
7617 PR c/66127
7618 * c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
7619 rather than with 0.
7620
c3388e62
DM
76212015-05-12 David Malcolm <dmalcolm@redhat.com>
7622
7623 * c-parser.c (c_parser_if_body): Add param "if_loc", use it
7624 to add a call to warn_for_misleading_indentation.
7625 (c_parser_else_body): Likewise, adding param "else_loc".
7626 (c_parser_if_statement): Check for misleading indentation.
7627 (c_parser_while_statement): Likewise.
7628 (c_parser_for_statement): Likewise.
7629
755e528f
MP
76302015-05-08 Marek Polacek <polacek@redhat.com>
7631
7632 PR c/64918
7633 * c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
7634 (output_init_element): Likewise.
7635
0173bd2a
MP
76362015-05-07 Marek Polacek <polacek@redhat.com>
7637
7638 PR c/65179
7639 * c-typeck.c (build_binary_op): Warn when left shifting a negative
7640 value.
7641
9babc352
MP
76422015-04-30 Marek Polacek <polacek@redhat.com>
7643
7644 * c-typeck.c (set_init_label): Call error_at instead of error and
7645 pass LOC to it.
7646
ac9f18db
MP
7647 * c-typeck.c (c_incomplete_type_error): Refactor to use %qT. Print
7648 the type of a decl.
7649
ec3fba51
MP
7650 * c-typeck.c (c_build_va_arg): Clarify the error message.
7651
b811915d
TS
76522015-04-29 Thomas Schwinge <thomas@codesourcery.com>
7653
7654 * c-parser.c (c_parser_oacc_enter_exit_data): Use
7655 OMP_STANDALONE_CLAUSES.
7656
f3075008
MP
76572015-04-28 Marek Polacek <polacek@redhat.com>
7658
7659 * c-parser.c (c_parser_binary_expression): Remove duplicate line.
7660
4e81b788
MP
76612015-04-28 Marek Polacek <polacek@redhat.com>
7662
7663 PR c/65901
7664 * c-typeck.c (c_build_va_arg): Require TYPE be a complete type.
7665
6c1db78e
MP
76662015-04-25 Marek Polacek <polacek@redhat.com>
7667
7668 PR c/52085
7669 * c-decl.c (finish_enum): Copy over TYPE_ALIGN. Also check for "mode"
7670 attribute.
7671
5c4abbb8
MP
76722015-04-23 Marek Polacek <polacek@redhat.com>
7673
7674 PR c/65345
7675 * c-decl.c (set_labels_context_r): New function.
7676 (store_parm_decls): Call it via walk_tree_without_duplicates.
7677 * c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
7678 instead of create_tmp_var. Build TARGET_EXPR instead of
7679 COMPOUND_EXPR.
7680 (build_atomic_assign): Use create_tmp_var_raw instead of
7681 create_tmp_var. Build TARGET_EXPRs instead of MODIFY_EXPR.
7682
06aca1d5
IV
76832015-04-20 Ilya Verbin <ilya.verbin@intel.com>
7684
7685 * c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
7686 (c_parser_omp_target_update): Add missed %> to error_at ().
7687
8fba1830
BRF
76882015-04-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7689
7690 PR target/55143
7691 * c-decl.c (c_default_pointer_mode): Remove definition.
7692 * c-tree.h (c_default_pointer_mode): Remove declaration.
7693
62021f64
TB
76942015-03-27 Tobias Burnus <burnus@net-b.de>
7695
7696 PR c/65586
7697 * c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
7698 error out.
7699 (c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
7700 c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
7701 Update calls to not error for skipped omp pragmas with -fopenmp-simd.
7702
9b65e171
JJ
77032015-03-19 Jakub Jelinek <jakub@redhat.com>
7704
7705 * c-decl.c (c_decl_attributes): Also add "omp declare target"
7706 attribute for DECL_EXTERNAL VAR_DECLs.
7707
17958621
JJ
77082015-03-11 Jakub Jelinek <jakub@redhat.com>
7709
7710 * c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
7711 argument.
7712
7ccb1a11
JJ
77132015-03-10 Jakub Jelinek <jakub@redhat.com>
7714
7715 PR c/65120
7716 * c-typeck.c (parser_build_binary_op): Check for tcc_comparison
7717 before preparing arguments to warn_logical_not_parentheses.
7718
01177669
JJ
77192015-03-09 Jakub Jelinek <jakub@redhat.com>
7720
7721 PR c/65120
7722 * c-typeck.c (parser_build_binary_op): Don't warn for
7723 !!x == y or !b == y where b is _Bool.
7724
802ac282
MP
77252015-03-09 Marek Polacek <polacek@redhat.com>
7726
7727 * c-convert.c (convert): Make use of do_ubsan_in_current_function.
7728 * c-decl.c (grokdeclarator): Likewise.
7729 * c-typeck.c (build_binary_op): Likewise.
7730
e5165b60
MP
77312015-02-27 Marek Polacek <polacek@redhat.com>
7732
7733 PR c/65228
7734 * c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
7735
065d214c
MP
77362015-02-14 Marek Polacek <polacek@redhat.com>
7737
7738 PR c/64768
7739 * c-decl.c (grokdeclarator): Set the range of a flexible array member
7740 declared through a typedef name.
7741
e5d9235b
MP
77422015-02-13 Marek Polacek <polacek@redhat.com>
7743
7744 PR c/65050
7745 * c-decl.c (grokdeclarator): Print also the type when giving
7746 the error message about array's incomplete element type.
7747
fa01ffcc
JJ
77482015-02-11 Jakub Jelinek <jakub@redhat.com>
7749
7750 PR c/64824
7751 * c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
7752 check in the POP macro.
7753
c3e38a03
MP
77542015-02-09 Marek Polacek <polacek@redhat.com>
7755
7756 PR c/64856
7757 * c-typeck.c (process_init_element): Don't always wrap
7758 COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when
7759 initializing a range of elements.
7760
4886ec8e
JJ
77612015-02-04 Jakub Jelinek <jakub@redhat.com>
7762
7763 PR c/64824
7764 PR c/64868
7765 * c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.
7766
c3e38a03 77672015-02-02 Bruno Loff <bruno.loff@gmail.com>
a4bb6959
BL
7768
7769 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
7770 processing enum declaration.
7771
7b33f0c8
MP
77722015-01-29 Marek Polacek <polacek@redhat.com>
7773
7774 PR c/64709
7775 * c-typeck.c (pop_init_level): If constructor_elements has
7776 exactly one element with integer_zerop value, set constructor_zeroinit
7777 to 1. Remove braces around warning_init call.
7778
dea63e49
JJ
77792015-01-27 Jakub Jelinek <jakub@redhat.com>
7780
7781 PR c/64766
7782 * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
7783 of FUNCTION_DECLs with error_mark_node.
7784
d38f7dce
JJ
77852015-01-26 Jakub Jelinek <jakub@redhat.com>
7786
7787 PR c/64778
7788 * c-typeck.c (convert_arguments): Return -1 if there are
7789 error_args, even if we've diagnosed too many arguments.
7790
cbf5d0e7
RB
77912015-01-21 Richard Biener <rguenther@suse.de>
7792
7793 PR middle-end/64313
7794 * c-decl.c (merge_decls): Call set_builtin_decl_declared_p
7795 for builtins the user declared correctly.
7796
41dbbb37
TS
77972015-01-15 Thomas Schwinge <thomas@codesourcery.com>
7798 Bernd Schmidt <bernds@codesourcery.com>
7799 Cesar Philippidis <cesar@codesourcery.com>
7800 James Norris <jnorris@codesourcery.com>
7801 Jakub Jelinek <jakub@redhat.com>
7802 Ilmir Usmanov <i.usmanov@samsung.com>
7803
7804 * c-parser.c: Include "gomp-constants.h".
7805 (c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
7806 omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
7807 Use OMP_CLAUSE_SET_MAP_KIND.
7808 (c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
7809 PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
7810 (c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
7811 PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
7812 PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
7813 (c_parser_omp_clause_name): Handle "auto", "async", "copy",
7814 "copyout", "create", "delete", "deviceptr", "gang", "host",
7815 "num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
7816 "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
7817 "present_or_create", "pcreate", "seq", "self", "vector",
7818 "vector_length", "wait", "worker".
7819 (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
7820 (OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
7821 (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
7822 (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
7823 (c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
7824 (c_parser_oacc_wait_list, c_parser_oacc_data_clause)
7825 (c_parser_oacc_data_clause_deviceptr)
7826 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
7827 (c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
7828 (c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
7829 (c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
7830 (c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
7831 (c_parser_oacc_parallel, c_parser_oacc_update)
7832 (c_parser_oacc_wait): New functions.
7833 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
7834 (c_finish_oacc_data): New prototypes.
7835 * c-typeck.c: Include "gomp-constants.h".
7836 (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
7837 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
7838 OMP_CLAUSE_SET_MAP_KIND.
7839 (c_finish_oacc_parallel, c_finish_oacc_kernels)
7840 (c_finish_oacc_data): New functions.
7841 (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
7842 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
7843 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
7844 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
7845 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
7846 GOMP_MAP_FORCE_DEVICEPTR.
7847
adfac8df
JJ
78482015-01-09 Michael Collison <michael.collison@linaro.org>
7849
7850 * c-array-notation.c: Include hash-set.h, machmode.h,
7851 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
7852 fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
7853 * c-aux-info.c: Ditto.
7854 * c-convert.c: Ditto.
7855 * c-decl.c: Ditto.
7856 * c-errors.c: Ditto.
7857 * c-lang.c: Dittoxs.
7858 * c-objc-common.c: Ditto.
7859 * c-parser.c: Ditto.
7860 * c-typeck.c: Include hash-set.h, machmode.h,
7861 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
7862 fold-const.h, wide-int.h, inchash.h, real.h and
7863 fixed-value.h due to flattening of tree.h.
7864
2cc901dc
MP
78652015-01-07 Marek Polacek <polacek@redhat.com>
7866
7867 PR c/64417
7868 * c-typeck.c (process_init_element): Disallow initialization of
7869 a flexible array member with a string constant if the structure
7870 is in an array.
7871
5624e564
JJ
78722015-01-05 Jakub Jelinek <jakub@redhat.com>
7873
e5341100
JJ
7874 PR sanitizer/64344
7875 * c-typeck.c (convert_for_assignment, c_finish_return): For
7876 -fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
7877 types also set in_late_binary_op around convert call.
7878 * c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
7879 to integral type casts, if not in_late_binary_op, pass c_fully_fold
7880 result on expr as last argument to ubsan_instrument_float_cast,
7881 if in_late_binary_op, don't use c_save_expr but save_expr.
7882
5624e564
JJ
7883 Update copyright years.
7884
5bd012f8
MP
78852015-01-05 Marek Polacek <polacek@redhat.com>
7886
7887 PR c/64423
7888 * c-typeck.c (build_array_ref): Pass loc down to
7889 warn_array_subscript_with_type_char.
7890
3f8257db 78912014-12-20 Martin Uecker <uecker@eecs.berkeley.edu>
768952be
MU
7892
7893 * c-typeck.c: New behavious for pointers to arrays with qualifiers
8e745a17 7894 (common-pointer-type): For pointers to arrays take qualifiers from
768952be 7895 element type.
8e745a17 7896 (build_conditional_expr): Add warnings for lost qualifiers.
768952be 7897 (comp-target-types): Allow pointers to arrays with different qualifiers.
8e745a17 7898 (convert-for-assignment): Adapt warnings for discarded qualifiers. Add
768952be 7899 WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
8e745a17 7900 to PEDWARN_FOR_QUALIFIERS.
768952be 7901
8f94a8c4
JJ
79022014-12-17 Jakub Jelinek <jakub@redhat.com>
7903
7904 PR sanitizer/64289
7905 * c-convert.c: Include ubsan.h.
7906 (convert): For real -> integral casts and
7907 -fsanitize=float-cast-overflow don't call convert_to_integer, but
7908 instead instrument the float cast directly.
7909
b731b390
JJ
79102014-11-29 Jakub Jelinek <jakub@redhat.com>
7911
7912 * c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
7913 c_finish_stmt_expr): Remove NULL last argument from
7914 create_tmp_var_raw and create_tmp_var calls.
7915 * c-array-notation.c (fix_builtin_array_notation_fn,
7916 build_array_notation_expr, fix_conditional_array_notations_1,
7917 fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
7918
541e35a6
MP
79192014-11-28 Marek Polacek <polacek@redhat.com>
7920
7921 PR c/63862
7922 * c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
7923 convert the right operand to integer type.
7924
b286be94
MP
79252014-11-25 Marek Polacek <polacek@redhat.com>
7926
7927 PR c/63877
7928 * c-decl.c (start_function): Disable -Wmissing-declarations warning
7929 for inline functions.
7930
aa7da51a
JJ
79312014-11-21 Jakub Jelinek <jakub@redhat.com>
7932
7933 PR target/63764
7934 * c-typeck.c (build_array_ref): Adjust
7935 convert_vector_to_pointer_for_subscript caller. If it returns true,
7936 call non_lvalue_loc on the result.
7937
d876207f
RB
79382014-11-11 Richard Biener <rguenther@suse.de>
7939
7940 * c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
7941 to true.
7942
e5e44252
AK
79432014-11-10 Andi Kleen <ak@linux.intel.com>
7944
7945 PR c/60804
7946 * c-parser.c (c_parser_statement_after_labels): Call
7947 check_no_cilk.
7948 (c_parser_if_statement): Dito.
7949 (c_parser_switch_statement): Dito.
7950 (c_parser_while_statement): Dito.
7951 (c_parser_do_statement): Dito.
7952 (c_parser_for_statement): Dito.
7953 * c-typeck.c (c_finish_loop): Dito.
7954
13c21655
PC
79552014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
7956
7957 * c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
7958 OPT_Wshift_count_overflow in the warnings.
7959
2d51fcef
MP
79602014-10-30 Marek Polacek <polacek@redhat.com>
7961
7962 * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
7963 print the stripped version as well, if they're not the same.
7964
ef4bddc2
RS
79652014-10-29 Richard Sandiford <richard.sandiford@arm.com>
7966
7967 * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
7968 machine_mode.
7969
c582198b
AM
79702014-10-28 Andrew MacLeod <amacleod@redhat.com>
7971
7972 * c-decl.c: Adjust include files.
7973 * c-parser.c: Ditto.
7974
ddc8de03
PM
79752014-10-27 Phil Muldoon <pmuldoon@redhat.com>
7976 Tom Tromey <tromey@redhat.com>
7977
7978 * c-tree.h (enum c_oracle_request): New.
7979 (c_binding_oracle_function): New typedef.
7980 (c_binding_oracle, c_pushtag, c_bind): Declare.
7981 * c-decl.c (c_binding_oracle): New global.
7982 (I_SYMBOL_CHECKED): New macro.
7983 (i_symbol_binding): New function.
7984 (I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
7985 (I_TAG_CHECKED): New macro.
7986 (i_tag_binding): New function.
7987 (I_TAG_BINDING, I_TAG_DECL): Redefine.
7988 (I_LABEL_CHECKED): New macro.
7989 (i_label_binding): New function.
7990 (I_LABEL_BINDING, I_LABEL_DECL): Redefine.
7991 (c_print_identifier): Save and restore c_binding_oracle.
7992 (c_pushtag, c_bind): New functions.
7993
60393bbc
AM
79942014-10-27 Andrew MacLeod <amacleod@redhat.com>
7995
7996 * c-typeck.c: Adjust include files.
7997
d723bb7c
MLI
79982014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
7999
8000 PR c++/53061
8001 * c-objc-common.c (c_objc_common_init): Do not do diagnostics
8002 initialization here...
8003 (c_initialize_diagnostics): ... but here. Set defaults after
8004 building pretty-printer.
8005
1bc5a451
MP
80062014-10-23 Marek Polacek <polacek@redhat.com>
8007
8008 PR c/63626
8009 * c-decl.c (pop_scope): Don't print warning in external_scope.
8010
4435bb92
MP
80112014-10-19 Marek Polacek <polacek@redhat.com>
8012
8013 PR c/63567
8014 * c-typeck.c (output_init_element): Allow initializing objects with
8015 static storage duration with compound literals even in C99 and add
8016 pedwarn for it.
8017
7278465e
MP
80182014-10-17 Marek Polacek <polacek@redhat.com>
8019
8020 PR c/63567
8021 * c-typeck.c (digest_init): Allow initializing objects with static
8022 storage duration with compound literals even in C99 and add pedwarn
8023 for it.
8024
d9b7be2e
MP
80252014-10-17 Marek Polacek <polacek@redhat.com>
8026
8027 PR c/63543
8028 * c-tree.h (C_TYPE_ERROR_REPORTED): Define.
8029 * c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
8030 error multiple times. Print the type.
8031
f406ae1f
MP
80322014-10-17 Marek Polacek <polacek@redhat.com>
8033
8034 PR c/63549
8035 * c-typeck.c (build_array_ref): Bail if the index in an incomplete
8036 type.
8037
92574c7c
MP
80382014-10-17 Marek Polacek <polacek@redhat.com>
8039
8040 * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
8041 (start_function): Use OPT_Wimplicit_int instead of 0.
8042 (store_parm_decls_oldstyle): Likewise.
8043
1bc4a978
MT
80442014-10-17 Alan Modra <amodra@gmail.com>
8045
8046 PR middle-end/61848
8047 * c-decl.c (merge_decls): Don't merge section name or tls model
8048 to newdecl symtab node, instead merge to olddecl. Override
8049 existing olddecl section name. Set tls_model for all thread-local
8050 vars, not just OMP thread-private ones. Remove incorrect comment.
8051
83685514
AM
80522014-10-16 Andrew MacLeod <amacleod@redhat.com>
8053
8054 * c-decl.c: Adjust include files.
8055
78a7c317
DD
80562014-10-14 DJ Delorie <dj@redhat.com>
8057
8058 * c-parser.c (c_parse_init): Add RID entries for each __intN.
8059 (c_token_starts_typename): Check all __intN, not just __int128.
8060 (c_token_starts_declspecs): Likewise.
8061 (c_parser_declspecs): Likewise.
8062 (c_parser_attribute_any_word): Likewise.
8063 (c_parser_objc_selector): Likewise.
8064 * c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
8065 (struct c_declspecs): Add int_n_idx field to record *which* __intN
8066 is specified.
8067 * c-decl.c (declspecs_add_type): Check for all __intN, not just
8068 __int128.
8069 (finish_declspecs): Likewise.
8070
74d98c1e
AB
80712014-10-13 Anthony Brandon <anthony.brandon@gmail.com>
8072
8e745a17 8073 * c-parser.c (c_parser_all_labels): New function to replace
74d98c1e 8074 the duplicate code.
8e745a17 8075 (c_parser_statement): Call the new function.
74d98c1e 8076
84937de2
MP
80772014-10-09 Marek Polacek <polacek@redhat.com>
8078
8079 PR c/63480
8080 * c-typeck.c (pop_init_level): Don't warn about initializing
8081 with { }.
8082
0382aaa0
MP
80832014-10-07 Marek Polacek <polacek@redhat.com>
8084
8085 PR c/59717
8086 * c-decl.c (header_for_builtin_fn): New function.
8087 (implicitly_declare): Suggest which header to include.
8088
7a0ca710
MP
80892014-10-07 Marek Polacek <polacek@redhat.com>
8090
8091 * c-convert.c (convert): Use error_operand_p.
8092 * c-typeck.c (require_complete_type): Likewise.
8093 (really_atomic_lvalue): Likewise.
8094 (digest_init): Likewise.
8095 (handle_omp_array_sections_1): Likewise.
8096
6bc8a126
MP
80972014-10-03 Marek Polacek <polacek@redhat.com>
8098
8099 PR c/63453
8100 * c-decl.c (pop_scope): Don't warn about "inline function declared
8101 but never defined" for functions marked with gnu_inline attribute.
8102
d90c0a59
JJ
81032014-09-25 Jakub Jelinek <jakub@redhat.com>
8104
8105 PR c++/63249
8106 * c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
8107 on low_bound and length.
8108
083e891e
MP
81092014-09-24 Marek Polacek <polacek@redhat.com>
8110
8111 PR c/61405
8112 PR c/53874
8113 * c-parser.c: Don't define CPP_KEYWORD.
8114 (c_parser_switch_statement): Pass original type to c_finish_case.
8115 * c-tree.h (c_finish_case): Update declaration.
8116 * c-typeck.c (c_finish_case): Add TYPE parameter. Pass it
8117 conditionally to c_do_switch_warnings.
8118
8d95fe25
MP
81192014-09-03 Marek Polacek <polacek@redhat.com>
8120
8121 PR c/62024
8122 * c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
8123 conversions.
8124
9a771876
JJ
81252014-09-02 Jakub Jelinek <jakub@redhat.com>
8126 Balaji V. Iyer <balaji.v.iyer@intel.com>
8127 Igor Zamyatin <igor.zamyatin@intel.com>
8128
8129 * c-parser.c (c_parser_cilk_for): New function.
8130 (c_parser_cilk_grainsize): Likewise.
8131 (c_get_temp_regvar): Likewise.
8132 (c_parser_statement_after_labels): Added RID_CILK_FOR case.
8133 (c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
8134 (c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
8135 * c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
8136 case.
8137
b7679d96
CG
81382014-08-27 Chen Gang <gang.chen.5i5j@gmail.com>
8139
8140 * c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
8141 with using HOST_WIDE_INT without truncation to 'int'
8142
59ea0364
MP
81432014-08-22 Marek Polacek <polacek@redhat.com>
8144
8145 PR c++/62199
8146 * c-typeck.c (parser_build_binary_op): Adjust call to
8147 warn_logical_not_parentheses.
8148
671a475e
IZ
81492014-08-22 Igor Zamyatin <igor.zamyatin@intel.com>
8150
8151 PR other/62008
8152 * c-parser.c (c_parser_array_notation): Check for correct
8153 type of an array added.
8154
04159acf
MP
81552014-08-19 Marek Polacek <polacek@redhat.com>
8156
8157 PR c++/62153
8158 * c-typeck.c (build_binary_op): If either operand of a comparison
8159 is a boolean expression, call maybe_warn_bool_compare.
8160
c77935ee
PP
81612014-08-19 Patrick Palka <ppalka@gcc.gnu.org>
8162
8163 PR c/45584
8164 * c-typeck.c (build_c_cast): Do a conversion even when the
8165 TYPE_MAIN_VARIANTs are the same.
8166
35aff4fb
MP
81672014-08-19 Marek Polacek <polacek@redhat.com>
8168
8169 * c-decl.c (diagnose_mismatched_decls): Unconditionally call
8170 pedwarn_c99 instead of pedwarn.
8171 (grokfield): Likewise.
8172 (warn_defaults_to): New function.
8173 (grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
8174 Unconditionally call pedwarn_c99 instead of pedwarn.
8175 (start_function): Call warn_defaults_to instead of pedwarn_c99.
8176 (declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
8177 check flag_isoc11 before.
8178 * c-errors.c (pedwarn_c99): Change the return type to bool.
8179 Handle -Wc99-c11-compat.
8180 * c-parser.c (disable_extension_diagnostics): Handle
8181 warn_c99_c11_compat.
8182 (restore_extension_diagnostics): Likewise.
8183 (c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
8184 instead of pedwarn, don't check flag_isoc11 before.
8185 (c_parser_declspecs): Likewise.
8186 (c_parser_alignas_specifier): Likewise.
8187 (c_parser_alignof_expression): Likewise.
8188 (c_parser_generic_selection): Likewise.
8189 * c-tree.h (pedwarn_c99): Update declaration.
8190 * c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
8191 of pedwarn_c99.
8192
177cce46
MP
81932014-08-19 Marek Polacek <polacek@redhat.com>
8194
8195 * c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
8196 to pedwarn_c90.
8197 * c-errors.c: Include "opts.h".
8198 (pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
8199 * c-parser.c (disable_extension_diagnostics): Handle negative value
8200 of warn_c90_c99_compat, too.
8201 (restore_extension_diagnostics): Likewise.
8202 (c_parser_compound_statement_nostart): Pass
8203 OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.
8204
6dc99c33
MP
82052014-08-12 Marek Polacek <polacek@redhat.com>
8206
8207 * c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
8208 Add pedwarn.
8209 (c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
8210 Likewise.
8211 (c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.
8212
3f8257db 82132014-08-10 Marek Polacek <polacek@redhat.com>
f3bede71
MP
8214
8215 PR c/51849
8216 * c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
8217 Call pedwarn_c90 instead of pedwarn.
8218 (check_bitfield_type_and_width): Likewise.
8219 (declspecs_add_qual): Likewise.
8220 (declspecs_add_type): Likewise.
8221 (warn_variable_length_array): Unify function for -pedantic and -Wvla.
8222 Adjust to only call pedwarn_c90.
8223 (grokdeclarator): Remove pedantic && !flag_isoc99 check. Call
8224 pedwarn_c90 instead of pedwarn.
8225 * c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
8226 * c-parser.c (disable_extension_diagnostics): Handle
8227 warn_c90_c99_compat.
8228 (restore_extension_diagnostics): Likewise.
8229 (c_parser_enum_specifier): Remove check for !flag_isoc99. Call
8230 pedwarn_c90 instead of pedwarn.
8231 (c_parser_initelt): Likewise.
8232 (c_parser_postfix_expression): Likewise.
8233 (c_parser_postfix_expression_after_paren_type): Likewise.
8234 (c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
8235 * c-tree.h: Fix formatting.
8236 * c-typeck.c (build_array_ref): Remove check for !flag_isoc99. Call
8237 pedwarn_c90 instead of pedwarn.
8238
9f25a338
TS
82392014-08-07 Trevor Saunders <tsaunders@mozilla.com>
8240
8241 * c-typeck.c: Remove include of pointer-set.h.
8242
044331a8
MP
82432014-08-07 Marek Polacek <polacek@redhat.com>
8244
8245 * c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.
8246
b787e7a2
TS
82472014-08-02 Trevor Saunders <tsaunders@mozilla.com>
8248
8249 * c-typeck.c: Use hash_map instead of pointer_map.
8250
6e2830c3
TS
82512014-08-02 Trevor Saunders <tsaunders@mozilla.com>
8252
8253 * c-decl.c: Use hash_set instead of pointer_set.
8254
a7ee52fb
IZ
82552014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
8256
8257 PR middle-end/61455
8258 * c-array-notation.c (expand_array_notations): Handling
8259 of DECL_EXPR added.
8260
b4dfdc11
MG
82612014-07-31 Marc Glisse <marc.glisse@inria.fr>
8262
8263 PR c++/60517
8264 * c-typeck.c (c_finish_return): Return 0 instead of the address of
8265 a local variable.
8266
976d5a22
TT
82672014-07-30 Tom Tromey <tromey@redhat.com>
8268
8269 * c-typeck.c (struct constructor_stack) <designator_depth>: New
8270 field.
8271 (really_start_incremental_init, push_init_level): Initialize
8272 designator_depth.
8273 (pop_init_level): Set global designator_depth.
8274 (process_init_element): Check for designated_init attribute.
8275
30281de2
MP
82762014-07-20 Marek Polacek <polacek@redhat.com>
8277
8278 PR c/61852
8279 * c-decl.c (implicit_decl_warning): Add location_t parameter. Use it.
8280 (implicitly_declare): Pass location to implicit_decl_warning.
8281
b108f48f
JJ
82822014-07-14 Jakub Jelinek <jakub@redhat.com>
8283
8284 PR middle-end/61294
8285 * c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
8286 If non-NULL, call c_parser_check_literal_zero.
8287 (c_parser_check_literal_zero): New function.
8288 (c_parser_postfix_expression_after_primary): Adjust
8289 c_parser_expr_list caller, handle -Wmemset-transposed-args.
8290
773ec47f
MP
82912014-07-06 Marek Polacek <polacek@redhat.com>
8292
8293 PR c/6940
8294 * c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
8295 * c-tree.h (C_ARRAY_PARAMETER): Define.
8296 * c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
8297 function parameter.
8298
22e1cf1c 82992014-07-02 Jan Hubicka <hubicka@ucw.cz>
3f8257db 8300 Chen Gang <gang.chen.5i5j@gmail.com>
22e1cf1c
JH
8301
8302 * c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
8303 releasing symbol.
8304
52ec0ea3
MP
83052014-07-01 Marek Polacek <polacek@redhat.com>
8306
8307 * c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
8308 instead of 0 to WARN_FOR_ASSIGNMENT.
8309
d5c3d343
MP
83102014-07-01 Marek Polacek <polacek@redhat.com>
8311
8312 PR c/58286
8313 * c-typeck.c (convert_for_assignment): Pass
8314 OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
8315
6a7253a4
MP
83162014-06-30 Marek Polacek <polacek@redhat.com>
8317
8318 * c-decl.c (grokdeclarator): Don't instrument VLAs if the function
8319 has no_sanitize_undefined attribute.
8320
5e88a8f4
IZ
83212014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
8322
8323 PR middle-end/57541
8324 * c-array-notation.c (fix_builtin_array_notation_fn):
8325 Check for 0 arguments in builtin call. Check that bultin argument is
8326 correct.
8327 * c-parser.c (c_parser_array_notation): Check for incorrect initial
8328 index.
8329
9698b078
SH
83302014-06-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
8331
8332 * c-parser.c (c_parser_declaration_or_fndef): Discard all type
8333 qualifiers in __auto_type for atomic types.
8334 (c_parser_typeof_specifier): Discard all type qualifiers in
8335 __typeof__ for atomic types.
8336
6e07c515
MP
83372014-06-25 Marek Polacek <polacek@redhat.com>
8338
8339 PR c/61162
8340 * c-parser.c (c_parser_statement_after_labels): Pass the location of
8341 the return expression to c_finish_return.
8342
da6f124d
JJ
83432014-06-25 Jakub Jelinek <jakub@redhat.com>
8344
8345 * c-typeck.c (c_finish_omp_clauses): Make sure
8346 OMP_CLAUSE_LINEAR_STEP has correct type.
8347
c203e8a7
TS
83482014-06-24 Trevor Saunders <tsaunders@mozilla.com>
8349
8350 * c-decl.c: Adjust.
8351
56ad0e38
JJ
83522014-06-24 Jakub Jelinek <jakub@redhat.com>
8353
8354 * c-parser.c (c_parser_omp_for_loop): For
8355 #pragma omp parallel for simd move lastprivate clause from parallel
8356 to for rather than simd.
8357
47c2554f
MP
83582014-06-23 Marek Polacek <polacek@redhat.com>
8359
8360 * c-typeck.c (parser_build_binary_op): Don't call
8361 warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
8362
56363ffd
JH
83632014-06-15 Jan Hubicka <hubicka@ucw.cz>
8364
8365 * c-parser.c (c_parser_omp_threadprivate): Likewise.
8366 * c-decl.c (merge_decls): Likewise.
8367
d7ff7ae5
MP
83682014-06-09 Marek Polacek <polacek@redhat.com>
8369
8370 PR c/36446
8371 * c-typeck.c (error_init): Call inform instead of error_at.
8372 (pedwarn_init): Call inform instead of pedwarn.
8373 (warning_init): Call inform instead of warning_at.
8374
24d047a3
JH
83752014-06-07 Jan Hubicka <hubicka@ucw.cz>
8376
8377 * c-decl.c (merge_decls): Use set_decl_section_name.
8378 (duplicate_decls): Remove node if it exists.
8379
9bac5cbb
G
83802014-06-05 S. Gilles <sgilles@terpmail.umd.edu>
8381
8382 PR c/53119
8383 * c-typeck.c (push_init_level, process_init_element,
8384 pop_init_level): Correct check for zero initialization, move
8385 missing brace warning to respect zero initialization.
8386
8ffcdea8
MP
83872014-06-05 Marek Polacek <polacek@redhat.com>
8388
8389 PR c/56724
8390 * c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.
8391
742938c9
MP
83922014-06-05 Marek Polacek <polacek@redhat.com>
8393
8394 PR c/49706
8395 * c-typeck.c (parser_build_binary_op): Warn when logical not is used
ab20d992 8396 on the left hand side operand of a comparison.
742938c9 8397
6447c55d
MP
83982014-06-05 Marek Polacek <polacek@redhat.com>
8399
8400 PR c/48062
8401 * c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
8402 Print note only if the warning was printed.
8403
9dc7743c
IZ
84042014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
8405
8406 PR c/58942
8407 * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
8408 with a pointer.
8409
fedfecef
MP
84102014-06-03 Marek Polacek <polacek@redhat.com>
8411
8412 PR c/60439
8413 * c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
8414 c_start_case.
8415 * c-tree.h (c_start_case): Update.
8416 * c-typeck.c (c_start_case): Add new boolean parameter. Warn if
8417 switch condition has boolean value.
8418
9b2b7279
AM
84192014-06-02 Andrew MacLeod <amacleod@redhat.com>
8420
8421 * c-decl.c: Include builtins.h.
8422 * c-parser.c: Likewise.
8423
5c1bc275
MP
84242014-05-27 Marek Polacek <polacek@redhat.com>
8425
8426 PR c/56724
8427 * c-typeck.c (convert_arguments): Get location of a parameter. Change
8428 error and warning calls to error_at and warning_at. Pass location of
8429 a parameter to it. Call warning_at with OPT_Wtraditional_conversion.
8430 (convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
8431 WARN_FOR_QUALIFIERS. Pass expr_loc to those.
8432
97563bc8
IZ
84332014-05-26 Igor Zamyatin <igor.zamyatin@intel.com>
8434
8435 PR c/61191
8436 * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
8437 function parameters.
8438
aede2c10
JH
84392014-05-23 Jan Hubicka <hubicka@ucw.cz>
8440
8441 * c-decl.c (merge_decls): Preserve symtab node pointers.
8442 (duplicate_decls): Free new decl.
8443
edbba2ce
TS
84442014-05-23 Thomas Schwinge <thomas@codesourcery.com>
8445
f3316c6d
TS
8446 * c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
8447 initialization.
8448
edbba2ce
TS
8449 * c-parser.c (c_parser_omp_target): Return bool values.
8450
68c81f24
TS
84512014-05-22 Thomas Schwinge <thomas@codesourcery.com>
8452
8453 * c-parser.c (c_parser_omp_clause_thread_limit): Rename
8454 num_teams_loc variable to num_thread_limit_loc.
8455
632f2871
RS
84562014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
8457
8458 * c-array-notation.c (expand_array_notations): Use void_node
8459 instead of void_zero_node.
8460
766090c2
TS
84612014-05-17 Trevor Saunders <tsaunders@mozilla.com>
8462
8463 * c-decl.c (finish_struct): Adjust.
8464 (finish_enum): Likewise.
8465 (bind): Adjust.
8466 (record_inline_static): Likewise.
8467 (push_scope): Likewise.
8468 (make_label): Likewise.
8469 (lookup_label_for_goto): Likewise.
8470 (finish_struct): Likewise.
8471 (finish_enum): Likewise.
8472 (store_parm_decls): Likewise.
8473 (c_push_function_context): Likewise.
8474 * c-lang.h: Remove usage of variable_size gty attribute.
8475 * c-parser.c (c_parse_init): Adjust.
8476 (c_parse_file): Likewise.
8477
2b107f6b
MP
84782014-05-13 Marek Polacek <polacek@redhat.com>
8479
8480 PR c/61162
8481 * c-typeck.c (convert_for_assignment): Pass location to
8482 WARN_FOR_ASSIGNMENT instead of input_location.
8483
d033409e
MP
84842014-05-10 Marek Polacek <polacek@redhat.com>
8485
8486 * c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
8487 maybe_warn_string_init.
8488 (c_parser_postfix_expression_after_paren_type): Pass type_loc to
8489 maybe_warn_string_init.
8490 * c-tree.h (maybe_warn_string_init): Update declaration.
8491 * c-typeck.c (maybe_warn_string_init): Add location parameter.
8492 Call pedwarn_init with loc instead of with input_location.
8493 (digest_init): Pass init_loc to maybe_warn_string_init.
8494 (pop_init_level): Call pedwarn_init with loc instead of with
8495 input_location.
8496 (set_init_index): Likewise.
8497 (process_init_element): Likewise.
8498
ea58ef42
MP
84992014-05-09 Marek Polacek <polacek@redhat.com>
8500
8501 PR c/61096
8502 * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
8503 (c_parser_initelt): Pass location to set_init_label. Pass array index
8504 location to set_init_index.
8505 * c-tree.h (push_init_level): Update declaration.
8506 (pop_init_level): Likewise.
8507 (set_init_index): Likewise.
8508 (set_init_label): Likewise.
8509 * c-typeck.c (error_init): Add location parameter. Call error_at
8510 instead of error.
8511 (digest_init): Pass init_loc to error_init.
8512 (really_start_incremental_init):
8513 (push_init_level): Add location parameter. Pass loc to pop_init_level
8514 and error_init.
8515 (pop_init_level): Likewise.
8516 (set_designator): Add location parameter. Pass loc to pop_init_level,
8517 push_init_level, and error_init.
8518 (set_init_index): Add location parameter. Pass loc to error_init and
8519 set_designator.
8520 (set_init_label): Likewise.
8521 (output_init_element): Pass loc to error_init.
8522 (process_init_element): Pass loc to error_init, pop_init_level,
8523 pedwarn_init, and push_init_level.
8524
661a0813
MP
85252014-05-09 Marek Polacek <polacek@redhat.com>
8526
8527 PR c/50459
8528 * c-parser.c (c_parser_attributes): Parse the arguments as an
8529 expression-list if the attribute takes identifier.
8530
2793eeab
MP
85312014-05-08 Marek Polacek <polacek@redhat.com>
8532
8533 PR c/61053
8534 * c-decl.c (grokdeclarator): Use min_align_of_type instead of
8535 TYPE_ALIGN_UNIT.
8536
f827930a
MP
85372014-05-08 Marek Polacek <polacek@redhat.com>
8538
8539 PR c/61077
8540 * c-decl.c (start_function): Warn for _Atomic-qualified return type
8541 of main.
8542
1d60af08
KZ
85432014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
8544 Mike Stump <mikestump@comcast.net>
8545 Richard Sandiford <rdsandiford@googlemail.com>
8546
8547 * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
8548 (finish_enum): Use wide-int interfaces.
8549 * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
8550 * c-typeck.c (build_c_cast): Likewise.
8551 (set_nonincremental_init_from_string): Likewise.
8552 (c_tree_equal): Likewise.
8553
a0e24419
MP
85542014-05-02 Marek Polacek <polacek@redhat.com>
8555
8556 PR c/25801
8557 * c-typeck.c (c_size_in_bytes): Update comment. Don't call error.
8558 Return size_one_node when the type is not complete.
8559 (pointer_diff): Remove comment.
8560 (build_unary_op): Improve error messages.
8561
19fc9faa
MP
85622014-05-02 Marek Polacek <polacek@redhat.com>
8563
8564 * c-typeck.c (c_finish_return): Separate warning_at calls.
8565
63bc4e87
MP
85662014-05-02 Marek Polacek <polacek@redhat.com>
8567
8568 * c-tree.h (error_init): Remove declaration.
8569 (pedwarn_init): Likewise.
8570 * c-typeck.c (error_init): Make static and move above.
8571 (pedwarn_init): Likewise.
8572 (warning_init): Move above.
8573 (maybe_warn_string_init): Likewise.
8574
4bd2511b
JL
85752014-05-01 Jeff Law <law@redhat.com>
8576
8577 Revert:
8578
8579 2014-04-24 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
8580 * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
8581 avoid goto.
8582
6a358dcb
MP
85832014-05-02 Marek Polacek <polacek@redhat.com>
8584
8585 PR c/60784
8586 * c-typeck.c (push_init_level): Set constructor_designated to
8587 p->designated for structures.
8588
ae5ebda4
MP
85892014-05-01 Marek Polacek <polacek@redhat.com>
8590
8591 PR c/60915
8592 * c-parser.c (c_parser_declaration_or_fndef): Give better error if
8593 function-definition has an attribute after the declarator.
8594
96b40f8d
MP
85952014-05-01 Marek Polacek <polacek@redhat.com>
8596
8597 PR c/60257
8598 * c-typeck.c (warning_init): Add location_t parameter. Call
8599 warning_at instead of warning.
8600 (push_init_level): Pass input_location to warning_init.
8601 (add_pending_init): Add location_t parameter. Pass loc to
8602 warning_init.
8603 (set_nonincremental_init): Pass input_location to add_pending_init.
8604 (set_nonincremental_init_from_string): Likewise.
8605 (output_init_element): Pass loc to warning_init and to
8606 add_pending_init.
8607
32e00768
MP
86082014-05-01 Marek Polacek <polacek@redhat.com>
8609
8610 PR c/43395
8611 * c-typeck.c (c_finish_return): Distinguish between label and variable
8612 when warning about returning local address.
8613
c9379ce2
MP
86142014-05-01 Marek Polacek <polacek@redhat.com>
8615
8616 PR c/29467
8617 * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
8618 in C89 mode.
8619
d00887e8
MP
86202014-05-01 Marek Polacek <polacek@redhat.com>
8621
8622 PR c/43245
8623 * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
8624 instead of 0 to WARN_FOR_QUALIFIERS.
8625
5436fa2e
MP
86262014-05-01 Marek Polacek <polacek@redhat.com>
8627
8628 PR c/56989
8629 * c-typeck.c (default_conversion): Use better location for
8630 error call.
8631
f8ed5150
MP
86322014-04-30 Marek Polacek <polacek@redhat.com>
8633
8634 * c-typeck.c (build_binary_op): Call ubsan_instrument_division
8635 also when SANITIZE_FLOAT_DIVIDE is on.
8636
8337d1db
MP
86372014-04-30 Marek Polacek <polacek@redhat.com>
8638
8639 PR c/60139
8640 * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
8641 and pedwarn_init. Use loc insted of input_location.
8642
c4bdc42f
MP
86432014-04-30 Marek Polacek <polacek@redhat.com>
8644
8645 PR c/60351
8646 * c-typeck.c (build_binary_op): Use location when warning about
8647 shift count.
8648
45484dcf
MP
86492014-04-25 Marek Polacek <polacek@redhat.com>
8650
8651 PR c/18079
8652 * c-decl.c (diagnose_mismatched_decls): Warn for mismatched
8653 always_inline/noinline and hot/cold attributes.
8654
34cf811f
MP
86552014-04-25 Marek Polacek <polacek@redhat.com>
8656
8657 PR c/60114
8658 * c-parser.c (c_parser_initelt): Pass input_location to
8659 process_init_element.
8660 (c_parser_initval): Pass loc to process_init_element.
8661 * c-tree.h (process_init_element): Adjust declaration.
8662 * c-typeck.c (push_init_level): Pass input_location to
8663 process_init_element.
8664 (pop_init_level): Likewise.
8665 (set_designator): Likewise.
8666 (output_init_element): Add location_t parameter. Pass loc to
8667 digest_init.
8668 (output_pending_init_elements): Pass input_location to
8669 output_init_element.
8670 (process_init_element): Add location_t parameter. Pass loc to
8671 output_init_element.
8672
42056eac
JJ
86732014-04-24 Jakub Jelinek <jakub@redhat.com>
8674
8675 * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
8676 atomic-clause, allow comma in between atomic-clause and
8677 seq_cst.
8678
e162a134
JJ
86792014-04-22 Jakub Jelinek <jakub@redhat.com>
8680
8681 PR c/59073
8682 * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
8683 fails, don't set OM_PARALLEL_COMBINED and return NULL.
8684
2f6babac
IZ
86852014-04-12 Igor Zamyatin <igor.zamyatin@intel.com>
8686
8687 PR middle-end/60469
8688 * c-array-notation.c (fix_builtin_array_notation_fn): Use
8689 create_tmp_var instead build_decl for creating temps.
8690 (build_array_notation_expr): Likewise.
8691 (fix_conditional_array_notations_1): Likewise.
8692 (fix_array_notation_expr): Likewise.
8693 (fix_array_notation_call_expr): Likewise.
8694
8edbfaa6
JJ
86952014-03-28 Jakub Jelinek <jakub@redhat.com>
8696
8697 PR c++/60689
8698 * c-tree.h (c_build_function_call_vec): New prototype.
8699 * c-typeck.c (build_function_call_vec): Don't call
8700 resolve_overloaded_builtin here.
8701 (c_build_function_call_vec): New wrapper function around
8702 build_function_call_vec. Call resolve_overloaded_builtin here.
8703 (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
8704 Call c_build_function_call_vec instead of build_function_call_vec.
8705 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
8706 * c-decl.c (finish_decl): Likewise.
8707
7485aeea
MLI
87082014-03-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8709
8710 PR c/55383
8711 * c-typeck.c: Use correct format string in cast-qual warning
8712
b17a8b07
TS
87132014-03-07 Thomas Schwinge <thomas@codesourcery.com>
8714
8715 * c-decl.c (c_decl_attributes): Use
8716 lang_hooks.types.omp_mappable_type.
8717 * c-typeck.c (c_finish_omp_clauses): Likewise.
8718
3af9c5e9
MP
87192014-03-06 Marek Polacek <polacek@redhat.com>
8720
8721 PR c/60197
8722 * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
8723 of checking tree code.
8724
1c9f5f33
PK
87252014-02-19 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
8726
8727 * c-parser.c (c_parser_declspecs): Replace call to error by error_at.
8728 (c_parser_parameter_declaration): Likewise.
8729
cc28fc7f
MP
87302014-02-19 Marek Polacek <polacek@redhat.com>
8731
8732 PR c/60195
8733 * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
8734 Call mark_exp_read on exp.value.
8735 (build_atomic_assign): Set TREE_NO_WARNING on val and old. Set
8736 TREE_ADDRESSABLE on old instead of val.
8737 (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
8738
b581c05c
PK
87392014-02-07 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
8740
8741 * c-parser.c (c_parser_get_builtin_args): Replace calls to
8742 C_EXPR_APPEND by vec_safe_push.
8743 * c-tree.h (C_EXPR_APPEND): Remove.
8744
81e5eca8
MP
87452014-01-31 Marek Polacek <polacek@redhat.com>
8746
8747 PR c/59963
8748 * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
8749 build_function_call_vec.
8750 (build_function_call): Likewise.
8751 (build_atomic_assign): Likewise.
8752 (build_function_call_vec): Add arg_loc parameter. Use it.
8753 (convert_arguments): Likewise.
8754 (convert_for_assignment): Rename rhs_loc to expr_loc.
8755 * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
8756 (c_parser_objc_keywordexpr): Likewise.
8757 (c_parser_postfix_expression_after_primary): Call
8758 build_function_call_vec with expr_loc rather than op_loc.
8759 Call c_parser_expr_list to fill arg_loc. Pass arg_loc to
8760 build_function_call_vec.
8761 (c_parser_expr_list): Add locations parameter. Fill it with locations
8762 of function arguments.
8763 * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
8764
68fca595
MP
87652014-01-30 Marek Polacek <polacek@redhat.com>
8766
8767 PR c/59940
8768 * c-typeck.c (build_function_call_vec): Use loc parameter.
8769 (convert_arguments): Add location parameter. Use it.
8770 (ep_convert_and_check): Likewise.
8771 (build_atomic_assign): Adjust convert_for_assignment call.
8772 (build_modify_expr): Likewise.
8773 (digest_init): Likewise.
8774 (c_finish_return): Likewise.
8775 (build_conditional_expr): Adjust ep_convert_and_check calls.
8776 (convert_for_assignment): Add rhs_loc parameter. Use it.
8777 (build_binary_op): Adjust convert_and_check and ep_convert_and_check
8778 calls.
8779
fa337f3a
RB
87802014-01-30 Richard Biener <rguenther@suse.de>
8781
8782 PR c/59905
8783 * c-typeck.c (build_function_call_vec): Do not replace calls
8784 to a function via an incompatible type with a runtime abort.
8785
b72271b9
BI
87862014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
8787
8788 * c-parser.c (c_parser_declaration_or_fndef): Replaced
8789 flag_enable_cilkplus with flag_cilkplus.
8790 (c_parser_direct_declarator_inner): Likewise.
8791 (c_parser_attribute_any_word): Likewise.
8792 (c_parser_attributes): Likewise.
8793 (c_parser_compound_statement): Likewise.
8794 (c_parser_statement_after_labels): Likewise.
8795 (c_parser_if_statement): Likewise.
8796 (c_parser_switch_statement): Likewise.
8797 (c_parser_do_statement): Likewise.
8798 (c_parser_for_statement): Likewise.
8799 (c_parser_unary_expression): Likewise.
8800 (c_parser_postfix_expression): Likewise.
8801 (c_parser_postfix_expression_after_primary): Likewise.
8802 (c_parser_postfix_expression_after_primary): Likewise.
8803 (c_parser_omp_clause_name): Likewise.
8804 (c_finish_omp_declare_simd): Likewise.
8805 (c_parser_cilk_verify_simd): Likewise.
8806 * c-typeck.c (build_array_ref): Likewise.
8807 (build_function_call_vec): Likewise.
8808 (convert_arguments): Likewise.
8809 (build_compound_expr): Likewise.
8810 (c_finish_return): Likewise.
8811 (c_finish_if_stmt): Likewise.
8812 (c_finish_loop): Likewise.
8813 (build_binary_op): Likewise.
8814
393e8e8b
MP
88152014-01-23 Marek Polacek <polacek@redhat.com>
8816
8817 PR c/59846
8818 * c-typeck.c (parser_build_binary_op): Use location instead of
8819 input_location.
8820 (build_binary_op): Pass location to shorten_compare.
8821
f04dda30
MP
88222014-01-23 Marek Polacek <polacek@redhat.com>
8823
8824 PR c/58346
8825 * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
8826 an empty aggregate.
8827
789eadcd
MP
88282014-01-23 Marek Polacek <polacek@redhat.com>
8829
8830 PR c/59871
8831 * c-typeck.c (build_compound_expr): Warn even for right-hand operand
8832 of a comma expression.
8833 (emit_side_effect_warnings): Likewise.
8834
40f14e9f
BI
88352014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
8836
8837 PR c/59825
8838 * c-array-notation.c (expand_array_notation_exprs): Rewrote this
8839 function to use walk_tree and moved a lot of its functionality to
8840 expand_array_notations.
8841 (expand_array_notations): New function.
8842
74558dd9
BI
88432014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
8844
8845 * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
8846 attribute an attribute without value.
8847
652fea39
JJ
88482014-01-23 Jakub Jelinek <jakub@redhat.com>
8849
8850 PR middle-end/58809
8851 * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
8852 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
8853
f34f1c87
MP
88542014-01-22 Marek Polacek <polacek@redhat.com>
8855
8856 PR c/59891
8857 * c-typeck.c (build_conditional_expr): Call c_fully_fold instead
8858 of remove_c_maybe_const_expr on op1 and op2.
8859
241f845a
JJ
88602014-01-15 Jakub Jelinek <jakub@redhat.com>
8861
8862 PR c/58943
8863 * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
8864 effects, preevaluate rhs using SAVE_EXPR first.
8865
9a74f20c
BI
88662014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
8867
8868 PR c++/59631
8869 * c-parser.c (c_parser_postfix_expression): Replaced consecutive if
8870 statements with if-elseif statements.
8871
96066ce1
MP
88722014-01-06 Marek Polacek <polacek@redhat.com>
8873
8874 PR c/57773
8875 * c-decl.c (check_bitfield_type_and_width): Warn for implementation
8876 defined bit-field types only in ISO C.
8877
23a5b65a
RS
88782014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
8879
8880 Update copyright years
8881
f9030485
RS
88822014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
8883
8884 * c-array-notation.c: Use the standard form for the copyright notice.
8885
41958c28
BI
88862013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com>
8887
8888 * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
8889 (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
8890 field in parser is not empty. If not-empty, call the function
8891 c_parser_finish_omp_declare_simd.
8892 (c_parser_cilk_clause_vectorlength): Modified function to be shared
8893 between SIMD-enabled functions and #pragma simd. Added new parameter.
8894 (c_parser_cilk_all_clauses): Modified the usage of the function
8895 c_parser_cilk_clause_vectorlength as mentioned above.
8896 (c_parser_cilk_simd_fn_vector_attrs): New function.
8897 (c_finish_cilk_simd_fn_tokens): Likewise.
8898 (is_cilkplus_vector_p): Likewise.
8899 (c_parser_omp_clause_name): Added checking for "vectorlength,"
8900 "nomask," and "mask" strings in clause name.
8901 (c_parser_omp_all_clauses): Added 3 new case statements:
8902 PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
8903 PRAGMA_CILK_CLAUSE_NOMASK.
8904 (c_parser_attributes): Added a cilk_simd_fn_tokens parameter. Added a
8905 check for vector attribute and if so call the function
8906 c_parser_cilk_simd_fn_vector_attrs. Also, when Cilk plus is enabled,
8907 called the function c_finish_cilk_simd_fn_tokens.
8908 (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
8909 parser field is non-empty. If so, parse them as you would parse
8910 the omp declare simd pragma.
8911 (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
8912 Added a check when step is a parameter and flag it as error.
8913 (CILK_SIMD_FN_CLAUSE_MASK): New #define.
8914 (c_parser_cilk_clause_name): Changed pragma_cilk_clause to
8915 pragma_omp_clause.
8916
cef0fd0e
TS
89172013-12-17 Thomas Schwinge <thomas@codesourcery.com>
8918
8919 * c-parser.c (c_parser_omp_parallel): Fix description.
8920
12893402
BI
89212013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com>
8922
8923 * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
8924 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
8925 (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
8926 * c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
8927
296674db
JM
89282013-12-04 Joseph Myers <joseph@codesourcery.com>
8929
8930 PR c/52023
8931 * c-parser.c (c_parser_alignas_specifier): Use
8932 c_sizeof_or_alignof_type instead of c_alignof.
8933 (c_parser_alignof_expression): Likewise, with min_alignof
8934 parameter depending on alignof spelling used.
8935
edd28054
MP
89362013-12-04 Marek Polacek <polacek@redhat.com>
8937
8938 PR c/54113
8939 * c-decl.c (start_function): Don't warn for missing prototype for
8940 inline functions.
8941
da0fc454
MP
89422013-12-03 Marek Polacek <polacek@redhat.com>
8943
8944 PR c/59351
8945 * c-decl.c (build_compound_literal): Allow compound literals with
8946 empty initial value.
8947
4c2ecab0
JM
89482013-12-02 Joseph Myers <joseph@codesourcery.com>
8949
8950 PR c/58235
8951 * c-typeck.c (build_modify_expr): Diagnose assignment to
8952 expression with array type.
8953
340baef7
JM
89542013-11-29 Joseph Myers <joseph@codesourcery.com>
8955
8956 PR c/42262
8957 * c-typeck.c (process_init_element): Do not treat a string as
8958 initializing a whole array when used with a designator for an
8959 individual element.
8960
6763b9f7
JM
89612013-11-29 Joseph Myers <joseph@codesourcery.com>
8962
8963 PR c/57574
8964 * c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
8965 an inline function following a static declaration.
8966
e7bd1de1
JJ
89672013-11-28 Jakub Jelinek <jakub@redhat.com>
8968
8969 PR c/59310
8970 * c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
8971 to p_name before calling c_parser_omp_teams instead of after.
8972 (c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
8973 argument. Remove unused p_name variable.
8974
0136f8f0
AH
89752013-11-27 Aldy Hernandez <aldyh@redhat.com>
8976 Jakub Jelinek <jakub@redhat.com>
8977
8978 * c-decl.c (c_builtin_function_ext_scope): Avoid binding if
8979 external_scope is NULL.
8980
241b71bb
TV
89812013-11-27 Tom de Vries <tom@codesourcery.com>
8982 Marc Glisse <marc.glisse@inria.fr>
8983
8984 PR c++/59032
8985 * c-typeck.c (build_unary_op): Allow vector increment and decrement.
8986
2fb9a547
AM
89872013-11-22 Andrew MacLeod <amacleod@redhat.com>
8988
8989 * c-typeck.c: Add required include files from gimple.h.
8990
8400e75e
DM
89912013-11-22 David Malcolm <dmalcolm@redhat.com>
8992
8993 * c-decl.c (define_label, shadow_tag_warned)
8994 (check_bitfield_type_and_width, grokdeclarator, grokparms,
8995 store_parm_decls_newstyle, store_parm_decls_oldstyle)
8996 (declspecs_add_type): Remove use of in_system_header macro.
8997 * c-parser.c (c_parser_unary_expression): Likewise.
8998 * c-typeck.c (store_init_value, process_init_element)
8999 (c_start_case): Likewise.
9000
9001 * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
9002 macro.
9003
9004 * c-parser.c (c_parser_set_source_position_from_token): Remove
9005 reference to in_system_header from comment.
9006
386b1f1f
RS
90072013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
9008
9009 * c-decl.c (grokdeclarator): Update comment to refer to
9010 tree_to_[su]hwi rather than tree_low_cst.
9011
ae7e9ddd
RS
90122013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
9013
9014 * c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
9015 tree_to_uhwi throughout.
9016
9439e9a1
RS
90172013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
9018
9019 * c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
9020 throughout.
9021
9541ffee
RS
90222013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
9023
9024 * c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
9025 throughout.
9026
c02065fc
AH
90272013-11-15 Aldy Hernandez <aldyh@redhat.com>
9028
9029 * c-parser.c (c_parser_cilk_simd): New.
9030 (c_parser_cilk_verify_simd): New.
9031 (c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
9032 (c_parser_omp_for_loop): Add case for NE_EXPR.
9033 Set c_break_label for CILK_SIMD.
9034 (c_parser_cilk_clause_vectorlength): New.
9035 (c_parser_cilk_clause_linear): New.
9036 (c_parser_cilk_clause_name): New.
9037 (c_parser_cilk_all_clauses): New.
9038 * c-typeck.c (build_unary_op): Pass location argument to
9039 readonly_error.
9040 (build_modify_expr): Same.
9041 (build_asm_expr): Same.
9042 (c_finish_bc_stmt): Error on break/continue in loops.
9043
18f429e2
AM
90442013-11-14 Andrew MacLeod <amacleod@redhat.com>
9045
9046 * c-typeck.c: Include only gimplify.h and gimple.h as needed.
9047
d8a2d370
DN
90482013-11-14 Diego Novillo <dnovillo@google.com>
9049
9050 * c-decl.c: Include print-tree.h.
9051 Include stor-layout.h.
9052 Include varasm.h.
9053 Include attribs.h.
9054 Include stringpool.h.
9055 * c-lang.c: Include fold-const.h.
9056 * c-parser.c: Include stringpool.h.
9057 Include attribs.h.
9058 Include stor-layout.h.
9059 Include varasm.h.
9060 Include trans-mem.h.
9061 * c-typeck.c: Include stor-layout.h.
9062 Include trans-mem.h.
9063 Include varasm.h.
9064 Include stmt.h.
9065
38b7bc7f
JM
90662013-11-13 Joseph Myers <joseph@codesourcery.com>
9067
9068 * c-tree.h (c_typespec_keyword): Add cts_auto_type.
9069 * c-decl.c (declspecs_add_type, finish_declspecs): Handle
9070 __auto_type.
9071 * c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
9072 (c_parser_attribute_any_word, c_parser_objc_selector): Handle
9073 RID_AUTO_TYPE.
9074 (c_parser_declspecs): Take argument AUTO_TYPE_OK.
9075 (c_parser_declaration_or_fndef, c_parser_struct_declaration)
9076 (c_parser_declarator, c_parser_direct_declarator_inner)
9077 (c_parser_parameter_declaration, c_parser_type_name): All callers
9078 changed.
9079 (c_parser_declaration_or_fndef): Handle declarations with type
9080 determined from the initializer.
9081
45b0be94
AM
90822013-11-12 Andrew MacLeod <amacleod@redhat.com>
9083
18f429e2 9084 * c-typeck.c: Include gimplify.h.
45b0be94 9085
582d9b50
JM
90862013-11-12 Joseph Myers <joseph@codesourcery.com>
9087
9088 * c-tree.h (struct c_declspecs): Add thread_gnu_p field.
9089 * c-parser.c (c_parser_declspecs): Mention _Thread_local in
9090 comment.
9091 * c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
9092 or _Thread_local as appropriate in diagnostics.
9093 (build_null_declspecs): Initialize ret->thread_gnu_p.
9094 (declspecs_add_scspec): Handle either __thread or _Thread_local
9095 for RID_THREAD. Diagnose _Thread_local for pre-C11 standards if
9096 pedantic. Do not disallow _Thread_local extern and _Thread_local
9097 static.
9098
267bac10
JM
90992013-11-07 Joseph Myers <joseph@codesourcery.com>
9100 Andrew MacLeod <amacleod@redhat.com>
9101
9102 * c-aux-info.c (gen_type): Handle atomic qualifier.
9103 * c-decl.c (validate_proto_after_old_defn): Do not remove atomic
9104 qualifiers when compating types.
9105 (shadow_tag_warned): Handle atomic_p in declspecs.
9106 (quals_from_declspecs): Likewise.
9107 (start_decl): Use c_type_promotes_to when promoting argument
9108 types.
9109 (grokdeclarator): Handle _Atomic.
9110 (get_parm_info): Diagnose any qualifier on "void" as only
9111 parameter.
9112 (store_parm_decls_oldstyle): Do not remove atomic qualifiers when
9113 comparing types. Use c_type_promotes_to when promoting argument
9114 types.
9115 (finish_function): Use c_type_promotes_to when promoting argument
9116 types.
9117 (build_null_declspecs): Handle atomic_p in declspecs.
9118 (declspecs_add_qual): Handle RID_ATOMIC.
9119 * c-parser.c (c_token_starts_typename, c_token_is_qualifier)
9120 (c_token_starts_declspecs): Handle RID_ATOMIC.
9121 (c_parser_declspecs): Handle atomic type specifiers and
9122 qualifiers.
9123 (c_parser_typeof_specifier): Remove const and _Atomic qualifiers
9124 from types of expressions with atomic type.
9125 (c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
9126 (c_parser_attribute_any_word): Handle RID_ATOMIC.
9127 (c_parser_initializer, c_parser_initelt, c_parser_initval)
9128 (c_parser_statement_after_labels, c_parser_switch_statement)
9129 (c_parser_for_statement, c_parser_expr_no_commas)
9130 (c_parser_conditional_expression, c_parser_binary_expression)
9131 (c_parser_cast_expression, c_parser_unary_expression)
9132 (c_parser_postfix_expression)
9133 (c_parser_postfix_expression_after_primary, c_parser_expression):
9134 Use convert_lvalue_to_rvalue.
9135 (c_parser_expression_conv, c_parser_expr_list): Document
9136 conversion of lvalues to rvalues. Use convert_lvalue_to_rvalue.
9137 (c_parser_objc_synchronized_statement): Use
9138 convert_lvalue_to_rvalue.
9139 (c_parser_objc_selector): Handle RID_ATOMIC.
9140 (c_parser_objc_receiver, c_parser_array_notation): Use
9141 convert_lvalue_to_rvalue.
9142 * c-tree.h (ctsk_typeof): Adjust comment to mention use for
9143 _Atomic (type-name).
9144 (struct c_declspecs): Add atomic_p field.
9145 (convert_lvalue_to_rvalue): Declare.
9146 * c-typeck.c (c_type_promotes_to): Promote atomic types to
9147 corresponding atomic types.
9148 (qualify_type): Don't add _Atomic qualifiers from second argument.
9149 (comp_target_types): Do not allow _Atomic mismatches.
9150 (type_lists_compatible_p): Do not remove atomic qualifiers when
9151 comparing types.
9152 (really_atomic_lvalue, convert_lvalue_to_rvalue)
9153 (build_atomic_assign): New functions.
9154 (build_unary_op): Use build_atomic_assign for atomic increment and
9155 decrement.
9156 (build_conditional_expr): Do not treat _Atomic void as a qualified
9157 version of void.
9158 (build_modify_expr): Use build_atomic_assign for atomic LHS.
9159 (find_anonymous_field_with_type, convert_to_anonymous_field)
9160 (convert_for_assignment): Do not remove atomic qualifiers when
9161 comparing types.
9162 (digest_init): Do not accept initialization of arrays of atomic
9163 elements by string constants.
9164 (build_asm_expr): Use convert_lvalue_to_rvalue.
9165 (build_binary_op): Do not treat _Atomic void as a qualified
9166 version of void.
9167
0c249d4b
DD
91682013-11-06 DJ Delorie <dj@redhat.com>
9169
9170 * c-decl.c (locate_old_decl): If a previous conflicting decl is
9171 both explicit and builtin, print the location of the explicit one.
9172
6d7f7e0a
TB
91732013-11-05 Tobias Burnus <burnus@net-b.de>
9174
9175 * c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
9176 c_parser_omp_distribute, c_parser_omp_teams,
9177 c_parser_omp_target, c_parser_omp_declare): Handle
9178 -fopenmp-simd.
9179
b906f4ca
MP
91802013-11-03 Marek Polacek <polacek@redhat.com>
9181
9182 * c-decl.c (grokdeclarator): Add VLA instrumentation.
9183
ee1d5a02
JJ
91842013-11-01 Jakub Jelinek <jakub@redhat.com>
9185
9186 * c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
9187 check_dup_generic at the end, unless remove is true.
9188 (c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
9189 remove = true;.
9190 (c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
9191
5a9785fb
JJ
91922013-10-31 Jakub Jelinek <jakub@redhat.com>
9193
9194 * c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
9195 with decl that is not pointer nor array.
9196
939b37da
BI
91972013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
9198
9199 * c-decl.c (finish_function): Added a call for insert_cilk_frame when
9200 a spawning function is found.
9201 * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
9202 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
9203 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
9204 * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
9205 case.
9206 (c_parser_postfix_expression): Added RID_CILK_SPAWN case.
9207 * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
9208 expr.
9209 (c_finish_return): Added a check to reject _Cilk_spawn in return
9210 expression.
9211 (build_cilk_spawn): New function.
9212 (build_cilk_sync): Likewise.
9213 * Makefile.in (c-decl.o): Added cilk.h in dependency list.
ab20d992 9214
d4af74d4
TB
92152013-10-27 Tobias Burnus <burnus@net-b.de>
9216
9217 PR other/33426
9218 * c-parser.c (c_parser_while_statement, c_parser_while_statement,
9219 c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
9220 (c_parser_statement_after_labels): Update calls.
9221
d73749df 92222013-10-24 Tobias Burnus <burnus@net-b.de>
8170608b
TB
9223
9224 PR other/33426
9225 * c-parser.c (c_parser_pragma, c_parser_for_statement):
9226 Handle PRAGMA_IVDEP.
9227 (c_parser_statement_after_labels): Update call.
9228
f28aa681
MP
92292013-10-24 Marek Polacek <polacek@redhat.com>
9230
9231 * c-parser.c (c_parser_struct_declaration): Add a comment.
9232 (c_parser_declarator): Don't allow _Alignas here.
9233
0645c1a2
AM
92342013-10-17 Andrew MacLeod <amacleod@redhat.com>
9235
9236 * c-parser.c: Include omp-low.h.
9237 * c-typeck.c: Likewise.
9238
568a31f2
MP
92392013-10-17 Marek Polacek <polacek@redhat.com>
9240
9241 PR c/58267
9242 * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
9243 Document syntax of the array-declarator.
9244 (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
9245 are not permitted.
9246 (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
9247 (c_parser_struct_declaration): Likewise.
9248 (c_parser_declarator): Likewise.
9249 (c_parser_direct_declarator_inner): Likewise.
9250 (c_parser_parameter_declaration): Likewise.
9251 (c_parser_type_name): Likewise.
9252
acf0174b
JJ
92532013-10-11 Jakub Jelinek <jakub@redhat.com>
9254
9255 * c-lang.h (current_omp_declare_target_attribute): New extern
9256 decl.
9257 * c-parser.c: Include c-lang.h.
9258 (struct c_parser): Change tokens to c_token *.
9259 Add tokens_buf field. Change tokens_avail type to unsigned int.
9260 (c_parser_consume_token): If parser->tokens isn't
9261 &parser->tokens_buf[0], increment parser->tokens.
9262 (c_parser_consume_pragma): Likewise.
9263 (enum pragma_context): Add pragma_struct and pragma_param.
9264 (c_parser_external_declaration): Adjust
9265 c_parser_declaration_or_fndef caller.
9266 (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
9267 argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
9268 Adjust recursive call.
9269 (c_parser_struct_or_union_specifier): Use pragma_struct instead
9270 of pragma_external.
9271 (c_parser_parameter_declaration): Use pragma_param instead of
9272 pragma_external.
9273 (c_parser_compound_statement_nostart, c_parser_label,
9274 c_parser_for_statement): Adjust
9275 c_parser_declaration_or_fndef callers.
9276 (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
9277 it through to c_parser_conditional_expression.
9278 (c_parser_conditional_expression): Add omp_atomic_lhs argument,
9279 pass it through to c_parser_binary_expression. Adjust recursive
9280 call.
9281 (c_parser_binary_expression): Remove prec argument, add
9282 omp_atomic_lhs argument instead. Always start from PREC_NONE, if
9283 omp_atomic_lhs is non-NULL and one of the arguments of toplevel
9284 binop matches it, use build2 instead of parser_build_binary_op.
9285 (c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
9286 PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
9287 PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
9288 Handle pragma_struct and pragma_param the same as pragma_external.
9289 (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
9290 (c_parser_omp_variable_list): Parse array sections for
9291 OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
9292 (c_parser_omp_clause_collapse): Fully fold collapse expression.
9293 (c_parser_omp_clause_reduction): Handle user defined reductions.
9294 (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
9295 c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
9296 c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
9297 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
9298 c_parser_omp_clause_depend, c_parser_omp_clause_map,
9299 c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
9300 c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
9301 c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
9302 (c_parser_omp_all_clauses): Add finish_p argument. Don't call
9303 c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
9304 (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
9305 present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms.
9306 (c_parser_omp_for_loop): Add CODE argument, pass it through
9307 to c_finish_omp_for. Change last argument to cclauses,
9308 and adjust uses to grab parallel clauses from the array of all
9309 the split clauses. Adjust c_parser_binary_expression,
9310 c_parser_declaration_or_fndef and c_finish_omp_for callers.
9311 (omp_split_clauses): New function.
9312 (c_parser_omp_simd): New function.
9313 (c_parser_omp_for): Add p_name, mask and cclauses arguments.
9314 Allow the function to be called also when parsing combined constructs,
9315 and call c_parser_omp_simd when parsing for simd.
9316 (c_parser_omp_sections_scope): If section-sequence doesn't start with
9317 #pragma omp section, require exactly one structured-block instead of
9318 sequence of statements.
9319 (c_parser_omp_sections): Add p_name, mask and cclauses arguments.
9320 Allow the function to be called also when parsing combined constructs.
9321 (c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
9322 Allow the function to be called also when parsing combined
9323 constructs.
9324 (c_parser_omp_taskgroup, c_parser_omp_cancel,
9325 c_parser_omp_cancellation_point, c_parser_omp_distribute,
9326 c_parser_omp_teams, c_parser_omp_target_data,
9327 c_parser_omp_target_update, c_parser_omp_target,
9328 c_parser_omp_declare_simd, c_finish_omp_declare_simd,
9329 c_parser_omp_declare_target, c_parser_omp_end_declare_target,
9330 c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
9331 (c_parser_omp_construct): Add p_name and mask vars. Handle
9332 PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
9333 PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel
9334 and c_parser_omp_sections callers.
9335 (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
9336 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
9337 OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
9338 (OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
9339 (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
9340 OMP_CLAUSE_DEPEND.
9341 (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
9342 OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
9343 OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
9344 OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
9345 OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
9346 * c-typeck.c: Include tree-inline.h.
9347 (c_finish_omp_cancel, c_finish_omp_cancellation_point,
9348 handle_omp_array_sections_1, handle_omp_array_sections,
9349 c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
9350 (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
9351 user defined reductions.
9352 (c_tree_equal): New function.
9353 * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
9354 c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
9355 c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
9356 c_check_omp_declare_reduction_r): New prototypes.
9357 * c-decl.c (current_omp_declare_target_attribute): New variable.
9358 (c_decl_attributes): New function.
9359 (start_decl, start_function): Use it instead of decl_attributes.
9360 (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
9361 c_omp_reduction_decl, c_omp_reduction_lookup,
9362 c_check_omp_declare_reduction_r): New functions.
9363
0a6c2227
TT
93642013-09-25 Tom Tromey <tromey@redhat.com>
9365
9366 * Make-lang.in (c/gccspec.o): Remove.
9367 (CFLAGS-c/gccspec.o): New variable.
9368 (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
9369 (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
9370 (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
9371
f3bc55f0
TT
93722013-09-25 Tom Tromey <tromey@redhat.com>
9373
9374 * Make-lang.in (c/gccspec.o): Don't use subshell.
9375
a24d975c
MP
93762013-09-18 Marek Polacek <polacek@redhat.com>
9377
9378 PR sanitize/58443
9379 * c-typeck.c (build_binary_op): Properly honor -fsanitize options.
9380 Remove unnecessary check.
9381
ce6923c5
MP
93822013-09-18 Marek Polacek <polacek@redhat.com>
9383
9384 PR sanitizer/58411
9385 * c-typeck.c (build_binary_op): Don't sanitize function if it has the
9386 no_sanitize_undefined attribute.
9387
a1e51df9
KT
93882013-09-13 Kai Tietz <ktietz@redhat.com>
9389
9390 PR target/57848
9391 * c-decl.c (c_builtin_function_ext_scope): Remove
9392 wrong assumption that it is never called on prexisting
9393 symbol.
9394
0af94e6f
JR
93952013-09-08 Joern Rennecke <joern.rennecke@embecosm.com>
9396
9397 * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
9398
20059c8b
GDR
93992013-09-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
9400
9401 * c-objc-common.c (c_tree_printer): Tidy.
9402
de5a5fa1
MP
94032013-08-30 Marek Polacek <polacek@redhat.com>
9404
9405 * c-typeck.c (build_binary_op): Add division by zero and shift
9406 instrumentation.
9407
2531a1d9 94082013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
0fdd4508 9409 Joseph Myers <joseph@codesourcery.com>
2531a1d9 9410
6e2bcc98 9411 PR c/35649
2531a1d9
JR
9412 * c-typeck.c (c_common_type): Prefer double_type_node over
9413 other REAL_TYPE types with the same precision.
9414 (convert_arguments): Likewise.
9415
025311c4
GDR
94162013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
9417
9418 * c-objc-common.c (c_tree_printer): Document the nature of the cast.
9419 (c_initialize_diagnostics): Call a destructor for the early printer.
9420
da6ca2b5
GDR
94212013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
9422
9423 * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
9424 printer initialization.
9425
318cda85 94262013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com>
da6ca2b5 9427
318cda85
BI
9428 PR c/57490
9429 * c-array-notation.c (fix_conditional_array_notations_1): Added a
9430 check for truth values.
9431 (expand_array_notation_exprs): Added truth values case. Removed an
9432 unwanted else. Added for-loop to walk through subtrees in default
9433 case.
9434
b066401f
GDR
94352013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
9436
9437 * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
9438
fb48aadc
JM
94392013-07-23 Joseph Myers <joseph@codesourcery.com>
9440
9441 * c-parser.c (struct c_generic_association): Fix typo.
9442
433cc7b0
TT
94432013-07-23 Tom Tromey <tromey@redhat.com>
9444 Joseph Myers <joseph@codesourcery.com>
9445
9446 * c-parser.c (struct c_generic_association): New.
9447 (c_generic_association_d): New typedef.
9448 (c_parser_generic_selection): New function.
9449 (c_parser_postfix_expression): Handle RID_GENERIC.
9450
26d40c3d
JM
94512013-07-13 Jason Merrill <jason@redhat.com>
9452
9453 PR c++/57793
9454 * c-decl.c (finish_struct): Check for too-large class.
9455
ecdbd01a 94562013-07-04 Joern Rennecke <joern.rennecke@embecosm.com>
40d3d530
JR
9457
9458 PR c/57821
9459 * c-typeck.c (set_init_index): When folding, check for index overflow.
9460
1141ed3f
BI
94612013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
9462
9463 * c-parser.c (c_parser_array_notation): Removed rejection of array
9464 notations in an array of function pointers.
9465
713b46fa
BI
94662013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com>
9467
9468 * c-array-notation.c (make_triplet_val_inv): New function.
9469 (create_cmp_incr): Likewise.
9470 (create_array_refs): Likewise.
9471 (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
9472 Also modularized common parts between functions and called the function.
9473 (build_array_notation_expr): Likewise.
9474 (fix_conditional_array_notations_1): Likewise.
9475 (fix_array_notation_expr): Likewise.
9476 (fix_array_notation_call_expr): Likewise.
9477
92f20202
MP
94782013-06-18 Marek Polacek <polacek@redhat.com>
9479
9480 PR c/57630
9481 * c-decl.c (check_for_loop_decls): Improve diagnostics messages.
9482
73a23b06
BI
94832013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com>
9484
9485 * c-array-notation.c (build_array_notation_expr): Reject array notation
9486 mismatch between LHS and RHS even inside a call_expr. Also, removed
9487 a couple while statements that were dead code.
9488
00b8517d
BI
94892013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
9490
9491 * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
9492 excessive precision expressions in function parameters. Also removed
9493 couple unwanted while statements.
9494
1509bdda
BI
94952013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
9496
9497 * c-array-notation.c (expand_array_notation_exprs): Added
9498 ARRAY_NOTATION_REF case.
ab20d992 9499
d60f1706
BI
95002013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
9501
9502 * c-array-notation.c (length_mismatch_in_expr_p): Moved this
9503 function to c-family/array-notation-common.c.
9504 (is_cilkplus_reduce_builtin): Likewise.
9505 (find_rank): Likewise.
9506 (extract_array_notation_exprs): Likewise.
9507 (replace_array_notations): Likewise.
9508 (find_inv_trees): Likewise.
9509 (replace_inv_trees): Likewise.
9510 (contains_array_notation_expr): Likewise.
9511 (find_correct_array_notation_type): Likewise.
9512 (replace_invariant_exprs): Initialized additional_tcodes to NULL.
9513 (struct inv_list): Moved this to c-family/array-notation-common.c.
9514 * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
ab20d992 9515
6d6efbb3
BI
95162013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com>
9517
9518 * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
9519 reduction functions outside the for-loop. Added a check if the fundecl
9520 is non-NULL. Finally, removed an unwanted if-statement, and made the
9521 body unconditional.
9522
25c22937
BI
95232013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
9524
9525 * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
9526 condition of the if-statement matches the rank of else-block and then-
9527 block when array notations are used.
9528 * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
9529 expression after the entire function body is parsed.
9530 (c_parser_expr_no_commas): Delayed creating array notation expressions
9531 to the end of function parsing.
9532 * c-array-notation.c (fix_conditional_array_notations_1): Expanded the
9533 whole if-statement instead of just the condition.
ab20d992 9534 (expand_array_notation_exprs): Added MODIFY_EXPR case.
25c22937 9535
edd25645
BI
95362013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
9537
9538 PR c/57474
9539 * c-array-notation.c (build_array_notation_expr): Initialized rhs_length
9540 array to NULL_TREE if they are unused. Also added a check for the
9541 field to be NULL before its fields are used in future.
ab20d992 9542
065ce7f1
RO
95432013-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9544
9545 PR bootstrap/57450
9546 * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
9547 (build_array_notation_expr): Likewise.
9548
36536d79
BI
95492013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
9550
9551 * c-typeck.c (build_array_ref): Added a check to see if array's
9552 index is greater than one. If true, then emit an error.
9553 (build_function_call_vec): Exclude error reporting and checking
9554 for builtin array-notation functions.
9555 (convert_arguments): Likewise.
9556 (c_finish_return): Added a check for array notations as a return
9557 expression. If true, then emit an error.
9558 (c_finish_loop): Added a check for array notations in a loop
9559 condition. If true then emit an error.
9560 (lvalue_p): Added a ARRAY_NOTATION_REF case.
9561 (build_binary_op): Added a check for array notation expr inside
9562 op1 and op0. If present, we call another function to find correct
9563 type.
9564 * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
9565 * c-parser.c (c_parser_compound_statement): Check if array
9566 notation code is used in tree, if so, then transform them into
9567 appropriate C code.
9568 (c_parser_expr_no_commas): Check if array notation is used in LHS
9569 or RHS, if so, then build array notation expression instead of
9570 regular modify.
9571 (c_parser_postfix_expression_after_primary): Added a check for
9572 colon(s) after square braces, if so then handle it like an array
9573 notation. Also, break up array notations in unary op if found.
9574 (c_parser_direct_declarator_inner): Added a check for array
9575 notation.
9576 (c_parser_compound_statement): Added a check for array notation in
9577 a stmt. If one is present, then expand array notation expr.
9578 (c_parser_if_statement): Likewise.
9579 (c_parser_switch_statement): Added a check for array notations in
9580 a switch statement's condition. If true, then output an error.
9581 (c_parser_while_statement): Similarly, but for a while.
9582 (c_parser_do_statement): Similarly, but for a do-while.
9583 (c_parser_for_statement): Similarly, but for a for-loop.
9584 (c_parser_unary_expression): Check if array notation is used in a
9585 pre-increment or pre-decrement expression. If true, then expand
9586 them.
9587 (c_parser_array_notation): New function.
9588 * c-array-notation.c: New file.
9589 * c-tree.h (is_cilkplus_reduce_builtin): Protoize.
ab20d992 9590
cd192ccc
MS
95912013-05-23 Mike Stump <mikestump@comcast.net>
9592
9593 * c-typeck.c (convert_for_assignment): Handle references to memory
9594 spaces better.
9595
427b248d
JM
95962013-05-16 Jason Merrill <jason@redhat.com>
9597
9598 * Make-lang.in (cc1$(exeext)): Use link mutex.
9599
44d90fe1
PC
96002013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
9601
9602 * c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
9603 to simply use OPT_Wpointer_arith.
9604 (build_unary_op): Likewise.
9605
4e7d7b3d
JJ
96062013-04-03 Jakub Jelinek <jakub@redhat.com>
9607
9608 PR c/19449
9609 * c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
9610 argument. If set, or it temporarily for parsing of the first
9611 argument into force_folding_builtin_constant_p.
9612 (c_parser_postfix_expression): Adjust callers.
9613
839b422f
RB
96142013-03-21 Richard Biener <rguenther@suse.de>
9615
9616 * c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
9617 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
9618
2ee028f1
MP
96192013-02-12 Marek Polacek <polacek@redhat.com>
9620
9621 PR c/44938
9622 * c-parser.c (c_parser_postfix_expression_after_primary): Initialize
9623 origtypes to NULL.
9624
8824edff
JJ
96252013-01-24 Jakub Jelinek <jakub@redhat.com>
9626
9627 PR c/56078
9628 * c-typeck.c (set_nonincremental_init_from_string): If
9629 constructor_max_index is NULL, treat it as if tree_int_cst_lt
9630 returned false.
9631 (process_init_element): Likewise.
9632
eadd3d0d
JJ
96332012-12-20 Jakub Jelinek <jakub@redhat.com>
9634
9635 PR c++/55619
9636 * c-parser.c (c_parser_asm_operands): Remove CONVERT_P
9637 argument, don't call default_function_array_conversion
9638 nor c_fully_fold here.
9639 (c_parser_asm_statement): Adjust callers.
9640 * c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
9641 and outputs here, and call default_function_array_conversion
9642 on inputs that don't need to be addressable.
9643
f8a93a2e
JJ
96442012-12-18 Jakub Jelinek <jakub@redhat.com>
9645
9646 PR c/39464
9647 * c-typeck.c (convert_for_assignment): For -Wpointer-sign
9648 warning require that both c_common_unsigned_type as well as
9649 c_common_signed_type is the same for both mvl and mvr types.
9650
9771b263
DN
96512012-11-16 Diego Novillo <dnovillo@google.com>
9652
9653 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
9654
9655 * c-common.c: Use new vec API in vec.h.
9656 * c-common.h: Likewise.
9657 * c-gimplify.c: Likewise.
9658 * c-pragma.c: Likewise.
9659 * c-pretty-print.c: Likewise.
9660 * c-pretty-print.h: Likewise.
9661 * c-semantics.c: Likewise.
9662 * c-decl.c: Likewise.
9663 * c-parser.c: Likewise.
9664 * c-tree.h: Likewise.
9665 * c-typeck.c: Likewise.
9666
880661a4
JW
96672012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
9668
9669 PR c++/54930
9670 * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.
9671
077d1abe
MLI
96722012-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
9673
9674 PR c/53066
9675 * c-decl.c (warn_if_shadowing): Do not warn if a variable
9676 shadows a function, unless the variable is a function or a
9677 pointer-to-function.
9678
3a785c97
JJ
96792012-10-12 Jakub Jelinek <jakub@redhat.com>
9680
9681 PR c/54381
9682 * c-parser.c (struct c_tree_loc_pair): Removed.
9683 (c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
9684 add location_t * and tree * arguments, fill in array of 3
9685 sizeof_arg trees and corresponding locs.
9686 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust
9687 c_parser_expr_list callers.
9688 (c_parser_postfix_expression_after_primary): Likewise. Pass
9689 array of 3 sizeof_arg trees and locs (corresponding to first
9690 3 arguments) to sizeof_pointer_memaccess_warning.
9691
703c8606
LC
96922012-10-09 Lawrence Crowl <crowl@google.com>
9693
9694 * Make-lang.in (c-decl.o): Add dependence on hash-table.h.
9695 * c-decl.c (detect_field_duplicates_hash): Change to new type-safe
9696 hash table.
9697
5d9de0d0
PC
96982012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
9699
9700 PR c++/54194
9701 * c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
9702 call.
9703
a212e43f
MG
97042012-10-09 Marc Glisse <marc.glisse@inria.fr>
9705
9706 PR c++/54427
9707 * c-typeck.c: Include c-common.h.
9708 (enum stv_conv): Moved to c-common.h.
9709 (scalar_to_vector): Moved to c-common.c.
9710 (build_binary_op): Adapt to scalar_to_vector's new prototype.
9711 * Make-lang.in: c-typeck.c depends on c-common.h.
9712
3b78de56
AC
97132012-10-04 Arnaud Charlet <charlet@adacore.com>
9714
9715 * c-decl.c (c_write_global_declarations): Fix handling of
9716 -fdump-ada-spec*.
9717
78c60e3d
SS
97182012-09-30 Sharad Singhai <singhai@google.com>
9719
9720 * c-decl.c (c_write_global_declarations): Use a different method
9721 to determine if the dump has ben initialized.
9722
9f33203d
JM
97232012-09-14 Joseph Myers <joseph@codesourcery.com>
9724
9725 PR c/54552
9726 * c-typeck.c (c_cast_expr): When casting to a type requiring
9727 C_MAYBE_CONST_EXPR to be created, pass the inner expression to
9728 c_fully_fold first.
9729
a27d595d
JM
97302012-09-14 Joseph Myers <joseph@codesourcery.com>
9731
9732 PR c/54103
9733 * c-typeck.c (build_unary_op): Pass original argument of
9734 TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
9735 any C_MAYBE_CONST_EXPR, if it has integer operands.
9736 (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
9737 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
9738 to c_objc_common_truthvalue_conversion, then remove any
9739 C_MAYBE_CONST_EXPR, if they have integer operands. Use
9740 c_objc_common_truthvalue_conversion not
9741 c_common_truthvalue_conversion.
9742 (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
9743 call note_integer_operands for arguments with integer operands
9744 that are not integer constants.
9745
9feb29df
JJ
97462012-09-13 Jakub Jelinek <jakub@redhat.com>
9747
9748 PR c/54559
9749 * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
9750 COMPLEX_TYPE with in_late_binary_op set temporarily to true.
9751
d409320c
JJ
97522012-08-31 Jakub Jelinek <jakub@redhat.com>
9753
9754 PR c/54428
9755 * c-convert.c (convert): Don't call fold_convert_loc if
9756 TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
9757 is a COMPLEX_EXPR. Remove TYPE_MAIN_VARIANT check from
9758 COMPLEX_TYPE -> COMPLEX_TYPE conversion.
9759
6265d07c
JJ
97602012-08-24 Jakub Jelinek <jakub@redhat.com>
9761
9762 PR c/54355
9763 * c-decl.c (c_parser_label): Pass true as nested and fix up comments
9764 for nested and empty_ok arguments in the call to
9765 c_parser_declaration_or_fndef.
9766
1a4049e7
JJ
97672012-08-17 Jakub Jelinek <jakub@redhat.com>
9768
9769 * c-tree.h (c_last_sizeof_arg): Declare.
9770 * c-parser.c (struct c_tree_loc_pair): New type.
9771 (c_parser_expr_list): Add sizeof_arg argument. Fill it in if
9772 non-NULL.
9773 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
9774 (c_parser_postfix_expression_after_primary): Likewise. Call
9775 sizeof_pointer_memaccess_warning if needed.
9776 (sizeof_ptr_memacc_comptypes): New function.
9777 * c-typeck.c (c_last_sizeof_arg): New global variable.
9778 (c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
9779
0229aee9
UB
97802012-07-24 Uros Bizjak <ubizjak@gmail.com>
9781
9782 * c-lang.h (lang_decl): Add variable_size GTY option.
9783
7ee2468b
SB
97842012-07-16 Steven Bosscher <steven@gcc.gnu.org>
9785
9786 * c-decl.c: Include dumpfile.h instead of tree-dump.h.
9787 * Make-lang.in: Fix dependencies.
9788
d4a10d0a
SB
97892012-06-29 Steven Bosscher <steven@gcc.gnu.org>
9790
9791 * Make-lang.in: New file, rules migrated from gcc/Makefile.in
9792 and add language Makefile hooks.
9793 * config-lang.in: New file.
9794 * c-config-lang.in: Moved from gcc/config-lang.in to here, and
9795 add the required "normal" config-lang.in rules.
9796 * c-lang.h: Moved from gcc/ to here.
9797 * c-tree.h: Likewise.
9798 * c-objc-common.c: Likewise.
9799 * c-objc-common.h: Likewise.
9800 * c-typeck.c: Likewise.
9801 * c-convert.c: Likewise.
9802 * c-lang.c: Likewise.
9803 * c-aux-info.c: Likewise.
9804 * c-errors.c: Likewise.
9805 * gccspec.c: Likewise.
9806 * c-decl.c: Likewise. Include gt-c-c-decl.h, not gt-c-decl.h.
9807 * c-parser.c: Likewise. Include gt-c-c-parser.h, not gt-c-parser.h.
9808\f
68127a8e 9809Copyright (C) 2012-2023 Free Software Foundation, Inc.
d4a10d0a
SB
9810
9811Copying and distribution of this file, with or without modification,
9812are permitted in any medium without royalty provided the copyright
9813notice and this notice are preserved.