]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c/ChangeLog
2018-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
[thirdparty/gcc.git] / gcc / c / ChangeLog
CommitLineData
abadc2f8 12018-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
2
3 * c-typeck.c (digest_init): Shorten overlength strings.
4
df06d247 52018-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
6
7 * c-decl.c (finish_decl): Call complete_flexible_array_elts.
8
d839099f 92018-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
10
11 * c-decl.c (finish_decl): Call braced_list_to_string here ...
12 * c-parser.c (c_parser_declaration_or_fndef): ... instead of here.
13
a555fd25 142018-08-30 Alexander Monakov <amonakov@ispras.ru>
15
16 * gimple-parser.c (c_parser_gimple_binary_expression): Accept infix
17 "__MULT_HIGHPART" for MULT_HIGHPART_EXPR.
18
5fe20025 192018-08-27 David Malcolm <dmalcolm@redhat.com>
20
21 PR 87091
22 * c-decl.c (implicitly_declare): Update call to
23 maybe_add_include_fixit to suggest overriding the location, as it
24 is for a note.
25 * c-objc-common.c (c_tree_printer): Update for conversion of
26 show_caret_p to a tri-state.
27
a0e9bfbb 282018-08-27 Martin Liska <mliska@suse.cz>
29
30 * c-decl.c (locate_old_decl): Use new function
c9e63184 31 fndecl_built_in_p and remove check for FUNCTION_DECL if
32 possible.
a0e9bfbb 33 (diagnose_mismatched_decls): Likewise.
34 (merge_decls): Likewise.
35 (warn_if_shadowing): Likewise.
36 (pushdecl): Likewise.
37 (implicitly_declare): Likewise.
38 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
39 * c-tree.h (C_DECL_ISNT_PROTOTYPE): Likewise.
40 * c-typeck.c (build_function_call_vec): Likewise.
41 (convert_arguments): Likewise.
42
bc35ef65 432018-08-20 David Malcolm <dmalcolm@redhat.com>
44
45 PR other/84889
46 * c-decl.c (pushtag): Add auto_diagnostic_group instance.
47 (diagnose_mismatched_decls): Likewise, in various places.
48 (warn_if_shadowing): Likewise.
49 (implicit_decl_warning): Likewise.
50 (implicitly_declare): Likewise.
51 (undeclared_variable): Likewise.
52 (declare_label): Likewise.
53 (grokdeclarator): Likewise.
54 (start_function): Likewise.
55 * c-parser.c (c_parser_declaration_or_fndef): Likewise.
56 (c_parser_parameter_declaration): Likewise.
57 (c_parser_binary_expression): Likewise.
58 * c-typeck.c (c_expr_sizeof_expr): Likewise.
59 (parser_build_binary_op): Likewise.
60 (build_unary_op): Likewise.
61 (error_init): Likewise.
62 (pedwarn_init): Likewise.
63 (warning_init): Likewise.
64 (convert_for_assignment): Likewise.
65
b7bb5264 662018-08-15 David Malcolm <dmalcolm@redhat.com>
67
68 * c-objc-common.c: Include "gcc-rich-location.h".
69 (c_tree_printer): Move implemenation of '%T' to...
70 (print_type): ...this new function.
71 (range_label_for_type_mismatch::get_text): New function.
72 * c-typeck.c (convert_for_assignment): Add type labels to the rhs
73 range for the various ic_argpass cases.
74 (class maybe_range_label_for_tree_type_mismatch): New class.
75 (build_binary_op): Use it when calling binary_op_error.
76
11e1dba8 772018-08-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
78
79 * c-decl.c (start_decl): Do not warn if variables is named as main
80 and is a local variable.
81
55a9a5ee 822018-08-15 Iain Sandoe <iain@sandoe.co.uk>
83
84 PR c/19315
85 * c-decl.c (finish_decl): Don't add the 'extern' storage class to
86 objects of unknown size.
87
b2fc0527 882018-08-13 Martin Sebor <msebor@redhat.com>
89
90 PR tree-optimization/71625
91 * c-parser.c (c_parser_declaration_or_fndef): Call
92 braced_list_to_string.
93
40eafc9b 942018-08-03 Bogdan Harjoc <harjoc@gmail.com>
95
96 PR c/86690
97 * c-typeck.c (lookup_field): Do not use TYPE_LANG_SPECIFIC after
98 errors.
99
a2e93b74 1002018-08-01 Martin Sebor <msebor@redhat.com>
101
102 PR tree-optimization/86650
103 * c-objc-common.c (c_tree_printer): Move usage of EXPR_LOCATION (t)
104 and TREE_BLOCK (t) from within percent_K_format to this callsite.
105
c1e4a7a5 1062018-08-01 Jakub Jelinek <jakub@redhat.com>
107
108 PR c/85704
109 * c-typeck.c (init_field_decl_cmp): New function.
110 (output_pending_init_elements): Use it for field comparisons
111 instead of pure bit_position comparisons.
112
12f69ea4 1132018-07-12 Jakub Jelinek <jakub@redhat.com>
114
115 * c-decl.c (c_decl_attributes): Don't diagnose vars without mappable
116 type here, instead add "omp declare target implicit" attribute.
117 (finish_decl): Diagnose vars without mappable type here.
118
737cc978 1192018-06-20 Chung-Lin Tang <cltang@codesourcery.com>
120 Thomas Schwinge <thomas@codesourcery.com>
121 Cesar Philippidis <cesar@codesourcery.com>
122
123 * c-parser.c (c_parser_omp_clause_name): Add support for finalize
124 and if_present. Make present_or_{copy,copyin,copyout,create} aliases
125 to their non-present_or_* counterparts. Make 'self' an alias to
126 PRAGMA_OACC_CLAUSE_HOST.
127 (c_parser_oacc_data_clause): Update GOMP mappings for
128 PRAGMA_OACC_CLAUSE_{COPY,COPYIN,COPYOUT,CREATE,DELETE}. Remove
129 PRAGMA_OACC_CLAUSE_{SELF,PRESENT_OR_*}.
130 (c_parser_oacc_all_clauses): Handle finalize and if_present clauses.
131 Remove support for present_or_* clauses.
132 (OACC_KERNELS_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
133 (OACC_PARALLEL_CLAUSE_MASK): Likewise.
134 (OACC_DECLARE_CLAUSE_MASK): Likewise.
135 (OACC_DATA_CLAUSE_MASK): Likewise.
136 (OACC_ENTER_DATA_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
137 (OACC_EXIT_DATA_CLAUSE_MASK): Add FINALIZE clause.
138 (OACC_UPDATE_CLAUSE_MASK): Remove SELF, add IF_PRESENT.
139 (c_parser_oacc_declare): Remove PRESENT_OR_* clauses.
140 * c-typeck.c (c_finish_omp_clauses): Handle IF_PRESENT and FINALIZE.
141
1c67942e 1422018-06-16 Kugan Vivekanandarajah <kuganv@linaro.org>
143
144 * c-typeck.c (build_unary_op): Handle ABSU_EXPR;
145 * gimple-parser.c (c_parser_gimple_statement): Likewise.
146 (c_parser_gimple_unary_expression): Likewise.
147
0245ae71 1482018-06-15 Jakub Jelinek <jakub@redhat.com>
149
150 PR c/86093
151 * c-typeck.c (pointer_diff): Cast both pointers to unqualified types
152 before doing POINTER_DIFF_EXPR.
153
daca26ed 1542018-06-07 Marek Polacek <polacek@redhat.com>
155
156 PR c/85318
157 * c-decl.c (check_for_loop_decls): Add -Wc90-c99-compat warning about
158 for loop initial declarations.
159
768cc20e 1602018-05-30 David Pagan <dave.pagan@oracle.com>
161
162 PR c/55976
163 * c-decl.c (grokdeclarator): Update check for return type warnings.
164 (start_function): Likewise.
165 (finish_function): Likewise.
166 * c-typeck.c (c_finish_return): Update check for return type warnings.
167 Pass OPT_Wreturn_type to pedwarn when appropriate.
168
143c3c9a 1692018-05-18 Richard Sandiford <richard.sandiford@linaro.org>
170
171 * gimple-parser.c (c_parser_gimple_postfix_expression): Remove
172 __FMA_EXPR handlng.
173
0fe3dc7e 1742018-05-17 Richard Sandiford <richard.sandiford@linaro.org>
175
176 * gimple-parser.c: Include internal-fn.h.
177 (c_parser_gimple_statement): Treat a leading CPP_DOT as a call.
178 (c_parser_gimple_call_internal): New function.
179 (c_parser_gimple_postfix_expression): Use it to handle CPP_DOT.
180 Fix typos in comment.
181
3c43ed34 1822018-05-10 Jakub Jelinek <jakub@redhat.com>
183
184 PR c++/85662
185 * c-fold.c (c_fully_fold_internal): Use fold_offsetof rather than
186 fold_offsetof_1, pass TREE_TYPE (expr) as TYPE to it and drop the
187 fold_convert_loc.
188 * c-typeck.c (build_unary_op): Use fold_offsetof rather than
189 fold_offsetof_1, pass argtype as TYPE to it and drop the
190 fold_convert_loc.
191
2fe6a798 1922018-05-02 David Pagan <dave.pagan@oracle.com>
193
194 PR c/30552
195 * c-decl.c (old_style_parameter_scope): New function.
196 * c-parser.c (c_parser_postfix_expression): Check for statement
197 expressions in old-style function parameter list declarations.
198 * c-parser.h (old_style_parameter_scope): New extern declaration.
199
be4b81f3 2002018-04-25 Jakub Jelinek <jakub@redhat.com>
201
202 PR sanitizer/84307
203 * c-decl.c (build_compound_literal): Call pushdecl (decl) even when
204 it is not TREE_STATIC.
205 * c-typeck.c (c_mark_addressable) <case COMPOUND_LITERAL_EXPR>: Mark
206 not just the COMPOUND_LITERAL_EXPR node itself addressable, but also
207 its COMPOUND_LITERAL_EXPR_DECL.
208
f9f5e9c3 2092018-03-21 Joseph Myers <joseph@codesourcery.com>
210
211 * c-parser.c (c_parser_postfix_expression): For __builtin_tgmath
212 where all functions return the same _FloatN or _FloatNx type,
213 treat integer types as _Float64 instead of double.
214
86f1f5d1 2152018-03-21 Jakub Jelinek <jakub@redhat.com>
216
217 PR c/84999
218 * c-typeck.c (build_binary_op): If c_common_type_for_size fails when
219 building vector comparison, diagnose it and return error_mark_node.
220
9040bba5 2212018-03-15 Jakub Jelinek <jakub@redhat.com>
222
223 PR c/84853
224 * c-typeck.c (build_binary_op) <case RSHIFT_EXPR, case LSHIFT_EXPR>:
225 If code1 is INTEGER_TYPE, only allow code0 VECTOR_TYPE if it has
226 INTEGER_TYPE element type.
227
1b2ff8ae 2282018-03-13 David Pagan <dave.pagan@oracle.com>
229
230 PR c/46921
231 * c-typeck.c (output_init_element): Ensure field initializer
232 expression is always evaluated if there are side effects.
233
bda84b10 2342018-03-06 Jakub Jelinek <jakub@redhat.com>
235
236 PR c/84721
237 * c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if
238 !building_stmt_list_p ().
239
20ebaa3d 2402018-02-13 Richard Sandiford <richard.sandiford@linaro.org>
241
242 PR c/84305
243 * c-decl.c (grokdeclarator): Create an anonymous TYPE_DECL
244 in PARM and TYPENAME contexts too, but attach it to a BIND_EXPR
245 and include the BIND_EXPR in the list of things that need to be
246 pre-evaluated.
247
d9757bb6 2482018-02-09 Nathan Sidwell <nathan@acm.org>
249
250 PR c/84293
251 * c-typeck.c (build_indirect_ref, build_c_cast): Pass expr location
252 to strict_aliasing_warning.
253
3cde3c29 2542018-02-02 Paolo Carlini <paolo.carlini@oracle.com>
255
256 * c-typeck.c (really_start_incremental_init, push_init_level,
257 set_nonincremental_init, output_init_element, process_init_element):
258 Use DECL_UNNAMED_BIT_FIELD.
259
d3af137c 2602018-01-31 Marek Polacek <polacek@redhat.com>
261
262 PR c/81779
263 * c-parser.c (c_parser_compound_statement_nostart): Call
264 expansion_point_location_if_in_system_header.
265
510e5f39 2662018-01-17 David Malcolm <dmalcolm@redhat.com>
267
268 PR c++/83814
269 * c-fold.c (fold_for_warn): Move from c-common.c, reducing to just
270 the C part.
271
eb2fdcf5 2722018-01-13 Jakub Jelinek <jakub@redhat.com>
273
274 PR c/83801
275 * c-tree.h (decl_constant_value_1): Add a bool argument.
276 * c-typeck.c (decl_constant_value_1): Add IN_INIT argument, allow
277 returning a CONSTRUCTOR if it is true. Use error_operand_p.
278 (decl_constant_value): Adjust caller.
279 * c-fold.c (c_fully_fold_internal): If in_init, pass true to
280 decl_constant_value_1 as IN_INIT. Otherwise, punt if
281 decl_constant_value returns initializer that has BLKmode or
282 array type.
283 (c_fully_fold_internal) <case COMPONENT_REF>: Fold if !lval.
284
f08ee65f 2852018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
286 Alan Hayward <alan.hayward@arm.com>
287 David Sherwood <david.sherwood@arm.com>
288
289 * c-typeck.c (comptypes_internal, build_binary_op): Handle polynomial
290 TYPE_VECTOR_SUBPARTS.
291
8e8f6434 2922018-01-03 Jakub Jelinek <jakub@redhat.com>
293
294 Update copyright years.
295
90e1517e 2962018-01-01 Jakub Jelinek <jakub@redhat.com>
297
298 PR c/83595
299 * c-parser.c (c_parser_braced_init, c_parser_initelt,
300 c_parser_conditional_expression, c_parser_cast_expression,
301 c_parser_sizeof_expression, c_parser_alignof_expression,
302 c_parser_postfix_expression, c_parser_omp_declare_reduction,
303 c_parser_transaction_expression): Use set_error () method instead
304 of setting value member to error_mark_node.
305
054e9558 3062017-12-28 Michael Meissner <meissner@linux.vnet.ibm.com>
307
308 * c-decl.c (header_for_builtin_fn): Add integer rounding _Float<N>
309 and _Float<N>X built-in functions.
310
2ea33951 3112017-12-22 Jakub Jelinek <jakub@redhat.com>
312
be7ed04d 313 PR debug/83550
314 * c-decl.c (finish_struct): Set DECL_SOURCE_LOCATION on
315 TYPE_STUB_DECL and call rest_of_type_compilation before processing
316 incomplete vars rather than after it.
317
2ea33951 318 PR debug/83547
319 * c-typeck.c (c_finish_stmt_expr): Ignore !TREE_SIDE_EFFECTS as
320 indicator of ({ }), instead skip all trailing DEBUG_BEGIN_STMTs first,
321 and consider empty ones if there are no other stmts. For
322 -Wunused-value walk all statements before the one only followed by
323 DEBUG_BEGIN_STMTs.
324
82841c8f 3252017-12-22 Mike Stump <mikestump@comcast.net>
c9e63184 326 Eric Botcazou <ebotcazou@adacore.com>
82841c8f 327
328 * c-parser.c (c_parser_while_statement): Add unroll parameter and
329 build ANNOTATE_EXPR if present. Add 3rd operand to ANNOTATE_EXPR.
330 (c_parser_do_statement): Likewise.
331 (c_parser_for_statement): Likewise.
332 (c_parser_statement_after_labels): Adjust calls to above.
333 (c_parse_pragma_ivdep): New static function.
334 (c_parser_pragma_unroll): Likewise.
335 (c_parser_pragma) <PRAGMA_IVDEP>: Add support for pragma Unroll.
336 <PRAGMA_UNROLL>: New case.
337
c9281ef8 3382017-12-19 Jakub Jelinek <jakub@redhat.com>
339
340 * c-typeck.c (comptypes_internal, function_types_compatible_p,
341 perform_integral_promotions, digest_init): Replace Yoda conditions
342 with typical order conditions.
343 * c-decl.c (check_bitfield_type_and_width): Likewise.
344
d76c514d 3452017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
346
347 * c-typeck.c (c_safe_arg_type_equiv_p,
348 c_safe_function_type_cast_p): New function.
349 (build_c_cast): Implement -Wcast-function-type.
350
00e92272 3512017-12-14 Richard Biener <rguenther@suse.de>
352
353 PR c/83415
354 * c-fold.c (c_fully_fold_internal): Treat VIEW_CONVERT_EXPR
355 like REALPART_EXPR for the behavior of whether its operand
356 is an lvalue.
357
a7625351 3582017-12-12 Marek Polacek <polacek@redhat.com>
359
360 PR c/82679
361 * c-decl.c (grokdeclarator): Check declspecs insted of atomicp.
362
90567983 3632017-12-12 Alexandre Oliva <aoliva@redhat.com>
364
365 * c-objc-common.h (LANG_HOOKS_EMITS_BEGIN_STMT): Redefine as true.
366 * c-parser.c (add_debug_begin_stmt): New.
367 (c_parser_declaration_or_fndef): Call it.
368 (c_parser_compound_statement_nostart): Likewise.
369 (c_parser_statement_after_labels): Likewise.
370 * c-typeck (c_finish_stmt_expr): Skip begin stmts markers.
371
a52dedf5 3722017-12-07 Joseph Myers <joseph@codesourcery.com>
373
374 * c-decl.c (build_compound_literal): Add parameter alignas_align
375 and set alignment of decl if nonzero.
376 * c-parser.c (c_keyword_starts_typename): Allow RID_ALIGNAS.
377 (c_parser_declspecs): Allow RID_ALIGNAS to follow a type, like a
378 qualifier.
379 (c_parser_struct_declaration): Update syntax comment.
380 (c_parser_type_name): Add alignas_ok argument and pass it to
381 c_parser_declspecs.
382 (c_parser_cast_expression): Pass true to c_parser_type_name and
383 give error if a cast used an _Alignas specifier.
384 (c_parser_sizeof_expression): Pass true to c_parser_type_name and
385 give error if sizeof (type-name) used an _Alignas specifier.
386 (c_parser_alignof_expression): Pass true to c_parser_type_name and
387 give error if _Alignof (type-name) used an _Alignas specifier.
388 (c_parser_postfix_expression_after_paren_type): Check specified
389 alignment for a compound literal and pass it to
390 build_compound_literal.
391 * c-parser.h (c_parser_type_name): Update prototype.
392 * c-tree.h (build_compound_literal): Update prototype.
393
dab0e385 3942017-12-07 Martin Sebor <msebor@redhat.com>
395
396 PR c/81544
397 * c-decl.c (c_decl_attributes): Look up existing declaration and
398 pass it to decl_attributes.
399
08233401 4002017-12-06 David Malcolm <dmalcolm@redhat.com>
401
402 PR c/83236
403 * c-decl.c (lookup_name_fuzzy): Don't suggest names that are
404 reserved for use by the implementation.
405
aa0e50a0 4062017-12-06 David Malcolm <dmalcolm@redhat.com>
407
408 * c-decl.c: Include "c-family/c-spellcheck.h".
409
eabe2d94 4102017-12-05 Martin Liska <mliska@suse.cz>
411 Jakub Jelinek <jakub@redhat.com>
412
413 * c-typeck.c (pointer_diff): Add new argument and instrument
414 pointer subtraction.
415 (build_binary_op): Similar for pointer comparison.
416
a8f15ac7 4172017-12-01 Jakub Jelinek <jakub@redhat.com>
418
17cf92d6 419 PR c/79153
420 * c-parser.c: Include tree-iterator.h.
421 (c_parser_switch_statement): Emit LABEL_EXPR for the break label
422 into SWITCH_BODY instead of after it and set SWITCH_BREAK_LABEL_P
423 on it.
424
a8f15ac7 425 PR c/83222
426 * c-tree.h (decl_constant_value_1): Declare.
427 * c-typeck.c (decl_constant_value_1): New function.
428 (decl_constant_value): Use it.
429 * c-fold.c (c_fully_fold_internal): If in_init, use
430 decl_constant_value_1 instead of decl_constant_value.
431
7f38a6aa 4322017-11-30 Jakub Jelinek <jakub@redhat.com>
433
434 * c-parser.c (c_parser_postfix_expression): Use ; instead of ;;.
435
dfa10f0d 4362017-11-28 Jakub Jelinek <jakub@redhat.com>
437
438 PR sanitizer/81275
439 * c-typeck.c (c_finish_case): Set SWITCH_ALL_CASES_P if
440 c_switch_covers_all_cases_p returns true.
441
efa02472 4422017-11-28 Julia Koval <julia.koval@intel.com>
c9e63184 443 Sebastian Peryt <sebastian.peryt@intel.com>
efa02472 444
445 * Make-lang.in (c/c-array-notation.o): Remove.
446 * c-array-notation.c: Delete.
447 * c-decl.c: Remove cilkplus condition.
448 * c-parser.c (c_parser_cilk_simd, c_parser_cilk_for,
449 c_parser_cilk_verify_simd, c_parser_array_notation,
450 c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize,
451 c_parser_cilk_simd_fn_vector_attrs,
452 c_finish_cilk_simd_fn_tokens): Delete.
453 (c_parser_declaration_or_fndef): Remove cilkplus condition.
454 (c_parser_direct_declarator_inner): Ditto.
455 (CILK_SIMD_FN_CLAUSE_MASK): Delete.
456 (c_parser_attributes, c_parser_compound_statement,
457 c_parser_statement_after_labels, c_parser_if_statement,
458 c_parser_switch_statement, c_parser_while_statement,
459 c_parser_do_statement, c_parser_for_statement,
460 c_parser_unary_expression, c_parser_postfix_expression,
461 c_parser_postfix_expression_after_primary,
462 c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses,
463 c_parser_omp_for_loop, c_finish_omp_declare_simd): Remove cilkplus
464 support.
465 * c-typeck.c (build_array_ref, build_function_call_vec,
466 convert_arguments,
467 lvalue_p, build_compound_expr, c_finish_return, c_finish_if_stmt,
468 c_finish_loop, build_binary_op): Remove cilkplus support.
469
bd37ce3e 4702017-11-28 Jakub Jelinek <jakub@redhat.com>
471
472 * c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead
473 of build3.
474
864319e6 4752017-11-14 Boris Kolpackov <boris@codesynthesis.com>
476
477 * Make-lang.in (c.install-plugin): Install backend import library.
478
59b23ab9 4792017-11-23 Jakub Jelinek <jakub@redhat.com>
480
481 * c-parser.c (c_parser_omp_declare_simd): Reject declare simd in
482 pragma_stmt context.
483
2a09b28c 4842017-11-23 Mike Stump <mikestump@comcast.net>
485 Eric Botcazou <ebotcazou@adacore.com>
486
487 * c-parser.c (c_parser_while_statement): Pass 3rd operand to
488 ANNOTATE_EXPR.
489 (c_parser_do_statement): Likewise.
490 (c_parser_for_statement): Likewise.
491
8e4391a5 4922017-11-22 David Malcolm <dmalcolm@redhat.com>
493
494 PR c++/62170
495 * c-objc-common.c (c_tree_printer): Convert penultimate param from
496 bool to bool *. Within '%T' handling, if showing an "aka", use
497 "quoted" param to add appropriate quoting.
498
532d84ff 4992017-11-22 Marek Polacek <polacek@redhat.com>
500
501 PR c++/60336
502 PR middle-end/67239
503 PR target/68355
504 * c-decl.c (grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.
505
b8a6d52b 5062017-11-21 David Malcolm <dmalcolm@redhat.com>
507
508 PR c/83056
509 * c-decl.c (lookup_name_fuzzy): Don't suggest names that came from
510 earlier failed lookups.
511
57e83b58 5122017-11-21 Marc Glisse <marc.glisse@inria.fr>
513
514 * c-fold.c (c_fully_fold_internal): Handle POINTER_DIFF_EXPR.
515 * c-typeck.c (pointer_diff): Use POINTER_DIFF_EXPR.
516
145fb49f 5172017-11-20 David Malcolm <dmalcolm@redhat.com>
518
519 PR c/81404
520 * c-decl.c: Include "c-family/known-headers.h".
521 (get_c_name_hint): Rename to get_stdlib_header_for_name and move
522 to known-headers.cc.
523 (class suggest_missing_header): Move to known-header.h.
524 (lookup_name_fuzzy): Call get_c_stdlib_header_for_name rather
525 than get_c_name_hint.
526
0911a8d3 5272017-11-20 David Malcolm <dmalcolm@redhat.com>
528
529 * c-decl.c (get_c_name_hint): New function.
530 (class suggest_missing_header): New class.
531 (lookup_name_fuzzy): Call get_c_name_hint and use it to
532 suggest missing headers to the user.
533
dd008336 5342017-11-20 David Malcolm <dmalcolm@redhat.com>
535
536 * c-decl.c: Define INCLUDE_UNIQUE_PTR before including system.h.
537 Include "c-family/name-hint.h"
538 (implicit_decl_warning): Convert "hint" from
539 const char * to name_hint. Pass location to
540 lookup_name_fuzzy. Suppress any deferred diagnostic if the
541 warning was not printed.
542 (undeclared_variable): Likewise for "guessed_id".
543 (lookup_name_fuzzy): Convert return type from const char *
544 to name_hint. Add location_t param.
545 * c-parser.c: Define INCLUDE_UNIQUE_PTR before including system.h.
546 Include "c-family/name-hint.h"
547 (c_parser_declaration_or_fndef): Convert "hint" from
548 const char * to name_hint. Pass location to lookup_name_fuzzy.
549 (c_parser_parameter_declaration): Likewise.
550
69cd03b2 5512017-11-19 Jakub Jelinek <jakub@redhat.com>
552
553 PR c/66618
554 PR c/69960
555 * c-parser.c (c_parser_omp_atomic): Pass true as LVAL to c_fully_fold
556 where needed.
557 * c-typeck.c (build_unary_op, build_modify_expr, build_asm_expr,
558 handle_omp_array_sections): Likewise.
559 (digest_init): Don't call decl_constant_value_for_optimization.
560 * c-tree.h (decl_constant_value_for_optimization): Removed.
561 * c-fold.c (c_fold_array_ref): New function.
562 (c_fully_fold_internal): Add LVAL argument, propagate it through
563 recursive calls. For VAR_P call decl_constant_value and
564 unshare if not LVAL and either optimizing or IN_INIT. Remove
565 decl_constant_value_for_optimization calls. If IN_INIT and not LVAL,
566 fold ARRAY_REF with STRING_CST and INTEGER_CST operands.
567 (c_fully_fold): Add LVAL argument, pass it through to
568 c_fully_fold_internal.
569 (decl_constant_value_for_optimization): Removed.
570
aac64699 5712017-11-15 Joseph Myers <joseph@codesourcery.com>
572
573 PR c/81156
574 * c-parser.c (check_tgmath_function): New function.
575 (enum tgmath_parm_kind): New enum.
576 (c_parser_postfix_expression): Handle __builtin_tgmath.
577
3b6578b3 5782017-10-31 David Malcolm <dmalcolm@redhat.com>
579
580 * c-decl.c (implicit_decl_warning): Update for renaming of
581 pedwarn_at_rich_loc and warning_at_rich_loc.
582 (implicitly_declare): Likewise for renaming of inform_at_rich_loc.
583 (undeclared_variable): Likewise for renaming of error_at_rich_loc.
584 * c-parser.c (c_parser_declaration_or_fndef): Likewise.
585 (c_parser_struct_or_union_specifier): Likewise for renaming of
586 pedwarn_at_rich_loc.
587 (c_parser_parameter_declaration): Likewise for renaming of
588 error_at_rich_loc.
589 * c-typeck.c (build_component_ref): Likewise.
590 (build_unary_op): Likewise for renaming of inform_at_rich_loc.
591 (pop_init_level): Likewise for renaming of warning_at_rich_loc.
592 (set_init_label): Likewise for renaming of error_at_rich_loc.
593
c22b2783 5942017-10-30 Richard Biener <rguenther@suse.de>
595
596 * gimple-parser.c (c_parser_gimple_statement): Parse conditional
597 stmts.
598
8c32188e 5992017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com>
600
601 * c-decl.c (header_for_builtin_fn): Add support for copysign, fma,
602 fmax, fmin, and sqrt _Float<N> and _Float<N>X variants.
603
133bd9b8 6042017-10-25 David Malcolm <dmalcolm@redhat.com>
605
606 PR c/7356
607 * c-parser.c (c_parser_declaration_or_fndef): Detect missing
608 semicolons.
609
ac50cb09 6102017-10-25 Jakub Jelinek <jakub@redhat.com>
611
612 PR libstdc++/81706
613 * c-decl.c (merge_decls): Copy "omp declare simd" attributes from
614 newdecl to corresponding __builtin_ if any.
615
41ca0095 6162017-10-24 Paolo Carlini <paolo.carlini@oracle.com>
617
618 PR c++/82466
619 * c-decl.c (diagnose_mismatched_decls): Use
620 OPT_Wbuiltin_declaration_mismatch.
621
74578794 6222017-10-12 David Malcolm <dmalcolm@redhat.com>
623
624 * c-parser.c (c_parser_require): Add "type_is_unique" param and
625 use it to guard calls to maybe_suggest_missing_token_insertion.
626 (c_parser_parms_list_declarator): Override default value of new
627 "type_is_unique" param to c_parser_require.
628 (c_parser_asm_statement): Likewise.
629 * c-parser.h (c_parser_require): Add "type_is_unique" param,
630 defaulting to true.
631
3bdf5a5d 6322017-10-11 Nathan Sidwell <nathan@acm.org>
633
634 * c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too.
635
e3d0f65c 6362017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
637
638 * c-parser.c (c_parser_cilk_clause_vectorlength): Use wi::to_wide when
639 operating on trees as wide_ints.
640 * c-typeck.c (build_c_cast, c_finish_omp_clauses): Likewise.
641 (c_tree_equal): Likewise.
642
b6fde48e 6432017-10-04 David Malcolm <dmalcolm@redhat.com>
644
645 * c-decl.c (push_parm_decl): Store c_parm's location into the
646 PARAM_DECL.
647 (build_c_parm): Add "loc" param and store it within the c_parm.
648 * c-parser.c (struct c_parser): Add "last_token_location" field.
649 (c_parser_consume_token): Store location of the token into the
650 new field.
651 (c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS
652 when handling a FUNCTION_DECL, if it doesn't already have them.
653 (c_parser_parameter_declaration): Generate a location for the
654 parameter, and pass it to the call to build_c_parm.
655 * c-tree.h (struct c_parm): Add field "loc".
656 (build_c_parm): Add location_t param.
657 * c-typeck.c (get_fndecl_argument_location): New function.
658 (inform_for_arg): New function.
659 (convert_for_assignment): Use inform_for_arg when dealing with
660 ic_argpass.
661
e786f452 6622017-09-29 Jakub Jelinek <jakub@redhat.com>
663
52f26f82 664 * c-decl.c (grokfield): Use SET_DECL_C_BIT_FIELD here if
665 width is non-NULL.
666 (finish_struct): Test DECL_C_BIT_FIELD instead of DECL_INITIAL,
667 don't SET_DECL_C_BIT_FIELD here.
668
e786f452 669 PR c/82340
670 * c-decl.c (build_compound_literal): Use c_apply_type_quals_to_decl
671 instead of trying to set just TREE_READONLY manually.
672
93b7a91b 6732017-09-16 Tom de Vries <tom@codesourcery.com>
674
675 PR c/81875
676 * c-parser.c (c_parser_omp_for_loop): Fold only operands of cond, not
677 cond itself.
678
3507457a 6792017-09-15 Joseph Myers <joseph@codesourcery.com>
680
681 PR c/82071
682 * c-typeck.c (ep_convert_and_check): Just call convert_and_check
683 for C11.
684 (build_conditional_expr): For C11, generate result with excess
685 precision when one argument is an integer and the other is of a
686 type using excess precision.
687
7ceee42d 6882017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
689
690 * c-typeck.c (build_c_cast): Implement -Wcast-align=strict.
691
2be90a05 6922017-09-13 Marek Polacek <polacek@redhat.com>
693
694 PR c/82167
695 * c-typeck.c (c_expr_sizeof_expr): Use the type of expr.value rather
696 than expr.original_type.
697
daf40ee6 6982017-09-12 Nathan Sidwell <nathan@acm.org>
699
700 * c-decl.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
701 resort_sorted_fields): Moved from c-family/c-common.c.
702 * c-lang.h (struct sorted_fields_type): Moved from c-family/c-common.h.
703
de7757ed 7042017-09-01 Joseph Myers <joseph@codesourcery.com>
705
706 PR c/82071
707 * c-typeck.c (build_atomic_assign): Handle argument with excess
708 precision. Ensure any EXCESS_PRECISION_EXPR is present in
709 argument passed to build_binary_op and convert_for_assignment but
710 not for call to c_fully_fold.
711 (build_modify_expr): Do not remove EXCESS_PRECISION_EXPR early.
712 Ensure build_binary_op is called with argument with original
713 semantic type. Avoid calling c_fully_fold with an
714 EXCESS_PRECISION_EXPR from build_binary_op.
715
1e52a582 7162017-09-01 Jakub Jelinek <jakub@redhat.com>
717
718 PR c/81887
719 * c-parser.c (c_parser_omp_ordered): Handle -fopenmp-simd.
720
3d2b0034 7212017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
722 Alan Hayward <alan.hayward@arm.com>
723 David Sherwood <david.sherwood@arm.com>
724
725 * c-typeck.c (build_binary_op): Use SCALAR_TYPE_MODE.
726 (c_common_type): Likewise. Use as_a <scalar_mode> when setting
727 m1 and m2 to the signed equivalent of a fixed-point
728 SCALAR_TYPE_MODE.
729
0bdd7941 7302017-08-24 David Malcolm <dmalcolm@redhat.com>
731
732 * c-tree.h (c_expr::get_location) Use EXPR_HAS_LOCATION rather
733 than CAN_HAVE_LOCATION_P when determining whether to use the
734 location_t value within "value".
735
43f0de17 7362017-08-21 David Malcolm <dmalcolm@redhat.com>
737
738 * c-parser.c (c_parser_expr_list): Use c_expr::get_location ()
739 rather than peeking the location of the first token.
740 * c-tree.h (c_expr::get_location): New method.
741
a115c319 7422017-08-21 David Malcolm <dmalcolm@redhat.com>
743
744 * c-typeck.c (build_function_call_vec): Pass arg_loc to call
745 to check_function_arguments.
746
23bafc2f 7472017-08-18 Marek Polacek <polacek@redhat.com>
748
749 * c-parser.c (c_parser_postfix_expression): Remove unused code. Update
750 commentary.
751
4bec7283 7522017-08-18 H.J. Lu <hongjiu.lu@intel.com>
753
754 PR c/53037
755 * c-decl.c (merge_decls): Also merge DECL_WARN_IF_NOT_ALIGN.
756 (check_bitfield_type_and_width): Don't allow bit-field with
757 warn_if_not_aligned type.
758
c8616982 7592017-08-14 Martin Sebor <msebor@redhat.com>
760
761 PR c/81117
762 * c-objc-common.c (c_objc_common_init): Handle 'G'.
763
0eb79e8b 7642017-08-11 Marek Polacek <polacek@redhat.com>
765
766 PR c/81795
767 * c-decl.c (pushtag): Only print inform if the warning was printed.
768 (grokdeclarator): Likewise.
769
3fe34694 7702017-08-10 David Malcolm <dmalcolm@redhat.com>
771
772 * c-parser.c (c_parser_error): Rename to...
773 (c_parser_error_richloc): ...this, making static, and adding
774 "richloc" parameter, passing it to the c_parse_error call,
775 rather than calling c_parser_set_source_position_from_token.
776 (c_parser_error): Reintroduce, reimplementing in terms of the
777 above, converting return type from void to bool.
778 (class token_pair): New class.
779 (struct matching_paren_traits): New struct.
780 (matching_parens): New typedef.
781 (struct matching_brace_traits): New struct.
782 (matching_braces): New typedef.
783 (get_matching_symbol): New function.
784 (c_parser_require): Add param MATCHING_LOCATION, using it to
785 highlight matching "opening" tokens for missing "closing" tokens.
786 (c_parser_skip_until_found): Likewise.
787 (c_parser_static_assert_declaration_no_semi): Convert explicit
788 parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of
789 class matching_parens, so that the pertinent open parenthesis is
790 highlighted when there are problems locating the close
791 parenthesis.
792 (c_parser_struct_or_union_specifier): Likewise.
793 (c_parser_typeof_specifier): Likewise.
794 (c_parser_alignas_specifier): Likewise.
795 (c_parser_simple_asm_expr): Likewise.
796 (c_parser_braced_init): Likewise, for matching_braces.
797 (c_parser_paren_condition): Likewise, for matching_parens.
798 (c_parser_switch_statement): Likewise.
799 (c_parser_for_statement): Likewise.
800 (c_parser_asm_statement): Likewise.
801 (c_parser_asm_operands): Likewise.
802 (c_parser_cast_expression): Likewise.
803 (c_parser_sizeof_expression): Likewise.
804 (c_parser_alignof_expression): Likewise.
805 (c_parser_generic_selection): Likewise.
806 (c_parser_postfix_expression): Likewise for cases RID_VA_ARG,
807 RID_OFFSETOF, RID_TYPES_COMPATIBLE_P, RID_AT_SELECTOR,
808 RID_AT_PROTOCOL, RID_AT_ENCODE, reindenting as necessary.
809 In case CPP_OPEN_PAREN, pass loc_open_paren to the
810 c_parser_skip_until_found call.
811 (c_parser_objc_class_definition): Use class matching_parens as
812 above.
813 (c_parser_objc_method_decl): Likewise.
814 (c_parser_objc_try_catch_finally_statement): Likewise.
815 (c_parser_objc_synchronized_statement): Likewise.
816 (c_parser_objc_at_property_declaration): Likewise.
817 (c_parser_oacc_wait_list): Likewise.
818 (c_parser_omp_var_list_parens): Likewise.
819 (c_parser_omp_clause_collapse): Likewise.
820 (c_parser_omp_clause_default): Likewise.
821 (c_parser_omp_clause_if): Likewise.
822 (c_parser_omp_clause_num_threads): Likewise.
823 (c_parser_omp_clause_num_tasks): Likewise.
824 (c_parser_omp_clause_grainsize): Likewise.
825 (c_parser_omp_clause_priority): Likewise.
826 (c_parser_omp_clause_hint): Likewise.
827 (c_parser_omp_clause_defaultmap): Likewise.
828 (c_parser_oacc_single_int_clause): Likewise.
829 (c_parser_omp_clause_ordered): Likewise.
830 (c_parser_omp_clause_reduction): Likewise.
831 (c_parser_omp_clause_schedule): Likewise.
832 (c_parser_omp_clause_num_teams): Likewise.
833 (c_parser_omp_clause_thread_limit): Likewise.
834 (c_parser_omp_clause_aligned): Likewise.
835 (c_parser_omp_clause_linear): Likewise.
836 (c_parser_omp_clause_safelen): Likewise.
837 (c_parser_omp_clause_simdlen): Likewise.
838 (c_parser_omp_clause_depend): Likewise.
839 (c_parser_omp_clause_map): Likewise.
840 (c_parser_omp_clause_device): Likewise.
841 (c_parser_omp_clause_dist_schedule): Likewise.
842 (c_parser_omp_clause_proc_bind): Likewise.
843 (c_parser_omp_clause_uniform): Likewise.
844 (c_parser_omp_for_loop): Likewise.
845 (c_parser_cilk_clause_vectorlength): Likewise.
846 (c_parser_cilk_clause_linear): Likewise.
847 (c_parser_transaction_expression): Likewise.
848 * c-parser.h (c_parser_require): Add param matching_location with
849 default UNKNOWN_LOCATION.
850 (c_parser_error): Convert return type from void to bool.
851 (c_parser_skip_until_found): Add param matching_location with
852 default UNKNOWN_LOCATION.
853
623ee358 8542017-08-09 Marek Polacek <polacek@redhat.com>
855
856 * c-decl.c (build_enumerator): Use true/false instead of 1/0.
857 * c-tree.h (build_external_ref): Update declaration.
858 * c-typeck.c (build_array_ref): Use true/false instead of 1/0.
859 (build_external_ref): Change the type of a parameter to bool.
860 (parser_build_binary_op): Use true/false instead of 1/0.
861 (pointer_diff): Likewise.
862 (build_modify_expr): Likewise.
863 (set_designator): Change the type of a parameter to bool.
864 (set_init_index): Use true/false instead of 1/0.
865 (set_init_label): Likewise.
866 (output_init_element): Change the type of a parameter to bool.
867 (output_pending_init_elements): Use true/false instead of 1/0.
868 (process_init_element): Likewise.
869 (build_binary_op): Change the type of a parameter to bool.
870
88539b96 8712017-08-09 Marek Polacek <polacek@redhat.com>
872
873 PR c/81233
874 * c-typeck.c (pedwarn_init): Make the function take a variable list.
875 Call emit_diagnostic_valist instead of pedwarn.
876 (convert_for_assignment): Unroll the PEDWARN_FOR_ASSIGNMENT macro.
877 Print the relevant types in diagnostics.
878
cb4d9ee2 8792017-08-09 Marek Polacek <polacek@redhat.com>
880
881 PR c/81417
882 * c-array-notation.c (fix_builtin_array_notation_fn): Update calls to
883 build_conditional_expr.
884 * c-parser.c (c_parser_conditional_expression): Create locations for
885 EXP1 and EXP2 from their source ranges. Pass the locations down to
886 build_conditional_expr.
887 * c-tree.h (build_conditional_expr): Update declaration.
888 * c-typeck.c (build_conditional_expr): Add location_t parameters.
889 For -Wsign-compare, also print the types.
890
30a86690 8912017-08-08 Martin Liska <mliska@suse.cz>
892
893 * c-convert.c: Include header files.
894 * c-typeck.c: Likewise.
895
1610e7fb 8962017-08-07 Martin Liska <mliska@suse.cz>
897
898 * c-parser.c (c_parser_attributes): Canonicalize name of an
899 attribute.
900
9b184593 9012017-08-02 Marek Polacek <polacek@redhat.com>
902
903 PR c/81289
904 * c-parser.c (c_parser_unary_expression): Use set_error.
905
ef85bba9 906 PR c/81448
907 PR c/81306
908 * c-warn.c (warn_for_multistatement_macros): Prevent bogus
909 warnings. Avoid walking MACRO_MAP_LOCATIONS.
910
38ef3642 9112017-07-31 Jan Hubicka <hubicka@ucw.cz>
912 Martin Liska <mliska@suse.cz>
913
914 * c-typeck.c (c_finish_goto_label): Build gimple predict
9b184593 915 statement.
38ef3642 916
dadc219c 9172017-07-31 Martin Liska <mliska@suse.cz>
918
919 PR sanitize/81530
920 * c-convert.c (convert): Guard condition with flag_sanitize_p
921 also with current_function_decl non-null equality.
922 * c-decl.c (grokdeclarator): Likewise.
923 * c-typeck.c (build_binary_op): Likewise.
924
abec4134 9252017-07-25 Marek Polacek <polacek@redhat.com>
926
927 * c-decl.c (grokfield): Remove local variable.
928
662c96a9 9292017-07-25 Marek Polacek <polacek@redhat.com>
930
931 PR c/81364
932 * c-parser.c (c_parser_else_body): Don't warn about multistatement
933 macro expansion if the body is in { }.
934 (c_parser_while_statement): Likewise.
935 (c_parser_for_statement): Likewise.
936
a8de6c92 9372017-07-18 Nathan Sidwell <nathan@acm.org>
938
939 * c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE.
940
7f9c8569 9412017-07-14 David Malcolm <dmalcolm@redhat.com>
942
943 * c-decl.c (implicitly_declare): When suggesting a missing
944 #include, provide a fix-it hint.
945
7051d239 9462017-07-06 David Malcolm <dmalcolm@redhat.com>
947
948 * c-lang.c (selftest::run_c_tests): Move body to c_family_tests,
949 and call that instead.
950 * c-tree.h (selftest::run_c_tests): New decl.
951
2bfb0686 9522017-06-26 Marek Polacek <polacek@redhat.com>
953
954 PR c/80116
955 * c-parser.c (c_parser_if_body): Set the location of the
956 body of the conditional after parsing all the labels. Call
957 warn_for_multistatement_macros.
958 (c_parser_else_body): Likewise.
959 (c_parser_switch_statement): Likewise.
960 (c_parser_while_statement): Likewise.
961 (c_parser_for_statement): Likewise.
962 (c_parser_statement): Add a default argument. Save the location
963 after labels have been parsed.
964 (c_parser_c99_block_statement): Likewise.
965
edd07ff6 9662017-06-19 Richard Biener <rguenther@suse.de>
967
968 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
969 negated _Literals to parse _Literal (int) -1.
970
9917317a 9712017-06-13 Martin Liska <mliska@suse.cz>
972
973 PR sanitize/78204
974 * c-convert.c (convert): Use sanitize_flags_p.
975 * c-decl.c (grokdeclarator): Likewise.
976 * c-typeck.c (convert_for_assignment): Likewise.
977 (c_finish_return): Likewise.
978 (build_binary_op): Likewise.
979
37ce62dc 9802017-06-08 Jakub Jelinek <jakub@redhat.com>
981
982 PR c/81006
983 * c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE
984 to sizetype before size_binop.
985
73714718 9862017-06-07 Jakub Jelinek <jakub@redhat.com>
987
988 * gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead
989 of TDI_generic.
990
1d1d0f37 9912017-06-06 Marek Polacek <polacek@redhat.com>
992
993 PR c/79983
994 * c-decl.c (start_struct): Use the location of TYPE_STUB_DECL of
995 ref.
996 (start_enum): Use the location of TYPE_STUB_DECL of enumtype.
997
0ca70bfd 9982017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
999
1000 * c-parser.c (c_parser_binary_expression): Implement the
1001 -Wsizeof_pointer_div warning.
1002 (c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code
1003 from a parenthesized expression.
1004 (c_parser_expr_list): Use c_last_sizeof_loc.
1005 * c-tree.h (c_last_sizeof_loc): New external.
1006 * c-typeck.c (c_last_sizeof_loc): New variable.
1007 (c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc.
1008
8c7a5be5 10092017-05-31 Mikhail Maltsev <maltsevm@gmail.com>
1010
1011 PR testsuite/80580
1012 * gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels.
1013
4d1eda3a 10142017-05-30 David Malcolm <dmalcolm@redhat.com>
1015
1016 * c-objc-common.c (c_tree_printer): Gain bool and const char **
1017 parameters.
1018
645b0f8d 10192017-05-24 Martin Sebor <msebor@redhat.com>
1020
1021 PR c/80731
1022 * c-fold.c (c_fully_fold_internal): Adjust.
1023 * c-typeck.c (parser_build_unary_op): Adjust.
1024
9d5c2cca 10252017-05-23 Thomas Schwinge <thomas@codesourcery.com>
1026
1027 * c-parser.c (OACC_KERNELS_CLAUSE_MASK): Add
1028 "PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS",
1029 "VECTOR_LENGTH".
1030
50253e07 10312017-05-23 Marek Polacek <polacek@redhat.com>
1032
1033 * c-parser.c (c_parser_compound_statement_nostart): Remove redundant
1034 quotes.
1035
5c05c939 10362017-05-22 Jakub Jelinek <jakub@redhat.com>
1037
1038 * c-fold.c (c_fully_fold_internal): Save the c_fully_fold_internal
1039 result for SAVE_EXPR operand and set SAVE_EXPR_FOLDED_P even if
1040 it returned invariant. Call tree_invariant_p unconditionally
1041 afterwards to decide whether to return expr or op0.
1042
88df6264 10432017-05-22 Nathan Sidwell <nathan@acm.org>
1044
1045 * c-decl.c (c_parse_final_cleanups): Drop TDI_tu handling.
1046
6acf639f 10472017-05-19 Thomas Schwinge <thomas@codesourcery.com>
1048
1049 * c-parser.c (c_parser_omp_clause_default): Handle
1050 "OMP_CLAUSE_DEFAULT_PRESENT".
1051
1bccae6b 10522017-05-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
1053
1054 * config-lang.in (gtfiles): Add c-family/c-format.c.
1055
8eb8a179 10562017-05-18 Nathan Sidwell <nathan@acm.org>
1057
1058 * c-decl.c (pushdecl_top_level): Delete unused function.
1059
78173203 10602017-05-18 Marek Polacek <polacek@redhat.com>
1061
1062 * c-decl.c (match_builtin_function_types): Use NULL_TREE instead of 0.
1063 (check_earlier_gotos): Likewise.
1064 (define_label): Likewise.
1065 (pending_xref_error): Likewise.
1066 (smallest_type_quals_location): Likewise.
1067 (grokdeclarator): Likewise.
1068 (grokparms): Likewise.
1069 (identifier_global_value): Likewise.
1070 * c-typeck.c (set_nonincremental_init_from_string): Likewise.
1071 (find_init_member): Likewise.
1072
2823920b 10732017-05-18 Marek Polacek <polacek@redhat.com>
1074
1075 * c-decl.c (start_decl): Use false/true instead of 0/1.
1076 (grokdeclarator): Likewise.
1077 (finish_struct): Likewise.
1078 (start_function): Change the return type to bool. Use false/true
1079 instead of 0/1.
1080 (declspecs_add_qual): Use UNKNOWN_LOCATION instead of 0.
1081 * c-tree.h (start_function): Update.
1082 * c-typeck.c (same_translation_unit_p): Change the return type to bool.
1083 (set_designator): Change the return type to bool. Use false/true
1084 instead of 0/1.
1085
72749341 10862017-05-17 Marek Polacek <polacek@redhat.com>
1087
1088 * c-decl.c: Use NULL_TREE instead of 0 where appropriate.
1089 * c-typeck.c: Likewise.
1090
63b8aca5 10912017-05-17 Marek Polacek <polacek@redhat.com>
1092
1093 PR sanitizer/80659
1094 * c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and
1095 DECL_IGNORED_P even for non-static compound literals.
1096
3f6e5ced 10972017-05-17 Martin Liska <mliska@suse.cz>
1098
1099 * c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and
1100 use it instead of int type.
1101
d0869ea4 11022017-05-17 Marek Polacek <polacek@redhat.com>
1103
1104 * c-convert.c (convert): Replace c_save_expr with save_expr. Don't
1105 call c_fully_fold.
1106 (convert) <case COMPLEX_TYPE>: Remove special handling of COMPLEX_TYPEs.
1107 * c-decl.c (grokdeclarator): Replace c_save_expr with save_expr.
1108 * c-fold.c (c_fully_fold_internal): Handle SAVE_EXPR.
1109 * c-parser.c (c_parser_declaration_or_fndef): Replace c_save_expr with
1110 save_expr.
1111 (c_parser_conditional_expression): Likewise.
1112 * c-tree.h (SAVE_EXPR_FOLDED_P): Define.
1113 * c-typeck.c (build_modify_expr): Replace c_save_expr with save_expr.
1114 (process_init_element): Likewise.
1115 (build_binary_op): Likewise.
1116 (handle_omp_array_sections_1): Likewise.
1117
641fc3ae 11182017-05-12 Thomas Schwinge <thomas@codesourcery.com>
1119
1120 * c-parser.c (c_parser_omp_clause_num_gangs)
1121 (c_parser_omp_clause_num_workers)
1122 (c_parser_omp_clause_vector_length): Merge functions into...
1123 (c_parser_oacc_single_int_clause): ... this new function. Adjust
1124 all users.
1125
930c75f4 11262017-05-11 Nathan Sidwell <nathan@acm.org>
1127
1128 * gimple-parser.c: Don't #include tree-dump.h.
1129
22ba59df 11302017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
1131
1132 PR testsuite/80580
1133 * gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.
1134
e58d47fc 11352017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
1136
1137 PR testsuite/80580
1138 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
1139 incorrect __MEM syntax.
1140
a38eda85 11412017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
1142
1143 PR testsuite/80580
1144 * gimple-parser.c (c_parser_gimple_unary_expression): Check argument
1145 type of unary '*'.
1146
cdf05a3f 11472017-05-09 Nathan Sidwell <nathan@acm.org>
1148
1149 * c-tree.h (pushdecl): Declare.
1150
56b8400f 11512017-05-05 David Malcolm <dmalcolm@redhat.com>
1152
1153 * c-decl.c (warn_defaults_to): Replace report_diagnostic
1154 with diagnostic_report_diagnostic.
1155 * c-errors.c (pedwarn_c99): Likewise.
1156 (pedwarn_c90): Likewise.
1157
92bc38e7 11582017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
1159
c9e63184 1160 PR c++/80038
92bc38e7 1161 * c-gimplify.c (c_gimplify_expr): Remove calls to
1162 cilk_gimplifY_call_params_in_spawned_fn.
1163
112e1c2c 11642017-04-25 David Malcolm <dmalcolm@redhat.com>
1165
1166 * c-parser.c (c_parser_struct_or_union_specifier): Add fix-it
1167 hint for removing extra semicolon.
1168
0b515531 11692017-04-21 Jakub Jelinek <jakub@redhat.com>
1170
1171 PR c/80468
1172 * c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not
1173 enabled, set specs->type to integer_type_node.
1174
2fbe7a32 11752017-04-03 Jonathan Wakely <jwakely@redhat.com>
1176
1177 * c-array-notation.c: Fix typo in comment.
1178
3582b9a6 11792017-03-29 Marek Polacek <polacek@redhat.com>
1180
1181 PR c/79730
1182 * c-decl.c (finish_decl): Check VAR_P.
1183
3385a573 11842017-03-27 Jakub Jelinek <jakub@redhat.com>
1185
1186 PR middle-end/80162
1187 * c-tree.h (c_mark_addressable): Add array_ref_p argument.
1188 * c-typeck.c (c_mark_addressable): Likewise. Look through
1189 VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
1190 to ARRAY_TYPE.
1191 (build_array_ref): Pass true as array_ref_p to c_mark_addressable.
1192
5c1d51e3 11932017-03-23 Marek Polacek <polacek@redhat.com>
1194
1195 * c-tree.h: Remove a C_RID_YYCODE reference.
1196
048100df 11972017-03-21 Jakub Jelinek <jakub@redhat.com>
1198
1199 PR c/80097
1200 * c-typeck.c (build_binary_op): Add EXCESS_PRECISION_EXPR only around
1201 optional COMPOUND_EXPR with ubsan instrumentation.
1202
c153c724 12032017-03-17 Marek Polacek <polacek@redhat.com>
1204
1205 * c-parser.c: Add C11 references.
1206
51eb47a0 12072017-03-15 Marek Polacek <polacek@redhat.com>
1208
1209 * c-parser.c (c_parser_enum_specifier): Remove redundant line.
1210
726add0b 12112017-03-11 Marek Polacek <polacek@redhat.com>
1212
1213 * c-decl.c (implicit_decl_warning): Add a comment. Fix formatting.
1214
ca1f4c7a 12152017-03-10 David Malcolm <dmalcolm@redhat.com>
1216
1217 PR translation/79848
1218 * c-decl.c (declspecs_add_type): Simplify uses of "%<%s%>" to
1219 "%qs".
1220 * c-parser.c (c_parser_oacc_shape_clause): Likewise.
1221
e14b765f 12222017-03-09 Marek Polacek <polacek@redhat.com>
1223
1224 PR sanitizer/79757
1225 * c-parser.c (c_parser_declaration_or_fndef): Don't sanitize old-style
1226 parameter declarations with initializers.
1227
7ad571b2 12282017-03-09 Jakub Jelinek <jakub@redhat.com>
1229
1230 PR c/79969
1231 * c-decl.c (start_enum): Adjust DECL_SOURCE_LOCATION of
1232 TYPE_STUB_DECL.
1233
d87f668a 12342017-03-07 Jakub Jelinek <jakub@redhat.com>
1235
1236 PR c/79834
1237 * c-parser.c (c_parser_pragma): Use error_at instead of c_parser_error
1238 for "may only be used in compound statements" diagnostics, change it
1239 such that the same translatable string is used for all pragmas. For
1240 PRAGMA_OACC_WAIT use "acc wait" rather than "acc enter data" in the
1241 diagnostics.
1242 (c_parser_omp_cancellation_point, c_parser_omp_target_update,
1243 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Change
1244 "may only be used in compound statements" diagnostics, such that the
1245 same translatable string is used for all pragmas.
1246
16b0e324 12472017-03-04 Marek Polacek <polacek@redhat.com>
1248
1249 PR c/79847
1250 * c-decl.c (implicit_decl_warning): Add missing space.
1251
f2360ea5 12522017-03-03 Marek Polacek <polacek@redhat.com>
1253
1254 PR c/79758
1255 * c-decl.c (store_parm_decls_oldstyle): Check if the element of
1256 current_function_prototype_arg_types is error_mark_node. Fix
1257 formatting. Use TREE_VALUE instead of TREE_TYPE.
1258
d33f5911 12592017-03-03 Jakub Jelinek <jakub@redhat.com>
1260
408a47b2 1261 PR c/79837
1262 * c-parser.c (c_parser_omp_clause_reduction): Don't mention
1263 %<min%> or %<max%> in the diagnostics, instead mention identifier.
1264 (c_parser_omp_declare_reduction): Don't mention %<min%> in the
1265 diagnostics.
1266
d33f5911 1267 PR c/79836
1268 * c-parser.c (c_parser_generic_selection): Use %<_Generic%>
1269 instead of %<_Generic>.
1270 (c_parser_omp_ordered): Use %<depend%> instead of %<depend>.
1271 (c_parser_omp_target_exit_data): Use %<release%> instead of
1272 %<release>.
1273
1caf9cb4 12742017-02-28 Jakub Jelinek <jakub@redhat.com>
1275
1276 * c-parser.c (c_parser_asm_statement): Use cond ? G_("...") : G_("...")
1277 instead of just cond ? "..." : "...".
1278 (c_parser_oacc_enter_exit_data): Use %s and ternary operator only
1279 for "enter"/"exit" keyword.
1280 (c_finish_oacc_routine): Don't use %s to supply portions of the
1281 message.
1282
bbd5521e 12832017-02-24 Jakub Jelinek <jakub@redhat.com>
1284
1285 PR c++/79588
1286 * c-parser.c (c_parser_postfix_expression_after_primary): Don't
1287 handle -Wrestrict here.
1288 * c-typeck.c (build_function_call_vec): Adjust
1289 check_function_arguments caller.
1290
a450df95 12912017-02-23 Richard Biener <rguenther@suse.de>
1292
1293 PR c/79684
1294 * gimple-parser.c (c_parser_gimple_statement): Use set_error
1295 to initialize c_exprs to return.
1296 (c_parser_gimple_binary_expression): Likewise.
1297 (c_parser_gimple_unary_expression): Likewise.
1298 (c_parser_gimple_postfix_expression): Likewise.
1299
2567d975 13002017-02-22 Marek Polacek <polacek@redhat.com>
1301
1302 PR c/79662
1303 * c-typeck.c (convert_arguments): Handle error_mark_node.
1304
21bfe0d4 13052017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1306
1307 * gimple-parser.c (c_parser_gimple_postfix_expression): Check return
1308 value of c_parser_parse_ssa_name against error_mark_node and emit
1309 error if ssa name is anonymous and written as default definition.
1310
a8deddc8 13112017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1312
1313 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
1314 FMA_EXPR.
1315
79878c89 13162017-02-16 Jakub Jelinek <jakub@redhat.com>
1317
1318 PR c++/79512
1319 * c-parser.c (c_parser_omp_target): For -fopenmp-simd
1320 ignore #pragma omp target even when not followed by identifier.
1321
78c6d67e 13222017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1323
1324 * gimpler-parser.c (c_parser_gimple_statement): Handle ABS_EXPR.
1325 (c_parser_gimple_unary_expression): Likewise.
1326
19efce70 13272017-02-13 Jakub Jelinek <jakub@redhat.com>
1328
1329 * c-parser.c (c_parser_oacc_declare): Add missing space in
1330 diagnostics.
1331
32b8484d 13322017-02-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1333
1334 PR c/79478
1335 * gimple-parser.c (c_parser_gimple_postfix_expression): Call
1336 set_c_expr_source_range when parsing ssa-name.
1337
b91919ba 13382017-02-10 Prasad Ghangal <prasad.ghangal@gmail.com>
1339 Richard Biener <rguenther@suse.de>
1340
1341 * gimple-parser.c (c_parser_gimple_binary_expression): Avoid
1342 building IL when arguments are error_mark_node.
1343 (c_parser_gimple_unary_expression): Likewise.
1344 (c_parser_gimple_if_stmt): Likewise.
1345 (c_parser_gimple_switch_stmt): Likewise.
1346 (c_parser_gimple_return_stmt): Likewise.
1347 (c_parser_parse_ssa_name): When name lookup fails do not build
1348 an SSA name. Use undeclared rather than not declared in error
1349 reporting.
1350
127144a0 13512017-02-09 Marek Polacek <polacek@redhat.com>
1352
1353 PR c/79428
1354 * c-parser.c (c_parser_omp_ordered): Call c_parser_skip_to_pragma_eol
1355 instead of c_parser_skip_until_found.
1356
b5c83b44 13572017-02-09 Jakub Jelinek <jakub@redhat.com>
1358
1359 PR c/79431
1360 * c-parser.c (c_parser_omp_declare_target): Don't invoke
1361 symtab_node::get on automatic variables.
1362
719a7570 13632016-02-09 Nathan Sidwell <nathan@codesourcery.com>
1364 Chung-Lin Tang <cltang@codesourcery.com>
1365
1366 * c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
1367 (c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
1368 semantic checking.
1369 * c-parser.c (c_parser_omp_for_loop): Accept tiling constructs.
1370
29beab79 13712017-02-07 Richard Biener <rguenther@suse.de>
1372
1373 * gimple-parser.c (c_parser_gimple_expr_list): Simplify.
1374 (c_parser_gimple_postfix_expression_after_primary):
1375 Do not use c_build_function_call_vec to avoid folding and promotion.
1376 Simplify.
1377
96afa092 13782017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
1379
1380 PR lto/79061
1381 * c-decl.c (pop_scope): Pass main_input_filename to
1382 build_translation_unit_decl.
1383
175e0d6b 13842017-01-24 David Malcolm <dmalcolm@redhat.com>
1385
1386 * c-parser.c: Include "read-rtl-function.h" and
1387 "run-rtl-passes.h".
1388 (c_parser_declaration_or_fndef): Rename "gimple-pass-list" in
1389 grammar to gimple-or-rtl-pass-list. Add rtl-function-definition
1390 production. Update for renaming of field "gimple_pass" to
1391 "gimple_or_rtl_pass". If __RTL was seen, call
1392 c_parser_parse_rtl_body. Convert a timevar_push/pop pair
1393 to an auto_timevar, to cope with early exit.
1394 (c_parser_declspecs): Update RID_GIMPLE handling for renaming of
1395 field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of
1396 c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list.
1397 Handle RID_RTL.
1398 (c_parser_parse_rtl_body): New function.
1399 * c-tree.h (enum c_declspec_word): Add cdw_rtl.
1400 (struct c_declspecs): Rename field "gimple_pass" to
1401 "gimple_or_rtl_pass". Add field "rtl_p".
1402 * gimple-parser.c (c_parser_gimple_pass_list): Rename to...
1403 (c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly.
1404 * gimple-parser.h (c_parser_gimple_pass_list): Rename to...
1405 (c_parser_gimple_or_rtl_pass_list): ...this.
1406
3ef7eab1 14072017-01-20 Marek Polacek <polacek@redhat.com>
1408
1409 PR c/64279
1410 * c-typeck.c (build_conditional_expr): Warn about duplicated branches.
1411
785353b9 14122017-01-13 Richard Biener <rguenther@suse.de>
1413
1414 * gimple-parser.c (c_parser_gimple_compound_statement): Handle
1415 nops.
1416
ac5f04c1 14172017-01-13 Richard Biener <rguenther@suse.de>
1418
1419 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
1420 _Literal ( type-name ) number.
1421
2b11c996 14222017-01-12 Richard Biener <rguenther@suse.de>
1423
1424 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
1425 __MEM.
1426
9a26d403 14272017-01-11 Jakub Jelinek <jakub@redhat.com>
1428
1429 PR c++/72813
1430 * c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing
1431 PCH file.
1432
a19c4dc1 14332017-01-11 Richard Biener <rguenther@suse.de>
1434
1435 PR bootstrap/79052
1436 * gimple-parser.c (c_parser_gimple_switch_stmt): Add missing
1437 returns on parse errors.
1438
6124217c 14392017-01-04 Marek Polacek <polacek@redhat.com>
1440
1441 PR c++/64767
1442 * c-parser.c (c_parser_postfix_expression): Mark zero character
1443 constants by setting original_type in c_expr.
1444 * c-typeck.c (parser_build_binary_op): Warn when a pointer is compared
1445 with a zero character constant.
1446 (char_type_p): New function.
1447
8ccda24a 14482017-01-04 David Malcolm <dmalcolm@redhat.com>
1449
1450 * c-parser.c (c_parser_declaration_or_fndef): Create a
1451 rich_location at init_loc and parse it to start_init.
1452 (last_init_list_comma): New global.
1453 (c_parser_braced_init): Update last_init_list_comma when parsing
1454 commas. Pass it to pop_init_level. Pass location of closing
1455 brace to pop_init_level.
1456 (c_parser_postfix_expression_after_paren_type): Create a
1457 rich_location at type_loc and parse it to start_init.
1458 (c_parser_omp_declare_reduction): Likewise for loc.
1459 * c-tree.h (start_init): Add rich_location * param.
1460 (pop_init_level): Add location_t param.
1461 * c-typeck.c (struct initializer_stack): Add field
1462 "missing_brace_richloc".
1463 (start_init): Add richloc param, use it to initialize
1464 the stack node's missing_brace_richloc.
1465 (last_init_list_comma): New decl.
1466 (finish_implicit_inits): Pass last_init_list_comma to
1467 pop_init_level.
1468 (push_init_level): When finding missing open braces, add fix-it
1469 hints to the richloc.
1470 (pop_init_level): Add "insert_before" param and pass it
1471 when calling pop_init_level. Add fixits about missing
1472 close braces to any richloc. Use the richloc for the
1473 -Wmissing-braces warning.
1474 (set_designator): Pass last_init_list_comma to pop_init_level.
1475 (process_init_element): Likewise.
1476
aad93da1 14772017-01-01 Jakub Jelinek <jakub@redhat.com>
1478
1479 Update copyright years.
1480
3713d2e2 14812016-12-21 Jakub Jelinek <jakub@redhat.com>
1482
184fac50 1483 PR bootstrap/78817
1484 * c-typeck.c (build_function_call_vec): If check_function_arguments
1485 returns true, set TREE_NO_WARNING on CALL_EXPR.
1486
3713d2e2 1487 PR c/77767
1488 * c-decl.c (grokdeclarator): If *expr is non-NULL, append expression
1489 to *expr instead of overwriting it.
1490
3e677d45 14912016-12-20 Richard Biener <rguenther@suse.de>
1492
1493 * gimple-parser.c (c_parser_gimple_compound_statement): Improve
1494 error recovery.
1495 (c_parser_gimple_statement): Only build assigns for non-error
1496 stmts.
1497 (c_parser_gimple_postfix_expression_after): Improve error recovery.
1498
4954efd4 14992016-12-14 Martin Jambor <mjambor@suse.cz>
1500
1501 * c-parser.c: Include omp-general.h and omp-offload.h instead of
1502 omp-low.h.
1503 (c_finish_oacc_routine): Adjusted call to
1504 get_oacc_fn_attrib, build_oacc_routine_dims and replace_oacc_fn_attrib
1505 to use their new names.
1506 (c_parser_oacc_enter_exit_data): Adjusted call to find_omp_clause to
1507 use its new name.
1508 (c_parser_oacc_update): Likewise.
1509 (c_parser_omp_simd): Likewise.
1510 (c_parser_omp_target_update): Likewise.
1511 * c-typeck.c: Include omp-general.h instead of omp-low.h.
1512 (c_finish_omp_cancel): Adjusted call to find_omp_clause to use its new
1513 name.
1514 (c_finish_omp_cancellation_point): Likewise.
1515 * gimple-parser.c: Do not include omp-low.h
1516
4c50b884 15172016-12-02 Cesar Philippidis <cesar@codesourcery.com>
1518 James Norris <jnorris@codesourcery.com>
1519
1520 * c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
1521 EXIT_DATA,WAIT} are not used in compound statements.
1522 (c_parser_oacc_enter_exit_data): Update diagnostics.
1523
f1b3e1c9 15242016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
1525
1526 PR c++/71973
1527 * c-decl.c (diagnose_mismatched_decls): Use
1528 OPT_Wbuiltin_declaration_mismatch here too.
1529
adc78298 15302016-11-18 Richard Sandiford <richard.sandiford@arm.com>
f1b3e1c9 1531 Alan Hayward <alan.hayward@arm.com>
1532 David Sherwood <david.sherwood@arm.com>
adc78298 1533
1534 * c-decl.c (merge_decls): Use SET_DECL_MODE.
1535 (make_label, finish_struct): Likewise.
1536
b1f04d34 15372016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com>
a49621cf 1538 Richard Biener <rguenther@suse.de>
9b8f3aa1 1539
a49621cf 1540 * Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.
1541 * config-lang.in (gtfiles): Add c/c-parser.h.
1542 * c-tree.h (enum c_declspec_word): Add cdw_gimple.
1543 (struct c_declspecs): Add gimple_pass member and gimple_p flag.
1544 * c-parser.c (enum c_id_kind, struct c_token,
1545 c_parser_next_token_is, c_parser_next_token_is_not,
1546 c_parser_next_token_is_keyword,
1547 enum c_lookahead_kind, enum c_dtr_syn, enum c_parser_prec):
1548 Split out to ...
1549 * c-parser.h: ... new header.
1550 * c-parser.c: Include c-parser.h and gimple-parser.h.
b1f04d34 1551 (c_parser_peek_token, c_parser_peek_2nd_token,
a49621cf 1552 c_token_starts_typename, c_parser_next_token_starts_declspecs,
1553 c_parser_next_tokens_start_declaration, c_parser_consume_token,
1554 c_parser_error, c_parser_require, c_parser_skip_until_found,
1555 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
1556 c_parser_type_name): Export.
1557 (c_parser_tokens_buf): New function.
1558 (c_parser_error): Likewise.
1559 (c_parser_set_error): Likewise.
1560 (c_parser_declspecs): Handle RID_GIMPLE.
b1f04d34 1561 (c_parser_declaration_or_fndef): Parse __GIMPLE marked body
1562 via c_parser_parse_gimple_body.
a49621cf 1563 * c-parser.h (c_parser_peek_token, c_parser_peek_2nd_token,
1564 c_token_starts_typename, c_parser_next_token_starts_declspecs,
1565 c_parser_next_tokens_start_declaration, c_parser_consume_token,
1566 c_parser_error, c_parser_require, c_parser_skip_until_found,
1567 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
1568 c_parser_type_name): Declare.
b1f04d34 1569 (struct c_parser): Declare forward.
1570 (c_parser_tokens_buf): Declare.
a49621cf 1571 (c_parser_error): Likewise.
1572 (c_parser_set_error): Likewise.
1573 * gimple-parser.c: New file.
1574 * gimple-parser.h: Likewise.
b1f04d34 1575
9b8f3aa1 15762016-11-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1577
1578 PR c/35503
1579 * c-parser.c (c_parser_postfix_expression_after_primary): Call
1580 warn_for_restrict.
1581
50d3ad71 15822016-09-11 Le-Chun Wu <lcwu@google.com>
1583 Mark Wielaard <mjw@redhat.com>
1584
1585 * c-decl.c (warn_if_shadowing): Use the warning code corresponding
1586 to the given -Wshadow= variant.
1587
ad7b10a2 15882016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
1589
1590 * c-typeck.c: Include memmodel.h.
1591
8a23256f 15922016-10-13 Jakub Jelinek <jakub@redhat.com>
1593
1594 PR target/77957
1595 * c-objc-common.h (LANG_HOOKS_GETDECLS): Use hook_tree_void_null
1596 instead of lhd_return_null_tree_v.
1597
30ac4925 15982016-10-07 Bernd Schmidt <bschmidt@redhat.com>
1599
1600 PR c++/69733
1601 * c-decl.c (smallest_type_quals_location): New static function.
1602 (grokdeclarator): Try to find the correct location for an ignored
1603 qualifier.
1604
3c77f69c 16052016-09-26 Marek Polacek <polacek@redhat.com>
1606
1607 PR c/7652
1608 * c-decl.c (pop_scope): Add gcc_fallthrough.
1609
16102016-09-26 Marek Polacek <polacek@redhat.com>
1611
1612 PR c/7652
1613 * c-parser.c (struct c_token): Add flags field.
1614 (c_lex_one_token): Pass it to c_lex_with_flags.
1615 (c_parser_declaration_or_fndef): Turn __attribute__((fallthrough));
1616 into IFN_FALLTHROUGH.
1617 (c_parser_label): Set FALLTHROUGH_LABEL_P on labels. Handle
1618 attribute fallthrough after a case label or default label.
1619 (c_parser_statement_after_labels): Handle RID_ATTRIBUTE.
1620
481ce481 16212016-09-24 Marek Polacek <polacek@redhat.com>
1622
1623 PR c/77490
1624 * c-typeck.c (build_unary_op): Warn about bit not on expressions that
1625 have boolean value. Warn about ++/-- on booleans.
1626
16fb756f 16272016-09-23 Jakub Jelinek <jakub@redhat.com>
1628
1629 * c-parser.c (incomplete_record_decls): Remove unnecessary
1630 = vNULL initialization of file scope vec.
1631
d80c1c6c 16322016-09-16 Marek Polacek <polacek@redhat.com>
1633
1634 * c-typeck.c (lvalue_p): Use true and false instead of 1 and 0.
1635
b99cc6da 16362016-09-14 Marek Polacek <polacek@redhat.com>
1637
1638 * c-array-notation.c (create_cmp_incr): Use false instead of 0.
1639 (fix_array_notation_expr): Likewise.
1640 * c-decl.c (finish_decl): Likewise.
1641 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
1642 * c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
1643 (function_to_pointer_conversion): Use false instead of 0.
1644 (convert_lvalue_to_rvalue): Likewise.
1645 (parser_build_unary_op): Likewise.
1646 (build_atomic_assign): Likewise.
1647 (build_unary_op): Change nonconvert parameter type to bool, use
1648 true/false instead of 1/0.
1649 (build_binary_op): Use true instead of 1.
1650
68ef907c 16512016-09-13 David Malcolm <dmalcolm@redhat.com>
1652
1653 * c-parser.c (c_parser_declaration_or_fndef): Update for renaming
1654 of add_fixit_insert to add_fixit_insert_before.
1655
89bcb5a3 16562016-09-13 Marek Polacek <polacek@redhat.com>
1657
1658 * c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT. Use
1659 it.
1660
7a21b590 16612016-09-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
1662
1663 PR c++/77496
1664 * c-parser.c (c_parser_conditional_expression): Pass the rightmost
1665 COMPOUND_EXPR to warn_for_omitted_condop.
1666
3da97ff7 16672016-09-07 David Malcolm <dmalcolm@redhat.com>
1668
1669 * c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
1670 c_get_substring_location for this new langhook.
1671
0b80c4b2 16722016-09-02 Jakub Jelinek <jakub@redhat.com>
1673
1674 PR c/65467
1675 * c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
1676 flag_openmp.
1677 (c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
1678 instead of mark_exp_read on low_bound/length expression.
1679 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
1680 c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
1681 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
1682 c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
1683 c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
1684 c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
1685 c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
1686 c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
1687 c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
1688 c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
1689 instead of mark_expr_read.
1690 (c_parser_omp_declare_reduction): Reject _Atomic qualified types.
1691 * c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
1692 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
1693 * c-tree.h (c_omp_clause_copy_ctor): New prototype.
1694 * c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
1695 array section bases outside of depend clause, for depend clause
1696 use convert_lvalue_to_rvalue on the base.
1697 (c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
1698 linear, aligned, map, to and from clauses.
1699 (c_omp_clause_copy_ctor): New function.
1700
c7afb782 17012016-09-01 Marek Polacek <polacek@redhat.com>
1702
1703 PR c/7652
1704 * c-typeck.c (composite_type): Add FALLTHRU comment.
1705
986530da 17062016-08-31 David Malcolm <dmalcolm@redhat.com>
1707
1708 * c-parser.c (c_parser_declaration_or_fndef): Add trailing space
1709 to the insertion fixits for "struct", "union", and "enum".
1710
850c2009 17112016-08-30 David Malcolm <dmalcolm@redhat.com>
1712
1713 * c-decl.c (implicit_decl_warning): Use add_fixit_replace
1714 rather than add_fixit_misspelled_id.
1715 (undeclared_variable): Likewise.
1716 * c-parser.c (c_parser_declaration_or_fndef): Likewise. Remove
1717 now-redundant "here" params from add_fixit_insert method calls.
1718 (c_parser_parameter_declaration): Likewise.
1719 * c-typeck.c (build_component_ref): Remove now-redundant range
1720 param from add_fixit_replace method calls.
1721
c4963714 17222016-08-25 Marek Polacek <polacek@redhat.com>
1723
1724 * c-typeck.c (parser_build_binary_op): Pass LHS to
1725 warn_logical_not_parentheses.
1726
49e1f4eb 17272016-08-25 Marek Polacek <polacek@redhat.com>
1728
1729 PR c/77323
1730 * c-decl.c (declspecs_add_type): Set typespec_word even when __intN
1731 or _FloatN or _FloatNx is not supported.
1732 (finish_declspecs): Set type to integer_type_node when _FloatN or
1733 _FloatNx is not supported.
1734
82c85aba 17352016-08-19 Joseph Myers <joseph@codesourcery.com>
1736
1737 PR c/32187
1738 * c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
1739 (struct c_declspecs): Add field floatn_nx_idx.
1740 * c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
1741 and _FloatNx type specifiers.
1742 * c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
1743 (c_parser_declspecs, c_parser_attribute_any_word)
1744 (c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
1745 * c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
1746 (convert_arguments): Avoid promoting _FloatN and _FloatNx types
1747 narrower than double.
1748
7175bb2a 17492016-08-12 Jakub Jelinek <jakub@redhat.com>
1750 Martin Liska <mliska@suse.cz>
1751
1752 PR c/67410
1753 * c-typeck.c (set_nonincremental_init_from_string): Use / instead of
1754 % to determine val element to change. Assert that
1755 wchar_bytes * charwidth fits into val array.
1756
e3533433 17572016-08-12 Marek Polacek <polacek@redhat.com>
1758
1759 PR c/7652
1760 * c-parser.c (c_parser_external_declaration): Add FALLTHRU.
1761 (c_parser_postfix_expression): Likewise.
1762 * c-typeck.c (build_unary_op): Adjust fall through comment.
1763 (c_mark_addressable): Likewise.
1764
74be5bc1 17652016-08-11 Jakub Jelinek <jakub@redhat.com>
1766
1767 PR c/72816
1768 * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
1769 array member through typedef, for orig_qual_indirect == 0 clear
1770 orig_qual_type.
1771
7af4d06b 17722016-08-08 David Malcolm <dmalcolm@redhat.com>
1773
1774 PR c/64955
1775 * c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
1776 this up to selftest::run_c_tests.
1777 (selftest::run_c_tests): New function.
1778
5f429ee2 17792016-08-04 Thomas Schwinge <thomas@codesourcery.com>
1780
1fa5d8ba 1781 * c-parser.c (struct oacc_routine_data): Add error_seen and
1782 fndecl_seen members.
1783 (c_finish_oacc_routine): Use these.
1784 (c_parser_declaration_or_fndef): Adjust.
1785 (c_parser_oacc_routine): Likewise. Support more C language
1786 constructs, and improve diagnostics. Move pragma context
1787 checking...
1788 (c_parser_pragma): ... here.
1789
5f429ee2 1790 * c-parser.c (struct oacc_routine_data): New.
1791 (c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
1792 Simplify code.
1793 (c_finish_oacc_routine): Likewise. Don't attach clauses to "omp
1794 declare target" attribute.
1795
f3c032a4 17962016-08-01 Jan Beulich <jbeulich@suse.com>
1797
1798 * c-fold.c (c_fully_fold_internal): Also emit shift count
1799 warnings for vector types.
1800 * c-typeck.c (build_binary_op): Likewise.
1801
4ebf85be 18022016-07-29 Marek Polacek <polacek@redhat.com>
1803
1804 PR c/71742
1805 * c-decl.c (finish_struct): Rephrase an error message.
1806
9efe5be6 1807 PR c/71853
1808 * c-parser.c (c_parser_switch_statement): Initialize ce.original_type
1809 to error node for invalid code.
1810
4c4548bb 1811 PR c/71573
1812 * c-decl.c (implicitly_declare): Return decl early not only for
1813 error_mark_nodes, but for anything that is not a FUNCTION_DECL.
1814
322d4184 18152016-07-29 Jakub Jelinek <jakub@redhat.com>
1816
1817 PR c/71969
1818 * c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
1819 on GNU extern inline functions.
1820
35fddbd6 18212016-07-29 Marek Polacek <polacek@redhat.com>
1822
1823 PR c/71583
1824 * c-parser.c (c_parser_postfix_expression_after_paren_type): Also
1825 check expr.value.
1826
59c1507a 18272016-07-22 Uros Bizjak <ubizjak@gmail.com>
1828
1829 * c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
1830
d0f11d68 18312016-07-20 David Malcolm <dmalcolm@redhat.com>
1832
1833 * c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
1834 spellcheck-tree.h
1835 (best_macro_match): Likewise, converting from a typedef to a
1836 subclass.
1837 (find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
1838 (lookup_name_fuzzy): Update for change of best_macro_match to a
1839 subclass with a ctor that calls cpp_forall_identifiers.
1840
d208f6e6 18412016-07-20 David Malcolm <dmalcolm@redhat.com>
1842
1843 * c-decl.c (implicit_decl_warning): Update for conversion of
1844 return type of lookup_name_fuzzy to const char *.
1845 (undeclared_variable): Likewise.
1846 (lookup_name_fuzzy): Convert return type from tree to
1847 const char *.
1848 * c-parser.c (c_parser_declaration_or_fndef): Update for
1849 conversion of return type of lookup_name_fuzzy to const char *.
1850 (c_parser_parameter_declaration): Likewise.
1851
0ef9358d 18522016-07-15 Cesar Philippidis <cesar@codesourcery.com>
1853
1854 * c-parser.c (c_parser_oacc_declare): Don't scan for
1855 GOMP_MAP_POINTER.
1856 * c-typeck.c (handle_omp_array_sections): Mark data clauses with
1857 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
1858 zero-length subarrays.
1859
0dd7db3b 18602016-07-15 Jakub Jelinek <jakub@redhat.com>
1861
1862 PR c/71858
1863 * c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
1864 instead of FUZZY_LOOKUP_NAME.
1865 (lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
1866 FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.
1867
28413b15 18682016-07-14 Jakub Jelinek <jakub@redhat.com>
1869
1870 PR c/71858
1871 * c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.
1872
e9258aee 18732016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1874
1875 * c-parser.c (c_parser_generic_selection): Make type of variable
1876 auto_vec.
1877 (c_parser_omp_declare_simd): Likewise.
1878
57f91a55 18792016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1880
1881 * c-decl.c (struct c_struct_parse_info): Change member types
1882 from vec to auto_vec.
1883 (start_struct): Adjust.
1884 (finish_struct): Likewise.
1885
c364d0f3 18862016-07-02 Jakub Jelinek <jakub@redhat.com>
1887
1888 PR c/71719
1889 * c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
1890
44e775d8 18912016-06-29 Thomas Schwinge <thomas@codesourcery.com>
1892
1893 * c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
1894 Move pragma context checking into...
1895 (c_parser_omp_cancellation_point): ... here, and improve
1896 diagnostic messages.
1897 * c-typeck.c (c_finish_omp_cancel)
1898 (c_finish_omp_cancellation_point): Improve diagnostic messages.
1899
1af10ce6 19002016-06-29 Jakub Jelinek <jakub@redhat.com>
1901
1902 PR c/71685
1903 * c-typeck.c (c_build_qualified_type): Don't clear
1904 C_TYPE_INCOMPLETE_VARS for the main variant.
1905
19062016-06-28 Martin Sebor <msebor@redhat.com>
9c3ffbcb 1907
1908 PR c/71552
1909 * c-typeck.c (output_init_element): Diagnose incompatible types
1910 before non-constant initializers.
1911
6eb2402f 19122016-06-28 Jakub Jelinek <jakub@redhat.com>
1913
1914 * Make-lang.in: Don't cat ../stage_current if it does not exist.
1915
b4c71cbb 19162016-06-23 Andi Kleen <ak@linux.intel.com>
1917
1918 * Make-lang.in: Add support for autofdo.
1919
8469aece 19202016-06-22 David Malcolm <dmalcolm@redhat.com>
1921
1922 PR c/70339
1923 * c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
1924 (implicit_decl_warning): When issuing warnings for implicit
1925 declarations, attempt to provide a suggestion via
1926 lookup_name_fuzzy.
1927 (undeclared_variable): Likewise when issuing errors.
1928 (lookup_name_in_scope): Likewise.
1929 (struct edit_distance_traits<cpp_hashnode *>): New struct.
1930 (best_macro_match): New typedef.
1931 (find_closest_macro_cpp_cb): New function.
1932 (lookup_name_fuzzy): New function.
1933 * c-parser.c: Include gcc-rich-location.h.
1934 (c_token_starts_typename): Split out case CPP_KEYWORD into...
1935 (c_keyword_starts_typename): ...this new function.
1936 (c_parser_declaration_or_fndef): When issuing errors about
1937 missing "struct" etc, add a fixit. For other kinds of errors,
1938 attempt to provide a suggestion via lookup_name_fuzzy.
1939 (c_parser_parms_declarator): When looking ahead to detect typos in
1940 type names, also reject CPP_KEYWORD.
1941 (c_parser_parameter_declaration): When issuing errors about
1942 unknown type names, attempt to provide a suggestion via
1943 lookup_name_fuzzy.
1944 * c-tree.h (c_keyword_starts_typename): New prototype.
1945
e218d07f 19462016-06-20 Joseph Myers <joseph@codesourcery.com>
1947
1948 PR c/71601
1949 * c-typeck.c (build_conditional_expr): Return error_mark_node if
1950 c_common_type returns error_mark_node.
1951
92a44a68 19522016-06-19 Martin Sebor <msebor@redhat.com>
21897f47 1953
1954 PR c/69507
1955 * c-parser.c (c_parser_alignof_expression): Avoid diagnosing
1956 __alignof__ (expression).
1957
f0d77991 19582016-06-14 David Malcolm <dmalcolm@redhat.com>
1959
1960 * c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h.
1961
2a990300 19622016-06-14 David Malcolm <dmalcolm@redhat.com>
1963
1964 * c-typeck.c (build_component_ref): Simplify fixit code by
1965 using gcc_rich_location::add_fixit_misspelled_id.
1966 (set_init_label): Likewise.
1967
527790c1 19682016-06-13 David Malcolm <dmalcolm@redhat.com>
1969
1970 * c-parser.c (c_parser_initelt): Provide location of name for new
1971 location_t param of set_init_label.
1972 * c-tree.h (set_init_label): Add location_t param.
1973 * c-typeck.c (set_init_index): Add "fieldname_loc" location_t
1974 param and use it when issuing error messages about unrecognized
1975 field names. Attempt to provide a fixit hint if appropriate,
1976 otherwise update the error message to provide the type name.
1977
ccfa030f 19782016-06-10 Thomas Schwinge <thomas@codesourcery.com>
1979
1980 PR c/71381
1981 * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
1982 Loosen checking.
1983
732905bb 19842016-06-08 Martin Sebor <msebor@redhat.com>
1985 Jakub Jelinek <jakub@redhat.com>
1986
1987 PR c++/70507
1988 PR c/68120
1989 * c-typeck.c (convert_arguments): Don't promote last argument
1990 of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
1991
bafc7b1d 19922016-06-08 Marek Polacek <polacek@redhat.com>
1993
1994 PR c/71418
1995 * c-decl.c (grokdeclarator): Check TYPE_P.
1996
06e590e7 1997 PR c/71426
1998 * c-decl.c (get_parm_info): Don't crash on an assert on invalid
1999 code.
2000
7cfde92a 20012016-06-07 David Malcolm <dmalcolm@redhat.com>
2002
2003 * c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
2004 and structure element reference, capture the location of the
2005 element name token and pass it to build_component_ref.
2006 (c_parser_postfix_expression_after_primary): Likewise for
2007 structure element dereference.
2008 (c_parser_omp_variable_list): Likewise for
2009 OMP_CLAUSE_{_CACHE, MAP, FROM, TO},
2010 * c-tree.h (build_component_ref): Add location_t param.
2011 * c-typeck.c (build_component_ref): Add location_t param
2012 COMPONENT_LOC. Use it, if available, when issuing hints about
2013 mispelled member names to provide a fixit replacement hint.
2014
61f1f80c 20152016-06-06 Marek Polacek <polacek@redhat.com>
2016
2017 PR c/71362
2018 * c-parser.c (c_parser_direct_declarator): Set location.
2019
e4b92538 20202016-06-06 Marek Polacek <polacek@redhat.com>
2021
2022 * c-typeck.c (comptypes_internal): Handle comparisons of
2023 INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes. Don't check
2024 TYPE_REF_CAN_ALIAS_ALL.
2025
2234363c 20262016-06-03 Chung-Lin Tang <cltang@codesourcery.com>
2027
2028 * c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
2029 arguments as addressable when async clause exists.
2030
b6431756 20312016-05-30 Jakub Jelinek <jakub@redhat.com>
2032
2033 PR c++/71349
2034 * c-parser.c (c_parser_omp_for): Don't disallow nowait clause
2035 when combined with target construct.
2036
6feab9ce 20372016-05-26 Jakub Jelinek <jakub@redhat.com>
2038
2039 * c-parser.c (c_parser_omp_clause_schedule): Warn if
2040 OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
2041
2c995da9 20422016-05-25 Marek Polacek <polacek@redhat.com>
2043
2044 PR c/71265
2045 * c-decl.c (c_make_fname_decl): Don't check seen_error.
2046
abfbb5b5 2047 PR c/71266
2048 * c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.
2049
6d6a3fc3 20502016-05-24 Cesar Philippidis <cesar@codesourcery.com>
2051
2052 * c-parser.c (c_parser_oacc_declare): Add support for
2053 GOMP_MAP_FIRSTPRIVATE_POINTER.
2054 * c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
2055 argument with enum c_omp_region_type ort.
2056 (handle_omp_array_sections): Likewise. Update call to
2057 handle_omp_array_sections_1.
2058 (c_finish_omp_clauses): Add specific errors and warning messages for
2059 OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update
2060 call to handle_omp_array_sections.
2061
c9d624bd 20622016-05-24 Thomas Schwinge <thomas@codesourcery.com>
2063
2064 * c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
2065
7345b977 20662016-05-24 Richard Biener <rguenther@suse.de>
2067
2068 PR middle-end/70434
2069 PR c/69504
2070 * c-typeck.c (build_array_ref): Do not complain about indexing
2071 non-lvalue vectors. Adjust for function name change.
2072
8bdfbc08 20732016-05-20 Martin Sebor <msebor@redhat.com>
2074
2075 PR c/71115
2076 * c-typeck.c (error_init): Use
2077 expansion_point_location_if_in_system_header.
2078 (warning_init): Same.
2079
97c71d71 20802016-05-19 David Malcolm <dmalcolm@redhat.com>
2081
2082 PR c/71171
2083 * c-parser.c (c_parser_generic_selection): Use c_expr::set_error
2084 in error-handling.
2085 (c_parser_postfix_expression): Likewise.
2086 * c-tree.h (c_expr::set_error): New method.
2087 * c-typeck.c (parser_build_binary_op): In error-handling, ensure
2088 that result's range is initialized.
2089
e68d7b49 20902016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
2091
2092 * c-typeck.c (parser_build_unary_op): Fix formatting.
2093
624115b4 20942016-05-16 Matthew Wahab <matthew.wahab@arm.com>
2095
2096 * c-decl.c (grokdeclarator): Remove errmsg and use of
2097 targetm.invalid_return_type.
2098 (grokparms): Remove errmsg and use of
2099 targetm.invalid_parameter_type.
2100
90c88567 21012016-05-13 Joseph Myers <joseph@codesourcery.com>
2102
2103 * c-decl.c (grokdeclarator): For C11, discard qualifiers on
2104 function return type.
2105
22a3f7bd 21062016-05-12 Marek Polacek <polacek@redhat.com>
2107
2108 PR c/70756
2109 * c-decl.c (build_compound_literal): Pass LOC down to
2110 c_incomplete_type_error.
2111 * c-tree.h (require_complete_type): Adjust declaration.
2112 (c_incomplete_type_error): Likewise.
2113 * c-typeck.c (require_complete_type): Add location parameter, pass it
2114 down to c_incomplete_type_error.
2115 (c_incomplete_type_error): Add location parameter, pass it down to
2116 error_at.
2117 (build_component_ref): Pass location down to c_incomplete_type_error.
2118 (default_conversion): Pass location down to require_complete_type.
2119 (build_array_ref): Likewise.
2120 (build_function_call_vec): Likewise.
2121 (convert_arguments): Likewise.
2122 (build_unary_op): Likewise.
2123 (build_c_cast): Likewise.
2124 (build_modify_expr): Likewise.
2125 (convert_for_assignment): Likewise.
2126 (c_finish_omp_clauses): Likewise.
2127
54c4d22e 21282016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
2129
2130 PR c/43651
2131 * c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
2132 is enabled.
2133 * c-errors.c (pedwarn_c90): Return true if warned.
2134 * c-tree.h (pedwarn_c90): Change return type to bool.
2135 (enum c_declspec_word): Add new enumerator cdw_atomic.
2136
7f8012a5 21372016-05-11 Marek Polacek <polacek@redhat.com>
2138
2139 PR c++/71024
2140 * c-decl.c (diagnose_mismatched_decls): Factor out code to
2141 diagnose_mismatched_attributes and call it.
2142
3fa82609 21432016-05-10 Marek Polacek <polacek@redhat.com>
2144
2145 PR c/70255
2146 * c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute
2147 on a declaration following the definition.
2148
871164c4 21492016-05-05 Jakub Jelinek <jakub@redhat.com>
2150
2151 * c-parser.c (c_parser_switch_statement): Add IF_P argument,
2152 parse it through to c_parser_c99_block_statement.
2153 (c_parser_statement_after_labels): Adjust c_parser_switch_statement
2154 caller.
2155
1d52c456 21562016-05-04 Marek Polacek <polacek@redhat.com>
2157
2158 * c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
2159 OPT_Wdangling_else.
2160
a64030fe 21612016-05-04 Marek Polacek <polacek@redhat.com>
2162
2163 PR c/48778
2164 * c-typeck.c (build_binary_op): Don't issue -Waddress warnings
2165 for macro expansions.
2166
5d4db8ef 21672016-05-03 Marek Polacek <polacek@redhat.com>
2168
2169 PR c/70859
2170 * c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
2171 check_builtin_function_arguments.
2172
0bd2fc6e 21732016-05-03 Richard Biener <rguenther@suse.de>
2174
2175 * Make-lang.in (cc1-checksum.c): For stage-final re-use
2176 the checksum from the previous stage.
2177
b5e88f74 21782016-05-02 Cesar Philippidis <cesar@codesourcery.com>
2179
2180 * c-parser.c (c_parser_oacc_all_clauses): Update call to
2181 c_finish_omp_clauses.
2182 (c_parser_omp_all_clauses): Likewise.
2183 (c_parser_oacc_cache): Likewise.
2184 (c_parser_oacc_loop): Likewise.
2185 (omp_split_clauses): Likewise.
2186 (c_parser_omp_declare_target): Likewise.
2187 (c_parser_cilk_all_clauses): Likewise.
2188 (c_parser_cilk_for): Likewise.
2189 * c-typeck.c (c_finish_omp_clauses): Replace bool arguments
2190 is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.
2191
dd185f6e 21922016-05-02 Marek Polacek <polacek@redhat.com>
2193
2194 PR c/70851
2195 * c-decl.c (grokdeclarator): Diagnose when array's size has an
2196 incomplete type.
2197
4d0a8bac 21982016-04-29 Cesar Philippidis <cesar@codesourcery.com>
2199
2200 PR middle-end/70626
2201 * c-parser.c (c_parser_oacc_loop): Don't augment mask with
2202 OACC_LOOP_CLAUSE_MASK.
2203 (c_parser_oacc_kernels_parallel): Update call to
2204 c_oacc_split_loop_clauses.
2205
d215eeca 22062016-04-28 Andrew MacLeod <amacleod@redhat.com>
2207
2208 * c-array-notation.c (fix_builtin_array_notation_fn): Fix final
2209 argument to build_modify_expr in two cases.
2210
40385231 22112016-04-27 Bernd Schmidt <bschmidt@redhat.com>
2212
2213 * c-parser.c (c_parser_postfix_expression_after_primary): Call
2214 warn_for_memset instead of warning directly here.
2215
fa20ebd3 22162016-04-26 Marek Polacek <polacek@redhat.com>
2217
2218 PR c/67784
2219 * c-parser.c (c_parser_maybe_reclassify_token): New function factored
2220 out of ...
2221 (c_parser_for_statement): ... here.
2222 (c_parser_if_statement): Use it.
2223 (c_parser_switch_statement): Use it.
2224 (c_parser_while_statement): Use it.
2225
9db47803 2226 PR c/70791
2227 * c-decl.c (pushdecl): Pass LOCUS down to warning.
2228
70574e60 22292016-04-20 Ilya Verbin <ilya.verbin@intel.com>
2230
2231 PR c++/69363
2232 * c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
2233 instead of c_finish_cilk_clauses.
2234 * c-tree.h (c_finish_omp_clauses): Add new default argument.
2235 * c-typeck.c (c_finish_omp_clauses): Add new argument. Allow
2236 floating-point variables in the linear clause for Cilk Plus.
2237
5d4b30ea 22382016-04-18 Michael Matz <matz@suse.de>
2239
2240 * c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
2241 (grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.
2242
eac243e7 22432016-04-15 Marek Polacek <polacek@redhat.com>
2244
2245 PR c/70671
2246 * c-typeck.c (build_unary_op): Pass location down to error and
2247 warning call.
2248
b4ba8358 22492016-04-15 Jakub Jelinek <jakub@redhat.com>
2250
2251 PR c/70436
2252 * c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
2253 where needed.
2254 (c_parser_external_declaration, c_parser_struct_or_union_specifier,
2255 c_parser_parameter_declaration, c_parser_compound_statement_nostart,
2256 c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
2257 Adjust c_parser_pragma callers.
2258 (c_parser_statement_after_labels): Likewise. Adjust c_parser_cilk_for
2259 caller.
2260 (c_parser_omp_structured_block): Add IF_P argument, pass it down to
2261 c_parser_statement.
2262 (c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
2263 c_parser_oacc_kernels_parallel, c_parser_omp_critical,
2264 c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
2265 c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
2266 c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
2267 c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
2268 c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
2269 c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
2270 down where needed.
2271 (c_parser_omp_for_loop): Likewise. Clear IF_P if nbraces.
2272 (c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
2273 calls.
2274
0241e4dc 22752016-04-13 Marek Polacek <polacek@redhat.com>
2276
2277 PR c/70436
2278 * c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
2279 adjust callers.
2280 (c_parser_statement): Likewise.
2281 (c_parser_c99_block_statement): Likewise.
2282 (c_parser_while_statement): Likewise.
2283 (c_parser_for_statement): Likewise.
2284 (c_parser_if_body): Don't set IF_P here.
2285 (c_parser_if_statement): Add IF_P argument. Set IF_P here. Warn
2286 about dangling else here.
2287 * c-tree.h (c_finish_if_stmt): Adjust declaration.
2288 * c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter. Don't
2289 warn about dangling else here.
2290
c4f5465d 22912016-04-04 Marek Polacek <polacek@redhat.com>
2292
2293 PR c/70307
2294 * c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.
2295
7952b661 22962016-03-31 Marek Polacek <polacek@redhat.com>
2297
2298 PR c/70297
2299 * c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
2300
5539bc70 23012016-03-18 David Malcolm <dmalcolm@redhat.com>
2302
2303 PR c/70281
2304 * c-parser.c (c_parser_postfix_expression): Set the source range
2305 for uses of "__builtin_types_compatible_p".
2306
29a514fa 23072016-03-17 Jakub Jelinek <jakub@redhat.com>
2308
2309 PR c/70280
2310 * c-typeck.c (composite_type): Don't count void_list_node
2311 into len, if the list is terminated by void_list_node, start
2312 with void_list_node instead of NULL for newargs. Stop
2313 at void_list_node.
2314
462ca422 23152016-03-16 Marek Polacek <polacek@redhat.com>
2316
2317 PR c/70093
2318 * c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
2319 nested functions returning VM types.
2320
27dcb7a8 23212016-03-09 Cesar Philippidis <cesar@codesourcery.com>
2322
2323 * c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
2324 when calling c_finish_omp_clauses.
2325
2d1d2e55 23262016-03-04 Bernd Schmidt <bschmidt@redhat.com>
2327
2328 PR c/69824
2329 * c-decl.c (get_parm_info): Don't queue implicit function declarations
2330 for later.
2331
6560d1ad 23322016-03-04 Marek Polacek <polacek@redhat.com>
2333
2334 PR c/69798
2335 * c-parser.c (c_parser_postfix_expression): Call
2336 c_parser_cast_expression rather than c_parser_postfix_expression.
2337
40e9ce2d 23382016-03-01 Jakub Jelinek <jakub@redhat.com>
2339
2340 PR c/69796
2341 PR c/69974
2342 * c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
2343 of incomplete decls to error_mark_node.
2344
f0ea75d1 23452016-02-24 Marek Polacek <polacek@redhat.com>
2346
2347 PR c/69819
2348 * c-decl.c (finish_decl): Don't update the copy of the type of a
2349 different decl type.
2350
d41ab738 23512016-02-23 Jakub Jelinek <jakub@redhat.com>
2352
2353 PR objc/69844
2354 * c-parser.c (c_parser_for_statement): Properly handle ObjC classes
2355 in id_kind reclassification.
2356
7675e968 23572016-02-16 Jakub Jelinek <jakub@redhat.com>
2358
2359 PR c/69835
2360 * c-typeck.c (build_binary_op): Revert 2015-09-09 change.
2361
28072426 23622016-02-16 James Norris <jnorris@codesourcery.com>
2363
2364 PR c/64748
2365 * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
2366
74a4140f 23672016-02-12 Bernd Schmidt <bschmidt@redhat.com>
2368
7c25ed5c 2369 * c-decl.c (build_null_declspecs): Zero the entire struct.
2370
74a4140f 2371 PR c/69522
2372 * c-parser.c (c_parser_braced_init): New arg outer_obstack. All
2373 callers changed. If nested_p is true, use it to call
2374 finish_implicit_inits.
2375 * c-tree.h (finish_implicit_inits): Declare.
2376 * c-typeck.c (finish_implicit_inits): New function. Move code
2377 from ...
2378 (push_init_level): ... here.
2379 (set_designator, process_init_element): Call finish_implicit_inits.
2380
40b38ace 23812016-02-11 Jakub Jelinek <jakub@redhat.com>
2382
2383 PR c/69768
2384 * c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
2385 arguments for -Waddress warning.
2386
6b098e91 23872016-02-04 Jakub Jelinek <jakub@redhat.com>
2388
2389 PR c/69669
2390 * c-decl.c (finish_enum): When honoring mode attribute,
2391 make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
2392
ff5e28e9 23932016-01-29 Jakub Jelinek <jakub@redhat.com>
2394
2395 PR debug/69518
2396 * c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
2397 all type variants, not just TYPE_MAIN_VARIANT.
2398
78e516eb 23992016-01-27 Jakub Jelinek <jakub@redhat.com>
2400
2401 PR debug/66869
2402 * c-decl.c (c_write_global_declarations_1): Warn with
2403 warn_unused_function if static prototype without definition
2404 is not C_DECL_USED.
2405
fee5e491 24062016-01-27 Marek Polacek <polacek@redhat.com>
2407
2408 PR c/68062
2409 * c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
2410 to unsigned, if needed. Add -Wsign-compare warning.
2411
9bbfd060 24122016-01-26 Jakub Jelinek <jakub@redhat.com>
2413
2414 PR tree-optimization/69483
2415 * c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.
2416
6ebc6587 24172016-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16d4186f 2418
2419 PR c/24293
2420 * c-tree.h (incomplete_record_decls): Declare.
2421 * c-parser.c (incomplete_record_decls): Define.
2422 (c_parser_translation_unit): Iterate through incomplete_record_decls and
2423 report error if any decl has zero size.
2424 * c-decl.c (finish_decl): Append static decl with incomplete struct/union
2425 or enum type to incomplete_record_decls.
2426
4c39e3a5 24272016-01-14 Tom de Vries <tom@codesourcery.com>
2428
2429 PR tree-optimization/68773
2430 * c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
2431 set force_output.
2432
77f35cec 24332016-01-14 Marek Polacek <polacek@redhat.com>
2434
2435 PR c/69262
2436 * c-decl.c (grokdeclarator): Provide more information for invalid
2437 array declarations.
2438
d74214f3 24392016-01-06 David Malcolm <dmalcolm@redhat.com>
2440
2441 * c-parser.c (c_parser_unary_expression): For dereferences, build
2442 a combined location before calling build_indirect_ref, so that
2443 error reports cover the full range, manually updating the c_expr
2444 src_range.
2445
be3c9981 24462016-01-06 Marek Polacek <polacek@redhat.com>
2447
2448 PR sanitizer/69099
2449 * c-convert.c (convert) [INTEGER_TYPE]: Drop ARG. Don't pass ARG to
2450 ubsan_instrument_float_cast. Fold EXPR. Use NULL_TREE instead of
2451 NULL.
2452
f1717362 24532016-01-04 Jakub Jelinek <jakub@redhat.com>
2454
2455 Update copyright years.
2456
d7d6a3ab 24572016-01-04 Marek Polacek <polacek@redhat.com>
2458
2459 PR c/68908
2460 * c-typeck.c (build_atomic_assign): Improve commentary. Add
2461 optimization to use __atomic_fetch_* built-in if possible.
2462
9d5fd7c6 24632015-12-23 Thomas Schwinge <thomas@codesourcery.com>
2464
2465 * c-parser.c (c_parser_oacc_clause_use_device): Merge function
2466 into...
2467 (c_parser_omp_clause_use_device_ptr): ... this function. Adjust
2468 all users.
2469
37e2d32f 24702015-12-22 Marek Polacek <polacek@redhat.com>
2471
2472 PR c/69002
2473 * c-typeck.c (build_component_ref): Warn when acessing elements of
2474 atomic structures or unions.
2475
c0bf500c 24762015-12-21 David Malcolm <dmalcolm@redhat.com>
2477
2478 * c-typeck.c: Include "gcc-rich-location.h".
2479 (build_binary_op): In the two places that call binary_op_error,
2480 create a gcc_rich_location and populate it with the location of
2481 the binary op and its two operands.
2482
b9f9586a 24832015-12-16 David Malcolm <dmalcolm@redhat.com>
2484
2485 * c-parser.c (c_parser_statement_after_labels): When calling
2486 c_finish_return, Use the return expression's location if it has
2487 one, falling back to the location of the first token within it.
2488 * c-typeck.c (c_finish_return): When issuing warnings about
2489 the incorrect presence/absence of a return value, issue a note
2490 showing the declaration of the function.
2491
dbd79382 24922015-12-16 David Malcolm <dmalcolm@redhat.com>
2493
2494 * c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
2495 to 4.
2496 (c_parser_peek_nth_token): New function.
2497 (c_parser_peek_conflict_marker): New function.
2498 (c_parser_error): Detect conflict markers and report them as such.
2499
e2093e02 25002015-12-16 David Malcolm <dmalcolm@redhat.com>
2501
2502 * c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
2503 to preserve range information for the primary expression
2504 in the call to c_parser_postfix_expression_after_primary.
2505
b49f1fbb 25062015-12-16 David Malcolm <dmalcolm@redhat.com>
2507
2508 * c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
2509 expression location, falling back on the first token location,
2510 rather than always using the latter.
2511
1d65bac2 25122015-12-16 Marek Polacek <polacek@redhat.com>
2513
2514 PR c/64637
2515 * c-typeck.c (c_process_expr_stmt): Use location of the expression if
2516 available.
2517
75e722a6 25182015-12-15 Marek Polacek <polacek@redhat.com>
2519
2520 PR c/68907
2521 * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
2522 artificial decl.
2523
7063d45b 25242015-12-08 David Malcolm <dmalcolm@redhat.com>
2525
2526 * c-parser.c (c_parser_alignof_expression): Capture location of
2527 closing parenthesis (if any), or of end of unary expression, and
2528 use it to build a src_range for the expression.
2529
f73b4782 25302015-12-08 David Malcolm <dmalcolm@redhat.com>
2531
2532 PR c/68757
2533 * c-parser.c (c_parser_get_builtin_args): Add
2534 "out_close_paren_loc" param, and write back to it.
2535 (c_parser_postfix_expression): Capture the closing
2536 parenthesis location for RID_CHOOSE_EXPR,
2537 RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
2538 RID_BUILTIN_SHUFFLE and use it to set the source range
2539 for such expressions; within RID_BUILTIN_COMPLEX set
2540 the underlying location.
2541
1b062945 25422015-12-07 Marek Polacek <polacek@redhat.com>
2543
2544 PR c/68668
2545 * c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
2546 TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.
2547
a4ab54ac 25482015-12-04 Eric Botcazou <ebotcazou@adacore.com>
2549
2550 * c-tree.h (c_build_va_arg): Adjust prototype.
2551 * c-parser.c (c_parser_postfix_expression): Adjust call to above.
2552 * c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
2553 parameter, adjust throughout and issue an error if EXPR is a component
2554 with reverse storage order.
2555
da562e32 25562015-12-02 Jason Merrill <jason@redhat.com>
2557
2558 * c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
2559 (c_fully_fold_internal, decl_constant_value_for_optimization):
2560 Move from c-common.c.
2561 * c-tree.h: Declare decl_constant_value_for_optimization.
2562 * Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
2563
89f16034 25642015-12-02 Joseph Myers <joseph@codesourcery.com>
2565
2566 PR c/68162
2567 * c-decl.c (grokdeclarator): Set first_non_attr_kind before
2568 following link from declarator to next declarator. Track original
2569 qualified type and pass it to c_build_qualified_type.
2570 * c-typeck.c (c_build_qualified_type): Add arguments
2571 orig_qual_type and orig_qual_indirect.
2572
2a7545d5 25732015-12-02 Thomas Schwinge <thomas@codesourcery.com>
2574
2575 * c-parser.c (c_parser_omp_clause_name)
2576 (c_parser_oacc_all_clauses): Alphabetical sorting.
2577
ad80582d 25782015-12-02 Jakub Jelinek <jakub@redhat.com>
2579
2580 PR c/68533
2581 * c-decl.c (get_parm_info): Use b->locus instead of input_location
2582 for diagnostics.
2583
571b3486 25842015-12-01 Julian Brown <julian@codesourcery.com>
2585 Cesar Philippidis <cesar@codesourcery.com>
2586 James Norris <James_Norris@mentor.com>
2587
2588 * c-parser.c (c_parser_omp_clause_name): Add use_device support.
2589 (c_parser_oacc_clause_use_device): New function.
2590 (c_parser_oacc_all_clauses): Add use_device support.
2591 (OACC_HOST_DATA_CLAUSE_MASK): New macro.
2592 (c_parser_oacc_host_data): New function.
2593 (c_parser_omp_construct): Add host_data support.
2594 * c-tree.h (c_finish_oacc_host_data): Add prototype.
2595 * c-typeck.c (c_finish_oacc_host_data): New function.
2596 (c_finish_omp_clauses): Add use_device support.
2597
c4848393 25982015-11-29 Jan Hubicka <hubicka@ucw.cz>
2599
2600 PR c/67106
2601 * c-decl.c: Set TYPE_PACKED in variants.
2602
d4e328e9 26032015-11-27 Martin Liska <mliska@suse.cz>
2604
2605 PR c++/68312
2606 * c-array-notation.c (fix_builtin_array_notation_fn):
2607 Use release_vec_vec instead of vec::release.
2608 (build_array_notation_expr): Likewise.
2609 (fix_conditional_array_notations_1): Likewise.
2610 (fix_array_notation_expr): Likewise.
2611 (fix_array_notation_call_expr): Likewise.
2612
c5e4f591 26132015-11-27 Jakub Jelinek <jakub@redhat.com>
2614
2615 PR c/63326
2616 * c-parser.c (c_parser_compound_statement_nostart): If
2617 last_label is true, use pragma_stmt instead of pragma_compound
2618 as second c_parser_pragma argument.
2619 (c_parser_omp_ordered, c_parser_omp_target_update,
2620 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
2621 false as second argument to c_parser_skip_to_pragma_eol after
2622 diagnosing standalone directives used in pragma_stmt context.
2623
c954a5bd 26242015-11-24 Ilya Verbin <ilya.verbin@intel.com>
2625
2626 * c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
2627 with "if (ENABLE_OFFLOADING)".
2628
daebf4f3 26292015-11-23 David Malcolm <dmalcolm@redhat.com>
2630
2631 PR objc/68438
2632 * c-parser.c (c_parser_postfix_expression): Set up source ranges
2633 for various Objective-C constructs: Class.name syntax,
2634 @selector(), @protocol(), @encode(), and [] message syntax.
2635
734caf84 26362015-11-20 David Malcolm <dmalcolm@redhat.com>
2637
2638 PR 62314
2639 * c-typeck.c (should_suggest_deref_p): New function.
2640 (build_component_ref): Special-case POINTER_TYPE when
2641 generating a "not a structure of union" error message, and
2642 suggest a "->" rather than a ".", providing a fix-it hint.
2643
11d8dd6f 26442015-11-19 David Malcolm <dmalcolm@redhat.com>
2645
2646 * c-typeck.c (lookup_field_fuzzy): Move determination of closest
2647 candidate into a new function, find_closest_identifier.
2648
62efaf6b 26492015-11-19 Marek Polacek <polacek@redhat.com>
2650
2651 PR c/68412
2652 * c-typeck.c (parser_build_binary_op): Properly handle
2653 C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.
2654
9dfffd6d 26552015-11-17 David Malcolm <dmalcolm@redhat.com>
2656
2657 * c-parser.c (set_c_expr_source_range): Bulletproof both
2658 overloaded implementations against NULL expr->value.
2659 (c_parser_braced_init): Set src_range for "ret" to a sane pair of
2660 values.
2661 (c_parser_unary_expression): Likewise when handling addresses of
2662 labels.
2663 (c_parser_postfix_expression): Likewise for statement expressions,
2664 for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
2665 __builtin_va_arg, and for __builtin_offset_of.
2666 (c_parser_postfix_expression_after_paren_type): Initialize expr's
2667 src_range using the range of the braced initializer.
2668 (c_parser_transaction_expression): Set src_range for "ret" to a
2669 sane pair of values.
2670
c58a4cfd 26712015-11-16 Kirill Yukhin <kirill.yukhin@intel.com>
2672
2673 * c-parser.c (c_finish_omp_declare_simd): Look for
2674 "simd" attribute as well. Update error message.
2675
5f3001a9 26762015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2677
2678 * c-parser.c (c_parser_omp_declare_target): Adjust.
2679
a9833286 26802015-11-14 Jakub Jelinek <jakub@redhat.com>
2681
2682 * c-typeck.c (c_finish_omp_clauses): Don't mark
2683 GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
2684
ef61516b 26852015-11-14 Marek Polacek <polacek@redhat.com>
2686
2687 * c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
2688 * c-typeck.c: Likewise.
2689
a96cefb2 26902015-11-13 David Malcolm <dmalcolm@redhat.com>
2691
2692 * c-decl.c (warn_defaults_to): Pass line_table to
2693 rich_location ctor.
2694 * c-errors.c (pedwarn_c99): Likewise.
2695 (pedwarn_c90): Likewise.
2696 * c-parser.c (set_c_expr_source_range): New functions.
2697 (c_token::get_range): New method.
2698 (c_token::get_finish): New method.
2699 (c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
2700 based on the range from the start of the LHS to the end of the
2701 RHS.
2702 (c_parser_conditional_expression): Likewise, based on the range
2703 from the start of the cond.value to the end of exp2.value.
2704 (c_parser_binary_expression): Call set_c_expr_source_range on
2705 the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
2706 (c_parser_cast_expression): Call set_c_expr_source_range on ret
2707 based on the cast_loc through to the end of the expr.
2708 (c_parser_unary_expression): Likewise, based on the
2709 op_loc through to the end of op.
2710 (c_parser_sizeof_expression) Likewise, based on the start of the
2711 sizeof token through to either the closing paren or the end of
2712 expr.
2713 (c_parser_postfix_expression): Likewise, using the token range,
2714 or from the open paren through to the close paren for
2715 parenthesized expressions.
2716 (c_parser_postfix_expression_after_primary): Likewise, for
2717 various kinds of expression.
2718 * c-tree.h (struct c_expr): Add field "src_range".
2719 (c_expr::get_start): New method.
2720 (c_expr::get_finish): New method.
2721 (set_c_expr_source_range): New decls.
2722 * c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
2723 on ret for prefix unary ops.
2724 (parser_build_binary_op): Likewise, running from the start of
2725 arg1.value through to the end of arg2.value.
2726
7a810b2f 27272015-11-13 Marek Polacek <polacek@redhat.com>
2728
2729 PR c/68320
2730 * c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.
2731
b67f0560 27322015-11-13 David Malcolm <dmalcolm@redhat.com>
2733
2734 * c-typeck.c: Include spellcheck.h.
2735 (lookup_field_fuzzy_find_candidates): New function.
2736 (lookup_field_fuzzy): New function.
2737 (build_component_ref): If the field was not found, try using
2738 lookup_field_fuzzy and potentially offer a suggestion.
2739
2fc5e987 27402015-11-12 James Norris <jnorris@codesourcery.com>
2741 Joseph Myers <joseph@codesourcery.com>
2742
2743 * c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
2744 (c_parser_omp_clause_name): Handle 'device_resident' clause.
2745 (c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
2746 and PRAGMA_OMP_CLAUSE_LINK.
2747 (c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
2748 and PRAGMA_OACC_CLAUSE_LINK.
2749 (OACC_DECLARE_CLAUSE_MASK): New definition.
2750 (c_parser_oacc_declare): New function.
2751
28a70e29 27522015-11-12 Marek Polacek <polacek@redhat.com>
2753
2754 PR c/67784
2755 * c-parser.c (c_parser_for_statement): Reclassify the token in
2756 a correct scope.
2757
81b1b2a8 27582015-11-11 Marek Polacek <polacek@redhat.com>
2759
2760 PR c/68107
2761 PR c++/68266
2762 * c-decl.c (grokdeclarator): Call valid_array_size_p. Remove code
2763 checking the size of an array.
2764
6e803544 27652015-11-11 Andrew MacLeod <amacleod@redhat.com>
2766
2767 * c-array-notation.c: Remove unused header files.
2768 * c-aux-info.c: Likewise.
2769 * c-convert.c: Likewise.
2770 * c-decl.c: Likewise.
2771 * c-errors.c: Likewise.
2772 * c-lang.c: Likewise.
2773 * c-objc-common.c: Likewise.
2774 * c-parser.c: Likewise.
2775 * c-typeck.c: Likewise.
2776 * gccspec.c: Likewise.
2777
a1b7fe4b 27782015-11-09 Thomas Schwinge <thomas@codesourcery.com>
2779 Cesar Philippidis <cesar@codesourcery.com>
2780 James Norris <jnorris@codesourcery.com>
2781 Julian Brown <julian@codesourcery.com>
2782 Nathan Sidwell <nathan@codesourcery.com>
2783
2784 c/
2785 * c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
2786 routine arg.
2787 (c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
2788 (c_parser_pragma): Parse 'acc routine'.
2789 (OACC_ROUTINE_CLAUSE_MARK): Define.
2790 (c_parser_oacc_routine, (c_finish_oacc_routine): New.
2791
7758d608 27922015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
2793
2794 PR debug/67192
2795 * c-typeck.c (c_finish_loop): For unconditional loops, set the
2796 location of the backward-goto to the start of the loop body.
2797
c2bf2fb2 27982015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
2799
2800 PR debug/67192
2801 * c-parser.c (c_parser_while_statement): Finish the loop before
2802 parsing ahead for misleading indentation.
2803 (c_parser_for_statement): Likewise.
2804
292237f3 28052015-11-08 Eric Botcazou <ebotcazou@adacore.com>
2806
2807 * c-decl.c (finish_struct): If the structure has reverse storage
2808 order, rewrite the type of array fields with scalar component. Call
2809 maybe_apply_pragma_scalar_storage_order on entry.
2810 * c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs. Issue
2811 errors on bit-fields and reverse SSO here and not...
2812 (c_mark_addressable): ...here.
2813 (output_init_element): Adjust call to initializer_constant_valid_p.
2814 (c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.
2815
f0479000 28162015-11-06 David Malcolm <dmalcolm@redhat.com>
2817
2818 * c-decl.c (warn_defaults_to): Update for change in signature
2819 of diagnostic_set_info.
2820 * c-errors.c (pedwarn_c99): Likewise.
2821 (pedwarn_c90): Likewise.
2822 * c-objc-common.c (c_tree_printer): Update for new "caret_p" param
2823 for textinfo::set_location.
2824
ef014f95 28252015-11-05 Cesar Philippidis <cesar@codesourcery.com>
2826 Thomas Schwinge <thomas@codesourcery.com>
2827 James Norris <jnorris@codesourcery.com>
2828
2829 * c-parser.c (c_parser_omp_clause_name): Add support for
2830 PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
2831 (c_parser_omp_clause_default): Add is_oacc argument. Handle
2832 default(none) in OpenACC.
2833 (c_parser_oacc_shape_clause): Allow pointer variables as gang static
2834 arguments.
2835 (c_parser_oacc_clause_tile): New function.
2836 (c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
2837 OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
2838 (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
2839 TILE}.
2840 (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
2841 (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
2842 FIRSTPRIVATE}.
2843 (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
2844 (c_parser_oacc_update): Update the error message for missing clauses.
2845 * c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
2846 and OMP_CLAUSE_INDEPENDENT.
2847
f480ca9a 28482015-11-05 Marek Polacek <polacek@redhat.com>
2849
2850 PR c/68090
2851 * c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
2852 deal with pre-evaluation on invalid types.
2853
9561765e 28542015-11-05 Jakub Jelinek <jakub@redhat.com>
2855 Ilya Verbin <ilya.verbin@intel.com>
2856
2857 * c-parser.c: Include context.h and gimple-expr.h.
2858 (c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
2859 monotonic together with nonmonotonic.
2860 (c_parser_omp_for_loop): Call c_omp_check_loop_iv. Call add_stmt here.
2861 (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
2862 (c_parser_omp_target_data, c_parser_omp_target_enter_data,
2863 c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
2864 (c_parser_omp_target): Likewise. Evaluate num_teams and thread_limit
2865 expressions on combined target teams before the target.
2866 (c_parser_omp_declare_target): If decl has "omp declare target" or
2867 "omp declare target link" attribute, and cgraph or varpool node already
2868 exists, then set corresponding flags. Call c_finish_omp_clauses
2869 in the parenthesized extended-list syntax case.
2870 * c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
2871 declare target.
2872 * c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
2873 on OMP_CLAUSE_REDUCTION array sections.
2874 (handle_omp_array_sections): Encode low-bound into the MEM_REF, either
2875 into the constant offset, or for variable low-bound using
2876 POINTER_PLUS_EXPR. For structure element based array sections use
2877 GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
2878 (c_finish_omp_clauses): Drop generic_field_head, structure
2879 elements are now always mapped even as array section bases,
2880 diagnose same var in data sharing and mapping clauses. Diagnose if
2881 linear step on declare simd is neither a constant nor a uniform
2882 parameter. Look through POINTER_PLUS_EXPR for array section
2883 reductions. Diagnose the same var or function appearing multiple
2884 times on the same directive. Fix up wording for the to clause if t
2885 is neither a FUNCTION_DECL nor a VAR_DECL. Diagnose nonmonotonic
2886 modifier on kinds other than dynamic or guided or nonmonotonic
2887 modifier together with ordered clause.
2888
9e10bfb7 28892015-11-03 Thomas Schwinge <thomas@codesourcery.com>
2890 Chung-Lin Tang <cltang@codesourcery.com>
2891
2892 * c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
2893
4cba6f60 28942015-10-29 Andrew MacLeod <amacleod@redhat.com>
2895
2896 * c-array-notation.c: Reorder #include's and remove duplicates.
2897 * c-aux-info.c: Likewise.
2898 * c-convert.c: Likewise.
2899 * c-decl.c: Likewise.
2900 * c-errors.c: Likewise.
2901 * c-lang.c: Likewise.
2902 * c-objc-common.c: Likewise.
2903 * c-parser.c: Likewise.
2904 * c-typeck.c: Likewise.
2905
7b15d957 29062015-10-26 Jim Wilson <jim.wilson@linaro.org>
2907
2908 PR debug/66068
2909 * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
2910 after calling build_qualified_type.
2911
62c48328 29122015-10-27 Cesar Philippidis <cesar@codesourcery.com>
2913 Thomas Schwinge <thomas@codesourcery.com>
2914 James Norris <jnorris@codesourcery.com>
2915 Joseph Myers <joseph@codesourcery.com>
2916 Julian Brown <julian@codesourcery.com>
2917 Bernd Schmidt <bschmidt@redhat.com>
2918
2919 * c-parser.c (c_parser_oacc_shape_clause): New.
2920 (c_parser_oacc_simple_clause): New.
2921 (c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
2922 (OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.
2923
2c4c8725 29242015-10-27 Thomas Schwinge <thomas@codesourcery.com>
2925 James Norris <jnorris@codesourcery.com>
2926 Cesar Philippidis <cesar@codesourcery.com>
2927
2928 PR c/64765
2929 PR c/64880
2930 * c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
2931 parameters, and handle these. Adjust all users.
2932 (c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
2933 into...
2934 (c_parser_oacc_kernels_parallel): ... this new function. Adjust
2935 all users.
2936 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
2937 declare functions.
2938 (c_finish_omp_construct): Declare function.
2939 * c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
2940 Merge functions into...
2941 (c_finish_omp_construct): ... this new function.
2942
844cece0 29432015-10-22 Richard Biener <rguenther@suse.de>
2944
2945 * c-typeck.c (c_finish_omp_clauses): Properly convert operands
2946 before folding a MINUS_EXPR.
2947
5ce1b137 29482015-10-21 Marek Polacek <polacek@redhat.com>
2949
2950 PR c/68024
2951 * c-decl.c (start_function): Warn about vararg functions without
2952 a prototype.
2953
1f137e6d 29542015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
2955
2956 * c-typeck.c (build_conditional_expr): Use boolean vector
2957 type for vector comparison.
2958 (build_vec_cmp): New.
2959 (build_binary_op): Use build_vec_cmp for comparison.
2960
8523243e 29612015-10-20 Marek Polacek <polacek@redhat.com>
2962
2963 * c-parser.c (is_cilkplus_vector_p): Don't define here.
2964
3f73be3e 29652015-10-20 Marek Polacek <polacek@redhat.com>
2966
2967 PR c/67964
2968 * c-parser.c (c_parser_attributes): Break out of the loop if the
2969 token after an attribute isn't a comma.
2970
43895be5 29712015-10-13 Jakub Jelinek <jakub@redhat.com>
2972 Aldy Hernandez <aldyh@redhat.com>
2973
2974 * c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
2975 (c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
2976 (c_parser_omp_variable_list): Handle structure elements for
2977 map, to and from clauses. Handle array sections in reduction
2978 clause. Formatting fixes.
2979 (c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
2980 if clause modifiers.
2981 (c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
2982 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
2983 c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
2984 c_parser_omp_clause_is_device_ptr): New functions.
2985 (c_parser_omp_clause_ordered): Parse optional parameter.
2986 (c_parser_omp_clause_reduction): Handle array reductions.
2987 (c_parser_omp_clause_schedule): Parse optional simd modifier.
2988 (c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
2989 functions.
2990 (c_parser_omp_clause_linear): Parse linear clause modifiers.
2991 (c_parser_omp_clause_depend_sink): New function.
2992 (c_parser_omp_clause_depend): Parse source/sink depend kinds.
2993 (c_parser_omp_clause_map): Parse release/delete map kinds and
2994 optional always modifier.
2995 (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
2996 and c_finish_omp_clauses callers.
2997 (c_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
2998 Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
2999 (c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
3000 (OMP_CRITICAL_CLAUSE_MASK): Define.
3001 (c_parser_omp_critical): Parse critical clauses.
3002 (c_parser_omp_for_loop): Handle doacross loops, adjust
3003 c_finish_omp_for and c_finish_omp_clauses callers.
3004 (OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
3005 (c_parser_omp_simd): Allow ordered clause if it has no parameter.
3006 (OMP_FOR_CLAUSE_MASK): Add linear clause.
3007 (c_parser_omp_for): Disallow ordered clause when combined with
3008 distribute. Disallow linear clause when combined with distribute
3009 and not combined with simd.
3010 (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
3011 (c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
3012 parse clauses and if depend clause is found, don't parse a body.
3013 (c_parser_omp_parallel): Disallow copyin clause on target parallel.
3014 Allow target parallel without for after it.
3015 (OMP_TASK_CLAUSE_MASK): Add priority clause.
3016 (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
3017 (c_parser_omp_target_data): Diagnose no map clauses or clauses with
3018 invalid kinds.
3019 (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
3020 (OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
3021 OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
3022 (c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
3023 functions.
3024 (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
3025 defaultmap and is_device_ptr clauses.
3026 (c_parser_omp_target): Parse target parallel and target simd. Set
3027 OMP_TARGET_COMBINED on combined constructs. Parse target enter data
3028 and target exit data. Diagnose invalid map kinds.
3029 (OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
3030 (c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
3031 construct.
3032 (c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
3033 &omp_priv.
3034 (OMP_TASKLOOP_CLAUSE_MASK): Define.
3035 (c_parser_omp_taskloop): New function.
3036 (c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
3037 handle PRAGMA_OMP_TASKLOOP.
3038 (c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
3039 * c-tree.h (c_finish_omp_clauses): Add two new arguments.
3040 * c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
3041 Add IS_OMP argument, handle structure element bases, diagnose
3042 bitfields, pass IS_OMP recursively, diagnose known zero length
3043 array sections in depend clauses, handle array sections in reduction
3044 clause, diagnose negative length even for pointers.
3045 (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
3046 types, pass IS_OMP down to handle_omp_array_sections_1, handle
3047 array sections in reduction clause, set
3048 OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
3049 length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
3050 (c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
3051 Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
3052
789fbb51 30532015-10-06 Marek Polacek <polacek@redhat.com>
3054
3055 * c-parser.c (c_parser_statement_after_labels): Use
3056 protected_set_expr_location.
3057 (c_parser_omp_clause_num_gangs): Likewise.
3058 (c_parser_omp_clause_num_threads): Likewise.
3059 (c_parser_omp_clause_num_workers): Likewise.
3060 (c_parser_omp_clause_vector_length): Likewise.
3061 (c_parser_omp_clause_num_teams): Likewise.
3062 (c_parser_omp_clause_thread_limit): Likewise.
3063 * c-typeck.c (build_c_cast): Likewise.
3064 (c_cast_expr): Likewise.
3065
20cb53c9 30662015-10-05 Richard Sandiford <richard.sandiford@arm.com>
3067
3068 * c-typeck.c (c_tree_equal): Use real_equal instead of
3069 REAL_VALUES_EQUAL.
3070
6d02e6b2 30712015-10-04 Jason Merrill <jason@redhat.com>
3072
3073 * c-parser.c (c_lex_one_token): Handle @synchronized.
3074 * c-decl.c (match_builtin_function_types): A declaration of a built-in
3075 can change whether the function is transaction_safe.
3076
802c32cd 30772015-10-02 Marek Polacek <polacek@redhat.com>
3078
3079 PR c/67730
3080 * c-typeck.c (convert_for_assignment): Use the expansion point
3081 location throughout.
3082
ef17a71a 30832015-10-02 Marek Polacek <polacek@redhat.com>
3084
3085 PR c/64249
3086 * c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
3087 and pass it down to c_parser_if_statement.
3088 (c_parser_else_body): Add CHAIN parameter and pass it down to
3089 c_parser_statement_after_labels.
3090 (c_parser_if_statement): Add CHAIN parameter. Add code to warn about
3091 duplicated if-else-if conditions.
3092
7e93eb1a 30932015-10-01 Marek Polacek <polacek@redhat.com>
3094
3095 * c-typeck.c (convert_for_assignment): Improve commentary.
3096
ab4c803c 30972015-09-30 Marek Polacek <polacek@redhat.com>
3098
3099 PR c/67730
3100 * c-typeck.c (c_finish_return): Use the expansion point location for
3101 certain "return with value" warnings.
3102
ed536208 31032015-09-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
3104
3105 * c-parser.c (pragma_lex): Add loc argument.
3106
03e8b174 31072015-09-15 Marek Polacek <polacek@redhat.com>
3108
3109 PR c/67580
3110 * c-decl.c (tag_exists_p): New function.
3111 * c-parser.c (c_parser_declaration_or_fndef): Give a hint when
3112 struct/union/enum keywords are missing.
3113 * c-tree.h (tag_exists_p): Declare.
3114
a39b4dc0 31152015-09-15 Marek Polacek <polacek@redhat.com>
3116
3117 * c-decl.c (lookup_label): Return NULL_TREE instead of 0.
3118 (lookup_tag): Change the type of THISLEVEL_ONLY to bool.
3119 Return NULL_TREE instead of 0.
3120 (lookup_name): Return NULL_TREE instead of 0.
3121 (lookup_name_in_scope): Likewise.
3122 (shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
3123 (parser_xref_tag): Use false instead of 0.
3124 (start_struct): Use true instead of 1.
3125 (start_enum): Use true instead of 1 and NULL_TREE instead of 0.
3126
85f5e2ee 31272015-09-14 Marek Polacek <polacek@redhat.com>
3128
3129 * c-typeck.c (set_nonincremental_init_from_string): Use
3130 HOST_WIDE_INT_M1U when shifting a negative value.
3131
739237d5 31322015-09-09 Mark Wielaard <mjw@redhat.com>
3133
3134 * c-typeck.c (build_binary_op): Check and warn when nonnull arg
3135 parm against NULL.
3136
d2b2788c 31372015-09-10 Jakub Jelinek <jakub@redhat.com>
3138
3139 PR c/67502
3140 * c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
3141 into OMP_FOR_PRE_BODY rather than before the loop.
3142
deef87db 31432015-09-09 Jakub Jelinek <jakub@redhat.com>
3144
c43f93d7 3145 PR c/67501
3146 * c-parser.c (c_parser_oacc_all_clauses,
3147 c_parser_omp_all_clauses): Remove invalid clause from
3148 list of clauses even if parser->error is set.
3149
0fdcfb93 3150 PR c/67500
3151 * c-parser.c (c_parser_omp_clause_aligned,
3152 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
3153 test for errors.
3154 * c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
3155 error_mark_node.
3156
deef87db 3157 PR c/67495
3158 * c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
3159 instead of c_parser_unary_expression. If the result is !lvalue_p,
3160 wrap the result of c_fully_fold into NON_LVALUE_EXPR.
3161
e96292e9 31622015-09-04 Marek Polacek <polacek@redhat.com>
3163
3164 PR sanitizer/67279
3165 * c-typeck.c (build_binary_op): Don't instrument static initializers.
3166
547c6b1f 31672015-09-03 Martin Sebor <msebor@redhat.com>
3168
3169 PR c/66516
6ccd7236 3170 * c-typeck.c (convert_arguments, parser_build_unary_op,
3171 build_conditional_expr, c_cast_expr, convert_for_assignment,
3172 build_binary_op, _objc_common_truthvalue_conversion): Call
547c6b1f 3173 reject_gcc_builtin.
3174 (c_decl_implicit): Define.
3175
bd66724c 31762015-09-02 Marek Polacek <polacek@redhat.com>
3177
3178 PR c/67432
3179 * c-parser.c (c_parser_enum_specifier): Give a better error for
3180 an empty enum.
3181
6dc50383 31822015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
3183
3184 * c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
3185
7ad1d78d 31862015-08-12 Marek Polacek <polacek@redhat.com>
3187
3188 * c-decl.c (grokdeclarator): Call error_at instead of error and pass
3189 LOC to it.
3190
c9099388 31912015-08-03 Marek Polacek <polacek@redhat.com>
3192
3193 PR c/67088
3194 * c-decl.c (check_bitfield_type_and_width): Add location parameter.
3195 Use it.
3196 (grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
3197
9255be07 31982015-08-02 Patrick Palka <ppalka@gcc.gnu.org>
3199
3200 * c-parser.c (c_parser_if_body): Take token_indent_info
3201 argument. Call warn_for_misleading_indentation even when the
3202 body is a semicolon. Extract token_indent_infos corresponding
3203 to the guard, body and next tokens. Adjust call to
3204 warn_for_misleading_indentation accordingly.
3205 (c_parser_else_body): Likewise.
3206 (c_parser_if_statement): Likewise.
3207 (c_parser_while_statement): Likewise.
3208 (c_parser_for_statement): Likewise.
3209
dbbd4c6d 32102015-07-28 Luis Felipe Strano Moraes <luis.strano@gmail.com>
3211 Manuel López-Ibáñez <manu@gcc.gnu.org>
3212
3213 * c-decl.c (get_parm_info): Remove static var. Update warning
3214 message.
3215
6784a472 32162015-07-27 Marek Polacek <polacek@redhat.com>
3217
3218 PR c++/66555
3219 PR c/54979
3220 * c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
3221
8d669e79 32222015-07-20 Marek Polacek <polacek@redhat.com>
3223
3224 PR c++/55095
3225 * c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
3226 (build_binary_op): Warn about left shift overflows.
3227
1eacc14a 32282015-07-09 Andrew MacLeod <amacleod@redhat.com>
3229
3230 * c-array-notation.c: Adjust includes for flags.h changes.
3231 * c-objc-common.c: Likewise.
3232
9ef16211 32332015-07-07 Andrew MacLeod <amacleod@redhat.com>
3234
3235 * c-array-notation.c: Adjust includes.
3236 * c-aux-info.c: Likewise.
3237 * c-convert.c: Likewise.
3238 * c-decl.c: Likewise.
3239 * c-errors.c: Likewise.
3240 * c-lang.c: Likewise.
3241 * c-objc-common.c: Likewise.
3242 * c-parser.c: Likewise.
3243 * c-typeck.c: Likewise.
3244
0949f227 32452015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
3246
3247 PR fortran/66605
3248 * c-decl.c (finish_function): Call do_warn_unused_parameter.
3249
be23b16f 32502015-06-29 Marek Polacek <polacek@redhat.com>
3251
3252 PR c/66322
3253 * c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
3254 (c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P. Don't warn
3255 about -Wswitch-bool here.
3256 (do_case): Update c_add_case_label call.
3257 (c_finish_case): Update c_do_switch_warnings call.
3258
6290f0db 32592015-06-27 Marek Polacek <polacek@redhat.com>
3260
3261 * c-typeck.c: Use VECTOR_TYPE_P throughout.
3262
aa3e402e 32632015-06-26 Marek Polacek <polacek@redhat.com>
3264
3265 * c-array-notation.c (fix_builtin_array_notation_fn): Use
3266 INDIRECT_REF_P.
3267 * c-typeck.c (array_to_pointer_conversion): Likewise.
3268 (build_unary_op): Likewise.
3269 (c_finish_return): Likewise.
3270
ec2e0095 32712015-06-25 Andrew MacLeod <amacleod@redhat.com>
3272
3273 * c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
3274 * c-parser.c: Likewise.
3275
770ff93b 32762015-06-25 Richard Sandiford <richard.sandiford@arm.com>
3277
3278 * c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
3279 instead of pointer_hash.
3280 (detect_field_duplicates): Likewise.
3281
f48c7f4a 32822015-06-25 Marek Polacek <polacek@redhat.com>
3283
3284 * c-array-notation.c: Use VAR_P throughout.
3285 * c-decl.c: Likewise.
3286 * c-objc-common.c: Likewise.
3287 * c-parser.c: Likewise.
3288 * c-typeck.c: Likewise.
3289
ce41e81a 32902015-06-25 Marek Polacek <polacek@redhat.com>
3291
3292 * c-decl.c: Use is_global_var throughout.
3293 * c-parser.c: Likewise.
3294 * c-typeck.c: Likewise.
3295
f2ab3bac 32962015-06-17 Andrew MacLeod <amacleod@redhat.com>
3297
3298 * c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
3299 * c-aux-info.c: Likewise.
3300 * c-convert.c: Likewise.
3301 * c-decl.c: Likewise.
3302 * c-errors.c: Likewise.
3303 * c-lang.c: Likewise.
3304 * c-objc-common.c: Likewise.
3305 * c-parser.c: Likewise.
3306 * c-typeck.c: Likewise.
3307
647730ab 33082015-06-11 Jan Hubicka <hubicka@ucw.cz>
3309
3310 PR middle-end/66325
3311 * c-decl.c (start_enum): Set TYPE_PACKED consistently among type
3312 variants.
3313
dd4b0a0d 33142015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
3315
3316 * c-decl.c (pop_scope): Register the main translation unit
3317 through the new debug hook.
3318
64486212 33192015-06-08 Andrew MacLeod <amacleod@redhat.com>
3320
3321 * c-array-notation.c : Adjust include files.
3322 * c-aux-info.c : Likewise.
3323 * c-convert.c : Likewise.
3324 * c-decl.c : Likewise.
3325 * c-errors.c : Likewise.
3326 * c-lang.c : Likewise.
3327 * c-lang.h : Likewise.
3328 * c-objc-common.c : Likewise.
3329 * c-parser.c : Likewise.
3330 * c-typeck.c : Likewise.
3331
3a1c9df2 33322015-06-05 Aldy Hernandez <aldyh@redhat.com>
3333
3334 * c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
3335 immediately clobber it.
3336 (c_write_global_declarations_1): Remove call to
3337 check_global_declaration_1.
3338 (c_write_global_declarations_2): Remove.
3339 (c_write_final_cleanups): Rename from c_write_global_declarations.
3340 Remove call to finalize_compilation_unit.
3341 Remove calls to debugging hooks.
3342 * c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
3343 * c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
3344 * c-tree.h: Remove c_write_global_declarations.
3345
f77c0292 33462015-06-04 Andrew MacLeod <amacleod@redhat.com>
3347
3348 * c-array-notation.c: Adjust includes for restructured coretypes.h.
3349 * c-aux-info.c: Likewise.
3350 * c-convert.c: Likewise.
3351 * c-decl.c: Likewise.
3352 * c-errors.c: Likewise.
3353 * c-lang.c: Likewise.
3354 * c-objc-common.c: Likewise.
3355 * c-parser.c: Likewise.
3356 * c-typeck.c: Likewise.
3357
b44134dc 33582015-06-04 Marek Polacek <polacek@redhat.com>
3359
3360 PR c/66341
3361 * c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
3362 it is a lvalue.
3363
d1df0bfc 33642015-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3365
3366 * c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
3367 Warn for empty struct.
3368 (finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.
3369
f8363c5d 33702015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
3371
3372 * c-decl.c (start_function): Call plugin before parsing.
3373 (finish_function): Call plugin after parsing.
3374
5b9761f5 33752015-06-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3376
3377 PR c/49551
3378 * c-decl.c (merge_decls): Merge DECL_COMMON.
3379
eeec71b4 33802015-05-22 Jim Wilson <jim.wilson@linaro.org>
3381
3382 * Make-lang.in (check_gcc_pallelize): Define.
3383
5a4c69dd 33842015-05-22 Marek Polacek <polacek@redhat.com>
3385
3386 PR c/47043
3387 * c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
3388 attributes.
3389
5650b4ff 33902015-05-21 Marek Polacek <polacek@redhat.com>
3391
3392 * c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
3393 DECL_BUILT_IN.
3394
b443c459 33952015-05-20 Marek Polacek <polacek@redhat.com>
3396
3397 * c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
3398 * c-typeck.c: Likewise.
3399
9e73638f 34002015-05-19 Marek Polacek <polacek@redhat.com>
3401
3402 * c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
3403
d7729e26 34042015-05-19 Jakub Jelinek <jakub@redhat.com>
3405
3406 PR middle-end/66199
3407 * c-parser.c (c_parser_omp_for_loop): Don't add
3408 OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
3409 OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
3410 (c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
3411 constructs.
3412
dfcf26a5 34132015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
3414
3415 * c-typeck.c (build_array_ref): Use std::swap instead of explicit
9e73638f 3416 swaps.
dfcf26a5 3417
09172322 34182015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
3419
3420 PR fortran/44054
3421 * c-objc-common.c (c_tree_printer): Replace locus pointer with
3422 accessor function.
3423
aac24642 34242015-05-14 Marek Polacek <polacek@redhat.com>
3425
3426 PR c/66066
3427 PR c/66127
3428 * c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
3429 rather than with 0.
3430
e5f01cba 34312015-05-12 David Malcolm <dmalcolm@redhat.com>
3432
3433 * c-parser.c (c_parser_if_body): Add param "if_loc", use it
3434 to add a call to warn_for_misleading_indentation.
3435 (c_parser_else_body): Likewise, adding param "else_loc".
3436 (c_parser_if_statement): Check for misleading indentation.
3437 (c_parser_while_statement): Likewise.
3438 (c_parser_for_statement): Likewise.
3439
dc5945dc 34402015-05-08 Marek Polacek <polacek@redhat.com>
3441
3442 PR c/64918
3443 * c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
3444 (output_init_element): Likewise.
3445
cdc64059 34462015-05-07 Marek Polacek <polacek@redhat.com>
3447
3448 PR c/65179
3449 * c-typeck.c (build_binary_op): Warn when left shifting a negative
3450 value.
3451
6fa7118e 34522015-04-30 Marek Polacek <polacek@redhat.com>
3453
3454 * c-typeck.c (set_init_label): Call error_at instead of error and
3455 pass LOC to it.
3456
98f44804 3457 * c-typeck.c (c_incomplete_type_error): Refactor to use %qT. Print
3458 the type of a decl.
3459
2cd7caae 3460 * c-typeck.c (c_build_va_arg): Clarify the error message.
3461
95cfd391 34622015-04-29 Thomas Schwinge <thomas@codesourcery.com>
3463
3464 * c-parser.c (c_parser_oacc_enter_exit_data): Use
3465 OMP_STANDALONE_CLAUSES.
3466
e65e39f8 34672015-04-28 Marek Polacek <polacek@redhat.com>
3468
3469 * c-parser.c (c_parser_binary_expression): Remove duplicate line.
3470
5580bf42 34712015-04-28 Marek Polacek <polacek@redhat.com>
3472
3473 PR c/65901
3474 * c-typeck.c (c_build_va_arg): Require TYPE be a complete type.
3475
c3468fc2 34762015-04-25 Marek Polacek <polacek@redhat.com>
3477
3478 PR c/52085
3479 * c-decl.c (finish_enum): Copy over TYPE_ALIGN. Also check for "mode"
3480 attribute.
3481
0cd6b1b4 34822015-04-23 Marek Polacek <polacek@redhat.com>
3483
3484 PR c/65345
3485 * c-decl.c (set_labels_context_r): New function.
3486 (store_parm_decls): Call it via walk_tree_without_duplicates.
3487 * c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
3488 instead of create_tmp_var. Build TARGET_EXPR instead of
3489 COMPOUND_EXPR.
3490 (build_atomic_assign): Use create_tmp_var_raw instead of
3491 create_tmp_var. Build TARGET_EXPRs instead of MODIFY_EXPR.
3492
05a827ce 34932015-04-20 Ilya Verbin <ilya.verbin@intel.com>
3494
3495 * c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
3496 (c_parser_omp_target_update): Add missed %> to error_at ().
3497
de801c28 34982015-04-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3499
3500 PR target/55143
3501 * c-decl.c (c_default_pointer_mode): Remove definition.
3502 * c-tree.h (c_default_pointer_mode): Remove declaration.
3503
c3b1dca4 35042015-03-27 Tobias Burnus <burnus@net-b.de>
3505
3506 PR c/65586
3507 * c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
3508 error out.
3509 (c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
3510 c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
3511 Update calls to not error for skipped omp pragmas with -fopenmp-simd.
3512
1443772f 35132015-03-19 Jakub Jelinek <jakub@redhat.com>
3514
3515 * c-decl.c (c_decl_attributes): Also add "omp declare target"
3516 attribute for DECL_EXTERNAL VAR_DECLs.
3517
76738f56 35182015-03-11 Jakub Jelinek <jakub@redhat.com>
3519
3520 * c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
3521 argument.
3522
16f958b3 35232015-03-10 Jakub Jelinek <jakub@redhat.com>
3524
3525 PR c/65120
3526 * c-typeck.c (parser_build_binary_op): Check for tcc_comparison
3527 before preparing arguments to warn_logical_not_parentheses.
3528
6054103a 35292015-03-09 Jakub Jelinek <jakub@redhat.com>
3530
3531 PR c/65120
3532 * c-typeck.c (parser_build_binary_op): Don't warn for
3533 !!x == y or !b == y where b is _Bool.
3534
de3a1e03 35352015-03-09 Marek Polacek <polacek@redhat.com>
3536
3537 * c-convert.c (convert): Make use of do_ubsan_in_current_function.
3538 * c-decl.c (grokdeclarator): Likewise.
3539 * c-typeck.c (build_binary_op): Likewise.
3540
084e6bf0 35412015-02-27 Marek Polacek <polacek@redhat.com>
3542
3543 PR c/65228
3544 * c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
3545
4d7c4134 35462015-02-14 Marek Polacek <polacek@redhat.com>
3547
3548 PR c/64768
3549 * c-decl.c (grokdeclarator): Set the range of a flexible array member
3550 declared through a typedef name.
3551
b1380826 35522015-02-13 Marek Polacek <polacek@redhat.com>
3553
3554 PR c/65050
3555 * c-decl.c (grokdeclarator): Print also the type when giving
3556 the error message about array's incomplete element type.
3557
35ff54b5 35582015-02-11 Jakub Jelinek <jakub@redhat.com>
3559
3560 PR c/64824
3561 * c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
3562 check in the POP macro.
3563
46861609 35642015-02-09 Marek Polacek <polacek@redhat.com>
3565
3566 PR c/64856
3567 * c-typeck.c (process_init_element): Don't always wrap
3568 COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when
3569 initializing a range of elements.
3570
bbf8fbec 35712015-02-04 Jakub Jelinek <jakub@redhat.com>
3572
3573 PR c/64824
3574 PR c/64868
3575 * c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.
3576
46861609 35772015-02-02 Bruno Loff <bruno.loff@gmail.com>
1f0ce3ac 3578
3579 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
3580 processing enum declaration.
3581
70279be9 35822015-01-29 Marek Polacek <polacek@redhat.com>
3583
3584 PR c/64709
3585 * c-typeck.c (pop_init_level): If constructor_elements has
3586 exactly one element with integer_zerop value, set constructor_zeroinit
3587 to 1. Remove braces around warning_init call.
3588
591970b4 35892015-01-27 Jakub Jelinek <jakub@redhat.com>
3590
3591 PR c/64766
3592 * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
3593 of FUNCTION_DECLs with error_mark_node.
3594
87778dc4 35952015-01-26 Jakub Jelinek <jakub@redhat.com>
3596
3597 PR c/64778
3598 * c-typeck.c (convert_arguments): Return -1 if there are
3599 error_args, even if we've diagnosed too many arguments.
3600
cffdfb3d 36012015-01-21 Richard Biener <rguenther@suse.de>
3602
3603 PR middle-end/64313
3604 * c-decl.c (merge_decls): Call set_builtin_decl_declared_p
3605 for builtins the user declared correctly.
3606
ca4c3545 36072015-01-15 Thomas Schwinge <thomas@codesourcery.com>
3608 Bernd Schmidt <bernds@codesourcery.com>
3609 Cesar Philippidis <cesar@codesourcery.com>
3610 James Norris <jnorris@codesourcery.com>
3611 Jakub Jelinek <jakub@redhat.com>
3612 Ilmir Usmanov <i.usmanov@samsung.com>
3613
3614 * c-parser.c: Include "gomp-constants.h".
3615 (c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
3616 omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
3617 Use OMP_CLAUSE_SET_MAP_KIND.
3618 (c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
3619 PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
3620 (c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
3621 PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
3622 PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
3623 (c_parser_omp_clause_name): Handle "auto", "async", "copy",
3624 "copyout", "create", "delete", "deviceptr", "gang", "host",
3625 "num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
3626 "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
3627 "present_or_create", "pcreate", "seq", "self", "vector",
3628 "vector_length", "wait", "worker".
3629 (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
3630 (OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
3631 (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
3632 (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
3633 (c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
3634 (c_parser_oacc_wait_list, c_parser_oacc_data_clause)
3635 (c_parser_oacc_data_clause_deviceptr)
3636 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
3637 (c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
3638 (c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
3639 (c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
3640 (c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
3641 (c_parser_oacc_parallel, c_parser_oacc_update)
3642 (c_parser_oacc_wait): New functions.
3643 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
3644 (c_finish_oacc_data): New prototypes.
3645 * c-typeck.c: Include "gomp-constants.h".
3646 (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
3647 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
3648 OMP_CLAUSE_SET_MAP_KIND.
3649 (c_finish_oacc_parallel, c_finish_oacc_kernels)
3650 (c_finish_oacc_data): New functions.
3651 (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
3652 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
3653 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
3654 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
3655 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
3656 GOMP_MAP_FORCE_DEVICEPTR.
3657
1f78217c 36582015-01-09 Michael Collison <michael.collison@linaro.org>
3659
3660 * c-array-notation.c: Include hash-set.h, machmode.h,
3661 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3662 fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
3663 * c-aux-info.c: Ditto.
3664 * c-convert.c: Ditto.
3665 * c-decl.c: Ditto.
3666 * c-errors.c: Ditto.
3667 * c-lang.c: Dittoxs.
3668 * c-objc-common.c: Ditto.
3669 * c-parser.c: Ditto.
3670 * c-typeck.c: Include hash-set.h, machmode.h,
3671 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3672 fold-const.h, wide-int.h, inchash.h, real.h and
3673 fixed-value.h due to flattening of tree.h.
3674
15e18a8c 36752015-01-07 Marek Polacek <polacek@redhat.com>
3676
3677 PR c/64417
3678 * c-typeck.c (process_init_element): Disallow initialization of
3679 a flexible array member with a string constant if the structure
3680 is in an array.
3681
d353bf18 36822015-01-05 Jakub Jelinek <jakub@redhat.com>
3683
823a9dd4 3684 PR sanitizer/64344
3685 * c-typeck.c (convert_for_assignment, c_finish_return): For
3686 -fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
3687 types also set in_late_binary_op around convert call.
3688 * c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
3689 to integral type casts, if not in_late_binary_op, pass c_fully_fold
3690 result on expr as last argument to ubsan_instrument_float_cast,
3691 if in_late_binary_op, don't use c_save_expr but save_expr.
3692
d353bf18 3693 Update copyright years.
3694
92b63884 36952015-01-05 Marek Polacek <polacek@redhat.com>
3696
3697 PR c/64423
3698 * c-typeck.c (build_array_ref): Pass loc down to
3699 warn_array_subscript_with_type_char.
3700
92a44a68 37012014-12-20 Martin Uecker <uecker@eecs.berkeley.edu>
8a8211df 3702
3703 * c-typeck.c: New behavious for pointers to arrays with qualifiers
a49621cf 3704 (common-pointer-type): For pointers to arrays take qualifiers from
8a8211df 3705 element type.
a49621cf 3706 (build_conditional_expr): Add warnings for lost qualifiers.
8a8211df 3707 (comp-target-types): Allow pointers to arrays with different qualifiers.
a49621cf 3708 (convert-for-assignment): Adapt warnings for discarded qualifiers. Add
8a8211df 3709 WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
a49621cf 3710 to PEDWARN_FOR_QUALIFIERS.
8a8211df 3711
35ea0139 37122014-12-17 Jakub Jelinek <jakub@redhat.com>
3713
3714 PR sanitizer/64289
3715 * c-convert.c: Include ubsan.h.
3716 (convert): For real -> integral casts and
3717 -fsanitize=float-cast-overflow don't call convert_to_integer, but
3718 instead instrument the float cast directly.
3719
f9e245b2 37202014-11-29 Jakub Jelinek <jakub@redhat.com>
3721
3722 * c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
3723 c_finish_stmt_expr): Remove NULL last argument from
3724 create_tmp_var_raw and create_tmp_var calls.
3725 * c-array-notation.c (fix_builtin_array_notation_fn,
3726 build_array_notation_expr, fix_conditional_array_notations_1,
3727 fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
3728
fce2dbd1 37292014-11-28 Marek Polacek <polacek@redhat.com>
3730
3731 PR c/63862
3732 * c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
3733 convert the right operand to integer type.
3734
396c36b7 37352014-11-25 Marek Polacek <polacek@redhat.com>
3736
3737 PR c/63877
3738 * c-decl.c (start_function): Disable -Wmissing-declarations warning
3739 for inline functions.
3740
c61ef207 37412014-11-21 Jakub Jelinek <jakub@redhat.com>
3742
3743 PR target/63764
3744 * c-typeck.c (build_array_ref): Adjust
3745 convert_vector_to_pointer_for_subscript caller. If it returns true,
3746 call non_lvalue_loc on the result.
3747
565353e8 37482014-11-11 Richard Biener <rguenther@suse.de>
3749
3750 * c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
3751 to true.
3752
fdd735a7 37532014-11-10 Andi Kleen <ak@linux.intel.com>
3754
3755 PR c/60804
3756 * c-parser.c (c_parser_statement_after_labels): Call
3757 check_no_cilk.
3758 (c_parser_if_statement): Dito.
3759 (c_parser_switch_statement): Dito.
3760 (c_parser_while_statement): Dito.
3761 (c_parser_do_statement): Dito.
3762 (c_parser_for_statement): Dito.
3763 * c-typeck.c (c_finish_loop): Dito.
3764
0feb4de1 37652014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
3766
3767 * c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
3768 OPT_Wshift_count_overflow in the warnings.
3769
a3fec48a 37702014-10-30 Marek Polacek <polacek@redhat.com>
3771
3772 * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
3773 print the stripped version as well, if they're not the same.
3774
3754d046 37752014-10-29 Richard Sandiford <richard.sandiford@arm.com>
3776
3777 * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
3778 machine_mode.
3779
1140c305 37802014-10-28 Andrew MacLeod <amacleod@redhat.com>
3781
3782 * c-decl.c: Adjust include files.
3783 * c-parser.c: Ditto.
3784
ab103e33 37852014-10-27 Phil Muldoon <pmuldoon@redhat.com>
3786 Tom Tromey <tromey@redhat.com>
3787
3788 * c-tree.h (enum c_oracle_request): New.
3789 (c_binding_oracle_function): New typedef.
3790 (c_binding_oracle, c_pushtag, c_bind): Declare.
3791 * c-decl.c (c_binding_oracle): New global.
3792 (I_SYMBOL_CHECKED): New macro.
3793 (i_symbol_binding): New function.
3794 (I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
3795 (I_TAG_CHECKED): New macro.
3796 (i_tag_binding): New function.
3797 (I_TAG_BINDING, I_TAG_DECL): Redefine.
3798 (I_LABEL_CHECKED): New macro.
3799 (i_label_binding): New function.
3800 (I_LABEL_BINDING, I_LABEL_DECL): Redefine.
3801 (c_print_identifier): Save and restore c_binding_oracle.
3802 (c_pushtag, c_bind): New functions.
3803
94ea8568 38042014-10-27 Andrew MacLeod <amacleod@redhat.com>
3805
3806 * c-typeck.c: Adjust include files.
3807
32ecf960 38082014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
3809
3810 PR c++/53061
3811 * c-objc-common.c (c_objc_common_init): Do not do diagnostics
3812 initialization here...
3813 (c_initialize_diagnostics): ... but here. Set defaults after
3814 building pretty-printer.
3815
2981340f 38162014-10-23 Marek Polacek <polacek@redhat.com>
3817
3818 PR c/63626
3819 * c-decl.c (pop_scope): Don't print warning in external_scope.
3820
d303aeaf 38212014-10-19 Marek Polacek <polacek@redhat.com>
3822
3823 PR c/63567
3824 * c-typeck.c (output_init_element): Allow initializing objects with
3825 static storage duration with compound literals even in C99 and add
3826 pedwarn for it.
3827
bccf97da 38282014-10-17 Marek Polacek <polacek@redhat.com>
3829
3830 PR c/63567
3831 * c-typeck.c (digest_init): Allow initializing objects with static
3832 storage duration with compound literals even in C99 and add pedwarn
3833 for it.
3834
d9c77450 38352014-10-17 Marek Polacek <polacek@redhat.com>
3836
3837 PR c/63543
3838 * c-tree.h (C_TYPE_ERROR_REPORTED): Define.
3839 * c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
3840 error multiple times. Print the type.
3841
a2bbd0a7 38422014-10-17 Marek Polacek <polacek@redhat.com>
3843
3844 PR c/63549
3845 * c-typeck.c (build_array_ref): Bail if the index in an incomplete
3846 type.
3847
e610d2b2 38482014-10-17 Marek Polacek <polacek@redhat.com>
3849
3850 * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
3851 (start_function): Use OPT_Wimplicit_int instead of 0.
3852 (store_parm_decls_oldstyle): Likewise.
3853
6b6e56b6 38542014-10-17 Alan Modra <amodra@gmail.com>
3855
3856 PR middle-end/61848
3857 * c-decl.c (merge_decls): Don't merge section name or tls model
3858 to newdecl symtab node, instead merge to olddecl. Override
3859 existing olddecl section name. Set tls_model for all thread-local
3860 vars, not just OMP thread-private ones. Remove incorrect comment.
3861
a3020f2f 38622014-10-16 Andrew MacLeod <amacleod@redhat.com>
3863
3864 * c-decl.c: Adjust include files.
3865
9f75f026 38662014-10-14 DJ Delorie <dj@redhat.com>
3867
3868 * c-parser.c (c_parse_init): Add RID entries for each __intN.
3869 (c_token_starts_typename): Check all __intN, not just __int128.
3870 (c_token_starts_declspecs): Likewise.
3871 (c_parser_declspecs): Likewise.
3872 (c_parser_attribute_any_word): Likewise.
3873 (c_parser_objc_selector): Likewise.
3874 * c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
3875 (struct c_declspecs): Add int_n_idx field to record *which* __intN
3876 is specified.
3877 * c-decl.c (declspecs_add_type): Check for all __intN, not just
3878 __int128.
3879 (finish_declspecs): Likewise.
3880
4f284d4a 38812014-10-13 Anthony Brandon <anthony.brandon@gmail.com>
3882
a49621cf 3883 * c-parser.c (c_parser_all_labels): New function to replace
4f284d4a 3884 the duplicate code.
a49621cf 3885 (c_parser_statement): Call the new function.
4f284d4a 3886
61a892dc 38872014-10-09 Marek Polacek <polacek@redhat.com>
3888
3889 PR c/63480
3890 * c-typeck.c (pop_init_level): Don't warn about initializing
3891 with { }.
3892
4e888fd9 38932014-10-07 Marek Polacek <polacek@redhat.com>
3894
3895 PR c/59717
3896 * c-decl.c (header_for_builtin_fn): New function.
3897 (implicitly_declare): Suggest which header to include.
3898
224bdd51 38992014-10-07 Marek Polacek <polacek@redhat.com>
3900
3901 * c-convert.c (convert): Use error_operand_p.
3902 * c-typeck.c (require_complete_type): Likewise.
3903 (really_atomic_lvalue): Likewise.
3904 (digest_init): Likewise.
3905 (handle_omp_array_sections_1): Likewise.
3906
a2bc79db 39072014-10-03 Marek Polacek <polacek@redhat.com>
3908
3909 PR c/63453
3910 * c-decl.c (pop_scope): Don't warn about "inline function declared
3911 but never defined" for functions marked with gnu_inline attribute.
3912
4fc4088b 39132014-09-25 Jakub Jelinek <jakub@redhat.com>
3914
3915 PR c++/63249
3916 * c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
3917 on low_bound and length.
3918
5213d6c9 39192014-09-24 Marek Polacek <polacek@redhat.com>
3920
3921 PR c/61405
3922 PR c/53874
3923 * c-parser.c: Don't define CPP_KEYWORD.
3924 (c_parser_switch_statement): Pass original type to c_finish_case.
3925 * c-tree.h (c_finish_case): Update declaration.
3926 * c-typeck.c (c_finish_case): Add TYPE parameter. Pass it
3927 conditionally to c_do_switch_warnings.
3928
6ea2b1bc 39292014-09-03 Marek Polacek <polacek@redhat.com>
3930
3931 PR c/62024
3932 * c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
3933 conversions.
3934
40750995 39352014-09-02 Jakub Jelinek <jakub@redhat.com>
3936 Balaji V. Iyer <balaji.v.iyer@intel.com>
3937 Igor Zamyatin <igor.zamyatin@intel.com>
3938
3939 * c-parser.c (c_parser_cilk_for): New function.
3940 (c_parser_cilk_grainsize): Likewise.
3941 (c_get_temp_regvar): Likewise.
3942 (c_parser_statement_after_labels): Added RID_CILK_FOR case.
3943 (c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
3944 (c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
3945 * c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
3946 case.
3947
8c583613 39482014-08-27 Chen Gang <gang.chen.5i5j@gmail.com>
3949
3950 * c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
3951 with using HOST_WIDE_INT without truncation to 'int'
3952
dc6229e8 39532014-08-22 Marek Polacek <polacek@redhat.com>
3954
3955 PR c++/62199
3956 * c-typeck.c (parser_build_binary_op): Adjust call to
3957 warn_logical_not_parentheses.
3958
5fdda74b 39592014-08-22 Igor Zamyatin <igor.zamyatin@intel.com>
3960
3961 PR other/62008
3962 * c-parser.c (c_parser_array_notation): Check for correct
3963 type of an array added.
3964
78bf4156 39652014-08-19 Marek Polacek <polacek@redhat.com>
3966
3967 PR c++/62153
3968 * c-typeck.c (build_binary_op): If either operand of a comparison
3969 is a boolean expression, call maybe_warn_bool_compare.
3970
005b8fe7 39712014-08-19 Patrick Palka <ppalka@gcc.gnu.org>
3972
3973 PR c/45584
3974 * c-typeck.c (build_c_cast): Do a conversion even when the
3975 TYPE_MAIN_VARIANTs are the same.
3976
508ea33a 39772014-08-19 Marek Polacek <polacek@redhat.com>
3978
3979 * c-decl.c (diagnose_mismatched_decls): Unconditionally call
3980 pedwarn_c99 instead of pedwarn.
3981 (grokfield): Likewise.
3982 (warn_defaults_to): New function.
3983 (grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
3984 Unconditionally call pedwarn_c99 instead of pedwarn.
3985 (start_function): Call warn_defaults_to instead of pedwarn_c99.
3986 (declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
3987 check flag_isoc11 before.
3988 * c-errors.c (pedwarn_c99): Change the return type to bool.
3989 Handle -Wc99-c11-compat.
3990 * c-parser.c (disable_extension_diagnostics): Handle
3991 warn_c99_c11_compat.
3992 (restore_extension_diagnostics): Likewise.
3993 (c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
3994 instead of pedwarn, don't check flag_isoc11 before.
3995 (c_parser_declspecs): Likewise.
3996 (c_parser_alignas_specifier): Likewise.
3997 (c_parser_alignof_expression): Likewise.
3998 (c_parser_generic_selection): Likewise.
3999 * c-tree.h (pedwarn_c99): Update declaration.
4000 * c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
4001 of pedwarn_c99.
4002
806fe15e 40032014-08-19 Marek Polacek <polacek@redhat.com>
4004
4005 * c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
4006 to pedwarn_c90.
4007 * c-errors.c: Include "opts.h".
4008 (pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
4009 * c-parser.c (disable_extension_diagnostics): Handle negative value
4010 of warn_c90_c99_compat, too.
4011 (restore_extension_diagnostics): Likewise.
4012 (c_parser_compound_statement_nostart): Pass
4013 OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.
4014
89868e45 40152014-08-12 Marek Polacek <polacek@redhat.com>
4016
4017 * c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
4018 Add pedwarn.
4019 (c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
4020 Likewise.
4021 (c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.
4022
92a44a68 40232014-08-10 Marek Polacek <polacek@redhat.com>
890c2e2f 4024
4025 PR c/51849
4026 * c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
4027 Call pedwarn_c90 instead of pedwarn.
4028 (check_bitfield_type_and_width): Likewise.
4029 (declspecs_add_qual): Likewise.
4030 (declspecs_add_type): Likewise.
4031 (warn_variable_length_array): Unify function for -pedantic and -Wvla.
4032 Adjust to only call pedwarn_c90.
4033 (grokdeclarator): Remove pedantic && !flag_isoc99 check. Call
4034 pedwarn_c90 instead of pedwarn.
4035 * c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
4036 * c-parser.c (disable_extension_diagnostics): Handle
4037 warn_c90_c99_compat.
4038 (restore_extension_diagnostics): Likewise.
4039 (c_parser_enum_specifier): Remove check for !flag_isoc99. Call
4040 pedwarn_c90 instead of pedwarn.
4041 (c_parser_initelt): Likewise.
4042 (c_parser_postfix_expression): Likewise.
4043 (c_parser_postfix_expression_after_paren_type): Likewise.
4044 (c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
4045 * c-tree.h: Fix formatting.
4046 * c-typeck.c (build_array_ref): Remove check for !flag_isoc99. Call
4047 pedwarn_c90 instead of pedwarn.
4048
7149db5f 40492014-08-07 Trevor Saunders <tsaunders@mozilla.com>
4050
4051 * c-typeck.c: Remove include of pointer-set.h.
4052
1c75251e 40532014-08-07 Marek Polacek <polacek@redhat.com>
4054
4055 * c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.
4056
06ecf488 40572014-08-02 Trevor Saunders <tsaunders@mozilla.com>
4058
4059 * c-typeck.c: Use hash_map instead of pointer_map.
4060
431205b7 40612014-08-02 Trevor Saunders <tsaunders@mozilla.com>
4062
4063 * c-decl.c: Use hash_set instead of pointer_set.
4064
3394c80c 40652014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
4066
4067 PR middle-end/61455
4068 * c-array-notation.c (expand_array_notations): Handling
4069 of DECL_EXPR added.
4070
f22a2cb7 40712014-07-31 Marc Glisse <marc.glisse@inria.fr>
4072
4073 PR c++/60517
4074 * c-typeck.c (c_finish_return): Return 0 instead of the address of
4075 a local variable.
4076
74691f46 40772014-07-30 Tom Tromey <tromey@redhat.com>
4078
4079 * c-typeck.c (struct constructor_stack) <designator_depth>: New
4080 field.
4081 (really_start_incremental_init, push_init_level): Initialize
4082 designator_depth.
4083 (pop_init_level): Set global designator_depth.
4084 (process_init_element): Check for designated_init attribute.
4085
f9767fb6 40862014-07-20 Marek Polacek <polacek@redhat.com>
4087
4088 PR c/61852
4089 * c-decl.c (implicit_decl_warning): Add location_t parameter. Use it.
4090 (implicitly_declare): Pass location to implicit_decl_warning.
4091
305d96bc 40922014-07-14 Jakub Jelinek <jakub@redhat.com>
4093
4094 PR middle-end/61294
4095 * c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
4096 If non-NULL, call c_parser_check_literal_zero.
4097 (c_parser_check_literal_zero): New function.
4098 (c_parser_postfix_expression_after_primary): Adjust
4099 c_parser_expr_list caller, handle -Wmemset-transposed-args.
4100
87d59e72 41012014-07-06 Marek Polacek <polacek@redhat.com>
4102
4103 PR c/6940
4104 * c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
4105 * c-tree.h (C_ARRAY_PARAMETER): Define.
4106 * c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
4107 function parameter.
4108
752098c8 41092014-07-02 Jan Hubicka <hubicka@ucw.cz>
92a44a68 4110 Chen Gang <gang.chen.5i5j@gmail.com>
752098c8 4111
4112 * c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
4113 releasing symbol.
4114
1207866e 41152014-07-01 Marek Polacek <polacek@redhat.com>
4116
4117 * c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
4118 instead of 0 to WARN_FOR_ASSIGNMENT.
4119
7a6bbb76 41202014-07-01 Marek Polacek <polacek@redhat.com>
4121
4122 PR c/58286
4123 * c-typeck.c (convert_for_assignment): Pass
4124 OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
4125
70575064 41262014-06-30 Marek Polacek <polacek@redhat.com>
4127
4128 * c-decl.c (grokdeclarator): Don't instrument VLAs if the function
4129 has no_sanitize_undefined attribute.
4130
4879e4cf 41312014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
4132
4133 PR middle-end/57541
4134 * c-array-notation.c (fix_builtin_array_notation_fn):
4135 Check for 0 arguments in builtin call. Check that bultin argument is
4136 correct.
4137 * c-parser.c (c_parser_array_notation): Check for incorrect initial
4138 index.
4139
45c5b823 41402014-06-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
4141
4142 * c-parser.c (c_parser_declaration_or_fndef): Discard all type
4143 qualifiers in __auto_type for atomic types.
4144 (c_parser_typeof_specifier): Discard all type qualifiers in
4145 __typeof__ for atomic types.
4146
430b73ee 41472014-06-25 Marek Polacek <polacek@redhat.com>
4148
4149 PR c/61162
4150 * c-parser.c (c_parser_statement_after_labels): Pass the location of
4151 the return expression to c_finish_return.
4152
9580cb79 41532014-06-25 Jakub Jelinek <jakub@redhat.com>
4154
4155 * c-typeck.c (c_finish_omp_clauses): Make sure
4156 OMP_CLAUSE_LINEAR_STEP has correct type.
4157
c1f445d2 41582014-06-24 Trevor Saunders <tsaunders@mozilla.com>
4159
4160 * c-decl.c: Adjust.
4161
e471cc6f 41622014-06-24 Jakub Jelinek <jakub@redhat.com>
4163
4164 * c-parser.c (c_parser_omp_for_loop): For
4165 #pragma omp parallel for simd move lastprivate clause from parallel
4166 to for rather than simd.
4167
499b7390 41682014-06-23 Marek Polacek <polacek@redhat.com>
4169
4170 * c-typeck.c (parser_build_binary_op): Don't call
4171 warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
4172
5e68df57 41732014-06-15 Jan Hubicka <hubicka@ucw.cz>
4174
4175 * c-parser.c (c_parser_omp_threadprivate): Likewise.
4176 * c-decl.c (merge_decls): Likewise.
4177
064b0d02 41782014-06-09 Marek Polacek <polacek@redhat.com>
4179
4180 PR c/36446
4181 * c-typeck.c (error_init): Call inform instead of error_at.
4182 (pedwarn_init): Call inform instead of pedwarn.
4183 (warning_init): Call inform instead of warning_at.
4184
71e19e54 41852014-06-07 Jan Hubicka <hubicka@ucw.cz>
4186
4187 * c-decl.c (merge_decls): Use set_decl_section_name.
4188 (duplicate_decls): Remove node if it exists.
4189
95cdf3fd 41902014-06-05 S. Gilles <sgilles@terpmail.umd.edu>
4191
4192 PR c/53119
4193 * c-typeck.c (push_init_level, process_init_element,
4194 pop_init_level): Correct check for zero initialization, move
4195 missing brace warning to respect zero initialization.
4196
a07f86a6 41972014-06-05 Marek Polacek <polacek@redhat.com>
4198
4199 PR c/56724
4200 * c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.
4201
32dc1512 42022014-06-05 Marek Polacek <polacek@redhat.com>
4203
4204 PR c/49706
4205 * c-typeck.c (parser_build_binary_op): Warn when logical not is used
4206 on the left hand side operand of a comparison.
4207
64cf1262 42082014-06-05 Marek Polacek <polacek@redhat.com>
4209
4210 PR c/48062
4211 * c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
4212 Print note only if the warning was printed.
4213
071f6d39 42142014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
4215
4216 PR c/58942
4217 * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
4218 with a pointer.
4219
c69ec07d 42202014-06-03 Marek Polacek <polacek@redhat.com>
4221
4222 PR c/60439
4223 * c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
4224 c_start_case.
4225 * c-tree.h (c_start_case): Update.
4226 * c-typeck.c (c_start_case): Add new boolean parameter. Warn if
4227 switch condition has boolean value.
4228
f7715905 42292014-06-02 Andrew MacLeod <amacleod@redhat.com>
4230
4231 * c-decl.c: Include builtins.h.
4232 * c-parser.c: Likewise.
4233
dcfff6f9 42342014-05-27 Marek Polacek <polacek@redhat.com>
4235
4236 PR c/56724
4237 * c-typeck.c (convert_arguments): Get location of a parameter. Change
4238 error and warning calls to error_at and warning_at. Pass location of
4239 a parameter to it. Call warning_at with OPT_Wtraditional_conversion.
4240 (convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
4241 WARN_FOR_QUALIFIERS. Pass expr_loc to those.
4242
c048c42c 42432014-05-26 Igor Zamyatin <igor.zamyatin@intel.com>
4244
4245 PR c/61191
4246 * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
4247 function parameters.
4248
8c016392 42492014-05-23 Jan Hubicka <hubicka@ucw.cz>
4250
4251 * c-decl.c (merge_decls): Preserve symtab node pointers.
4252 (duplicate_decls): Free new decl.
4253
184a718f 42542014-05-23 Thomas Schwinge <thomas@codesourcery.com>
4255
6ce915ef 4256 * c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
4257 initialization.
4258
184a718f 4259 * c-parser.c (c_parser_omp_target): Return bool values.
4260
22ac3f78 42612014-05-22 Thomas Schwinge <thomas@codesourcery.com>
4262
4263 * c-parser.c (c_parser_omp_clause_thread_limit): Rename
4264 num_teams_loc variable to num_thread_limit_loc.
4265
3ab4693e 42662014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
4267
4268 * c-array-notation.c (expand_array_notations): Use void_node
4269 instead of void_zero_node.
4270
25a27413 42712014-05-17 Trevor Saunders <tsaunders@mozilla.com>
4272
4273 * c-decl.c (finish_struct): Adjust.
4274 (finish_enum): Likewise.
4275 (bind): Adjust.
4276 (record_inline_static): Likewise.
4277 (push_scope): Likewise.
4278 (make_label): Likewise.
4279 (lookup_label_for_goto): Likewise.
4280 (finish_struct): Likewise.
4281 (finish_enum): Likewise.
4282 (store_parm_decls): Likewise.
4283 (c_push_function_context): Likewise.
4284 * c-lang.h: Remove usage of variable_size gty attribute.
4285 * c-parser.c (c_parse_init): Adjust.
4286 (c_parse_file): Likewise.
4287
172b8440 42882014-05-13 Marek Polacek <polacek@redhat.com>
4289
4290 PR c/61162
4291 * c-typeck.c (convert_for_assignment): Pass location to
4292 WARN_FOR_ASSIGNMENT instead of input_location.
4293
c9e51d25 42942014-05-10 Marek Polacek <polacek@redhat.com>
4295
4296 * c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
4297 maybe_warn_string_init.
4298 (c_parser_postfix_expression_after_paren_type): Pass type_loc to
4299 maybe_warn_string_init.
4300 * c-tree.h (maybe_warn_string_init): Update declaration.
4301 * c-typeck.c (maybe_warn_string_init): Add location parameter.
4302 Call pedwarn_init with loc instead of with input_location.
4303 (digest_init): Pass init_loc to maybe_warn_string_init.
4304 (pop_init_level): Call pedwarn_init with loc instead of with
4305 input_location.
4306 (set_init_index): Likewise.
4307 (process_init_element): Likewise.
4308
53de1631 43092014-05-09 Marek Polacek <polacek@redhat.com>
4310
4311 PR c/61096
4312 * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
4313 (c_parser_initelt): Pass location to set_init_label. Pass array index
4314 location to set_init_index.
4315 * c-tree.h (push_init_level): Update declaration.
4316 (pop_init_level): Likewise.
4317 (set_init_index): Likewise.
4318 (set_init_label): Likewise.
4319 * c-typeck.c (error_init): Add location parameter. Call error_at
4320 instead of error.
4321 (digest_init): Pass init_loc to error_init.
4322 (really_start_incremental_init):
4323 (push_init_level): Add location parameter. Pass loc to pop_init_level
4324 and error_init.
4325 (pop_init_level): Likewise.
4326 (set_designator): Add location parameter. Pass loc to pop_init_level,
4327 push_init_level, and error_init.
4328 (set_init_index): Add location parameter. Pass loc to error_init and
4329 set_designator.
4330 (set_init_label): Likewise.
4331 (output_init_element): Pass loc to error_init.
4332 (process_init_element): Pass loc to error_init, pop_init_level,
4333 pedwarn_init, and push_init_level.
4334
3e5a8b00 43352014-05-09 Marek Polacek <polacek@redhat.com>
4336
4337 PR c/50459
4338 * c-parser.c (c_parser_attributes): Parse the arguments as an
4339 expression-list if the attribute takes identifier.
4340
c2c4ae8d 43412014-05-08 Marek Polacek <polacek@redhat.com>
4342
4343 PR c/61053
4344 * c-decl.c (grokdeclarator): Use min_align_of_type instead of
4345 TYPE_ALIGN_UNIT.
4346
2026249a 43472014-05-08 Marek Polacek <polacek@redhat.com>
4348
4349 PR c/61077
4350 * c-decl.c (start_function): Warn for _Atomic-qualified return type
4351 of main.
4352
960d5a55 43532014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
4354 Mike Stump <mikestump@comcast.net>
4355 Richard Sandiford <rdsandiford@googlemail.com>
4356
4357 * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
4358 (finish_enum): Use wide-int interfaces.
4359 * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
4360 * c-typeck.c (build_c_cast): Likewise.
4361 (set_nonincremental_init_from_string): Likewise.
4362 (c_tree_equal): Likewise.
4363
e0e14cbd 43642014-05-02 Marek Polacek <polacek@redhat.com>
4365
4366 PR c/25801
4367 * c-typeck.c (c_size_in_bytes): Update comment. Don't call error.
4368 Return size_one_node when the type is not complete.
4369 (pointer_diff): Remove comment.
4370 (build_unary_op): Improve error messages.
4371
27ff10cb 43722014-05-02 Marek Polacek <polacek@redhat.com>
4373
4374 * c-typeck.c (c_finish_return): Separate warning_at calls.
4375
68410ce9 43762014-05-02 Marek Polacek <polacek@redhat.com>
4377
4378 * c-tree.h (error_init): Remove declaration.
4379 (pedwarn_init): Likewise.
4380 * c-typeck.c (error_init): Make static and move above.
4381 (pedwarn_init): Likewise.
4382 (warning_init): Move above.
4383 (maybe_warn_string_init): Likewise.
4384
e8e27117 43852014-05-01 Jeff Law <law@redhat.com>
4386
4387 Revert:
4388
4389 2014-04-24 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4390 * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
4391 avoid goto.
4392
971df357 43932014-05-02 Marek Polacek <polacek@redhat.com>
4394
4395 PR c/60784
4396 * c-typeck.c (push_init_level): Set constructor_designated to
4397 p->designated for structures.
4398
de548fe5 43992014-05-01 Marek Polacek <polacek@redhat.com>
4400
4401 PR c/60915
4402 * c-parser.c (c_parser_declaration_or_fndef): Give better error if
4403 function-definition has an attribute after the declarator.
4404
053a0ded 44052014-05-01 Marek Polacek <polacek@redhat.com>
4406
4407 PR c/60257
4408 * c-typeck.c (warning_init): Add location_t parameter. Call
4409 warning_at instead of warning.
4410 (push_init_level): Pass input_location to warning_init.
4411 (add_pending_init): Add location_t parameter. Pass loc to
4412 warning_init.
4413 (set_nonincremental_init): Pass input_location to add_pending_init.
4414 (set_nonincremental_init_from_string): Likewise.
4415 (output_init_element): Pass loc to warning_init and to
4416 add_pending_init.
4417
694296f2 44182014-05-01 Marek Polacek <polacek@redhat.com>
4419
4420 PR c/43395
4421 * c-typeck.c (c_finish_return): Distinguish between label and variable
4422 when warning about returning local address.
4423
86bbd7f9 44242014-05-01 Marek Polacek <polacek@redhat.com>
4425
4426 PR c/29467
4427 * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
4428 in C89 mode.
4429
e4ab2ef3 44302014-05-01 Marek Polacek <polacek@redhat.com>
4431
4432 PR c/43245
4433 * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
4434 instead of 0 to WARN_FOR_QUALIFIERS.
4435
ca3999cb 44362014-05-01 Marek Polacek <polacek@redhat.com>
4437
4438 PR c/56989
4439 * c-typeck.c (default_conversion): Use better location for
4440 error call.
4441
52cc0072 44422014-04-30 Marek Polacek <polacek@redhat.com>
4443
4444 * c-typeck.c (build_binary_op): Call ubsan_instrument_division
4445 also when SANITIZE_FLOAT_DIVIDE is on.
4446
af379dd3 44472014-04-30 Marek Polacek <polacek@redhat.com>
4448
4449 PR c/60139
4450 * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
4451 and pedwarn_init. Use loc insted of input_location.
4452
b069c2a0 44532014-04-30 Marek Polacek <polacek@redhat.com>
4454
4455 PR c/60351
4456 * c-typeck.c (build_binary_op): Use location when warning about
4457 shift count.
4458
4a026b48 44592014-04-25 Marek Polacek <polacek@redhat.com>
4460
4461 PR c/18079
4462 * c-decl.c (diagnose_mismatched_decls): Warn for mismatched
4463 always_inline/noinline and hot/cold attributes.
4464
adc93f31 44652014-04-25 Marek Polacek <polacek@redhat.com>
4466
4467 PR c/60114
4468 * c-parser.c (c_parser_initelt): Pass input_location to
4469 process_init_element.
4470 (c_parser_initval): Pass loc to process_init_element.
4471 * c-tree.h (process_init_element): Adjust declaration.
4472 * c-typeck.c (push_init_level): Pass input_location to
4473 process_init_element.
4474 (pop_init_level): Likewise.
4475 (set_designator): Likewise.
4476 (output_init_element): Add location_t parameter. Pass loc to
4477 digest_init.
4478 (output_pending_init_elements): Pass input_location to
4479 output_init_element.
4480 (process_init_element): Add location_t parameter. Pass loc to
4481 output_init_element.
4482
e1029911 44832014-04-24 Jakub Jelinek <jakub@redhat.com>
4484
4485 * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
4486 atomic-clause, allow comma in between atomic-clause and
4487 seq_cst.
4488
9f0a7bc6 44892014-04-22 Jakub Jelinek <jakub@redhat.com>
4490
4491 PR c/59073
4492 * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
4493 fails, don't set OM_PARALLEL_COMBINED and return NULL.
4494
094da06d 44952014-04-12 Igor Zamyatin <igor.zamyatin@intel.com>
4496
4497 PR middle-end/60469
4498 * c-array-notation.c (fix_builtin_array_notation_fn): Use
4499 create_tmp_var instead build_decl for creating temps.
4500 (build_array_notation_expr): Likewise.
4501 (fix_conditional_array_notations_1): Likewise.
4502 (fix_array_notation_expr): Likewise.
4503 (fix_array_notation_call_expr): Likewise.
4504
5a672e62 45052014-03-28 Jakub Jelinek <jakub@redhat.com>
4506
4507 PR c++/60689
4508 * c-tree.h (c_build_function_call_vec): New prototype.
4509 * c-typeck.c (build_function_call_vec): Don't call
4510 resolve_overloaded_builtin here.
4511 (c_build_function_call_vec): New wrapper function around
4512 build_function_call_vec. Call resolve_overloaded_builtin here.
4513 (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
4514 Call c_build_function_call_vec instead of build_function_call_vec.
4515 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
4516 * c-decl.c (finish_decl): Likewise.
4517
f40f5e0e 45182014-03-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
4519
4520 PR c/55383
4521 * c-typeck.c: Use correct format string in cast-qual warning
4522
9ec099a3 45232014-03-07 Thomas Schwinge <thomas@codesourcery.com>
4524
4525 * c-decl.c (c_decl_attributes): Use
4526 lang_hooks.types.omp_mappable_type.
4527 * c-typeck.c (c_finish_omp_clauses): Likewise.
4528
3bfdc94f 45292014-03-06 Marek Polacek <polacek@redhat.com>
4530
4531 PR c/60197
4532 * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
4533 of checking tree code.
4534
8f1128f8 45352014-02-19 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4536
4537 * c-parser.c (c_parser_declspecs): Replace call to error by error_at.
4538 (c_parser_parameter_declaration): Likewise.
4539
977b1853 45402014-02-19 Marek Polacek <polacek@redhat.com>
4541
4542 PR c/60195
4543 * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
4544 Call mark_exp_read on exp.value.
4545 (build_atomic_assign): Set TREE_NO_WARNING on val and old. Set
4546 TREE_ADDRESSABLE on old instead of val.
4547 (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
4548
825cd6ef 45492014-02-07 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4550
4551 * c-parser.c (c_parser_get_builtin_args): Replace calls to
4552 C_EXPR_APPEND by vec_safe_push.
4553 * c-tree.h (C_EXPR_APPEND): Remove.
4554
ec761d5a 45552014-01-31 Marek Polacek <polacek@redhat.com>
4556
4557 PR c/59963
4558 * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
4559 build_function_call_vec.
4560 (build_function_call): Likewise.
4561 (build_atomic_assign): Likewise.
4562 (build_function_call_vec): Add arg_loc parameter. Use it.
4563 (convert_arguments): Likewise.
4564 (convert_for_assignment): Rename rhs_loc to expr_loc.
4565 * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
4566 (c_parser_objc_keywordexpr): Likewise.
4567 (c_parser_postfix_expression_after_primary): Call
4568 build_function_call_vec with expr_loc rather than op_loc.
4569 Call c_parser_expr_list to fill arg_loc. Pass arg_loc to
4570 build_function_call_vec.
4571 (c_parser_expr_list): Add locations parameter. Fill it with locations
4572 of function arguments.
4573 * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
4574
22a75734 45752014-01-30 Marek Polacek <polacek@redhat.com>
4576
4577 PR c/59940
4578 * c-typeck.c (build_function_call_vec): Use loc parameter.
4579 (convert_arguments): Add location parameter. Use it.
4580 (ep_convert_and_check): Likewise.
4581 (build_atomic_assign): Adjust convert_for_assignment call.
4582 (build_modify_expr): Likewise.
4583 (digest_init): Likewise.
4584 (c_finish_return): Likewise.
4585 (build_conditional_expr): Adjust ep_convert_and_check calls.
4586 (convert_for_assignment): Add rhs_loc parameter. Use it.
4587 (build_binary_op): Adjust convert_and_check and ep_convert_and_check
4588 calls.
4589
29f580ac 45902014-01-30 Richard Biener <rguenther@suse.de>
4591
4592 PR c/59905
4593 * c-typeck.c (build_function_call_vec): Do not replace calls
4594 to a function via an incompatible type with a runtime abort.
4595
a89e6c15 45962014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
4597
4598 * c-parser.c (c_parser_declaration_or_fndef): Replaced
4599 flag_enable_cilkplus with flag_cilkplus.
4600 (c_parser_direct_declarator_inner): Likewise.
4601 (c_parser_attribute_any_word): Likewise.
4602 (c_parser_attributes): Likewise.
4603 (c_parser_compound_statement): Likewise.
4604 (c_parser_statement_after_labels): Likewise.
4605 (c_parser_if_statement): Likewise.
4606 (c_parser_switch_statement): Likewise.
4607 (c_parser_do_statement): Likewise.
4608 (c_parser_for_statement): Likewise.
4609 (c_parser_unary_expression): Likewise.
4610 (c_parser_postfix_expression): Likewise.
4611 (c_parser_postfix_expression_after_primary): Likewise.
4612 (c_parser_postfix_expression_after_primary): Likewise.
4613 (c_parser_omp_clause_name): Likewise.
4614 (c_finish_omp_declare_simd): Likewise.
4615 (c_parser_cilk_verify_simd): Likewise.
4616 * c-typeck.c (build_array_ref): Likewise.
4617 (build_function_call_vec): Likewise.
4618 (convert_arguments): Likewise.
4619 (build_compound_expr): Likewise.
4620 (c_finish_return): Likewise.
4621 (c_finish_if_stmt): Likewise.
4622 (c_finish_loop): Likewise.
4623 (build_binary_op): Likewise.
4624
2623625f 46252014-01-23 Marek Polacek <polacek@redhat.com>
4626
4627 PR c/59846
4628 * c-typeck.c (parser_build_binary_op): Use location instead of
4629 input_location.
4630 (build_binary_op): Pass location to shorten_compare.
4631
46da3601 46322014-01-23 Marek Polacek <polacek@redhat.com>
4633
4634 PR c/58346
4635 * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
4636 an empty aggregate.
4637
9a9db3c1 46382014-01-23 Marek Polacek <polacek@redhat.com>
4639
4640 PR c/59871
4641 * c-typeck.c (build_compound_expr): Warn even for right-hand operand
4642 of a comma expression.
4643 (emit_side_effect_warnings): Likewise.
4644
69c9b607 46452014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
4646
4647 PR c/59825
4648 * c-array-notation.c (expand_array_notation_exprs): Rewrote this
4649 function to use walk_tree and moved a lot of its functionality to
4650 expand_array_notations.
4651 (expand_array_notations): New function.
4652
7e005ab5 46532014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
4654
4655 * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
4656 attribute an attribute without value.
4657
d6779b5f 46582014-01-23 Jakub Jelinek <jakub@redhat.com>
4659
4660 PR middle-end/58809
4661 * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
4662 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
4663
ec431042 46642014-01-22 Marek Polacek <polacek@redhat.com>
4665
4666 PR c/59891
4667 * c-typeck.c (build_conditional_expr): Call c_fully_fold instead
4668 of remove_c_maybe_const_expr on op1 and op2.
4669
1248c663 46702014-01-15 Jakub Jelinek <jakub@redhat.com>
4671
4672 PR c/58943
4673 * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
4674 effects, preevaluate rhs using SAVE_EXPR first.
4675
0bc789fc 46762014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
4677
4678 PR c++/59631
4679 * c-parser.c (c_parser_postfix_expression): Replaced consecutive if
4680 statements with if-elseif statements.
4681
6685d11c 46822014-01-06 Marek Polacek <polacek@redhat.com>
4683
4684 PR c/57773
4685 * c-decl.c (check_bitfield_type_and_width): Warn for implementation
4686 defined bit-field types only in ISO C.
4687
3aea1f79 46882014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
4689
4690 Update copyright years
4691
e4f22041 46922014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
4693
4694 * c-array-notation.c: Use the standard form for the copyright notice.
4695
74acc703 46962013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com>
4697
4698 * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
4699 (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
4700 field in parser is not empty. If not-empty, call the function
4701 c_parser_finish_omp_declare_simd.
4702 (c_parser_cilk_clause_vectorlength): Modified function to be shared
4703 between SIMD-enabled functions and #pragma simd. Added new parameter.
4704 (c_parser_cilk_all_clauses): Modified the usage of the function
4705 c_parser_cilk_clause_vectorlength as mentioned above.
4706 (c_parser_cilk_simd_fn_vector_attrs): New function.
4707 (c_finish_cilk_simd_fn_tokens): Likewise.
4708 (is_cilkplus_vector_p): Likewise.
4709 (c_parser_omp_clause_name): Added checking for "vectorlength,"
4710 "nomask," and "mask" strings in clause name.
4711 (c_parser_omp_all_clauses): Added 3 new case statements:
4712 PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
4713 PRAGMA_CILK_CLAUSE_NOMASK.
4714 (c_parser_attributes): Added a cilk_simd_fn_tokens parameter. Added a
4715 check for vector attribute and if so call the function
4716 c_parser_cilk_simd_fn_vector_attrs. Also, when Cilk plus is enabled,
4717 called the function c_finish_cilk_simd_fn_tokens.
4718 (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
4719 parser field is non-empty. If so, parse them as you would parse
4720 the omp declare simd pragma.
4721 (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
4722 Added a check when step is a parameter and flag it as error.
4723 (CILK_SIMD_FN_CLAUSE_MASK): New #define.
4724 (c_parser_cilk_clause_name): Changed pragma_cilk_clause to
4725 pragma_omp_clause.
4726
395dc01c 47272013-12-17 Thomas Schwinge <thomas@codesourcery.com>
4728
4729 * c-parser.c (c_parser_omp_parallel): Fix description.
4730
433e804e 47312013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com>
4732
4733 * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
4734 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
4735 (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
4736 * c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
4737
a179a7dc 47382013-12-04 Joseph Myers <joseph@codesourcery.com>
4739
4740 PR c/52023
4741 * c-parser.c (c_parser_alignas_specifier): Use
4742 c_sizeof_or_alignof_type instead of c_alignof.
4743 (c_parser_alignof_expression): Likewise, with min_alignof
4744 parameter depending on alignof spelling used.
4745
bdf1e3c7 47462013-12-04 Marek Polacek <polacek@redhat.com>
4747
4748 PR c/54113
4749 * c-decl.c (start_function): Don't warn for missing prototype for
4750 inline functions.
4751
05e8f674 47522013-12-03 Marek Polacek <polacek@redhat.com>
4753
4754 PR c/59351
4755 * c-decl.c (build_compound_literal): Allow compound literals with
4756 empty initial value.
4757
39f74d66 47582013-12-02 Joseph Myers <joseph@codesourcery.com>
4759
4760 PR c/58235
4761 * c-typeck.c (build_modify_expr): Diagnose assignment to
4762 expression with array type.
4763
f221adca 47642013-11-29 Joseph Myers <joseph@codesourcery.com>
4765
4766 PR c/42262
4767 * c-typeck.c (process_init_element): Do not treat a string as
4768 initializing a whole array when used with a designator for an
4769 individual element.
4770
75bce827 47712013-11-29 Joseph Myers <joseph@codesourcery.com>
4772
4773 PR c/57574
4774 * c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
4775 an inline function following a static declaration.
4776
dc133326 47772013-11-28 Jakub Jelinek <jakub@redhat.com>
4778
4779 PR c/59310
4780 * c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
4781 to p_name before calling c_parser_omp_teams instead of after.
4782 (c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
4783 argument. Remove unused p_name variable.
4784
d09768a4 47852013-11-27 Aldy Hernandez <aldyh@redhat.com>
4786 Jakub Jelinek <jakub@redhat.com>
4787
4788 * c-decl.c (c_builtin_function_ext_scope): Avoid binding if
4789 external_scope is NULL.
4790
73fd9cbe 47912013-11-27 Tom de Vries <tom@codesourcery.com>
4792 Marc Glisse <marc.glisse@inria.fr>
4793
4794 PR c++/59032
4795 * c-typeck.c (build_unary_op): Allow vector increment and decrement.
4796
bc61cadb 47972013-11-22 Andrew MacLeod <amacleod@redhat.com>
4798
4799 * c-typeck.c: Add required include files from gimple.h.
4800
3df42822 48012013-11-22 David Malcolm <dmalcolm@redhat.com>
4802
4803 * c-decl.c (define_label, shadow_tag_warned)
4804 (check_bitfield_type_and_width, grokdeclarator, grokparms,
4805 store_parm_decls_newstyle, store_parm_decls_oldstyle)
4806 (declspecs_add_type): Remove use of in_system_header macro.
4807 * c-parser.c (c_parser_unary_expression): Likewise.
4808 * c-typeck.c (store_init_value, process_init_element)
4809 (c_start_case): Likewise.
4810
4811 * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
4812 macro.
4813
4814 * c-parser.c (c_parser_set_source_position_from_token): Remove
4815 reference to in_system_header from comment.
4816
08f817b3 48172013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4818
4819 * c-decl.c (grokdeclarator): Update comment to refer to
4820 tree_to_[su]hwi rather than tree_low_cst.
4821
6a0712d4 48222013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4823
4824 * c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
4825 tree_to_uhwi throughout.
4826
fcb97e84 48272013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4828
4829 * c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
4830 throughout.
4831
35ec552a 48322013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4833
4834 * c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
4835 throughout.
4836
f2697631 48372013-11-15 Aldy Hernandez <aldyh@redhat.com>
4838
4839 * c-parser.c (c_parser_cilk_simd): New.
4840 (c_parser_cilk_verify_simd): New.
4841 (c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
4842 (c_parser_omp_for_loop): Add case for NE_EXPR.
4843 Set c_break_label for CILK_SIMD.
4844 (c_parser_cilk_clause_vectorlength): New.
4845 (c_parser_cilk_clause_linear): New.
4846 (c_parser_cilk_clause_name): New.
4847 (c_parser_cilk_all_clauses): New.
4848 * c-typeck.c (build_unary_op): Pass location argument to
4849 readonly_error.
4850 (build_modify_expr): Same.
4851 (build_asm_expr): Same.
4852 (c_finish_bc_stmt): Error on break/continue in loops.
4853
e795d6e1 48542013-11-14 Andrew MacLeod <amacleod@redhat.com>
4855
4856 * c-typeck.c: Include only gimplify.h and gimple.h as needed.
4857
9ed99284 48582013-11-14 Diego Novillo <dnovillo@google.com>
4859
4860 * c-decl.c: Include print-tree.h.
4861 Include stor-layout.h.
4862 Include varasm.h.
4863 Include attribs.h.
4864 Include stringpool.h.
4865 * c-lang.c: Include fold-const.h.
4866 * c-parser.c: Include stringpool.h.
4867 Include attribs.h.
4868 Include stor-layout.h.
4869 Include varasm.h.
4870 Include trans-mem.h.
4871 * c-typeck.c: Include stor-layout.h.
4872 Include trans-mem.h.
4873 Include varasm.h.
4874 Include stmt.h.
4875
4fba5eb9 48762013-11-13 Joseph Myers <joseph@codesourcery.com>
4877
4878 * c-tree.h (c_typespec_keyword): Add cts_auto_type.
4879 * c-decl.c (declspecs_add_type, finish_declspecs): Handle
4880 __auto_type.
4881 * c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
4882 (c_parser_attribute_any_word, c_parser_objc_selector): Handle
4883 RID_AUTO_TYPE.
4884 (c_parser_declspecs): Take argument AUTO_TYPE_OK.
4885 (c_parser_declaration_or_fndef, c_parser_struct_declaration)
4886 (c_parser_declarator, c_parser_direct_declarator_inner)
4887 (c_parser_parameter_declaration, c_parser_type_name): All callers
4888 changed.
4889 (c_parser_declaration_or_fndef): Handle declarations with type
4890 determined from the initializer.
4891
a8783bee 48922013-11-12 Andrew MacLeod <amacleod@redhat.com>
4893
e795d6e1 4894 * c-typeck.c: Include gimplify.h.
a8783bee 4895
d184e0c0 48962013-11-12 Joseph Myers <joseph@codesourcery.com>
4897
4898 * c-tree.h (struct c_declspecs): Add thread_gnu_p field.
4899 * c-parser.c (c_parser_declspecs): Mention _Thread_local in
4900 comment.
4901 * c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
4902 or _Thread_local as appropriate in diagnostics.
4903 (build_null_declspecs): Initialize ret->thread_gnu_p.
4904 (declspecs_add_scspec): Handle either __thread or _Thread_local
4905 for RID_THREAD. Diagnose _Thread_local for pre-C11 standards if
4906 pedantic. Do not disallow _Thread_local extern and _Thread_local
4907 static.
4908
b560fabd 49092013-11-07 Joseph Myers <joseph@codesourcery.com>
4910 Andrew MacLeod <amacleod@redhat.com>
4911
4912 * c-aux-info.c (gen_type): Handle atomic qualifier.
4913 * c-decl.c (validate_proto_after_old_defn): Do not remove atomic
4914 qualifiers when compating types.
4915 (shadow_tag_warned): Handle atomic_p in declspecs.
4916 (quals_from_declspecs): Likewise.
4917 (start_decl): Use c_type_promotes_to when promoting argument
4918 types.
4919 (grokdeclarator): Handle _Atomic.
4920 (get_parm_info): Diagnose any qualifier on "void" as only
4921 parameter.
4922 (store_parm_decls_oldstyle): Do not remove atomic qualifiers when
4923 comparing types. Use c_type_promotes_to when promoting argument
4924 types.
4925 (finish_function): Use c_type_promotes_to when promoting argument
4926 types.
4927 (build_null_declspecs): Handle atomic_p in declspecs.
4928 (declspecs_add_qual): Handle RID_ATOMIC.
4929 * c-parser.c (c_token_starts_typename, c_token_is_qualifier)
4930 (c_token_starts_declspecs): Handle RID_ATOMIC.
4931 (c_parser_declspecs): Handle atomic type specifiers and
4932 qualifiers.
4933 (c_parser_typeof_specifier): Remove const and _Atomic qualifiers
4934 from types of expressions with atomic type.
4935 (c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
4936 (c_parser_attribute_any_word): Handle RID_ATOMIC.
4937 (c_parser_initializer, c_parser_initelt, c_parser_initval)
4938 (c_parser_statement_after_labels, c_parser_switch_statement)
4939 (c_parser_for_statement, c_parser_expr_no_commas)
4940 (c_parser_conditional_expression, c_parser_binary_expression)
4941 (c_parser_cast_expression, c_parser_unary_expression)
4942 (c_parser_postfix_expression)
4943 (c_parser_postfix_expression_after_primary, c_parser_expression):
4944 Use convert_lvalue_to_rvalue.
4945 (c_parser_expression_conv, c_parser_expr_list): Document
4946 conversion of lvalues to rvalues. Use convert_lvalue_to_rvalue.
4947 (c_parser_objc_synchronized_statement): Use
4948 convert_lvalue_to_rvalue.
4949 (c_parser_objc_selector): Handle RID_ATOMIC.
4950 (c_parser_objc_receiver, c_parser_array_notation): Use
4951 convert_lvalue_to_rvalue.
4952 * c-tree.h (ctsk_typeof): Adjust comment to mention use for
4953 _Atomic (type-name).
4954 (struct c_declspecs): Add atomic_p field.
4955 (convert_lvalue_to_rvalue): Declare.
4956 * c-typeck.c (c_type_promotes_to): Promote atomic types to
4957 corresponding atomic types.
4958 (qualify_type): Don't add _Atomic qualifiers from second argument.
4959 (comp_target_types): Do not allow _Atomic mismatches.
4960 (type_lists_compatible_p): Do not remove atomic qualifiers when
4961 comparing types.
4962 (really_atomic_lvalue, convert_lvalue_to_rvalue)
4963 (build_atomic_assign): New functions.
4964 (build_unary_op): Use build_atomic_assign for atomic increment and
4965 decrement.
4966 (build_conditional_expr): Do not treat _Atomic void as a qualified
4967 version of void.
4968 (build_modify_expr): Use build_atomic_assign for atomic LHS.
4969 (find_anonymous_field_with_type, convert_to_anonymous_field)
4970 (convert_for_assignment): Do not remove atomic qualifiers when
4971 comparing types.
4972 (digest_init): Do not accept initialization of arrays of atomic
4973 elements by string constants.
4974 (build_asm_expr): Use convert_lvalue_to_rvalue.
4975 (build_binary_op): Do not treat _Atomic void as a qualified
4976 version of void.
4977
8b023e7c 49782013-11-06 DJ Delorie <dj@redhat.com>
4979
4980 * c-decl.c (locate_old_decl): If a previous conflicting decl is
4981 both explicit and builtin, print the location of the explicit one.
4982
c630ef93 49832013-11-05 Tobias Burnus <burnus@net-b.de>
4984
4985 * c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
4986 c_parser_omp_distribute, c_parser_omp_teams,
4987 c_parser_omp_target, c_parser_omp_declare): Handle
4988 -fopenmp-simd.
4989
2c4c3477 49902013-11-03 Marek Polacek <polacek@redhat.com>
4991
4992 * c-decl.c (grokdeclarator): Add VLA instrumentation.
4993
df205251 49942013-11-01 Jakub Jelinek <jakub@redhat.com>
4995
4996 * c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
4997 check_dup_generic at the end, unless remove is true.
4998 (c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
4999 remove = true;.
5000 (c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
5001
23871d0c 50022013-10-31 Jakub Jelinek <jakub@redhat.com>
5003
5004 * c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
5005 with decl that is not pointer nor array.
5006
d037099f 50072013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
5008
5009 * c-decl.c (finish_function): Added a call for insert_cilk_frame when
5010 a spawning function is found.
5011 * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
5012 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
5013 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
5014 * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
5015 case.
5016 (c_parser_postfix_expression): Added RID_CILK_SPAWN case.
5017 * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
5018 expr.
5019 (c_finish_return): Added a check to reject _Cilk_spawn in return
5020 expression.
5021 (build_cilk_spawn): New function.
5022 (build_cilk_sync): Likewise.
5023 * Makefile.in (c-decl.o): Added cilk.h in dependency list.
5024
4c90c04c 50252013-10-27 Tobias Burnus <burnus@net-b.de>
5026
5027 PR other/33426
5028 * c-parser.c (c_parser_while_statement, c_parser_while_statement,
5029 c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
5030 (c_parser_statement_after_labels): Update calls.
5031
48a972c8 50322013-10-24 Tobias Burnus <burnus@net-b.de>
4644b593 5033
5034 PR other/33426
5035 * c-parser.c (c_parser_pragma, c_parser_for_statement):
5036 Handle PRAGMA_IVDEP.
5037 (c_parser_statement_after_labels): Update call.
5038
12f86df0 50392013-10-24 Marek Polacek <polacek@redhat.com>
5040
5041 * c-parser.c (c_parser_struct_declaration): Add a comment.
5042 (c_parser_declarator): Don't allow _Alignas here.
5043
7740abd8 50442013-10-17 Andrew MacLeod <amacleod@redhat.com>
5045
5046 * c-parser.c: Include omp-low.h.
5047 * c-typeck.c: Likewise.
5048
43d03c23 50492013-10-17 Marek Polacek <polacek@redhat.com>
5050
5051 PR c/58267
5052 * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
5053 Document syntax of the array-declarator.
5054 (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
5055 are not permitted.
5056 (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
5057 (c_parser_struct_declaration): Likewise.
5058 (c_parser_declarator): Likewise.
5059 (c_parser_direct_declarator_inner): Likewise.
5060 (c_parser_parameter_declaration): Likewise.
5061 (c_parser_type_name): Likewise.
5062
bc7bff74 50632013-10-11 Jakub Jelinek <jakub@redhat.com>
5064
5065 * c-lang.h (current_omp_declare_target_attribute): New extern
5066 decl.
5067 * c-parser.c: Include c-lang.h.
5068 (struct c_parser): Change tokens to c_token *.
5069 Add tokens_buf field. Change tokens_avail type to unsigned int.
5070 (c_parser_consume_token): If parser->tokens isn't
5071 &parser->tokens_buf[0], increment parser->tokens.
5072 (c_parser_consume_pragma): Likewise.
5073 (enum pragma_context): Add pragma_struct and pragma_param.
5074 (c_parser_external_declaration): Adjust
5075 c_parser_declaration_or_fndef caller.
5076 (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
5077 argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
5078 Adjust recursive call.
5079 (c_parser_struct_or_union_specifier): Use pragma_struct instead
5080 of pragma_external.
5081 (c_parser_parameter_declaration): Use pragma_param instead of
5082 pragma_external.
5083 (c_parser_compound_statement_nostart, c_parser_label,
5084 c_parser_for_statement): Adjust
5085 c_parser_declaration_or_fndef callers.
5086 (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
5087 it through to c_parser_conditional_expression.
5088 (c_parser_conditional_expression): Add omp_atomic_lhs argument,
5089 pass it through to c_parser_binary_expression. Adjust recursive
5090 call.
5091 (c_parser_binary_expression): Remove prec argument, add
5092 omp_atomic_lhs argument instead. Always start from PREC_NONE, if
5093 omp_atomic_lhs is non-NULL and one of the arguments of toplevel
5094 binop matches it, use build2 instead of parser_build_binary_op.
5095 (c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
5096 PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
5097 PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
5098 Handle pragma_struct and pragma_param the same as pragma_external.
5099 (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
5100 (c_parser_omp_variable_list): Parse array sections for
5101 OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
5102 (c_parser_omp_clause_collapse): Fully fold collapse expression.
5103 (c_parser_omp_clause_reduction): Handle user defined reductions.
5104 (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
5105 c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
5106 c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
5107 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
5108 c_parser_omp_clause_depend, c_parser_omp_clause_map,
5109 c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
5110 c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
5111 c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
5112 (c_parser_omp_all_clauses): Add finish_p argument. Don't call
5113 c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
5114 (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
5115 present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms.
5116 (c_parser_omp_for_loop): Add CODE argument, pass it through
5117 to c_finish_omp_for. Change last argument to cclauses,
5118 and adjust uses to grab parallel clauses from the array of all
5119 the split clauses. Adjust c_parser_binary_expression,
5120 c_parser_declaration_or_fndef and c_finish_omp_for callers.
5121 (omp_split_clauses): New function.
5122 (c_parser_omp_simd): New function.
5123 (c_parser_omp_for): Add p_name, mask and cclauses arguments.
5124 Allow the function to be called also when parsing combined constructs,
5125 and call c_parser_omp_simd when parsing for simd.
5126 (c_parser_omp_sections_scope): If section-sequence doesn't start with
5127 #pragma omp section, require exactly one structured-block instead of
5128 sequence of statements.
5129 (c_parser_omp_sections): Add p_name, mask and cclauses arguments.
5130 Allow the function to be called also when parsing combined constructs.
5131 (c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
5132 Allow the function to be called also when parsing combined
5133 constructs.
5134 (c_parser_omp_taskgroup, c_parser_omp_cancel,
5135 c_parser_omp_cancellation_point, c_parser_omp_distribute,
5136 c_parser_omp_teams, c_parser_omp_target_data,
5137 c_parser_omp_target_update, c_parser_omp_target,
5138 c_parser_omp_declare_simd, c_finish_omp_declare_simd,
5139 c_parser_omp_declare_target, c_parser_omp_end_declare_target,
5140 c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
5141 (c_parser_omp_construct): Add p_name and mask vars. Handle
5142 PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
5143 PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel
5144 and c_parser_omp_sections callers.
5145 (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
5146 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
5147 OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
5148 (OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
5149 (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
5150 OMP_CLAUSE_DEPEND.
5151 (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
5152 OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
5153 OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
5154 OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
5155 OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
5156 * c-typeck.c: Include tree-inline.h.
5157 (c_finish_omp_cancel, c_finish_omp_cancellation_point,
5158 handle_omp_array_sections_1, handle_omp_array_sections,
5159 c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
5160 (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
5161 user defined reductions.
5162 (c_tree_equal): New function.
5163 * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
5164 c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
5165 c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
5166 c_check_omp_declare_reduction_r): New prototypes.
5167 * c-decl.c (current_omp_declare_target_attribute): New variable.
5168 (c_decl_attributes): New function.
5169 (start_decl, start_function): Use it instead of decl_attributes.
5170 (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
5171 c_omp_reduction_decl, c_omp_reduction_lookup,
5172 c_check_omp_declare_reduction_r): New functions.
5173
3ce7d1bd 51742013-09-25 Tom Tromey <tromey@redhat.com>
5175
5176 * Make-lang.in (c/gccspec.o): Remove.
5177 (CFLAGS-c/gccspec.o): New variable.
5178 (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
5179 (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
5180 (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
5181
96da1c1d 51822013-09-25 Tom Tromey <tromey@redhat.com>
5183
5184 * Make-lang.in (c/gccspec.o): Don't use subshell.
5185
1b309377 51862013-09-18 Marek Polacek <polacek@redhat.com>
5187
5188 PR sanitize/58443
5189 * c-typeck.c (build_binary_op): Properly honor -fsanitize options.
5190 Remove unnecessary check.
5191
05f893e1 51922013-09-18 Marek Polacek <polacek@redhat.com>
5193
5194 PR sanitizer/58411
5195 * c-typeck.c (build_binary_op): Don't sanitize function if it has the
5196 no_sanitize_undefined attribute.
5197
bda0b9d2 51982013-09-13 Kai Tietz <ktietz@redhat.com>
5199
5200 PR target/57848
5201 * c-decl.c (c_builtin_function_ext_scope): Remove
5202 wrong assumption that it is never called on prexisting
5203 symbol.
5204
73437615 52052013-09-08 Joern Rennecke <joern.rennecke@embecosm.com>
5206
5207 * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
5208
eaab24b9 52092013-09-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
5210
5211 * c-objc-common.c (c_tree_printer): Tidy.
5212
9e46467d 52132013-08-30 Marek Polacek <polacek@redhat.com>
5214
5215 * c-typeck.c (build_binary_op): Add division by zero and shift
5216 instrumentation.
5217
f8234178 52182013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
f9086116 5219 Joseph Myers <joseph@codesourcery.com>
f8234178 5220
c90a7d10 5221 PR c/35649
f8234178 5222 * c-typeck.c (c_common_type): Prefer double_type_node over
5223 other REAL_TYPE types with the same precision.
5224 (convert_arguments): Likewise.
5225
6f07f480 52262013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
5227
5228 * c-objc-common.c (c_tree_printer): Document the nature of the cast.
5229 (c_initialize_diagnostics): Call a destructor for the early printer.
5230
eed6bc21 52312013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
5232
5233 * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
5234 printer initialization.
5235
57717943 52362013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com>
eed6bc21 5237
57717943 5238 PR c/57490
5239 * c-array-notation.c (fix_conditional_array_notations_1): Added a
5240 check for truth values.
5241 (expand_array_notation_exprs): Added truth values case. Removed an
5242 unwanted else. Added for-loop to walk through subtrees in default
5243 case.
5244
a94db6b0 52452013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
5246
5247 * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
5248
e76163a9 52492013-07-23 Joseph Myers <joseph@codesourcery.com>
5250
5251 * c-parser.c (struct c_generic_association): Fix typo.
5252
7aa04c8d 52532013-07-23 Tom Tromey <tromey@redhat.com>
5254 Joseph Myers <joseph@codesourcery.com>
5255
5256 * c-parser.c (struct c_generic_association): New.
5257 (c_generic_association_d): New typedef.
5258 (c_parser_generic_selection): New function.
5259 (c_parser_postfix_expression): Handle RID_GENERIC.
5260
76bbe4ca 52612013-07-13 Jason Merrill <jason@redhat.com>
5262
5263 PR c++/57793
5264 * c-decl.c (finish_struct): Check for too-large class.
5265
21ebaa24 52662013-07-04 Joern Rennecke <joern.rennecke@embecosm.com>
f5298614 5267
5268 PR c/57821
5269 * c-typeck.c (set_init_index): When folding, check for index overflow.
5270
936c3081 52712013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
5272
5273 * c-parser.c (c_parser_array_notation): Removed rejection of array
5274 notations in an array of function pointers.
5275
50acebe0 52762013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com>
5277
5278 * c-array-notation.c (make_triplet_val_inv): New function.
5279 (create_cmp_incr): Likewise.
5280 (create_array_refs): Likewise.
5281 (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
5282 Also modularized common parts between functions and called the function.
5283 (build_array_notation_expr): Likewise.
5284 (fix_conditional_array_notations_1): Likewise.
5285 (fix_array_notation_expr): Likewise.
5286 (fix_array_notation_call_expr): Likewise.
5287
01e6cdb4 52882013-06-18 Marek Polacek <polacek@redhat.com>
5289
5290 PR c/57630
5291 * c-decl.c (check_for_loop_decls): Improve diagnostics messages.
5292
6a3adac6 52932013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com>
5294
5295 * c-array-notation.c (build_array_notation_expr): Reject array notation
5296 mismatch between LHS and RHS even inside a call_expr. Also, removed
5297 a couple while statements that were dead code.
5298
62aab3f3 52992013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
5300
5301 * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
5302 excessive precision expressions in function parameters. Also removed
5303 couple unwanted while statements.
5304
bfc83720 53052013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
5306
5307 * c-array-notation.c (expand_array_notation_exprs): Added
5308 ARRAY_NOTATION_REF case.
5309
09970d67 53102013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
5311
5312 * c-array-notation.c (length_mismatch_in_expr_p): Moved this
5313 function to c-family/array-notation-common.c.
5314 (is_cilkplus_reduce_builtin): Likewise.
5315 (find_rank): Likewise.
5316 (extract_array_notation_exprs): Likewise.
5317 (replace_array_notations): Likewise.
5318 (find_inv_trees): Likewise.
5319 (replace_inv_trees): Likewise.
5320 (contains_array_notation_expr): Likewise.
5321 (find_correct_array_notation_type): Likewise.
5322 (replace_invariant_exprs): Initialized additional_tcodes to NULL.
5323 (struct inv_list): Moved this to c-family/array-notation-common.c.
5324 * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
5325
6e13bc01 53262013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com>
5327
5328 * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
5329 reduction functions outside the for-loop. Added a check if the fundecl
5330 is non-NULL. Finally, removed an unwanted if-statement, and made the
5331 body unconditional.
5332
cc92dddc 53332013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
5334
5335 * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
5336 condition of the if-statement matches the rank of else-block and then-
5337 block when array notations are used.
5338 * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
5339 expression after the entire function body is parsed.
5340 (c_parser_expr_no_commas): Delayed creating array notation expressions
5341 to the end of function parsing.
5342 * c-array-notation.c (fix_conditional_array_notations_1): Expanded the
5343 whole if-statement instead of just the condition.
5344 (expand_array_notation_exprs): Added MODIFY_EXPR case.
5345
eddc63fd 53462013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
5347
5348 PR c/57474
5349 * c-array-notation.c (build_array_notation_expr): Initialized rhs_length
5350 array to NULL_TREE if they are unused. Also added a check for the
5351 field to be NULL before its fields are used in future.
5352
a2115a4a 53532013-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5354
5355 PR bootstrap/57450
5356 * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
5357 (build_array_notation_expr): Likewise.
5358
3c6d4197 53592013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
5360
5361 * c-typeck.c (build_array_ref): Added a check to see if array's
5362 index is greater than one. If true, then emit an error.
5363 (build_function_call_vec): Exclude error reporting and checking
5364 for builtin array-notation functions.
5365 (convert_arguments): Likewise.
5366 (c_finish_return): Added a check for array notations as a return
5367 expression. If true, then emit an error.
5368 (c_finish_loop): Added a check for array notations in a loop
5369 condition. If true then emit an error.
5370 (lvalue_p): Added a ARRAY_NOTATION_REF case.
5371 (build_binary_op): Added a check for array notation expr inside
5372 op1 and op0. If present, we call another function to find correct
5373 type.
5374 * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
5375 * c-parser.c (c_parser_compound_statement): Check if array
5376 notation code is used in tree, if so, then transform them into
5377 appropriate C code.
5378 (c_parser_expr_no_commas): Check if array notation is used in LHS
5379 or RHS, if so, then build array notation expression instead of
5380 regular modify.
5381 (c_parser_postfix_expression_after_primary): Added a check for
5382 colon(s) after square braces, if so then handle it like an array
5383 notation. Also, break up array notations in unary op if found.
5384 (c_parser_direct_declarator_inner): Added a check for array
5385 notation.
5386 (c_parser_compound_statement): Added a check for array notation in
5387 a stmt. If one is present, then expand array notation expr.
5388 (c_parser_if_statement): Likewise.
5389 (c_parser_switch_statement): Added a check for array notations in
5390 a switch statement's condition. If true, then output an error.
5391 (c_parser_while_statement): Similarly, but for a while.
5392 (c_parser_do_statement): Similarly, but for a do-while.
5393 (c_parser_for_statement): Similarly, but for a for-loop.
5394 (c_parser_unary_expression): Check if array notation is used in a
5395 pre-increment or pre-decrement expression. If true, then expand
5396 them.
5397 (c_parser_array_notation): New function.
5398 * c-array-notation.c: New file.
5399 * c-tree.h (is_cilkplus_reduce_builtin): Protoize.
5400
2c1c8a2c 54012013-05-23 Mike Stump <mikestump@comcast.net>
5402
5403 * c-typeck.c (convert_for_assignment): Handle references to memory
5404 spaces better.
5405
be5f9e46 54062013-05-16 Jason Merrill <jason@redhat.com>
5407
5408 * Make-lang.in (cc1$(exeext)): Use link mutex.
5409
9205a6cc 54102013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
5411
5412 * c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
5413 to simply use OPT_Wpointer_arith.
5414 (build_unary_op): Likewise.
5415
0b049e15 54162013-04-03 Jakub Jelinek <jakub@redhat.com>
5417
5418 PR c/19449
5419 * c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
5420 argument. If set, or it temporarily for parsing of the first
5421 argument into force_folding_builtin_constant_p.
5422 (c_parser_postfix_expression): Adjust callers.
5423
8e966116 54242013-03-21 Richard Biener <rguenther@suse.de>
5425
5426 * c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
5427 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
5428
b862f263 54292013-02-12 Marek Polacek <polacek@redhat.com>
5430
5431 PR c/44938
5432 * c-parser.c (c_parser_postfix_expression_after_primary): Initialize
5433 origtypes to NULL.
5434
54550ecb 54352013-01-24 Jakub Jelinek <jakub@redhat.com>
5436
5437 PR c/56078
5438 * c-typeck.c (set_nonincremental_init_from_string): If
5439 constructor_max_index is NULL, treat it as if tree_int_cst_lt
5440 returned false.
5441 (process_init_element): Likewise.
5442
035b65e2 54432012-12-20 Jakub Jelinek <jakub@redhat.com>
5444
5445 PR c++/55619
5446 * c-parser.c (c_parser_asm_operands): Remove CONVERT_P
5447 argument, don't call default_function_array_conversion
5448 nor c_fully_fold here.
5449 (c_parser_asm_statement): Adjust callers.
5450 * c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
5451 and outputs here, and call default_function_array_conversion
5452 on inputs that don't need to be addressable.
5453
7cbb7f1a 54542012-12-18 Jakub Jelinek <jakub@redhat.com>
5455
5456 PR c/39464
5457 * c-typeck.c (convert_for_assignment): For -Wpointer-sign
5458 warning require that both c_common_unsigned_type as well as
5459 c_common_signed_type is the same for both mvl and mvr types.
5460
f1f41a6c 54612012-11-16 Diego Novillo <dnovillo@google.com>
5462
5463 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
5464
5465 * c-common.c: Use new vec API in vec.h.
5466 * c-common.h: Likewise.
5467 * c-gimplify.c: Likewise.
5468 * c-pragma.c: Likewise.
5469 * c-pretty-print.c: Likewise.
5470 * c-pretty-print.h: Likewise.
5471 * c-semantics.c: Likewise.
5472 * c-decl.c: Likewise.
5473 * c-parser.c: Likewise.
5474 * c-tree.h: Likewise.
5475 * c-typeck.c: Likewise.
5476
8b447d3f 54772012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
5478
5479 PR c++/54930
5480 * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.
5481
08fc5390 54822012-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
5483
5484 PR c/53066
5485 * c-decl.c (warn_if_shadowing): Do not warn if a variable
5486 shadows a function, unless the variable is a function or a
5487 pointer-to-function.
5488
57f872a2 54892012-10-12 Jakub Jelinek <jakub@redhat.com>
5490
5491 PR c/54381
5492 * c-parser.c (struct c_tree_loc_pair): Removed.
5493 (c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
5494 add location_t * and tree * arguments, fill in array of 3
5495 sizeof_arg trees and corresponding locs.
5496 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust
5497 c_parser_expr_list callers.
5498 (c_parser_postfix_expression_after_primary): Likewise. Pass
5499 array of 3 sizeof_arg trees and locs (corresponding to first
5500 3 arguments) to sizeof_pointer_memaccess_warning.
5501
d1455aa3 55022012-10-09 Lawrence Crowl <crowl@google.com>
5503
5504 * Make-lang.in (c-decl.o): Add dependence on hash-table.h.
5505 * c-decl.c (detect_field_duplicates_hash): Change to new type-safe
5506 hash table.
5507
b0e7825e 55082012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
5509
5510 PR c++/54194
5511 * c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
5512 call.
5513
41ed701a 55142012-10-09 Marc Glisse <marc.glisse@inria.fr>
5515
5516 PR c++/54427
5517 * c-typeck.c: Include c-common.h.
5518 (enum stv_conv): Moved to c-common.h.
5519 (scalar_to_vector): Moved to c-common.c.
5520 (build_binary_op): Adapt to scalar_to_vector's new prototype.
5521 * Make-lang.in: c-typeck.c depends on c-common.h.
5522
ef34afc1 55232012-10-04 Arnaud Charlet <charlet@adacore.com>
5524
5525 * c-decl.c (c_write_global_declarations): Fix handling of
5526 -fdump-ada-spec*.
5527
7bd765d4 55282012-09-30 Sharad Singhai <singhai@google.com>
5529
5530 * c-decl.c (c_write_global_declarations): Use a different method
5531 to determine if the dump has ben initialized.
5532
c4b1a13a 55332012-09-14 Joseph Myers <joseph@codesourcery.com>
5534
5535 PR c/54552
5536 * c-typeck.c (c_cast_expr): When casting to a type requiring
5537 C_MAYBE_CONST_EXPR to be created, pass the inner expression to
5538 c_fully_fold first.
5539
bb554051 55402012-09-14 Joseph Myers <joseph@codesourcery.com>
5541
5542 PR c/54103
5543 * c-typeck.c (build_unary_op): Pass original argument of
5544 TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
5545 any C_MAYBE_CONST_EXPR, if it has integer operands.
5546 (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
5547 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
5548 to c_objc_common_truthvalue_conversion, then remove any
5549 C_MAYBE_CONST_EXPR, if they have integer operands. Use
5550 c_objc_common_truthvalue_conversion not
5551 c_common_truthvalue_conversion.
5552 (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
5553 call note_integer_operands for arguments with integer operands
5554 that are not integer constants.
5555
c708c6ef 55562012-09-13 Jakub Jelinek <jakub@redhat.com>
5557
5558 PR c/54559
5559 * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
5560 COMPLEX_TYPE with in_late_binary_op set temporarily to true.
5561
cce20430 55622012-08-31 Jakub Jelinek <jakub@redhat.com>
5563
5564 PR c/54428
5565 * c-convert.c (convert): Don't call fold_convert_loc if
5566 TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
5567 is a COMPLEX_EXPR. Remove TYPE_MAIN_VARIANT check from
5568 COMPLEX_TYPE -> COMPLEX_TYPE conversion.
5569
a90d57ed 55702012-08-24 Jakub Jelinek <jakub@redhat.com>
5571
5572 PR c/54355
5573 * c-decl.c (c_parser_label): Pass true as nested and fix up comments
5574 for nested and empty_ok arguments in the call to
5575 c_parser_declaration_or_fndef.
5576
f003f5dc 55772012-08-17 Jakub Jelinek <jakub@redhat.com>
5578
5579 * c-tree.h (c_last_sizeof_arg): Declare.
5580 * c-parser.c (struct c_tree_loc_pair): New type.
5581 (c_parser_expr_list): Add sizeof_arg argument. Fill it in if
5582 non-NULL.
5583 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
5584 (c_parser_postfix_expression_after_primary): Likewise. Call
5585 sizeof_pointer_memaccess_warning if needed.
5586 (sizeof_ptr_memacc_comptypes): New function.
5587 * c-typeck.c (c_last_sizeof_arg): New global variable.
5588 (c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
5589
a5656b73 55902012-07-24 Uros Bizjak <ubizjak@gmail.com>
5591
5592 * c-lang.h (lang_decl): Add variable_size GTY option.
5593
b9ed1410 55942012-07-16 Steven Bosscher <steven@gcc.gnu.org>
5595
5596 * c-decl.c: Include dumpfile.h instead of tree-dump.h.
5597 * Make-lang.in: Fix dependencies.
5598
e53d55e7 55992012-06-29 Steven Bosscher <steven@gcc.gnu.org>
5600
5601 * Make-lang.in: New file, rules migrated from gcc/Makefile.in
5602 and add language Makefile hooks.
5603 * config-lang.in: New file.
5604 * c-config-lang.in: Moved from gcc/config-lang.in to here, and
5605 add the required "normal" config-lang.in rules.
5606 * c-lang.h: Moved from gcc/ to here.
5607 * c-tree.h: Likewise.
5608 * c-objc-common.c: Likewise.
5609 * c-objc-common.h: Likewise.
5610 * c-typeck.c: Likewise.
5611 * c-convert.c: Likewise.
5612 * c-lang.c: Likewise.
5613 * c-aux-info.c: Likewise.
5614 * c-errors.c: Likewise.
5615 * gccspec.c: Likewise.
5616 * c-decl.c: Likewise. Include gt-c-c-decl.h, not gt-c-decl.h.
5617 * c-parser.c: Likewise. Include gt-c-c-parser.h, not gt-c-parser.h.
5618\f
8e8f6434 5619Copyright (C) 2012-2018 Free Software Foundation, Inc.
e53d55e7 5620
5621Copying and distribution of this file, with or without modification,
5622are permitted in any medium without royalty provided the copyright
5623notice and this notice are preserved.