12019-02-22  Release Manager
2
3	* GCC 8.3.0 released.
4
52019-02-07  Jakub Jelinek  <jakub@redhat.com>
6
7	Backported from mainline
8	2019-02-06  Jakub Jelinek  <jakub@redhat.com>
9
10	PR c/89211
11	* c-parser.c (c_parser_declaration_or_fndef): Don't update
12	DECL_ARGUMENTS of d if it has been defined already.  Use a single if
13	instead of 3 nested ifs.
14
152019-01-15  Joseph Myers  <joseph@codesourcery.com>
16
17	Backport from mainline
18	2019-01-07  Joseph Myers  <joseph@codesourcery.com>
19
20	PR c/88720
21	PR c/88726
22	* c-decl.c (pop_scope): Use TREE_PUBLIC and b->nested to determine
23	whether a function is nested, not DECL_EXTERNAL.  Diagnose inline
24	functions declared but never defined only for external scope, not
25	for other scopes.
26
272019-01-08  Jakub Jelinek  <jakub@redhat.com>
28
29	Backported from mainline
30	2018-12-11  Jakub Jelinek  <jakub@redhat.com>
31
32	PR sanitizer/88426
33	* c-convert.c (convert): Call c_fully_fold before calling
34	ubsan_instrument_float_cast.
35
362018-01-02  Segher Boessenkool  <segher@kernel.crashing.org>
37
38	Backport from trunk
39	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
40
41	PR inline-asm/55681
42	* c-parser.c (c_parser_asm_statement): Update grammar.  Allow any
43	combination of volatile and goto, in any order, without repetitions.
44
45	Backport from trunk
46	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
47
48	* c-parser.c (c_parser_asm_statement): Detect the inline keyword
49	after asm.  Pass a flag for it to build_asm_expr.
50	* c-tree.h (build_asm_expr): Update declaration.
51	* c-typeck.c (build_asm_stmt): Add is_inline parameter.  Use it to
52	set ASM_INLINE_P.
53
54	Backport from trunk
55	2018-12-08  Segher Boessenkool  <segher@kernel.crashing.org>
56
57	* c-parser (c_parser_asm_statement) [RID_INLINE]: Delete stray line
58	setting "quals".
59
60	Backport from trunk
61	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
62
63	* c-parser.c (c_parser_asm_statement): Rewrite the loop to work without
64	"done" boolean variable.
65
66	Backport from trunk
67	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
68
69	* c-parser.c (c_parser_asm_statement): Keep track of the location each
70	asm qualifier is first seen; use that to give nicer "duplicate asm
71	qualifier" messages.  Delete 'quals" variable, instead pass the
72	"is_volatile_ flag to build_asm_stmt directly.
73	* c-tree.h (build_asm_stmt): Make the first arg bool instead of tree.
74	* c-typeck.c (build_asm_stmt): Ditto; adjust.
75
76	Backport from trunk
77	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
78
79	* c-parser.c (c_parser_asm_statement) <RID_CONST, RID_RESTRICT>: Give
80	a more specific error message (instead of just falling through).
81
82	And extra for the backport
83	2019-01-02  Segher Boessenkool  <segher@kernel.crashing.org>
84
85	* c-parser.c (c_parser_asm_statement): Output a warning instead of an
86	error for const and restrict.
87
882018-08-01  Jakub Jelinek  <jakub@redhat.com>
89
90	PR c/85704
91	* c-typeck.c (init_field_decl_cmp): New function.
92	(output_pending_init_elements): Use it for field comparisons
93	instead of pure bit_position comparisons.
94
952018-07-26  Release Manager
96
97	* GCC 8.2.0 released.
98
992018-07-12  Jakub Jelinek  <jakub@redhat.com>
100
101	* c-decl.c (c_decl_attributes): Don't diagnose vars without mappable
102	type here, instead add "omp declare target implicit" attribute.
103	(finish_decl): Diagnose vars without mappable type here.
104
1052018-06-20  Jakub Jelinek  <jakub@redhat.com>
106
107	Backported from mainline
108	2018-06-15  Jakub Jelinek  <jakub@redhat.com>
109
110	PR c/86093
111	* c-typeck.c (pointer_diff): Cast both pointers to unqualified types
112	before doing POINTER_DIFF_EXPR.
113
1142018-05-30  Jakub Jelinek  <jakub@redhat.com>
115
116	Backported from mainline
117	2018-05-10  Jakub Jelinek  <jakub@redhat.com>
118
119	PR c++/85662
120	* c-fold.c (c_fully_fold_internal): Use fold_offsetof rather than
121	fold_offsetof_1, pass TREE_TYPE (expr) as TYPE to it and drop the
122	fold_convert_loc.
123	* c-typeck.c (build_unary_op): Use fold_offsetof rather than
124	fold_offsetof_1, pass argtype as TYPE to it and drop the
125	fold_convert_loc.
126
1272018-05-02  Release Manager
128
129	* GCC 8.1.0 released.
130
1312018-03-21  Joseph Myers  <joseph@codesourcery.com>
132
133	* c-parser.c (c_parser_postfix_expression): For __builtin_tgmath
134	where all functions return the same _FloatN or _FloatNx type,
135	treat integer types as _Float64 instead of double.
136
1372018-03-21  Jakub Jelinek  <jakub@redhat.com>
138
139	PR c/84999
140	* c-typeck.c (build_binary_op): If c_common_type_for_size fails when
141	building vector comparison, diagnose it and return error_mark_node.
142
1432018-03-15  Jakub Jelinek  <jakub@redhat.com>
144
145	PR c/84853
146	* c-typeck.c (build_binary_op) <case RSHIFT_EXPR, case LSHIFT_EXPR>:
147	If code1 is INTEGER_TYPE, only allow code0 VECTOR_TYPE if it has
148	INTEGER_TYPE element type.
149
1502018-03-13  David Pagan  <dave.pagan@oracle.com>
151
152	PR c/46921
153	* c-typeck.c (output_init_element): Ensure field initializer
154	expression is always evaluated if there are side effects.
155
1562018-03-06  Jakub Jelinek  <jakub@redhat.com>
157
158	PR c/84721
159	* c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if
160	!building_stmt_list_p ().
161
1622018-02-13  Richard Sandiford  <richard.sandiford@linaro.org>
163
164	PR c/84305
165	* c-decl.c (grokdeclarator): Create an anonymous TYPE_DECL
166	in PARM and TYPENAME contexts too, but attach it to a BIND_EXPR
167	and include the BIND_EXPR in the list of things that need to be
168	pre-evaluated.
169
1702018-02-09  Nathan Sidwell  <nathan@acm.org>
171
172	PR c/84293
173	* c-typeck.c (build_indirect_ref, build_c_cast): Pass expr location
174	to strict_aliasing_warning.
175
1762018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>
177
178	* c-typeck.c (really_start_incremental_init, push_init_level,
179	set_nonincremental_init, output_init_element, process_init_element):
180	Use DECL_UNNAMED_BIT_FIELD.
181
1822018-01-31  Marek Polacek  <polacek@redhat.com>
183
184	PR c/81779
185	* c-parser.c (c_parser_compound_statement_nostart): Call
186	expansion_point_location_if_in_system_header.
187
1882018-01-17  David Malcolm  <dmalcolm@redhat.com>
189
190	PR c++/83814
191	* c-fold.c (fold_for_warn): Move from c-common.c, reducing to just
192	the C part.
193
1942018-01-13  Jakub Jelinek  <jakub@redhat.com>
195
196	PR c/83801
197	* c-tree.h (decl_constant_value_1): Add a bool argument.
198	* c-typeck.c (decl_constant_value_1): Add IN_INIT argument, allow
199	returning a CONSTRUCTOR if it is true.  Use error_operand_p.
200	(decl_constant_value): Adjust caller.
201	* c-fold.c (c_fully_fold_internal): If in_init, pass true to
202	decl_constant_value_1 as IN_INIT.  Otherwise, punt if
203	decl_constant_value returns initializer that has BLKmode or
204	array type.
205	(c_fully_fold_internal) <case COMPONENT_REF>: Fold if !lval.
206
2072018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
208	    Alan Hayward  <alan.hayward@arm.com>
209	    David Sherwood  <david.sherwood@arm.com>
210
211	* c-typeck.c (comptypes_internal, build_binary_op): Handle polynomial
212	TYPE_VECTOR_SUBPARTS.
213
2142018-01-03  Jakub Jelinek  <jakub@redhat.com>
215
216	Update copyright years.
217
2182018-01-01  Jakub Jelinek  <jakub@redhat.com>
219
220	PR c/83595
221	* c-parser.c (c_parser_braced_init, c_parser_initelt,
222	c_parser_conditional_expression, c_parser_cast_expression,
223	c_parser_sizeof_expression, c_parser_alignof_expression,
224	c_parser_postfix_expression, c_parser_omp_declare_reduction,
225	c_parser_transaction_expression): Use set_error () method instead
226	of setting value member to error_mark_node.
227
2282017-12-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
229
230	* c-decl.c (header_for_builtin_fn): Add integer rounding _Float<N>
231	and _Float<N>X built-in functions.
232
2332017-12-22  Jakub Jelinek  <jakub@redhat.com>
234
235	PR debug/83550
236	* c-decl.c (finish_struct): Set DECL_SOURCE_LOCATION on
237	TYPE_STUB_DECL and call rest_of_type_compilation before processing
238	incomplete vars rather than after it.
239
240	PR debug/83547
241	* c-typeck.c (c_finish_stmt_expr): Ignore !TREE_SIDE_EFFECTS as
242	indicator of ({ }), instead skip all trailing DEBUG_BEGIN_STMTs first,
243	and consider empty ones if there are no other stmts.  For
244	-Wunused-value walk all statements before the one only followed by
245	DEBUG_BEGIN_STMTs.
246
2472017-12-22  Mike Stump  <mikestump@comcast.net>
248            Eric Botcazou  <ebotcazou@adacore.com>
249
250	* c-parser.c (c_parser_while_statement): Add unroll parameter and
251	build ANNOTATE_EXPR if present.  Add 3rd operand to ANNOTATE_EXPR.
252	(c_parser_do_statement): Likewise.
253	(c_parser_for_statement): Likewise.
254	(c_parser_statement_after_labels): Adjust calls to above.
255	(c_parse_pragma_ivdep): New static function.
256	(c_parser_pragma_unroll): Likewise.
257	(c_parser_pragma) <PRAGMA_IVDEP>: Add support for pragma Unroll.
258	<PRAGMA_UNROLL>: New case.
259
2602017-12-19  Jakub Jelinek  <jakub@redhat.com>
261
262	* c-typeck.c (comptypes_internal, function_types_compatible_p,
263	perform_integral_promotions, digest_init): Replace Yoda conditions
264	with typical order conditions.
265	* c-decl.c (check_bitfield_type_and_width): Likewise.
266
2672017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
268
269	* c-typeck.c (c_safe_arg_type_equiv_p,
270	c_safe_function_type_cast_p): New function.
271	(build_c_cast): Implement -Wcast-function-type.
272
2732017-12-14  Richard Biener  <rguenther@suse.de>
274
275	PR c/83415
276	* c-fold.c (c_fully_fold_internal): Treat VIEW_CONVERT_EXPR
277	like REALPART_EXPR for the behavior of whether its operand
278	is an lvalue.
279
2802017-12-12  Marek Polacek  <polacek@redhat.com>
281
282	PR c/82679
283	* c-decl.c (grokdeclarator): Check declspecs insted of atomicp.
284
2852017-12-12  Alexandre Oliva <aoliva@redhat.com>
286
287	* c-objc-common.h (LANG_HOOKS_EMITS_BEGIN_STMT): Redefine as true.
288	* c-parser.c (add_debug_begin_stmt): New.
289	(c_parser_declaration_or_fndef): Call it.
290	(c_parser_compound_statement_nostart): Likewise.
291	(c_parser_statement_after_labels): Likewise.
292	* c-typeck (c_finish_stmt_expr): Skip begin stmts markers.
293
2942017-12-07  Joseph Myers  <joseph@codesourcery.com>
295
296	* c-decl.c (build_compound_literal): Add parameter alignas_align
297	and set alignment of decl if nonzero.
298	* c-parser.c (c_keyword_starts_typename): Allow RID_ALIGNAS.
299	(c_parser_declspecs): Allow RID_ALIGNAS to follow a type, like a
300	qualifier.
301	(c_parser_struct_declaration): Update syntax comment.
302	(c_parser_type_name): Add alignas_ok argument and pass it to
303	c_parser_declspecs.
304	(c_parser_cast_expression): Pass true to c_parser_type_name and
305	give error if a cast used an _Alignas specifier.
306	(c_parser_sizeof_expression): Pass true to c_parser_type_name and
307	give error if sizeof (type-name) used an _Alignas specifier.
308	(c_parser_alignof_expression): Pass true to c_parser_type_name and
309	give error if _Alignof (type-name) used an _Alignas specifier.
310	(c_parser_postfix_expression_after_paren_type): Check specified
311	alignment for a compound literal and pass it to
312	build_compound_literal.
313	* c-parser.h (c_parser_type_name): Update prototype.
314	* c-tree.h (build_compound_literal): Update prototype.
315
3162017-12-07  Martin Sebor  <msebor@redhat.com>
317
318	PR c/81544
319	* c-decl.c (c_decl_attributes): Look up existing declaration and
320	pass it to decl_attributes.
321
3222017-12-06  David Malcolm  <dmalcolm@redhat.com>
323
324	PR c/83236
325	* c-decl.c (lookup_name_fuzzy): Don't suggest names that are
326	reserved for use by the implementation.
327
3282017-12-06  David Malcolm  <dmalcolm@redhat.com>
329
330	* c-decl.c: Include "c-family/c-spellcheck.h".
331
3322017-12-05  Martin Liska  <mliska@suse.cz>
333	    Jakub Jelinek  <jakub@redhat.com>
334
335	* c-typeck.c (pointer_diff): Add new argument and instrument
336	pointer subtraction.
337	(build_binary_op): Similar for pointer comparison.
338
3392017-12-01  Jakub Jelinek  <jakub@redhat.com>
340
341	PR c/79153
342	* c-parser.c: Include tree-iterator.h.
343	(c_parser_switch_statement): Emit LABEL_EXPR for the break label
344	into SWITCH_BODY instead of after it and set SWITCH_BREAK_LABEL_P
345	on it.
346
347	PR c/83222
348	* c-tree.h (decl_constant_value_1): Declare.
349	* c-typeck.c (decl_constant_value_1): New function.
350	(decl_constant_value): Use it.
351	* c-fold.c (c_fully_fold_internal): If in_init, use
352	decl_constant_value_1 instead of decl_constant_value.
353
3542017-11-30  Jakub Jelinek  <jakub@redhat.com>
355
356	* c-parser.c (c_parser_postfix_expression): Use ; instead of ;;.
357
3582017-11-28  Jakub Jelinek  <jakub@redhat.com>
359
360	PR sanitizer/81275
361	* c-typeck.c (c_finish_case): Set SWITCH_ALL_CASES_P if
362	c_switch_covers_all_cases_p returns true.
363
3642017-11-28  Julia Koval  <julia.koval@intel.com>
365            Sebastian Peryt  <sebastian.peryt@intel.com>
366
367	* Make-lang.in (c/c-array-notation.o): Remove.
368	* c-array-notation.c: Delete.
369	* c-decl.c: Remove cilkplus condition.
370	* c-parser.c (c_parser_cilk_simd, c_parser_cilk_for,
371	c_parser_cilk_verify_simd, c_parser_array_notation,
372	c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize,
373	c_parser_cilk_simd_fn_vector_attrs,
374	c_finish_cilk_simd_fn_tokens): Delete.
375	(c_parser_declaration_or_fndef): Remove cilkplus condition.
376	(c_parser_direct_declarator_inner): Ditto.
377	(CILK_SIMD_FN_CLAUSE_MASK): Delete.
378	(c_parser_attributes, c_parser_compound_statement,
379	c_parser_statement_after_labels, c_parser_if_statement,
380	c_parser_switch_statement, c_parser_while_statement,
381	c_parser_do_statement, c_parser_for_statement,
382	c_parser_unary_expression, c_parser_postfix_expression,
383	c_parser_postfix_expression_after_primary,
384	c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses,
385	c_parser_omp_for_loop, c_finish_omp_declare_simd): Remove cilkplus
386	support.
387	* c-typeck.c (build_array_ref, build_function_call_vec,
388	convert_arguments,
389	lvalue_p, build_compound_expr, c_finish_return, c_finish_if_stmt,
390	c_finish_loop, build_binary_op): Remove cilkplus support.
391
3922017-11-28  Jakub Jelinek  <jakub@redhat.com>
393
394	* c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead
395	of build3.
396
3972017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
398
399	* Make-lang.in (c.install-plugin): Install backend import library.
400
4012017-11-23  Jakub Jelinek  <jakub@redhat.com>
402
403	* c-parser.c (c_parser_omp_declare_simd): Reject declare simd in
404	pragma_stmt context.
405
4062017-11-23  Mike Stump  <mikestump@comcast.net>
407	    Eric Botcazou  <ebotcazou@adacore.com>
408
409	* c-parser.c (c_parser_while_statement): Pass 3rd operand to
410	ANNOTATE_EXPR.
411	(c_parser_do_statement): Likewise.
412	(c_parser_for_statement): Likewise.
413
4142017-11-22  David Malcolm  <dmalcolm@redhat.com>
415
416	PR c++/62170
417	* c-objc-common.c (c_tree_printer): Convert penultimate param from
418	bool to bool *.  Within '%T' handling, if showing an "aka", use
419	"quoted" param to add appropriate quoting.
420
4212017-11-22  Marek Polacek  <polacek@redhat.com>
422
423	PR c++/60336
424	PR middle-end/67239
425	PR target/68355
426	* c-decl.c (grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.
427
4282017-11-21  David Malcolm  <dmalcolm@redhat.com>
429
430	PR c/83056
431	* c-decl.c (lookup_name_fuzzy): Don't suggest names that came from
432	earlier failed lookups.
433
4342017-11-21  Marc Glisse  <marc.glisse@inria.fr>
435
436	* c-fold.c (c_fully_fold_internal): Handle POINTER_DIFF_EXPR.
437	* c-typeck.c (pointer_diff): Use POINTER_DIFF_EXPR.
438
4392017-11-20  David Malcolm  <dmalcolm@redhat.com>
440
441	PR c/81404
442	* c-decl.c: Include "c-family/known-headers.h".
443	(get_c_name_hint): Rename to get_stdlib_header_for_name and move
444	to known-headers.cc.
445	(class suggest_missing_header): Move to known-header.h.
446	(lookup_name_fuzzy): Call get_c_stdlib_header_for_name rather
447	than get_c_name_hint.
448
4492017-11-20  David Malcolm  <dmalcolm@redhat.com>
450
451	* c-decl.c (get_c_name_hint): New function.
452	(class suggest_missing_header): New class.
453	(lookup_name_fuzzy): Call get_c_name_hint and use it to
454	suggest missing headers to the user.
455
4562017-11-20  David Malcolm  <dmalcolm@redhat.com>
457
458	* c-decl.c: Define INCLUDE_UNIQUE_PTR before including system.h.
459	Include "c-family/name-hint.h"
460	(implicit_decl_warning): Convert "hint" from
461	const char * to name_hint.  Pass location to
462	lookup_name_fuzzy.  Suppress any deferred diagnostic if the
463	warning was not printed.
464	(undeclared_variable): Likewise for "guessed_id".
465	(lookup_name_fuzzy): Convert return type from const char *
466	to name_hint.  Add location_t param.
467	* c-parser.c: Define INCLUDE_UNIQUE_PTR before including system.h.
468	Include "c-family/name-hint.h"
469	(c_parser_declaration_or_fndef): Convert "hint" from
470	const char * to name_hint.  Pass location to lookup_name_fuzzy.
471	(c_parser_parameter_declaration): Likewise.
472
4732017-11-19  Jakub Jelinek  <jakub@redhat.com>
474
475	PR c/66618
476	PR c/69960
477	* c-parser.c (c_parser_omp_atomic): Pass true as LVAL to c_fully_fold
478	where needed.
479	* c-typeck.c (build_unary_op, build_modify_expr, build_asm_expr,
480	handle_omp_array_sections): Likewise.
481	(digest_init): Don't call decl_constant_value_for_optimization.
482	* c-tree.h (decl_constant_value_for_optimization): Removed.
483	* c-fold.c (c_fold_array_ref): New function.
484	(c_fully_fold_internal): Add LVAL argument, propagate it through
485	recursive calls.  For VAR_P call decl_constant_value and
486	unshare if not LVAL and either optimizing or IN_INIT.  Remove
487	decl_constant_value_for_optimization calls.  If IN_INIT and not LVAL,
488	fold ARRAY_REF with STRING_CST and INTEGER_CST operands.
489	(c_fully_fold): Add LVAL argument, pass it through to
490	c_fully_fold_internal.
491	(decl_constant_value_for_optimization): Removed.
492
4932017-11-15  Joseph Myers  <joseph@codesourcery.com>
494
495	PR c/81156
496	* c-parser.c (check_tgmath_function): New function.
497	(enum tgmath_parm_kind): New enum.
498	(c_parser_postfix_expression): Handle __builtin_tgmath.
499
5002017-10-31  David Malcolm  <dmalcolm@redhat.com>
501
502	* c-decl.c (implicit_decl_warning): Update for renaming of
503	pedwarn_at_rich_loc and warning_at_rich_loc.
504	(implicitly_declare): Likewise for renaming of inform_at_rich_loc.
505	(undeclared_variable): Likewise for renaming of error_at_rich_loc.
506	* c-parser.c (c_parser_declaration_or_fndef): Likewise.
507	(c_parser_struct_or_union_specifier): Likewise for renaming of
508	pedwarn_at_rich_loc.
509	(c_parser_parameter_declaration): Likewise for renaming of
510	error_at_rich_loc.
511	* c-typeck.c (build_component_ref): Likewise.
512	(build_unary_op): Likewise for renaming of inform_at_rich_loc.
513	(pop_init_level): Likewise for renaming of warning_at_rich_loc.
514	(set_init_label): Likewise for renaming of error_at_rich_loc.
515
5162017-10-30  Richard Biener  <rguenther@suse.de>
517
518	* gimple-parser.c (c_parser_gimple_statement): Parse conditional
519	stmts.
520
5212017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
522
523	* c-decl.c (header_for_builtin_fn): Add support for copysign, fma,
524	fmax, fmin, and sqrt _Float<N> and _Float<N>X variants.
525
5262017-10-25  David Malcolm  <dmalcolm@redhat.com>
527
528	PR c/7356
529	* c-parser.c (c_parser_declaration_or_fndef): Detect missing
530	semicolons.
531
5322017-10-25  Jakub Jelinek  <jakub@redhat.com>
533
534	PR libstdc++/81706
535	* c-decl.c (merge_decls): Copy "omp declare simd" attributes from
536	newdecl to corresponding __builtin_ if any.
537
5382017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
539
540	PR c++/82466
541	* c-decl.c (diagnose_mismatched_decls): Use
542	OPT_Wbuiltin_declaration_mismatch.
543
5442017-10-12  David Malcolm  <dmalcolm@redhat.com>
545
546	* c-parser.c (c_parser_require): Add "type_is_unique" param and
547	use it to guard calls to maybe_suggest_missing_token_insertion.
548	(c_parser_parms_list_declarator): Override default value of new
549	"type_is_unique" param to c_parser_require.
550	(c_parser_asm_statement): Likewise.
551	* c-parser.h (c_parser_require): Add "type_is_unique" param,
552	defaulting to true.
553
5542017-10-11  Nathan Sidwell  <nathan@acm.org>
555
556	* c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too.
557
5582017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
559
560	* c-parser.c (c_parser_cilk_clause_vectorlength): Use wi::to_wide when
561	operating on trees as wide_ints.
562	* c-typeck.c (build_c_cast, c_finish_omp_clauses): Likewise.
563	(c_tree_equal): Likewise.
564
5652017-10-04  David Malcolm  <dmalcolm@redhat.com>
566
567	* c-decl.c (push_parm_decl): Store c_parm's location into the
568	PARAM_DECL.
569	(build_c_parm): Add "loc" param and store it within the c_parm.
570	* c-parser.c (struct c_parser): Add "last_token_location" field.
571	(c_parser_consume_token): Store location of the token into the
572	new field.
573	(c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS
574	when handling a FUNCTION_DECL, if it doesn't already have them.
575	(c_parser_parameter_declaration): Generate a location for the
576	parameter, and pass it to the call to build_c_parm.
577	* c-tree.h (struct c_parm): Add field "loc".
578	(build_c_parm): Add location_t param.
579	* c-typeck.c (get_fndecl_argument_location): New function.
580	(inform_for_arg): New function.
581	(convert_for_assignment): Use inform_for_arg when dealing with
582	ic_argpass.
583
5842017-09-29  Jakub Jelinek  <jakub@redhat.com>
585
586	* c-decl.c (grokfield): Use SET_DECL_C_BIT_FIELD here if
587	width is non-NULL.
588	(finish_struct): Test DECL_C_BIT_FIELD instead of DECL_INITIAL,
589	don't SET_DECL_C_BIT_FIELD here.
590
591	PR c/82340
592	* c-decl.c (build_compound_literal): Use c_apply_type_quals_to_decl
593	instead of trying to set just TREE_READONLY manually.
594
5952017-09-16  Tom de Vries  <tom@codesourcery.com>
596
597	PR c/81875
598	* c-parser.c (c_parser_omp_for_loop): Fold only operands of cond, not
599	cond itself.
600
6012017-09-15  Joseph Myers  <joseph@codesourcery.com>
602
603	PR c/82071
604	* c-typeck.c (ep_convert_and_check): Just call convert_and_check
605	for C11.
606	(build_conditional_expr): For C11, generate result with excess
607	precision when one argument is an integer and the other is of a
608	type using excess precision.
609
6102017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
611
612	* c-typeck.c (build_c_cast): Implement -Wcast-align=strict.
613
6142017-09-13  Marek Polacek  <polacek@redhat.com>
615
616	PR c/82167
617	* c-typeck.c (c_expr_sizeof_expr): Use the type of expr.value rather
618	than expr.original_type.
619
6202017-09-12  Nathan Sidwell  <nathan@acm.org>
621
622	* c-decl.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
623	resort_sorted_fields): Moved from c-family/c-common.c.
624	* c-lang.h (struct sorted_fields_type): Moved from c-family/c-common.h.
625
6262017-09-01  Joseph Myers  <joseph@codesourcery.com>
627
628	PR c/82071
629	* c-typeck.c (build_atomic_assign): Handle argument with excess
630	precision.  Ensure any EXCESS_PRECISION_EXPR is present in
631	argument passed to build_binary_op and convert_for_assignment but
632	not for call to c_fully_fold.
633	(build_modify_expr): Do not remove EXCESS_PRECISION_EXPR early.
634	Ensure build_binary_op is called with argument with original
635	semantic type.  Avoid calling c_fully_fold with an
636	EXCESS_PRECISION_EXPR from build_binary_op.
637
6382017-09-01  Jakub Jelinek  <jakub@redhat.com>
639
640	PR c/81887
641	* c-parser.c (c_parser_omp_ordered): Handle -fopenmp-simd.
642
6432017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
644	    Alan Hayward  <alan.hayward@arm.com>
645	    David Sherwood  <david.sherwood@arm.com>
646
647	* c-typeck.c (build_binary_op): Use SCALAR_TYPE_MODE.
648	(c_common_type): Likewise.  Use as_a <scalar_mode> when setting
649	m1 and m2 to the signed equivalent of a fixed-point
650	SCALAR_TYPE_MODE.
651
6522017-08-24  David Malcolm  <dmalcolm@redhat.com>
653
654	* c-tree.h (c_expr::get_location) Use EXPR_HAS_LOCATION rather
655	than CAN_HAVE_LOCATION_P when determining whether to use the
656	location_t value within "value".
657
6582017-08-21  David Malcolm  <dmalcolm@redhat.com>
659
660	* c-parser.c (c_parser_expr_list): Use c_expr::get_location ()
661	rather than peeking the location of the first token.
662	* c-tree.h (c_expr::get_location): New method.
663
6642017-08-21  David Malcolm  <dmalcolm@redhat.com>
665
666	* c-typeck.c (build_function_call_vec): Pass arg_loc to call
667	to check_function_arguments.
668
6692017-08-18  Marek Polacek  <polacek@redhat.com>
670
671	* c-parser.c (c_parser_postfix_expression): Remove unused code.  Update
672	commentary.
673
6742017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
675
676	PR c/53037
677	* c-decl.c (merge_decls): Also merge DECL_WARN_IF_NOT_ALIGN.
678	(check_bitfield_type_and_width): Don't allow bit-field with
679	warn_if_not_aligned type.
680
6812017-08-14  Martin Sebor  <msebor@redhat.com>
682
683	PR c/81117
684	* c-objc-common.c (c_objc_common_init): Handle 'G'.
685
6862017-08-11  Marek Polacek  <polacek@redhat.com>
687
688	PR c/81795
689	* c-decl.c (pushtag): Only print inform if the warning was printed.
690	(grokdeclarator): Likewise.
691
6922017-08-10  David Malcolm  <dmalcolm@redhat.com>
693
694	* c-parser.c (c_parser_error): Rename to...
695	(c_parser_error_richloc): ...this, making static, and adding
696	"richloc" parameter, passing it to the c_parse_error call,
697	rather than calling c_parser_set_source_position_from_token.
698	(c_parser_error): Reintroduce, reimplementing in terms of the
699	above, converting return type from void to bool.
700	(class token_pair): New class.
701	(struct matching_paren_traits): New struct.
702	(matching_parens): New typedef.
703	(struct matching_brace_traits): New struct.
704	(matching_braces): New typedef.
705	(get_matching_symbol): New function.
706	(c_parser_require): Add param MATCHING_LOCATION, using it to
707	highlight matching "opening" tokens for missing "closing" tokens.
708	(c_parser_skip_until_found): Likewise.
709	(c_parser_static_assert_declaration_no_semi): Convert explicit
710	parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of
711	class matching_parens, so that the pertinent open parenthesis is
712	highlighted when there are problems locating the close
713	parenthesis.
714	(c_parser_struct_or_union_specifier): Likewise.
715	(c_parser_typeof_specifier): Likewise.
716	(c_parser_alignas_specifier): Likewise.
717	(c_parser_simple_asm_expr): Likewise.
718	(c_parser_braced_init): Likewise, for matching_braces.
719	(c_parser_paren_condition): Likewise, for matching_parens.
720	(c_parser_switch_statement): Likewise.
721	(c_parser_for_statement): Likewise.
722	(c_parser_asm_statement): Likewise.
723	(c_parser_asm_operands): Likewise.
724	(c_parser_cast_expression): Likewise.
725	(c_parser_sizeof_expression): Likewise.
726	(c_parser_alignof_expression): Likewise.
727	(c_parser_generic_selection): Likewise.
728	(c_parser_postfix_expression): Likewise for cases RID_VA_ARG,
729	RID_OFFSETOF, RID_TYPES_COMPATIBLE_P, RID_AT_SELECTOR,
730	RID_AT_PROTOCOL, RID_AT_ENCODE, reindenting as necessary.
731	In case CPP_OPEN_PAREN, pass loc_open_paren to the
732	c_parser_skip_until_found call.
733	(c_parser_objc_class_definition): Use class matching_parens as
734	above.
735	(c_parser_objc_method_decl): Likewise.
736	(c_parser_objc_try_catch_finally_statement): Likewise.
737	(c_parser_objc_synchronized_statement): Likewise.
738	(c_parser_objc_at_property_declaration): Likewise.
739	(c_parser_oacc_wait_list): Likewise.
740	(c_parser_omp_var_list_parens): Likewise.
741	(c_parser_omp_clause_collapse): Likewise.
742	(c_parser_omp_clause_default): Likewise.
743	(c_parser_omp_clause_if): Likewise.
744	(c_parser_omp_clause_num_threads): Likewise.
745	(c_parser_omp_clause_num_tasks): Likewise.
746	(c_parser_omp_clause_grainsize): Likewise.
747	(c_parser_omp_clause_priority): Likewise.
748	(c_parser_omp_clause_hint): Likewise.
749	(c_parser_omp_clause_defaultmap): Likewise.
750	(c_parser_oacc_single_int_clause): Likewise.
751	(c_parser_omp_clause_ordered): Likewise.
752	(c_parser_omp_clause_reduction): Likewise.
753	(c_parser_omp_clause_schedule): Likewise.
754	(c_parser_omp_clause_num_teams): Likewise.
755	(c_parser_omp_clause_thread_limit): Likewise.
756	(c_parser_omp_clause_aligned): Likewise.
757	(c_parser_omp_clause_linear): Likewise.
758	(c_parser_omp_clause_safelen): Likewise.
759	(c_parser_omp_clause_simdlen): Likewise.
760	(c_parser_omp_clause_depend): Likewise.
761	(c_parser_omp_clause_map): Likewise.
762	(c_parser_omp_clause_device): Likewise.
763	(c_parser_omp_clause_dist_schedule): Likewise.
764	(c_parser_omp_clause_proc_bind): Likewise.
765	(c_parser_omp_clause_uniform): Likewise.
766	(c_parser_omp_for_loop): Likewise.
767	(c_parser_cilk_clause_vectorlength): Likewise.
768	(c_parser_cilk_clause_linear): Likewise.
769	(c_parser_transaction_expression): Likewise.
770	* c-parser.h (c_parser_require): Add param matching_location with
771	default UNKNOWN_LOCATION.
772	(c_parser_error): Convert return type from void to bool.
773	(c_parser_skip_until_found): Add param matching_location with
774	default UNKNOWN_LOCATION.
775
7762017-08-09  Marek Polacek  <polacek@redhat.com>
777
778	* c-decl.c (build_enumerator): Use true/false instead of 1/0.
779	* c-tree.h (build_external_ref): Update declaration.
780	* c-typeck.c (build_array_ref): Use true/false instead of 1/0.
781	(build_external_ref): Change the type of a parameter to bool.
782	(parser_build_binary_op): Use true/false instead of 1/0.
783	(pointer_diff): Likewise.
784	(build_modify_expr): Likewise.
785	(set_designator): Change the type of a parameter to bool.
786	(set_init_index): Use true/false instead of 1/0.
787	(set_init_label): Likewise.
788	(output_init_element): Change the type of a parameter to bool.
789	(output_pending_init_elements): Use true/false instead of 1/0.
790	(process_init_element): Likewise.
791	(build_binary_op): Change the type of a parameter to bool.
792
7932017-08-09  Marek Polacek  <polacek@redhat.com>
794
795	PR c/81233
796	* c-typeck.c (pedwarn_init): Make the function take a variable list.
797	Call emit_diagnostic_valist instead of pedwarn.
798	(convert_for_assignment): Unroll the PEDWARN_FOR_ASSIGNMENT macro.
799	Print the relevant types in diagnostics.
800
8012017-08-09  Marek Polacek  <polacek@redhat.com>
802
803	PR c/81417
804	* c-array-notation.c (fix_builtin_array_notation_fn): Update calls to
805	build_conditional_expr.
806	* c-parser.c (c_parser_conditional_expression): Create locations for
807	EXP1 and EXP2 from their source ranges.  Pass the locations down to
808	build_conditional_expr.
809	* c-tree.h (build_conditional_expr): Update declaration.
810	* c-typeck.c (build_conditional_expr): Add location_t parameters.
811	For -Wsign-compare, also print the types.
812
8132017-08-08  Martin Liska  <mliska@suse.cz>
814
815	* c-convert.c: Include header files.
816	* c-typeck.c: Likewise.
817
8182017-08-07  Martin Liska  <mliska@suse.cz>
819
820	* c-parser.c (c_parser_attributes): Canonicalize name of an
821	attribute.
822
8232017-08-02  Marek Polacek  <polacek@redhat.com>
824
825	PR c/81289
826	* c-parser.c (c_parser_unary_expression): Use set_error.
827
828	PR c/81448
829	PR c/81306
830	* c-warn.c (warn_for_multistatement_macros): Prevent bogus
831	warnings.  Avoid walking MACRO_MAP_LOCATIONS.
832
8332017-07-31  Jan Hubicka <hubicka@ucw.cz>
834	    Martin Liska  <mliska@suse.cz>
835
836	* c-typeck.c (c_finish_goto_label): Build gimple predict
837	statement.
838
8392017-07-31  Martin Liska  <mliska@suse.cz>
840
841	PR sanitize/81530
842	* c-convert.c (convert): Guard condition with flag_sanitize_p
843	also with current_function_decl non-null equality.
844	* c-decl.c (grokdeclarator): Likewise.
845	* c-typeck.c (build_binary_op): Likewise.
846
8472017-07-25  Marek Polacek  <polacek@redhat.com>
848
849	* c-decl.c (grokfield): Remove local variable.
850
8512017-07-25  Marek Polacek  <polacek@redhat.com>
852
853	PR c/81364
854	* c-parser.c (c_parser_else_body): Don't warn about multistatement
855	macro expansion if the body is in { }.
856	(c_parser_while_statement): Likewise.
857	(c_parser_for_statement): Likewise.
858
8592017-07-18  Nathan Sidwell  <nathan@acm.org>
860
861	* c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE.
862
8632017-07-14  David Malcolm  <dmalcolm@redhat.com>
864
865	* c-decl.c (implicitly_declare): When suggesting a missing
866	#include, provide a fix-it hint.
867
8682017-07-06  David Malcolm  <dmalcolm@redhat.com>
869
870	* c-lang.c (selftest::run_c_tests): Move body to c_family_tests,
871	and call that instead.
872	* c-tree.h (selftest::run_c_tests): New decl.
873
8742017-06-26  Marek Polacek  <polacek@redhat.com>
875
876	PR c/80116
877	* c-parser.c (c_parser_if_body): Set the location of the
878	body of the conditional after parsing all the labels.  Call
879	warn_for_multistatement_macros.
880	(c_parser_else_body): Likewise.
881	(c_parser_switch_statement): Likewise.
882	(c_parser_while_statement): Likewise.
883	(c_parser_for_statement): Likewise.
884	(c_parser_statement): Add a default argument.  Save the location
885	after labels have been parsed.
886	(c_parser_c99_block_statement): Likewise.
887
8882017-06-19  Richard Biener  <rguenther@suse.de>
889
890	* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
891	negated _Literals to parse _Literal (int) -1.
892
8932017-06-13  Martin Liska  <mliska@suse.cz>
894
895	PR sanitize/78204
896	* c-convert.c (convert): Use sanitize_flags_p.
897	* c-decl.c (grokdeclarator): Likewise.
898	* c-typeck.c (convert_for_assignment): Likewise.
899	(c_finish_return): Likewise.
900	(build_binary_op): Likewise.
901
9022017-06-08  Jakub Jelinek  <jakub@redhat.com>
903
904	PR c/81006
905	* c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE
906	to sizetype before size_binop.
907
9082017-06-07  Jakub Jelinek  <jakub@redhat.com>
909
910	* gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead
911	of TDI_generic.
912
9132017-06-06  Marek Polacek  <polacek@redhat.com>
914
915	PR c/79983
916	* c-decl.c (start_struct): Use the location of TYPE_STUB_DECL of
917	ref.
918	(start_enum): Use the location of TYPE_STUB_DECL of enumtype.
919
9202017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
921
922	* c-parser.c (c_parser_binary_expression): Implement the
923	-Wsizeof_pointer_div warning.
924	(c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code
925	from a parenthesized expression.
926	(c_parser_expr_list): Use c_last_sizeof_loc.
927	* c-tree.h (c_last_sizeof_loc): New external.
928	* c-typeck.c (c_last_sizeof_loc): New variable.
929	(c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc.
930
9312017-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
932
933	PR testsuite/80580
934	* gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels.
935
9362017-05-30  David Malcolm  <dmalcolm@redhat.com>
937
938	* c-objc-common.c (c_tree_printer): Gain bool and const char **
939	parameters.
940
9412017-05-24  Martin Sebor  <msebor@redhat.com>
942
943	PR c/80731
944	* c-fold.c (c_fully_fold_internal): Adjust.
945	* c-typeck.c (parser_build_unary_op): Adjust.
946
9472017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
948
949	* c-parser.c (OACC_KERNELS_CLAUSE_MASK): Add
950	"PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS",
951	"VECTOR_LENGTH".
952
9532017-05-23  Marek Polacek  <polacek@redhat.com>
954
955	* c-parser.c (c_parser_compound_statement_nostart): Remove redundant
956	quotes.
957
9582017-05-22  Jakub Jelinek  <jakub@redhat.com>
959
960	* c-fold.c (c_fully_fold_internal): Save the c_fully_fold_internal
961	result for SAVE_EXPR operand and set SAVE_EXPR_FOLDED_P even if
962	it returned invariant.  Call tree_invariant_p unconditionally
963	afterwards to decide whether to return expr or op0.
964
9652017-05-22  Nathan Sidwell  <nathan@acm.org>
966
967	* c-decl.c (c_parse_final_cleanups): Drop TDI_tu handling.
968
9692017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
970
971	* c-parser.c (c_parser_omp_clause_default): Handle
972	"OMP_CLAUSE_DEFAULT_PRESENT".
973
9742017-05-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
975
976	* config-lang.in (gtfiles): Add c-family/c-format.c.
977
9782017-05-18  Nathan Sidwell  <nathan@acm.org>
979
980	* c-decl.c (pushdecl_top_level): Delete unused function.
981
9822017-05-18  Marek Polacek  <polacek@redhat.com>
983
984	* c-decl.c (match_builtin_function_types): Use NULL_TREE instead of 0.
985	(check_earlier_gotos): Likewise.
986	(define_label): Likewise.
987	(pending_xref_error): Likewise.
988	(smallest_type_quals_location): Likewise.
989	(grokdeclarator): Likewise.
990	(grokparms): Likewise.
991	(identifier_global_value): Likewise.
992	* c-typeck.c (set_nonincremental_init_from_string): Likewise.
993	(find_init_member): Likewise.
994
9952017-05-18  Marek Polacek  <polacek@redhat.com>
996
997	* c-decl.c (start_decl): Use false/true instead of 0/1.
998	(grokdeclarator): Likewise.
999	(finish_struct): Likewise.
1000	(start_function): Change the return type to bool.  Use false/true
1001	instead of 0/1.
1002	(declspecs_add_qual): Use UNKNOWN_LOCATION instead of 0.
1003	* c-tree.h (start_function): Update.
1004	* c-typeck.c (same_translation_unit_p): Change the return type to bool.
1005	(set_designator): Change the return type to bool.  Use false/true
1006	instead of 0/1.
1007
10082017-05-17  Marek Polacek  <polacek@redhat.com>
1009
1010	* c-decl.c: Use NULL_TREE instead of 0 where appropriate.
1011	* c-typeck.c: Likewise.
1012
10132017-05-17  Marek Polacek  <polacek@redhat.com>
1014
1015	PR sanitizer/80659
1016	* c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and
1017	DECL_IGNORED_P even for non-static compound literals.
1018
10192017-05-17  Martin Liska  <mliska@suse.cz>
1020
1021	* c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and
1022	use it instead of int type.
1023
10242017-05-17  Marek Polacek  <polacek@redhat.com>
1025
1026	* c-convert.c (convert): Replace c_save_expr with save_expr.  Don't
1027	call c_fully_fold.
1028	(convert) <case COMPLEX_TYPE>: Remove special handling of COMPLEX_TYPEs.
1029	* c-decl.c (grokdeclarator): Replace c_save_expr with save_expr.
1030	* c-fold.c (c_fully_fold_internal): Handle SAVE_EXPR.
1031	* c-parser.c (c_parser_declaration_or_fndef): Replace c_save_expr with
1032	save_expr.
1033	(c_parser_conditional_expression): Likewise.
1034	* c-tree.h (SAVE_EXPR_FOLDED_P): Define.
1035	* c-typeck.c (build_modify_expr): Replace c_save_expr with save_expr.
1036	(process_init_element): Likewise.
1037	(build_binary_op): Likewise.
1038	(handle_omp_array_sections_1): Likewise.
1039
10402017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
1041
1042	* c-parser.c (c_parser_omp_clause_num_gangs)
1043	(c_parser_omp_clause_num_workers)
1044	(c_parser_omp_clause_vector_length): Merge functions into...
1045	(c_parser_oacc_single_int_clause): ... this new function.  Adjust
1046	all users.
1047
10482017-05-11  Nathan Sidwell  <nathan@acm.org>
1049
1050	* gimple-parser.c: Don't #include tree-dump.h.
1051
10522017-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
1053
1054	PR testsuite/80580
1055	* gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.
1056
10572017-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
1058
1059	PR testsuite/80580
1060	* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
1061	incorrect __MEM syntax.
1062
10632017-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
1064
1065	PR testsuite/80580
1066	* gimple-parser.c (c_parser_gimple_unary_expression): Check argument
1067	type of unary '*'.
1068
10692017-05-09  Nathan Sidwell  <nathan@acm.org>
1070
1071	* c-tree.h (pushdecl): Declare.
1072
10732017-05-05  David Malcolm  <dmalcolm@redhat.com>
1074
1075	* c-decl.c (warn_defaults_to): Replace report_diagnostic
1076	with diagnostic_report_diagnostic.
1077	* c-errors.c (pedwarn_c99): Likewise.
1078	(pedwarn_c90): Likewise.
1079
10802017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
1081
1082        PR c++/80038
1083	* c-gimplify.c (c_gimplify_expr): Remove calls to
1084	cilk_gimplifY_call_params_in_spawned_fn.
1085
10862017-04-25  David Malcolm  <dmalcolm@redhat.com>
1087
1088	* c-parser.c (c_parser_struct_or_union_specifier): Add fix-it
1089	hint for removing extra semicolon.
1090
10912017-04-21  Jakub Jelinek  <jakub@redhat.com>
1092
1093	PR c/80468
1094	* c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not
1095	enabled, set specs->type to integer_type_node.
1096
10972017-04-03  Jonathan Wakely  <jwakely@redhat.com>
1098
1099	* c-array-notation.c: Fix typo in comment.
1100
11012017-03-29  Marek Polacek  <polacek@redhat.com>
1102
1103	PR c/79730
1104	* c-decl.c (finish_decl): Check VAR_P.
1105
11062017-03-27  Jakub Jelinek  <jakub@redhat.com>
1107
1108	PR middle-end/80162
1109	* c-tree.h (c_mark_addressable): Add array_ref_p argument.
1110	* c-typeck.c (c_mark_addressable): Likewise.  Look through
1111	VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
1112	to ARRAY_TYPE.
1113	(build_array_ref): Pass true as array_ref_p to c_mark_addressable.
1114
11152017-03-23  Marek Polacek  <polacek@redhat.com>
1116
1117	* c-tree.h: Remove a C_RID_YYCODE reference.
1118
11192017-03-21  Jakub Jelinek  <jakub@redhat.com>
1120
1121	PR c/80097
1122	* c-typeck.c (build_binary_op): Add EXCESS_PRECISION_EXPR only around
1123	optional COMPOUND_EXPR with ubsan instrumentation.
1124
11252017-03-17  Marek Polacek  <polacek@redhat.com>
1126
1127	* c-parser.c: Add C11 references.
1128
11292017-03-15  Marek Polacek  <polacek@redhat.com>
1130
1131	* c-parser.c (c_parser_enum_specifier): Remove redundant line.
1132
11332017-03-11  Marek Polacek  <polacek@redhat.com>
1134
1135	* c-decl.c (implicit_decl_warning): Add a comment.  Fix formatting.
1136
11372017-03-10  David Malcolm  <dmalcolm@redhat.com>
1138
1139	PR translation/79848
1140	* c-decl.c (declspecs_add_type): Simplify uses of "%<%s%>" to
1141	"%qs".
1142	* c-parser.c (c_parser_oacc_shape_clause): Likewise.
1143
11442017-03-09  Marek Polacek  <polacek@redhat.com>
1145
1146	PR sanitizer/79757
1147	* c-parser.c (c_parser_declaration_or_fndef): Don't sanitize old-style
1148	parameter declarations with initializers.
1149
11502017-03-09  Jakub Jelinek  <jakub@redhat.com>
1151
1152	PR c/79969
1153	* c-decl.c (start_enum): Adjust DECL_SOURCE_LOCATION of
1154	TYPE_STUB_DECL.
1155
11562017-03-07  Jakub Jelinek  <jakub@redhat.com>
1157
1158	PR c/79834
1159	* c-parser.c (c_parser_pragma): Use error_at instead of c_parser_error
1160	for "may only be used in compound statements" diagnostics, change it
1161	such that the same translatable string is used for all pragmas.  For
1162	PRAGMA_OACC_WAIT use "acc wait" rather than "acc enter data" in the
1163	diagnostics.
1164	(c_parser_omp_cancellation_point, c_parser_omp_target_update,
1165	c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Change
1166	"may only be used in compound statements" diagnostics, such that the
1167	same translatable string is used for all pragmas.
1168
11692017-03-04  Marek Polacek  <polacek@redhat.com>
1170
1171	PR c/79847
1172	* c-decl.c (implicit_decl_warning): Add missing space.
1173
11742017-03-03  Marek Polacek  <polacek@redhat.com>
1175
1176	PR c/79758
1177	* c-decl.c (store_parm_decls_oldstyle): Check if the element of
1178	current_function_prototype_arg_types is error_mark_node.  Fix
1179	formatting.  Use TREE_VALUE instead of TREE_TYPE.
1180
11812017-03-03  Jakub Jelinek  <jakub@redhat.com>
1182
1183	PR c/79837
1184	* c-parser.c (c_parser_omp_clause_reduction): Don't mention
1185	%<min%> or %<max%> in the diagnostics, instead mention identifier.
1186	(c_parser_omp_declare_reduction): Don't mention %<min%> in the
1187	diagnostics.
1188
1189	PR c/79836
1190	* c-parser.c (c_parser_generic_selection): Use %<_Generic%>
1191	instead of %<_Generic>.
1192	(c_parser_omp_ordered): Use %<depend%> instead of %<depend>.
1193	(c_parser_omp_target_exit_data): Use %<release%> instead of
1194	%<release>.
1195
11962017-02-28  Jakub Jelinek  <jakub@redhat.com>
1197
1198	* c-parser.c (c_parser_asm_statement): Use cond ? G_("...") : G_("...")
1199	instead of just cond ? "..." : "...".
1200	(c_parser_oacc_enter_exit_data): Use %s and ternary operator only
1201	for "enter"/"exit" keyword.
1202	(c_finish_oacc_routine): Don't use %s to supply portions of the
1203	message.
1204
12052017-02-24  Jakub Jelinek  <jakub@redhat.com>
1206
1207	PR c++/79588
1208	* c-parser.c (c_parser_postfix_expression_after_primary): Don't
1209	handle -Wrestrict here.
1210	* c-typeck.c (build_function_call_vec): Adjust
1211	check_function_arguments caller.
1212
12132017-02-23  Richard Biener  <rguenther@suse.de>
1214
1215	PR c/79684
1216	* gimple-parser.c (c_parser_gimple_statement): Use set_error
1217	to initialize c_exprs to return.
1218	(c_parser_gimple_binary_expression): Likewise.
1219	(c_parser_gimple_unary_expression): Likewise.
1220	(c_parser_gimple_postfix_expression): Likewise.
1221
12222017-02-22  Marek Polacek  <polacek@redhat.com>
1223
1224	PR c/79662
1225	* c-typeck.c (convert_arguments): Handle error_mark_node.
1226
12272017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1228
1229	* gimple-parser.c (c_parser_gimple_postfix_expression): Check return
1230	value of c_parser_parse_ssa_name against error_mark_node and emit
1231	error if ssa name is anonymous and written as default definition.
1232
12332017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1234
1235	* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
1236	FMA_EXPR.
1237
12382017-02-16  Jakub Jelinek  <jakub@redhat.com>
1239
1240	PR c++/79512
1241	* c-parser.c (c_parser_omp_target): For -fopenmp-simd
1242	ignore #pragma omp target even when not followed by identifier.
1243
12442017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1245
1246	* gimpler-parser.c (c_parser_gimple_statement): Handle ABS_EXPR.
1247	(c_parser_gimple_unary_expression): Likewise.
1248
12492017-02-13  Jakub Jelinek  <jakub@redhat.com>
1250
1251	* c-parser.c (c_parser_oacc_declare): Add missing space in
1252	diagnostics.
1253
12542017-02-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1255
1256	PR c/79478
1257	* gimple-parser.c (c_parser_gimple_postfix_expression): Call
1258	set_c_expr_source_range when parsing ssa-name.
1259
12602017-02-10  Prasad Ghangal  <prasad.ghangal@gmail.com>
1261	Richard Biener  <rguenther@suse.de>
1262
1263	* gimple-parser.c (c_parser_gimple_binary_expression): Avoid
1264	building IL when arguments are error_mark_node.
1265	(c_parser_gimple_unary_expression): Likewise.
1266	(c_parser_gimple_if_stmt): Likewise.
1267	(c_parser_gimple_switch_stmt): Likewise.
1268	(c_parser_gimple_return_stmt): Likewise.
1269	(c_parser_parse_ssa_name): When name lookup fails do not build
1270	an SSA name.  Use undeclared rather than not declared in error
1271	reporting.
1272
12732017-02-09  Marek Polacek  <polacek@redhat.com>
1274
1275	PR c/79428
1276	* c-parser.c (c_parser_omp_ordered): Call c_parser_skip_to_pragma_eol
1277	instead of c_parser_skip_until_found.
1278
12792017-02-09  Jakub Jelinek  <jakub@redhat.com>
1280
1281	PR c/79431
1282	* c-parser.c (c_parser_omp_declare_target): Don't invoke
1283	symtab_node::get on automatic variables.
1284
12852016-02-09  Nathan Sidwell  <nathan@codesourcery.com>
1286	    Chung-Lin Tang  <cltang@codesourcery.com>
1287
1288	* c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
1289	(c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
1290	semantic checking.
1291	* c-parser.c (c_parser_omp_for_loop): Accept tiling constructs.
1292
12932017-02-07  Richard Biener  <rguenther@suse.de>
1294
1295	* gimple-parser.c (c_parser_gimple_expr_list): Simplify.
1296	(c_parser_gimple_postfix_expression_after_primary):
1297	Do not use c_build_function_call_vec to avoid folding and promotion.
1298	Simplify.
1299
13002017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
1301
1302	PR lto/79061
1303	* c-decl.c (pop_scope): Pass main_input_filename to
1304	build_translation_unit_decl.
1305
13062017-01-24  David Malcolm  <dmalcolm@redhat.com>
1307
1308	* c-parser.c: Include "read-rtl-function.h" and
1309	"run-rtl-passes.h".
1310	(c_parser_declaration_or_fndef): Rename "gimple-pass-list" in
1311	grammar to gimple-or-rtl-pass-list.  Add rtl-function-definition
1312	production.  Update for renaming of field "gimple_pass" to
1313	"gimple_or_rtl_pass".  If __RTL was seen, call
1314	c_parser_parse_rtl_body.  Convert a timevar_push/pop pair
1315	to an auto_timevar, to cope with early exit.
1316	(c_parser_declspecs): Update RID_GIMPLE handling for renaming of
1317	field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of
1318	c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list.
1319	Handle RID_RTL.
1320	(c_parser_parse_rtl_body): New function.
1321	* c-tree.h (enum c_declspec_word): Add cdw_rtl.
1322	(struct c_declspecs): Rename field "gimple_pass" to
1323	"gimple_or_rtl_pass".  Add field "rtl_p".
1324	* gimple-parser.c (c_parser_gimple_pass_list): Rename to...
1325	(c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly.
1326	* gimple-parser.h (c_parser_gimple_pass_list): Rename to...
1327	(c_parser_gimple_or_rtl_pass_list): ...this.
1328
13292017-01-20  Marek Polacek  <polacek@redhat.com>
1330
1331	PR c/64279
1332	* c-typeck.c (build_conditional_expr): Warn about duplicated branches.
1333
13342017-01-13  Richard Biener  <rguenther@suse.de>
1335
1336	* gimple-parser.c (c_parser_gimple_compound_statement): Handle
1337	nops.
1338
13392017-01-13  Richard Biener  <rguenther@suse.de>
1340
1341	* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
1342	_Literal ( type-name ) number.
1343
13442017-01-12  Richard Biener  <rguenther@suse.de>
1345
1346	* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
1347	__MEM.
1348
13492017-01-11  Jakub Jelinek  <jakub@redhat.com>
1350
1351	PR c++/72813
1352	* c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing
1353	PCH file.
1354
13552017-01-11  Richard Biener  <rguenther@suse.de>
1356
1357	PR bootstrap/79052
1358	* gimple-parser.c (c_parser_gimple_switch_stmt): Add missing
1359	returns on parse errors.
1360
13612017-01-04  Marek Polacek  <polacek@redhat.com>
1362
1363	PR c++/64767
1364	* c-parser.c (c_parser_postfix_expression): Mark zero character
1365	constants by setting original_type in c_expr.
1366	* c-typeck.c (parser_build_binary_op): Warn when a pointer is compared
1367	with a zero character constant.
1368	(char_type_p): New function.
1369
13702017-01-04  David Malcolm  <dmalcolm@redhat.com>
1371
1372	* c-parser.c (c_parser_declaration_or_fndef): Create a
1373	rich_location at init_loc and parse it to start_init.
1374	(last_init_list_comma): New global.
1375	(c_parser_braced_init): Update last_init_list_comma when parsing
1376	commas.  Pass it to pop_init_level.  Pass location of closing
1377	brace to pop_init_level.
1378	(c_parser_postfix_expression_after_paren_type): Create a
1379	rich_location at type_loc and parse it to start_init.
1380	(c_parser_omp_declare_reduction): Likewise for loc.
1381	* c-tree.h (start_init): Add rich_location * param.
1382	(pop_init_level): Add location_t param.
1383	* c-typeck.c (struct initializer_stack): Add field
1384	"missing_brace_richloc".
1385	(start_init): Add richloc param, use it to initialize
1386	the stack node's missing_brace_richloc.
1387	(last_init_list_comma): New decl.
1388	(finish_implicit_inits): Pass last_init_list_comma to
1389	pop_init_level.
1390	(push_init_level): When finding missing open braces, add fix-it
1391	hints to the richloc.
1392	(pop_init_level): Add "insert_before" param and pass it
1393	when calling pop_init_level.  Add fixits about missing
1394	close braces to any richloc.  Use the richloc for the
1395	-Wmissing-braces warning.
1396	(set_designator): Pass last_init_list_comma to pop_init_level.
1397	(process_init_element): Likewise.
1398
13992017-01-01  Jakub Jelinek  <jakub@redhat.com>
1400
1401	Update copyright years.
1402
14032016-12-21  Jakub Jelinek  <jakub@redhat.com>
1404
1405	PR bootstrap/78817
1406	* c-typeck.c (build_function_call_vec): If check_function_arguments
1407	returns true, set TREE_NO_WARNING on CALL_EXPR.
1408
1409	PR c/77767
1410	* c-decl.c (grokdeclarator): If *expr is non-NULL, append expression
1411	to *expr instead of overwriting it.
1412
14132016-12-20  Richard Biener  <rguenther@suse.de>
1414
1415	* gimple-parser.c (c_parser_gimple_compound_statement): Improve
1416	error recovery.
1417	(c_parser_gimple_statement): Only build assigns for non-error
1418	stmts.
1419	(c_parser_gimple_postfix_expression_after): Improve error recovery.
1420
14212016-12-14  Martin Jambor  <mjambor@suse.cz>
1422
1423	* c-parser.c: Include omp-general.h and omp-offload.h instead of
1424	omp-low.h.
1425	(c_finish_oacc_routine): Adjusted call to
1426	get_oacc_fn_attrib, build_oacc_routine_dims and replace_oacc_fn_attrib
1427	to use their new names.
1428	(c_parser_oacc_enter_exit_data): Adjusted call to find_omp_clause to
1429	use its new name.
1430	(c_parser_oacc_update): Likewise.
1431	(c_parser_omp_simd): Likewise.
1432	(c_parser_omp_target_update): Likewise.
1433	* c-typeck.c: Include omp-general.h instead of omp-low.h.
1434	(c_finish_omp_cancel): Adjusted call to find_omp_clause to use its new
1435	name.
1436	(c_finish_omp_cancellation_point): Likewise.
1437	* gimple-parser.c: Do not include omp-low.h
1438
14392016-12-02  Cesar Philippidis  <cesar@codesourcery.com>
1440	    James Norris  <jnorris@codesourcery.com>
1441
1442	* c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
1443	EXIT_DATA,WAIT} are not used in compound statements.
1444	(c_parser_oacc_enter_exit_data): Update diagnostics.
1445
14462016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1447
1448	PR c++/71973
1449	* c-decl.c (diagnose_mismatched_decls): Use
1450	OPT_Wbuiltin_declaration_mismatch here too.
1451
14522016-11-18  Richard Sandiford  <richard.sandiford@arm.com>
1453	    Alan Hayward  <alan.hayward@arm.com>
1454	    David Sherwood  <david.sherwood@arm.com>
1455
1456	* c-decl.c (merge_decls): Use SET_DECL_MODE.
1457	(make_label, finish_struct): Likewise.
1458
14592016-11-14  Prasad Ghangal  <prasad.ghangal@gmail.com>
1460	    Richard Biener  <rguenther@suse.de>
1461
1462	* Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.
1463	* config-lang.in (gtfiles): Add c/c-parser.h.
1464	* c-tree.h (enum c_declspec_word): Add cdw_gimple.
1465	(struct c_declspecs): Add gimple_pass member and gimple_p flag.
1466	* c-parser.c (enum c_id_kind, struct c_token,
1467	c_parser_next_token_is, c_parser_next_token_is_not,
1468	c_parser_next_token_is_keyword,
1469	enum c_lookahead_kind, enum c_dtr_syn, enum c_parser_prec):
1470	Split out to ...
1471	* c-parser.h: ... new header.
1472	* c-parser.c: Include c-parser.h and gimple-parser.h.
1473	(c_parser_peek_token, c_parser_peek_2nd_token,
1474	c_token_starts_typename, c_parser_next_token_starts_declspecs,
1475	c_parser_next_tokens_start_declaration, c_parser_consume_token,
1476	c_parser_error, c_parser_require, c_parser_skip_until_found,
1477	c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
1478	c_parser_type_name): Export.
1479	(c_parser_tokens_buf): New function.
1480	(c_parser_error): Likewise.
1481	(c_parser_set_error): Likewise.
1482	(c_parser_declspecs): Handle RID_GIMPLE.
1483	(c_parser_declaration_or_fndef): Parse __GIMPLE marked body
1484	via c_parser_parse_gimple_body.
1485	* c-parser.h (c_parser_peek_token, c_parser_peek_2nd_token,
1486	c_token_starts_typename, c_parser_next_token_starts_declspecs,
1487	c_parser_next_tokens_start_declaration, c_parser_consume_token,
1488	c_parser_error, c_parser_require, c_parser_skip_until_found,
1489	c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
1490	c_parser_type_name): Declare.
1491	(struct c_parser): Declare forward.
1492	(c_parser_tokens_buf): Declare.
1493	(c_parser_error): Likewise.
1494	(c_parser_set_error): Likewise.
1495	* gimple-parser.c: New file.
1496	* gimple-parser.h: Likewise.
1497
14982016-11-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1499
1500	PR c/35503
1501	* c-parser.c (c_parser_postfix_expression_after_primary): Call
1502	warn_for_restrict.
1503
15042016-09-11  Le-Chun Wu  <lcwu@google.com>
1505	    Mark Wielaard  <mjw@redhat.com>
1506
1507	* c-decl.c (warn_if_shadowing): Use the warning code corresponding
1508	to the given -Wshadow= variant.
1509
15102016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1511
1512	* c-typeck.c: Include memmodel.h.
1513
15142016-10-13  Jakub Jelinek  <jakub@redhat.com>
1515
1516	PR target/77957
1517	* c-objc-common.h (LANG_HOOKS_GETDECLS): Use hook_tree_void_null
1518	instead of lhd_return_null_tree_v.
1519
15202016-10-07  Bernd Schmidt  <bschmidt@redhat.com>
1521
1522	PR c++/69733
1523	* c-decl.c (smallest_type_quals_location): New static function.
1524	(grokdeclarator): Try to find the correct location for an ignored
1525	qualifier.
1526
15272016-09-26  Marek Polacek  <polacek@redhat.com>
1528
1529	PR c/7652
1530	* c-decl.c (pop_scope): Add gcc_fallthrough.
1531
15322016-09-26  Marek Polacek  <polacek@redhat.com>
1533
1534	PR c/7652
1535	* c-parser.c (struct c_token): Add flags field.
1536	(c_lex_one_token): Pass it to c_lex_with_flags.
1537	(c_parser_declaration_or_fndef): Turn __attribute__((fallthrough));
1538	into IFN_FALLTHROUGH.
1539	(c_parser_label): Set FALLTHROUGH_LABEL_P on labels.  Handle
1540	attribute fallthrough after a case label or default label.
1541	(c_parser_statement_after_labels): Handle RID_ATTRIBUTE.
1542
15432016-09-24  Marek Polacek  <polacek@redhat.com>
1544
1545	PR c/77490
1546	* c-typeck.c (build_unary_op): Warn about bit not on expressions that
1547	have boolean value.  Warn about ++/-- on booleans.
1548
15492016-09-23  Jakub Jelinek  <jakub@redhat.com>
1550
1551	* c-parser.c (incomplete_record_decls): Remove unnecessary
1552	= vNULL initialization of file scope vec.
1553
15542016-09-16  Marek Polacek  <polacek@redhat.com>
1555
1556	* c-typeck.c (lvalue_p): Use true and false instead of 1 and 0.
1557
15582016-09-14  Marek Polacek  <polacek@redhat.com>
1559
1560	* c-array-notation.c (create_cmp_incr): Use false instead of 0.
1561	(fix_array_notation_expr): Likewise.
1562	* c-decl.c (finish_decl): Likewise.
1563	* c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
1564	* c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
1565	(function_to_pointer_conversion): Use false instead of 0.
1566	(convert_lvalue_to_rvalue): Likewise.
1567	(parser_build_unary_op): Likewise.
1568	(build_atomic_assign): Likewise.
1569	(build_unary_op): Change nonconvert parameter type to bool, use
1570	true/false instead of 1/0.
1571	(build_binary_op): Use true instead of 1.
1572
15732016-09-13  David Malcolm  <dmalcolm@redhat.com>
1574
1575	* c-parser.c (c_parser_declaration_or_fndef): Update for renaming
1576	of add_fixit_insert to add_fixit_insert_before.
1577
15782016-09-13  Marek Polacek  <polacek@redhat.com>
1579
1580	* c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT.  Use
1581	it.
1582
15832016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1584
1585	PR c++/77496
1586	* c-parser.c (c_parser_conditional_expression): Pass the rightmost
1587	COMPOUND_EXPR to warn_for_omitted_condop.
1588
15892016-09-07  David Malcolm  <dmalcolm@redhat.com>
1590
1591	* c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
1592	c_get_substring_location for this new langhook.
1593
15942016-09-02  Jakub Jelinek  <jakub@redhat.com>
1595
1596	PR c/65467
1597	* c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
1598	flag_openmp.
1599	(c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
1600	instead of mark_exp_read on low_bound/length expression.
1601	(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
1602	c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
1603	c_parser_omp_clause_priority, c_parser_omp_clause_hint,
1604	c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
1605	c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
1606	c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
1607	c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
1608	c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
1609	c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
1610	c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
1611	instead of mark_expr_read.
1612	(c_parser_omp_declare_reduction): Reject _Atomic qualified types.
1613	* c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
1614	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
1615	* c-tree.h (c_omp_clause_copy_ctor): New prototype.
1616	* c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
1617	array section bases outside of depend clause, for depend clause
1618	use convert_lvalue_to_rvalue on the base.
1619	(c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
1620	linear, aligned, map, to and from clauses.
1621	(c_omp_clause_copy_ctor): New function.
1622
16232016-09-01  Marek Polacek  <polacek@redhat.com>
1624
1625	PR c/7652
1626	* c-typeck.c (composite_type): Add FALLTHRU comment.
1627
16282016-08-31  David Malcolm  <dmalcolm@redhat.com>
1629
1630	* c-parser.c (c_parser_declaration_or_fndef): Add trailing space
1631	to the insertion fixits for "struct", "union", and "enum".
1632
16332016-08-30  David Malcolm  <dmalcolm@redhat.com>
1634
1635	* c-decl.c (implicit_decl_warning): Use add_fixit_replace
1636	rather than add_fixit_misspelled_id.
1637	(undeclared_variable): Likewise.
1638	* c-parser.c (c_parser_declaration_or_fndef): Likewise.  Remove
1639	now-redundant "here" params from add_fixit_insert method calls.
1640	(c_parser_parameter_declaration): Likewise.
1641	* c-typeck.c (build_component_ref): Remove now-redundant range
1642	param from add_fixit_replace method calls.
1643
16442016-08-25  Marek Polacek  <polacek@redhat.com>
1645
1646	* c-typeck.c (parser_build_binary_op): Pass LHS to
1647	warn_logical_not_parentheses.
1648
16492016-08-25  Marek Polacek  <polacek@redhat.com>
1650
1651	PR c/77323
1652	* c-decl.c (declspecs_add_type): Set typespec_word even when __intN
1653	or _FloatN or _FloatNx is not supported.
1654	(finish_declspecs): Set type to integer_type_node when _FloatN or
1655	_FloatNx is not supported.
1656
16572016-08-19  Joseph Myers  <joseph@codesourcery.com>
1658
1659	PR c/32187
1660	* c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
1661	(struct c_declspecs): Add field floatn_nx_idx.
1662	* c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
1663	and _FloatNx type specifiers.
1664	* c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
1665	(c_parser_declspecs, c_parser_attribute_any_word)
1666	(c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
1667	* c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
1668	(convert_arguments): Avoid promoting _FloatN and _FloatNx types
1669	narrower than double.
1670
16712016-08-12  Jakub Jelinek  <jakub@redhat.com>
1672	    Martin Liska  <mliska@suse.cz>
1673
1674	PR c/67410
1675	* c-typeck.c (set_nonincremental_init_from_string): Use / instead of
1676	% to determine val element to change.  Assert that
1677	wchar_bytes * charwidth fits into val array.
1678
16792016-08-12  Marek Polacek  <polacek@redhat.com>
1680
1681	PR c/7652
1682	* c-parser.c (c_parser_external_declaration): Add FALLTHRU.
1683	(c_parser_postfix_expression): Likewise.
1684	* c-typeck.c (build_unary_op): Adjust fall through comment.
1685	(c_mark_addressable): Likewise.
1686
16872016-08-11  Jakub Jelinek  <jakub@redhat.com>
1688
1689	PR c/72816
1690	* c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
1691	array member through typedef, for orig_qual_indirect == 0 clear
1692	orig_qual_type.
1693
16942016-08-08  David Malcolm  <dmalcolm@redhat.com>
1695
1696	PR c/64955
1697	* c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
1698	this up to selftest::run_c_tests.
1699	(selftest::run_c_tests): New function.
1700
17012016-08-04  Thomas Schwinge  <thomas@codesourcery.com>
1702
1703	* c-parser.c (struct oacc_routine_data): Add error_seen and
1704	fndecl_seen members.
1705	(c_finish_oacc_routine): Use these.
1706	(c_parser_declaration_or_fndef): Adjust.
1707	(c_parser_oacc_routine): Likewise.  Support more C language
1708	constructs, and improve diagnostics.  Move pragma context
1709	checking...
1710	(c_parser_pragma): ... here.
1711
1712	* c-parser.c (struct oacc_routine_data): New.
1713	(c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
1714	Simplify code.
1715	(c_finish_oacc_routine): Likewise.  Don't attach clauses to "omp
1716	declare target" attribute.
1717
17182016-08-01  Jan Beulich  <jbeulich@suse.com>
1719
1720	* c-fold.c (c_fully_fold_internal): Also emit shift count
1721	warnings for vector types.
1722	* c-typeck.c (build_binary_op): Likewise.
1723
17242016-07-29  Marek Polacek  <polacek@redhat.com>
1725
1726	PR c/71742
1727	* c-decl.c (finish_struct): Rephrase an error message.
1728
1729	PR c/71853
1730	* c-parser.c (c_parser_switch_statement): Initialize ce.original_type
1731	to error node for invalid code.
1732
1733	PR c/71573
1734	* c-decl.c (implicitly_declare): Return decl early not only for
1735	error_mark_nodes, but for anything that is not a FUNCTION_DECL.
1736
17372016-07-29  Jakub Jelinek  <jakub@redhat.com>
1738
1739	PR c/71969
1740	* c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
1741	on GNU extern inline functions.
1742
17432016-07-29  Marek Polacek  <polacek@redhat.com>
1744
1745	PR c/71583
1746	* c-parser.c (c_parser_postfix_expression_after_paren_type): Also
1747	check expr.value.
1748
17492016-07-22  Uros Bizjak  <ubizjak@gmail.com>
1750
1751	* c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
1752
17532016-07-20  David Malcolm  <dmalcolm@redhat.com>
1754
1755	* c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
1756	spellcheck-tree.h
1757	(best_macro_match): Likewise, converting from a typedef to a
1758	subclass.
1759	(find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
1760	(lookup_name_fuzzy): Update for change of best_macro_match to a
1761	subclass with a ctor that calls cpp_forall_identifiers.
1762
17632016-07-20  David Malcolm  <dmalcolm@redhat.com>
1764
1765	* c-decl.c (implicit_decl_warning): Update for conversion of
1766	return type of lookup_name_fuzzy to const char *.
1767	(undeclared_variable): Likewise.
1768	(lookup_name_fuzzy): Convert return type from tree to
1769	const char *.
1770	* c-parser.c (c_parser_declaration_or_fndef): Update for
1771	conversion of return type of lookup_name_fuzzy to const char *.
1772	(c_parser_parameter_declaration): Likewise.
1773
17742016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
1775
1776	* c-parser.c (c_parser_oacc_declare): Don't scan for
1777	GOMP_MAP_POINTER.
1778	* c-typeck.c (handle_omp_array_sections): Mark data clauses with
1779	GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
1780	zero-length subarrays.
1781
17822016-07-15  Jakub Jelinek  <jakub@redhat.com>
1783
1784	PR c/71858
1785	* c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
1786	instead of FUZZY_LOOKUP_NAME.
1787	(lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
1788	FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.
1789
17902016-07-14  Jakub Jelinek  <jakub@redhat.com>
1791
1792	PR c/71858
1793	* c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.
1794
17952016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1796
1797	* c-parser.c (c_parser_generic_selection): Make type of variable
1798	auto_vec.
1799	(c_parser_omp_declare_simd): Likewise.
1800
18012016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1802
1803	* c-decl.c (struct c_struct_parse_info): Change member types
1804	from vec to auto_vec.
1805	(start_struct): Adjust.
1806	(finish_struct): Likewise.
1807
18082016-07-02  Jakub Jelinek  <jakub@redhat.com>
1809
1810	PR c/71719
1811	* c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
1812
18132016-06-29  Thomas Schwinge  <thomas@codesourcery.com>
1814
1815	* c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
1816	Move pragma context checking into...
1817	(c_parser_omp_cancellation_point): ... here, and improve
1818	diagnostic messages.
1819	* c-typeck.c (c_finish_omp_cancel)
1820	(c_finish_omp_cancellation_point): Improve diagnostic messages.
1821
18222016-06-29  Jakub Jelinek  <jakub@redhat.com>
1823
1824	PR c/71685
1825	* c-typeck.c (c_build_qualified_type): Don't clear
1826	C_TYPE_INCOMPLETE_VARS for the main variant.
1827
18282016-06-28  Martin Sebor  <msebor@redhat.com>
1829
1830	PR c/71552
1831	* c-typeck.c (output_init_element): Diagnose incompatible types
1832	before non-constant initializers.
1833
18342016-06-28  Jakub Jelinek  <jakub@redhat.com>
1835
1836	* Make-lang.in: Don't cat ../stage_current if it does not exist.
1837
18382016-06-23  Andi Kleen  <ak@linux.intel.com>
1839
1840	* Make-lang.in: Add support for autofdo.
1841
18422016-06-22  David Malcolm  <dmalcolm@redhat.com>
1843
1844	PR c/70339
1845	* c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
1846	(implicit_decl_warning): When issuing warnings for implicit
1847	declarations, attempt to provide a suggestion via
1848	lookup_name_fuzzy.
1849	(undeclared_variable): Likewise when issuing errors.
1850	(lookup_name_in_scope): Likewise.
1851	(struct edit_distance_traits<cpp_hashnode *>): New struct.
1852	(best_macro_match): New typedef.
1853	(find_closest_macro_cpp_cb): New function.
1854	(lookup_name_fuzzy): New function.
1855	* c-parser.c: Include gcc-rich-location.h.
1856	(c_token_starts_typename): Split out case CPP_KEYWORD into...
1857	(c_keyword_starts_typename): ...this new function.
1858	(c_parser_declaration_or_fndef): When issuing errors about
1859	missing "struct" etc, add a fixit.  For other kinds of errors,
1860	attempt to provide a suggestion via lookup_name_fuzzy.
1861	(c_parser_parms_declarator): When looking ahead to detect typos in
1862	type names, also reject CPP_KEYWORD.
1863	(c_parser_parameter_declaration): When issuing errors about
1864	unknown type names, attempt to provide a suggestion via
1865	lookup_name_fuzzy.
1866	* c-tree.h (c_keyword_starts_typename): New prototype.
1867
18682016-06-20  Joseph Myers  <joseph@codesourcery.com>
1869
1870	PR c/71601
1871	* c-typeck.c (build_conditional_expr): Return error_mark_node if
1872	c_common_type returns error_mark_node.
1873
18742016-06-19  Martin Sebor  <msebor@redhat.com>
1875
1876	PR c/69507
1877	* c-parser.c (c_parser_alignof_expression): Avoid diagnosing
1878	__alignof__ (expression).
1879
18802016-06-14  David Malcolm  <dmalcolm@redhat.com>
1881
1882	* c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h.
1883
18842016-06-14  David Malcolm  <dmalcolm@redhat.com>
1885
1886	* c-typeck.c (build_component_ref): Simplify fixit code by
1887	using gcc_rich_location::add_fixit_misspelled_id.
1888	(set_init_label): Likewise.
1889
18902016-06-13  David Malcolm  <dmalcolm@redhat.com>
1891
1892	* c-parser.c (c_parser_initelt): Provide location of name for new
1893	location_t param of set_init_label.
1894	* c-tree.h (set_init_label): Add location_t param.
1895	* c-typeck.c (set_init_index): Add "fieldname_loc" location_t
1896	param and use it when issuing error messages about unrecognized
1897	field names.  Attempt to provide a fixit hint if appropriate,
1898	otherwise update the error message to provide the type name.
1899
19002016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
1901
1902	PR c/71381
1903	* c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
1904	Loosen checking.
1905
19062016-06-08  Martin Sebor  <msebor@redhat.com>
1907	    Jakub Jelinek  <jakub@redhat.com>
1908
1909	PR c++/70507
1910	PR c/68120
1911	* c-typeck.c (convert_arguments): Don't promote last argument
1912	of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
1913
19142016-06-08  Marek Polacek  <polacek@redhat.com>
1915
1916	PR c/71418
1917	* c-decl.c (grokdeclarator): Check TYPE_P.
1918
1919	PR c/71426
1920	* c-decl.c (get_parm_info): Don't crash on an assert on invalid
1921	code.
1922
19232016-06-07  David Malcolm  <dmalcolm@redhat.com>
1924
1925	* c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
1926	and structure element reference, capture the location of the
1927	element name token and pass it to build_component_ref.
1928	(c_parser_postfix_expression_after_primary): Likewise for
1929	structure element dereference.
1930	(c_parser_omp_variable_list): Likewise for
1931	OMP_CLAUSE_{_CACHE, MAP, FROM, TO},
1932	* c-tree.h (build_component_ref): Add location_t param.
1933	* c-typeck.c (build_component_ref): Add location_t param
1934	COMPONENT_LOC.  Use it, if available, when issuing hints about
1935	mispelled member names to provide a fixit replacement hint.
1936
19372016-06-06  Marek Polacek  <polacek@redhat.com>
1938
1939	PR c/71362
1940	* c-parser.c (c_parser_direct_declarator): Set location.
1941
19422016-06-06  Marek Polacek  <polacek@redhat.com>
1943
1944	* c-typeck.c (comptypes_internal): Handle comparisons of
1945	INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes.  Don't check
1946	TYPE_REF_CAN_ALIAS_ALL.
1947
19482016-06-03  Chung-Lin Tang  <cltang@codesourcery.com>
1949
1950	* c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
1951	arguments as addressable when async clause exists.
1952
19532016-05-30  Jakub Jelinek  <jakub@redhat.com>
1954
1955	PR c++/71349
1956	* c-parser.c (c_parser_omp_for): Don't disallow nowait clause
1957	when combined with target construct.
1958
19592016-05-26  Jakub Jelinek  <jakub@redhat.com>
1960
1961	* c-parser.c (c_parser_omp_clause_schedule): Warn if
1962	OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
1963
19642016-05-25  Marek Polacek  <polacek@redhat.com>
1965
1966	PR c/71265
1967	* c-decl.c (c_make_fname_decl): Don't check seen_error.
1968
1969	PR c/71266
1970	* c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.
1971
19722016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
1973
1974	* c-parser.c (c_parser_oacc_declare): Add support for
1975	GOMP_MAP_FIRSTPRIVATE_POINTER.
1976	* c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
1977	argument with enum c_omp_region_type ort.
1978	(handle_omp_array_sections): Likewise.  Update call to
1979	handle_omp_array_sections_1.
1980	(c_finish_omp_clauses): Add specific errors and warning messages for
1981	OpenACC.  Use firsrtprivate pointers for OpenACC subarrays.  Update
1982	call to handle_omp_array_sections.
1983
19842016-05-24  Thomas Schwinge  <thomas@codesourcery.com>
1985
1986	* c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
1987
19882016-05-24  Richard Biener  <rguenther@suse.de>
1989
1990	PR middle-end/70434
1991	PR c/69504
1992	* c-typeck.c (build_array_ref): Do not complain about indexing
1993	non-lvalue vectors.  Adjust for function name change.
1994
19952016-05-20  Martin Sebor  <msebor@redhat.com>
1996
1997	PR c/71115
1998	* c-typeck.c (error_init): Use
1999	expansion_point_location_if_in_system_header.
2000	(warning_init): Same.
2001
20022016-05-19  David Malcolm  <dmalcolm@redhat.com>
2003
2004	PR c/71171
2005	* c-parser.c (c_parser_generic_selection): Use c_expr::set_error
2006	in error-handling.
2007	(c_parser_postfix_expression): Likewise.
2008	* c-tree.h (c_expr::set_error): New method.
2009	* c-typeck.c (parser_build_binary_op): In error-handling, ensure
2010	that result's range is initialized.
2011
20122016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
2013
2014	* c-typeck.c (parser_build_unary_op): Fix formatting.
2015
20162016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
2017
2018	* c-decl.c (grokdeclarator): Remove errmsg and use of
2019	targetm.invalid_return_type.
2020	(grokparms): Remove errmsg and use of
2021	targetm.invalid_parameter_type.
2022
20232016-05-13  Joseph Myers  <joseph@codesourcery.com>
2024
2025	* c-decl.c (grokdeclarator): For C11, discard qualifiers on
2026	function return type.
2027
20282016-05-12  Marek Polacek  <polacek@redhat.com>
2029
2030	PR c/70756
2031	* c-decl.c (build_compound_literal): Pass LOC down to
2032	c_incomplete_type_error.
2033	* c-tree.h (require_complete_type): Adjust declaration.
2034	(c_incomplete_type_error): Likewise.
2035	* c-typeck.c (require_complete_type): Add location parameter, pass it
2036	down to c_incomplete_type_error.
2037	(c_incomplete_type_error): Add location parameter, pass it down to
2038	error_at.
2039	(build_component_ref): Pass location down to c_incomplete_type_error.
2040	(default_conversion): Pass location down to require_complete_type.
2041	(build_array_ref): Likewise.
2042	(build_function_call_vec): Likewise.
2043	(convert_arguments): Likewise.
2044	(build_unary_op): Likewise.
2045	(build_c_cast): Likewise.
2046	(build_modify_expr): Likewise.
2047	(convert_for_assignment): Likewise.
2048	(c_finish_omp_clauses): Likewise.
2049
20502016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
2051
2052	PR c/43651
2053	* c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
2054	is enabled.
2055	* c-errors.c (pedwarn_c90): Return true if warned.
2056	* c-tree.h (pedwarn_c90): Change return type to bool.
2057	(enum c_declspec_word): Add new enumerator cdw_atomic.
2058
20592016-05-11  Marek Polacek  <polacek@redhat.com>
2060
2061	PR c++/71024
2062	* c-decl.c (diagnose_mismatched_decls): Factor out code to
2063	diagnose_mismatched_attributes and call it.
2064
20652016-05-10  Marek Polacek  <polacek@redhat.com>
2066
2067	PR c/70255
2068	* c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute
2069	on a declaration following the definition.
2070
20712016-05-05  Jakub Jelinek  <jakub@redhat.com>
2072
2073	* c-parser.c (c_parser_switch_statement): Add IF_P argument,
2074	parse it through to c_parser_c99_block_statement.
2075	(c_parser_statement_after_labels): Adjust c_parser_switch_statement
2076	caller.
2077
20782016-05-04  Marek Polacek  <polacek@redhat.com>
2079
2080	* c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
2081	OPT_Wdangling_else.
2082
20832016-05-04  Marek Polacek  <polacek@redhat.com>
2084
2085	PR c/48778
2086	* c-typeck.c (build_binary_op): Don't issue -Waddress warnings
2087	for macro expansions.
2088
20892016-05-03  Marek Polacek  <polacek@redhat.com>
2090
2091	PR c/70859
2092	* c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
2093	check_builtin_function_arguments.
2094
20952016-05-03  Richard Biener  <rguenther@suse.de>
2096
2097	* Make-lang.in (cc1-checksum.c): For stage-final re-use
2098	the checksum from the previous stage.
2099
21002016-05-02  Cesar Philippidis  <cesar@codesourcery.com>
2101
2102	* c-parser.c (c_parser_oacc_all_clauses): Update call to
2103	c_finish_omp_clauses.
2104	(c_parser_omp_all_clauses): Likewise.
2105	(c_parser_oacc_cache): Likewise.
2106	(c_parser_oacc_loop): Likewise.
2107	(omp_split_clauses): Likewise.
2108	(c_parser_omp_declare_target): Likewise.
2109	(c_parser_cilk_all_clauses): Likewise.
2110	(c_parser_cilk_for): Likewise.
2111	* c-typeck.c (c_finish_omp_clauses): Replace bool arguments
2112	is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.
2113
21142016-05-02  Marek Polacek  <polacek@redhat.com>
2115
2116	PR c/70851
2117	* c-decl.c (grokdeclarator): Diagnose when array's size has an
2118	incomplete type.
2119
21202016-04-29  Cesar Philippidis  <cesar@codesourcery.com>
2121
2122	PR middle-end/70626
2123	* c-parser.c (c_parser_oacc_loop): Don't augment mask with
2124	OACC_LOOP_CLAUSE_MASK.
2125	(c_parser_oacc_kernels_parallel): Update call to
2126	c_oacc_split_loop_clauses.
2127
21282016-04-28  Andrew MacLeod  <amacleod@redhat.com>
2129
2130	* c-array-notation.c (fix_builtin_array_notation_fn): Fix final
2131	argument to build_modify_expr in two cases.
2132
21332016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
2134
2135	* c-parser.c (c_parser_postfix_expression_after_primary): Call
2136	warn_for_memset instead of warning directly here.
2137
21382016-04-26  Marek Polacek  <polacek@redhat.com>
2139
2140	PR c/67784
2141	* c-parser.c (c_parser_maybe_reclassify_token): New function factored
2142	out of ...
2143	(c_parser_for_statement): ... here.
2144	(c_parser_if_statement): Use it.
2145	(c_parser_switch_statement): Use it.
2146	(c_parser_while_statement): Use it.
2147
2148	PR c/70791
2149	* c-decl.c (pushdecl): Pass LOCUS down to warning.
2150
21512016-04-20  Ilya Verbin  <ilya.verbin@intel.com>
2152
2153	PR c++/69363
2154	* c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
2155	instead of c_finish_cilk_clauses.
2156	* c-tree.h (c_finish_omp_clauses): Add new default argument.
2157	* c-typeck.c (c_finish_omp_clauses): Add new argument.  Allow
2158	floating-point variables in the linear clause for Cilk Plus.
2159
21602016-04-18  Michael Matz  <matz@suse.de>
2161
2162	* c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
2163	(grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.
2164
21652016-04-15  Marek Polacek  <polacek@redhat.com>
2166
2167	PR c/70671
2168	* c-typeck.c (build_unary_op): Pass location down to error and
2169	warning call.
2170
21712016-04-15  Jakub Jelinek  <jakub@redhat.com>
2172
2173	PR c/70436
2174	* c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
2175	where needed.
2176	(c_parser_external_declaration, c_parser_struct_or_union_specifier,
2177	c_parser_parameter_declaration, c_parser_compound_statement_nostart,
2178	c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
2179	Adjust c_parser_pragma callers.
2180	(c_parser_statement_after_labels): Likewise.  Adjust c_parser_cilk_for
2181	caller.
2182	(c_parser_omp_structured_block): Add IF_P argument, pass it down to
2183	c_parser_statement.
2184	(c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
2185	c_parser_oacc_kernels_parallel, c_parser_omp_critical,
2186	c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
2187	c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
2188	c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
2189	c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
2190	c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
2191	c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
2192	down where needed.
2193	(c_parser_omp_for_loop): Likewise.  Clear IF_P if nbraces.
2194	(c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
2195	calls.
2196
21972016-04-13  Marek Polacek  <polacek@redhat.com>
2198
2199	PR c/70436
2200	* c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
2201	adjust callers.
2202	(c_parser_statement): Likewise.
2203	(c_parser_c99_block_statement): Likewise.
2204	(c_parser_while_statement): Likewise.
2205	(c_parser_for_statement): Likewise.
2206	(c_parser_if_body): Don't set IF_P here.
2207	(c_parser_if_statement): Add IF_P argument.  Set IF_P here.  Warn
2208	about dangling else here.
2209	* c-tree.h (c_finish_if_stmt): Adjust declaration.
2210	* c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter.  Don't
2211	warn about dangling else here.
2212
22132016-04-04  Marek Polacek  <polacek@redhat.com>
2214
2215	PR c/70307
2216	* c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.
2217
22182016-03-31  Marek Polacek  <polacek@redhat.com>
2219
2220	PR c/70297
2221	* c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
2222
22232016-03-18  David Malcolm  <dmalcolm@redhat.com>
2224
2225	PR c/70281
2226	* c-parser.c (c_parser_postfix_expression): Set the source range
2227	for uses of "__builtin_types_compatible_p".
2228
22292016-03-17  Jakub Jelinek  <jakub@redhat.com>
2230
2231	PR c/70280
2232	* c-typeck.c (composite_type): Don't count void_list_node
2233	into len, if the list is terminated by void_list_node, start
2234	with void_list_node instead of NULL for newargs.  Stop
2235	at void_list_node.
2236
22372016-03-16  Marek Polacek  <polacek@redhat.com>
2238
2239	PR c/70093
2240	* c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
2241	nested functions returning VM types.
2242
22432016-03-09  Cesar Philippidis  <cesar@codesourcery.com>
2244
2245	* c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
2246	when calling c_finish_omp_clauses.
2247
22482016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
2249
2250	PR c/69824
2251	* c-decl.c (get_parm_info): Don't queue implicit function declarations
2252	for later.
2253
22542016-03-04  Marek Polacek  <polacek@redhat.com>
2255
2256	PR c/69798
2257	* c-parser.c (c_parser_postfix_expression): Call
2258	c_parser_cast_expression rather than c_parser_postfix_expression.
2259
22602016-03-01  Jakub Jelinek  <jakub@redhat.com>
2261
2262	PR c/69796
2263	PR c/69974
2264	* c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
2265	of incomplete decls to error_mark_node.
2266
22672016-02-24  Marek Polacek  <polacek@redhat.com>
2268
2269	PR c/69819
2270	* c-decl.c (finish_decl): Don't update the copy of the type of a
2271	different decl type.
2272
22732016-02-23  Jakub Jelinek  <jakub@redhat.com>
2274
2275	PR objc/69844
2276	* c-parser.c (c_parser_for_statement): Properly handle ObjC classes
2277	in id_kind reclassification.
2278
22792016-02-16  Jakub Jelinek  <jakub@redhat.com>
2280
2281	PR c/69835
2282	* c-typeck.c (build_binary_op): Revert 2015-09-09 change.
2283
22842016-02-16  James Norris  <jnorris@codesourcery.com>
2285
2286	PR c/64748
2287	* c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
2288
22892016-02-12  Bernd Schmidt  <bschmidt@redhat.com>
2290
2291	* c-decl.c (build_null_declspecs): Zero the entire struct.
2292
2293	PR c/69522
2294	* c-parser.c (c_parser_braced_init): New arg outer_obstack.  All
2295	callers changed.  If nested_p is true, use it to call
2296	finish_implicit_inits.
2297	* c-tree.h (finish_implicit_inits): Declare.
2298	* c-typeck.c (finish_implicit_inits): New function.  Move code
2299	from ...
2300	(push_init_level): ... here.
2301	(set_designator, process_init_element): Call finish_implicit_inits.
2302
23032016-02-11  Jakub Jelinek  <jakub@redhat.com>
2304
2305	PR c/69768
2306	* c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
2307	arguments for -Waddress warning.
2308
23092016-02-04  Jakub Jelinek  <jakub@redhat.com>
2310
2311	PR c/69669
2312	* c-decl.c (finish_enum): When honoring mode attribute,
2313	make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
2314
23152016-01-29  Jakub Jelinek  <jakub@redhat.com>
2316
2317	PR debug/69518
2318	* c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
2319	all type variants, not just TYPE_MAIN_VARIANT.
2320
23212016-01-27  Jakub Jelinek  <jakub@redhat.com>
2322
2323	PR debug/66869
2324	* c-decl.c (c_write_global_declarations_1): Warn with
2325	warn_unused_function if static prototype without definition
2326	is not C_DECL_USED.
2327
23282016-01-27  Marek Polacek  <polacek@redhat.com>
2329
2330	PR c/68062
2331	* c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
2332	to unsigned, if needed.  Add -Wsign-compare warning.
2333
23342016-01-26  Jakub Jelinek  <jakub@redhat.com>
2335
2336	PR tree-optimization/69483
2337	* c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.
2338
23392016-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2340
2341	PR c/24293
2342	* c-tree.h (incomplete_record_decls): Declare.
2343	* c-parser.c (incomplete_record_decls): Define.
2344	(c_parser_translation_unit): Iterate through incomplete_record_decls and
2345	report error if any decl has zero size.
2346	* c-decl.c (finish_decl): Append static decl with incomplete struct/union
2347	or enum type to incomplete_record_decls.
2348
23492016-01-14  Tom de Vries  <tom@codesourcery.com>
2350
2351	PR tree-optimization/68773
2352	* c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
2353	set force_output.
2354
23552016-01-14  Marek Polacek  <polacek@redhat.com>
2356
2357	PR c/69262
2358	* c-decl.c (grokdeclarator): Provide more information for invalid
2359	array declarations.
2360
23612016-01-06  David Malcolm  <dmalcolm@redhat.com>
2362
2363	* c-parser.c (c_parser_unary_expression): For dereferences, build
2364	a combined location before calling build_indirect_ref, so that
2365	error reports cover the full range, manually updating the c_expr
2366	src_range.
2367
23682016-01-06  Marek Polacek  <polacek@redhat.com>
2369
2370	PR sanitizer/69099
2371	* c-convert.c (convert) [INTEGER_TYPE]: Drop ARG.  Don't pass ARG to
2372	ubsan_instrument_float_cast.  Fold EXPR.  Use NULL_TREE instead of
2373	NULL.
2374
23752016-01-04  Jakub Jelinek  <jakub@redhat.com>
2376
2377	Update copyright years.
2378
23792016-01-04  Marek Polacek  <polacek@redhat.com>
2380
2381	PR c/68908
2382	* c-typeck.c (build_atomic_assign): Improve commentary.  Add
2383	optimization to use __atomic_fetch_* built-in if possible.
2384
23852015-12-23  Thomas Schwinge  <thomas@codesourcery.com>
2386
2387	* c-parser.c (c_parser_oacc_clause_use_device): Merge function
2388	into...
2389	(c_parser_omp_clause_use_device_ptr): ... this function.  Adjust
2390	all users.
2391
23922015-12-22  Marek Polacek  <polacek@redhat.com>
2393
2394	PR c/69002
2395	* c-typeck.c (build_component_ref): Warn when acessing elements of
2396	atomic structures or unions.
2397
23982015-12-21  David Malcolm  <dmalcolm@redhat.com>
2399
2400	* c-typeck.c: Include "gcc-rich-location.h".
2401	(build_binary_op): In the two places that call binary_op_error,
2402	create a gcc_rich_location and populate it with the location of
2403	the binary op and its two operands.
2404
24052015-12-16  David Malcolm  <dmalcolm@redhat.com>
2406
2407	* c-parser.c (c_parser_statement_after_labels): When calling
2408	c_finish_return, Use the return expression's location if it has
2409	one, falling back to the location of the first token within it.
2410	* c-typeck.c (c_finish_return): When issuing warnings about
2411	the incorrect presence/absence of a return value, issue a note
2412	showing the declaration of the function.
2413
24142015-12-16  David Malcolm  <dmalcolm@redhat.com>
2415
2416	* c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
2417	to 4.
2418	(c_parser_peek_nth_token): New function.
2419	(c_parser_peek_conflict_marker): New function.
2420	(c_parser_error): Detect conflict markers and report them as such.
2421
24222015-12-16  David Malcolm  <dmalcolm@redhat.com>
2423
2424	* c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
2425	to preserve range information for the primary expression
2426	in the call to c_parser_postfix_expression_after_primary.
2427
24282015-12-16  David Malcolm  <dmalcolm@redhat.com>
2429
2430	* c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
2431	expression location, falling back on the first token location,
2432	rather than always using the latter.
2433
24342015-12-16  Marek Polacek  <polacek@redhat.com>
2435
2436	PR c/64637
2437	* c-typeck.c (c_process_expr_stmt): Use location of the expression if
2438	available.
2439
24402015-12-15  Marek Polacek  <polacek@redhat.com>
2441
2442	PR c/68907
2443	* c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
2444	artificial decl.
2445
24462015-12-08  David Malcolm  <dmalcolm@redhat.com>
2447
2448	* c-parser.c (c_parser_alignof_expression): Capture location of
2449	closing parenthesis (if any), or of end of unary expression, and
2450	use it to build a src_range for the expression.
2451
24522015-12-08  David Malcolm  <dmalcolm@redhat.com>
2453
2454	PR c/68757
2455	* c-parser.c (c_parser_get_builtin_args): Add
2456	"out_close_paren_loc" param, and write back to it.
2457	(c_parser_postfix_expression): Capture the closing
2458	parenthesis location for RID_CHOOSE_EXPR,
2459	RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
2460	RID_BUILTIN_SHUFFLE and use it to set the source range
2461	for such expressions; within RID_BUILTIN_COMPLEX set
2462	the underlying location.
2463
24642015-12-07  Marek Polacek  <polacek@redhat.com>
2465
2466	PR c/68668
2467	* c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
2468	TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.
2469
24702015-12-04  Eric Botcazou  <ebotcazou@adacore.com>
2471
2472	* c-tree.h (c_build_va_arg): Adjust prototype.
2473	* c-parser.c (c_parser_postfix_expression): Adjust call to above.
2474	* c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
2475	parameter, adjust throughout and issue an error if EXPR is a component
2476	with reverse storage order.
2477
24782015-12-02  Jason Merrill  <jason@redhat.com>
2479
2480	* c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
2481	(c_fully_fold_internal, decl_constant_value_for_optimization):
2482	Move from c-common.c.
2483	* c-tree.h: Declare decl_constant_value_for_optimization.
2484	* Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
2485
24862015-12-02  Joseph Myers  <joseph@codesourcery.com>
2487
2488	PR c/68162
2489	* c-decl.c (grokdeclarator): Set first_non_attr_kind before
2490	following link from declarator to next declarator.  Track original
2491	qualified type and pass it to c_build_qualified_type.
2492	* c-typeck.c (c_build_qualified_type): Add arguments
2493	orig_qual_type and orig_qual_indirect.
2494
24952015-12-02  Thomas Schwinge  <thomas@codesourcery.com>
2496
2497	* c-parser.c (c_parser_omp_clause_name)
2498	(c_parser_oacc_all_clauses): Alphabetical sorting.
2499
25002015-12-02  Jakub Jelinek  <jakub@redhat.com>
2501
2502	PR c/68533
2503	* c-decl.c (get_parm_info): Use b->locus instead of input_location
2504	for diagnostics.
2505
25062015-12-01  Julian Brown  <julian@codesourcery.com>
2507	    Cesar Philippidis  <cesar@codesourcery.com>
2508	    James Norris  <James_Norris@mentor.com>
2509
2510	* c-parser.c (c_parser_omp_clause_name): Add use_device support.
2511	(c_parser_oacc_clause_use_device): New function.
2512	(c_parser_oacc_all_clauses): Add use_device support.
2513	(OACC_HOST_DATA_CLAUSE_MASK): New macro.
2514	(c_parser_oacc_host_data): New function.
2515	(c_parser_omp_construct): Add host_data support.
2516	* c-tree.h (c_finish_oacc_host_data): Add prototype.
2517	* c-typeck.c (c_finish_oacc_host_data): New function.
2518	(c_finish_omp_clauses): Add use_device support.
2519
25202015-11-29  Jan Hubicka  <hubicka@ucw.cz>
2521
2522	PR c/67106
2523	* c-decl.c: Set TYPE_PACKED in variants.
2524
25252015-11-27  Martin Liska  <mliska@suse.cz>
2526
2527	PR c++/68312
2528	* c-array-notation.c (fix_builtin_array_notation_fn):
2529	Use release_vec_vec instead of vec::release.
2530	(build_array_notation_expr): Likewise.
2531	(fix_conditional_array_notations_1): Likewise.
2532	(fix_array_notation_expr): Likewise.
2533	(fix_array_notation_call_expr): Likewise.
2534
25352015-11-27  Jakub Jelinek  <jakub@redhat.com>
2536
2537	PR c/63326
2538	* c-parser.c (c_parser_compound_statement_nostart): If
2539	last_label is true, use pragma_stmt instead of pragma_compound
2540	as second c_parser_pragma argument.
2541	(c_parser_omp_ordered, c_parser_omp_target_update,
2542	c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
2543	false as second argument to c_parser_skip_to_pragma_eol after
2544	diagnosing standalone directives used in pragma_stmt context.
2545
25462015-11-24  Ilya Verbin  <ilya.verbin@intel.com>
2547
2548	* c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
2549	with "if (ENABLE_OFFLOADING)".
2550
25512015-11-23  David Malcolm  <dmalcolm@redhat.com>
2552
2553	PR objc/68438
2554	* c-parser.c (c_parser_postfix_expression): Set up source ranges
2555	for various Objective-C constructs: Class.name syntax,
2556	@selector(), @protocol(), @encode(), and [] message syntax.
2557
25582015-11-20  David Malcolm  <dmalcolm@redhat.com>
2559
2560	PR 62314
2561	* c-typeck.c (should_suggest_deref_p): New function.
2562	(build_component_ref): Special-case POINTER_TYPE when
2563	generating a "not a structure of union"  error message, and
2564	suggest a "->" rather than a ".", providing a fix-it hint.
2565
25662015-11-19  David Malcolm  <dmalcolm@redhat.com>
2567
2568	* c-typeck.c (lookup_field_fuzzy): Move determination of closest
2569	candidate into a new function, find_closest_identifier.
2570
25712015-11-19  Marek Polacek  <polacek@redhat.com>
2572
2573	PR c/68412
2574	* c-typeck.c (parser_build_binary_op): Properly handle
2575	C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.
2576
25772015-11-17  David Malcolm  <dmalcolm@redhat.com>
2578
2579	* c-parser.c (set_c_expr_source_range): Bulletproof both
2580	overloaded implementations against NULL expr->value.
2581	(c_parser_braced_init): Set src_range for "ret" to a sane pair of
2582	values.
2583	(c_parser_unary_expression): Likewise when handling addresses of
2584	labels.
2585	(c_parser_postfix_expression): Likewise for statement expressions,
2586	for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
2587	__builtin_va_arg, and for __builtin_offset_of.
2588	(c_parser_postfix_expression_after_paren_type): Initialize expr's
2589	src_range using the range of the braced initializer.
2590	(c_parser_transaction_expression): Set src_range for "ret" to a
2591	sane pair of values.
2592
25932015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
2594
2595	* c-parser.c (c_finish_omp_declare_simd): Look for
2596	"simd" attribute as well. Update error message.
2597
25982015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2599
2600	* c-parser.c (c_parser_omp_declare_target): Adjust.
2601
26022015-11-14  Jakub Jelinek  <jakub@redhat.com>
2603
2604	* c-typeck.c (c_finish_omp_clauses): Don't mark
2605	GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
2606
26072015-11-14  Marek Polacek  <polacek@redhat.com>
2608
2609	* c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
2610	* c-typeck.c: Likewise.
2611
26122015-11-13  David Malcolm  <dmalcolm@redhat.com>
2613
2614	* c-decl.c (warn_defaults_to): Pass line_table to
2615	rich_location ctor.
2616	* c-errors.c (pedwarn_c99): Likewise.
2617	(pedwarn_c90): Likewise.
2618	* c-parser.c (set_c_expr_source_range): New functions.
2619	(c_token::get_range): New method.
2620	(c_token::get_finish): New method.
2621	(c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
2622	based on the range from the start of the LHS to the end of the
2623	RHS.
2624	(c_parser_conditional_expression): Likewise, based on the range
2625	from the start of the cond.value to the end of exp2.value.
2626	(c_parser_binary_expression): Call set_c_expr_source_range on
2627	the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
2628	(c_parser_cast_expression): Call set_c_expr_source_range on ret
2629	based on the cast_loc through to the end of the expr.
2630	(c_parser_unary_expression): Likewise, based on the
2631	op_loc through to the end of op.
2632	(c_parser_sizeof_expression) Likewise, based on the start of the
2633	sizeof token through to either the closing paren or the end of
2634	expr.
2635	(c_parser_postfix_expression): Likewise, using the token range,
2636	or from the open paren through to the close paren for
2637	parenthesized expressions.
2638	(c_parser_postfix_expression_after_primary): Likewise, for
2639	various kinds of expression.
2640	* c-tree.h (struct c_expr): Add field "src_range".
2641	(c_expr::get_start): New method.
2642	(c_expr::get_finish): New method.
2643	(set_c_expr_source_range): New decls.
2644	* c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
2645	on ret for prefix unary ops.
2646	(parser_build_binary_op): Likewise, running from the start of
2647	arg1.value through to the end of arg2.value.
2648
26492015-11-13  Marek Polacek  <polacek@redhat.com>
2650
2651	PR c/68320
2652	* c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.
2653
26542015-11-13  David Malcolm  <dmalcolm@redhat.com>
2655
2656	* c-typeck.c: Include spellcheck.h.
2657	(lookup_field_fuzzy_find_candidates): New function.
2658	(lookup_field_fuzzy): New function.
2659	(build_component_ref): If the field was not found, try using
2660	lookup_field_fuzzy and potentially offer a suggestion.
2661
26622015-11-12  James Norris  <jnorris@codesourcery.com>
2663	    Joseph Myers  <joseph@codesourcery.com>
2664
2665	* c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
2666	(c_parser_omp_clause_name): Handle 'device_resident' clause.
2667	(c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
2668	and PRAGMA_OMP_CLAUSE_LINK.
2669	(c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
2670	and PRAGMA_OACC_CLAUSE_LINK.
2671	(OACC_DECLARE_CLAUSE_MASK): New definition.
2672	(c_parser_oacc_declare): New function.
2673
26742015-11-12  Marek Polacek  <polacek@redhat.com>
2675
2676	PR c/67784
2677	* c-parser.c (c_parser_for_statement): Reclassify the token in
2678	a correct scope.
2679
26802015-11-11  Marek Polacek  <polacek@redhat.com>
2681
2682	PR c/68107
2683	PR c++/68266
2684	* c-decl.c (grokdeclarator): Call valid_array_size_p.  Remove code
2685	checking the size of an array.
2686
26872015-11-11  Andrew MacLeod  <amacleod@redhat.com>
2688
2689	* c-array-notation.c: Remove unused header files.
2690	* c-aux-info.c: Likewise.
2691	* c-convert.c: Likewise.
2692	* c-decl.c: Likewise.
2693	* c-errors.c: Likewise.
2694	* c-lang.c: Likewise.
2695	* c-objc-common.c: Likewise.
2696	* c-parser.c: Likewise.
2697	* c-typeck.c: Likewise.
2698	* gccspec.c: Likewise.
2699
27002015-11-09  Thomas Schwinge  <thomas@codesourcery.com>
2701	    Cesar Philippidis  <cesar@codesourcery.com>
2702	    James Norris  <jnorris@codesourcery.com>
2703	    Julian Brown  <julian@codesourcery.com>
2704	    Nathan Sidwell  <nathan@codesourcery.com>
2705
2706	c/
2707	* c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
2708	routine arg.
2709	(c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
2710	(c_parser_pragma): Parse 'acc routine'.
2711	(OACC_ROUTINE_CLAUSE_MARK): Define.
2712	(c_parser_oacc_routine, (c_finish_oacc_routine): New.
2713
27142015-11-09  Andreas Arnez  <arnez@linux.vnet.ibm.com>
2715
2716	PR debug/67192
2717	* c-typeck.c (c_finish_loop): For unconditional loops, set the
2718	location of the backward-goto to the start of the loop body.
2719
27202015-11-09  Andreas Arnez  <arnez@linux.vnet.ibm.com>
2721
2722	PR debug/67192
2723	* c-parser.c (c_parser_while_statement): Finish the loop before
2724	parsing ahead for misleading indentation.
2725	(c_parser_for_statement): Likewise.
2726
27272015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
2728
2729	* c-decl.c (finish_struct): If the structure has reverse storage
2730	order, rewrite the type of array fields with scalar component.  Call
2731	maybe_apply_pragma_scalar_storage_order on entry.
2732	* c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs.  Issue
2733	errors on bit-fields and reverse SSO here and not...
2734	(c_mark_addressable): ...here.
2735	(output_init_element): Adjust call to initializer_constant_valid_p.
2736	(c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.
2737
27382015-11-06  David Malcolm  <dmalcolm@redhat.com>
2739
2740	* c-decl.c (warn_defaults_to): Update for change in signature
2741	of diagnostic_set_info.
2742	* c-errors.c (pedwarn_c99): Likewise.
2743	(pedwarn_c90): Likewise.
2744	* c-objc-common.c (c_tree_printer): Update for new "caret_p" param
2745	for textinfo::set_location.
2746
27472015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
2748	    Thomas Schwinge  <thomas@codesourcery.com>
2749	    James Norris  <jnorris@codesourcery.com>
2750
2751	* c-parser.c (c_parser_omp_clause_name): Add support for
2752	PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
2753	(c_parser_omp_clause_default): Add is_oacc argument. Handle
2754	default(none) in OpenACC.
2755	(c_parser_oacc_shape_clause): Allow pointer variables as gang static
2756	arguments.
2757	(c_parser_oacc_clause_tile): New function.
2758	(c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
2759	OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
2760	(OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
2761	TILE}.
2762	(OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
2763	(OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
2764	FIRSTPRIVATE}.
2765	(c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
2766	(c_parser_oacc_update): Update the error message for missing clauses.
2767	* c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
2768	and OMP_CLAUSE_INDEPENDENT.
2769
27702015-11-05  Marek Polacek  <polacek@redhat.com>
2771
2772	PR c/68090
2773	* c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
2774	deal with pre-evaluation on invalid types.
2775
27762015-11-05  Jakub Jelinek  <jakub@redhat.com>
2777	    Ilya Verbin  <ilya.verbin@intel.com>
2778
2779	* c-parser.c: Include context.h and gimple-expr.h.
2780	(c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
2781	monotonic together with nonmonotonic.
2782	(c_parser_omp_for_loop): Call c_omp_check_loop_iv.  Call add_stmt here.
2783	(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
2784	(c_parser_omp_target_data, c_parser_omp_target_enter_data,
2785	c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
2786	(c_parser_omp_target): Likewise.  Evaluate num_teams and thread_limit
2787	expressions on combined target teams before the target.
2788	(c_parser_omp_declare_target): If decl has "omp declare target" or
2789	"omp declare target link" attribute, and cgraph or varpool node already
2790	exists, then set corresponding flags.  Call c_finish_omp_clauses
2791	in the parenthesized extended-list syntax case.
2792	* c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
2793	declare target.
2794	* c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
2795	on OMP_CLAUSE_REDUCTION array sections.
2796	(handle_omp_array_sections): Encode low-bound into the MEM_REF, either
2797	into the constant offset, or for variable low-bound using
2798	POINTER_PLUS_EXPR.  For structure element based array sections use
2799	GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
2800	(c_finish_omp_clauses): Drop generic_field_head, structure
2801	elements are now always mapped even as array section bases,
2802	diagnose same var in data sharing and mapping clauses.  Diagnose if
2803	linear step on declare simd is neither a constant nor a uniform
2804	parameter.  Look through POINTER_PLUS_EXPR for array section
2805	reductions.  Diagnose the same var or function appearing multiple
2806	times on the same directive.  Fix up wording for the to clause if t
2807	is neither a FUNCTION_DECL nor a VAR_DECL.  Diagnose nonmonotonic
2808	modifier on kinds other than dynamic or guided or nonmonotonic
2809	modifier together with ordered clause.
2810
28112015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
2812	    Chung-Lin Tang  <cltang@codesourcery.com>
2813
2814	* c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
2815
28162015-10-29  Andrew MacLeod  <amacleod@redhat.com>
2817
2818	* c-array-notation.c: Reorder #include's and remove duplicates.
2819	* c-aux-info.c: Likewise.
2820	* c-convert.c: Likewise.
2821	* c-decl.c: Likewise.
2822	* c-errors.c: Likewise.
2823	* c-lang.c: Likewise.
2824	* c-objc-common.c: Likewise.
2825	* c-parser.c: Likewise.
2826	* c-typeck.c: Likewise.
2827
28282015-10-26  Jim Wilson  <jim.wilson@linaro.org>
2829
2830	PR debug/66068
2831	* c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
2832	after calling build_qualified_type.
2833
28342015-10-27  Cesar Philippidis  <cesar@codesourcery.com>
2835	    Thomas Schwinge  <thomas@codesourcery.com>
2836	    James Norris  <jnorris@codesourcery.com>
2837	    Joseph Myers  <joseph@codesourcery.com>
2838	    Julian Brown  <julian@codesourcery.com>
2839	    Bernd Schmidt  <bschmidt@redhat.com>
2840
2841	* c-parser.c (c_parser_oacc_shape_clause): New.
2842	(c_parser_oacc_simple_clause): New.
2843	(c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
2844	(OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.
2845
28462015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
2847	    James Norris  <jnorris@codesourcery.com>
2848	    Cesar Philippidis  <cesar@codesourcery.com>
2849
2850	PR c/64765
2851	PR c/64880
2852	* c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
2853	parameters, and handle these.  Adjust all users.
2854	(c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
2855	into...
2856	(c_parser_oacc_kernels_parallel): ... this new function.  Adjust
2857	all users.
2858	* c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
2859	declare functions.
2860	(c_finish_omp_construct): Declare function.
2861	* c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
2862	Merge functions into...
2863	(c_finish_omp_construct): ... this new function.
2864
28652015-10-22  Richard Biener  <rguenther@suse.de>
2866
2867	* c-typeck.c (c_finish_omp_clauses): Properly convert operands
2868	before folding a MINUS_EXPR.
2869
28702015-10-21  Marek Polacek  <polacek@redhat.com>
2871
2872	PR c/68024
2873	* c-decl.c (start_function): Warn about vararg functions without
2874	a prototype.
2875
28762015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
2877
2878	* c-typeck.c (build_conditional_expr): Use boolean vector
2879	type for vector comparison.
2880	(build_vec_cmp): New.
2881	(build_binary_op): Use build_vec_cmp for comparison.
2882
28832015-10-20  Marek Polacek  <polacek@redhat.com>
2884
2885	* c-parser.c (is_cilkplus_vector_p): Don't define here.
2886
28872015-10-20  Marek Polacek  <polacek@redhat.com>
2888
2889	PR c/67964
2890	* c-parser.c (c_parser_attributes): Break out of the loop if the
2891	token after an attribute isn't a comma.
2892
28932015-10-13  Jakub Jelinek  <jakub@redhat.com>
2894	    Aldy Hernandez  <aldyh@redhat.com>
2895
2896	* c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
2897	(c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
2898	(c_parser_omp_variable_list): Handle structure elements for
2899	map, to and from clauses.  Handle array sections in reduction
2900	clause.  Formatting fixes.
2901	(c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
2902	if clause modifiers.
2903	(c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
2904	c_parser_omp_clause_priority, c_parser_omp_clause_hint,
2905	c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
2906	c_parser_omp_clause_is_device_ptr): New functions.
2907	(c_parser_omp_clause_ordered): Parse optional parameter.
2908	(c_parser_omp_clause_reduction): Handle array reductions.
2909	(c_parser_omp_clause_schedule): Parse optional simd modifier.
2910	(c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
2911	functions.
2912	(c_parser_omp_clause_linear): Parse linear clause modifiers.
2913	(c_parser_omp_clause_depend_sink): New function.
2914	(c_parser_omp_clause_depend): Parse source/sink depend kinds.
2915	(c_parser_omp_clause_map): Parse release/delete map kinds and
2916	optional always modifier.
2917	(c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
2918	and c_finish_omp_clauses callers.
2919	(c_parser_omp_all_clauses): Likewise.  Parse OpenMP 4.5 clauses.
2920	Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
2921	(c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
2922	(OMP_CRITICAL_CLAUSE_MASK): Define.
2923	(c_parser_omp_critical): Parse critical clauses.
2924	(c_parser_omp_for_loop): Handle doacross loops, adjust
2925	c_finish_omp_for and c_finish_omp_clauses callers.
2926	(OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
2927	(c_parser_omp_simd): Allow ordered clause if it has no parameter.
2928	(OMP_FOR_CLAUSE_MASK): Add linear clause.
2929	(c_parser_omp_for): Disallow ordered clause when combined with
2930	distribute.  Disallow linear clause when combined with distribute
2931	and not combined with simd.
2932	(OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
2933	(c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
2934	parse clauses and if depend clause is found, don't parse a body.
2935	(c_parser_omp_parallel): Disallow copyin clause on target parallel.
2936	Allow target parallel without for after it.
2937	(OMP_TASK_CLAUSE_MASK): Add priority clause.
2938	(OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
2939	(c_parser_omp_target_data): Diagnose no map clauses or clauses with
2940	invalid kinds.
2941	(OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
2942	(OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
2943	OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
2944	(c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
2945	functions.
2946	(OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
2947	defaultmap and is_device_ptr clauses.
2948	(c_parser_omp_target): Parse target parallel and target simd.  Set
2949	OMP_TARGET_COMBINED on combined constructs.  Parse target enter data
2950	and target exit data.  Diagnose invalid map kinds.
2951	(OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
2952	(c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
2953	construct.
2954	(c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
2955	&omp_priv.
2956	(OMP_TASKLOOP_CLAUSE_MASK): Define.
2957	(c_parser_omp_taskloop): New function.
2958	(c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
2959	handle PRAGMA_OMP_TASKLOOP.
2960	(c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
2961	* c-tree.h (c_finish_omp_clauses): Add two new arguments.
2962	* c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
2963	Add IS_OMP argument, handle structure element bases, diagnose
2964	bitfields, pass IS_OMP recursively, diagnose known zero length
2965	array sections in depend clauses, handle array sections in reduction
2966	clause, diagnose negative length even for pointers.
2967	(handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
2968	types, pass IS_OMP down to handle_omp_array_sections_1, handle
2969	array sections in reduction clause, set
2970	OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
2971	length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
2972	(c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
2973	Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
2974
29752015-10-06  Marek Polacek  <polacek@redhat.com>
2976
2977	* c-parser.c (c_parser_statement_after_labels): Use
2978	protected_set_expr_location.
2979	(c_parser_omp_clause_num_gangs): Likewise.
2980	(c_parser_omp_clause_num_threads): Likewise.
2981	(c_parser_omp_clause_num_workers): Likewise.
2982	(c_parser_omp_clause_vector_length): Likewise.
2983	(c_parser_omp_clause_num_teams): Likewise.
2984	(c_parser_omp_clause_thread_limit): Likewise.
2985	* c-typeck.c (build_c_cast): Likewise.
2986	(c_cast_expr): Likewise.
2987
29882015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2989
2990	* c-typeck.c (c_tree_equal): Use real_equal instead of
2991	REAL_VALUES_EQUAL.
2992
29932015-10-04  Jason Merrill  <jason@redhat.com>
2994
2995	* c-parser.c (c_lex_one_token): Handle @synchronized.
2996	* c-decl.c (match_builtin_function_types): A declaration of a built-in
2997	can change whether the function is transaction_safe.
2998
29992015-10-02  Marek Polacek  <polacek@redhat.com>
3000
3001	PR c/67730
3002	* c-typeck.c (convert_for_assignment): Use the expansion point
3003	location throughout.
3004
30052015-10-02  Marek Polacek  <polacek@redhat.com>
3006
3007	PR c/64249
3008	* c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
3009	and pass it down to c_parser_if_statement.
3010	(c_parser_else_body): Add CHAIN parameter and pass it down to
3011	c_parser_statement_after_labels.
3012	(c_parser_if_statement): Add CHAIN parameter.  Add code to warn about
3013	duplicated if-else-if conditions.
3014
30152015-10-01  Marek Polacek  <polacek@redhat.com>
3016
3017	* c-typeck.c (convert_for_assignment): Improve commentary.
3018
30192015-09-30  Marek Polacek  <polacek@redhat.com>
3020
3021	PR c/67730
3022	* c-typeck.c (c_finish_return): Use the expansion point location for
3023	certain "return with value" warnings.
3024
30252015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3026
3027	* c-parser.c (pragma_lex): Add loc argument.
3028
30292015-09-15  Marek Polacek  <polacek@redhat.com>
3030
3031	PR c/67580
3032	* c-decl.c (tag_exists_p): New function.
3033	* c-parser.c (c_parser_declaration_or_fndef): Give a hint when
3034	struct/union/enum keywords are missing.
3035	* c-tree.h (tag_exists_p): Declare.
3036
30372015-09-15  Marek Polacek  <polacek@redhat.com>
3038
3039	* c-decl.c (lookup_label): Return NULL_TREE instead of 0.
3040	(lookup_tag): Change the type of THISLEVEL_ONLY to bool.
3041	Return NULL_TREE instead of 0.
3042	(lookup_name): Return NULL_TREE instead of 0.
3043	(lookup_name_in_scope): Likewise.
3044	(shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
3045	(parser_xref_tag): Use false instead of 0.
3046	(start_struct): Use true instead of 1.
3047	(start_enum): Use true instead of 1 and NULL_TREE instead of 0.
3048
30492015-09-14  Marek Polacek  <polacek@redhat.com>
3050
3051	* c-typeck.c (set_nonincremental_init_from_string): Use
3052	HOST_WIDE_INT_M1U when shifting a negative value.
3053
30542015-09-09  Mark Wielaard  <mjw@redhat.com>
3055
3056	* c-typeck.c (build_binary_op): Check and warn when nonnull arg
3057	parm against NULL.
3058
30592015-09-10  Jakub Jelinek  <jakub@redhat.com>
3060
3061	PR c/67502
3062	* c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
3063	into OMP_FOR_PRE_BODY rather than before the loop.
3064
30652015-09-09  Jakub Jelinek  <jakub@redhat.com>
3066
3067	PR c/67501
3068	* c-parser.c (c_parser_oacc_all_clauses,
3069	c_parser_omp_all_clauses): Remove invalid clause from
3070	list of clauses even if parser->error is set.
3071
3072	PR c/67500
3073	* c-parser.c (c_parser_omp_clause_aligned,
3074	c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
3075	test for errors.
3076	* c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
3077	error_mark_node.
3078
3079	PR c/67495
3080	* c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
3081	instead of c_parser_unary_expression.  If the result is !lvalue_p,
3082	wrap the result of c_fully_fold into NON_LVALUE_EXPR.
3083
30842015-09-04  Marek Polacek  <polacek@redhat.com>
3085
3086	PR sanitizer/67279
3087	* c-typeck.c (build_binary_op): Don't instrument static initializers.
3088
30892015-09-03  Martin Sebor  <msebor@redhat.com>
3090
3091	PR c/66516
3092	* c-typeck.c (convert_arguments, parser_build_unary_op,
3093	build_conditional_expr, c_cast_expr, convert_for_assignment,
3094	build_binary_op, _objc_common_truthvalue_conversion): Call
3095	reject_gcc_builtin.
3096	(c_decl_implicit): Define.
3097
30982015-09-02  Marek Polacek  <polacek@redhat.com>
3099
3100	PR c/67432
3101	* c-parser.c (c_parser_enum_specifier): Give a better error for
3102	an empty enum.
3103
31042015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
3105
3106	* c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
3107
31082015-08-12  Marek Polacek  <polacek@redhat.com>
3109
3110	* c-decl.c (grokdeclarator): Call error_at instead of error and pass
3111	LOC to it.
3112
31132015-08-03  Marek Polacek  <polacek@redhat.com>
3114
3115	PR c/67088
3116	* c-decl.c (check_bitfield_type_and_width): Add location parameter.
3117	Use it.
3118	(grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
3119
31202015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
3121
3122	* c-parser.c (c_parser_if_body): Take token_indent_info
3123	argument. Call warn_for_misleading_indentation even when the
3124	body is a semicolon.  Extract token_indent_infos corresponding
3125	to the guard, body and next tokens.  Adjust call to
3126	warn_for_misleading_indentation accordingly.
3127	(c_parser_else_body): Likewise.
3128	(c_parser_if_statement): Likewise.
3129	(c_parser_while_statement): Likewise.
3130	(c_parser_for_statement): Likewise.
3131
31322015-07-28  Luis Felipe Strano Moraes  <luis.strano@gmail.com>
3133	    Manuel López-Ibáñez  <manu@gcc.gnu.org>
3134
3135	* c-decl.c (get_parm_info): Remove static var. Update warning
3136	message.
3137
31382015-07-27  Marek Polacek  <polacek@redhat.com>
3139
3140	PR c++/66555
3141	PR c/54979
3142	* c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
3143
31442015-07-20  Marek Polacek  <polacek@redhat.com>
3145
3146	PR c++/55095
3147	* c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
3148	(build_binary_op): Warn about left shift overflows.
3149
31502015-07-09  Andrew MacLeod  <amacleod@redhat.com>
3151
3152	* c-array-notation.c: Adjust includes for flags.h changes.
3153	* c-objc-common.c: Likewise.
3154
31552015-07-07  Andrew MacLeod  <amacleod@redhat.com>
3156
3157	* c-array-notation.c: Adjust includes.
3158	* c-aux-info.c: Likewise.
3159	* c-convert.c: Likewise.
3160	* c-decl.c: Likewise.
3161	* c-errors.c: Likewise.
3162	* c-lang.c: Likewise.
3163	* c-objc-common.c: Likewise.
3164	* c-parser.c: Likewise.
3165	* c-typeck.c: Likewise.
3166
31672015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3168
3169	PR fortran/66605
3170	* c-decl.c (finish_function): Call do_warn_unused_parameter.
3171
31722015-06-29  Marek Polacek  <polacek@redhat.com>
3173
3174	PR c/66322
3175	* c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
3176	(c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P.  Don't warn
3177	about -Wswitch-bool here.
3178	(do_case): Update c_add_case_label call.
3179	(c_finish_case): Update c_do_switch_warnings call.
3180
31812015-06-27  Marek Polacek  <polacek@redhat.com>
3182
3183	* c-typeck.c: Use VECTOR_TYPE_P throughout.
3184
31852015-06-26  Marek Polacek  <polacek@redhat.com>
3186
3187	* c-array-notation.c (fix_builtin_array_notation_fn): Use
3188	INDIRECT_REF_P.
3189	* c-typeck.c (array_to_pointer_conversion): Likewise.
3190	(build_unary_op): Likewise.
3191	(c_finish_return): Likewise.
3192
31932015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3194
3195	* c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
3196	* c-parser.c: Likewise.
3197
31982015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3199
3200	* c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
3201	instead of pointer_hash.
3202	(detect_field_duplicates): Likewise.
3203
32042015-06-25  Marek Polacek  <polacek@redhat.com>
3205
3206	* c-array-notation.c: Use VAR_P throughout.
3207	* c-decl.c: Likewise.
3208	* c-objc-common.c: Likewise.
3209	* c-parser.c: Likewise.
3210	* c-typeck.c: Likewise.
3211
32122015-06-25  Marek Polacek  <polacek@redhat.com>
3213
3214	* c-decl.c: Use is_global_var throughout.
3215	* c-parser.c: Likewise.
3216	* c-typeck.c: Likewise.
3217
32182015-06-17  Andrew MacLeod  <amacleod@redhat.com>
3219
3220	* c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
3221	* c-aux-info.c: Likewise.
3222	* c-convert.c: Likewise.
3223	* c-decl.c: Likewise.
3224	* c-errors.c: Likewise.
3225	* c-lang.c: Likewise.
3226	* c-objc-common.c: Likewise.
3227	* c-parser.c: Likewise.
3228	* c-typeck.c: Likewise.
3229
32302015-06-11  Jan Hubicka  <hubicka@ucw.cz>
3231
3232	PR middle-end/66325
3233	* c-decl.c (start_enum): Set TYPE_PACKED consistently among type
3234	variants.
3235
32362015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
3237
3238	* c-decl.c (pop_scope): Register the main translation unit
3239	through the new debug hook.
3240
32412015-06-08  Andrew MacLeod  <amacleod@redhat.com>
3242
3243	* c-array-notation.c : Adjust include files.
3244	* c-aux-info.c : Likewise.
3245	* c-convert.c : Likewise.
3246	* c-decl.c : Likewise.
3247	* c-errors.c : Likewise.
3248	* c-lang.c : Likewise.
3249	* c-lang.h : Likewise.
3250	* c-objc-common.c : Likewise.
3251	* c-parser.c : Likewise.
3252	* c-typeck.c : Likewise.
3253
32542015-06-05  Aldy Hernandez  <aldyh@redhat.com>
3255
3256	* c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
3257	immediately clobber it.
3258	(c_write_global_declarations_1): Remove call to
3259	check_global_declaration_1.
3260	(c_write_global_declarations_2): Remove.
3261	(c_write_final_cleanups): Rename from c_write_global_declarations.
3262	Remove call to finalize_compilation_unit.
3263	Remove calls to debugging hooks.
3264	* c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
3265	* c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
3266	* c-tree.h: Remove c_write_global_declarations.
3267
32682015-06-04  Andrew MacLeod  <amacleod@redhat.com>
3269
3270	* c-array-notation.c: Adjust includes for restructured coretypes.h.
3271	* c-aux-info.c: Likewise.
3272	* c-convert.c: Likewise.
3273	* c-decl.c: Likewise.
3274	* c-errors.c: Likewise.
3275	* c-lang.c: Likewise.
3276	* c-objc-common.c: Likewise.
3277	* c-parser.c: Likewise.
3278	* c-typeck.c: Likewise.
3279
32802015-06-04  Marek Polacek  <polacek@redhat.com>
3281
3282	PR c/66341
3283	* c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
3284	it is a lvalue.
3285
32862015-06-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3287
3288	* c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
3289	Warn for empty struct.
3290	(finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.
3291
32922015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
3293
3294	* c-decl.c (start_function): Call plugin before parsing.
3295	(finish_function): Call plugin after parsing.
3296
32972015-06-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3298
3299	PR c/49551
3300	* c-decl.c (merge_decls): Merge DECL_COMMON.
3301
33022015-05-22  Jim Wilson  <jim.wilson@linaro.org>
3303
3304	* Make-lang.in (check_gcc_pallelize): Define.
3305
33062015-05-22  Marek Polacek  <polacek@redhat.com>
3307
3308	PR c/47043
3309	* c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
3310	attributes.
3311
33122015-05-21  Marek Polacek  <polacek@redhat.com>
3313
3314	* c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
3315	DECL_BUILT_IN.
3316
33172015-05-20  Marek Polacek  <polacek@redhat.com>
3318
3319	* c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
3320	* c-typeck.c: Likewise.
3321
33222015-05-19  Marek Polacek  <polacek@redhat.com>
3323
3324	* c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
3325
33262015-05-19  Jakub Jelinek  <jakub@redhat.com>
3327
3328	PR middle-end/66199
3329	* c-parser.c (c_parser_omp_for_loop): Don't add
3330	OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
3331	OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
3332	(c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
3333	constructs.
3334
33352015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
3336
3337	* c-typeck.c (build_array_ref): Use std::swap instead of explicit
3338	swaps.
3339
33402015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3341
3342	PR fortran/44054
3343	* c-objc-common.c (c_tree_printer): Replace locus pointer with
3344	accessor function.
3345
33462015-05-14  Marek Polacek  <polacek@redhat.com>
3347
3348	PR c/66066
3349	PR c/66127
3350	* c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
3351	rather than with 0.
3352
33532015-05-12  David Malcolm  <dmalcolm@redhat.com>
3354
3355	* c-parser.c (c_parser_if_body): Add param "if_loc", use it
3356	to add a call to warn_for_misleading_indentation.
3357	(c_parser_else_body): Likewise, adding param "else_loc".
3358	(c_parser_if_statement): Check for misleading indentation.
3359	(c_parser_while_statement): Likewise.
3360	(c_parser_for_statement): Likewise.
3361
33622015-05-08  Marek Polacek  <polacek@redhat.com>
3363
3364	PR c/64918
3365	* c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
3366	(output_init_element): Likewise.
3367
33682015-05-07  Marek Polacek  <polacek@redhat.com>
3369
3370	PR c/65179
3371	* c-typeck.c (build_binary_op): Warn when left shifting a negative
3372	value.
3373
33742015-04-30  Marek Polacek  <polacek@redhat.com>
3375
3376	* c-typeck.c (set_init_label): Call error_at instead of error and
3377	pass LOC to it.
3378
3379	* c-typeck.c (c_incomplete_type_error): Refactor to use %qT.  Print
3380	the type of a decl.
3381
3382	* c-typeck.c (c_build_va_arg): Clarify the error message.
3383
33842015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
3385
3386	* c-parser.c (c_parser_oacc_enter_exit_data): Use
3387	OMP_STANDALONE_CLAUSES.
3388
33892015-04-28  Marek Polacek  <polacek@redhat.com>
3390
3391	* c-parser.c (c_parser_binary_expression): Remove duplicate line.
3392
33932015-04-28  Marek Polacek  <polacek@redhat.com>
3394
3395	PR c/65901
3396	* c-typeck.c (c_build_va_arg): Require TYPE be a complete type.
3397
33982015-04-25  Marek Polacek  <polacek@redhat.com>
3399
3400	PR c/52085
3401	* c-decl.c (finish_enum): Copy over TYPE_ALIGN.  Also check for "mode"
3402	attribute.
3403
34042015-04-23  Marek Polacek  <polacek@redhat.com>
3405
3406	PR c/65345
3407	* c-decl.c (set_labels_context_r): New function.
3408	(store_parm_decls): Call it via walk_tree_without_duplicates.
3409	* c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
3410	instead of create_tmp_var.  Build TARGET_EXPR instead of
3411	COMPOUND_EXPR.
3412	(build_atomic_assign): Use create_tmp_var_raw instead of
3413	create_tmp_var.  Build TARGET_EXPRs instead of MODIFY_EXPR.
3414
34152015-04-20  Ilya Verbin  <ilya.verbin@intel.com>
3416
3417	* c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
3418	(c_parser_omp_target_update): Add missed %> to error_at ().
3419
34202015-04-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3421
3422	PR target/55143
3423	* c-decl.c (c_default_pointer_mode): Remove definition.
3424	* c-tree.h (c_default_pointer_mode): Remove declaration.
3425
34262015-03-27  Tobias Burnus  <burnus@net-b.de>
3427
3428	PR c/65586
3429	* c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
3430	error out.
3431	(c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
3432	c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
3433	Update calls to not error for skipped omp pragmas with -fopenmp-simd.
3434
34352015-03-19  Jakub Jelinek  <jakub@redhat.com>
3436
3437	* c-decl.c (c_decl_attributes): Also add "omp declare target"
3438	attribute for DECL_EXTERNAL VAR_DECLs.
3439
34402015-03-11  Jakub Jelinek  <jakub@redhat.com>
3441
3442	* c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
3443	argument.
3444
34452015-03-10  Jakub Jelinek  <jakub@redhat.com>
3446
3447	PR c/65120
3448	* c-typeck.c (parser_build_binary_op): Check for tcc_comparison
3449	before preparing arguments to warn_logical_not_parentheses.
3450
34512015-03-09  Jakub Jelinek  <jakub@redhat.com>
3452
3453	PR c/65120
3454	* c-typeck.c (parser_build_binary_op): Don't warn for
3455	!!x == y or !b == y where b is _Bool.
3456
34572015-03-09  Marek Polacek  <polacek@redhat.com>
3458
3459	* c-convert.c (convert): Make use of do_ubsan_in_current_function.
3460	* c-decl.c (grokdeclarator): Likewise.
3461	* c-typeck.c (build_binary_op): Likewise.
3462
34632015-02-27  Marek Polacek  <polacek@redhat.com>
3464
3465	PR c/65228
3466	* c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
3467
34682015-02-14  Marek Polacek  <polacek@redhat.com>
3469
3470	PR c/64768
3471	* c-decl.c (grokdeclarator): Set the range of a flexible array member
3472	declared through a typedef name.
3473
34742015-02-13  Marek Polacek  <polacek@redhat.com>
3475
3476	PR c/65050
3477	* c-decl.c (grokdeclarator): Print also the type when giving
3478	the error message about array's incomplete element type.
3479
34802015-02-11  Jakub Jelinek  <jakub@redhat.com>
3481
3482	PR c/64824
3483	* c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
3484	check in the POP macro.
3485
34862015-02-09  Marek Polacek  <polacek@redhat.com>
3487
3488	PR c/64856
3489	* c-typeck.c (process_init_element): Don't always wrap
3490	COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when
3491	initializing a range of elements.
3492
34932015-02-04  Jakub Jelinek  <jakub@redhat.com>
3494
3495	PR c/64824
3496	PR c/64868
3497	* c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.
3498
34992015-02-02  Bruno Loff  <bruno.loff@gmail.com>
3500
3501	* c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
3502	processing enum declaration.
3503
35042015-01-29  Marek Polacek  <polacek@redhat.com>
3505
3506	PR c/64709
3507	* c-typeck.c (pop_init_level): If constructor_elements has
3508	exactly one element with integer_zerop value, set constructor_zeroinit
3509	to 1.  Remove braces around warning_init call.
3510
35112015-01-27  Jakub Jelinek  <jakub@redhat.com>
3512
3513	PR c/64766
3514	* c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
3515	of FUNCTION_DECLs with error_mark_node.
3516
35172015-01-26  Jakub Jelinek  <jakub@redhat.com>
3518
3519	PR c/64778
3520	* c-typeck.c (convert_arguments): Return -1 if there are
3521	error_args, even if we've diagnosed too many arguments.
3522
35232015-01-21  Richard Biener  <rguenther@suse.de>
3524
3525	PR middle-end/64313
3526	* c-decl.c (merge_decls): Call set_builtin_decl_declared_p
3527	for builtins the user declared correctly.
3528
35292015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
3530	    Bernd Schmidt  <bernds@codesourcery.com>
3531	    Cesar Philippidis  <cesar@codesourcery.com>
3532	    James Norris  <jnorris@codesourcery.com>
3533	    Jakub Jelinek  <jakub@redhat.com>
3534	    Ilmir Usmanov  <i.usmanov@samsung.com>
3535
3536	* c-parser.c: Include "gomp-constants.h".
3537	(c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
3538	omp_clause_map_kind.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
3539	Use OMP_CLAUSE_SET_MAP_KIND.
3540	(c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
3541	PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
3542	(c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
3543	PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
3544	PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
3545	(c_parser_omp_clause_name): Handle "auto", "async", "copy",
3546	"copyout", "create", "delete", "deviceptr", "gang", "host",
3547	"num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
3548	"present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
3549	"present_or_create", "pcreate", "seq", "self", "vector",
3550	"vector_length", "wait", "worker".
3551	(OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
3552	(OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
3553	(OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
3554	(OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
3555	(c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
3556	(c_parser_oacc_wait_list, c_parser_oacc_data_clause)
3557	(c_parser_oacc_data_clause_deviceptr)
3558	(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
3559	(c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
3560	(c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
3561	(c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
3562	(c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
3563	(c_parser_oacc_parallel, c_parser_oacc_update)
3564	(c_parser_oacc_wait): New functions.
3565	* c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
3566	(c_finish_oacc_data): New prototypes.
3567	* c-typeck.c: Include "gomp-constants.h".
3568	(handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR.  Use
3569	GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
3570	OMP_CLAUSE_SET_MAP_KIND.
3571	(c_finish_oacc_parallel, c_finish_oacc_kernels)
3572	(c_finish_oacc_data): New functions.
3573	(c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
3574	OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
3575	OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
3576	OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
3577	OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
3578	GOMP_MAP_FORCE_DEVICEPTR.
3579
35802015-01-09  Michael Collison  <michael.collison@linaro.org>
3581
3582	* c-array-notation.c: Include hash-set.h, machmode.h,
3583	vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3584	fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
3585	* c-aux-info.c: Ditto.
3586	* c-convert.c: Ditto.
3587	* c-decl.c: Ditto.
3588	* c-errors.c: Ditto.
3589	* c-lang.c: Dittoxs.
3590	* c-objc-common.c: Ditto.
3591	* c-parser.c: Ditto.
3592	* c-typeck.c: Include hash-set.h, machmode.h,
3593	vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
3594	fold-const.h, wide-int.h, inchash.h, real.h and
3595	fixed-value.h due to flattening of tree.h.
3596
35972015-01-07  Marek Polacek  <polacek@redhat.com>
3598
3599	PR c/64417
3600	* c-typeck.c (process_init_element): Disallow initialization of
3601	a flexible array member with a string constant if the structure
3602	is in an array.
3603
36042015-01-05  Jakub Jelinek  <jakub@redhat.com>
3605
3606	PR sanitizer/64344
3607	* c-typeck.c (convert_for_assignment, c_finish_return): For
3608	-fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
3609	types also set in_late_binary_op around convert call.
3610	* c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
3611	to integral type casts, if not in_late_binary_op, pass c_fully_fold
3612	result on expr as last argument to ubsan_instrument_float_cast,
3613	if in_late_binary_op, don't use c_save_expr but save_expr.
3614
3615	Update copyright years.
3616
36172015-01-05  Marek Polacek  <polacek@redhat.com>
3618
3619	PR c/64423
3620	* c-typeck.c (build_array_ref): Pass loc down to
3621	warn_array_subscript_with_type_char.
3622
36232014-12-20  Martin Uecker  <uecker@eecs.berkeley.edu>
3624
3625	* c-typeck.c: New behavious for pointers to arrays with qualifiers
3626	(common-pointer-type): For pointers to arrays take qualifiers from
3627	element type.
3628	(build_conditional_expr): Add warnings for lost qualifiers.
3629	(comp-target-types): Allow pointers to arrays with different qualifiers.
3630	(convert-for-assignment): Adapt warnings for discarded qualifiers. Add
3631	WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
3632	to PEDWARN_FOR_QUALIFIERS.
3633
36342014-12-17  Jakub Jelinek  <jakub@redhat.com>
3635
3636	PR sanitizer/64289
3637	* c-convert.c: Include ubsan.h.
3638	(convert): For real -> integral casts and
3639	-fsanitize=float-cast-overflow don't call convert_to_integer, but
3640	instead instrument the float cast directly.
3641
36422014-11-29  Jakub Jelinek  <jakub@redhat.com>
3643
3644	* c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
3645	c_finish_stmt_expr): Remove NULL last argument from
3646	create_tmp_var_raw and create_tmp_var calls.
3647	* c-array-notation.c (fix_builtin_array_notation_fn,
3648	build_array_notation_expr, fix_conditional_array_notations_1,
3649	fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
3650
36512014-11-28  Marek Polacek  <polacek@redhat.com>
3652
3653	PR c/63862
3654	* c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
3655	convert the right operand to integer type.
3656
36572014-11-25  Marek Polacek  <polacek@redhat.com>
3658
3659	PR c/63877
3660	* c-decl.c (start_function): Disable -Wmissing-declarations warning
3661	for inline functions.
3662
36632014-11-21  Jakub Jelinek  <jakub@redhat.com>
3664
3665	PR target/63764
3666	* c-typeck.c (build_array_ref): Adjust
3667	convert_vector_to_pointer_for_subscript caller.  If it returns true,
3668	call non_lvalue_loc on the result.
3669
36702014-11-11  Richard Biener  <rguenther@suse.de>
3671
3672	* c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
3673	to true.
3674
36752014-11-10  Andi Kleen  <ak@linux.intel.com>
3676
3677	PR c/60804
3678	* c-parser.c (c_parser_statement_after_labels): Call
3679	check_no_cilk.
3680	(c_parser_if_statement): Dito.
3681	(c_parser_switch_statement): Dito.
3682	(c_parser_while_statement): Dito.
3683	(c_parser_do_statement): Dito.
3684	(c_parser_for_statement): Dito.
3685	* c-typeck.c (c_finish_loop): Dito.
3686
36872014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
3688
3689	* c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
3690	OPT_Wshift_count_overflow in the warnings.
3691
36922014-10-30  Marek Polacek  <polacek@redhat.com>
3693
3694	* c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
3695	print the stripped version as well, if they're not the same.
3696
36972014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
3698
3699	* c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
3700	machine_mode.
3701
37022014-10-28  Andrew MacLeod  <amacleod@redhat.com>
3703
3704	* c-decl.c: Adjust include files.
3705	* c-parser.c: Ditto.
3706
37072014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
3708	    Tom Tromey  <tromey@redhat.com>
3709
3710	* c-tree.h (enum c_oracle_request): New.
3711	(c_binding_oracle_function): New typedef.
3712	(c_binding_oracle, c_pushtag, c_bind): Declare.
3713	* c-decl.c (c_binding_oracle): New global.
3714	(I_SYMBOL_CHECKED): New macro.
3715	(i_symbol_binding): New function.
3716	(I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
3717	(I_TAG_CHECKED): New macro.
3718	(i_tag_binding): New function.
3719	(I_TAG_BINDING, I_TAG_DECL): Redefine.
3720	(I_LABEL_CHECKED): New macro.
3721	(i_label_binding): New function.
3722	(I_LABEL_BINDING, I_LABEL_DECL): Redefine.
3723	(c_print_identifier): Save and restore c_binding_oracle.
3724	(c_pushtag, c_bind): New functions.
3725
37262014-10-27  Andrew MacLeod  <amacleod@redhat.com>
3727
3728	* c-typeck.c: Adjust include files.
3729
37302014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3731
3732	PR c++/53061
3733	* c-objc-common.c (c_objc_common_init): Do not do diagnostics
3734	initialization here...
3735	(c_initialize_diagnostics): ... but here. Set defaults after
3736	building pretty-printer.
3737
37382014-10-23  Marek Polacek  <polacek@redhat.com>
3739
3740	PR c/63626
3741	* c-decl.c (pop_scope): Don't print warning in external_scope.
3742
37432014-10-19  Marek Polacek  <polacek@redhat.com>
3744
3745	PR c/63567
3746	* c-typeck.c (output_init_element): Allow initializing objects with
3747	static storage duration with compound literals even in C99 and add
3748	pedwarn for it.
3749
37502014-10-17  Marek Polacek  <polacek@redhat.com>
3751
3752	PR c/63567
3753	* c-typeck.c (digest_init): Allow initializing objects with static
3754	storage duration with compound literals even in C99 and add pedwarn
3755	for it.
3756
37572014-10-17  Marek Polacek  <polacek@redhat.com>
3758
3759	PR c/63543
3760	* c-tree.h (C_TYPE_ERROR_REPORTED): Define.
3761	* c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
3762	error multiple times.  Print the type.
3763
37642014-10-17  Marek Polacek  <polacek@redhat.com>
3765
3766	PR c/63549
3767	* c-typeck.c (build_array_ref): Bail if the index in an incomplete
3768	type.
3769
37702014-10-17  Marek Polacek  <polacek@redhat.com>
3771
3772	* c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
3773	(start_function): Use OPT_Wimplicit_int instead of 0.
3774	(store_parm_decls_oldstyle): Likewise.
3775
37762014-10-17  Alan Modra  <amodra@gmail.com>
3777
3778	PR middle-end/61848
3779	* c-decl.c (merge_decls): Don't merge section name or tls model
3780	to newdecl symtab node, instead merge to olddecl.  Override
3781	existing olddecl section name.  Set tls_model for all thread-local
3782	vars, not just OMP thread-private ones.  Remove incorrect comment.
3783
37842014-10-16  Andrew MacLeod  <amacleod@redhat.com>
3785
3786	* c-decl.c: Adjust include files.
3787
37882014-10-14  DJ Delorie  <dj@redhat.com>
3789
3790	* c-parser.c (c_parse_init): Add RID entries for each __intN.
3791	(c_token_starts_typename): Check all __intN, not just __int128.
3792	(c_token_starts_declspecs): Likewise.
3793	(c_parser_declspecs): Likewise.
3794	(c_parser_attribute_any_word): Likewise.
3795	(c_parser_objc_selector): Likewise.
3796	* c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
3797	(struct c_declspecs): Add int_n_idx field to record *which* __intN
3798	is specified.
3799	* c-decl.c (declspecs_add_type): Check for all __intN, not just
3800	__int128.
3801	(finish_declspecs): Likewise.
3802
38032014-10-13  Anthony Brandon  <anthony.brandon@gmail.com>
3804
3805	* c-parser.c (c_parser_all_labels): New function to replace
3806	the duplicate code.
3807	(c_parser_statement): Call the new function.
3808
38092014-10-09  Marek Polacek  <polacek@redhat.com>
3810
3811	PR c/63480
3812	* c-typeck.c (pop_init_level): Don't warn about initializing
3813	with { }.
3814
38152014-10-07  Marek Polacek  <polacek@redhat.com>
3816
3817	PR c/59717
3818	* c-decl.c (header_for_builtin_fn): New function.
3819	(implicitly_declare): Suggest which header to include.
3820
38212014-10-07  Marek Polacek  <polacek@redhat.com>
3822
3823	* c-convert.c (convert): Use error_operand_p.
3824	* c-typeck.c (require_complete_type): Likewise.
3825	(really_atomic_lvalue): Likewise.
3826	(digest_init): Likewise.
3827	(handle_omp_array_sections_1): Likewise.
3828
38292014-10-03  Marek Polacek  <polacek@redhat.com>
3830
3831	PR c/63453
3832	* c-decl.c (pop_scope): Don't warn about "inline function declared
3833	but never defined" for functions marked with gnu_inline attribute.
3834
38352014-09-25  Jakub Jelinek  <jakub@redhat.com>
3836
3837	PR c++/63249
3838	* c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
3839	on low_bound and length.
3840
38412014-09-24  Marek Polacek  <polacek@redhat.com>
3842
3843	PR c/61405
3844	PR c/53874
3845	* c-parser.c: Don't define CPP_KEYWORD.
3846	(c_parser_switch_statement): Pass original type to c_finish_case.
3847	* c-tree.h (c_finish_case): Update declaration.
3848	* c-typeck.c (c_finish_case): Add TYPE parameter.  Pass it
3849	conditionally to c_do_switch_warnings.
3850
38512014-09-03  Marek Polacek  <polacek@redhat.com>
3852
3853	PR c/62024
3854	* c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
3855	conversions.
3856
38572014-09-02  Jakub Jelinek  <jakub@redhat.com>
3858	    Balaji V. Iyer  <balaji.v.iyer@intel.com>
3859	    Igor Zamyatin  <igor.zamyatin@intel.com>
3860
3861	* c-parser.c (c_parser_cilk_for): New function.
3862	(c_parser_cilk_grainsize): Likewise.
3863	(c_get_temp_regvar): Likewise.
3864	(c_parser_statement_after_labels): Added RID_CILK_FOR case.
3865	(c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
3866	(c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
3867	* c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
3868	case.
3869
38702014-08-27  Chen Gang  <gang.chen.5i5j@gmail.com>
3871
3872	* c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
3873	with using HOST_WIDE_INT without truncation to 'int'
3874
38752014-08-22  Marek Polacek  <polacek@redhat.com>
3876
3877	PR c++/62199
3878	* c-typeck.c (parser_build_binary_op): Adjust call to
3879	warn_logical_not_parentheses.
3880
38812014-08-22  Igor Zamyatin  <igor.zamyatin@intel.com>
3882
3883	PR other/62008
3884	* c-parser.c (c_parser_array_notation): Check for correct
3885	type of an array added.
3886
38872014-08-19  Marek Polacek  <polacek@redhat.com>
3888
3889	PR c++/62153
3890	* c-typeck.c (build_binary_op): If either operand of a comparison
3891	is a boolean expression, call maybe_warn_bool_compare.
3892
38932014-08-19  Patrick Palka  <ppalka@gcc.gnu.org>
3894
3895	PR c/45584
3896	* c-typeck.c (build_c_cast): Do a conversion even when the
3897	TYPE_MAIN_VARIANTs are the same.
3898
38992014-08-19  Marek Polacek  <polacek@redhat.com>
3900
3901	* c-decl.c (diagnose_mismatched_decls): Unconditionally call
3902	pedwarn_c99 instead of pedwarn.
3903	(grokfield): Likewise.
3904	(warn_defaults_to): New function.
3905	(grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
3906	Unconditionally call pedwarn_c99 instead of pedwarn.
3907	(start_function): Call warn_defaults_to instead of pedwarn_c99.
3908	(declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
3909	check flag_isoc11 before.
3910	* c-errors.c (pedwarn_c99): Change the return type to bool.
3911	Handle -Wc99-c11-compat.
3912	* c-parser.c (disable_extension_diagnostics): Handle
3913	warn_c99_c11_compat.
3914	(restore_extension_diagnostics): Likewise.
3915	(c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
3916	instead of pedwarn, don't check flag_isoc11 before.
3917	(c_parser_declspecs): Likewise.
3918	(c_parser_alignas_specifier): Likewise.
3919	(c_parser_alignof_expression): Likewise.
3920	(c_parser_generic_selection): Likewise.
3921	* c-tree.h (pedwarn_c99): Update declaration.
3922	* c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
3923	of pedwarn_c99.
3924
39252014-08-19  Marek Polacek  <polacek@redhat.com>
3926
3927	* c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
3928	to pedwarn_c90.
3929	* c-errors.c: Include "opts.h".
3930	(pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
3931	* c-parser.c (disable_extension_diagnostics): Handle negative value
3932	of warn_c90_c99_compat, too.
3933	(restore_extension_diagnostics): Likewise.
3934	(c_parser_compound_statement_nostart): Pass
3935	OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.
3936
39372014-08-12  Marek Polacek  <polacek@redhat.com>
3938
3939	* c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
3940	Add pedwarn.
3941	(c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
3942	Likewise.
3943	(c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.
3944
39452014-08-10  Marek Polacek  <polacek@redhat.com>
3946
3947	PR c/51849
3948	* c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
3949	Call pedwarn_c90 instead of pedwarn.
3950	(check_bitfield_type_and_width): Likewise.
3951	(declspecs_add_qual): Likewise.
3952	(declspecs_add_type): Likewise.
3953	(warn_variable_length_array): Unify function for -pedantic and -Wvla.
3954	Adjust to only call pedwarn_c90.
3955	(grokdeclarator): Remove pedantic && !flag_isoc99 check.  Call
3956	pedwarn_c90 instead of pedwarn.
3957	* c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
3958	* c-parser.c (disable_extension_diagnostics): Handle
3959	warn_c90_c99_compat.
3960	(restore_extension_diagnostics): Likewise.
3961	(c_parser_enum_specifier): Remove check for !flag_isoc99.  Call
3962	pedwarn_c90 instead of pedwarn.
3963	(c_parser_initelt): Likewise.
3964	(c_parser_postfix_expression): Likewise.
3965	(c_parser_postfix_expression_after_paren_type): Likewise.
3966	(c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
3967	* c-tree.h: Fix formatting.
3968	* c-typeck.c (build_array_ref): Remove check for !flag_isoc99.  Call
3969	pedwarn_c90 instead of pedwarn.
3970
39712014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
3972
3973	* c-typeck.c: Remove include of pointer-set.h.
3974
39752014-08-07  Marek Polacek  <polacek@redhat.com>
3976
3977	* c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.
3978
39792014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
3980
3981	* c-typeck.c: Use hash_map instead of pointer_map.
3982
39832014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
3984
3985	* c-decl.c: Use hash_set instead of pointer_set.
3986
39872014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
3988
3989	PR middle-end/61455
3990	* c-array-notation.c (expand_array_notations): Handling
3991	of DECL_EXPR added.
3992
39932014-07-31  Marc Glisse  <marc.glisse@inria.fr>
3994
3995	PR c++/60517
3996	* c-typeck.c (c_finish_return): Return 0 instead of the address of
3997	a local variable.
3998
39992014-07-30  Tom Tromey  <tromey@redhat.com>
4000
4001	* c-typeck.c (struct constructor_stack) <designator_depth>: New
4002	field.
4003	(really_start_incremental_init, push_init_level): Initialize
4004	designator_depth.
4005	(pop_init_level): Set global designator_depth.
4006	(process_init_element): Check for designated_init attribute.
4007
40082014-07-20  Marek Polacek  <polacek@redhat.com>
4009
4010	PR c/61852
4011	* c-decl.c (implicit_decl_warning): Add location_t parameter.  Use it.
4012	(implicitly_declare): Pass location to implicit_decl_warning.
4013
40142014-07-14  Jakub Jelinek  <jakub@redhat.com>
4015
4016	PR middle-end/61294
4017	* c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
4018	If non-NULL, call c_parser_check_literal_zero.
4019	(c_parser_check_literal_zero): New function.
4020	(c_parser_postfix_expression_after_primary): Adjust
4021	c_parser_expr_list caller, handle -Wmemset-transposed-args.
4022
40232014-07-06  Marek Polacek  <polacek@redhat.com>
4024
4025	PR c/6940
4026	* c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
4027	* c-tree.h (C_ARRAY_PARAMETER): Define.
4028	* c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
4029	function parameter.
4030
40312014-07-02  Jan Hubicka  <hubicka@ucw.cz>
4032	    Chen Gang  <gang.chen.5i5j@gmail.com>
4033
4034	* c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
4035	releasing symbol.
4036
40372014-07-01  Marek Polacek  <polacek@redhat.com>
4038
4039	* c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
4040	instead of 0 to WARN_FOR_ASSIGNMENT.
4041
40422014-07-01  Marek Polacek  <polacek@redhat.com>
4043
4044	PR c/58286
4045	* c-typeck.c (convert_for_assignment): Pass
4046	OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
4047
40482014-06-30  Marek Polacek  <polacek@redhat.com>
4049
4050	* c-decl.c (grokdeclarator): Don't instrument VLAs if the function
4051	has no_sanitize_undefined attribute.
4052
40532014-06-30  Igor Zamyatin  <igor.zamyatin@intel.com>
4054
4055	PR middle-end/57541
4056	* c-array-notation.c (fix_builtin_array_notation_fn):
4057	Check for 0 arguments in builtin call. Check that bultin argument is
4058	correct.
4059	* c-parser.c (c_parser_array_notation): Check for incorrect initial
4060	index.
4061
40622014-06-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4063
4064	* c-parser.c (c_parser_declaration_or_fndef): Discard all type
4065	qualifiers in __auto_type for atomic types.
4066	(c_parser_typeof_specifier): Discard all type qualifiers in
4067	__typeof__ for atomic types.
4068
40692014-06-25  Marek Polacek  <polacek@redhat.com>
4070
4071	PR c/61162
4072	* c-parser.c (c_parser_statement_after_labels): Pass the location of
4073	the return expression to c_finish_return.
4074
40752014-06-25  Jakub Jelinek  <jakub@redhat.com>
4076
4077	* c-typeck.c (c_finish_omp_clauses): Make sure
4078	OMP_CLAUSE_LINEAR_STEP has correct type.
4079
40802014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
4081
4082	* c-decl.c: Adjust.
4083
40842014-06-24  Jakub Jelinek  <jakub@redhat.com>
4085
4086	* c-parser.c (c_parser_omp_for_loop): For
4087	#pragma omp parallel for simd move lastprivate clause from parallel
4088	to for rather than simd.
4089
40902014-06-23  Marek Polacek  <polacek@redhat.com>
4091
4092	* c-typeck.c (parser_build_binary_op): Don't call
4093	warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
4094
40952014-06-15  Jan Hubicka  <hubicka@ucw.cz>
4096
4097	* c-parser.c (c_parser_omp_threadprivate): Likewise.
4098	* c-decl.c (merge_decls): Likewise.
4099
41002014-06-09  Marek Polacek  <polacek@redhat.com>
4101
4102	PR c/36446
4103	* c-typeck.c (error_init): Call inform instead of error_at.
4104	(pedwarn_init): Call inform instead of pedwarn.
4105	(warning_init): Call inform instead of warning_at.
4106
41072014-06-07  Jan Hubicka  <hubicka@ucw.cz>
4108
4109	* c-decl.c (merge_decls): Use set_decl_section_name.
4110	(duplicate_decls): Remove node if it exists.
4111
41122014-06-05  S. Gilles  <sgilles@terpmail.umd.edu>
4113
4114	PR c/53119
4115	* c-typeck.c (push_init_level, process_init_element,
4116	pop_init_level): Correct check for zero initialization, move
4117	missing brace warning to respect zero initialization.
4118
41192014-06-05  Marek Polacek  <polacek@redhat.com>
4120
4121	PR c/56724
4122	* c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.
4123
41242014-06-05  Marek Polacek  <polacek@redhat.com>
4125
4126	PR c/49706
4127	* c-typeck.c (parser_build_binary_op): Warn when logical not is used
4128	on the left hand side operand of a comparison.
4129
41302014-06-05  Marek Polacek  <polacek@redhat.com>
4131
4132	PR c/48062
4133	* c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
4134	Print note only if the warning was printed.
4135
41362014-06-04  Igor Zamyatin  <igor.zamyatin@intel.com>
4137
4138	PR c/58942
4139	* c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
4140	with a pointer.
4141
41422014-06-03  Marek Polacek  <polacek@redhat.com>
4143
4144	PR c/60439
4145	* c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
4146	c_start_case.
4147	* c-tree.h (c_start_case): Update.
4148	* c-typeck.c (c_start_case): Add new boolean parameter.  Warn if
4149	switch condition has boolean value.
4150
41512014-06-02  Andrew MacLeod  <amacleod@redhat.com>
4152
4153	* c-decl.c: Include builtins.h.
4154	* c-parser.c: Likewise.
4155
41562014-05-27  Marek Polacek  <polacek@redhat.com>
4157
4158	PR c/56724
4159	* c-typeck.c (convert_arguments): Get location of a parameter.  Change
4160	error and warning calls to error_at and warning_at.  Pass location of
4161	a parameter to it.  Call warning_at with OPT_Wtraditional_conversion.
4162	(convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
4163	WARN_FOR_QUALIFIERS.  Pass expr_loc to those.
4164
41652014-05-26  Igor Zamyatin  <igor.zamyatin@intel.com>
4166
4167	PR c/61191
4168	* c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
4169	function parameters.
4170
41712014-05-23  Jan Hubicka  <hubicka@ucw.cz>
4172
4173	* c-decl.c (merge_decls): Preserve symtab node pointers.
4174	(duplicate_decls): Free new decl.
4175
41762014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
4177
4178	* c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
4179	initialization.
4180
4181	* c-parser.c (c_parser_omp_target): Return bool values.
4182
41832014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
4184
4185	* c-parser.c (c_parser_omp_clause_thread_limit): Rename
4186	num_teams_loc variable to num_thread_limit_loc.
4187
41882014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
4189
4190	* c-array-notation.c (expand_array_notations): Use void_node
4191	instead of void_zero_node.
4192
41932014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
4194
4195	* c-decl.c (finish_struct): Adjust.
4196	(finish_enum): Likewise.
4197	(bind): Adjust.
4198	(record_inline_static): Likewise.
4199	(push_scope): Likewise.
4200	(make_label): Likewise.
4201	(lookup_label_for_goto): Likewise.
4202	(finish_struct): Likewise.
4203	(finish_enum): Likewise.
4204	(store_parm_decls): Likewise.
4205	(c_push_function_context): Likewise.
4206	* c-lang.h: Remove usage of variable_size gty attribute.
4207	* c-parser.c (c_parse_init): Adjust.
4208	(c_parse_file): Likewise.
4209
42102014-05-13  Marek Polacek  <polacek@redhat.com>
4211
4212	PR c/61162
4213	* c-typeck.c (convert_for_assignment): Pass location to
4214	WARN_FOR_ASSIGNMENT instead of input_location.
4215
42162014-05-10  Marek Polacek  <polacek@redhat.com>
4217
4218	* c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
4219	maybe_warn_string_init.
4220	(c_parser_postfix_expression_after_paren_type): Pass type_loc to
4221	maybe_warn_string_init.
4222	* c-tree.h (maybe_warn_string_init): Update declaration.
4223	* c-typeck.c (maybe_warn_string_init): Add location parameter.
4224	Call pedwarn_init with loc instead of with input_location.
4225	(digest_init): Pass init_loc to maybe_warn_string_init.
4226	(pop_init_level): Call pedwarn_init with loc instead of with
4227	input_location.
4228	(set_init_index): Likewise.
4229	(process_init_element): Likewise.
4230
42312014-05-09  Marek Polacek  <polacek@redhat.com>
4232
4233	PR c/61096
4234	* c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
4235	(c_parser_initelt): Pass location to set_init_label.  Pass array index
4236	location to set_init_index.
4237	* c-tree.h (push_init_level): Update declaration.
4238	(pop_init_level): Likewise.
4239	(set_init_index): Likewise.
4240	(set_init_label): Likewise.
4241	* c-typeck.c (error_init): Add location parameter.  Call error_at
4242	instead of error.
4243	(digest_init): Pass init_loc to error_init.
4244	(really_start_incremental_init):
4245	(push_init_level): Add location parameter.  Pass loc to pop_init_level
4246	and error_init.
4247	(pop_init_level): Likewise.
4248	(set_designator): Add location parameter.  Pass loc to pop_init_level,
4249	push_init_level, and error_init.
4250	(set_init_index): Add location parameter.  Pass loc to error_init and
4251	set_designator.
4252	(set_init_label): Likewise.
4253	(output_init_element): Pass loc to error_init.
4254	(process_init_element): Pass loc to error_init, pop_init_level,
4255	pedwarn_init, and push_init_level.
4256
42572014-05-09  Marek Polacek  <polacek@redhat.com>
4258
4259	PR c/50459
4260	* c-parser.c (c_parser_attributes): Parse the arguments as an
4261	expression-list if the attribute takes identifier.
4262
42632014-05-08  Marek Polacek  <polacek@redhat.com>
4264
4265	PR c/61053
4266	* c-decl.c (grokdeclarator): Use min_align_of_type instead of
4267	TYPE_ALIGN_UNIT.
4268
42692014-05-08  Marek Polacek  <polacek@redhat.com>
4270
4271	PR c/61077
4272	* c-decl.c (start_function): Warn for _Atomic-qualified return type
4273	of main.
4274
42752014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
4276	    Mike Stump  <mikestump@comcast.net>
4277	    Richard Sandiford  <rdsandiford@googlemail.com>
4278
4279	* c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
4280	(finish_enum): Use wide-int interfaces.
4281	* c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
4282	* c-typeck.c (build_c_cast): Likewise.
4283	(set_nonincremental_init_from_string): Likewise.
4284	(c_tree_equal): Likewise.
4285
42862014-05-02  Marek Polacek  <polacek@redhat.com>
4287
4288	PR c/25801
4289	* c-typeck.c (c_size_in_bytes): Update comment.  Don't call error.
4290	Return size_one_node when the type is not complete.
4291	(pointer_diff): Remove comment.
4292	(build_unary_op): Improve error messages.
4293
42942014-05-02  Marek Polacek  <polacek@redhat.com>
4295
4296	* c-typeck.c (c_finish_return): Separate warning_at calls.
4297
42982014-05-02  Marek Polacek  <polacek@redhat.com>
4299
4300	* c-tree.h (error_init): Remove declaration.
4301	(pedwarn_init): Likewise.
4302	* c-typeck.c (error_init): Make static and move above.
4303	(pedwarn_init): Likewise.
4304	(warning_init): Move above.
4305	(maybe_warn_string_init): Likewise.
4306
43072014-05-01  Jeff Law  <law@redhat.com>
4308
4309	Revert:
4310
4311	2014-04-24  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
4312	* c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
4313	avoid goto.
4314
43152014-05-02  Marek Polacek  <polacek@redhat.com>
4316
4317	PR c/60784
4318	* c-typeck.c (push_init_level): Set constructor_designated to
4319	p->designated for structures.
4320
43212014-05-01  Marek Polacek  <polacek@redhat.com>
4322
4323	PR c/60915
4324	* c-parser.c (c_parser_declaration_or_fndef): Give better error if
4325	function-definition has an attribute after the declarator.
4326
43272014-05-01  Marek Polacek  <polacek@redhat.com>
4328
4329	PR c/60257
4330	* c-typeck.c (warning_init): Add location_t parameter.  Call
4331	warning_at instead of warning.
4332	(push_init_level): Pass input_location to warning_init.
4333	(add_pending_init): Add location_t parameter.  Pass loc to
4334	warning_init.
4335	(set_nonincremental_init): Pass input_location to add_pending_init.
4336	(set_nonincremental_init_from_string): Likewise.
4337	(output_init_element): Pass loc to warning_init and to
4338	add_pending_init.
4339
43402014-05-01  Marek Polacek  <polacek@redhat.com>
4341
4342	PR c/43395
4343	* c-typeck.c (c_finish_return): Distinguish between label and variable
4344	when warning about returning local address.
4345
43462014-05-01  Marek Polacek  <polacek@redhat.com>
4347
4348	PR c/29467
4349	* c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
4350	in C89 mode.
4351
43522014-05-01  Marek Polacek  <polacek@redhat.com>
4353
4354	PR c/43245
4355	* c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
4356	instead of 0 to WARN_FOR_QUALIFIERS.
4357
43582014-05-01  Marek Polacek  <polacek@redhat.com>
4359
4360	PR c/56989
4361	* c-typeck.c (default_conversion): Use better location for
4362	error call.
4363
43642014-04-30  Marek Polacek  <polacek@redhat.com>
4365
4366	* c-typeck.c (build_binary_op): Call ubsan_instrument_division
4367	also when SANITIZE_FLOAT_DIVIDE is on.
4368
43692014-04-30  Marek Polacek  <polacek@redhat.com>
4370
4371	PR c/60139
4372	* c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
4373	and pedwarn_init.  Use loc insted of input_location.
4374
43752014-04-30  Marek Polacek  <polacek@redhat.com>
4376
4377	PR c/60351
4378	* c-typeck.c (build_binary_op): Use location when warning about
4379	shift count.
4380
43812014-04-25  Marek Polacek  <polacek@redhat.com>
4382
4383	PR c/18079
4384	* c-decl.c (diagnose_mismatched_decls): Warn for mismatched
4385	always_inline/noinline and hot/cold attributes.
4386
43872014-04-25  Marek Polacek  <polacek@redhat.com>
4388
4389	PR c/60114
4390	* c-parser.c (c_parser_initelt): Pass input_location to
4391	process_init_element.
4392	(c_parser_initval): Pass loc to process_init_element.
4393	* c-tree.h (process_init_element): Adjust declaration.
4394	* c-typeck.c (push_init_level): Pass input_location to
4395	process_init_element.
4396	(pop_init_level): Likewise.
4397	(set_designator): Likewise.
4398	(output_init_element): Add location_t parameter.  Pass loc to
4399	digest_init.
4400	(output_pending_init_elements): Pass input_location to
4401	output_init_element.
4402	(process_init_element): Add location_t parameter.  Pass loc to
4403	output_init_element.
4404
44052014-04-24  Jakub Jelinek  <jakub@redhat.com>
4406
4407	* c-parser.c (c_parser_omp_atomic): Allow seq_cst before
4408	atomic-clause, allow comma in between atomic-clause and
4409	seq_cst.
4410
44112014-04-22  Jakub Jelinek  <jakub@redhat.com>
4412
4413	PR c/59073
4414	* c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
4415	fails, don't set OM_PARALLEL_COMBINED and return NULL.
4416
44172014-04-12  Igor Zamyatin  <igor.zamyatin@intel.com>
4418
4419	PR middle-end/60469
4420	* c-array-notation.c (fix_builtin_array_notation_fn): Use
4421	create_tmp_var instead build_decl for creating temps.
4422	(build_array_notation_expr): Likewise.
4423	(fix_conditional_array_notations_1): Likewise.
4424	(fix_array_notation_expr): Likewise.
4425	(fix_array_notation_call_expr): Likewise.
4426
44272014-03-28  Jakub Jelinek  <jakub@redhat.com>
4428
4429	PR c++/60689
4430	* c-tree.h (c_build_function_call_vec): New prototype.
4431	* c-typeck.c (build_function_call_vec): Don't call
4432	resolve_overloaded_builtin here.
4433	(c_build_function_call_vec): New wrapper function around
4434	build_function_call_vec.  Call resolve_overloaded_builtin here.
4435	(convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
4436	Call c_build_function_call_vec instead of build_function_call_vec.
4437	* c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
4438	* c-decl.c (finish_decl): Likewise.
4439
44402014-03-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4441
4442	PR c/55383
4443	* c-typeck.c: Use correct format string in cast-qual warning
4444
44452014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
4446
4447	* c-decl.c (c_decl_attributes): Use
4448	lang_hooks.types.omp_mappable_type.
4449	* c-typeck.c (c_finish_omp_clauses): Likewise.
4450
44512014-03-06  Marek Polacek  <polacek@redhat.com>
4452
4453	PR c/60197
4454	* c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
4455	of checking tree code.
4456
44572014-02-19  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
4458
4459	* c-parser.c (c_parser_declspecs): Replace call to error by error_at.
4460	(c_parser_parameter_declaration): Likewise.
4461
44622014-02-19  Marek Polacek  <polacek@redhat.com>
4463
4464	PR c/60195
4465	* c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
4466	Call mark_exp_read on exp.value.
4467	(build_atomic_assign): Set TREE_NO_WARNING on val and old.  Set
4468	TREE_ADDRESSABLE on old instead of val.
4469	(emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
4470
44712014-02-07  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
4472
4473	* c-parser.c (c_parser_get_builtin_args): Replace calls to
4474	C_EXPR_APPEND by vec_safe_push.
4475	* c-tree.h (C_EXPR_APPEND): Remove.
4476
44772014-01-31  Marek Polacek  <polacek@redhat.com>
4478
4479	PR c/59963
4480	* c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
4481	build_function_call_vec.
4482	(build_function_call): Likewise.
4483	(build_atomic_assign): Likewise.
4484	(build_function_call_vec): Add arg_loc parameter.  Use it.
4485	(convert_arguments): Likewise.
4486	(convert_for_assignment): Rename rhs_loc to expr_loc.
4487	* c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
4488	(c_parser_objc_keywordexpr): Likewise.
4489	(c_parser_postfix_expression_after_primary): Call
4490	build_function_call_vec with expr_loc rather than op_loc.
4491	Call c_parser_expr_list to fill arg_loc.  Pass arg_loc to
4492	build_function_call_vec.
4493	(c_parser_expr_list): Add locations parameter.  Fill it with locations
4494	of function arguments.
4495	* c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
4496
44972014-01-30  Marek Polacek  <polacek@redhat.com>
4498
4499	PR c/59940
4500	* c-typeck.c (build_function_call_vec): Use loc parameter.
4501	(convert_arguments): Add location parameter.  Use it.
4502	(ep_convert_and_check): Likewise.
4503	(build_atomic_assign): Adjust convert_for_assignment call.
4504	(build_modify_expr): Likewise.
4505	(digest_init): Likewise.
4506	(c_finish_return): Likewise.
4507	(build_conditional_expr): Adjust ep_convert_and_check calls.
4508	(convert_for_assignment): Add rhs_loc parameter.  Use it.
4509	(build_binary_op): Adjust convert_and_check and ep_convert_and_check
4510	calls.
4511
45122014-01-30  Richard Biener  <rguenther@suse.de>
4513
4514	PR c/59905
4515	* c-typeck.c (build_function_call_vec): Do not replace calls
4516	to a function via an incompatible type with a runtime abort.
4517
45182014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
4519
4520	* c-parser.c (c_parser_declaration_or_fndef): Replaced
4521	flag_enable_cilkplus with flag_cilkplus.
4522	(c_parser_direct_declarator_inner): Likewise.
4523	(c_parser_attribute_any_word): Likewise.
4524	(c_parser_attributes): Likewise.
4525	(c_parser_compound_statement): Likewise.
4526	(c_parser_statement_after_labels): Likewise.
4527	(c_parser_if_statement): Likewise.
4528	(c_parser_switch_statement): Likewise.
4529	(c_parser_do_statement): Likewise.
4530	(c_parser_for_statement): Likewise.
4531	(c_parser_unary_expression): Likewise.
4532	(c_parser_postfix_expression): Likewise.
4533	(c_parser_postfix_expression_after_primary): Likewise.
4534	(c_parser_postfix_expression_after_primary): Likewise.
4535	(c_parser_omp_clause_name): Likewise.
4536	(c_finish_omp_declare_simd): Likewise.
4537	(c_parser_cilk_verify_simd): Likewise.
4538	* c-typeck.c (build_array_ref): Likewise.
4539	(build_function_call_vec): Likewise.
4540	(convert_arguments): Likewise.
4541	(build_compound_expr): Likewise.
4542	(c_finish_return): Likewise.
4543	(c_finish_if_stmt): Likewise.
4544	(c_finish_loop): Likewise.
4545	(build_binary_op): Likewise.
4546
45472014-01-23  Marek Polacek  <polacek@redhat.com>
4548
4549	PR c/59846
4550	* c-typeck.c (parser_build_binary_op): Use location instead of
4551	input_location.
4552	(build_binary_op): Pass location to shorten_compare.
4553
45542014-01-23  Marek Polacek  <polacek@redhat.com>
4555
4556	PR c/58346
4557	* c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
4558	an empty aggregate.
4559
45602014-01-23  Marek Polacek  <polacek@redhat.com>
4561
4562	PR c/59871
4563	* c-typeck.c (build_compound_expr): Warn even for right-hand operand
4564	of a comma expression.
4565	(emit_side_effect_warnings): Likewise.
4566
45672014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
4568
4569	PR c/59825
4570	* c-array-notation.c (expand_array_notation_exprs): Rewrote this
4571	function to use walk_tree and moved a lot of its functionality to
4572	expand_array_notations.
4573	(expand_array_notations): New function.
4574
45752014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
4576
4577	* c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
4578	attribute an attribute without value.
4579
45802014-01-23  Jakub Jelinek  <jakub@redhat.com>
4581
4582	PR middle-end/58809
4583	* c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
4584	BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
4585
45862014-01-22  Marek Polacek  <polacek@redhat.com>
4587
4588	PR c/59891
4589	* c-typeck.c (build_conditional_expr): Call c_fully_fold instead
4590	of remove_c_maybe_const_expr on op1 and op2.
4591
45922014-01-15  Jakub Jelinek  <jakub@redhat.com>
4593
4594	PR c/58943
4595	* c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
4596	effects, preevaluate rhs using SAVE_EXPR first.
4597
45982014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>
4599
4600	PR c++/59631
4601	* c-parser.c (c_parser_postfix_expression): Replaced consecutive if
4602	statements with if-elseif statements.
4603
46042014-01-06  Marek Polacek  <polacek@redhat.com>
4605
4606	PR c/57773
4607	* c-decl.c (check_bitfield_type_and_width): Warn for implementation
4608	defined bit-field types only in ISO C.
4609
46102014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4611
4612	Update copyright years
4613
46142014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4615
4616	* c-array-notation.c: Use the standard form for the copyright notice.
4617
46182013-12-18  Balaji V. Iyer  <balaji.v.iyer@intel.com>
4619
4620	* c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
4621	(c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
4622	field in parser is not empty.  If not-empty, call the function
4623	c_parser_finish_omp_declare_simd.
4624	(c_parser_cilk_clause_vectorlength): Modified function to be shared
4625	between SIMD-enabled functions and #pragma simd.  Added new parameter.
4626	(c_parser_cilk_all_clauses): Modified the usage of the function
4627	c_parser_cilk_clause_vectorlength as mentioned above.
4628	(c_parser_cilk_simd_fn_vector_attrs): New function.
4629	(c_finish_cilk_simd_fn_tokens): Likewise.
4630	(is_cilkplus_vector_p): Likewise.
4631	(c_parser_omp_clause_name): Added checking for "vectorlength,"
4632	"nomask," and "mask" strings in clause name.
4633	(c_parser_omp_all_clauses): Added 3 new case statements:
4634	PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
4635	PRAGMA_CILK_CLAUSE_NOMASK.
4636	(c_parser_attributes): Added a cilk_simd_fn_tokens parameter.  Added a
4637	check for vector attribute and if so call the function
4638	c_parser_cilk_simd_fn_vector_attrs.  Also, when Cilk plus is enabled,
4639	called the function c_finish_cilk_simd_fn_tokens.
4640	(c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
4641	parser field is non-empty.  If so, parse them as you would parse
4642	the omp declare simd pragma.
4643	(c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
4644	Added a check when step is a parameter and flag it as error.
4645	(CILK_SIMD_FN_CLAUSE_MASK): New #define.
4646	(c_parser_cilk_clause_name): Changed pragma_cilk_clause to
4647	pragma_omp_clause.
4648
46492013-12-17  Thomas Schwinge  <thomas@codesourcery.com>
4650
4651	* c-parser.c (c_parser_omp_parallel): Fix description.
4652
46532013-12-11  Balaji V. Iyer  <balaji.v.iyer@intel.com>
4654
4655	* c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
4656	(LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
4657	(LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
4658	* c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
4659
46602013-12-04  Joseph Myers  <joseph@codesourcery.com>
4661
4662	PR c/52023
4663	* c-parser.c (c_parser_alignas_specifier): Use
4664	c_sizeof_or_alignof_type instead of c_alignof.
4665	(c_parser_alignof_expression): Likewise, with min_alignof
4666	parameter depending on alignof spelling used.
4667
46682013-12-04  Marek Polacek  <polacek@redhat.com>
4669
4670	PR c/54113
4671	* c-decl.c (start_function): Don't warn for missing prototype for
4672	inline functions.
4673
46742013-12-03  Marek Polacek  <polacek@redhat.com>
4675
4676	PR c/59351
4677	* c-decl.c (build_compound_literal): Allow compound literals with
4678	empty initial value.
4679
46802013-12-02  Joseph Myers  <joseph@codesourcery.com>
4681
4682	PR c/58235
4683	* c-typeck.c (build_modify_expr): Diagnose assignment to
4684	expression with array type.
4685
46862013-11-29  Joseph Myers  <joseph@codesourcery.com>
4687
4688	PR c/42262
4689	* c-typeck.c (process_init_element): Do not treat a string as
4690	initializing a whole array when used with a designator for an
4691	individual element.
4692
46932013-11-29  Joseph Myers  <joseph@codesourcery.com>
4694
4695	PR c/57574
4696	* c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
4697	an inline function following a static declaration.
4698
46992013-11-28  Jakub Jelinek  <jakub@redhat.com>
4700
4701	PR c/59310
4702	* c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
4703	to p_name before calling c_parser_omp_teams instead of after.
4704	(c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
4705	argument.  Remove unused p_name variable.
4706
47072013-11-27  Aldy Hernandez  <aldyh@redhat.com>
4708	    Jakub Jelinek  <jakub@redhat.com>
4709
4710	* c-decl.c (c_builtin_function_ext_scope): Avoid binding if
4711	external_scope is NULL.
4712
47132013-11-27  Tom de Vries  <tom@codesourcery.com>
4714	    Marc Glisse  <marc.glisse@inria.fr>
4715
4716	PR c++/59032
4717	* c-typeck.c (build_unary_op): Allow vector increment and decrement.
4718
47192013-11-22  Andrew MacLeod  <amacleod@redhat.com>
4720
4721	* c-typeck.c: Add required include files from gimple.h.
4722
47232013-11-22  David Malcolm  <dmalcolm@redhat.com>
4724
4725	* c-decl.c (define_label, shadow_tag_warned)
4726	(check_bitfield_type_and_width, grokdeclarator, grokparms,
4727	store_parm_decls_newstyle, store_parm_decls_oldstyle)
4728	(declspecs_add_type): Remove use of in_system_header macro.
4729	* c-parser.c (c_parser_unary_expression): Likewise.
4730	* c-typeck.c (store_init_value, process_init_element)
4731	(c_start_case): Likewise.
4732
4733	* c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
4734	macro.
4735
4736	* c-parser.c (c_parser_set_source_position_from_token): Remove
4737	reference to in_system_header from comment.
4738
47392013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
4740
4741	* c-decl.c (grokdeclarator): Update comment to refer to
4742	tree_to_[su]hwi rather than tree_low_cst.
4743
47442013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
4745
4746	* c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
4747	tree_to_uhwi throughout.
4748
47492013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
4750
4751	* c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
4752	throughout.
4753
47542013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
4755
4756	* c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
4757	throughout.
4758
47592013-11-15  Aldy Hernandez  <aldyh@redhat.com>
4760
4761	* c-parser.c (c_parser_cilk_simd): New.
4762	(c_parser_cilk_verify_simd): New.
4763	(c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
4764	(c_parser_omp_for_loop): Add case for NE_EXPR.
4765	Set c_break_label for CILK_SIMD.
4766	(c_parser_cilk_clause_vectorlength): New.
4767	(c_parser_cilk_clause_linear): New.
4768	(c_parser_cilk_clause_name): New.
4769	(c_parser_cilk_all_clauses): New.
4770	* c-typeck.c (build_unary_op): Pass location argument to
4771	readonly_error.
4772	(build_modify_expr): Same.
4773	(build_asm_expr): Same.
4774	(c_finish_bc_stmt): Error on break/continue in loops.
4775
47762013-11-14  Andrew MacLeod  <amacleod@redhat.com>
4777
4778	* c-typeck.c: Include only gimplify.h and gimple.h as needed.
4779
47802013-11-14  Diego Novillo  <dnovillo@google.com>
4781
4782	* c-decl.c: Include print-tree.h.
4783	Include stor-layout.h.
4784	Include varasm.h.
4785	Include attribs.h.
4786	Include stringpool.h.
4787	* c-lang.c: Include fold-const.h.
4788	* c-parser.c: Include stringpool.h.
4789	Include attribs.h.
4790	Include stor-layout.h.
4791	Include varasm.h.
4792	Include trans-mem.h.
4793	* c-typeck.c: Include stor-layout.h.
4794	Include trans-mem.h.
4795	Include varasm.h.
4796	Include stmt.h.
4797
47982013-11-13  Joseph Myers  <joseph@codesourcery.com>
4799
4800	* c-tree.h (c_typespec_keyword): Add cts_auto_type.
4801	* c-decl.c (declspecs_add_type, finish_declspecs): Handle
4802	__auto_type.
4803	* c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
4804	(c_parser_attribute_any_word, c_parser_objc_selector): Handle
4805	RID_AUTO_TYPE.
4806	(c_parser_declspecs): Take argument AUTO_TYPE_OK.
4807	(c_parser_declaration_or_fndef, c_parser_struct_declaration)
4808	(c_parser_declarator, c_parser_direct_declarator_inner)
4809	(c_parser_parameter_declaration, c_parser_type_name): All callers
4810	changed.
4811	(c_parser_declaration_or_fndef): Handle declarations with type
4812	determined from the initializer.
4813
48142013-11-12  Andrew MacLeod  <amacleod@redhat.com>
4815
4816	* c-typeck.c: Include gimplify.h.
4817
48182013-11-12  Joseph Myers  <joseph@codesourcery.com>
4819
4820	* c-tree.h (struct c_declspecs): Add thread_gnu_p field.
4821	* c-parser.c (c_parser_declspecs): Mention _Thread_local in
4822	comment.
4823	* c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
4824	or _Thread_local as appropriate in diagnostics.
4825	(build_null_declspecs): Initialize ret->thread_gnu_p.
4826	(declspecs_add_scspec): Handle either __thread or _Thread_local
4827	for RID_THREAD.  Diagnose _Thread_local for pre-C11 standards if
4828	pedantic.  Do not disallow _Thread_local extern and _Thread_local
4829	static.
4830
48312013-11-07  Joseph Myers  <joseph@codesourcery.com>
4832	    Andrew MacLeod  <amacleod@redhat.com>
4833
4834	* c-aux-info.c (gen_type): Handle atomic qualifier.
4835	* c-decl.c (validate_proto_after_old_defn): Do not remove atomic
4836	qualifiers when compating types.
4837	(shadow_tag_warned): Handle atomic_p in declspecs.
4838	(quals_from_declspecs): Likewise.
4839	(start_decl): Use c_type_promotes_to when promoting argument
4840	types.
4841	(grokdeclarator): Handle _Atomic.
4842	(get_parm_info): Diagnose any qualifier on "void" as only
4843	parameter.
4844	(store_parm_decls_oldstyle): Do not remove atomic qualifiers when
4845	comparing types.  Use c_type_promotes_to when promoting argument
4846	types.
4847	(finish_function): Use c_type_promotes_to when promoting argument
4848	types.
4849	(build_null_declspecs): Handle atomic_p in declspecs.
4850	(declspecs_add_qual): Handle RID_ATOMIC.
4851	* c-parser.c (c_token_starts_typename, c_token_is_qualifier)
4852	(c_token_starts_declspecs): Handle RID_ATOMIC.
4853	(c_parser_declspecs): Handle atomic type specifiers and
4854	qualifiers.
4855	(c_parser_typeof_specifier): Remove const and _Atomic qualifiers
4856	from types of expressions with atomic type.
4857	(c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
4858	(c_parser_attribute_any_word): Handle RID_ATOMIC.
4859	(c_parser_initializer, c_parser_initelt, c_parser_initval)
4860	(c_parser_statement_after_labels, c_parser_switch_statement)
4861	(c_parser_for_statement, c_parser_expr_no_commas)
4862	(c_parser_conditional_expression, c_parser_binary_expression)
4863	(c_parser_cast_expression, c_parser_unary_expression)
4864	(c_parser_postfix_expression)
4865	(c_parser_postfix_expression_after_primary, c_parser_expression):
4866	Use convert_lvalue_to_rvalue.
4867	(c_parser_expression_conv, c_parser_expr_list): Document
4868	conversion of lvalues to rvalues.  Use convert_lvalue_to_rvalue.
4869	(c_parser_objc_synchronized_statement): Use
4870	convert_lvalue_to_rvalue.
4871	(c_parser_objc_selector): Handle RID_ATOMIC.
4872	(c_parser_objc_receiver, c_parser_array_notation): Use
4873	convert_lvalue_to_rvalue.
4874	* c-tree.h (ctsk_typeof): Adjust comment to mention use for
4875	_Atomic (type-name).
4876	(struct c_declspecs): Add atomic_p field.
4877	(convert_lvalue_to_rvalue): Declare.
4878	* c-typeck.c (c_type_promotes_to): Promote atomic types to
4879	corresponding atomic types.
4880	(qualify_type): Don't add _Atomic qualifiers from second argument.
4881	(comp_target_types): Do not allow _Atomic mismatches.
4882	(type_lists_compatible_p): Do not remove atomic qualifiers when
4883	comparing types.
4884	(really_atomic_lvalue, convert_lvalue_to_rvalue)
4885	(build_atomic_assign): New functions.
4886	(build_unary_op): Use build_atomic_assign for atomic increment and
4887	decrement.
4888	(build_conditional_expr): Do not treat _Atomic void as a qualified
4889	version of void.
4890	(build_modify_expr): Use build_atomic_assign for atomic LHS.
4891	(find_anonymous_field_with_type, convert_to_anonymous_field)
4892	(convert_for_assignment): Do not remove atomic qualifiers when
4893	comparing types.
4894	(digest_init): Do not accept initialization of arrays of atomic
4895	elements by string constants.
4896	(build_asm_expr): Use convert_lvalue_to_rvalue.
4897	(build_binary_op): Do not treat _Atomic void as a qualified
4898	version of void.
4899
49002013-11-06  DJ Delorie  <dj@redhat.com>
4901
4902	* c-decl.c (locate_old_decl): If a previous conflicting decl is
4903	both explicit and builtin, print the location of the explicit one.
4904
49052013-11-05  Tobias Burnus  <burnus@net-b.de>
4906
4907	* c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
4908	c_parser_omp_distribute, c_parser_omp_teams,
4909	c_parser_omp_target, c_parser_omp_declare): Handle
4910	-fopenmp-simd.
4911
49122013-11-03  Marek Polacek  <polacek@redhat.com>
4913
4914	* c-decl.c (grokdeclarator): Add VLA instrumentation.
4915
49162013-11-01  Jakub Jelinek  <jakub@redhat.com>
4917
4918	* c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
4919	check_dup_generic at the end, unless remove is true.
4920	(c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
4921	remove = true;.
4922	(c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
4923
49242013-10-31  Jakub Jelinek  <jakub@redhat.com>
4925
4926	* c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
4927	with decl that is not pointer nor array.
4928
49292013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
4930
4931	* c-decl.c (finish_function): Added a call for insert_cilk_frame when
4932	a spawning function is found.
4933	* c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
4934	(LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
4935	(LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
4936	* c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
4937	case.
4938	(c_parser_postfix_expression): Added RID_CILK_SPAWN case.
4939	* c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
4940	expr.
4941	(c_finish_return): Added a check to reject _Cilk_spawn in return
4942	expression.
4943	(build_cilk_spawn): New function.
4944	(build_cilk_sync): Likewise.
4945	* Makefile.in (c-decl.o): Added cilk.h in dependency list.
4946
49472013-10-27  Tobias Burnus  <burnus@net-b.de>
4948
4949	PR other/33426
4950	* c-parser.c (c_parser_while_statement, c_parser_while_statement,
4951	c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
4952	(c_parser_statement_after_labels): Update calls.
4953
49542013-10-24  Tobias Burnus  <burnus@net-b.de>
4955
4956	PR other/33426
4957	* c-parser.c (c_parser_pragma, c_parser_for_statement):
4958	Handle PRAGMA_IVDEP.
4959	(c_parser_statement_after_labels): Update call.
4960
49612013-10-24  Marek Polacek  <polacek@redhat.com>
4962
4963	* c-parser.c (c_parser_struct_declaration): Add a comment.
4964	(c_parser_declarator): Don't allow _Alignas here.
4965
49662013-10-17  Andrew MacLeod  <amacleod@redhat.com>
4967
4968	* c-parser.c: Include omp-low.h.
4969	* c-typeck.c: Likewise.
4970
49712013-10-17  Marek Polacek  <polacek@redhat.com>
4972
4973	PR c/58267
4974	* c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
4975	Document syntax of the array-declarator.
4976	(c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
4977	are not permitted.
4978	(c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
4979	(c_parser_struct_declaration): Likewise.
4980	(c_parser_declarator): Likewise.
4981	(c_parser_direct_declarator_inner): Likewise.
4982	(c_parser_parameter_declaration): Likewise.
4983	(c_parser_type_name): Likewise.
4984
49852013-10-11  Jakub Jelinek  <jakub@redhat.com>
4986
4987	* c-lang.h (current_omp_declare_target_attribute): New extern
4988	decl.
4989	* c-parser.c: Include c-lang.h.
4990	(struct c_parser): Change tokens to c_token *.
4991	Add tokens_buf field.  Change tokens_avail type to unsigned int.
4992	(c_parser_consume_token): If parser->tokens isn't
4993	&parser->tokens_buf[0], increment parser->tokens.
4994	(c_parser_consume_pragma): Likewise.
4995	(enum pragma_context): Add pragma_struct and pragma_param.
4996	(c_parser_external_declaration): Adjust
4997	c_parser_declaration_or_fndef caller.
4998	(c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
4999	argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
5000	Adjust recursive call.
5001	(c_parser_struct_or_union_specifier): Use pragma_struct instead
5002	of pragma_external.
5003	(c_parser_parameter_declaration): Use pragma_param instead of
5004	pragma_external.
5005	(c_parser_compound_statement_nostart, c_parser_label,
5006	c_parser_for_statement): Adjust
5007	c_parser_declaration_or_fndef callers.
5008	(c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
5009	it through to c_parser_conditional_expression.
5010	(c_parser_conditional_expression): Add omp_atomic_lhs argument,
5011	pass it through to c_parser_binary_expression.  Adjust recursive
5012	call.
5013	(c_parser_binary_expression): Remove prec argument, add
5014	omp_atomic_lhs argument instead.  Always start from PREC_NONE, if
5015	omp_atomic_lhs is non-NULL and one of the arguments of toplevel
5016	binop matches it, use build2 instead of parser_build_binary_op.
5017	(c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
5018	PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
5019	PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
5020	Handle pragma_struct and pragma_param the same as pragma_external.
5021	(c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
5022	(c_parser_omp_variable_list): Parse array sections for
5023	OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
5024	(c_parser_omp_clause_collapse): Fully fold collapse expression.
5025	(c_parser_omp_clause_reduction): Handle user defined reductions.
5026	(c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
5027	c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
5028	c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
5029	c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
5030	c_parser_omp_clause_depend, c_parser_omp_clause_map,
5031	c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
5032	c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
5033	c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
5034	(c_parser_omp_all_clauses): Add finish_p argument.  Don't call
5035	c_finish_omp_clauses if it is false.  Handle new OpenMP 4.0 clauses.
5036	(c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
5037	present to c_finish_omp_atomic.  Handle OpenMP 4.0 atomic forms.
5038	(c_parser_omp_for_loop): Add CODE argument, pass it through
5039	to c_finish_omp_for.  Change last argument to cclauses,
5040	and adjust uses to grab parallel clauses from the array of all
5041	the split clauses.  Adjust c_parser_binary_expression,
5042	c_parser_declaration_or_fndef and c_finish_omp_for callers.
5043	(omp_split_clauses): New function.
5044	(c_parser_omp_simd): New function.
5045	(c_parser_omp_for): Add p_name, mask and cclauses arguments.
5046	Allow the function to be called also when parsing combined constructs,
5047	and call c_parser_omp_simd when parsing for simd.
5048	(c_parser_omp_sections_scope): If section-sequence doesn't start with
5049	#pragma omp section, require exactly one structured-block instead of
5050	sequence of statements.
5051	(c_parser_omp_sections): Add p_name, mask and cclauses arguments.
5052	Allow the function to be called also when parsing combined constructs.
5053	(c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
5054	Allow the function to be called also when parsing combined
5055	constructs.
5056	(c_parser_omp_taskgroup, c_parser_omp_cancel,
5057	c_parser_omp_cancellation_point, c_parser_omp_distribute,
5058	c_parser_omp_teams, c_parser_omp_target_data,
5059	c_parser_omp_target_update, c_parser_omp_target,
5060	c_parser_omp_declare_simd, c_finish_omp_declare_simd,
5061	c_parser_omp_declare_target, c_parser_omp_end_declare_target,
5062	c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
5063	(c_parser_omp_construct): Add p_name and mask vars.  Handle
5064	PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
5065	PRAGMA_OMP_TEAMS.  Adjust c_parser_omp_for, c_parser_omp_parallel
5066	and c_parser_omp_sections callers.
5067	(c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
5068	(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
5069	OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
5070	(OMP_PARALLEL_CLAUSE_MASK): Likewise.  Add OMP_CLAUSE_PROC_BIND.
5071	(OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.  Add
5072	OMP_CLAUSE_DEPEND.
5073	(OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
5074	OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
5075	OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
5076	OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
5077	OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
5078	* c-typeck.c: Include tree-inline.h.
5079	(c_finish_omp_cancel, c_finish_omp_cancellation_point,
5080	handle_omp_array_sections_1, handle_omp_array_sections,
5081	c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
5082	(c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
5083	user defined reductions.
5084	(c_tree_equal): New function.
5085	* c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
5086	c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
5087	c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
5088	c_check_omp_declare_reduction_r): New prototypes.
5089	* c-decl.c (current_omp_declare_target_attribute): New variable.
5090	(c_decl_attributes): New function.
5091	(start_decl, start_function): Use it instead of decl_attributes.
5092	(temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
5093	c_omp_reduction_decl, c_omp_reduction_lookup,
5094	c_check_omp_declare_reduction_r): New functions.
5095
50962013-09-25  Tom Tromey  <tromey@redhat.com>
5097
5098	* Make-lang.in (c/gccspec.o): Remove.
5099	(CFLAGS-c/gccspec.o): New variable.
5100	(cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
5101	(c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
5102	(c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
5103
51042013-09-25  Tom Tromey  <tromey@redhat.com>
5105
5106	* Make-lang.in (c/gccspec.o): Don't use subshell.
5107
51082013-09-18  Marek Polacek  <polacek@redhat.com>
5109
5110	PR sanitize/58443
5111	* c-typeck.c (build_binary_op): Properly honor -fsanitize options.
5112	Remove unnecessary check.
5113
51142013-09-18  Marek Polacek  <polacek@redhat.com>
5115
5116	PR sanitizer/58411
5117	* c-typeck.c (build_binary_op): Don't sanitize function if it has the
5118	no_sanitize_undefined attribute.
5119
51202013-09-13  Kai Tietz  <ktietz@redhat.com>
5121
5122	PR target/57848
5123	* c-decl.c (c_builtin_function_ext_scope): Remove
5124	wrong assumption that it is never called on prexisting
5125	symbol.
5126
51272013-09-08  Joern Rennecke  <joern.rennecke@embecosm.com>
5128
5129	* c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
5130
51312013-09-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5132
5133	* c-objc-common.c (c_tree_printer): Tidy.
5134
51352013-08-30  Marek Polacek  <polacek@redhat.com>
5136
5137	* c-typeck.c (build_binary_op): Add division by zero and shift
5138	instrumentation.
5139
51402013-08-26  Joern Rennecke  <joern.rennecke@embecosm.com>
5141	    Joseph Myers  <joseph@codesourcery.com>
5142
5143	PR c/35649
5144	* c-typeck.c (c_common_type): Prefer double_type_node over
5145	other REAL_TYPE types with the same precision.
5146	(convert_arguments): Likewise.
5147
51482013-08-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5149
5150	* c-objc-common.c (c_tree_printer): Document the nature of the cast.
5151	(c_initialize_diagnostics): Call a destructor for the early printer.
5152
51532013-08-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5154
5155	* c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
5156	printer initialization.
5157
51582013-08-19  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5159
5160	PR c/57490
5161	* c-array-notation.c (fix_conditional_array_notations_1): Added a
5162	check for truth values.
5163	(expand_array_notation_exprs): Added truth values case.  Removed an
5164	unwanted else.  Added for-loop to walk through subtrees in default
5165	case.
5166
51672013-08-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5168
5169	* c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
5170
51712013-07-23  Joseph Myers  <joseph@codesourcery.com>
5172
5173	* c-parser.c (struct c_generic_association): Fix typo.
5174
51752013-07-23  Tom Tromey  <tromey@redhat.com>
5176	    Joseph Myers  <joseph@codesourcery.com>
5177
5178	* c-parser.c (struct c_generic_association): New.
5179	(c_generic_association_d): New typedef.
5180	(c_parser_generic_selection): New function.
5181	(c_parser_postfix_expression): Handle RID_GENERIC.
5182
51832013-07-13  Jason Merrill  <jason@redhat.com>
5184
5185	PR c++/57793
5186	* c-decl.c (finish_struct): Check for too-large class.
5187
51882013-07-04  Joern Rennecke  <joern.rennecke@embecosm.com>
5189
5190	PR c/57821
5191	* c-typeck.c (set_init_index): When folding, check for index overflow.
5192
51932013-06-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5194
5195	* c-parser.c (c_parser_array_notation): Removed rejection of array
5196	notations in an array of function pointers.
5197
51982013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5199
5200	* c-array-notation.c (make_triplet_val_inv): New function.
5201	(create_cmp_incr): Likewise.
5202	(create_array_refs): Likewise.
5203	(fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
5204	Also modularized common parts between functions and called the function.
5205	(build_array_notation_expr): Likewise.
5206	(fix_conditional_array_notations_1): Likewise.
5207	(fix_array_notation_expr): Likewise.
5208	(fix_array_notation_call_expr): Likewise.
5209
52102013-06-18  Marek Polacek  <polacek@redhat.com>
5211
5212	PR c/57630
5213	* c-decl.c (check_for_loop_decls): Improve diagnostics messages.
5214
52152013-06-12  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5216
5217	* c-array-notation.c (build_array_notation_expr): Reject array notation
5218	mismatch between LHS and RHS even inside a call_expr.  Also, removed
5219	a couple while statements that were dead code.
5220
52212013-06-10  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5222
5223	* c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
5224	excessive precision expressions in function parameters.  Also removed
5225	couple unwanted while statements.
5226
52272013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5228
5229	* c-array-notation.c (expand_array_notation_exprs): Added
5230	ARRAY_NOTATION_REF case.
5231
52322013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5233
5234	* c-array-notation.c (length_mismatch_in_expr_p): Moved this
5235	function to c-family/array-notation-common.c.
5236	(is_cilkplus_reduce_builtin): Likewise.
5237	(find_rank): Likewise.
5238	(extract_array_notation_exprs): Likewise.
5239	(replace_array_notations): Likewise.
5240	(find_inv_trees): Likewise.
5241	(replace_inv_trees): Likewise.
5242	(contains_array_notation_expr): Likewise.
5243	(find_correct_array_notation_type): Likewise.
5244	(replace_invariant_exprs): Initialized additional_tcodes to NULL.
5245	(struct inv_list): Moved this to c-family/array-notation-common.c.
5246	* c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
5247
52482013-06-05  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5249
5250	* c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
5251	reduction functions outside the for-loop.  Added a check if the fundecl
5252	is non-NULL.  Finally, removed an unwanted if-statement, and made the
5253	body unconditional.
5254
52552013-06-03  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5256
5257	* c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
5258	condition of the if-statement matches the rank of else-block and then-
5259	block when array notations are used.
5260	* c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
5261	expression after the entire function body is parsed.
5262	(c_parser_expr_no_commas): Delayed creating array notation expressions
5263	to the end of function parsing.
5264	* c-array-notation.c (fix_conditional_array_notations_1): Expanded the
5265	whole if-statement instead of just the condition.
5266	(expand_array_notation_exprs): Added MODIFY_EXPR case.
5267
52682013-06-03  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5269
5270	PR c/57474
5271	* c-array-notation.c (build_array_notation_expr): Initialized rhs_length
5272	array to NULL_TREE if they are unused.  Also added a check for the
5273	field to be NULL before its fields are used in future.
5274
52752013-05-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5276
5277	PR bootstrap/57450
5278	* c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
5279	(build_array_notation_expr): Likewise.
5280
52812013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
5282
5283	* c-typeck.c (build_array_ref): Added a check to see if array's
5284	index is greater than one.  If true, then emit an error.
5285	(build_function_call_vec): Exclude error reporting and checking
5286	for builtin array-notation functions.
5287	(convert_arguments): Likewise.
5288	(c_finish_return): Added a check for array notations as a return
5289	expression.  If true, then emit an error.
5290	(c_finish_loop): Added a check for array notations in a loop
5291	condition.  If true then emit an error.
5292	(lvalue_p): Added a ARRAY_NOTATION_REF case.
5293	(build_binary_op): Added a check for array notation expr inside
5294	op1 and op0.  If present, we call another function to find correct
5295	type.
5296	* Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
5297	* c-parser.c (c_parser_compound_statement): Check if array
5298	notation code is used in tree, if so, then transform them into
5299	appropriate C code.
5300	(c_parser_expr_no_commas): Check if array notation is used in LHS
5301	or RHS, if so, then build array notation expression instead of
5302	regular modify.
5303	(c_parser_postfix_expression_after_primary): Added a check for
5304	colon(s) after square braces, if so then handle it like an array
5305	notation.  Also, break up array notations in unary op if found.
5306	(c_parser_direct_declarator_inner): Added a check for array
5307	notation.
5308	(c_parser_compound_statement): Added a check for array notation in
5309	a stmt.  If one is present, then expand array notation expr.
5310	(c_parser_if_statement): Likewise.
5311	(c_parser_switch_statement): Added a check for array notations in
5312	a switch statement's condition.  If true, then output an error.
5313	(c_parser_while_statement): Similarly, but for a while.
5314	(c_parser_do_statement): Similarly, but for a do-while.
5315	(c_parser_for_statement): Similarly, but for a for-loop.
5316	(c_parser_unary_expression): Check if array notation is used in a
5317	pre-increment or pre-decrement expression.  If true, then expand
5318	them.
5319	(c_parser_array_notation): New function.
5320	* c-array-notation.c: New file.
5321	* c-tree.h (is_cilkplus_reduce_builtin): Protoize.
5322
53232013-05-23  Mike Stump  <mikestump@comcast.net>
5324
5325	* c-typeck.c (convert_for_assignment): Handle references to memory
5326	spaces better.
5327
53282013-05-16  Jason Merrill  <jason@redhat.com>
5329
5330	* Make-lang.in (cc1$(exeext)): Use link mutex.
5331
53322013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
5333
5334	* c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
5335	to simply use OPT_Wpointer_arith.
5336	(build_unary_op): Likewise.
5337
53382013-04-03  Jakub Jelinek  <jakub@redhat.com>
5339
5340	PR c/19449
5341	* c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
5342	argument.  If set, or it temporarily for parsing of the first
5343	argument into force_folding_builtin_constant_p.
5344	(c_parser_postfix_expression): Adjust callers.
5345
53462013-03-21  Richard Biener  <rguenther@suse.de>
5347
5348	* c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
5349	instead of DECL_DEBUG_EXPR_IS_FROM.  Guard properly.
5350
53512013-02-12  Marek Polacek  <polacek@redhat.com>
5352
5353	PR c/44938
5354	* c-parser.c (c_parser_postfix_expression_after_primary): Initialize
5355	origtypes to NULL.
5356
53572013-01-24  Jakub Jelinek  <jakub@redhat.com>
5358
5359	PR c/56078
5360	* c-typeck.c (set_nonincremental_init_from_string): If
5361	constructor_max_index is NULL, treat it as if tree_int_cst_lt
5362	returned false.
5363	(process_init_element): Likewise.
5364
53652012-12-20  Jakub Jelinek  <jakub@redhat.com>
5366
5367	PR c++/55619
5368	* c-parser.c (c_parser_asm_operands): Remove CONVERT_P
5369	argument, don't call default_function_array_conversion
5370	nor c_fully_fold here.
5371	(c_parser_asm_statement): Adjust callers.
5372	* c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
5373	and outputs here, and call default_function_array_conversion
5374	on inputs that don't need to be addressable.
5375
53762012-12-18  Jakub Jelinek  <jakub@redhat.com>
5377
5378	PR c/39464
5379	* c-typeck.c (convert_for_assignment): For -Wpointer-sign
5380	warning require that both c_common_unsigned_type as well as
5381	c_common_signed_type is the same for both mvl and mvr types.
5382
53832012-11-16  Diego Novillo  <dnovillo@google.com>
5384
5385	Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
5386
5387	* c-common.c: Use new vec API in vec.h.
5388	* c-common.h: Likewise.
5389	* c-gimplify.c: Likewise.
5390	* c-pragma.c: Likewise.
5391	* c-pretty-print.c: Likewise.
5392	* c-pretty-print.h: Likewise.
5393	* c-semantics.c: Likewise.
5394	* c-decl.c: Likewise.
5395	* c-parser.c: Likewise.
5396	* c-tree.h: Likewise.
5397	* c-typeck.c: Likewise.
5398
53992012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
5400
5401	PR c++/54930
5402	* c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.
5403
54042012-10-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5405
5406	PR c/53066
5407	* c-decl.c (warn_if_shadowing): Do not warn if a variable
5408	shadows a function, unless the variable is a function or a
5409	pointer-to-function.
5410
54112012-10-12  Jakub Jelinek  <jakub@redhat.com>
5412
5413	PR c/54381
5414	* c-parser.c (struct c_tree_loc_pair): Removed.
5415	(c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
5416	add location_t * and tree * arguments, fill in array of 3
5417	sizeof_arg trees and corresponding locs.
5418	(c_parser_attributes, c_parser_objc_keywordexpr): Adjust
5419	c_parser_expr_list callers.
5420	(c_parser_postfix_expression_after_primary): Likewise.  Pass
5421	array of 3 sizeof_arg trees and locs (corresponding to first
5422	3 arguments) to sizeof_pointer_memaccess_warning.
5423
54242012-10-09  Lawrence Crowl  <crowl@google.com>
5425
5426	* Make-lang.in (c-decl.o): Add dependence on hash-table.h.
5427	* c-decl.c (detect_field_duplicates_hash): Change to new type-safe
5428	hash table.
5429
54302012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
5431
5432	PR c++/54194
5433	* c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
5434	call.
5435
54362012-10-09  Marc Glisse  <marc.glisse@inria.fr>
5437
5438	PR c++/54427
5439	* c-typeck.c: Include c-common.h.
5440	(enum stv_conv): Moved to c-common.h.
5441	(scalar_to_vector): Moved to c-common.c.
5442	(build_binary_op): Adapt to scalar_to_vector's new prototype.
5443	* Make-lang.in: c-typeck.c depends on c-common.h.
5444
54452012-10-04  Arnaud Charlet  <charlet@adacore.com>
5446
5447	* c-decl.c (c_write_global_declarations): Fix handling of
5448	-fdump-ada-spec*.
5449
54502012-09-30  Sharad Singhai  <singhai@google.com>
5451
5452	* c-decl.c (c_write_global_declarations): Use a different method
5453	to determine if the dump has ben initialized.
5454
54552012-09-14  Joseph Myers  <joseph@codesourcery.com>
5456
5457	PR c/54552
5458	* c-typeck.c (c_cast_expr): When casting to a type requiring
5459	C_MAYBE_CONST_EXPR to be created, pass the inner expression to
5460	c_fully_fold first.
5461
54622012-09-14  Joseph Myers  <joseph@codesourcery.com>
5463
5464	PR c/54103
5465	* c-typeck.c (build_unary_op): Pass original argument of
5466	TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
5467	any C_MAYBE_CONST_EXPR, if it has integer operands.
5468	(build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
5469	TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
5470	to c_objc_common_truthvalue_conversion, then remove any
5471	C_MAYBE_CONST_EXPR, if they have integer operands.  Use
5472	c_objc_common_truthvalue_conversion not
5473	c_common_truthvalue_conversion.
5474	(c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
5475	call note_integer_operands for arguments with integer operands
5476	that are not integer constants.
5477
54782012-09-13  Jakub Jelinek  <jakub@redhat.com>
5479
5480	PR c/54559
5481	* c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
5482	COMPLEX_TYPE with in_late_binary_op set temporarily to true.
5483
54842012-08-31  Jakub Jelinek  <jakub@redhat.com>
5485
5486	PR c/54428
5487	* c-convert.c (convert): Don't call fold_convert_loc if
5488	TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
5489	is a COMPLEX_EXPR.  Remove TYPE_MAIN_VARIANT check from
5490	COMPLEX_TYPE -> COMPLEX_TYPE conversion.
5491
54922012-08-24  Jakub Jelinek  <jakub@redhat.com>
5493
5494	PR c/54355
5495	* c-decl.c (c_parser_label): Pass true as nested and fix up comments
5496	for nested and empty_ok arguments in the call to
5497	c_parser_declaration_or_fndef.
5498
54992012-08-17  Jakub Jelinek  <jakub@redhat.com>
5500
5501	* c-tree.h (c_last_sizeof_arg): Declare.
5502	* c-parser.c (struct c_tree_loc_pair): New type.
5503	(c_parser_expr_list): Add sizeof_arg argument.  Fill it in if
5504	non-NULL.
5505	(c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
5506	(c_parser_postfix_expression_after_primary): Likewise.  Call
5507	sizeof_pointer_memaccess_warning if needed.
5508	(sizeof_ptr_memacc_comptypes): New function.
5509	* c-typeck.c (c_last_sizeof_arg): New global variable.
5510	(c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
5511
55122012-07-24  Uros Bizjak  <ubizjak@gmail.com>
5513
5514	* c-lang.h (lang_decl): Add variable_size GTY option.
5515
55162012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
5517
5518	* c-decl.c: Include dumpfile.h instead of tree-dump.h.
5519	* Make-lang.in: Fix dependencies.
5520
55212012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
5522
5523	* Make-lang.in: New file, rules migrated from gcc/Makefile.in
5524	and add language Makefile hooks.
5525	* config-lang.in: New file.
5526	* c-config-lang.in: Moved from gcc/config-lang.in to here, and
5527	add the required "normal" config-lang.in rules.
5528	* c-lang.h: Moved from gcc/ to here.
5529	* c-tree.h: Likewise.
5530	* c-objc-common.c: Likewise.
5531	* c-objc-common.h: Likewise.
5532	* c-typeck.c: Likewise.
5533	* c-convert.c: Likewise.
5534	* c-lang.c: Likewise.
5535	* c-aux-info.c: Likewise.
5536	* c-errors.c: Likewise.
5537	* gccspec.c: Likewise.
5538	* c-decl.c: Likewise.  Include gt-c-c-decl.h, not gt-c-decl.h.
5539	* c-parser.c: Likewise.  Include gt-c-c-parser.h, not gt-c-parser.h.
5540
5541Copyright (C) 2012-2018 Free Software Foundation, Inc.
5542
5543Copying and distribution of this file, with or without modification,
5544are permitted in any medium without royalty provided the copyright
5545notice and this notice are preserved.
5546