]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c/ChangeLog
[multiple changes]
[thirdparty/gcc.git] / gcc / c / ChangeLog
CommitLineData
b1c95bb5
RB
12017-01-13 Richard Biener <rguenther@suse.de>
2
3 * gimple-parser.c (c_parser_gimple_compound_statement): Handle
4 nops.
5
25329913
RB
62017-01-13 Richard Biener <rguenther@suse.de>
7
8 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
9 _Literal ( type-name ) number.
10
6bb4ea5c
RB
112017-01-12 Richard Biener <rguenther@suse.de>
12
13 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
14 __MEM.
15
6b5b4e9c
JJ
162017-01-11 Jakub Jelinek <jakub@redhat.com>
17
18 PR c++/72813
19 * c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing
20 PCH file.
21
e3252775
RB
222017-01-11 Richard Biener <rguenther@suse.de>
23
24 PR bootstrap/79052
25 * gimple-parser.c (c_parser_gimple_switch_stmt): Add missing
26 returns on parse errors.
27
a9342885
MP
282017-01-04 Marek Polacek <polacek@redhat.com>
29
30 PR c++/64767
31 * c-parser.c (c_parser_postfix_expression): Mark zero character
32 constants by setting original_type in c_expr.
33 * c-typeck.c (parser_build_binary_op): Warn when a pointer is compared
34 with a zero character constant.
35 (char_type_p): New function.
36
5dd9a9d0
DM
372017-01-04 David Malcolm <dmalcolm@redhat.com>
38
39 * c-parser.c (c_parser_declaration_or_fndef): Create a
40 rich_location at init_loc and parse it to start_init.
41 (last_init_list_comma): New global.
42 (c_parser_braced_init): Update last_init_list_comma when parsing
43 commas. Pass it to pop_init_level. Pass location of closing
44 brace to pop_init_level.
45 (c_parser_postfix_expression_after_paren_type): Create a
46 rich_location at type_loc and parse it to start_init.
47 (c_parser_omp_declare_reduction): Likewise for loc.
48 * c-tree.h (start_init): Add rich_location * param.
49 (pop_init_level): Add location_t param.
50 * c-typeck.c (struct initializer_stack): Add field
51 "missing_brace_richloc".
52 (start_init): Add richloc param, use it to initialize
53 the stack node's missing_brace_richloc.
54 (last_init_list_comma): New decl.
55 (finish_implicit_inits): Pass last_init_list_comma to
56 pop_init_level.
57 (push_init_level): When finding missing open braces, add fix-it
58 hints to the richloc.
59 (pop_init_level): Add "insert_before" param and pass it
60 when calling pop_init_level. Add fixits about missing
61 close braces to any richloc. Use the richloc for the
62 -Wmissing-braces warning.
63 (set_designator): Pass last_init_list_comma to pop_init_level.
64 (process_init_element): Likewise.
65
cbe34bb5
JJ
662017-01-01 Jakub Jelinek <jakub@redhat.com>
67
68 Update copyright years.
69
d17680f3
JJ
702016-12-21 Jakub Jelinek <jakub@redhat.com>
71
0dba7960
JJ
72 PR bootstrap/78817
73 * c-typeck.c (build_function_call_vec): If check_function_arguments
74 returns true, set TREE_NO_WARNING on CALL_EXPR.
75
d17680f3
JJ
76 PR c/77767
77 * c-decl.c (grokdeclarator): If *expr is non-NULL, append expression
78 to *expr instead of overwriting it.
79
aa90531e
RB
802016-12-20 Richard Biener <rguenther@suse.de>
81
82 * gimple-parser.c (c_parser_gimple_compound_statement): Improve
83 error recovery.
84 (c_parser_gimple_statement): Only build assigns for non-error
85 stmts.
86 (c_parser_gimple_postfix_expression_after): Improve error recovery.
87
629b3d75
MJ
882016-12-14 Martin Jambor <mjambor@suse.cz>
89
90 * c-parser.c: Include omp-general.h and omp-offload.h instead of
91 omp-low.h.
92 (c_finish_oacc_routine): Adjusted call to
93 get_oacc_fn_attrib, build_oacc_routine_dims and replace_oacc_fn_attrib
94 to use their new names.
95 (c_parser_oacc_enter_exit_data): Adjusted call to find_omp_clause to
96 use its new name.
97 (c_parser_oacc_update): Likewise.
98 (c_parser_omp_simd): Likewise.
99 (c_parser_omp_target_update): Likewise.
100 * c-typeck.c: Include omp-general.h instead of omp-low.h.
101 (c_finish_omp_cancel): Adjusted call to find_omp_clause to use its new
102 name.
103 (c_finish_omp_cancellation_point): Likewise.
104 * gimple-parser.c: Do not include omp-low.h
105
c5af52eb
CP
1062016-12-02 Cesar Philippidis <cesar@codesourcery.com>
107 James Norris <jnorris@codesourcery.com>
108
109 * c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
110 EXIT_DATA,WAIT} are not used in compound statements.
111 (c_parser_oacc_enter_exit_data): Update diagnostics.
112
48330c93
BE
1132016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
114
115 PR c++/71973
116 * c-decl.c (diagnose_mismatched_decls): Use
117 OPT_Wbuiltin_declaration_mismatch here too.
118
899ca90e 1192016-11-18 Richard Sandiford <richard.sandiford@arm.com>
48330c93
BE
120 Alan Hayward <alan.hayward@arm.com>
121 David Sherwood <david.sherwood@arm.com>
899ca90e
RS
122
123 * c-decl.c (merge_decls): Use SET_DECL_MODE.
124 (make_label, finish_struct): Likewise.
125
1ee62b92 1262016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com>
8e745a17 127 Richard Biener <rguenther@suse.de>
22b15758 128
8e745a17
JJ
129 * Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.
130 * config-lang.in (gtfiles): Add c/c-parser.h.
131 * c-tree.h (enum c_declspec_word): Add cdw_gimple.
132 (struct c_declspecs): Add gimple_pass member and gimple_p flag.
133 * c-parser.c (enum c_id_kind, struct c_token,
134 c_parser_next_token_is, c_parser_next_token_is_not,
135 c_parser_next_token_is_keyword,
136 enum c_lookahead_kind, enum c_dtr_syn, enum c_parser_prec):
137 Split out to ...
138 * c-parser.h: ... new header.
139 * c-parser.c: Include c-parser.h and gimple-parser.h.
1ee62b92 140 (c_parser_peek_token, c_parser_peek_2nd_token,
8e745a17
JJ
141 c_token_starts_typename, c_parser_next_token_starts_declspecs,
142 c_parser_next_tokens_start_declaration, c_parser_consume_token,
143 c_parser_error, c_parser_require, c_parser_skip_until_found,
144 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
145 c_parser_type_name): Export.
146 (c_parser_tokens_buf): New function.
147 (c_parser_error): Likewise.
148 (c_parser_set_error): Likewise.
149 (c_parser_declspecs): Handle RID_GIMPLE.
1ee62b92
PG
150 (c_parser_declaration_or_fndef): Parse __GIMPLE marked body
151 via c_parser_parse_gimple_body.
8e745a17
JJ
152 * c-parser.h (c_parser_peek_token, c_parser_peek_2nd_token,
153 c_token_starts_typename, c_parser_next_token_starts_declspecs,
154 c_parser_next_tokens_start_declaration, c_parser_consume_token,
155 c_parser_error, c_parser_require, c_parser_skip_until_found,
156 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
157 c_parser_type_name): Declare.
1ee62b92
PG
158 (struct c_parser): Declare forward.
159 (c_parser_tokens_buf): Declare.
8e745a17
JJ
160 (c_parser_error): Likewise.
161 (c_parser_set_error): Likewise.
162 * gimple-parser.c: New file.
163 * gimple-parser.h: Likewise.
1ee62b92 164
22b15758
UB
1652016-11-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
166
167 PR c/35503
168 * c-parser.c (c_parser_postfix_expression_after_primary): Call
169 warn_for_restrict.
170
84ff4775
LCW
1712016-09-11 Le-Chun Wu <lcwu@google.com>
172 Mark Wielaard <mjw@redhat.com>
173
174 * c-decl.c (warn_if_shadowing): Use the warning code corresponding
175 to the given -Wshadow= variant.
176
4d0cdd0c
TP
1772016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
178
179 * c-typeck.c: Include memmodel.h.
180
1202f33e
JJ
1812016-10-13 Jakub Jelinek <jakub@redhat.com>
182
183 PR target/77957
184 * c-objc-common.h (LANG_HOOKS_GETDECLS): Use hook_tree_void_null
185 instead of lhd_return_null_tree_v.
186
8a14afd0
BS
1872016-10-07 Bernd Schmidt <bschmidt@redhat.com>
188
189 PR c++/69733
190 * c-decl.c (smallest_type_quals_location): New static function.
191 (grokdeclarator): Try to find the correct location for an ignored
192 qualifier.
193
81fea426
MP
1942016-09-26 Marek Polacek <polacek@redhat.com>
195
196 PR c/7652
197 * c-decl.c (pop_scope): Add gcc_fallthrough.
198
1992016-09-26 Marek Polacek <polacek@redhat.com>
200
201 PR c/7652
202 * c-parser.c (struct c_token): Add flags field.
203 (c_lex_one_token): Pass it to c_lex_with_flags.
204 (c_parser_declaration_or_fndef): Turn __attribute__((fallthrough));
205 into IFN_FALLTHROUGH.
206 (c_parser_label): Set FALLTHROUGH_LABEL_P on labels. Handle
207 attribute fallthrough after a case label or default label.
208 (c_parser_statement_after_labels): Handle RID_ATTRIBUTE.
209
9a2300e9
MP
2102016-09-24 Marek Polacek <polacek@redhat.com>
211
212 PR c/77490
213 * c-typeck.c (build_unary_op): Warn about bit not on expressions that
214 have boolean value. Warn about ++/-- on booleans.
215
7de76362
JJ
2162016-09-23 Jakub Jelinek <jakub@redhat.com>
217
218 * c-parser.c (incomplete_record_decls): Remove unnecessary
219 = vNULL initialization of file scope vec.
220
5b73d2ab
MP
2212016-09-16 Marek Polacek <polacek@redhat.com>
222
223 * c-typeck.c (lvalue_p): Use true and false instead of 1 and 0.
224
e51fbec3
MP
2252016-09-14 Marek Polacek <polacek@redhat.com>
226
227 * c-array-notation.c (create_cmp_incr): Use false instead of 0.
228 (fix_array_notation_expr): Likewise.
229 * c-decl.c (finish_decl): Likewise.
230 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
231 * c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
232 (function_to_pointer_conversion): Use false instead of 0.
233 (convert_lvalue_to_rvalue): Likewise.
234 (parser_build_unary_op): Likewise.
235 (build_atomic_assign): Likewise.
236 (build_unary_op): Change nonconvert parameter type to bool, use
237 true/false instead of 1/0.
238 (build_binary_op): Use true instead of 1.
239
254830ba
DM
2402016-09-13 David Malcolm <dmalcolm@redhat.com>
241
242 * c-parser.c (c_parser_declaration_or_fndef): Update for renaming
243 of add_fixit_insert to add_fixit_insert_before.
244
4c13ba17
MP
2452016-09-13 Marek Polacek <polacek@redhat.com>
246
247 * c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT. Use
248 it.
249
54dcdb88
BE
2502016-09-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
251
252 PR c++/77496
253 * c-parser.c (c_parser_conditional_expression): Pass the rightmost
254 COMPOUND_EXPR to warn_for_omitted_condop.
255
e5106e27
DM
2562016-09-07 David Malcolm <dmalcolm@redhat.com>
257
258 * c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
259 c_get_substring_location for this new langhook.
260
9dc5773f
JJ
2612016-09-02 Jakub Jelinek <jakub@redhat.com>
262
263 PR c/65467
264 * c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
265 flag_openmp.
266 (c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
267 instead of mark_exp_read on low_bound/length expression.
268 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
269 c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
270 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
271 c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
272 c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
273 c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
274 c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
275 c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
276 c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
277 c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
278 instead of mark_expr_read.
279 (c_parser_omp_declare_reduction): Reject _Atomic qualified types.
280 * c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
281 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
282 * c-tree.h (c_omp_clause_copy_ctor): New prototype.
283 * c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
284 array section bases outside of depend clause, for depend clause
285 use convert_lvalue_to_rvalue on the base.
286 (c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
287 linear, aligned, map, to and from clauses.
288 (c_omp_clause_copy_ctor): New function.
289
295844f6
MP
2902016-09-01 Marek Polacek <polacek@redhat.com>
291
292 PR c/7652
293 * c-typeck.c (composite_type): Add FALLTHRU comment.
294
089af25c
DM
2952016-08-31 David Malcolm <dmalcolm@redhat.com>
296
297 * c-parser.c (c_parser_declaration_or_fndef): Add trailing space
298 to the insertion fixits for "struct", "union", and "enum".
299
f9087798
DM
3002016-08-30 David Malcolm <dmalcolm@redhat.com>
301
302 * c-decl.c (implicit_decl_warning): Use add_fixit_replace
303 rather than add_fixit_misspelled_id.
304 (undeclared_variable): Likewise.
305 * c-parser.c (c_parser_declaration_or_fndef): Likewise. Remove
306 now-redundant "here" params from add_fixit_insert method calls.
307 (c_parser_parameter_declaration): Likewise.
308 * c-typeck.c (build_component_ref): Remove now-redundant range
309 param from add_fixit_replace method calls.
310
ebef225f
MP
3112016-08-25 Marek Polacek <polacek@redhat.com>
312
313 * c-typeck.c (parser_build_binary_op): Pass LHS to
314 warn_logical_not_parentheses.
315
fe377a48
MP
3162016-08-25 Marek Polacek <polacek@redhat.com>
317
318 PR c/77323
319 * c-decl.c (declspecs_add_type): Set typespec_word even when __intN
320 or _FloatN or _FloatNx is not supported.
321 (finish_declspecs): Set type to integer_type_node when _FloatN or
322 _FloatNx is not supported.
323
c65699ef
JM
3242016-08-19 Joseph Myers <joseph@codesourcery.com>
325
326 PR c/32187
327 * c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
328 (struct c_declspecs): Add field floatn_nx_idx.
329 * c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
330 and _FloatNx type specifiers.
331 * c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
332 (c_parser_declspecs, c_parser_attribute_any_word)
333 (c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
334 * c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
335 (convert_arguments): Avoid promoting _FloatN and _FloatNx types
336 narrower than double.
337
2f1364c2
JJ
3382016-08-12 Jakub Jelinek <jakub@redhat.com>
339 Martin Liska <mliska@suse.cz>
340
341 PR c/67410
342 * c-typeck.c (set_nonincremental_init_from_string): Use / instead of
343 % to determine val element to change. Assert that
344 wchar_bytes * charwidth fits into val array.
345
191816a3
MP
3462016-08-12 Marek Polacek <polacek@redhat.com>
347
348 PR c/7652
349 * c-parser.c (c_parser_external_declaration): Add FALLTHRU.
350 (c_parser_postfix_expression): Likewise.
351 * c-typeck.c (build_unary_op): Adjust fall through comment.
352 (c_mark_addressable): Likewise.
353
b95a64bb
JJ
3542016-08-11 Jakub Jelinek <jakub@redhat.com>
355
356 PR c/72816
357 * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
358 array member through typedef, for orig_qual_indirect == 0 clear
359 orig_qual_type.
360
895aa8e1
DM
3612016-08-08 David Malcolm <dmalcolm@redhat.com>
362
363 PR c/64955
364 * c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
365 this up to selftest::run_c_tests.
366 (selftest::run_c_tests): New function.
367
0b212d8c
TS
3682016-08-04 Thomas Schwinge <thomas@codesourcery.com>
369
ae9281fc
TS
370 * c-parser.c (struct oacc_routine_data): Add error_seen and
371 fndecl_seen members.
372 (c_finish_oacc_routine): Use these.
373 (c_parser_declaration_or_fndef): Adjust.
374 (c_parser_oacc_routine): Likewise. Support more C language
375 constructs, and improve diagnostics. Move pragma context
376 checking...
377 (c_parser_pragma): ... here.
378
0b212d8c
TS
379 * c-parser.c (struct oacc_routine_data): New.
380 (c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
381 Simplify code.
382 (c_finish_oacc_routine): Likewise. Don't attach clauses to "omp
383 declare target" attribute.
384
76e2c821
JB
3852016-08-01 Jan Beulich <jbeulich@suse.com>
386
387 * c-fold.c (c_fully_fold_internal): Also emit shift count
388 warnings for vector types.
389 * c-typeck.c (build_binary_op): Likewise.
390
f618a472
MP
3912016-07-29 Marek Polacek <polacek@redhat.com>
392
393 PR c/71742
394 * c-decl.c (finish_struct): Rephrase an error message.
395
efd0786f
MP
396 PR c/71853
397 * c-parser.c (c_parser_switch_statement): Initialize ce.original_type
398 to error node for invalid code.
399
e00dceaf
MP
400 PR c/71573
401 * c-decl.c (implicitly_declare): Return decl early not only for
402 error_mark_nodes, but for anything that is not a FUNCTION_DECL.
403
673a107a
JJ
4042016-07-29 Jakub Jelinek <jakub@redhat.com>
405
406 PR c/71969
407 * c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
408 on GNU extern inline functions.
409
a5b5c8b6
MP
4102016-07-29 Marek Polacek <polacek@redhat.com>
411
412 PR c/71583
413 * c-parser.c (c_parser_postfix_expression_after_paren_type): Also
414 check expr.value.
415
e3fe09c1
UB
4162016-07-22 Uros Bizjak <ubizjak@gmail.com>
417
418 * c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
419
7c8f7eaa
DM
4202016-07-20 David Malcolm <dmalcolm@redhat.com>
421
422 * c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
423 spellcheck-tree.h
424 (best_macro_match): Likewise, converting from a typedef to a
425 subclass.
426 (find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
427 (lookup_name_fuzzy): Update for change of best_macro_match to a
428 subclass with a ctor that calls cpp_forall_identifiers.
429
de6a69ee
DM
4302016-07-20 David Malcolm <dmalcolm@redhat.com>
431
432 * c-decl.c (implicit_decl_warning): Update for conversion of
433 return type of lookup_name_fuzzy to const char *.
434 (undeclared_variable): Likewise.
435 (lookup_name_fuzzy): Convert return type from tree to
436 const char *.
437 * c-parser.c (c_parser_declaration_or_fndef): Update for
438 conversion of return type of lookup_name_fuzzy to const char *.
439 (c_parser_parameter_declaration): Likewise.
440
b1c9c068
CP
4412016-07-15 Cesar Philippidis <cesar@codesourcery.com>
442
443 * c-parser.c (c_parser_oacc_declare): Don't scan for
444 GOMP_MAP_POINTER.
445 * c-typeck.c (handle_omp_array_sections): Mark data clauses with
446 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
447 zero-length subarrays.
448
ddbbcb19
JJ
4492016-07-15 Jakub Jelinek <jakub@redhat.com>
450
451 PR c/71858
452 * c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
453 instead of FUZZY_LOOKUP_NAME.
454 (lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
455 FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.
456
dd36b877
JJ
4572016-07-14 Jakub Jelinek <jakub@redhat.com>
458
459 PR c/71858
460 * c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.
461
8c681247
TS
4622016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
463
464 * c-parser.c (c_parser_generic_selection): Make type of variable
465 auto_vec.
466 (c_parser_omp_declare_simd): Likewise.
467
bf4fa671
TS
4682016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
469
470 * c-decl.c (struct c_struct_parse_info): Change member types
471 from vec to auto_vec.
472 (start_struct): Adjust.
473 (finish_struct): Likewise.
474
557e8c49
JJ
4752016-07-02 Jakub Jelinek <jakub@redhat.com>
476
477 PR c/71719
478 * c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
479
54d19c3b
TS
4802016-06-29 Thomas Schwinge <thomas@codesourcery.com>
481
482 * c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
483 Move pragma context checking into...
484 (c_parser_omp_cancellation_point): ... here, and improve
485 diagnostic messages.
486 * c-typeck.c (c_finish_omp_cancel)
487 (c_finish_omp_cancellation_point): Improve diagnostic messages.
488
152ef731
JJ
4892016-06-29 Jakub Jelinek <jakub@redhat.com>
490
491 PR c/71685
492 * c-typeck.c (c_build_qualified_type): Don't clear
493 C_TYPE_INCOMPLETE_VARS for the main variant.
494
4952016-06-28 Martin Sebor <msebor@redhat.com>
4378d117
MS
496
497 PR c/71552
498 * c-typeck.c (output_init_element): Diagnose incompatible types
499 before non-constant initializers.
500
e9ac1f86
JJ
5012016-06-28 Jakub Jelinek <jakub@redhat.com>
502
503 * Make-lang.in: Don't cat ../stage_current if it does not exist.
504
277d7ee0
AK
5052016-06-23 Andi Kleen <ak@linux.intel.com>
506
507 * Make-lang.in: Add support for autofdo.
508
1a4f11c8
DM
5092016-06-22 David Malcolm <dmalcolm@redhat.com>
510
511 PR c/70339
512 * c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
513 (implicit_decl_warning): When issuing warnings for implicit
514 declarations, attempt to provide a suggestion via
515 lookup_name_fuzzy.
516 (undeclared_variable): Likewise when issuing errors.
517 (lookup_name_in_scope): Likewise.
518 (struct edit_distance_traits<cpp_hashnode *>): New struct.
519 (best_macro_match): New typedef.
520 (find_closest_macro_cpp_cb): New function.
521 (lookup_name_fuzzy): New function.
522 * c-parser.c: Include gcc-rich-location.h.
523 (c_token_starts_typename): Split out case CPP_KEYWORD into...
524 (c_keyword_starts_typename): ...this new function.
525 (c_parser_declaration_or_fndef): When issuing errors about
526 missing "struct" etc, add a fixit. For other kinds of errors,
527 attempt to provide a suggestion via lookup_name_fuzzy.
528 (c_parser_parms_declarator): When looking ahead to detect typos in
529 type names, also reject CPP_KEYWORD.
530 (c_parser_parameter_declaration): When issuing errors about
531 unknown type names, attempt to provide a suggestion via
532 lookup_name_fuzzy.
533 * c-tree.h (c_keyword_starts_typename): New prototype.
534
5a578671
JM
5352016-06-20 Joseph Myers <joseph@codesourcery.com>
536
537 PR c/71601
538 * c-typeck.c (build_conditional_expr): Return error_mark_node if
539 c_common_type returns error_mark_node.
540
3f8257db 5412016-06-19 Martin Sebor <msebor@redhat.com>
aa0db437
MS
542
543 PR c/69507
544 * c-parser.c (c_parser_alignof_expression): Avoid diagnosing
545 __alignof__ (expression).
546
6a3f203c
DM
5472016-06-14 David Malcolm <dmalcolm@redhat.com>
548
549 * c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h.
550
264757fb
DM
5512016-06-14 David Malcolm <dmalcolm@redhat.com>
552
553 * c-typeck.c (build_component_ref): Simplify fixit code by
554 using gcc_rich_location::add_fixit_misspelled_id.
555 (set_init_label): Likewise.
556
f7e4f2e3
DM
5572016-06-13 David Malcolm <dmalcolm@redhat.com>
558
559 * c-parser.c (c_parser_initelt): Provide location of name for new
560 location_t param of set_init_label.
561 * c-tree.h (set_init_label): Add location_t param.
562 * c-typeck.c (set_init_index): Add "fieldname_loc" location_t
563 param and use it when issuing error messages about unrecognized
564 field names. Attempt to provide a fixit hint if appropriate,
565 otherwise update the error message to provide the type name.
566
4b1ffdb1
TS
5672016-06-10 Thomas Schwinge <thomas@codesourcery.com>
568
569 PR c/71381
570 * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
571 Loosen checking.
572
44a845ca
MS
5732016-06-08 Martin Sebor <msebor@redhat.com>
574 Jakub Jelinek <jakub@redhat.com>
575
576 PR c++/70507
577 PR c/68120
578 * c-typeck.c (convert_arguments): Don't promote last argument
579 of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
580
92a5f2ba
MP
5812016-06-08 Marek Polacek <polacek@redhat.com>
582
583 PR c/71418
584 * c-decl.c (grokdeclarator): Check TYPE_P.
585
08203f73
MP
586 PR c/71426
587 * c-decl.c (get_parm_info): Don't crash on an assert on invalid
588 code.
589
6ffd47b7
DM
5902016-06-07 David Malcolm <dmalcolm@redhat.com>
591
592 * c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
593 and structure element reference, capture the location of the
594 element name token and pass it to build_component_ref.
595 (c_parser_postfix_expression_after_primary): Likewise for
596 structure element dereference.
597 (c_parser_omp_variable_list): Likewise for
598 OMP_CLAUSE_{_CACHE, MAP, FROM, TO},
599 * c-tree.h (build_component_ref): Add location_t param.
600 * c-typeck.c (build_component_ref): Add location_t param
601 COMPONENT_LOC. Use it, if available, when issuing hints about
602 mispelled member names to provide a fixit replacement hint.
603
1f40cff3
MP
6042016-06-06 Marek Polacek <polacek@redhat.com>
605
606 PR c/71362
607 * c-parser.c (c_parser_direct_declarator): Set location.
608
5545a907
MP
6092016-06-06 Marek Polacek <polacek@redhat.com>
610
611 * c-typeck.c (comptypes_internal): Handle comparisons of
612 INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes. Don't check
613 TYPE_REF_CAN_ALIAS_ALL.
614
b605f663
CLT
6152016-06-03 Chung-Lin Tang <cltang@codesourcery.com>
616
617 * c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
618 arguments as addressable when async clause exists.
619
00631022
JJ
6202016-05-30 Jakub Jelinek <jakub@redhat.com>
621
622 PR c++/71349
623 * c-parser.c (c_parser_omp_for): Don't disallow nowait clause
624 when combined with target construct.
625
7211a097
JJ
6262016-05-26 Jakub Jelinek <jakub@redhat.com>
627
628 * c-parser.c (c_parser_omp_clause_schedule): Warn if
629 OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
630
95efe6b6
MP
6312016-05-25 Marek Polacek <polacek@redhat.com>
632
633 PR c/71265
634 * c-decl.c (c_make_fname_decl): Don't check seen_error.
635
a23faf7a
MP
636 PR c/71266
637 * c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.
638
e46c7770
CP
6392016-05-24 Cesar Philippidis <cesar@codesourcery.com>
640
641 * c-parser.c (c_parser_oacc_declare): Add support for
642 GOMP_MAP_FIRSTPRIVATE_POINTER.
643 * c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
644 argument with enum c_omp_region_type ort.
645 (handle_omp_array_sections): Likewise. Update call to
646 handle_omp_array_sections_1.
647 (c_finish_omp_clauses): Add specific errors and warning messages for
648 OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update
649 call to handle_omp_array_sections.
650
a04e69c0
TS
6512016-05-24 Thomas Schwinge <thomas@codesourcery.com>
652
653 * c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
654
f17a223d
RB
6552016-05-24 Richard Biener <rguenther@suse.de>
656
657 PR middle-end/70434
658 PR c/69504
659 * c-typeck.c (build_array_ref): Do not complain about indexing
660 non-lvalue vectors. Adjust for function name change.
661
79063edd
MS
6622016-05-20 Martin Sebor <msebor@redhat.com>
663
664 PR c/71115
665 * c-typeck.c (error_init): Use
666 expansion_point_location_if_in_system_header.
667 (warning_init): Same.
668
8a40fef3
DM
6692016-05-19 David Malcolm <dmalcolm@redhat.com>
670
671 PR c/71171
672 * c-parser.c (c_parser_generic_selection): Use c_expr::set_error
673 in error-handling.
674 (c_parser_postfix_expression): Likewise.
675 * c-tree.h (c_expr::set_error): New method.
676 * c-typeck.c (parser_build_binary_op): In error-handling, ensure
677 that result's range is initialized.
678
e9892350
JG
6792016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
680
681 * c-typeck.c (parser_build_unary_op): Fix formatting.
682
8fad45f5
MW
6832016-05-16 Matthew Wahab <matthew.wahab@arm.com>
684
685 * c-decl.c (grokdeclarator): Remove errmsg and use of
686 targetm.invalid_return_type.
687 (grokparms): Remove errmsg and use of
688 targetm.invalid_parameter_type.
689
aa4b467b
JM
6902016-05-13 Joseph Myers <joseph@codesourcery.com>
691
692 * c-decl.c (grokdeclarator): For C11, discard qualifiers on
693 function return type.
694
4f2e1536
MP
6952016-05-12 Marek Polacek <polacek@redhat.com>
696
697 PR c/70756
698 * c-decl.c (build_compound_literal): Pass LOC down to
699 c_incomplete_type_error.
700 * c-tree.h (require_complete_type): Adjust declaration.
701 (c_incomplete_type_error): Likewise.
702 * c-typeck.c (require_complete_type): Add location parameter, pass it
703 down to c_incomplete_type_error.
704 (c_incomplete_type_error): Add location parameter, pass it down to
705 error_at.
706 (build_component_ref): Pass location down to c_incomplete_type_error.
707 (default_conversion): Pass location down to require_complete_type.
708 (build_array_ref): Likewise.
709 (build_function_call_vec): Likewise.
710 (convert_arguments): Likewise.
711 (build_unary_op): Likewise.
712 (build_c_cast): Likewise.
713 (build_modify_expr): Likewise.
714 (convert_for_assignment): Likewise.
715 (c_finish_omp_clauses): Likewise.
716
d6e83a8d
MM
7172016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
718
719 PR c/43651
720 * c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
721 is enabled.
722 * c-errors.c (pedwarn_c90): Return true if warned.
723 * c-tree.h (pedwarn_c90): Change return type to bool.
724 (enum c_declspec_word): Add new enumerator cdw_atomic.
725
5c3a10fb
MP
7262016-05-11 Marek Polacek <polacek@redhat.com>
727
728 PR c++/71024
729 * c-decl.c (diagnose_mismatched_decls): Factor out code to
730 diagnose_mismatched_attributes and call it.
731
cf68d92c
MP
7322016-05-10 Marek Polacek <polacek@redhat.com>
733
734 PR c/70255
735 * c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute
736 on a declaration following the definition.
737
351f85c5
JJ
7382016-05-05 Jakub Jelinek <jakub@redhat.com>
739
740 * c-parser.c (c_parser_switch_statement): Add IF_P argument,
741 parse it through to c_parser_c99_block_statement.
742 (c_parser_statement_after_labels): Adjust c_parser_switch_statement
743 caller.
744
deef7113
MP
7452016-05-04 Marek Polacek <polacek@redhat.com>
746
747 * c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
748 OPT_Wdangling_else.
749
de55efd5
MP
7502016-05-04 Marek Polacek <polacek@redhat.com>
751
752 PR c/48778
753 * c-typeck.c (build_binary_op): Don't issue -Waddress warnings
754 for macro expansions.
755
79ce98bc
MP
7562016-05-03 Marek Polacek <polacek@redhat.com>
757
758 PR c/70859
759 * c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
760 check_builtin_function_arguments.
761
fb2647aa
RB
7622016-05-03 Richard Biener <rguenther@suse.de>
763
764 * Make-lang.in (cc1-checksum.c): For stage-final re-use
765 the checksum from the previous stage.
766
77886428
CP
7672016-05-02 Cesar Philippidis <cesar@codesourcery.com>
768
769 * c-parser.c (c_parser_oacc_all_clauses): Update call to
770 c_finish_omp_clauses.
771 (c_parser_omp_all_clauses): Likewise.
772 (c_parser_oacc_cache): Likewise.
773 (c_parser_oacc_loop): Likewise.
774 (omp_split_clauses): Likewise.
775 (c_parser_omp_declare_target): Likewise.
776 (c_parser_cilk_all_clauses): Likewise.
777 (c_parser_cilk_for): Likewise.
778 * c-typeck.c (c_finish_omp_clauses): Replace bool arguments
779 is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.
780
7176a4a0
MP
7812016-05-02 Marek Polacek <polacek@redhat.com>
782
783 PR c/70851
784 * c-decl.c (grokdeclarator): Diagnose when array's size has an
785 incomplete type.
786
e7ff0319
CP
7872016-04-29 Cesar Philippidis <cesar@codesourcery.com>
788
789 PR middle-end/70626
790 * c-parser.c (c_parser_oacc_loop): Don't augment mask with
791 OACC_LOOP_CLAUSE_MASK.
792 (c_parser_oacc_kernels_parallel): Update call to
793 c_oacc_split_loop_clauses.
794
9f405ce1
AM
7952016-04-28 Andrew MacLeod <amacleod@redhat.com>
796
797 * c-array-notation.c (fix_builtin_array_notation_fn): Fix final
798 argument to build_modify_expr in two cases.
799
c1e1f433
BS
8002016-04-27 Bernd Schmidt <bschmidt@redhat.com>
801
802 * c-parser.c (c_parser_postfix_expression_after_primary): Call
803 warn_for_memset instead of warning directly here.
804
2448a956
MP
8052016-04-26 Marek Polacek <polacek@redhat.com>
806
807 PR c/67784
808 * c-parser.c (c_parser_maybe_reclassify_token): New function factored
809 out of ...
810 (c_parser_for_statement): ... here.
811 (c_parser_if_statement): Use it.
812 (c_parser_switch_statement): Use it.
813 (c_parser_while_statement): Use it.
814
b02a5e26
MP
815 PR c/70791
816 * c-decl.c (pushdecl): Pass LOCUS down to warning.
817
477d4906
IV
8182016-04-20 Ilya Verbin <ilya.verbin@intel.com>
819
820 PR c++/69363
821 * c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
822 instead of c_finish_cilk_clauses.
823 * c-tree.h (c_finish_omp_clauses): Add new default argument.
824 * c-typeck.c (c_finish_omp_clauses): Add new argument. Allow
825 floating-point variables in the linear clause for Cilk Plus.
826
fe37c7af
MM
8272016-04-18 Michael Matz <matz@suse.de>
828
829 * c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
830 (grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.
831
949505a9
MP
8322016-04-15 Marek Polacek <polacek@redhat.com>
833
834 PR c/70671
835 * c-typeck.c (build_unary_op): Pass location down to error and
836 warning call.
837
dda1bf61
JJ
8382016-04-15 Jakub Jelinek <jakub@redhat.com>
839
840 PR c/70436
841 * c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
842 where needed.
843 (c_parser_external_declaration, c_parser_struct_or_union_specifier,
844 c_parser_parameter_declaration, c_parser_compound_statement_nostart,
845 c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
846 Adjust c_parser_pragma callers.
847 (c_parser_statement_after_labels): Likewise. Adjust c_parser_cilk_for
848 caller.
849 (c_parser_omp_structured_block): Add IF_P argument, pass it down to
850 c_parser_statement.
851 (c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
852 c_parser_oacc_kernels_parallel, c_parser_omp_critical,
853 c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
854 c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
855 c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
856 c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
857 c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
858 c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
859 down where needed.
860 (c_parser_omp_for_loop): Likewise. Clear IF_P if nbraces.
861 (c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
862 calls.
863
99cd9857
MP
8642016-04-13 Marek Polacek <polacek@redhat.com>
865
866 PR c/70436
867 * c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
868 adjust callers.
869 (c_parser_statement): Likewise.
870 (c_parser_c99_block_statement): Likewise.
871 (c_parser_while_statement): Likewise.
872 (c_parser_for_statement): Likewise.
873 (c_parser_if_body): Don't set IF_P here.
874 (c_parser_if_statement): Add IF_P argument. Set IF_P here. Warn
875 about dangling else here.
876 * c-tree.h (c_finish_if_stmt): Adjust declaration.
877 * c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter. Don't
878 warn about dangling else here.
879
f13355da
MP
8802016-04-04 Marek Polacek <polacek@redhat.com>
881
882 PR c/70307
883 * c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.
884
5fde6a45
MP
8852016-03-31 Marek Polacek <polacek@redhat.com>
886
887 PR c/70297
888 * c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
889
4bbf545b
DM
8902016-03-18 David Malcolm <dmalcolm@redhat.com>
891
892 PR c/70281
893 * c-parser.c (c_parser_postfix_expression): Set the source range
894 for uses of "__builtin_types_compatible_p".
895
fcc2b74f
JJ
8962016-03-17 Jakub Jelinek <jakub@redhat.com>
897
898 PR c/70280
899 * c-typeck.c (composite_type): Don't count void_list_node
900 into len, if the list is terminated by void_list_node, start
901 with void_list_node instead of NULL for newargs. Stop
902 at void_list_node.
903
ab4c578f
MP
9042016-03-16 Marek Polacek <polacek@redhat.com>
905
906 PR c/70093
907 * c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
908 nested functions returning VM types.
909
96b3c82d
CP
9102016-03-09 Cesar Philippidis <cesar@codesourcery.com>
911
912 * c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
913 when calling c_finish_omp_clauses.
914
29b9828f
BS
9152016-03-04 Bernd Schmidt <bschmidt@redhat.com>
916
917 PR c/69824
918 * c-decl.c (get_parm_info): Don't queue implicit function declarations
919 for later.
920
7ff6ca38
MP
9212016-03-04 Marek Polacek <polacek@redhat.com>
922
923 PR c/69798
924 * c-parser.c (c_parser_postfix_expression): Call
925 c_parser_cast_expression rather than c_parser_postfix_expression.
926
686e2237
JJ
9272016-03-01 Jakub Jelinek <jakub@redhat.com>
928
929 PR c/69796
930 PR c/69974
931 * c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
932 of incomplete decls to error_mark_node.
933
0b05329b
MP
9342016-02-24 Marek Polacek <polacek@redhat.com>
935
936 PR c/69819
937 * c-decl.c (finish_decl): Don't update the copy of the type of a
938 different decl type.
939
067fbd8b
JJ
9402016-02-23 Jakub Jelinek <jakub@redhat.com>
941
942 PR objc/69844
943 * c-parser.c (c_parser_for_statement): Properly handle ObjC classes
944 in id_kind reclassification.
945
bf14eba2
JJ
9462016-02-16 Jakub Jelinek <jakub@redhat.com>
947
948 PR c/69835
949 * c-typeck.c (build_binary_op): Revert 2015-09-09 change.
950
ba539195
JN
9512016-02-16 James Norris <jnorris@codesourcery.com>
952
953 PR c/64748
954 * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
955
16595a1f
BS
9562016-02-12 Bernd Schmidt <bschmidt@redhat.com>
957
f48dfe98
BS
958 * c-decl.c (build_null_declspecs): Zero the entire struct.
959
16595a1f
BS
960 PR c/69522
961 * c-parser.c (c_parser_braced_init): New arg outer_obstack. All
962 callers changed. If nested_p is true, use it to call
963 finish_implicit_inits.
964 * c-tree.h (finish_implicit_inits): Declare.
965 * c-typeck.c (finish_implicit_inits): New function. Move code
966 from ...
967 (push_init_level): ... here.
968 (set_designator, process_init_element): Call finish_implicit_inits.
969
66756373
JJ
9702016-02-11 Jakub Jelinek <jakub@redhat.com>
971
972 PR c/69768
973 * c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
974 arguments for -Waddress warning.
975
1066e9b5
JJ
9762016-02-04 Jakub Jelinek <jakub@redhat.com>
977
978 PR c/69669
979 * c-decl.c (finish_enum): When honoring mode attribute,
980 make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
981
3a5d2ba4
JJ
9822016-01-29 Jakub Jelinek <jakub@redhat.com>
983
984 PR debug/69518
985 * c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
986 all type variants, not just TYPE_MAIN_VARIANT.
987
cbdd8ae0
JJ
9882016-01-27 Jakub Jelinek <jakub@redhat.com>
989
990 PR debug/66869
991 * c-decl.c (c_write_global_declarations_1): Warn with
992 warn_unused_function if static prototype without definition
993 is not C_DECL_USED.
994
fa74a4bc
MP
9952016-01-27 Marek Polacek <polacek@redhat.com>
996
997 PR c/68062
998 * c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
999 to unsigned, if needed. Add -Wsign-compare warning.
1000
13f92e8d
JJ
10012016-01-26 Jakub Jelinek <jakub@redhat.com>
1002
1003 PR tree-optimization/69483
1004 * c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.
1005
cd8e73dc 10062016-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
d25c7690
PK
1007
1008 PR c/24293
1009 * c-tree.h (incomplete_record_decls): Declare.
1010 * c-parser.c (incomplete_record_decls): Define.
1011 (c_parser_translation_unit): Iterate through incomplete_record_decls and
1012 report error if any decl has zero size.
1013 * c-decl.c (finish_decl): Append static decl with incomplete struct/union
1014 or enum type to incomplete_record_decls.
1015
e6d6ec9e
TV
10162016-01-14 Tom de Vries <tom@codesourcery.com>
1017
1018 PR tree-optimization/68773
1019 * c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
1020 set force_output.
1021
00083992
MP
10222016-01-14 Marek Polacek <polacek@redhat.com>
1023
1024 PR c/69262
1025 * c-decl.c (grokdeclarator): Provide more information for invalid
1026 array declarations.
1027
7443cf13
DM
10282016-01-06 David Malcolm <dmalcolm@redhat.com>
1029
1030 * c-parser.c (c_parser_unary_expression): For dereferences, build
1031 a combined location before calling build_indirect_ref, so that
1032 error reports cover the full range, manually updating the c_expr
1033 src_range.
1034
6b131d5b
MP
10352016-01-06 Marek Polacek <polacek@redhat.com>
1036
1037 PR sanitizer/69099
1038 * c-convert.c (convert) [INTEGER_TYPE]: Drop ARG. Don't pass ARG to
1039 ubsan_instrument_float_cast. Fold EXPR. Use NULL_TREE instead of
1040 NULL.
1041
818ab71a
JJ
10422016-01-04 Jakub Jelinek <jakub@redhat.com>
1043
1044 Update copyright years.
1045
2fe0a208
MP
10462016-01-04 Marek Polacek <polacek@redhat.com>
1047
1048 PR c/68908
1049 * c-typeck.c (build_atomic_assign): Improve commentary. Add
1050 optimization to use __atomic_fetch_* built-in if possible.
1051
c7b48c8a
TS
10522015-12-23 Thomas Schwinge <thomas@codesourcery.com>
1053
1054 * c-parser.c (c_parser_oacc_clause_use_device): Merge function
1055 into...
1056 (c_parser_omp_clause_use_device_ptr): ... this function. Adjust
1057 all users.
1058
fda5652f
MP
10592015-12-22 Marek Polacek <polacek@redhat.com>
1060
1061 PR c/69002
1062 * c-typeck.c (build_component_ref): Warn when acessing elements of
1063 atomic structures or unions.
1064
745e411d
DM
10652015-12-21 David Malcolm <dmalcolm@redhat.com>
1066
1067 * c-typeck.c: Include "gcc-rich-location.h".
1068 (build_binary_op): In the two places that call binary_op_error,
1069 create a gcc_rich_location and populate it with the location of
1070 the binary op and its two operands.
1071
94c40e19
DM
10722015-12-16 David Malcolm <dmalcolm@redhat.com>
1073
1074 * c-parser.c (c_parser_statement_after_labels): When calling
1075 c_finish_return, Use the return expression's location if it has
1076 one, falling back to the location of the first token within it.
1077 * c-typeck.c (c_finish_return): When issuing warnings about
1078 the incorrect presence/absence of a return value, issue a note
1079 showing the declaration of the function.
1080
de67c4c3
DM
10812015-12-16 David Malcolm <dmalcolm@redhat.com>
1082
1083 * c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
1084 to 4.
1085 (c_parser_peek_nth_token): New function.
1086 (c_parser_peek_conflict_marker): New function.
1087 (c_parser_error): Detect conflict markers and report them as such.
1088
a10704e1
DM
10892015-12-16 David Malcolm <dmalcolm@redhat.com>
1090
1091 * c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
1092 to preserve range information for the primary expression
1093 in the call to c_parser_postfix_expression_after_primary.
1094
8062bca6
DM
10952015-12-16 David Malcolm <dmalcolm@redhat.com>
1096
1097 * c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
1098 expression location, falling back on the first token location,
1099 rather than always using the latter.
1100
d06f8b75
MP
11012015-12-16 Marek Polacek <polacek@redhat.com>
1102
1103 PR c/64637
1104 * c-typeck.c (c_process_expr_stmt): Use location of the expression if
1105 available.
1106
2994fb91
MP
11072015-12-15 Marek Polacek <polacek@redhat.com>
1108
1109 PR c/68907
1110 * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
1111 artificial decl.
1112
a1b93f8d
DM
11132015-12-08 David Malcolm <dmalcolm@redhat.com>
1114
1115 * c-parser.c (c_parser_alignof_expression): Capture location of
1116 closing parenthesis (if any), or of end of unary expression, and
1117 use it to build a src_range for the expression.
1118
46c6e1e2
DM
11192015-12-08 David Malcolm <dmalcolm@redhat.com>
1120
1121 PR c/68757
1122 * c-parser.c (c_parser_get_builtin_args): Add
1123 "out_close_paren_loc" param, and write back to it.
1124 (c_parser_postfix_expression): Capture the closing
1125 parenthesis location for RID_CHOOSE_EXPR,
1126 RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
1127 RID_BUILTIN_SHUFFLE and use it to set the source range
1128 for such expressions; within RID_BUILTIN_COMPLEX set
1129 the underlying location.
1130
66189108
MP
11312015-12-07 Marek Polacek <polacek@redhat.com>
1132
1133 PR c/68668
1134 * c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
1135 TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.
1136
f187980b
EB
11372015-12-04 Eric Botcazou <ebotcazou@adacore.com>
1138
1139 * c-tree.h (c_build_va_arg): Adjust prototype.
1140 * c-parser.c (c_parser_postfix_expression): Adjust call to above.
1141 * c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
1142 parameter, adjust throughout and issue an error if EXPR is a component
1143 with reverse storage order.
1144
4250754e
JM
11452015-12-02 Jason Merrill <jason@redhat.com>
1146
1147 * c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
1148 (c_fully_fold_internal, decl_constant_value_for_optimization):
1149 Move from c-common.c.
1150 * c-tree.h: Declare decl_constant_value_for_optimization.
1151 * Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
1152
e9e32ee6
JM
11532015-12-02 Joseph Myers <joseph@codesourcery.com>
1154
1155 PR c/68162
1156 * c-decl.c (grokdeclarator): Set first_non_attr_kind before
1157 following link from declarator to next declarator. Track original
1158 qualified type and pass it to c_build_qualified_type.
1159 * c-typeck.c (c_build_qualified_type): Add arguments
1160 orig_qual_type and orig_qual_indirect.
1161
ff7a55bf
TS
11622015-12-02 Thomas Schwinge <thomas@codesourcery.com>
1163
1164 * c-parser.c (c_parser_omp_clause_name)
1165 (c_parser_oacc_all_clauses): Alphabetical sorting.
1166
657e4e47
JJ
11672015-12-02 Jakub Jelinek <jakub@redhat.com>
1168
1169 PR c/68533
1170 * c-decl.c (get_parm_info): Use b->locus instead of input_location
1171 for diagnostics.
1172
37d5ad46
JB
11732015-12-01 Julian Brown <julian@codesourcery.com>
1174 Cesar Philippidis <cesar@codesourcery.com>
1175 James Norris <James_Norris@mentor.com>
1176
1177 * c-parser.c (c_parser_omp_clause_name): Add use_device support.
1178 (c_parser_oacc_clause_use_device): New function.
1179 (c_parser_oacc_all_clauses): Add use_device support.
1180 (OACC_HOST_DATA_CLAUSE_MASK): New macro.
1181 (c_parser_oacc_host_data): New function.
1182 (c_parser_omp_construct): Add host_data support.
1183 * c-tree.h (c_finish_oacc_host_data): Add prototype.
1184 * c-typeck.c (c_finish_oacc_host_data): New function.
1185 (c_finish_omp_clauses): Add use_device support.
1186
a4850ce9
JH
11872015-11-29 Jan Hubicka <hubicka@ucw.cz>
1188
1189 PR c/67106
1190 * c-decl.c: Set TYPE_PACKED in variants.
1191
b58d3df2
ML
11922015-11-27 Martin Liska <mliska@suse.cz>
1193
1194 PR c++/68312
1195 * c-array-notation.c (fix_builtin_array_notation_fn):
1196 Use release_vec_vec instead of vec::release.
1197 (build_array_notation_expr): Likewise.
1198 (fix_conditional_array_notations_1): Likewise.
1199 (fix_array_notation_expr): Likewise.
1200 (fix_array_notation_call_expr): Likewise.
1201
aec17bfe
JJ
12022015-11-27 Jakub Jelinek <jakub@redhat.com>
1203
1204 PR c/63326
1205 * c-parser.c (c_parser_compound_statement_nostart): If
1206 last_label is true, use pragma_stmt instead of pragma_compound
1207 as second c_parser_pragma argument.
1208 (c_parser_omp_ordered, c_parser_omp_target_update,
1209 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
1210 false as second argument to c_parser_skip_to_pragma_eol after
1211 diagnosing standalone directives used in pragma_stmt context.
1212
688c4de0
IV
12132015-11-24 Ilya Verbin <ilya.verbin@intel.com>
1214
1215 * c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
1216 with "if (ENABLE_OFFLOADING)".
1217
cbd03aee
DM
12182015-11-23 David Malcolm <dmalcolm@redhat.com>
1219
1220 PR objc/68438
1221 * c-parser.c (c_parser_postfix_expression): Set up source ranges
1222 for various Objective-C constructs: Class.name syntax,
1223 @selector(), @protocol(), @encode(), and [] message syntax.
1224
a87a86e1
DM
12252015-11-20 David Malcolm <dmalcolm@redhat.com>
1226
1227 PR 62314
1228 * c-typeck.c (should_suggest_deref_p): New function.
1229 (build_component_ref): Special-case POINTER_TYPE when
1230 generating a "not a structure of union" error message, and
1231 suggest a "->" rather than a ".", providing a fix-it hint.
1232
8ece8dfb
DM
12332015-11-19 David Malcolm <dmalcolm@redhat.com>
1234
1235 * c-typeck.c (lookup_field_fuzzy): Move determination of closest
1236 candidate into a new function, find_closest_identifier.
1237
433068cc
MP
12382015-11-19 Marek Polacek <polacek@redhat.com>
1239
1240 PR c/68412
1241 * c-typeck.c (parser_build_binary_op): Properly handle
1242 C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.
1243
bef08b71
DM
12442015-11-17 David Malcolm <dmalcolm@redhat.com>
1245
1246 * c-parser.c (set_c_expr_source_range): Bulletproof both
1247 overloaded implementations against NULL expr->value.
1248 (c_parser_braced_init): Set src_range for "ret" to a sane pair of
1249 values.
1250 (c_parser_unary_expression): Likewise when handling addresses of
1251 labels.
1252 (c_parser_postfix_expression): Likewise for statement expressions,
1253 for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
1254 __builtin_va_arg, and for __builtin_offset_of.
1255 (c_parser_postfix_expression_after_paren_type): Initialize expr's
1256 src_range using the range of the braced initializer.
1257 (c_parser_transaction_expression): Set src_range for "ret" to a
1258 sane pair of values.
1259
fff77217
KY
12602015-11-16 Kirill Yukhin <kirill.yukhin@intel.com>
1261
1262 * c-parser.c (c_finish_omp_declare_simd): Look for
1263 "simd" attribute as well. Update error message.
1264
1d899da2
TS
12652015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1266
1267 * c-parser.c (c_parser_omp_declare_target): Adjust.
1268
e4606348
JJ
12692015-11-14 Jakub Jelinek <jakub@redhat.com>
1270
1271 * c-typeck.c (c_finish_omp_clauses): Don't mark
1272 GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
1273
3e636daf
MP
12742015-11-14 Marek Polacek <polacek@redhat.com>
1275
1276 * c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
1277 * c-typeck.c: Likewise.
1278
ebedc9a3
DM
12792015-11-13 David Malcolm <dmalcolm@redhat.com>
1280
1281 * c-decl.c (warn_defaults_to): Pass line_table to
1282 rich_location ctor.
1283 * c-errors.c (pedwarn_c99): Likewise.
1284 (pedwarn_c90): Likewise.
1285 * c-parser.c (set_c_expr_source_range): New functions.
1286 (c_token::get_range): New method.
1287 (c_token::get_finish): New method.
1288 (c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
1289 based on the range from the start of the LHS to the end of the
1290 RHS.
1291 (c_parser_conditional_expression): Likewise, based on the range
1292 from the start of the cond.value to the end of exp2.value.
1293 (c_parser_binary_expression): Call set_c_expr_source_range on
1294 the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
1295 (c_parser_cast_expression): Call set_c_expr_source_range on ret
1296 based on the cast_loc through to the end of the expr.
1297 (c_parser_unary_expression): Likewise, based on the
1298 op_loc through to the end of op.
1299 (c_parser_sizeof_expression) Likewise, based on the start of the
1300 sizeof token through to either the closing paren or the end of
1301 expr.
1302 (c_parser_postfix_expression): Likewise, using the token range,
1303 or from the open paren through to the close paren for
1304 parenthesized expressions.
1305 (c_parser_postfix_expression_after_primary): Likewise, for
1306 various kinds of expression.
1307 * c-tree.h (struct c_expr): Add field "src_range".
1308 (c_expr::get_start): New method.
1309 (c_expr::get_finish): New method.
1310 (set_c_expr_source_range): New decls.
1311 * c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
1312 on ret for prefix unary ops.
1313 (parser_build_binary_op): Likewise, running from the start of
1314 arg1.value through to the end of arg2.value.
1315
ec8b536f
MP
13162015-11-13 Marek Polacek <polacek@redhat.com>
1317
1318 PR c/68320
1319 * c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.
1320
277fe616
DM
13212015-11-13 David Malcolm <dmalcolm@redhat.com>
1322
1323 * c-typeck.c: Include spellcheck.h.
1324 (lookup_field_fuzzy_find_candidates): New function.
1325 (lookup_field_fuzzy): New function.
1326 (build_component_ref): If the field was not found, try using
1327 lookup_field_fuzzy and potentially offer a suggestion.
1328
6e232ba4
JN
13292015-11-12 James Norris <jnorris@codesourcery.com>
1330 Joseph Myers <joseph@codesourcery.com>
1331
1332 * c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
1333 (c_parser_omp_clause_name): Handle 'device_resident' clause.
1334 (c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
1335 and PRAGMA_OMP_CLAUSE_LINK.
1336 (c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
1337 and PRAGMA_OACC_CLAUSE_LINK.
1338 (OACC_DECLARE_CLAUSE_MASK): New definition.
1339 (c_parser_oacc_declare): New function.
1340
9be4f715
MP
13412015-11-12 Marek Polacek <polacek@redhat.com>
1342
1343 PR c/67784
1344 * c-parser.c (c_parser_for_statement): Reclassify the token in
1345 a correct scope.
1346
e78bede6
MP
13472015-11-11 Marek Polacek <polacek@redhat.com>
1348
1349 PR c/68107
1350 PR c++/68266
1351 * c-decl.c (grokdeclarator): Call valid_array_size_p. Remove code
1352 checking the size of an array.
1353
69f293c9
AM
13542015-11-11 Andrew MacLeod <amacleod@redhat.com>
1355
1356 * c-array-notation.c: Remove unused header files.
1357 * c-aux-info.c: Likewise.
1358 * c-convert.c: Likewise.
1359 * c-decl.c: Likewise.
1360 * c-errors.c: Likewise.
1361 * c-lang.c: Likewise.
1362 * c-objc-common.c: Likewise.
1363 * c-parser.c: Likewise.
1364 * c-typeck.c: Likewise.
1365 * gccspec.c: Likewise.
1366
3a40d81d
NS
13672015-11-09 Thomas Schwinge <thomas@codesourcery.com>
1368 Cesar Philippidis <cesar@codesourcery.com>
1369 James Norris <jnorris@codesourcery.com>
1370 Julian Brown <julian@codesourcery.com>
1371 Nathan Sidwell <nathan@codesourcery.com>
1372
1373 c/
1374 * c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
1375 routine arg.
1376 (c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
1377 (c_parser_pragma): Parse 'acc routine'.
1378 (OACC_ROUTINE_CLAUSE_MARK): Define.
1379 (c_parser_oacc_routine, (c_finish_oacc_routine): New.
1380
fc402eec
AA
13812015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
1382
1383 PR debug/67192
1384 * c-typeck.c (c_finish_loop): For unconditional loops, set the
1385 location of the backward-goto to the start of the loop body.
1386
f6b0b3db
AA
13872015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com>
1388
1389 PR debug/67192
1390 * c-parser.c (c_parser_while_statement): Finish the loop before
1391 parsing ahead for misleading indentation.
1392 (c_parser_for_statement): Likewise.
1393
ee45a32d
EB
13942015-11-08 Eric Botcazou <ebotcazou@adacore.com>
1395
1396 * c-decl.c (finish_struct): If the structure has reverse storage
1397 order, rewrite the type of array fields with scalar component. Call
1398 maybe_apply_pragma_scalar_storage_order on entry.
1399 * c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs. Issue
1400 errors on bit-fields and reverse SSO here and not...
1401 (c_mark_addressable): ...here.
1402 (output_init_element): Adjust call to initializer_constant_valid_p.
1403 (c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.
1404
8a645150
DM
14052015-11-06 David Malcolm <dmalcolm@redhat.com>
1406
1407 * c-decl.c (warn_defaults_to): Update for change in signature
1408 of diagnostic_set_info.
1409 * c-errors.c (pedwarn_c99): Likewise.
1410 (pedwarn_c90): Likewise.
1411 * c-objc-common.c (c_tree_printer): Update for new "caret_p" param
1412 for textinfo::set_location.
1413
7a5e4956
CP
14142015-11-05 Cesar Philippidis <cesar@codesourcery.com>
1415 Thomas Schwinge <thomas@codesourcery.com>
1416 James Norris <jnorris@codesourcery.com>
1417
1418 * c-parser.c (c_parser_omp_clause_name): Add support for
1419 PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
1420 (c_parser_omp_clause_default): Add is_oacc argument. Handle
1421 default(none) in OpenACC.
1422 (c_parser_oacc_shape_clause): Allow pointer variables as gang static
1423 arguments.
1424 (c_parser_oacc_clause_tile): New function.
1425 (c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
1426 OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
1427 (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
1428 TILE}.
1429 (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
1430 (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
1431 FIRSTPRIVATE}.
1432 (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
1433 (c_parser_oacc_update): Update the error message for missing clauses.
1434 * c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
1435 and OMP_CLAUSE_INDEPENDENT.
1436
bfcfbfa0
MP
14372015-11-05 Marek Polacek <polacek@redhat.com>
1438
1439 PR c/68090
1440 * c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
1441 deal with pre-evaluation on invalid types.
1442
e01d41e5
JJ
14432015-11-05 Jakub Jelinek <jakub@redhat.com>
1444 Ilya Verbin <ilya.verbin@intel.com>
1445
1446 * c-parser.c: Include context.h and gimple-expr.h.
1447 (c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
1448 monotonic together with nonmonotonic.
1449 (c_parser_omp_for_loop): Call c_omp_check_loop_iv. Call add_stmt here.
1450 (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
1451 (c_parser_omp_target_data, c_parser_omp_target_enter_data,
1452 c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
1453 (c_parser_omp_target): Likewise. Evaluate num_teams and thread_limit
1454 expressions on combined target teams before the target.
1455 (c_parser_omp_declare_target): If decl has "omp declare target" or
1456 "omp declare target link" attribute, and cgraph or varpool node already
1457 exists, then set corresponding flags. Call c_finish_omp_clauses
1458 in the parenthesized extended-list syntax case.
1459 * c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
1460 declare target.
1461 * c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
1462 on OMP_CLAUSE_REDUCTION array sections.
1463 (handle_omp_array_sections): Encode low-bound into the MEM_REF, either
1464 into the constant offset, or for variable low-bound using
1465 POINTER_PLUS_EXPR. For structure element based array sections use
1466 GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
1467 (c_finish_omp_clauses): Drop generic_field_head, structure
1468 elements are now always mapped even as array section bases,
1469 diagnose same var in data sharing and mapping clauses. Diagnose if
1470 linear step on declare simd is neither a constant nor a uniform
1471 parameter. Look through POINTER_PLUS_EXPR for array section
1472 reductions. Diagnose the same var or function appearing multiple
1473 times on the same directive. Fix up wording for the to clause if t
1474 is neither a FUNCTION_DECL nor a VAR_DECL. Diagnose nonmonotonic
1475 modifier on kinds other than dynamic or guided or nonmonotonic
1476 modifier together with ordered clause.
1477
4bf9e5a8
TS
14782015-11-03 Thomas Schwinge <thomas@codesourcery.com>
1479 Chung-Lin Tang <cltang@codesourcery.com>
1480
1481 * c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
1482
2adfab87
AM
14832015-10-29 Andrew MacLeod <amacleod@redhat.com>
1484
1485 * c-array-notation.c: Reorder #include's and remove duplicates.
1486 * c-aux-info.c: Likewise.
1487 * c-convert.c: Likewise.
1488 * c-decl.c: Likewise.
1489 * c-errors.c: Likewise.
1490 * c-lang.c: Likewise.
1491 * c-objc-common.c: Likewise.
1492 * c-parser.c: Likewise.
1493 * c-typeck.c: Likewise.
1494
e922069e
JW
14952015-10-26 Jim Wilson <jim.wilson@linaro.org>
1496
1497 PR debug/66068
1498 * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
1499 after calling build_qualified_type.
1500
765dd391
CP
15012015-10-27 Cesar Philippidis <cesar@codesourcery.com>
1502 Thomas Schwinge <thomas@codesourcery.com>
1503 James Norris <jnorris@codesourcery.com>
1504 Joseph Myers <joseph@codesourcery.com>
1505 Julian Brown <julian@codesourcery.com>
1506 Bernd Schmidt <bschmidt@redhat.com>
1507
1508 * c-parser.c (c_parser_oacc_shape_clause): New.
1509 (c_parser_oacc_simple_clause): New.
1510 (c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
1511 (OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.
1512
88bae6f4
TS
15132015-10-27 Thomas Schwinge <thomas@codesourcery.com>
1514 James Norris <jnorris@codesourcery.com>
1515 Cesar Philippidis <cesar@codesourcery.com>
1516
1517 PR c/64765
1518 PR c/64880
1519 * c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
1520 parameters, and handle these. Adjust all users.
1521 (c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
1522 into...
1523 (c_parser_oacc_kernels_parallel): ... this new function. Adjust
1524 all users.
1525 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
1526 declare functions.
1527 (c_finish_omp_construct): Declare function.
1528 * c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
1529 Merge functions into...
1530 (c_finish_omp_construct): ... this new function.
1531
a8fc2579
RB
15322015-10-22 Richard Biener <rguenther@suse.de>
1533
1534 * c-typeck.c (c_finish_omp_clauses): Properly convert operands
1535 before folding a MINUS_EXPR.
1536
e9122ef6
MP
15372015-10-21 Marek Polacek <polacek@redhat.com>
1538
1539 PR c/68024
1540 * c-decl.c (start_function): Warn about vararg functions without
1541 a prototype.
1542
9f47c7e5
IE
15432015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
1544
1545 * c-typeck.c (build_conditional_expr): Use boolean vector
1546 type for vector comparison.
1547 (build_vec_cmp): New.
1548 (build_binary_op): Use build_vec_cmp for comparison.
1549
fa60eeb9
MP
15502015-10-20 Marek Polacek <polacek@redhat.com>
1551
1552 * c-parser.c (is_cilkplus_vector_p): Don't define here.
1553
2c7020eb
MP
15542015-10-20 Marek Polacek <polacek@redhat.com>
1555
1556 PR c/67964
1557 * c-parser.c (c_parser_attributes): Break out of the loop if the
1558 token after an attribute isn't a comma.
1559
d9a6bd32
JJ
15602015-10-13 Jakub Jelinek <jakub@redhat.com>
1561 Aldy Hernandez <aldyh@redhat.com>
1562
1563 * c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
1564 (c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
1565 (c_parser_omp_variable_list): Handle structure elements for
1566 map, to and from clauses. Handle array sections in reduction
1567 clause. Formatting fixes.
1568 (c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
1569 if clause modifiers.
1570 (c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
1571 c_parser_omp_clause_priority, c_parser_omp_clause_hint,
1572 c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
1573 c_parser_omp_clause_is_device_ptr): New functions.
1574 (c_parser_omp_clause_ordered): Parse optional parameter.
1575 (c_parser_omp_clause_reduction): Handle array reductions.
1576 (c_parser_omp_clause_schedule): Parse optional simd modifier.
1577 (c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
1578 functions.
1579 (c_parser_omp_clause_linear): Parse linear clause modifiers.
1580 (c_parser_omp_clause_depend_sink): New function.
1581 (c_parser_omp_clause_depend): Parse source/sink depend kinds.
1582 (c_parser_omp_clause_map): Parse release/delete map kinds and
1583 optional always modifier.
1584 (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
1585 and c_finish_omp_clauses callers.
1586 (c_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
1587 Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
1588 (c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
1589 (OMP_CRITICAL_CLAUSE_MASK): Define.
1590 (c_parser_omp_critical): Parse critical clauses.
1591 (c_parser_omp_for_loop): Handle doacross loops, adjust
1592 c_finish_omp_for and c_finish_omp_clauses callers.
1593 (OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
1594 (c_parser_omp_simd): Allow ordered clause if it has no parameter.
1595 (OMP_FOR_CLAUSE_MASK): Add linear clause.
1596 (c_parser_omp_for): Disallow ordered clause when combined with
1597 distribute. Disallow linear clause when combined with distribute
1598 and not combined with simd.
1599 (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
1600 (c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
1601 parse clauses and if depend clause is found, don't parse a body.
1602 (c_parser_omp_parallel): Disallow copyin clause on target parallel.
1603 Allow target parallel without for after it.
1604 (OMP_TASK_CLAUSE_MASK): Add priority clause.
1605 (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
1606 (c_parser_omp_target_data): Diagnose no map clauses or clauses with
1607 invalid kinds.
1608 (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
1609 (OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
1610 OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
1611 (c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
1612 functions.
1613 (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
1614 defaultmap and is_device_ptr clauses.
1615 (c_parser_omp_target): Parse target parallel and target simd. Set
1616 OMP_TARGET_COMBINED on combined constructs. Parse target enter data
1617 and target exit data. Diagnose invalid map kinds.
1618 (OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
1619 (c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
1620 construct.
1621 (c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
1622 &omp_priv.
1623 (OMP_TASKLOOP_CLAUSE_MASK): Define.
1624 (c_parser_omp_taskloop): New function.
1625 (c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
1626 handle PRAGMA_OMP_TASKLOOP.
1627 (c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
1628 * c-tree.h (c_finish_omp_clauses): Add two new arguments.
1629 * c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
1630 Add IS_OMP argument, handle structure element bases, diagnose
1631 bitfields, pass IS_OMP recursively, diagnose known zero length
1632 array sections in depend clauses, handle array sections in reduction
1633 clause, diagnose negative length even for pointers.
1634 (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
1635 types, pass IS_OMP down to handle_omp_array_sections_1, handle
1636 array sections in reduction clause, set
1637 OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
1638 length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
1639 (c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
1640 Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
1641
21ba0cea
MP
16422015-10-06 Marek Polacek <polacek@redhat.com>
1643
1644 * c-parser.c (c_parser_statement_after_labels): Use
1645 protected_set_expr_location.
1646 (c_parser_omp_clause_num_gangs): Likewise.
1647 (c_parser_omp_clause_num_threads): Likewise.
1648 (c_parser_omp_clause_num_workers): Likewise.
1649 (c_parser_omp_clause_vector_length): Likewise.
1650 (c_parser_omp_clause_num_teams): Likewise.
1651 (c_parser_omp_clause_thread_limit): Likewise.
1652 * c-typeck.c (build_c_cast): Likewise.
1653 (c_cast_expr): Likewise.
1654
624d31fe
RS
16552015-10-05 Richard Sandiford <richard.sandiford@arm.com>
1656
1657 * c-typeck.c (c_tree_equal): Use real_equal instead of
1658 REAL_VALUES_EQUAL.
1659
b8fd7909
JM
16602015-10-04 Jason Merrill <jason@redhat.com>
1661
1662 * c-parser.c (c_lex_one_token): Handle @synchronized.
1663 * c-decl.c (match_builtin_function_types): A declaration of a built-in
1664 can change whether the function is transaction_safe.
1665
1c7485af
MP
16662015-10-02 Marek Polacek <polacek@redhat.com>
1667
1668 PR c/67730
1669 * c-typeck.c (convert_for_assignment): Use the expansion point
1670 location throughout.
1671
3e3b8d63
MP
16722015-10-02 Marek Polacek <polacek@redhat.com>
1673
1674 PR c/64249
1675 * c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
1676 and pass it down to c_parser_if_statement.
1677 (c_parser_else_body): Add CHAIN parameter and pass it down to
1678 c_parser_statement_after_labels.
1679 (c_parser_if_statement): Add CHAIN parameter. Add code to warn about
1680 duplicated if-else-if conditions.
1681
aabef2de
MP
16822015-10-01 Marek Polacek <polacek@redhat.com>
1683
1684 * c-typeck.c (convert_for_assignment): Improve commentary.
1685
de8ddd5f
MP
16862015-09-30 Marek Polacek <polacek@redhat.com>
1687
1688 PR c/67730
1689 * c-typeck.c (c_finish_return): Use the expansion point location for
1690 certain "return with value" warnings.
1691
c4914de6
MLI
16922015-09-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
1693
1694 * c-parser.c (pragma_lex): Add loc argument.
1695
0e36f5c7
MP
16962015-09-15 Marek Polacek <polacek@redhat.com>
1697
1698 PR c/67580
1699 * c-decl.c (tag_exists_p): New function.
1700 * c-parser.c (c_parser_declaration_or_fndef): Give a hint when
1701 struct/union/enum keywords are missing.
1702 * c-tree.h (tag_exists_p): Declare.
1703
2f3bb934
MP
17042015-09-15 Marek Polacek <polacek@redhat.com>
1705
1706 * c-decl.c (lookup_label): Return NULL_TREE instead of 0.
1707 (lookup_tag): Change the type of THISLEVEL_ONLY to bool.
1708 Return NULL_TREE instead of 0.
1709 (lookup_name): Return NULL_TREE instead of 0.
1710 (lookup_name_in_scope): Likewise.
1711 (shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
1712 (parser_xref_tag): Use false instead of 0.
1713 (start_struct): Use true instead of 1.
1714 (start_enum): Use true instead of 1 and NULL_TREE instead of 0.
1715
aa256c4a
MP
17162015-09-14 Marek Polacek <polacek@redhat.com>
1717
1718 * c-typeck.c (set_nonincremental_init_from_string): Use
1719 HOST_WIDE_INT_M1U when shifting a negative value.
1720
dbb68221
MW
17212015-09-09 Mark Wielaard <mjw@redhat.com>
1722
1723 * c-typeck.c (build_binary_op): Check and warn when nonnull arg
1724 parm against NULL.
1725
a8a098ac
JJ
17262015-09-10 Jakub Jelinek <jakub@redhat.com>
1727
1728 PR c/67502
1729 * c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
1730 into OMP_FOR_PRE_BODY rather than before the loop.
1731
f4b189d5
JJ
17322015-09-09 Jakub Jelinek <jakub@redhat.com>
1733
0bb99c11
JJ
1734 PR c/67501
1735 * c-parser.c (c_parser_oacc_all_clauses,
1736 c_parser_omp_all_clauses): Remove invalid clause from
1737 list of clauses even if parser->error is set.
1738
fce5e5e3
JJ
1739 PR c/67500
1740 * c-parser.c (c_parser_omp_clause_aligned,
1741 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
1742 test for errors.
1743 * c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
1744 error_mark_node.
1745
f4b189d5
JJ
1746 PR c/67495
1747 * c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
1748 instead of c_parser_unary_expression. If the result is !lvalue_p,
1749 wrap the result of c_fully_fold into NON_LVALUE_EXPR.
1750
b2aaf235
MP
17512015-09-04 Marek Polacek <polacek@redhat.com>
1752
1753 PR sanitizer/67279
1754 * c-typeck.c (build_binary_op): Don't instrument static initializers.
1755
1807ffc1
MS
17562015-09-03 Martin Sebor <msebor@redhat.com>
1757
1758 PR c/66516
8b652e65
JJ
1759 * c-typeck.c (convert_arguments, parser_build_unary_op,
1760 build_conditional_expr, c_cast_expr, convert_for_assignment,
1761 build_binary_op, _objc_common_truthvalue_conversion): Call
1807ffc1
MS
1762 reject_gcc_builtin.
1763 (c_decl_implicit): Define.
1764
d04ff417
MP
17652015-09-02 Marek Polacek <polacek@redhat.com>
1766
1767 PR c/67432
1768 * c-parser.c (c_parser_enum_specifier): Give a better error for
1769 an empty enum.
1770
a79683d5
TS
17712015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
1772
1773 * c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
1774
191a6b94
MP
17752015-08-12 Marek Polacek <polacek@redhat.com>
1776
1777 * c-decl.c (grokdeclarator): Call error_at instead of error and pass
1778 LOC to it.
1779
420a9d9b
MP
17802015-08-03 Marek Polacek <polacek@redhat.com>
1781
1782 PR c/67088
1783 * c-decl.c (check_bitfield_type_and_width): Add location parameter.
1784 Use it.
1785 (grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
1786
992118a1
PP
17872015-08-02 Patrick Palka <ppalka@gcc.gnu.org>
1788
1789 * c-parser.c (c_parser_if_body): Take token_indent_info
1790 argument. Call warn_for_misleading_indentation even when the
1791 body is a semicolon. Extract token_indent_infos corresponding
1792 to the guard, body and next tokens. Adjust call to
1793 warn_for_misleading_indentation accordingly.
1794 (c_parser_else_body): Likewise.
1795 (c_parser_if_statement): Likewise.
1796 (c_parser_while_statement): Likewise.
1797 (c_parser_for_statement): Likewise.
1798
46308474
LFSM
17992015-07-28 Luis Felipe Strano Moraes <luis.strano@gmail.com>
1800 Manuel López-Ibáñez <manu@gcc.gnu.org>
1801
1802 * c-decl.c (get_parm_info): Remove static var. Update warning
1803 message.
1804
05b28fd6
MP
18052015-07-27 Marek Polacek <polacek@redhat.com>
1806
1807 PR c++/66555
1808 PR c/54979
1809 * c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
1810
451b5e48
MP
18112015-07-20 Marek Polacek <polacek@redhat.com>
1812
1813 PR c++/55095
1814 * c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
1815 (build_binary_op): Warn about left shift overflows.
1816
1916bcb5
AM
18172015-07-09 Andrew MacLeod <amacleod@redhat.com>
1818
1819 * c-array-notation.c: Adjust includes for flags.h changes.
1820 * c-objc-common.c: Likewise.
1821
c7131fb2
AM
18222015-07-07 Andrew MacLeod <amacleod@redhat.com>
1823
1824 * c-array-notation.c: Adjust includes.
1825 * c-aux-info.c: Likewise.
1826 * c-convert.c: Likewise.
1827 * c-decl.c: Likewise.
1828 * c-errors.c: Likewise.
1829 * c-lang.c: Likewise.
1830 * c-objc-common.c: Likewise.
1831 * c-parser.c: Likewise.
1832 * c-typeck.c: Likewise.
1833
da2e71c9
MLI
18342015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
1835
1836 PR fortran/66605
1837 * c-decl.c (finish_function): Call do_warn_unused_parameter.
1838
b155cfd9
MP
18392015-06-29 Marek Polacek <polacek@redhat.com>
1840
1841 PR c/66322
1842 * c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
1843 (c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P. Don't warn
1844 about -Wswitch-bool here.
1845 (do_case): Update c_add_case_label call.
1846 (c_finish_case): Update c_do_switch_warnings call.
1847
31521951
MP
18482015-06-27 Marek Polacek <polacek@redhat.com>
1849
1850 * c-typeck.c: Use VECTOR_TYPE_P throughout.
1851
22d03525
MP
18522015-06-26 Marek Polacek <polacek@redhat.com>
1853
1854 * c-array-notation.c (fix_builtin_array_notation_fn): Use
1855 INDIRECT_REF_P.
1856 * c-typeck.c (array_to_pointer_conversion): Likewise.
1857 (build_unary_op): Likewise.
1858 (c_finish_return): Likewise.
1859
f0889939
AM
18602015-06-25 Andrew MacLeod <amacleod@redhat.com>
1861
1862 * c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
1863 * c-parser.c: Likewise.
1864
8d67ee55
RS
18652015-06-25 Richard Sandiford <richard.sandiford@arm.com>
1866
1867 * c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
1868 instead of pointer_hash.
1869 (detect_field_duplicates): Likewise.
1870
0ae9bd27
MP
18712015-06-25 Marek Polacek <polacek@redhat.com>
1872
1873 * c-array-notation.c: Use VAR_P throughout.
1874 * c-decl.c: Likewise.
1875 * c-objc-common.c: Likewise.
1876 * c-parser.c: Likewise.
1877 * c-typeck.c: Likewise.
1878
62f9079a
MP
18792015-06-25 Marek Polacek <polacek@redhat.com>
1880
1881 * c-decl.c: Use is_global_var throughout.
1882 * c-parser.c: Likewise.
1883 * c-typeck.c: Likewise.
1884
abb226c9
AM
18852015-06-17 Andrew MacLeod <amacleod@redhat.com>
1886
1887 * c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
1888 * c-aux-info.c: Likewise.
1889 * c-convert.c: Likewise.
1890 * c-decl.c: Likewise.
1891 * c-errors.c: Likewise.
1892 * c-lang.c: Likewise.
1893 * c-objc-common.c: Likewise.
1894 * c-parser.c: Likewise.
1895 * c-typeck.c: Likewise.
1896
8cbababc
JH
18972015-06-11 Jan Hubicka <hubicka@ucw.cz>
1898
1899 PR middle-end/66325
1900 * c-decl.c (start_enum): Set TYPE_PACKED consistently among type
1901 variants.
1902
a0349665
PMR
19032015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
1904
1905 * c-decl.c (pop_scope): Register the main translation unit
1906 through the new debug hook.
1907
13fdf2e2
AM
19082015-06-08 Andrew MacLeod <amacleod@redhat.com>
1909
1910 * c-array-notation.c : Adjust include files.
1911 * c-aux-info.c : Likewise.
1912 * c-convert.c : Likewise.
1913 * c-decl.c : Likewise.
1914 * c-errors.c : Likewise.
1915 * c-lang.c : Likewise.
1916 * c-lang.h : Likewise.
1917 * c-objc-common.c : Likewise.
1918 * c-parser.c : Likewise.
1919 * c-typeck.c : Likewise.
1920
d7438551
AH
19212015-06-05 Aldy Hernandez <aldyh@redhat.com>
1922
1923 * c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
1924 immediately clobber it.
1925 (c_write_global_declarations_1): Remove call to
1926 check_global_declaration_1.
1927 (c_write_global_declarations_2): Remove.
1928 (c_write_final_cleanups): Rename from c_write_global_declarations.
1929 Remove call to finalize_compilation_unit.
1930 Remove calls to debugging hooks.
1931 * c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
1932 * c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
1933 * c-tree.h: Remove c_write_global_declarations.
1934
ecb9f223
AM
19352015-06-04 Andrew MacLeod <amacleod@redhat.com>
1936
1937 * c-array-notation.c: Adjust includes for restructured coretypes.h.
1938 * c-aux-info.c: Likewise.
1939 * c-convert.c: Likewise.
1940 * c-decl.c: Likewise.
1941 * c-errors.c: Likewise.
1942 * c-lang.c: Likewise.
1943 * c-objc-common.c: Likewise.
1944 * c-parser.c: Likewise.
1945 * c-typeck.c: Likewise.
1946
9482b620
MP
19472015-06-04 Marek Polacek <polacek@redhat.com>
1948
1949 PR c/66341
1950 * c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
1951 it is a lvalue.
1952
bc51ace3
PK
19532015-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1954
1955 * c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
1956 Warn for empty struct.
1957 (finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.
1958
ea5b45b6
AT
19592015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
1960
1961 * c-decl.c (start_function): Call plugin before parsing.
1962 (finish_function): Call plugin after parsing.
1963
c2d47482
PK
19642015-06-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1965
1966 PR c/49551
1967 * c-decl.c (merge_decls): Merge DECL_COMMON.
1968
a95492ab
JW
19692015-05-22 Jim Wilson <jim.wilson@linaro.org>
1970
1971 * Make-lang.in (check_gcc_pallelize): Define.
1972
fd5c817a
MP
19732015-05-22 Marek Polacek <polacek@redhat.com>
1974
1975 PR c/47043
1976 * c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
1977 attributes.
1978
c7b70a3c
MP
19792015-05-21 Marek Polacek <polacek@redhat.com>
1980
1981 * c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
1982 DECL_BUILT_IN.
1983
21b634ae
MP
19842015-05-20 Marek Polacek <polacek@redhat.com>
1985
1986 * c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
1987 * c-typeck.c: Likewise.
1988
296a8c2f
MP
19892015-05-19 Marek Polacek <polacek@redhat.com>
1990
1991 * c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
1992
41b37d5e
JJ
19932015-05-19 Jakub Jelinek <jakub@redhat.com>
1994
1995 PR middle-end/66199
1996 * c-parser.c (c_parser_omp_for_loop): Don't add
1997 OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
1998 OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
1999 (c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
2000 constructs.
2001
fab27f52
MM
20022015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
2003
2004 * c-typeck.c (build_array_ref): Use std::swap instead of explicit
296a8c2f 2005 swaps.
fab27f52 2006
40de31cf
MLI
20072015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
2008
2009 PR fortran/44054
2010 * c-objc-common.c (c_tree_printer): Replace locus pointer with
2011 accessor function.
2012
3aa3c9fc
MP
20132015-05-14 Marek Polacek <polacek@redhat.com>
2014
2015 PR c/66066
2016 PR c/66127
2017 * c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
2018 rather than with 0.
2019
c3388e62
DM
20202015-05-12 David Malcolm <dmalcolm@redhat.com>
2021
2022 * c-parser.c (c_parser_if_body): Add param "if_loc", use it
2023 to add a call to warn_for_misleading_indentation.
2024 (c_parser_else_body): Likewise, adding param "else_loc".
2025 (c_parser_if_statement): Check for misleading indentation.
2026 (c_parser_while_statement): Likewise.
2027 (c_parser_for_statement): Likewise.
2028
755e528f
MP
20292015-05-08 Marek Polacek <polacek@redhat.com>
2030
2031 PR c/64918
2032 * c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
2033 (output_init_element): Likewise.
2034
0173bd2a
MP
20352015-05-07 Marek Polacek <polacek@redhat.com>
2036
2037 PR c/65179
2038 * c-typeck.c (build_binary_op): Warn when left shifting a negative
2039 value.
2040
9babc352
MP
20412015-04-30 Marek Polacek <polacek@redhat.com>
2042
2043 * c-typeck.c (set_init_label): Call error_at instead of error and
2044 pass LOC to it.
2045
ac9f18db
MP
2046 * c-typeck.c (c_incomplete_type_error): Refactor to use %qT. Print
2047 the type of a decl.
2048
ec3fba51
MP
2049 * c-typeck.c (c_build_va_arg): Clarify the error message.
2050
b811915d
TS
20512015-04-29 Thomas Schwinge <thomas@codesourcery.com>
2052
2053 * c-parser.c (c_parser_oacc_enter_exit_data): Use
2054 OMP_STANDALONE_CLAUSES.
2055
f3075008
MP
20562015-04-28 Marek Polacek <polacek@redhat.com>
2057
2058 * c-parser.c (c_parser_binary_expression): Remove duplicate line.
2059
4e81b788
MP
20602015-04-28 Marek Polacek <polacek@redhat.com>
2061
2062 PR c/65901
2063 * c-typeck.c (c_build_va_arg): Require TYPE be a complete type.
2064
6c1db78e
MP
20652015-04-25 Marek Polacek <polacek@redhat.com>
2066
2067 PR c/52085
2068 * c-decl.c (finish_enum): Copy over TYPE_ALIGN. Also check for "mode"
2069 attribute.
2070
5c4abbb8
MP
20712015-04-23 Marek Polacek <polacek@redhat.com>
2072
2073 PR c/65345
2074 * c-decl.c (set_labels_context_r): New function.
2075 (store_parm_decls): Call it via walk_tree_without_duplicates.
2076 * c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
2077 instead of create_tmp_var. Build TARGET_EXPR instead of
2078 COMPOUND_EXPR.
2079 (build_atomic_assign): Use create_tmp_var_raw instead of
2080 create_tmp_var. Build TARGET_EXPRs instead of MODIFY_EXPR.
2081
06aca1d5
IV
20822015-04-20 Ilya Verbin <ilya.verbin@intel.com>
2083
2084 * c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
2085 (c_parser_omp_target_update): Add missed %> to error_at ().
2086
8fba1830
BRF
20872015-04-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2088
2089 PR target/55143
2090 * c-decl.c (c_default_pointer_mode): Remove definition.
2091 * c-tree.h (c_default_pointer_mode): Remove declaration.
2092
62021f64
TB
20932015-03-27 Tobias Burnus <burnus@net-b.de>
2094
2095 PR c/65586
2096 * c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
2097 error out.
2098 (c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
2099 c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
2100 Update calls to not error for skipped omp pragmas with -fopenmp-simd.
2101
9b65e171
JJ
21022015-03-19 Jakub Jelinek <jakub@redhat.com>
2103
2104 * c-decl.c (c_decl_attributes): Also add "omp declare target"
2105 attribute for DECL_EXTERNAL VAR_DECLs.
2106
17958621
JJ
21072015-03-11 Jakub Jelinek <jakub@redhat.com>
2108
2109 * c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
2110 argument.
2111
7ccb1a11
JJ
21122015-03-10 Jakub Jelinek <jakub@redhat.com>
2113
2114 PR c/65120
2115 * c-typeck.c (parser_build_binary_op): Check for tcc_comparison
2116 before preparing arguments to warn_logical_not_parentheses.
2117
01177669
JJ
21182015-03-09 Jakub Jelinek <jakub@redhat.com>
2119
2120 PR c/65120
2121 * c-typeck.c (parser_build_binary_op): Don't warn for
2122 !!x == y or !b == y where b is _Bool.
2123
802ac282
MP
21242015-03-09 Marek Polacek <polacek@redhat.com>
2125
2126 * c-convert.c (convert): Make use of do_ubsan_in_current_function.
2127 * c-decl.c (grokdeclarator): Likewise.
2128 * c-typeck.c (build_binary_op): Likewise.
2129
e5165b60
MP
21302015-02-27 Marek Polacek <polacek@redhat.com>
2131
2132 PR c/65228
2133 * c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
2134
065d214c
MP
21352015-02-14 Marek Polacek <polacek@redhat.com>
2136
2137 PR c/64768
2138 * c-decl.c (grokdeclarator): Set the range of a flexible array member
2139 declared through a typedef name.
2140
e5d9235b
MP
21412015-02-13 Marek Polacek <polacek@redhat.com>
2142
2143 PR c/65050
2144 * c-decl.c (grokdeclarator): Print also the type when giving
2145 the error message about array's incomplete element type.
2146
fa01ffcc
JJ
21472015-02-11 Jakub Jelinek <jakub@redhat.com>
2148
2149 PR c/64824
2150 * c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
2151 check in the POP macro.
2152
c3e38a03
MP
21532015-02-09 Marek Polacek <polacek@redhat.com>
2154
2155 PR c/64856
2156 * c-typeck.c (process_init_element): Don't always wrap
2157 COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when
2158 initializing a range of elements.
2159
4886ec8e
JJ
21602015-02-04 Jakub Jelinek <jakub@redhat.com>
2161
2162 PR c/64824
2163 PR c/64868
2164 * c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.
2165
c3e38a03 21662015-02-02 Bruno Loff <bruno.loff@gmail.com>
a4bb6959
BL
2167
2168 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
2169 processing enum declaration.
2170
7b33f0c8
MP
21712015-01-29 Marek Polacek <polacek@redhat.com>
2172
2173 PR c/64709
2174 * c-typeck.c (pop_init_level): If constructor_elements has
2175 exactly one element with integer_zerop value, set constructor_zeroinit
2176 to 1. Remove braces around warning_init call.
2177
dea63e49
JJ
21782015-01-27 Jakub Jelinek <jakub@redhat.com>
2179
2180 PR c/64766
2181 * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
2182 of FUNCTION_DECLs with error_mark_node.
2183
d38f7dce
JJ
21842015-01-26 Jakub Jelinek <jakub@redhat.com>
2185
2186 PR c/64778
2187 * c-typeck.c (convert_arguments): Return -1 if there are
2188 error_args, even if we've diagnosed too many arguments.
2189
cbf5d0e7
RB
21902015-01-21 Richard Biener <rguenther@suse.de>
2191
2192 PR middle-end/64313
2193 * c-decl.c (merge_decls): Call set_builtin_decl_declared_p
2194 for builtins the user declared correctly.
2195
41dbbb37
TS
21962015-01-15 Thomas Schwinge <thomas@codesourcery.com>
2197 Bernd Schmidt <bernds@codesourcery.com>
2198 Cesar Philippidis <cesar@codesourcery.com>
2199 James Norris <jnorris@codesourcery.com>
2200 Jakub Jelinek <jakub@redhat.com>
2201 Ilmir Usmanov <i.usmanov@samsung.com>
2202
2203 * c-parser.c: Include "gomp-constants.h".
2204 (c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
2205 omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
2206 Use OMP_CLAUSE_SET_MAP_KIND.
2207 (c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
2208 PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
2209 (c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
2210 PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
2211 PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
2212 (c_parser_omp_clause_name): Handle "auto", "async", "copy",
2213 "copyout", "create", "delete", "deviceptr", "gang", "host",
2214 "num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
2215 "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
2216 "present_or_create", "pcreate", "seq", "self", "vector",
2217 "vector_length", "wait", "worker".
2218 (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
2219 (OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
2220 (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
2221 (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
2222 (c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
2223 (c_parser_oacc_wait_list, c_parser_oacc_data_clause)
2224 (c_parser_oacc_data_clause_deviceptr)
2225 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
2226 (c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
2227 (c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
2228 (c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
2229 (c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
2230 (c_parser_oacc_parallel, c_parser_oacc_update)
2231 (c_parser_oacc_wait): New functions.
2232 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
2233 (c_finish_oacc_data): New prototypes.
2234 * c-typeck.c: Include "gomp-constants.h".
2235 (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
2236 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
2237 OMP_CLAUSE_SET_MAP_KIND.
2238 (c_finish_oacc_parallel, c_finish_oacc_kernels)
2239 (c_finish_oacc_data): New functions.
2240 (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
2241 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
2242 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
2243 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
2244 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
2245 GOMP_MAP_FORCE_DEVICEPTR.
2246
adfac8df
JJ
22472015-01-09 Michael Collison <michael.collison@linaro.org>
2248
2249 * c-array-notation.c: Include hash-set.h, machmode.h,
2250 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
2251 fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
2252 * c-aux-info.c: Ditto.
2253 * c-convert.c: Ditto.
2254 * c-decl.c: Ditto.
2255 * c-errors.c: Ditto.
2256 * c-lang.c: Dittoxs.
2257 * c-objc-common.c: Ditto.
2258 * c-parser.c: Ditto.
2259 * c-typeck.c: Include hash-set.h, machmode.h,
2260 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
2261 fold-const.h, wide-int.h, inchash.h, real.h and
2262 fixed-value.h due to flattening of tree.h.
2263
2cc901dc
MP
22642015-01-07 Marek Polacek <polacek@redhat.com>
2265
2266 PR c/64417
2267 * c-typeck.c (process_init_element): Disallow initialization of
2268 a flexible array member with a string constant if the structure
2269 is in an array.
2270
5624e564
JJ
22712015-01-05 Jakub Jelinek <jakub@redhat.com>
2272
e5341100
JJ
2273 PR sanitizer/64344
2274 * c-typeck.c (convert_for_assignment, c_finish_return): For
2275 -fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
2276 types also set in_late_binary_op around convert call.
2277 * c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
2278 to integral type casts, if not in_late_binary_op, pass c_fully_fold
2279 result on expr as last argument to ubsan_instrument_float_cast,
2280 if in_late_binary_op, don't use c_save_expr but save_expr.
2281
5624e564
JJ
2282 Update copyright years.
2283
5bd012f8
MP
22842015-01-05 Marek Polacek <polacek@redhat.com>
2285
2286 PR c/64423
2287 * c-typeck.c (build_array_ref): Pass loc down to
2288 warn_array_subscript_with_type_char.
2289
3f8257db 22902014-12-20 Martin Uecker <uecker@eecs.berkeley.edu>
768952be
MU
2291
2292 * c-typeck.c: New behavious for pointers to arrays with qualifiers
8e745a17 2293 (common-pointer-type): For pointers to arrays take qualifiers from
768952be 2294 element type.
8e745a17 2295 (build_conditional_expr): Add warnings for lost qualifiers.
768952be 2296 (comp-target-types): Allow pointers to arrays with different qualifiers.
8e745a17 2297 (convert-for-assignment): Adapt warnings for discarded qualifiers. Add
768952be 2298 WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
8e745a17 2299 to PEDWARN_FOR_QUALIFIERS.
768952be 2300
8f94a8c4
JJ
23012014-12-17 Jakub Jelinek <jakub@redhat.com>
2302
2303 PR sanitizer/64289
2304 * c-convert.c: Include ubsan.h.
2305 (convert): For real -> integral casts and
2306 -fsanitize=float-cast-overflow don't call convert_to_integer, but
2307 instead instrument the float cast directly.
2308
b731b390
JJ
23092014-11-29 Jakub Jelinek <jakub@redhat.com>
2310
2311 * c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
2312 c_finish_stmt_expr): Remove NULL last argument from
2313 create_tmp_var_raw and create_tmp_var calls.
2314 * c-array-notation.c (fix_builtin_array_notation_fn,
2315 build_array_notation_expr, fix_conditional_array_notations_1,
2316 fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
2317
541e35a6
MP
23182014-11-28 Marek Polacek <polacek@redhat.com>
2319
2320 PR c/63862
2321 * c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
2322 convert the right operand to integer type.
2323
b286be94
MP
23242014-11-25 Marek Polacek <polacek@redhat.com>
2325
2326 PR c/63877
2327 * c-decl.c (start_function): Disable -Wmissing-declarations warning
2328 for inline functions.
2329
aa7da51a
JJ
23302014-11-21 Jakub Jelinek <jakub@redhat.com>
2331
2332 PR target/63764
2333 * c-typeck.c (build_array_ref): Adjust
2334 convert_vector_to_pointer_for_subscript caller. If it returns true,
2335 call non_lvalue_loc on the result.
2336
d876207f
RB
23372014-11-11 Richard Biener <rguenther@suse.de>
2338
2339 * c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
2340 to true.
2341
e5e44252
AK
23422014-11-10 Andi Kleen <ak@linux.intel.com>
2343
2344 PR c/60804
2345 * c-parser.c (c_parser_statement_after_labels): Call
2346 check_no_cilk.
2347 (c_parser_if_statement): Dito.
2348 (c_parser_switch_statement): Dito.
2349 (c_parser_while_statement): Dito.
2350 (c_parser_do_statement): Dito.
2351 (c_parser_for_statement): Dito.
2352 * c-typeck.c (c_finish_loop): Dito.
2353
13c21655
PC
23542014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
2355
2356 * c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
2357 OPT_Wshift_count_overflow in the warnings.
2358
2d51fcef
MP
23592014-10-30 Marek Polacek <polacek@redhat.com>
2360
2361 * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
2362 print the stripped version as well, if they're not the same.
2363
ef4bddc2
RS
23642014-10-29 Richard Sandiford <richard.sandiford@arm.com>
2365
2366 * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
2367 machine_mode.
2368
c582198b
AM
23692014-10-28 Andrew MacLeod <amacleod@redhat.com>
2370
2371 * c-decl.c: Adjust include files.
2372 * c-parser.c: Ditto.
2373
ddc8de03
PM
23742014-10-27 Phil Muldoon <pmuldoon@redhat.com>
2375 Tom Tromey <tromey@redhat.com>
2376
2377 * c-tree.h (enum c_oracle_request): New.
2378 (c_binding_oracle_function): New typedef.
2379 (c_binding_oracle, c_pushtag, c_bind): Declare.
2380 * c-decl.c (c_binding_oracle): New global.
2381 (I_SYMBOL_CHECKED): New macro.
2382 (i_symbol_binding): New function.
2383 (I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
2384 (I_TAG_CHECKED): New macro.
2385 (i_tag_binding): New function.
2386 (I_TAG_BINDING, I_TAG_DECL): Redefine.
2387 (I_LABEL_CHECKED): New macro.
2388 (i_label_binding): New function.
2389 (I_LABEL_BINDING, I_LABEL_DECL): Redefine.
2390 (c_print_identifier): Save and restore c_binding_oracle.
2391 (c_pushtag, c_bind): New functions.
2392
60393bbc
AM
23932014-10-27 Andrew MacLeod <amacleod@redhat.com>
2394
2395 * c-typeck.c: Adjust include files.
2396
d723bb7c
MLI
23972014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
2398
2399 PR c++/53061
2400 * c-objc-common.c (c_objc_common_init): Do not do diagnostics
2401 initialization here...
2402 (c_initialize_diagnostics): ... but here. Set defaults after
2403 building pretty-printer.
2404
1bc5a451
MP
24052014-10-23 Marek Polacek <polacek@redhat.com>
2406
2407 PR c/63626
2408 * c-decl.c (pop_scope): Don't print warning in external_scope.
2409
4435bb92
MP
24102014-10-19 Marek Polacek <polacek@redhat.com>
2411
2412 PR c/63567
2413 * c-typeck.c (output_init_element): Allow initializing objects with
2414 static storage duration with compound literals even in C99 and add
2415 pedwarn for it.
2416
7278465e
MP
24172014-10-17 Marek Polacek <polacek@redhat.com>
2418
2419 PR c/63567
2420 * c-typeck.c (digest_init): Allow initializing objects with static
2421 storage duration with compound literals even in C99 and add pedwarn
2422 for it.
2423
d9b7be2e
MP
24242014-10-17 Marek Polacek <polacek@redhat.com>
2425
2426 PR c/63543
2427 * c-tree.h (C_TYPE_ERROR_REPORTED): Define.
2428 * c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
2429 error multiple times. Print the type.
2430
f406ae1f
MP
24312014-10-17 Marek Polacek <polacek@redhat.com>
2432
2433 PR c/63549
2434 * c-typeck.c (build_array_ref): Bail if the index in an incomplete
2435 type.
2436
92574c7c
MP
24372014-10-17 Marek Polacek <polacek@redhat.com>
2438
2439 * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
2440 (start_function): Use OPT_Wimplicit_int instead of 0.
2441 (store_parm_decls_oldstyle): Likewise.
2442
1bc4a978
MT
24432014-10-17 Alan Modra <amodra@gmail.com>
2444
2445 PR middle-end/61848
2446 * c-decl.c (merge_decls): Don't merge section name or tls model
2447 to newdecl symtab node, instead merge to olddecl. Override
2448 existing olddecl section name. Set tls_model for all thread-local
2449 vars, not just OMP thread-private ones. Remove incorrect comment.
2450
83685514
AM
24512014-10-16 Andrew MacLeod <amacleod@redhat.com>
2452
2453 * c-decl.c: Adjust include files.
2454
78a7c317
DD
24552014-10-14 DJ Delorie <dj@redhat.com>
2456
2457 * c-parser.c (c_parse_init): Add RID entries for each __intN.
2458 (c_token_starts_typename): Check all __intN, not just __int128.
2459 (c_token_starts_declspecs): Likewise.
2460 (c_parser_declspecs): Likewise.
2461 (c_parser_attribute_any_word): Likewise.
2462 (c_parser_objc_selector): Likewise.
2463 * c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
2464 (struct c_declspecs): Add int_n_idx field to record *which* __intN
2465 is specified.
2466 * c-decl.c (declspecs_add_type): Check for all __intN, not just
2467 __int128.
2468 (finish_declspecs): Likewise.
2469
74d98c1e
AB
24702014-10-13 Anthony Brandon <anthony.brandon@gmail.com>
2471
8e745a17 2472 * c-parser.c (c_parser_all_labels): New function to replace
74d98c1e 2473 the duplicate code.
8e745a17 2474 (c_parser_statement): Call the new function.
74d98c1e 2475
84937de2
MP
24762014-10-09 Marek Polacek <polacek@redhat.com>
2477
2478 PR c/63480
2479 * c-typeck.c (pop_init_level): Don't warn about initializing
2480 with { }.
2481
0382aaa0
MP
24822014-10-07 Marek Polacek <polacek@redhat.com>
2483
2484 PR c/59717
2485 * c-decl.c (header_for_builtin_fn): New function.
2486 (implicitly_declare): Suggest which header to include.
2487
7a0ca710
MP
24882014-10-07 Marek Polacek <polacek@redhat.com>
2489
2490 * c-convert.c (convert): Use error_operand_p.
2491 * c-typeck.c (require_complete_type): Likewise.
2492 (really_atomic_lvalue): Likewise.
2493 (digest_init): Likewise.
2494 (handle_omp_array_sections_1): Likewise.
2495
6bc8a126
MP
24962014-10-03 Marek Polacek <polacek@redhat.com>
2497
2498 PR c/63453
2499 * c-decl.c (pop_scope): Don't warn about "inline function declared
2500 but never defined" for functions marked with gnu_inline attribute.
2501
d90c0a59
JJ
25022014-09-25 Jakub Jelinek <jakub@redhat.com>
2503
2504 PR c++/63249
2505 * c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
2506 on low_bound and length.
2507
083e891e
MP
25082014-09-24 Marek Polacek <polacek@redhat.com>
2509
2510 PR c/61405
2511 PR c/53874
2512 * c-parser.c: Don't define CPP_KEYWORD.
2513 (c_parser_switch_statement): Pass original type to c_finish_case.
2514 * c-tree.h (c_finish_case): Update declaration.
2515 * c-typeck.c (c_finish_case): Add TYPE parameter. Pass it
2516 conditionally to c_do_switch_warnings.
2517
8d95fe25
MP
25182014-09-03 Marek Polacek <polacek@redhat.com>
2519
2520 PR c/62024
2521 * c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
2522 conversions.
2523
9a771876
JJ
25242014-09-02 Jakub Jelinek <jakub@redhat.com>
2525 Balaji V. Iyer <balaji.v.iyer@intel.com>
2526 Igor Zamyatin <igor.zamyatin@intel.com>
2527
2528 * c-parser.c (c_parser_cilk_for): New function.
2529 (c_parser_cilk_grainsize): Likewise.
2530 (c_get_temp_regvar): Likewise.
2531 (c_parser_statement_after_labels): Added RID_CILK_FOR case.
2532 (c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
2533 (c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
2534 * c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
2535 case.
2536
b7679d96
CG
25372014-08-27 Chen Gang <gang.chen.5i5j@gmail.com>
2538
2539 * c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
2540 with using HOST_WIDE_INT without truncation to 'int'
2541
59ea0364
MP
25422014-08-22 Marek Polacek <polacek@redhat.com>
2543
2544 PR c++/62199
2545 * c-typeck.c (parser_build_binary_op): Adjust call to
2546 warn_logical_not_parentheses.
2547
671a475e
IZ
25482014-08-22 Igor Zamyatin <igor.zamyatin@intel.com>
2549
2550 PR other/62008
2551 * c-parser.c (c_parser_array_notation): Check for correct
2552 type of an array added.
2553
04159acf
MP
25542014-08-19 Marek Polacek <polacek@redhat.com>
2555
2556 PR c++/62153
2557 * c-typeck.c (build_binary_op): If either operand of a comparison
2558 is a boolean expression, call maybe_warn_bool_compare.
2559
c77935ee
PP
25602014-08-19 Patrick Palka <ppalka@gcc.gnu.org>
2561
2562 PR c/45584
2563 * c-typeck.c (build_c_cast): Do a conversion even when the
2564 TYPE_MAIN_VARIANTs are the same.
2565
35aff4fb
MP
25662014-08-19 Marek Polacek <polacek@redhat.com>
2567
2568 * c-decl.c (diagnose_mismatched_decls): Unconditionally call
2569 pedwarn_c99 instead of pedwarn.
2570 (grokfield): Likewise.
2571 (warn_defaults_to): New function.
2572 (grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
2573 Unconditionally call pedwarn_c99 instead of pedwarn.
2574 (start_function): Call warn_defaults_to instead of pedwarn_c99.
2575 (declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
2576 check flag_isoc11 before.
2577 * c-errors.c (pedwarn_c99): Change the return type to bool.
2578 Handle -Wc99-c11-compat.
2579 * c-parser.c (disable_extension_diagnostics): Handle
2580 warn_c99_c11_compat.
2581 (restore_extension_diagnostics): Likewise.
2582 (c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
2583 instead of pedwarn, don't check flag_isoc11 before.
2584 (c_parser_declspecs): Likewise.
2585 (c_parser_alignas_specifier): Likewise.
2586 (c_parser_alignof_expression): Likewise.
2587 (c_parser_generic_selection): Likewise.
2588 * c-tree.h (pedwarn_c99): Update declaration.
2589 * c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
2590 of pedwarn_c99.
2591
177cce46
MP
25922014-08-19 Marek Polacek <polacek@redhat.com>
2593
2594 * c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
2595 to pedwarn_c90.
2596 * c-errors.c: Include "opts.h".
2597 (pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
2598 * c-parser.c (disable_extension_diagnostics): Handle negative value
2599 of warn_c90_c99_compat, too.
2600 (restore_extension_diagnostics): Likewise.
2601 (c_parser_compound_statement_nostart): Pass
2602 OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.
2603
6dc99c33
MP
26042014-08-12 Marek Polacek <polacek@redhat.com>
2605
2606 * c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
2607 Add pedwarn.
2608 (c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
2609 Likewise.
2610 (c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.
2611
3f8257db 26122014-08-10 Marek Polacek <polacek@redhat.com>
f3bede71
MP
2613
2614 PR c/51849
2615 * c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
2616 Call pedwarn_c90 instead of pedwarn.
2617 (check_bitfield_type_and_width): Likewise.
2618 (declspecs_add_qual): Likewise.
2619 (declspecs_add_type): Likewise.
2620 (warn_variable_length_array): Unify function for -pedantic and -Wvla.
2621 Adjust to only call pedwarn_c90.
2622 (grokdeclarator): Remove pedantic && !flag_isoc99 check. Call
2623 pedwarn_c90 instead of pedwarn.
2624 * c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
2625 * c-parser.c (disable_extension_diagnostics): Handle
2626 warn_c90_c99_compat.
2627 (restore_extension_diagnostics): Likewise.
2628 (c_parser_enum_specifier): Remove check for !flag_isoc99. Call
2629 pedwarn_c90 instead of pedwarn.
2630 (c_parser_initelt): Likewise.
2631 (c_parser_postfix_expression): Likewise.
2632 (c_parser_postfix_expression_after_paren_type): Likewise.
2633 (c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
2634 * c-tree.h: Fix formatting.
2635 * c-typeck.c (build_array_ref): Remove check for !flag_isoc99. Call
2636 pedwarn_c90 instead of pedwarn.
2637
9f25a338
TS
26382014-08-07 Trevor Saunders <tsaunders@mozilla.com>
2639
2640 * c-typeck.c: Remove include of pointer-set.h.
2641
044331a8
MP
26422014-08-07 Marek Polacek <polacek@redhat.com>
2643
2644 * c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.
2645
b787e7a2
TS
26462014-08-02 Trevor Saunders <tsaunders@mozilla.com>
2647
2648 * c-typeck.c: Use hash_map instead of pointer_map.
2649
6e2830c3
TS
26502014-08-02 Trevor Saunders <tsaunders@mozilla.com>
2651
2652 * c-decl.c: Use hash_set instead of pointer_set.
2653
a7ee52fb
IZ
26542014-08-01 Igor Zamyatin <igor.zamyatin@intel.com>
2655
2656 PR middle-end/61455
2657 * c-array-notation.c (expand_array_notations): Handling
2658 of DECL_EXPR added.
2659
b4dfdc11
MG
26602014-07-31 Marc Glisse <marc.glisse@inria.fr>
2661
2662 PR c++/60517
2663 * c-typeck.c (c_finish_return): Return 0 instead of the address of
2664 a local variable.
2665
976d5a22
TT
26662014-07-30 Tom Tromey <tromey@redhat.com>
2667
2668 * c-typeck.c (struct constructor_stack) <designator_depth>: New
2669 field.
2670 (really_start_incremental_init, push_init_level): Initialize
2671 designator_depth.
2672 (pop_init_level): Set global designator_depth.
2673 (process_init_element): Check for designated_init attribute.
2674
30281de2
MP
26752014-07-20 Marek Polacek <polacek@redhat.com>
2676
2677 PR c/61852
2678 * c-decl.c (implicit_decl_warning): Add location_t parameter. Use it.
2679 (implicitly_declare): Pass location to implicit_decl_warning.
2680
b108f48f
JJ
26812014-07-14 Jakub Jelinek <jakub@redhat.com>
2682
2683 PR middle-end/61294
2684 * c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
2685 If non-NULL, call c_parser_check_literal_zero.
2686 (c_parser_check_literal_zero): New function.
2687 (c_parser_postfix_expression_after_primary): Adjust
2688 c_parser_expr_list caller, handle -Wmemset-transposed-args.
2689
773ec47f
MP
26902014-07-06 Marek Polacek <polacek@redhat.com>
2691
2692 PR c/6940
2693 * c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
2694 * c-tree.h (C_ARRAY_PARAMETER): Define.
2695 * c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
2696 function parameter.
2697
22e1cf1c 26982014-07-02 Jan Hubicka <hubicka@ucw.cz>
3f8257db 2699 Chen Gang <gang.chen.5i5j@gmail.com>
22e1cf1c
JH
2700
2701 * c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
2702 releasing symbol.
2703
52ec0ea3
MP
27042014-07-01 Marek Polacek <polacek@redhat.com>
2705
2706 * c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
2707 instead of 0 to WARN_FOR_ASSIGNMENT.
2708
d5c3d343
MP
27092014-07-01 Marek Polacek <polacek@redhat.com>
2710
2711 PR c/58286
2712 * c-typeck.c (convert_for_assignment): Pass
2713 OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
2714
6a7253a4
MP
27152014-06-30 Marek Polacek <polacek@redhat.com>
2716
2717 * c-decl.c (grokdeclarator): Don't instrument VLAs if the function
2718 has no_sanitize_undefined attribute.
2719
5e88a8f4
IZ
27202014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
2721
2722 PR middle-end/57541
2723 * c-array-notation.c (fix_builtin_array_notation_fn):
2724 Check for 0 arguments in builtin call. Check that bultin argument is
2725 correct.
2726 * c-parser.c (c_parser_array_notation): Check for incorrect initial
2727 index.
2728
9698b078
SH
27292014-06-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
2730
2731 * c-parser.c (c_parser_declaration_or_fndef): Discard all type
2732 qualifiers in __auto_type for atomic types.
2733 (c_parser_typeof_specifier): Discard all type qualifiers in
2734 __typeof__ for atomic types.
2735
6e07c515
MP
27362014-06-25 Marek Polacek <polacek@redhat.com>
2737
2738 PR c/61162
2739 * c-parser.c (c_parser_statement_after_labels): Pass the location of
2740 the return expression to c_finish_return.
2741
da6f124d
JJ
27422014-06-25 Jakub Jelinek <jakub@redhat.com>
2743
2744 * c-typeck.c (c_finish_omp_clauses): Make sure
2745 OMP_CLAUSE_LINEAR_STEP has correct type.
2746
c203e8a7
TS
27472014-06-24 Trevor Saunders <tsaunders@mozilla.com>
2748
2749 * c-decl.c: Adjust.
2750
56ad0e38
JJ
27512014-06-24 Jakub Jelinek <jakub@redhat.com>
2752
2753 * c-parser.c (c_parser_omp_for_loop): For
2754 #pragma omp parallel for simd move lastprivate clause from parallel
2755 to for rather than simd.
2756
47c2554f
MP
27572014-06-23 Marek Polacek <polacek@redhat.com>
2758
2759 * c-typeck.c (parser_build_binary_op): Don't call
2760 warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
2761
56363ffd
JH
27622014-06-15 Jan Hubicka <hubicka@ucw.cz>
2763
2764 * c-parser.c (c_parser_omp_threadprivate): Likewise.
2765 * c-decl.c (merge_decls): Likewise.
2766
d7ff7ae5
MP
27672014-06-09 Marek Polacek <polacek@redhat.com>
2768
2769 PR c/36446
2770 * c-typeck.c (error_init): Call inform instead of error_at.
2771 (pedwarn_init): Call inform instead of pedwarn.
2772 (warning_init): Call inform instead of warning_at.
2773
24d047a3
JH
27742014-06-07 Jan Hubicka <hubicka@ucw.cz>
2775
2776 * c-decl.c (merge_decls): Use set_decl_section_name.
2777 (duplicate_decls): Remove node if it exists.
2778
9bac5cbb
G
27792014-06-05 S. Gilles <sgilles@terpmail.umd.edu>
2780
2781 PR c/53119
2782 * c-typeck.c (push_init_level, process_init_element,
2783 pop_init_level): Correct check for zero initialization, move
2784 missing brace warning to respect zero initialization.
2785
8ffcdea8
MP
27862014-06-05 Marek Polacek <polacek@redhat.com>
2787
2788 PR c/56724
2789 * c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.
2790
742938c9
MP
27912014-06-05 Marek Polacek <polacek@redhat.com>
2792
2793 PR c/49706
2794 * c-typeck.c (parser_build_binary_op): Warn when logical not is used
2795 on the left hand side operand of a comparison.
2796
6447c55d
MP
27972014-06-05 Marek Polacek <polacek@redhat.com>
2798
2799 PR c/48062
2800 * c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
2801 Print note only if the warning was printed.
2802
9dc7743c
IZ
28032014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
2804
2805 PR c/58942
2806 * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
2807 with a pointer.
2808
fedfecef
MP
28092014-06-03 Marek Polacek <polacek@redhat.com>
2810
2811 PR c/60439
2812 * c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
2813 c_start_case.
2814 * c-tree.h (c_start_case): Update.
2815 * c-typeck.c (c_start_case): Add new boolean parameter. Warn if
2816 switch condition has boolean value.
2817
9b2b7279
AM
28182014-06-02 Andrew MacLeod <amacleod@redhat.com>
2819
2820 * c-decl.c: Include builtins.h.
2821 * c-parser.c: Likewise.
2822
5c1bc275
MP
28232014-05-27 Marek Polacek <polacek@redhat.com>
2824
2825 PR c/56724
2826 * c-typeck.c (convert_arguments): Get location of a parameter. Change
2827 error and warning calls to error_at and warning_at. Pass location of
2828 a parameter to it. Call warning_at with OPT_Wtraditional_conversion.
2829 (convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
2830 WARN_FOR_QUALIFIERS. Pass expr_loc to those.
2831
97563bc8
IZ
28322014-05-26 Igor Zamyatin <igor.zamyatin@intel.com>
2833
2834 PR c/61191
2835 * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
2836 function parameters.
2837
aede2c10
JH
28382014-05-23 Jan Hubicka <hubicka@ucw.cz>
2839
2840 * c-decl.c (merge_decls): Preserve symtab node pointers.
2841 (duplicate_decls): Free new decl.
2842
edbba2ce
TS
28432014-05-23 Thomas Schwinge <thomas@codesourcery.com>
2844
f3316c6d
TS
2845 * c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
2846 initialization.
2847
edbba2ce
TS
2848 * c-parser.c (c_parser_omp_target): Return bool values.
2849
68c81f24
TS
28502014-05-22 Thomas Schwinge <thomas@codesourcery.com>
2851
2852 * c-parser.c (c_parser_omp_clause_thread_limit): Rename
2853 num_teams_loc variable to num_thread_limit_loc.
2854
632f2871
RS
28552014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2856
2857 * c-array-notation.c (expand_array_notations): Use void_node
2858 instead of void_zero_node.
2859
766090c2
TS
28602014-05-17 Trevor Saunders <tsaunders@mozilla.com>
2861
2862 * c-decl.c (finish_struct): Adjust.
2863 (finish_enum): Likewise.
2864 (bind): Adjust.
2865 (record_inline_static): Likewise.
2866 (push_scope): Likewise.
2867 (make_label): Likewise.
2868 (lookup_label_for_goto): Likewise.
2869 (finish_struct): Likewise.
2870 (finish_enum): Likewise.
2871 (store_parm_decls): Likewise.
2872 (c_push_function_context): Likewise.
2873 * c-lang.h: Remove usage of variable_size gty attribute.
2874 * c-parser.c (c_parse_init): Adjust.
2875 (c_parse_file): Likewise.
2876
2b107f6b
MP
28772014-05-13 Marek Polacek <polacek@redhat.com>
2878
2879 PR c/61162
2880 * c-typeck.c (convert_for_assignment): Pass location to
2881 WARN_FOR_ASSIGNMENT instead of input_location.
2882
d033409e
MP
28832014-05-10 Marek Polacek <polacek@redhat.com>
2884
2885 * c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
2886 maybe_warn_string_init.
2887 (c_parser_postfix_expression_after_paren_type): Pass type_loc to
2888 maybe_warn_string_init.
2889 * c-tree.h (maybe_warn_string_init): Update declaration.
2890 * c-typeck.c (maybe_warn_string_init): Add location parameter.
2891 Call pedwarn_init with loc instead of with input_location.
2892 (digest_init): Pass init_loc to maybe_warn_string_init.
2893 (pop_init_level): Call pedwarn_init with loc instead of with
2894 input_location.
2895 (set_init_index): Likewise.
2896 (process_init_element): Likewise.
2897
ea58ef42
MP
28982014-05-09 Marek Polacek <polacek@redhat.com>
2899
2900 PR c/61096
2901 * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
2902 (c_parser_initelt): Pass location to set_init_label. Pass array index
2903 location to set_init_index.
2904 * c-tree.h (push_init_level): Update declaration.
2905 (pop_init_level): Likewise.
2906 (set_init_index): Likewise.
2907 (set_init_label): Likewise.
2908 * c-typeck.c (error_init): Add location parameter. Call error_at
2909 instead of error.
2910 (digest_init): Pass init_loc to error_init.
2911 (really_start_incremental_init):
2912 (push_init_level): Add location parameter. Pass loc to pop_init_level
2913 and error_init.
2914 (pop_init_level): Likewise.
2915 (set_designator): Add location parameter. Pass loc to pop_init_level,
2916 push_init_level, and error_init.
2917 (set_init_index): Add location parameter. Pass loc to error_init and
2918 set_designator.
2919 (set_init_label): Likewise.
2920 (output_init_element): Pass loc to error_init.
2921 (process_init_element): Pass loc to error_init, pop_init_level,
2922 pedwarn_init, and push_init_level.
2923
661a0813
MP
29242014-05-09 Marek Polacek <polacek@redhat.com>
2925
2926 PR c/50459
2927 * c-parser.c (c_parser_attributes): Parse the arguments as an
2928 expression-list if the attribute takes identifier.
2929
2793eeab
MP
29302014-05-08 Marek Polacek <polacek@redhat.com>
2931
2932 PR c/61053
2933 * c-decl.c (grokdeclarator): Use min_align_of_type instead of
2934 TYPE_ALIGN_UNIT.
2935
f827930a
MP
29362014-05-08 Marek Polacek <polacek@redhat.com>
2937
2938 PR c/61077
2939 * c-decl.c (start_function): Warn for _Atomic-qualified return type
2940 of main.
2941
1d60af08
KZ
29422014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
2943 Mike Stump <mikestump@comcast.net>
2944 Richard Sandiford <rdsandiford@googlemail.com>
2945
2946 * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
2947 (finish_enum): Use wide-int interfaces.
2948 * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
2949 * c-typeck.c (build_c_cast): Likewise.
2950 (set_nonincremental_init_from_string): Likewise.
2951 (c_tree_equal): Likewise.
2952
a0e24419
MP
29532014-05-02 Marek Polacek <polacek@redhat.com>
2954
2955 PR c/25801
2956 * c-typeck.c (c_size_in_bytes): Update comment. Don't call error.
2957 Return size_one_node when the type is not complete.
2958 (pointer_diff): Remove comment.
2959 (build_unary_op): Improve error messages.
2960
19fc9faa
MP
29612014-05-02 Marek Polacek <polacek@redhat.com>
2962
2963 * c-typeck.c (c_finish_return): Separate warning_at calls.
2964
63bc4e87
MP
29652014-05-02 Marek Polacek <polacek@redhat.com>
2966
2967 * c-tree.h (error_init): Remove declaration.
2968 (pedwarn_init): Likewise.
2969 * c-typeck.c (error_init): Make static and move above.
2970 (pedwarn_init): Likewise.
2971 (warning_init): Move above.
2972 (maybe_warn_string_init): Likewise.
2973
4bd2511b
JL
29742014-05-01 Jeff Law <law@redhat.com>
2975
2976 Revert:
2977
2978 2014-04-24 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
2979 * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
2980 avoid goto.
2981
6a358dcb
MP
29822014-05-02 Marek Polacek <polacek@redhat.com>
2983
2984 PR c/60784
2985 * c-typeck.c (push_init_level): Set constructor_designated to
2986 p->designated for structures.
2987
ae5ebda4
MP
29882014-05-01 Marek Polacek <polacek@redhat.com>
2989
2990 PR c/60915
2991 * c-parser.c (c_parser_declaration_or_fndef): Give better error if
2992 function-definition has an attribute after the declarator.
2993
96b40f8d
MP
29942014-05-01 Marek Polacek <polacek@redhat.com>
2995
2996 PR c/60257
2997 * c-typeck.c (warning_init): Add location_t parameter. Call
2998 warning_at instead of warning.
2999 (push_init_level): Pass input_location to warning_init.
3000 (add_pending_init): Add location_t parameter. Pass loc to
3001 warning_init.
3002 (set_nonincremental_init): Pass input_location to add_pending_init.
3003 (set_nonincremental_init_from_string): Likewise.
3004 (output_init_element): Pass loc to warning_init and to
3005 add_pending_init.
3006
32e00768
MP
30072014-05-01 Marek Polacek <polacek@redhat.com>
3008
3009 PR c/43395
3010 * c-typeck.c (c_finish_return): Distinguish between label and variable
3011 when warning about returning local address.
3012
c9379ce2
MP
30132014-05-01 Marek Polacek <polacek@redhat.com>
3014
3015 PR c/29467
3016 * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
3017 in C89 mode.
3018
d00887e8
MP
30192014-05-01 Marek Polacek <polacek@redhat.com>
3020
3021 PR c/43245
3022 * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
3023 instead of 0 to WARN_FOR_QUALIFIERS.
3024
5436fa2e
MP
30252014-05-01 Marek Polacek <polacek@redhat.com>
3026
3027 PR c/56989
3028 * c-typeck.c (default_conversion): Use better location for
3029 error call.
3030
f8ed5150
MP
30312014-04-30 Marek Polacek <polacek@redhat.com>
3032
3033 * c-typeck.c (build_binary_op): Call ubsan_instrument_division
3034 also when SANITIZE_FLOAT_DIVIDE is on.
3035
8337d1db
MP
30362014-04-30 Marek Polacek <polacek@redhat.com>
3037
3038 PR c/60139
3039 * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
3040 and pedwarn_init. Use loc insted of input_location.
3041
c4bdc42f
MP
30422014-04-30 Marek Polacek <polacek@redhat.com>
3043
3044 PR c/60351
3045 * c-typeck.c (build_binary_op): Use location when warning about
3046 shift count.
3047
45484dcf
MP
30482014-04-25 Marek Polacek <polacek@redhat.com>
3049
3050 PR c/18079
3051 * c-decl.c (diagnose_mismatched_decls): Warn for mismatched
3052 always_inline/noinline and hot/cold attributes.
3053
34cf811f
MP
30542014-04-25 Marek Polacek <polacek@redhat.com>
3055
3056 PR c/60114
3057 * c-parser.c (c_parser_initelt): Pass input_location to
3058 process_init_element.
3059 (c_parser_initval): Pass loc to process_init_element.
3060 * c-tree.h (process_init_element): Adjust declaration.
3061 * c-typeck.c (push_init_level): Pass input_location to
3062 process_init_element.
3063 (pop_init_level): Likewise.
3064 (set_designator): Likewise.
3065 (output_init_element): Add location_t parameter. Pass loc to
3066 digest_init.
3067 (output_pending_init_elements): Pass input_location to
3068 output_init_element.
3069 (process_init_element): Add location_t parameter. Pass loc to
3070 output_init_element.
3071
42056eac
JJ
30722014-04-24 Jakub Jelinek <jakub@redhat.com>
3073
3074 * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
3075 atomic-clause, allow comma in between atomic-clause and
3076 seq_cst.
3077
e162a134
JJ
30782014-04-22 Jakub Jelinek <jakub@redhat.com>
3079
3080 PR c/59073
3081 * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
3082 fails, don't set OM_PARALLEL_COMBINED and return NULL.
3083
2f6babac
IZ
30842014-04-12 Igor Zamyatin <igor.zamyatin@intel.com>
3085
3086 PR middle-end/60469
3087 * c-array-notation.c (fix_builtin_array_notation_fn): Use
3088 create_tmp_var instead build_decl for creating temps.
3089 (build_array_notation_expr): Likewise.
3090 (fix_conditional_array_notations_1): Likewise.
3091 (fix_array_notation_expr): Likewise.
3092 (fix_array_notation_call_expr): Likewise.
3093
8edbfaa6
JJ
30942014-03-28 Jakub Jelinek <jakub@redhat.com>
3095
3096 PR c++/60689
3097 * c-tree.h (c_build_function_call_vec): New prototype.
3098 * c-typeck.c (build_function_call_vec): Don't call
3099 resolve_overloaded_builtin here.
3100 (c_build_function_call_vec): New wrapper function around
3101 build_function_call_vec. Call resolve_overloaded_builtin here.
3102 (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
3103 Call c_build_function_call_vec instead of build_function_call_vec.
3104 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
3105 * c-decl.c (finish_decl): Likewise.
3106
7485aeea
MLI
31072014-03-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
3108
3109 PR c/55383
3110 * c-typeck.c: Use correct format string in cast-qual warning
3111
b17a8b07
TS
31122014-03-07 Thomas Schwinge <thomas@codesourcery.com>
3113
3114 * c-decl.c (c_decl_attributes): Use
3115 lang_hooks.types.omp_mappable_type.
3116 * c-typeck.c (c_finish_omp_clauses): Likewise.
3117
3af9c5e9
MP
31182014-03-06 Marek Polacek <polacek@redhat.com>
3119
3120 PR c/60197
3121 * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
3122 of checking tree code.
3123
1c9f5f33
PK
31242014-02-19 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
3125
3126 * c-parser.c (c_parser_declspecs): Replace call to error by error_at.
3127 (c_parser_parameter_declaration): Likewise.
3128
cc28fc7f
MP
31292014-02-19 Marek Polacek <polacek@redhat.com>
3130
3131 PR c/60195
3132 * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
3133 Call mark_exp_read on exp.value.
3134 (build_atomic_assign): Set TREE_NO_WARNING on val and old. Set
3135 TREE_ADDRESSABLE on old instead of val.
3136 (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
3137
b581c05c
PK
31382014-02-07 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
3139
3140 * c-parser.c (c_parser_get_builtin_args): Replace calls to
3141 C_EXPR_APPEND by vec_safe_push.
3142 * c-tree.h (C_EXPR_APPEND): Remove.
3143
81e5eca8
MP
31442014-01-31 Marek Polacek <polacek@redhat.com>
3145
3146 PR c/59963
3147 * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
3148 build_function_call_vec.
3149 (build_function_call): Likewise.
3150 (build_atomic_assign): Likewise.
3151 (build_function_call_vec): Add arg_loc parameter. Use it.
3152 (convert_arguments): Likewise.
3153 (convert_for_assignment): Rename rhs_loc to expr_loc.
3154 * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
3155 (c_parser_objc_keywordexpr): Likewise.
3156 (c_parser_postfix_expression_after_primary): Call
3157 build_function_call_vec with expr_loc rather than op_loc.
3158 Call c_parser_expr_list to fill arg_loc. Pass arg_loc to
3159 build_function_call_vec.
3160 (c_parser_expr_list): Add locations parameter. Fill it with locations
3161 of function arguments.
3162 * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
3163
68fca595
MP
31642014-01-30 Marek Polacek <polacek@redhat.com>
3165
3166 PR c/59940
3167 * c-typeck.c (build_function_call_vec): Use loc parameter.
3168 (convert_arguments): Add location parameter. Use it.
3169 (ep_convert_and_check): Likewise.
3170 (build_atomic_assign): Adjust convert_for_assignment call.
3171 (build_modify_expr): Likewise.
3172 (digest_init): Likewise.
3173 (c_finish_return): Likewise.
3174 (build_conditional_expr): Adjust ep_convert_and_check calls.
3175 (convert_for_assignment): Add rhs_loc parameter. Use it.
3176 (build_binary_op): Adjust convert_and_check and ep_convert_and_check
3177 calls.
3178
fa337f3a
RB
31792014-01-30 Richard Biener <rguenther@suse.de>
3180
3181 PR c/59905
3182 * c-typeck.c (build_function_call_vec): Do not replace calls
3183 to a function via an incompatible type with a runtime abort.
3184
b72271b9
BI
31852014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
3186
3187 * c-parser.c (c_parser_declaration_or_fndef): Replaced
3188 flag_enable_cilkplus with flag_cilkplus.
3189 (c_parser_direct_declarator_inner): Likewise.
3190 (c_parser_attribute_any_word): Likewise.
3191 (c_parser_attributes): Likewise.
3192 (c_parser_compound_statement): Likewise.
3193 (c_parser_statement_after_labels): Likewise.
3194 (c_parser_if_statement): Likewise.
3195 (c_parser_switch_statement): Likewise.
3196 (c_parser_do_statement): Likewise.
3197 (c_parser_for_statement): Likewise.
3198 (c_parser_unary_expression): Likewise.
3199 (c_parser_postfix_expression): Likewise.
3200 (c_parser_postfix_expression_after_primary): Likewise.
3201 (c_parser_postfix_expression_after_primary): Likewise.
3202 (c_parser_omp_clause_name): Likewise.
3203 (c_finish_omp_declare_simd): Likewise.
3204 (c_parser_cilk_verify_simd): Likewise.
3205 * c-typeck.c (build_array_ref): Likewise.
3206 (build_function_call_vec): Likewise.
3207 (convert_arguments): Likewise.
3208 (build_compound_expr): Likewise.
3209 (c_finish_return): Likewise.
3210 (c_finish_if_stmt): Likewise.
3211 (c_finish_loop): Likewise.
3212 (build_binary_op): Likewise.
3213
393e8e8b
MP
32142014-01-23 Marek Polacek <polacek@redhat.com>
3215
3216 PR c/59846
3217 * c-typeck.c (parser_build_binary_op): Use location instead of
3218 input_location.
3219 (build_binary_op): Pass location to shorten_compare.
3220
f04dda30
MP
32212014-01-23 Marek Polacek <polacek@redhat.com>
3222
3223 PR c/58346
3224 * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
3225 an empty aggregate.
3226
789eadcd
MP
32272014-01-23 Marek Polacek <polacek@redhat.com>
3228
3229 PR c/59871
3230 * c-typeck.c (build_compound_expr): Warn even for right-hand operand
3231 of a comma expression.
3232 (emit_side_effect_warnings): Likewise.
3233
40f14e9f
BI
32342014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
3235
3236 PR c/59825
3237 * c-array-notation.c (expand_array_notation_exprs): Rewrote this
3238 function to use walk_tree and moved a lot of its functionality to
3239 expand_array_notations.
3240 (expand_array_notations): New function.
3241
74558dd9
BI
32422014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
3243
3244 * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
3245 attribute an attribute without value.
3246
652fea39
JJ
32472014-01-23 Jakub Jelinek <jakub@redhat.com>
3248
3249 PR middle-end/58809
3250 * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
3251 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
3252
f34f1c87
MP
32532014-01-22 Marek Polacek <polacek@redhat.com>
3254
3255 PR c/59891
3256 * c-typeck.c (build_conditional_expr): Call c_fully_fold instead
3257 of remove_c_maybe_const_expr on op1 and op2.
3258
241f845a
JJ
32592014-01-15 Jakub Jelinek <jakub@redhat.com>
3260
3261 PR c/58943
3262 * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
3263 effects, preevaluate rhs using SAVE_EXPR first.
3264
9a74f20c
BI
32652014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
3266
3267 PR c++/59631
3268 * c-parser.c (c_parser_postfix_expression): Replaced consecutive if
3269 statements with if-elseif statements.
3270
96066ce1
MP
32712014-01-06 Marek Polacek <polacek@redhat.com>
3272
3273 PR c/57773
3274 * c-decl.c (check_bitfield_type_and_width): Warn for implementation
3275 defined bit-field types only in ISO C.
3276
23a5b65a
RS
32772014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
3278
3279 Update copyright years
3280
f9030485
RS
32812014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
3282
3283 * c-array-notation.c: Use the standard form for the copyright notice.
3284
41958c28
BI
32852013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com>
3286
3287 * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
3288 (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
3289 field in parser is not empty. If not-empty, call the function
3290 c_parser_finish_omp_declare_simd.
3291 (c_parser_cilk_clause_vectorlength): Modified function to be shared
3292 between SIMD-enabled functions and #pragma simd. Added new parameter.
3293 (c_parser_cilk_all_clauses): Modified the usage of the function
3294 c_parser_cilk_clause_vectorlength as mentioned above.
3295 (c_parser_cilk_simd_fn_vector_attrs): New function.
3296 (c_finish_cilk_simd_fn_tokens): Likewise.
3297 (is_cilkplus_vector_p): Likewise.
3298 (c_parser_omp_clause_name): Added checking for "vectorlength,"
3299 "nomask," and "mask" strings in clause name.
3300 (c_parser_omp_all_clauses): Added 3 new case statements:
3301 PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
3302 PRAGMA_CILK_CLAUSE_NOMASK.
3303 (c_parser_attributes): Added a cilk_simd_fn_tokens parameter. Added a
3304 check for vector attribute and if so call the function
3305 c_parser_cilk_simd_fn_vector_attrs. Also, when Cilk plus is enabled,
3306 called the function c_finish_cilk_simd_fn_tokens.
3307 (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
3308 parser field is non-empty. If so, parse them as you would parse
3309 the omp declare simd pragma.
3310 (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
3311 Added a check when step is a parameter and flag it as error.
3312 (CILK_SIMD_FN_CLAUSE_MASK): New #define.
3313 (c_parser_cilk_clause_name): Changed pragma_cilk_clause to
3314 pragma_omp_clause.
3315
cef0fd0e
TS
33162013-12-17 Thomas Schwinge <thomas@codesourcery.com>
3317
3318 * c-parser.c (c_parser_omp_parallel): Fix description.
3319
12893402
BI
33202013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com>
3321
3322 * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
3323 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
3324 (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
3325 * c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
3326
296674db
JM
33272013-12-04 Joseph Myers <joseph@codesourcery.com>
3328
3329 PR c/52023
3330 * c-parser.c (c_parser_alignas_specifier): Use
3331 c_sizeof_or_alignof_type instead of c_alignof.
3332 (c_parser_alignof_expression): Likewise, with min_alignof
3333 parameter depending on alignof spelling used.
3334
edd28054
MP
33352013-12-04 Marek Polacek <polacek@redhat.com>
3336
3337 PR c/54113
3338 * c-decl.c (start_function): Don't warn for missing prototype for
3339 inline functions.
3340
da0fc454
MP
33412013-12-03 Marek Polacek <polacek@redhat.com>
3342
3343 PR c/59351
3344 * c-decl.c (build_compound_literal): Allow compound literals with
3345 empty initial value.
3346
4c2ecab0
JM
33472013-12-02 Joseph Myers <joseph@codesourcery.com>
3348
3349 PR c/58235
3350 * c-typeck.c (build_modify_expr): Diagnose assignment to
3351 expression with array type.
3352
340baef7
JM
33532013-11-29 Joseph Myers <joseph@codesourcery.com>
3354
3355 PR c/42262
3356 * c-typeck.c (process_init_element): Do not treat a string as
3357 initializing a whole array when used with a designator for an
3358 individual element.
3359
6763b9f7
JM
33602013-11-29 Joseph Myers <joseph@codesourcery.com>
3361
3362 PR c/57574
3363 * c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
3364 an inline function following a static declaration.
3365
e7bd1de1
JJ
33662013-11-28 Jakub Jelinek <jakub@redhat.com>
3367
3368 PR c/59310
3369 * c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
3370 to p_name before calling c_parser_omp_teams instead of after.
3371 (c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
3372 argument. Remove unused p_name variable.
3373
0136f8f0
AH
33742013-11-27 Aldy Hernandez <aldyh@redhat.com>
3375 Jakub Jelinek <jakub@redhat.com>
3376
3377 * c-decl.c (c_builtin_function_ext_scope): Avoid binding if
3378 external_scope is NULL.
3379
241b71bb
TV
33802013-11-27 Tom de Vries <tom@codesourcery.com>
3381 Marc Glisse <marc.glisse@inria.fr>
3382
3383 PR c++/59032
3384 * c-typeck.c (build_unary_op): Allow vector increment and decrement.
3385
2fb9a547
AM
33862013-11-22 Andrew MacLeod <amacleod@redhat.com>
3387
3388 * c-typeck.c: Add required include files from gimple.h.
3389
8400e75e
DM
33902013-11-22 David Malcolm <dmalcolm@redhat.com>
3391
3392 * c-decl.c (define_label, shadow_tag_warned)
3393 (check_bitfield_type_and_width, grokdeclarator, grokparms,
3394 store_parm_decls_newstyle, store_parm_decls_oldstyle)
3395 (declspecs_add_type): Remove use of in_system_header macro.
3396 * c-parser.c (c_parser_unary_expression): Likewise.
3397 * c-typeck.c (store_init_value, process_init_element)
3398 (c_start_case): Likewise.
3399
3400 * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
3401 macro.
3402
3403 * c-parser.c (c_parser_set_source_position_from_token): Remove
3404 reference to in_system_header from comment.
3405
386b1f1f
RS
34062013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
3407
3408 * c-decl.c (grokdeclarator): Update comment to refer to
3409 tree_to_[su]hwi rather than tree_low_cst.
3410
ae7e9ddd
RS
34112013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
3412
3413 * c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
3414 tree_to_uhwi throughout.
3415
9439e9a1
RS
34162013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
3417
3418 * c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
3419 throughout.
3420
9541ffee
RS
34212013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
3422
3423 * c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
3424 throughout.
3425
c02065fc
AH
34262013-11-15 Aldy Hernandez <aldyh@redhat.com>
3427
3428 * c-parser.c (c_parser_cilk_simd): New.
3429 (c_parser_cilk_verify_simd): New.
3430 (c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
3431 (c_parser_omp_for_loop): Add case for NE_EXPR.
3432 Set c_break_label for CILK_SIMD.
3433 (c_parser_cilk_clause_vectorlength): New.
3434 (c_parser_cilk_clause_linear): New.
3435 (c_parser_cilk_clause_name): New.
3436 (c_parser_cilk_all_clauses): New.
3437 * c-typeck.c (build_unary_op): Pass location argument to
3438 readonly_error.
3439 (build_modify_expr): Same.
3440 (build_asm_expr): Same.
3441 (c_finish_bc_stmt): Error on break/continue in loops.
3442
18f429e2
AM
34432013-11-14 Andrew MacLeod <amacleod@redhat.com>
3444
3445 * c-typeck.c: Include only gimplify.h and gimple.h as needed.
3446
d8a2d370
DN
34472013-11-14 Diego Novillo <dnovillo@google.com>
3448
3449 * c-decl.c: Include print-tree.h.
3450 Include stor-layout.h.
3451 Include varasm.h.
3452 Include attribs.h.
3453 Include stringpool.h.
3454 * c-lang.c: Include fold-const.h.
3455 * c-parser.c: Include stringpool.h.
3456 Include attribs.h.
3457 Include stor-layout.h.
3458 Include varasm.h.
3459 Include trans-mem.h.
3460 * c-typeck.c: Include stor-layout.h.
3461 Include trans-mem.h.
3462 Include varasm.h.
3463 Include stmt.h.
3464
38b7bc7f
JM
34652013-11-13 Joseph Myers <joseph@codesourcery.com>
3466
3467 * c-tree.h (c_typespec_keyword): Add cts_auto_type.
3468 * c-decl.c (declspecs_add_type, finish_declspecs): Handle
3469 __auto_type.
3470 * c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
3471 (c_parser_attribute_any_word, c_parser_objc_selector): Handle
3472 RID_AUTO_TYPE.
3473 (c_parser_declspecs): Take argument AUTO_TYPE_OK.
3474 (c_parser_declaration_or_fndef, c_parser_struct_declaration)
3475 (c_parser_declarator, c_parser_direct_declarator_inner)
3476 (c_parser_parameter_declaration, c_parser_type_name): All callers
3477 changed.
3478 (c_parser_declaration_or_fndef): Handle declarations with type
3479 determined from the initializer.
3480
45b0be94
AM
34812013-11-12 Andrew MacLeod <amacleod@redhat.com>
3482
18f429e2 3483 * c-typeck.c: Include gimplify.h.
45b0be94 3484
582d9b50
JM
34852013-11-12 Joseph Myers <joseph@codesourcery.com>
3486
3487 * c-tree.h (struct c_declspecs): Add thread_gnu_p field.
3488 * c-parser.c (c_parser_declspecs): Mention _Thread_local in
3489 comment.
3490 * c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
3491 or _Thread_local as appropriate in diagnostics.
3492 (build_null_declspecs): Initialize ret->thread_gnu_p.
3493 (declspecs_add_scspec): Handle either __thread or _Thread_local
3494 for RID_THREAD. Diagnose _Thread_local for pre-C11 standards if
3495 pedantic. Do not disallow _Thread_local extern and _Thread_local
3496 static.
3497
267bac10
JM
34982013-11-07 Joseph Myers <joseph@codesourcery.com>
3499 Andrew MacLeod <amacleod@redhat.com>
3500
3501 * c-aux-info.c (gen_type): Handle atomic qualifier.
3502 * c-decl.c (validate_proto_after_old_defn): Do not remove atomic
3503 qualifiers when compating types.
3504 (shadow_tag_warned): Handle atomic_p in declspecs.
3505 (quals_from_declspecs): Likewise.
3506 (start_decl): Use c_type_promotes_to when promoting argument
3507 types.
3508 (grokdeclarator): Handle _Atomic.
3509 (get_parm_info): Diagnose any qualifier on "void" as only
3510 parameter.
3511 (store_parm_decls_oldstyle): Do not remove atomic qualifiers when
3512 comparing types. Use c_type_promotes_to when promoting argument
3513 types.
3514 (finish_function): Use c_type_promotes_to when promoting argument
3515 types.
3516 (build_null_declspecs): Handle atomic_p in declspecs.
3517 (declspecs_add_qual): Handle RID_ATOMIC.
3518 * c-parser.c (c_token_starts_typename, c_token_is_qualifier)
3519 (c_token_starts_declspecs): Handle RID_ATOMIC.
3520 (c_parser_declspecs): Handle atomic type specifiers and
3521 qualifiers.
3522 (c_parser_typeof_specifier): Remove const and _Atomic qualifiers
3523 from types of expressions with atomic type.
3524 (c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
3525 (c_parser_attribute_any_word): Handle RID_ATOMIC.
3526 (c_parser_initializer, c_parser_initelt, c_parser_initval)
3527 (c_parser_statement_after_labels, c_parser_switch_statement)
3528 (c_parser_for_statement, c_parser_expr_no_commas)
3529 (c_parser_conditional_expression, c_parser_binary_expression)
3530 (c_parser_cast_expression, c_parser_unary_expression)
3531 (c_parser_postfix_expression)
3532 (c_parser_postfix_expression_after_primary, c_parser_expression):
3533 Use convert_lvalue_to_rvalue.
3534 (c_parser_expression_conv, c_parser_expr_list): Document
3535 conversion of lvalues to rvalues. Use convert_lvalue_to_rvalue.
3536 (c_parser_objc_synchronized_statement): Use
3537 convert_lvalue_to_rvalue.
3538 (c_parser_objc_selector): Handle RID_ATOMIC.
3539 (c_parser_objc_receiver, c_parser_array_notation): Use
3540 convert_lvalue_to_rvalue.
3541 * c-tree.h (ctsk_typeof): Adjust comment to mention use for
3542 _Atomic (type-name).
3543 (struct c_declspecs): Add atomic_p field.
3544 (convert_lvalue_to_rvalue): Declare.
3545 * c-typeck.c (c_type_promotes_to): Promote atomic types to
3546 corresponding atomic types.
3547 (qualify_type): Don't add _Atomic qualifiers from second argument.
3548 (comp_target_types): Do not allow _Atomic mismatches.
3549 (type_lists_compatible_p): Do not remove atomic qualifiers when
3550 comparing types.
3551 (really_atomic_lvalue, convert_lvalue_to_rvalue)
3552 (build_atomic_assign): New functions.
3553 (build_unary_op): Use build_atomic_assign for atomic increment and
3554 decrement.
3555 (build_conditional_expr): Do not treat _Atomic void as a qualified
3556 version of void.
3557 (build_modify_expr): Use build_atomic_assign for atomic LHS.
3558 (find_anonymous_field_with_type, convert_to_anonymous_field)
3559 (convert_for_assignment): Do not remove atomic qualifiers when
3560 comparing types.
3561 (digest_init): Do not accept initialization of arrays of atomic
3562 elements by string constants.
3563 (build_asm_expr): Use convert_lvalue_to_rvalue.
3564 (build_binary_op): Do not treat _Atomic void as a qualified
3565 version of void.
3566
0c249d4b
DD
35672013-11-06 DJ Delorie <dj@redhat.com>
3568
3569 * c-decl.c (locate_old_decl): If a previous conflicting decl is
3570 both explicit and builtin, print the location of the explicit one.
3571
6d7f7e0a
TB
35722013-11-05 Tobias Burnus <burnus@net-b.de>
3573
3574 * c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
3575 c_parser_omp_distribute, c_parser_omp_teams,
3576 c_parser_omp_target, c_parser_omp_declare): Handle
3577 -fopenmp-simd.
3578
b906f4ca
MP
35792013-11-03 Marek Polacek <polacek@redhat.com>
3580
3581 * c-decl.c (grokdeclarator): Add VLA instrumentation.
3582
ee1d5a02
JJ
35832013-11-01 Jakub Jelinek <jakub@redhat.com>
3584
3585 * c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
3586 check_dup_generic at the end, unless remove is true.
3587 (c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
3588 remove = true;.
3589 (c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
3590
5a9785fb
JJ
35912013-10-31 Jakub Jelinek <jakub@redhat.com>
3592
3593 * c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
3594 with decl that is not pointer nor array.
3595
939b37da
BI
35962013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
3597
3598 * c-decl.c (finish_function): Added a call for insert_cilk_frame when
3599 a spawning function is found.
3600 * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
3601 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
3602 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
3603 * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
3604 case.
3605 (c_parser_postfix_expression): Added RID_CILK_SPAWN case.
3606 * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
3607 expr.
3608 (c_finish_return): Added a check to reject _Cilk_spawn in return
3609 expression.
3610 (build_cilk_spawn): New function.
3611 (build_cilk_sync): Likewise.
3612 * Makefile.in (c-decl.o): Added cilk.h in dependency list.
3613
d4af74d4
TB
36142013-10-27 Tobias Burnus <burnus@net-b.de>
3615
3616 PR other/33426
3617 * c-parser.c (c_parser_while_statement, c_parser_while_statement,
3618 c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
3619 (c_parser_statement_after_labels): Update calls.
3620
d73749df 36212013-10-24 Tobias Burnus <burnus@net-b.de>
8170608b
TB
3622
3623 PR other/33426
3624 * c-parser.c (c_parser_pragma, c_parser_for_statement):
3625 Handle PRAGMA_IVDEP.
3626 (c_parser_statement_after_labels): Update call.
3627
f28aa681
MP
36282013-10-24 Marek Polacek <polacek@redhat.com>
3629
3630 * c-parser.c (c_parser_struct_declaration): Add a comment.
3631 (c_parser_declarator): Don't allow _Alignas here.
3632
0645c1a2
AM
36332013-10-17 Andrew MacLeod <amacleod@redhat.com>
3634
3635 * c-parser.c: Include omp-low.h.
3636 * c-typeck.c: Likewise.
3637
568a31f2
MP
36382013-10-17 Marek Polacek <polacek@redhat.com>
3639
3640 PR c/58267
3641 * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
3642 Document syntax of the array-declarator.
3643 (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
3644 are not permitted.
3645 (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
3646 (c_parser_struct_declaration): Likewise.
3647 (c_parser_declarator): Likewise.
3648 (c_parser_direct_declarator_inner): Likewise.
3649 (c_parser_parameter_declaration): Likewise.
3650 (c_parser_type_name): Likewise.
3651
acf0174b
JJ
36522013-10-11 Jakub Jelinek <jakub@redhat.com>
3653
3654 * c-lang.h (current_omp_declare_target_attribute): New extern
3655 decl.
3656 * c-parser.c: Include c-lang.h.
3657 (struct c_parser): Change tokens to c_token *.
3658 Add tokens_buf field. Change tokens_avail type to unsigned int.
3659 (c_parser_consume_token): If parser->tokens isn't
3660 &parser->tokens_buf[0], increment parser->tokens.
3661 (c_parser_consume_pragma): Likewise.
3662 (enum pragma_context): Add pragma_struct and pragma_param.
3663 (c_parser_external_declaration): Adjust
3664 c_parser_declaration_or_fndef caller.
3665 (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
3666 argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
3667 Adjust recursive call.
3668 (c_parser_struct_or_union_specifier): Use pragma_struct instead
3669 of pragma_external.
3670 (c_parser_parameter_declaration): Use pragma_param instead of
3671 pragma_external.
3672 (c_parser_compound_statement_nostart, c_parser_label,
3673 c_parser_for_statement): Adjust
3674 c_parser_declaration_or_fndef callers.
3675 (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
3676 it through to c_parser_conditional_expression.
3677 (c_parser_conditional_expression): Add omp_atomic_lhs argument,
3678 pass it through to c_parser_binary_expression. Adjust recursive
3679 call.
3680 (c_parser_binary_expression): Remove prec argument, add
3681 omp_atomic_lhs argument instead. Always start from PREC_NONE, if
3682 omp_atomic_lhs is non-NULL and one of the arguments of toplevel
3683 binop matches it, use build2 instead of parser_build_binary_op.
3684 (c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
3685 PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
3686 PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
3687 Handle pragma_struct and pragma_param the same as pragma_external.
3688 (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
3689 (c_parser_omp_variable_list): Parse array sections for
3690 OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
3691 (c_parser_omp_clause_collapse): Fully fold collapse expression.
3692 (c_parser_omp_clause_reduction): Handle user defined reductions.
3693 (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
3694 c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
3695 c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
3696 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
3697 c_parser_omp_clause_depend, c_parser_omp_clause_map,
3698 c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
3699 c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
3700 c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
3701 (c_parser_omp_all_clauses): Add finish_p argument. Don't call
3702 c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
3703 (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
3704 present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms.
3705 (c_parser_omp_for_loop): Add CODE argument, pass it through
3706 to c_finish_omp_for. Change last argument to cclauses,
3707 and adjust uses to grab parallel clauses from the array of all
3708 the split clauses. Adjust c_parser_binary_expression,
3709 c_parser_declaration_or_fndef and c_finish_omp_for callers.
3710 (omp_split_clauses): New function.
3711 (c_parser_omp_simd): New function.
3712 (c_parser_omp_for): Add p_name, mask and cclauses arguments.
3713 Allow the function to be called also when parsing combined constructs,
3714 and call c_parser_omp_simd when parsing for simd.
3715 (c_parser_omp_sections_scope): If section-sequence doesn't start with
3716 #pragma omp section, require exactly one structured-block instead of
3717 sequence of statements.
3718 (c_parser_omp_sections): Add p_name, mask and cclauses arguments.
3719 Allow the function to be called also when parsing combined constructs.
3720 (c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
3721 Allow the function to be called also when parsing combined
3722 constructs.
3723 (c_parser_omp_taskgroup, c_parser_omp_cancel,
3724 c_parser_omp_cancellation_point, c_parser_omp_distribute,
3725 c_parser_omp_teams, c_parser_omp_target_data,
3726 c_parser_omp_target_update, c_parser_omp_target,
3727 c_parser_omp_declare_simd, c_finish_omp_declare_simd,
3728 c_parser_omp_declare_target, c_parser_omp_end_declare_target,
3729 c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
3730 (c_parser_omp_construct): Add p_name and mask vars. Handle
3731 PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
3732 PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel
3733 and c_parser_omp_sections callers.
3734 (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
3735 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
3736 OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
3737 (OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
3738 (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
3739 OMP_CLAUSE_DEPEND.
3740 (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
3741 OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
3742 OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
3743 OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
3744 OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
3745 * c-typeck.c: Include tree-inline.h.
3746 (c_finish_omp_cancel, c_finish_omp_cancellation_point,
3747 handle_omp_array_sections_1, handle_omp_array_sections,
3748 c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
3749 (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
3750 user defined reductions.
3751 (c_tree_equal): New function.
3752 * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
3753 c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
3754 c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
3755 c_check_omp_declare_reduction_r): New prototypes.
3756 * c-decl.c (current_omp_declare_target_attribute): New variable.
3757 (c_decl_attributes): New function.
3758 (start_decl, start_function): Use it instead of decl_attributes.
3759 (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
3760 c_omp_reduction_decl, c_omp_reduction_lookup,
3761 c_check_omp_declare_reduction_r): New functions.
3762
0a6c2227
TT
37632013-09-25 Tom Tromey <tromey@redhat.com>
3764
3765 * Make-lang.in (c/gccspec.o): Remove.
3766 (CFLAGS-c/gccspec.o): New variable.
3767 (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
3768 (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
3769 (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
3770
f3bc55f0
TT
37712013-09-25 Tom Tromey <tromey@redhat.com>
3772
3773 * Make-lang.in (c/gccspec.o): Don't use subshell.
3774
a24d975c
MP
37752013-09-18 Marek Polacek <polacek@redhat.com>
3776
3777 PR sanitize/58443
3778 * c-typeck.c (build_binary_op): Properly honor -fsanitize options.
3779 Remove unnecessary check.
3780
ce6923c5
MP
37812013-09-18 Marek Polacek <polacek@redhat.com>
3782
3783 PR sanitizer/58411
3784 * c-typeck.c (build_binary_op): Don't sanitize function if it has the
3785 no_sanitize_undefined attribute.
3786
a1e51df9
KT
37872013-09-13 Kai Tietz <ktietz@redhat.com>
3788
3789 PR target/57848
3790 * c-decl.c (c_builtin_function_ext_scope): Remove
3791 wrong assumption that it is never called on prexisting
3792 symbol.
3793
0af94e6f
JR
37942013-09-08 Joern Rennecke <joern.rennecke@embecosm.com>
3795
3796 * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
3797
20059c8b
GDR
37982013-09-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
3799
3800 * c-objc-common.c (c_tree_printer): Tidy.
3801
de5a5fa1
MP
38022013-08-30 Marek Polacek <polacek@redhat.com>
3803
3804 * c-typeck.c (build_binary_op): Add division by zero and shift
3805 instrumentation.
3806
2531a1d9 38072013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
0fdd4508 3808 Joseph Myers <joseph@codesourcery.com>
2531a1d9 3809
6e2bcc98 3810 PR c/35649
2531a1d9
JR
3811 * c-typeck.c (c_common_type): Prefer double_type_node over
3812 other REAL_TYPE types with the same precision.
3813 (convert_arguments): Likewise.
3814
025311c4
GDR
38152013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3816
3817 * c-objc-common.c (c_tree_printer): Document the nature of the cast.
3818 (c_initialize_diagnostics): Call a destructor for the early printer.
3819
da6ca2b5
GDR
38202013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3821
3822 * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
3823 printer initialization.
3824
318cda85 38252013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com>
da6ca2b5 3826
318cda85
BI
3827 PR c/57490
3828 * c-array-notation.c (fix_conditional_array_notations_1): Added a
3829 check for truth values.
3830 (expand_array_notation_exprs): Added truth values case. Removed an
3831 unwanted else. Added for-loop to walk through subtrees in default
3832 case.
3833
b066401f
GDR
38342013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
3835
3836 * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
3837
fb48aadc
JM
38382013-07-23 Joseph Myers <joseph@codesourcery.com>
3839
3840 * c-parser.c (struct c_generic_association): Fix typo.
3841
433cc7b0
TT
38422013-07-23 Tom Tromey <tromey@redhat.com>
3843 Joseph Myers <joseph@codesourcery.com>
3844
3845 * c-parser.c (struct c_generic_association): New.
3846 (c_generic_association_d): New typedef.
3847 (c_parser_generic_selection): New function.
3848 (c_parser_postfix_expression): Handle RID_GENERIC.
3849
26d40c3d
JM
38502013-07-13 Jason Merrill <jason@redhat.com>
3851
3852 PR c++/57793
3853 * c-decl.c (finish_struct): Check for too-large class.
3854
ecdbd01a 38552013-07-04 Joern Rennecke <joern.rennecke@embecosm.com>
40d3d530
JR
3856
3857 PR c/57821
3858 * c-typeck.c (set_init_index): When folding, check for index overflow.
3859
1141ed3f
BI
38602013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
3861
3862 * c-parser.c (c_parser_array_notation): Removed rejection of array
3863 notations in an array of function pointers.
3864
713b46fa
BI
38652013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com>
3866
3867 * c-array-notation.c (make_triplet_val_inv): New function.
3868 (create_cmp_incr): Likewise.
3869 (create_array_refs): Likewise.
3870 (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
3871 Also modularized common parts between functions and called the function.
3872 (build_array_notation_expr): Likewise.
3873 (fix_conditional_array_notations_1): Likewise.
3874 (fix_array_notation_expr): Likewise.
3875 (fix_array_notation_call_expr): Likewise.
3876
92f20202
MP
38772013-06-18 Marek Polacek <polacek@redhat.com>
3878
3879 PR c/57630
3880 * c-decl.c (check_for_loop_decls): Improve diagnostics messages.
3881
73a23b06
BI
38822013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com>
3883
3884 * c-array-notation.c (build_array_notation_expr): Reject array notation
3885 mismatch between LHS and RHS even inside a call_expr. Also, removed
3886 a couple while statements that were dead code.
3887
00b8517d
BI
38882013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
3889
3890 * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
3891 excessive precision expressions in function parameters. Also removed
3892 couple unwanted while statements.
3893
1509bdda
BI
38942013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
3895
3896 * c-array-notation.c (expand_array_notation_exprs): Added
3897 ARRAY_NOTATION_REF case.
3898
d60f1706
BI
38992013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
3900
3901 * c-array-notation.c (length_mismatch_in_expr_p): Moved this
3902 function to c-family/array-notation-common.c.
3903 (is_cilkplus_reduce_builtin): Likewise.
3904 (find_rank): Likewise.
3905 (extract_array_notation_exprs): Likewise.
3906 (replace_array_notations): Likewise.
3907 (find_inv_trees): Likewise.
3908 (replace_inv_trees): Likewise.
3909 (contains_array_notation_expr): Likewise.
3910 (find_correct_array_notation_type): Likewise.
3911 (replace_invariant_exprs): Initialized additional_tcodes to NULL.
3912 (struct inv_list): Moved this to c-family/array-notation-common.c.
3913 * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
3914
6d6efbb3
BI
39152013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com>
3916
3917 * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
3918 reduction functions outside the for-loop. Added a check if the fundecl
3919 is non-NULL. Finally, removed an unwanted if-statement, and made the
3920 body unconditional.
3921
25c22937
BI
39222013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
3923
3924 * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
3925 condition of the if-statement matches the rank of else-block and then-
3926 block when array notations are used.
3927 * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
3928 expression after the entire function body is parsed.
3929 (c_parser_expr_no_commas): Delayed creating array notation expressions
3930 to the end of function parsing.
3931 * c-array-notation.c (fix_conditional_array_notations_1): Expanded the
3932 whole if-statement instead of just the condition.
3933 (expand_array_notation_exprs): Added MODIFY_EXPR case.
3934
edd25645
BI
39352013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
3936
3937 PR c/57474
3938 * c-array-notation.c (build_array_notation_expr): Initialized rhs_length
3939 array to NULL_TREE if they are unused. Also added a check for the
3940 field to be NULL before its fields are used in future.
3941
065ce7f1
RO
39422013-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3943
3944 PR bootstrap/57450
3945 * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
3946 (build_array_notation_expr): Likewise.
3947
36536d79
BI
39482013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
3949
3950 * c-typeck.c (build_array_ref): Added a check to see if array's
3951 index is greater than one. If true, then emit an error.
3952 (build_function_call_vec): Exclude error reporting and checking
3953 for builtin array-notation functions.
3954 (convert_arguments): Likewise.
3955 (c_finish_return): Added a check for array notations as a return
3956 expression. If true, then emit an error.
3957 (c_finish_loop): Added a check for array notations in a loop
3958 condition. If true then emit an error.
3959 (lvalue_p): Added a ARRAY_NOTATION_REF case.
3960 (build_binary_op): Added a check for array notation expr inside
3961 op1 and op0. If present, we call another function to find correct
3962 type.
3963 * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
3964 * c-parser.c (c_parser_compound_statement): Check if array
3965 notation code is used in tree, if so, then transform them into
3966 appropriate C code.
3967 (c_parser_expr_no_commas): Check if array notation is used in LHS
3968 or RHS, if so, then build array notation expression instead of
3969 regular modify.
3970 (c_parser_postfix_expression_after_primary): Added a check for
3971 colon(s) after square braces, if so then handle it like an array
3972 notation. Also, break up array notations in unary op if found.
3973 (c_parser_direct_declarator_inner): Added a check for array
3974 notation.
3975 (c_parser_compound_statement): Added a check for array notation in
3976 a stmt. If one is present, then expand array notation expr.
3977 (c_parser_if_statement): Likewise.
3978 (c_parser_switch_statement): Added a check for array notations in
3979 a switch statement's condition. If true, then output an error.
3980 (c_parser_while_statement): Similarly, but for a while.
3981 (c_parser_do_statement): Similarly, but for a do-while.
3982 (c_parser_for_statement): Similarly, but for a for-loop.
3983 (c_parser_unary_expression): Check if array notation is used in a
3984 pre-increment or pre-decrement expression. If true, then expand
3985 them.
3986 (c_parser_array_notation): New function.
3987 * c-array-notation.c: New file.
3988 * c-tree.h (is_cilkplus_reduce_builtin): Protoize.
3989
cd192ccc
MS
39902013-05-23 Mike Stump <mikestump@comcast.net>
3991
3992 * c-typeck.c (convert_for_assignment): Handle references to memory
3993 spaces better.
3994
427b248d
JM
39952013-05-16 Jason Merrill <jason@redhat.com>
3996
3997 * Make-lang.in (cc1$(exeext)): Use link mutex.
3998
44d90fe1
PC
39992013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
4000
4001 * c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
4002 to simply use OPT_Wpointer_arith.
4003 (build_unary_op): Likewise.
4004
4e7d7b3d
JJ
40052013-04-03 Jakub Jelinek <jakub@redhat.com>
4006
4007 PR c/19449
4008 * c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
4009 argument. If set, or it temporarily for parsing of the first
4010 argument into force_folding_builtin_constant_p.
4011 (c_parser_postfix_expression): Adjust callers.
4012
839b422f
RB
40132013-03-21 Richard Biener <rguenther@suse.de>
4014
4015 * c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
4016 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
4017
2ee028f1
MP
40182013-02-12 Marek Polacek <polacek@redhat.com>
4019
4020 PR c/44938
4021 * c-parser.c (c_parser_postfix_expression_after_primary): Initialize
4022 origtypes to NULL.
4023
8824edff
JJ
40242013-01-24 Jakub Jelinek <jakub@redhat.com>
4025
4026 PR c/56078
4027 * c-typeck.c (set_nonincremental_init_from_string): If
4028 constructor_max_index is NULL, treat it as if tree_int_cst_lt
4029 returned false.
4030 (process_init_element): Likewise.
4031
eadd3d0d
JJ
40322012-12-20 Jakub Jelinek <jakub@redhat.com>
4033
4034 PR c++/55619
4035 * c-parser.c (c_parser_asm_operands): Remove CONVERT_P
4036 argument, don't call default_function_array_conversion
4037 nor c_fully_fold here.
4038 (c_parser_asm_statement): Adjust callers.
4039 * c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
4040 and outputs here, and call default_function_array_conversion
4041 on inputs that don't need to be addressable.
4042
f8a93a2e
JJ
40432012-12-18 Jakub Jelinek <jakub@redhat.com>
4044
4045 PR c/39464
4046 * c-typeck.c (convert_for_assignment): For -Wpointer-sign
4047 warning require that both c_common_unsigned_type as well as
4048 c_common_signed_type is the same for both mvl and mvr types.
4049
9771b263
DN
40502012-11-16 Diego Novillo <dnovillo@google.com>
4051
4052 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
4053
4054 * c-common.c: Use new vec API in vec.h.
4055 * c-common.h: Likewise.
4056 * c-gimplify.c: Likewise.
4057 * c-pragma.c: Likewise.
4058 * c-pretty-print.c: Likewise.
4059 * c-pretty-print.h: Likewise.
4060 * c-semantics.c: Likewise.
4061 * c-decl.c: Likewise.
4062 * c-parser.c: Likewise.
4063 * c-tree.h: Likewise.
4064 * c-typeck.c: Likewise.
4065
880661a4
JW
40662012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
4067
4068 PR c++/54930
4069 * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.
4070
077d1abe
MLI
40712012-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
4072
4073 PR c/53066
4074 * c-decl.c (warn_if_shadowing): Do not warn if a variable
4075 shadows a function, unless the variable is a function or a
4076 pointer-to-function.
4077
3a785c97
JJ
40782012-10-12 Jakub Jelinek <jakub@redhat.com>
4079
4080 PR c/54381
4081 * c-parser.c (struct c_tree_loc_pair): Removed.
4082 (c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
4083 add location_t * and tree * arguments, fill in array of 3
4084 sizeof_arg trees and corresponding locs.
4085 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust
4086 c_parser_expr_list callers.
4087 (c_parser_postfix_expression_after_primary): Likewise. Pass
4088 array of 3 sizeof_arg trees and locs (corresponding to first
4089 3 arguments) to sizeof_pointer_memaccess_warning.
4090
703c8606
LC
40912012-10-09 Lawrence Crowl <crowl@google.com>
4092
4093 * Make-lang.in (c-decl.o): Add dependence on hash-table.h.
4094 * c-decl.c (detect_field_duplicates_hash): Change to new type-safe
4095 hash table.
4096
5d9de0d0
PC
40972012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
4098
4099 PR c++/54194
4100 * c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
4101 call.
4102
a212e43f
MG
41032012-10-09 Marc Glisse <marc.glisse@inria.fr>
4104
4105 PR c++/54427
4106 * c-typeck.c: Include c-common.h.
4107 (enum stv_conv): Moved to c-common.h.
4108 (scalar_to_vector): Moved to c-common.c.
4109 (build_binary_op): Adapt to scalar_to_vector's new prototype.
4110 * Make-lang.in: c-typeck.c depends on c-common.h.
4111
3b78de56
AC
41122012-10-04 Arnaud Charlet <charlet@adacore.com>
4113
4114 * c-decl.c (c_write_global_declarations): Fix handling of
4115 -fdump-ada-spec*.
4116
78c60e3d
SS
41172012-09-30 Sharad Singhai <singhai@google.com>
4118
4119 * c-decl.c (c_write_global_declarations): Use a different method
4120 to determine if the dump has ben initialized.
4121
9f33203d
JM
41222012-09-14 Joseph Myers <joseph@codesourcery.com>
4123
4124 PR c/54552
4125 * c-typeck.c (c_cast_expr): When casting to a type requiring
4126 C_MAYBE_CONST_EXPR to be created, pass the inner expression to
4127 c_fully_fold first.
4128
a27d595d
JM
41292012-09-14 Joseph Myers <joseph@codesourcery.com>
4130
4131 PR c/54103
4132 * c-typeck.c (build_unary_op): Pass original argument of
4133 TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
4134 any C_MAYBE_CONST_EXPR, if it has integer operands.
4135 (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
4136 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
4137 to c_objc_common_truthvalue_conversion, then remove any
4138 C_MAYBE_CONST_EXPR, if they have integer operands. Use
4139 c_objc_common_truthvalue_conversion not
4140 c_common_truthvalue_conversion.
4141 (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
4142 call note_integer_operands for arguments with integer operands
4143 that are not integer constants.
4144
9feb29df
JJ
41452012-09-13 Jakub Jelinek <jakub@redhat.com>
4146
4147 PR c/54559
4148 * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
4149 COMPLEX_TYPE with in_late_binary_op set temporarily to true.
4150
d409320c
JJ
41512012-08-31 Jakub Jelinek <jakub@redhat.com>
4152
4153 PR c/54428
4154 * c-convert.c (convert): Don't call fold_convert_loc if
4155 TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
4156 is a COMPLEX_EXPR. Remove TYPE_MAIN_VARIANT check from
4157 COMPLEX_TYPE -> COMPLEX_TYPE conversion.
4158
6265d07c
JJ
41592012-08-24 Jakub Jelinek <jakub@redhat.com>
4160
4161 PR c/54355
4162 * c-decl.c (c_parser_label): Pass true as nested and fix up comments
4163 for nested and empty_ok arguments in the call to
4164 c_parser_declaration_or_fndef.
4165
1a4049e7
JJ
41662012-08-17 Jakub Jelinek <jakub@redhat.com>
4167
4168 * c-tree.h (c_last_sizeof_arg): Declare.
4169 * c-parser.c (struct c_tree_loc_pair): New type.
4170 (c_parser_expr_list): Add sizeof_arg argument. Fill it in if
4171 non-NULL.
4172 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
4173 (c_parser_postfix_expression_after_primary): Likewise. Call
4174 sizeof_pointer_memaccess_warning if needed.
4175 (sizeof_ptr_memacc_comptypes): New function.
4176 * c-typeck.c (c_last_sizeof_arg): New global variable.
4177 (c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
4178
0229aee9
UB
41792012-07-24 Uros Bizjak <ubizjak@gmail.com>
4180
4181 * c-lang.h (lang_decl): Add variable_size GTY option.
4182
7ee2468b
SB
41832012-07-16 Steven Bosscher <steven@gcc.gnu.org>
4184
4185 * c-decl.c: Include dumpfile.h instead of tree-dump.h.
4186 * Make-lang.in: Fix dependencies.
4187
d4a10d0a
SB
41882012-06-29 Steven Bosscher <steven@gcc.gnu.org>
4189
4190 * Make-lang.in: New file, rules migrated from gcc/Makefile.in
4191 and add language Makefile hooks.
4192 * config-lang.in: New file.
4193 * c-config-lang.in: Moved from gcc/config-lang.in to here, and
4194 add the required "normal" config-lang.in rules.
4195 * c-lang.h: Moved from gcc/ to here.
4196 * c-tree.h: Likewise.
4197 * c-objc-common.c: Likewise.
4198 * c-objc-common.h: Likewise.
4199 * c-typeck.c: Likewise.
4200 * c-convert.c: Likewise.
4201 * c-lang.c: Likewise.
4202 * c-aux-info.c: Likewise.
4203 * c-errors.c: Likewise.
4204 * gccspec.c: Likewise.
4205 * c-decl.c: Likewise. Include gt-c-c-decl.h, not gt-c-decl.h.
4206 * c-parser.c: Likewise. Include gt-c-c-parser.h, not gt-c-parser.h.
4207\f
cbe34bb5 4208Copyright (C) 2012-2017 Free Software Foundation, Inc.
d4a10d0a
SB
4209
4210Copying and distribution of this file, with or without modification,
4211are permitted in any medium without royalty provided the copyright
4212notice and this notice are preserved.