re PR c/61162 (possibly bad error location with -Wc++-compat)
[gcc.git] / gcc / c / ChangeLog
1 2014-05-13 Marek Polacek <polacek@redhat.com>
2
3 PR c/61162
4 * c-typeck.c (convert_for_assignment): Pass location to
5 WARN_FOR_ASSIGNMENT instead of input_location.
6
7 2014-05-10 Marek Polacek <polacek@redhat.com>
8
9 * c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
10 maybe_warn_string_init.
11 (c_parser_postfix_expression_after_paren_type): Pass type_loc to
12 maybe_warn_string_init.
13 * c-tree.h (maybe_warn_string_init): Update declaration.
14 * c-typeck.c (maybe_warn_string_init): Add location parameter.
15 Call pedwarn_init with loc instead of with input_location.
16 (digest_init): Pass init_loc to maybe_warn_string_init.
17 (pop_init_level): Call pedwarn_init with loc instead of with
18 input_location.
19 (set_init_index): Likewise.
20 (process_init_element): Likewise.
21
22 2014-05-09 Marek Polacek <polacek@redhat.com>
23
24 PR c/61096
25 * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
26 (c_parser_initelt): Pass location to set_init_label. Pass array index
27 location to set_init_index.
28 * c-tree.h (push_init_level): Update declaration.
29 (pop_init_level): Likewise.
30 (set_init_index): Likewise.
31 (set_init_label): Likewise.
32 * c-typeck.c (error_init): Add location parameter. Call error_at
33 instead of error.
34 (digest_init): Pass init_loc to error_init.
35 (really_start_incremental_init):
36 (push_init_level): Add location parameter. Pass loc to pop_init_level
37 and error_init.
38 (pop_init_level): Likewise.
39 (set_designator): Add location parameter. Pass loc to pop_init_level,
40 push_init_level, and error_init.
41 (set_init_index): Add location parameter. Pass loc to error_init and
42 set_designator.
43 (set_init_label): Likewise.
44 (output_init_element): Pass loc to error_init.
45 (process_init_element): Pass loc to error_init, pop_init_level,
46 pedwarn_init, and push_init_level.
47
48 2014-05-09 Marek Polacek <polacek@redhat.com>
49
50 PR c/50459
51 * c-parser.c (c_parser_attributes): Parse the arguments as an
52 expression-list if the attribute takes identifier.
53
54 2014-05-08 Marek Polacek <polacek@redhat.com>
55
56 PR c/61053
57 * c-decl.c (grokdeclarator): Use min_align_of_type instead of
58 TYPE_ALIGN_UNIT.
59
60 2014-05-08 Marek Polacek <polacek@redhat.com>
61
62 PR c/61077
63 * c-decl.c (start_function): Warn for _Atomic-qualified return type
64 of main.
65
66 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
67 Mike Stump <mikestump@comcast.net>
68 Richard Sandiford <rdsandiford@googlemail.com>
69
70 * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
71 (finish_enum): Use wide-int interfaces.
72 * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
73 * c-typeck.c (build_c_cast): Likewise.
74 (set_nonincremental_init_from_string): Likewise.
75 (c_tree_equal): Likewise.
76
77 2014-05-02 Marek Polacek <polacek@redhat.com>
78
79 PR c/25801
80 * c-typeck.c (c_size_in_bytes): Update comment. Don't call error.
81 Return size_one_node when the type is not complete.
82 (pointer_diff): Remove comment.
83 (build_unary_op): Improve error messages.
84
85 2014-05-02 Marek Polacek <polacek@redhat.com>
86
87 * c-typeck.c (c_finish_return): Separate warning_at calls.
88
89 2014-05-02 Marek Polacek <polacek@redhat.com>
90
91 * c-tree.h (error_init): Remove declaration.
92 (pedwarn_init): Likewise.
93 * c-typeck.c (error_init): Make static and move above.
94 (pedwarn_init): Likewise.
95 (warning_init): Move above.
96 (maybe_warn_string_init): Likewise.
97
98 2014-05-01 Jeff Law <law@redhat.com>
99
100 Revert:
101
102 2014-04-24 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
103 * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
104 avoid goto.
105
106 2014-05-02 Marek Polacek <polacek@redhat.com>
107
108 PR c/60784
109 * c-typeck.c (push_init_level): Set constructor_designated to
110 p->designated for structures.
111
112 2014-05-01 Marek Polacek <polacek@redhat.com>
113
114 PR c/60915
115 * c-parser.c (c_parser_declaration_or_fndef): Give better error if
116 function-definition has an attribute after the declarator.
117
118 2014-05-01 Marek Polacek <polacek@redhat.com>
119
120 PR c/60257
121 * c-typeck.c (warning_init): Add location_t parameter. Call
122 warning_at instead of warning.
123 (push_init_level): Pass input_location to warning_init.
124 (add_pending_init): Add location_t parameter. Pass loc to
125 warning_init.
126 (set_nonincremental_init): Pass input_location to add_pending_init.
127 (set_nonincremental_init_from_string): Likewise.
128 (output_init_element): Pass loc to warning_init and to
129 add_pending_init.
130
131 2014-05-01 Marek Polacek <polacek@redhat.com>
132
133 PR c/43395
134 * c-typeck.c (c_finish_return): Distinguish between label and variable
135 when warning about returning local address.
136
137 2014-05-01 Marek Polacek <polacek@redhat.com>
138
139 PR c/29467
140 * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
141 in C89 mode.
142
143 2014-05-01 Marek Polacek <polacek@redhat.com>
144
145 PR c/43245
146 * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
147 instead of 0 to WARN_FOR_QUALIFIERS.
148
149 2014-05-01 Marek Polacek <polacek@redhat.com>
150
151 PR c/56989
152 * c-typeck.c (default_conversion): Use better location for
153 error call.
154
155 2014-04-30 Marek Polacek <polacek@redhat.com>
156
157 * c-typeck.c (build_binary_op): Call ubsan_instrument_division
158 also when SANITIZE_FLOAT_DIVIDE is on.
159
160 2014-04-30 Marek Polacek <polacek@redhat.com>
161
162 PR c/60139
163 * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
164 and pedwarn_init. Use loc insted of input_location.
165
166 2014-04-30 Marek Polacek <polacek@redhat.com>
167
168 PR c/60351
169 * c-typeck.c (build_binary_op): Use location when warning about
170 shift count.
171
172 2014-04-25 Marek Polacek <polacek@redhat.com>
173
174 PR c/18079
175 * c-decl.c (diagnose_mismatched_decls): Warn for mismatched
176 always_inline/noinline and hot/cold attributes.
177
178 2014-04-25 Marek Polacek <polacek@redhat.com>
179
180 PR c/60114
181 * c-parser.c (c_parser_initelt): Pass input_location to
182 process_init_element.
183 (c_parser_initval): Pass loc to process_init_element.
184 * c-tree.h (process_init_element): Adjust declaration.
185 * c-typeck.c (push_init_level): Pass input_location to
186 process_init_element.
187 (pop_init_level): Likewise.
188 (set_designator): Likewise.
189 (output_init_element): Add location_t parameter. Pass loc to
190 digest_init.
191 (output_pending_init_elements): Pass input_location to
192 output_init_element.
193 (process_init_element): Add location_t parameter. Pass loc to
194 output_init_element.
195
196 2014-04-24 Jakub Jelinek <jakub@redhat.com>
197
198 * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
199 atomic-clause, allow comma in between atomic-clause and
200 seq_cst.
201
202 2014-04-22 Jakub Jelinek <jakub@redhat.com>
203
204 PR c/59073
205 * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
206 fails, don't set OM_PARALLEL_COMBINED and return NULL.
207
208 2014-04-12 Igor Zamyatin <igor.zamyatin@intel.com>
209
210 PR middle-end/60469
211 * c-array-notation.c (fix_builtin_array_notation_fn): Use
212 create_tmp_var instead build_decl for creating temps.
213 (build_array_notation_expr): Likewise.
214 (fix_conditional_array_notations_1): Likewise.
215 (fix_array_notation_expr): Likewise.
216 (fix_array_notation_call_expr): Likewise.
217
218 2014-03-28 Jakub Jelinek <jakub@redhat.com>
219
220 PR c++/60689
221 * c-tree.h (c_build_function_call_vec): New prototype.
222 * c-typeck.c (build_function_call_vec): Don't call
223 resolve_overloaded_builtin here.
224 (c_build_function_call_vec): New wrapper function around
225 build_function_call_vec. Call resolve_overloaded_builtin here.
226 (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
227 Call c_build_function_call_vec instead of build_function_call_vec.
228 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
229 * c-decl.c (finish_decl): Likewise.
230
231 2014-03-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
232
233 PR c/55383
234 * c-typeck.c: Use correct format string in cast-qual warning
235
236 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
237
238 * c-decl.c (c_decl_attributes): Use
239 lang_hooks.types.omp_mappable_type.
240 * c-typeck.c (c_finish_omp_clauses): Likewise.
241
242 2014-03-06 Marek Polacek <polacek@redhat.com>
243
244 PR c/60197
245 * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
246 of checking tree code.
247
248 2014-02-19 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
249
250 * c-parser.c (c_parser_declspecs): Replace call to error by error_at.
251 (c_parser_parameter_declaration): Likewise.
252
253 2014-02-19 Marek Polacek <polacek@redhat.com>
254
255 PR c/60195
256 * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
257 Call mark_exp_read on exp.value.
258 (build_atomic_assign): Set TREE_NO_WARNING on val and old. Set
259 TREE_ADDRESSABLE on old instead of val.
260 (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
261
262 2014-02-07 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
263
264 * c-parser.c (c_parser_get_builtin_args): Replace calls to
265 C_EXPR_APPEND by vec_safe_push.
266 * c-tree.h (C_EXPR_APPEND): Remove.
267
268 2014-01-31 Marek Polacek <polacek@redhat.com>
269
270 PR c/59963
271 * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
272 build_function_call_vec.
273 (build_function_call): Likewise.
274 (build_atomic_assign): Likewise.
275 (build_function_call_vec): Add arg_loc parameter. Use it.
276 (convert_arguments): Likewise.
277 (convert_for_assignment): Rename rhs_loc to expr_loc.
278 * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
279 (c_parser_objc_keywordexpr): Likewise.
280 (c_parser_postfix_expression_after_primary): Call
281 build_function_call_vec with expr_loc rather than op_loc.
282 Call c_parser_expr_list to fill arg_loc. Pass arg_loc to
283 build_function_call_vec.
284 (c_parser_expr_list): Add locations parameter. Fill it with locations
285 of function arguments.
286 * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
287
288 2014-01-30 Marek Polacek <polacek@redhat.com>
289
290 PR c/59940
291 * c-typeck.c (build_function_call_vec): Use loc parameter.
292 (convert_arguments): Add location parameter. Use it.
293 (ep_convert_and_check): Likewise.
294 (build_atomic_assign): Adjust convert_for_assignment call.
295 (build_modify_expr): Likewise.
296 (digest_init): Likewise.
297 (c_finish_return): Likewise.
298 (build_conditional_expr): Adjust ep_convert_and_check calls.
299 (convert_for_assignment): Add rhs_loc parameter. Use it.
300 (build_binary_op): Adjust convert_and_check and ep_convert_and_check
301 calls.
302
303 2014-01-30 Richard Biener <rguenther@suse.de>
304
305 PR c/59905
306 * c-typeck.c (build_function_call_vec): Do not replace calls
307 to a function via an incompatible type with a runtime abort.
308
309 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
310
311 * c-parser.c (c_parser_declaration_or_fndef): Replaced
312 flag_enable_cilkplus with flag_cilkplus.
313 (c_parser_direct_declarator_inner): Likewise.
314 (c_parser_attribute_any_word): Likewise.
315 (c_parser_attributes): Likewise.
316 (c_parser_compound_statement): Likewise.
317 (c_parser_statement_after_labels): Likewise.
318 (c_parser_if_statement): Likewise.
319 (c_parser_switch_statement): Likewise.
320 (c_parser_do_statement): Likewise.
321 (c_parser_for_statement): Likewise.
322 (c_parser_unary_expression): Likewise.
323 (c_parser_postfix_expression): Likewise.
324 (c_parser_postfix_expression_after_primary): Likewise.
325 (c_parser_postfix_expression_after_primary): Likewise.
326 (c_parser_omp_clause_name): Likewise.
327 (c_finish_omp_declare_simd): Likewise.
328 (c_parser_cilk_verify_simd): Likewise.
329 * c-typeck.c (build_array_ref): Likewise.
330 (build_function_call_vec): Likewise.
331 (convert_arguments): Likewise.
332 (build_compound_expr): Likewise.
333 (c_finish_return): Likewise.
334 (c_finish_if_stmt): Likewise.
335 (c_finish_loop): Likewise.
336 (build_binary_op): Likewise.
337
338 2014-01-23 Marek Polacek <polacek@redhat.com>
339
340 PR c/59846
341 * c-typeck.c (parser_build_binary_op): Use location instead of
342 input_location.
343 (build_binary_op): Pass location to shorten_compare.
344
345 2014-01-23 Marek Polacek <polacek@redhat.com>
346
347 PR c/58346
348 * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
349 an empty aggregate.
350
351 2014-01-23 Marek Polacek <polacek@redhat.com>
352
353 PR c/59871
354 * c-typeck.c (build_compound_expr): Warn even for right-hand operand
355 of a comma expression.
356 (emit_side_effect_warnings): Likewise.
357
358 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
359
360 PR c/59825
361 * c-array-notation.c (expand_array_notation_exprs): Rewrote this
362 function to use walk_tree and moved a lot of its functionality to
363 expand_array_notations.
364 (expand_array_notations): New function.
365
366 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
367
368 * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
369 attribute an attribute without value.
370
371 2014-01-23 Jakub Jelinek <jakub@redhat.com>
372
373 PR middle-end/58809
374 * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
375 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
376
377 2014-01-22 Marek Polacek <polacek@redhat.com>
378
379 PR c/59891
380 * c-typeck.c (build_conditional_expr): Call c_fully_fold instead
381 of remove_c_maybe_const_expr on op1 and op2.
382
383 2014-01-15 Jakub Jelinek <jakub@redhat.com>
384
385 PR c/58943
386 * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
387 effects, preevaluate rhs using SAVE_EXPR first.
388
389 2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
390
391 PR c++/59631
392 * c-parser.c (c_parser_postfix_expression): Replaced consecutive if
393 statements with if-elseif statements.
394
395 2014-01-06 Marek Polacek <polacek@redhat.com>
396
397 PR c/57773
398 * c-decl.c (check_bitfield_type_and_width): Warn for implementation
399 defined bit-field types only in ISO C.
400
401 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
402
403 Update copyright years
404
405 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
406
407 * c-array-notation.c: Use the standard form for the copyright notice.
408
409 2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com>
410
411 * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
412 (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
413 field in parser is not empty. If not-empty, call the function
414 c_parser_finish_omp_declare_simd.
415 (c_parser_cilk_clause_vectorlength): Modified function to be shared
416 between SIMD-enabled functions and #pragma simd. Added new parameter.
417 (c_parser_cilk_all_clauses): Modified the usage of the function
418 c_parser_cilk_clause_vectorlength as mentioned above.
419 (c_parser_cilk_simd_fn_vector_attrs): New function.
420 (c_finish_cilk_simd_fn_tokens): Likewise.
421 (is_cilkplus_vector_p): Likewise.
422 (c_parser_omp_clause_name): Added checking for "vectorlength,"
423 "nomask," and "mask" strings in clause name.
424 (c_parser_omp_all_clauses): Added 3 new case statements:
425 PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
426 PRAGMA_CILK_CLAUSE_NOMASK.
427 (c_parser_attributes): Added a cilk_simd_fn_tokens parameter. Added a
428 check for vector attribute and if so call the function
429 c_parser_cilk_simd_fn_vector_attrs. Also, when Cilk plus is enabled,
430 called the function c_finish_cilk_simd_fn_tokens.
431 (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
432 parser field is non-empty. If so, parse them as you would parse
433 the omp declare simd pragma.
434 (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
435 Added a check when step is a parameter and flag it as error.
436 (CILK_SIMD_FN_CLAUSE_MASK): New #define.
437 (c_parser_cilk_clause_name): Changed pragma_cilk_clause to
438 pragma_omp_clause.
439
440 2013-12-17 Thomas Schwinge <thomas@codesourcery.com>
441
442 * c-parser.c (c_parser_omp_parallel): Fix description.
443
444 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com>
445
446 * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
447 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
448 (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
449 * c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
450
451 2013-12-04 Joseph Myers <joseph@codesourcery.com>
452
453 PR c/52023
454 * c-parser.c (c_parser_alignas_specifier): Use
455 c_sizeof_or_alignof_type instead of c_alignof.
456 (c_parser_alignof_expression): Likewise, with min_alignof
457 parameter depending on alignof spelling used.
458
459 2013-12-04 Marek Polacek <polacek@redhat.com>
460
461 PR c/54113
462 * c-decl.c (start_function): Don't warn for missing prototype for
463 inline functions.
464
465 2013-12-03 Marek Polacek <polacek@redhat.com>
466
467 PR c/59351
468 * c-decl.c (build_compound_literal): Allow compound literals with
469 empty initial value.
470
471 2013-12-02 Joseph Myers <joseph@codesourcery.com>
472
473 PR c/58235
474 * c-typeck.c (build_modify_expr): Diagnose assignment to
475 expression with array type.
476
477 2013-11-29 Joseph Myers <joseph@codesourcery.com>
478
479 PR c/42262
480 * c-typeck.c (process_init_element): Do not treat a string as
481 initializing a whole array when used with a designator for an
482 individual element.
483
484 2013-11-29 Joseph Myers <joseph@codesourcery.com>
485
486 PR c/57574
487 * c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
488 an inline function following a static declaration.
489
490 2013-11-28 Jakub Jelinek <jakub@redhat.com>
491
492 PR c/59310
493 * c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
494 to p_name before calling c_parser_omp_teams instead of after.
495 (c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
496 argument. Remove unused p_name variable.
497
498 2013-11-27 Aldy Hernandez <aldyh@redhat.com>
499 Jakub Jelinek <jakub@redhat.com>
500
501 * c-decl.c (c_builtin_function_ext_scope): Avoid binding if
502 external_scope is NULL.
503
504 2013-11-27 Tom de Vries <tom@codesourcery.com>
505 Marc Glisse <marc.glisse@inria.fr>
506
507 PR c++/59032
508 * c-typeck.c (build_unary_op): Allow vector increment and decrement.
509
510 2013-11-22 Andrew MacLeod <amacleod@redhat.com>
511
512 * c-typeck.c: Add required include files from gimple.h.
513
514 2013-11-22 David Malcolm <dmalcolm@redhat.com>
515
516 * c-decl.c (define_label, shadow_tag_warned)
517 (check_bitfield_type_and_width, grokdeclarator, grokparms,
518 store_parm_decls_newstyle, store_parm_decls_oldstyle)
519 (declspecs_add_type): Remove use of in_system_header macro.
520 * c-parser.c (c_parser_unary_expression): Likewise.
521 * c-typeck.c (store_init_value, process_init_element)
522 (c_start_case): Likewise.
523
524 * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
525 macro.
526
527 * c-parser.c (c_parser_set_source_position_from_token): Remove
528 reference to in_system_header from comment.
529
530 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
531
532 * c-decl.c (grokdeclarator): Update comment to refer to
533 tree_to_[su]hwi rather than tree_low_cst.
534
535 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
536
537 * c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
538 tree_to_uhwi throughout.
539
540 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
541
542 * c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
543 throughout.
544
545 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
546
547 * c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
548 throughout.
549
550 2013-11-15 Aldy Hernandez <aldyh@redhat.com>
551
552 * c-parser.c (c_parser_cilk_simd): New.
553 (c_parser_cilk_verify_simd): New.
554 (c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
555 (c_parser_omp_for_loop): Add case for NE_EXPR.
556 Set c_break_label for CILK_SIMD.
557 (c_parser_cilk_clause_vectorlength): New.
558 (c_parser_cilk_clause_linear): New.
559 (c_parser_cilk_clause_name): New.
560 (c_parser_cilk_all_clauses): New.
561 * c-typeck.c (build_unary_op): Pass location argument to
562 readonly_error.
563 (build_modify_expr): Same.
564 (build_asm_expr): Same.
565 (c_finish_bc_stmt): Error on break/continue in loops.
566
567 2013-11-14 Andrew MacLeod <amacleod@redhat.com>
568
569 * c-typeck.c: Include only gimplify.h and gimple.h as needed.
570
571 2013-11-14 Diego Novillo <dnovillo@google.com>
572
573 * c-decl.c: Include print-tree.h.
574 Include stor-layout.h.
575 Include varasm.h.
576 Include attribs.h.
577 Include stringpool.h.
578 * c-lang.c: Include fold-const.h.
579 * c-parser.c: Include stringpool.h.
580 Include attribs.h.
581 Include stor-layout.h.
582 Include varasm.h.
583 Include trans-mem.h.
584 * c-typeck.c: Include stor-layout.h.
585 Include trans-mem.h.
586 Include varasm.h.
587 Include stmt.h.
588
589 2013-11-13 Joseph Myers <joseph@codesourcery.com>
590
591 * c-tree.h (c_typespec_keyword): Add cts_auto_type.
592 * c-decl.c (declspecs_add_type, finish_declspecs): Handle
593 __auto_type.
594 * c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
595 (c_parser_attribute_any_word, c_parser_objc_selector): Handle
596 RID_AUTO_TYPE.
597 (c_parser_declspecs): Take argument AUTO_TYPE_OK.
598 (c_parser_declaration_or_fndef, c_parser_struct_declaration)
599 (c_parser_declarator, c_parser_direct_declarator_inner)
600 (c_parser_parameter_declaration, c_parser_type_name): All callers
601 changed.
602 (c_parser_declaration_or_fndef): Handle declarations with type
603 determined from the initializer.
604
605 2013-11-12 Andrew MacLeod <amacleod@redhat.com>
606
607 * c-typeck.c: Include gimplify.h.
608
609 2013-11-12 Joseph Myers <joseph@codesourcery.com>
610
611 * c-tree.h (struct c_declspecs): Add thread_gnu_p field.
612 * c-parser.c (c_parser_declspecs): Mention _Thread_local in
613 comment.
614 * c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
615 or _Thread_local as appropriate in diagnostics.
616 (build_null_declspecs): Initialize ret->thread_gnu_p.
617 (declspecs_add_scspec): Handle either __thread or _Thread_local
618 for RID_THREAD. Diagnose _Thread_local for pre-C11 standards if
619 pedantic. Do not disallow _Thread_local extern and _Thread_local
620 static.
621
622 2013-11-07 Joseph Myers <joseph@codesourcery.com>
623 Andrew MacLeod <amacleod@redhat.com>
624
625 * c-aux-info.c (gen_type): Handle atomic qualifier.
626 * c-decl.c (validate_proto_after_old_defn): Do not remove atomic
627 qualifiers when compating types.
628 (shadow_tag_warned): Handle atomic_p in declspecs.
629 (quals_from_declspecs): Likewise.
630 (start_decl): Use c_type_promotes_to when promoting argument
631 types.
632 (grokdeclarator): Handle _Atomic.
633 (get_parm_info): Diagnose any qualifier on "void" as only
634 parameter.
635 (store_parm_decls_oldstyle): Do not remove atomic qualifiers when
636 comparing types. Use c_type_promotes_to when promoting argument
637 types.
638 (finish_function): Use c_type_promotes_to when promoting argument
639 types.
640 (build_null_declspecs): Handle atomic_p in declspecs.
641 (declspecs_add_qual): Handle RID_ATOMIC.
642 * c-parser.c (c_token_starts_typename, c_token_is_qualifier)
643 (c_token_starts_declspecs): Handle RID_ATOMIC.
644 (c_parser_declspecs): Handle atomic type specifiers and
645 qualifiers.
646 (c_parser_typeof_specifier): Remove const and _Atomic qualifiers
647 from types of expressions with atomic type.
648 (c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
649 (c_parser_attribute_any_word): Handle RID_ATOMIC.
650 (c_parser_initializer, c_parser_initelt, c_parser_initval)
651 (c_parser_statement_after_labels, c_parser_switch_statement)
652 (c_parser_for_statement, c_parser_expr_no_commas)
653 (c_parser_conditional_expression, c_parser_binary_expression)
654 (c_parser_cast_expression, c_parser_unary_expression)
655 (c_parser_postfix_expression)
656 (c_parser_postfix_expression_after_primary, c_parser_expression):
657 Use convert_lvalue_to_rvalue.
658 (c_parser_expression_conv, c_parser_expr_list): Document
659 conversion of lvalues to rvalues. Use convert_lvalue_to_rvalue.
660 (c_parser_objc_synchronized_statement): Use
661 convert_lvalue_to_rvalue.
662 (c_parser_objc_selector): Handle RID_ATOMIC.
663 (c_parser_objc_receiver, c_parser_array_notation): Use
664 convert_lvalue_to_rvalue.
665 * c-tree.h (ctsk_typeof): Adjust comment to mention use for
666 _Atomic (type-name).
667 (struct c_declspecs): Add atomic_p field.
668 (convert_lvalue_to_rvalue): Declare.
669 * c-typeck.c (c_type_promotes_to): Promote atomic types to
670 corresponding atomic types.
671 (qualify_type): Don't add _Atomic qualifiers from second argument.
672 (comp_target_types): Do not allow _Atomic mismatches.
673 (type_lists_compatible_p): Do not remove atomic qualifiers when
674 comparing types.
675 (really_atomic_lvalue, convert_lvalue_to_rvalue)
676 (build_atomic_assign): New functions.
677 (build_unary_op): Use build_atomic_assign for atomic increment and
678 decrement.
679 (build_conditional_expr): Do not treat _Atomic void as a qualified
680 version of void.
681 (build_modify_expr): Use build_atomic_assign for atomic LHS.
682 (find_anonymous_field_with_type, convert_to_anonymous_field)
683 (convert_for_assignment): Do not remove atomic qualifiers when
684 comparing types.
685 (digest_init): Do not accept initialization of arrays of atomic
686 elements by string constants.
687 (build_asm_expr): Use convert_lvalue_to_rvalue.
688 (build_binary_op): Do not treat _Atomic void as a qualified
689 version of void.
690
691 2013-11-06 DJ Delorie <dj@redhat.com>
692
693 * c-decl.c (locate_old_decl): If a previous conflicting decl is
694 both explicit and builtin, print the location of the explicit one.
695
696 2013-11-05 Tobias Burnus <burnus@net-b.de>
697
698 * c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
699 c_parser_omp_distribute, c_parser_omp_teams,
700 c_parser_omp_target, c_parser_omp_declare): Handle
701 -fopenmp-simd.
702
703 2013-11-03 Marek Polacek <polacek@redhat.com>
704
705 * c-decl.c (grokdeclarator): Add VLA instrumentation.
706
707 2013-11-01 Jakub Jelinek <jakub@redhat.com>
708
709 * c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
710 check_dup_generic at the end, unless remove is true.
711 (c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
712 remove = true;.
713 (c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
714
715 2013-10-31 Jakub Jelinek <jakub@redhat.com>
716
717 * c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
718 with decl that is not pointer nor array.
719
720 2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
721
722 * c-decl.c (finish_function): Added a call for insert_cilk_frame when
723 a spawning function is found.
724 * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
725 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
726 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
727 * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
728 case.
729 (c_parser_postfix_expression): Added RID_CILK_SPAWN case.
730 * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
731 expr.
732 (c_finish_return): Added a check to reject _Cilk_spawn in return
733 expression.
734 (build_cilk_spawn): New function.
735 (build_cilk_sync): Likewise.
736 * Makefile.in (c-decl.o): Added cilk.h in dependency list.
737
738 2013-10-27 Tobias Burnus <burnus@net-b.de>
739
740 PR other/33426
741 * c-parser.c (c_parser_while_statement, c_parser_while_statement,
742 c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
743 (c_parser_statement_after_labels): Update calls.
744
745 2013-10-24 Tobias Burnus <burnus@net-b.de>
746
747 PR other/33426
748 * c-parser.c (c_parser_pragma, c_parser_for_statement):
749 Handle PRAGMA_IVDEP.
750 (c_parser_statement_after_labels): Update call.
751
752 2013-10-24 Marek Polacek <polacek@redhat.com>
753
754 * c-parser.c (c_parser_struct_declaration): Add a comment.
755 (c_parser_declarator): Don't allow _Alignas here.
756
757 2013-10-17 Andrew MacLeod <amacleod@redhat.com>
758
759 * c-parser.c: Include omp-low.h.
760 * c-typeck.c: Likewise.
761
762 2013-10-17 Marek Polacek <polacek@redhat.com>
763
764 PR c/58267
765 * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
766 Document syntax of the array-declarator.
767 (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
768 are not permitted.
769 (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
770 (c_parser_struct_declaration): Likewise.
771 (c_parser_declarator): Likewise.
772 (c_parser_direct_declarator_inner): Likewise.
773 (c_parser_parameter_declaration): Likewise.
774 (c_parser_type_name): Likewise.
775
776 2013-10-11 Jakub Jelinek <jakub@redhat.com>
777
778 * c-lang.h (current_omp_declare_target_attribute): New extern
779 decl.
780 * c-parser.c: Include c-lang.h.
781 (struct c_parser): Change tokens to c_token *.
782 Add tokens_buf field. Change tokens_avail type to unsigned int.
783 (c_parser_consume_token): If parser->tokens isn't
784 &parser->tokens_buf[0], increment parser->tokens.
785 (c_parser_consume_pragma): Likewise.
786 (enum pragma_context): Add pragma_struct and pragma_param.
787 (c_parser_external_declaration): Adjust
788 c_parser_declaration_or_fndef caller.
789 (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
790 argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
791 Adjust recursive call.
792 (c_parser_struct_or_union_specifier): Use pragma_struct instead
793 of pragma_external.
794 (c_parser_parameter_declaration): Use pragma_param instead of
795 pragma_external.
796 (c_parser_compound_statement_nostart, c_parser_label,
797 c_parser_for_statement): Adjust
798 c_parser_declaration_or_fndef callers.
799 (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
800 it through to c_parser_conditional_expression.
801 (c_parser_conditional_expression): Add omp_atomic_lhs argument,
802 pass it through to c_parser_binary_expression. Adjust recursive
803 call.
804 (c_parser_binary_expression): Remove prec argument, add
805 omp_atomic_lhs argument instead. Always start from PREC_NONE, if
806 omp_atomic_lhs is non-NULL and one of the arguments of toplevel
807 binop matches it, use build2 instead of parser_build_binary_op.
808 (c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
809 PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
810 PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
811 Handle pragma_struct and pragma_param the same as pragma_external.
812 (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
813 (c_parser_omp_variable_list): Parse array sections for
814 OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
815 (c_parser_omp_clause_collapse): Fully fold collapse expression.
816 (c_parser_omp_clause_reduction): Handle user defined reductions.
817 (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
818 c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
819 c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
820 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
821 c_parser_omp_clause_depend, c_parser_omp_clause_map,
822 c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
823 c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
824 c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
825 (c_parser_omp_all_clauses): Add finish_p argument. Don't call
826 c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
827 (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
828 present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms.
829 (c_parser_omp_for_loop): Add CODE argument, pass it through
830 to c_finish_omp_for. Change last argument to cclauses,
831 and adjust uses to grab parallel clauses from the array of all
832 the split clauses. Adjust c_parser_binary_expression,
833 c_parser_declaration_or_fndef and c_finish_omp_for callers.
834 (omp_split_clauses): New function.
835 (c_parser_omp_simd): New function.
836 (c_parser_omp_for): Add p_name, mask and cclauses arguments.
837 Allow the function to be called also when parsing combined constructs,
838 and call c_parser_omp_simd when parsing for simd.
839 (c_parser_omp_sections_scope): If section-sequence doesn't start with
840 #pragma omp section, require exactly one structured-block instead of
841 sequence of statements.
842 (c_parser_omp_sections): Add p_name, mask and cclauses arguments.
843 Allow the function to be called also when parsing combined constructs.
844 (c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
845 Allow the function to be called also when parsing combined
846 constructs.
847 (c_parser_omp_taskgroup, c_parser_omp_cancel,
848 c_parser_omp_cancellation_point, c_parser_omp_distribute,
849 c_parser_omp_teams, c_parser_omp_target_data,
850 c_parser_omp_target_update, c_parser_omp_target,
851 c_parser_omp_declare_simd, c_finish_omp_declare_simd,
852 c_parser_omp_declare_target, c_parser_omp_end_declare_target,
853 c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
854 (c_parser_omp_construct): Add p_name and mask vars. Handle
855 PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
856 PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel
857 and c_parser_omp_sections callers.
858 (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
859 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
860 OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
861 (OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
862 (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
863 OMP_CLAUSE_DEPEND.
864 (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
865 OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
866 OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
867 OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
868 OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
869 * c-typeck.c: Include tree-inline.h.
870 (c_finish_omp_cancel, c_finish_omp_cancellation_point,
871 handle_omp_array_sections_1, handle_omp_array_sections,
872 c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
873 (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
874 user defined reductions.
875 (c_tree_equal): New function.
876 * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
877 c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
878 c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
879 c_check_omp_declare_reduction_r): New prototypes.
880 * c-decl.c (current_omp_declare_target_attribute): New variable.
881 (c_decl_attributes): New function.
882 (start_decl, start_function): Use it instead of decl_attributes.
883 (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
884 c_omp_reduction_decl, c_omp_reduction_lookup,
885 c_check_omp_declare_reduction_r): New functions.
886
887 2013-09-25 Tom Tromey <tromey@redhat.com>
888
889 * Make-lang.in (c/gccspec.o): Remove.
890 (CFLAGS-c/gccspec.o): New variable.
891 (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
892 (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
893 (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
894
895 2013-09-25 Tom Tromey <tromey@redhat.com>
896
897 * Make-lang.in (c/gccspec.o): Don't use subshell.
898
899 2013-09-18 Marek Polacek <polacek@redhat.com>
900
901 PR sanitize/58443
902 * c-typeck.c (build_binary_op): Properly honor -fsanitize options.
903 Remove unnecessary check.
904
905 2013-09-18 Marek Polacek <polacek@redhat.com>
906
907 PR sanitizer/58411
908 * c-typeck.c (build_binary_op): Don't sanitize function if it has the
909 no_sanitize_undefined attribute.
910
911 2013-09-13 Kai Tietz <ktietz@redhat.com>
912
913 PR target/57848
914 * c-decl.c (c_builtin_function_ext_scope): Remove
915 wrong assumption that it is never called on prexisting
916 symbol.
917
918 2013-09-08 Joern Rennecke <joern.rennecke@embecosm.com>
919
920 * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
921
922 2013-09-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
923
924 * c-objc-common.c (c_tree_printer): Tidy.
925
926 2013-08-30 Marek Polacek <polacek@redhat.com>
927
928 * c-typeck.c (build_binary_op): Add division by zero and shift
929 instrumentation.
930
931 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
932 Joseph Myers <joseph@codesourcery.com>
933
934 PR c/35649
935 * c-typeck.c (c_common_type): Prefer double_type_node over
936 other REAL_TYPE types with the same precision.
937 (convert_arguments): Likewise.
938
939 2013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
940
941 * c-objc-common.c (c_tree_printer): Document the nature of the cast.
942 (c_initialize_diagnostics): Call a destructor for the early printer.
943
944 2013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
945
946 * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
947 printer initialization.
948
949 2013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com>
950
951 PR c/57490
952 * c-array-notation.c (fix_conditional_array_notations_1): Added a
953 check for truth values.
954 (expand_array_notation_exprs): Added truth values case. Removed an
955 unwanted else. Added for-loop to walk through subtrees in default
956 case.
957
958 2013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
959
960 * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
961
962 2013-07-23 Joseph Myers <joseph@codesourcery.com>
963
964 * c-parser.c (struct c_generic_association): Fix typo.
965
966 2013-07-23 Tom Tromey <tromey@redhat.com>
967 Joseph Myers <joseph@codesourcery.com>
968
969 * c-parser.c (struct c_generic_association): New.
970 (c_generic_association_d): New typedef.
971 (c_parser_generic_selection): New function.
972 (c_parser_postfix_expression): Handle RID_GENERIC.
973
974 2013-07-13 Jason Merrill <jason@redhat.com>
975
976 PR c++/57793
977 * c-decl.c (finish_struct): Check for too-large class.
978
979 2013-07-04 Joern Rennecke <joern.rennecke@embecosm.com>
980
981 PR c/57821
982 * c-typeck.c (set_init_index): When folding, check for index overflow.
983
984 2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
985
986 * c-parser.c (c_parser_array_notation): Removed rejection of array
987 notations in an array of function pointers.
988
989 2013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com>
990
991 * c-array-notation.c (make_triplet_val_inv): New function.
992 (create_cmp_incr): Likewise.
993 (create_array_refs): Likewise.
994 (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
995 Also modularized common parts between functions and called the function.
996 (build_array_notation_expr): Likewise.
997 (fix_conditional_array_notations_1): Likewise.
998 (fix_array_notation_expr): Likewise.
999 (fix_array_notation_call_expr): Likewise.
1000
1001 2013-06-18 Marek Polacek <polacek@redhat.com>
1002
1003 PR c/57630
1004 * c-decl.c (check_for_loop_decls): Improve diagnostics messages.
1005
1006 2013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com>
1007
1008 * c-array-notation.c (build_array_notation_expr): Reject array notation
1009 mismatch between LHS and RHS even inside a call_expr. Also, removed
1010 a couple while statements that were dead code.
1011
1012 2013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
1013
1014 * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
1015 excessive precision expressions in function parameters. Also removed
1016 couple unwanted while statements.
1017
1018 2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
1019
1020 * c-array-notation.c (expand_array_notation_exprs): Added
1021 ARRAY_NOTATION_REF case.
1022
1023 2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
1024
1025 * c-array-notation.c (length_mismatch_in_expr_p): Moved this
1026 function to c-family/array-notation-common.c.
1027 (is_cilkplus_reduce_builtin): Likewise.
1028 (find_rank): Likewise.
1029 (extract_array_notation_exprs): Likewise.
1030 (replace_array_notations): Likewise.
1031 (find_inv_trees): Likewise.
1032 (replace_inv_trees): Likewise.
1033 (contains_array_notation_expr): Likewise.
1034 (find_correct_array_notation_type): Likewise.
1035 (replace_invariant_exprs): Initialized additional_tcodes to NULL.
1036 (struct inv_list): Moved this to c-family/array-notation-common.c.
1037 * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
1038
1039 2013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com>
1040
1041 * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
1042 reduction functions outside the for-loop. Added a check if the fundecl
1043 is non-NULL. Finally, removed an unwanted if-statement, and made the
1044 body unconditional.
1045
1046 2013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
1047
1048 * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
1049 condition of the if-statement matches the rank of else-block and then-
1050 block when array notations are used.
1051 * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
1052 expression after the entire function body is parsed.
1053 (c_parser_expr_no_commas): Delayed creating array notation expressions
1054 to the end of function parsing.
1055 * c-array-notation.c (fix_conditional_array_notations_1): Expanded the
1056 whole if-statement instead of just the condition.
1057 (expand_array_notation_exprs): Added MODIFY_EXPR case.
1058
1059 2013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
1060
1061 PR c/57474
1062 * c-array-notation.c (build_array_notation_expr): Initialized rhs_length
1063 array to NULL_TREE if they are unused. Also added a check for the
1064 field to be NULL before its fields are used in future.
1065
1066 2013-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1067
1068 PR bootstrap/57450
1069 * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
1070 (build_array_notation_expr): Likewise.
1071
1072 2013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
1073
1074 * c-typeck.c (build_array_ref): Added a check to see if array's
1075 index is greater than one. If true, then emit an error.
1076 (build_function_call_vec): Exclude error reporting and checking
1077 for builtin array-notation functions.
1078 (convert_arguments): Likewise.
1079 (c_finish_return): Added a check for array notations as a return
1080 expression. If true, then emit an error.
1081 (c_finish_loop): Added a check for array notations in a loop
1082 condition. If true then emit an error.
1083 (lvalue_p): Added a ARRAY_NOTATION_REF case.
1084 (build_binary_op): Added a check for array notation expr inside
1085 op1 and op0. If present, we call another function to find correct
1086 type.
1087 * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
1088 * c-parser.c (c_parser_compound_statement): Check if array
1089 notation code is used in tree, if so, then transform them into
1090 appropriate C code.
1091 (c_parser_expr_no_commas): Check if array notation is used in LHS
1092 or RHS, if so, then build array notation expression instead of
1093 regular modify.
1094 (c_parser_postfix_expression_after_primary): Added a check for
1095 colon(s) after square braces, if so then handle it like an array
1096 notation. Also, break up array notations in unary op if found.
1097 (c_parser_direct_declarator_inner): Added a check for array
1098 notation.
1099 (c_parser_compound_statement): Added a check for array notation in
1100 a stmt. If one is present, then expand array notation expr.
1101 (c_parser_if_statement): Likewise.
1102 (c_parser_switch_statement): Added a check for array notations in
1103 a switch statement's condition. If true, then output an error.
1104 (c_parser_while_statement): Similarly, but for a while.
1105 (c_parser_do_statement): Similarly, but for a do-while.
1106 (c_parser_for_statement): Similarly, but for a for-loop.
1107 (c_parser_unary_expression): Check if array notation is used in a
1108 pre-increment or pre-decrement expression. If true, then expand
1109 them.
1110 (c_parser_array_notation): New function.
1111 * c-array-notation.c: New file.
1112 * c-tree.h (is_cilkplus_reduce_builtin): Protoize.
1113
1114 2013-05-23 Mike Stump <mikestump@comcast.net>
1115
1116 * c-typeck.c (convert_for_assignment): Handle references to memory
1117 spaces better.
1118
1119 2013-05-16 Jason Merrill <jason@redhat.com>
1120
1121 * Make-lang.in (cc1$(exeext)): Use link mutex.
1122
1123 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
1124
1125 * c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
1126 to simply use OPT_Wpointer_arith.
1127 (build_unary_op): Likewise.
1128
1129 2013-04-03 Jakub Jelinek <jakub@redhat.com>
1130
1131 PR c/19449
1132 * c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
1133 argument. If set, or it temporarily for parsing of the first
1134 argument into force_folding_builtin_constant_p.
1135 (c_parser_postfix_expression): Adjust callers.
1136
1137 2013-03-21 Richard Biener <rguenther@suse.de>
1138
1139 * c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
1140 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
1141
1142 2013-02-12 Marek Polacek <polacek@redhat.com>
1143
1144 PR c/44938
1145 * c-parser.c (c_parser_postfix_expression_after_primary): Initialize
1146 origtypes to NULL.
1147
1148 2013-01-24 Jakub Jelinek <jakub@redhat.com>
1149
1150 PR c/56078
1151 * c-typeck.c (set_nonincremental_init_from_string): If
1152 constructor_max_index is NULL, treat it as if tree_int_cst_lt
1153 returned false.
1154 (process_init_element): Likewise.
1155
1156 2012-12-20 Jakub Jelinek <jakub@redhat.com>
1157
1158 PR c++/55619
1159 * c-parser.c (c_parser_asm_operands): Remove CONVERT_P
1160 argument, don't call default_function_array_conversion
1161 nor c_fully_fold here.
1162 (c_parser_asm_statement): Adjust callers.
1163 * c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
1164 and outputs here, and call default_function_array_conversion
1165 on inputs that don't need to be addressable.
1166
1167 2012-12-18 Jakub Jelinek <jakub@redhat.com>
1168
1169 PR c/39464
1170 * c-typeck.c (convert_for_assignment): For -Wpointer-sign
1171 warning require that both c_common_unsigned_type as well as
1172 c_common_signed_type is the same for both mvl and mvr types.
1173
1174 2012-11-16 Diego Novillo <dnovillo@google.com>
1175
1176 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
1177
1178 * c-common.c: Use new vec API in vec.h.
1179 * c-common.h: Likewise.
1180 * c-gimplify.c: Likewise.
1181 * c-pragma.c: Likewise.
1182 * c-pretty-print.c: Likewise.
1183 * c-pretty-print.h: Likewise.
1184 * c-semantics.c: Likewise.
1185 * c-decl.c: Likewise.
1186 * c-parser.c: Likewise.
1187 * c-tree.h: Likewise.
1188 * c-typeck.c: Likewise.
1189
1190 2012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
1191
1192 PR c++/54930
1193 * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.
1194
1195 2012-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
1196
1197 PR c/53066
1198 * c-decl.c (warn_if_shadowing): Do not warn if a variable
1199 shadows a function, unless the variable is a function or a
1200 pointer-to-function.
1201
1202 2012-10-12 Jakub Jelinek <jakub@redhat.com>
1203
1204 PR c/54381
1205 * c-parser.c (struct c_tree_loc_pair): Removed.
1206 (c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
1207 add location_t * and tree * arguments, fill in array of 3
1208 sizeof_arg trees and corresponding locs.
1209 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust
1210 c_parser_expr_list callers.
1211 (c_parser_postfix_expression_after_primary): Likewise. Pass
1212 array of 3 sizeof_arg trees and locs (corresponding to first
1213 3 arguments) to sizeof_pointer_memaccess_warning.
1214
1215 2012-10-09 Lawrence Crowl <crowl@google.com>
1216
1217 * Make-lang.in (c-decl.o): Add dependence on hash-table.h.
1218 * c-decl.c (detect_field_duplicates_hash): Change to new type-safe
1219 hash table.
1220
1221 2012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
1222
1223 PR c++/54194
1224 * c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
1225 call.
1226
1227 2012-10-09 Marc Glisse <marc.glisse@inria.fr>
1228
1229 PR c++/54427
1230 * c-typeck.c: Include c-common.h.
1231 (enum stv_conv): Moved to c-common.h.
1232 (scalar_to_vector): Moved to c-common.c.
1233 (build_binary_op): Adapt to scalar_to_vector's new prototype.
1234 * Make-lang.in: c-typeck.c depends on c-common.h.
1235
1236 2012-10-04 Arnaud Charlet <charlet@adacore.com>
1237
1238 * c-decl.c (c_write_global_declarations): Fix handling of
1239 -fdump-ada-spec*.
1240
1241 2012-09-30 Sharad Singhai <singhai@google.com>
1242
1243 * c-decl.c (c_write_global_declarations): Use a different method
1244 to determine if the dump has ben initialized.
1245
1246 2012-09-14 Joseph Myers <joseph@codesourcery.com>
1247
1248 PR c/54552
1249 * c-typeck.c (c_cast_expr): When casting to a type requiring
1250 C_MAYBE_CONST_EXPR to be created, pass the inner expression to
1251 c_fully_fold first.
1252
1253 2012-09-14 Joseph Myers <joseph@codesourcery.com>
1254
1255 PR c/54103
1256 * c-typeck.c (build_unary_op): Pass original argument of
1257 TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
1258 any C_MAYBE_CONST_EXPR, if it has integer operands.
1259 (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
1260 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
1261 to c_objc_common_truthvalue_conversion, then remove any
1262 C_MAYBE_CONST_EXPR, if they have integer operands. Use
1263 c_objc_common_truthvalue_conversion not
1264 c_common_truthvalue_conversion.
1265 (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
1266 call note_integer_operands for arguments with integer operands
1267 that are not integer constants.
1268
1269 2012-09-13 Jakub Jelinek <jakub@redhat.com>
1270
1271 PR c/54559
1272 * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
1273 COMPLEX_TYPE with in_late_binary_op set temporarily to true.
1274
1275 2012-08-31 Jakub Jelinek <jakub@redhat.com>
1276
1277 PR c/54428
1278 * c-convert.c (convert): Don't call fold_convert_loc if
1279 TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
1280 is a COMPLEX_EXPR. Remove TYPE_MAIN_VARIANT check from
1281 COMPLEX_TYPE -> COMPLEX_TYPE conversion.
1282
1283 2012-08-24 Jakub Jelinek <jakub@redhat.com>
1284
1285 PR c/54355
1286 * c-decl.c (c_parser_label): Pass true as nested and fix up comments
1287 for nested and empty_ok arguments in the call to
1288 c_parser_declaration_or_fndef.
1289
1290 2012-08-17 Jakub Jelinek <jakub@redhat.com>
1291
1292 * c-tree.h (c_last_sizeof_arg): Declare.
1293 * c-parser.c (struct c_tree_loc_pair): New type.
1294 (c_parser_expr_list): Add sizeof_arg argument. Fill it in if
1295 non-NULL.
1296 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
1297 (c_parser_postfix_expression_after_primary): Likewise. Call
1298 sizeof_pointer_memaccess_warning if needed.
1299 (sizeof_ptr_memacc_comptypes): New function.
1300 * c-typeck.c (c_last_sizeof_arg): New global variable.
1301 (c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
1302
1303 2012-07-24 Uros Bizjak <ubizjak@gmail.com>
1304
1305 * c-lang.h (lang_decl): Add variable_size GTY option.
1306
1307 2012-07-16 Steven Bosscher <steven@gcc.gnu.org>
1308
1309 * c-decl.c: Include dumpfile.h instead of tree-dump.h.
1310 * Make-lang.in: Fix dependencies.
1311
1312 2012-06-29 Steven Bosscher <steven@gcc.gnu.org>
1313
1314 * Make-lang.in: New file, rules migrated from gcc/Makefile.in
1315 and add language Makefile hooks.
1316 * config-lang.in: New file.
1317 * c-config-lang.in: Moved from gcc/config-lang.in to here, and
1318 add the required "normal" config-lang.in rules.
1319 * c-lang.h: Moved from gcc/ to here.
1320 * c-tree.h: Likewise.
1321 * c-objc-common.c: Likewise.
1322 * c-objc-common.h: Likewise.
1323 * c-typeck.c: Likewise.
1324 * c-convert.c: Likewise.
1325 * c-lang.c: Likewise.
1326 * c-aux-info.c: Likewise.
1327 * c-errors.c: Likewise.
1328 * gccspec.c: Likewise.
1329 * c-decl.c: Likewise. Include gt-c-c-decl.h, not gt-c-decl.h.
1330 * c-parser.c: Likewise. Include gt-c-c-parser.h, not gt-c-parser.h.
1331 \f
1332 Copyright (C) 2012-2014 Free Software Foundation, Inc.
1333
1334 Copying and distribution of this file, with or without modification,
1335 are permitted in any medium without royalty provided the copyright
1336 notice and this notice are preserved.