2016-09-26 François Dumont <fdumont@gcc.gnu.org>
[official-gcc.git] / gcc / c / ChangeLog
blob642c20ca553e617529c8c99f20634f35a60fd074
1 2016-09-26  Marek Polacek  <polacek@redhat.com>
3         PR c/7652
4         * c-decl.c (pop_scope): Add gcc_fallthrough.
6 2016-09-26  Marek Polacek  <polacek@redhat.com>
8         PR c/7652
9         * c-parser.c (struct c_token): Add flags field.
10         (c_lex_one_token): Pass it to c_lex_with_flags.
11         (c_parser_declaration_or_fndef): Turn __attribute__((fallthrough));
12         into IFN_FALLTHROUGH.
13         (c_parser_label): Set FALLTHROUGH_LABEL_P on labels.  Handle
14         attribute fallthrough after a case label or default label.
15         (c_parser_statement_after_labels): Handle RID_ATTRIBUTE.
17 2016-09-24  Marek Polacek  <polacek@redhat.com>
19         PR c/77490
20         * c-typeck.c (build_unary_op): Warn about bit not on expressions that
21         have boolean value.  Warn about ++/-- on booleans.
23 2016-09-23  Jakub Jelinek  <jakub@redhat.com>
25         * c-parser.c (incomplete_record_decls): Remove unnecessary
26         = vNULL initialization of file scope vec.
28 2016-09-16  Marek Polacek  <polacek@redhat.com>
30         * c-typeck.c (lvalue_p): Use true and false instead of 1 and 0.
32 2016-09-14  Marek Polacek  <polacek@redhat.com>
34         * c-array-notation.c (create_cmp_incr): Use false instead of 0.
35         (fix_array_notation_expr): Likewise.
36         * c-decl.c (finish_decl): Likewise.
37         * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
38         * c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
39         (function_to_pointer_conversion): Use false instead of 0.
40         (convert_lvalue_to_rvalue): Likewise.
41         (parser_build_unary_op): Likewise.
42         (build_atomic_assign): Likewise.
43         (build_unary_op): Change nonconvert parameter type to bool, use
44         true/false instead of 1/0.
45         (build_binary_op): Use true instead of 1.
47 2016-09-13  David Malcolm  <dmalcolm@redhat.com>
49         * c-parser.c (c_parser_declaration_or_fndef): Update for renaming
50         of add_fixit_insert to add_fixit_insert_before.
52 2016-09-13  Marek Polacek  <polacek@redhat.com>
54         * c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT.  Use
55         it.
57 2016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
59         PR c++/77496
60         * c-parser.c (c_parser_conditional_expression): Pass the rightmost
61         COMPOUND_EXPR to warn_for_omitted_condop.
63 2016-09-07  David Malcolm  <dmalcolm@redhat.com>
65         * c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
66         c_get_substring_location for this new langhook.
68 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
70         PR c/65467
71         * c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
72         flag_openmp.
73         (c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
74         instead of mark_exp_read on low_bound/length expression.
75         (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
76         c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
77         c_parser_omp_clause_priority, c_parser_omp_clause_hint,
78         c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
79         c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
80         c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
81         c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
82         c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
83         c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
84         c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
85         instead of mark_expr_read.
86         (c_parser_omp_declare_reduction): Reject _Atomic qualified types.
87         * c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
88         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
89         * c-tree.h (c_omp_clause_copy_ctor): New prototype.
90         * c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
91         array section bases outside of depend clause, for depend clause
92         use convert_lvalue_to_rvalue on the base.
93         (c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
94         linear, aligned, map, to and from clauses.
95         (c_omp_clause_copy_ctor): New function.
97 2016-09-01  Marek Polacek  <polacek@redhat.com>
99         PR c/7652
100         * c-typeck.c (composite_type): Add FALLTHRU comment.
102 2016-08-31  David Malcolm  <dmalcolm@redhat.com>
104         * c-parser.c (c_parser_declaration_or_fndef): Add trailing space
105         to the insertion fixits for "struct", "union", and "enum".
107 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
109         * c-decl.c (implicit_decl_warning): Use add_fixit_replace
110         rather than add_fixit_misspelled_id.
111         (undeclared_variable): Likewise.
112         * c-parser.c (c_parser_declaration_or_fndef): Likewise.  Remove
113         now-redundant "here" params from add_fixit_insert method calls.
114         (c_parser_parameter_declaration): Likewise.
115         * c-typeck.c (build_component_ref): Remove now-redundant range
116         param from add_fixit_replace method calls.
118 2016-08-25  Marek Polacek  <polacek@redhat.com>
120         * c-typeck.c (parser_build_binary_op): Pass LHS to
121         warn_logical_not_parentheses.
123 2016-08-25  Marek Polacek  <polacek@redhat.com>
125         PR c/77323
126         * c-decl.c (declspecs_add_type): Set typespec_word even when __intN
127         or _FloatN or _FloatNx is not supported.
128         (finish_declspecs): Set type to integer_type_node when _FloatN or
129         _FloatNx is not supported.
131 2016-08-19  Joseph Myers  <joseph@codesourcery.com>
133         PR c/32187
134         * c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
135         (struct c_declspecs): Add field floatn_nx_idx.
136         * c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
137         and _FloatNx type specifiers.
138         * c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
139         (c_parser_declspecs, c_parser_attribute_any_word)
140         (c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
141         * c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
142         (convert_arguments): Avoid promoting _FloatN and _FloatNx types
143         narrower than double.
145 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
146             Martin Liska  <mliska@suse.cz>
148         PR c/67410
149         * c-typeck.c (set_nonincremental_init_from_string): Use / instead of
150         % to determine val element to change.  Assert that
151         wchar_bytes * charwidth fits into val array.
153 2016-08-12  Marek Polacek  <polacek@redhat.com>
155         PR c/7652
156         * c-parser.c (c_parser_external_declaration): Add FALLTHRU.
157         (c_parser_postfix_expression): Likewise.
158         * c-typeck.c (build_unary_op): Adjust fall through comment.
159         (c_mark_addressable): Likewise.
161 2016-08-11  Jakub Jelinek  <jakub@redhat.com>
163         PR c/72816
164         * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
165         array member through typedef, for orig_qual_indirect == 0 clear
166         orig_qual_type.
168 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
170         PR c/64955
171         * c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
172         this up to selftest::run_c_tests.
173         (selftest::run_c_tests): New function.
175 2016-08-04  Thomas Schwinge  <thomas@codesourcery.com>
177         * c-parser.c (struct oacc_routine_data): Add error_seen and
178         fndecl_seen members.
179         (c_finish_oacc_routine): Use these.
180         (c_parser_declaration_or_fndef): Adjust.
181         (c_parser_oacc_routine): Likewise.  Support more C language
182         constructs, and improve diagnostics.  Move pragma context
183         checking...
184         (c_parser_pragma): ... here.
186         * c-parser.c (struct oacc_routine_data): New.
187         (c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
188         Simplify code.
189         (c_finish_oacc_routine): Likewise.  Don't attach clauses to "omp
190         declare target" attribute.
192 2016-08-01  Jan Beulich  <jbeulich@suse.com>
194         * c-fold.c (c_fully_fold_internal): Also emit shift count
195         warnings for vector types.
196         * c-typeck.c (build_binary_op): Likewise.
198 2016-07-29  Marek Polacek  <polacek@redhat.com>
200         PR c/71742
201         * c-decl.c (finish_struct): Rephrase an error message.
203         PR c/71853
204         * c-parser.c (c_parser_switch_statement): Initialize ce.original_type
205         to error node for invalid code.
207         PR c/71573
208         * c-decl.c (implicitly_declare): Return decl early not only for
209         error_mark_nodes, but for anything that is not a FUNCTION_DECL.
211 2016-07-29  Jakub Jelinek  <jakub@redhat.com>
213         PR c/71969
214         * c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
215         on GNU extern inline functions.
217 2016-07-29  Marek Polacek  <polacek@redhat.com>
219         PR c/71583
220         * c-parser.c (c_parser_postfix_expression_after_paren_type): Also
221         check expr.value.
223 2016-07-22  Uros Bizjak  <ubizjak@gmail.com>
225         * c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
227 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
229         * c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
230         spellcheck-tree.h
231         (best_macro_match): Likewise, converting from a typedef to a
232         subclass.
233         (find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
234         (lookup_name_fuzzy): Update for change of best_macro_match to a
235         subclass with a ctor that calls cpp_forall_identifiers.
237 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
239         * c-decl.c (implicit_decl_warning): Update for conversion of
240         return type of lookup_name_fuzzy to const char *.
241         (undeclared_variable): Likewise.
242         (lookup_name_fuzzy): Convert return type from tree to
243         const char *.
244         * c-parser.c (c_parser_declaration_or_fndef): Update for
245         conversion of return type of lookup_name_fuzzy to const char *.
246         (c_parser_parameter_declaration): Likewise.
248 2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
250         * c-parser.c (c_parser_oacc_declare): Don't scan for
251         GOMP_MAP_POINTER.
252         * c-typeck.c (handle_omp_array_sections): Mark data clauses with
253         GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
254         zero-length subarrays.
256 2016-07-15  Jakub Jelinek  <jakub@redhat.com>
258         PR c/71858
259         * c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
260         instead of FUZZY_LOOKUP_NAME.
261         (lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
262         FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.
264 2016-07-14  Jakub Jelinek  <jakub@redhat.com>
266         PR c/71858
267         * c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.
269 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
271         * c-parser.c (c_parser_generic_selection): Make type of variable
272         auto_vec.
273         (c_parser_omp_declare_simd): Likewise.
275 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
277         * c-decl.c (struct c_struct_parse_info): Change member types
278         from vec to auto_vec.
279         (start_struct): Adjust.
280         (finish_struct): Likewise.
282 2016-07-02  Jakub Jelinek  <jakub@redhat.com>
284         PR c/71719
285         * c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
287 2016-06-29  Thomas Schwinge  <thomas@codesourcery.com>
289         * c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
290         Move pragma context checking into...
291         (c_parser_omp_cancellation_point): ... here, and improve
292         diagnostic messages.
293         * c-typeck.c (c_finish_omp_cancel)
294         (c_finish_omp_cancellation_point): Improve diagnostic messages.
296 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
298         PR c/71685
299         * c-typeck.c (c_build_qualified_type): Don't clear
300         C_TYPE_INCOMPLETE_VARS for the main variant.
302 2016-06-28  Martin Sebor  <msebor@redhat.com>
304         PR c/71552
305         * c-typeck.c (output_init_element): Diagnose incompatible types
306         before non-constant initializers.
308 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
310         * Make-lang.in: Don't cat ../stage_current if it does not exist.
312 2016-06-23  Andi Kleen  <ak@linux.intel.com>
314         * Make-lang.in: Add support for autofdo.
316 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
318         PR c/70339
319         * c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
320         (implicit_decl_warning): When issuing warnings for implicit
321         declarations, attempt to provide a suggestion via
322         lookup_name_fuzzy.
323         (undeclared_variable): Likewise when issuing errors.
324         (lookup_name_in_scope): Likewise.
325         (struct edit_distance_traits<cpp_hashnode *>): New struct.
326         (best_macro_match): New typedef.
327         (find_closest_macro_cpp_cb): New function.
328         (lookup_name_fuzzy): New function.
329         * c-parser.c: Include gcc-rich-location.h.
330         (c_token_starts_typename): Split out case CPP_KEYWORD into...
331         (c_keyword_starts_typename): ...this new function.
332         (c_parser_declaration_or_fndef): When issuing errors about
333         missing "struct" etc, add a fixit.  For other kinds of errors,
334         attempt to provide a suggestion via lookup_name_fuzzy.
335         (c_parser_parms_declarator): When looking ahead to detect typos in
336         type names, also reject CPP_KEYWORD.
337         (c_parser_parameter_declaration): When issuing errors about
338         unknown type names, attempt to provide a suggestion via
339         lookup_name_fuzzy.
340         * c-tree.h (c_keyword_starts_typename): New prototype.
342 2016-06-20  Joseph Myers  <joseph@codesourcery.com>
344         PR c/71601
345         * c-typeck.c (build_conditional_expr): Return error_mark_node if
346         c_common_type returns error_mark_node.
348 2016-06-19  Martin Sebor  <msebor@redhat.com>
350         PR c/69507
351         * c-parser.c (c_parser_alignof_expression): Avoid diagnosing
352         __alignof__ (expression).
354 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
356         * c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h.
358 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
360         * c-typeck.c (build_component_ref): Simplify fixit code by
361         using gcc_rich_location::add_fixit_misspelled_id.
362         (set_init_label): Likewise.
364 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
366         * c-parser.c (c_parser_initelt): Provide location of name for new
367         location_t param of set_init_label.
368         * c-tree.h (set_init_label): Add location_t param.
369         * c-typeck.c (set_init_index): Add "fieldname_loc" location_t
370         param and use it when issuing error messages about unrecognized
371         field names.  Attempt to provide a fixit hint if appropriate,
372         otherwise update the error message to provide the type name.
374 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
376         PR c/71381
377         * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
378         Loosen checking.
380 2016-06-08  Martin Sebor  <msebor@redhat.com>
381             Jakub Jelinek  <jakub@redhat.com>
383         PR c++/70507
384         PR c/68120
385         * c-typeck.c (convert_arguments): Don't promote last argument
386         of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
388 2016-06-08  Marek Polacek  <polacek@redhat.com>
390         PR c/71418
391         * c-decl.c (grokdeclarator): Check TYPE_P.
393         PR c/71426
394         * c-decl.c (get_parm_info): Don't crash on an assert on invalid
395         code.
397 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
399         * c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
400         and structure element reference, capture the location of the
401         element name token and pass it to build_component_ref.
402         (c_parser_postfix_expression_after_primary): Likewise for
403         structure element dereference.
404         (c_parser_omp_variable_list): Likewise for
405         OMP_CLAUSE_{_CACHE, MAP, FROM, TO},
406         * c-tree.h (build_component_ref): Add location_t param.
407         * c-typeck.c (build_component_ref): Add location_t param
408         COMPONENT_LOC.  Use it, if available, when issuing hints about
409         mispelled member names to provide a fixit replacement hint.
411 2016-06-06  Marek Polacek  <polacek@redhat.com>
413         PR c/71362
414         * c-parser.c (c_parser_direct_declarator): Set location.
416 2016-06-06  Marek Polacek  <polacek@redhat.com>
418         * c-typeck.c (comptypes_internal): Handle comparisons of
419         INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes.  Don't check
420         TYPE_REF_CAN_ALIAS_ALL.
422 2016-06-03  Chung-Lin Tang  <cltang@codesourcery.com>
424         * c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
425         arguments as addressable when async clause exists.
427 2016-05-30  Jakub Jelinek  <jakub@redhat.com>
429         PR c++/71349
430         * c-parser.c (c_parser_omp_for): Don't disallow nowait clause
431         when combined with target construct.
433 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
435         * c-parser.c (c_parser_omp_clause_schedule): Warn if
436         OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
438 2016-05-25  Marek Polacek  <polacek@redhat.com>
440         PR c/71265
441         * c-decl.c (c_make_fname_decl): Don't check seen_error.
443         PR c/71266
444         * c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.
446 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
448         * c-parser.c (c_parser_oacc_declare): Add support for
449         GOMP_MAP_FIRSTPRIVATE_POINTER.
450         * c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
451         argument with enum c_omp_region_type ort.
452         (handle_omp_array_sections): Likewise.  Update call to
453         handle_omp_array_sections_1.
454         (c_finish_omp_clauses): Add specific errors and warning messages for
455         OpenACC.  Use firsrtprivate pointers for OpenACC subarrays.  Update
456         call to handle_omp_array_sections.
458 2016-05-24  Thomas Schwinge  <thomas@codesourcery.com>
460         * c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
462 2016-05-24  Richard Biener  <rguenther@suse.de>
464         PR middle-end/70434
465         PR c/69504
466         * c-typeck.c (build_array_ref): Do not complain about indexing
467         non-lvalue vectors.  Adjust for function name change.
469 2016-05-20  Martin Sebor  <msebor@redhat.com>
471         PR c/71115
472         * c-typeck.c (error_init): Use
473         expansion_point_location_if_in_system_header.
474         (warning_init): Same.
476 2016-05-19  David Malcolm  <dmalcolm@redhat.com>
478         PR c/71171
479         * c-parser.c (c_parser_generic_selection): Use c_expr::set_error
480         in error-handling.
481         (c_parser_postfix_expression): Likewise.
482         * c-tree.h (c_expr::set_error): New method.
483         * c-typeck.c (parser_build_binary_op): In error-handling, ensure
484         that result's range is initialized.
486 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
488         * c-typeck.c (parser_build_unary_op): Fix formatting.
490 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
492         * c-decl.c (grokdeclarator): Remove errmsg and use of
493         targetm.invalid_return_type.
494         (grokparms): Remove errmsg and use of
495         targetm.invalid_parameter_type.
497 2016-05-13  Joseph Myers  <joseph@codesourcery.com>
499         * c-decl.c (grokdeclarator): For C11, discard qualifiers on
500         function return type.
502 2016-05-12  Marek Polacek  <polacek@redhat.com>
504         PR c/70756
505         * c-decl.c (build_compound_literal): Pass LOC down to
506         c_incomplete_type_error.
507         * c-tree.h (require_complete_type): Adjust declaration.
508         (c_incomplete_type_error): Likewise.
509         * c-typeck.c (require_complete_type): Add location parameter, pass it
510         down to c_incomplete_type_error.
511         (c_incomplete_type_error): Add location parameter, pass it down to
512         error_at.
513         (build_component_ref): Pass location down to c_incomplete_type_error.
514         (default_conversion): Pass location down to require_complete_type.
515         (build_array_ref): Likewise.
516         (build_function_call_vec): Likewise.
517         (convert_arguments): Likewise.
518         (build_unary_op): Likewise.
519         (build_c_cast): Likewise.
520         (build_modify_expr): Likewise.
521         (convert_for_assignment): Likewise.
522         (c_finish_omp_clauses): Likewise.
524 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
526         PR c/43651
527         * c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
528         is enabled.
529         * c-errors.c (pedwarn_c90): Return true if warned.
530         * c-tree.h (pedwarn_c90): Change return type to bool.
531         (enum c_declspec_word): Add new enumerator cdw_atomic.
533 2016-05-11  Marek Polacek  <polacek@redhat.com>
535         PR c++/71024
536         * c-decl.c (diagnose_mismatched_decls): Factor out code to
537         diagnose_mismatched_attributes and call it.
539 2016-05-10  Marek Polacek  <polacek@redhat.com>
541         PR c/70255
542         * c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute
543         on a declaration following the definition.
545 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
547         * c-parser.c (c_parser_switch_statement): Add IF_P argument,
548         parse it through to c_parser_c99_block_statement.
549         (c_parser_statement_after_labels): Adjust c_parser_switch_statement
550         caller.
552 2016-05-04  Marek Polacek  <polacek@redhat.com>
554         * c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
555         OPT_Wdangling_else.
557 2016-05-04  Marek Polacek  <polacek@redhat.com>
559         PR c/48778
560         * c-typeck.c (build_binary_op): Don't issue -Waddress warnings
561         for macro expansions.
563 2016-05-03  Marek Polacek  <polacek@redhat.com>
565         PR c/70859
566         * c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
567         check_builtin_function_arguments.
569 2016-05-03  Richard Biener  <rguenther@suse.de>
571         * Make-lang.in (cc1-checksum.c): For stage-final re-use
572         the checksum from the previous stage.
574 2016-05-02  Cesar Philippidis  <cesar@codesourcery.com>
576         * c-parser.c (c_parser_oacc_all_clauses): Update call to
577         c_finish_omp_clauses.
578         (c_parser_omp_all_clauses): Likewise.
579         (c_parser_oacc_cache): Likewise.
580         (c_parser_oacc_loop): Likewise.
581         (omp_split_clauses): Likewise.
582         (c_parser_omp_declare_target): Likewise.
583         (c_parser_cilk_all_clauses): Likewise.
584         (c_parser_cilk_for): Likewise.
585         * c-typeck.c (c_finish_omp_clauses): Replace bool arguments
586         is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.
588 2016-05-02  Marek Polacek  <polacek@redhat.com>
590         PR c/70851
591         * c-decl.c (grokdeclarator): Diagnose when array's size has an
592         incomplete type.
594 2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>
596         PR middle-end/70626
597         * c-parser.c (c_parser_oacc_loop): Don't augment mask with
598         OACC_LOOP_CLAUSE_MASK.
599         (c_parser_oacc_kernels_parallel): Update call to
600         c_oacc_split_loop_clauses.
602 2016-04-28  Andrew MacLeod  <amacleod@redhat.com>
604         * c-array-notation.c (fix_builtin_array_notation_fn): Fix final
605         argument to build_modify_expr in two cases.
607 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
609         * c-parser.c (c_parser_postfix_expression_after_primary): Call
610         warn_for_memset instead of warning directly here.
612 2016-04-26  Marek Polacek  <polacek@redhat.com>
614         PR c/67784
615         * c-parser.c (c_parser_maybe_reclassify_token): New function factored
616         out of ...
617         (c_parser_for_statement): ... here.
618         (c_parser_if_statement): Use it.
619         (c_parser_switch_statement): Use it.
620         (c_parser_while_statement): Use it.
622         PR c/70791
623         * c-decl.c (pushdecl): Pass LOCUS down to warning.
625 2016-04-20  Ilya Verbin  <ilya.verbin@intel.com>
627         PR c++/69363
628         * c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
629         instead of c_finish_cilk_clauses.
630         * c-tree.h (c_finish_omp_clauses): Add new default argument.
631         * c-typeck.c (c_finish_omp_clauses): Add new argument.  Allow
632         floating-point variables in the linear clause for Cilk Plus.
634 2016-04-18  Michael Matz  <matz@suse.de>
636         * c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
637         (grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.
639 2016-04-15  Marek Polacek  <polacek@redhat.com>
641         PR c/70671
642         * c-typeck.c (build_unary_op): Pass location down to error and
643         warning call.
645 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
647         PR c/70436
648         * c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
649         where needed.
650         (c_parser_external_declaration, c_parser_struct_or_union_specifier,
651         c_parser_parameter_declaration, c_parser_compound_statement_nostart,
652         c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
653         Adjust c_parser_pragma callers.
654         (c_parser_statement_after_labels): Likewise.  Adjust c_parser_cilk_for
655         caller.
656         (c_parser_omp_structured_block): Add IF_P argument, pass it down to
657         c_parser_statement.
658         (c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
659         c_parser_oacc_kernels_parallel, c_parser_omp_critical,
660         c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
661         c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
662         c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
663         c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
664         c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
665         c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
666         down where needed.
667         (c_parser_omp_for_loop): Likewise.  Clear IF_P if nbraces.
668         (c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
669         calls.
671 2016-04-13  Marek Polacek  <polacek@redhat.com>
673         PR c/70436
674         * c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
675         adjust callers.
676         (c_parser_statement): Likewise.
677         (c_parser_c99_block_statement): Likewise.
678         (c_parser_while_statement): Likewise.
679         (c_parser_for_statement): Likewise.
680         (c_parser_if_body): Don't set IF_P here.
681         (c_parser_if_statement): Add IF_P argument.  Set IF_P here.  Warn
682         about dangling else here.
683         * c-tree.h (c_finish_if_stmt): Adjust declaration.
684         * c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter.  Don't
685         warn about dangling else here.
687 2016-04-04  Marek Polacek  <polacek@redhat.com>
689         PR c/70307
690         * c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.
692 2016-03-31  Marek Polacek  <polacek@redhat.com>
694         PR c/70297
695         * c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
697 2016-03-18  David Malcolm  <dmalcolm@redhat.com>
699         PR c/70281
700         * c-parser.c (c_parser_postfix_expression): Set the source range
701         for uses of "__builtin_types_compatible_p".
703 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
705         PR c/70280
706         * c-typeck.c (composite_type): Don't count void_list_node
707         into len, if the list is terminated by void_list_node, start
708         with void_list_node instead of NULL for newargs.  Stop
709         at void_list_node.
711 2016-03-16  Marek Polacek  <polacek@redhat.com>
713         PR c/70093
714         * c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
715         nested functions returning VM types.
717 2016-03-09  Cesar Philippidis  <cesar@codesourcery.com>
719         * c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
720         when calling c_finish_omp_clauses.
722 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
724         PR c/69824
725         * c-decl.c (get_parm_info): Don't queue implicit function declarations
726         for later.
728 2016-03-04  Marek Polacek  <polacek@redhat.com>
730         PR c/69798
731         * c-parser.c (c_parser_postfix_expression): Call
732         c_parser_cast_expression rather than c_parser_postfix_expression.
734 2016-03-01  Jakub Jelinek  <jakub@redhat.com>
736         PR c/69796
737         PR c/69974
738         * c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
739         of incomplete decls to error_mark_node.
741 2016-02-24  Marek Polacek  <polacek@redhat.com>
743         PR c/69819
744         * c-decl.c (finish_decl): Don't update the copy of the type of a
745         different decl type.
747 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
749         PR objc/69844
750         * c-parser.c (c_parser_for_statement): Properly handle ObjC classes
751         in id_kind reclassification.
753 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
755         PR c/69835
756         * c-typeck.c (build_binary_op): Revert 2015-09-09 change.
758 2016-02-16  James Norris  <jnorris@codesourcery.com>
760         PR c/64748
761         * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
763 2016-02-12  Bernd Schmidt  <bschmidt@redhat.com>
765         * c-decl.c (build_null_declspecs): Zero the entire struct.
767         PR c/69522
768         * c-parser.c (c_parser_braced_init): New arg outer_obstack.  All
769         callers changed.  If nested_p is true, use it to call
770         finish_implicit_inits.
771         * c-tree.h (finish_implicit_inits): Declare.
772         * c-typeck.c (finish_implicit_inits): New function.  Move code
773         from ...
774         (push_init_level): ... here.
775         (set_designator, process_init_element): Call finish_implicit_inits.
777 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
779         PR c/69768
780         * c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
781         arguments for -Waddress warning.
783 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
785         PR c/69669
786         * c-decl.c (finish_enum): When honoring mode attribute,
787         make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
789 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
791         PR debug/69518
792         * c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
793         all type variants, not just TYPE_MAIN_VARIANT.
795 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
797         PR debug/66869
798         * c-decl.c (c_write_global_declarations_1): Warn with
799         warn_unused_function if static prototype without definition
800         is not C_DECL_USED.
802 2016-01-27  Marek Polacek  <polacek@redhat.com>
804         PR c/68062
805         * c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
806         to unsigned, if needed.  Add -Wsign-compare warning.
808 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
810         PR tree-optimization/69483
811         * c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.
813 2016-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
815         PR c/24293
816         * c-tree.h (incomplete_record_decls): Declare.
817         * c-parser.c (incomplete_record_decls): Define.
818         (c_parser_translation_unit): Iterate through incomplete_record_decls and
819         report error if any decl has zero size.
820         * c-decl.c (finish_decl): Append static decl with incomplete struct/union
821         or enum type to incomplete_record_decls.
823 2016-01-14  Tom de Vries  <tom@codesourcery.com>
825         PR tree-optimization/68773
826         * c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
827         set force_output.
829 2016-01-14  Marek Polacek  <polacek@redhat.com>
831         PR c/69262
832         * c-decl.c (grokdeclarator): Provide more information for invalid
833         array declarations.
835 2016-01-06  David Malcolm  <dmalcolm@redhat.com>
837         * c-parser.c (c_parser_unary_expression): For dereferences, build
838         a combined location before calling build_indirect_ref, so that
839         error reports cover the full range, manually updating the c_expr
840         src_range.
842 2016-01-06  Marek Polacek  <polacek@redhat.com>
844         PR sanitizer/69099
845         * c-convert.c (convert) [INTEGER_TYPE]: Drop ARG.  Don't pass ARG to
846         ubsan_instrument_float_cast.  Fold EXPR.  Use NULL_TREE instead of
847         NULL.
849 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
851         Update copyright years.
853 2016-01-04  Marek Polacek  <polacek@redhat.com>
855         PR c/68908
856         * c-typeck.c (build_atomic_assign): Improve commentary.  Add
857         optimization to use __atomic_fetch_* built-in if possible.
859 2015-12-23  Thomas Schwinge  <thomas@codesourcery.com>
861         * c-parser.c (c_parser_oacc_clause_use_device): Merge function
862         into...
863         (c_parser_omp_clause_use_device_ptr): ... this function.  Adjust
864         all users.
866 2015-12-22  Marek Polacek  <polacek@redhat.com>
868         PR c/69002
869         * c-typeck.c (build_component_ref): Warn when acessing elements of
870         atomic structures or unions.
872 2015-12-21  David Malcolm  <dmalcolm@redhat.com>
874         * c-typeck.c: Include "gcc-rich-location.h".
875         (build_binary_op): In the two places that call binary_op_error,
876         create a gcc_rich_location and populate it with the location of
877         the binary op and its two operands.
879 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
881         * c-parser.c (c_parser_statement_after_labels): When calling
882         c_finish_return, Use the return expression's location if it has
883         one, falling back to the location of the first token within it.
884         * c-typeck.c (c_finish_return): When issuing warnings about
885         the incorrect presence/absence of a return value, issue a note
886         showing the declaration of the function.
888 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
890         * c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
891         to 4.
892         (c_parser_peek_nth_token): New function.
893         (c_parser_peek_conflict_marker): New function.
894         (c_parser_error): Detect conflict markers and report them as such.
896 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
898         * c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
899         to preserve range information for the primary expression
900         in the call to c_parser_postfix_expression_after_primary.
902 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
904         * c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
905         expression location, falling back on the first token location,
906         rather than always using the latter.
908 2015-12-16  Marek Polacek  <polacek@redhat.com>
910         PR c/64637
911         * c-typeck.c (c_process_expr_stmt): Use location of the expression if
912         available.
914 2015-12-15  Marek Polacek  <polacek@redhat.com>
916         PR c/68907
917         * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
918         artificial decl.
920 2015-12-08  David Malcolm  <dmalcolm@redhat.com>
922         * c-parser.c (c_parser_alignof_expression): Capture location of
923         closing parenthesis (if any), or of end of unary expression, and
924         use it to build a src_range for the expression.
926 2015-12-08  David Malcolm  <dmalcolm@redhat.com>
928         PR c/68757
929         * c-parser.c (c_parser_get_builtin_args): Add
930         "out_close_paren_loc" param, and write back to it.
931         (c_parser_postfix_expression): Capture the closing
932         parenthesis location for RID_CHOOSE_EXPR,
933         RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
934         RID_BUILTIN_SHUFFLE and use it to set the source range
935         for such expressions; within RID_BUILTIN_COMPLEX set
936         the underlying location.
938 2015-12-07  Marek Polacek  <polacek@redhat.com>
940         PR c/68668
941         * c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
942         TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.
944 2015-12-04  Eric Botcazou  <ebotcazou@adacore.com>
946         * c-tree.h (c_build_va_arg): Adjust prototype.
947         * c-parser.c (c_parser_postfix_expression): Adjust call to above.
948         * c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
949         parameter, adjust throughout and issue an error if EXPR is a component
950         with reverse storage order.
952 2015-12-02  Jason Merrill  <jason@redhat.com>
954         * c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
955         (c_fully_fold_internal, decl_constant_value_for_optimization):
956         Move from c-common.c.
957         * c-tree.h: Declare decl_constant_value_for_optimization.
958         * Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
960 2015-12-02  Joseph Myers  <joseph@codesourcery.com>
962         PR c/68162
963         * c-decl.c (grokdeclarator): Set first_non_attr_kind before
964         following link from declarator to next declarator.  Track original
965         qualified type and pass it to c_build_qualified_type.
966         * c-typeck.c (c_build_qualified_type): Add arguments
967         orig_qual_type and orig_qual_indirect.
969 2015-12-02  Thomas Schwinge  <thomas@codesourcery.com>
971         * c-parser.c (c_parser_omp_clause_name)
972         (c_parser_oacc_all_clauses): Alphabetical sorting.
974 2015-12-02  Jakub Jelinek  <jakub@redhat.com>
976         PR c/68533
977         * c-decl.c (get_parm_info): Use b->locus instead of input_location
978         for diagnostics.
980 2015-12-01  Julian Brown  <julian@codesourcery.com>
981             Cesar Philippidis  <cesar@codesourcery.com>
982             James Norris  <James_Norris@mentor.com>
984         * c-parser.c (c_parser_omp_clause_name): Add use_device support.
985         (c_parser_oacc_clause_use_device): New function.
986         (c_parser_oacc_all_clauses): Add use_device support.
987         (OACC_HOST_DATA_CLAUSE_MASK): New macro.
988         (c_parser_oacc_host_data): New function.
989         (c_parser_omp_construct): Add host_data support.
990         * c-tree.h (c_finish_oacc_host_data): Add prototype.
991         * c-typeck.c (c_finish_oacc_host_data): New function.
992         (c_finish_omp_clauses): Add use_device support.
994 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
996         PR c/67106
997         * c-decl.c: Set TYPE_PACKED in variants.
999 2015-11-27  Martin Liska  <mliska@suse.cz>
1001         PR c++/68312
1002         * c-array-notation.c (fix_builtin_array_notation_fn):
1003         Use release_vec_vec instead of vec::release.
1004         (build_array_notation_expr): Likewise.
1005         (fix_conditional_array_notations_1): Likewise.
1006         (fix_array_notation_expr): Likewise.
1007         (fix_array_notation_call_expr): Likewise.
1009 2015-11-27  Jakub Jelinek  <jakub@redhat.com>
1011         PR c/63326
1012         * c-parser.c (c_parser_compound_statement_nostart): If
1013         last_label is true, use pragma_stmt instead of pragma_compound
1014         as second c_parser_pragma argument.
1015         (c_parser_omp_ordered, c_parser_omp_target_update,
1016         c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
1017         false as second argument to c_parser_skip_to_pragma_eol after
1018         diagnosing standalone directives used in pragma_stmt context.
1020 2015-11-24  Ilya Verbin  <ilya.verbin@intel.com>
1022         * c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
1023         with "if (ENABLE_OFFLOADING)".
1025 2015-11-23  David Malcolm  <dmalcolm@redhat.com>
1027         PR objc/68438
1028         * c-parser.c (c_parser_postfix_expression): Set up source ranges
1029         for various Objective-C constructs: Class.name syntax,
1030         @selector(), @protocol(), @encode(), and [] message syntax.
1032 2015-11-20  David Malcolm  <dmalcolm@redhat.com>
1034         PR 62314
1035         * c-typeck.c (should_suggest_deref_p): New function.
1036         (build_component_ref): Special-case POINTER_TYPE when
1037         generating a "not a structure of union"  error message, and
1038         suggest a "->" rather than a ".", providing a fix-it hint.
1040 2015-11-19  David Malcolm  <dmalcolm@redhat.com>
1042         * c-typeck.c (lookup_field_fuzzy): Move determination of closest
1043         candidate into a new function, find_closest_identifier.
1045 2015-11-19  Marek Polacek  <polacek@redhat.com>
1047         PR c/68412
1048         * c-typeck.c (parser_build_binary_op): Properly handle
1049         C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.
1051 2015-11-17  David Malcolm  <dmalcolm@redhat.com>
1053         * c-parser.c (set_c_expr_source_range): Bulletproof both
1054         overloaded implementations against NULL expr->value.
1055         (c_parser_braced_init): Set src_range for "ret" to a sane pair of
1056         values.
1057         (c_parser_unary_expression): Likewise when handling addresses of
1058         labels.
1059         (c_parser_postfix_expression): Likewise for statement expressions,
1060         for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
1061         __builtin_va_arg, and for __builtin_offset_of.
1062         (c_parser_postfix_expression_after_paren_type): Initialize expr's
1063         src_range using the range of the braced initializer.
1064         (c_parser_transaction_expression): Set src_range for "ret" to a
1065         sane pair of values.
1067 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
1069         * c-parser.c (c_finish_omp_declare_simd): Look for
1070         "simd" attribute as well. Update error message.
1072 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1074         * c-parser.c (c_parser_omp_declare_target): Adjust.
1076 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
1078         * c-typeck.c (c_finish_omp_clauses): Don't mark
1079         GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
1081 2015-11-14  Marek Polacek  <polacek@redhat.com>
1083         * c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
1084         * c-typeck.c: Likewise.
1086 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
1088         * c-decl.c (warn_defaults_to): Pass line_table to
1089         rich_location ctor.
1090         * c-errors.c (pedwarn_c99): Likewise.
1091         (pedwarn_c90): Likewise.
1092         * c-parser.c (set_c_expr_source_range): New functions.
1093         (c_token::get_range): New method.
1094         (c_token::get_finish): New method.
1095         (c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
1096         based on the range from the start of the LHS to the end of the
1097         RHS.
1098         (c_parser_conditional_expression): Likewise, based on the range
1099         from the start of the cond.value to the end of exp2.value.
1100         (c_parser_binary_expression): Call set_c_expr_source_range on
1101         the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
1102         (c_parser_cast_expression): Call set_c_expr_source_range on ret
1103         based on the cast_loc through to the end of the expr.
1104         (c_parser_unary_expression): Likewise, based on the
1105         op_loc through to the end of op.
1106         (c_parser_sizeof_expression) Likewise, based on the start of the
1107         sizeof token through to either the closing paren or the end of
1108         expr.
1109         (c_parser_postfix_expression): Likewise, using the token range,
1110         or from the open paren through to the close paren for
1111         parenthesized expressions.
1112         (c_parser_postfix_expression_after_primary): Likewise, for
1113         various kinds of expression.
1114         * c-tree.h (struct c_expr): Add field "src_range".
1115         (c_expr::get_start): New method.
1116         (c_expr::get_finish): New method.
1117         (set_c_expr_source_range): New decls.
1118         * c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
1119         on ret for prefix unary ops.
1120         (parser_build_binary_op): Likewise, running from the start of
1121         arg1.value through to the end of arg2.value.
1123 2015-11-13  Marek Polacek  <polacek@redhat.com>
1125         PR c/68320
1126         * c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.
1128 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
1130         * c-typeck.c: Include spellcheck.h.
1131         (lookup_field_fuzzy_find_candidates): New function.
1132         (lookup_field_fuzzy): New function.
1133         (build_component_ref): If the field was not found, try using
1134         lookup_field_fuzzy and potentially offer a suggestion.
1136 2015-11-12  James Norris  <jnorris@codesourcery.com>
1137             Joseph Myers  <joseph@codesourcery.com>
1139         * c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
1140         (c_parser_omp_clause_name): Handle 'device_resident' clause.
1141         (c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
1142         and PRAGMA_OMP_CLAUSE_LINK.
1143         (c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
1144         and PRAGMA_OACC_CLAUSE_LINK.
1145         (OACC_DECLARE_CLAUSE_MASK): New definition.
1146         (c_parser_oacc_declare): New function.
1148 2015-11-12  Marek Polacek  <polacek@redhat.com>
1150         PR c/67784
1151         * c-parser.c (c_parser_for_statement): Reclassify the token in
1152         a correct scope.
1154 2015-11-11  Marek Polacek  <polacek@redhat.com>
1156         PR c/68107
1157         PR c++/68266
1158         * c-decl.c (grokdeclarator): Call valid_array_size_p.  Remove code
1159         checking the size of an array.
1161 2015-11-11  Andrew MacLeod  <amacleod@redhat.com>
1163         * c-array-notation.c: Remove unused header files.
1164         * c-aux-info.c: Likewise.
1165         * c-convert.c: Likewise.
1166         * c-decl.c: Likewise.
1167         * c-errors.c: Likewise.
1168         * c-lang.c: Likewise.
1169         * c-objc-common.c: Likewise.
1170         * c-parser.c: Likewise.
1171         * c-typeck.c: Likewise.
1172         * gccspec.c: Likewise.
1174 2015-11-09  Thomas Schwinge  <thomas@codesourcery.com>
1175             Cesar Philippidis  <cesar@codesourcery.com>
1176             James Norris  <jnorris@codesourcery.com>
1177             Julian Brown  <julian@codesourcery.com>
1178             Nathan Sidwell  <nathan@codesourcery.com>
1180         c/
1181         * c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
1182         routine arg.
1183         (c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
1184         (c_parser_pragma): Parse 'acc routine'.
1185         (OACC_ROUTINE_CLAUSE_MARK): Define.
1186         (c_parser_oacc_routine, (c_finish_oacc_routine): New.
1188 2015-11-09  Andreas Arnez  <arnez@linux.vnet.ibm.com>
1190         PR debug/67192
1191         * c-typeck.c (c_finish_loop): For unconditional loops, set the
1192         location of the backward-goto to the start of the loop body.
1194 2015-11-09  Andreas Arnez  <arnez@linux.vnet.ibm.com>
1196         PR debug/67192
1197         * c-parser.c (c_parser_while_statement): Finish the loop before
1198         parsing ahead for misleading indentation.
1199         (c_parser_for_statement): Likewise.
1201 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
1203         * c-decl.c (finish_struct): If the structure has reverse storage
1204         order, rewrite the type of array fields with scalar component.  Call
1205         maybe_apply_pragma_scalar_storage_order on entry.
1206         * c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs.  Issue
1207         errors on bit-fields and reverse SSO here and not...
1208         (c_mark_addressable): ...here.
1209         (output_init_element): Adjust call to initializer_constant_valid_p.
1210         (c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.
1212 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
1214         * c-decl.c (warn_defaults_to): Update for change in signature
1215         of diagnostic_set_info.
1216         * c-errors.c (pedwarn_c99): Likewise.
1217         (pedwarn_c90): Likewise.
1218         * c-objc-common.c (c_tree_printer): Update for new "caret_p" param
1219         for textinfo::set_location.
1221 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
1222             Thomas Schwinge  <thomas@codesourcery.com>
1223             James Norris  <jnorris@codesourcery.com>
1225         * c-parser.c (c_parser_omp_clause_name): Add support for
1226         PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
1227         (c_parser_omp_clause_default): Add is_oacc argument. Handle
1228         default(none) in OpenACC.
1229         (c_parser_oacc_shape_clause): Allow pointer variables as gang static
1230         arguments.
1231         (c_parser_oacc_clause_tile): New function.
1232         (c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
1233         OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
1234         (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
1235         TILE}.
1236         (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
1237         (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
1238         FIRSTPRIVATE}.
1239         (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
1240         (c_parser_oacc_update): Update the error message for missing clauses.
1241         * c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
1242         and OMP_CLAUSE_INDEPENDENT.
1244 2015-11-05  Marek Polacek  <polacek@redhat.com>
1246         PR c/68090
1247         * c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
1248         deal with pre-evaluation on invalid types.
1250 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
1251             Ilya Verbin  <ilya.verbin@intel.com>
1253         * c-parser.c: Include context.h and gimple-expr.h.
1254         (c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
1255         monotonic together with nonmonotonic.
1256         (c_parser_omp_for_loop): Call c_omp_check_loop_iv.  Call add_stmt here.
1257         (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
1258         (c_parser_omp_target_data, c_parser_omp_target_enter_data,
1259         c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
1260         (c_parser_omp_target): Likewise.  Evaluate num_teams and thread_limit
1261         expressions on combined target teams before the target.
1262         (c_parser_omp_declare_target): If decl has "omp declare target" or
1263         "omp declare target link" attribute, and cgraph or varpool node already
1264         exists, then set corresponding flags.  Call c_finish_omp_clauses
1265         in the parenthesized extended-list syntax case.
1266         * c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
1267         declare target.
1268         * c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
1269         on OMP_CLAUSE_REDUCTION array sections.
1270         (handle_omp_array_sections): Encode low-bound into the MEM_REF, either
1271         into the constant offset, or for variable low-bound using
1272         POINTER_PLUS_EXPR.  For structure element based array sections use
1273         GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
1274         (c_finish_omp_clauses): Drop generic_field_head, structure
1275         elements are now always mapped even as array section bases,
1276         diagnose same var in data sharing and mapping clauses.  Diagnose if
1277         linear step on declare simd is neither a constant nor a uniform
1278         parameter.  Look through POINTER_PLUS_EXPR for array section
1279         reductions.  Diagnose the same var or function appearing multiple
1280         times on the same directive.  Fix up wording for the to clause if t
1281         is neither a FUNCTION_DECL nor a VAR_DECL.  Diagnose nonmonotonic
1282         modifier on kinds other than dynamic or guided or nonmonotonic
1283         modifier together with ordered clause.
1285 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
1286             Chung-Lin Tang  <cltang@codesourcery.com>
1288         * c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
1290 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
1292         * c-array-notation.c: Reorder #include's and remove duplicates.
1293         * c-aux-info.c: Likewise.
1294         * c-convert.c: Likewise.
1295         * c-decl.c: Likewise.
1296         * c-errors.c: Likewise.
1297         * c-lang.c: Likewise.
1298         * c-objc-common.c: Likewise.
1299         * c-parser.c: Likewise.
1300         * c-typeck.c: Likewise.
1302 2015-10-26  Jim Wilson  <jim.wilson@linaro.org>
1304         PR debug/66068
1305         * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
1306         after calling build_qualified_type.
1308 2015-10-27  Cesar Philippidis  <cesar@codesourcery.com>
1309             Thomas Schwinge  <thomas@codesourcery.com>
1310             James Norris  <jnorris@codesourcery.com>
1311             Joseph Myers  <joseph@codesourcery.com>
1312             Julian Brown  <julian@codesourcery.com>
1313             Bernd Schmidt  <bschmidt@redhat.com>
1315         * c-parser.c (c_parser_oacc_shape_clause): New.
1316         (c_parser_oacc_simple_clause): New.
1317         (c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
1318         (OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.
1320 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
1321             James Norris  <jnorris@codesourcery.com>
1322             Cesar Philippidis  <cesar@codesourcery.com>
1324         PR c/64765
1325         PR c/64880
1326         * c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
1327         parameters, and handle these.  Adjust all users.
1328         (c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
1329         into...
1330         (c_parser_oacc_kernels_parallel): ... this new function.  Adjust
1331         all users.
1332         * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
1333         declare functions.
1334         (c_finish_omp_construct): Declare function.
1335         * c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
1336         Merge functions into...
1337         (c_finish_omp_construct): ... this new function.
1339 2015-10-22  Richard Biener  <rguenther@suse.de>
1341         * c-typeck.c (c_finish_omp_clauses): Properly convert operands
1342         before folding a MINUS_EXPR.
1344 2015-10-21  Marek Polacek  <polacek@redhat.com>
1346         PR c/68024
1347         * c-decl.c (start_function): Warn about vararg functions without
1348         a prototype.
1350 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
1352         * c-typeck.c (build_conditional_expr): Use boolean vector
1353         type for vector comparison.
1354         (build_vec_cmp): New.
1355         (build_binary_op): Use build_vec_cmp for comparison.
1357 2015-10-20  Marek Polacek  <polacek@redhat.com>
1359         * c-parser.c (is_cilkplus_vector_p): Don't define here.
1361 2015-10-20  Marek Polacek  <polacek@redhat.com>
1363         PR c/67964
1364         * c-parser.c (c_parser_attributes): Break out of the loop if the
1365         token after an attribute isn't a comma.
1367 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
1368             Aldy Hernandez  <aldyh@redhat.com>
1370         * c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
1371         (c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
1372         (c_parser_omp_variable_list): Handle structure elements for
1373         map, to and from clauses.  Handle array sections in reduction
1374         clause.  Formatting fixes.
1375         (c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
1376         if clause modifiers.
1377         (c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
1378         c_parser_omp_clause_priority, c_parser_omp_clause_hint,
1379         c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
1380         c_parser_omp_clause_is_device_ptr): New functions.
1381         (c_parser_omp_clause_ordered): Parse optional parameter.
1382         (c_parser_omp_clause_reduction): Handle array reductions.
1383         (c_parser_omp_clause_schedule): Parse optional simd modifier.
1384         (c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
1385         functions.
1386         (c_parser_omp_clause_linear): Parse linear clause modifiers.
1387         (c_parser_omp_clause_depend_sink): New function.
1388         (c_parser_omp_clause_depend): Parse source/sink depend kinds.
1389         (c_parser_omp_clause_map): Parse release/delete map kinds and
1390         optional always modifier.
1391         (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
1392         and c_finish_omp_clauses callers.
1393         (c_parser_omp_all_clauses): Likewise.  Parse OpenMP 4.5 clauses.
1394         Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
1395         (c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
1396         (OMP_CRITICAL_CLAUSE_MASK): Define.
1397         (c_parser_omp_critical): Parse critical clauses.
1398         (c_parser_omp_for_loop): Handle doacross loops, adjust
1399         c_finish_omp_for and c_finish_omp_clauses callers.
1400         (OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
1401         (c_parser_omp_simd): Allow ordered clause if it has no parameter.
1402         (OMP_FOR_CLAUSE_MASK): Add linear clause.
1403         (c_parser_omp_for): Disallow ordered clause when combined with
1404         distribute.  Disallow linear clause when combined with distribute
1405         and not combined with simd.
1406         (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
1407         (c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
1408         parse clauses and if depend clause is found, don't parse a body.
1409         (c_parser_omp_parallel): Disallow copyin clause on target parallel.
1410         Allow target parallel without for after it.
1411         (OMP_TASK_CLAUSE_MASK): Add priority clause.
1412         (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
1413         (c_parser_omp_target_data): Diagnose no map clauses or clauses with
1414         invalid kinds.
1415         (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
1416         (OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
1417         OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
1418         (c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
1419         functions.
1420         (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
1421         defaultmap and is_device_ptr clauses.
1422         (c_parser_omp_target): Parse target parallel and target simd.  Set
1423         OMP_TARGET_COMBINED on combined constructs.  Parse target enter data
1424         and target exit data.  Diagnose invalid map kinds.
1425         (OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
1426         (c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
1427         construct.
1428         (c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
1429         &omp_priv.
1430         (OMP_TASKLOOP_CLAUSE_MASK): Define.
1431         (c_parser_omp_taskloop): New function.
1432         (c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
1433         handle PRAGMA_OMP_TASKLOOP.
1434         (c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
1435         * c-tree.h (c_finish_omp_clauses): Add two new arguments.
1436         * c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
1437         Add IS_OMP argument, handle structure element bases, diagnose
1438         bitfields, pass IS_OMP recursively, diagnose known zero length
1439         array sections in depend clauses, handle array sections in reduction
1440         clause, diagnose negative length even for pointers.
1441         (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
1442         types, pass IS_OMP down to handle_omp_array_sections_1, handle
1443         array sections in reduction clause, set
1444         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
1445         length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
1446         (c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
1447         Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
1449 2015-10-06  Marek Polacek  <polacek@redhat.com>
1451         * c-parser.c (c_parser_statement_after_labels): Use
1452         protected_set_expr_location.
1453         (c_parser_omp_clause_num_gangs): Likewise.
1454         (c_parser_omp_clause_num_threads): Likewise.
1455         (c_parser_omp_clause_num_workers): Likewise.
1456         (c_parser_omp_clause_vector_length): Likewise.
1457         (c_parser_omp_clause_num_teams): Likewise.
1458         (c_parser_omp_clause_thread_limit): Likewise.
1459         * c-typeck.c (build_c_cast): Likewise.
1460         (c_cast_expr): Likewise.
1462 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
1464         * c-typeck.c (c_tree_equal): Use real_equal instead of
1465         REAL_VALUES_EQUAL.
1467 2015-10-04  Jason Merrill  <jason@redhat.com>
1469         * c-parser.c (c_lex_one_token): Handle @synchronized.
1470         * c-decl.c (match_builtin_function_types): A declaration of a built-in
1471         can change whether the function is transaction_safe.
1473 2015-10-02  Marek Polacek  <polacek@redhat.com>
1475         PR c/67730
1476         * c-typeck.c (convert_for_assignment): Use the expansion point
1477         location throughout.
1479 2015-10-02  Marek Polacek  <polacek@redhat.com>
1481         PR c/64249
1482         * c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
1483         and pass it down to c_parser_if_statement.
1484         (c_parser_else_body): Add CHAIN parameter and pass it down to
1485         c_parser_statement_after_labels.
1486         (c_parser_if_statement): Add CHAIN parameter.  Add code to warn about
1487         duplicated if-else-if conditions.
1489 2015-10-01  Marek Polacek  <polacek@redhat.com>
1491         * c-typeck.c (convert_for_assignment): Improve commentary.
1493 2015-09-30  Marek Polacek  <polacek@redhat.com>
1495         PR c/67730
1496         * c-typeck.c (c_finish_return): Use the expansion point location for
1497         certain "return with value" warnings.
1499 2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1501         * c-parser.c (pragma_lex): Add loc argument.
1503 2015-09-15  Marek Polacek  <polacek@redhat.com>
1505         PR c/67580
1506         * c-decl.c (tag_exists_p): New function.
1507         * c-parser.c (c_parser_declaration_or_fndef): Give a hint when
1508         struct/union/enum keywords are missing.
1509         * c-tree.h (tag_exists_p): Declare.
1511 2015-09-15  Marek Polacek  <polacek@redhat.com>
1513         * c-decl.c (lookup_label): Return NULL_TREE instead of 0.
1514         (lookup_tag): Change the type of THISLEVEL_ONLY to bool.
1515         Return NULL_TREE instead of 0.
1516         (lookup_name): Return NULL_TREE instead of 0.
1517         (lookup_name_in_scope): Likewise.
1518         (shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
1519         (parser_xref_tag): Use false instead of 0.
1520         (start_struct): Use true instead of 1.
1521         (start_enum): Use true instead of 1 and NULL_TREE instead of 0.
1523 2015-09-14  Marek Polacek  <polacek@redhat.com>
1525         * c-typeck.c (set_nonincremental_init_from_string): Use
1526         HOST_WIDE_INT_M1U when shifting a negative value.
1528 2015-09-09  Mark Wielaard  <mjw@redhat.com>
1530         * c-typeck.c (build_binary_op): Check and warn when nonnull arg
1531         parm against NULL.
1533 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
1535         PR c/67502
1536         * c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
1537         into OMP_FOR_PRE_BODY rather than before the loop.
1539 2015-09-09  Jakub Jelinek  <jakub@redhat.com>
1541         PR c/67501
1542         * c-parser.c (c_parser_oacc_all_clauses,
1543         c_parser_omp_all_clauses): Remove invalid clause from
1544         list of clauses even if parser->error is set.
1546         PR c/67500
1547         * c-parser.c (c_parser_omp_clause_aligned,
1548         c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
1549         test for errors.
1550         * c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
1551         error_mark_node.
1553         PR c/67495
1554         * c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
1555         instead of c_parser_unary_expression.  If the result is !lvalue_p,
1556         wrap the result of c_fully_fold into NON_LVALUE_EXPR.
1558 2015-09-04  Marek Polacek  <polacek@redhat.com>
1560         PR sanitizer/67279
1561         * c-typeck.c (build_binary_op): Don't instrument static initializers.
1563 2015-09-03  Martin Sebor  <msebor@redhat.com>
1565         PR c/66516
1566         * c-typeck.c (convert_arguments, parser_build_unary_op,
1567         build_conditional_expr, c_cast_expr, convert_for_assignment,
1568         build_binary_op, _objc_common_truthvalue_conversion): Call
1569         reject_gcc_builtin.
1570         (c_decl_implicit): Define.
1572 2015-09-02  Marek Polacek  <polacek@redhat.com>
1574         PR c/67432
1575         * c-parser.c (c_parser_enum_specifier): Give a better error for
1576         an empty enum.
1578 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
1580         * c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
1582 2015-08-12  Marek Polacek  <polacek@redhat.com>
1584         * c-decl.c (grokdeclarator): Call error_at instead of error and pass
1585         LOC to it.
1587 2015-08-03  Marek Polacek  <polacek@redhat.com>
1589         PR c/67088
1590         * c-decl.c (check_bitfield_type_and_width): Add location parameter.
1591         Use it.
1592         (grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
1594 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
1596         * c-parser.c (c_parser_if_body): Take token_indent_info
1597         argument. Call warn_for_misleading_indentation even when the
1598         body is a semicolon.  Extract token_indent_infos corresponding
1599         to the guard, body and next tokens.  Adjust call to
1600         warn_for_misleading_indentation accordingly.
1601         (c_parser_else_body): Likewise.
1602         (c_parser_if_statement): Likewise.
1603         (c_parser_while_statement): Likewise.
1604         (c_parser_for_statement): Likewise.
1606 2015-07-28  Luis Felipe Strano Moraes  <luis.strano@gmail.com>
1607             Manuel López-Ibáñez  <manu@gcc.gnu.org>
1609         * c-decl.c (get_parm_info): Remove static var. Update warning
1610         message.
1612 2015-07-27  Marek Polacek  <polacek@redhat.com>
1614         PR c++/66555
1615         PR c/54979
1616         * c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
1618 2015-07-20  Marek Polacek  <polacek@redhat.com>
1620         PR c++/55095
1621         * c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
1622         (build_binary_op): Warn about left shift overflows.
1624 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1626         * c-array-notation.c: Adjust includes for flags.h changes.
1627         * c-objc-common.c: Likewise.
1629 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
1631         * c-array-notation.c: Adjust includes.
1632         * c-aux-info.c: Likewise.
1633         * c-convert.c: Likewise.
1634         * c-decl.c: Likewise.
1635         * c-errors.c: Likewise.
1636         * c-lang.c: Likewise.
1637         * c-objc-common.c: Likewise.
1638         * c-parser.c: Likewise.
1639         * c-typeck.c: Likewise.
1641 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1643         PR fortran/66605
1644         * c-decl.c (finish_function): Call do_warn_unused_parameter.
1646 2015-06-29  Marek Polacek  <polacek@redhat.com>
1648         PR c/66322
1649         * c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
1650         (c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P.  Don't warn
1651         about -Wswitch-bool here.
1652         (do_case): Update c_add_case_label call.
1653         (c_finish_case): Update c_do_switch_warnings call.
1655 2015-06-27  Marek Polacek  <polacek@redhat.com>
1657         * c-typeck.c: Use VECTOR_TYPE_P throughout.
1659 2015-06-26  Marek Polacek  <polacek@redhat.com>
1661         * c-array-notation.c (fix_builtin_array_notation_fn): Use
1662         INDIRECT_REF_P.
1663         * c-typeck.c (array_to_pointer_conversion): Likewise.
1664         (build_unary_op): Likewise.
1665         (c_finish_return): Likewise.
1667 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
1669         * c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
1670         * c-parser.c: Likewise.
1672 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
1674         * c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
1675         instead of pointer_hash.
1676         (detect_field_duplicates): Likewise.
1678 2015-06-25  Marek Polacek  <polacek@redhat.com>
1680         * c-array-notation.c: Use VAR_P throughout.
1681         * c-decl.c: Likewise.
1682         * c-objc-common.c: Likewise.
1683         * c-parser.c: Likewise.
1684         * c-typeck.c: Likewise.
1686 2015-06-25  Marek Polacek  <polacek@redhat.com>
1688         * c-decl.c: Use is_global_var throughout.
1689         * c-parser.c: Likewise.
1690         * c-typeck.c: Likewise.
1692 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
1694         * c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
1695         * c-aux-info.c: Likewise.
1696         * c-convert.c: Likewise.
1697         * c-decl.c: Likewise.
1698         * c-errors.c: Likewise.
1699         * c-lang.c: Likewise.
1700         * c-objc-common.c: Likewise.
1701         * c-parser.c: Likewise.
1702         * c-typeck.c: Likewise.
1704 2015-06-11  Jan Hubicka  <hubicka@ucw.cz>
1706         PR middle-end/66325
1707         * c-decl.c (start_enum): Set TYPE_PACKED consistently among type
1708         variants.
1710 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
1712         * c-decl.c (pop_scope): Register the main translation unit
1713         through the new debug hook.
1715 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
1717         * c-array-notation.c : Adjust include files.
1718         * c-aux-info.c : Likewise.
1719         * c-convert.c : Likewise.
1720         * c-decl.c : Likewise.
1721         * c-errors.c : Likewise.
1722         * c-lang.c : Likewise.
1723         * c-lang.h : Likewise.
1724         * c-objc-common.c : Likewise.
1725         * c-parser.c : Likewise.
1726         * c-typeck.c : Likewise.
1728 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
1730         * c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
1731         immediately clobber it.
1732         (c_write_global_declarations_1): Remove call to
1733         check_global_declaration_1.
1734         (c_write_global_declarations_2): Remove.
1735         (c_write_final_cleanups): Rename from c_write_global_declarations.
1736         Remove call to finalize_compilation_unit.
1737         Remove calls to debugging hooks.
1738         * c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
1739         * c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
1740         * c-tree.h: Remove c_write_global_declarations.
1742 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
1744         * c-array-notation.c: Adjust includes for restructured coretypes.h.
1745         * c-aux-info.c: Likewise.
1746         * c-convert.c: Likewise.
1747         * c-decl.c: Likewise.
1748         * c-errors.c: Likewise.
1749         * c-lang.c: Likewise.
1750         * c-objc-common.c: Likewise.
1751         * c-parser.c: Likewise.
1752         * c-typeck.c: Likewise.
1754 2015-06-04  Marek Polacek  <polacek@redhat.com>
1756         PR c/66341
1757         * c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
1758         it is a lvalue.
1760 2015-06-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1762         * c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
1763         Warn for empty struct.
1764         (finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.
1766 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
1768         * c-decl.c (start_function): Call plugin before parsing.
1769         (finish_function): Call plugin after parsing.
1771 2015-06-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1773         PR c/49551
1774         * c-decl.c (merge_decls): Merge DECL_COMMON.
1776 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
1778         * Make-lang.in (check_gcc_pallelize): Define.
1780 2015-05-22  Marek Polacek  <polacek@redhat.com>
1782         PR c/47043
1783         * c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
1784         attributes.
1786 2015-05-21  Marek Polacek  <polacek@redhat.com>
1788         * c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
1789         DECL_BUILT_IN.
1791 2015-05-20  Marek Polacek  <polacek@redhat.com>
1793         * c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
1794         * c-typeck.c: Likewise.
1796 2015-05-19  Marek Polacek  <polacek@redhat.com>
1798         * c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
1800 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
1802         PR middle-end/66199
1803         * c-parser.c (c_parser_omp_for_loop): Don't add
1804         OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
1805         OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
1806         (c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
1807         constructs.
1809 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
1811         * c-typeck.c (build_array_ref): Use std::swap instead of explicit
1812         swaps.
1814 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1816         PR fortran/44054
1817         * c-objc-common.c (c_tree_printer): Replace locus pointer with
1818         accessor function.
1820 2015-05-14  Marek Polacek  <polacek@redhat.com>
1822         PR c/66066
1823         PR c/66127
1824         * c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
1825         rather than with 0.
1827 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
1829         * c-parser.c (c_parser_if_body): Add param "if_loc", use it
1830         to add a call to warn_for_misleading_indentation.
1831         (c_parser_else_body): Likewise, adding param "else_loc".
1832         (c_parser_if_statement): Check for misleading indentation.
1833         (c_parser_while_statement): Likewise.
1834         (c_parser_for_statement): Likewise.
1836 2015-05-08  Marek Polacek  <polacek@redhat.com>
1838         PR c/64918
1839         * c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
1840         (output_init_element): Likewise.
1842 2015-05-07  Marek Polacek  <polacek@redhat.com>
1844         PR c/65179
1845         * c-typeck.c (build_binary_op): Warn when left shifting a negative
1846         value.
1848 2015-04-30  Marek Polacek  <polacek@redhat.com>
1850         * c-typeck.c (set_init_label): Call error_at instead of error and
1851         pass LOC to it.
1853         * c-typeck.c (c_incomplete_type_error): Refactor to use %qT.  Print
1854         the type of a decl.
1856         * c-typeck.c (c_build_va_arg): Clarify the error message.
1858 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
1860         * c-parser.c (c_parser_oacc_enter_exit_data): Use
1861         OMP_STANDALONE_CLAUSES.
1863 2015-04-28  Marek Polacek  <polacek@redhat.com>
1865         * c-parser.c (c_parser_binary_expression): Remove duplicate line.
1867 2015-04-28  Marek Polacek  <polacek@redhat.com>
1869         PR c/65901
1870         * c-typeck.c (c_build_va_arg): Require TYPE be a complete type.
1872 2015-04-25  Marek Polacek  <polacek@redhat.com>
1874         PR c/52085
1875         * c-decl.c (finish_enum): Copy over TYPE_ALIGN.  Also check for "mode"
1876         attribute.
1878 2015-04-23  Marek Polacek  <polacek@redhat.com>
1880         PR c/65345
1881         * c-decl.c (set_labels_context_r): New function.
1882         (store_parm_decls): Call it via walk_tree_without_duplicates.
1883         * c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
1884         instead of create_tmp_var.  Build TARGET_EXPR instead of
1885         COMPOUND_EXPR.
1886         (build_atomic_assign): Use create_tmp_var_raw instead of
1887         create_tmp_var.  Build TARGET_EXPRs instead of MODIFY_EXPR.
1889 2015-04-20  Ilya Verbin  <ilya.verbin@intel.com>
1891         * c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
1892         (c_parser_omp_target_update): Add missed %> to error_at ().
1894 2015-04-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1896         PR target/55143
1897         * c-decl.c (c_default_pointer_mode): Remove definition.
1898         * c-tree.h (c_default_pointer_mode): Remove declaration.
1900 2015-03-27  Tobias Burnus  <burnus@net-b.de>
1902         PR c/65586
1903         * c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
1904         error out.
1905         (c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
1906         c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
1907         Update calls to not error for skipped omp pragmas with -fopenmp-simd.
1909 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
1911         * c-decl.c (c_decl_attributes): Also add "omp declare target"
1912         attribute for DECL_EXTERNAL VAR_DECLs.
1914 2015-03-11  Jakub Jelinek  <jakub@redhat.com>
1916         * c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
1917         argument.
1919 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
1921         PR c/65120
1922         * c-typeck.c (parser_build_binary_op): Check for tcc_comparison
1923         before preparing arguments to warn_logical_not_parentheses.
1925 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
1927         PR c/65120
1928         * c-typeck.c (parser_build_binary_op): Don't warn for
1929         !!x == y or !b == y where b is _Bool.
1931 2015-03-09  Marek Polacek  <polacek@redhat.com>
1933         * c-convert.c (convert): Make use of do_ubsan_in_current_function.
1934         * c-decl.c (grokdeclarator): Likewise.
1935         * c-typeck.c (build_binary_op): Likewise.
1937 2015-02-27  Marek Polacek  <polacek@redhat.com>
1939         PR c/65228
1940         * c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
1942 2015-02-14  Marek Polacek  <polacek@redhat.com>
1944         PR c/64768
1945         * c-decl.c (grokdeclarator): Set the range of a flexible array member
1946         declared through a typedef name.
1948 2015-02-13  Marek Polacek  <polacek@redhat.com>
1950         PR c/65050
1951         * c-decl.c (grokdeclarator): Print also the type when giving
1952         the error message about array's incomplete element type.
1954 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
1956         PR c/64824
1957         * c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
1958         check in the POP macro.
1960 2015-02-09  Marek Polacek  <polacek@redhat.com>
1962         PR c/64856
1963         * c-typeck.c (process_init_element): Don't always wrap
1964         COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when
1965         initializing a range of elements.
1967 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
1969         PR c/64824
1970         PR c/64868
1971         * c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.
1973 2015-02-02  Bruno Loff  <bruno.loff@gmail.com>
1975         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
1976         processing enum declaration.
1978 2015-01-29  Marek Polacek  <polacek@redhat.com>
1980         PR c/64709
1981         * c-typeck.c (pop_init_level): If constructor_elements has
1982         exactly one element with integer_zerop value, set constructor_zeroinit
1983         to 1.  Remove braces around warning_init call.
1985 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
1987         PR c/64766
1988         * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
1989         of FUNCTION_DECLs with error_mark_node.
1991 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
1993         PR c/64778
1994         * c-typeck.c (convert_arguments): Return -1 if there are
1995         error_args, even if we've diagnosed too many arguments.
1997 2015-01-21  Richard Biener  <rguenther@suse.de>
1999         PR middle-end/64313
2000         * c-decl.c (merge_decls): Call set_builtin_decl_declared_p
2001         for builtins the user declared correctly.
2003 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
2004             Bernd Schmidt  <bernds@codesourcery.com>
2005             Cesar Philippidis  <cesar@codesourcery.com>
2006             James Norris  <jnorris@codesourcery.com>
2007             Jakub Jelinek  <jakub@redhat.com>
2008             Ilmir Usmanov  <i.usmanov@samsung.com>
2010         * c-parser.c: Include "gomp-constants.h".
2011         (c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
2012         omp_clause_map_kind.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
2013         Use OMP_CLAUSE_SET_MAP_KIND.
2014         (c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
2015         PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
2016         (c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
2017         PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
2018         PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
2019         (c_parser_omp_clause_name): Handle "auto", "async", "copy",
2020         "copyout", "create", "delete", "deviceptr", "gang", "host",
2021         "num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
2022         "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
2023         "present_or_create", "pcreate", "seq", "self", "vector",
2024         "vector_length", "wait", "worker".
2025         (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
2026         (OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
2027         (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
2028         (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
2029         (c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
2030         (c_parser_oacc_wait_list, c_parser_oacc_data_clause)
2031         (c_parser_oacc_data_clause_deviceptr)
2032         (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
2033         (c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
2034         (c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
2035         (c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
2036         (c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
2037         (c_parser_oacc_parallel, c_parser_oacc_update)
2038         (c_parser_oacc_wait): New functions.
2039         * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
2040         (c_finish_oacc_data): New prototypes.
2041         * c-typeck.c: Include "gomp-constants.h".
2042         (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR.  Use
2043         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
2044         OMP_CLAUSE_SET_MAP_KIND.
2045         (c_finish_oacc_parallel, c_finish_oacc_kernels)
2046         (c_finish_oacc_data): New functions.
2047         (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
2048         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
2049         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
2050         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
2051         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
2052         GOMP_MAP_FORCE_DEVICEPTR.
2054 2015-01-09  Michael Collison  <michael.collison@linaro.org>
2056         * c-array-notation.c: Include hash-set.h, machmode.h,
2057         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
2058         fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
2059         * c-aux-info.c: Ditto.
2060         * c-convert.c: Ditto.
2061         * c-decl.c: Ditto.
2062         * c-errors.c: Ditto.
2063         * c-lang.c: Dittoxs.
2064         * c-objc-common.c: Ditto.
2065         * c-parser.c: Ditto.
2066         * c-typeck.c: Include hash-set.h, machmode.h,
2067         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
2068         fold-const.h, wide-int.h, inchash.h, real.h and
2069         fixed-value.h due to flattening of tree.h.
2071 2015-01-07  Marek Polacek  <polacek@redhat.com>
2073         PR c/64417
2074         * c-typeck.c (process_init_element): Disallow initialization of
2075         a flexible array member with a string constant if the structure
2076         is in an array.
2078 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2080         PR sanitizer/64344
2081         * c-typeck.c (convert_for_assignment, c_finish_return): For
2082         -fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
2083         types also set in_late_binary_op around convert call.
2084         * c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
2085         to integral type casts, if not in_late_binary_op, pass c_fully_fold
2086         result on expr as last argument to ubsan_instrument_float_cast,
2087         if in_late_binary_op, don't use c_save_expr but save_expr.
2089         Update copyright years.
2091 2015-01-05  Marek Polacek  <polacek@redhat.com>
2093         PR c/64423
2094         * c-typeck.c (build_array_ref): Pass loc down to
2095         warn_array_subscript_with_type_char.
2097 2014-12-20  Martin Uecker  <uecker@eecs.berkeley.edu>
2099         * c-typeck.c: New behavious for pointers to arrays with qualifiers
2100         (common-pointer-type): For pointers to arrays take qualifiers from
2101         element type.
2102         (build_conditional_expr): Add warnings for lost qualifiers.
2103         (comp-target-types): Allow pointers to arrays with different qualifiers.
2104         (convert-for-assignment): Adapt warnings for discarded qualifiers. Add
2105         WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
2106         to PEDWARN_FOR_QUALIFIERS.
2108 2014-12-17  Jakub Jelinek  <jakub@redhat.com>
2110         PR sanitizer/64289
2111         * c-convert.c: Include ubsan.h.
2112         (convert): For real -> integral casts and
2113         -fsanitize=float-cast-overflow don't call convert_to_integer, but
2114         instead instrument the float cast directly.
2116 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
2118         * c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
2119         c_finish_stmt_expr): Remove NULL last argument from
2120         create_tmp_var_raw and create_tmp_var calls.
2121         * c-array-notation.c (fix_builtin_array_notation_fn,
2122         build_array_notation_expr, fix_conditional_array_notations_1,
2123         fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
2125 2014-11-28  Marek Polacek  <polacek@redhat.com>
2127         PR c/63862
2128         * c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
2129         convert the right operand to integer type.
2131 2014-11-25  Marek Polacek  <polacek@redhat.com>
2133         PR c/63877
2134         * c-decl.c (start_function): Disable -Wmissing-declarations warning
2135         for inline functions.
2137 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
2139         PR target/63764
2140         * c-typeck.c (build_array_ref): Adjust
2141         convert_vector_to_pointer_for_subscript caller.  If it returns true,
2142         call non_lvalue_loc on the result.
2144 2014-11-11  Richard Biener  <rguenther@suse.de>
2146         * c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
2147         to true.
2149 2014-11-10  Andi Kleen  <ak@linux.intel.com>
2151         PR c/60804
2152         * c-parser.c (c_parser_statement_after_labels): Call
2153         check_no_cilk.
2154         (c_parser_if_statement): Dito.
2155         (c_parser_switch_statement): Dito.
2156         (c_parser_while_statement): Dito.
2157         (c_parser_do_statement): Dito.
2158         (c_parser_for_statement): Dito.
2159         * c-typeck.c (c_finish_loop): Dito.
2161 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
2163         * c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
2164         OPT_Wshift_count_overflow in the warnings.
2166 2014-10-30  Marek Polacek  <polacek@redhat.com>
2168         * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
2169         print the stripped version as well, if they're not the same.
2171 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
2173         * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
2174         machine_mode.
2176 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
2178         * c-decl.c: Adjust include files.
2179         * c-parser.c: Ditto.
2181 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
2182             Tom Tromey  <tromey@redhat.com>
2184         * c-tree.h (enum c_oracle_request): New.
2185         (c_binding_oracle_function): New typedef.
2186         (c_binding_oracle, c_pushtag, c_bind): Declare.
2187         * c-decl.c (c_binding_oracle): New global.
2188         (I_SYMBOL_CHECKED): New macro.
2189         (i_symbol_binding): New function.
2190         (I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
2191         (I_TAG_CHECKED): New macro.
2192         (i_tag_binding): New function.
2193         (I_TAG_BINDING, I_TAG_DECL): Redefine.
2194         (I_LABEL_CHECKED): New macro.
2195         (i_label_binding): New function.
2196         (I_LABEL_BINDING, I_LABEL_DECL): Redefine.
2197         (c_print_identifier): Save and restore c_binding_oracle.
2198         (c_pushtag, c_bind): New functions.
2200 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
2202         * c-typeck.c: Adjust include files.
2204 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2206         PR c++/53061
2207         * c-objc-common.c (c_objc_common_init): Do not do diagnostics
2208         initialization here...
2209         (c_initialize_diagnostics): ... but here. Set defaults after
2210         building pretty-printer.
2212 2014-10-23  Marek Polacek  <polacek@redhat.com>
2214         PR c/63626
2215         * c-decl.c (pop_scope): Don't print warning in external_scope.
2217 2014-10-19  Marek Polacek  <polacek@redhat.com>
2219         PR c/63567
2220         * c-typeck.c (output_init_element): Allow initializing objects with
2221         static storage duration with compound literals even in C99 and add
2222         pedwarn for it.
2224 2014-10-17  Marek Polacek  <polacek@redhat.com>
2226         PR c/63567
2227         * c-typeck.c (digest_init): Allow initializing objects with static
2228         storage duration with compound literals even in C99 and add pedwarn
2229         for it.
2231 2014-10-17  Marek Polacek  <polacek@redhat.com>
2233         PR c/63543
2234         * c-tree.h (C_TYPE_ERROR_REPORTED): Define.
2235         * c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
2236         error multiple times.  Print the type.
2238 2014-10-17  Marek Polacek  <polacek@redhat.com>
2240         PR c/63549
2241         * c-typeck.c (build_array_ref): Bail if the index in an incomplete
2242         type.
2244 2014-10-17  Marek Polacek  <polacek@redhat.com>
2246         * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
2247         (start_function): Use OPT_Wimplicit_int instead of 0.
2248         (store_parm_decls_oldstyle): Likewise.
2250 2014-10-17  Alan Modra  <amodra@gmail.com>
2252         PR middle-end/61848
2253         * c-decl.c (merge_decls): Don't merge section name or tls model
2254         to newdecl symtab node, instead merge to olddecl.  Override
2255         existing olddecl section name.  Set tls_model for all thread-local
2256         vars, not just OMP thread-private ones.  Remove incorrect comment.
2258 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
2260         * c-decl.c: Adjust include files.
2262 2014-10-14  DJ Delorie  <dj@redhat.com>
2264         * c-parser.c (c_parse_init): Add RID entries for each __intN.
2265         (c_token_starts_typename): Check all __intN, not just __int128.
2266         (c_token_starts_declspecs): Likewise.
2267         (c_parser_declspecs): Likewise.
2268         (c_parser_attribute_any_word): Likewise.
2269         (c_parser_objc_selector): Likewise.
2270         * c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
2271         (struct c_declspecs): Add int_n_idx field to record *which* __intN
2272         is specified.
2273         * c-decl.c (declspecs_add_type): Check for all __intN, not just
2274         __int128.
2275         (finish_declspecs): Likewise.
2277 2014-10-13  Anthony Brandon  <anthony.brandon@gmail.com>
2279         * c-parser.c (c_parser_all_labels): New function to replace
2280         the duplicate code.
2281         (c_parser_statement): Call the new function.
2283 2014-10-09  Marek Polacek  <polacek@redhat.com>
2285         PR c/63480
2286         * c-typeck.c (pop_init_level): Don't warn about initializing
2287         with { }.
2289 2014-10-07  Marek Polacek  <polacek@redhat.com>
2291         PR c/59717
2292         * c-decl.c (header_for_builtin_fn): New function.
2293         (implicitly_declare): Suggest which header to include.
2295 2014-10-07  Marek Polacek  <polacek@redhat.com>
2297         * c-convert.c (convert): Use error_operand_p.
2298         * c-typeck.c (require_complete_type): Likewise.
2299         (really_atomic_lvalue): Likewise.
2300         (digest_init): Likewise.
2301         (handle_omp_array_sections_1): Likewise.
2303 2014-10-03  Marek Polacek  <polacek@redhat.com>
2305         PR c/63453
2306         * c-decl.c (pop_scope): Don't warn about "inline function declared
2307         but never defined" for functions marked with gnu_inline attribute.
2309 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
2311         PR c++/63249
2312         * c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
2313         on low_bound and length.
2315 2014-09-24  Marek Polacek  <polacek@redhat.com>
2317         PR c/61405
2318         PR c/53874
2319         * c-parser.c: Don't define CPP_KEYWORD.
2320         (c_parser_switch_statement): Pass original type to c_finish_case.
2321         * c-tree.h (c_finish_case): Update declaration.
2322         * c-typeck.c (c_finish_case): Add TYPE parameter.  Pass it
2323         conditionally to c_do_switch_warnings.
2325 2014-09-03  Marek Polacek  <polacek@redhat.com>
2327         PR c/62024
2328         * c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
2329         conversions.
2331 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
2332             Balaji V. Iyer  <balaji.v.iyer@intel.com>
2333             Igor Zamyatin  <igor.zamyatin@intel.com>
2335         * c-parser.c (c_parser_cilk_for): New function.
2336         (c_parser_cilk_grainsize): Likewise.
2337         (c_get_temp_regvar): Likewise.
2338         (c_parser_statement_after_labels): Added RID_CILK_FOR case.
2339         (c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
2340         (c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
2341         * c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
2342         case.
2344 2014-08-27  Chen Gang  <gang.chen.5i5j@gmail.com>
2346         * c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
2347         with using HOST_WIDE_INT without truncation to 'int'
2349 2014-08-22  Marek Polacek  <polacek@redhat.com>
2351         PR c++/62199
2352         * c-typeck.c (parser_build_binary_op): Adjust call to
2353         warn_logical_not_parentheses.
2355 2014-08-22  Igor Zamyatin  <igor.zamyatin@intel.com>
2357         PR other/62008
2358         * c-parser.c (c_parser_array_notation): Check for correct
2359         type of an array added.
2361 2014-08-19  Marek Polacek  <polacek@redhat.com>
2363         PR c++/62153
2364         * c-typeck.c (build_binary_op): If either operand of a comparison
2365         is a boolean expression, call maybe_warn_bool_compare.
2367 2014-08-19  Patrick Palka  <ppalka@gcc.gnu.org>
2369         PR c/45584
2370         * c-typeck.c (build_c_cast): Do a conversion even when the
2371         TYPE_MAIN_VARIANTs are the same.
2373 2014-08-19  Marek Polacek  <polacek@redhat.com>
2375         * c-decl.c (diagnose_mismatched_decls): Unconditionally call
2376         pedwarn_c99 instead of pedwarn.
2377         (grokfield): Likewise.
2378         (warn_defaults_to): New function.
2379         (grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
2380         Unconditionally call pedwarn_c99 instead of pedwarn.
2381         (start_function): Call warn_defaults_to instead of pedwarn_c99.
2382         (declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
2383         check flag_isoc11 before.
2384         * c-errors.c (pedwarn_c99): Change the return type to bool.
2385         Handle -Wc99-c11-compat.
2386         * c-parser.c (disable_extension_diagnostics): Handle
2387         warn_c99_c11_compat.
2388         (restore_extension_diagnostics): Likewise.
2389         (c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
2390         instead of pedwarn, don't check flag_isoc11 before.
2391         (c_parser_declspecs): Likewise.
2392         (c_parser_alignas_specifier): Likewise.
2393         (c_parser_alignof_expression): Likewise.
2394         (c_parser_generic_selection): Likewise.
2395         * c-tree.h (pedwarn_c99): Update declaration.
2396         * c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
2397         of pedwarn_c99.
2399 2014-08-19  Marek Polacek  <polacek@redhat.com>
2401         * c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
2402         to pedwarn_c90.
2403         * c-errors.c: Include "opts.h".
2404         (pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
2405         * c-parser.c (disable_extension_diagnostics): Handle negative value
2406         of warn_c90_c99_compat, too.
2407         (restore_extension_diagnostics): Likewise.
2408         (c_parser_compound_statement_nostart): Pass
2409         OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.
2411 2014-08-12  Marek Polacek  <polacek@redhat.com>
2413         * c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
2414         Add pedwarn.
2415         (c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
2416         Likewise.
2417         (c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.
2419 2014-08-10  Marek Polacek  <polacek@redhat.com>
2421         PR c/51849
2422         * c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
2423         Call pedwarn_c90 instead of pedwarn.
2424         (check_bitfield_type_and_width): Likewise.
2425         (declspecs_add_qual): Likewise.
2426         (declspecs_add_type): Likewise.
2427         (warn_variable_length_array): Unify function for -pedantic and -Wvla.
2428         Adjust to only call pedwarn_c90.
2429         (grokdeclarator): Remove pedantic && !flag_isoc99 check.  Call
2430         pedwarn_c90 instead of pedwarn.
2431         * c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
2432         * c-parser.c (disable_extension_diagnostics): Handle
2433         warn_c90_c99_compat.
2434         (restore_extension_diagnostics): Likewise.
2435         (c_parser_enum_specifier): Remove check for !flag_isoc99.  Call
2436         pedwarn_c90 instead of pedwarn.
2437         (c_parser_initelt): Likewise.
2438         (c_parser_postfix_expression): Likewise.
2439         (c_parser_postfix_expression_after_paren_type): Likewise.
2440         (c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
2441         * c-tree.h: Fix formatting.
2442         * c-typeck.c (build_array_ref): Remove check for !flag_isoc99.  Call
2443         pedwarn_c90 instead of pedwarn.
2445 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
2447         * c-typeck.c: Remove include of pointer-set.h.
2449 2014-08-07  Marek Polacek  <polacek@redhat.com>
2451         * c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.
2453 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
2455         * c-typeck.c: Use hash_map instead of pointer_map.
2457 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
2459         * c-decl.c: Use hash_set instead of pointer_set.
2461 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
2463         PR middle-end/61455
2464         * c-array-notation.c (expand_array_notations): Handling
2465         of DECL_EXPR added.
2467 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
2469         PR c++/60517
2470         * c-typeck.c (c_finish_return): Return 0 instead of the address of
2471         a local variable.
2473 2014-07-30  Tom Tromey  <tromey@redhat.com>
2475         * c-typeck.c (struct constructor_stack) <designator_depth>: New
2476         field.
2477         (really_start_incremental_init, push_init_level): Initialize
2478         designator_depth.
2479         (pop_init_level): Set global designator_depth.
2480         (process_init_element): Check for designated_init attribute.
2482 2014-07-20  Marek Polacek  <polacek@redhat.com>
2484         PR c/61852
2485         * c-decl.c (implicit_decl_warning): Add location_t parameter.  Use it.
2486         (implicitly_declare): Pass location to implicit_decl_warning.
2488 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
2490         PR middle-end/61294
2491         * c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
2492         If non-NULL, call c_parser_check_literal_zero.
2493         (c_parser_check_literal_zero): New function.
2494         (c_parser_postfix_expression_after_primary): Adjust
2495         c_parser_expr_list caller, handle -Wmemset-transposed-args.
2497 2014-07-06  Marek Polacek  <polacek@redhat.com>
2499         PR c/6940
2500         * c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
2501         * c-tree.h (C_ARRAY_PARAMETER): Define.
2502         * c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
2503         function parameter.
2505 2014-07-02  Jan Hubicka  <hubicka@ucw.cz>
2506             Chen Gang  <gang.chen.5i5j@gmail.com>
2508         * c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
2509         releasing symbol.
2511 2014-07-01  Marek Polacek  <polacek@redhat.com>
2513         * c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
2514         instead of 0 to WARN_FOR_ASSIGNMENT.
2516 2014-07-01  Marek Polacek  <polacek@redhat.com>
2518         PR c/58286
2519         * c-typeck.c (convert_for_assignment): Pass
2520         OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
2522 2014-06-30  Marek Polacek  <polacek@redhat.com>
2524         * c-decl.c (grokdeclarator): Don't instrument VLAs if the function
2525         has no_sanitize_undefined attribute.
2527 2014-06-30  Igor Zamyatin  <igor.zamyatin@intel.com>
2529         PR middle-end/57541
2530         * c-array-notation.c (fix_builtin_array_notation_fn):
2531         Check for 0 arguments in builtin call. Check that bultin argument is
2532         correct.
2533         * c-parser.c (c_parser_array_notation): Check for incorrect initial
2534         index.
2536 2014-06-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2538         * c-parser.c (c_parser_declaration_or_fndef): Discard all type
2539         qualifiers in __auto_type for atomic types.
2540         (c_parser_typeof_specifier): Discard all type qualifiers in
2541         __typeof__ for atomic types.
2543 2014-06-25  Marek Polacek  <polacek@redhat.com>
2545         PR c/61162
2546         * c-parser.c (c_parser_statement_after_labels): Pass the location of
2547         the return expression to c_finish_return.
2549 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
2551         * c-typeck.c (c_finish_omp_clauses): Make sure
2552         OMP_CLAUSE_LINEAR_STEP has correct type.
2554 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
2556         * c-decl.c: Adjust.
2558 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
2560         * c-parser.c (c_parser_omp_for_loop): For
2561         #pragma omp parallel for simd move lastprivate clause from parallel
2562         to for rather than simd.
2564 2014-06-23  Marek Polacek  <polacek@redhat.com>
2566         * c-typeck.c (parser_build_binary_op): Don't call
2567         warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
2569 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
2571         * c-parser.c (c_parser_omp_threadprivate): Likewise.
2572         * c-decl.c (merge_decls): Likewise.
2574 2014-06-09  Marek Polacek  <polacek@redhat.com>
2576         PR c/36446
2577         * c-typeck.c (error_init): Call inform instead of error_at.
2578         (pedwarn_init): Call inform instead of pedwarn.
2579         (warning_init): Call inform instead of warning_at.
2581 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
2583         * c-decl.c (merge_decls): Use set_decl_section_name.
2584         (duplicate_decls): Remove node if it exists.
2586 2014-06-05  S. Gilles  <sgilles@terpmail.umd.edu>
2588         PR c/53119
2589         * c-typeck.c (push_init_level, process_init_element,
2590         pop_init_level): Correct check for zero initialization, move
2591         missing brace warning to respect zero initialization.
2593 2014-06-05  Marek Polacek  <polacek@redhat.com>
2595         PR c/56724
2596         * c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.
2598 2014-06-05  Marek Polacek  <polacek@redhat.com>
2600         PR c/49706
2601         * c-typeck.c (parser_build_binary_op): Warn when logical not is used
2602         on the left hand side operand of a comparison. 
2604 2014-06-05  Marek Polacek  <polacek@redhat.com>
2606         PR c/48062
2607         * c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
2608         Print note only if the warning was printed.
2610 2014-06-04  Igor Zamyatin  <igor.zamyatin@intel.com>
2612         PR c/58942
2613         * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
2614         with a pointer.
2616 2014-06-03  Marek Polacek  <polacek@redhat.com>
2618         PR c/60439
2619         * c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
2620         c_start_case.
2621         * c-tree.h (c_start_case): Update.
2622         * c-typeck.c (c_start_case): Add new boolean parameter.  Warn if
2623         switch condition has boolean value.
2625 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
2627         * c-decl.c: Include builtins.h.
2628         * c-parser.c: Likewise.
2630 2014-05-27  Marek Polacek  <polacek@redhat.com>
2632         PR c/56724
2633         * c-typeck.c (convert_arguments): Get location of a parameter.  Change
2634         error and warning calls to error_at and warning_at.  Pass location of
2635         a parameter to it.  Call warning_at with OPT_Wtraditional_conversion.
2636         (convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
2637         WARN_FOR_QUALIFIERS.  Pass expr_loc to those.
2639 2014-05-26  Igor Zamyatin  <igor.zamyatin@intel.com>
2641         PR c/61191
2642         * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
2643         function parameters.
2645 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
2647         * c-decl.c (merge_decls): Preserve symtab node pointers.
2648         (duplicate_decls): Free new decl.
2650 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
2652         * c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
2653         initialization.
2655         * c-parser.c (c_parser_omp_target): Return bool values.
2657 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
2659         * c-parser.c (c_parser_omp_clause_thread_limit): Rename
2660         num_teams_loc variable to num_thread_limit_loc.
2662 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
2664         * c-array-notation.c (expand_array_notations): Use void_node
2665         instead of void_zero_node.
2667 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
2669         * c-decl.c (finish_struct): Adjust.
2670         (finish_enum): Likewise.
2671         (bind): Adjust.
2672         (record_inline_static): Likewise.
2673         (push_scope): Likewise.
2674         (make_label): Likewise.
2675         (lookup_label_for_goto): Likewise.
2676         (finish_struct): Likewise.
2677         (finish_enum): Likewise.
2678         (store_parm_decls): Likewise.
2679         (c_push_function_context): Likewise.
2680         * c-lang.h: Remove usage of variable_size gty attribute.
2681         * c-parser.c (c_parse_init): Adjust.
2682         (c_parse_file): Likewise.
2684 2014-05-13  Marek Polacek  <polacek@redhat.com>
2686         PR c/61162
2687         * c-typeck.c (convert_for_assignment): Pass location to
2688         WARN_FOR_ASSIGNMENT instead of input_location.
2690 2014-05-10  Marek Polacek  <polacek@redhat.com>
2692         * c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
2693         maybe_warn_string_init.
2694         (c_parser_postfix_expression_after_paren_type): Pass type_loc to
2695         maybe_warn_string_init.
2696         * c-tree.h (maybe_warn_string_init): Update declaration.
2697         * c-typeck.c (maybe_warn_string_init): Add location parameter.
2698         Call pedwarn_init with loc instead of with input_location.
2699         (digest_init): Pass init_loc to maybe_warn_string_init.
2700         (pop_init_level): Call pedwarn_init with loc instead of with
2701         input_location.
2702         (set_init_index): Likewise.
2703         (process_init_element): Likewise.
2705 2014-05-09  Marek Polacek  <polacek@redhat.com>
2707         PR c/61096
2708         * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
2709         (c_parser_initelt): Pass location to set_init_label.  Pass array index
2710         location to set_init_index.
2711         * c-tree.h (push_init_level): Update declaration.
2712         (pop_init_level): Likewise.
2713         (set_init_index): Likewise.
2714         (set_init_label): Likewise.
2715         * c-typeck.c (error_init): Add location parameter.  Call error_at
2716         instead of error.
2717         (digest_init): Pass init_loc to error_init.
2718         (really_start_incremental_init):
2719         (push_init_level): Add location parameter.  Pass loc to pop_init_level
2720         and error_init.
2721         (pop_init_level): Likewise.
2722         (set_designator): Add location parameter.  Pass loc to pop_init_level,
2723         push_init_level, and error_init.
2724         (set_init_index): Add location parameter.  Pass loc to error_init and
2725         set_designator.
2726         (set_init_label): Likewise.
2727         (output_init_element): Pass loc to error_init.
2728         (process_init_element): Pass loc to error_init, pop_init_level,
2729         pedwarn_init, and push_init_level.
2731 2014-05-09  Marek Polacek  <polacek@redhat.com>
2733         PR c/50459
2734         * c-parser.c (c_parser_attributes): Parse the arguments as an
2735         expression-list if the attribute takes identifier.
2737 2014-05-08  Marek Polacek  <polacek@redhat.com>
2739         PR c/61053
2740         * c-decl.c (grokdeclarator): Use min_align_of_type instead of
2741         TYPE_ALIGN_UNIT.
2743 2014-05-08  Marek Polacek  <polacek@redhat.com>
2745         PR c/61077
2746         * c-decl.c (start_function): Warn for _Atomic-qualified return type
2747         of main.
2749 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
2750             Mike Stump  <mikestump@comcast.net>
2751             Richard Sandiford  <rdsandiford@googlemail.com>
2753         * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
2754         (finish_enum): Use wide-int interfaces.
2755         * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
2756         * c-typeck.c (build_c_cast): Likewise.
2757         (set_nonincremental_init_from_string): Likewise.
2758         (c_tree_equal): Likewise.
2760 2014-05-02  Marek Polacek  <polacek@redhat.com>
2762         PR c/25801
2763         * c-typeck.c (c_size_in_bytes): Update comment.  Don't call error.
2764         Return size_one_node when the type is not complete.
2765         (pointer_diff): Remove comment.
2766         (build_unary_op): Improve error messages.
2768 2014-05-02  Marek Polacek  <polacek@redhat.com>
2770         * c-typeck.c (c_finish_return): Separate warning_at calls.
2772 2014-05-02  Marek Polacek  <polacek@redhat.com>
2774         * c-tree.h (error_init): Remove declaration.
2775         (pedwarn_init): Likewise.
2776         * c-typeck.c (error_init): Make static and move above.
2777         (pedwarn_init): Likewise.
2778         (warning_init): Move above.
2779         (maybe_warn_string_init): Likewise.
2781 2014-05-01  Jeff Law  <law@redhat.com>
2783         Revert:
2785         2014-04-24  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2786         * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
2787         avoid goto.
2789 2014-05-02  Marek Polacek  <polacek@redhat.com>
2791         PR c/60784
2792         * c-typeck.c (push_init_level): Set constructor_designated to
2793         p->designated for structures.
2795 2014-05-01  Marek Polacek  <polacek@redhat.com>
2797         PR c/60915
2798         * c-parser.c (c_parser_declaration_or_fndef): Give better error if
2799         function-definition has an attribute after the declarator.
2801 2014-05-01  Marek Polacek  <polacek@redhat.com>
2803         PR c/60257
2804         * c-typeck.c (warning_init): Add location_t parameter.  Call
2805         warning_at instead of warning.
2806         (push_init_level): Pass input_location to warning_init.
2807         (add_pending_init): Add location_t parameter.  Pass loc to
2808         warning_init.
2809         (set_nonincremental_init): Pass input_location to add_pending_init.
2810         (set_nonincremental_init_from_string): Likewise.
2811         (output_init_element): Pass loc to warning_init and to
2812         add_pending_init.
2814 2014-05-01  Marek Polacek  <polacek@redhat.com>
2816         PR c/43395
2817         * c-typeck.c (c_finish_return): Distinguish between label and variable
2818         when warning about returning local address.
2820 2014-05-01  Marek Polacek  <polacek@redhat.com>
2822         PR c/29467
2823         * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
2824         in C89 mode.
2826 2014-05-01  Marek Polacek  <polacek@redhat.com>
2828         PR c/43245
2829         * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
2830         instead of 0 to WARN_FOR_QUALIFIERS.
2832 2014-05-01  Marek Polacek  <polacek@redhat.com>
2834         PR c/56989
2835         * c-typeck.c (default_conversion): Use better location for
2836         error call.
2838 2014-04-30  Marek Polacek  <polacek@redhat.com>
2840         * c-typeck.c (build_binary_op): Call ubsan_instrument_division
2841         also when SANITIZE_FLOAT_DIVIDE is on.
2843 2014-04-30  Marek Polacek  <polacek@redhat.com>
2845         PR c/60139
2846         * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
2847         and pedwarn_init.  Use loc insted of input_location.
2849 2014-04-30  Marek Polacek  <polacek@redhat.com>
2851         PR c/60351
2852         * c-typeck.c (build_binary_op): Use location when warning about
2853         shift count.
2855 2014-04-25  Marek Polacek  <polacek@redhat.com>
2857         PR c/18079
2858         * c-decl.c (diagnose_mismatched_decls): Warn for mismatched
2859         always_inline/noinline and hot/cold attributes.
2861 2014-04-25  Marek Polacek  <polacek@redhat.com>
2863         PR c/60114
2864         * c-parser.c (c_parser_initelt): Pass input_location to
2865         process_init_element.
2866         (c_parser_initval): Pass loc to process_init_element.
2867         * c-tree.h (process_init_element): Adjust declaration.
2868         * c-typeck.c (push_init_level): Pass input_location to
2869         process_init_element.
2870         (pop_init_level): Likewise.
2871         (set_designator): Likewise.
2872         (output_init_element): Add location_t parameter.  Pass loc to
2873         digest_init.
2874         (output_pending_init_elements): Pass input_location to
2875         output_init_element.
2876         (process_init_element): Add location_t parameter.  Pass loc to
2877         output_init_element.
2879 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
2881         * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
2882         atomic-clause, allow comma in between atomic-clause and
2883         seq_cst.
2885 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
2887         PR c/59073
2888         * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
2889         fails, don't set OM_PARALLEL_COMBINED and return NULL.
2891 2014-04-12  Igor Zamyatin  <igor.zamyatin@intel.com>
2893         PR middle-end/60469
2894         * c-array-notation.c (fix_builtin_array_notation_fn): Use
2895         create_tmp_var instead build_decl for creating temps.
2896         (build_array_notation_expr): Likewise.
2897         (fix_conditional_array_notations_1): Likewise.
2898         (fix_array_notation_expr): Likewise.
2899         (fix_array_notation_call_expr): Likewise.
2901 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
2903         PR c++/60689
2904         * c-tree.h (c_build_function_call_vec): New prototype.
2905         * c-typeck.c (build_function_call_vec): Don't call
2906         resolve_overloaded_builtin here.
2907         (c_build_function_call_vec): New wrapper function around
2908         build_function_call_vec.  Call resolve_overloaded_builtin here.
2909         (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
2910         Call c_build_function_call_vec instead of build_function_call_vec.
2911         * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
2912         * c-decl.c (finish_decl): Likewise.
2914 2014-03-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2916         PR c/55383
2917         * c-typeck.c: Use correct format string in cast-qual warning
2919 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
2921         * c-decl.c (c_decl_attributes): Use
2922         lang_hooks.types.omp_mappable_type.
2923         * c-typeck.c (c_finish_omp_clauses): Likewise.
2925 2014-03-06  Marek Polacek  <polacek@redhat.com>
2927         PR c/60197
2928         * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
2929         of checking tree code.
2931 2014-02-19  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2933         * c-parser.c (c_parser_declspecs): Replace call to error by error_at.
2934         (c_parser_parameter_declaration): Likewise.
2936 2014-02-19  Marek Polacek  <polacek@redhat.com>
2938         PR c/60195
2939         * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
2940         Call mark_exp_read on exp.value.
2941         (build_atomic_assign): Set TREE_NO_WARNING on val and old.  Set
2942         TREE_ADDRESSABLE on old instead of val.
2943         (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
2945 2014-02-07  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2947         * c-parser.c (c_parser_get_builtin_args): Replace calls to
2948         C_EXPR_APPEND by vec_safe_push.
2949         * c-tree.h (C_EXPR_APPEND): Remove.
2951 2014-01-31  Marek Polacek  <polacek@redhat.com>
2953         PR c/59963
2954         * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
2955         build_function_call_vec.
2956         (build_function_call): Likewise.
2957         (build_atomic_assign): Likewise.
2958         (build_function_call_vec): Add arg_loc parameter.  Use it.
2959         (convert_arguments): Likewise.
2960         (convert_for_assignment): Rename rhs_loc to expr_loc.
2961         * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
2962         (c_parser_objc_keywordexpr): Likewise.
2963         (c_parser_postfix_expression_after_primary): Call
2964         build_function_call_vec with expr_loc rather than op_loc.
2965         Call c_parser_expr_list to fill arg_loc.  Pass arg_loc to
2966         build_function_call_vec.
2967         (c_parser_expr_list): Add locations parameter.  Fill it with locations
2968         of function arguments.
2969         * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
2971 2014-01-30  Marek Polacek  <polacek@redhat.com>
2973         PR c/59940
2974         * c-typeck.c (build_function_call_vec): Use loc parameter.
2975         (convert_arguments): Add location parameter.  Use it.
2976         (ep_convert_and_check): Likewise.
2977         (build_atomic_assign): Adjust convert_for_assignment call.
2978         (build_modify_expr): Likewise.
2979         (digest_init): Likewise.
2980         (c_finish_return): Likewise.
2981         (build_conditional_expr): Adjust ep_convert_and_check calls.
2982         (convert_for_assignment): Add rhs_loc parameter.  Use it.
2983         (build_binary_op): Adjust convert_and_check and ep_convert_and_check
2984         calls.
2986 2014-01-30  Richard Biener  <rguenther@suse.de>
2988         PR c/59905
2989         * c-typeck.c (build_function_call_vec): Do not replace calls
2990         to a function via an incompatible type with a runtime abort.
2992 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2994         * c-parser.c (c_parser_declaration_or_fndef): Replaced
2995         flag_enable_cilkplus with flag_cilkplus.
2996         (c_parser_direct_declarator_inner): Likewise.
2997         (c_parser_attribute_any_word): Likewise.
2998         (c_parser_attributes): Likewise.
2999         (c_parser_compound_statement): Likewise.
3000         (c_parser_statement_after_labels): Likewise.
3001         (c_parser_if_statement): Likewise.
3002         (c_parser_switch_statement): Likewise.
3003         (c_parser_do_statement): Likewise.
3004         (c_parser_for_statement): Likewise.
3005         (c_parser_unary_expression): Likewise.
3006         (c_parser_postfix_expression): Likewise.
3007         (c_parser_postfix_expression_after_primary): Likewise.
3008         (c_parser_postfix_expression_after_primary): Likewise.
3009         (c_parser_omp_clause_name): Likewise.
3010         (c_finish_omp_declare_simd): Likewise.
3011         (c_parser_cilk_verify_simd): Likewise.
3012         * c-typeck.c (build_array_ref): Likewise.
3013         (build_function_call_vec): Likewise.
3014         (convert_arguments): Likewise.
3015         (build_compound_expr): Likewise.
3016         (c_finish_return): Likewise.
3017         (c_finish_if_stmt): Likewise.
3018         (c_finish_loop): Likewise.
3019         (build_binary_op): Likewise.
3021 2014-01-23  Marek Polacek  <polacek@redhat.com>
3023         PR c/59846
3024         * c-typeck.c (parser_build_binary_op): Use location instead of
3025         input_location.
3026         (build_binary_op): Pass location to shorten_compare.
3028 2014-01-23  Marek Polacek  <polacek@redhat.com>
3030         PR c/58346
3031         * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
3032         an empty aggregate.
3034 2014-01-23  Marek Polacek  <polacek@redhat.com>
3036         PR c/59871
3037         * c-typeck.c (build_compound_expr): Warn even for right-hand operand
3038         of a comma expression.
3039         (emit_side_effect_warnings): Likewise.
3041 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3043         PR c/59825
3044         * c-array-notation.c (expand_array_notation_exprs): Rewrote this
3045         function to use walk_tree and moved a lot of its functionality to
3046         expand_array_notations.
3047         (expand_array_notations): New function.
3049 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3051         * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
3052         attribute an attribute without value.
3054 2014-01-23  Jakub Jelinek  <jakub@redhat.com>
3056         PR middle-end/58809
3057         * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
3058         BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
3060 2014-01-22  Marek Polacek  <polacek@redhat.com>
3062         PR c/59891
3063         * c-typeck.c (build_conditional_expr): Call c_fully_fold instead
3064         of remove_c_maybe_const_expr on op1 and op2.
3066 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
3068         PR c/58943
3069         * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
3070         effects, preevaluate rhs using SAVE_EXPR first.
3072 2014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3074         PR c++/59631
3075         * c-parser.c (c_parser_postfix_expression): Replaced consecutive if
3076         statements with if-elseif statements.
3078 2014-01-06  Marek Polacek  <polacek@redhat.com>
3080         PR c/57773
3081         * c-decl.c (check_bitfield_type_and_width): Warn for implementation
3082         defined bit-field types only in ISO C.
3084 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
3086         Update copyright years
3088 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
3090         * c-array-notation.c: Use the standard form for the copyright notice.
3092 2013-12-18  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3094         * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
3095         (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
3096         field in parser is not empty.  If not-empty, call the function
3097         c_parser_finish_omp_declare_simd.
3098         (c_parser_cilk_clause_vectorlength): Modified function to be shared
3099         between SIMD-enabled functions and #pragma simd.  Added new parameter.
3100         (c_parser_cilk_all_clauses): Modified the usage of the function
3101         c_parser_cilk_clause_vectorlength as mentioned above.
3102         (c_parser_cilk_simd_fn_vector_attrs): New function.
3103         (c_finish_cilk_simd_fn_tokens): Likewise.
3104         (is_cilkplus_vector_p): Likewise.
3105         (c_parser_omp_clause_name): Added checking for "vectorlength,"
3106         "nomask," and "mask" strings in clause name.
3107         (c_parser_omp_all_clauses): Added 3 new case statements:
3108         PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
3109         PRAGMA_CILK_CLAUSE_NOMASK.
3110         (c_parser_attributes): Added a cilk_simd_fn_tokens parameter.  Added a
3111         check for vector attribute and if so call the function
3112         c_parser_cilk_simd_fn_vector_attrs.  Also, when Cilk plus is enabled,
3113         called the function c_finish_cilk_simd_fn_tokens.
3114         (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
3115         parser field is non-empty.  If so, parse them as you would parse
3116         the omp declare simd pragma.
3117         (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
3118         Added a check when step is a parameter and flag it as error.
3119         (CILK_SIMD_FN_CLAUSE_MASK): New #define.
3120         (c_parser_cilk_clause_name): Changed pragma_cilk_clause to
3121         pragma_omp_clause.
3123 2013-12-17  Thomas Schwinge  <thomas@codesourcery.com>
3125         * c-parser.c (c_parser_omp_parallel): Fix description.
3127 2013-12-11  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3129         * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
3130         (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
3131         (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
3132         * c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
3134 2013-12-04  Joseph Myers  <joseph@codesourcery.com>
3136         PR c/52023
3137         * c-parser.c (c_parser_alignas_specifier): Use
3138         c_sizeof_or_alignof_type instead of c_alignof.
3139         (c_parser_alignof_expression): Likewise, with min_alignof
3140         parameter depending on alignof spelling used.
3142 2013-12-04  Marek Polacek  <polacek@redhat.com>
3144         PR c/54113
3145         * c-decl.c (start_function): Don't warn for missing prototype for
3146         inline functions.
3148 2013-12-03  Marek Polacek  <polacek@redhat.com>
3150         PR c/59351
3151         * c-decl.c (build_compound_literal): Allow compound literals with
3152         empty initial value.
3154 2013-12-02  Joseph Myers  <joseph@codesourcery.com>
3156         PR c/58235
3157         * c-typeck.c (build_modify_expr): Diagnose assignment to
3158         expression with array type.
3160 2013-11-29  Joseph Myers  <joseph@codesourcery.com>
3162         PR c/42262
3163         * c-typeck.c (process_init_element): Do not treat a string as
3164         initializing a whole array when used with a designator for an
3165         individual element.
3167 2013-11-29  Joseph Myers  <joseph@codesourcery.com>
3169         PR c/57574
3170         * c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
3171         an inline function following a static declaration.
3173 2013-11-28  Jakub Jelinek  <jakub@redhat.com>
3175         PR c/59310
3176         * c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
3177         to p_name before calling c_parser_omp_teams instead of after.
3178         (c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
3179         argument.  Remove unused p_name variable.
3181 2013-11-27  Aldy Hernandez  <aldyh@redhat.com>
3182             Jakub Jelinek  <jakub@redhat.com>
3184         * c-decl.c (c_builtin_function_ext_scope): Avoid binding if
3185         external_scope is NULL.
3187 2013-11-27  Tom de Vries  <tom@codesourcery.com>
3188             Marc Glisse  <marc.glisse@inria.fr>
3190         PR c++/59032
3191         * c-typeck.c (build_unary_op): Allow vector increment and decrement.
3193 2013-11-22  Andrew MacLeod  <amacleod@redhat.com>
3195         * c-typeck.c: Add required include files from gimple.h.
3197 2013-11-22  David Malcolm  <dmalcolm@redhat.com>
3199         * c-decl.c (define_label, shadow_tag_warned)
3200         (check_bitfield_type_and_width, grokdeclarator, grokparms,
3201         store_parm_decls_newstyle, store_parm_decls_oldstyle)
3202         (declspecs_add_type): Remove use of in_system_header macro.
3203         * c-parser.c (c_parser_unary_expression): Likewise.
3204         * c-typeck.c (store_init_value, process_init_element)
3205         (c_start_case): Likewise.
3207         * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
3208         macro.
3210         * c-parser.c (c_parser_set_source_position_from_token): Remove
3211         reference to in_system_header from comment.
3213 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
3215         * c-decl.c (grokdeclarator): Update comment to refer to
3216         tree_to_[su]hwi rather than tree_low_cst.
3218 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
3220         * c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
3221         tree_to_uhwi throughout.
3223 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
3225         * c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
3226         throughout.
3228 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
3230         * c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
3231         throughout.
3233 2013-11-15  Aldy Hernandez  <aldyh@redhat.com>
3235         * c-parser.c (c_parser_cilk_simd): New.
3236         (c_parser_cilk_verify_simd): New.
3237         (c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
3238         (c_parser_omp_for_loop): Add case for NE_EXPR.
3239         Set c_break_label for CILK_SIMD.
3240         (c_parser_cilk_clause_vectorlength): New.
3241         (c_parser_cilk_clause_linear): New.
3242         (c_parser_cilk_clause_name): New.
3243         (c_parser_cilk_all_clauses): New.
3244         * c-typeck.c (build_unary_op): Pass location argument to
3245         readonly_error.
3246         (build_modify_expr): Same.
3247         (build_asm_expr): Same.
3248         (c_finish_bc_stmt): Error on break/continue in loops.
3250 2013-11-14  Andrew MacLeod  <amacleod@redhat.com>
3252         * c-typeck.c: Include only gimplify.h and gimple.h as needed.
3254 2013-11-14  Diego Novillo  <dnovillo@google.com>
3256         * c-decl.c: Include print-tree.h.
3257         Include stor-layout.h.
3258         Include varasm.h.
3259         Include attribs.h.
3260         Include stringpool.h.
3261         * c-lang.c: Include fold-const.h.
3262         * c-parser.c: Include stringpool.h.
3263         Include attribs.h.
3264         Include stor-layout.h.
3265         Include varasm.h.
3266         Include trans-mem.h.
3267         * c-typeck.c: Include stor-layout.h.
3268         Include trans-mem.h.
3269         Include varasm.h.
3270         Include stmt.h.
3272 2013-11-13  Joseph Myers  <joseph@codesourcery.com>
3274         * c-tree.h (c_typespec_keyword): Add cts_auto_type.
3275         * c-decl.c (declspecs_add_type, finish_declspecs): Handle
3276         __auto_type.
3277         * c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
3278         (c_parser_attribute_any_word, c_parser_objc_selector): Handle
3279         RID_AUTO_TYPE.
3280         (c_parser_declspecs): Take argument AUTO_TYPE_OK.
3281         (c_parser_declaration_or_fndef, c_parser_struct_declaration)
3282         (c_parser_declarator, c_parser_direct_declarator_inner)
3283         (c_parser_parameter_declaration, c_parser_type_name): All callers
3284         changed.
3285         (c_parser_declaration_or_fndef): Handle declarations with type
3286         determined from the initializer.
3288 2013-11-12  Andrew MacLeod  <amacleod@redhat.com>
3290         * c-typeck.c: Include gimplify.h.
3292 2013-11-12  Joseph Myers  <joseph@codesourcery.com>
3294         * c-tree.h (struct c_declspecs): Add thread_gnu_p field.
3295         * c-parser.c (c_parser_declspecs): Mention _Thread_local in
3296         comment.
3297         * c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
3298         or _Thread_local as appropriate in diagnostics.
3299         (build_null_declspecs): Initialize ret->thread_gnu_p.
3300         (declspecs_add_scspec): Handle either __thread or _Thread_local
3301         for RID_THREAD.  Diagnose _Thread_local for pre-C11 standards if
3302         pedantic.  Do not disallow _Thread_local extern and _Thread_local
3303         static.
3305 2013-11-07  Joseph Myers  <joseph@codesourcery.com>
3306             Andrew MacLeod  <amacleod@redhat.com>
3308         * c-aux-info.c (gen_type): Handle atomic qualifier.
3309         * c-decl.c (validate_proto_after_old_defn): Do not remove atomic
3310         qualifiers when compating types.
3311         (shadow_tag_warned): Handle atomic_p in declspecs.
3312         (quals_from_declspecs): Likewise.
3313         (start_decl): Use c_type_promotes_to when promoting argument
3314         types.
3315         (grokdeclarator): Handle _Atomic.
3316         (get_parm_info): Diagnose any qualifier on "void" as only
3317         parameter.
3318         (store_parm_decls_oldstyle): Do not remove atomic qualifiers when
3319         comparing types.  Use c_type_promotes_to when promoting argument
3320         types.
3321         (finish_function): Use c_type_promotes_to when promoting argument
3322         types.
3323         (build_null_declspecs): Handle atomic_p in declspecs.
3324         (declspecs_add_qual): Handle RID_ATOMIC.
3325         * c-parser.c (c_token_starts_typename, c_token_is_qualifier)
3326         (c_token_starts_declspecs): Handle RID_ATOMIC.
3327         (c_parser_declspecs): Handle atomic type specifiers and
3328         qualifiers.
3329         (c_parser_typeof_specifier): Remove const and _Atomic qualifiers
3330         from types of expressions with atomic type.
3331         (c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
3332         (c_parser_attribute_any_word): Handle RID_ATOMIC.
3333         (c_parser_initializer, c_parser_initelt, c_parser_initval)
3334         (c_parser_statement_after_labels, c_parser_switch_statement)
3335         (c_parser_for_statement, c_parser_expr_no_commas)
3336         (c_parser_conditional_expression, c_parser_binary_expression)
3337         (c_parser_cast_expression, c_parser_unary_expression)
3338         (c_parser_postfix_expression)
3339         (c_parser_postfix_expression_after_primary, c_parser_expression):
3340         Use convert_lvalue_to_rvalue.
3341         (c_parser_expression_conv, c_parser_expr_list): Document
3342         conversion of lvalues to rvalues.  Use convert_lvalue_to_rvalue.
3343         (c_parser_objc_synchronized_statement): Use
3344         convert_lvalue_to_rvalue.
3345         (c_parser_objc_selector): Handle RID_ATOMIC.
3346         (c_parser_objc_receiver, c_parser_array_notation): Use
3347         convert_lvalue_to_rvalue.
3348         * c-tree.h (ctsk_typeof): Adjust comment to mention use for
3349         _Atomic (type-name).
3350         (struct c_declspecs): Add atomic_p field.
3351         (convert_lvalue_to_rvalue): Declare.
3352         * c-typeck.c (c_type_promotes_to): Promote atomic types to
3353         corresponding atomic types.
3354         (qualify_type): Don't add _Atomic qualifiers from second argument.
3355         (comp_target_types): Do not allow _Atomic mismatches.
3356         (type_lists_compatible_p): Do not remove atomic qualifiers when
3357         comparing types.
3358         (really_atomic_lvalue, convert_lvalue_to_rvalue)
3359         (build_atomic_assign): New functions.
3360         (build_unary_op): Use build_atomic_assign for atomic increment and
3361         decrement.
3362         (build_conditional_expr): Do not treat _Atomic void as a qualified
3363         version of void.
3364         (build_modify_expr): Use build_atomic_assign for atomic LHS.
3365         (find_anonymous_field_with_type, convert_to_anonymous_field)
3366         (convert_for_assignment): Do not remove atomic qualifiers when
3367         comparing types.
3368         (digest_init): Do not accept initialization of arrays of atomic
3369         elements by string constants.
3370         (build_asm_expr): Use convert_lvalue_to_rvalue.
3371         (build_binary_op): Do not treat _Atomic void as a qualified
3372         version of void.
3374 2013-11-06  DJ Delorie  <dj@redhat.com>
3376         * c-decl.c (locate_old_decl): If a previous conflicting decl is
3377         both explicit and builtin, print the location of the explicit one.
3379 2013-11-05  Tobias Burnus  <burnus@net-b.de>
3381         * c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
3382         c_parser_omp_distribute, c_parser_omp_teams,
3383         c_parser_omp_target, c_parser_omp_declare): Handle
3384         -fopenmp-simd.
3386 2013-11-03  Marek Polacek  <polacek@redhat.com>
3388         * c-decl.c (grokdeclarator): Add VLA instrumentation.
3390 2013-11-01  Jakub Jelinek  <jakub@redhat.com>
3392         * c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
3393         check_dup_generic at the end, unless remove is true.
3394         (c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
3395         remove = true;.
3396         (c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
3398 2013-10-31  Jakub Jelinek  <jakub@redhat.com>
3400         * c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
3401         with decl that is not pointer nor array.
3403 2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3405         * c-decl.c (finish_function): Added a call for insert_cilk_frame when
3406         a spawning function is found.
3407         * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
3408         (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
3409         (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
3410         * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
3411         case.
3412         (c_parser_postfix_expression): Added RID_CILK_SPAWN case.
3413         * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
3414         expr.
3415         (c_finish_return): Added a check to reject _Cilk_spawn in return
3416         expression.
3417         (build_cilk_spawn): New function.
3418         (build_cilk_sync): Likewise.
3419         * Makefile.in (c-decl.o): Added cilk.h in dependency list.
3420         
3421 2013-10-27  Tobias Burnus  <burnus@net-b.de>
3423         PR other/33426
3424         * c-parser.c (c_parser_while_statement, c_parser_while_statement,
3425         c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
3426         (c_parser_statement_after_labels): Update calls.
3428 2013-10-24  Tobias Burnus  <burnus@net-b.de>
3430         PR other/33426
3431         * c-parser.c (c_parser_pragma, c_parser_for_statement):
3432         Handle PRAGMA_IVDEP.
3433         (c_parser_statement_after_labels): Update call.
3435 2013-10-24  Marek Polacek  <polacek@redhat.com>
3437         * c-parser.c (c_parser_struct_declaration): Add a comment.
3438         (c_parser_declarator): Don't allow _Alignas here.
3440 2013-10-17  Andrew MacLeod  <amacleod@redhat.com>
3442         * c-parser.c: Include omp-low.h.
3443         * c-typeck.c: Likewise.
3445 2013-10-17  Marek Polacek  <polacek@redhat.com>
3447         PR c/58267
3448         * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
3449         Document syntax of the array-declarator.
3450         (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
3451         are not permitted.
3452         (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
3453         (c_parser_struct_declaration): Likewise.
3454         (c_parser_declarator): Likewise.
3455         (c_parser_direct_declarator_inner): Likewise.
3456         (c_parser_parameter_declaration): Likewise.
3457         (c_parser_type_name): Likewise.
3459 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
3461         * c-lang.h (current_omp_declare_target_attribute): New extern
3462         decl.
3463         * c-parser.c: Include c-lang.h.
3464         (struct c_parser): Change tokens to c_token *.
3465         Add tokens_buf field.  Change tokens_avail type to unsigned int.
3466         (c_parser_consume_token): If parser->tokens isn't
3467         &parser->tokens_buf[0], increment parser->tokens.
3468         (c_parser_consume_pragma): Likewise.
3469         (enum pragma_context): Add pragma_struct and pragma_param.
3470         (c_parser_external_declaration): Adjust
3471         c_parser_declaration_or_fndef caller.
3472         (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
3473         argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
3474         Adjust recursive call.
3475         (c_parser_struct_or_union_specifier): Use pragma_struct instead
3476         of pragma_external.
3477         (c_parser_parameter_declaration): Use pragma_param instead of
3478         pragma_external.
3479         (c_parser_compound_statement_nostart, c_parser_label,
3480         c_parser_for_statement): Adjust
3481         c_parser_declaration_or_fndef callers.
3482         (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
3483         it through to c_parser_conditional_expression.
3484         (c_parser_conditional_expression): Add omp_atomic_lhs argument,
3485         pass it through to c_parser_binary_expression.  Adjust recursive
3486         call.
3487         (c_parser_binary_expression): Remove prec argument, add
3488         omp_atomic_lhs argument instead.  Always start from PREC_NONE, if
3489         omp_atomic_lhs is non-NULL and one of the arguments of toplevel
3490         binop matches it, use build2 instead of parser_build_binary_op.
3491         (c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
3492         PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
3493         PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
3494         Handle pragma_struct and pragma_param the same as pragma_external.
3495         (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
3496         (c_parser_omp_variable_list): Parse array sections for
3497         OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
3498         (c_parser_omp_clause_collapse): Fully fold collapse expression.
3499         (c_parser_omp_clause_reduction): Handle user defined reductions.
3500         (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
3501         c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
3502         c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
3503         c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
3504         c_parser_omp_clause_depend, c_parser_omp_clause_map,
3505         c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
3506         c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
3507         c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
3508         (c_parser_omp_all_clauses): Add finish_p argument.  Don't call
3509         c_finish_omp_clauses if it is false.  Handle new OpenMP 4.0 clauses.
3510         (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
3511         present to c_finish_omp_atomic.  Handle OpenMP 4.0 atomic forms.
3512         (c_parser_omp_for_loop): Add CODE argument, pass it through
3513         to c_finish_omp_for.  Change last argument to cclauses,
3514         and adjust uses to grab parallel clauses from the array of all
3515         the split clauses.  Adjust c_parser_binary_expression,
3516         c_parser_declaration_or_fndef and c_finish_omp_for callers.
3517         (omp_split_clauses): New function.
3518         (c_parser_omp_simd): New function.
3519         (c_parser_omp_for): Add p_name, mask and cclauses arguments.
3520         Allow the function to be called also when parsing combined constructs,
3521         and call c_parser_omp_simd when parsing for simd.
3522         (c_parser_omp_sections_scope): If section-sequence doesn't start with
3523         #pragma omp section, require exactly one structured-block instead of
3524         sequence of statements.
3525         (c_parser_omp_sections): Add p_name, mask and cclauses arguments.
3526         Allow the function to be called also when parsing combined constructs.
3527         (c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
3528         Allow the function to be called also when parsing combined
3529         constructs.
3530         (c_parser_omp_taskgroup, c_parser_omp_cancel,
3531         c_parser_omp_cancellation_point, c_parser_omp_distribute,
3532         c_parser_omp_teams, c_parser_omp_target_data,
3533         c_parser_omp_target_update, c_parser_omp_target,
3534         c_parser_omp_declare_simd, c_finish_omp_declare_simd,
3535         c_parser_omp_declare_target, c_parser_omp_end_declare_target,
3536         c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
3537         (c_parser_omp_construct): Add p_name and mask vars.  Handle
3538         PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
3539         PRAGMA_OMP_TEAMS.  Adjust c_parser_omp_for, c_parser_omp_parallel
3540         and c_parser_omp_sections callers.
3541         (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
3542         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
3543         OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
3544         (OMP_PARALLEL_CLAUSE_MASK): Likewise.  Add OMP_CLAUSE_PROC_BIND.
3545         (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.  Add
3546         OMP_CLAUSE_DEPEND.
3547         (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
3548         OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
3549         OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
3550         OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
3551         OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
3552         * c-typeck.c: Include tree-inline.h.
3553         (c_finish_omp_cancel, c_finish_omp_cancellation_point,
3554         handle_omp_array_sections_1, handle_omp_array_sections,
3555         c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
3556         (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
3557         user defined reductions.
3558         (c_tree_equal): New function.
3559         * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
3560         c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
3561         c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
3562         c_check_omp_declare_reduction_r): New prototypes.
3563         * c-decl.c (current_omp_declare_target_attribute): New variable.
3564         (c_decl_attributes): New function.
3565         (start_decl, start_function): Use it instead of decl_attributes.
3566         (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
3567         c_omp_reduction_decl, c_omp_reduction_lookup,
3568         c_check_omp_declare_reduction_r): New functions.
3570 2013-09-25  Tom Tromey  <tromey@redhat.com>
3572         * Make-lang.in (c/gccspec.o): Remove.
3573         (CFLAGS-c/gccspec.o): New variable.
3574         (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
3575         (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
3576         (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
3578 2013-09-25  Tom Tromey  <tromey@redhat.com>
3580         * Make-lang.in (c/gccspec.o): Don't use subshell.
3582 2013-09-18  Marek Polacek  <polacek@redhat.com>
3584         PR sanitize/58443
3585         * c-typeck.c (build_binary_op): Properly honor -fsanitize options.
3586         Remove unnecessary check.
3588 2013-09-18  Marek Polacek  <polacek@redhat.com>
3590         PR sanitizer/58411
3591         * c-typeck.c (build_binary_op): Don't sanitize function if it has the
3592         no_sanitize_undefined attribute.
3594 2013-09-13  Kai Tietz  <ktietz@redhat.com>
3596         PR target/57848
3597         * c-decl.c (c_builtin_function_ext_scope): Remove
3598         wrong assumption that it is never called on prexisting
3599         symbol.
3601 2013-09-08  Joern Rennecke  <joern.rennecke@embecosm.com>
3603         * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
3605 2013-09-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3607         * c-objc-common.c (c_tree_printer): Tidy.
3609 2013-08-30  Marek Polacek  <polacek@redhat.com>
3611         * c-typeck.c (build_binary_op): Add division by zero and shift
3612         instrumentation.
3614 2013-08-26  Joern Rennecke  <joern.rennecke@embecosm.com>
3615             Joseph Myers  <joseph@codesourcery.com>
3617         PR c/35649
3618         * c-typeck.c (c_common_type): Prefer double_type_node over
3619         other REAL_TYPE types with the same precision.
3620         (convert_arguments): Likewise.
3622 2013-08-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3624         * c-objc-common.c (c_tree_printer): Document the nature of the cast.
3625         (c_initialize_diagnostics): Call a destructor for the early printer.
3627 2013-08-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3629         * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
3630         printer initialization.
3632 2013-08-19  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3634         PR c/57490
3635         * c-array-notation.c (fix_conditional_array_notations_1): Added a
3636         check for truth values.
3637         (expand_array_notation_exprs): Added truth values case.  Removed an
3638         unwanted else.  Added for-loop to walk through subtrees in default
3639         case.
3641 2013-08-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3643         * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
3645 2013-07-23  Joseph Myers  <joseph@codesourcery.com>
3647         * c-parser.c (struct c_generic_association): Fix typo.
3649 2013-07-23  Tom Tromey  <tromey@redhat.com>
3650             Joseph Myers  <joseph@codesourcery.com>
3652         * c-parser.c (struct c_generic_association): New.
3653         (c_generic_association_d): New typedef.
3654         (c_parser_generic_selection): New function.
3655         (c_parser_postfix_expression): Handle RID_GENERIC.
3657 2013-07-13  Jason Merrill  <jason@redhat.com>
3659         PR c++/57793
3660         * c-decl.c (finish_struct): Check for too-large class.
3662 2013-07-04  Joern Rennecke  <joern.rennecke@embecosm.com>
3664         PR c/57821
3665         * c-typeck.c (set_init_index): When folding, check for index overflow.
3667 2013-06-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3669         * c-parser.c (c_parser_array_notation): Removed rejection of array
3670         notations in an array of function pointers.
3672 2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3674         * c-array-notation.c (make_triplet_val_inv): New function.
3675         (create_cmp_incr): Likewise.
3676         (create_array_refs): Likewise.
3677         (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
3678         Also modularized common parts between functions and called the function.
3679         (build_array_notation_expr): Likewise.
3680         (fix_conditional_array_notations_1): Likewise.
3681         (fix_array_notation_expr): Likewise.
3682         (fix_array_notation_call_expr): Likewise.
3684 2013-06-18  Marek Polacek  <polacek@redhat.com>
3686         PR c/57630
3687         * c-decl.c (check_for_loop_decls): Improve diagnostics messages.
3689 2013-06-12  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3691         * c-array-notation.c (build_array_notation_expr): Reject array notation
3692         mismatch between LHS and RHS even inside a call_expr.  Also, removed
3693         a couple while statements that were dead code.
3695 2013-06-10  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3697         * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
3698         excessive precision expressions in function parameters.  Also removed
3699         couple unwanted while statements.
3701 2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3703         * c-array-notation.c (expand_array_notation_exprs): Added
3704         ARRAY_NOTATION_REF case.
3705         
3706 2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3708         * c-array-notation.c (length_mismatch_in_expr_p): Moved this
3709         function to c-family/array-notation-common.c.
3710         (is_cilkplus_reduce_builtin): Likewise.
3711         (find_rank): Likewise.
3712         (extract_array_notation_exprs): Likewise.
3713         (replace_array_notations): Likewise.
3714         (find_inv_trees): Likewise.
3715         (replace_inv_trees): Likewise.
3716         (contains_array_notation_expr): Likewise.
3717         (find_correct_array_notation_type): Likewise.
3718         (replace_invariant_exprs): Initialized additional_tcodes to NULL.
3719         (struct inv_list): Moved this to c-family/array-notation-common.c.
3720         * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
3721         
3722 2013-06-05  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3724         * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
3725         reduction functions outside the for-loop.  Added a check if the fundecl
3726         is non-NULL.  Finally, removed an unwanted if-statement, and made the
3727         body unconditional.
3729 2013-06-03  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3731         * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
3732         condition of the if-statement matches the rank of else-block and then-
3733         block when array notations are used.
3734         * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
3735         expression after the entire function body is parsed.
3736         (c_parser_expr_no_commas): Delayed creating array notation expressions
3737         to the end of function parsing.
3738         * c-array-notation.c (fix_conditional_array_notations_1): Expanded the
3739         whole if-statement instead of just the condition.
3740         (expand_array_notation_exprs): Added MODIFY_EXPR case.  
3742 2013-06-03  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3744         PR c/57474
3745         * c-array-notation.c (build_array_notation_expr): Initialized rhs_length
3746         array to NULL_TREE if they are unused.  Also added a check for the
3747         field to be NULL before its fields are used in future.
3748         
3749 2013-05-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3751         PR bootstrap/57450
3752         * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
3753         (build_array_notation_expr): Likewise.
3755 2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3757         * c-typeck.c (build_array_ref): Added a check to see if array's
3758         index is greater than one.  If true, then emit an error.
3759         (build_function_call_vec): Exclude error reporting and checking
3760         for builtin array-notation functions.
3761         (convert_arguments): Likewise.
3762         (c_finish_return): Added a check for array notations as a return
3763         expression.  If true, then emit an error.
3764         (c_finish_loop): Added a check for array notations in a loop
3765         condition.  If true then emit an error.
3766         (lvalue_p): Added a ARRAY_NOTATION_REF case.
3767         (build_binary_op): Added a check for array notation expr inside
3768         op1 and op0.  If present, we call another function to find correct
3769         type.
3770         * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
3771         * c-parser.c (c_parser_compound_statement): Check if array
3772         notation code is used in tree, if so, then transform them into
3773         appropriate C code.
3774         (c_parser_expr_no_commas): Check if array notation is used in LHS
3775         or RHS, if so, then build array notation expression instead of
3776         regular modify.
3777         (c_parser_postfix_expression_after_primary): Added a check for
3778         colon(s) after square braces, if so then handle it like an array
3779         notation.  Also, break up array notations in unary op if found.
3780         (c_parser_direct_declarator_inner): Added a check for array
3781         notation.
3782         (c_parser_compound_statement): Added a check for array notation in
3783         a stmt.  If one is present, then expand array notation expr.
3784         (c_parser_if_statement): Likewise.
3785         (c_parser_switch_statement): Added a check for array notations in
3786         a switch statement's condition.  If true, then output an error.
3787         (c_parser_while_statement): Similarly, but for a while.
3788         (c_parser_do_statement): Similarly, but for a do-while.
3789         (c_parser_for_statement): Similarly, but for a for-loop.
3790         (c_parser_unary_expression): Check if array notation is used in a
3791         pre-increment or pre-decrement expression.  If true, then expand
3792         them.
3793         (c_parser_array_notation): New function.
3794         * c-array-notation.c: New file.
3795         * c-tree.h (is_cilkplus_reduce_builtin): Protoize.
3796         
3797 2013-05-23  Mike Stump  <mikestump@comcast.net>
3799         * c-typeck.c (convert_for_assignment): Handle references to memory
3800         spaces better.
3802 2013-05-16  Jason Merrill  <jason@redhat.com>
3804         * Make-lang.in (cc1$(exeext)): Use link mutex.
3806 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
3808         * c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
3809         to simply use OPT_Wpointer_arith.
3810         (build_unary_op): Likewise.
3812 2013-04-03  Jakub Jelinek  <jakub@redhat.com>
3814         PR c/19449
3815         * c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
3816         argument.  If set, or it temporarily for parsing of the first
3817         argument into force_folding_builtin_constant_p.
3818         (c_parser_postfix_expression): Adjust callers.
3820 2013-03-21  Richard Biener  <rguenther@suse.de>
3822         * c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
3823         instead of DECL_DEBUG_EXPR_IS_FROM.  Guard properly.
3825 2013-02-12  Marek Polacek  <polacek@redhat.com>
3827         PR c/44938
3828         * c-parser.c (c_parser_postfix_expression_after_primary): Initialize
3829         origtypes to NULL.
3831 2013-01-24  Jakub Jelinek  <jakub@redhat.com>
3833         PR c/56078
3834         * c-typeck.c (set_nonincremental_init_from_string): If
3835         constructor_max_index is NULL, treat it as if tree_int_cst_lt
3836         returned false.
3837         (process_init_element): Likewise.
3839 2012-12-20  Jakub Jelinek  <jakub@redhat.com>
3841         PR c++/55619
3842         * c-parser.c (c_parser_asm_operands): Remove CONVERT_P
3843         argument, don't call default_function_array_conversion
3844         nor c_fully_fold here.
3845         (c_parser_asm_statement): Adjust callers.
3846         * c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
3847         and outputs here, and call default_function_array_conversion
3848         on inputs that don't need to be addressable.
3850 2012-12-18  Jakub Jelinek  <jakub@redhat.com>
3852         PR c/39464
3853         * c-typeck.c (convert_for_assignment): For -Wpointer-sign
3854         warning require that both c_common_unsigned_type as well as
3855         c_common_signed_type is the same for both mvl and mvr types.
3857 2012-11-16  Diego Novillo  <dnovillo@google.com>
3859         Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
3861         * c-common.c: Use new vec API in vec.h.
3862         * c-common.h: Likewise.
3863         * c-gimplify.c: Likewise.
3864         * c-pragma.c: Likewise.
3865         * c-pretty-print.c: Likewise.
3866         * c-pretty-print.h: Likewise.
3867         * c-semantics.c: Likewise.
3868         * c-decl.c: Likewise.
3869         * c-parser.c: Likewise.
3870         * c-tree.h: Likewise.
3871         * c-typeck.c: Likewise.
3873 2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
3875         PR c++/54930
3876         * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.
3878 2012-10-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3880         PR c/53066
3881         * c-decl.c (warn_if_shadowing): Do not warn if a variable
3882         shadows a function, unless the variable is a function or a
3883         pointer-to-function.
3885 2012-10-12  Jakub Jelinek  <jakub@redhat.com>
3887         PR c/54381
3888         * c-parser.c (struct c_tree_loc_pair): Removed.
3889         (c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
3890         add location_t * and tree * arguments, fill in array of 3
3891         sizeof_arg trees and corresponding locs.
3892         (c_parser_attributes, c_parser_objc_keywordexpr): Adjust
3893         c_parser_expr_list callers.
3894         (c_parser_postfix_expression_after_primary): Likewise.  Pass
3895         array of 3 sizeof_arg trees and locs (corresponding to first
3896         3 arguments) to sizeof_pointer_memaccess_warning.
3898 2012-10-09  Lawrence Crowl  <crowl@google.com>
3900         * Make-lang.in (c-decl.o): Add dependence on hash-table.h.
3901         * c-decl.c (detect_field_duplicates_hash): Change to new type-safe
3902         hash table.
3904 2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
3906         PR c++/54194
3907         * c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
3908         call.
3910 2012-10-09  Marc Glisse  <marc.glisse@inria.fr>
3912         PR c++/54427
3913         * c-typeck.c: Include c-common.h.
3914         (enum stv_conv): Moved to c-common.h.
3915         (scalar_to_vector): Moved to c-common.c.
3916         (build_binary_op): Adapt to scalar_to_vector's new prototype.
3917         * Make-lang.in: c-typeck.c depends on c-common.h.
3919 2012-10-04  Arnaud Charlet  <charlet@adacore.com>
3921         * c-decl.c (c_write_global_declarations): Fix handling of
3922         -fdump-ada-spec*.
3924 2012-09-30  Sharad Singhai  <singhai@google.com>
3926         * c-decl.c (c_write_global_declarations): Use a different method
3927         to determine if the dump has ben initialized.
3929 2012-09-14  Joseph Myers  <joseph@codesourcery.com>
3931         PR c/54552
3932         * c-typeck.c (c_cast_expr): When casting to a type requiring
3933         C_MAYBE_CONST_EXPR to be created, pass the inner expression to
3934         c_fully_fold first.
3936 2012-09-14  Joseph Myers  <joseph@codesourcery.com>
3938         PR c/54103
3939         * c-typeck.c (build_unary_op): Pass original argument of
3940         TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
3941         any C_MAYBE_CONST_EXPR, if it has integer operands.
3942         (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
3943         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
3944         to c_objc_common_truthvalue_conversion, then remove any
3945         C_MAYBE_CONST_EXPR, if they have integer operands.  Use
3946         c_objc_common_truthvalue_conversion not
3947         c_common_truthvalue_conversion.
3948         (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
3949         call note_integer_operands for arguments with integer operands
3950         that are not integer constants.
3952 2012-09-13  Jakub Jelinek  <jakub@redhat.com>
3954         PR c/54559
3955         * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
3956         COMPLEX_TYPE with in_late_binary_op set temporarily to true.
3958 2012-08-31  Jakub Jelinek  <jakub@redhat.com>
3960         PR c/54428
3961         * c-convert.c (convert): Don't call fold_convert_loc if
3962         TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
3963         is a COMPLEX_EXPR.  Remove TYPE_MAIN_VARIANT check from
3964         COMPLEX_TYPE -> COMPLEX_TYPE conversion.
3966 2012-08-24  Jakub Jelinek  <jakub@redhat.com>
3968         PR c/54355
3969         * c-decl.c (c_parser_label): Pass true as nested and fix up comments
3970         for nested and empty_ok arguments in the call to
3971         c_parser_declaration_or_fndef.
3973 2012-08-17  Jakub Jelinek  <jakub@redhat.com>
3975         * c-tree.h (c_last_sizeof_arg): Declare.
3976         * c-parser.c (struct c_tree_loc_pair): New type.
3977         (c_parser_expr_list): Add sizeof_arg argument.  Fill it in if
3978         non-NULL.
3979         (c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
3980         (c_parser_postfix_expression_after_primary): Likewise.  Call
3981         sizeof_pointer_memaccess_warning if needed.
3982         (sizeof_ptr_memacc_comptypes): New function.
3983         * c-typeck.c (c_last_sizeof_arg): New global variable.
3984         (c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
3986 2012-07-24  Uros Bizjak  <ubizjak@gmail.com>
3988         * c-lang.h (lang_decl): Add variable_size GTY option.
3990 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
3992         * c-decl.c: Include dumpfile.h instead of tree-dump.h.
3993         * Make-lang.in: Fix dependencies.
3995 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
3997         * Make-lang.in: New file, rules migrated from gcc/Makefile.in
3998         and add language Makefile hooks.
3999         * config-lang.in: New file.
4000         * c-config-lang.in: Moved from gcc/config-lang.in to here, and
4001         add the required "normal" config-lang.in rules.
4002         * c-lang.h: Moved from gcc/ to here.
4003         * c-tree.h: Likewise.
4004         * c-objc-common.c: Likewise.
4005         * c-objc-common.h: Likewise.
4006         * c-typeck.c: Likewise.
4007         * c-convert.c: Likewise.
4008         * c-lang.c: Likewise.
4009         * c-aux-info.c: Likewise.
4010         * c-errors.c: Likewise.
4011         * gccspec.c: Likewise.
4012         * c-decl.c: Likewise.  Include gt-c-c-decl.h, not gt-c-decl.h.
4013         * c-parser.c: Likewise.  Include gt-c-c-parser.h, not gt-c-parser.h.
4015 Copyright (C) 2012-2016 Free Software Foundation, Inc.
4017 Copying and distribution of this file, with or without modification,
4018 are permitted in any medium without royalty provided the copyright
4019 notice and this notice are preserved.