]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c/ChangeLog
2016-10-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
[thirdparty/gcc.git] / gcc / c / ChangeLog
CommitLineData
30ac4925 12016-10-07 Bernd Schmidt <bschmidt@redhat.com>
2
3 PR c++/69733
4 * c-decl.c (smallest_type_quals_location): New static function.
5 (grokdeclarator): Try to find the correct location for an ignored
6 qualifier.
7
3c77f69c 82016-09-26 Marek Polacek <polacek@redhat.com>
9
10 PR c/7652
11 * c-decl.c (pop_scope): Add gcc_fallthrough.
12
132016-09-26 Marek Polacek <polacek@redhat.com>
14
15 PR c/7652
16 * c-parser.c (struct c_token): Add flags field.
17 (c_lex_one_token): Pass it to c_lex_with_flags.
18 (c_parser_declaration_or_fndef): Turn __attribute__((fallthrough));
19 into IFN_FALLTHROUGH.
20 (c_parser_label): Set FALLTHROUGH_LABEL_P on labels. Handle
21 attribute fallthrough after a case label or default label.
22 (c_parser_statement_after_labels): Handle RID_ATTRIBUTE.
23
481ce481 242016-09-24 Marek Polacek <polacek@redhat.com>
25
26 PR c/77490
27 * c-typeck.c (build_unary_op): Warn about bit not on expressions that
28 have boolean value. Warn about ++/-- on booleans.
29
16fb756f 302016-09-23 Jakub Jelinek <jakub@redhat.com>
31
32 * c-parser.c (incomplete_record_decls): Remove unnecessary
33 = vNULL initialization of file scope vec.
34
d80c1c6c 352016-09-16 Marek Polacek <polacek@redhat.com>
36
37 * c-typeck.c (lvalue_p): Use true and false instead of 1 and 0.
38
b99cc6da 392016-09-14 Marek Polacek <polacek@redhat.com>
40
41 * c-array-notation.c (create_cmp_incr): Use false instead of 0.
42 (fix_array_notation_expr): Likewise.
43 * c-decl.c (finish_decl): Likewise.
44 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
45 * c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
46 (function_to_pointer_conversion): Use false instead of 0.
47 (convert_lvalue_to_rvalue): Likewise.
48 (parser_build_unary_op): Likewise.
49 (build_atomic_assign): Likewise.
50 (build_unary_op): Change nonconvert parameter type to bool, use
51 true/false instead of 1/0.
52 (build_binary_op): Use true instead of 1.
53
68ef907c 542016-09-13 David Malcolm <dmalcolm@redhat.com>
55
56 * c-parser.c (c_parser_declaration_or_fndef): Update for renaming
57 of add_fixit_insert to add_fixit_insert_before.
58
89bcb5a3 592016-09-13 Marek Polacek <polacek@redhat.com>
60
61 * c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT. Use
62 it.
63
7a21b590 642016-09-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
65
66 PR c++/77496
67 * c-parser.c (c_parser_conditional_expression): Pass the rightmost
68 COMPOUND_EXPR to warn_for_omitted_condop.
69
3da97ff7 702016-09-07 David Malcolm <dmalcolm@redhat.com>
71
72 * c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
73 c_get_substring_location for this new langhook.
74
0b80c4b2 752016-09-02 Jakub Jelinek <jakub@redhat.com>
76
77 PR c/65467
78 * c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
79 flag_openmp.
80 (c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
81 instead of mark_exp_read on low_bound/length expression.
82 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
83 c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
84 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
85 c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
86 c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
87 c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
88 c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
89 c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
90 c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
91 c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
92 instead of mark_expr_read.
93 (c_parser_omp_declare_reduction): Reject _Atomic qualified types.
94 * c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
95 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
96 * c-tree.h (c_omp_clause_copy_ctor): New prototype.
97 * c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
98 array section bases outside of depend clause, for depend clause
99 use convert_lvalue_to_rvalue on the base.
100 (c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
101 linear, aligned, map, to and from clauses.
102 (c_omp_clause_copy_ctor): New function.
103
c7afb782 1042016-09-01 Marek Polacek <polacek@redhat.com>
105
106 PR c/7652
107 * c-typeck.c (composite_type): Add FALLTHRU comment.
108
986530da 1092016-08-31 David Malcolm <dmalcolm@redhat.com>
110
111 * c-parser.c (c_parser_declaration_or_fndef): Add trailing space
112 to the insertion fixits for "struct", "union", and "enum".
113
850c2009 1142016-08-30 David Malcolm <dmalcolm@redhat.com>
115
116 * c-decl.c (implicit_decl_warning): Use add_fixit_replace
117 rather than add_fixit_misspelled_id.
118 (undeclared_variable): Likewise.
119 * c-parser.c (c_parser_declaration_or_fndef): Likewise. Remove
120 now-redundant "here" params from add_fixit_insert method calls.
121 (c_parser_parameter_declaration): Likewise.
122 * c-typeck.c (build_component_ref): Remove now-redundant range
123 param from add_fixit_replace method calls.
124
c4963714 1252016-08-25 Marek Polacek <polacek@redhat.com>
126
127 * c-typeck.c (parser_build_binary_op): Pass LHS to
128 warn_logical_not_parentheses.
129
49e1f4eb 1302016-08-25 Marek Polacek <polacek@redhat.com>
131
132 PR c/77323
133 * c-decl.c (declspecs_add_type): Set typespec_word even when __intN
134 or _FloatN or _FloatNx is not supported.
135 (finish_declspecs): Set type to integer_type_node when _FloatN or
136 _FloatNx is not supported.
137
82c85aba 1382016-08-19 Joseph Myers <joseph@codesourcery.com>
139
140 PR c/32187
141 * c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
142 (struct c_declspecs): Add field floatn_nx_idx.
143 * c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
144 and _FloatNx type specifiers.
145 * c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
146 (c_parser_declspecs, c_parser_attribute_any_word)
147 (c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
148 * c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
149 (convert_arguments): Avoid promoting _FloatN and _FloatNx types
150 narrower than double.
151
7175bb2a 1522016-08-12 Jakub Jelinek <jakub@redhat.com>
153 Martin Liska <mliska@suse.cz>
154
155 PR c/67410
156 * c-typeck.c (set_nonincremental_init_from_string): Use / instead of
157 % to determine val element to change. Assert that
158 wchar_bytes * charwidth fits into val array.
159
e3533433 1602016-08-12 Marek Polacek <polacek@redhat.com>
161
162 PR c/7652
163 * c-parser.c (c_parser_external_declaration): Add FALLTHRU.
164 (c_parser_postfix_expression): Likewise.
165 * c-typeck.c (build_unary_op): Adjust fall through comment.
166 (c_mark_addressable): Likewise.
167
74be5bc1 1682016-08-11 Jakub Jelinek <jakub@redhat.com>
169
170 PR c/72816
171 * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
172 array member through typedef, for orig_qual_indirect == 0 clear
173 orig_qual_type.
174
7af4d06b 1752016-08-08 David Malcolm <dmalcolm@redhat.com>
176
177 PR c/64955
178 * c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
179 this up to selftest::run_c_tests.
180 (selftest::run_c_tests): New function.
181
5f429ee2 1822016-08-04 Thomas Schwinge <thomas@codesourcery.com>
183
1fa5d8ba 184 * c-parser.c (struct oacc_routine_data): Add error_seen and
185 fndecl_seen members.
186 (c_finish_oacc_routine): Use these.
187 (c_parser_declaration_or_fndef): Adjust.
188 (c_parser_oacc_routine): Likewise. Support more C language
189 constructs, and improve diagnostics. Move pragma context
190 checking...
191 (c_parser_pragma): ... here.
192
5f429ee2 193 * c-parser.c (struct oacc_routine_data): New.
194 (c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
195 Simplify code.
196 (c_finish_oacc_routine): Likewise. Don't attach clauses to "omp
197 declare target" attribute.
198
f3c032a4 1992016-08-01 Jan Beulich <jbeulich@suse.com>
200
201 * c-fold.c (c_fully_fold_internal): Also emit shift count
202 warnings for vector types.
203 * c-typeck.c (build_binary_op): Likewise.
204
4ebf85be 2052016-07-29 Marek Polacek <polacek@redhat.com>
206
207 PR c/71742
208 * c-decl.c (finish_struct): Rephrase an error message.
209
9efe5be6 210 PR c/71853
211 * c-parser.c (c_parser_switch_statement): Initialize ce.original_type
212 to error node for invalid code.
213
4c4548bb 214 PR c/71573
215 * c-decl.c (implicitly_declare): Return decl early not only for
216 error_mark_nodes, but for anything that is not a FUNCTION_DECL.
217
322d4184 2182016-07-29 Jakub Jelinek <jakub@redhat.com>
219
220 PR c/71969
221 * c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
222 on GNU extern inline functions.
223
35fddbd6 2242016-07-29 Marek Polacek <polacek@redhat.com>
225
226 PR c/71583
227 * c-parser.c (c_parser_postfix_expression_after_paren_type): Also
228 check expr.value.
229
59c1507a 2302016-07-22 Uros Bizjak <ubizjak@gmail.com>
231
232 * c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
233
d0f11d68 2342016-07-20 David Malcolm <dmalcolm@redhat.com>
235
236 * c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
237 spellcheck-tree.h
238 (best_macro_match): Likewise, converting from a typedef to a
239 subclass.
240 (find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
241 (lookup_name_fuzzy): Update for change of best_macro_match to a
242 subclass with a ctor that calls cpp_forall_identifiers.
243
d208f6e6 2442016-07-20 David Malcolm <dmalcolm@redhat.com>
245
246 * c-decl.c (implicit_decl_warning): Update for conversion of
247 return type of lookup_name_fuzzy to const char *.
248 (undeclared_variable): Likewise.
249 (lookup_name_fuzzy): Convert return type from tree to
250 const char *.
251 * c-parser.c (c_parser_declaration_or_fndef): Update for
252 conversion of return type of lookup_name_fuzzy to const char *.
253 (c_parser_parameter_declaration): Likewise.
254
0ef9358d 2552016-07-15 Cesar Philippidis <cesar@codesourcery.com>
256
257 * c-parser.c (c_parser_oacc_declare): Don't scan for
258 GOMP_MAP_POINTER.
259 * c-typeck.c (handle_omp_array_sections): Mark data clauses with
260 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
261 zero-length subarrays.
262
0dd7db3b 2632016-07-15 Jakub Jelinek <jakub@redhat.com>
264
265 PR c/71858
266 * c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
267 instead of FUZZY_LOOKUP_NAME.
268 (lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
269 FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.
270
28413b15 2712016-07-14 Jakub Jelinek <jakub@redhat.com>
272
273 PR c/71858
274 * c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.
275
e9258aee 2762016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
277
278 * c-parser.c (c_parser_generic_selection): Make type of variable
279 auto_vec.
280 (c_parser_omp_declare_simd): Likewise.
281
57f91a55 2822016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
283
284 * c-decl.c (struct c_struct_parse_info): Change member types
285 from vec to auto_vec.
286 (start_struct): Adjust.
287 (finish_struct): Likewise.
288
c364d0f3 2892016-07-02 Jakub Jelinek <jakub@redhat.com>
290
291 PR c/71719
292 * c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
293
44e775d8 2942016-06-29 Thomas Schwinge <thomas@codesourcery.com>
295
296 * c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
297 Move pragma context checking into...
298 (c_parser_omp_cancellation_point): ... here, and improve
299 diagnostic messages.
300 * c-typeck.c (c_finish_omp_cancel)
301 (c_finish_omp_cancellation_point): Improve diagnostic messages.
302
1af10ce6 3032016-06-29 Jakub Jelinek <jakub@redhat.com>
304
305 PR c/71685
306 * c-typeck.c (c_build_qualified_type): Don't clear
307 C_TYPE_INCOMPLETE_VARS for the main variant.
308
3092016-06-28 Martin Sebor <msebor@redhat.com>
9c3ffbcb 310
311 PR c/71552
312 * c-typeck.c (output_init_element): Diagnose incompatible types
313 before non-constant initializers.
314
6eb2402f 3152016-06-28 Jakub Jelinek <jakub@redhat.com>
316
317 * Make-lang.in: Don't cat ../stage_current if it does not exist.
318
b4c71cbb 3192016-06-23 Andi Kleen <ak@linux.intel.com>
320
321 * Make-lang.in: Add support for autofdo.
322
8469aece 3232016-06-22 David Malcolm <dmalcolm@redhat.com>
324
325 PR c/70339
326 * c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
327 (implicit_decl_warning): When issuing warnings for implicit
328 declarations, attempt to provide a suggestion via
329 lookup_name_fuzzy.
330 (undeclared_variable): Likewise when issuing errors.
331 (lookup_name_in_scope): Likewise.
332 (struct edit_distance_traits<cpp_hashnode *>): New struct.
333 (best_macro_match): New typedef.
334 (find_closest_macro_cpp_cb): New function.
335 (lookup_name_fuzzy): New function.
336 * c-parser.c: Include gcc-rich-location.h.
337 (c_token_starts_typename): Split out case CPP_KEYWORD into...
338 (c_keyword_starts_typename): ...this new function.
339 (c_parser_declaration_or_fndef): When issuing errors about
340 missing "struct" etc, add a fixit. For other kinds of errors,
341 attempt to provide a suggestion via lookup_name_fuzzy.
342 (c_parser_parms_declarator): When looking ahead to detect typos in
343 type names, also reject CPP_KEYWORD.
344 (c_parser_parameter_declaration): When issuing errors about
345 unknown type names, attempt to provide a suggestion via
346 lookup_name_fuzzy.
347 * c-tree.h (c_keyword_starts_typename): New prototype.
348
e218d07f 3492016-06-20 Joseph Myers <joseph@codesourcery.com>
350
351 PR c/71601
352 * c-typeck.c (build_conditional_expr): Return error_mark_node if
353 c_common_type returns error_mark_node.
354
92a44a68 3552016-06-19 Martin Sebor <msebor@redhat.com>
21897f47 356
357 PR c/69507
358 * c-parser.c (c_parser_alignof_expression): Avoid diagnosing
359 __alignof__ (expression).
360
f0d77991 3612016-06-14 David Malcolm <dmalcolm@redhat.com>
362
363 * c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h.
364
2a990300 3652016-06-14 David Malcolm <dmalcolm@redhat.com>
366
367 * c-typeck.c (build_component_ref): Simplify fixit code by
368 using gcc_rich_location::add_fixit_misspelled_id.
369 (set_init_label): Likewise.
370
527790c1 3712016-06-13 David Malcolm <dmalcolm@redhat.com>
372
373 * c-parser.c (c_parser_initelt): Provide location of name for new
374 location_t param of set_init_label.
375 * c-tree.h (set_init_label): Add location_t param.
376 * c-typeck.c (set_init_index): Add "fieldname_loc" location_t
377 param and use it when issuing error messages about unrecognized
378 field names. Attempt to provide a fixit hint if appropriate,
379 otherwise update the error message to provide the type name.
380
ccfa030f 3812016-06-10 Thomas Schwinge <thomas@codesourcery.com>
382
383 PR c/71381
384 * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
385 Loosen checking.
386
732905bb 3872016-06-08 Martin Sebor <msebor@redhat.com>
388 Jakub Jelinek <jakub@redhat.com>
389
390 PR c++/70507
391 PR c/68120
392 * c-typeck.c (convert_arguments): Don't promote last argument
393 of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
394
bafc7b1d 3952016-06-08 Marek Polacek <polacek@redhat.com>
396
397 PR c/71418
398 * c-decl.c (grokdeclarator): Check TYPE_P.
399
06e590e7 400 PR c/71426
401 * c-decl.c (get_parm_info): Don't crash on an assert on invalid
402 code.
403
7cfde92a 4042016-06-07 David Malcolm <dmalcolm@redhat.com>
405
406 * c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
407 and structure element reference, capture the location of the
408 element name token and pass it to build_component_ref.
409 (c_parser_postfix_expression_after_primary): Likewise for
410 structure element dereference.
411 (c_parser_omp_variable_list): Likewise for
412 OMP_CLAUSE_{_CACHE, MAP, FROM, TO},
413 * c-tree.h (build_component_ref): Add location_t param.
414 * c-typeck.c (build_component_ref): Add location_t param
415 COMPONENT_LOC. Use it, if available, when issuing hints about
416 mispelled member names to provide a fixit replacement hint.
417
61f1f80c 4182016-06-06 Marek Polacek <polacek@redhat.com>
419
420 PR c/71362
421 * c-parser.c (c_parser_direct_declarator): Set location.
422
e4b92538 4232016-06-06 Marek Polacek <polacek@redhat.com>
424
425 * c-typeck.c (comptypes_internal): Handle comparisons of
426 INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes. Don't check
427 TYPE_REF_CAN_ALIAS_ALL.
428
2234363c 4292016-06-03 Chung-Lin Tang <cltang@codesourcery.com>
430
431 * c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
432 arguments as addressable when async clause exists.
433
b6431756 4342016-05-30 Jakub Jelinek <jakub@redhat.com>
435
436 PR c++/71349
437 * c-parser.c (c_parser_omp_for): Don't disallow nowait clause
438 when combined with target construct.
439
6feab9ce 4402016-05-26 Jakub Jelinek <jakub@redhat.com>
441
442 * c-parser.c (c_parser_omp_clause_schedule): Warn if
443 OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
444
2c995da9 4452016-05-25 Marek Polacek <polacek@redhat.com>
446
447 PR c/71265
448 * c-decl.c (c_make_fname_decl): Don't check seen_error.
449
abfbb5b5 450 PR c/71266
451 * c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.
452
6d6a3fc3 4532016-05-24 Cesar Philippidis <cesar@codesourcery.com>
454
455 * c-parser.c (c_parser_oacc_declare): Add support for
456 GOMP_MAP_FIRSTPRIVATE_POINTER.
457 * c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
458 argument with enum c_omp_region_type ort.
459 (handle_omp_array_sections): Likewise. Update call to
460 handle_omp_array_sections_1.
461 (c_finish_omp_clauses): Add specific errors and warning messages for
462 OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update
463 call to handle_omp_array_sections.
464
c9d624bd 4652016-05-24 Thomas Schwinge <thomas@codesourcery.com>
466
467 * c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
468
7345b977 4692016-05-24 Richard Biener <rguenther@suse.de>
470
471 PR middle-end/70434
472 PR c/69504
473 * c-typeck.c (build_array_ref): Do not complain about indexing
474 non-lvalue vectors. Adjust for function name change.
475
8bdfbc08 4762016-05-20 Martin Sebor <msebor@redhat.com>
477
478 PR c/71115
479 * c-typeck.c (error_init): Use
480 expansion_point_location_if_in_system_header.
481 (warning_init): Same.
482
97c71d71 4832016-05-19 David Malcolm <dmalcolm@redhat.com>
484
485 PR c/71171
486 * c-parser.c (c_parser_generic_selection): Use c_expr::set_error
487 in error-handling.
488 (c_parser_postfix_expression): Likewise.
489 * c-tree.h (c_expr::set_error): New method.
490 * c-typeck.c (parser_build_binary_op): In error-handling, ensure
491 that result's range is initialized.
492
e68d7b49 4932016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
494
495 * c-typeck.c (parser_build_unary_op): Fix formatting.
496
624115b4 4972016-05-16 Matthew Wahab <matthew.wahab@arm.com>
498
499 * c-decl.c (grokdeclarator): Remove errmsg and use of
500 targetm.invalid_return_type.
501 (grokparms): Remove errmsg and use of
502 targetm.invalid_parameter_type.
503
90c88567 5042016-05-13 Joseph Myers <joseph@codesourcery.com>
505
506 * c-decl.c (grokdeclarator): For C11, discard qualifiers on
507 function return type.
508
22a3f7bd 5092016-05-12 Marek Polacek <polacek@redhat.com>
510
511 PR c/70756
512 * c-decl.c (build_compound_literal): Pass LOC down to
513 c_incomplete_type_error.
514 * c-tree.h (require_complete_type): Adjust declaration.
515 (c_incomplete_type_error): Likewise.
516 * c-typeck.c (require_complete_type): Add location parameter, pass it
517 down to c_incomplete_type_error.
518 (c_incomplete_type_error): Add location parameter, pass it down to
519 error_at.
520 (build_component_ref): Pass location down to c_incomplete_type_error.
521 (default_conversion): Pass location down to require_complete_type.
522 (build_array_ref): Likewise.
523 (build_function_call_vec): Likewise.
524 (convert_arguments): Likewise.
525 (build_unary_op): Likewise.
526 (build_c_cast): Likewise.
527 (build_modify_expr): Likewise.
528 (convert_for_assignment): Likewise.
529 (c_finish_omp_clauses): Likewise.
530
54c4d22e 5312016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
532
533 PR c/43651
534 * c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
535 is enabled.
536 * c-errors.c (pedwarn_c90): Return true if warned.
537 * c-tree.h (pedwarn_c90): Change return type to bool.
538 (enum c_declspec_word): Add new enumerator cdw_atomic.
539
7f8012a5 5402016-05-11 Marek Polacek <polacek@redhat.com>
541
542 PR c++/71024
543 * c-decl.c (diagnose_mismatched_decls): Factor out code to
544 diagnose_mismatched_attributes and call it.
545
3fa82609 5462016-05-10 Marek Polacek <polacek@redhat.com>
547
548 PR c/70255
549 * c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute
550 on a declaration following the definition.
551
871164c4 5522016-05-05 Jakub Jelinek <jakub@redhat.com>
553
554 * c-parser.c (c_parser_switch_statement): Add IF_P argument,
555 parse it through to c_parser_c99_block_statement.
556 (c_parser_statement_after_labels): Adjust c_parser_switch_statement
557 caller.
558
1d52c456 5592016-05-04 Marek Polacek <polacek@redhat.com>
560
561 * c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
562 OPT_Wdangling_else.
563
a64030fe 5642016-05-04 Marek Polacek <polacek@redhat.com>
565
566 PR c/48778
567 * c-typeck.c (build_binary_op): Don't issue -Waddress warnings
568 for macro expansions.
569
5d4db8ef 5702016-05-03 Marek Polacek <polacek@redhat.com>
571
572 PR c/70859
573 * c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
574 check_builtin_function_arguments.
575
0bd2fc6e 5762016-05-03 Richard Biener <rguenther@suse.de>
577
578 * Make-lang.in (cc1-checksum.c): For stage-final re-use
579 the checksum from the previous stage.
580
b5e88f74 5812016-05-02 Cesar Philippidis <cesar@codesourcery.com>
582
583 * c-parser.c (c_parser_oacc_all_clauses): Update call to
584 c_finish_omp_clauses.
585 (c_parser_omp_all_clauses): Likewise.
586 (c_parser_oacc_cache): Likewise.
587 (c_parser_oacc_loop): Likewise.
588 (omp_split_clauses): Likewise.
589 (c_parser_omp_declare_target): Likewise.
590 (c_parser_cilk_all_clauses): Likewise.
591 (c_parser_cilk_for): Likewise.
592 * c-typeck.c (c_finish_omp_clauses): Replace bool arguments
593 is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.
594
dd185f6e 5952016-05-02 Marek Polacek <polacek@redhat.com>
596
597 PR c/70851
598 * c-decl.c (grokdeclarator): Diagnose when array's size has an
599 incomplete type.
600
4d0a8bac 6012016-04-29 Cesar Philippidis <cesar@codesourcery.com>
602
603 PR middle-end/70626
604 * c-parser.c (c_parser_oacc_loop): Don't augment mask with
605 OACC_LOOP_CLAUSE_MASK.
606 (c_parser_oacc_kernels_parallel): Update call to
607 c_oacc_split_loop_clauses.
608
d215eeca 6092016-04-28 Andrew MacLeod <amacleod@redhat.com>
610
611 * c-array-notation.c (fix_builtin_array_notation_fn): Fix final
612 argument to build_modify_expr in two cases.
613
40385231 6142016-04-27 Bernd Schmidt <bschmidt@redhat.com>
615
616 * c-parser.c (c_parser_postfix_expression_after_primary): Call
617 warn_for_memset instead of warning directly here.
618
fa20ebd3 6192016-04-26 Marek Polacek <polacek@redhat.com>
620
621 PR c/67784
622 * c-parser.c (c_parser_maybe_reclassify_token): New function factored
623 out of ...
624 (c_parser_for_statement): ... here.
625 (c_parser_if_statement): Use it.
626 (c_parser_switch_statement): Use it.
627 (c_parser_while_statement): Use it.
628
9db47803 629 PR c/70791
630 * c-decl.c (pushdecl): Pass LOCUS down to warning.
631
70574e60 6322016-04-20 Ilya Verbin <ilya.verbin@intel.com>
633
634 PR c++/69363
635 * c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
636 instead of c_finish_cilk_clauses.
637 * c-tree.h (c_finish_omp_clauses): Add new default argument.
638 * c-typeck.c (c_finish_omp_clauses): Add new argument. Allow
639 floating-point variables in the linear clause for Cilk Plus.
640
5d4b30ea 6412016-04-18 Michael Matz <matz@suse.de>
642
643 * c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
644 (grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.
645
eac243e7 6462016-04-15 Marek Polacek <polacek@redhat.com>
647
648 PR c/70671
649 * c-typeck.c (build_unary_op): Pass location down to error and
650 warning call.
651
b4ba8358 6522016-04-15 Jakub Jelinek <jakub@redhat.com>
653
654 PR c/70436
655 * c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
656 where needed.
657 (c_parser_external_declaration, c_parser_struct_or_union_specifier,
658 c_parser_parameter_declaration, c_parser_compound_statement_nostart,
659 c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
660 Adjust c_parser_pragma callers.
661 (c_parser_statement_after_labels): Likewise. Adjust c_parser_cilk_for
662 caller.
663 (c_parser_omp_structured_block): Add IF_P argument, pass it down to
664 c_parser_statement.
665 (c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
666 c_parser_oacc_kernels_parallel, c_parser_omp_critical,
667 c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
668 c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
669 c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
670 c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
671 c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
672 c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
673 down where needed.
674 (c_parser_omp_for_loop): Likewise. Clear IF_P if nbraces.
675 (c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
676 calls.
677
0241e4dc 6782016-04-13 Marek Polacek <polacek@redhat.com>
679
680 PR c/70436
681 * c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
682 adjust callers.
683 (c_parser_statement): Likewise.
684 (c_parser_c99_block_statement): Likewise.
685 (c_parser_while_statement): Likewise.
686 (c_parser_for_statement): Likewise.
687 (c_parser_if_body): Don't set IF_P here.
688 (c_parser_if_statement): Add IF_P argument. Set IF_P here. Warn
689 about dangling else here.
690 * c-tree.h (c_finish_if_stmt): Adjust declaration.
691 * c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter. Don't
692 warn about dangling else here.
693
c4f5465d 6942016-04-04 Marek Polacek <polacek@redhat.com>
695
696 PR c/70307
697 * c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.
698
7952b661 6992016-03-31 Marek Polacek <polacek@redhat.com>
700
701 PR c/70297
702 * c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
703
5539bc70 7042016-03-18 David Malcolm <dmalcolm@redhat.com>
705
706 PR c/70281
707 * c-parser.c (c_parser_postfix_expression): Set the source range
708 for uses of "__builtin_types_compatible_p".
709
29a514fa 7102016-03-17 Jakub Jelinek <jakub@redhat.com>
711
712 PR c/70280
713 * c-typeck.c (composite_type): Don't count void_list_node
714 into len, if the list is terminated by void_list_node, start
715 with void_list_node instead of NULL for newargs. Stop
716 at void_list_node.
717
462ca422 7182016-03-16 Marek Polacek <polacek@redhat.com>
719
720 PR c/70093
721 * c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
722 nested functions returning VM types.
723
27dcb7a8 7242016-03-09 Cesar Philippidis <cesar@codesourcery.com>
725
726 * c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
727 when calling c_finish_omp_clauses.
728
2d1d2e55 7292016-03-04 Bernd Schmidt <bschmidt@redhat.com>
730
731 PR c/69824
732 * c-decl.c (get_parm_info): Don't queue implicit function declarations
733 for later.
734
6560d1ad 7352016-03-04 Marek Polacek <polacek@redhat.com>
736
737 PR c/69798
738 * c-parser.c (c_parser_postfix_expression): Call
739 c_parser_cast_expression rather than c_parser_postfix_expression.
740
40e9ce2d 7412016-03-01 Jakub Jelinek <jakub@redhat.com>
742
743 PR c/69796
744 PR c/69974
745 * c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
746 of incomplete decls to error_mark_node.
747
f0ea75d1 7482016-02-24 Marek Polacek <polacek@redhat.com>
749
750 PR c/69819
751 * c-decl.c (finish_decl): Don't update the copy of the type of a
752 different decl type.
753
d41ab738 7542016-02-23 Jakub Jelinek <jakub@redhat.com>
755
756 PR objc/69844
757 * c-parser.c (c_parser_for_statement): Properly handle ObjC classes
758 in id_kind reclassification.
759
7675e968 7602016-02-16 Jakub Jelinek <jakub@redhat.com>
761
762 PR c/69835
763 * c-typeck.c (build_binary_op): Revert 2015-09-09 change.
764
28072426 7652016-02-16 James Norris <jnorris@codesourcery.com>
766
767 PR c/64748
768 * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
769
74a4140f 7702016-02-12 Bernd Schmidt <bschmidt@redhat.com>
771
7c25ed5c 772 * c-decl.c (build_null_declspecs): Zero the entire struct.
773
74a4140f 774 PR c/69522
775 * c-parser.c (c_parser_braced_init): New arg outer_obstack. All
776 callers changed. If nested_p is true, use it to call
777 finish_implicit_inits.
778 * c-tree.h (finish_implicit_inits): Declare.
779 * c-typeck.c (finish_implicit_inits): New function. Move code
780 from ...
781 (push_init_level): ... here.
782 (set_designator, process_init_element): Call finish_implicit_inits.
783
40b38ace 7842016-02-11 Jakub Jelinek <jakub@redhat.com>
785
786 PR c/69768
787 * c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
788 arguments for -Waddress warning.
789
6b098e91 7902016-02-04 Jakub Jelinek <jakub@redhat.com>
791
792 PR c/69669
793 * c-decl.c (finish_enum): When honoring mode attribute,
794 make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
795
ff5e28e9 7962016-01-29 Jakub Jelinek <jakub@redhat.com>
797
798 PR debug/69518
799 * c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
800 all type variants, not just TYPE_MAIN_VARIANT.
801
78e516eb 8022016-01-27 Jakub Jelinek <jakub@redhat.com>
803
804 PR debug/66869
805 * c-decl.c (c_write_global_declarations_1): Warn with
806 warn_unused_function if static prototype without definition
807 is not C_DECL_USED.
808
fee5e491 8092016-01-27 Marek Polacek <polacek@redhat.com>
810
811 PR c/68062
812 * c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
813 to unsigned, if needed. Add -Wsign-compare warning.
814
9bbfd060 8152016-01-26 Jakub Jelinek <jakub@redhat.com>
816
817 PR tree-optimization/69483
818 * c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.
819
6ebc6587 8202016-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16d4186f 821
822 PR c/24293
823 * c-tree.h (incomplete_record_decls): Declare.
824 * c-parser.c (incomplete_record_decls): Define.
825 (c_parser_translation_unit): Iterate through incomplete_record_decls and
826 report error if any decl has zero size.
827 * c-decl.c (finish_decl): Append static decl with incomplete struct/union
828 or enum type to incomplete_record_decls.
829
4c39e3a5 8302016-01-14 Tom de Vries <tom@codesourcery.com>
831
832 PR tree-optimization/68773
833 * c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
834 set force_output.
835
77f35cec 8362016-01-14 Marek Polacek <polacek@redhat.com>
837
838 PR c/69262
839 * c-decl.c (grokdeclarator): Provide more information for invalid
840 array declarations.
841
d74214f3 8422016-01-06 David Malcolm <dmalcolm@redhat.com>
843
844 * c-parser.c (c_parser_unary_expression): For dereferences, build
845 a combined location before calling build_indirect_ref, so that
846 error reports cover the full range, manually updating the c_expr
847 src_range.
848
be3c9981 8492016-01-06 Marek Polacek <polacek@redhat.com>
850
851 PR sanitizer/69099
852 * c-convert.c (convert) [INTEGER_TYPE]: Drop ARG. Don't pass ARG to
853 ubsan_instrument_float_cast. Fold EXPR. Use NULL_TREE instead of
854 NULL.
855
f1717362 8562016-01-04 Jakub Jelinek <jakub@redhat.com>
857
858 Update copyright years.
859
d7d6a3ab 8602016-01-04 Marek Polacek <polacek@redhat.com>
861
862 PR c/68908
863 * c-typeck.c (build_atomic_assign): Improve commentary. Add
864 optimization to use __atomic_fetch_* built-in if possible.
865
9d5fd7c6 8662015-12-23 Thomas Schwinge <thomas@codesourcery.com>
867
868 * c-parser.c (c_parser_oacc_clause_use_device): Merge function
869 into...
870 (c_parser_omp_clause_use_device_ptr): ... this function. Adjust
871 all users.
872
37e2d32f 8732015-12-22 Marek Polacek <polacek@redhat.com>
874
875 PR c/69002
876 * c-typeck.c (build_component_ref): Warn when acessing elements of
877 atomic structures or unions.
878
c0bf500c 8792015-12-21 David Malcolm <dmalcolm@redhat.com>
880
881 * c-typeck.c: Include "gcc-rich-location.h".
882 (build_binary_op): In the two places that call binary_op_error,
883 create a gcc_rich_location and populate it with the location of
884 the binary op and its two operands.
885
b9f9586a 8862015-12-16 David Malcolm <dmalcolm@redhat.com>
887
888 * c-parser.c (c_parser_statement_after_labels): When calling
889 c_finish_return, Use the return expression's location if it has
890 one, falling back to the location of the first token within it.
891 * c-typeck.c (c_finish_return): When issuing warnings about
892 the incorrect presence/absence of a return value, issue a note
893 showing the declaration of the function.
894
dbd79382 8952015-12-16 David Malcolm <dmalcolm@redhat.com>
896
897 * c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
898 to 4.
899 (c_parser_peek_nth_token): New function.
900 (c_parser_peek_conflict_marker): New function.
901 (c_parser_error): Detect conflict markers and report them as such.
902
e2093e02 9032015-12-16 David Malcolm <dmalcolm@redhat.com>
904
905 * c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
906 to preserve range information for the primary expression
907 in the call to c_parser_postfix_expression_after_primary.
908
b49f1fbb 9092015-12-16 David Malcolm <dmalcolm@redhat.com>
910
911 * c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
912 expression location, falling back on the first token location,
913 rather than always using the latter.
914
1d65bac2 9152015-12-16 Marek Polacek <polacek@redhat.com>
916
917 PR c/64637
918 * c-typeck.c (c_process_expr_stmt): Use location of the expression if
919 available.
920
75e722a6 9212015-12-15 Marek Polacek <polacek@redhat.com>
922
923 PR c/68907
924 * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
925 artificial decl.
926
7063d45b 9272015-12-08 David Malcolm <dmalcolm@redhat.com>
928
929 * c-parser.c (c_parser_alignof_expression): Capture location of
930 closing parenthesis (if any), or of end of unary expression, and
931 use it to build a src_range for the expression.
932
f73b4782 9332015-12-08 David Malcolm <dmalcolm@redhat.com>
934
935 PR c/68757
936 * c-parser.c (c_parser_get_builtin_args): Add
937 "out_close_paren_loc" param, and write back to it.
938 (c_parser_postfix_expression): Capture the closing
939 parenthesis location for RID_CHOOSE_EXPR,
940 RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
941 RID_BUILTIN_SHUFFLE and use it to set the source range
942 for such expressions; within RID_BUILTIN_COMPLEX set
943 the underlying location.
944
1b062945 9452015-12-07 Marek Polacek <polacek@redhat.com>
946
947 PR c/68668
948 * c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
949 TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.
950
a4ab54ac 9512015-12-04 Eric Botcazou <ebotcazou@adacore.com>
952
953 * c-tree.h (c_build_va_arg): Adjust prototype.
954 * c-parser.c (c_parser_postfix_expression): Adjust call to above.
955 * c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
956 parameter, adjust throughout and issue an error if EXPR is a component
957 with reverse storage order.
958
da562e32 9592015-12-02 Jason Merrill <jason@redhat.com>
960
961 * c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
962 (c_fully_fold_internal, decl_constant_value_for_optimization):
963 Move from c-common.c.
964 * c-tree.h: Declare decl_constant_value_for_optimization.
965 * Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
966
89f16034 9672015-12-02 Joseph Myers <joseph@codesourcery.com>
968
969 PR c/68162
970 * c-decl.c (grokdeclarator): Set first_non_attr_kind before
971 following link from declarator to next declarator. Track original
972 qualified type and pass it to c_build_qualified_type.
973 * c-typeck.c (c_build_qualified_type): Add arguments
974 orig_qual_type and orig_qual_indirect.
975
2a7545d5 9762015-12-02 Thomas Schwinge <thomas@codesourcery.com>
977
978 * c-parser.c (c_parser_omp_clause_name)
979 (c_parser_oacc_all_clauses): Alphabetical sorting.
980
ad80582d 9812015-12-02 Jakub Jelinek <jakub@redhat.com>
982
983 PR c/68533
984 * c-decl.c (get_parm_info): Use b->locus instead of input_location
985 for diagnostics.
986
571b3486 9872015-12-01 Julian Brown <julian@codesourcery.com>
988 Cesar Philippidis <cesar@codesourcery.com>
989 James Norris <James_Norris@mentor.com>
990
991 * c-parser.c (c_parser_omp_clause_name): Add use_device support.
992 (c_parser_oacc_clause_use_device): New function.
993 (c_parser_oacc_all_clauses): Add use_device support.
994 (OACC_HOST_DATA_CLAUSE_MASK): New macro.
995 (c_parser_oacc_host_data): New function.
996 (c_parser_omp_construct): Add host_data support.
997 * c-tree.h (c_finish_oacc_host_data): Add prototype.
998 * c-typeck.c (c_finish_oacc_host_data): New function.
999 (c_finish_omp_clauses): Add use_device support.
1000
c4848393 10012015-11-29 Jan Hubicka <hubicka@ucw.cz>
1002
1003 PR c/67106
1004 * c-decl.c: Set TYPE_PACKED in variants.
1005
d4e328e9 10062015-11-27 Martin Liska <mliska@suse.cz>
1007
1008 PR c++/68312
1009 * c-array-notation.c (fix_builtin_array_notation_fn):
1010 Use release_vec_vec instead of vec::release.
1011 (build_array_notation_expr): Likewise.
1012 (fix_conditional_array_notations_1): Likewise.
1013 (fix_array_notation_expr): Likewise.
1014 (fix_array_notation_call_expr): Likewise.
1015
c5e4f591 10162015-11-27 Jakub Jelinek <jakub@redhat.com>
1017
1018 PR c/63326
1019 * c-parser.c (c_parser_compound_statement_nostart): If
1020 last_label is true, use pragma_stmt instead of pragma_compound
1021 as second c_parser_pragma argument.
1022 (c_parser_omp_ordered, c_parser_omp_target_update,
1023 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
1024 false as second argument to c_parser_skip_to_pragma_eol after
1025 diagnosing standalone directives used in pragma_stmt context.
1026
c954a5bd 10272015-11-24 Ilya Verbin <ilya.verbin@intel.com>
1028
1029 * c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
1030 with "if (ENABLE_OFFLOADING)".
1031
daebf4f3 10322015-11-23 David Malcolm <dmalcolm@redhat.com>
1033
1034 PR objc/68438
1035 * c-parser.c (c_parser_postfix_expression): Set up source ranges
1036 for various Objective-C constructs: Class.name syntax,
1037 @selector(), @protocol(), @encode(), and [] message syntax.
1038
734caf84 10392015-11-20 David Malcolm <dmalcolm@redhat.com>
1040
1041 PR 62314
1042 * c-typeck.c (should_suggest_deref_p): New function.
1043 (build_component_ref): Special-case POINTER_TYPE when
1044 generating a "not a structure of union" error message, and
1045 suggest a "->" rather than a ".", providing a fix-it hint.
1046
11d8dd6f 10472015-11-19 David Malcolm <dmalcolm@redhat.com>
1048
1049 * c-typeck.c (lookup_field_fuzzy): Move determination of closest
1050 candidate into a new function, find_closest_identifier.
1051
62efaf6b 10522015-11-19 Marek Polacek <polacek@redhat.com>
1053
1054 PR c/68412
1055 * c-typeck.c (parser_build_binary_op): Properly handle
1056 C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.
1057
9dfffd6d 10582015-11-17 David Malcolm <dmalcolm@redhat.com>
1059
1060 * c-parser.c (set_c_expr_source_range): Bulletproof both
1061 overloaded implementations against NULL expr->value.
1062 (c_parser_braced_init): Set src_range for "ret" to a sane pair of
1063 values.
1064 (c_parser_unary_expression): Likewise when handling addresses of
1065 labels.
1066 (c_parser_postfix_expression): Likewise for statement expressions,
1067 for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
1068 __builtin_va_arg, and for __builtin_offset_of.
1069 (c_parser_postfix_expression_after_paren_type): Initialize expr's
1070 src_range using the range of the braced initializer.
1071 (c_parser_transaction_expression): Set src_range for "ret" to a
1072 sane pair of values.
1073
c58a4cfd 10742015-11-16 Kirill Yukhin <kirill.yukhin@intel.com>
1075
1076 * c-parser.c (c_finish_omp_declare_simd): Look for
1077 "simd" attribute as well. Update error message.
1078
5f3001a9 10792015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1080
1081 * c-parser.c (c_parser_omp_declare_target): Adjust.
1082
a9833286 10832015-11-14 Jakub Jelinek <jakub@redhat.com>
1084
1085 * c-typeck.c (c_finish_omp_clauses): Don't mark
1086 GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
1087
ef61516b 10882015-11-14 Marek Polacek <polacek@redhat.com>
1089
1090 * c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
1091 * c-typeck.c: Likewise.
1092
a96cefb2 10932015-11-13 David Malcolm <dmalcolm@redhat.com>
1094
1095 * c-decl.c (warn_defaults_to): Pass line_table to
1096 rich_location ctor.
1097 * c-errors.c (pedwarn_c99): Likewise.
1098 (pedwarn_c90): Likewise.
1099 * c-parser.c (set_c_expr_source_range): New functions.
1100 (c_token::get_range): New method.
1101 (c_token::get_finish): New method.
1102 (c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
1103 based on the range from the start of the LHS to the end of the
1104 RHS.
1105 (c_parser_conditional_expression): Likewise, based on the range
1106 from the start of the cond.value to the end of exp2.value.
1107 (c_parser_binary_expression): Call set_c_expr_source_range on
1108 the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
1109 (c_parser_cast_expression): Call set_c_expr_source_range on ret
1110 based on the cast_loc through to the end of the expr.
1111 (c_parser_unary_expression): Likewise, based on the
1112 op_loc through to the end of op.
1113 (c_parser_sizeof_expression) Likewise, based on the start of the
1114 sizeof token through to either the closing paren or the end of
1115 expr.
1116 (c_parser_postfix_expression): Likewise, using the token range,
1117 or from the open paren through to the close paren for
1118 parenthesized expressions.
1119 (c_parser_postfix_expression_after_primary): Likewise, for
1120 various kinds of expression.
1121 * c-tree.h (struct c_expr): Add field "src_range".
1122 (c_expr::get_start): New method.
1123 (c_expr::get_finish): New method.
1124 (set_c_expr_source_range): New decls.
1125 * c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
1126 on ret for prefix unary ops.
1127 (parser_build_binary_op): Likewise, running from the start of
1128 arg1.value through to the end of arg2.value.
1129
7a810b2f 11302015-11-13 Marek Polacek <polacek@redhat.com>
1131
1132 PR c/68320
1133 * c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.
1134
b67f0560 11352015-11-13 David Malcolm <dmalcolm@redhat.com>
1136
1137 * c-typeck.c: Include spellcheck.h.
1138 (lookup_field_fuzzy_find_candidates): New function.
1139 (lookup_field_fuzzy): New function.
1140 (build_component_ref): If the field was not found, try using
1141 lookup_field_fuzzy and potentially offer a suggestion.
1142
2fc5e987 11432015-11-12 James Norris <jnorris@codesourcery.com>
1144 Joseph Myers <joseph@codesourcery.com>
1145
1146 * c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
1147 (c_parser_omp_clause_name): Handle 'device_resident' clause.
1148 (c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
1149 and PRAGMA_OMP_CLAUSE_LINK.
1150 (c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
1151 and PRAGMA_OACC_CLAUSE_LINK.
1152 (OACC_DECLARE_CLAUSE_MASK): New definition.
1153 (c_parser_oacc_declare): New function.
1154
28a70e29 11552015-11-12 Marek Polacek <polacek@redhat.com>
1156
1157 PR c/67784
1158 * c-parser.c (c_parser_for_statement): Reclassify the token in
1159 a correct scope.
1160
81b1b2a8 11612015-11-11 Marek Polacek <polacek@redhat.com>
1162
1163 PR c/68107
1164 PR c++/68266
1165 * c-decl.c (grokdeclarator): Call valid_array_size_p. Remove code
1166 checking the size of an array.
1167
6e803544 11682015-11-11 Andrew MacLeod <amacleod@redhat.com>
1169
1170 * c-array-notation.c: Remove unused header files.
1171 * c-aux-info.c: Likewise.
1172 * c-convert.c: Likewise.
1173 * c-decl.c: Likewise.
1174 * c-errors.c: Likewise.
1175 * c-lang.c: Likewise.
1176 * c-objc-common.c: Likewise.
1177 * c-parser.c: Likewise.
1178 * c-typeck.c: Likewise.
1179 * gccspec.c: Likewise.
1180
a1b7fe4b 11812015-11-09 Thomas Schwinge <thomas@codesourcery.com>
1182 Cesar Philippidis <cesar@codesourcery.com>
1183 James Norris <jnorris@codesourcery.com>
1184 Julian Brown <julian@codesourcery.com>
1185 Nathan Sidwell <nathan@codesourcery.com>
1186
1187 c/
1188 * c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
1189 routine arg.
1190 (c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
1191 (c_parser_pragma): Parse 'acc routine'.
1192 (OACC_ROUTINE_CLAUSE_MARK): Define.
1193 (c_parser_oacc_routine, (c_finish_oacc_routine): New.
1194
7758d608 11952015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
1196
1197 PR debug/67192
1198 * c-typeck.c (c_finish_loop): For unconditional loops, set the
1199 location of the backward-goto to the start of the loop body.
1200
c2bf2fb2 12012015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
1202
1203 PR debug/67192
1204 * c-parser.c (c_parser_while_statement): Finish the loop before
1205 parsing ahead for misleading indentation.
1206 (c_parser_for_statement): Likewise.
1207
292237f3 12082015-11-08 Eric Botcazou <ebotcazou@adacore.com>
1209
1210 * c-decl.c (finish_struct): If the structure has reverse storage
1211 order, rewrite the type of array fields with scalar component. Call
1212 maybe_apply_pragma_scalar_storage_order on entry.
1213 * c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs. Issue
1214 errors on bit-fields and reverse SSO here and not...
1215 (c_mark_addressable): ...here.
1216 (output_init_element): Adjust call to initializer_constant_valid_p.
1217 (c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.
1218
f0479000 12192015-11-06 David Malcolm <dmalcolm@redhat.com>
1220
1221 * c-decl.c (warn_defaults_to): Update for change in signature
1222 of diagnostic_set_info.
1223 * c-errors.c (pedwarn_c99): Likewise.
1224 (pedwarn_c90): Likewise.
1225 * c-objc-common.c (c_tree_printer): Update for new "caret_p" param
1226 for textinfo::set_location.
1227
ef014f95 12282015-11-05 Cesar Philippidis <cesar@codesourcery.com>
1229 Thomas Schwinge <thomas@codesourcery.com>
1230 James Norris <jnorris@codesourcery.com>
1231
1232 * c-parser.c (c_parser_omp_clause_name): Add support for
1233 PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
1234 (c_parser_omp_clause_default): Add is_oacc argument. Handle
1235 default(none) in OpenACC.
1236 (c_parser_oacc_shape_clause): Allow pointer variables as gang static
1237 arguments.
1238 (c_parser_oacc_clause_tile): New function.
1239 (c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
1240 OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
1241 (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
1242 TILE}.
1243 (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
1244 (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
1245 FIRSTPRIVATE}.
1246 (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
1247 (c_parser_oacc_update): Update the error message for missing clauses.
1248 * c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
1249 and OMP_CLAUSE_INDEPENDENT.
1250
f480ca9a 12512015-11-05 Marek Polacek <polacek@redhat.com>
1252
1253 PR c/68090
1254 * c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
1255 deal with pre-evaluation on invalid types.
1256
9561765e 12572015-11-05 Jakub Jelinek <jakub@redhat.com>
1258 Ilya Verbin <ilya.verbin@intel.com>
1259
1260 * c-parser.c: Include context.h and gimple-expr.h.
1261 (c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
1262 monotonic together with nonmonotonic.
1263 (c_parser_omp_for_loop): Call c_omp_check_loop_iv. Call add_stmt here.
1264 (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
1265 (c_parser_omp_target_data, c_parser_omp_target_enter_data,
1266 c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
1267 (c_parser_omp_target): Likewise. Evaluate num_teams and thread_limit
1268 expressions on combined target teams before the target.
1269 (c_parser_omp_declare_target): If decl has "omp declare target" or
1270 "omp declare target link" attribute, and cgraph or varpool node already
1271 exists, then set corresponding flags. Call c_finish_omp_clauses
1272 in the parenthesized extended-list syntax case.
1273 * c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
1274 declare target.
1275 * c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
1276 on OMP_CLAUSE_REDUCTION array sections.
1277 (handle_omp_array_sections): Encode low-bound into the MEM_REF, either
1278 into the constant offset, or for variable low-bound using
1279 POINTER_PLUS_EXPR. For structure element based array sections use
1280 GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
1281 (c_finish_omp_clauses): Drop generic_field_head, structure
1282 elements are now always mapped even as array section bases,
1283 diagnose same var in data sharing and mapping clauses. Diagnose if
1284 linear step on declare simd is neither a constant nor a uniform
1285 parameter. Look through POINTER_PLUS_EXPR for array section
1286 reductions. Diagnose the same var or function appearing multiple
1287 times on the same directive. Fix up wording for the to clause if t
1288 is neither a FUNCTION_DECL nor a VAR_DECL. Diagnose nonmonotonic
1289 modifier on kinds other than dynamic or guided or nonmonotonic
1290 modifier together with ordered clause.
1291
9e10bfb7 12922015-11-03 Thomas Schwinge <thomas@codesourcery.com>
1293 Chung-Lin Tang <cltang@codesourcery.com>
1294
1295 * c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
1296
4cba6f60 12972015-10-29 Andrew MacLeod <amacleod@redhat.com>
1298
1299 * c-array-notation.c: Reorder #include's and remove duplicates.
1300 * c-aux-info.c: Likewise.
1301 * c-convert.c: Likewise.
1302 * c-decl.c: Likewise.
1303 * c-errors.c: Likewise.
1304 * c-lang.c: Likewise.
1305 * c-objc-common.c: Likewise.
1306 * c-parser.c: Likewise.
1307 * c-typeck.c: Likewise.
1308
7b15d957 13092015-10-26 Jim Wilson <jim.wilson@linaro.org>
1310
1311 PR debug/66068
1312 * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
1313 after calling build_qualified_type.
1314
62c48328 13152015-10-27 Cesar Philippidis <cesar@codesourcery.com>
1316 Thomas Schwinge <thomas@codesourcery.com>
1317 James Norris <jnorris@codesourcery.com>
1318 Joseph Myers <joseph@codesourcery.com>
1319 Julian Brown <julian@codesourcery.com>
1320 Bernd Schmidt <bschmidt@redhat.com>
1321
1322 * c-parser.c (c_parser_oacc_shape_clause): New.
1323 (c_parser_oacc_simple_clause): New.
1324 (c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
1325 (OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.
1326
2c4c8725 13272015-10-27 Thomas Schwinge <thomas@codesourcery.com>
1328 James Norris <jnorris@codesourcery.com>
1329 Cesar Philippidis <cesar@codesourcery.com>
1330
1331 PR c/64765
1332 PR c/64880
1333 * c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
1334 parameters, and handle these. Adjust all users.
1335 (c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
1336 into...
1337 (c_parser_oacc_kernels_parallel): ... this new function. Adjust
1338 all users.
1339 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
1340 declare functions.
1341 (c_finish_omp_construct): Declare function.
1342 * c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
1343 Merge functions into...
1344 (c_finish_omp_construct): ... this new function.
1345
844cece0 13462015-10-22 Richard Biener <rguenther@suse.de>
1347
1348 * c-typeck.c (c_finish_omp_clauses): Properly convert operands
1349 before folding a MINUS_EXPR.
1350
5ce1b137 13512015-10-21 Marek Polacek <polacek@redhat.com>
1352
1353 PR c/68024
1354 * c-decl.c (start_function): Warn about vararg functions without
1355 a prototype.
1356
1f137e6d 13572015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
1358
1359 * c-typeck.c (build_conditional_expr): Use boolean vector
1360 type for vector comparison.
1361 (build_vec_cmp): New.
1362 (build_binary_op): Use build_vec_cmp for comparison.
1363
8523243e 13642015-10-20 Marek Polacek <polacek@redhat.com>
1365
1366 * c-parser.c (is_cilkplus_vector_p): Don't define here.
1367
3f73be3e 13682015-10-20 Marek Polacek <polacek@redhat.com>
1369
1370 PR c/67964
1371 * c-parser.c (c_parser_attributes): Break out of the loop if the
1372 token after an attribute isn't a comma.
1373
43895be5 13742015-10-13 Jakub Jelinek <jakub@redhat.com>
1375 Aldy Hernandez <aldyh@redhat.com>
1376
1377 * c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
1378 (c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
1379 (c_parser_omp_variable_list): Handle structure elements for
1380 map, to and from clauses. Handle array sections in reduction
1381 clause. Formatting fixes.
1382 (c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
1383 if clause modifiers.
1384 (c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
1385 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
1386 c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
1387 c_parser_omp_clause_is_device_ptr): New functions.
1388 (c_parser_omp_clause_ordered): Parse optional parameter.
1389 (c_parser_omp_clause_reduction): Handle array reductions.
1390 (c_parser_omp_clause_schedule): Parse optional simd modifier.
1391 (c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
1392 functions.
1393 (c_parser_omp_clause_linear): Parse linear clause modifiers.
1394 (c_parser_omp_clause_depend_sink): New function.
1395 (c_parser_omp_clause_depend): Parse source/sink depend kinds.
1396 (c_parser_omp_clause_map): Parse release/delete map kinds and
1397 optional always modifier.
1398 (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
1399 and c_finish_omp_clauses callers.
1400 (c_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
1401 Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
1402 (c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
1403 (OMP_CRITICAL_CLAUSE_MASK): Define.
1404 (c_parser_omp_critical): Parse critical clauses.
1405 (c_parser_omp_for_loop): Handle doacross loops, adjust
1406 c_finish_omp_for and c_finish_omp_clauses callers.
1407 (OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
1408 (c_parser_omp_simd): Allow ordered clause if it has no parameter.
1409 (OMP_FOR_CLAUSE_MASK): Add linear clause.
1410 (c_parser_omp_for): Disallow ordered clause when combined with
1411 distribute. Disallow linear clause when combined with distribute
1412 and not combined with simd.
1413 (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
1414 (c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
1415 parse clauses and if depend clause is found, don't parse a body.
1416 (c_parser_omp_parallel): Disallow copyin clause on target parallel.
1417 Allow target parallel without for after it.
1418 (OMP_TASK_CLAUSE_MASK): Add priority clause.
1419 (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
1420 (c_parser_omp_target_data): Diagnose no map clauses or clauses with
1421 invalid kinds.
1422 (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
1423 (OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
1424 OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
1425 (c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
1426 functions.
1427 (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
1428 defaultmap and is_device_ptr clauses.
1429 (c_parser_omp_target): Parse target parallel and target simd. Set
1430 OMP_TARGET_COMBINED on combined constructs. Parse target enter data
1431 and target exit data. Diagnose invalid map kinds.
1432 (OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
1433 (c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
1434 construct.
1435 (c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
1436 &omp_priv.
1437 (OMP_TASKLOOP_CLAUSE_MASK): Define.
1438 (c_parser_omp_taskloop): New function.
1439 (c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
1440 handle PRAGMA_OMP_TASKLOOP.
1441 (c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
1442 * c-tree.h (c_finish_omp_clauses): Add two new arguments.
1443 * c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
1444 Add IS_OMP argument, handle structure element bases, diagnose
1445 bitfields, pass IS_OMP recursively, diagnose known zero length
1446 array sections in depend clauses, handle array sections in reduction
1447 clause, diagnose negative length even for pointers.
1448 (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
1449 types, pass IS_OMP down to handle_omp_array_sections_1, handle
1450 array sections in reduction clause, set
1451 OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
1452 length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
1453 (c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
1454 Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
1455
789fbb51 14562015-10-06 Marek Polacek <polacek@redhat.com>
1457
1458 * c-parser.c (c_parser_statement_after_labels): Use
1459 protected_set_expr_location.
1460 (c_parser_omp_clause_num_gangs): Likewise.
1461 (c_parser_omp_clause_num_threads): Likewise.
1462 (c_parser_omp_clause_num_workers): Likewise.
1463 (c_parser_omp_clause_vector_length): Likewise.
1464 (c_parser_omp_clause_num_teams): Likewise.
1465 (c_parser_omp_clause_thread_limit): Likewise.
1466 * c-typeck.c (build_c_cast): Likewise.
1467 (c_cast_expr): Likewise.
1468
20cb53c9 14692015-10-05 Richard Sandiford <richard.sandiford@arm.com>
1470
1471 * c-typeck.c (c_tree_equal): Use real_equal instead of
1472 REAL_VALUES_EQUAL.
1473
6d02e6b2 14742015-10-04 Jason Merrill <jason@redhat.com>
1475
1476 * c-parser.c (c_lex_one_token): Handle @synchronized.
1477 * c-decl.c (match_builtin_function_types): A declaration of a built-in
1478 can change whether the function is transaction_safe.
1479
802c32cd 14802015-10-02 Marek Polacek <polacek@redhat.com>
1481
1482 PR c/67730
1483 * c-typeck.c (convert_for_assignment): Use the expansion point
1484 location throughout.
1485
ef17a71a 14862015-10-02 Marek Polacek <polacek@redhat.com>
1487
1488 PR c/64249
1489 * c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
1490 and pass it down to c_parser_if_statement.
1491 (c_parser_else_body): Add CHAIN parameter and pass it down to
1492 c_parser_statement_after_labels.
1493 (c_parser_if_statement): Add CHAIN parameter. Add code to warn about
1494 duplicated if-else-if conditions.
1495
7e93eb1a 14962015-10-01 Marek Polacek <polacek@redhat.com>
1497
1498 * c-typeck.c (convert_for_assignment): Improve commentary.
1499
ab4c803c 15002015-09-30 Marek Polacek <polacek@redhat.com>
1501
1502 PR c/67730
1503 * c-typeck.c (c_finish_return): Use the expansion point location for
1504 certain "return with value" warnings.
1505
ed536208 15062015-09-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
1507
1508 * c-parser.c (pragma_lex): Add loc argument.
1509
03e8b174 15102015-09-15 Marek Polacek <polacek@redhat.com>
1511
1512 PR c/67580
1513 * c-decl.c (tag_exists_p): New function.
1514 * c-parser.c (c_parser_declaration_or_fndef): Give a hint when
1515 struct/union/enum keywords are missing.
1516 * c-tree.h (tag_exists_p): Declare.
1517
a39b4dc0 15182015-09-15 Marek Polacek <polacek@redhat.com>
1519
1520 * c-decl.c (lookup_label): Return NULL_TREE instead of 0.
1521 (lookup_tag): Change the type of THISLEVEL_ONLY to bool.
1522 Return NULL_TREE instead of 0.
1523 (lookup_name): Return NULL_TREE instead of 0.
1524 (lookup_name_in_scope): Likewise.
1525 (shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
1526 (parser_xref_tag): Use false instead of 0.
1527 (start_struct): Use true instead of 1.
1528 (start_enum): Use true instead of 1 and NULL_TREE instead of 0.
1529
85f5e2ee 15302015-09-14 Marek Polacek <polacek@redhat.com>
1531
1532 * c-typeck.c (set_nonincremental_init_from_string): Use
1533 HOST_WIDE_INT_M1U when shifting a negative value.
1534
739237d5 15352015-09-09 Mark Wielaard <mjw@redhat.com>
1536
1537 * c-typeck.c (build_binary_op): Check and warn when nonnull arg
1538 parm against NULL.
1539
d2b2788c 15402015-09-10 Jakub Jelinek <jakub@redhat.com>
1541
1542 PR c/67502
1543 * c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
1544 into OMP_FOR_PRE_BODY rather than before the loop.
1545
deef87db 15462015-09-09 Jakub Jelinek <jakub@redhat.com>
1547
c43f93d7 1548 PR c/67501
1549 * c-parser.c (c_parser_oacc_all_clauses,
1550 c_parser_omp_all_clauses): Remove invalid clause from
1551 list of clauses even if parser->error is set.
1552
0fdcfb93 1553 PR c/67500
1554 * c-parser.c (c_parser_omp_clause_aligned,
1555 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
1556 test for errors.
1557 * c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
1558 error_mark_node.
1559
deef87db 1560 PR c/67495
1561 * c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
1562 instead of c_parser_unary_expression. If the result is !lvalue_p,
1563 wrap the result of c_fully_fold into NON_LVALUE_EXPR.
1564
e96292e9 15652015-09-04 Marek Polacek <polacek@redhat.com>
1566
1567 PR sanitizer/67279
1568 * c-typeck.c (build_binary_op): Don't instrument static initializers.
1569
547c6b1f 15702015-09-03 Martin Sebor <msebor@redhat.com>
1571
1572 PR c/66516
6ccd7236 1573 * c-typeck.c (convert_arguments, parser_build_unary_op,
1574 build_conditional_expr, c_cast_expr, convert_for_assignment,
1575 build_binary_op, _objc_common_truthvalue_conversion): Call
547c6b1f 1576 reject_gcc_builtin.
1577 (c_decl_implicit): Define.
1578
bd66724c 15792015-09-02 Marek Polacek <polacek@redhat.com>
1580
1581 PR c/67432
1582 * c-parser.c (c_parser_enum_specifier): Give a better error for
1583 an empty enum.
1584
6dc50383 15852015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
1586
1587 * c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
1588
7ad1d78d 15892015-08-12 Marek Polacek <polacek@redhat.com>
1590
1591 * c-decl.c (grokdeclarator): Call error_at instead of error and pass
1592 LOC to it.
1593
c9099388 15942015-08-03 Marek Polacek <polacek@redhat.com>
1595
1596 PR c/67088
1597 * c-decl.c (check_bitfield_type_and_width): Add location parameter.
1598 Use it.
1599 (grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
1600
9255be07 16012015-08-02 Patrick Palka <ppalka@gcc.gnu.org>
1602
1603 * c-parser.c (c_parser_if_body): Take token_indent_info
1604 argument. Call warn_for_misleading_indentation even when the
1605 body is a semicolon. Extract token_indent_infos corresponding
1606 to the guard, body and next tokens. Adjust call to
1607 warn_for_misleading_indentation accordingly.
1608 (c_parser_else_body): Likewise.
1609 (c_parser_if_statement): Likewise.
1610 (c_parser_while_statement): Likewise.
1611 (c_parser_for_statement): Likewise.
1612
dbbd4c6d 16132015-07-28 Luis Felipe Strano Moraes <luis.strano@gmail.com>
1614 Manuel López-Ibáñez <manu@gcc.gnu.org>
1615
1616 * c-decl.c (get_parm_info): Remove static var. Update warning
1617 message.
1618
6784a472 16192015-07-27 Marek Polacek <polacek@redhat.com>
1620
1621 PR c++/66555
1622 PR c/54979
1623 * c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
1624
8d669e79 16252015-07-20 Marek Polacek <polacek@redhat.com>
1626
1627 PR c++/55095
1628 * c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
1629 (build_binary_op): Warn about left shift overflows.
1630
1eacc14a 16312015-07-09 Andrew MacLeod <amacleod@redhat.com>
1632
1633 * c-array-notation.c: Adjust includes for flags.h changes.
1634 * c-objc-common.c: Likewise.
1635
9ef16211 16362015-07-07 Andrew MacLeod <amacleod@redhat.com>
1637
1638 * c-array-notation.c: Adjust includes.
1639 * c-aux-info.c: Likewise.
1640 * c-convert.c: Likewise.
1641 * c-decl.c: Likewise.
1642 * c-errors.c: Likewise.
1643 * c-lang.c: Likewise.
1644 * c-objc-common.c: Likewise.
1645 * c-parser.c: Likewise.
1646 * c-typeck.c: Likewise.
1647
0949f227 16482015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
1649
1650 PR fortran/66605
1651 * c-decl.c (finish_function): Call do_warn_unused_parameter.
1652
be23b16f 16532015-06-29 Marek Polacek <polacek@redhat.com>
1654
1655 PR c/66322
1656 * c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
1657 (c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P. Don't warn
1658 about -Wswitch-bool here.
1659 (do_case): Update c_add_case_label call.
1660 (c_finish_case): Update c_do_switch_warnings call.
1661
6290f0db 16622015-06-27 Marek Polacek <polacek@redhat.com>
1663
1664 * c-typeck.c: Use VECTOR_TYPE_P throughout.
1665
aa3e402e 16662015-06-26 Marek Polacek <polacek@redhat.com>
1667
1668 * c-array-notation.c (fix_builtin_array_notation_fn): Use
1669 INDIRECT_REF_P.
1670 * c-typeck.c (array_to_pointer_conversion): Likewise.
1671 (build_unary_op): Likewise.
1672 (c_finish_return): Likewise.
1673
ec2e0095 16742015-06-25 Andrew MacLeod <amacleod@redhat.com>
1675
1676 * c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
1677 * c-parser.c: Likewise.
1678
770ff93b 16792015-06-25 Richard Sandiford <richard.sandiford@arm.com>
1680
1681 * c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
1682 instead of pointer_hash.
1683 (detect_field_duplicates): Likewise.
1684
f48c7f4a 16852015-06-25 Marek Polacek <polacek@redhat.com>
1686
1687 * c-array-notation.c: Use VAR_P throughout.
1688 * c-decl.c: Likewise.
1689 * c-objc-common.c: Likewise.
1690 * c-parser.c: Likewise.
1691 * c-typeck.c: Likewise.
1692
ce41e81a 16932015-06-25 Marek Polacek <polacek@redhat.com>
1694
1695 * c-decl.c: Use is_global_var throughout.
1696 * c-parser.c: Likewise.
1697 * c-typeck.c: Likewise.
1698
f2ab3bac 16992015-06-17 Andrew MacLeod <amacleod@redhat.com>
1700
1701 * c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
1702 * c-aux-info.c: Likewise.
1703 * c-convert.c: Likewise.
1704 * c-decl.c: Likewise.
1705 * c-errors.c: Likewise.
1706 * c-lang.c: Likewise.
1707 * c-objc-common.c: Likewise.
1708 * c-parser.c: Likewise.
1709 * c-typeck.c: Likewise.
1710
647730ab 17112015-06-11 Jan Hubicka <hubicka@ucw.cz>
1712
1713 PR middle-end/66325
1714 * c-decl.c (start_enum): Set TYPE_PACKED consistently among type
1715 variants.
1716
dd4b0a0d 17172015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
1718
1719 * c-decl.c (pop_scope): Register the main translation unit
1720 through the new debug hook.
1721
64486212 17222015-06-08 Andrew MacLeod <amacleod@redhat.com>
1723
1724 * c-array-notation.c : Adjust include files.
1725 * c-aux-info.c : Likewise.
1726 * c-convert.c : Likewise.
1727 * c-decl.c : Likewise.
1728 * c-errors.c : Likewise.
1729 * c-lang.c : Likewise.
1730 * c-lang.h : Likewise.
1731 * c-objc-common.c : Likewise.
1732 * c-parser.c : Likewise.
1733 * c-typeck.c : Likewise.
1734
3a1c9df2 17352015-06-05 Aldy Hernandez <aldyh@redhat.com>
1736
1737 * c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
1738 immediately clobber it.
1739 (c_write_global_declarations_1): Remove call to
1740 check_global_declaration_1.
1741 (c_write_global_declarations_2): Remove.
1742 (c_write_final_cleanups): Rename from c_write_global_declarations.
1743 Remove call to finalize_compilation_unit.
1744 Remove calls to debugging hooks.
1745 * c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
1746 * c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
1747 * c-tree.h: Remove c_write_global_declarations.
1748
f77c0292 17492015-06-04 Andrew MacLeod <amacleod@redhat.com>
1750
1751 * c-array-notation.c: Adjust includes for restructured coretypes.h.
1752 * c-aux-info.c: Likewise.
1753 * c-convert.c: Likewise.
1754 * c-decl.c: Likewise.
1755 * c-errors.c: Likewise.
1756 * c-lang.c: Likewise.
1757 * c-objc-common.c: Likewise.
1758 * c-parser.c: Likewise.
1759 * c-typeck.c: Likewise.
1760
b44134dc 17612015-06-04 Marek Polacek <polacek@redhat.com>
1762
1763 PR c/66341
1764 * c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
1765 it is a lvalue.
1766
d1df0bfc 17672015-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1768
1769 * c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
1770 Warn for empty struct.
1771 (finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.
1772
f8363c5d 17732015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
1774
1775 * c-decl.c (start_function): Call plugin before parsing.
1776 (finish_function): Call plugin after parsing.
1777
5b9761f5 17782015-06-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1779
1780 PR c/49551
1781 * c-decl.c (merge_decls): Merge DECL_COMMON.
1782
eeec71b4 17832015-05-22 Jim Wilson <jim.wilson@linaro.org>
1784
1785 * Make-lang.in (check_gcc_pallelize): Define.
1786
5a4c69dd 17872015-05-22 Marek Polacek <polacek@redhat.com>
1788
1789 PR c/47043
1790 * c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
1791 attributes.
1792
5650b4ff 17932015-05-21 Marek Polacek <polacek@redhat.com>
1794
1795 * c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
1796 DECL_BUILT_IN.
1797
b443c459 17982015-05-20 Marek Polacek <polacek@redhat.com>
1799
1800 * c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
1801 * c-typeck.c: Likewise.
1802
9e73638f 18032015-05-19 Marek Polacek <polacek@redhat.com>
1804
1805 * c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
1806
d7729e26 18072015-05-19 Jakub Jelinek <jakub@redhat.com>
1808
1809 PR middle-end/66199
1810 * c-parser.c (c_parser_omp_for_loop): Don't add
1811 OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
1812 OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
1813 (c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
1814 constructs.
1815
dfcf26a5 18162015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
1817
1818 * c-typeck.c (build_array_ref): Use std::swap instead of explicit
9e73638f 1819 swaps.
dfcf26a5 1820
09172322 18212015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
1822
1823 PR fortran/44054
1824 * c-objc-common.c (c_tree_printer): Replace locus pointer with
1825 accessor function.
1826
aac24642 18272015-05-14 Marek Polacek <polacek@redhat.com>
1828
1829 PR c/66066
1830 PR c/66127
1831 * c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
1832 rather than with 0.
1833
e5f01cba 18342015-05-12 David Malcolm <dmalcolm@redhat.com>
1835
1836 * c-parser.c (c_parser_if_body): Add param "if_loc", use it
1837 to add a call to warn_for_misleading_indentation.
1838 (c_parser_else_body): Likewise, adding param "else_loc".
1839 (c_parser_if_statement): Check for misleading indentation.
1840 (c_parser_while_statement): Likewise.
1841 (c_parser_for_statement): Likewise.
1842
dc5945dc 18432015-05-08 Marek Polacek <polacek@redhat.com>
1844
1845 PR c/64918
1846 * c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
1847 (output_init_element): Likewise.
1848
cdc64059 18492015-05-07 Marek Polacek <polacek@redhat.com>
1850
1851 PR c/65179
1852 * c-typeck.c (build_binary_op): Warn when left shifting a negative
1853 value.
1854
6fa7118e 18552015-04-30 Marek Polacek <polacek@redhat.com>
1856
1857 * c-typeck.c (set_init_label): Call error_at instead of error and
1858 pass LOC to it.
1859
98f44804 1860 * c-typeck.c (c_incomplete_type_error): Refactor to use %qT. Print
1861 the type of a decl.
1862
2cd7caae 1863 * c-typeck.c (c_build_va_arg): Clarify the error message.
1864
95cfd391 18652015-04-29 Thomas Schwinge <thomas@codesourcery.com>
1866
1867 * c-parser.c (c_parser_oacc_enter_exit_data): Use
1868 OMP_STANDALONE_CLAUSES.
1869
e65e39f8 18702015-04-28 Marek Polacek <polacek@redhat.com>
1871
1872 * c-parser.c (c_parser_binary_expression): Remove duplicate line.
1873
5580bf42 18742015-04-28 Marek Polacek <polacek@redhat.com>
1875
1876 PR c/65901
1877 * c-typeck.c (c_build_va_arg): Require TYPE be a complete type.
1878
c3468fc2 18792015-04-25 Marek Polacek <polacek@redhat.com>
1880
1881 PR c/52085
1882 * c-decl.c (finish_enum): Copy over TYPE_ALIGN. Also check for "mode"
1883 attribute.
1884
0cd6b1b4 18852015-04-23 Marek Polacek <polacek@redhat.com>
1886
1887 PR c/65345
1888 * c-decl.c (set_labels_context_r): New function.
1889 (store_parm_decls): Call it via walk_tree_without_duplicates.
1890 * c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
1891 instead of create_tmp_var. Build TARGET_EXPR instead of
1892 COMPOUND_EXPR.
1893 (build_atomic_assign): Use create_tmp_var_raw instead of
1894 create_tmp_var. Build TARGET_EXPRs instead of MODIFY_EXPR.
1895
05a827ce 18962015-04-20 Ilya Verbin <ilya.verbin@intel.com>
1897
1898 * c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
1899 (c_parser_omp_target_update): Add missed %> to error_at ().
1900
de801c28 19012015-04-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1902
1903 PR target/55143
1904 * c-decl.c (c_default_pointer_mode): Remove definition.
1905 * c-tree.h (c_default_pointer_mode): Remove declaration.
1906
c3b1dca4 19072015-03-27 Tobias Burnus <burnus@net-b.de>
1908
1909 PR c/65586
1910 * c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
1911 error out.
1912 (c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
1913 c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
1914 Update calls to not error for skipped omp pragmas with -fopenmp-simd.
1915
1443772f 19162015-03-19 Jakub Jelinek <jakub@redhat.com>
1917
1918 * c-decl.c (c_decl_attributes): Also add "omp declare target"
1919 attribute for DECL_EXTERNAL VAR_DECLs.
1920
76738f56 19212015-03-11 Jakub Jelinek <jakub@redhat.com>
1922
1923 * c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
1924 argument.
1925
16f958b3 19262015-03-10 Jakub Jelinek <jakub@redhat.com>
1927
1928 PR c/65120
1929 * c-typeck.c (parser_build_binary_op): Check for tcc_comparison
1930 before preparing arguments to warn_logical_not_parentheses.
1931
6054103a 19322015-03-09 Jakub Jelinek <jakub@redhat.com>
1933
1934 PR c/65120
1935 * c-typeck.c (parser_build_binary_op): Don't warn for
1936 !!x == y or !b == y where b is _Bool.
1937
de3a1e03 19382015-03-09 Marek Polacek <polacek@redhat.com>
1939
1940 * c-convert.c (convert): Make use of do_ubsan_in_current_function.
1941 * c-decl.c (grokdeclarator): Likewise.
1942 * c-typeck.c (build_binary_op): Likewise.
1943
084e6bf0 19442015-02-27 Marek Polacek <polacek@redhat.com>
1945
1946 PR c/65228
1947 * c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
1948
4d7c4134 19492015-02-14 Marek Polacek <polacek@redhat.com>
1950
1951 PR c/64768
1952 * c-decl.c (grokdeclarator): Set the range of a flexible array member
1953 declared through a typedef name.
1954
b1380826 19552015-02-13 Marek Polacek <polacek@redhat.com>
1956
1957 PR c/65050
1958 * c-decl.c (grokdeclarator): Print also the type when giving
1959 the error message about array's incomplete element type.
1960
35ff54b5 19612015-02-11 Jakub Jelinek <jakub@redhat.com>
1962
1963 PR c/64824
1964 * c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
1965 check in the POP macro.
1966
46861609 19672015-02-09 Marek Polacek <polacek@redhat.com>
1968
1969 PR c/64856
1970 * c-typeck.c (process_init_element): Don't always wrap
1971 COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when
1972 initializing a range of elements.
1973
bbf8fbec 19742015-02-04 Jakub Jelinek <jakub@redhat.com>
1975
1976 PR c/64824
1977 PR c/64868
1978 * c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.
1979
46861609 19802015-02-02 Bruno Loff <bruno.loff@gmail.com>
1f0ce3ac 1981
1982 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
1983 processing enum declaration.
1984
70279be9 19852015-01-29 Marek Polacek <polacek@redhat.com>
1986
1987 PR c/64709
1988 * c-typeck.c (pop_init_level): If constructor_elements has
1989 exactly one element with integer_zerop value, set constructor_zeroinit
1990 to 1. Remove braces around warning_init call.
1991
591970b4 19922015-01-27 Jakub Jelinek <jakub@redhat.com>
1993
1994 PR c/64766
1995 * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
1996 of FUNCTION_DECLs with error_mark_node.
1997
87778dc4 19982015-01-26 Jakub Jelinek <jakub@redhat.com>
1999
2000 PR c/64778
2001 * c-typeck.c (convert_arguments): Return -1 if there are
2002 error_args, even if we've diagnosed too many arguments.
2003
cffdfb3d 20042015-01-21 Richard Biener <rguenther@suse.de>
2005
2006 PR middle-end/64313
2007 * c-decl.c (merge_decls): Call set_builtin_decl_declared_p
2008 for builtins the user declared correctly.
2009
ca4c3545 20102015-01-15 Thomas Schwinge <thomas@codesourcery.com>
2011 Bernd Schmidt <bernds@codesourcery.com>
2012 Cesar Philippidis <cesar@codesourcery.com>
2013 James Norris <jnorris@codesourcery.com>
2014 Jakub Jelinek <jakub@redhat.com>
2015 Ilmir Usmanov <i.usmanov@samsung.com>
2016
2017 * c-parser.c: Include "gomp-constants.h".
2018 (c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
2019 omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
2020 Use OMP_CLAUSE_SET_MAP_KIND.
2021 (c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
2022 PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
2023 (c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
2024 PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
2025 PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
2026 (c_parser_omp_clause_name): Handle "auto", "async", "copy",
2027 "copyout", "create", "delete", "deviceptr", "gang", "host",
2028 "num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
2029 "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
2030 "present_or_create", "pcreate", "seq", "self", "vector",
2031 "vector_length", "wait", "worker".
2032 (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
2033 (OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
2034 (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
2035 (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
2036 (c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
2037 (c_parser_oacc_wait_list, c_parser_oacc_data_clause)
2038 (c_parser_oacc_data_clause_deviceptr)
2039 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
2040 (c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
2041 (c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
2042 (c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
2043 (c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
2044 (c_parser_oacc_parallel, c_parser_oacc_update)
2045 (c_parser_oacc_wait): New functions.
2046 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
2047 (c_finish_oacc_data): New prototypes.
2048 * c-typeck.c: Include "gomp-constants.h".
2049 (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
2050 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
2051 OMP_CLAUSE_SET_MAP_KIND.
2052 (c_finish_oacc_parallel, c_finish_oacc_kernels)
2053 (c_finish_oacc_data): New functions.
2054 (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
2055 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
2056 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
2057 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
2058 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
2059 GOMP_MAP_FORCE_DEVICEPTR.
2060
1f78217c 20612015-01-09 Michael Collison <michael.collison@linaro.org>
2062
2063 * c-array-notation.c: Include hash-set.h, machmode.h,
2064 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
2065 fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
2066 * c-aux-info.c: Ditto.
2067 * c-convert.c: Ditto.
2068 * c-decl.c: Ditto.
2069 * c-errors.c: Ditto.
2070 * c-lang.c: Dittoxs.
2071 * c-objc-common.c: Ditto.
2072 * c-parser.c: Ditto.
2073 * c-typeck.c: Include hash-set.h, machmode.h,
2074 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
2075 fold-const.h, wide-int.h, inchash.h, real.h and
2076 fixed-value.h due to flattening of tree.h.
2077
15e18a8c 20782015-01-07 Marek Polacek <polacek@redhat.com>
2079
2080 PR c/64417
2081 * c-typeck.c (process_init_element): Disallow initialization of
2082 a flexible array member with a string constant if the structure
2083 is in an array.
2084
d353bf18 20852015-01-05 Jakub Jelinek <jakub@redhat.com>
2086
823a9dd4 2087 PR sanitizer/64344
2088 * c-typeck.c (convert_for_assignment, c_finish_return): For
2089 -fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
2090 types also set in_late_binary_op around convert call.
2091 * c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
2092 to integral type casts, if not in_late_binary_op, pass c_fully_fold
2093 result on expr as last argument to ubsan_instrument_float_cast,
2094 if in_late_binary_op, don't use c_save_expr but save_expr.
2095
d353bf18 2096 Update copyright years.
2097
92b63884 20982015-01-05 Marek Polacek <polacek@redhat.com>
2099
2100 PR c/64423
2101 * c-typeck.c (build_array_ref): Pass loc down to
2102 warn_array_subscript_with_type_char.
2103
92a44a68 21042014-12-20 Martin Uecker <uecker@eecs.berkeley.edu>
8a8211df 2105
2106 * c-typeck.c: New behavious for pointers to arrays with qualifiers
2107 (common-pointer-type): For pointers to arrays take qualifiers from
2108 element type.
2109 (build_conditional_expr): Add warnings for lost qualifiers.
2110 (comp-target-types): Allow pointers to arrays with different qualifiers.
2111 (convert-for-assignment): Adapt warnings for discarded qualifiers. Add
2112 WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
2113 to PEDWARN_FOR_QUALIFIERS.
2114
35ea0139 21152014-12-17 Jakub Jelinek <jakub@redhat.com>
2116
2117 PR sanitizer/64289
2118 * c-convert.c: Include ubsan.h.
2119 (convert): For real -> integral casts and
2120 -fsanitize=float-cast-overflow don't call convert_to_integer, but
2121 instead instrument the float cast directly.
2122
f9e245b2 21232014-11-29 Jakub Jelinek <jakub@redhat.com>
2124
2125 * c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
2126 c_finish_stmt_expr): Remove NULL last argument from
2127 create_tmp_var_raw and create_tmp_var calls.
2128 * c-array-notation.c (fix_builtin_array_notation_fn,
2129 build_array_notation_expr, fix_conditional_array_notations_1,
2130 fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
2131
fce2dbd1 21322014-11-28 Marek Polacek <polacek@redhat.com>
2133
2134 PR c/63862
2135 * c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
2136 convert the right operand to integer type.
2137
396c36b7 21382014-11-25 Marek Polacek <polacek@redhat.com>
2139
2140 PR c/63877
2141 * c-decl.c (start_function): Disable -Wmissing-declarations warning
2142 for inline functions.
2143
c61ef207 21442014-11-21 Jakub Jelinek <jakub@redhat.com>
2145
2146 PR target/63764
2147 * c-typeck.c (build_array_ref): Adjust
2148 convert_vector_to_pointer_for_subscript caller. If it returns true,
2149 call non_lvalue_loc on the result.
2150
565353e8 21512014-11-11 Richard Biener <rguenther@suse.de>
2152
2153 * c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
2154 to true.
2155
fdd735a7 21562014-11-10 Andi Kleen <ak@linux.intel.com>
2157
2158 PR c/60804
2159 * c-parser.c (c_parser_statement_after_labels): Call
2160 check_no_cilk.
2161 (c_parser_if_statement): Dito.
2162 (c_parser_switch_statement): Dito.
2163 (c_parser_while_statement): Dito.
2164 (c_parser_do_statement): Dito.
2165 (c_parser_for_statement): Dito.
2166 * c-typeck.c (c_finish_loop): Dito.
2167
0feb4de1 21682014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
2169
2170 * c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
2171 OPT_Wshift_count_overflow in the warnings.
2172
a3fec48a 21732014-10-30 Marek Polacek <polacek@redhat.com>
2174
2175 * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
2176 print the stripped version as well, if they're not the same.
2177
3754d046 21782014-10-29 Richard Sandiford <richard.sandiford@arm.com>
2179
2180 * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
2181 machine_mode.
2182
1140c305 21832014-10-28 Andrew MacLeod <amacleod@redhat.com>
2184
2185 * c-decl.c: Adjust include files.
2186 * c-parser.c: Ditto.
2187
ab103e33 21882014-10-27 Phil Muldoon <pmuldoon@redhat.com>
2189 Tom Tromey <tromey@redhat.com>
2190
2191 * c-tree.h (enum c_oracle_request): New.
2192 (c_binding_oracle_function): New typedef.
2193 (c_binding_oracle, c_pushtag, c_bind): Declare.
2194 * c-decl.c (c_binding_oracle): New global.
2195 (I_SYMBOL_CHECKED): New macro.
2196 (i_symbol_binding): New function.
2197 (I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
2198 (I_TAG_CHECKED): New macro.
2199 (i_tag_binding): New function.
2200 (I_TAG_BINDING, I_TAG_DECL): Redefine.
2201 (I_LABEL_CHECKED): New macro.
2202 (i_label_binding): New function.
2203 (I_LABEL_BINDING, I_LABEL_DECL): Redefine.
2204 (c_print_identifier): Save and restore c_binding_oracle.
2205 (c_pushtag, c_bind): New functions.
2206
94ea8568 22072014-10-27 Andrew MacLeod <amacleod@redhat.com>
2208
2209 * c-typeck.c: Adjust include files.
2210
32ecf960 22112014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
2212
2213 PR c++/53061
2214 * c-objc-common.c (c_objc_common_init): Do not do diagnostics
2215 initialization here...
2216 (c_initialize_diagnostics): ... but here. Set defaults after
2217 building pretty-printer.
2218
2981340f 22192014-10-23 Marek Polacek <polacek@redhat.com>
2220
2221 PR c/63626
2222 * c-decl.c (pop_scope): Don't print warning in external_scope.
2223
d303aeaf 22242014-10-19 Marek Polacek <polacek@redhat.com>
2225
2226 PR c/63567
2227 * c-typeck.c (output_init_element): Allow initializing objects with
2228 static storage duration with compound literals even in C99 and add
2229 pedwarn for it.
2230
bccf97da 22312014-10-17 Marek Polacek <polacek@redhat.com>
2232
2233 PR c/63567
2234 * c-typeck.c (digest_init): Allow initializing objects with static
2235 storage duration with compound literals even in C99 and add pedwarn
2236 for it.
2237
d9c77450 22382014-10-17 Marek Polacek <polacek@redhat.com>
2239
2240 PR c/63543
2241 * c-tree.h (C_TYPE_ERROR_REPORTED): Define.
2242 * c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
2243 error multiple times. Print the type.
2244
a2bbd0a7 22452014-10-17 Marek Polacek <polacek@redhat.com>
2246
2247 PR c/63549
2248 * c-typeck.c (build_array_ref): Bail if the index in an incomplete
2249 type.
2250
e610d2b2 22512014-10-17 Marek Polacek <polacek@redhat.com>
2252
2253 * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
2254 (start_function): Use OPT_Wimplicit_int instead of 0.
2255 (store_parm_decls_oldstyle): Likewise.
2256
6b6e56b6 22572014-10-17 Alan Modra <amodra@gmail.com>
2258
2259 PR middle-end/61848
2260 * c-decl.c (merge_decls): Don't merge section name or tls model
2261 to newdecl symtab node, instead merge to olddecl. Override
2262 existing olddecl section name. Set tls_model for all thread-local
2263 vars, not just OMP thread-private ones. Remove incorrect comment.
2264
a3020f2f 22652014-10-16 Andrew MacLeod <amacleod@redhat.com>
2266
2267 * c-decl.c: Adjust include files.
2268
9f75f026 22692014-10-14 DJ Delorie <dj@redhat.com>
2270
2271 * c-parser.c (c_parse_init): Add RID entries for each __intN.
2272 (c_token_starts_typename): Check all __intN, not just __int128.
2273 (c_token_starts_declspecs): Likewise.
2274 (c_parser_declspecs): Likewise.
2275 (c_parser_attribute_any_word): Likewise.
2276 (c_parser_objc_selector): Likewise.
2277 * c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
2278 (struct c_declspecs): Add int_n_idx field to record *which* __intN
2279 is specified.
2280 * c-decl.c (declspecs_add_type): Check for all __intN, not just
2281 __int128.
2282 (finish_declspecs): Likewise.
2283
4f284d4a 22842014-10-13 Anthony Brandon <anthony.brandon@gmail.com>
2285
2286 * c-parser.c (c_parser_all_labels): New function to replace
2287 the duplicate code.
2288 (c_parser_statement): Call the new function.
2289
61a892dc 22902014-10-09 Marek Polacek <polacek@redhat.com>
2291
2292 PR c/63480
2293 * c-typeck.c (pop_init_level): Don't warn about initializing
2294 with { }.
2295
4e888fd9 22962014-10-07 Marek Polacek <polacek@redhat.com>
2297
2298 PR c/59717
2299 * c-decl.c (header_for_builtin_fn): New function.
2300 (implicitly_declare): Suggest which header to include.
2301
224bdd51 23022014-10-07 Marek Polacek <polacek@redhat.com>
2303
2304 * c-convert.c (convert): Use error_operand_p.
2305 * c-typeck.c (require_complete_type): Likewise.
2306 (really_atomic_lvalue): Likewise.
2307 (digest_init): Likewise.
2308 (handle_omp_array_sections_1): Likewise.
2309
a2bc79db 23102014-10-03 Marek Polacek <polacek@redhat.com>
2311
2312 PR c/63453
2313 * c-decl.c (pop_scope): Don't warn about "inline function declared
2314 but never defined" for functions marked with gnu_inline attribute.
2315
4fc4088b 23162014-09-25 Jakub Jelinek <jakub@redhat.com>
2317
2318 PR c++/63249
2319 * c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
2320 on low_bound and length.
2321
5213d6c9 23222014-09-24 Marek Polacek <polacek@redhat.com>
2323
2324 PR c/61405
2325 PR c/53874
2326 * c-parser.c: Don't define CPP_KEYWORD.
2327 (c_parser_switch_statement): Pass original type to c_finish_case.
2328 * c-tree.h (c_finish_case): Update declaration.
2329 * c-typeck.c (c_finish_case): Add TYPE parameter. Pass it
2330 conditionally to c_do_switch_warnings.
2331
6ea2b1bc 23322014-09-03 Marek Polacek <polacek@redhat.com>
2333
2334 PR c/62024
2335 * c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
2336 conversions.
2337
40750995 23382014-09-02 Jakub Jelinek <jakub@redhat.com>
2339 Balaji V. Iyer <balaji.v.iyer@intel.com>
2340 Igor Zamyatin <igor.zamyatin@intel.com>
2341
2342 * c-parser.c (c_parser_cilk_for): New function.
2343 (c_parser_cilk_grainsize): Likewise.
2344 (c_get_temp_regvar): Likewise.
2345 (c_parser_statement_after_labels): Added RID_CILK_FOR case.
2346 (c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
2347 (c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
2348 * c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
2349 case.
2350
8c583613 23512014-08-27 Chen Gang <gang.chen.5i5j@gmail.com>
2352
2353 * c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
2354 with using HOST_WIDE_INT without truncation to 'int'
2355
dc6229e8 23562014-08-22 Marek Polacek <polacek@redhat.com>
2357
2358 PR c++/62199
2359 * c-typeck.c (parser_build_binary_op): Adjust call to
2360 warn_logical_not_parentheses.
2361
5fdda74b 23622014-08-22 Igor Zamyatin <igor.zamyatin@intel.com>
2363
2364 PR other/62008
2365 * c-parser.c (c_parser_array_notation): Check for correct
2366 type of an array added.
2367
78bf4156 23682014-08-19 Marek Polacek <polacek@redhat.com>
2369
2370 PR c++/62153
2371 * c-typeck.c (build_binary_op): If either operand of a comparison
2372 is a boolean expression, call maybe_warn_bool_compare.
2373
005b8fe7 23742014-08-19 Patrick Palka <ppalka@gcc.gnu.org>
2375
2376 PR c/45584
2377 * c-typeck.c (build_c_cast): Do a conversion even when the
2378 TYPE_MAIN_VARIANTs are the same.
2379
508ea33a 23802014-08-19 Marek Polacek <polacek@redhat.com>
2381
2382 * c-decl.c (diagnose_mismatched_decls): Unconditionally call
2383 pedwarn_c99 instead of pedwarn.
2384 (grokfield): Likewise.
2385 (warn_defaults_to): New function.
2386 (grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
2387 Unconditionally call pedwarn_c99 instead of pedwarn.
2388 (start_function): Call warn_defaults_to instead of pedwarn_c99.
2389 (declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
2390 check flag_isoc11 before.
2391 * c-errors.c (pedwarn_c99): Change the return type to bool.
2392 Handle -Wc99-c11-compat.
2393 * c-parser.c (disable_extension_diagnostics): Handle
2394 warn_c99_c11_compat.
2395 (restore_extension_diagnostics): Likewise.
2396 (c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
2397 instead of pedwarn, don't check flag_isoc11 before.
2398 (c_parser_declspecs): Likewise.
2399 (c_parser_alignas_specifier): Likewise.
2400 (c_parser_alignof_expression): Likewise.
2401 (c_parser_generic_selection): Likewise.
2402 * c-tree.h (pedwarn_c99): Update declaration.
2403 * c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
2404 of pedwarn_c99.
2405
806fe15e 24062014-08-19 Marek Polacek <polacek@redhat.com>
2407
2408 * c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
2409 to pedwarn_c90.
2410 * c-errors.c: Include "opts.h".
2411 (pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
2412 * c-parser.c (disable_extension_diagnostics): Handle negative value
2413 of warn_c90_c99_compat, too.
2414 (restore_extension_diagnostics): Likewise.
2415 (c_parser_compound_statement_nostart): Pass
2416 OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.
2417
89868e45 24182014-08-12 Marek Polacek <polacek@redhat.com>
2419
2420 * c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
2421 Add pedwarn.
2422 (c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
2423 Likewise.
2424 (c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.
2425
92a44a68 24262014-08-10 Marek Polacek <polacek@redhat.com>
890c2e2f 2427
2428 PR c/51849
2429 * c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
2430 Call pedwarn_c90 instead of pedwarn.
2431 (check_bitfield_type_and_width): Likewise.
2432 (declspecs_add_qual): Likewise.
2433 (declspecs_add_type): Likewise.
2434 (warn_variable_length_array): Unify function for -pedantic and -Wvla.
2435 Adjust to only call pedwarn_c90.
2436 (grokdeclarator): Remove pedantic && !flag_isoc99 check. Call
2437 pedwarn_c90 instead of pedwarn.
2438 * c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
2439 * c-parser.c (disable_extension_diagnostics): Handle
2440 warn_c90_c99_compat.
2441 (restore_extension_diagnostics): Likewise.
2442 (c_parser_enum_specifier): Remove check for !flag_isoc99. Call
2443 pedwarn_c90 instead of pedwarn.
2444 (c_parser_initelt): Likewise.
2445 (c_parser_postfix_expression): Likewise.
2446 (c_parser_postfix_expression_after_paren_type): Likewise.
2447 (c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
2448 * c-tree.h: Fix formatting.
2449 * c-typeck.c (build_array_ref): Remove check for !flag_isoc99. Call
2450 pedwarn_c90 instead of pedwarn.
2451
7149db5f 24522014-08-07 Trevor Saunders <tsaunders@mozilla.com>
2453
2454 * c-typeck.c: Remove include of pointer-set.h.
2455
1c75251e 24562014-08-07 Marek Polacek <polacek@redhat.com>
2457
2458 * c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.
2459
06ecf488 24602014-08-02 Trevor Saunders <tsaunders@mozilla.com>
2461
2462 * c-typeck.c: Use hash_map instead of pointer_map.
2463
431205b7 24642014-08-02 Trevor Saunders <tsaunders@mozilla.com>
2465
2466 * c-decl.c: Use hash_set instead of pointer_set.
2467
3394c80c 24682014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
2469
2470 PR middle-end/61455
2471 * c-array-notation.c (expand_array_notations): Handling
2472 of DECL_EXPR added.
2473
f22a2cb7 24742014-07-31 Marc Glisse <marc.glisse@inria.fr>
2475
2476 PR c++/60517
2477 * c-typeck.c (c_finish_return): Return 0 instead of the address of
2478 a local variable.
2479
74691f46 24802014-07-30 Tom Tromey <tromey@redhat.com>
2481
2482 * c-typeck.c (struct constructor_stack) <designator_depth>: New
2483 field.
2484 (really_start_incremental_init, push_init_level): Initialize
2485 designator_depth.
2486 (pop_init_level): Set global designator_depth.
2487 (process_init_element): Check for designated_init attribute.
2488
f9767fb6 24892014-07-20 Marek Polacek <polacek@redhat.com>
2490
2491 PR c/61852
2492 * c-decl.c (implicit_decl_warning): Add location_t parameter. Use it.
2493 (implicitly_declare): Pass location to implicit_decl_warning.
2494
305d96bc 24952014-07-14 Jakub Jelinek <jakub@redhat.com>
2496
2497 PR middle-end/61294
2498 * c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
2499 If non-NULL, call c_parser_check_literal_zero.
2500 (c_parser_check_literal_zero): New function.
2501 (c_parser_postfix_expression_after_primary): Adjust
2502 c_parser_expr_list caller, handle -Wmemset-transposed-args.
2503
87d59e72 25042014-07-06 Marek Polacek <polacek@redhat.com>
2505
2506 PR c/6940
2507 * c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
2508 * c-tree.h (C_ARRAY_PARAMETER): Define.
2509 * c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
2510 function parameter.
2511
752098c8 25122014-07-02 Jan Hubicka <hubicka@ucw.cz>
92a44a68 2513 Chen Gang <gang.chen.5i5j@gmail.com>
752098c8 2514
2515 * c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
2516 releasing symbol.
2517
1207866e 25182014-07-01 Marek Polacek <polacek@redhat.com>
2519
2520 * c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
2521 instead of 0 to WARN_FOR_ASSIGNMENT.
2522
7a6bbb76 25232014-07-01 Marek Polacek <polacek@redhat.com>
2524
2525 PR c/58286
2526 * c-typeck.c (convert_for_assignment): Pass
2527 OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
2528
70575064 25292014-06-30 Marek Polacek <polacek@redhat.com>
2530
2531 * c-decl.c (grokdeclarator): Don't instrument VLAs if the function
2532 has no_sanitize_undefined attribute.
2533
4879e4cf 25342014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
2535
2536 PR middle-end/57541
2537 * c-array-notation.c (fix_builtin_array_notation_fn):
2538 Check for 0 arguments in builtin call. Check that bultin argument is
2539 correct.
2540 * c-parser.c (c_parser_array_notation): Check for incorrect initial
2541 index.
2542
45c5b823 25432014-06-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
2544
2545 * c-parser.c (c_parser_declaration_or_fndef): Discard all type
2546 qualifiers in __auto_type for atomic types.
2547 (c_parser_typeof_specifier): Discard all type qualifiers in
2548 __typeof__ for atomic types.
2549
430b73ee 25502014-06-25 Marek Polacek <polacek@redhat.com>
2551
2552 PR c/61162
2553 * c-parser.c (c_parser_statement_after_labels): Pass the location of
2554 the return expression to c_finish_return.
2555
9580cb79 25562014-06-25 Jakub Jelinek <jakub@redhat.com>
2557
2558 * c-typeck.c (c_finish_omp_clauses): Make sure
2559 OMP_CLAUSE_LINEAR_STEP has correct type.
2560
c1f445d2 25612014-06-24 Trevor Saunders <tsaunders@mozilla.com>
2562
2563 * c-decl.c: Adjust.
2564
e471cc6f 25652014-06-24 Jakub Jelinek <jakub@redhat.com>
2566
2567 * c-parser.c (c_parser_omp_for_loop): For
2568 #pragma omp parallel for simd move lastprivate clause from parallel
2569 to for rather than simd.
2570
499b7390 25712014-06-23 Marek Polacek <polacek@redhat.com>
2572
2573 * c-typeck.c (parser_build_binary_op): Don't call
2574 warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
2575
5e68df57 25762014-06-15 Jan Hubicka <hubicka@ucw.cz>
2577
2578 * c-parser.c (c_parser_omp_threadprivate): Likewise.
2579 * c-decl.c (merge_decls): Likewise.
2580
064b0d02 25812014-06-09 Marek Polacek <polacek@redhat.com>
2582
2583 PR c/36446
2584 * c-typeck.c (error_init): Call inform instead of error_at.
2585 (pedwarn_init): Call inform instead of pedwarn.
2586 (warning_init): Call inform instead of warning_at.
2587
71e19e54 25882014-06-07 Jan Hubicka <hubicka@ucw.cz>
2589
2590 * c-decl.c (merge_decls): Use set_decl_section_name.
2591 (duplicate_decls): Remove node if it exists.
2592
95cdf3fd 25932014-06-05 S. Gilles <sgilles@terpmail.umd.edu>
2594
2595 PR c/53119
2596 * c-typeck.c (push_init_level, process_init_element,
2597 pop_init_level): Correct check for zero initialization, move
2598 missing brace warning to respect zero initialization.
2599
a07f86a6 26002014-06-05 Marek Polacek <polacek@redhat.com>
2601
2602 PR c/56724
2603 * c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.
2604
32dc1512 26052014-06-05 Marek Polacek <polacek@redhat.com>
2606
2607 PR c/49706
2608 * c-typeck.c (parser_build_binary_op): Warn when logical not is used
2609 on the left hand side operand of a comparison.
2610
64cf1262 26112014-06-05 Marek Polacek <polacek@redhat.com>
2612
2613 PR c/48062
2614 * c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
2615 Print note only if the warning was printed.
2616
071f6d39 26172014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
2618
2619 PR c/58942
2620 * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
2621 with a pointer.
2622
c69ec07d 26232014-06-03 Marek Polacek <polacek@redhat.com>
2624
2625 PR c/60439
2626 * c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
2627 c_start_case.
2628 * c-tree.h (c_start_case): Update.
2629 * c-typeck.c (c_start_case): Add new boolean parameter. Warn if
2630 switch condition has boolean value.
2631
f7715905 26322014-06-02 Andrew MacLeod <amacleod@redhat.com>
2633
2634 * c-decl.c: Include builtins.h.
2635 * c-parser.c: Likewise.
2636
dcfff6f9 26372014-05-27 Marek Polacek <polacek@redhat.com>
2638
2639 PR c/56724
2640 * c-typeck.c (convert_arguments): Get location of a parameter. Change
2641 error and warning calls to error_at and warning_at. Pass location of
2642 a parameter to it. Call warning_at with OPT_Wtraditional_conversion.
2643 (convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
2644 WARN_FOR_QUALIFIERS. Pass expr_loc to those.
2645
c048c42c 26462014-05-26 Igor Zamyatin <igor.zamyatin@intel.com>
2647
2648 PR c/61191
2649 * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
2650 function parameters.
2651
8c016392 26522014-05-23 Jan Hubicka <hubicka@ucw.cz>
2653
2654 * c-decl.c (merge_decls): Preserve symtab node pointers.
2655 (duplicate_decls): Free new decl.
2656
184a718f 26572014-05-23 Thomas Schwinge <thomas@codesourcery.com>
2658
6ce915ef 2659 * c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
2660 initialization.
2661
184a718f 2662 * c-parser.c (c_parser_omp_target): Return bool values.
2663
22ac3f78 26642014-05-22 Thomas Schwinge <thomas@codesourcery.com>
2665
2666 * c-parser.c (c_parser_omp_clause_thread_limit): Rename
2667 num_teams_loc variable to num_thread_limit_loc.
2668
3ab4693e 26692014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2670
2671 * c-array-notation.c (expand_array_notations): Use void_node
2672 instead of void_zero_node.
2673
25a27413 26742014-05-17 Trevor Saunders <tsaunders@mozilla.com>
2675
2676 * c-decl.c (finish_struct): Adjust.
2677 (finish_enum): Likewise.
2678 (bind): Adjust.
2679 (record_inline_static): Likewise.
2680 (push_scope): Likewise.
2681 (make_label): Likewise.
2682 (lookup_label_for_goto): Likewise.
2683 (finish_struct): Likewise.
2684 (finish_enum): Likewise.
2685 (store_parm_decls): Likewise.
2686 (c_push_function_context): Likewise.
2687 * c-lang.h: Remove usage of variable_size gty attribute.
2688 * c-parser.c (c_parse_init): Adjust.
2689 (c_parse_file): Likewise.
2690
172b8440 26912014-05-13 Marek Polacek <polacek@redhat.com>
2692
2693 PR c/61162
2694 * c-typeck.c (convert_for_assignment): Pass location to
2695 WARN_FOR_ASSIGNMENT instead of input_location.
2696
c9e51d25 26972014-05-10 Marek Polacek <polacek@redhat.com>
2698
2699 * c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
2700 maybe_warn_string_init.
2701 (c_parser_postfix_expression_after_paren_type): Pass type_loc to
2702 maybe_warn_string_init.
2703 * c-tree.h (maybe_warn_string_init): Update declaration.
2704 * c-typeck.c (maybe_warn_string_init): Add location parameter.
2705 Call pedwarn_init with loc instead of with input_location.
2706 (digest_init): Pass init_loc to maybe_warn_string_init.
2707 (pop_init_level): Call pedwarn_init with loc instead of with
2708 input_location.
2709 (set_init_index): Likewise.
2710 (process_init_element): Likewise.
2711
53de1631 27122014-05-09 Marek Polacek <polacek@redhat.com>
2713
2714 PR c/61096
2715 * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
2716 (c_parser_initelt): Pass location to set_init_label. Pass array index
2717 location to set_init_index.
2718 * c-tree.h (push_init_level): Update declaration.
2719 (pop_init_level): Likewise.
2720 (set_init_index): Likewise.
2721 (set_init_label): Likewise.
2722 * c-typeck.c (error_init): Add location parameter. Call error_at
2723 instead of error.
2724 (digest_init): Pass init_loc to error_init.
2725 (really_start_incremental_init):
2726 (push_init_level): Add location parameter. Pass loc to pop_init_level
2727 and error_init.
2728 (pop_init_level): Likewise.
2729 (set_designator): Add location parameter. Pass loc to pop_init_level,
2730 push_init_level, and error_init.
2731 (set_init_index): Add location parameter. Pass loc to error_init and
2732 set_designator.
2733 (set_init_label): Likewise.
2734 (output_init_element): Pass loc to error_init.
2735 (process_init_element): Pass loc to error_init, pop_init_level,
2736 pedwarn_init, and push_init_level.
2737
3e5a8b00 27382014-05-09 Marek Polacek <polacek@redhat.com>
2739
2740 PR c/50459
2741 * c-parser.c (c_parser_attributes): Parse the arguments as an
2742 expression-list if the attribute takes identifier.
2743
c2c4ae8d 27442014-05-08 Marek Polacek <polacek@redhat.com>
2745
2746 PR c/61053
2747 * c-decl.c (grokdeclarator): Use min_align_of_type instead of
2748 TYPE_ALIGN_UNIT.
2749
2026249a 27502014-05-08 Marek Polacek <polacek@redhat.com>
2751
2752 PR c/61077
2753 * c-decl.c (start_function): Warn for _Atomic-qualified return type
2754 of main.
2755
960d5a55 27562014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
2757 Mike Stump <mikestump@comcast.net>
2758 Richard Sandiford <rdsandiford@googlemail.com>
2759
2760 * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
2761 (finish_enum): Use wide-int interfaces.
2762 * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
2763 * c-typeck.c (build_c_cast): Likewise.
2764 (set_nonincremental_init_from_string): Likewise.
2765 (c_tree_equal): Likewise.
2766
e0e14cbd 27672014-05-02 Marek Polacek <polacek@redhat.com>
2768
2769 PR c/25801
2770 * c-typeck.c (c_size_in_bytes): Update comment. Don't call error.
2771 Return size_one_node when the type is not complete.
2772 (pointer_diff): Remove comment.
2773 (build_unary_op): Improve error messages.
2774
27ff10cb 27752014-05-02 Marek Polacek <polacek@redhat.com>
2776
2777 * c-typeck.c (c_finish_return): Separate warning_at calls.
2778
68410ce9 27792014-05-02 Marek Polacek <polacek@redhat.com>
2780
2781 * c-tree.h (error_init): Remove declaration.
2782 (pedwarn_init): Likewise.
2783 * c-typeck.c (error_init): Make static and move above.
2784 (pedwarn_init): Likewise.
2785 (warning_init): Move above.
2786 (maybe_warn_string_init): Likewise.
2787
e8e27117 27882014-05-01 Jeff Law <law@redhat.com>
2789
2790 Revert:
2791
2792 2014-04-24 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
2793 * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
2794 avoid goto.
2795
971df357 27962014-05-02 Marek Polacek <polacek@redhat.com>
2797
2798 PR c/60784
2799 * c-typeck.c (push_init_level): Set constructor_designated to
2800 p->designated for structures.
2801
de548fe5 28022014-05-01 Marek Polacek <polacek@redhat.com>
2803
2804 PR c/60915
2805 * c-parser.c (c_parser_declaration_or_fndef): Give better error if
2806 function-definition has an attribute after the declarator.
2807
053a0ded 28082014-05-01 Marek Polacek <polacek@redhat.com>
2809
2810 PR c/60257
2811 * c-typeck.c (warning_init): Add location_t parameter. Call
2812 warning_at instead of warning.
2813 (push_init_level): Pass input_location to warning_init.
2814 (add_pending_init): Add location_t parameter. Pass loc to
2815 warning_init.
2816 (set_nonincremental_init): Pass input_location to add_pending_init.
2817 (set_nonincremental_init_from_string): Likewise.
2818 (output_init_element): Pass loc to warning_init and to
2819 add_pending_init.
2820
694296f2 28212014-05-01 Marek Polacek <polacek@redhat.com>
2822
2823 PR c/43395
2824 * c-typeck.c (c_finish_return): Distinguish between label and variable
2825 when warning about returning local address.
2826
86bbd7f9 28272014-05-01 Marek Polacek <polacek@redhat.com>
2828
2829 PR c/29467
2830 * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
2831 in C89 mode.
2832
e4ab2ef3 28332014-05-01 Marek Polacek <polacek@redhat.com>
2834
2835 PR c/43245
2836 * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
2837 instead of 0 to WARN_FOR_QUALIFIERS.
2838
ca3999cb 28392014-05-01 Marek Polacek <polacek@redhat.com>
2840
2841 PR c/56989
2842 * c-typeck.c (default_conversion): Use better location for
2843 error call.
2844
52cc0072 28452014-04-30 Marek Polacek <polacek@redhat.com>
2846
2847 * c-typeck.c (build_binary_op): Call ubsan_instrument_division
2848 also when SANITIZE_FLOAT_DIVIDE is on.
2849
af379dd3 28502014-04-30 Marek Polacek <polacek@redhat.com>
2851
2852 PR c/60139
2853 * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
2854 and pedwarn_init. Use loc insted of input_location.
2855
b069c2a0 28562014-04-30 Marek Polacek <polacek@redhat.com>
2857
2858 PR c/60351
2859 * c-typeck.c (build_binary_op): Use location when warning about
2860 shift count.
2861
4a026b48 28622014-04-25 Marek Polacek <polacek@redhat.com>
2863
2864 PR c/18079
2865 * c-decl.c (diagnose_mismatched_decls): Warn for mismatched
2866 always_inline/noinline and hot/cold attributes.
2867
adc93f31 28682014-04-25 Marek Polacek <polacek@redhat.com>
2869
2870 PR c/60114
2871 * c-parser.c (c_parser_initelt): Pass input_location to
2872 process_init_element.
2873 (c_parser_initval): Pass loc to process_init_element.
2874 * c-tree.h (process_init_element): Adjust declaration.
2875 * c-typeck.c (push_init_level): Pass input_location to
2876 process_init_element.
2877 (pop_init_level): Likewise.
2878 (set_designator): Likewise.
2879 (output_init_element): Add location_t parameter. Pass loc to
2880 digest_init.
2881 (output_pending_init_elements): Pass input_location to
2882 output_init_element.
2883 (process_init_element): Add location_t parameter. Pass loc to
2884 output_init_element.
2885
e1029911 28862014-04-24 Jakub Jelinek <jakub@redhat.com>
2887
2888 * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
2889 atomic-clause, allow comma in between atomic-clause and
2890 seq_cst.
2891
9f0a7bc6 28922014-04-22 Jakub Jelinek <jakub@redhat.com>
2893
2894 PR c/59073
2895 * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
2896 fails, don't set OM_PARALLEL_COMBINED and return NULL.
2897
094da06d 28982014-04-12 Igor Zamyatin <igor.zamyatin@intel.com>
2899
2900 PR middle-end/60469
2901 * c-array-notation.c (fix_builtin_array_notation_fn): Use
2902 create_tmp_var instead build_decl for creating temps.
2903 (build_array_notation_expr): Likewise.
2904 (fix_conditional_array_notations_1): Likewise.
2905 (fix_array_notation_expr): Likewise.
2906 (fix_array_notation_call_expr): Likewise.
2907
5a672e62 29082014-03-28 Jakub Jelinek <jakub@redhat.com>
2909
2910 PR c++/60689
2911 * c-tree.h (c_build_function_call_vec): New prototype.
2912 * c-typeck.c (build_function_call_vec): Don't call
2913 resolve_overloaded_builtin here.
2914 (c_build_function_call_vec): New wrapper function around
2915 build_function_call_vec. Call resolve_overloaded_builtin here.
2916 (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
2917 Call c_build_function_call_vec instead of build_function_call_vec.
2918 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
2919 * c-decl.c (finish_decl): Likewise.
2920
f40f5e0e 29212014-03-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
2922
2923 PR c/55383
2924 * c-typeck.c: Use correct format string in cast-qual warning
2925
9ec099a3 29262014-03-07 Thomas Schwinge <thomas@codesourcery.com>
2927
2928 * c-decl.c (c_decl_attributes): Use
2929 lang_hooks.types.omp_mappable_type.
2930 * c-typeck.c (c_finish_omp_clauses): Likewise.
2931
3bfdc94f 29322014-03-06 Marek Polacek <polacek@redhat.com>
2933
2934 PR c/60197
2935 * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
2936 of checking tree code.
2937
8f1128f8 29382014-02-19 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
2939
2940 * c-parser.c (c_parser_declspecs): Replace call to error by error_at.
2941 (c_parser_parameter_declaration): Likewise.
2942
977b1853 29432014-02-19 Marek Polacek <polacek@redhat.com>
2944
2945 PR c/60195
2946 * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
2947 Call mark_exp_read on exp.value.
2948 (build_atomic_assign): Set TREE_NO_WARNING on val and old. Set
2949 TREE_ADDRESSABLE on old instead of val.
2950 (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
2951
825cd6ef 29522014-02-07 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
2953
2954 * c-parser.c (c_parser_get_builtin_args): Replace calls to
2955 C_EXPR_APPEND by vec_safe_push.
2956 * c-tree.h (C_EXPR_APPEND): Remove.
2957
ec761d5a 29582014-01-31 Marek Polacek <polacek@redhat.com>
2959
2960 PR c/59963
2961 * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
2962 build_function_call_vec.
2963 (build_function_call): Likewise.
2964 (build_atomic_assign): Likewise.
2965 (build_function_call_vec): Add arg_loc parameter. Use it.
2966 (convert_arguments): Likewise.
2967 (convert_for_assignment): Rename rhs_loc to expr_loc.
2968 * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
2969 (c_parser_objc_keywordexpr): Likewise.
2970 (c_parser_postfix_expression_after_primary): Call
2971 build_function_call_vec with expr_loc rather than op_loc.
2972 Call c_parser_expr_list to fill arg_loc. Pass arg_loc to
2973 build_function_call_vec.
2974 (c_parser_expr_list): Add locations parameter. Fill it with locations
2975 of function arguments.
2976 * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
2977
22a75734 29782014-01-30 Marek Polacek <polacek@redhat.com>
2979
2980 PR c/59940
2981 * c-typeck.c (build_function_call_vec): Use loc parameter.
2982 (convert_arguments): Add location parameter. Use it.
2983 (ep_convert_and_check): Likewise.
2984 (build_atomic_assign): Adjust convert_for_assignment call.
2985 (build_modify_expr): Likewise.
2986 (digest_init): Likewise.
2987 (c_finish_return): Likewise.
2988 (build_conditional_expr): Adjust ep_convert_and_check calls.
2989 (convert_for_assignment): Add rhs_loc parameter. Use it.
2990 (build_binary_op): Adjust convert_and_check and ep_convert_and_check
2991 calls.
2992
29f580ac 29932014-01-30 Richard Biener <rguenther@suse.de>
2994
2995 PR c/59905
2996 * c-typeck.c (build_function_call_vec): Do not replace calls
2997 to a function via an incompatible type with a runtime abort.
2998
a89e6c15 29992014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
3000
3001 * c-parser.c (c_parser_declaration_or_fndef): Replaced
3002 flag_enable_cilkplus with flag_cilkplus.
3003 (c_parser_direct_declarator_inner): Likewise.
3004 (c_parser_attribute_any_word): Likewise.
3005 (c_parser_attributes): Likewise.
3006 (c_parser_compound_statement): Likewise.
3007 (c_parser_statement_after_labels): Likewise.
3008 (c_parser_if_statement): Likewise.
3009 (c_parser_switch_statement): Likewise.
3010 (c_parser_do_statement): Likewise.
3011 (c_parser_for_statement): Likewise.
3012 (c_parser_unary_expression): Likewise.
3013 (c_parser_postfix_expression): Likewise.
3014 (c_parser_postfix_expression_after_primary): Likewise.
3015 (c_parser_postfix_expression_after_primary): Likewise.
3016 (c_parser_omp_clause_name): Likewise.
3017 (c_finish_omp_declare_simd): Likewise.
3018 (c_parser_cilk_verify_simd): Likewise.
3019 * c-typeck.c (build_array_ref): Likewise.
3020 (build_function_call_vec): Likewise.
3021 (convert_arguments): Likewise.
3022 (build_compound_expr): Likewise.
3023 (c_finish_return): Likewise.
3024 (c_finish_if_stmt): Likewise.
3025 (c_finish_loop): Likewise.
3026 (build_binary_op): Likewise.
3027
2623625f 30282014-01-23 Marek Polacek <polacek@redhat.com>
3029
3030 PR c/59846
3031 * c-typeck.c (parser_build_binary_op): Use location instead of
3032 input_location.
3033 (build_binary_op): Pass location to shorten_compare.
3034
46da3601 30352014-01-23 Marek Polacek <polacek@redhat.com>
3036
3037 PR c/58346
3038 * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
3039 an empty aggregate.
3040
9a9db3c1 30412014-01-23 Marek Polacek <polacek@redhat.com>
3042
3043 PR c/59871
3044 * c-typeck.c (build_compound_expr): Warn even for right-hand operand
3045 of a comma expression.
3046 (emit_side_effect_warnings): Likewise.
3047
69c9b607 30482014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
3049
3050 PR c/59825
3051 * c-array-notation.c (expand_array_notation_exprs): Rewrote this
3052 function to use walk_tree and moved a lot of its functionality to
3053 expand_array_notations.
3054 (expand_array_notations): New function.
3055
7e005ab5 30562014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
3057
3058 * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
3059 attribute an attribute without value.
3060
d6779b5f 30612014-01-23 Jakub Jelinek <jakub@redhat.com>
3062
3063 PR middle-end/58809
3064 * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
3065 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
3066
ec431042 30672014-01-22 Marek Polacek <polacek@redhat.com>
3068
3069 PR c/59891
3070 * c-typeck.c (build_conditional_expr): Call c_fully_fold instead
3071 of remove_c_maybe_const_expr on op1 and op2.
3072
1248c663 30732014-01-15 Jakub Jelinek <jakub@redhat.com>
3074
3075 PR c/58943
3076 * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
3077 effects, preevaluate rhs using SAVE_EXPR first.
3078
0bc789fc 30792014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
3080
3081 PR c++/59631
3082 * c-parser.c (c_parser_postfix_expression): Replaced consecutive if
3083 statements with if-elseif statements.
3084
6685d11c 30852014-01-06 Marek Polacek <polacek@redhat.com>
3086
3087 PR c/57773
3088 * c-decl.c (check_bitfield_type_and_width): Warn for implementation
3089 defined bit-field types only in ISO C.
3090
3aea1f79 30912014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
3092
3093 Update copyright years
3094
e4f22041 30952014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
3096
3097 * c-array-notation.c: Use the standard form for the copyright notice.
3098
74acc703 30992013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com>
3100
3101 * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
3102 (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
3103 field in parser is not empty. If not-empty, call the function
3104 c_parser_finish_omp_declare_simd.
3105 (c_parser_cilk_clause_vectorlength): Modified function to be shared
3106 between SIMD-enabled functions and #pragma simd. Added new parameter.
3107 (c_parser_cilk_all_clauses): Modified the usage of the function
3108 c_parser_cilk_clause_vectorlength as mentioned above.
3109 (c_parser_cilk_simd_fn_vector_attrs): New function.
3110 (c_finish_cilk_simd_fn_tokens): Likewise.
3111 (is_cilkplus_vector_p): Likewise.
3112 (c_parser_omp_clause_name): Added checking for "vectorlength,"
3113 "nomask," and "mask" strings in clause name.
3114 (c_parser_omp_all_clauses): Added 3 new case statements:
3115 PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
3116 PRAGMA_CILK_CLAUSE_NOMASK.
3117 (c_parser_attributes): Added a cilk_simd_fn_tokens parameter. Added a
3118 check for vector attribute and if so call the function
3119 c_parser_cilk_simd_fn_vector_attrs. Also, when Cilk plus is enabled,
3120 called the function c_finish_cilk_simd_fn_tokens.
3121 (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
3122 parser field is non-empty. If so, parse them as you would parse
3123 the omp declare simd pragma.
3124 (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
3125 Added a check when step is a parameter and flag it as error.
3126 (CILK_SIMD_FN_CLAUSE_MASK): New #define.
3127 (c_parser_cilk_clause_name): Changed pragma_cilk_clause to
3128 pragma_omp_clause.
3129
395dc01c 31302013-12-17 Thomas Schwinge <thomas@codesourcery.com>
3131
3132 * c-parser.c (c_parser_omp_parallel): Fix description.
3133
433e804e 31342013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com>
3135
3136 * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
3137 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
3138 (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
3139 * c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
3140
a179a7dc 31412013-12-04 Joseph Myers <joseph@codesourcery.com>
3142
3143 PR c/52023
3144 * c-parser.c (c_parser_alignas_specifier): Use
3145 c_sizeof_or_alignof_type instead of c_alignof.
3146 (c_parser_alignof_expression): Likewise, with min_alignof
3147 parameter depending on alignof spelling used.
3148
bdf1e3c7 31492013-12-04 Marek Polacek <polacek@redhat.com>
3150
3151 PR c/54113
3152 * c-decl.c (start_function): Don't warn for missing prototype for
3153 inline functions.
3154
05e8f674 31552013-12-03 Marek Polacek <polacek@redhat.com>
3156
3157 PR c/59351
3158 * c-decl.c (build_compound_literal): Allow compound literals with
3159 empty initial value.
3160
39f74d66 31612013-12-02 Joseph Myers <joseph@codesourcery.com>
3162
3163 PR c/58235
3164 * c-typeck.c (build_modify_expr): Diagnose assignment to
3165 expression with array type.
3166
f221adca 31672013-11-29 Joseph Myers <joseph@codesourcery.com>
3168
3169 PR c/42262
3170 * c-typeck.c (process_init_element): Do not treat a string as
3171 initializing a whole array when used with a designator for an
3172 individual element.
3173
75bce827 31742013-11-29 Joseph Myers <joseph@codesourcery.com>
3175
3176 PR c/57574
3177 * c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
3178 an inline function following a static declaration.
3179
dc133326 31802013-11-28 Jakub Jelinek <jakub@redhat.com>
3181
3182 PR c/59310
3183 * c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
3184 to p_name before calling c_parser_omp_teams instead of after.
3185 (c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
3186 argument. Remove unused p_name variable.
3187
d09768a4 31882013-11-27 Aldy Hernandez <aldyh@redhat.com>
3189 Jakub Jelinek <jakub@redhat.com>
3190
3191 * c-decl.c (c_builtin_function_ext_scope): Avoid binding if
3192 external_scope is NULL.
3193
73fd9cbe 31942013-11-27 Tom de Vries <tom@codesourcery.com>
3195 Marc Glisse <marc.glisse@inria.fr>
3196
3197 PR c++/59032
3198 * c-typeck.c (build_unary_op): Allow vector increment and decrement.
3199
bc61cadb 32002013-11-22 Andrew MacLeod <amacleod@redhat.com>
3201
3202 * c-typeck.c: Add required include files from gimple.h.
3203
3df42822 32042013-11-22 David Malcolm <dmalcolm@redhat.com>
3205
3206 * c-decl.c (define_label, shadow_tag_warned)
3207 (check_bitfield_type_and_width, grokdeclarator, grokparms,
3208 store_parm_decls_newstyle, store_parm_decls_oldstyle)
3209 (declspecs_add_type): Remove use of in_system_header macro.
3210 * c-parser.c (c_parser_unary_expression): Likewise.
3211 * c-typeck.c (store_init_value, process_init_element)
3212 (c_start_case): Likewise.
3213
3214 * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
3215 macro.
3216
3217 * c-parser.c (c_parser_set_source_position_from_token): Remove
3218 reference to in_system_header from comment.
3219
08f817b3 32202013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
3221
3222 * c-decl.c (grokdeclarator): Update comment to refer to
3223 tree_to_[su]hwi rather than tree_low_cst.
3224
6a0712d4 32252013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
3226
3227 * c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
3228 tree_to_uhwi throughout.
3229
fcb97e84 32302013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
3231
3232 * c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
3233 throughout.
3234
35ec552a 32352013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
3236
3237 * c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
3238 throughout.
3239
f2697631 32402013-11-15 Aldy Hernandez <aldyh@redhat.com>
3241
3242 * c-parser.c (c_parser_cilk_simd): New.
3243 (c_parser_cilk_verify_simd): New.
3244 (c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
3245 (c_parser_omp_for_loop): Add case for NE_EXPR.
3246 Set c_break_label for CILK_SIMD.
3247 (c_parser_cilk_clause_vectorlength): New.
3248 (c_parser_cilk_clause_linear): New.
3249 (c_parser_cilk_clause_name): New.
3250 (c_parser_cilk_all_clauses): New.
3251 * c-typeck.c (build_unary_op): Pass location argument to
3252 readonly_error.
3253 (build_modify_expr): Same.
3254 (build_asm_expr): Same.
3255 (c_finish_bc_stmt): Error on break/continue in loops.
3256
e795d6e1 32572013-11-14 Andrew MacLeod <amacleod@redhat.com>
3258
3259 * c-typeck.c: Include only gimplify.h and gimple.h as needed.
3260
9ed99284 32612013-11-14 Diego Novillo <dnovillo@google.com>
3262
3263 * c-decl.c: Include print-tree.h.
3264 Include stor-layout.h.
3265 Include varasm.h.
3266 Include attribs.h.
3267 Include stringpool.h.
3268 * c-lang.c: Include fold-const.h.
3269 * c-parser.c: Include stringpool.h.
3270 Include attribs.h.
3271 Include stor-layout.h.
3272 Include varasm.h.
3273 Include trans-mem.h.
3274 * c-typeck.c: Include stor-layout.h.
3275 Include trans-mem.h.
3276 Include varasm.h.
3277 Include stmt.h.
3278
4fba5eb9 32792013-11-13 Joseph Myers <joseph@codesourcery.com>
3280
3281 * c-tree.h (c_typespec_keyword): Add cts_auto_type.
3282 * c-decl.c (declspecs_add_type, finish_declspecs): Handle
3283 __auto_type.
3284 * c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
3285 (c_parser_attribute_any_word, c_parser_objc_selector): Handle
3286 RID_AUTO_TYPE.
3287 (c_parser_declspecs): Take argument AUTO_TYPE_OK.
3288 (c_parser_declaration_or_fndef, c_parser_struct_declaration)
3289 (c_parser_declarator, c_parser_direct_declarator_inner)
3290 (c_parser_parameter_declaration, c_parser_type_name): All callers
3291 changed.
3292 (c_parser_declaration_or_fndef): Handle declarations with type
3293 determined from the initializer.
3294
a8783bee 32952013-11-12 Andrew MacLeod <amacleod@redhat.com>
3296
e795d6e1 3297 * c-typeck.c: Include gimplify.h.
a8783bee 3298
d184e0c0 32992013-11-12 Joseph Myers <joseph@codesourcery.com>
3300
3301 * c-tree.h (struct c_declspecs): Add thread_gnu_p field.
3302 * c-parser.c (c_parser_declspecs): Mention _Thread_local in
3303 comment.
3304 * c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
3305 or _Thread_local as appropriate in diagnostics.
3306 (build_null_declspecs): Initialize ret->thread_gnu_p.
3307 (declspecs_add_scspec): Handle either __thread or _Thread_local
3308 for RID_THREAD. Diagnose _Thread_local for pre-C11 standards if
3309 pedantic. Do not disallow _Thread_local extern and _Thread_local
3310 static.
3311
b560fabd 33122013-11-07 Joseph Myers <joseph@codesourcery.com>
3313 Andrew MacLeod <amacleod@redhat.com>
3314
3315 * c-aux-info.c (gen_type): Handle atomic qualifier.
3316 * c-decl.c (validate_proto_after_old_defn): Do not remove atomic
3317 qualifiers when compating types.
3318 (shadow_tag_warned): Handle atomic_p in declspecs.
3319 (quals_from_declspecs): Likewise.
3320 (start_decl): Use c_type_promotes_to when promoting argument
3321 types.
3322 (grokdeclarator): Handle _Atomic.
3323 (get_parm_info): Diagnose any qualifier on "void" as only
3324 parameter.
3325 (store_parm_decls_oldstyle): Do not remove atomic qualifiers when
3326 comparing types. Use c_type_promotes_to when promoting argument
3327 types.
3328 (finish_function): Use c_type_promotes_to when promoting argument
3329 types.
3330 (build_null_declspecs): Handle atomic_p in declspecs.
3331 (declspecs_add_qual): Handle RID_ATOMIC.
3332 * c-parser.c (c_token_starts_typename, c_token_is_qualifier)
3333 (c_token_starts_declspecs): Handle RID_ATOMIC.
3334 (c_parser_declspecs): Handle atomic type specifiers and
3335 qualifiers.
3336 (c_parser_typeof_specifier): Remove const and _Atomic qualifiers
3337 from types of expressions with atomic type.
3338 (c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
3339 (c_parser_attribute_any_word): Handle RID_ATOMIC.
3340 (c_parser_initializer, c_parser_initelt, c_parser_initval)
3341 (c_parser_statement_after_labels, c_parser_switch_statement)
3342 (c_parser_for_statement, c_parser_expr_no_commas)
3343 (c_parser_conditional_expression, c_parser_binary_expression)
3344 (c_parser_cast_expression, c_parser_unary_expression)
3345 (c_parser_postfix_expression)
3346 (c_parser_postfix_expression_after_primary, c_parser_expression):
3347 Use convert_lvalue_to_rvalue.
3348 (c_parser_expression_conv, c_parser_expr_list): Document
3349 conversion of lvalues to rvalues. Use convert_lvalue_to_rvalue.
3350 (c_parser_objc_synchronized_statement): Use
3351 convert_lvalue_to_rvalue.
3352 (c_parser_objc_selector): Handle RID_ATOMIC.
3353 (c_parser_objc_receiver, c_parser_array_notation): Use
3354 convert_lvalue_to_rvalue.
3355 * c-tree.h (ctsk_typeof): Adjust comment to mention use for
3356 _Atomic (type-name).
3357 (struct c_declspecs): Add atomic_p field.
3358 (convert_lvalue_to_rvalue): Declare.
3359 * c-typeck.c (c_type_promotes_to): Promote atomic types to
3360 corresponding atomic types.
3361 (qualify_type): Don't add _Atomic qualifiers from second argument.
3362 (comp_target_types): Do not allow _Atomic mismatches.
3363 (type_lists_compatible_p): Do not remove atomic qualifiers when
3364 comparing types.
3365 (really_atomic_lvalue, convert_lvalue_to_rvalue)
3366 (build_atomic_assign): New functions.
3367 (build_unary_op): Use build_atomic_assign for atomic increment and
3368 decrement.
3369 (build_conditional_expr): Do not treat _Atomic void as a qualified
3370 version of void.
3371 (build_modify_expr): Use build_atomic_assign for atomic LHS.
3372 (find_anonymous_field_with_type, convert_to_anonymous_field)
3373 (convert_for_assignment): Do not remove atomic qualifiers when
3374 comparing types.
3375 (digest_init): Do not accept initialization of arrays of atomic
3376 elements by string constants.
3377 (build_asm_expr): Use convert_lvalue_to_rvalue.
3378 (build_binary_op): Do not treat _Atomic void as a qualified
3379 version of void.
3380
8b023e7c 33812013-11-06 DJ Delorie <dj@redhat.com>
3382
3383 * c-decl.c (locate_old_decl): If a previous conflicting decl is
3384 both explicit and builtin, print the location of the explicit one.
3385
c630ef93 33862013-11-05 Tobias Burnus <burnus@net-b.de>
3387
3388 * c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
3389 c_parser_omp_distribute, c_parser_omp_teams,
3390 c_parser_omp_target, c_parser_omp_declare): Handle
3391 -fopenmp-simd.
3392
2c4c3477 33932013-11-03 Marek Polacek <polacek@redhat.com>
3394
3395 * c-decl.c (grokdeclarator): Add VLA instrumentation.
3396
df205251 33972013-11-01 Jakub Jelinek <jakub@redhat.com>
3398
3399 * c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
3400 check_dup_generic at the end, unless remove is true.
3401 (c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
3402 remove = true;.
3403 (c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
3404
23871d0c 34052013-10-31 Jakub Jelinek <jakub@redhat.com>
3406
3407 * c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
3408 with decl that is not pointer nor array.
3409
d037099f 34102013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
3411
3412 * c-decl.c (finish_function): Added a call for insert_cilk_frame when
3413 a spawning function is found.
3414 * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
3415 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
3416 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
3417 * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
3418 case.
3419 (c_parser_postfix_expression): Added RID_CILK_SPAWN case.
3420 * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
3421 expr.
3422 (c_finish_return): Added a check to reject _Cilk_spawn in return
3423 expression.
3424 (build_cilk_spawn): New function.
3425 (build_cilk_sync): Likewise.
3426 * Makefile.in (c-decl.o): Added cilk.h in dependency list.
3427
4c90c04c 34282013-10-27 Tobias Burnus <burnus@net-b.de>
3429
3430 PR other/33426
3431 * c-parser.c (c_parser_while_statement, c_parser_while_statement,
3432 c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
3433 (c_parser_statement_after_labels): Update calls.
3434
48a972c8 34352013-10-24 Tobias Burnus <burnus@net-b.de>
4644b593 3436
3437 PR other/33426
3438 * c-parser.c (c_parser_pragma, c_parser_for_statement):
3439 Handle PRAGMA_IVDEP.
3440 (c_parser_statement_after_labels): Update call.
3441
12f86df0 34422013-10-24 Marek Polacek <polacek@redhat.com>
3443
3444 * c-parser.c (c_parser_struct_declaration): Add a comment.
3445 (c_parser_declarator): Don't allow _Alignas here.
3446
7740abd8 34472013-10-17 Andrew MacLeod <amacleod@redhat.com>
3448
3449 * c-parser.c: Include omp-low.h.
3450 * c-typeck.c: Likewise.
3451
43d03c23 34522013-10-17 Marek Polacek <polacek@redhat.com>
3453
3454 PR c/58267
3455 * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
3456 Document syntax of the array-declarator.
3457 (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
3458 are not permitted.
3459 (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
3460 (c_parser_struct_declaration): Likewise.
3461 (c_parser_declarator): Likewise.
3462 (c_parser_direct_declarator_inner): Likewise.
3463 (c_parser_parameter_declaration): Likewise.
3464 (c_parser_type_name): Likewise.
3465
bc7bff74 34662013-10-11 Jakub Jelinek <jakub@redhat.com>
3467
3468 * c-lang.h (current_omp_declare_target_attribute): New extern
3469 decl.
3470 * c-parser.c: Include c-lang.h.
3471 (struct c_parser): Change tokens to c_token *.
3472 Add tokens_buf field. Change tokens_avail type to unsigned int.
3473 (c_parser_consume_token): If parser->tokens isn't
3474 &parser->tokens_buf[0], increment parser->tokens.
3475 (c_parser_consume_pragma): Likewise.
3476 (enum pragma_context): Add pragma_struct and pragma_param.
3477 (c_parser_external_declaration): Adjust
3478 c_parser_declaration_or_fndef caller.
3479 (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
3480 argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
3481 Adjust recursive call.
3482 (c_parser_struct_or_union_specifier): Use pragma_struct instead
3483 of pragma_external.
3484 (c_parser_parameter_declaration): Use pragma_param instead of
3485 pragma_external.
3486 (c_parser_compound_statement_nostart, c_parser_label,
3487 c_parser_for_statement): Adjust
3488 c_parser_declaration_or_fndef callers.
3489 (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
3490 it through to c_parser_conditional_expression.
3491 (c_parser_conditional_expression): Add omp_atomic_lhs argument,
3492 pass it through to c_parser_binary_expression. Adjust recursive
3493 call.
3494 (c_parser_binary_expression): Remove prec argument, add
3495 omp_atomic_lhs argument instead. Always start from PREC_NONE, if
3496 omp_atomic_lhs is non-NULL and one of the arguments of toplevel
3497 binop matches it, use build2 instead of parser_build_binary_op.
3498 (c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
3499 PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
3500 PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
3501 Handle pragma_struct and pragma_param the same as pragma_external.
3502 (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
3503 (c_parser_omp_variable_list): Parse array sections for
3504 OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
3505 (c_parser_omp_clause_collapse): Fully fold collapse expression.
3506 (c_parser_omp_clause_reduction): Handle user defined reductions.
3507 (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
3508 c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
3509 c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
3510 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
3511 c_parser_omp_clause_depend, c_parser_omp_clause_map,
3512 c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
3513 c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
3514 c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
3515 (c_parser_omp_all_clauses): Add finish_p argument. Don't call
3516 c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
3517 (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
3518 present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms.
3519 (c_parser_omp_for_loop): Add CODE argument, pass it through
3520 to c_finish_omp_for. Change last argument to cclauses,
3521 and adjust uses to grab parallel clauses from the array of all
3522 the split clauses. Adjust c_parser_binary_expression,
3523 c_parser_declaration_or_fndef and c_finish_omp_for callers.
3524 (omp_split_clauses): New function.
3525 (c_parser_omp_simd): New function.
3526 (c_parser_omp_for): Add p_name, mask and cclauses arguments.
3527 Allow the function to be called also when parsing combined constructs,
3528 and call c_parser_omp_simd when parsing for simd.
3529 (c_parser_omp_sections_scope): If section-sequence doesn't start with
3530 #pragma omp section, require exactly one structured-block instead of
3531 sequence of statements.
3532 (c_parser_omp_sections): Add p_name, mask and cclauses arguments.
3533 Allow the function to be called also when parsing combined constructs.
3534 (c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
3535 Allow the function to be called also when parsing combined
3536 constructs.
3537 (c_parser_omp_taskgroup, c_parser_omp_cancel,
3538 c_parser_omp_cancellation_point, c_parser_omp_distribute,
3539 c_parser_omp_teams, c_parser_omp_target_data,
3540 c_parser_omp_target_update, c_parser_omp_target,
3541 c_parser_omp_declare_simd, c_finish_omp_declare_simd,
3542 c_parser_omp_declare_target, c_parser_omp_end_declare_target,
3543 c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
3544 (c_parser_omp_construct): Add p_name and mask vars. Handle
3545 PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
3546 PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel
3547 and c_parser_omp_sections callers.
3548 (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
3549 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
3550 OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
3551 (OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
3552 (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
3553 OMP_CLAUSE_DEPEND.
3554 (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
3555 OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
3556 OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
3557 OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
3558 OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
3559 * c-typeck.c: Include tree-inline.h.
3560 (c_finish_omp_cancel, c_finish_omp_cancellation_point,
3561 handle_omp_array_sections_1, handle_omp_array_sections,
3562 c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
3563 (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
3564 user defined reductions.
3565 (c_tree_equal): New function.
3566 * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
3567 c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
3568 c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
3569 c_check_omp_declare_reduction_r): New prototypes.
3570 * c-decl.c (current_omp_declare_target_attribute): New variable.
3571 (c_decl_attributes): New function.
3572 (start_decl, start_function): Use it instead of decl_attributes.
3573 (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
3574 c_omp_reduction_decl, c_omp_reduction_lookup,
3575 c_check_omp_declare_reduction_r): New functions.
3576
3ce7d1bd 35772013-09-25 Tom Tromey <tromey@redhat.com>
3578
3579 * Make-lang.in (c/gccspec.o): Remove.
3580 (CFLAGS-c/gccspec.o): New variable.
3581 (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
3582 (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
3583 (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
3584
96da1c1d 35852013-09-25 Tom Tromey <tromey@redhat.com>
3586
3587 * Make-lang.in (c/gccspec.o): Don't use subshell.
3588
1b309377 35892013-09-18 Marek Polacek <polacek@redhat.com>
3590
3591 PR sanitize/58443
3592 * c-typeck.c (build_binary_op): Properly honor -fsanitize options.
3593 Remove unnecessary check.
3594
05f893e1 35952013-09-18 Marek Polacek <polacek@redhat.com>
3596
3597 PR sanitizer/58411
3598 * c-typeck.c (build_binary_op): Don't sanitize function if it has the
3599 no_sanitize_undefined attribute.
3600
bda0b9d2 36012013-09-13 Kai Tietz <ktietz@redhat.com>
3602
3603 PR target/57848
3604 * c-decl.c (c_builtin_function_ext_scope): Remove
3605 wrong assumption that it is never called on prexisting
3606 symbol.
3607
73437615 36082013-09-08 Joern Rennecke <joern.rennecke@embecosm.com>
3609
3610 * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
3611
eaab24b9 36122013-09-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
3613
3614 * c-objc-common.c (c_tree_printer): Tidy.
3615
9e46467d 36162013-08-30 Marek Polacek <polacek@redhat.com>
3617
3618 * c-typeck.c (build_binary_op): Add division by zero and shift
3619 instrumentation.
3620
f8234178 36212013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
f9086116 3622 Joseph Myers <joseph@codesourcery.com>
f8234178 3623
c90a7d10 3624 PR c/35649
f8234178 3625 * c-typeck.c (c_common_type): Prefer double_type_node over
3626 other REAL_TYPE types with the same precision.
3627 (convert_arguments): Likewise.
3628
6f07f480 36292013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3630
3631 * c-objc-common.c (c_tree_printer): Document the nature of the cast.
3632 (c_initialize_diagnostics): Call a destructor for the early printer.
3633
eed6bc21 36342013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3635
3636 * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
3637 printer initialization.
3638
57717943 36392013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com>
eed6bc21 3640
57717943 3641 PR c/57490
3642 * c-array-notation.c (fix_conditional_array_notations_1): Added a
3643 check for truth values.
3644 (expand_array_notation_exprs): Added truth values case. Removed an
3645 unwanted else. Added for-loop to walk through subtrees in default
3646 case.
3647
a94db6b0 36482013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
3649
3650 * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
3651
e76163a9 36522013-07-23 Joseph Myers <joseph@codesourcery.com>
3653
3654 * c-parser.c (struct c_generic_association): Fix typo.
3655
7aa04c8d 36562013-07-23 Tom Tromey <tromey@redhat.com>
3657 Joseph Myers <joseph@codesourcery.com>
3658
3659 * c-parser.c (struct c_generic_association): New.
3660 (c_generic_association_d): New typedef.
3661 (c_parser_generic_selection): New function.
3662 (c_parser_postfix_expression): Handle RID_GENERIC.
3663
76bbe4ca 36642013-07-13 Jason Merrill <jason@redhat.com>
3665
3666 PR c++/57793
3667 * c-decl.c (finish_struct): Check for too-large class.
3668
21ebaa24 36692013-07-04 Joern Rennecke <joern.rennecke@embecosm.com>
f5298614 3670
3671 PR c/57821
3672 * c-typeck.c (set_init_index): When folding, check for index overflow.
3673
936c3081 36742013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
3675
3676 * c-parser.c (c_parser_array_notation): Removed rejection of array
3677 notations in an array of function pointers.
3678
50acebe0 36792013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com>
3680
3681 * c-array-notation.c (make_triplet_val_inv): New function.
3682 (create_cmp_incr): Likewise.
3683 (create_array_refs): Likewise.
3684 (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
3685 Also modularized common parts between functions and called the function.
3686 (build_array_notation_expr): Likewise.
3687 (fix_conditional_array_notations_1): Likewise.
3688 (fix_array_notation_expr): Likewise.
3689 (fix_array_notation_call_expr): Likewise.
3690
01e6cdb4 36912013-06-18 Marek Polacek <polacek@redhat.com>
3692
3693 PR c/57630
3694 * c-decl.c (check_for_loop_decls): Improve diagnostics messages.
3695
6a3adac6 36962013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com>
3697
3698 * c-array-notation.c (build_array_notation_expr): Reject array notation
3699 mismatch between LHS and RHS even inside a call_expr. Also, removed
3700 a couple while statements that were dead code.
3701
62aab3f3 37022013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
3703
3704 * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
3705 excessive precision expressions in function parameters. Also removed
3706 couple unwanted while statements.
3707
bfc83720 37082013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
3709
3710 * c-array-notation.c (expand_array_notation_exprs): Added
3711 ARRAY_NOTATION_REF case.
3712
09970d67 37132013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
3714
3715 * c-array-notation.c (length_mismatch_in_expr_p): Moved this
3716 function to c-family/array-notation-common.c.
3717 (is_cilkplus_reduce_builtin): Likewise.
3718 (find_rank): Likewise.
3719 (extract_array_notation_exprs): Likewise.
3720 (replace_array_notations): Likewise.
3721 (find_inv_trees): Likewise.
3722 (replace_inv_trees): Likewise.
3723 (contains_array_notation_expr): Likewise.
3724 (find_correct_array_notation_type): Likewise.
3725 (replace_invariant_exprs): Initialized additional_tcodes to NULL.
3726 (struct inv_list): Moved this to c-family/array-notation-common.c.
3727 * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
3728
6e13bc01 37292013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com>
3730
3731 * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
3732 reduction functions outside the for-loop. Added a check if the fundecl
3733 is non-NULL. Finally, removed an unwanted if-statement, and made the
3734 body unconditional.
3735
cc92dddc 37362013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
3737
3738 * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
3739 condition of the if-statement matches the rank of else-block and then-
3740 block when array notations are used.
3741 * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
3742 expression after the entire function body is parsed.
3743 (c_parser_expr_no_commas): Delayed creating array notation expressions
3744 to the end of function parsing.
3745 * c-array-notation.c (fix_conditional_array_notations_1): Expanded the
3746 whole if-statement instead of just the condition.
3747 (expand_array_notation_exprs): Added MODIFY_EXPR case.
3748
eddc63fd 37492013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
3750
3751 PR c/57474
3752 * c-array-notation.c (build_array_notation_expr): Initialized rhs_length
3753 array to NULL_TREE if they are unused. Also added a check for the
3754 field to be NULL before its fields are used in future.
3755
a2115a4a 37562013-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3757
3758 PR bootstrap/57450
3759 * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
3760 (build_array_notation_expr): Likewise.
3761
3c6d4197 37622013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
3763
3764 * c-typeck.c (build_array_ref): Added a check to see if array's
3765 index is greater than one. If true, then emit an error.
3766 (build_function_call_vec): Exclude error reporting and checking
3767 for builtin array-notation functions.
3768 (convert_arguments): Likewise.
3769 (c_finish_return): Added a check for array notations as a return
3770 expression. If true, then emit an error.
3771 (c_finish_loop): Added a check for array notations in a loop
3772 condition. If true then emit an error.
3773 (lvalue_p): Added a ARRAY_NOTATION_REF case.
3774 (build_binary_op): Added a check for array notation expr inside
3775 op1 and op0. If present, we call another function to find correct
3776 type.
3777 * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
3778 * c-parser.c (c_parser_compound_statement): Check if array
3779 notation code is used in tree, if so, then transform them into
3780 appropriate C code.
3781 (c_parser_expr_no_commas): Check if array notation is used in LHS
3782 or RHS, if so, then build array notation expression instead of
3783 regular modify.
3784 (c_parser_postfix_expression_after_primary): Added a check for
3785 colon(s) after square braces, if so then handle it like an array
3786 notation. Also, break up array notations in unary op if found.
3787 (c_parser_direct_declarator_inner): Added a check for array
3788 notation.
3789 (c_parser_compound_statement): Added a check for array notation in
3790 a stmt. If one is present, then expand array notation expr.
3791 (c_parser_if_statement): Likewise.
3792 (c_parser_switch_statement): Added a check for array notations in
3793 a switch statement's condition. If true, then output an error.
3794 (c_parser_while_statement): Similarly, but for a while.
3795 (c_parser_do_statement): Similarly, but for a do-while.
3796 (c_parser_for_statement): Similarly, but for a for-loop.
3797 (c_parser_unary_expression): Check if array notation is used in a
3798 pre-increment or pre-decrement expression. If true, then expand
3799 them.
3800 (c_parser_array_notation): New function.
3801 * c-array-notation.c: New file.
3802 * c-tree.h (is_cilkplus_reduce_builtin): Protoize.
3803
2c1c8a2c 38042013-05-23 Mike Stump <mikestump@comcast.net>
3805
3806 * c-typeck.c (convert_for_assignment): Handle references to memory
3807 spaces better.
3808
be5f9e46 38092013-05-16 Jason Merrill <jason@redhat.com>
3810
3811 * Make-lang.in (cc1$(exeext)): Use link mutex.
3812
9205a6cc 38132013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
3814
3815 * c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
3816 to simply use OPT_Wpointer_arith.
3817 (build_unary_op): Likewise.
3818
0b049e15 38192013-04-03 Jakub Jelinek <jakub@redhat.com>
3820
3821 PR c/19449
3822 * c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
3823 argument. If set, or it temporarily for parsing of the first
3824 argument into force_folding_builtin_constant_p.
3825 (c_parser_postfix_expression): Adjust callers.
3826
8e966116 38272013-03-21 Richard Biener <rguenther@suse.de>
3828
3829 * c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
3830 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
3831
b862f263 38322013-02-12 Marek Polacek <polacek@redhat.com>
3833
3834 PR c/44938
3835 * c-parser.c (c_parser_postfix_expression_after_primary): Initialize
3836 origtypes to NULL.
3837
54550ecb 38382013-01-24 Jakub Jelinek <jakub@redhat.com>
3839
3840 PR c/56078
3841 * c-typeck.c (set_nonincremental_init_from_string): If
3842 constructor_max_index is NULL, treat it as if tree_int_cst_lt
3843 returned false.
3844 (process_init_element): Likewise.
3845
035b65e2 38462012-12-20 Jakub Jelinek <jakub@redhat.com>
3847
3848 PR c++/55619
3849 * c-parser.c (c_parser_asm_operands): Remove CONVERT_P
3850 argument, don't call default_function_array_conversion
3851 nor c_fully_fold here.
3852 (c_parser_asm_statement): Adjust callers.
3853 * c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
3854 and outputs here, and call default_function_array_conversion
3855 on inputs that don't need to be addressable.
3856
7cbb7f1a 38572012-12-18 Jakub Jelinek <jakub@redhat.com>
3858
3859 PR c/39464
3860 * c-typeck.c (convert_for_assignment): For -Wpointer-sign
3861 warning require that both c_common_unsigned_type as well as
3862 c_common_signed_type is the same for both mvl and mvr types.
3863
f1f41a6c 38642012-11-16 Diego Novillo <dnovillo@google.com>
3865
3866 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
3867
3868 * c-common.c: Use new vec API in vec.h.
3869 * c-common.h: Likewise.
3870 * c-gimplify.c: Likewise.
3871 * c-pragma.c: Likewise.
3872 * c-pretty-print.c: Likewise.
3873 * c-pretty-print.h: Likewise.
3874 * c-semantics.c: Likewise.
3875 * c-decl.c: Likewise.
3876 * c-parser.c: Likewise.
3877 * c-tree.h: Likewise.
3878 * c-typeck.c: Likewise.
3879
8b447d3f 38802012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
3881
3882 PR c++/54930
3883 * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.
3884
08fc5390 38852012-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
3886
3887 PR c/53066
3888 * c-decl.c (warn_if_shadowing): Do not warn if a variable
3889 shadows a function, unless the variable is a function or a
3890 pointer-to-function.
3891
57f872a2 38922012-10-12 Jakub Jelinek <jakub@redhat.com>
3893
3894 PR c/54381
3895 * c-parser.c (struct c_tree_loc_pair): Removed.
3896 (c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
3897 add location_t * and tree * arguments, fill in array of 3
3898 sizeof_arg trees and corresponding locs.
3899 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust
3900 c_parser_expr_list callers.
3901 (c_parser_postfix_expression_after_primary): Likewise. Pass
3902 array of 3 sizeof_arg trees and locs (corresponding to first
3903 3 arguments) to sizeof_pointer_memaccess_warning.
3904
d1455aa3 39052012-10-09 Lawrence Crowl <crowl@google.com>
3906
3907 * Make-lang.in (c-decl.o): Add dependence on hash-table.h.
3908 * c-decl.c (detect_field_duplicates_hash): Change to new type-safe
3909 hash table.
3910
b0e7825e 39112012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
3912
3913 PR c++/54194
3914 * c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
3915 call.
3916
41ed701a 39172012-10-09 Marc Glisse <marc.glisse@inria.fr>
3918
3919 PR c++/54427
3920 * c-typeck.c: Include c-common.h.
3921 (enum stv_conv): Moved to c-common.h.
3922 (scalar_to_vector): Moved to c-common.c.
3923 (build_binary_op): Adapt to scalar_to_vector's new prototype.
3924 * Make-lang.in: c-typeck.c depends on c-common.h.
3925
ef34afc1 39262012-10-04 Arnaud Charlet <charlet@adacore.com>
3927
3928 * c-decl.c (c_write_global_declarations): Fix handling of
3929 -fdump-ada-spec*.
3930
7bd765d4 39312012-09-30 Sharad Singhai <singhai@google.com>
3932
3933 * c-decl.c (c_write_global_declarations): Use a different method
3934 to determine if the dump has ben initialized.
3935
c4b1a13a 39362012-09-14 Joseph Myers <joseph@codesourcery.com>
3937
3938 PR c/54552
3939 * c-typeck.c (c_cast_expr): When casting to a type requiring
3940 C_MAYBE_CONST_EXPR to be created, pass the inner expression to
3941 c_fully_fold first.
3942
bb554051 39432012-09-14 Joseph Myers <joseph@codesourcery.com>
3944
3945 PR c/54103
3946 * c-typeck.c (build_unary_op): Pass original argument of
3947 TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
3948 any C_MAYBE_CONST_EXPR, if it has integer operands.
3949 (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
3950 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
3951 to c_objc_common_truthvalue_conversion, then remove any
3952 C_MAYBE_CONST_EXPR, if they have integer operands. Use
3953 c_objc_common_truthvalue_conversion not
3954 c_common_truthvalue_conversion.
3955 (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
3956 call note_integer_operands for arguments with integer operands
3957 that are not integer constants.
3958
c708c6ef 39592012-09-13 Jakub Jelinek <jakub@redhat.com>
3960
3961 PR c/54559
3962 * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
3963 COMPLEX_TYPE with in_late_binary_op set temporarily to true.
3964
cce20430 39652012-08-31 Jakub Jelinek <jakub@redhat.com>
3966
3967 PR c/54428
3968 * c-convert.c (convert): Don't call fold_convert_loc if
3969 TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
3970 is a COMPLEX_EXPR. Remove TYPE_MAIN_VARIANT check from
3971 COMPLEX_TYPE -> COMPLEX_TYPE conversion.
3972
a90d57ed 39732012-08-24 Jakub Jelinek <jakub@redhat.com>
3974
3975 PR c/54355
3976 * c-decl.c (c_parser_label): Pass true as nested and fix up comments
3977 for nested and empty_ok arguments in the call to
3978 c_parser_declaration_or_fndef.
3979
f003f5dc 39802012-08-17 Jakub Jelinek <jakub@redhat.com>
3981
3982 * c-tree.h (c_last_sizeof_arg): Declare.
3983 * c-parser.c (struct c_tree_loc_pair): New type.
3984 (c_parser_expr_list): Add sizeof_arg argument. Fill it in if
3985 non-NULL.
3986 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
3987 (c_parser_postfix_expression_after_primary): Likewise. Call
3988 sizeof_pointer_memaccess_warning if needed.
3989 (sizeof_ptr_memacc_comptypes): New function.
3990 * c-typeck.c (c_last_sizeof_arg): New global variable.
3991 (c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
3992
a5656b73 39932012-07-24 Uros Bizjak <ubizjak@gmail.com>
3994
3995 * c-lang.h (lang_decl): Add variable_size GTY option.
3996
b9ed1410 39972012-07-16 Steven Bosscher <steven@gcc.gnu.org>
3998
3999 * c-decl.c: Include dumpfile.h instead of tree-dump.h.
4000 * Make-lang.in: Fix dependencies.
4001
e53d55e7 40022012-06-29 Steven Bosscher <steven@gcc.gnu.org>
4003
4004 * Make-lang.in: New file, rules migrated from gcc/Makefile.in
4005 and add language Makefile hooks.
4006 * config-lang.in: New file.
4007 * c-config-lang.in: Moved from gcc/config-lang.in to here, and
4008 add the required "normal" config-lang.in rules.
4009 * c-lang.h: Moved from gcc/ to here.
4010 * c-tree.h: Likewise.
4011 * c-objc-common.c: Likewise.
4012 * c-objc-common.h: Likewise.
4013 * c-typeck.c: Likewise.
4014 * c-convert.c: Likewise.
4015 * c-lang.c: Likewise.
4016 * c-aux-info.c: Likewise.
4017 * c-errors.c: Likewise.
4018 * gccspec.c: Likewise.
4019 * c-decl.c: Likewise. Include gt-c-c-decl.h, not gt-c-decl.h.
4020 * c-parser.c: Likewise. Include gt-c-c-parser.h, not gt-c-parser.h.
4021\f
f1717362 4022Copyright (C) 2012-2016 Free Software Foundation, Inc.
e53d55e7 4023
4024Copying and distribution of this file, with or without modification,
4025are permitted in any medium without royalty provided the copyright
4026notice and this notice are preserved.