]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c/ChangeLog
PR target/85693
[thirdparty/gcc.git] / gcc / c / ChangeLog
CommitLineData
2fe6a798 12018-05-02 David Pagan <dave.pagan@oracle.com>
2
3 PR c/30552
4 * c-decl.c (old_style_parameter_scope): New function.
5 * c-parser.c (c_parser_postfix_expression): Check for statement
6 expressions in old-style function parameter list declarations.
7 * c-parser.h (old_style_parameter_scope): New extern declaration.
8
be4b81f3 92018-04-25 Jakub Jelinek <jakub@redhat.com>
10
11 PR sanitizer/84307
12 * c-decl.c (build_compound_literal): Call pushdecl (decl) even when
13 it is not TREE_STATIC.
14 * c-typeck.c (c_mark_addressable) <case COMPOUND_LITERAL_EXPR>: Mark
15 not just the COMPOUND_LITERAL_EXPR node itself addressable, but also
16 its COMPOUND_LITERAL_EXPR_DECL.
17
f9f5e9c3 182018-03-21 Joseph Myers <joseph@codesourcery.com>
19
20 * c-parser.c (c_parser_postfix_expression): For __builtin_tgmath
21 where all functions return the same _FloatN or _FloatNx type,
22 treat integer types as _Float64 instead of double.
23
86f1f5d1 242018-03-21 Jakub Jelinek <jakub@redhat.com>
25
26 PR c/84999
27 * c-typeck.c (build_binary_op): If c_common_type_for_size fails when
28 building vector comparison, diagnose it and return error_mark_node.
29
9040bba5 302018-03-15 Jakub Jelinek <jakub@redhat.com>
31
32 PR c/84853
33 * c-typeck.c (build_binary_op) <case RSHIFT_EXPR, case LSHIFT_EXPR>:
34 If code1 is INTEGER_TYPE, only allow code0 VECTOR_TYPE if it has
35 INTEGER_TYPE element type.
36
1b2ff8ae 372018-03-13 David Pagan <dave.pagan@oracle.com>
38
39 PR c/46921
40 * c-typeck.c (output_init_element): Ensure field initializer
41 expression is always evaluated if there are side effects.
42
bda84b10 432018-03-06 Jakub Jelinek <jakub@redhat.com>
44
45 PR c/84721
46 * c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if
47 !building_stmt_list_p ().
48
20ebaa3d 492018-02-13 Richard Sandiford <richard.sandiford@linaro.org>
50
51 PR c/84305
52 * c-decl.c (grokdeclarator): Create an anonymous TYPE_DECL
53 in PARM and TYPENAME contexts too, but attach it to a BIND_EXPR
54 and include the BIND_EXPR in the list of things that need to be
55 pre-evaluated.
56
d9757bb6 572018-02-09 Nathan Sidwell <nathan@acm.org>
58
59 PR c/84293
60 * c-typeck.c (build_indirect_ref, build_c_cast): Pass expr location
61 to strict_aliasing_warning.
62
3cde3c29 632018-02-02 Paolo Carlini <paolo.carlini@oracle.com>
64
65 * c-typeck.c (really_start_incremental_init, push_init_level,
66 set_nonincremental_init, output_init_element, process_init_element):
67 Use DECL_UNNAMED_BIT_FIELD.
68
d3af137c 692018-01-31 Marek Polacek <polacek@redhat.com>
70
71 PR c/81779
72 * c-parser.c (c_parser_compound_statement_nostart): Call
73 expansion_point_location_if_in_system_header.
74
510e5f39 752018-01-17 David Malcolm <dmalcolm@redhat.com>
76
77 PR c++/83814
78 * c-fold.c (fold_for_warn): Move from c-common.c, reducing to just
79 the C part.
80
eb2fdcf5 812018-01-13 Jakub Jelinek <jakub@redhat.com>
82
83 PR c/83801
84 * c-tree.h (decl_constant_value_1): Add a bool argument.
85 * c-typeck.c (decl_constant_value_1): Add IN_INIT argument, allow
86 returning a CONSTRUCTOR if it is true. Use error_operand_p.
87 (decl_constant_value): Adjust caller.
88 * c-fold.c (c_fully_fold_internal): If in_init, pass true to
89 decl_constant_value_1 as IN_INIT. Otherwise, punt if
90 decl_constant_value returns initializer that has BLKmode or
91 array type.
92 (c_fully_fold_internal) <case COMPONENT_REF>: Fold if !lval.
93
f08ee65f 942018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
95 Alan Hayward <alan.hayward@arm.com>
96 David Sherwood <david.sherwood@arm.com>
97
98 * c-typeck.c (comptypes_internal, build_binary_op): Handle polynomial
99 TYPE_VECTOR_SUBPARTS.
100
8e8f6434 1012018-01-03 Jakub Jelinek <jakub@redhat.com>
102
103 Update copyright years.
104
90e1517e 1052018-01-01 Jakub Jelinek <jakub@redhat.com>
106
107 PR c/83595
108 * c-parser.c (c_parser_braced_init, c_parser_initelt,
109 c_parser_conditional_expression, c_parser_cast_expression,
110 c_parser_sizeof_expression, c_parser_alignof_expression,
111 c_parser_postfix_expression, c_parser_omp_declare_reduction,
112 c_parser_transaction_expression): Use set_error () method instead
113 of setting value member to error_mark_node.
114
054e9558 1152017-12-28 Michael Meissner <meissner@linux.vnet.ibm.com>
116
117 * c-decl.c (header_for_builtin_fn): Add integer rounding _Float<N>
118 and _Float<N>X built-in functions.
119
2ea33951 1202017-12-22 Jakub Jelinek <jakub@redhat.com>
121
be7ed04d 122 PR debug/83550
123 * c-decl.c (finish_struct): Set DECL_SOURCE_LOCATION on
124 TYPE_STUB_DECL and call rest_of_type_compilation before processing
125 incomplete vars rather than after it.
126
2ea33951 127 PR debug/83547
128 * c-typeck.c (c_finish_stmt_expr): Ignore !TREE_SIDE_EFFECTS as
129 indicator of ({ }), instead skip all trailing DEBUG_BEGIN_STMTs first,
130 and consider empty ones if there are no other stmts. For
131 -Wunused-value walk all statements before the one only followed by
132 DEBUG_BEGIN_STMTs.
133
82841c8f 1342017-12-22 Mike Stump <mikestump@comcast.net>
135 Eric Botcazou <ebotcazou@adacore.com>
136
137 * c-parser.c (c_parser_while_statement): Add unroll parameter and
138 build ANNOTATE_EXPR if present. Add 3rd operand to ANNOTATE_EXPR.
139 (c_parser_do_statement): Likewise.
140 (c_parser_for_statement): Likewise.
141 (c_parser_statement_after_labels): Adjust calls to above.
142 (c_parse_pragma_ivdep): New static function.
143 (c_parser_pragma_unroll): Likewise.
144 (c_parser_pragma) <PRAGMA_IVDEP>: Add support for pragma Unroll.
145 <PRAGMA_UNROLL>: New case.
146
c9281ef8 1472017-12-19 Jakub Jelinek <jakub@redhat.com>
148
149 * c-typeck.c (comptypes_internal, function_types_compatible_p,
150 perform_integral_promotions, digest_init): Replace Yoda conditions
151 with typical order conditions.
152 * c-decl.c (check_bitfield_type_and_width): Likewise.
153
d76c514d 1542017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
155
156 * c-typeck.c (c_safe_arg_type_equiv_p,
157 c_safe_function_type_cast_p): New function.
158 (build_c_cast): Implement -Wcast-function-type.
159
00e92272 1602017-12-14 Richard Biener <rguenther@suse.de>
161
162 PR c/83415
163 * c-fold.c (c_fully_fold_internal): Treat VIEW_CONVERT_EXPR
164 like REALPART_EXPR for the behavior of whether its operand
165 is an lvalue.
166
a7625351 1672017-12-12 Marek Polacek <polacek@redhat.com>
168
169 PR c/82679
170 * c-decl.c (grokdeclarator): Check declspecs insted of atomicp.
171
90567983 1722017-12-12 Alexandre Oliva <aoliva@redhat.com>
173
174 * c-objc-common.h (LANG_HOOKS_EMITS_BEGIN_STMT): Redefine as true.
175 * c-parser.c (add_debug_begin_stmt): New.
176 (c_parser_declaration_or_fndef): Call it.
177 (c_parser_compound_statement_nostart): Likewise.
178 (c_parser_statement_after_labels): Likewise.
179 * c-typeck (c_finish_stmt_expr): Skip begin stmts markers.
180
a52dedf5 1812017-12-07 Joseph Myers <joseph@codesourcery.com>
182
183 * c-decl.c (build_compound_literal): Add parameter alignas_align
184 and set alignment of decl if nonzero.
185 * c-parser.c (c_keyword_starts_typename): Allow RID_ALIGNAS.
186 (c_parser_declspecs): Allow RID_ALIGNAS to follow a type, like a
187 qualifier.
188 (c_parser_struct_declaration): Update syntax comment.
189 (c_parser_type_name): Add alignas_ok argument and pass it to
190 c_parser_declspecs.
191 (c_parser_cast_expression): Pass true to c_parser_type_name and
192 give error if a cast used an _Alignas specifier.
193 (c_parser_sizeof_expression): Pass true to c_parser_type_name and
194 give error if sizeof (type-name) used an _Alignas specifier.
195 (c_parser_alignof_expression): Pass true to c_parser_type_name and
196 give error if _Alignof (type-name) used an _Alignas specifier.
197 (c_parser_postfix_expression_after_paren_type): Check specified
198 alignment for a compound literal and pass it to
199 build_compound_literal.
200 * c-parser.h (c_parser_type_name): Update prototype.
201 * c-tree.h (build_compound_literal): Update prototype.
202
dab0e385 2032017-12-07 Martin Sebor <msebor@redhat.com>
204
205 PR c/81544
206 * c-decl.c (c_decl_attributes): Look up existing declaration and
207 pass it to decl_attributes.
208
08233401 2092017-12-06 David Malcolm <dmalcolm@redhat.com>
210
211 PR c/83236
212 * c-decl.c (lookup_name_fuzzy): Don't suggest names that are
213 reserved for use by the implementation.
214
aa0e50a0 2152017-12-06 David Malcolm <dmalcolm@redhat.com>
216
217 * c-decl.c: Include "c-family/c-spellcheck.h".
218
eabe2d94 2192017-12-05 Martin Liska <mliska@suse.cz>
220 Jakub Jelinek <jakub@redhat.com>
221
222 * c-typeck.c (pointer_diff): Add new argument and instrument
223 pointer subtraction.
224 (build_binary_op): Similar for pointer comparison.
225
a8f15ac7 2262017-12-01 Jakub Jelinek <jakub@redhat.com>
227
17cf92d6 228 PR c/79153
229 * c-parser.c: Include tree-iterator.h.
230 (c_parser_switch_statement): Emit LABEL_EXPR for the break label
231 into SWITCH_BODY instead of after it and set SWITCH_BREAK_LABEL_P
232 on it.
233
a8f15ac7 234 PR c/83222
235 * c-tree.h (decl_constant_value_1): Declare.
236 * c-typeck.c (decl_constant_value_1): New function.
237 (decl_constant_value): Use it.
238 * c-fold.c (c_fully_fold_internal): If in_init, use
239 decl_constant_value_1 instead of decl_constant_value.
240
7f38a6aa 2412017-11-30 Jakub Jelinek <jakub@redhat.com>
242
243 * c-parser.c (c_parser_postfix_expression): Use ; instead of ;;.
244
dfa10f0d 2452017-11-28 Jakub Jelinek <jakub@redhat.com>
246
247 PR sanitizer/81275
248 * c-typeck.c (c_finish_case): Set SWITCH_ALL_CASES_P if
249 c_switch_covers_all_cases_p returns true.
250
efa02472 2512017-11-28 Julia Koval <julia.koval@intel.com>
252 Sebastian Peryt <sebastian.peryt@intel.com>
253
254 * Make-lang.in (c/c-array-notation.o): Remove.
255 * c-array-notation.c: Delete.
256 * c-decl.c: Remove cilkplus condition.
257 * c-parser.c (c_parser_cilk_simd, c_parser_cilk_for,
258 c_parser_cilk_verify_simd, c_parser_array_notation,
259 c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize,
260 c_parser_cilk_simd_fn_vector_attrs,
261 c_finish_cilk_simd_fn_tokens): Delete.
262 (c_parser_declaration_or_fndef): Remove cilkplus condition.
263 (c_parser_direct_declarator_inner): Ditto.
264 (CILK_SIMD_FN_CLAUSE_MASK): Delete.
265 (c_parser_attributes, c_parser_compound_statement,
266 c_parser_statement_after_labels, c_parser_if_statement,
267 c_parser_switch_statement, c_parser_while_statement,
268 c_parser_do_statement, c_parser_for_statement,
269 c_parser_unary_expression, c_parser_postfix_expression,
270 c_parser_postfix_expression_after_primary,
271 c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses,
272 c_parser_omp_for_loop, c_finish_omp_declare_simd): Remove cilkplus
273 support.
274 * c-typeck.c (build_array_ref, build_function_call_vec,
275 convert_arguments,
276 lvalue_p, build_compound_expr, c_finish_return, c_finish_if_stmt,
277 c_finish_loop, build_binary_op): Remove cilkplus support.
278
bd37ce3e 2792017-11-28 Jakub Jelinek <jakub@redhat.com>
280
281 * c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead
282 of build3.
283
864319e6 2842017-11-14 Boris Kolpackov <boris@codesynthesis.com>
285
286 * Make-lang.in (c.install-plugin): Install backend import library.
287
59b23ab9 2882017-11-23 Jakub Jelinek <jakub@redhat.com>
289
290 * c-parser.c (c_parser_omp_declare_simd): Reject declare simd in
291 pragma_stmt context.
292
2a09b28c 2932017-11-23 Mike Stump <mikestump@comcast.net>
294 Eric Botcazou <ebotcazou@adacore.com>
295
296 * c-parser.c (c_parser_while_statement): Pass 3rd operand to
297 ANNOTATE_EXPR.
298 (c_parser_do_statement): Likewise.
299 (c_parser_for_statement): Likewise.
300
8e4391a5 3012017-11-22 David Malcolm <dmalcolm@redhat.com>
302
303 PR c++/62170
304 * c-objc-common.c (c_tree_printer): Convert penultimate param from
305 bool to bool *. Within '%T' handling, if showing an "aka", use
306 "quoted" param to add appropriate quoting.
307
532d84ff 3082017-11-22 Marek Polacek <polacek@redhat.com>
309
310 PR c++/60336
311 PR middle-end/67239
312 PR target/68355
313 * c-decl.c (grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.
314
b8a6d52b 3152017-11-21 David Malcolm <dmalcolm@redhat.com>
316
317 PR c/83056
318 * c-decl.c (lookup_name_fuzzy): Don't suggest names that came from
319 earlier failed lookups.
320
57e83b58 3212017-11-21 Marc Glisse <marc.glisse@inria.fr>
322
323 * c-fold.c (c_fully_fold_internal): Handle POINTER_DIFF_EXPR.
324 * c-typeck.c (pointer_diff): Use POINTER_DIFF_EXPR.
325
145fb49f 3262017-11-20 David Malcolm <dmalcolm@redhat.com>
327
328 PR c/81404
329 * c-decl.c: Include "c-family/known-headers.h".
330 (get_c_name_hint): Rename to get_stdlib_header_for_name and move
331 to known-headers.cc.
332 (class suggest_missing_header): Move to known-header.h.
333 (lookup_name_fuzzy): Call get_c_stdlib_header_for_name rather
334 than get_c_name_hint.
335
0911a8d3 3362017-11-20 David Malcolm <dmalcolm@redhat.com>
337
338 * c-decl.c (get_c_name_hint): New function.
339 (class suggest_missing_header): New class.
340 (lookup_name_fuzzy): Call get_c_name_hint and use it to
341 suggest missing headers to the user.
342
dd008336 3432017-11-20 David Malcolm <dmalcolm@redhat.com>
344
345 * c-decl.c: Define INCLUDE_UNIQUE_PTR before including system.h.
346 Include "c-family/name-hint.h"
347 (implicit_decl_warning): Convert "hint" from
348 const char * to name_hint. Pass location to
349 lookup_name_fuzzy. Suppress any deferred diagnostic if the
350 warning was not printed.
351 (undeclared_variable): Likewise for "guessed_id".
352 (lookup_name_fuzzy): Convert return type from const char *
353 to name_hint. Add location_t param.
354 * c-parser.c: Define INCLUDE_UNIQUE_PTR before including system.h.
355 Include "c-family/name-hint.h"
356 (c_parser_declaration_or_fndef): Convert "hint" from
357 const char * to name_hint. Pass location to lookup_name_fuzzy.
358 (c_parser_parameter_declaration): Likewise.
359
69cd03b2 3602017-11-19 Jakub Jelinek <jakub@redhat.com>
361
362 PR c/66618
363 PR c/69960
364 * c-parser.c (c_parser_omp_atomic): Pass true as LVAL to c_fully_fold
365 where needed.
366 * c-typeck.c (build_unary_op, build_modify_expr, build_asm_expr,
367 handle_omp_array_sections): Likewise.
368 (digest_init): Don't call decl_constant_value_for_optimization.
369 * c-tree.h (decl_constant_value_for_optimization): Removed.
370 * c-fold.c (c_fold_array_ref): New function.
371 (c_fully_fold_internal): Add LVAL argument, propagate it through
372 recursive calls. For VAR_P call decl_constant_value and
373 unshare if not LVAL and either optimizing or IN_INIT. Remove
374 decl_constant_value_for_optimization calls. If IN_INIT and not LVAL,
375 fold ARRAY_REF with STRING_CST and INTEGER_CST operands.
376 (c_fully_fold): Add LVAL argument, pass it through to
377 c_fully_fold_internal.
378 (decl_constant_value_for_optimization): Removed.
379
aac64699 3802017-11-15 Joseph Myers <joseph@codesourcery.com>
381
382 PR c/81156
383 * c-parser.c (check_tgmath_function): New function.
384 (enum tgmath_parm_kind): New enum.
385 (c_parser_postfix_expression): Handle __builtin_tgmath.
386
3b6578b3 3872017-10-31 David Malcolm <dmalcolm@redhat.com>
388
389 * c-decl.c (implicit_decl_warning): Update for renaming of
390 pedwarn_at_rich_loc and warning_at_rich_loc.
391 (implicitly_declare): Likewise for renaming of inform_at_rich_loc.
392 (undeclared_variable): Likewise for renaming of error_at_rich_loc.
393 * c-parser.c (c_parser_declaration_or_fndef): Likewise.
394 (c_parser_struct_or_union_specifier): Likewise for renaming of
395 pedwarn_at_rich_loc.
396 (c_parser_parameter_declaration): Likewise for renaming of
397 error_at_rich_loc.
398 * c-typeck.c (build_component_ref): Likewise.
399 (build_unary_op): Likewise for renaming of inform_at_rich_loc.
400 (pop_init_level): Likewise for renaming of warning_at_rich_loc.
401 (set_init_label): Likewise for renaming of error_at_rich_loc.
402
c22b2783 4032017-10-30 Richard Biener <rguenther@suse.de>
404
405 * gimple-parser.c (c_parser_gimple_statement): Parse conditional
406 stmts.
407
8c32188e 4082017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com>
409
410 * c-decl.c (header_for_builtin_fn): Add support for copysign, fma,
411 fmax, fmin, and sqrt _Float<N> and _Float<N>X variants.
412
133bd9b8 4132017-10-25 David Malcolm <dmalcolm@redhat.com>
414
415 PR c/7356
416 * c-parser.c (c_parser_declaration_or_fndef): Detect missing
417 semicolons.
418
ac50cb09 4192017-10-25 Jakub Jelinek <jakub@redhat.com>
420
421 PR libstdc++/81706
422 * c-decl.c (merge_decls): Copy "omp declare simd" attributes from
423 newdecl to corresponding __builtin_ if any.
424
41ca0095 4252017-10-24 Paolo Carlini <paolo.carlini@oracle.com>
426
427 PR c++/82466
428 * c-decl.c (diagnose_mismatched_decls): Use
429 OPT_Wbuiltin_declaration_mismatch.
430
74578794 4312017-10-12 David Malcolm <dmalcolm@redhat.com>
432
433 * c-parser.c (c_parser_require): Add "type_is_unique" param and
434 use it to guard calls to maybe_suggest_missing_token_insertion.
435 (c_parser_parms_list_declarator): Override default value of new
436 "type_is_unique" param to c_parser_require.
437 (c_parser_asm_statement): Likewise.
438 * c-parser.h (c_parser_require): Add "type_is_unique" param,
439 defaulting to true.
440
3bdf5a5d 4412017-10-11 Nathan Sidwell <nathan@acm.org>
442
443 * c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too.
444
e3d0f65c 4452017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
446
447 * c-parser.c (c_parser_cilk_clause_vectorlength): Use wi::to_wide when
448 operating on trees as wide_ints.
449 * c-typeck.c (build_c_cast, c_finish_omp_clauses): Likewise.
450 (c_tree_equal): Likewise.
451
b6fde48e 4522017-10-04 David Malcolm <dmalcolm@redhat.com>
453
454 * c-decl.c (push_parm_decl): Store c_parm's location into the
455 PARAM_DECL.
456 (build_c_parm): Add "loc" param and store it within the c_parm.
457 * c-parser.c (struct c_parser): Add "last_token_location" field.
458 (c_parser_consume_token): Store location of the token into the
459 new field.
460 (c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS
461 when handling a FUNCTION_DECL, if it doesn't already have them.
462 (c_parser_parameter_declaration): Generate a location for the
463 parameter, and pass it to the call to build_c_parm.
464 * c-tree.h (struct c_parm): Add field "loc".
465 (build_c_parm): Add location_t param.
466 * c-typeck.c (get_fndecl_argument_location): New function.
467 (inform_for_arg): New function.
468 (convert_for_assignment): Use inform_for_arg when dealing with
469 ic_argpass.
470
e786f452 4712017-09-29 Jakub Jelinek <jakub@redhat.com>
472
52f26f82 473 * c-decl.c (grokfield): Use SET_DECL_C_BIT_FIELD here if
474 width is non-NULL.
475 (finish_struct): Test DECL_C_BIT_FIELD instead of DECL_INITIAL,
476 don't SET_DECL_C_BIT_FIELD here.
477
e786f452 478 PR c/82340
479 * c-decl.c (build_compound_literal): Use c_apply_type_quals_to_decl
480 instead of trying to set just TREE_READONLY manually.
481
93b7a91b 4822017-09-16 Tom de Vries <tom@codesourcery.com>
483
484 PR c/81875
485 * c-parser.c (c_parser_omp_for_loop): Fold only operands of cond, not
486 cond itself.
487
3507457a 4882017-09-15 Joseph Myers <joseph@codesourcery.com>
489
490 PR c/82071
491 * c-typeck.c (ep_convert_and_check): Just call convert_and_check
492 for C11.
493 (build_conditional_expr): For C11, generate result with excess
494 precision when one argument is an integer and the other is of a
495 type using excess precision.
496
7ceee42d 4972017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
498
499 * c-typeck.c (build_c_cast): Implement -Wcast-align=strict.
500
2be90a05 5012017-09-13 Marek Polacek <polacek@redhat.com>
502
503 PR c/82167
504 * c-typeck.c (c_expr_sizeof_expr): Use the type of expr.value rather
505 than expr.original_type.
506
daf40ee6 5072017-09-12 Nathan Sidwell <nathan@acm.org>
508
509 * c-decl.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
510 resort_sorted_fields): Moved from c-family/c-common.c.
511 * c-lang.h (struct sorted_fields_type): Moved from c-family/c-common.h.
512
de7757ed 5132017-09-01 Joseph Myers <joseph@codesourcery.com>
514
515 PR c/82071
516 * c-typeck.c (build_atomic_assign): Handle argument with excess
517 precision. Ensure any EXCESS_PRECISION_EXPR is present in
518 argument passed to build_binary_op and convert_for_assignment but
519 not for call to c_fully_fold.
520 (build_modify_expr): Do not remove EXCESS_PRECISION_EXPR early.
521 Ensure build_binary_op is called with argument with original
522 semantic type. Avoid calling c_fully_fold with an
523 EXCESS_PRECISION_EXPR from build_binary_op.
524
1e52a582 5252017-09-01 Jakub Jelinek <jakub@redhat.com>
526
527 PR c/81887
528 * c-parser.c (c_parser_omp_ordered): Handle -fopenmp-simd.
529
3d2b0034 5302017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
531 Alan Hayward <alan.hayward@arm.com>
532 David Sherwood <david.sherwood@arm.com>
533
534 * c-typeck.c (build_binary_op): Use SCALAR_TYPE_MODE.
535 (c_common_type): Likewise. Use as_a <scalar_mode> when setting
536 m1 and m2 to the signed equivalent of a fixed-point
537 SCALAR_TYPE_MODE.
538
0bdd7941 5392017-08-24 David Malcolm <dmalcolm@redhat.com>
540
541 * c-tree.h (c_expr::get_location) Use EXPR_HAS_LOCATION rather
542 than CAN_HAVE_LOCATION_P when determining whether to use the
543 location_t value within "value".
544
43f0de17 5452017-08-21 David Malcolm <dmalcolm@redhat.com>
546
547 * c-parser.c (c_parser_expr_list): Use c_expr::get_location ()
548 rather than peeking the location of the first token.
549 * c-tree.h (c_expr::get_location): New method.
550
a115c319 5512017-08-21 David Malcolm <dmalcolm@redhat.com>
552
553 * c-typeck.c (build_function_call_vec): Pass arg_loc to call
554 to check_function_arguments.
555
23bafc2f 5562017-08-18 Marek Polacek <polacek@redhat.com>
557
558 * c-parser.c (c_parser_postfix_expression): Remove unused code. Update
559 commentary.
560
4bec7283 5612017-08-18 H.J. Lu <hongjiu.lu@intel.com>
562
563 PR c/53037
564 * c-decl.c (merge_decls): Also merge DECL_WARN_IF_NOT_ALIGN.
565 (check_bitfield_type_and_width): Don't allow bit-field with
566 warn_if_not_aligned type.
567
c8616982 5682017-08-14 Martin Sebor <msebor@redhat.com>
569
570 PR c/81117
571 * c-objc-common.c (c_objc_common_init): Handle 'G'.
572
0eb79e8b 5732017-08-11 Marek Polacek <polacek@redhat.com>
574
575 PR c/81795
576 * c-decl.c (pushtag): Only print inform if the warning was printed.
577 (grokdeclarator): Likewise.
578
3fe34694 5792017-08-10 David Malcolm <dmalcolm@redhat.com>
580
581 * c-parser.c (c_parser_error): Rename to...
582 (c_parser_error_richloc): ...this, making static, and adding
583 "richloc" parameter, passing it to the c_parse_error call,
584 rather than calling c_parser_set_source_position_from_token.
585 (c_parser_error): Reintroduce, reimplementing in terms of the
586 above, converting return type from void to bool.
587 (class token_pair): New class.
588 (struct matching_paren_traits): New struct.
589 (matching_parens): New typedef.
590 (struct matching_brace_traits): New struct.
591 (matching_braces): New typedef.
592 (get_matching_symbol): New function.
593 (c_parser_require): Add param MATCHING_LOCATION, using it to
594 highlight matching "opening" tokens for missing "closing" tokens.
595 (c_parser_skip_until_found): Likewise.
596 (c_parser_static_assert_declaration_no_semi): Convert explicit
597 parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of
598 class matching_parens, so that the pertinent open parenthesis is
599 highlighted when there are problems locating the close
600 parenthesis.
601 (c_parser_struct_or_union_specifier): Likewise.
602 (c_parser_typeof_specifier): Likewise.
603 (c_parser_alignas_specifier): Likewise.
604 (c_parser_simple_asm_expr): Likewise.
605 (c_parser_braced_init): Likewise, for matching_braces.
606 (c_parser_paren_condition): Likewise, for matching_parens.
607 (c_parser_switch_statement): Likewise.
608 (c_parser_for_statement): Likewise.
609 (c_parser_asm_statement): Likewise.
610 (c_parser_asm_operands): Likewise.
611 (c_parser_cast_expression): Likewise.
612 (c_parser_sizeof_expression): Likewise.
613 (c_parser_alignof_expression): Likewise.
614 (c_parser_generic_selection): Likewise.
615 (c_parser_postfix_expression): Likewise for cases RID_VA_ARG,
616 RID_OFFSETOF, RID_TYPES_COMPATIBLE_P, RID_AT_SELECTOR,
617 RID_AT_PROTOCOL, RID_AT_ENCODE, reindenting as necessary.
618 In case CPP_OPEN_PAREN, pass loc_open_paren to the
619 c_parser_skip_until_found call.
620 (c_parser_objc_class_definition): Use class matching_parens as
621 above.
622 (c_parser_objc_method_decl): Likewise.
623 (c_parser_objc_try_catch_finally_statement): Likewise.
624 (c_parser_objc_synchronized_statement): Likewise.
625 (c_parser_objc_at_property_declaration): Likewise.
626 (c_parser_oacc_wait_list): Likewise.
627 (c_parser_omp_var_list_parens): Likewise.
628 (c_parser_omp_clause_collapse): Likewise.
629 (c_parser_omp_clause_default): Likewise.
630 (c_parser_omp_clause_if): Likewise.
631 (c_parser_omp_clause_num_threads): Likewise.
632 (c_parser_omp_clause_num_tasks): Likewise.
633 (c_parser_omp_clause_grainsize): Likewise.
634 (c_parser_omp_clause_priority): Likewise.
635 (c_parser_omp_clause_hint): Likewise.
636 (c_parser_omp_clause_defaultmap): Likewise.
637 (c_parser_oacc_single_int_clause): Likewise.
638 (c_parser_omp_clause_ordered): Likewise.
639 (c_parser_omp_clause_reduction): Likewise.
640 (c_parser_omp_clause_schedule): Likewise.
641 (c_parser_omp_clause_num_teams): Likewise.
642 (c_parser_omp_clause_thread_limit): Likewise.
643 (c_parser_omp_clause_aligned): Likewise.
644 (c_parser_omp_clause_linear): Likewise.
645 (c_parser_omp_clause_safelen): Likewise.
646 (c_parser_omp_clause_simdlen): Likewise.
647 (c_parser_omp_clause_depend): Likewise.
648 (c_parser_omp_clause_map): Likewise.
649 (c_parser_omp_clause_device): Likewise.
650 (c_parser_omp_clause_dist_schedule): Likewise.
651 (c_parser_omp_clause_proc_bind): Likewise.
652 (c_parser_omp_clause_uniform): Likewise.
653 (c_parser_omp_for_loop): Likewise.
654 (c_parser_cilk_clause_vectorlength): Likewise.
655 (c_parser_cilk_clause_linear): Likewise.
656 (c_parser_transaction_expression): Likewise.
657 * c-parser.h (c_parser_require): Add param matching_location with
658 default UNKNOWN_LOCATION.
659 (c_parser_error): Convert return type from void to bool.
660 (c_parser_skip_until_found): Add param matching_location with
661 default UNKNOWN_LOCATION.
662
623ee358 6632017-08-09 Marek Polacek <polacek@redhat.com>
664
665 * c-decl.c (build_enumerator): Use true/false instead of 1/0.
666 * c-tree.h (build_external_ref): Update declaration.
667 * c-typeck.c (build_array_ref): Use true/false instead of 1/0.
668 (build_external_ref): Change the type of a parameter to bool.
669 (parser_build_binary_op): Use true/false instead of 1/0.
670 (pointer_diff): Likewise.
671 (build_modify_expr): Likewise.
672 (set_designator): Change the type of a parameter to bool.
673 (set_init_index): Use true/false instead of 1/0.
674 (set_init_label): Likewise.
675 (output_init_element): Change the type of a parameter to bool.
676 (output_pending_init_elements): Use true/false instead of 1/0.
677 (process_init_element): Likewise.
678 (build_binary_op): Change the type of a parameter to bool.
679
88539b96 6802017-08-09 Marek Polacek <polacek@redhat.com>
681
682 PR c/81233
683 * c-typeck.c (pedwarn_init): Make the function take a variable list.
684 Call emit_diagnostic_valist instead of pedwarn.
685 (convert_for_assignment): Unroll the PEDWARN_FOR_ASSIGNMENT macro.
686 Print the relevant types in diagnostics.
687
cb4d9ee2 6882017-08-09 Marek Polacek <polacek@redhat.com>
689
690 PR c/81417
691 * c-array-notation.c (fix_builtin_array_notation_fn): Update calls to
692 build_conditional_expr.
693 * c-parser.c (c_parser_conditional_expression): Create locations for
694 EXP1 and EXP2 from their source ranges. Pass the locations down to
695 build_conditional_expr.
696 * c-tree.h (build_conditional_expr): Update declaration.
697 * c-typeck.c (build_conditional_expr): Add location_t parameters.
698 For -Wsign-compare, also print the types.
699
30a86690 7002017-08-08 Martin Liska <mliska@suse.cz>
701
702 * c-convert.c: Include header files.
703 * c-typeck.c: Likewise.
704
1610e7fb 7052017-08-07 Martin Liska <mliska@suse.cz>
706
707 * c-parser.c (c_parser_attributes): Canonicalize name of an
708 attribute.
709
9b184593 7102017-08-02 Marek Polacek <polacek@redhat.com>
711
712 PR c/81289
713 * c-parser.c (c_parser_unary_expression): Use set_error.
714
ef85bba9 715 PR c/81448
716 PR c/81306
717 * c-warn.c (warn_for_multistatement_macros): Prevent bogus
718 warnings. Avoid walking MACRO_MAP_LOCATIONS.
719
38ef3642 7202017-07-31 Jan Hubicka <hubicka@ucw.cz>
721 Martin Liska <mliska@suse.cz>
722
723 * c-typeck.c (c_finish_goto_label): Build gimple predict
9b184593 724 statement.
38ef3642 725
dadc219c 7262017-07-31 Martin Liska <mliska@suse.cz>
727
728 PR sanitize/81530
729 * c-convert.c (convert): Guard condition with flag_sanitize_p
730 also with current_function_decl non-null equality.
731 * c-decl.c (grokdeclarator): Likewise.
732 * c-typeck.c (build_binary_op): Likewise.
733
abec4134 7342017-07-25 Marek Polacek <polacek@redhat.com>
735
736 * c-decl.c (grokfield): Remove local variable.
737
662c96a9 7382017-07-25 Marek Polacek <polacek@redhat.com>
739
740 PR c/81364
741 * c-parser.c (c_parser_else_body): Don't warn about multistatement
742 macro expansion if the body is in { }.
743 (c_parser_while_statement): Likewise.
744 (c_parser_for_statement): Likewise.
745
a8de6c92 7462017-07-18 Nathan Sidwell <nathan@acm.org>
747
748 * c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE.
749
7f9c8569 7502017-07-14 David Malcolm <dmalcolm@redhat.com>
751
752 * c-decl.c (implicitly_declare): When suggesting a missing
753 #include, provide a fix-it hint.
754
7051d239 7552017-07-06 David Malcolm <dmalcolm@redhat.com>
756
757 * c-lang.c (selftest::run_c_tests): Move body to c_family_tests,
758 and call that instead.
759 * c-tree.h (selftest::run_c_tests): New decl.
760
2bfb0686 7612017-06-26 Marek Polacek <polacek@redhat.com>
762
763 PR c/80116
764 * c-parser.c (c_parser_if_body): Set the location of the
765 body of the conditional after parsing all the labels. Call
766 warn_for_multistatement_macros.
767 (c_parser_else_body): Likewise.
768 (c_parser_switch_statement): Likewise.
769 (c_parser_while_statement): Likewise.
770 (c_parser_for_statement): Likewise.
771 (c_parser_statement): Add a default argument. Save the location
772 after labels have been parsed.
773 (c_parser_c99_block_statement): Likewise.
774
edd07ff6 7752017-06-19 Richard Biener <rguenther@suse.de>
776
777 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
778 negated _Literals to parse _Literal (int) -1.
779
9917317a 7802017-06-13 Martin Liska <mliska@suse.cz>
781
782 PR sanitize/78204
783 * c-convert.c (convert): Use sanitize_flags_p.
784 * c-decl.c (grokdeclarator): Likewise.
785 * c-typeck.c (convert_for_assignment): Likewise.
786 (c_finish_return): Likewise.
787 (build_binary_op): Likewise.
788
37ce62dc 7892017-06-08 Jakub Jelinek <jakub@redhat.com>
790
791 PR c/81006
792 * c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE
793 to sizetype before size_binop.
794
73714718 7952017-06-07 Jakub Jelinek <jakub@redhat.com>
796
797 * gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead
798 of TDI_generic.
799
1d1d0f37 8002017-06-06 Marek Polacek <polacek@redhat.com>
801
802 PR c/79983
803 * c-decl.c (start_struct): Use the location of TYPE_STUB_DECL of
804 ref.
805 (start_enum): Use the location of TYPE_STUB_DECL of enumtype.
806
0ca70bfd 8072017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
808
809 * c-parser.c (c_parser_binary_expression): Implement the
810 -Wsizeof_pointer_div warning.
811 (c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code
812 from a parenthesized expression.
813 (c_parser_expr_list): Use c_last_sizeof_loc.
814 * c-tree.h (c_last_sizeof_loc): New external.
815 * c-typeck.c (c_last_sizeof_loc): New variable.
816 (c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc.
817
8c7a5be5 8182017-05-31 Mikhail Maltsev <maltsevm@gmail.com>
819
820 PR testsuite/80580
821 * gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels.
822
4d1eda3a 8232017-05-30 David Malcolm <dmalcolm@redhat.com>
824
825 * c-objc-common.c (c_tree_printer): Gain bool and const char **
826 parameters.
827
645b0f8d 8282017-05-24 Martin Sebor <msebor@redhat.com>
829
830 PR c/80731
831 * c-fold.c (c_fully_fold_internal): Adjust.
832 * c-typeck.c (parser_build_unary_op): Adjust.
833
9d5c2cca 8342017-05-23 Thomas Schwinge <thomas@codesourcery.com>
835
836 * c-parser.c (OACC_KERNELS_CLAUSE_MASK): Add
837 "PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS",
838 "VECTOR_LENGTH".
839
50253e07 8402017-05-23 Marek Polacek <polacek@redhat.com>
841
842 * c-parser.c (c_parser_compound_statement_nostart): Remove redundant
843 quotes.
844
5c05c939 8452017-05-22 Jakub Jelinek <jakub@redhat.com>
846
847 * c-fold.c (c_fully_fold_internal): Save the c_fully_fold_internal
848 result for SAVE_EXPR operand and set SAVE_EXPR_FOLDED_P even if
849 it returned invariant. Call tree_invariant_p unconditionally
850 afterwards to decide whether to return expr or op0.
851
88df6264 8522017-05-22 Nathan Sidwell <nathan@acm.org>
853
854 * c-decl.c (c_parse_final_cleanups): Drop TDI_tu handling.
855
6acf639f 8562017-05-19 Thomas Schwinge <thomas@codesourcery.com>
857
858 * c-parser.c (c_parser_omp_clause_default): Handle
859 "OMP_CLAUSE_DEFAULT_PRESENT".
860
1bccae6b 8612017-05-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
862
863 * config-lang.in (gtfiles): Add c-family/c-format.c.
864
8eb8a179 8652017-05-18 Nathan Sidwell <nathan@acm.org>
866
867 * c-decl.c (pushdecl_top_level): Delete unused function.
868
78173203 8692017-05-18 Marek Polacek <polacek@redhat.com>
870
871 * c-decl.c (match_builtin_function_types): Use NULL_TREE instead of 0.
872 (check_earlier_gotos): Likewise.
873 (define_label): Likewise.
874 (pending_xref_error): Likewise.
875 (smallest_type_quals_location): Likewise.
876 (grokdeclarator): Likewise.
877 (grokparms): Likewise.
878 (identifier_global_value): Likewise.
879 * c-typeck.c (set_nonincremental_init_from_string): Likewise.
880 (find_init_member): Likewise.
881
2823920b 8822017-05-18 Marek Polacek <polacek@redhat.com>
883
884 * c-decl.c (start_decl): Use false/true instead of 0/1.
885 (grokdeclarator): Likewise.
886 (finish_struct): Likewise.
887 (start_function): Change the return type to bool. Use false/true
888 instead of 0/1.
889 (declspecs_add_qual): Use UNKNOWN_LOCATION instead of 0.
890 * c-tree.h (start_function): Update.
891 * c-typeck.c (same_translation_unit_p): Change the return type to bool.
892 (set_designator): Change the return type to bool. Use false/true
893 instead of 0/1.
894
72749341 8952017-05-17 Marek Polacek <polacek@redhat.com>
896
897 * c-decl.c: Use NULL_TREE instead of 0 where appropriate.
898 * c-typeck.c: Likewise.
899
63b8aca5 9002017-05-17 Marek Polacek <polacek@redhat.com>
901
902 PR sanitizer/80659
903 * c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and
904 DECL_IGNORED_P even for non-static compound literals.
905
3f6e5ced 9062017-05-17 Martin Liska <mliska@suse.cz>
907
908 * c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and
909 use it instead of int type.
910
d0869ea4 9112017-05-17 Marek Polacek <polacek@redhat.com>
912
913 * c-convert.c (convert): Replace c_save_expr with save_expr. Don't
914 call c_fully_fold.
915 (convert) <case COMPLEX_TYPE>: Remove special handling of COMPLEX_TYPEs.
916 * c-decl.c (grokdeclarator): Replace c_save_expr with save_expr.
917 * c-fold.c (c_fully_fold_internal): Handle SAVE_EXPR.
918 * c-parser.c (c_parser_declaration_or_fndef): Replace c_save_expr with
919 save_expr.
920 (c_parser_conditional_expression): Likewise.
921 * c-tree.h (SAVE_EXPR_FOLDED_P): Define.
922 * c-typeck.c (build_modify_expr): Replace c_save_expr with save_expr.
923 (process_init_element): Likewise.
924 (build_binary_op): Likewise.
925 (handle_omp_array_sections_1): Likewise.
926
641fc3ae 9272017-05-12 Thomas Schwinge <thomas@codesourcery.com>
928
929 * c-parser.c (c_parser_omp_clause_num_gangs)
930 (c_parser_omp_clause_num_workers)
931 (c_parser_omp_clause_vector_length): Merge functions into...
932 (c_parser_oacc_single_int_clause): ... this new function. Adjust
933 all users.
934
930c75f4 9352017-05-11 Nathan Sidwell <nathan@acm.org>
936
937 * gimple-parser.c: Don't #include tree-dump.h.
938
22ba59df 9392017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
940
941 PR testsuite/80580
942 * gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.
943
e58d47fc 9442017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
945
946 PR testsuite/80580
947 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
948 incorrect __MEM syntax.
949
a38eda85 9502017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
951
952 PR testsuite/80580
953 * gimple-parser.c (c_parser_gimple_unary_expression): Check argument
954 type of unary '*'.
955
cdf05a3f 9562017-05-09 Nathan Sidwell <nathan@acm.org>
957
958 * c-tree.h (pushdecl): Declare.
959
56b8400f 9602017-05-05 David Malcolm <dmalcolm@redhat.com>
961
962 * c-decl.c (warn_defaults_to): Replace report_diagnostic
963 with diagnostic_report_diagnostic.
964 * c-errors.c (pedwarn_c99): Likewise.
965 (pedwarn_c90): Likewise.
966
92bc38e7 9672017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
968
969 PR c++/80038
970 * c-gimplify.c (c_gimplify_expr): Remove calls to
971 cilk_gimplifY_call_params_in_spawned_fn.
972
112e1c2c 9732017-04-25 David Malcolm <dmalcolm@redhat.com>
974
975 * c-parser.c (c_parser_struct_or_union_specifier): Add fix-it
976 hint for removing extra semicolon.
977
0b515531 9782017-04-21 Jakub Jelinek <jakub@redhat.com>
979
980 PR c/80468
981 * c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not
982 enabled, set specs->type to integer_type_node.
983
2fbe7a32 9842017-04-03 Jonathan Wakely <jwakely@redhat.com>
985
986 * c-array-notation.c: Fix typo in comment.
987
3582b9a6 9882017-03-29 Marek Polacek <polacek@redhat.com>
989
990 PR c/79730
991 * c-decl.c (finish_decl): Check VAR_P.
992
3385a573 9932017-03-27 Jakub Jelinek <jakub@redhat.com>
994
995 PR middle-end/80162
996 * c-tree.h (c_mark_addressable): Add array_ref_p argument.
997 * c-typeck.c (c_mark_addressable): Likewise. Look through
998 VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
999 to ARRAY_TYPE.
1000 (build_array_ref): Pass true as array_ref_p to c_mark_addressable.
1001
5c1d51e3 10022017-03-23 Marek Polacek <polacek@redhat.com>
1003
1004 * c-tree.h: Remove a C_RID_YYCODE reference.
1005
048100df 10062017-03-21 Jakub Jelinek <jakub@redhat.com>
1007
1008 PR c/80097
1009 * c-typeck.c (build_binary_op): Add EXCESS_PRECISION_EXPR only around
1010 optional COMPOUND_EXPR with ubsan instrumentation.
1011
c153c724 10122017-03-17 Marek Polacek <polacek@redhat.com>
1013
1014 * c-parser.c: Add C11 references.
1015
51eb47a0 10162017-03-15 Marek Polacek <polacek@redhat.com>
1017
1018 * c-parser.c (c_parser_enum_specifier): Remove redundant line.
1019
726add0b 10202017-03-11 Marek Polacek <polacek@redhat.com>
1021
1022 * c-decl.c (implicit_decl_warning): Add a comment. Fix formatting.
1023
ca1f4c7a 10242017-03-10 David Malcolm <dmalcolm@redhat.com>
1025
1026 PR translation/79848
1027 * c-decl.c (declspecs_add_type): Simplify uses of "%<%s%>" to
1028 "%qs".
1029 * c-parser.c (c_parser_oacc_shape_clause): Likewise.
1030
e14b765f 10312017-03-09 Marek Polacek <polacek@redhat.com>
1032
1033 PR sanitizer/79757
1034 * c-parser.c (c_parser_declaration_or_fndef): Don't sanitize old-style
1035 parameter declarations with initializers.
1036
7ad571b2 10372017-03-09 Jakub Jelinek <jakub@redhat.com>
1038
1039 PR c/79969
1040 * c-decl.c (start_enum): Adjust DECL_SOURCE_LOCATION of
1041 TYPE_STUB_DECL.
1042
d87f668a 10432017-03-07 Jakub Jelinek <jakub@redhat.com>
1044
1045 PR c/79834
1046 * c-parser.c (c_parser_pragma): Use error_at instead of c_parser_error
1047 for "may only be used in compound statements" diagnostics, change it
1048 such that the same translatable string is used for all pragmas. For
1049 PRAGMA_OACC_WAIT use "acc wait" rather than "acc enter data" in the
1050 diagnostics.
1051 (c_parser_omp_cancellation_point, c_parser_omp_target_update,
1052 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Change
1053 "may only be used in compound statements" diagnostics, such that the
1054 same translatable string is used for all pragmas.
1055
16b0e324 10562017-03-04 Marek Polacek <polacek@redhat.com>
1057
1058 PR c/79847
1059 * c-decl.c (implicit_decl_warning): Add missing space.
1060
f2360ea5 10612017-03-03 Marek Polacek <polacek@redhat.com>
1062
1063 PR c/79758
1064 * c-decl.c (store_parm_decls_oldstyle): Check if the element of
1065 current_function_prototype_arg_types is error_mark_node. Fix
1066 formatting. Use TREE_VALUE instead of TREE_TYPE.
1067
d33f5911 10682017-03-03 Jakub Jelinek <jakub@redhat.com>
1069
408a47b2 1070 PR c/79837
1071 * c-parser.c (c_parser_omp_clause_reduction): Don't mention
1072 %<min%> or %<max%> in the diagnostics, instead mention identifier.
1073 (c_parser_omp_declare_reduction): Don't mention %<min%> in the
1074 diagnostics.
1075
d33f5911 1076 PR c/79836
1077 * c-parser.c (c_parser_generic_selection): Use %<_Generic%>
1078 instead of %<_Generic>.
1079 (c_parser_omp_ordered): Use %<depend%> instead of %<depend>.
1080 (c_parser_omp_target_exit_data): Use %<release%> instead of
1081 %<release>.
1082
1caf9cb4 10832017-02-28 Jakub Jelinek <jakub@redhat.com>
1084
1085 * c-parser.c (c_parser_asm_statement): Use cond ? G_("...") : G_("...")
1086 instead of just cond ? "..." : "...".
1087 (c_parser_oacc_enter_exit_data): Use %s and ternary operator only
1088 for "enter"/"exit" keyword.
1089 (c_finish_oacc_routine): Don't use %s to supply portions of the
1090 message.
1091
bbd5521e 10922017-02-24 Jakub Jelinek <jakub@redhat.com>
1093
1094 PR c++/79588
1095 * c-parser.c (c_parser_postfix_expression_after_primary): Don't
1096 handle -Wrestrict here.
1097 * c-typeck.c (build_function_call_vec): Adjust
1098 check_function_arguments caller.
1099
a450df95 11002017-02-23 Richard Biener <rguenther@suse.de>
1101
1102 PR c/79684
1103 * gimple-parser.c (c_parser_gimple_statement): Use set_error
1104 to initialize c_exprs to return.
1105 (c_parser_gimple_binary_expression): Likewise.
1106 (c_parser_gimple_unary_expression): Likewise.
1107 (c_parser_gimple_postfix_expression): Likewise.
1108
2567d975 11092017-02-22 Marek Polacek <polacek@redhat.com>
1110
1111 PR c/79662
1112 * c-typeck.c (convert_arguments): Handle error_mark_node.
1113
21bfe0d4 11142017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1115
1116 * gimple-parser.c (c_parser_gimple_postfix_expression): Check return
1117 value of c_parser_parse_ssa_name against error_mark_node and emit
1118 error if ssa name is anonymous and written as default definition.
1119
a8deddc8 11202017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1121
1122 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
1123 FMA_EXPR.
1124
79878c89 11252017-02-16 Jakub Jelinek <jakub@redhat.com>
1126
1127 PR c++/79512
1128 * c-parser.c (c_parser_omp_target): For -fopenmp-simd
1129 ignore #pragma omp target even when not followed by identifier.
1130
78c6d67e 11312017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1132
1133 * gimpler-parser.c (c_parser_gimple_statement): Handle ABS_EXPR.
1134 (c_parser_gimple_unary_expression): Likewise.
1135
19efce70 11362017-02-13 Jakub Jelinek <jakub@redhat.com>
1137
1138 * c-parser.c (c_parser_oacc_declare): Add missing space in
1139 diagnostics.
1140
32b8484d 11412017-02-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1142
1143 PR c/79478
1144 * gimple-parser.c (c_parser_gimple_postfix_expression): Call
1145 set_c_expr_source_range when parsing ssa-name.
1146
b91919ba 11472017-02-10 Prasad Ghangal <prasad.ghangal@gmail.com>
1148 Richard Biener <rguenther@suse.de>
1149
1150 * gimple-parser.c (c_parser_gimple_binary_expression): Avoid
1151 building IL when arguments are error_mark_node.
1152 (c_parser_gimple_unary_expression): Likewise.
1153 (c_parser_gimple_if_stmt): Likewise.
1154 (c_parser_gimple_switch_stmt): Likewise.
1155 (c_parser_gimple_return_stmt): Likewise.
1156 (c_parser_parse_ssa_name): When name lookup fails do not build
1157 an SSA name. Use undeclared rather than not declared in error
1158 reporting.
1159
127144a0 11602017-02-09 Marek Polacek <polacek@redhat.com>
1161
1162 PR c/79428
1163 * c-parser.c (c_parser_omp_ordered): Call c_parser_skip_to_pragma_eol
1164 instead of c_parser_skip_until_found.
1165
b5c83b44 11662017-02-09 Jakub Jelinek <jakub@redhat.com>
1167
1168 PR c/79431
1169 * c-parser.c (c_parser_omp_declare_target): Don't invoke
1170 symtab_node::get on automatic variables.
1171
719a7570 11722016-02-09 Nathan Sidwell <nathan@codesourcery.com>
1173 Chung-Lin Tang <cltang@codesourcery.com>
1174
1175 * c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
1176 (c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
1177 semantic checking.
1178 * c-parser.c (c_parser_omp_for_loop): Accept tiling constructs.
1179
29beab79 11802017-02-07 Richard Biener <rguenther@suse.de>
1181
1182 * gimple-parser.c (c_parser_gimple_expr_list): Simplify.
1183 (c_parser_gimple_postfix_expression_after_primary):
1184 Do not use c_build_function_call_vec to avoid folding and promotion.
1185 Simplify.
1186
96afa092 11872017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
1188
1189 PR lto/79061
1190 * c-decl.c (pop_scope): Pass main_input_filename to
1191 build_translation_unit_decl.
1192
175e0d6b 11932017-01-24 David Malcolm <dmalcolm@redhat.com>
1194
1195 * c-parser.c: Include "read-rtl-function.h" and
1196 "run-rtl-passes.h".
1197 (c_parser_declaration_or_fndef): Rename "gimple-pass-list" in
1198 grammar to gimple-or-rtl-pass-list. Add rtl-function-definition
1199 production. Update for renaming of field "gimple_pass" to
1200 "gimple_or_rtl_pass". If __RTL was seen, call
1201 c_parser_parse_rtl_body. Convert a timevar_push/pop pair
1202 to an auto_timevar, to cope with early exit.
1203 (c_parser_declspecs): Update RID_GIMPLE handling for renaming of
1204 field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of
1205 c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list.
1206 Handle RID_RTL.
1207 (c_parser_parse_rtl_body): New function.
1208 * c-tree.h (enum c_declspec_word): Add cdw_rtl.
1209 (struct c_declspecs): Rename field "gimple_pass" to
1210 "gimple_or_rtl_pass". Add field "rtl_p".
1211 * gimple-parser.c (c_parser_gimple_pass_list): Rename to...
1212 (c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly.
1213 * gimple-parser.h (c_parser_gimple_pass_list): Rename to...
1214 (c_parser_gimple_or_rtl_pass_list): ...this.
1215
3ef7eab1 12162017-01-20 Marek Polacek <polacek@redhat.com>
1217
1218 PR c/64279
1219 * c-typeck.c (build_conditional_expr): Warn about duplicated branches.
1220
785353b9 12212017-01-13 Richard Biener <rguenther@suse.de>
1222
1223 * gimple-parser.c (c_parser_gimple_compound_statement): Handle
1224 nops.
1225
ac5f04c1 12262017-01-13 Richard Biener <rguenther@suse.de>
1227
1228 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
1229 _Literal ( type-name ) number.
1230
2b11c996 12312017-01-12 Richard Biener <rguenther@suse.de>
1232
1233 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
1234 __MEM.
1235
9a26d403 12362017-01-11 Jakub Jelinek <jakub@redhat.com>
1237
1238 PR c++/72813
1239 * c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing
1240 PCH file.
1241
a19c4dc1 12422017-01-11 Richard Biener <rguenther@suse.de>
1243
1244 PR bootstrap/79052
1245 * gimple-parser.c (c_parser_gimple_switch_stmt): Add missing
1246 returns on parse errors.
1247
6124217c 12482017-01-04 Marek Polacek <polacek@redhat.com>
1249
1250 PR c++/64767
1251 * c-parser.c (c_parser_postfix_expression): Mark zero character
1252 constants by setting original_type in c_expr.
1253 * c-typeck.c (parser_build_binary_op): Warn when a pointer is compared
1254 with a zero character constant.
1255 (char_type_p): New function.
1256
8ccda24a 12572017-01-04 David Malcolm <dmalcolm@redhat.com>
1258
1259 * c-parser.c (c_parser_declaration_or_fndef): Create a
1260 rich_location at init_loc and parse it to start_init.
1261 (last_init_list_comma): New global.
1262 (c_parser_braced_init): Update last_init_list_comma when parsing
1263 commas. Pass it to pop_init_level. Pass location of closing
1264 brace to pop_init_level.
1265 (c_parser_postfix_expression_after_paren_type): Create a
1266 rich_location at type_loc and parse it to start_init.
1267 (c_parser_omp_declare_reduction): Likewise for loc.
1268 * c-tree.h (start_init): Add rich_location * param.
1269 (pop_init_level): Add location_t param.
1270 * c-typeck.c (struct initializer_stack): Add field
1271 "missing_brace_richloc".
1272 (start_init): Add richloc param, use it to initialize
1273 the stack node's missing_brace_richloc.
1274 (last_init_list_comma): New decl.
1275 (finish_implicit_inits): Pass last_init_list_comma to
1276 pop_init_level.
1277 (push_init_level): When finding missing open braces, add fix-it
1278 hints to the richloc.
1279 (pop_init_level): Add "insert_before" param and pass it
1280 when calling pop_init_level. Add fixits about missing
1281 close braces to any richloc. Use the richloc for the
1282 -Wmissing-braces warning.
1283 (set_designator): Pass last_init_list_comma to pop_init_level.
1284 (process_init_element): Likewise.
1285
aad93da1 12862017-01-01 Jakub Jelinek <jakub@redhat.com>
1287
1288 Update copyright years.
1289
3713d2e2 12902016-12-21 Jakub Jelinek <jakub@redhat.com>
1291
184fac50 1292 PR bootstrap/78817
1293 * c-typeck.c (build_function_call_vec): If check_function_arguments
1294 returns true, set TREE_NO_WARNING on CALL_EXPR.
1295
3713d2e2 1296 PR c/77767
1297 * c-decl.c (grokdeclarator): If *expr is non-NULL, append expression
1298 to *expr instead of overwriting it.
1299
3e677d45 13002016-12-20 Richard Biener <rguenther@suse.de>
1301
1302 * gimple-parser.c (c_parser_gimple_compound_statement): Improve
1303 error recovery.
1304 (c_parser_gimple_statement): Only build assigns for non-error
1305 stmts.
1306 (c_parser_gimple_postfix_expression_after): Improve error recovery.
1307
4954efd4 13082016-12-14 Martin Jambor <mjambor@suse.cz>
1309
1310 * c-parser.c: Include omp-general.h and omp-offload.h instead of
1311 omp-low.h.
1312 (c_finish_oacc_routine): Adjusted call to
1313 get_oacc_fn_attrib, build_oacc_routine_dims and replace_oacc_fn_attrib
1314 to use their new names.
1315 (c_parser_oacc_enter_exit_data): Adjusted call to find_omp_clause to
1316 use its new name.
1317 (c_parser_oacc_update): Likewise.
1318 (c_parser_omp_simd): Likewise.
1319 (c_parser_omp_target_update): Likewise.
1320 * c-typeck.c: Include omp-general.h instead of omp-low.h.
1321 (c_finish_omp_cancel): Adjusted call to find_omp_clause to use its new
1322 name.
1323 (c_finish_omp_cancellation_point): Likewise.
1324 * gimple-parser.c: Do not include omp-low.h
1325
4c50b884 13262016-12-02 Cesar Philippidis <cesar@codesourcery.com>
1327 James Norris <jnorris@codesourcery.com>
1328
1329 * c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
1330 EXIT_DATA,WAIT} are not used in compound statements.
1331 (c_parser_oacc_enter_exit_data): Update diagnostics.
1332
f1b3e1c9 13332016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
1334
1335 PR c++/71973
1336 * c-decl.c (diagnose_mismatched_decls): Use
1337 OPT_Wbuiltin_declaration_mismatch here too.
1338
adc78298 13392016-11-18 Richard Sandiford <richard.sandiford@arm.com>
f1b3e1c9 1340 Alan Hayward <alan.hayward@arm.com>
1341 David Sherwood <david.sherwood@arm.com>
adc78298 1342
1343 * c-decl.c (merge_decls): Use SET_DECL_MODE.
1344 (make_label, finish_struct): Likewise.
1345
b1f04d34 13462016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com>
a49621cf 1347 Richard Biener <rguenther@suse.de>
9b8f3aa1 1348
a49621cf 1349 * Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.
1350 * config-lang.in (gtfiles): Add c/c-parser.h.
1351 * c-tree.h (enum c_declspec_word): Add cdw_gimple.
1352 (struct c_declspecs): Add gimple_pass member and gimple_p flag.
1353 * c-parser.c (enum c_id_kind, struct c_token,
1354 c_parser_next_token_is, c_parser_next_token_is_not,
1355 c_parser_next_token_is_keyword,
1356 enum c_lookahead_kind, enum c_dtr_syn, enum c_parser_prec):
1357 Split out to ...
1358 * c-parser.h: ... new header.
1359 * c-parser.c: Include c-parser.h and gimple-parser.h.
b1f04d34 1360 (c_parser_peek_token, c_parser_peek_2nd_token,
a49621cf 1361 c_token_starts_typename, c_parser_next_token_starts_declspecs,
1362 c_parser_next_tokens_start_declaration, c_parser_consume_token,
1363 c_parser_error, c_parser_require, c_parser_skip_until_found,
1364 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
1365 c_parser_type_name): Export.
1366 (c_parser_tokens_buf): New function.
1367 (c_parser_error): Likewise.
1368 (c_parser_set_error): Likewise.
1369 (c_parser_declspecs): Handle RID_GIMPLE.
b1f04d34 1370 (c_parser_declaration_or_fndef): Parse __GIMPLE marked body
1371 via c_parser_parse_gimple_body.
a49621cf 1372 * c-parser.h (c_parser_peek_token, c_parser_peek_2nd_token,
1373 c_token_starts_typename, c_parser_next_token_starts_declspecs,
1374 c_parser_next_tokens_start_declaration, c_parser_consume_token,
1375 c_parser_error, c_parser_require, c_parser_skip_until_found,
1376 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
1377 c_parser_type_name): Declare.
b1f04d34 1378 (struct c_parser): Declare forward.
1379 (c_parser_tokens_buf): Declare.
a49621cf 1380 (c_parser_error): Likewise.
1381 (c_parser_set_error): Likewise.
1382 * gimple-parser.c: New file.
1383 * gimple-parser.h: Likewise.
b1f04d34 1384
9b8f3aa1 13852016-11-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1386
1387 PR c/35503
1388 * c-parser.c (c_parser_postfix_expression_after_primary): Call
1389 warn_for_restrict.
1390
50d3ad71 13912016-09-11 Le-Chun Wu <lcwu@google.com>
1392 Mark Wielaard <mjw@redhat.com>
1393
1394 * c-decl.c (warn_if_shadowing): Use the warning code corresponding
1395 to the given -Wshadow= variant.
1396
ad7b10a2 13972016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
1398
1399 * c-typeck.c: Include memmodel.h.
1400
8a23256f 14012016-10-13 Jakub Jelinek <jakub@redhat.com>
1402
1403 PR target/77957
1404 * c-objc-common.h (LANG_HOOKS_GETDECLS): Use hook_tree_void_null
1405 instead of lhd_return_null_tree_v.
1406
30ac4925 14072016-10-07 Bernd Schmidt <bschmidt@redhat.com>
1408
1409 PR c++/69733
1410 * c-decl.c (smallest_type_quals_location): New static function.
1411 (grokdeclarator): Try to find the correct location for an ignored
1412 qualifier.
1413
3c77f69c 14142016-09-26 Marek Polacek <polacek@redhat.com>
1415
1416 PR c/7652
1417 * c-decl.c (pop_scope): Add gcc_fallthrough.
1418
14192016-09-26 Marek Polacek <polacek@redhat.com>
1420
1421 PR c/7652
1422 * c-parser.c (struct c_token): Add flags field.
1423 (c_lex_one_token): Pass it to c_lex_with_flags.
1424 (c_parser_declaration_or_fndef): Turn __attribute__((fallthrough));
1425 into IFN_FALLTHROUGH.
1426 (c_parser_label): Set FALLTHROUGH_LABEL_P on labels. Handle
1427 attribute fallthrough after a case label or default label.
1428 (c_parser_statement_after_labels): Handle RID_ATTRIBUTE.
1429
481ce481 14302016-09-24 Marek Polacek <polacek@redhat.com>
1431
1432 PR c/77490
1433 * c-typeck.c (build_unary_op): Warn about bit not on expressions that
1434 have boolean value. Warn about ++/-- on booleans.
1435
16fb756f 14362016-09-23 Jakub Jelinek <jakub@redhat.com>
1437
1438 * c-parser.c (incomplete_record_decls): Remove unnecessary
1439 = vNULL initialization of file scope vec.
1440
d80c1c6c 14412016-09-16 Marek Polacek <polacek@redhat.com>
1442
1443 * c-typeck.c (lvalue_p): Use true and false instead of 1 and 0.
1444
b99cc6da 14452016-09-14 Marek Polacek <polacek@redhat.com>
1446
1447 * c-array-notation.c (create_cmp_incr): Use false instead of 0.
1448 (fix_array_notation_expr): Likewise.
1449 * c-decl.c (finish_decl): Likewise.
1450 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
1451 * c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
1452 (function_to_pointer_conversion): Use false instead of 0.
1453 (convert_lvalue_to_rvalue): Likewise.
1454 (parser_build_unary_op): Likewise.
1455 (build_atomic_assign): Likewise.
1456 (build_unary_op): Change nonconvert parameter type to bool, use
1457 true/false instead of 1/0.
1458 (build_binary_op): Use true instead of 1.
1459
68ef907c 14602016-09-13 David Malcolm <dmalcolm@redhat.com>
1461
1462 * c-parser.c (c_parser_declaration_or_fndef): Update for renaming
1463 of add_fixit_insert to add_fixit_insert_before.
1464
89bcb5a3 14652016-09-13 Marek Polacek <polacek@redhat.com>
1466
1467 * c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT. Use
1468 it.
1469
7a21b590 14702016-09-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
1471
1472 PR c++/77496
1473 * c-parser.c (c_parser_conditional_expression): Pass the rightmost
1474 COMPOUND_EXPR to warn_for_omitted_condop.
1475
3da97ff7 14762016-09-07 David Malcolm <dmalcolm@redhat.com>
1477
1478 * c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
1479 c_get_substring_location for this new langhook.
1480
0b80c4b2 14812016-09-02 Jakub Jelinek <jakub@redhat.com>
1482
1483 PR c/65467
1484 * c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
1485 flag_openmp.
1486 (c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
1487 instead of mark_exp_read on low_bound/length expression.
1488 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
1489 c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
1490 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
1491 c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
1492 c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
1493 c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
1494 c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
1495 c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
1496 c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
1497 c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
1498 instead of mark_expr_read.
1499 (c_parser_omp_declare_reduction): Reject _Atomic qualified types.
1500 * c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
1501 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
1502 * c-tree.h (c_omp_clause_copy_ctor): New prototype.
1503 * c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
1504 array section bases outside of depend clause, for depend clause
1505 use convert_lvalue_to_rvalue on the base.
1506 (c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
1507 linear, aligned, map, to and from clauses.
1508 (c_omp_clause_copy_ctor): New function.
1509
c7afb782 15102016-09-01 Marek Polacek <polacek@redhat.com>
1511
1512 PR c/7652
1513 * c-typeck.c (composite_type): Add FALLTHRU comment.
1514
986530da 15152016-08-31 David Malcolm <dmalcolm@redhat.com>
1516
1517 * c-parser.c (c_parser_declaration_or_fndef): Add trailing space
1518 to the insertion fixits for "struct", "union", and "enum".
1519
850c2009 15202016-08-30 David Malcolm <dmalcolm@redhat.com>
1521
1522 * c-decl.c (implicit_decl_warning): Use add_fixit_replace
1523 rather than add_fixit_misspelled_id.
1524 (undeclared_variable): Likewise.
1525 * c-parser.c (c_parser_declaration_or_fndef): Likewise. Remove
1526 now-redundant "here" params from add_fixit_insert method calls.
1527 (c_parser_parameter_declaration): Likewise.
1528 * c-typeck.c (build_component_ref): Remove now-redundant range
1529 param from add_fixit_replace method calls.
1530
c4963714 15312016-08-25 Marek Polacek <polacek@redhat.com>
1532
1533 * c-typeck.c (parser_build_binary_op): Pass LHS to
1534 warn_logical_not_parentheses.
1535
49e1f4eb 15362016-08-25 Marek Polacek <polacek@redhat.com>
1537
1538 PR c/77323
1539 * c-decl.c (declspecs_add_type): Set typespec_word even when __intN
1540 or _FloatN or _FloatNx is not supported.
1541 (finish_declspecs): Set type to integer_type_node when _FloatN or
1542 _FloatNx is not supported.
1543
82c85aba 15442016-08-19 Joseph Myers <joseph@codesourcery.com>
1545
1546 PR c/32187
1547 * c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
1548 (struct c_declspecs): Add field floatn_nx_idx.
1549 * c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
1550 and _FloatNx type specifiers.
1551 * c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
1552 (c_parser_declspecs, c_parser_attribute_any_word)
1553 (c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
1554 * c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
1555 (convert_arguments): Avoid promoting _FloatN and _FloatNx types
1556 narrower than double.
1557
7175bb2a 15582016-08-12 Jakub Jelinek <jakub@redhat.com>
1559 Martin Liska <mliska@suse.cz>
1560
1561 PR c/67410
1562 * c-typeck.c (set_nonincremental_init_from_string): Use / instead of
1563 % to determine val element to change. Assert that
1564 wchar_bytes * charwidth fits into val array.
1565
e3533433 15662016-08-12 Marek Polacek <polacek@redhat.com>
1567
1568 PR c/7652
1569 * c-parser.c (c_parser_external_declaration): Add FALLTHRU.
1570 (c_parser_postfix_expression): Likewise.
1571 * c-typeck.c (build_unary_op): Adjust fall through comment.
1572 (c_mark_addressable): Likewise.
1573
74be5bc1 15742016-08-11 Jakub Jelinek <jakub@redhat.com>
1575
1576 PR c/72816
1577 * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
1578 array member through typedef, for orig_qual_indirect == 0 clear
1579 orig_qual_type.
1580
7af4d06b 15812016-08-08 David Malcolm <dmalcolm@redhat.com>
1582
1583 PR c/64955
1584 * c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
1585 this up to selftest::run_c_tests.
1586 (selftest::run_c_tests): New function.
1587
5f429ee2 15882016-08-04 Thomas Schwinge <thomas@codesourcery.com>
1589
1fa5d8ba 1590 * c-parser.c (struct oacc_routine_data): Add error_seen and
1591 fndecl_seen members.
1592 (c_finish_oacc_routine): Use these.
1593 (c_parser_declaration_or_fndef): Adjust.
1594 (c_parser_oacc_routine): Likewise. Support more C language
1595 constructs, and improve diagnostics. Move pragma context
1596 checking...
1597 (c_parser_pragma): ... here.
1598
5f429ee2 1599 * c-parser.c (struct oacc_routine_data): New.
1600 (c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
1601 Simplify code.
1602 (c_finish_oacc_routine): Likewise. Don't attach clauses to "omp
1603 declare target" attribute.
1604
f3c032a4 16052016-08-01 Jan Beulich <jbeulich@suse.com>
1606
1607 * c-fold.c (c_fully_fold_internal): Also emit shift count
1608 warnings for vector types.
1609 * c-typeck.c (build_binary_op): Likewise.
1610
4ebf85be 16112016-07-29 Marek Polacek <polacek@redhat.com>
1612
1613 PR c/71742
1614 * c-decl.c (finish_struct): Rephrase an error message.
1615
9efe5be6 1616 PR c/71853
1617 * c-parser.c (c_parser_switch_statement): Initialize ce.original_type
1618 to error node for invalid code.
1619
4c4548bb 1620 PR c/71573
1621 * c-decl.c (implicitly_declare): Return decl early not only for
1622 error_mark_nodes, but for anything that is not a FUNCTION_DECL.
1623
322d4184 16242016-07-29 Jakub Jelinek <jakub@redhat.com>
1625
1626 PR c/71969
1627 * c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
1628 on GNU extern inline functions.
1629
35fddbd6 16302016-07-29 Marek Polacek <polacek@redhat.com>
1631
1632 PR c/71583
1633 * c-parser.c (c_parser_postfix_expression_after_paren_type): Also
1634 check expr.value.
1635
59c1507a 16362016-07-22 Uros Bizjak <ubizjak@gmail.com>
1637
1638 * c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
1639
d0f11d68 16402016-07-20 David Malcolm <dmalcolm@redhat.com>
1641
1642 * c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
1643 spellcheck-tree.h
1644 (best_macro_match): Likewise, converting from a typedef to a
1645 subclass.
1646 (find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
1647 (lookup_name_fuzzy): Update for change of best_macro_match to a
1648 subclass with a ctor that calls cpp_forall_identifiers.
1649
d208f6e6 16502016-07-20 David Malcolm <dmalcolm@redhat.com>
1651
1652 * c-decl.c (implicit_decl_warning): Update for conversion of
1653 return type of lookup_name_fuzzy to const char *.
1654 (undeclared_variable): Likewise.
1655 (lookup_name_fuzzy): Convert return type from tree to
1656 const char *.
1657 * c-parser.c (c_parser_declaration_or_fndef): Update for
1658 conversion of return type of lookup_name_fuzzy to const char *.
1659 (c_parser_parameter_declaration): Likewise.
1660
0ef9358d 16612016-07-15 Cesar Philippidis <cesar@codesourcery.com>
1662
1663 * c-parser.c (c_parser_oacc_declare): Don't scan for
1664 GOMP_MAP_POINTER.
1665 * c-typeck.c (handle_omp_array_sections): Mark data clauses with
1666 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
1667 zero-length subarrays.
1668
0dd7db3b 16692016-07-15 Jakub Jelinek <jakub@redhat.com>
1670
1671 PR c/71858
1672 * c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
1673 instead of FUZZY_LOOKUP_NAME.
1674 (lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
1675 FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.
1676
28413b15 16772016-07-14 Jakub Jelinek <jakub@redhat.com>
1678
1679 PR c/71858
1680 * c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.
1681
e9258aee 16822016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1683
1684 * c-parser.c (c_parser_generic_selection): Make type of variable
1685 auto_vec.
1686 (c_parser_omp_declare_simd): Likewise.
1687
57f91a55 16882016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1689
1690 * c-decl.c (struct c_struct_parse_info): Change member types
1691 from vec to auto_vec.
1692 (start_struct): Adjust.
1693 (finish_struct): Likewise.
1694
c364d0f3 16952016-07-02 Jakub Jelinek <jakub@redhat.com>
1696
1697 PR c/71719
1698 * c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
1699
44e775d8 17002016-06-29 Thomas Schwinge <thomas@codesourcery.com>
1701
1702 * c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
1703 Move pragma context checking into...
1704 (c_parser_omp_cancellation_point): ... here, and improve
1705 diagnostic messages.
1706 * c-typeck.c (c_finish_omp_cancel)
1707 (c_finish_omp_cancellation_point): Improve diagnostic messages.
1708
1af10ce6 17092016-06-29 Jakub Jelinek <jakub@redhat.com>
1710
1711 PR c/71685
1712 * c-typeck.c (c_build_qualified_type): Don't clear
1713 C_TYPE_INCOMPLETE_VARS for the main variant.
1714
17152016-06-28 Martin Sebor <msebor@redhat.com>
9c3ffbcb 1716
1717 PR c/71552
1718 * c-typeck.c (output_init_element): Diagnose incompatible types
1719 before non-constant initializers.
1720
6eb2402f 17212016-06-28 Jakub Jelinek <jakub@redhat.com>
1722
1723 * Make-lang.in: Don't cat ../stage_current if it does not exist.
1724
b4c71cbb 17252016-06-23 Andi Kleen <ak@linux.intel.com>
1726
1727 * Make-lang.in: Add support for autofdo.
1728
8469aece 17292016-06-22 David Malcolm <dmalcolm@redhat.com>
1730
1731 PR c/70339
1732 * c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
1733 (implicit_decl_warning): When issuing warnings for implicit
1734 declarations, attempt to provide a suggestion via
1735 lookup_name_fuzzy.
1736 (undeclared_variable): Likewise when issuing errors.
1737 (lookup_name_in_scope): Likewise.
1738 (struct edit_distance_traits<cpp_hashnode *>): New struct.
1739 (best_macro_match): New typedef.
1740 (find_closest_macro_cpp_cb): New function.
1741 (lookup_name_fuzzy): New function.
1742 * c-parser.c: Include gcc-rich-location.h.
1743 (c_token_starts_typename): Split out case CPP_KEYWORD into...
1744 (c_keyword_starts_typename): ...this new function.
1745 (c_parser_declaration_or_fndef): When issuing errors about
1746 missing "struct" etc, add a fixit. For other kinds of errors,
1747 attempt to provide a suggestion via lookup_name_fuzzy.
1748 (c_parser_parms_declarator): When looking ahead to detect typos in
1749 type names, also reject CPP_KEYWORD.
1750 (c_parser_parameter_declaration): When issuing errors about
1751 unknown type names, attempt to provide a suggestion via
1752 lookup_name_fuzzy.
1753 * c-tree.h (c_keyword_starts_typename): New prototype.
1754
e218d07f 17552016-06-20 Joseph Myers <joseph@codesourcery.com>
1756
1757 PR c/71601
1758 * c-typeck.c (build_conditional_expr): Return error_mark_node if
1759 c_common_type returns error_mark_node.
1760
92a44a68 17612016-06-19 Martin Sebor <msebor@redhat.com>
21897f47 1762
1763 PR c/69507
1764 * c-parser.c (c_parser_alignof_expression): Avoid diagnosing
1765 __alignof__ (expression).
1766
f0d77991 17672016-06-14 David Malcolm <dmalcolm@redhat.com>
1768
1769 * c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h.
1770
2a990300 17712016-06-14 David Malcolm <dmalcolm@redhat.com>
1772
1773 * c-typeck.c (build_component_ref): Simplify fixit code by
1774 using gcc_rich_location::add_fixit_misspelled_id.
1775 (set_init_label): Likewise.
1776
527790c1 17772016-06-13 David Malcolm <dmalcolm@redhat.com>
1778
1779 * c-parser.c (c_parser_initelt): Provide location of name for new
1780 location_t param of set_init_label.
1781 * c-tree.h (set_init_label): Add location_t param.
1782 * c-typeck.c (set_init_index): Add "fieldname_loc" location_t
1783 param and use it when issuing error messages about unrecognized
1784 field names. Attempt to provide a fixit hint if appropriate,
1785 otherwise update the error message to provide the type name.
1786
ccfa030f 17872016-06-10 Thomas Schwinge <thomas@codesourcery.com>
1788
1789 PR c/71381
1790 * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
1791 Loosen checking.
1792
732905bb 17932016-06-08 Martin Sebor <msebor@redhat.com>
1794 Jakub Jelinek <jakub@redhat.com>
1795
1796 PR c++/70507
1797 PR c/68120
1798 * c-typeck.c (convert_arguments): Don't promote last argument
1799 of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
1800
bafc7b1d 18012016-06-08 Marek Polacek <polacek@redhat.com>
1802
1803 PR c/71418
1804 * c-decl.c (grokdeclarator): Check TYPE_P.
1805
06e590e7 1806 PR c/71426
1807 * c-decl.c (get_parm_info): Don't crash on an assert on invalid
1808 code.
1809
7cfde92a 18102016-06-07 David Malcolm <dmalcolm@redhat.com>
1811
1812 * c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
1813 and structure element reference, capture the location of the
1814 element name token and pass it to build_component_ref.
1815 (c_parser_postfix_expression_after_primary): Likewise for
1816 structure element dereference.
1817 (c_parser_omp_variable_list): Likewise for
1818 OMP_CLAUSE_{_CACHE, MAP, FROM, TO},
1819 * c-tree.h (build_component_ref): Add location_t param.
1820 * c-typeck.c (build_component_ref): Add location_t param
1821 COMPONENT_LOC. Use it, if available, when issuing hints about
1822 mispelled member names to provide a fixit replacement hint.
1823
61f1f80c 18242016-06-06 Marek Polacek <polacek@redhat.com>
1825
1826 PR c/71362
1827 * c-parser.c (c_parser_direct_declarator): Set location.
1828
e4b92538 18292016-06-06 Marek Polacek <polacek@redhat.com>
1830
1831 * c-typeck.c (comptypes_internal): Handle comparisons of
1832 INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes. Don't check
1833 TYPE_REF_CAN_ALIAS_ALL.
1834
2234363c 18352016-06-03 Chung-Lin Tang <cltang@codesourcery.com>
1836
1837 * c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
1838 arguments as addressable when async clause exists.
1839
b6431756 18402016-05-30 Jakub Jelinek <jakub@redhat.com>
1841
1842 PR c++/71349
1843 * c-parser.c (c_parser_omp_for): Don't disallow nowait clause
1844 when combined with target construct.
1845
6feab9ce 18462016-05-26 Jakub Jelinek <jakub@redhat.com>
1847
1848 * c-parser.c (c_parser_omp_clause_schedule): Warn if
1849 OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
1850
2c995da9 18512016-05-25 Marek Polacek <polacek@redhat.com>
1852
1853 PR c/71265
1854 * c-decl.c (c_make_fname_decl): Don't check seen_error.
1855
abfbb5b5 1856 PR c/71266
1857 * c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.
1858
6d6a3fc3 18592016-05-24 Cesar Philippidis <cesar@codesourcery.com>
1860
1861 * c-parser.c (c_parser_oacc_declare): Add support for
1862 GOMP_MAP_FIRSTPRIVATE_POINTER.
1863 * c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
1864 argument with enum c_omp_region_type ort.
1865 (handle_omp_array_sections): Likewise. Update call to
1866 handle_omp_array_sections_1.
1867 (c_finish_omp_clauses): Add specific errors and warning messages for
1868 OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update
1869 call to handle_omp_array_sections.
1870
c9d624bd 18712016-05-24 Thomas Schwinge <thomas@codesourcery.com>
1872
1873 * c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
1874
7345b977 18752016-05-24 Richard Biener <rguenther@suse.de>
1876
1877 PR middle-end/70434
1878 PR c/69504
1879 * c-typeck.c (build_array_ref): Do not complain about indexing
1880 non-lvalue vectors. Adjust for function name change.
1881
8bdfbc08 18822016-05-20 Martin Sebor <msebor@redhat.com>
1883
1884 PR c/71115
1885 * c-typeck.c (error_init): Use
1886 expansion_point_location_if_in_system_header.
1887 (warning_init): Same.
1888
97c71d71 18892016-05-19 David Malcolm <dmalcolm@redhat.com>
1890
1891 PR c/71171
1892 * c-parser.c (c_parser_generic_selection): Use c_expr::set_error
1893 in error-handling.
1894 (c_parser_postfix_expression): Likewise.
1895 * c-tree.h (c_expr::set_error): New method.
1896 * c-typeck.c (parser_build_binary_op): In error-handling, ensure
1897 that result's range is initialized.
1898
e68d7b49 18992016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1900
1901 * c-typeck.c (parser_build_unary_op): Fix formatting.
1902
624115b4 19032016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1904
1905 * c-decl.c (grokdeclarator): Remove errmsg and use of
1906 targetm.invalid_return_type.
1907 (grokparms): Remove errmsg and use of
1908 targetm.invalid_parameter_type.
1909
90c88567 19102016-05-13 Joseph Myers <joseph@codesourcery.com>
1911
1912 * c-decl.c (grokdeclarator): For C11, discard qualifiers on
1913 function return type.
1914
22a3f7bd 19152016-05-12 Marek Polacek <polacek@redhat.com>
1916
1917 PR c/70756
1918 * c-decl.c (build_compound_literal): Pass LOC down to
1919 c_incomplete_type_error.
1920 * c-tree.h (require_complete_type): Adjust declaration.
1921 (c_incomplete_type_error): Likewise.
1922 * c-typeck.c (require_complete_type): Add location parameter, pass it
1923 down to c_incomplete_type_error.
1924 (c_incomplete_type_error): Add location parameter, pass it down to
1925 error_at.
1926 (build_component_ref): Pass location down to c_incomplete_type_error.
1927 (default_conversion): Pass location down to require_complete_type.
1928 (build_array_ref): Likewise.
1929 (build_function_call_vec): Likewise.
1930 (convert_arguments): Likewise.
1931 (build_unary_op): Likewise.
1932 (build_c_cast): Likewise.
1933 (build_modify_expr): Likewise.
1934 (convert_for_assignment): Likewise.
1935 (c_finish_omp_clauses): Likewise.
1936
54c4d22e 19372016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
1938
1939 PR c/43651
1940 * c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
1941 is enabled.
1942 * c-errors.c (pedwarn_c90): Return true if warned.
1943 * c-tree.h (pedwarn_c90): Change return type to bool.
1944 (enum c_declspec_word): Add new enumerator cdw_atomic.
1945
7f8012a5 19462016-05-11 Marek Polacek <polacek@redhat.com>
1947
1948 PR c++/71024
1949 * c-decl.c (diagnose_mismatched_decls): Factor out code to
1950 diagnose_mismatched_attributes and call it.
1951
3fa82609 19522016-05-10 Marek Polacek <polacek@redhat.com>
1953
1954 PR c/70255
1955 * c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute
1956 on a declaration following the definition.
1957
871164c4 19582016-05-05 Jakub Jelinek <jakub@redhat.com>
1959
1960 * c-parser.c (c_parser_switch_statement): Add IF_P argument,
1961 parse it through to c_parser_c99_block_statement.
1962 (c_parser_statement_after_labels): Adjust c_parser_switch_statement
1963 caller.
1964
1d52c456 19652016-05-04 Marek Polacek <polacek@redhat.com>
1966
1967 * c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
1968 OPT_Wdangling_else.
1969
a64030fe 19702016-05-04 Marek Polacek <polacek@redhat.com>
1971
1972 PR c/48778
1973 * c-typeck.c (build_binary_op): Don't issue -Waddress warnings
1974 for macro expansions.
1975
5d4db8ef 19762016-05-03 Marek Polacek <polacek@redhat.com>
1977
1978 PR c/70859
1979 * c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
1980 check_builtin_function_arguments.
1981
0bd2fc6e 19822016-05-03 Richard Biener <rguenther@suse.de>
1983
1984 * Make-lang.in (cc1-checksum.c): For stage-final re-use
1985 the checksum from the previous stage.
1986
b5e88f74 19872016-05-02 Cesar Philippidis <cesar@codesourcery.com>
1988
1989 * c-parser.c (c_parser_oacc_all_clauses): Update call to
1990 c_finish_omp_clauses.
1991 (c_parser_omp_all_clauses): Likewise.
1992 (c_parser_oacc_cache): Likewise.
1993 (c_parser_oacc_loop): Likewise.
1994 (omp_split_clauses): Likewise.
1995 (c_parser_omp_declare_target): Likewise.
1996 (c_parser_cilk_all_clauses): Likewise.
1997 (c_parser_cilk_for): Likewise.
1998 * c-typeck.c (c_finish_omp_clauses): Replace bool arguments
1999 is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.
2000
dd185f6e 20012016-05-02 Marek Polacek <polacek@redhat.com>
2002
2003 PR c/70851
2004 * c-decl.c (grokdeclarator): Diagnose when array's size has an
2005 incomplete type.
2006
4d0a8bac 20072016-04-29 Cesar Philippidis <cesar@codesourcery.com>
2008
2009 PR middle-end/70626
2010 * c-parser.c (c_parser_oacc_loop): Don't augment mask with
2011 OACC_LOOP_CLAUSE_MASK.
2012 (c_parser_oacc_kernels_parallel): Update call to
2013 c_oacc_split_loop_clauses.
2014
d215eeca 20152016-04-28 Andrew MacLeod <amacleod@redhat.com>
2016
2017 * c-array-notation.c (fix_builtin_array_notation_fn): Fix final
2018 argument to build_modify_expr in two cases.
2019
40385231 20202016-04-27 Bernd Schmidt <bschmidt@redhat.com>
2021
2022 * c-parser.c (c_parser_postfix_expression_after_primary): Call
2023 warn_for_memset instead of warning directly here.
2024
fa20ebd3 20252016-04-26 Marek Polacek <polacek@redhat.com>
2026
2027 PR c/67784
2028 * c-parser.c (c_parser_maybe_reclassify_token): New function factored
2029 out of ...
2030 (c_parser_for_statement): ... here.
2031 (c_parser_if_statement): Use it.
2032 (c_parser_switch_statement): Use it.
2033 (c_parser_while_statement): Use it.
2034
9db47803 2035 PR c/70791
2036 * c-decl.c (pushdecl): Pass LOCUS down to warning.
2037
70574e60 20382016-04-20 Ilya Verbin <ilya.verbin@intel.com>
2039
2040 PR c++/69363
2041 * c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
2042 instead of c_finish_cilk_clauses.
2043 * c-tree.h (c_finish_omp_clauses): Add new default argument.
2044 * c-typeck.c (c_finish_omp_clauses): Add new argument. Allow
2045 floating-point variables in the linear clause for Cilk Plus.
2046
5d4b30ea 20472016-04-18 Michael Matz <matz@suse.de>
2048
2049 * c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
2050 (grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.
2051
eac243e7 20522016-04-15 Marek Polacek <polacek@redhat.com>
2053
2054 PR c/70671
2055 * c-typeck.c (build_unary_op): Pass location down to error and
2056 warning call.
2057
b4ba8358 20582016-04-15 Jakub Jelinek <jakub@redhat.com>
2059
2060 PR c/70436
2061 * c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
2062 where needed.
2063 (c_parser_external_declaration, c_parser_struct_or_union_specifier,
2064 c_parser_parameter_declaration, c_parser_compound_statement_nostart,
2065 c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
2066 Adjust c_parser_pragma callers.
2067 (c_parser_statement_after_labels): Likewise. Adjust c_parser_cilk_for
2068 caller.
2069 (c_parser_omp_structured_block): Add IF_P argument, pass it down to
2070 c_parser_statement.
2071 (c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
2072 c_parser_oacc_kernels_parallel, c_parser_omp_critical,
2073 c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
2074 c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
2075 c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
2076 c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
2077 c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
2078 c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
2079 down where needed.
2080 (c_parser_omp_for_loop): Likewise. Clear IF_P if nbraces.
2081 (c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
2082 calls.
2083
0241e4dc 20842016-04-13 Marek Polacek <polacek@redhat.com>
2085
2086 PR c/70436
2087 * c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
2088 adjust callers.
2089 (c_parser_statement): Likewise.
2090 (c_parser_c99_block_statement): Likewise.
2091 (c_parser_while_statement): Likewise.
2092 (c_parser_for_statement): Likewise.
2093 (c_parser_if_body): Don't set IF_P here.
2094 (c_parser_if_statement): Add IF_P argument. Set IF_P here. Warn
2095 about dangling else here.
2096 * c-tree.h (c_finish_if_stmt): Adjust declaration.
2097 * c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter. Don't
2098 warn about dangling else here.
2099
c4f5465d 21002016-04-04 Marek Polacek <polacek@redhat.com>
2101
2102 PR c/70307
2103 * c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.
2104
7952b661 21052016-03-31 Marek Polacek <polacek@redhat.com>
2106
2107 PR c/70297
2108 * c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
2109
5539bc70 21102016-03-18 David Malcolm <dmalcolm@redhat.com>
2111
2112 PR c/70281
2113 * c-parser.c (c_parser_postfix_expression): Set the source range
2114 for uses of "__builtin_types_compatible_p".
2115
29a514fa 21162016-03-17 Jakub Jelinek <jakub@redhat.com>
2117
2118 PR c/70280
2119 * c-typeck.c (composite_type): Don't count void_list_node
2120 into len, if the list is terminated by void_list_node, start
2121 with void_list_node instead of NULL for newargs. Stop
2122 at void_list_node.
2123
462ca422 21242016-03-16 Marek Polacek <polacek@redhat.com>
2125
2126 PR c/70093
2127 * c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
2128 nested functions returning VM types.
2129
27dcb7a8 21302016-03-09 Cesar Philippidis <cesar@codesourcery.com>
2131
2132 * c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
2133 when calling c_finish_omp_clauses.
2134
2d1d2e55 21352016-03-04 Bernd Schmidt <bschmidt@redhat.com>
2136
2137 PR c/69824
2138 * c-decl.c (get_parm_info): Don't queue implicit function declarations
2139 for later.
2140
6560d1ad 21412016-03-04 Marek Polacek <polacek@redhat.com>
2142
2143 PR c/69798
2144 * c-parser.c (c_parser_postfix_expression): Call
2145 c_parser_cast_expression rather than c_parser_postfix_expression.
2146
40e9ce2d 21472016-03-01 Jakub Jelinek <jakub@redhat.com>
2148
2149 PR c/69796
2150 PR c/69974
2151 * c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
2152 of incomplete decls to error_mark_node.
2153
f0ea75d1 21542016-02-24 Marek Polacek <polacek@redhat.com>
2155
2156 PR c/69819
2157 * c-decl.c (finish_decl): Don't update the copy of the type of a
2158 different decl type.
2159
d41ab738 21602016-02-23 Jakub Jelinek <jakub@redhat.com>
2161
2162 PR objc/69844
2163 * c-parser.c (c_parser_for_statement): Properly handle ObjC classes
2164 in id_kind reclassification.
2165
7675e968 21662016-02-16 Jakub Jelinek <jakub@redhat.com>
2167
2168 PR c/69835
2169 * c-typeck.c (build_binary_op): Revert 2015-09-09 change.
2170
28072426 21712016-02-16 James Norris <jnorris@codesourcery.com>
2172
2173 PR c/64748
2174 * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
2175
74a4140f 21762016-02-12 Bernd Schmidt <bschmidt@redhat.com>
2177
7c25ed5c 2178 * c-decl.c (build_null_declspecs): Zero the entire struct.
2179
74a4140f 2180 PR c/69522
2181 * c-parser.c (c_parser_braced_init): New arg outer_obstack. All
2182 callers changed. If nested_p is true, use it to call
2183 finish_implicit_inits.
2184 * c-tree.h (finish_implicit_inits): Declare.
2185 * c-typeck.c (finish_implicit_inits): New function. Move code
2186 from ...
2187 (push_init_level): ... here.
2188 (set_designator, process_init_element): Call finish_implicit_inits.
2189
40b38ace 21902016-02-11 Jakub Jelinek <jakub@redhat.com>
2191
2192 PR c/69768
2193 * c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
2194 arguments for -Waddress warning.
2195
6b098e91 21962016-02-04 Jakub Jelinek <jakub@redhat.com>
2197
2198 PR c/69669
2199 * c-decl.c (finish_enum): When honoring mode attribute,
2200 make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
2201
ff5e28e9 22022016-01-29 Jakub Jelinek <jakub@redhat.com>
2203
2204 PR debug/69518
2205 * c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
2206 all type variants, not just TYPE_MAIN_VARIANT.
2207
78e516eb 22082016-01-27 Jakub Jelinek <jakub@redhat.com>
2209
2210 PR debug/66869
2211 * c-decl.c (c_write_global_declarations_1): Warn with
2212 warn_unused_function if static prototype without definition
2213 is not C_DECL_USED.
2214
fee5e491 22152016-01-27 Marek Polacek <polacek@redhat.com>
2216
2217 PR c/68062
2218 * c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
2219 to unsigned, if needed. Add -Wsign-compare warning.
2220
9bbfd060 22212016-01-26 Jakub Jelinek <jakub@redhat.com>
2222
2223 PR tree-optimization/69483
2224 * c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.
2225
6ebc6587 22262016-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16d4186f 2227
2228 PR c/24293
2229 * c-tree.h (incomplete_record_decls): Declare.
2230 * c-parser.c (incomplete_record_decls): Define.
2231 (c_parser_translation_unit): Iterate through incomplete_record_decls and
2232 report error if any decl has zero size.
2233 * c-decl.c (finish_decl): Append static decl with incomplete struct/union
2234 or enum type to incomplete_record_decls.
2235
4c39e3a5 22362016-01-14 Tom de Vries <tom@codesourcery.com>
2237
2238 PR tree-optimization/68773
2239 * c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
2240 set force_output.
2241
77f35cec 22422016-01-14 Marek Polacek <polacek@redhat.com>
2243
2244 PR c/69262
2245 * c-decl.c (grokdeclarator): Provide more information for invalid
2246 array declarations.
2247
d74214f3 22482016-01-06 David Malcolm <dmalcolm@redhat.com>
2249
2250 * c-parser.c (c_parser_unary_expression): For dereferences, build
2251 a combined location before calling build_indirect_ref, so that
2252 error reports cover the full range, manually updating the c_expr
2253 src_range.
2254
be3c9981 22552016-01-06 Marek Polacek <polacek@redhat.com>
2256
2257 PR sanitizer/69099
2258 * c-convert.c (convert) [INTEGER_TYPE]: Drop ARG. Don't pass ARG to
2259 ubsan_instrument_float_cast. Fold EXPR. Use NULL_TREE instead of
2260 NULL.
2261
f1717362 22622016-01-04 Jakub Jelinek <jakub@redhat.com>
2263
2264 Update copyright years.
2265
d7d6a3ab 22662016-01-04 Marek Polacek <polacek@redhat.com>
2267
2268 PR c/68908
2269 * c-typeck.c (build_atomic_assign): Improve commentary. Add
2270 optimization to use __atomic_fetch_* built-in if possible.
2271
9d5fd7c6 22722015-12-23 Thomas Schwinge <thomas@codesourcery.com>
2273
2274 * c-parser.c (c_parser_oacc_clause_use_device): Merge function
2275 into...
2276 (c_parser_omp_clause_use_device_ptr): ... this function. Adjust
2277 all users.
2278
37e2d32f 22792015-12-22 Marek Polacek <polacek@redhat.com>
2280
2281 PR c/69002
2282 * c-typeck.c (build_component_ref): Warn when acessing elements of
2283 atomic structures or unions.
2284
c0bf500c 22852015-12-21 David Malcolm <dmalcolm@redhat.com>
2286
2287 * c-typeck.c: Include "gcc-rich-location.h".
2288 (build_binary_op): In the two places that call binary_op_error,
2289 create a gcc_rich_location and populate it with the location of
2290 the binary op and its two operands.
2291
b9f9586a 22922015-12-16 David Malcolm <dmalcolm@redhat.com>
2293
2294 * c-parser.c (c_parser_statement_after_labels): When calling
2295 c_finish_return, Use the return expression's location if it has
2296 one, falling back to the location of the first token within it.
2297 * c-typeck.c (c_finish_return): When issuing warnings about
2298 the incorrect presence/absence of a return value, issue a note
2299 showing the declaration of the function.
2300
dbd79382 23012015-12-16 David Malcolm <dmalcolm@redhat.com>
2302
2303 * c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
2304 to 4.
2305 (c_parser_peek_nth_token): New function.
2306 (c_parser_peek_conflict_marker): New function.
2307 (c_parser_error): Detect conflict markers and report them as such.
2308
e2093e02 23092015-12-16 David Malcolm <dmalcolm@redhat.com>
2310
2311 * c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
2312 to preserve range information for the primary expression
2313 in the call to c_parser_postfix_expression_after_primary.
2314
b49f1fbb 23152015-12-16 David Malcolm <dmalcolm@redhat.com>
2316
2317 * c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
2318 expression location, falling back on the first token location,
2319 rather than always using the latter.
2320
1d65bac2 23212015-12-16 Marek Polacek <polacek@redhat.com>
2322
2323 PR c/64637
2324 * c-typeck.c (c_process_expr_stmt): Use location of the expression if
2325 available.
2326
75e722a6 23272015-12-15 Marek Polacek <polacek@redhat.com>
2328
2329 PR c/68907
2330 * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
2331 artificial decl.
2332
7063d45b 23332015-12-08 David Malcolm <dmalcolm@redhat.com>
2334
2335 * c-parser.c (c_parser_alignof_expression): Capture location of
2336 closing parenthesis (if any), or of end of unary expression, and
2337 use it to build a src_range for the expression.
2338
f73b4782 23392015-12-08 David Malcolm <dmalcolm@redhat.com>
2340
2341 PR c/68757
2342 * c-parser.c (c_parser_get_builtin_args): Add
2343 "out_close_paren_loc" param, and write back to it.
2344 (c_parser_postfix_expression): Capture the closing
2345 parenthesis location for RID_CHOOSE_EXPR,
2346 RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
2347 RID_BUILTIN_SHUFFLE and use it to set the source range
2348 for such expressions; within RID_BUILTIN_COMPLEX set
2349 the underlying location.
2350
1b062945 23512015-12-07 Marek Polacek <polacek@redhat.com>
2352
2353 PR c/68668
2354 * c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
2355 TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.
2356
a4ab54ac 23572015-12-04 Eric Botcazou <ebotcazou@adacore.com>
2358
2359 * c-tree.h (c_build_va_arg): Adjust prototype.
2360 * c-parser.c (c_parser_postfix_expression): Adjust call to above.
2361 * c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
2362 parameter, adjust throughout and issue an error if EXPR is a component
2363 with reverse storage order.
2364
da562e32 23652015-12-02 Jason Merrill <jason@redhat.com>
2366
2367 * c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
2368 (c_fully_fold_internal, decl_constant_value_for_optimization):
2369 Move from c-common.c.
2370 * c-tree.h: Declare decl_constant_value_for_optimization.
2371 * Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
2372
89f16034 23732015-12-02 Joseph Myers <joseph@codesourcery.com>
2374
2375 PR c/68162
2376 * c-decl.c (grokdeclarator): Set first_non_attr_kind before
2377 following link from declarator to next declarator. Track original
2378 qualified type and pass it to c_build_qualified_type.
2379 * c-typeck.c (c_build_qualified_type): Add arguments
2380 orig_qual_type and orig_qual_indirect.
2381
2a7545d5 23822015-12-02 Thomas Schwinge <thomas@codesourcery.com>
2383
2384 * c-parser.c (c_parser_omp_clause_name)
2385 (c_parser_oacc_all_clauses): Alphabetical sorting.
2386
ad80582d 23872015-12-02 Jakub Jelinek <jakub@redhat.com>
2388
2389 PR c/68533
2390 * c-decl.c (get_parm_info): Use b->locus instead of input_location
2391 for diagnostics.
2392
571b3486 23932015-12-01 Julian Brown <julian@codesourcery.com>
2394 Cesar Philippidis <cesar@codesourcery.com>
2395 James Norris <James_Norris@mentor.com>
2396
2397 * c-parser.c (c_parser_omp_clause_name): Add use_device support.
2398 (c_parser_oacc_clause_use_device): New function.
2399 (c_parser_oacc_all_clauses): Add use_device support.
2400 (OACC_HOST_DATA_CLAUSE_MASK): New macro.
2401 (c_parser_oacc_host_data): New function.
2402 (c_parser_omp_construct): Add host_data support.
2403 * c-tree.h (c_finish_oacc_host_data): Add prototype.
2404 * c-typeck.c (c_finish_oacc_host_data): New function.
2405 (c_finish_omp_clauses): Add use_device support.
2406
c4848393 24072015-11-29 Jan Hubicka <hubicka@ucw.cz>
2408
2409 PR c/67106
2410 * c-decl.c: Set TYPE_PACKED in variants.
2411
d4e328e9 24122015-11-27 Martin Liska <mliska@suse.cz>
2413
2414 PR c++/68312
2415 * c-array-notation.c (fix_builtin_array_notation_fn):
2416 Use release_vec_vec instead of vec::release.
2417 (build_array_notation_expr): Likewise.
2418 (fix_conditional_array_notations_1): Likewise.
2419 (fix_array_notation_expr): Likewise.
2420 (fix_array_notation_call_expr): Likewise.
2421
c5e4f591 24222015-11-27 Jakub Jelinek <jakub@redhat.com>
2423
2424 PR c/63326
2425 * c-parser.c (c_parser_compound_statement_nostart): If
2426 last_label is true, use pragma_stmt instead of pragma_compound
2427 as second c_parser_pragma argument.
2428 (c_parser_omp_ordered, c_parser_omp_target_update,
2429 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
2430 false as second argument to c_parser_skip_to_pragma_eol after
2431 diagnosing standalone directives used in pragma_stmt context.
2432
c954a5bd 24332015-11-24 Ilya Verbin <ilya.verbin@intel.com>
2434
2435 * c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
2436 with "if (ENABLE_OFFLOADING)".
2437
daebf4f3 24382015-11-23 David Malcolm <dmalcolm@redhat.com>
2439
2440 PR objc/68438
2441 * c-parser.c (c_parser_postfix_expression): Set up source ranges
2442 for various Objective-C constructs: Class.name syntax,
2443 @selector(), @protocol(), @encode(), and [] message syntax.
2444
734caf84 24452015-11-20 David Malcolm <dmalcolm@redhat.com>
2446
2447 PR 62314
2448 * c-typeck.c (should_suggest_deref_p): New function.
2449 (build_component_ref): Special-case POINTER_TYPE when
2450 generating a "not a structure of union" error message, and
2451 suggest a "->" rather than a ".", providing a fix-it hint.
2452
11d8dd6f 24532015-11-19 David Malcolm <dmalcolm@redhat.com>
2454
2455 * c-typeck.c (lookup_field_fuzzy): Move determination of closest
2456 candidate into a new function, find_closest_identifier.
2457
62efaf6b 24582015-11-19 Marek Polacek <polacek@redhat.com>
2459
2460 PR c/68412
2461 * c-typeck.c (parser_build_binary_op): Properly handle
2462 C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.
2463
9dfffd6d 24642015-11-17 David Malcolm <dmalcolm@redhat.com>
2465
2466 * c-parser.c (set_c_expr_source_range): Bulletproof both
2467 overloaded implementations against NULL expr->value.
2468 (c_parser_braced_init): Set src_range for "ret" to a sane pair of
2469 values.
2470 (c_parser_unary_expression): Likewise when handling addresses of
2471 labels.
2472 (c_parser_postfix_expression): Likewise for statement expressions,
2473 for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
2474 __builtin_va_arg, and for __builtin_offset_of.
2475 (c_parser_postfix_expression_after_paren_type): Initialize expr's
2476 src_range using the range of the braced initializer.
2477 (c_parser_transaction_expression): Set src_range for "ret" to a
2478 sane pair of values.
2479
c58a4cfd 24802015-11-16 Kirill Yukhin <kirill.yukhin@intel.com>
2481
2482 * c-parser.c (c_finish_omp_declare_simd): Look for
2483 "simd" attribute as well. Update error message.
2484
5f3001a9 24852015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2486
2487 * c-parser.c (c_parser_omp_declare_target): Adjust.
2488
a9833286 24892015-11-14 Jakub Jelinek <jakub@redhat.com>
2490
2491 * c-typeck.c (c_finish_omp_clauses): Don't mark
2492 GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
2493
ef61516b 24942015-11-14 Marek Polacek <polacek@redhat.com>
2495
2496 * c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
2497 * c-typeck.c: Likewise.
2498
a96cefb2 24992015-11-13 David Malcolm <dmalcolm@redhat.com>
2500
2501 * c-decl.c (warn_defaults_to): Pass line_table to
2502 rich_location ctor.
2503 * c-errors.c (pedwarn_c99): Likewise.
2504 (pedwarn_c90): Likewise.
2505 * c-parser.c (set_c_expr_source_range): New functions.
2506 (c_token::get_range): New method.
2507 (c_token::get_finish): New method.
2508 (c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
2509 based on the range from the start of the LHS to the end of the
2510 RHS.
2511 (c_parser_conditional_expression): Likewise, based on the range
2512 from the start of the cond.value to the end of exp2.value.
2513 (c_parser_binary_expression): Call set_c_expr_source_range on
2514 the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
2515 (c_parser_cast_expression): Call set_c_expr_source_range on ret
2516 based on the cast_loc through to the end of the expr.
2517 (c_parser_unary_expression): Likewise, based on the
2518 op_loc through to the end of op.
2519 (c_parser_sizeof_expression) Likewise, based on the start of the
2520 sizeof token through to either the closing paren or the end of
2521 expr.
2522 (c_parser_postfix_expression): Likewise, using the token range,
2523 or from the open paren through to the close paren for
2524 parenthesized expressions.
2525 (c_parser_postfix_expression_after_primary): Likewise, for
2526 various kinds of expression.
2527 * c-tree.h (struct c_expr): Add field "src_range".
2528 (c_expr::get_start): New method.
2529 (c_expr::get_finish): New method.
2530 (set_c_expr_source_range): New decls.
2531 * c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
2532 on ret for prefix unary ops.
2533 (parser_build_binary_op): Likewise, running from the start of
2534 arg1.value through to the end of arg2.value.
2535
7a810b2f 25362015-11-13 Marek Polacek <polacek@redhat.com>
2537
2538 PR c/68320
2539 * c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.
2540
b67f0560 25412015-11-13 David Malcolm <dmalcolm@redhat.com>
2542
2543 * c-typeck.c: Include spellcheck.h.
2544 (lookup_field_fuzzy_find_candidates): New function.
2545 (lookup_field_fuzzy): New function.
2546 (build_component_ref): If the field was not found, try using
2547 lookup_field_fuzzy and potentially offer a suggestion.
2548
2fc5e987 25492015-11-12 James Norris <jnorris@codesourcery.com>
2550 Joseph Myers <joseph@codesourcery.com>
2551
2552 * c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
2553 (c_parser_omp_clause_name): Handle 'device_resident' clause.
2554 (c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
2555 and PRAGMA_OMP_CLAUSE_LINK.
2556 (c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
2557 and PRAGMA_OACC_CLAUSE_LINK.
2558 (OACC_DECLARE_CLAUSE_MASK): New definition.
2559 (c_parser_oacc_declare): New function.
2560
28a70e29 25612015-11-12 Marek Polacek <polacek@redhat.com>
2562
2563 PR c/67784
2564 * c-parser.c (c_parser_for_statement): Reclassify the token in
2565 a correct scope.
2566
81b1b2a8 25672015-11-11 Marek Polacek <polacek@redhat.com>
2568
2569 PR c/68107
2570 PR c++/68266
2571 * c-decl.c (grokdeclarator): Call valid_array_size_p. Remove code
2572 checking the size of an array.
2573
6e803544 25742015-11-11 Andrew MacLeod <amacleod@redhat.com>
2575
2576 * c-array-notation.c: Remove unused header files.
2577 * c-aux-info.c: Likewise.
2578 * c-convert.c: Likewise.
2579 * c-decl.c: Likewise.
2580 * c-errors.c: Likewise.
2581 * c-lang.c: Likewise.
2582 * c-objc-common.c: Likewise.
2583 * c-parser.c: Likewise.
2584 * c-typeck.c: Likewise.
2585 * gccspec.c: Likewise.
2586
a1b7fe4b 25872015-11-09 Thomas Schwinge <thomas@codesourcery.com>
2588 Cesar Philippidis <cesar@codesourcery.com>
2589 James Norris <jnorris@codesourcery.com>
2590 Julian Brown <julian@codesourcery.com>
2591 Nathan Sidwell <nathan@codesourcery.com>
2592
2593 c/
2594 * c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
2595 routine arg.
2596 (c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
2597 (c_parser_pragma): Parse 'acc routine'.
2598 (OACC_ROUTINE_CLAUSE_MARK): Define.
2599 (c_parser_oacc_routine, (c_finish_oacc_routine): New.
2600
7758d608 26012015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
2602
2603 PR debug/67192
2604 * c-typeck.c (c_finish_loop): For unconditional loops, set the
2605 location of the backward-goto to the start of the loop body.
2606
c2bf2fb2 26072015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
2608
2609 PR debug/67192
2610 * c-parser.c (c_parser_while_statement): Finish the loop before
2611 parsing ahead for misleading indentation.
2612 (c_parser_for_statement): Likewise.
2613
292237f3 26142015-11-08 Eric Botcazou <ebotcazou@adacore.com>
2615
2616 * c-decl.c (finish_struct): If the structure has reverse storage
2617 order, rewrite the type of array fields with scalar component. Call
2618 maybe_apply_pragma_scalar_storage_order on entry.
2619 * c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs. Issue
2620 errors on bit-fields and reverse SSO here and not...
2621 (c_mark_addressable): ...here.
2622 (output_init_element): Adjust call to initializer_constant_valid_p.
2623 (c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.
2624
f0479000 26252015-11-06 David Malcolm <dmalcolm@redhat.com>
2626
2627 * c-decl.c (warn_defaults_to): Update for change in signature
2628 of diagnostic_set_info.
2629 * c-errors.c (pedwarn_c99): Likewise.
2630 (pedwarn_c90): Likewise.
2631 * c-objc-common.c (c_tree_printer): Update for new "caret_p" param
2632 for textinfo::set_location.
2633
ef014f95 26342015-11-05 Cesar Philippidis <cesar@codesourcery.com>
2635 Thomas Schwinge <thomas@codesourcery.com>
2636 James Norris <jnorris@codesourcery.com>
2637
2638 * c-parser.c (c_parser_omp_clause_name): Add support for
2639 PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
2640 (c_parser_omp_clause_default): Add is_oacc argument. Handle
2641 default(none) in OpenACC.
2642 (c_parser_oacc_shape_clause): Allow pointer variables as gang static
2643 arguments.
2644 (c_parser_oacc_clause_tile): New function.
2645 (c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
2646 OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
2647 (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
2648 TILE}.
2649 (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
2650 (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
2651 FIRSTPRIVATE}.
2652 (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
2653 (c_parser_oacc_update): Update the error message for missing clauses.
2654 * c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
2655 and OMP_CLAUSE_INDEPENDENT.
2656
f480ca9a 26572015-11-05 Marek Polacek <polacek@redhat.com>
2658
2659 PR c/68090
2660 * c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
2661 deal with pre-evaluation on invalid types.
2662
9561765e 26632015-11-05 Jakub Jelinek <jakub@redhat.com>
2664 Ilya Verbin <ilya.verbin@intel.com>
2665
2666 * c-parser.c: Include context.h and gimple-expr.h.
2667 (c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
2668 monotonic together with nonmonotonic.
2669 (c_parser_omp_for_loop): Call c_omp_check_loop_iv. Call add_stmt here.
2670 (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
2671 (c_parser_omp_target_data, c_parser_omp_target_enter_data,
2672 c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
2673 (c_parser_omp_target): Likewise. Evaluate num_teams and thread_limit
2674 expressions on combined target teams before the target.
2675 (c_parser_omp_declare_target): If decl has "omp declare target" or
2676 "omp declare target link" attribute, and cgraph or varpool node already
2677 exists, then set corresponding flags. Call c_finish_omp_clauses
2678 in the parenthesized extended-list syntax case.
2679 * c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
2680 declare target.
2681 * c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
2682 on OMP_CLAUSE_REDUCTION array sections.
2683 (handle_omp_array_sections): Encode low-bound into the MEM_REF, either
2684 into the constant offset, or for variable low-bound using
2685 POINTER_PLUS_EXPR. For structure element based array sections use
2686 GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
2687 (c_finish_omp_clauses): Drop generic_field_head, structure
2688 elements are now always mapped even as array section bases,
2689 diagnose same var in data sharing and mapping clauses. Diagnose if
2690 linear step on declare simd is neither a constant nor a uniform
2691 parameter. Look through POINTER_PLUS_EXPR for array section
2692 reductions. Diagnose the same var or function appearing multiple
2693 times on the same directive. Fix up wording for the to clause if t
2694 is neither a FUNCTION_DECL nor a VAR_DECL. Diagnose nonmonotonic
2695 modifier on kinds other than dynamic or guided or nonmonotonic
2696 modifier together with ordered clause.
2697
9e10bfb7 26982015-11-03 Thomas Schwinge <thomas@codesourcery.com>
2699 Chung-Lin Tang <cltang@codesourcery.com>
2700
2701 * c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
2702
4cba6f60 27032015-10-29 Andrew MacLeod <amacleod@redhat.com>
2704
2705 * c-array-notation.c: Reorder #include's and remove duplicates.
2706 * c-aux-info.c: Likewise.
2707 * c-convert.c: Likewise.
2708 * c-decl.c: Likewise.
2709 * c-errors.c: Likewise.
2710 * c-lang.c: Likewise.
2711 * c-objc-common.c: Likewise.
2712 * c-parser.c: Likewise.
2713 * c-typeck.c: Likewise.
2714
7b15d957 27152015-10-26 Jim Wilson <jim.wilson@linaro.org>
2716
2717 PR debug/66068
2718 * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
2719 after calling build_qualified_type.
2720
62c48328 27212015-10-27 Cesar Philippidis <cesar@codesourcery.com>
2722 Thomas Schwinge <thomas@codesourcery.com>
2723 James Norris <jnorris@codesourcery.com>
2724 Joseph Myers <joseph@codesourcery.com>
2725 Julian Brown <julian@codesourcery.com>
2726 Bernd Schmidt <bschmidt@redhat.com>
2727
2728 * c-parser.c (c_parser_oacc_shape_clause): New.
2729 (c_parser_oacc_simple_clause): New.
2730 (c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
2731 (OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.
2732
2c4c8725 27332015-10-27 Thomas Schwinge <thomas@codesourcery.com>
2734 James Norris <jnorris@codesourcery.com>
2735 Cesar Philippidis <cesar@codesourcery.com>
2736
2737 PR c/64765
2738 PR c/64880
2739 * c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
2740 parameters, and handle these. Adjust all users.
2741 (c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
2742 into...
2743 (c_parser_oacc_kernels_parallel): ... this new function. Adjust
2744 all users.
2745 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
2746 declare functions.
2747 (c_finish_omp_construct): Declare function.
2748 * c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
2749 Merge functions into...
2750 (c_finish_omp_construct): ... this new function.
2751
844cece0 27522015-10-22 Richard Biener <rguenther@suse.de>
2753
2754 * c-typeck.c (c_finish_omp_clauses): Properly convert operands
2755 before folding a MINUS_EXPR.
2756
5ce1b137 27572015-10-21 Marek Polacek <polacek@redhat.com>
2758
2759 PR c/68024
2760 * c-decl.c (start_function): Warn about vararg functions without
2761 a prototype.
2762
1f137e6d 27632015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
2764
2765 * c-typeck.c (build_conditional_expr): Use boolean vector
2766 type for vector comparison.
2767 (build_vec_cmp): New.
2768 (build_binary_op): Use build_vec_cmp for comparison.
2769
8523243e 27702015-10-20 Marek Polacek <polacek@redhat.com>
2771
2772 * c-parser.c (is_cilkplus_vector_p): Don't define here.
2773
3f73be3e 27742015-10-20 Marek Polacek <polacek@redhat.com>
2775
2776 PR c/67964
2777 * c-parser.c (c_parser_attributes): Break out of the loop if the
2778 token after an attribute isn't a comma.
2779
43895be5 27802015-10-13 Jakub Jelinek <jakub@redhat.com>
2781 Aldy Hernandez <aldyh@redhat.com>
2782
2783 * c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
2784 (c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
2785 (c_parser_omp_variable_list): Handle structure elements for
2786 map, to and from clauses. Handle array sections in reduction
2787 clause. Formatting fixes.
2788 (c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
2789 if clause modifiers.
2790 (c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
2791 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
2792 c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
2793 c_parser_omp_clause_is_device_ptr): New functions.
2794 (c_parser_omp_clause_ordered): Parse optional parameter.
2795 (c_parser_omp_clause_reduction): Handle array reductions.
2796 (c_parser_omp_clause_schedule): Parse optional simd modifier.
2797 (c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
2798 functions.
2799 (c_parser_omp_clause_linear): Parse linear clause modifiers.
2800 (c_parser_omp_clause_depend_sink): New function.
2801 (c_parser_omp_clause_depend): Parse source/sink depend kinds.
2802 (c_parser_omp_clause_map): Parse release/delete map kinds and
2803 optional always modifier.
2804 (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
2805 and c_finish_omp_clauses callers.
2806 (c_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
2807 Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
2808 (c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
2809 (OMP_CRITICAL_CLAUSE_MASK): Define.
2810 (c_parser_omp_critical): Parse critical clauses.
2811 (c_parser_omp_for_loop): Handle doacross loops, adjust
2812 c_finish_omp_for and c_finish_omp_clauses callers.
2813 (OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
2814 (c_parser_omp_simd): Allow ordered clause if it has no parameter.
2815 (OMP_FOR_CLAUSE_MASK): Add linear clause.
2816 (c_parser_omp_for): Disallow ordered clause when combined with
2817 distribute. Disallow linear clause when combined with distribute
2818 and not combined with simd.
2819 (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
2820 (c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
2821 parse clauses and if depend clause is found, don't parse a body.
2822 (c_parser_omp_parallel): Disallow copyin clause on target parallel.
2823 Allow target parallel without for after it.
2824 (OMP_TASK_CLAUSE_MASK): Add priority clause.
2825 (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
2826 (c_parser_omp_target_data): Diagnose no map clauses or clauses with
2827 invalid kinds.
2828 (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
2829 (OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
2830 OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
2831 (c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
2832 functions.
2833 (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
2834 defaultmap and is_device_ptr clauses.
2835 (c_parser_omp_target): Parse target parallel and target simd. Set
2836 OMP_TARGET_COMBINED on combined constructs. Parse target enter data
2837 and target exit data. Diagnose invalid map kinds.
2838 (OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
2839 (c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
2840 construct.
2841 (c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
2842 &omp_priv.
2843 (OMP_TASKLOOP_CLAUSE_MASK): Define.
2844 (c_parser_omp_taskloop): New function.
2845 (c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
2846 handle PRAGMA_OMP_TASKLOOP.
2847 (c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
2848 * c-tree.h (c_finish_omp_clauses): Add two new arguments.
2849 * c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
2850 Add IS_OMP argument, handle structure element bases, diagnose
2851 bitfields, pass IS_OMP recursively, diagnose known zero length
2852 array sections in depend clauses, handle array sections in reduction
2853 clause, diagnose negative length even for pointers.
2854 (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
2855 types, pass IS_OMP down to handle_omp_array_sections_1, handle
2856 array sections in reduction clause, set
2857 OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
2858 length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
2859 (c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
2860 Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
2861
789fbb51 28622015-10-06 Marek Polacek <polacek@redhat.com>
2863
2864 * c-parser.c (c_parser_statement_after_labels): Use
2865 protected_set_expr_location.
2866 (c_parser_omp_clause_num_gangs): Likewise.
2867 (c_parser_omp_clause_num_threads): Likewise.
2868 (c_parser_omp_clause_num_workers): Likewise.
2869 (c_parser_omp_clause_vector_length): Likewise.
2870 (c_parser_omp_clause_num_teams): Likewise.
2871 (c_parser_omp_clause_thread_limit): Likewise.
2872 * c-typeck.c (build_c_cast): Likewise.
2873 (c_cast_expr): Likewise.
2874
20cb53c9 28752015-10-05 Richard Sandiford <richard.sandiford@arm.com>
2876
2877 * c-typeck.c (c_tree_equal): Use real_equal instead of
2878 REAL_VALUES_EQUAL.
2879
6d02e6b2 28802015-10-04 Jason Merrill <jason@redhat.com>
2881
2882 * c-parser.c (c_lex_one_token): Handle @synchronized.
2883 * c-decl.c (match_builtin_function_types): A declaration of a built-in
2884 can change whether the function is transaction_safe.
2885
802c32cd 28862015-10-02 Marek Polacek <polacek@redhat.com>
2887
2888 PR c/67730
2889 * c-typeck.c (convert_for_assignment): Use the expansion point
2890 location throughout.
2891
ef17a71a 28922015-10-02 Marek Polacek <polacek@redhat.com>
2893
2894 PR c/64249
2895 * c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
2896 and pass it down to c_parser_if_statement.
2897 (c_parser_else_body): Add CHAIN parameter and pass it down to
2898 c_parser_statement_after_labels.
2899 (c_parser_if_statement): Add CHAIN parameter. Add code to warn about
2900 duplicated if-else-if conditions.
2901
7e93eb1a 29022015-10-01 Marek Polacek <polacek@redhat.com>
2903
2904 * c-typeck.c (convert_for_assignment): Improve commentary.
2905
ab4c803c 29062015-09-30 Marek Polacek <polacek@redhat.com>
2907
2908 PR c/67730
2909 * c-typeck.c (c_finish_return): Use the expansion point location for
2910 certain "return with value" warnings.
2911
ed536208 29122015-09-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
2913
2914 * c-parser.c (pragma_lex): Add loc argument.
2915
03e8b174 29162015-09-15 Marek Polacek <polacek@redhat.com>
2917
2918 PR c/67580
2919 * c-decl.c (tag_exists_p): New function.
2920 * c-parser.c (c_parser_declaration_or_fndef): Give a hint when
2921 struct/union/enum keywords are missing.
2922 * c-tree.h (tag_exists_p): Declare.
2923
a39b4dc0 29242015-09-15 Marek Polacek <polacek@redhat.com>
2925
2926 * c-decl.c (lookup_label): Return NULL_TREE instead of 0.
2927 (lookup_tag): Change the type of THISLEVEL_ONLY to bool.
2928 Return NULL_TREE instead of 0.
2929 (lookup_name): Return NULL_TREE instead of 0.
2930 (lookup_name_in_scope): Likewise.
2931 (shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
2932 (parser_xref_tag): Use false instead of 0.
2933 (start_struct): Use true instead of 1.
2934 (start_enum): Use true instead of 1 and NULL_TREE instead of 0.
2935
85f5e2ee 29362015-09-14 Marek Polacek <polacek@redhat.com>
2937
2938 * c-typeck.c (set_nonincremental_init_from_string): Use
2939 HOST_WIDE_INT_M1U when shifting a negative value.
2940
739237d5 29412015-09-09 Mark Wielaard <mjw@redhat.com>
2942
2943 * c-typeck.c (build_binary_op): Check and warn when nonnull arg
2944 parm against NULL.
2945
d2b2788c 29462015-09-10 Jakub Jelinek <jakub@redhat.com>
2947
2948 PR c/67502
2949 * c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
2950 into OMP_FOR_PRE_BODY rather than before the loop.
2951
deef87db 29522015-09-09 Jakub Jelinek <jakub@redhat.com>
2953
c43f93d7 2954 PR c/67501
2955 * c-parser.c (c_parser_oacc_all_clauses,
2956 c_parser_omp_all_clauses): Remove invalid clause from
2957 list of clauses even if parser->error is set.
2958
0fdcfb93 2959 PR c/67500
2960 * c-parser.c (c_parser_omp_clause_aligned,
2961 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
2962 test for errors.
2963 * c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
2964 error_mark_node.
2965
deef87db 2966 PR c/67495
2967 * c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
2968 instead of c_parser_unary_expression. If the result is !lvalue_p,
2969 wrap the result of c_fully_fold into NON_LVALUE_EXPR.
2970
e96292e9 29712015-09-04 Marek Polacek <polacek@redhat.com>
2972
2973 PR sanitizer/67279
2974 * c-typeck.c (build_binary_op): Don't instrument static initializers.
2975
547c6b1f 29762015-09-03 Martin Sebor <msebor@redhat.com>
2977
2978 PR c/66516
6ccd7236 2979 * c-typeck.c (convert_arguments, parser_build_unary_op,
2980 build_conditional_expr, c_cast_expr, convert_for_assignment,
2981 build_binary_op, _objc_common_truthvalue_conversion): Call
547c6b1f 2982 reject_gcc_builtin.
2983 (c_decl_implicit): Define.
2984
bd66724c 29852015-09-02 Marek Polacek <polacek@redhat.com>
2986
2987 PR c/67432
2988 * c-parser.c (c_parser_enum_specifier): Give a better error for
2989 an empty enum.
2990
6dc50383 29912015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
2992
2993 * c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
2994
7ad1d78d 29952015-08-12 Marek Polacek <polacek@redhat.com>
2996
2997 * c-decl.c (grokdeclarator): Call error_at instead of error and pass
2998 LOC to it.
2999
c9099388 30002015-08-03 Marek Polacek <polacek@redhat.com>
3001
3002 PR c/67088
3003 * c-decl.c (check_bitfield_type_and_width): Add location parameter.
3004 Use it.
3005 (grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
3006
9255be07 30072015-08-02 Patrick Palka <ppalka@gcc.gnu.org>
3008
3009 * c-parser.c (c_parser_if_body): Take token_indent_info
3010 argument. Call warn_for_misleading_indentation even when the
3011 body is a semicolon. Extract token_indent_infos corresponding
3012 to the guard, body and next tokens. Adjust call to
3013 warn_for_misleading_indentation accordingly.
3014 (c_parser_else_body): Likewise.
3015 (c_parser_if_statement): Likewise.
3016 (c_parser_while_statement): Likewise.
3017 (c_parser_for_statement): Likewise.
3018
dbbd4c6d 30192015-07-28 Luis Felipe Strano Moraes <luis.strano@gmail.com>
3020 Manuel López-Ibáñez <manu@gcc.gnu.org>
3021
3022 * c-decl.c (get_parm_info): Remove static var. Update warning
3023 message.
3024
6784a472 30252015-07-27 Marek Polacek <polacek@redhat.com>
3026
3027 PR c++/66555
3028 PR c/54979
3029 * c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
3030
8d669e79 30312015-07-20 Marek Polacek <polacek@redhat.com>
3032
3033 PR c++/55095
3034 * c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
3035 (build_binary_op): Warn about left shift overflows.
3036
1eacc14a 30372015-07-09 Andrew MacLeod <amacleod@redhat.com>
3038
3039 * c-array-notation.c: Adjust includes for flags.h changes.
3040 * c-objc-common.c: Likewise.
3041
9ef16211 30422015-07-07 Andrew MacLeod <amacleod@redhat.com>
3043
3044 * c-array-notation.c: Adjust includes.
3045 * c-aux-info.c: Likewise.
3046 * c-convert.c: Likewise.
3047 * c-decl.c: Likewise.
3048 * c-errors.c: Likewise.
3049 * c-lang.c: Likewise.
3050 * c-objc-common.c: Likewise.
3051 * c-parser.c: Likewise.
3052 * c-typeck.c: Likewise.
3053
0949f227 30542015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
3055
3056 PR fortran/66605
3057 * c-decl.c (finish_function): Call do_warn_unused_parameter.
3058
be23b16f 30592015-06-29 Marek Polacek <polacek@redhat.com>
3060
3061 PR c/66322
3062 * c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
3063 (c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P. Don't warn
3064 about -Wswitch-bool here.
3065 (do_case): Update c_add_case_label call.
3066 (c_finish_case): Update c_do_switch_warnings call.
3067
6290f0db 30682015-06-27 Marek Polacek <polacek@redhat.com>
3069
3070 * c-typeck.c: Use VECTOR_TYPE_P throughout.
3071
aa3e402e 30722015-06-26 Marek Polacek <polacek@redhat.com>
3073
3074 * c-array-notation.c (fix_builtin_array_notation_fn): Use
3075 INDIRECT_REF_P.
3076 * c-typeck.c (array_to_pointer_conversion): Likewise.
3077 (build_unary_op): Likewise.
3078 (c_finish_return): Likewise.
3079
ec2e0095 30802015-06-25 Andrew MacLeod <amacleod@redhat.com>
3081
3082 * c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
3083 * c-parser.c: Likewise.
3084
770ff93b 30852015-06-25 Richard Sandiford <richard.sandiford@arm.com>
3086
3087 * c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
3088 instead of pointer_hash.
3089 (detect_field_duplicates): Likewise.
3090
f48c7f4a 30912015-06-25 Marek Polacek <polacek@redhat.com>
3092
3093 * c-array-notation.c: Use VAR_P throughout.
3094 * c-decl.c: Likewise.
3095 * c-objc-common.c: Likewise.
3096 * c-parser.c: Likewise.
3097 * c-typeck.c: Likewise.
3098
ce41e81a 30992015-06-25 Marek Polacek <polacek@redhat.com>
3100
3101 * c-decl.c: Use is_global_var throughout.
3102 * c-parser.c: Likewise.
3103 * c-typeck.c: Likewise.
3104
f2ab3bac 31052015-06-17 Andrew MacLeod <amacleod@redhat.com>
3106
3107 * c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
3108 * c-aux-info.c: Likewise.
3109 * c-convert.c: Likewise.
3110 * c-decl.c: Likewise.
3111 * c-errors.c: Likewise.
3112 * c-lang.c: Likewise.
3113 * c-objc-common.c: Likewise.
3114 * c-parser.c: Likewise.
3115 * c-typeck.c: Likewise.
3116
647730ab 31172015-06-11 Jan Hubicka <hubicka@ucw.cz>
3118
3119 PR middle-end/66325
3120 * c-decl.c (start_enum): Set TYPE_PACKED consistently among type
3121 variants.
3122
dd4b0a0d 31232015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
3124
3125 * c-decl.c (pop_scope): Register the main translation unit
3126 through the new debug hook.
3127
64486212 31282015-06-08 Andrew MacLeod <amacleod@redhat.com>
3129
3130 * c-array-notation.c : Adjust include files.
3131 * c-aux-info.c : Likewise.
3132 * c-convert.c : Likewise.
3133 * c-decl.c : Likewise.
3134 * c-errors.c : Likewise.
3135 * c-lang.c : Likewise.
3136 * c-lang.h : Likewise.
3137 * c-objc-common.c : Likewise.
3138 * c-parser.c : Likewise.
3139 * c-typeck.c : Likewise.
3140
3a1c9df2 31412015-06-05 Aldy Hernandez <aldyh@redhat.com>
3142
3143 * c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
3144 immediately clobber it.
3145 (c_write_global_declarations_1): Remove call to
3146 check_global_declaration_1.
3147 (c_write_global_declarations_2): Remove.
3148 (c_write_final_cleanups): Rename from c_write_global_declarations.
3149 Remove call to finalize_compilation_unit.
3150 Remove calls to debugging hooks.
3151 * c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
3152 * c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
3153 * c-tree.h: Remove c_write_global_declarations.
3154
f77c0292 31552015-06-04 Andrew MacLeod <amacleod@redhat.com>
3156
3157 * c-array-notation.c: Adjust includes for restructured coretypes.h.
3158 * c-aux-info.c: Likewise.
3159 * c-convert.c: Likewise.
3160 * c-decl.c: Likewise.
3161 * c-errors.c: Likewise.
3162 * c-lang.c: Likewise.
3163 * c-objc-common.c: Likewise.
3164 * c-parser.c: Likewise.
3165 * c-typeck.c: Likewise.
3166
b44134dc 31672015-06-04 Marek Polacek <polacek@redhat.com>
3168
3169 PR c/66341
3170 * c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
3171 it is a lvalue.
3172
d1df0bfc 31732015-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3174
3175 * c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
3176 Warn for empty struct.
3177 (finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.
3178
f8363c5d 31792015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
3180
3181 * c-decl.c (start_function): Call plugin before parsing.
3182 (finish_function): Call plugin after parsing.
3183
5b9761f5 31842015-06-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3185
3186 PR c/49551
3187 * c-decl.c (merge_decls): Merge DECL_COMMON.
3188
eeec71b4 31892015-05-22 Jim Wilson <jim.wilson@linaro.org>
3190
3191 * Make-lang.in (check_gcc_pallelize): Define.
3192
5a4c69dd 31932015-05-22 Marek Polacek <polacek@redhat.com>
3194
3195 PR c/47043
3196 * c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
3197 attributes.
3198
5650b4ff 31992015-05-21 Marek Polacek <polacek@redhat.com>
3200
3201 * c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
3202 DECL_BUILT_IN.
3203
b443c459 32042015-05-20 Marek Polacek <polacek@redhat.com>
3205
3206 * c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
3207 * c-typeck.c: Likewise.
3208
9e73638f 32092015-05-19 Marek Polacek <polacek@redhat.com>
3210
3211 * c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
3212
d7729e26 32132015-05-19 Jakub Jelinek <jakub@redhat.com>
3214
3215 PR middle-end/66199
3216 * c-parser.c (c_parser_omp_for_loop): Don't add
3217 OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
3218 OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
3219 (c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
3220 constructs.
3221
dfcf26a5 32222015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
3223
3224 * c-typeck.c (build_array_ref): Use std::swap instead of explicit
9e73638f 3225 swaps.
dfcf26a5 3226
09172322 32272015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
3228
3229 PR fortran/44054
3230 * c-objc-common.c (c_tree_printer): Replace locus pointer with
3231 accessor function.
3232
aac24642 32332015-05-14 Marek Polacek <polacek@redhat.com>
3234
3235 PR c/66066
3236 PR c/66127
3237 * c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
3238 rather than with 0.
3239
e5f01cba 32402015-05-12 David Malcolm <dmalcolm@redhat.com>
3241
3242 * c-parser.c (c_parser_if_body): Add param "if_loc", use it
3243 to add a call to warn_for_misleading_indentation.
3244 (c_parser_else_body): Likewise, adding param "else_loc".
3245 (c_parser_if_statement): Check for misleading indentation.
3246 (c_parser_while_statement): Likewise.
3247 (c_parser_for_statement): Likewise.
3248
dc5945dc 32492015-05-08 Marek Polacek <polacek@redhat.com>
3250
3251 PR c/64918
3252 * c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
3253 (output_init_element): Likewise.
3254
cdc64059 32552015-05-07 Marek Polacek <polacek@redhat.com>
3256
3257 PR c/65179
3258 * c-typeck.c (build_binary_op): Warn when left shifting a negative
3259 value.
3260
6fa7118e 32612015-04-30 Marek Polacek <polacek@redhat.com>
3262
3263 * c-typeck.c (set_init_label): Call error_at instead of error and
3264 pass LOC to it.
3265
98f44804 3266 * c-typeck.c (c_incomplete_type_error): Refactor to use %qT. Print
3267 the type of a decl.
3268
2cd7caae 3269 * c-typeck.c (c_build_va_arg): Clarify the error message.
3270
95cfd391 32712015-04-29 Thomas Schwinge <thomas@codesourcery.com>
3272
3273 * c-parser.c (c_parser_oacc_enter_exit_data): Use
3274 OMP_STANDALONE_CLAUSES.
3275
e65e39f8 32762015-04-28 Marek Polacek <polacek@redhat.com>
3277
3278 * c-parser.c (c_parser_binary_expression): Remove duplicate line.
3279
5580bf42 32802015-04-28 Marek Polacek <polacek@redhat.com>
3281
3282 PR c/65901
3283 * c-typeck.c (c_build_va_arg): Require TYPE be a complete type.
3284
c3468fc2 32852015-04-25 Marek Polacek <polacek@redhat.com>
3286
3287 PR c/52085
3288 * c-decl.c (finish_enum): Copy over TYPE_ALIGN. Also check for "mode"
3289 attribute.
3290
0cd6b1b4 32912015-04-23 Marek Polacek <polacek@redhat.com>
3292
3293 PR c/65345
3294 * c-decl.c (set_labels_context_r): New function.
3295 (store_parm_decls): Call it via walk_tree_without_duplicates.
3296 * c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
3297 instead of create_tmp_var. Build TARGET_EXPR instead of
3298 COMPOUND_EXPR.
3299 (build_atomic_assign): Use create_tmp_var_raw instead of
3300 create_tmp_var. Build TARGET_EXPRs instead of MODIFY_EXPR.
3301
05a827ce 33022015-04-20 Ilya Verbin <ilya.verbin@intel.com>
3303
3304 * c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
3305 (c_parser_omp_target_update): Add missed %> to error_at ().
3306
de801c28 33072015-04-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3308
3309 PR target/55143
3310 * c-decl.c (c_default_pointer_mode): Remove definition.
3311 * c-tree.h (c_default_pointer_mode): Remove declaration.
3312
c3b1dca4 33132015-03-27 Tobias Burnus <burnus@net-b.de>
3314
3315 PR c/65586
3316 * c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
3317 error out.
3318 (c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
3319 c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
3320 Update calls to not error for skipped omp pragmas with -fopenmp-simd.
3321
1443772f 33222015-03-19 Jakub Jelinek <jakub@redhat.com>
3323
3324 * c-decl.c (c_decl_attributes): Also add "omp declare target"
3325 attribute for DECL_EXTERNAL VAR_DECLs.
3326
76738f56 33272015-03-11 Jakub Jelinek <jakub@redhat.com>
3328
3329 * c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
3330 argument.
3331
16f958b3 33322015-03-10 Jakub Jelinek <jakub@redhat.com>
3333
3334 PR c/65120
3335 * c-typeck.c (parser_build_binary_op): Check for tcc_comparison
3336 before preparing arguments to warn_logical_not_parentheses.
3337
6054103a 33382015-03-09 Jakub Jelinek <jakub@redhat.com>
3339
3340 PR c/65120
3341 * c-typeck.c (parser_build_binary_op): Don't warn for
3342 !!x == y or !b == y where b is _Bool.
3343
de3a1e03 33442015-03-09 Marek Polacek <polacek@redhat.com>
3345
3346 * c-convert.c (convert): Make use of do_ubsan_in_current_function.
3347 * c-decl.c (grokdeclarator): Likewise.
3348 * c-typeck.c (build_binary_op): Likewise.
3349
084e6bf0 33502015-02-27 Marek Polacek <polacek@redhat.com>
3351
3352 PR c/65228
3353 * c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
3354
4d7c4134 33552015-02-14 Marek Polacek <polacek@redhat.com>
3356
3357 PR c/64768
3358 * c-decl.c (grokdeclarator): Set the range of a flexible array member
3359 declared through a typedef name.
3360
b1380826 33612015-02-13 Marek Polacek <polacek@redhat.com>
3362
3363 PR c/65050
3364 * c-decl.c (grokdeclarator): Print also the type when giving
3365 the error message about array's incomplete element type.
3366
35ff54b5 33672015-02-11 Jakub Jelinek <jakub@redhat.com>
3368
3369 PR c/64824
3370 * c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
3371 check in the POP macro.
3372
46861609 33732015-02-09 Marek Polacek <polacek@redhat.com>
3374
3375 PR c/64856
3376 * c-typeck.c (process_init_element): Don't always wrap
3377 COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when
3378 initializing a range of elements.
3379
bbf8fbec 33802015-02-04 Jakub Jelinek <jakub@redhat.com>
3381
3382 PR c/64824
3383 PR c/64868
3384 * c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.
3385
46861609 33862015-02-02 Bruno Loff <bruno.loff@gmail.com>
1f0ce3ac 3387
3388 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
3389 processing enum declaration.
3390
70279be9 33912015-01-29 Marek Polacek <polacek@redhat.com>
3392
3393 PR c/64709
3394 * c-typeck.c (pop_init_level): If constructor_elements has
3395 exactly one element with integer_zerop value, set constructor_zeroinit
3396 to 1. Remove braces around warning_init call.
3397
591970b4 33982015-01-27 Jakub Jelinek <jakub@redhat.com>
3399
3400 PR c/64766
3401 * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
3402 of FUNCTION_DECLs with error_mark_node.
3403
87778dc4 34042015-01-26 Jakub Jelinek <jakub@redhat.com>
3405
3406 PR c/64778
3407 * c-typeck.c (convert_arguments): Return -1 if there are
3408 error_args, even if we've diagnosed too many arguments.
3409
cffdfb3d 34102015-01-21 Richard Biener <rguenther@suse.de>
3411
3412 PR middle-end/64313
3413 * c-decl.c (merge_decls): Call set_builtin_decl_declared_p
3414 for builtins the user declared correctly.
3415
ca4c3545 34162015-01-15 Thomas Schwinge <thomas@codesourcery.com>
3417 Bernd Schmidt <bernds@codesourcery.com>
3418 Cesar Philippidis <cesar@codesourcery.com>
3419 James Norris <jnorris@codesourcery.com>
3420 Jakub Jelinek <jakub@redhat.com>
3421 Ilmir Usmanov <i.usmanov@samsung.com>
3422
3423 * c-parser.c: Include "gomp-constants.h".
3424 (c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
3425 omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
3426 Use OMP_CLAUSE_SET_MAP_KIND.
3427 (c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
3428 PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
3429 (c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
3430 PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
3431 PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
3432 (c_parser_omp_clause_name): Handle "auto", "async", "copy",
3433 "copyout", "create", "delete", "deviceptr", "gang", "host",
3434 "num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
3435 "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
3436 "present_or_create", "pcreate", "seq", "self", "vector",
3437 "vector_length", "wait", "worker".
3438 (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
3439 (OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
3440 (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
3441 (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
3442 (c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
3443 (c_parser_oacc_wait_list, c_parser_oacc_data_clause)
3444 (c_parser_oacc_data_clause_deviceptr)
3445 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
3446 (c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
3447 (c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
3448 (c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
3449 (c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
3450 (c_parser_oacc_parallel, c_parser_oacc_update)
3451 (c_parser_oacc_wait): New functions.
3452 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
3453 (c_finish_oacc_data): New prototypes.
3454 * c-typeck.c: Include "gomp-constants.h".
3455 (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
3456 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
3457 OMP_CLAUSE_SET_MAP_KIND.
3458 (c_finish_oacc_parallel, c_finish_oacc_kernels)
3459 (c_finish_oacc_data): New functions.
3460 (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
3461 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
3462 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
3463 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
3464 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
3465 GOMP_MAP_FORCE_DEVICEPTR.
3466
1f78217c 34672015-01-09 Michael Collison <michael.collison@linaro.org>
3468
3469 * c-array-notation.c: Include hash-set.h, machmode.h,
3470 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3471 fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
3472 * c-aux-info.c: Ditto.
3473 * c-convert.c: Ditto.
3474 * c-decl.c: Ditto.
3475 * c-errors.c: Ditto.
3476 * c-lang.c: Dittoxs.
3477 * c-objc-common.c: Ditto.
3478 * c-parser.c: Ditto.
3479 * c-typeck.c: Include hash-set.h, machmode.h,
3480 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3481 fold-const.h, wide-int.h, inchash.h, real.h and
3482 fixed-value.h due to flattening of tree.h.
3483
15e18a8c 34842015-01-07 Marek Polacek <polacek@redhat.com>
3485
3486 PR c/64417
3487 * c-typeck.c (process_init_element): Disallow initialization of
3488 a flexible array member with a string constant if the structure
3489 is in an array.
3490
d353bf18 34912015-01-05 Jakub Jelinek <jakub@redhat.com>
3492
823a9dd4 3493 PR sanitizer/64344
3494 * c-typeck.c (convert_for_assignment, c_finish_return): For
3495 -fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
3496 types also set in_late_binary_op around convert call.
3497 * c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
3498 to integral type casts, if not in_late_binary_op, pass c_fully_fold
3499 result on expr as last argument to ubsan_instrument_float_cast,
3500 if in_late_binary_op, don't use c_save_expr but save_expr.
3501
d353bf18 3502 Update copyright years.
3503
92b63884 35042015-01-05 Marek Polacek <polacek@redhat.com>
3505
3506 PR c/64423
3507 * c-typeck.c (build_array_ref): Pass loc down to
3508 warn_array_subscript_with_type_char.
3509
92a44a68 35102014-12-20 Martin Uecker <uecker@eecs.berkeley.edu>
8a8211df 3511
3512 * c-typeck.c: New behavious for pointers to arrays with qualifiers
a49621cf 3513 (common-pointer-type): For pointers to arrays take qualifiers from
8a8211df 3514 element type.
a49621cf 3515 (build_conditional_expr): Add warnings for lost qualifiers.
8a8211df 3516 (comp-target-types): Allow pointers to arrays with different qualifiers.
a49621cf 3517 (convert-for-assignment): Adapt warnings for discarded qualifiers. Add
8a8211df 3518 WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
a49621cf 3519 to PEDWARN_FOR_QUALIFIERS.
8a8211df 3520
35ea0139 35212014-12-17 Jakub Jelinek <jakub@redhat.com>
3522
3523 PR sanitizer/64289
3524 * c-convert.c: Include ubsan.h.
3525 (convert): For real -> integral casts and
3526 -fsanitize=float-cast-overflow don't call convert_to_integer, but
3527 instead instrument the float cast directly.
3528
f9e245b2 35292014-11-29 Jakub Jelinek <jakub@redhat.com>
3530
3531 * c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
3532 c_finish_stmt_expr): Remove NULL last argument from
3533 create_tmp_var_raw and create_tmp_var calls.
3534 * c-array-notation.c (fix_builtin_array_notation_fn,
3535 build_array_notation_expr, fix_conditional_array_notations_1,
3536 fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
3537
fce2dbd1 35382014-11-28 Marek Polacek <polacek@redhat.com>
3539
3540 PR c/63862
3541 * c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
3542 convert the right operand to integer type.
3543
396c36b7 35442014-11-25 Marek Polacek <polacek@redhat.com>
3545
3546 PR c/63877
3547 * c-decl.c (start_function): Disable -Wmissing-declarations warning
3548 for inline functions.
3549
c61ef207 35502014-11-21 Jakub Jelinek <jakub@redhat.com>
3551
3552 PR target/63764
3553 * c-typeck.c (build_array_ref): Adjust
3554 convert_vector_to_pointer_for_subscript caller. If it returns true,
3555 call non_lvalue_loc on the result.
3556
565353e8 35572014-11-11 Richard Biener <rguenther@suse.de>
3558
3559 * c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
3560 to true.
3561
fdd735a7 35622014-11-10 Andi Kleen <ak@linux.intel.com>
3563
3564 PR c/60804
3565 * c-parser.c (c_parser_statement_after_labels): Call
3566 check_no_cilk.
3567 (c_parser_if_statement): Dito.
3568 (c_parser_switch_statement): Dito.
3569 (c_parser_while_statement): Dito.
3570 (c_parser_do_statement): Dito.
3571 (c_parser_for_statement): Dito.
3572 * c-typeck.c (c_finish_loop): Dito.
3573
0feb4de1 35742014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
3575
3576 * c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
3577 OPT_Wshift_count_overflow in the warnings.
3578
a3fec48a 35792014-10-30 Marek Polacek <polacek@redhat.com>
3580
3581 * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
3582 print the stripped version as well, if they're not the same.
3583
3754d046 35842014-10-29 Richard Sandiford <richard.sandiford@arm.com>
3585
3586 * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
3587 machine_mode.
3588
1140c305 35892014-10-28 Andrew MacLeod <amacleod@redhat.com>
3590
3591 * c-decl.c: Adjust include files.
3592 * c-parser.c: Ditto.
3593
ab103e33 35942014-10-27 Phil Muldoon <pmuldoon@redhat.com>
3595 Tom Tromey <tromey@redhat.com>
3596
3597 * c-tree.h (enum c_oracle_request): New.
3598 (c_binding_oracle_function): New typedef.
3599 (c_binding_oracle, c_pushtag, c_bind): Declare.
3600 * c-decl.c (c_binding_oracle): New global.
3601 (I_SYMBOL_CHECKED): New macro.
3602 (i_symbol_binding): New function.
3603 (I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
3604 (I_TAG_CHECKED): New macro.
3605 (i_tag_binding): New function.
3606 (I_TAG_BINDING, I_TAG_DECL): Redefine.
3607 (I_LABEL_CHECKED): New macro.
3608 (i_label_binding): New function.
3609 (I_LABEL_BINDING, I_LABEL_DECL): Redefine.
3610 (c_print_identifier): Save and restore c_binding_oracle.
3611 (c_pushtag, c_bind): New functions.
3612
94ea8568 36132014-10-27 Andrew MacLeod <amacleod@redhat.com>
3614
3615 * c-typeck.c: Adjust include files.
3616
32ecf960 36172014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
3618
3619 PR c++/53061
3620 * c-objc-common.c (c_objc_common_init): Do not do diagnostics
3621 initialization here...
3622 (c_initialize_diagnostics): ... but here. Set defaults after
3623 building pretty-printer.
3624
2981340f 36252014-10-23 Marek Polacek <polacek@redhat.com>
3626
3627 PR c/63626
3628 * c-decl.c (pop_scope): Don't print warning in external_scope.
3629
d303aeaf 36302014-10-19 Marek Polacek <polacek@redhat.com>
3631
3632 PR c/63567
3633 * c-typeck.c (output_init_element): Allow initializing objects with
3634 static storage duration with compound literals even in C99 and add
3635 pedwarn for it.
3636
bccf97da 36372014-10-17 Marek Polacek <polacek@redhat.com>
3638
3639 PR c/63567
3640 * c-typeck.c (digest_init): Allow initializing objects with static
3641 storage duration with compound literals even in C99 and add pedwarn
3642 for it.
3643
d9c77450 36442014-10-17 Marek Polacek <polacek@redhat.com>
3645
3646 PR c/63543
3647 * c-tree.h (C_TYPE_ERROR_REPORTED): Define.
3648 * c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
3649 error multiple times. Print the type.
3650
a2bbd0a7 36512014-10-17 Marek Polacek <polacek@redhat.com>
3652
3653 PR c/63549
3654 * c-typeck.c (build_array_ref): Bail if the index in an incomplete
3655 type.
3656
e610d2b2 36572014-10-17 Marek Polacek <polacek@redhat.com>
3658
3659 * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
3660 (start_function): Use OPT_Wimplicit_int instead of 0.
3661 (store_parm_decls_oldstyle): Likewise.
3662
6b6e56b6 36632014-10-17 Alan Modra <amodra@gmail.com>
3664
3665 PR middle-end/61848
3666 * c-decl.c (merge_decls): Don't merge section name or tls model
3667 to newdecl symtab node, instead merge to olddecl. Override
3668 existing olddecl section name. Set tls_model for all thread-local
3669 vars, not just OMP thread-private ones. Remove incorrect comment.
3670
a3020f2f 36712014-10-16 Andrew MacLeod <amacleod@redhat.com>
3672
3673 * c-decl.c: Adjust include files.
3674
9f75f026 36752014-10-14 DJ Delorie <dj@redhat.com>
3676
3677 * c-parser.c (c_parse_init): Add RID entries for each __intN.
3678 (c_token_starts_typename): Check all __intN, not just __int128.
3679 (c_token_starts_declspecs): Likewise.
3680 (c_parser_declspecs): Likewise.
3681 (c_parser_attribute_any_word): Likewise.
3682 (c_parser_objc_selector): Likewise.
3683 * c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
3684 (struct c_declspecs): Add int_n_idx field to record *which* __intN
3685 is specified.
3686 * c-decl.c (declspecs_add_type): Check for all __intN, not just
3687 __int128.
3688 (finish_declspecs): Likewise.
3689
4f284d4a 36902014-10-13 Anthony Brandon <anthony.brandon@gmail.com>
3691
a49621cf 3692 * c-parser.c (c_parser_all_labels): New function to replace
4f284d4a 3693 the duplicate code.
a49621cf 3694 (c_parser_statement): Call the new function.
4f284d4a 3695
61a892dc 36962014-10-09 Marek Polacek <polacek@redhat.com>
3697
3698 PR c/63480
3699 * c-typeck.c (pop_init_level): Don't warn about initializing
3700 with { }.
3701
4e888fd9 37022014-10-07 Marek Polacek <polacek@redhat.com>
3703
3704 PR c/59717
3705 * c-decl.c (header_for_builtin_fn): New function.
3706 (implicitly_declare): Suggest which header to include.
3707
224bdd51 37082014-10-07 Marek Polacek <polacek@redhat.com>
3709
3710 * c-convert.c (convert): Use error_operand_p.
3711 * c-typeck.c (require_complete_type): Likewise.
3712 (really_atomic_lvalue): Likewise.
3713 (digest_init): Likewise.
3714 (handle_omp_array_sections_1): Likewise.
3715
a2bc79db 37162014-10-03 Marek Polacek <polacek@redhat.com>
3717
3718 PR c/63453
3719 * c-decl.c (pop_scope): Don't warn about "inline function declared
3720 but never defined" for functions marked with gnu_inline attribute.
3721
4fc4088b 37222014-09-25 Jakub Jelinek <jakub@redhat.com>
3723
3724 PR c++/63249
3725 * c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
3726 on low_bound and length.
3727
5213d6c9 37282014-09-24 Marek Polacek <polacek@redhat.com>
3729
3730 PR c/61405
3731 PR c/53874
3732 * c-parser.c: Don't define CPP_KEYWORD.
3733 (c_parser_switch_statement): Pass original type to c_finish_case.
3734 * c-tree.h (c_finish_case): Update declaration.
3735 * c-typeck.c (c_finish_case): Add TYPE parameter. Pass it
3736 conditionally to c_do_switch_warnings.
3737
6ea2b1bc 37382014-09-03 Marek Polacek <polacek@redhat.com>
3739
3740 PR c/62024
3741 * c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
3742 conversions.
3743
40750995 37442014-09-02 Jakub Jelinek <jakub@redhat.com>
3745 Balaji V. Iyer <balaji.v.iyer@intel.com>
3746 Igor Zamyatin <igor.zamyatin@intel.com>
3747
3748 * c-parser.c (c_parser_cilk_for): New function.
3749 (c_parser_cilk_grainsize): Likewise.
3750 (c_get_temp_regvar): Likewise.
3751 (c_parser_statement_after_labels): Added RID_CILK_FOR case.
3752 (c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
3753 (c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
3754 * c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
3755 case.
3756
8c583613 37572014-08-27 Chen Gang <gang.chen.5i5j@gmail.com>
3758
3759 * c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
3760 with using HOST_WIDE_INT without truncation to 'int'
3761
dc6229e8 37622014-08-22 Marek Polacek <polacek@redhat.com>
3763
3764 PR c++/62199
3765 * c-typeck.c (parser_build_binary_op): Adjust call to
3766 warn_logical_not_parentheses.
3767
5fdda74b 37682014-08-22 Igor Zamyatin <igor.zamyatin@intel.com>
3769
3770 PR other/62008
3771 * c-parser.c (c_parser_array_notation): Check for correct
3772 type of an array added.
3773
78bf4156 37742014-08-19 Marek Polacek <polacek@redhat.com>
3775
3776 PR c++/62153
3777 * c-typeck.c (build_binary_op): If either operand of a comparison
3778 is a boolean expression, call maybe_warn_bool_compare.
3779
005b8fe7 37802014-08-19 Patrick Palka <ppalka@gcc.gnu.org>
3781
3782 PR c/45584
3783 * c-typeck.c (build_c_cast): Do a conversion even when the
3784 TYPE_MAIN_VARIANTs are the same.
3785
508ea33a 37862014-08-19 Marek Polacek <polacek@redhat.com>
3787
3788 * c-decl.c (diagnose_mismatched_decls): Unconditionally call
3789 pedwarn_c99 instead of pedwarn.
3790 (grokfield): Likewise.
3791 (warn_defaults_to): New function.
3792 (grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
3793 Unconditionally call pedwarn_c99 instead of pedwarn.
3794 (start_function): Call warn_defaults_to instead of pedwarn_c99.
3795 (declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
3796 check flag_isoc11 before.
3797 * c-errors.c (pedwarn_c99): Change the return type to bool.
3798 Handle -Wc99-c11-compat.
3799 * c-parser.c (disable_extension_diagnostics): Handle
3800 warn_c99_c11_compat.
3801 (restore_extension_diagnostics): Likewise.
3802 (c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
3803 instead of pedwarn, don't check flag_isoc11 before.
3804 (c_parser_declspecs): Likewise.
3805 (c_parser_alignas_specifier): Likewise.
3806 (c_parser_alignof_expression): Likewise.
3807 (c_parser_generic_selection): Likewise.
3808 * c-tree.h (pedwarn_c99): Update declaration.
3809 * c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
3810 of pedwarn_c99.
3811
806fe15e 38122014-08-19 Marek Polacek <polacek@redhat.com>
3813
3814 * c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
3815 to pedwarn_c90.
3816 * c-errors.c: Include "opts.h".
3817 (pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
3818 * c-parser.c (disable_extension_diagnostics): Handle negative value
3819 of warn_c90_c99_compat, too.
3820 (restore_extension_diagnostics): Likewise.
3821 (c_parser_compound_statement_nostart): Pass
3822 OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.
3823
89868e45 38242014-08-12 Marek Polacek <polacek@redhat.com>
3825
3826 * c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
3827 Add pedwarn.
3828 (c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
3829 Likewise.
3830 (c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.
3831
92a44a68 38322014-08-10 Marek Polacek <polacek@redhat.com>
890c2e2f 3833
3834 PR c/51849
3835 * c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
3836 Call pedwarn_c90 instead of pedwarn.
3837 (check_bitfield_type_and_width): Likewise.
3838 (declspecs_add_qual): Likewise.
3839 (declspecs_add_type): Likewise.
3840 (warn_variable_length_array): Unify function for -pedantic and -Wvla.
3841 Adjust to only call pedwarn_c90.
3842 (grokdeclarator): Remove pedantic && !flag_isoc99 check. Call
3843 pedwarn_c90 instead of pedwarn.
3844 * c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
3845 * c-parser.c (disable_extension_diagnostics): Handle
3846 warn_c90_c99_compat.
3847 (restore_extension_diagnostics): Likewise.
3848 (c_parser_enum_specifier): Remove check for !flag_isoc99. Call
3849 pedwarn_c90 instead of pedwarn.
3850 (c_parser_initelt): Likewise.
3851 (c_parser_postfix_expression): Likewise.
3852 (c_parser_postfix_expression_after_paren_type): Likewise.
3853 (c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
3854 * c-tree.h: Fix formatting.
3855 * c-typeck.c (build_array_ref): Remove check for !flag_isoc99. Call
3856 pedwarn_c90 instead of pedwarn.
3857
7149db5f 38582014-08-07 Trevor Saunders <tsaunders@mozilla.com>
3859
3860 * c-typeck.c: Remove include of pointer-set.h.
3861
1c75251e 38622014-08-07 Marek Polacek <polacek@redhat.com>
3863
3864 * c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.
3865
06ecf488 38662014-08-02 Trevor Saunders <tsaunders@mozilla.com>
3867
3868 * c-typeck.c: Use hash_map instead of pointer_map.
3869
431205b7 38702014-08-02 Trevor Saunders <tsaunders@mozilla.com>
3871
3872 * c-decl.c: Use hash_set instead of pointer_set.
3873
3394c80c 38742014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
3875
3876 PR middle-end/61455
3877 * c-array-notation.c (expand_array_notations): Handling
3878 of DECL_EXPR added.
3879
f22a2cb7 38802014-07-31 Marc Glisse <marc.glisse@inria.fr>
3881
3882 PR c++/60517
3883 * c-typeck.c (c_finish_return): Return 0 instead of the address of
3884 a local variable.
3885
74691f46 38862014-07-30 Tom Tromey <tromey@redhat.com>
3887
3888 * c-typeck.c (struct constructor_stack) <designator_depth>: New
3889 field.
3890 (really_start_incremental_init, push_init_level): Initialize
3891 designator_depth.
3892 (pop_init_level): Set global designator_depth.
3893 (process_init_element): Check for designated_init attribute.
3894
f9767fb6 38952014-07-20 Marek Polacek <polacek@redhat.com>
3896
3897 PR c/61852
3898 * c-decl.c (implicit_decl_warning): Add location_t parameter. Use it.
3899 (implicitly_declare): Pass location to implicit_decl_warning.
3900
305d96bc 39012014-07-14 Jakub Jelinek <jakub@redhat.com>
3902
3903 PR middle-end/61294
3904 * c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
3905 If non-NULL, call c_parser_check_literal_zero.
3906 (c_parser_check_literal_zero): New function.
3907 (c_parser_postfix_expression_after_primary): Adjust
3908 c_parser_expr_list caller, handle -Wmemset-transposed-args.
3909
87d59e72 39102014-07-06 Marek Polacek <polacek@redhat.com>
3911
3912 PR c/6940
3913 * c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
3914 * c-tree.h (C_ARRAY_PARAMETER): Define.
3915 * c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
3916 function parameter.
3917
752098c8 39182014-07-02 Jan Hubicka <hubicka@ucw.cz>
92a44a68 3919 Chen Gang <gang.chen.5i5j@gmail.com>
752098c8 3920
3921 * c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
3922 releasing symbol.
3923
1207866e 39242014-07-01 Marek Polacek <polacek@redhat.com>
3925
3926 * c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
3927 instead of 0 to WARN_FOR_ASSIGNMENT.
3928
7a6bbb76 39292014-07-01 Marek Polacek <polacek@redhat.com>
3930
3931 PR c/58286
3932 * c-typeck.c (convert_for_assignment): Pass
3933 OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
3934
70575064 39352014-06-30 Marek Polacek <polacek@redhat.com>
3936
3937 * c-decl.c (grokdeclarator): Don't instrument VLAs if the function
3938 has no_sanitize_undefined attribute.
3939
4879e4cf 39402014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
3941
3942 PR middle-end/57541
3943 * c-array-notation.c (fix_builtin_array_notation_fn):
3944 Check for 0 arguments in builtin call. Check that bultin argument is
3945 correct.
3946 * c-parser.c (c_parser_array_notation): Check for incorrect initial
3947 index.
3948
45c5b823 39492014-06-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
3950
3951 * c-parser.c (c_parser_declaration_or_fndef): Discard all type
3952 qualifiers in __auto_type for atomic types.
3953 (c_parser_typeof_specifier): Discard all type qualifiers in
3954 __typeof__ for atomic types.
3955
430b73ee 39562014-06-25 Marek Polacek <polacek@redhat.com>
3957
3958 PR c/61162
3959 * c-parser.c (c_parser_statement_after_labels): Pass the location of
3960 the return expression to c_finish_return.
3961
9580cb79 39622014-06-25 Jakub Jelinek <jakub@redhat.com>
3963
3964 * c-typeck.c (c_finish_omp_clauses): Make sure
3965 OMP_CLAUSE_LINEAR_STEP has correct type.
3966
c1f445d2 39672014-06-24 Trevor Saunders <tsaunders@mozilla.com>
3968
3969 * c-decl.c: Adjust.
3970
e471cc6f 39712014-06-24 Jakub Jelinek <jakub@redhat.com>
3972
3973 * c-parser.c (c_parser_omp_for_loop): For
3974 #pragma omp parallel for simd move lastprivate clause from parallel
3975 to for rather than simd.
3976
499b7390 39772014-06-23 Marek Polacek <polacek@redhat.com>
3978
3979 * c-typeck.c (parser_build_binary_op): Don't call
3980 warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
3981
5e68df57 39822014-06-15 Jan Hubicka <hubicka@ucw.cz>
3983
3984 * c-parser.c (c_parser_omp_threadprivate): Likewise.
3985 * c-decl.c (merge_decls): Likewise.
3986
064b0d02 39872014-06-09 Marek Polacek <polacek@redhat.com>
3988
3989 PR c/36446
3990 * c-typeck.c (error_init): Call inform instead of error_at.
3991 (pedwarn_init): Call inform instead of pedwarn.
3992 (warning_init): Call inform instead of warning_at.
3993
71e19e54 39942014-06-07 Jan Hubicka <hubicka@ucw.cz>
3995
3996 * c-decl.c (merge_decls): Use set_decl_section_name.
3997 (duplicate_decls): Remove node if it exists.
3998
95cdf3fd 39992014-06-05 S. Gilles <sgilles@terpmail.umd.edu>
4000
4001 PR c/53119
4002 * c-typeck.c (push_init_level, process_init_element,
4003 pop_init_level): Correct check for zero initialization, move
4004 missing brace warning to respect zero initialization.
4005
a07f86a6 40062014-06-05 Marek Polacek <polacek@redhat.com>
4007
4008 PR c/56724
4009 * c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.
4010
32dc1512 40112014-06-05 Marek Polacek <polacek@redhat.com>
4012
4013 PR c/49706
4014 * c-typeck.c (parser_build_binary_op): Warn when logical not is used
4015 on the left hand side operand of a comparison.
4016
64cf1262 40172014-06-05 Marek Polacek <polacek@redhat.com>
4018
4019 PR c/48062
4020 * c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
4021 Print note only if the warning was printed.
4022
071f6d39 40232014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
4024
4025 PR c/58942
4026 * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
4027 with a pointer.
4028
c69ec07d 40292014-06-03 Marek Polacek <polacek@redhat.com>
4030
4031 PR c/60439
4032 * c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
4033 c_start_case.
4034 * c-tree.h (c_start_case): Update.
4035 * c-typeck.c (c_start_case): Add new boolean parameter. Warn if
4036 switch condition has boolean value.
4037
f7715905 40382014-06-02 Andrew MacLeod <amacleod@redhat.com>
4039
4040 * c-decl.c: Include builtins.h.
4041 * c-parser.c: Likewise.
4042
dcfff6f9 40432014-05-27 Marek Polacek <polacek@redhat.com>
4044
4045 PR c/56724
4046 * c-typeck.c (convert_arguments): Get location of a parameter. Change
4047 error and warning calls to error_at and warning_at. Pass location of
4048 a parameter to it. Call warning_at with OPT_Wtraditional_conversion.
4049 (convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
4050 WARN_FOR_QUALIFIERS. Pass expr_loc to those.
4051
c048c42c 40522014-05-26 Igor Zamyatin <igor.zamyatin@intel.com>
4053
4054 PR c/61191
4055 * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
4056 function parameters.
4057
8c016392 40582014-05-23 Jan Hubicka <hubicka@ucw.cz>
4059
4060 * c-decl.c (merge_decls): Preserve symtab node pointers.
4061 (duplicate_decls): Free new decl.
4062
184a718f 40632014-05-23 Thomas Schwinge <thomas@codesourcery.com>
4064
6ce915ef 4065 * c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
4066 initialization.
4067
184a718f 4068 * c-parser.c (c_parser_omp_target): Return bool values.
4069
22ac3f78 40702014-05-22 Thomas Schwinge <thomas@codesourcery.com>
4071
4072 * c-parser.c (c_parser_omp_clause_thread_limit): Rename
4073 num_teams_loc variable to num_thread_limit_loc.
4074
3ab4693e 40752014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
4076
4077 * c-array-notation.c (expand_array_notations): Use void_node
4078 instead of void_zero_node.
4079
25a27413 40802014-05-17 Trevor Saunders <tsaunders@mozilla.com>
4081
4082 * c-decl.c (finish_struct): Adjust.
4083 (finish_enum): Likewise.
4084 (bind): Adjust.
4085 (record_inline_static): Likewise.
4086 (push_scope): Likewise.
4087 (make_label): Likewise.
4088 (lookup_label_for_goto): Likewise.
4089 (finish_struct): Likewise.
4090 (finish_enum): Likewise.
4091 (store_parm_decls): Likewise.
4092 (c_push_function_context): Likewise.
4093 * c-lang.h: Remove usage of variable_size gty attribute.
4094 * c-parser.c (c_parse_init): Adjust.
4095 (c_parse_file): Likewise.
4096
172b8440 40972014-05-13 Marek Polacek <polacek@redhat.com>
4098
4099 PR c/61162
4100 * c-typeck.c (convert_for_assignment): Pass location to
4101 WARN_FOR_ASSIGNMENT instead of input_location.
4102
c9e51d25 41032014-05-10 Marek Polacek <polacek@redhat.com>
4104
4105 * c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
4106 maybe_warn_string_init.
4107 (c_parser_postfix_expression_after_paren_type): Pass type_loc to
4108 maybe_warn_string_init.
4109 * c-tree.h (maybe_warn_string_init): Update declaration.
4110 * c-typeck.c (maybe_warn_string_init): Add location parameter.
4111 Call pedwarn_init with loc instead of with input_location.
4112 (digest_init): Pass init_loc to maybe_warn_string_init.
4113 (pop_init_level): Call pedwarn_init with loc instead of with
4114 input_location.
4115 (set_init_index): Likewise.
4116 (process_init_element): Likewise.
4117
53de1631 41182014-05-09 Marek Polacek <polacek@redhat.com>
4119
4120 PR c/61096
4121 * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
4122 (c_parser_initelt): Pass location to set_init_label. Pass array index
4123 location to set_init_index.
4124 * c-tree.h (push_init_level): Update declaration.
4125 (pop_init_level): Likewise.
4126 (set_init_index): Likewise.
4127 (set_init_label): Likewise.
4128 * c-typeck.c (error_init): Add location parameter. Call error_at
4129 instead of error.
4130 (digest_init): Pass init_loc to error_init.
4131 (really_start_incremental_init):
4132 (push_init_level): Add location parameter. Pass loc to pop_init_level
4133 and error_init.
4134 (pop_init_level): Likewise.
4135 (set_designator): Add location parameter. Pass loc to pop_init_level,
4136 push_init_level, and error_init.
4137 (set_init_index): Add location parameter. Pass loc to error_init and
4138 set_designator.
4139 (set_init_label): Likewise.
4140 (output_init_element): Pass loc to error_init.
4141 (process_init_element): Pass loc to error_init, pop_init_level,
4142 pedwarn_init, and push_init_level.
4143
3e5a8b00 41442014-05-09 Marek Polacek <polacek@redhat.com>
4145
4146 PR c/50459
4147 * c-parser.c (c_parser_attributes): Parse the arguments as an
4148 expression-list if the attribute takes identifier.
4149
c2c4ae8d 41502014-05-08 Marek Polacek <polacek@redhat.com>
4151
4152 PR c/61053
4153 * c-decl.c (grokdeclarator): Use min_align_of_type instead of
4154 TYPE_ALIGN_UNIT.
4155
2026249a 41562014-05-08 Marek Polacek <polacek@redhat.com>
4157
4158 PR c/61077
4159 * c-decl.c (start_function): Warn for _Atomic-qualified return type
4160 of main.
4161
960d5a55 41622014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
4163 Mike Stump <mikestump@comcast.net>
4164 Richard Sandiford <rdsandiford@googlemail.com>
4165
4166 * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
4167 (finish_enum): Use wide-int interfaces.
4168 * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
4169 * c-typeck.c (build_c_cast): Likewise.
4170 (set_nonincremental_init_from_string): Likewise.
4171 (c_tree_equal): Likewise.
4172
e0e14cbd 41732014-05-02 Marek Polacek <polacek@redhat.com>
4174
4175 PR c/25801
4176 * c-typeck.c (c_size_in_bytes): Update comment. Don't call error.
4177 Return size_one_node when the type is not complete.
4178 (pointer_diff): Remove comment.
4179 (build_unary_op): Improve error messages.
4180
27ff10cb 41812014-05-02 Marek Polacek <polacek@redhat.com>
4182
4183 * c-typeck.c (c_finish_return): Separate warning_at calls.
4184
68410ce9 41852014-05-02 Marek Polacek <polacek@redhat.com>
4186
4187 * c-tree.h (error_init): Remove declaration.
4188 (pedwarn_init): Likewise.
4189 * c-typeck.c (error_init): Make static and move above.
4190 (pedwarn_init): Likewise.
4191 (warning_init): Move above.
4192 (maybe_warn_string_init): Likewise.
4193
e8e27117 41942014-05-01 Jeff Law <law@redhat.com>
4195
4196 Revert:
4197
4198 2014-04-24 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4199 * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
4200 avoid goto.
4201
971df357 42022014-05-02 Marek Polacek <polacek@redhat.com>
4203
4204 PR c/60784
4205 * c-typeck.c (push_init_level): Set constructor_designated to
4206 p->designated for structures.
4207
de548fe5 42082014-05-01 Marek Polacek <polacek@redhat.com>
4209
4210 PR c/60915
4211 * c-parser.c (c_parser_declaration_or_fndef): Give better error if
4212 function-definition has an attribute after the declarator.
4213
053a0ded 42142014-05-01 Marek Polacek <polacek@redhat.com>
4215
4216 PR c/60257
4217 * c-typeck.c (warning_init): Add location_t parameter. Call
4218 warning_at instead of warning.
4219 (push_init_level): Pass input_location to warning_init.
4220 (add_pending_init): Add location_t parameter. Pass loc to
4221 warning_init.
4222 (set_nonincremental_init): Pass input_location to add_pending_init.
4223 (set_nonincremental_init_from_string): Likewise.
4224 (output_init_element): Pass loc to warning_init and to
4225 add_pending_init.
4226
694296f2 42272014-05-01 Marek Polacek <polacek@redhat.com>
4228
4229 PR c/43395
4230 * c-typeck.c (c_finish_return): Distinguish between label and variable
4231 when warning about returning local address.
4232
86bbd7f9 42332014-05-01 Marek Polacek <polacek@redhat.com>
4234
4235 PR c/29467
4236 * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
4237 in C89 mode.
4238
e4ab2ef3 42392014-05-01 Marek Polacek <polacek@redhat.com>
4240
4241 PR c/43245
4242 * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
4243 instead of 0 to WARN_FOR_QUALIFIERS.
4244
ca3999cb 42452014-05-01 Marek Polacek <polacek@redhat.com>
4246
4247 PR c/56989
4248 * c-typeck.c (default_conversion): Use better location for
4249 error call.
4250
52cc0072 42512014-04-30 Marek Polacek <polacek@redhat.com>
4252
4253 * c-typeck.c (build_binary_op): Call ubsan_instrument_division
4254 also when SANITIZE_FLOAT_DIVIDE is on.
4255
af379dd3 42562014-04-30 Marek Polacek <polacek@redhat.com>
4257
4258 PR c/60139
4259 * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
4260 and pedwarn_init. Use loc insted of input_location.
4261
b069c2a0 42622014-04-30 Marek Polacek <polacek@redhat.com>
4263
4264 PR c/60351
4265 * c-typeck.c (build_binary_op): Use location when warning about
4266 shift count.
4267
4a026b48 42682014-04-25 Marek Polacek <polacek@redhat.com>
4269
4270 PR c/18079
4271 * c-decl.c (diagnose_mismatched_decls): Warn for mismatched
4272 always_inline/noinline and hot/cold attributes.
4273
adc93f31 42742014-04-25 Marek Polacek <polacek@redhat.com>
4275
4276 PR c/60114
4277 * c-parser.c (c_parser_initelt): Pass input_location to
4278 process_init_element.
4279 (c_parser_initval): Pass loc to process_init_element.
4280 * c-tree.h (process_init_element): Adjust declaration.
4281 * c-typeck.c (push_init_level): Pass input_location to
4282 process_init_element.
4283 (pop_init_level): Likewise.
4284 (set_designator): Likewise.
4285 (output_init_element): Add location_t parameter. Pass loc to
4286 digest_init.
4287 (output_pending_init_elements): Pass input_location to
4288 output_init_element.
4289 (process_init_element): Add location_t parameter. Pass loc to
4290 output_init_element.
4291
e1029911 42922014-04-24 Jakub Jelinek <jakub@redhat.com>
4293
4294 * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
4295 atomic-clause, allow comma in between atomic-clause and
4296 seq_cst.
4297
9f0a7bc6 42982014-04-22 Jakub Jelinek <jakub@redhat.com>
4299
4300 PR c/59073
4301 * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
4302 fails, don't set OM_PARALLEL_COMBINED and return NULL.
4303
094da06d 43042014-04-12 Igor Zamyatin <igor.zamyatin@intel.com>
4305
4306 PR middle-end/60469
4307 * c-array-notation.c (fix_builtin_array_notation_fn): Use
4308 create_tmp_var instead build_decl for creating temps.
4309 (build_array_notation_expr): Likewise.
4310 (fix_conditional_array_notations_1): Likewise.
4311 (fix_array_notation_expr): Likewise.
4312 (fix_array_notation_call_expr): Likewise.
4313
5a672e62 43142014-03-28 Jakub Jelinek <jakub@redhat.com>
4315
4316 PR c++/60689
4317 * c-tree.h (c_build_function_call_vec): New prototype.
4318 * c-typeck.c (build_function_call_vec): Don't call
4319 resolve_overloaded_builtin here.
4320 (c_build_function_call_vec): New wrapper function around
4321 build_function_call_vec. Call resolve_overloaded_builtin here.
4322 (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
4323 Call c_build_function_call_vec instead of build_function_call_vec.
4324 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
4325 * c-decl.c (finish_decl): Likewise.
4326
f40f5e0e 43272014-03-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
4328
4329 PR c/55383
4330 * c-typeck.c: Use correct format string in cast-qual warning
4331
9ec099a3 43322014-03-07 Thomas Schwinge <thomas@codesourcery.com>
4333
4334 * c-decl.c (c_decl_attributes): Use
4335 lang_hooks.types.omp_mappable_type.
4336 * c-typeck.c (c_finish_omp_clauses): Likewise.
4337
3bfdc94f 43382014-03-06 Marek Polacek <polacek@redhat.com>
4339
4340 PR c/60197
4341 * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
4342 of checking tree code.
4343
8f1128f8 43442014-02-19 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4345
4346 * c-parser.c (c_parser_declspecs): Replace call to error by error_at.
4347 (c_parser_parameter_declaration): Likewise.
4348
977b1853 43492014-02-19 Marek Polacek <polacek@redhat.com>
4350
4351 PR c/60195
4352 * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
4353 Call mark_exp_read on exp.value.
4354 (build_atomic_assign): Set TREE_NO_WARNING on val and old. Set
4355 TREE_ADDRESSABLE on old instead of val.
4356 (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
4357
825cd6ef 43582014-02-07 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
4359
4360 * c-parser.c (c_parser_get_builtin_args): Replace calls to
4361 C_EXPR_APPEND by vec_safe_push.
4362 * c-tree.h (C_EXPR_APPEND): Remove.
4363
ec761d5a 43642014-01-31 Marek Polacek <polacek@redhat.com>
4365
4366 PR c/59963
4367 * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
4368 build_function_call_vec.
4369 (build_function_call): Likewise.
4370 (build_atomic_assign): Likewise.
4371 (build_function_call_vec): Add arg_loc parameter. Use it.
4372 (convert_arguments): Likewise.
4373 (convert_for_assignment): Rename rhs_loc to expr_loc.
4374 * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
4375 (c_parser_objc_keywordexpr): Likewise.
4376 (c_parser_postfix_expression_after_primary): Call
4377 build_function_call_vec with expr_loc rather than op_loc.
4378 Call c_parser_expr_list to fill arg_loc. Pass arg_loc to
4379 build_function_call_vec.
4380 (c_parser_expr_list): Add locations parameter. Fill it with locations
4381 of function arguments.
4382 * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
4383
22a75734 43842014-01-30 Marek Polacek <polacek@redhat.com>
4385
4386 PR c/59940
4387 * c-typeck.c (build_function_call_vec): Use loc parameter.
4388 (convert_arguments): Add location parameter. Use it.
4389 (ep_convert_and_check): Likewise.
4390 (build_atomic_assign): Adjust convert_for_assignment call.
4391 (build_modify_expr): Likewise.
4392 (digest_init): Likewise.
4393 (c_finish_return): Likewise.
4394 (build_conditional_expr): Adjust ep_convert_and_check calls.
4395 (convert_for_assignment): Add rhs_loc parameter. Use it.
4396 (build_binary_op): Adjust convert_and_check and ep_convert_and_check
4397 calls.
4398
29f580ac 43992014-01-30 Richard Biener <rguenther@suse.de>
4400
4401 PR c/59905
4402 * c-typeck.c (build_function_call_vec): Do not replace calls
4403 to a function via an incompatible type with a runtime abort.
4404
a89e6c15 44052014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
4406
4407 * c-parser.c (c_parser_declaration_or_fndef): Replaced
4408 flag_enable_cilkplus with flag_cilkplus.
4409 (c_parser_direct_declarator_inner): Likewise.
4410 (c_parser_attribute_any_word): Likewise.
4411 (c_parser_attributes): Likewise.
4412 (c_parser_compound_statement): Likewise.
4413 (c_parser_statement_after_labels): Likewise.
4414 (c_parser_if_statement): Likewise.
4415 (c_parser_switch_statement): Likewise.
4416 (c_parser_do_statement): Likewise.
4417 (c_parser_for_statement): Likewise.
4418 (c_parser_unary_expression): Likewise.
4419 (c_parser_postfix_expression): Likewise.
4420 (c_parser_postfix_expression_after_primary): Likewise.
4421 (c_parser_postfix_expression_after_primary): Likewise.
4422 (c_parser_omp_clause_name): Likewise.
4423 (c_finish_omp_declare_simd): Likewise.
4424 (c_parser_cilk_verify_simd): Likewise.
4425 * c-typeck.c (build_array_ref): Likewise.
4426 (build_function_call_vec): Likewise.
4427 (convert_arguments): Likewise.
4428 (build_compound_expr): Likewise.
4429 (c_finish_return): Likewise.
4430 (c_finish_if_stmt): Likewise.
4431 (c_finish_loop): Likewise.
4432 (build_binary_op): Likewise.
4433
2623625f 44342014-01-23 Marek Polacek <polacek@redhat.com>
4435
4436 PR c/59846
4437 * c-typeck.c (parser_build_binary_op): Use location instead of
4438 input_location.
4439 (build_binary_op): Pass location to shorten_compare.
4440
46da3601 44412014-01-23 Marek Polacek <polacek@redhat.com>
4442
4443 PR c/58346
4444 * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
4445 an empty aggregate.
4446
9a9db3c1 44472014-01-23 Marek Polacek <polacek@redhat.com>
4448
4449 PR c/59871
4450 * c-typeck.c (build_compound_expr): Warn even for right-hand operand
4451 of a comma expression.
4452 (emit_side_effect_warnings): Likewise.
4453
69c9b607 44542014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
4455
4456 PR c/59825
4457 * c-array-notation.c (expand_array_notation_exprs): Rewrote this
4458 function to use walk_tree and moved a lot of its functionality to
4459 expand_array_notations.
4460 (expand_array_notations): New function.
4461
7e005ab5 44622014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
4463
4464 * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
4465 attribute an attribute without value.
4466
d6779b5f 44672014-01-23 Jakub Jelinek <jakub@redhat.com>
4468
4469 PR middle-end/58809
4470 * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
4471 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
4472
ec431042 44732014-01-22 Marek Polacek <polacek@redhat.com>
4474
4475 PR c/59891
4476 * c-typeck.c (build_conditional_expr): Call c_fully_fold instead
4477 of remove_c_maybe_const_expr on op1 and op2.
4478
1248c663 44792014-01-15 Jakub Jelinek <jakub@redhat.com>
4480
4481 PR c/58943
4482 * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
4483 effects, preevaluate rhs using SAVE_EXPR first.
4484
0bc789fc 44852014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
4486
4487 PR c++/59631
4488 * c-parser.c (c_parser_postfix_expression): Replaced consecutive if
4489 statements with if-elseif statements.
4490
6685d11c 44912014-01-06 Marek Polacek <polacek@redhat.com>
4492
4493 PR c/57773
4494 * c-decl.c (check_bitfield_type_and_width): Warn for implementation
4495 defined bit-field types only in ISO C.
4496
3aea1f79 44972014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
4498
4499 Update copyright years
4500
e4f22041 45012014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
4502
4503 * c-array-notation.c: Use the standard form for the copyright notice.
4504
74acc703 45052013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com>
4506
4507 * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
4508 (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
4509 field in parser is not empty. If not-empty, call the function
4510 c_parser_finish_omp_declare_simd.
4511 (c_parser_cilk_clause_vectorlength): Modified function to be shared
4512 between SIMD-enabled functions and #pragma simd. Added new parameter.
4513 (c_parser_cilk_all_clauses): Modified the usage of the function
4514 c_parser_cilk_clause_vectorlength as mentioned above.
4515 (c_parser_cilk_simd_fn_vector_attrs): New function.
4516 (c_finish_cilk_simd_fn_tokens): Likewise.
4517 (is_cilkplus_vector_p): Likewise.
4518 (c_parser_omp_clause_name): Added checking for "vectorlength,"
4519 "nomask," and "mask" strings in clause name.
4520 (c_parser_omp_all_clauses): Added 3 new case statements:
4521 PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
4522 PRAGMA_CILK_CLAUSE_NOMASK.
4523 (c_parser_attributes): Added a cilk_simd_fn_tokens parameter. Added a
4524 check for vector attribute and if so call the function
4525 c_parser_cilk_simd_fn_vector_attrs. Also, when Cilk plus is enabled,
4526 called the function c_finish_cilk_simd_fn_tokens.
4527 (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
4528 parser field is non-empty. If so, parse them as you would parse
4529 the omp declare simd pragma.
4530 (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
4531 Added a check when step is a parameter and flag it as error.
4532 (CILK_SIMD_FN_CLAUSE_MASK): New #define.
4533 (c_parser_cilk_clause_name): Changed pragma_cilk_clause to
4534 pragma_omp_clause.
4535
395dc01c 45362013-12-17 Thomas Schwinge <thomas@codesourcery.com>
4537
4538 * c-parser.c (c_parser_omp_parallel): Fix description.
4539
433e804e 45402013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com>
4541
4542 * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
4543 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
4544 (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
4545 * c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
4546
a179a7dc 45472013-12-04 Joseph Myers <joseph@codesourcery.com>
4548
4549 PR c/52023
4550 * c-parser.c (c_parser_alignas_specifier): Use
4551 c_sizeof_or_alignof_type instead of c_alignof.
4552 (c_parser_alignof_expression): Likewise, with min_alignof
4553 parameter depending on alignof spelling used.
4554
bdf1e3c7 45552013-12-04 Marek Polacek <polacek@redhat.com>
4556
4557 PR c/54113
4558 * c-decl.c (start_function): Don't warn for missing prototype for
4559 inline functions.
4560
05e8f674 45612013-12-03 Marek Polacek <polacek@redhat.com>
4562
4563 PR c/59351
4564 * c-decl.c (build_compound_literal): Allow compound literals with
4565 empty initial value.
4566
39f74d66 45672013-12-02 Joseph Myers <joseph@codesourcery.com>
4568
4569 PR c/58235
4570 * c-typeck.c (build_modify_expr): Diagnose assignment to
4571 expression with array type.
4572
f221adca 45732013-11-29 Joseph Myers <joseph@codesourcery.com>
4574
4575 PR c/42262
4576 * c-typeck.c (process_init_element): Do not treat a string as
4577 initializing a whole array when used with a designator for an
4578 individual element.
4579
75bce827 45802013-11-29 Joseph Myers <joseph@codesourcery.com>
4581
4582 PR c/57574
4583 * c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
4584 an inline function following a static declaration.
4585
dc133326 45862013-11-28 Jakub Jelinek <jakub@redhat.com>
4587
4588 PR c/59310
4589 * c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
4590 to p_name before calling c_parser_omp_teams instead of after.
4591 (c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
4592 argument. Remove unused p_name variable.
4593
d09768a4 45942013-11-27 Aldy Hernandez <aldyh@redhat.com>
4595 Jakub Jelinek <jakub@redhat.com>
4596
4597 * c-decl.c (c_builtin_function_ext_scope): Avoid binding if
4598 external_scope is NULL.
4599
73fd9cbe 46002013-11-27 Tom de Vries <tom@codesourcery.com>
4601 Marc Glisse <marc.glisse@inria.fr>
4602
4603 PR c++/59032
4604 * c-typeck.c (build_unary_op): Allow vector increment and decrement.
4605
bc61cadb 46062013-11-22 Andrew MacLeod <amacleod@redhat.com>
4607
4608 * c-typeck.c: Add required include files from gimple.h.
4609
3df42822 46102013-11-22 David Malcolm <dmalcolm@redhat.com>
4611
4612 * c-decl.c (define_label, shadow_tag_warned)
4613 (check_bitfield_type_and_width, grokdeclarator, grokparms,
4614 store_parm_decls_newstyle, store_parm_decls_oldstyle)
4615 (declspecs_add_type): Remove use of in_system_header macro.
4616 * c-parser.c (c_parser_unary_expression): Likewise.
4617 * c-typeck.c (store_init_value, process_init_element)
4618 (c_start_case): Likewise.
4619
4620 * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
4621 macro.
4622
4623 * c-parser.c (c_parser_set_source_position_from_token): Remove
4624 reference to in_system_header from comment.
4625
08f817b3 46262013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4627
4628 * c-decl.c (grokdeclarator): Update comment to refer to
4629 tree_to_[su]hwi rather than tree_low_cst.
4630
6a0712d4 46312013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4632
4633 * c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
4634 tree_to_uhwi throughout.
4635
fcb97e84 46362013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4637
4638 * c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
4639 throughout.
4640
35ec552a 46412013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4642
4643 * c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
4644 throughout.
4645
f2697631 46462013-11-15 Aldy Hernandez <aldyh@redhat.com>
4647
4648 * c-parser.c (c_parser_cilk_simd): New.
4649 (c_parser_cilk_verify_simd): New.
4650 (c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
4651 (c_parser_omp_for_loop): Add case for NE_EXPR.
4652 Set c_break_label for CILK_SIMD.
4653 (c_parser_cilk_clause_vectorlength): New.
4654 (c_parser_cilk_clause_linear): New.
4655 (c_parser_cilk_clause_name): New.
4656 (c_parser_cilk_all_clauses): New.
4657 * c-typeck.c (build_unary_op): Pass location argument to
4658 readonly_error.
4659 (build_modify_expr): Same.
4660 (build_asm_expr): Same.
4661 (c_finish_bc_stmt): Error on break/continue in loops.
4662
e795d6e1 46632013-11-14 Andrew MacLeod <amacleod@redhat.com>
4664
4665 * c-typeck.c: Include only gimplify.h and gimple.h as needed.
4666
9ed99284 46672013-11-14 Diego Novillo <dnovillo@google.com>
4668
4669 * c-decl.c: Include print-tree.h.
4670 Include stor-layout.h.
4671 Include varasm.h.
4672 Include attribs.h.
4673 Include stringpool.h.
4674 * c-lang.c: Include fold-const.h.
4675 * c-parser.c: Include stringpool.h.
4676 Include attribs.h.
4677 Include stor-layout.h.
4678 Include varasm.h.
4679 Include trans-mem.h.
4680 * c-typeck.c: Include stor-layout.h.
4681 Include trans-mem.h.
4682 Include varasm.h.
4683 Include stmt.h.
4684
4fba5eb9 46852013-11-13 Joseph Myers <joseph@codesourcery.com>
4686
4687 * c-tree.h (c_typespec_keyword): Add cts_auto_type.
4688 * c-decl.c (declspecs_add_type, finish_declspecs): Handle
4689 __auto_type.
4690 * c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
4691 (c_parser_attribute_any_word, c_parser_objc_selector): Handle
4692 RID_AUTO_TYPE.
4693 (c_parser_declspecs): Take argument AUTO_TYPE_OK.
4694 (c_parser_declaration_or_fndef, c_parser_struct_declaration)
4695 (c_parser_declarator, c_parser_direct_declarator_inner)
4696 (c_parser_parameter_declaration, c_parser_type_name): All callers
4697 changed.
4698 (c_parser_declaration_or_fndef): Handle declarations with type
4699 determined from the initializer.
4700
a8783bee 47012013-11-12 Andrew MacLeod <amacleod@redhat.com>
4702
e795d6e1 4703 * c-typeck.c: Include gimplify.h.
a8783bee 4704
d184e0c0 47052013-11-12 Joseph Myers <joseph@codesourcery.com>
4706
4707 * c-tree.h (struct c_declspecs): Add thread_gnu_p field.
4708 * c-parser.c (c_parser_declspecs): Mention _Thread_local in
4709 comment.
4710 * c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
4711 or _Thread_local as appropriate in diagnostics.
4712 (build_null_declspecs): Initialize ret->thread_gnu_p.
4713 (declspecs_add_scspec): Handle either __thread or _Thread_local
4714 for RID_THREAD. Diagnose _Thread_local for pre-C11 standards if
4715 pedantic. Do not disallow _Thread_local extern and _Thread_local
4716 static.
4717
b560fabd 47182013-11-07 Joseph Myers <joseph@codesourcery.com>
4719 Andrew MacLeod <amacleod@redhat.com>
4720
4721 * c-aux-info.c (gen_type): Handle atomic qualifier.
4722 * c-decl.c (validate_proto_after_old_defn): Do not remove atomic
4723 qualifiers when compating types.
4724 (shadow_tag_warned): Handle atomic_p in declspecs.
4725 (quals_from_declspecs): Likewise.
4726 (start_decl): Use c_type_promotes_to when promoting argument
4727 types.
4728 (grokdeclarator): Handle _Atomic.
4729 (get_parm_info): Diagnose any qualifier on "void" as only
4730 parameter.
4731 (store_parm_decls_oldstyle): Do not remove atomic qualifiers when
4732 comparing types. Use c_type_promotes_to when promoting argument
4733 types.
4734 (finish_function): Use c_type_promotes_to when promoting argument
4735 types.
4736 (build_null_declspecs): Handle atomic_p in declspecs.
4737 (declspecs_add_qual): Handle RID_ATOMIC.
4738 * c-parser.c (c_token_starts_typename, c_token_is_qualifier)
4739 (c_token_starts_declspecs): Handle RID_ATOMIC.
4740 (c_parser_declspecs): Handle atomic type specifiers and
4741 qualifiers.
4742 (c_parser_typeof_specifier): Remove const and _Atomic qualifiers
4743 from types of expressions with atomic type.
4744 (c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
4745 (c_parser_attribute_any_word): Handle RID_ATOMIC.
4746 (c_parser_initializer, c_parser_initelt, c_parser_initval)
4747 (c_parser_statement_after_labels, c_parser_switch_statement)
4748 (c_parser_for_statement, c_parser_expr_no_commas)
4749 (c_parser_conditional_expression, c_parser_binary_expression)
4750 (c_parser_cast_expression, c_parser_unary_expression)
4751 (c_parser_postfix_expression)
4752 (c_parser_postfix_expression_after_primary, c_parser_expression):
4753 Use convert_lvalue_to_rvalue.
4754 (c_parser_expression_conv, c_parser_expr_list): Document
4755 conversion of lvalues to rvalues. Use convert_lvalue_to_rvalue.
4756 (c_parser_objc_synchronized_statement): Use
4757 convert_lvalue_to_rvalue.
4758 (c_parser_objc_selector): Handle RID_ATOMIC.
4759 (c_parser_objc_receiver, c_parser_array_notation): Use
4760 convert_lvalue_to_rvalue.
4761 * c-tree.h (ctsk_typeof): Adjust comment to mention use for
4762 _Atomic (type-name).
4763 (struct c_declspecs): Add atomic_p field.
4764 (convert_lvalue_to_rvalue): Declare.
4765 * c-typeck.c (c_type_promotes_to): Promote atomic types to
4766 corresponding atomic types.
4767 (qualify_type): Don't add _Atomic qualifiers from second argument.
4768 (comp_target_types): Do not allow _Atomic mismatches.
4769 (type_lists_compatible_p): Do not remove atomic qualifiers when
4770 comparing types.
4771 (really_atomic_lvalue, convert_lvalue_to_rvalue)
4772 (build_atomic_assign): New functions.
4773 (build_unary_op): Use build_atomic_assign for atomic increment and
4774 decrement.
4775 (build_conditional_expr): Do not treat _Atomic void as a qualified
4776 version of void.
4777 (build_modify_expr): Use build_atomic_assign for atomic LHS.
4778 (find_anonymous_field_with_type, convert_to_anonymous_field)
4779 (convert_for_assignment): Do not remove atomic qualifiers when
4780 comparing types.
4781 (digest_init): Do not accept initialization of arrays of atomic
4782 elements by string constants.
4783 (build_asm_expr): Use convert_lvalue_to_rvalue.
4784 (build_binary_op): Do not treat _Atomic void as a qualified
4785 version of void.
4786
8b023e7c 47872013-11-06 DJ Delorie <dj@redhat.com>
4788
4789 * c-decl.c (locate_old_decl): If a previous conflicting decl is
4790 both explicit and builtin, print the location of the explicit one.
4791
c630ef93 47922013-11-05 Tobias Burnus <burnus@net-b.de>
4793
4794 * c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
4795 c_parser_omp_distribute, c_parser_omp_teams,
4796 c_parser_omp_target, c_parser_omp_declare): Handle
4797 -fopenmp-simd.
4798
2c4c3477 47992013-11-03 Marek Polacek <polacek@redhat.com>
4800
4801 * c-decl.c (grokdeclarator): Add VLA instrumentation.
4802
df205251 48032013-11-01 Jakub Jelinek <jakub@redhat.com>
4804
4805 * c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
4806 check_dup_generic at the end, unless remove is true.
4807 (c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
4808 remove = true;.
4809 (c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
4810
23871d0c 48112013-10-31 Jakub Jelinek <jakub@redhat.com>
4812
4813 * c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
4814 with decl that is not pointer nor array.
4815
d037099f 48162013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
4817
4818 * c-decl.c (finish_function): Added a call for insert_cilk_frame when
4819 a spawning function is found.
4820 * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
4821 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
4822 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
4823 * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
4824 case.
4825 (c_parser_postfix_expression): Added RID_CILK_SPAWN case.
4826 * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
4827 expr.
4828 (c_finish_return): Added a check to reject _Cilk_spawn in return
4829 expression.
4830 (build_cilk_spawn): New function.
4831 (build_cilk_sync): Likewise.
4832 * Makefile.in (c-decl.o): Added cilk.h in dependency list.
4833
4c90c04c 48342013-10-27 Tobias Burnus <burnus@net-b.de>
4835
4836 PR other/33426
4837 * c-parser.c (c_parser_while_statement, c_parser_while_statement,
4838 c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
4839 (c_parser_statement_after_labels): Update calls.
4840
48a972c8 48412013-10-24 Tobias Burnus <burnus@net-b.de>
4644b593 4842
4843 PR other/33426
4844 * c-parser.c (c_parser_pragma, c_parser_for_statement):
4845 Handle PRAGMA_IVDEP.
4846 (c_parser_statement_after_labels): Update call.
4847
12f86df0 48482013-10-24 Marek Polacek <polacek@redhat.com>
4849
4850 * c-parser.c (c_parser_struct_declaration): Add a comment.
4851 (c_parser_declarator): Don't allow _Alignas here.
4852
7740abd8 48532013-10-17 Andrew MacLeod <amacleod@redhat.com>
4854
4855 * c-parser.c: Include omp-low.h.
4856 * c-typeck.c: Likewise.
4857
43d03c23 48582013-10-17 Marek Polacek <polacek@redhat.com>
4859
4860 PR c/58267
4861 * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
4862 Document syntax of the array-declarator.
4863 (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
4864 are not permitted.
4865 (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
4866 (c_parser_struct_declaration): Likewise.
4867 (c_parser_declarator): Likewise.
4868 (c_parser_direct_declarator_inner): Likewise.
4869 (c_parser_parameter_declaration): Likewise.
4870 (c_parser_type_name): Likewise.
4871
bc7bff74 48722013-10-11 Jakub Jelinek <jakub@redhat.com>
4873
4874 * c-lang.h (current_omp_declare_target_attribute): New extern
4875 decl.
4876 * c-parser.c: Include c-lang.h.
4877 (struct c_parser): Change tokens to c_token *.
4878 Add tokens_buf field. Change tokens_avail type to unsigned int.
4879 (c_parser_consume_token): If parser->tokens isn't
4880 &parser->tokens_buf[0], increment parser->tokens.
4881 (c_parser_consume_pragma): Likewise.
4882 (enum pragma_context): Add pragma_struct and pragma_param.
4883 (c_parser_external_declaration): Adjust
4884 c_parser_declaration_or_fndef caller.
4885 (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
4886 argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
4887 Adjust recursive call.
4888 (c_parser_struct_or_union_specifier): Use pragma_struct instead
4889 of pragma_external.
4890 (c_parser_parameter_declaration): Use pragma_param instead of
4891 pragma_external.
4892 (c_parser_compound_statement_nostart, c_parser_label,
4893 c_parser_for_statement): Adjust
4894 c_parser_declaration_or_fndef callers.
4895 (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
4896 it through to c_parser_conditional_expression.
4897 (c_parser_conditional_expression): Add omp_atomic_lhs argument,
4898 pass it through to c_parser_binary_expression. Adjust recursive
4899 call.
4900 (c_parser_binary_expression): Remove prec argument, add
4901 omp_atomic_lhs argument instead. Always start from PREC_NONE, if
4902 omp_atomic_lhs is non-NULL and one of the arguments of toplevel
4903 binop matches it, use build2 instead of parser_build_binary_op.
4904 (c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
4905 PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
4906 PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
4907 Handle pragma_struct and pragma_param the same as pragma_external.
4908 (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
4909 (c_parser_omp_variable_list): Parse array sections for
4910 OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
4911 (c_parser_omp_clause_collapse): Fully fold collapse expression.
4912 (c_parser_omp_clause_reduction): Handle user defined reductions.
4913 (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
4914 c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
4915 c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
4916 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
4917 c_parser_omp_clause_depend, c_parser_omp_clause_map,
4918 c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
4919 c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
4920 c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
4921 (c_parser_omp_all_clauses): Add finish_p argument. Don't call
4922 c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
4923 (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
4924 present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms.
4925 (c_parser_omp_for_loop): Add CODE argument, pass it through
4926 to c_finish_omp_for. Change last argument to cclauses,
4927 and adjust uses to grab parallel clauses from the array of all
4928 the split clauses. Adjust c_parser_binary_expression,
4929 c_parser_declaration_or_fndef and c_finish_omp_for callers.
4930 (omp_split_clauses): New function.
4931 (c_parser_omp_simd): New function.
4932 (c_parser_omp_for): Add p_name, mask and cclauses arguments.
4933 Allow the function to be called also when parsing combined constructs,
4934 and call c_parser_omp_simd when parsing for simd.
4935 (c_parser_omp_sections_scope): If section-sequence doesn't start with
4936 #pragma omp section, require exactly one structured-block instead of
4937 sequence of statements.
4938 (c_parser_omp_sections): Add p_name, mask and cclauses arguments.
4939 Allow the function to be called also when parsing combined constructs.
4940 (c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
4941 Allow the function to be called also when parsing combined
4942 constructs.
4943 (c_parser_omp_taskgroup, c_parser_omp_cancel,
4944 c_parser_omp_cancellation_point, c_parser_omp_distribute,
4945 c_parser_omp_teams, c_parser_omp_target_data,
4946 c_parser_omp_target_update, c_parser_omp_target,
4947 c_parser_omp_declare_simd, c_finish_omp_declare_simd,
4948 c_parser_omp_declare_target, c_parser_omp_end_declare_target,
4949 c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
4950 (c_parser_omp_construct): Add p_name and mask vars. Handle
4951 PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
4952 PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel
4953 and c_parser_omp_sections callers.
4954 (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
4955 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
4956 OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
4957 (OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
4958 (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
4959 OMP_CLAUSE_DEPEND.
4960 (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
4961 OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
4962 OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
4963 OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
4964 OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
4965 * c-typeck.c: Include tree-inline.h.
4966 (c_finish_omp_cancel, c_finish_omp_cancellation_point,
4967 handle_omp_array_sections_1, handle_omp_array_sections,
4968 c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
4969 (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
4970 user defined reductions.
4971 (c_tree_equal): New function.
4972 * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
4973 c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
4974 c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
4975 c_check_omp_declare_reduction_r): New prototypes.
4976 * c-decl.c (current_omp_declare_target_attribute): New variable.
4977 (c_decl_attributes): New function.
4978 (start_decl, start_function): Use it instead of decl_attributes.
4979 (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
4980 c_omp_reduction_decl, c_omp_reduction_lookup,
4981 c_check_omp_declare_reduction_r): New functions.
4982
3ce7d1bd 49832013-09-25 Tom Tromey <tromey@redhat.com>
4984
4985 * Make-lang.in (c/gccspec.o): Remove.
4986 (CFLAGS-c/gccspec.o): New variable.
4987 (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
4988 (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
4989 (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
4990
96da1c1d 49912013-09-25 Tom Tromey <tromey@redhat.com>
4992
4993 * Make-lang.in (c/gccspec.o): Don't use subshell.
4994
1b309377 49952013-09-18 Marek Polacek <polacek@redhat.com>
4996
4997 PR sanitize/58443
4998 * c-typeck.c (build_binary_op): Properly honor -fsanitize options.
4999 Remove unnecessary check.
5000
05f893e1 50012013-09-18 Marek Polacek <polacek@redhat.com>
5002
5003 PR sanitizer/58411
5004 * c-typeck.c (build_binary_op): Don't sanitize function if it has the
5005 no_sanitize_undefined attribute.
5006
bda0b9d2 50072013-09-13 Kai Tietz <ktietz@redhat.com>
5008
5009 PR target/57848
5010 * c-decl.c (c_builtin_function_ext_scope): Remove
5011 wrong assumption that it is never called on prexisting
5012 symbol.
5013
73437615 50142013-09-08 Joern Rennecke <joern.rennecke@embecosm.com>
5015
5016 * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
5017
eaab24b9 50182013-09-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
5019
5020 * c-objc-common.c (c_tree_printer): Tidy.
5021
9e46467d 50222013-08-30 Marek Polacek <polacek@redhat.com>
5023
5024 * c-typeck.c (build_binary_op): Add division by zero and shift
5025 instrumentation.
5026
f8234178 50272013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
f9086116 5028 Joseph Myers <joseph@codesourcery.com>
f8234178 5029
c90a7d10 5030 PR c/35649
f8234178 5031 * c-typeck.c (c_common_type): Prefer double_type_node over
5032 other REAL_TYPE types with the same precision.
5033 (convert_arguments): Likewise.
5034
6f07f480 50352013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
5036
5037 * c-objc-common.c (c_tree_printer): Document the nature of the cast.
5038 (c_initialize_diagnostics): Call a destructor for the early printer.
5039
eed6bc21 50402013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
5041
5042 * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
5043 printer initialization.
5044
57717943 50452013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com>
eed6bc21 5046
57717943 5047 PR c/57490
5048 * c-array-notation.c (fix_conditional_array_notations_1): Added a
5049 check for truth values.
5050 (expand_array_notation_exprs): Added truth values case. Removed an
5051 unwanted else. Added for-loop to walk through subtrees in default
5052 case.
5053
a94db6b0 50542013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
5055
5056 * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
5057
e76163a9 50582013-07-23 Joseph Myers <joseph@codesourcery.com>
5059
5060 * c-parser.c (struct c_generic_association): Fix typo.
5061
7aa04c8d 50622013-07-23 Tom Tromey <tromey@redhat.com>
5063 Joseph Myers <joseph@codesourcery.com>
5064
5065 * c-parser.c (struct c_generic_association): New.
5066 (c_generic_association_d): New typedef.
5067 (c_parser_generic_selection): New function.
5068 (c_parser_postfix_expression): Handle RID_GENERIC.
5069
76bbe4ca 50702013-07-13 Jason Merrill <jason@redhat.com>
5071
5072 PR c++/57793
5073 * c-decl.c (finish_struct): Check for too-large class.
5074
21ebaa24 50752013-07-04 Joern Rennecke <joern.rennecke@embecosm.com>
f5298614 5076
5077 PR c/57821
5078 * c-typeck.c (set_init_index): When folding, check for index overflow.
5079
936c3081 50802013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
5081
5082 * c-parser.c (c_parser_array_notation): Removed rejection of array
5083 notations in an array of function pointers.
5084
50acebe0 50852013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com>
5086
5087 * c-array-notation.c (make_triplet_val_inv): New function.
5088 (create_cmp_incr): Likewise.
5089 (create_array_refs): Likewise.
5090 (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
5091 Also modularized common parts between functions and called the function.
5092 (build_array_notation_expr): Likewise.
5093 (fix_conditional_array_notations_1): Likewise.
5094 (fix_array_notation_expr): Likewise.
5095 (fix_array_notation_call_expr): Likewise.
5096
01e6cdb4 50972013-06-18 Marek Polacek <polacek@redhat.com>
5098
5099 PR c/57630
5100 * c-decl.c (check_for_loop_decls): Improve diagnostics messages.
5101
6a3adac6 51022013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com>
5103
5104 * c-array-notation.c (build_array_notation_expr): Reject array notation
5105 mismatch between LHS and RHS even inside a call_expr. Also, removed
5106 a couple while statements that were dead code.
5107
62aab3f3 51082013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
5109
5110 * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
5111 excessive precision expressions in function parameters. Also removed
5112 couple unwanted while statements.
5113
bfc83720 51142013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
5115
5116 * c-array-notation.c (expand_array_notation_exprs): Added
5117 ARRAY_NOTATION_REF case.
5118
09970d67 51192013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
5120
5121 * c-array-notation.c (length_mismatch_in_expr_p): Moved this
5122 function to c-family/array-notation-common.c.
5123 (is_cilkplus_reduce_builtin): Likewise.
5124 (find_rank): Likewise.
5125 (extract_array_notation_exprs): Likewise.
5126 (replace_array_notations): Likewise.
5127 (find_inv_trees): Likewise.
5128 (replace_inv_trees): Likewise.
5129 (contains_array_notation_expr): Likewise.
5130 (find_correct_array_notation_type): Likewise.
5131 (replace_invariant_exprs): Initialized additional_tcodes to NULL.
5132 (struct inv_list): Moved this to c-family/array-notation-common.c.
5133 * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
5134
6e13bc01 51352013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com>
5136
5137 * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
5138 reduction functions outside the for-loop. Added a check if the fundecl
5139 is non-NULL. Finally, removed an unwanted if-statement, and made the
5140 body unconditional.
5141
cc92dddc 51422013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
5143
5144 * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
5145 condition of the if-statement matches the rank of else-block and then-
5146 block when array notations are used.
5147 * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
5148 expression after the entire function body is parsed.
5149 (c_parser_expr_no_commas): Delayed creating array notation expressions
5150 to the end of function parsing.
5151 * c-array-notation.c (fix_conditional_array_notations_1): Expanded the
5152 whole if-statement instead of just the condition.
5153 (expand_array_notation_exprs): Added MODIFY_EXPR case.
5154
eddc63fd 51552013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
5156
5157 PR c/57474
5158 * c-array-notation.c (build_array_notation_expr): Initialized rhs_length
5159 array to NULL_TREE if they are unused. Also added a check for the
5160 field to be NULL before its fields are used in future.
5161
a2115a4a 51622013-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5163
5164 PR bootstrap/57450
5165 * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
5166 (build_array_notation_expr): Likewise.
5167
3c6d4197 51682013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
5169
5170 * c-typeck.c (build_array_ref): Added a check to see if array's
5171 index is greater than one. If true, then emit an error.
5172 (build_function_call_vec): Exclude error reporting and checking
5173 for builtin array-notation functions.
5174 (convert_arguments): Likewise.
5175 (c_finish_return): Added a check for array notations as a return
5176 expression. If true, then emit an error.
5177 (c_finish_loop): Added a check for array notations in a loop
5178 condition. If true then emit an error.
5179 (lvalue_p): Added a ARRAY_NOTATION_REF case.
5180 (build_binary_op): Added a check for array notation expr inside
5181 op1 and op0. If present, we call another function to find correct
5182 type.
5183 * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
5184 * c-parser.c (c_parser_compound_statement): Check if array
5185 notation code is used in tree, if so, then transform them into
5186 appropriate C code.
5187 (c_parser_expr_no_commas): Check if array notation is used in LHS
5188 or RHS, if so, then build array notation expression instead of
5189 regular modify.
5190 (c_parser_postfix_expression_after_primary): Added a check for
5191 colon(s) after square braces, if so then handle it like an array
5192 notation. Also, break up array notations in unary op if found.
5193 (c_parser_direct_declarator_inner): Added a check for array
5194 notation.
5195 (c_parser_compound_statement): Added a check for array notation in
5196 a stmt. If one is present, then expand array notation expr.
5197 (c_parser_if_statement): Likewise.
5198 (c_parser_switch_statement): Added a check for array notations in
5199 a switch statement's condition. If true, then output an error.
5200 (c_parser_while_statement): Similarly, but for a while.
5201 (c_parser_do_statement): Similarly, but for a do-while.
5202 (c_parser_for_statement): Similarly, but for a for-loop.
5203 (c_parser_unary_expression): Check if array notation is used in a
5204 pre-increment or pre-decrement expression. If true, then expand
5205 them.
5206 (c_parser_array_notation): New function.
5207 * c-array-notation.c: New file.
5208 * c-tree.h (is_cilkplus_reduce_builtin): Protoize.
5209
2c1c8a2c 52102013-05-23 Mike Stump <mikestump@comcast.net>
5211
5212 * c-typeck.c (convert_for_assignment): Handle references to memory
5213 spaces better.
5214
be5f9e46 52152013-05-16 Jason Merrill <jason@redhat.com>
5216
5217 * Make-lang.in (cc1$(exeext)): Use link mutex.
5218
9205a6cc 52192013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
5220
5221 * c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
5222 to simply use OPT_Wpointer_arith.
5223 (build_unary_op): Likewise.
5224
0b049e15 52252013-04-03 Jakub Jelinek <jakub@redhat.com>
5226
5227 PR c/19449
5228 * c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
5229 argument. If set, or it temporarily for parsing of the first
5230 argument into force_folding_builtin_constant_p.
5231 (c_parser_postfix_expression): Adjust callers.
5232
8e966116 52332013-03-21 Richard Biener <rguenther@suse.de>
5234
5235 * c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
5236 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
5237
b862f263 52382013-02-12 Marek Polacek <polacek@redhat.com>
5239
5240 PR c/44938
5241 * c-parser.c (c_parser_postfix_expression_after_primary): Initialize
5242 origtypes to NULL.
5243
54550ecb 52442013-01-24 Jakub Jelinek <jakub@redhat.com>
5245
5246 PR c/56078
5247 * c-typeck.c (set_nonincremental_init_from_string): If
5248 constructor_max_index is NULL, treat it as if tree_int_cst_lt
5249 returned false.
5250 (process_init_element): Likewise.
5251
035b65e2 52522012-12-20 Jakub Jelinek <jakub@redhat.com>
5253
5254 PR c++/55619
5255 * c-parser.c (c_parser_asm_operands): Remove CONVERT_P
5256 argument, don't call default_function_array_conversion
5257 nor c_fully_fold here.
5258 (c_parser_asm_statement): Adjust callers.
5259 * c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
5260 and outputs here, and call default_function_array_conversion
5261 on inputs that don't need to be addressable.
5262
7cbb7f1a 52632012-12-18 Jakub Jelinek <jakub@redhat.com>
5264
5265 PR c/39464
5266 * c-typeck.c (convert_for_assignment): For -Wpointer-sign
5267 warning require that both c_common_unsigned_type as well as
5268 c_common_signed_type is the same for both mvl and mvr types.
5269
f1f41a6c 52702012-11-16 Diego Novillo <dnovillo@google.com>
5271
5272 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
5273
5274 * c-common.c: Use new vec API in vec.h.
5275 * c-common.h: Likewise.
5276 * c-gimplify.c: Likewise.
5277 * c-pragma.c: Likewise.
5278 * c-pretty-print.c: Likewise.
5279 * c-pretty-print.h: Likewise.
5280 * c-semantics.c: Likewise.
5281 * c-decl.c: Likewise.
5282 * c-parser.c: Likewise.
5283 * c-tree.h: Likewise.
5284 * c-typeck.c: Likewise.
5285
8b447d3f 52862012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
5287
5288 PR c++/54930
5289 * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.
5290
08fc5390 52912012-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
5292
5293 PR c/53066
5294 * c-decl.c (warn_if_shadowing): Do not warn if a variable
5295 shadows a function, unless the variable is a function or a
5296 pointer-to-function.
5297
57f872a2 52982012-10-12 Jakub Jelinek <jakub@redhat.com>
5299
5300 PR c/54381
5301 * c-parser.c (struct c_tree_loc_pair): Removed.
5302 (c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
5303 add location_t * and tree * arguments, fill in array of 3
5304 sizeof_arg trees and corresponding locs.
5305 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust
5306 c_parser_expr_list callers.
5307 (c_parser_postfix_expression_after_primary): Likewise. Pass
5308 array of 3 sizeof_arg trees and locs (corresponding to first
5309 3 arguments) to sizeof_pointer_memaccess_warning.
5310
d1455aa3 53112012-10-09 Lawrence Crowl <crowl@google.com>
5312
5313 * Make-lang.in (c-decl.o): Add dependence on hash-table.h.
5314 * c-decl.c (detect_field_duplicates_hash): Change to new type-safe
5315 hash table.
5316
b0e7825e 53172012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
5318
5319 PR c++/54194
5320 * c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
5321 call.
5322
41ed701a 53232012-10-09 Marc Glisse <marc.glisse@inria.fr>
5324
5325 PR c++/54427
5326 * c-typeck.c: Include c-common.h.
5327 (enum stv_conv): Moved to c-common.h.
5328 (scalar_to_vector): Moved to c-common.c.
5329 (build_binary_op): Adapt to scalar_to_vector's new prototype.
5330 * Make-lang.in: c-typeck.c depends on c-common.h.
5331
ef34afc1 53322012-10-04 Arnaud Charlet <charlet@adacore.com>
5333
5334 * c-decl.c (c_write_global_declarations): Fix handling of
5335 -fdump-ada-spec*.
5336
7bd765d4 53372012-09-30 Sharad Singhai <singhai@google.com>
5338
5339 * c-decl.c (c_write_global_declarations): Use a different method
5340 to determine if the dump has ben initialized.
5341
c4b1a13a 53422012-09-14 Joseph Myers <joseph@codesourcery.com>
5343
5344 PR c/54552
5345 * c-typeck.c (c_cast_expr): When casting to a type requiring
5346 C_MAYBE_CONST_EXPR to be created, pass the inner expression to
5347 c_fully_fold first.
5348
bb554051 53492012-09-14 Joseph Myers <joseph@codesourcery.com>
5350
5351 PR c/54103
5352 * c-typeck.c (build_unary_op): Pass original argument of
5353 TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
5354 any C_MAYBE_CONST_EXPR, if it has integer operands.
5355 (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
5356 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
5357 to c_objc_common_truthvalue_conversion, then remove any
5358 C_MAYBE_CONST_EXPR, if they have integer operands. Use
5359 c_objc_common_truthvalue_conversion not
5360 c_common_truthvalue_conversion.
5361 (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
5362 call note_integer_operands for arguments with integer operands
5363 that are not integer constants.
5364
c708c6ef 53652012-09-13 Jakub Jelinek <jakub@redhat.com>
5366
5367 PR c/54559
5368 * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
5369 COMPLEX_TYPE with in_late_binary_op set temporarily to true.
5370
cce20430 53712012-08-31 Jakub Jelinek <jakub@redhat.com>
5372
5373 PR c/54428
5374 * c-convert.c (convert): Don't call fold_convert_loc if
5375 TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
5376 is a COMPLEX_EXPR. Remove TYPE_MAIN_VARIANT check from
5377 COMPLEX_TYPE -> COMPLEX_TYPE conversion.
5378
a90d57ed 53792012-08-24 Jakub Jelinek <jakub@redhat.com>
5380
5381 PR c/54355
5382 * c-decl.c (c_parser_label): Pass true as nested and fix up comments
5383 for nested and empty_ok arguments in the call to
5384 c_parser_declaration_or_fndef.
5385
f003f5dc 53862012-08-17 Jakub Jelinek <jakub@redhat.com>
5387
5388 * c-tree.h (c_last_sizeof_arg): Declare.
5389 * c-parser.c (struct c_tree_loc_pair): New type.
5390 (c_parser_expr_list): Add sizeof_arg argument. Fill it in if
5391 non-NULL.
5392 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
5393 (c_parser_postfix_expression_after_primary): Likewise. Call
5394 sizeof_pointer_memaccess_warning if needed.
5395 (sizeof_ptr_memacc_comptypes): New function.
5396 * c-typeck.c (c_last_sizeof_arg): New global variable.
5397 (c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
5398
a5656b73 53992012-07-24 Uros Bizjak <ubizjak@gmail.com>
5400
5401 * c-lang.h (lang_decl): Add variable_size GTY option.
5402
b9ed1410 54032012-07-16 Steven Bosscher <steven@gcc.gnu.org>
5404
5405 * c-decl.c: Include dumpfile.h instead of tree-dump.h.
5406 * Make-lang.in: Fix dependencies.
5407
e53d55e7 54082012-06-29 Steven Bosscher <steven@gcc.gnu.org>
5409
5410 * Make-lang.in: New file, rules migrated from gcc/Makefile.in
5411 and add language Makefile hooks.
5412 * config-lang.in: New file.
5413 * c-config-lang.in: Moved from gcc/config-lang.in to here, and
5414 add the required "normal" config-lang.in rules.
5415 * c-lang.h: Moved from gcc/ to here.
5416 * c-tree.h: Likewise.
5417 * c-objc-common.c: Likewise.
5418 * c-objc-common.h: Likewise.
5419 * c-typeck.c: Likewise.
5420 * c-convert.c: Likewise.
5421 * c-lang.c: Likewise.
5422 * c-aux-info.c: Likewise.
5423 * c-errors.c: Likewise.
5424 * gccspec.c: Likewise.
5425 * c-decl.c: Likewise. Include gt-c-c-decl.h, not gt-c-decl.h.
5426 * c-parser.c: Likewise. Include gt-c-c-parser.h, not gt-c-parser.h.
5427\f
8e8f6434 5428Copyright (C) 2012-2018 Free Software Foundation, Inc.
e53d55e7 5429
5430Copying and distribution of this file, with or without modification,
5431are permitted in any medium without royalty provided the copyright
5432notice and this notice are preserved.