* c-common.c (c_common_truthvalue_conversion): Use false instead of 0.
[official-gcc.git] / gcc / c / ChangeLog
blob46c296992b57627f262553f7a0c8b275657c1b10
1 2016-09-14  Marek Polacek  <polacek@redhat.com>
3         * c-array-notation.c (create_cmp_incr): Use false instead of 0.
4         (fix_array_notation_expr): Likewise.
5         * c-decl.c (finish_decl): Likewise.
6         * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
7         * c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
8         (function_to_pointer_conversion): Use false instead of 0.
9         (convert_lvalue_to_rvalue): Likewise.
10         (parser_build_unary_op): Likewise.
11         (build_atomic_assign): Likewise.
12         (build_unary_op): Change nonconvert parameter type to bool, use
13         true/false instead of 1/0.
14         (build_binary_op): Use true instead of 1.
16 2016-09-13  David Malcolm  <dmalcolm@redhat.com>
18         * c-parser.c (c_parser_declaration_or_fndef): Update for renaming
19         of add_fixit_insert to add_fixit_insert_before.
21 2016-09-13  Marek Polacek  <polacek@redhat.com>
23         * c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT.  Use
24         it.
26 2016-09-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28         PR c++/77496
29         * c-parser.c (c_parser_conditional_expression): Pass the rightmost
30         COMPOUND_EXPR to warn_for_omitted_condop.
32 2016-09-07  David Malcolm  <dmalcolm@redhat.com>
34         * c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
35         c_get_substring_location for this new langhook.
37 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
39         PR c/65467
40         * c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
41         flag_openmp.
42         (c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
43         instead of mark_exp_read on low_bound/length expression.
44         (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
45         c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
46         c_parser_omp_clause_priority, c_parser_omp_clause_hint,
47         c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
48         c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
49         c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
50         c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
51         c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
52         c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
53         c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
54         instead of mark_expr_read.
55         (c_parser_omp_declare_reduction): Reject _Atomic qualified types.
56         * c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
57         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
58         * c-tree.h (c_omp_clause_copy_ctor): New prototype.
59         * c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
60         array section bases outside of depend clause, for depend clause
61         use convert_lvalue_to_rvalue on the base.
62         (c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
63         linear, aligned, map, to and from clauses.
64         (c_omp_clause_copy_ctor): New function.
66 2016-09-01  Marek Polacek  <polacek@redhat.com>
68         PR c/7652
69         * c-typeck.c (composite_type): Add FALLTHRU comment.
71 2016-08-31  David Malcolm  <dmalcolm@redhat.com>
73         * c-parser.c (c_parser_declaration_or_fndef): Add trailing space
74         to the insertion fixits for "struct", "union", and "enum".
76 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
78         * c-decl.c (implicit_decl_warning): Use add_fixit_replace
79         rather than add_fixit_misspelled_id.
80         (undeclared_variable): Likewise.
81         * c-parser.c (c_parser_declaration_or_fndef): Likewise.  Remove
82         now-redundant "here" params from add_fixit_insert method calls.
83         (c_parser_parameter_declaration): Likewise.
84         * c-typeck.c (build_component_ref): Remove now-redundant range
85         param from add_fixit_replace method calls.
87 2016-08-25  Marek Polacek  <polacek@redhat.com>
89         * c-typeck.c (parser_build_binary_op): Pass LHS to
90         warn_logical_not_parentheses.
92 2016-08-25  Marek Polacek  <polacek@redhat.com>
94         PR c/77323
95         * c-decl.c (declspecs_add_type): Set typespec_word even when __intN
96         or _FloatN or _FloatNx is not supported.
97         (finish_declspecs): Set type to integer_type_node when _FloatN or
98         _FloatNx is not supported.
100 2016-08-19  Joseph Myers  <joseph@codesourcery.com>
102         PR c/32187
103         * c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
104         (struct c_declspecs): Add field floatn_nx_idx.
105         * c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
106         and _FloatNx type specifiers.
107         * c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
108         (c_parser_declspecs, c_parser_attribute_any_word)
109         (c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
110         * c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
111         (convert_arguments): Avoid promoting _FloatN and _FloatNx types
112         narrower than double.
114 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
115             Martin Liska  <mliska@suse.cz>
117         PR c/67410
118         * c-typeck.c (set_nonincremental_init_from_string): Use / instead of
119         % to determine val element to change.  Assert that
120         wchar_bytes * charwidth fits into val array.
122 2016-08-12  Marek Polacek  <polacek@redhat.com>
124         PR c/7652
125         * c-parser.c (c_parser_external_declaration): Add FALLTHRU.
126         (c_parser_postfix_expression): Likewise.
127         * c-typeck.c (build_unary_op): Adjust fall through comment.
128         (c_mark_addressable): Likewise.
130 2016-08-11  Jakub Jelinek  <jakub@redhat.com>
132         PR c/72816
133         * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
134         array member through typedef, for orig_qual_indirect == 0 clear
135         orig_qual_type.
137 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
139         PR c/64955
140         * c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
141         this up to selftest::run_c_tests.
142         (selftest::run_c_tests): New function.
144 2016-08-04  Thomas Schwinge  <thomas@codesourcery.com>
146         * c-parser.c (struct oacc_routine_data): Add error_seen and
147         fndecl_seen members.
148         (c_finish_oacc_routine): Use these.
149         (c_parser_declaration_or_fndef): Adjust.
150         (c_parser_oacc_routine): Likewise.  Support more C language
151         constructs, and improve diagnostics.  Move pragma context
152         checking...
153         (c_parser_pragma): ... here.
155         * c-parser.c (struct oacc_routine_data): New.
156         (c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
157         Simplify code.
158         (c_finish_oacc_routine): Likewise.  Don't attach clauses to "omp
159         declare target" attribute.
161 2016-08-01  Jan Beulich  <jbeulich@suse.com>
163         * c-fold.c (c_fully_fold_internal): Also emit shift count
164         warnings for vector types.
165         * c-typeck.c (build_binary_op): Likewise.
167 2016-07-29  Marek Polacek  <polacek@redhat.com>
169         PR c/71742
170         * c-decl.c (finish_struct): Rephrase an error message.
172         PR c/71853
173         * c-parser.c (c_parser_switch_statement): Initialize ce.original_type
174         to error node for invalid code.
176         PR c/71573
177         * c-decl.c (implicitly_declare): Return decl early not only for
178         error_mark_nodes, but for anything that is not a FUNCTION_DECL.
180 2016-07-29  Jakub Jelinek  <jakub@redhat.com>
182         PR c/71969
183         * c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
184         on GNU extern inline functions.
186 2016-07-29  Marek Polacek  <polacek@redhat.com>
188         PR c/71583
189         * c-parser.c (c_parser_postfix_expression_after_paren_type): Also
190         check expr.value.
192 2016-07-22  Uros Bizjak  <ubizjak@gmail.com>
194         * c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
196 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
198         * c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
199         spellcheck-tree.h
200         (best_macro_match): Likewise, converting from a typedef to a
201         subclass.
202         (find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
203         (lookup_name_fuzzy): Update for change of best_macro_match to a
204         subclass with a ctor that calls cpp_forall_identifiers.
206 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
208         * c-decl.c (implicit_decl_warning): Update for conversion of
209         return type of lookup_name_fuzzy to const char *.
210         (undeclared_variable): Likewise.
211         (lookup_name_fuzzy): Convert return type from tree to
212         const char *.
213         * c-parser.c (c_parser_declaration_or_fndef): Update for
214         conversion of return type of lookup_name_fuzzy to const char *.
215         (c_parser_parameter_declaration): Likewise.
217 2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
219         * c-parser.c (c_parser_oacc_declare): Don't scan for
220         GOMP_MAP_POINTER.
221         * c-typeck.c (handle_omp_array_sections): Mark data clauses with
222         GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
223         zero-length subarrays.
225 2016-07-15  Jakub Jelinek  <jakub@redhat.com>
227         PR c/71858
228         * c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
229         instead of FUZZY_LOOKUP_NAME.
230         (lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
231         FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.
233 2016-07-14  Jakub Jelinek  <jakub@redhat.com>
235         PR c/71858
236         * c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.
238 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
240         * c-parser.c (c_parser_generic_selection): Make type of variable
241         auto_vec.
242         (c_parser_omp_declare_simd): Likewise.
244 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
246         * c-decl.c (struct c_struct_parse_info): Change member types
247         from vec to auto_vec.
248         (start_struct): Adjust.
249         (finish_struct): Likewise.
251 2016-07-02  Jakub Jelinek  <jakub@redhat.com>
253         PR c/71719
254         * c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
256 2016-06-29  Thomas Schwinge  <thomas@codesourcery.com>
258         * c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
259         Move pragma context checking into...
260         (c_parser_omp_cancellation_point): ... here, and improve
261         diagnostic messages.
262         * c-typeck.c (c_finish_omp_cancel)
263         (c_finish_omp_cancellation_point): Improve diagnostic messages.
265 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
267         PR c/71685
268         * c-typeck.c (c_build_qualified_type): Don't clear
269         C_TYPE_INCOMPLETE_VARS for the main variant.
271 2016-06-28  Martin Sebor  <msebor@redhat.com>
273         PR c/71552
274         * c-typeck.c (output_init_element): Diagnose incompatible types
275         before non-constant initializers.
277 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
279         * Make-lang.in: Don't cat ../stage_current if it does not exist.
281 2016-06-23  Andi Kleen  <ak@linux.intel.com>
283         * Make-lang.in: Add support for autofdo.
285 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
287         PR c/70339
288         * c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
289         (implicit_decl_warning): When issuing warnings for implicit
290         declarations, attempt to provide a suggestion via
291         lookup_name_fuzzy.
292         (undeclared_variable): Likewise when issuing errors.
293         (lookup_name_in_scope): Likewise.
294         (struct edit_distance_traits<cpp_hashnode *>): New struct.
295         (best_macro_match): New typedef.
296         (find_closest_macro_cpp_cb): New function.
297         (lookup_name_fuzzy): New function.
298         * c-parser.c: Include gcc-rich-location.h.
299         (c_token_starts_typename): Split out case CPP_KEYWORD into...
300         (c_keyword_starts_typename): ...this new function.
301         (c_parser_declaration_or_fndef): When issuing errors about
302         missing "struct" etc, add a fixit.  For other kinds of errors,
303         attempt to provide a suggestion via lookup_name_fuzzy.
304         (c_parser_parms_declarator): When looking ahead to detect typos in
305         type names, also reject CPP_KEYWORD.
306         (c_parser_parameter_declaration): When issuing errors about
307         unknown type names, attempt to provide a suggestion via
308         lookup_name_fuzzy.
309         * c-tree.h (c_keyword_starts_typename): New prototype.
311 2016-06-20  Joseph Myers  <joseph@codesourcery.com>
313         PR c/71601
314         * c-typeck.c (build_conditional_expr): Return error_mark_node if
315         c_common_type returns error_mark_node.
317 2016-06-19  Martin Sebor  <msebor@redhat.com>
319         PR c/69507
320         * c-parser.c (c_parser_alignof_expression): Avoid diagnosing
321         __alignof__ (expression).
323 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
325         * c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h.
327 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
329         * c-typeck.c (build_component_ref): Simplify fixit code by
330         using gcc_rich_location::add_fixit_misspelled_id.
331         (set_init_label): Likewise.
333 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
335         * c-parser.c (c_parser_initelt): Provide location of name for new
336         location_t param of set_init_label.
337         * c-tree.h (set_init_label): Add location_t param.
338         * c-typeck.c (set_init_index): Add "fieldname_loc" location_t
339         param and use it when issuing error messages about unrecognized
340         field names.  Attempt to provide a fixit hint if appropriate,
341         otherwise update the error message to provide the type name.
343 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
345         PR c/71381
346         * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
347         Loosen checking.
349 2016-06-08  Martin Sebor  <msebor@redhat.com>
350             Jakub Jelinek  <jakub@redhat.com>
352         PR c++/70507
353         PR c/68120
354         * c-typeck.c (convert_arguments): Don't promote last argument
355         of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
357 2016-06-08  Marek Polacek  <polacek@redhat.com>
359         PR c/71418
360         * c-decl.c (grokdeclarator): Check TYPE_P.
362         PR c/71426
363         * c-decl.c (get_parm_info): Don't crash on an assert on invalid
364         code.
366 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
368         * c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
369         and structure element reference, capture the location of the
370         element name token and pass it to build_component_ref.
371         (c_parser_postfix_expression_after_primary): Likewise for
372         structure element dereference.
373         (c_parser_omp_variable_list): Likewise for
374         OMP_CLAUSE_{_CACHE, MAP, FROM, TO},
375         * c-tree.h (build_component_ref): Add location_t param.
376         * c-typeck.c (build_component_ref): Add location_t param
377         COMPONENT_LOC.  Use it, if available, when issuing hints about
378         mispelled member names to provide a fixit replacement hint.
380 2016-06-06  Marek Polacek  <polacek@redhat.com>
382         PR c/71362
383         * c-parser.c (c_parser_direct_declarator): Set location.
385 2016-06-06  Marek Polacek  <polacek@redhat.com>
387         * c-typeck.c (comptypes_internal): Handle comparisons of
388         INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes.  Don't check
389         TYPE_REF_CAN_ALIAS_ALL.
391 2016-06-03  Chung-Lin Tang  <cltang@codesourcery.com>
393         * c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
394         arguments as addressable when async clause exists.
396 2016-05-30  Jakub Jelinek  <jakub@redhat.com>
398         PR c++/71349
399         * c-parser.c (c_parser_omp_for): Don't disallow nowait clause
400         when combined with target construct.
402 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
404         * c-parser.c (c_parser_omp_clause_schedule): Warn if
405         OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
407 2016-05-25  Marek Polacek  <polacek@redhat.com>
409         PR c/71265
410         * c-decl.c (c_make_fname_decl): Don't check seen_error.
412         PR c/71266
413         * c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.
415 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
417         * c-parser.c (c_parser_oacc_declare): Add support for
418         GOMP_MAP_FIRSTPRIVATE_POINTER.
419         * c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
420         argument with enum c_omp_region_type ort.
421         (handle_omp_array_sections): Likewise.  Update call to
422         handle_omp_array_sections_1.
423         (c_finish_omp_clauses): Add specific errors and warning messages for
424         OpenACC.  Use firsrtprivate pointers for OpenACC subarrays.  Update
425         call to handle_omp_array_sections.
427 2016-05-24  Thomas Schwinge  <thomas@codesourcery.com>
429         * c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
431 2016-05-24  Richard Biener  <rguenther@suse.de>
433         PR middle-end/70434
434         PR c/69504
435         * c-typeck.c (build_array_ref): Do not complain about indexing
436         non-lvalue vectors.  Adjust for function name change.
438 2016-05-20  Martin Sebor  <msebor@redhat.com>
440         PR c/71115
441         * c-typeck.c (error_init): Use
442         expansion_point_location_if_in_system_header.
443         (warning_init): Same.
445 2016-05-19  David Malcolm  <dmalcolm@redhat.com>
447         PR c/71171
448         * c-parser.c (c_parser_generic_selection): Use c_expr::set_error
449         in error-handling.
450         (c_parser_postfix_expression): Likewise.
451         * c-tree.h (c_expr::set_error): New method.
452         * c-typeck.c (parser_build_binary_op): In error-handling, ensure
453         that result's range is initialized.
455 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
457         * c-typeck.c (parser_build_unary_op): Fix formatting.
459 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
461         * c-decl.c (grokdeclarator): Remove errmsg and use of
462         targetm.invalid_return_type.
463         (grokparms): Remove errmsg and use of
464         targetm.invalid_parameter_type.
466 2016-05-13  Joseph Myers  <joseph@codesourcery.com>
468         * c-decl.c (grokdeclarator): For C11, discard qualifiers on
469         function return type.
471 2016-05-12  Marek Polacek  <polacek@redhat.com>
473         PR c/70756
474         * c-decl.c (build_compound_literal): Pass LOC down to
475         c_incomplete_type_error.
476         * c-tree.h (require_complete_type): Adjust declaration.
477         (c_incomplete_type_error): Likewise.
478         * c-typeck.c (require_complete_type): Add location parameter, pass it
479         down to c_incomplete_type_error.
480         (c_incomplete_type_error): Add location parameter, pass it down to
481         error_at.
482         (build_component_ref): Pass location down to c_incomplete_type_error.
483         (default_conversion): Pass location down to require_complete_type.
484         (build_array_ref): Likewise.
485         (build_function_call_vec): Likewise.
486         (convert_arguments): Likewise.
487         (build_unary_op): Likewise.
488         (build_c_cast): Likewise.
489         (build_modify_expr): Likewise.
490         (convert_for_assignment): Likewise.
491         (c_finish_omp_clauses): Likewise.
493 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
495         PR c/43651
496         * c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
497         is enabled.
498         * c-errors.c (pedwarn_c90): Return true if warned.
499         * c-tree.h (pedwarn_c90): Change return type to bool.
500         (enum c_declspec_word): Add new enumerator cdw_atomic.
502 2016-05-11  Marek Polacek  <polacek@redhat.com>
504         PR c++/71024
505         * c-decl.c (diagnose_mismatched_decls): Factor out code to
506         diagnose_mismatched_attributes and call it.
508 2016-05-10  Marek Polacek  <polacek@redhat.com>
510         PR c/70255
511         * c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute
512         on a declaration following the definition.
514 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
516         * c-parser.c (c_parser_switch_statement): Add IF_P argument,
517         parse it through to c_parser_c99_block_statement.
518         (c_parser_statement_after_labels): Adjust c_parser_switch_statement
519         caller.
521 2016-05-04  Marek Polacek  <polacek@redhat.com>
523         * c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
524         OPT_Wdangling_else.
526 2016-05-04  Marek Polacek  <polacek@redhat.com>
528         PR c/48778
529         * c-typeck.c (build_binary_op): Don't issue -Waddress warnings
530         for macro expansions.
532 2016-05-03  Marek Polacek  <polacek@redhat.com>
534         PR c/70859
535         * c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
536         check_builtin_function_arguments.
538 2016-05-03  Richard Biener  <rguenther@suse.de>
540         * Make-lang.in (cc1-checksum.c): For stage-final re-use
541         the checksum from the previous stage.
543 2016-05-02  Cesar Philippidis  <cesar@codesourcery.com>
545         * c-parser.c (c_parser_oacc_all_clauses): Update call to
546         c_finish_omp_clauses.
547         (c_parser_omp_all_clauses): Likewise.
548         (c_parser_oacc_cache): Likewise.
549         (c_parser_oacc_loop): Likewise.
550         (omp_split_clauses): Likewise.
551         (c_parser_omp_declare_target): Likewise.
552         (c_parser_cilk_all_clauses): Likewise.
553         (c_parser_cilk_for): Likewise.
554         * c-typeck.c (c_finish_omp_clauses): Replace bool arguments
555         is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.
557 2016-05-02  Marek Polacek  <polacek@redhat.com>
559         PR c/70851
560         * c-decl.c (grokdeclarator): Diagnose when array's size has an
561         incomplete type.
563 2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>
565         PR middle-end/70626
566         * c-parser.c (c_parser_oacc_loop): Don't augment mask with
567         OACC_LOOP_CLAUSE_MASK.
568         (c_parser_oacc_kernels_parallel): Update call to
569         c_oacc_split_loop_clauses.
571 2016-04-28  Andrew MacLeod  <amacleod@redhat.com>
573         * c-array-notation.c (fix_builtin_array_notation_fn): Fix final
574         argument to build_modify_expr in two cases.
576 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
578         * c-parser.c (c_parser_postfix_expression_after_primary): Call
579         warn_for_memset instead of warning directly here.
581 2016-04-26  Marek Polacek  <polacek@redhat.com>
583         PR c/67784
584         * c-parser.c (c_parser_maybe_reclassify_token): New function factored
585         out of ...
586         (c_parser_for_statement): ... here.
587         (c_parser_if_statement): Use it.
588         (c_parser_switch_statement): Use it.
589         (c_parser_while_statement): Use it.
591         PR c/70791
592         * c-decl.c (pushdecl): Pass LOCUS down to warning.
594 2016-04-20  Ilya Verbin  <ilya.verbin@intel.com>
596         PR c++/69363
597         * c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
598         instead of c_finish_cilk_clauses.
599         * c-tree.h (c_finish_omp_clauses): Add new default argument.
600         * c-typeck.c (c_finish_omp_clauses): Add new argument.  Allow
601         floating-point variables in the linear clause for Cilk Plus.
603 2016-04-18  Michael Matz  <matz@suse.de>
605         * c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
606         (grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.
608 2016-04-15  Marek Polacek  <polacek@redhat.com>
610         PR c/70671
611         * c-typeck.c (build_unary_op): Pass location down to error and
612         warning call.
614 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
616         PR c/70436
617         * c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
618         where needed.
619         (c_parser_external_declaration, c_parser_struct_or_union_specifier,
620         c_parser_parameter_declaration, c_parser_compound_statement_nostart,
621         c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
622         Adjust c_parser_pragma callers.
623         (c_parser_statement_after_labels): Likewise.  Adjust c_parser_cilk_for
624         caller.
625         (c_parser_omp_structured_block): Add IF_P argument, pass it down to
626         c_parser_statement.
627         (c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
628         c_parser_oacc_kernels_parallel, c_parser_omp_critical,
629         c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
630         c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
631         c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
632         c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
633         c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
634         c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
635         down where needed.
636         (c_parser_omp_for_loop): Likewise.  Clear IF_P if nbraces.
637         (c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
638         calls.
640 2016-04-13  Marek Polacek  <polacek@redhat.com>
642         PR c/70436
643         * c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
644         adjust callers.
645         (c_parser_statement): Likewise.
646         (c_parser_c99_block_statement): Likewise.
647         (c_parser_while_statement): Likewise.
648         (c_parser_for_statement): Likewise.
649         (c_parser_if_body): Don't set IF_P here.
650         (c_parser_if_statement): Add IF_P argument.  Set IF_P here.  Warn
651         about dangling else here.
652         * c-tree.h (c_finish_if_stmt): Adjust declaration.
653         * c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter.  Don't
654         warn about dangling else here.
656 2016-04-04  Marek Polacek  <polacek@redhat.com>
658         PR c/70307
659         * c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.
661 2016-03-31  Marek Polacek  <polacek@redhat.com>
663         PR c/70297
664         * c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
666 2016-03-18  David Malcolm  <dmalcolm@redhat.com>
668         PR c/70281
669         * c-parser.c (c_parser_postfix_expression): Set the source range
670         for uses of "__builtin_types_compatible_p".
672 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
674         PR c/70280
675         * c-typeck.c (composite_type): Don't count void_list_node
676         into len, if the list is terminated by void_list_node, start
677         with void_list_node instead of NULL for newargs.  Stop
678         at void_list_node.
680 2016-03-16  Marek Polacek  <polacek@redhat.com>
682         PR c/70093
683         * c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
684         nested functions returning VM types.
686 2016-03-09  Cesar Philippidis  <cesar@codesourcery.com>
688         * c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
689         when calling c_finish_omp_clauses.
691 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
693         PR c/69824
694         * c-decl.c (get_parm_info): Don't queue implicit function declarations
695         for later.
697 2016-03-04  Marek Polacek  <polacek@redhat.com>
699         PR c/69798
700         * c-parser.c (c_parser_postfix_expression): Call
701         c_parser_cast_expression rather than c_parser_postfix_expression.
703 2016-03-01  Jakub Jelinek  <jakub@redhat.com>
705         PR c/69796
706         PR c/69974
707         * c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
708         of incomplete decls to error_mark_node.
710 2016-02-24  Marek Polacek  <polacek@redhat.com>
712         PR c/69819
713         * c-decl.c (finish_decl): Don't update the copy of the type of a
714         different decl type.
716 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
718         PR objc/69844
719         * c-parser.c (c_parser_for_statement): Properly handle ObjC classes
720         in id_kind reclassification.
722 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
724         PR c/69835
725         * c-typeck.c (build_binary_op): Revert 2015-09-09 change.
727 2016-02-16  James Norris  <jnorris@codesourcery.com>
729         PR c/64748
730         * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
732 2016-02-12  Bernd Schmidt  <bschmidt@redhat.com>
734         * c-decl.c (build_null_declspecs): Zero the entire struct.
736         PR c/69522
737         * c-parser.c (c_parser_braced_init): New arg outer_obstack.  All
738         callers changed.  If nested_p is true, use it to call
739         finish_implicit_inits.
740         * c-tree.h (finish_implicit_inits): Declare.
741         * c-typeck.c (finish_implicit_inits): New function.  Move code
742         from ...
743         (push_init_level): ... here.
744         (set_designator, process_init_element): Call finish_implicit_inits.
746 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
748         PR c/69768
749         * c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
750         arguments for -Waddress warning.
752 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
754         PR c/69669
755         * c-decl.c (finish_enum): When honoring mode attribute,
756         make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
758 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
760         PR debug/69518
761         * c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
762         all type variants, not just TYPE_MAIN_VARIANT.
764 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
766         PR debug/66869
767         * c-decl.c (c_write_global_declarations_1): Warn with
768         warn_unused_function if static prototype without definition
769         is not C_DECL_USED.
771 2016-01-27  Marek Polacek  <polacek@redhat.com>
773         PR c/68062
774         * c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
775         to unsigned, if needed.  Add -Wsign-compare warning.
777 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
779         PR tree-optimization/69483
780         * c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.
782 2016-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
784         PR c/24293
785         * c-tree.h (incomplete_record_decls): Declare.
786         * c-parser.c (incomplete_record_decls): Define.
787         (c_parser_translation_unit): Iterate through incomplete_record_decls and
788         report error if any decl has zero size.
789         * c-decl.c (finish_decl): Append static decl with incomplete struct/union
790         or enum type to incomplete_record_decls.
792 2016-01-14  Tom de Vries  <tom@codesourcery.com>
794         PR tree-optimization/68773
795         * c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
796         set force_output.
798 2016-01-14  Marek Polacek  <polacek@redhat.com>
800         PR c/69262
801         * c-decl.c (grokdeclarator): Provide more information for invalid
802         array declarations.
804 2016-01-06  David Malcolm  <dmalcolm@redhat.com>
806         * c-parser.c (c_parser_unary_expression): For dereferences, build
807         a combined location before calling build_indirect_ref, so that
808         error reports cover the full range, manually updating the c_expr
809         src_range.
811 2016-01-06  Marek Polacek  <polacek@redhat.com>
813         PR sanitizer/69099
814         * c-convert.c (convert) [INTEGER_TYPE]: Drop ARG.  Don't pass ARG to
815         ubsan_instrument_float_cast.  Fold EXPR.  Use NULL_TREE instead of
816         NULL.
818 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
820         Update copyright years.
822 2016-01-04  Marek Polacek  <polacek@redhat.com>
824         PR c/68908
825         * c-typeck.c (build_atomic_assign): Improve commentary.  Add
826         optimization to use __atomic_fetch_* built-in if possible.
828 2015-12-23  Thomas Schwinge  <thomas@codesourcery.com>
830         * c-parser.c (c_parser_oacc_clause_use_device): Merge function
831         into...
832         (c_parser_omp_clause_use_device_ptr): ... this function.  Adjust
833         all users.
835 2015-12-22  Marek Polacek  <polacek@redhat.com>
837         PR c/69002
838         * c-typeck.c (build_component_ref): Warn when acessing elements of
839         atomic structures or unions.
841 2015-12-21  David Malcolm  <dmalcolm@redhat.com>
843         * c-typeck.c: Include "gcc-rich-location.h".
844         (build_binary_op): In the two places that call binary_op_error,
845         create a gcc_rich_location and populate it with the location of
846         the binary op and its two operands.
848 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
850         * c-parser.c (c_parser_statement_after_labels): When calling
851         c_finish_return, Use the return expression's location if it has
852         one, falling back to the location of the first token within it.
853         * c-typeck.c (c_finish_return): When issuing warnings about
854         the incorrect presence/absence of a return value, issue a note
855         showing the declaration of the function.
857 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
859         * c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
860         to 4.
861         (c_parser_peek_nth_token): New function.
862         (c_parser_peek_conflict_marker): New function.
863         (c_parser_error): Detect conflict markers and report them as such.
865 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
867         * c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
868         to preserve range information for the primary expression
869         in the call to c_parser_postfix_expression_after_primary.
871 2015-12-16  David Malcolm  <dmalcolm@redhat.com>
873         * c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
874         expression location, falling back on the first token location,
875         rather than always using the latter.
877 2015-12-16  Marek Polacek  <polacek@redhat.com>
879         PR c/64637
880         * c-typeck.c (c_process_expr_stmt): Use location of the expression if
881         available.
883 2015-12-15  Marek Polacek  <polacek@redhat.com>
885         PR c/68907
886         * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
887         artificial decl.
889 2015-12-08  David Malcolm  <dmalcolm@redhat.com>
891         * c-parser.c (c_parser_alignof_expression): Capture location of
892         closing parenthesis (if any), or of end of unary expression, and
893         use it to build a src_range for the expression.
895 2015-12-08  David Malcolm  <dmalcolm@redhat.com>
897         PR c/68757
898         * c-parser.c (c_parser_get_builtin_args): Add
899         "out_close_paren_loc" param, and write back to it.
900         (c_parser_postfix_expression): Capture the closing
901         parenthesis location for RID_CHOOSE_EXPR,
902         RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
903         RID_BUILTIN_SHUFFLE and use it to set the source range
904         for such expressions; within RID_BUILTIN_COMPLEX set
905         the underlying location.
907 2015-12-07  Marek Polacek  <polacek@redhat.com>
909         PR c/68668
910         * c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
911         TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.
913 2015-12-04  Eric Botcazou  <ebotcazou@adacore.com>
915         * c-tree.h (c_build_va_arg): Adjust prototype.
916         * c-parser.c (c_parser_postfix_expression): Adjust call to above.
917         * c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
918         parameter, adjust throughout and issue an error if EXPR is a component
919         with reverse storage order.
921 2015-12-02  Jason Merrill  <jason@redhat.com>
923         * c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
924         (c_fully_fold_internal, decl_constant_value_for_optimization):
925         Move from c-common.c.
926         * c-tree.h: Declare decl_constant_value_for_optimization.
927         * Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
929 2015-12-02  Joseph Myers  <joseph@codesourcery.com>
931         PR c/68162
932         * c-decl.c (grokdeclarator): Set first_non_attr_kind before
933         following link from declarator to next declarator.  Track original
934         qualified type and pass it to c_build_qualified_type.
935         * c-typeck.c (c_build_qualified_type): Add arguments
936         orig_qual_type and orig_qual_indirect.
938 2015-12-02  Thomas Schwinge  <thomas@codesourcery.com>
940         * c-parser.c (c_parser_omp_clause_name)
941         (c_parser_oacc_all_clauses): Alphabetical sorting.
943 2015-12-02  Jakub Jelinek  <jakub@redhat.com>
945         PR c/68533
946         * c-decl.c (get_parm_info): Use b->locus instead of input_location
947         for diagnostics.
949 2015-12-01  Julian Brown  <julian@codesourcery.com>
950             Cesar Philippidis  <cesar@codesourcery.com>
951             James Norris  <James_Norris@mentor.com>
953         * c-parser.c (c_parser_omp_clause_name): Add use_device support.
954         (c_parser_oacc_clause_use_device): New function.
955         (c_parser_oacc_all_clauses): Add use_device support.
956         (OACC_HOST_DATA_CLAUSE_MASK): New macro.
957         (c_parser_oacc_host_data): New function.
958         (c_parser_omp_construct): Add host_data support.
959         * c-tree.h (c_finish_oacc_host_data): Add prototype.
960         * c-typeck.c (c_finish_oacc_host_data): New function.
961         (c_finish_omp_clauses): Add use_device support.
963 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
965         PR c/67106
966         * c-decl.c: Set TYPE_PACKED in variants.
968 2015-11-27  Martin Liska  <mliska@suse.cz>
970         PR c++/68312
971         * c-array-notation.c (fix_builtin_array_notation_fn):
972         Use release_vec_vec instead of vec::release.
973         (build_array_notation_expr): Likewise.
974         (fix_conditional_array_notations_1): Likewise.
975         (fix_array_notation_expr): Likewise.
976         (fix_array_notation_call_expr): Likewise.
978 2015-11-27  Jakub Jelinek  <jakub@redhat.com>
980         PR c/63326
981         * c-parser.c (c_parser_compound_statement_nostart): If
982         last_label is true, use pragma_stmt instead of pragma_compound
983         as second c_parser_pragma argument.
984         (c_parser_omp_ordered, c_parser_omp_target_update,
985         c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
986         false as second argument to c_parser_skip_to_pragma_eol after
987         diagnosing standalone directives used in pragma_stmt context.
989 2015-11-24  Ilya Verbin  <ilya.verbin@intel.com>
991         * c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
992         with "if (ENABLE_OFFLOADING)".
994 2015-11-23  David Malcolm  <dmalcolm@redhat.com>
996         PR objc/68438
997         * c-parser.c (c_parser_postfix_expression): Set up source ranges
998         for various Objective-C constructs: Class.name syntax,
999         @selector(), @protocol(), @encode(), and [] message syntax.
1001 2015-11-20  David Malcolm  <dmalcolm@redhat.com>
1003         PR 62314
1004         * c-typeck.c (should_suggest_deref_p): New function.
1005         (build_component_ref): Special-case POINTER_TYPE when
1006         generating a "not a structure of union"  error message, and
1007         suggest a "->" rather than a ".", providing a fix-it hint.
1009 2015-11-19  David Malcolm  <dmalcolm@redhat.com>
1011         * c-typeck.c (lookup_field_fuzzy): Move determination of closest
1012         candidate into a new function, find_closest_identifier.
1014 2015-11-19  Marek Polacek  <polacek@redhat.com>
1016         PR c/68412
1017         * c-typeck.c (parser_build_binary_op): Properly handle
1018         C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.
1020 2015-11-17  David Malcolm  <dmalcolm@redhat.com>
1022         * c-parser.c (set_c_expr_source_range): Bulletproof both
1023         overloaded implementations against NULL expr->value.
1024         (c_parser_braced_init): Set src_range for "ret" to a sane pair of
1025         values.
1026         (c_parser_unary_expression): Likewise when handling addresses of
1027         labels.
1028         (c_parser_postfix_expression): Likewise for statement expressions,
1029         for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
1030         __builtin_va_arg, and for __builtin_offset_of.
1031         (c_parser_postfix_expression_after_paren_type): Initialize expr's
1032         src_range using the range of the braced initializer.
1033         (c_parser_transaction_expression): Set src_range for "ret" to a
1034         sane pair of values.
1036 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
1038         * c-parser.c (c_finish_omp_declare_simd): Look for
1039         "simd" attribute as well. Update error message.
1041 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1043         * c-parser.c (c_parser_omp_declare_target): Adjust.
1045 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
1047         * c-typeck.c (c_finish_omp_clauses): Don't mark
1048         GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
1050 2015-11-14  Marek Polacek  <polacek@redhat.com>
1052         * c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
1053         * c-typeck.c: Likewise.
1055 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
1057         * c-decl.c (warn_defaults_to): Pass line_table to
1058         rich_location ctor.
1059         * c-errors.c (pedwarn_c99): Likewise.
1060         (pedwarn_c90): Likewise.
1061         * c-parser.c (set_c_expr_source_range): New functions.
1062         (c_token::get_range): New method.
1063         (c_token::get_finish): New method.
1064         (c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
1065         based on the range from the start of the LHS to the end of the
1066         RHS.
1067         (c_parser_conditional_expression): Likewise, based on the range
1068         from the start of the cond.value to the end of exp2.value.
1069         (c_parser_binary_expression): Call set_c_expr_source_range on
1070         the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
1071         (c_parser_cast_expression): Call set_c_expr_source_range on ret
1072         based on the cast_loc through to the end of the expr.
1073         (c_parser_unary_expression): Likewise, based on the
1074         op_loc through to the end of op.
1075         (c_parser_sizeof_expression) Likewise, based on the start of the
1076         sizeof token through to either the closing paren or the end of
1077         expr.
1078         (c_parser_postfix_expression): Likewise, using the token range,
1079         or from the open paren through to the close paren for
1080         parenthesized expressions.
1081         (c_parser_postfix_expression_after_primary): Likewise, for
1082         various kinds of expression.
1083         * c-tree.h (struct c_expr): Add field "src_range".
1084         (c_expr::get_start): New method.
1085         (c_expr::get_finish): New method.
1086         (set_c_expr_source_range): New decls.
1087         * c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
1088         on ret for prefix unary ops.
1089         (parser_build_binary_op): Likewise, running from the start of
1090         arg1.value through to the end of arg2.value.
1092 2015-11-13  Marek Polacek  <polacek@redhat.com>
1094         PR c/68320
1095         * c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.
1097 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
1099         * c-typeck.c: Include spellcheck.h.
1100         (lookup_field_fuzzy_find_candidates): New function.
1101         (lookup_field_fuzzy): New function.
1102         (build_component_ref): If the field was not found, try using
1103         lookup_field_fuzzy and potentially offer a suggestion.
1105 2015-11-12  James Norris  <jnorris@codesourcery.com>
1106             Joseph Myers  <joseph@codesourcery.com>
1108         * c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
1109         (c_parser_omp_clause_name): Handle 'device_resident' clause.
1110         (c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
1111         and PRAGMA_OMP_CLAUSE_LINK.
1112         (c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
1113         and PRAGMA_OACC_CLAUSE_LINK.
1114         (OACC_DECLARE_CLAUSE_MASK): New definition.
1115         (c_parser_oacc_declare): New function.
1117 2015-11-12  Marek Polacek  <polacek@redhat.com>
1119         PR c/67784
1120         * c-parser.c (c_parser_for_statement): Reclassify the token in
1121         a correct scope.
1123 2015-11-11  Marek Polacek  <polacek@redhat.com>
1125         PR c/68107
1126         PR c++/68266
1127         * c-decl.c (grokdeclarator): Call valid_array_size_p.  Remove code
1128         checking the size of an array.
1130 2015-11-11  Andrew MacLeod  <amacleod@redhat.com>
1132         * c-array-notation.c: Remove unused header files.
1133         * c-aux-info.c: Likewise.
1134         * c-convert.c: Likewise.
1135         * c-decl.c: Likewise.
1136         * c-errors.c: Likewise.
1137         * c-lang.c: Likewise.
1138         * c-objc-common.c: Likewise.
1139         * c-parser.c: Likewise.
1140         * c-typeck.c: Likewise.
1141         * gccspec.c: Likewise.
1143 2015-11-09  Thomas Schwinge  <thomas@codesourcery.com>
1144             Cesar Philippidis  <cesar@codesourcery.com>
1145             James Norris  <jnorris@codesourcery.com>
1146             Julian Brown  <julian@codesourcery.com>
1147             Nathan Sidwell  <nathan@codesourcery.com>
1149         c/
1150         * c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
1151         routine arg.
1152         (c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
1153         (c_parser_pragma): Parse 'acc routine'.
1154         (OACC_ROUTINE_CLAUSE_MARK): Define.
1155         (c_parser_oacc_routine, (c_finish_oacc_routine): New.
1157 2015-11-09  Andreas Arnez  <arnez@linux.vnet.ibm.com>
1159         PR debug/67192
1160         * c-typeck.c (c_finish_loop): For unconditional loops, set the
1161         location of the backward-goto to the start of the loop body.
1163 2015-11-09  Andreas Arnez  <arnez@linux.vnet.ibm.com>
1165         PR debug/67192
1166         * c-parser.c (c_parser_while_statement): Finish the loop before
1167         parsing ahead for misleading indentation.
1168         (c_parser_for_statement): Likewise.
1170 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
1172         * c-decl.c (finish_struct): If the structure has reverse storage
1173         order, rewrite the type of array fields with scalar component.  Call
1174         maybe_apply_pragma_scalar_storage_order on entry.
1175         * c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs.  Issue
1176         errors on bit-fields and reverse SSO here and not...
1177         (c_mark_addressable): ...here.
1178         (output_init_element): Adjust call to initializer_constant_valid_p.
1179         (c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.
1181 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
1183         * c-decl.c (warn_defaults_to): Update for change in signature
1184         of diagnostic_set_info.
1185         * c-errors.c (pedwarn_c99): Likewise.
1186         (pedwarn_c90): Likewise.
1187         * c-objc-common.c (c_tree_printer): Update for new "caret_p" param
1188         for textinfo::set_location.
1190 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
1191             Thomas Schwinge  <thomas@codesourcery.com>
1192             James Norris  <jnorris@codesourcery.com>
1194         * c-parser.c (c_parser_omp_clause_name): Add support for
1195         PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
1196         (c_parser_omp_clause_default): Add is_oacc argument. Handle
1197         default(none) in OpenACC.
1198         (c_parser_oacc_shape_clause): Allow pointer variables as gang static
1199         arguments.
1200         (c_parser_oacc_clause_tile): New function.
1201         (c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
1202         OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
1203         (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
1204         TILE}.
1205         (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
1206         (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
1207         FIRSTPRIVATE}.
1208         (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
1209         (c_parser_oacc_update): Update the error message for missing clauses.
1210         * c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
1211         and OMP_CLAUSE_INDEPENDENT.
1213 2015-11-05  Marek Polacek  <polacek@redhat.com>
1215         PR c/68090
1216         * c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
1217         deal with pre-evaluation on invalid types.
1219 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
1220             Ilya Verbin  <ilya.verbin@intel.com>
1222         * c-parser.c: Include context.h and gimple-expr.h.
1223         (c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
1224         monotonic together with nonmonotonic.
1225         (c_parser_omp_for_loop): Call c_omp_check_loop_iv.  Call add_stmt here.
1226         (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
1227         (c_parser_omp_target_data, c_parser_omp_target_enter_data,
1228         c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
1229         (c_parser_omp_target): Likewise.  Evaluate num_teams and thread_limit
1230         expressions on combined target teams before the target.
1231         (c_parser_omp_declare_target): If decl has "omp declare target" or
1232         "omp declare target link" attribute, and cgraph or varpool node already
1233         exists, then set corresponding flags.  Call c_finish_omp_clauses
1234         in the parenthesized extended-list syntax case.
1235         * c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
1236         declare target.
1237         * c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
1238         on OMP_CLAUSE_REDUCTION array sections.
1239         (handle_omp_array_sections): Encode low-bound into the MEM_REF, either
1240         into the constant offset, or for variable low-bound using
1241         POINTER_PLUS_EXPR.  For structure element based array sections use
1242         GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
1243         (c_finish_omp_clauses): Drop generic_field_head, structure
1244         elements are now always mapped even as array section bases,
1245         diagnose same var in data sharing and mapping clauses.  Diagnose if
1246         linear step on declare simd is neither a constant nor a uniform
1247         parameter.  Look through POINTER_PLUS_EXPR for array section
1248         reductions.  Diagnose the same var or function appearing multiple
1249         times on the same directive.  Fix up wording for the to clause if t
1250         is neither a FUNCTION_DECL nor a VAR_DECL.  Diagnose nonmonotonic
1251         modifier on kinds other than dynamic or guided or nonmonotonic
1252         modifier together with ordered clause.
1254 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
1255             Chung-Lin Tang  <cltang@codesourcery.com>
1257         * c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
1259 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
1261         * c-array-notation.c: Reorder #include's and remove duplicates.
1262         * c-aux-info.c: Likewise.
1263         * c-convert.c: Likewise.
1264         * c-decl.c: Likewise.
1265         * c-errors.c: Likewise.
1266         * c-lang.c: Likewise.
1267         * c-objc-common.c: Likewise.
1268         * c-parser.c: Likewise.
1269         * c-typeck.c: Likewise.
1271 2015-10-26  Jim Wilson  <jim.wilson@linaro.org>
1273         PR debug/66068
1274         * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
1275         after calling build_qualified_type.
1277 2015-10-27  Cesar Philippidis  <cesar@codesourcery.com>
1278             Thomas Schwinge  <thomas@codesourcery.com>
1279             James Norris  <jnorris@codesourcery.com>
1280             Joseph Myers  <joseph@codesourcery.com>
1281             Julian Brown  <julian@codesourcery.com>
1282             Bernd Schmidt  <bschmidt@redhat.com>
1284         * c-parser.c (c_parser_oacc_shape_clause): New.
1285         (c_parser_oacc_simple_clause): New.
1286         (c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
1287         (OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.
1289 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
1290             James Norris  <jnorris@codesourcery.com>
1291             Cesar Philippidis  <cesar@codesourcery.com>
1293         PR c/64765
1294         PR c/64880
1295         * c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
1296         parameters, and handle these.  Adjust all users.
1297         (c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
1298         into...
1299         (c_parser_oacc_kernels_parallel): ... this new function.  Adjust
1300         all users.
1301         * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
1302         declare functions.
1303         (c_finish_omp_construct): Declare function.
1304         * c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
1305         Merge functions into...
1306         (c_finish_omp_construct): ... this new function.
1308 2015-10-22  Richard Biener  <rguenther@suse.de>
1310         * c-typeck.c (c_finish_omp_clauses): Properly convert operands
1311         before folding a MINUS_EXPR.
1313 2015-10-21  Marek Polacek  <polacek@redhat.com>
1315         PR c/68024
1316         * c-decl.c (start_function): Warn about vararg functions without
1317         a prototype.
1319 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
1321         * c-typeck.c (build_conditional_expr): Use boolean vector
1322         type for vector comparison.
1323         (build_vec_cmp): New.
1324         (build_binary_op): Use build_vec_cmp for comparison.
1326 2015-10-20  Marek Polacek  <polacek@redhat.com>
1328         * c-parser.c (is_cilkplus_vector_p): Don't define here.
1330 2015-10-20  Marek Polacek  <polacek@redhat.com>
1332         PR c/67964
1333         * c-parser.c (c_parser_attributes): Break out of the loop if the
1334         token after an attribute isn't a comma.
1336 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
1337             Aldy Hernandez  <aldyh@redhat.com>
1339         * c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
1340         (c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
1341         (c_parser_omp_variable_list): Handle structure elements for
1342         map, to and from clauses.  Handle array sections in reduction
1343         clause.  Formatting fixes.
1344         (c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
1345         if clause modifiers.
1346         (c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
1347         c_parser_omp_clause_priority, c_parser_omp_clause_hint,
1348         c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
1349         c_parser_omp_clause_is_device_ptr): New functions.
1350         (c_parser_omp_clause_ordered): Parse optional parameter.
1351         (c_parser_omp_clause_reduction): Handle array reductions.
1352         (c_parser_omp_clause_schedule): Parse optional simd modifier.
1353         (c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
1354         functions.
1355         (c_parser_omp_clause_linear): Parse linear clause modifiers.
1356         (c_parser_omp_clause_depend_sink): New function.
1357         (c_parser_omp_clause_depend): Parse source/sink depend kinds.
1358         (c_parser_omp_clause_map): Parse release/delete map kinds and
1359         optional always modifier.
1360         (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
1361         and c_finish_omp_clauses callers.
1362         (c_parser_omp_all_clauses): Likewise.  Parse OpenMP 4.5 clauses.
1363         Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
1364         (c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
1365         (OMP_CRITICAL_CLAUSE_MASK): Define.
1366         (c_parser_omp_critical): Parse critical clauses.
1367         (c_parser_omp_for_loop): Handle doacross loops, adjust
1368         c_finish_omp_for and c_finish_omp_clauses callers.
1369         (OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
1370         (c_parser_omp_simd): Allow ordered clause if it has no parameter.
1371         (OMP_FOR_CLAUSE_MASK): Add linear clause.
1372         (c_parser_omp_for): Disallow ordered clause when combined with
1373         distribute.  Disallow linear clause when combined with distribute
1374         and not combined with simd.
1375         (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
1376         (c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
1377         parse clauses and if depend clause is found, don't parse a body.
1378         (c_parser_omp_parallel): Disallow copyin clause on target parallel.
1379         Allow target parallel without for after it.
1380         (OMP_TASK_CLAUSE_MASK): Add priority clause.
1381         (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
1382         (c_parser_omp_target_data): Diagnose no map clauses or clauses with
1383         invalid kinds.
1384         (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
1385         (OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
1386         OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
1387         (c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
1388         functions.
1389         (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
1390         defaultmap and is_device_ptr clauses.
1391         (c_parser_omp_target): Parse target parallel and target simd.  Set
1392         OMP_TARGET_COMBINED on combined constructs.  Parse target enter data
1393         and target exit data.  Diagnose invalid map kinds.
1394         (OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
1395         (c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
1396         construct.
1397         (c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
1398         &omp_priv.
1399         (OMP_TASKLOOP_CLAUSE_MASK): Define.
1400         (c_parser_omp_taskloop): New function.
1401         (c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
1402         handle PRAGMA_OMP_TASKLOOP.
1403         (c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
1404         * c-tree.h (c_finish_omp_clauses): Add two new arguments.
1405         * c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
1406         Add IS_OMP argument, handle structure element bases, diagnose
1407         bitfields, pass IS_OMP recursively, diagnose known zero length
1408         array sections in depend clauses, handle array sections in reduction
1409         clause, diagnose negative length even for pointers.
1410         (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
1411         types, pass IS_OMP down to handle_omp_array_sections_1, handle
1412         array sections in reduction clause, set
1413         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
1414         length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
1415         (c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
1416         Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
1418 2015-10-06  Marek Polacek  <polacek@redhat.com>
1420         * c-parser.c (c_parser_statement_after_labels): Use
1421         protected_set_expr_location.
1422         (c_parser_omp_clause_num_gangs): Likewise.
1423         (c_parser_omp_clause_num_threads): Likewise.
1424         (c_parser_omp_clause_num_workers): Likewise.
1425         (c_parser_omp_clause_vector_length): Likewise.
1426         (c_parser_omp_clause_num_teams): Likewise.
1427         (c_parser_omp_clause_thread_limit): Likewise.
1428         * c-typeck.c (build_c_cast): Likewise.
1429         (c_cast_expr): Likewise.
1431 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
1433         * c-typeck.c (c_tree_equal): Use real_equal instead of
1434         REAL_VALUES_EQUAL.
1436 2015-10-04  Jason Merrill  <jason@redhat.com>
1438         * c-parser.c (c_lex_one_token): Handle @synchronized.
1439         * c-decl.c (match_builtin_function_types): A declaration of a built-in
1440         can change whether the function is transaction_safe.
1442 2015-10-02  Marek Polacek  <polacek@redhat.com>
1444         PR c/67730
1445         * c-typeck.c (convert_for_assignment): Use the expansion point
1446         location throughout.
1448 2015-10-02  Marek Polacek  <polacek@redhat.com>
1450         PR c/64249
1451         * c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
1452         and pass it down to c_parser_if_statement.
1453         (c_parser_else_body): Add CHAIN parameter and pass it down to
1454         c_parser_statement_after_labels.
1455         (c_parser_if_statement): Add CHAIN parameter.  Add code to warn about
1456         duplicated if-else-if conditions.
1458 2015-10-01  Marek Polacek  <polacek@redhat.com>
1460         * c-typeck.c (convert_for_assignment): Improve commentary.
1462 2015-09-30  Marek Polacek  <polacek@redhat.com>
1464         PR c/67730
1465         * c-typeck.c (c_finish_return): Use the expansion point location for
1466         certain "return with value" warnings.
1468 2015-09-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1470         * c-parser.c (pragma_lex): Add loc argument.
1472 2015-09-15  Marek Polacek  <polacek@redhat.com>
1474         PR c/67580
1475         * c-decl.c (tag_exists_p): New function.
1476         * c-parser.c (c_parser_declaration_or_fndef): Give a hint when
1477         struct/union/enum keywords are missing.
1478         * c-tree.h (tag_exists_p): Declare.
1480 2015-09-15  Marek Polacek  <polacek@redhat.com>
1482         * c-decl.c (lookup_label): Return NULL_TREE instead of 0.
1483         (lookup_tag): Change the type of THISLEVEL_ONLY to bool.
1484         Return NULL_TREE instead of 0.
1485         (lookup_name): Return NULL_TREE instead of 0.
1486         (lookup_name_in_scope): Likewise.
1487         (shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
1488         (parser_xref_tag): Use false instead of 0.
1489         (start_struct): Use true instead of 1.
1490         (start_enum): Use true instead of 1 and NULL_TREE instead of 0.
1492 2015-09-14  Marek Polacek  <polacek@redhat.com>
1494         * c-typeck.c (set_nonincremental_init_from_string): Use
1495         HOST_WIDE_INT_M1U when shifting a negative value.
1497 2015-09-09  Mark Wielaard  <mjw@redhat.com>
1499         * c-typeck.c (build_binary_op): Check and warn when nonnull arg
1500         parm against NULL.
1502 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
1504         PR c/67502
1505         * c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
1506         into OMP_FOR_PRE_BODY rather than before the loop.
1508 2015-09-09  Jakub Jelinek  <jakub@redhat.com>
1510         PR c/67501
1511         * c-parser.c (c_parser_oacc_all_clauses,
1512         c_parser_omp_all_clauses): Remove invalid clause from
1513         list of clauses even if parser->error is set.
1515         PR c/67500
1516         * c-parser.c (c_parser_omp_clause_aligned,
1517         c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
1518         test for errors.
1519         * c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
1520         error_mark_node.
1522         PR c/67495
1523         * c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
1524         instead of c_parser_unary_expression.  If the result is !lvalue_p,
1525         wrap the result of c_fully_fold into NON_LVALUE_EXPR.
1527 2015-09-04  Marek Polacek  <polacek@redhat.com>
1529         PR sanitizer/67279
1530         * c-typeck.c (build_binary_op): Don't instrument static initializers.
1532 2015-09-03  Martin Sebor  <msebor@redhat.com>
1534         PR c/66516
1535         * c-typeck.c (convert_arguments, parser_build_unary_op,
1536         build_conditional_expr, c_cast_expr, convert_for_assignment,
1537         build_binary_op, _objc_common_truthvalue_conversion): Call
1538         reject_gcc_builtin.
1539         (c_decl_implicit): Define.
1541 2015-09-02  Marek Polacek  <polacek@redhat.com>
1543         PR c/67432
1544         * c-parser.c (c_parser_enum_specifier): Give a better error for
1545         an empty enum.
1547 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
1549         * c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
1551 2015-08-12  Marek Polacek  <polacek@redhat.com>
1553         * c-decl.c (grokdeclarator): Call error_at instead of error and pass
1554         LOC to it.
1556 2015-08-03  Marek Polacek  <polacek@redhat.com>
1558         PR c/67088
1559         * c-decl.c (check_bitfield_type_and_width): Add location parameter.
1560         Use it.
1561         (grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
1563 2015-08-02  Patrick Palka  <ppalka@gcc.gnu.org>
1565         * c-parser.c (c_parser_if_body): Take token_indent_info
1566         argument. Call warn_for_misleading_indentation even when the
1567         body is a semicolon.  Extract token_indent_infos corresponding
1568         to the guard, body and next tokens.  Adjust call to
1569         warn_for_misleading_indentation accordingly.
1570         (c_parser_else_body): Likewise.
1571         (c_parser_if_statement): Likewise.
1572         (c_parser_while_statement): Likewise.
1573         (c_parser_for_statement): Likewise.
1575 2015-07-28  Luis Felipe Strano Moraes  <luis.strano@gmail.com>
1576             Manuel López-Ibáñez  <manu@gcc.gnu.org>
1578         * c-decl.c (get_parm_info): Remove static var. Update warning
1579         message.
1581 2015-07-27  Marek Polacek  <polacek@redhat.com>
1583         PR c++/66555
1584         PR c/54979
1585         * c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
1587 2015-07-20  Marek Polacek  <polacek@redhat.com>
1589         PR c++/55095
1590         * c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
1591         (build_binary_op): Warn about left shift overflows.
1593 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1595         * c-array-notation.c: Adjust includes for flags.h changes.
1596         * c-objc-common.c: Likewise.
1598 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
1600         * c-array-notation.c: Adjust includes.
1601         * c-aux-info.c: Likewise.
1602         * c-convert.c: Likewise.
1603         * c-decl.c: Likewise.
1604         * c-errors.c: Likewise.
1605         * c-lang.c: Likewise.
1606         * c-objc-common.c: Likewise.
1607         * c-parser.c: Likewise.
1608         * c-typeck.c: Likewise.
1610 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1612         PR fortran/66605
1613         * c-decl.c (finish_function): Call do_warn_unused_parameter.
1615 2015-06-29  Marek Polacek  <polacek@redhat.com>
1617         PR c/66322
1618         * c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
1619         (c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P.  Don't warn
1620         about -Wswitch-bool here.
1621         (do_case): Update c_add_case_label call.
1622         (c_finish_case): Update c_do_switch_warnings call.
1624 2015-06-27  Marek Polacek  <polacek@redhat.com>
1626         * c-typeck.c: Use VECTOR_TYPE_P throughout.
1628 2015-06-26  Marek Polacek  <polacek@redhat.com>
1630         * c-array-notation.c (fix_builtin_array_notation_fn): Use
1631         INDIRECT_REF_P.
1632         * c-typeck.c (array_to_pointer_conversion): Likewise.
1633         (build_unary_op): Likewise.
1634         (c_finish_return): Likewise.
1636 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
1638         * c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
1639         * c-parser.c: Likewise.
1641 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
1643         * c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
1644         instead of pointer_hash.
1645         (detect_field_duplicates): Likewise.
1647 2015-06-25  Marek Polacek  <polacek@redhat.com>
1649         * c-array-notation.c: Use VAR_P throughout.
1650         * c-decl.c: Likewise.
1651         * c-objc-common.c: Likewise.
1652         * c-parser.c: Likewise.
1653         * c-typeck.c: Likewise.
1655 2015-06-25  Marek Polacek  <polacek@redhat.com>
1657         * c-decl.c: Use is_global_var throughout.
1658         * c-parser.c: Likewise.
1659         * c-typeck.c: Likewise.
1661 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
1663         * c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
1664         * c-aux-info.c: Likewise.
1665         * c-convert.c: Likewise.
1666         * c-decl.c: Likewise.
1667         * c-errors.c: Likewise.
1668         * c-lang.c: Likewise.
1669         * c-objc-common.c: Likewise.
1670         * c-parser.c: Likewise.
1671         * c-typeck.c: Likewise.
1673 2015-06-11  Jan Hubicka  <hubicka@ucw.cz>
1675         PR middle-end/66325
1676         * c-decl.c (start_enum): Set TYPE_PACKED consistently among type
1677         variants.
1679 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
1681         * c-decl.c (pop_scope): Register the main translation unit
1682         through the new debug hook.
1684 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
1686         * c-array-notation.c : Adjust include files.
1687         * c-aux-info.c : Likewise.
1688         * c-convert.c : Likewise.
1689         * c-decl.c : Likewise.
1690         * c-errors.c : Likewise.
1691         * c-lang.c : Likewise.
1692         * c-lang.h : Likewise.
1693         * c-objc-common.c : Likewise.
1694         * c-parser.c : Likewise.
1695         * c-typeck.c : Likewise.
1697 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
1699         * c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
1700         immediately clobber it.
1701         (c_write_global_declarations_1): Remove call to
1702         check_global_declaration_1.
1703         (c_write_global_declarations_2): Remove.
1704         (c_write_final_cleanups): Rename from c_write_global_declarations.
1705         Remove call to finalize_compilation_unit.
1706         Remove calls to debugging hooks.
1707         * c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
1708         * c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
1709         * c-tree.h: Remove c_write_global_declarations.
1711 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
1713         * c-array-notation.c: Adjust includes for restructured coretypes.h.
1714         * c-aux-info.c: Likewise.
1715         * c-convert.c: Likewise.
1716         * c-decl.c: Likewise.
1717         * c-errors.c: Likewise.
1718         * c-lang.c: Likewise.
1719         * c-objc-common.c: Likewise.
1720         * c-parser.c: Likewise.
1721         * c-typeck.c: Likewise.
1723 2015-06-04  Marek Polacek  <polacek@redhat.com>
1725         PR c/66341
1726         * c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
1727         it is a lvalue.
1729 2015-06-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1731         * c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
1732         Warn for empty struct.
1733         (finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.
1735 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
1737         * c-decl.c (start_function): Call plugin before parsing.
1738         (finish_function): Call plugin after parsing.
1740 2015-06-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1742         PR c/49551
1743         * c-decl.c (merge_decls): Merge DECL_COMMON.
1745 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
1747         * Make-lang.in (check_gcc_pallelize): Define.
1749 2015-05-22  Marek Polacek  <polacek@redhat.com>
1751         PR c/47043
1752         * c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
1753         attributes.
1755 2015-05-21  Marek Polacek  <polacek@redhat.com>
1757         * c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
1758         DECL_BUILT_IN.
1760 2015-05-20  Marek Polacek  <polacek@redhat.com>
1762         * c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
1763         * c-typeck.c: Likewise.
1765 2015-05-19  Marek Polacek  <polacek@redhat.com>
1767         * c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
1769 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
1771         PR middle-end/66199
1772         * c-parser.c (c_parser_omp_for_loop): Don't add
1773         OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
1774         OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
1775         (c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
1776         constructs.
1778 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
1780         * c-typeck.c (build_array_ref): Use std::swap instead of explicit
1781         swaps.
1783 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1785         PR fortran/44054
1786         * c-objc-common.c (c_tree_printer): Replace locus pointer with
1787         accessor function.
1789 2015-05-14  Marek Polacek  <polacek@redhat.com>
1791         PR c/66066
1792         PR c/66127
1793         * c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
1794         rather than with 0.
1796 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
1798         * c-parser.c (c_parser_if_body): Add param "if_loc", use it
1799         to add a call to warn_for_misleading_indentation.
1800         (c_parser_else_body): Likewise, adding param "else_loc".
1801         (c_parser_if_statement): Check for misleading indentation.
1802         (c_parser_while_statement): Likewise.
1803         (c_parser_for_statement): Likewise.
1805 2015-05-08  Marek Polacek  <polacek@redhat.com>
1807         PR c/64918
1808         * c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
1809         (output_init_element): Likewise.
1811 2015-05-07  Marek Polacek  <polacek@redhat.com>
1813         PR c/65179
1814         * c-typeck.c (build_binary_op): Warn when left shifting a negative
1815         value.
1817 2015-04-30  Marek Polacek  <polacek@redhat.com>
1819         * c-typeck.c (set_init_label): Call error_at instead of error and
1820         pass LOC to it.
1822         * c-typeck.c (c_incomplete_type_error): Refactor to use %qT.  Print
1823         the type of a decl.
1825         * c-typeck.c (c_build_va_arg): Clarify the error message.
1827 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
1829         * c-parser.c (c_parser_oacc_enter_exit_data): Use
1830         OMP_STANDALONE_CLAUSES.
1832 2015-04-28  Marek Polacek  <polacek@redhat.com>
1834         * c-parser.c (c_parser_binary_expression): Remove duplicate line.
1836 2015-04-28  Marek Polacek  <polacek@redhat.com>
1838         PR c/65901
1839         * c-typeck.c (c_build_va_arg): Require TYPE be a complete type.
1841 2015-04-25  Marek Polacek  <polacek@redhat.com>
1843         PR c/52085
1844         * c-decl.c (finish_enum): Copy over TYPE_ALIGN.  Also check for "mode"
1845         attribute.
1847 2015-04-23  Marek Polacek  <polacek@redhat.com>
1849         PR c/65345
1850         * c-decl.c (set_labels_context_r): New function.
1851         (store_parm_decls): Call it via walk_tree_without_duplicates.
1852         * c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
1853         instead of create_tmp_var.  Build TARGET_EXPR instead of
1854         COMPOUND_EXPR.
1855         (build_atomic_assign): Use create_tmp_var_raw instead of
1856         create_tmp_var.  Build TARGET_EXPRs instead of MODIFY_EXPR.
1858 2015-04-20  Ilya Verbin  <ilya.verbin@intel.com>
1860         * c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
1861         (c_parser_omp_target_update): Add missed %> to error_at ().
1863 2015-04-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1865         PR target/55143
1866         * c-decl.c (c_default_pointer_mode): Remove definition.
1867         * c-tree.h (c_default_pointer_mode): Remove declaration.
1869 2015-03-27  Tobias Burnus  <burnus@net-b.de>
1871         PR c/65586
1872         * c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
1873         error out.
1874         (c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
1875         c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
1876         Update calls to not error for skipped omp pragmas with -fopenmp-simd.
1878 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
1880         * c-decl.c (c_decl_attributes): Also add "omp declare target"
1881         attribute for DECL_EXTERNAL VAR_DECLs.
1883 2015-03-11  Jakub Jelinek  <jakub@redhat.com>
1885         * c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
1886         argument.
1888 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
1890         PR c/65120
1891         * c-typeck.c (parser_build_binary_op): Check for tcc_comparison
1892         before preparing arguments to warn_logical_not_parentheses.
1894 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
1896         PR c/65120
1897         * c-typeck.c (parser_build_binary_op): Don't warn for
1898         !!x == y or !b == y where b is _Bool.
1900 2015-03-09  Marek Polacek  <polacek@redhat.com>
1902         * c-convert.c (convert): Make use of do_ubsan_in_current_function.
1903         * c-decl.c (grokdeclarator): Likewise.
1904         * c-typeck.c (build_binary_op): Likewise.
1906 2015-02-27  Marek Polacek  <polacek@redhat.com>
1908         PR c/65228
1909         * c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
1911 2015-02-14  Marek Polacek  <polacek@redhat.com>
1913         PR c/64768
1914         * c-decl.c (grokdeclarator): Set the range of a flexible array member
1915         declared through a typedef name.
1917 2015-02-13  Marek Polacek  <polacek@redhat.com>
1919         PR c/65050
1920         * c-decl.c (grokdeclarator): Print also the type when giving
1921         the error message about array's incomplete element type.
1923 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
1925         PR c/64824
1926         * c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
1927         check in the POP macro.
1929 2015-02-09  Marek Polacek  <polacek@redhat.com>
1931         PR c/64856
1932         * c-typeck.c (process_init_element): Don't always wrap
1933         COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when
1934         initializing a range of elements.
1936 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
1938         PR c/64824
1939         PR c/64868
1940         * c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.
1942 2015-02-02  Bruno Loff  <bruno.loff@gmail.com>
1944         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
1945         processing enum declaration.
1947 2015-01-29  Marek Polacek  <polacek@redhat.com>
1949         PR c/64709
1950         * c-typeck.c (pop_init_level): If constructor_elements has
1951         exactly one element with integer_zerop value, set constructor_zeroinit
1952         to 1.  Remove braces around warning_init call.
1954 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
1956         PR c/64766
1957         * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
1958         of FUNCTION_DECLs with error_mark_node.
1960 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
1962         PR c/64778
1963         * c-typeck.c (convert_arguments): Return -1 if there are
1964         error_args, even if we've diagnosed too many arguments.
1966 2015-01-21  Richard Biener  <rguenther@suse.de>
1968         PR middle-end/64313
1969         * c-decl.c (merge_decls): Call set_builtin_decl_declared_p
1970         for builtins the user declared correctly.
1972 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
1973             Bernd Schmidt  <bernds@codesourcery.com>
1974             Cesar Philippidis  <cesar@codesourcery.com>
1975             James Norris  <jnorris@codesourcery.com>
1976             Jakub Jelinek  <jakub@redhat.com>
1977             Ilmir Usmanov  <i.usmanov@samsung.com>
1979         * c-parser.c: Include "gomp-constants.h".
1980         (c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
1981         omp_clause_map_kind.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
1982         Use OMP_CLAUSE_SET_MAP_KIND.
1983         (c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
1984         PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
1985         (c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
1986         PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
1987         PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
1988         (c_parser_omp_clause_name): Handle "auto", "async", "copy",
1989         "copyout", "create", "delete", "deviceptr", "gang", "host",
1990         "num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
1991         "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
1992         "present_or_create", "pcreate", "seq", "self", "vector",
1993         "vector_length", "wait", "worker".
1994         (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
1995         (OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
1996         (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
1997         (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
1998         (c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
1999         (c_parser_oacc_wait_list, c_parser_oacc_data_clause)
2000         (c_parser_oacc_data_clause_deviceptr)
2001         (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
2002         (c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
2003         (c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
2004         (c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
2005         (c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
2006         (c_parser_oacc_parallel, c_parser_oacc_update)
2007         (c_parser_oacc_wait): New functions.
2008         * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
2009         (c_finish_oacc_data): New prototypes.
2010         * c-typeck.c: Include "gomp-constants.h".
2011         (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR.  Use
2012         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
2013         OMP_CLAUSE_SET_MAP_KIND.
2014         (c_finish_oacc_parallel, c_finish_oacc_kernels)
2015         (c_finish_oacc_data): New functions.
2016         (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
2017         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
2018         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
2019         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
2020         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
2021         GOMP_MAP_FORCE_DEVICEPTR.
2023 2015-01-09  Michael Collison  <michael.collison@linaro.org>
2025         * c-array-notation.c: Include hash-set.h, machmode.h,
2026         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
2027         fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
2028         * c-aux-info.c: Ditto.
2029         * c-convert.c: Ditto.
2030         * c-decl.c: Ditto.
2031         * c-errors.c: Ditto.
2032         * c-lang.c: Dittoxs.
2033         * c-objc-common.c: Ditto.
2034         * c-parser.c: Ditto.
2035         * c-typeck.c: Include hash-set.h, machmode.h,
2036         vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
2037         fold-const.h, wide-int.h, inchash.h, real.h and
2038         fixed-value.h due to flattening of tree.h.
2040 2015-01-07  Marek Polacek  <polacek@redhat.com>
2042         PR c/64417
2043         * c-typeck.c (process_init_element): Disallow initialization of
2044         a flexible array member with a string constant if the structure
2045         is in an array.
2047 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2049         PR sanitizer/64344
2050         * c-typeck.c (convert_for_assignment, c_finish_return): For
2051         -fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
2052         types also set in_late_binary_op around convert call.
2053         * c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
2054         to integral type casts, if not in_late_binary_op, pass c_fully_fold
2055         result on expr as last argument to ubsan_instrument_float_cast,
2056         if in_late_binary_op, don't use c_save_expr but save_expr.
2058         Update copyright years.
2060 2015-01-05  Marek Polacek  <polacek@redhat.com>
2062         PR c/64423
2063         * c-typeck.c (build_array_ref): Pass loc down to
2064         warn_array_subscript_with_type_char.
2066 2014-12-20  Martin Uecker  <uecker@eecs.berkeley.edu>
2068         * c-typeck.c: New behavious for pointers to arrays with qualifiers
2069         (common-pointer-type): For pointers to arrays take qualifiers from
2070         element type.
2071         (build_conditional_expr): Add warnings for lost qualifiers.
2072         (comp-target-types): Allow pointers to arrays with different qualifiers.
2073         (convert-for-assignment): Adapt warnings for discarded qualifiers. Add
2074         WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
2075         to PEDWARN_FOR_QUALIFIERS.
2077 2014-12-17  Jakub Jelinek  <jakub@redhat.com>
2079         PR sanitizer/64289
2080         * c-convert.c: Include ubsan.h.
2081         (convert): For real -> integral casts and
2082         -fsanitize=float-cast-overflow don't call convert_to_integer, but
2083         instead instrument the float cast directly.
2085 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
2087         * c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
2088         c_finish_stmt_expr): Remove NULL last argument from
2089         create_tmp_var_raw and create_tmp_var calls.
2090         * c-array-notation.c (fix_builtin_array_notation_fn,
2091         build_array_notation_expr, fix_conditional_array_notations_1,
2092         fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
2094 2014-11-28  Marek Polacek  <polacek@redhat.com>
2096         PR c/63862
2097         * c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
2098         convert the right operand to integer type.
2100 2014-11-25  Marek Polacek  <polacek@redhat.com>
2102         PR c/63877
2103         * c-decl.c (start_function): Disable -Wmissing-declarations warning
2104         for inline functions.
2106 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
2108         PR target/63764
2109         * c-typeck.c (build_array_ref): Adjust
2110         convert_vector_to_pointer_for_subscript caller.  If it returns true,
2111         call non_lvalue_loc on the result.
2113 2014-11-11  Richard Biener  <rguenther@suse.de>
2115         * c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
2116         to true.
2118 2014-11-10  Andi Kleen  <ak@linux.intel.com>
2120         PR c/60804
2121         * c-parser.c (c_parser_statement_after_labels): Call
2122         check_no_cilk.
2123         (c_parser_if_statement): Dito.
2124         (c_parser_switch_statement): Dito.
2125         (c_parser_while_statement): Dito.
2126         (c_parser_do_statement): Dito.
2127         (c_parser_for_statement): Dito.
2128         * c-typeck.c (c_finish_loop): Dito.
2130 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
2132         * c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
2133         OPT_Wshift_count_overflow in the warnings.
2135 2014-10-30  Marek Polacek  <polacek@redhat.com>
2137         * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
2138         print the stripped version as well, if they're not the same.
2140 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
2142         * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
2143         machine_mode.
2145 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
2147         * c-decl.c: Adjust include files.
2148         * c-parser.c: Ditto.
2150 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
2151             Tom Tromey  <tromey@redhat.com>
2153         * c-tree.h (enum c_oracle_request): New.
2154         (c_binding_oracle_function): New typedef.
2155         (c_binding_oracle, c_pushtag, c_bind): Declare.
2156         * c-decl.c (c_binding_oracle): New global.
2157         (I_SYMBOL_CHECKED): New macro.
2158         (i_symbol_binding): New function.
2159         (I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine.
2160         (I_TAG_CHECKED): New macro.
2161         (i_tag_binding): New function.
2162         (I_TAG_BINDING, I_TAG_DECL): Redefine.
2163         (I_LABEL_CHECKED): New macro.
2164         (i_label_binding): New function.
2165         (I_LABEL_BINDING, I_LABEL_DECL): Redefine.
2166         (c_print_identifier): Save and restore c_binding_oracle.
2167         (c_pushtag, c_bind): New functions.
2169 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
2171         * c-typeck.c: Adjust include files.
2173 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2175         PR c++/53061
2176         * c-objc-common.c (c_objc_common_init): Do not do diagnostics
2177         initialization here...
2178         (c_initialize_diagnostics): ... but here. Set defaults after
2179         building pretty-printer.
2181 2014-10-23  Marek Polacek  <polacek@redhat.com>
2183         PR c/63626
2184         * c-decl.c (pop_scope): Don't print warning in external_scope.
2186 2014-10-19  Marek Polacek  <polacek@redhat.com>
2188         PR c/63567
2189         * c-typeck.c (output_init_element): Allow initializing objects with
2190         static storage duration with compound literals even in C99 and add
2191         pedwarn for it.
2193 2014-10-17  Marek Polacek  <polacek@redhat.com>
2195         PR c/63567
2196         * c-typeck.c (digest_init): Allow initializing objects with static
2197         storage duration with compound literals even in C99 and add pedwarn
2198         for it.
2200 2014-10-17  Marek Polacek  <polacek@redhat.com>
2202         PR c/63543
2203         * c-tree.h (C_TYPE_ERROR_REPORTED): Define.
2204         * c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
2205         error multiple times.  Print the type.
2207 2014-10-17  Marek Polacek  <polacek@redhat.com>
2209         PR c/63549
2210         * c-typeck.c (build_array_ref): Bail if the index in an incomplete
2211         type.
2213 2014-10-17  Marek Polacek  <polacek@redhat.com>
2215         * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
2216         (start_function): Use OPT_Wimplicit_int instead of 0.
2217         (store_parm_decls_oldstyle): Likewise.
2219 2014-10-17  Alan Modra  <amodra@gmail.com>
2221         PR middle-end/61848
2222         * c-decl.c (merge_decls): Don't merge section name or tls model
2223         to newdecl symtab node, instead merge to olddecl.  Override
2224         existing olddecl section name.  Set tls_model for all thread-local
2225         vars, not just OMP thread-private ones.  Remove incorrect comment.
2227 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
2229         * c-decl.c: Adjust include files.
2231 2014-10-14  DJ Delorie  <dj@redhat.com>
2233         * c-parser.c (c_parse_init): Add RID entries for each __intN.
2234         (c_token_starts_typename): Check all __intN, not just __int128.
2235         (c_token_starts_declspecs): Likewise.
2236         (c_parser_declspecs): Likewise.
2237         (c_parser_attribute_any_word): Likewise.
2238         (c_parser_objc_selector): Likewise.
2239         * c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
2240         (struct c_declspecs): Add int_n_idx field to record *which* __intN
2241         is specified.
2242         * c-decl.c (declspecs_add_type): Check for all __intN, not just
2243         __int128.
2244         (finish_declspecs): Likewise.
2246 2014-10-13  Anthony Brandon  <anthony.brandon@gmail.com>
2248         * c-parser.c (c_parser_all_labels): New function to replace
2249         the duplicate code.
2250         (c_parser_statement): Call the new function.
2252 2014-10-09  Marek Polacek  <polacek@redhat.com>
2254         PR c/63480
2255         * c-typeck.c (pop_init_level): Don't warn about initializing
2256         with { }.
2258 2014-10-07  Marek Polacek  <polacek@redhat.com>
2260         PR c/59717
2261         * c-decl.c (header_for_builtin_fn): New function.
2262         (implicitly_declare): Suggest which header to include.
2264 2014-10-07  Marek Polacek  <polacek@redhat.com>
2266         * c-convert.c (convert): Use error_operand_p.
2267         * c-typeck.c (require_complete_type): Likewise.
2268         (really_atomic_lvalue): Likewise.
2269         (digest_init): Likewise.
2270         (handle_omp_array_sections_1): Likewise.
2272 2014-10-03  Marek Polacek  <polacek@redhat.com>
2274         PR c/63453
2275         * c-decl.c (pop_scope): Don't warn about "inline function declared
2276         but never defined" for functions marked with gnu_inline attribute.
2278 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
2280         PR c++/63249
2281         * c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
2282         on low_bound and length.
2284 2014-09-24  Marek Polacek  <polacek@redhat.com>
2286         PR c/61405
2287         PR c/53874
2288         * c-parser.c: Don't define CPP_KEYWORD.
2289         (c_parser_switch_statement): Pass original type to c_finish_case.
2290         * c-tree.h (c_finish_case): Update declaration.
2291         * c-typeck.c (c_finish_case): Add TYPE parameter.  Pass it
2292         conditionally to c_do_switch_warnings.
2294 2014-09-03  Marek Polacek  <polacek@redhat.com>
2296         PR c/62024
2297         * c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
2298         conversions.
2300 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
2301             Balaji V. Iyer  <balaji.v.iyer@intel.com>
2302             Igor Zamyatin  <igor.zamyatin@intel.com>
2304         * c-parser.c (c_parser_cilk_for): New function.
2305         (c_parser_cilk_grainsize): Likewise.
2306         (c_get_temp_regvar): Likewise.
2307         (c_parser_statement_after_labels): Added RID_CILK_FOR case.
2308         (c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
2309         (c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
2310         * c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
2311         case.
2313 2014-08-27  Chen Gang  <gang.chen.5i5j@gmail.com>
2315         * c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
2316         with using HOST_WIDE_INT without truncation to 'int'
2318 2014-08-22  Marek Polacek  <polacek@redhat.com>
2320         PR c++/62199
2321         * c-typeck.c (parser_build_binary_op): Adjust call to
2322         warn_logical_not_parentheses.
2324 2014-08-22  Igor Zamyatin  <igor.zamyatin@intel.com>
2326         PR other/62008
2327         * c-parser.c (c_parser_array_notation): Check for correct
2328         type of an array added.
2330 2014-08-19  Marek Polacek  <polacek@redhat.com>
2332         PR c++/62153
2333         * c-typeck.c (build_binary_op): If either operand of a comparison
2334         is a boolean expression, call maybe_warn_bool_compare.
2336 2014-08-19  Patrick Palka  <ppalka@gcc.gnu.org>
2338         PR c/45584
2339         * c-typeck.c (build_c_cast): Do a conversion even when the
2340         TYPE_MAIN_VARIANTs are the same.
2342 2014-08-19  Marek Polacek  <polacek@redhat.com>
2344         * c-decl.c (diagnose_mismatched_decls): Unconditionally call
2345         pedwarn_c99 instead of pedwarn.
2346         (grokfield): Likewise.
2347         (warn_defaults_to): New function.
2348         (grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
2349         Unconditionally call pedwarn_c99 instead of pedwarn.
2350         (start_function): Call warn_defaults_to instead of pedwarn_c99.
2351         (declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
2352         check flag_isoc11 before.
2353         * c-errors.c (pedwarn_c99): Change the return type to bool.
2354         Handle -Wc99-c11-compat.
2355         * c-parser.c (disable_extension_diagnostics): Handle
2356         warn_c99_c11_compat.
2357         (restore_extension_diagnostics): Likewise.
2358         (c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
2359         instead of pedwarn, don't check flag_isoc11 before.
2360         (c_parser_declspecs): Likewise.
2361         (c_parser_alignas_specifier): Likewise.
2362         (c_parser_alignof_expression): Likewise.
2363         (c_parser_generic_selection): Likewise.
2364         * c-tree.h (pedwarn_c99): Update declaration.
2365         * c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
2366         of pedwarn_c99.
2368 2014-08-19  Marek Polacek  <polacek@redhat.com>
2370         * c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
2371         to pedwarn_c90.
2372         * c-errors.c: Include "opts.h".
2373         (pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
2374         * c-parser.c (disable_extension_diagnostics): Handle negative value
2375         of warn_c90_c99_compat, too.
2376         (restore_extension_diagnostics): Likewise.
2377         (c_parser_compound_statement_nostart): Pass
2378         OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.
2380 2014-08-12  Marek Polacek  <polacek@redhat.com>
2382         * c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
2383         Add pedwarn.
2384         (c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
2385         Likewise.
2386         (c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.
2388 2014-08-10  Marek Polacek  <polacek@redhat.com>
2390         PR c/51849
2391         * c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
2392         Call pedwarn_c90 instead of pedwarn.
2393         (check_bitfield_type_and_width): Likewise.
2394         (declspecs_add_qual): Likewise.
2395         (declspecs_add_type): Likewise.
2396         (warn_variable_length_array): Unify function for -pedantic and -Wvla.
2397         Adjust to only call pedwarn_c90.
2398         (grokdeclarator): Remove pedantic && !flag_isoc99 check.  Call
2399         pedwarn_c90 instead of pedwarn.
2400         * c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
2401         * c-parser.c (disable_extension_diagnostics): Handle
2402         warn_c90_c99_compat.
2403         (restore_extension_diagnostics): Likewise.
2404         (c_parser_enum_specifier): Remove check for !flag_isoc99.  Call
2405         pedwarn_c90 instead of pedwarn.
2406         (c_parser_initelt): Likewise.
2407         (c_parser_postfix_expression): Likewise.
2408         (c_parser_postfix_expression_after_paren_type): Likewise.
2409         (c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
2410         * c-tree.h: Fix formatting.
2411         * c-typeck.c (build_array_ref): Remove check for !flag_isoc99.  Call
2412         pedwarn_c90 instead of pedwarn.
2414 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
2416         * c-typeck.c: Remove include of pointer-set.h.
2418 2014-08-07  Marek Polacek  <polacek@redhat.com>
2420         * c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.
2422 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
2424         * c-typeck.c: Use hash_map instead of pointer_map.
2426 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
2428         * c-decl.c: Use hash_set instead of pointer_set.
2430 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
2432         PR middle-end/61455
2433         * c-array-notation.c (expand_array_notations): Handling
2434         of DECL_EXPR added.
2436 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
2438         PR c++/60517
2439         * c-typeck.c (c_finish_return): Return 0 instead of the address of
2440         a local variable.
2442 2014-07-30  Tom Tromey  <tromey@redhat.com>
2444         * c-typeck.c (struct constructor_stack) <designator_depth>: New
2445         field.
2446         (really_start_incremental_init, push_init_level): Initialize
2447         designator_depth.
2448         (pop_init_level): Set global designator_depth.
2449         (process_init_element): Check for designated_init attribute.
2451 2014-07-20  Marek Polacek  <polacek@redhat.com>
2453         PR c/61852
2454         * c-decl.c (implicit_decl_warning): Add location_t parameter.  Use it.
2455         (implicitly_declare): Pass location to implicit_decl_warning.
2457 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
2459         PR middle-end/61294
2460         * c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
2461         If non-NULL, call c_parser_check_literal_zero.
2462         (c_parser_check_literal_zero): New function.
2463         (c_parser_postfix_expression_after_primary): Adjust
2464         c_parser_expr_list caller, handle -Wmemset-transposed-args.
2466 2014-07-06  Marek Polacek  <polacek@redhat.com>
2468         PR c/6940
2469         * c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
2470         * c-tree.h (C_ARRAY_PARAMETER): Define.
2471         * c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
2472         function parameter.
2474 2014-07-02  Jan Hubicka  <hubicka@ucw.cz>
2475             Chen Gang  <gang.chen.5i5j@gmail.com>
2477         * c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
2478         releasing symbol.
2480 2014-07-01  Marek Polacek  <polacek@redhat.com>
2482         * c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
2483         instead of 0 to WARN_FOR_ASSIGNMENT.
2485 2014-07-01  Marek Polacek  <polacek@redhat.com>
2487         PR c/58286
2488         * c-typeck.c (convert_for_assignment): Pass
2489         OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
2491 2014-06-30  Marek Polacek  <polacek@redhat.com>
2493         * c-decl.c (grokdeclarator): Don't instrument VLAs if the function
2494         has no_sanitize_undefined attribute.
2496 2014-06-30  Igor Zamyatin  <igor.zamyatin@intel.com>
2498         PR middle-end/57541
2499         * c-array-notation.c (fix_builtin_array_notation_fn):
2500         Check for 0 arguments in builtin call. Check that bultin argument is
2501         correct.
2502         * c-parser.c (c_parser_array_notation): Check for incorrect initial
2503         index.
2505 2014-06-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2507         * c-parser.c (c_parser_declaration_or_fndef): Discard all type
2508         qualifiers in __auto_type for atomic types.
2509         (c_parser_typeof_specifier): Discard all type qualifiers in
2510         __typeof__ for atomic types.
2512 2014-06-25  Marek Polacek  <polacek@redhat.com>
2514         PR c/61162
2515         * c-parser.c (c_parser_statement_after_labels): Pass the location of
2516         the return expression to c_finish_return.
2518 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
2520         * c-typeck.c (c_finish_omp_clauses): Make sure
2521         OMP_CLAUSE_LINEAR_STEP has correct type.
2523 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
2525         * c-decl.c: Adjust.
2527 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
2529         * c-parser.c (c_parser_omp_for_loop): For
2530         #pragma omp parallel for simd move lastprivate clause from parallel
2531         to for rather than simd.
2533 2014-06-23  Marek Polacek  <polacek@redhat.com>
2535         * c-typeck.c (parser_build_binary_op): Don't call
2536         warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
2538 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
2540         * c-parser.c (c_parser_omp_threadprivate): Likewise.
2541         * c-decl.c (merge_decls): Likewise.
2543 2014-06-09  Marek Polacek  <polacek@redhat.com>
2545         PR c/36446
2546         * c-typeck.c (error_init): Call inform instead of error_at.
2547         (pedwarn_init): Call inform instead of pedwarn.
2548         (warning_init): Call inform instead of warning_at.
2550 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
2552         * c-decl.c (merge_decls): Use set_decl_section_name.
2553         (duplicate_decls): Remove node if it exists.
2555 2014-06-05  S. Gilles  <sgilles@terpmail.umd.edu>
2557         PR c/53119
2558         * c-typeck.c (push_init_level, process_init_element,
2559         pop_init_level): Correct check for zero initialization, move
2560         missing brace warning to respect zero initialization.
2562 2014-06-05  Marek Polacek  <polacek@redhat.com>
2564         PR c/56724
2565         * c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.
2567 2014-06-05  Marek Polacek  <polacek@redhat.com>
2569         PR c/49706
2570         * c-typeck.c (parser_build_binary_op): Warn when logical not is used
2571         on the left hand side operand of a comparison. 
2573 2014-06-05  Marek Polacek  <polacek@redhat.com>
2575         PR c/48062
2576         * c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
2577         Print note only if the warning was printed.
2579 2014-06-04  Igor Zamyatin  <igor.zamyatin@intel.com>
2581         PR c/58942
2582         * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
2583         with a pointer.
2585 2014-06-03  Marek Polacek  <polacek@redhat.com>
2587         PR c/60439
2588         * c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
2589         c_start_case.
2590         * c-tree.h (c_start_case): Update.
2591         * c-typeck.c (c_start_case): Add new boolean parameter.  Warn if
2592         switch condition has boolean value.
2594 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
2596         * c-decl.c: Include builtins.h.
2597         * c-parser.c: Likewise.
2599 2014-05-27  Marek Polacek  <polacek@redhat.com>
2601         PR c/56724
2602         * c-typeck.c (convert_arguments): Get location of a parameter.  Change
2603         error and warning calls to error_at and warning_at.  Pass location of
2604         a parameter to it.  Call warning_at with OPT_Wtraditional_conversion.
2605         (convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
2606         WARN_FOR_QUALIFIERS.  Pass expr_loc to those.
2608 2014-05-26  Igor Zamyatin  <igor.zamyatin@intel.com>
2610         PR c/61191
2611         * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
2612         function parameters.
2614 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
2616         * c-decl.c (merge_decls): Preserve symtab node pointers.
2617         (duplicate_decls): Free new decl.
2619 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
2621         * c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
2622         initialization.
2624         * c-parser.c (c_parser_omp_target): Return bool values.
2626 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
2628         * c-parser.c (c_parser_omp_clause_thread_limit): Rename
2629         num_teams_loc variable to num_thread_limit_loc.
2631 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
2633         * c-array-notation.c (expand_array_notations): Use void_node
2634         instead of void_zero_node.
2636 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
2638         * c-decl.c (finish_struct): Adjust.
2639         (finish_enum): Likewise.
2640         (bind): Adjust.
2641         (record_inline_static): Likewise.
2642         (push_scope): Likewise.
2643         (make_label): Likewise.
2644         (lookup_label_for_goto): Likewise.
2645         (finish_struct): Likewise.
2646         (finish_enum): Likewise.
2647         (store_parm_decls): Likewise.
2648         (c_push_function_context): Likewise.
2649         * c-lang.h: Remove usage of variable_size gty attribute.
2650         * c-parser.c (c_parse_init): Adjust.
2651         (c_parse_file): Likewise.
2653 2014-05-13  Marek Polacek  <polacek@redhat.com>
2655         PR c/61162
2656         * c-typeck.c (convert_for_assignment): Pass location to
2657         WARN_FOR_ASSIGNMENT instead of input_location.
2659 2014-05-10  Marek Polacek  <polacek@redhat.com>
2661         * c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
2662         maybe_warn_string_init.
2663         (c_parser_postfix_expression_after_paren_type): Pass type_loc to
2664         maybe_warn_string_init.
2665         * c-tree.h (maybe_warn_string_init): Update declaration.
2666         * c-typeck.c (maybe_warn_string_init): Add location parameter.
2667         Call pedwarn_init with loc instead of with input_location.
2668         (digest_init): Pass init_loc to maybe_warn_string_init.
2669         (pop_init_level): Call pedwarn_init with loc instead of with
2670         input_location.
2671         (set_init_index): Likewise.
2672         (process_init_element): Likewise.
2674 2014-05-09  Marek Polacek  <polacek@redhat.com>
2676         PR c/61096
2677         * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
2678         (c_parser_initelt): Pass location to set_init_label.  Pass array index
2679         location to set_init_index.
2680         * c-tree.h (push_init_level): Update declaration.
2681         (pop_init_level): Likewise.
2682         (set_init_index): Likewise.
2683         (set_init_label): Likewise.
2684         * c-typeck.c (error_init): Add location parameter.  Call error_at
2685         instead of error.
2686         (digest_init): Pass init_loc to error_init.
2687         (really_start_incremental_init):
2688         (push_init_level): Add location parameter.  Pass loc to pop_init_level
2689         and error_init.
2690         (pop_init_level): Likewise.
2691         (set_designator): Add location parameter.  Pass loc to pop_init_level,
2692         push_init_level, and error_init.
2693         (set_init_index): Add location parameter.  Pass loc to error_init and
2694         set_designator.
2695         (set_init_label): Likewise.
2696         (output_init_element): Pass loc to error_init.
2697         (process_init_element): Pass loc to error_init, pop_init_level,
2698         pedwarn_init, and push_init_level.
2700 2014-05-09  Marek Polacek  <polacek@redhat.com>
2702         PR c/50459
2703         * c-parser.c (c_parser_attributes): Parse the arguments as an
2704         expression-list if the attribute takes identifier.
2706 2014-05-08  Marek Polacek  <polacek@redhat.com>
2708         PR c/61053
2709         * c-decl.c (grokdeclarator): Use min_align_of_type instead of
2710         TYPE_ALIGN_UNIT.
2712 2014-05-08  Marek Polacek  <polacek@redhat.com>
2714         PR c/61077
2715         * c-decl.c (start_function): Warn for _Atomic-qualified return type
2716         of main.
2718 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
2719             Mike Stump  <mikestump@comcast.net>
2720             Richard Sandiford  <rdsandiford@googlemail.com>
2722         * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
2723         (finish_enum): Use wide-int interfaces.
2724         * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
2725         * c-typeck.c (build_c_cast): Likewise.
2726         (set_nonincremental_init_from_string): Likewise.
2727         (c_tree_equal): Likewise.
2729 2014-05-02  Marek Polacek  <polacek@redhat.com>
2731         PR c/25801
2732         * c-typeck.c (c_size_in_bytes): Update comment.  Don't call error.
2733         Return size_one_node when the type is not complete.
2734         (pointer_diff): Remove comment.
2735         (build_unary_op): Improve error messages.
2737 2014-05-02  Marek Polacek  <polacek@redhat.com>
2739         * c-typeck.c (c_finish_return): Separate warning_at calls.
2741 2014-05-02  Marek Polacek  <polacek@redhat.com>
2743         * c-tree.h (error_init): Remove declaration.
2744         (pedwarn_init): Likewise.
2745         * c-typeck.c (error_init): Make static and move above.
2746         (pedwarn_init): Likewise.
2747         (warning_init): Move above.
2748         (maybe_warn_string_init): Likewise.
2750 2014-05-01  Jeff Law  <law@redhat.com>
2752         Revert:
2754         2014-04-24  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2755         * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
2756         avoid goto.
2758 2014-05-02  Marek Polacek  <polacek@redhat.com>
2760         PR c/60784
2761         * c-typeck.c (push_init_level): Set constructor_designated to
2762         p->designated for structures.
2764 2014-05-01  Marek Polacek  <polacek@redhat.com>
2766         PR c/60915
2767         * c-parser.c (c_parser_declaration_or_fndef): Give better error if
2768         function-definition has an attribute after the declarator.
2770 2014-05-01  Marek Polacek  <polacek@redhat.com>
2772         PR c/60257
2773         * c-typeck.c (warning_init): Add location_t parameter.  Call
2774         warning_at instead of warning.
2775         (push_init_level): Pass input_location to warning_init.
2776         (add_pending_init): Add location_t parameter.  Pass loc to
2777         warning_init.
2778         (set_nonincremental_init): Pass input_location to add_pending_init.
2779         (set_nonincremental_init_from_string): Likewise.
2780         (output_init_element): Pass loc to warning_init and to
2781         add_pending_init.
2783 2014-05-01  Marek Polacek  <polacek@redhat.com>
2785         PR c/43395
2786         * c-typeck.c (c_finish_return): Distinguish between label and variable
2787         when warning about returning local address.
2789 2014-05-01  Marek Polacek  <polacek@redhat.com>
2791         PR c/29467
2792         * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
2793         in C89 mode.
2795 2014-05-01  Marek Polacek  <polacek@redhat.com>
2797         PR c/43245
2798         * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
2799         instead of 0 to WARN_FOR_QUALIFIERS.
2801 2014-05-01  Marek Polacek  <polacek@redhat.com>
2803         PR c/56989
2804         * c-typeck.c (default_conversion): Use better location for
2805         error call.
2807 2014-04-30  Marek Polacek  <polacek@redhat.com>
2809         * c-typeck.c (build_binary_op): Call ubsan_instrument_division
2810         also when SANITIZE_FLOAT_DIVIDE is on.
2812 2014-04-30  Marek Polacek  <polacek@redhat.com>
2814         PR c/60139
2815         * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
2816         and pedwarn_init.  Use loc insted of input_location.
2818 2014-04-30  Marek Polacek  <polacek@redhat.com>
2820         PR c/60351
2821         * c-typeck.c (build_binary_op): Use location when warning about
2822         shift count.
2824 2014-04-25  Marek Polacek  <polacek@redhat.com>
2826         PR c/18079
2827         * c-decl.c (diagnose_mismatched_decls): Warn for mismatched
2828         always_inline/noinline and hot/cold attributes.
2830 2014-04-25  Marek Polacek  <polacek@redhat.com>
2832         PR c/60114
2833         * c-parser.c (c_parser_initelt): Pass input_location to
2834         process_init_element.
2835         (c_parser_initval): Pass loc to process_init_element.
2836         * c-tree.h (process_init_element): Adjust declaration.
2837         * c-typeck.c (push_init_level): Pass input_location to
2838         process_init_element.
2839         (pop_init_level): Likewise.
2840         (set_designator): Likewise.
2841         (output_init_element): Add location_t parameter.  Pass loc to
2842         digest_init.
2843         (output_pending_init_elements): Pass input_location to
2844         output_init_element.
2845         (process_init_element): Add location_t parameter.  Pass loc to
2846         output_init_element.
2848 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
2850         * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
2851         atomic-clause, allow comma in between atomic-clause and
2852         seq_cst.
2854 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
2856         PR c/59073
2857         * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
2858         fails, don't set OM_PARALLEL_COMBINED and return NULL.
2860 2014-04-12  Igor Zamyatin  <igor.zamyatin@intel.com>
2862         PR middle-end/60469
2863         * c-array-notation.c (fix_builtin_array_notation_fn): Use
2864         create_tmp_var instead build_decl for creating temps.
2865         (build_array_notation_expr): Likewise.
2866         (fix_conditional_array_notations_1): Likewise.
2867         (fix_array_notation_expr): Likewise.
2868         (fix_array_notation_call_expr): Likewise.
2870 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
2872         PR c++/60689
2873         * c-tree.h (c_build_function_call_vec): New prototype.
2874         * c-typeck.c (build_function_call_vec): Don't call
2875         resolve_overloaded_builtin here.
2876         (c_build_function_call_vec): New wrapper function around
2877         build_function_call_vec.  Call resolve_overloaded_builtin here.
2878         (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
2879         Call c_build_function_call_vec instead of build_function_call_vec.
2880         * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
2881         * c-decl.c (finish_decl): Likewise.
2883 2014-03-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2885         PR c/55383
2886         * c-typeck.c: Use correct format string in cast-qual warning
2888 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
2890         * c-decl.c (c_decl_attributes): Use
2891         lang_hooks.types.omp_mappable_type.
2892         * c-typeck.c (c_finish_omp_clauses): Likewise.
2894 2014-03-06  Marek Polacek  <polacek@redhat.com>
2896         PR c/60197
2897         * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
2898         of checking tree code.
2900 2014-02-19  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2902         * c-parser.c (c_parser_declspecs): Replace call to error by error_at.
2903         (c_parser_parameter_declaration): Likewise.
2905 2014-02-19  Marek Polacek  <polacek@redhat.com>
2907         PR c/60195
2908         * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
2909         Call mark_exp_read on exp.value.
2910         (build_atomic_assign): Set TREE_NO_WARNING on val and old.  Set
2911         TREE_ADDRESSABLE on old instead of val.
2912         (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
2914 2014-02-07  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2916         * c-parser.c (c_parser_get_builtin_args): Replace calls to
2917         C_EXPR_APPEND by vec_safe_push.
2918         * c-tree.h (C_EXPR_APPEND): Remove.
2920 2014-01-31  Marek Polacek  <polacek@redhat.com>
2922         PR c/59963
2923         * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
2924         build_function_call_vec.
2925         (build_function_call): Likewise.
2926         (build_atomic_assign): Likewise.
2927         (build_function_call_vec): Add arg_loc parameter.  Use it.
2928         (convert_arguments): Likewise.
2929         (convert_for_assignment): Rename rhs_loc to expr_loc.
2930         * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
2931         (c_parser_objc_keywordexpr): Likewise.
2932         (c_parser_postfix_expression_after_primary): Call
2933         build_function_call_vec with expr_loc rather than op_loc.
2934         Call c_parser_expr_list to fill arg_loc.  Pass arg_loc to
2935         build_function_call_vec.
2936         (c_parser_expr_list): Add locations parameter.  Fill it with locations
2937         of function arguments.
2938         * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
2940 2014-01-30  Marek Polacek  <polacek@redhat.com>
2942         PR c/59940
2943         * c-typeck.c (build_function_call_vec): Use loc parameter.
2944         (convert_arguments): Add location parameter.  Use it.
2945         (ep_convert_and_check): Likewise.
2946         (build_atomic_assign): Adjust convert_for_assignment call.
2947         (build_modify_expr): Likewise.
2948         (digest_init): Likewise.
2949         (c_finish_return): Likewise.
2950         (build_conditional_expr): Adjust ep_convert_and_check calls.
2951         (convert_for_assignment): Add rhs_loc parameter.  Use it.
2952         (build_binary_op): Adjust convert_and_check and ep_convert_and_check
2953         calls.
2955 2014-01-30  Richard Biener  <rguenther@suse.de>
2957         PR c/59905
2958         * c-typeck.c (build_function_call_vec): Do not replace calls
2959         to a function via an incompatible type with a runtime abort.
2961 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2963         * c-parser.c (c_parser_declaration_or_fndef): Replaced
2964         flag_enable_cilkplus with flag_cilkplus.
2965         (c_parser_direct_declarator_inner): Likewise.
2966         (c_parser_attribute_any_word): Likewise.
2967         (c_parser_attributes): Likewise.
2968         (c_parser_compound_statement): Likewise.
2969         (c_parser_statement_after_labels): Likewise.
2970         (c_parser_if_statement): Likewise.
2971         (c_parser_switch_statement): Likewise.
2972         (c_parser_do_statement): Likewise.
2973         (c_parser_for_statement): Likewise.
2974         (c_parser_unary_expression): Likewise.
2975         (c_parser_postfix_expression): Likewise.
2976         (c_parser_postfix_expression_after_primary): Likewise.
2977         (c_parser_postfix_expression_after_primary): Likewise.
2978         (c_parser_omp_clause_name): Likewise.
2979         (c_finish_omp_declare_simd): Likewise.
2980         (c_parser_cilk_verify_simd): Likewise.
2981         * c-typeck.c (build_array_ref): Likewise.
2982         (build_function_call_vec): Likewise.
2983         (convert_arguments): Likewise.
2984         (build_compound_expr): Likewise.
2985         (c_finish_return): Likewise.
2986         (c_finish_if_stmt): Likewise.
2987         (c_finish_loop): Likewise.
2988         (build_binary_op): Likewise.
2990 2014-01-23  Marek Polacek  <polacek@redhat.com>
2992         PR c/59846
2993         * c-typeck.c (parser_build_binary_op): Use location instead of
2994         input_location.
2995         (build_binary_op): Pass location to shorten_compare.
2997 2014-01-23  Marek Polacek  <polacek@redhat.com>
2999         PR c/58346
3000         * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
3001         an empty aggregate.
3003 2014-01-23  Marek Polacek  <polacek@redhat.com>
3005         PR c/59871
3006         * c-typeck.c (build_compound_expr): Warn even for right-hand operand
3007         of a comma expression.
3008         (emit_side_effect_warnings): Likewise.
3010 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3012         PR c/59825
3013         * c-array-notation.c (expand_array_notation_exprs): Rewrote this
3014         function to use walk_tree and moved a lot of its functionality to
3015         expand_array_notations.
3016         (expand_array_notations): New function.
3018 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3020         * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
3021         attribute an attribute without value.
3023 2014-01-23  Jakub Jelinek  <jakub@redhat.com>
3025         PR middle-end/58809
3026         * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
3027         BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
3029 2014-01-22  Marek Polacek  <polacek@redhat.com>
3031         PR c/59891
3032         * c-typeck.c (build_conditional_expr): Call c_fully_fold instead
3033         of remove_c_maybe_const_expr on op1 and op2.
3035 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
3037         PR c/58943
3038         * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
3039         effects, preevaluate rhs using SAVE_EXPR first.
3041 2014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3043         PR c++/59631
3044         * c-parser.c (c_parser_postfix_expression): Replaced consecutive if
3045         statements with if-elseif statements.
3047 2014-01-06  Marek Polacek  <polacek@redhat.com>
3049         PR c/57773
3050         * c-decl.c (check_bitfield_type_and_width): Warn for implementation
3051         defined bit-field types only in ISO C.
3053 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
3055         Update copyright years
3057 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
3059         * c-array-notation.c: Use the standard form for the copyright notice.
3061 2013-12-18  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3063         * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
3064         (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
3065         field in parser is not empty.  If not-empty, call the function
3066         c_parser_finish_omp_declare_simd.
3067         (c_parser_cilk_clause_vectorlength): Modified function to be shared
3068         between SIMD-enabled functions and #pragma simd.  Added new parameter.
3069         (c_parser_cilk_all_clauses): Modified the usage of the function
3070         c_parser_cilk_clause_vectorlength as mentioned above.
3071         (c_parser_cilk_simd_fn_vector_attrs): New function.
3072         (c_finish_cilk_simd_fn_tokens): Likewise.
3073         (is_cilkplus_vector_p): Likewise.
3074         (c_parser_omp_clause_name): Added checking for "vectorlength,"
3075         "nomask," and "mask" strings in clause name.
3076         (c_parser_omp_all_clauses): Added 3 new case statements:
3077         PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and
3078         PRAGMA_CILK_CLAUSE_NOMASK.
3079         (c_parser_attributes): Added a cilk_simd_fn_tokens parameter.  Added a
3080         check for vector attribute and if so call the function
3081         c_parser_cilk_simd_fn_vector_attrs.  Also, when Cilk plus is enabled,
3082         called the function c_finish_cilk_simd_fn_tokens.
3083         (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
3084         parser field is non-empty.  If so, parse them as you would parse
3085         the omp declare simd pragma.
3086         (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
3087         Added a check when step is a parameter and flag it as error.
3088         (CILK_SIMD_FN_CLAUSE_MASK): New #define.
3089         (c_parser_cilk_clause_name): Changed pragma_cilk_clause to
3090         pragma_omp_clause.
3092 2013-12-17  Thomas Schwinge  <thomas@codesourcery.com>
3094         * c-parser.c (c_parser_omp_parallel): Fix description.
3096 2013-12-11  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3098         * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
3099         (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
3100         (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
3101         * c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
3103 2013-12-04  Joseph Myers  <joseph@codesourcery.com>
3105         PR c/52023
3106         * c-parser.c (c_parser_alignas_specifier): Use
3107         c_sizeof_or_alignof_type instead of c_alignof.
3108         (c_parser_alignof_expression): Likewise, with min_alignof
3109         parameter depending on alignof spelling used.
3111 2013-12-04  Marek Polacek  <polacek@redhat.com>
3113         PR c/54113
3114         * c-decl.c (start_function): Don't warn for missing prototype for
3115         inline functions.
3117 2013-12-03  Marek Polacek  <polacek@redhat.com>
3119         PR c/59351
3120         * c-decl.c (build_compound_literal): Allow compound literals with
3121         empty initial value.
3123 2013-12-02  Joseph Myers  <joseph@codesourcery.com>
3125         PR c/58235
3126         * c-typeck.c (build_modify_expr): Diagnose assignment to
3127         expression with array type.
3129 2013-11-29  Joseph Myers  <joseph@codesourcery.com>
3131         PR c/42262
3132         * c-typeck.c (process_init_element): Do not treat a string as
3133         initializing a whole array when used with a designator for an
3134         individual element.
3136 2013-11-29  Joseph Myers  <joseph@codesourcery.com>
3138         PR c/57574
3139         * c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
3140         an inline function following a static declaration.
3142 2013-11-28  Jakub Jelinek  <jakub@redhat.com>
3144         PR c/59310
3145         * c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
3146         to p_name before calling c_parser_omp_teams instead of after.
3147         (c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
3148         argument.  Remove unused p_name variable.
3150 2013-11-27  Aldy Hernandez  <aldyh@redhat.com>
3151             Jakub Jelinek  <jakub@redhat.com>
3153         * c-decl.c (c_builtin_function_ext_scope): Avoid binding if
3154         external_scope is NULL.
3156 2013-11-27  Tom de Vries  <tom@codesourcery.com>
3157             Marc Glisse  <marc.glisse@inria.fr>
3159         PR c++/59032
3160         * c-typeck.c (build_unary_op): Allow vector increment and decrement.
3162 2013-11-22  Andrew MacLeod  <amacleod@redhat.com>
3164         * c-typeck.c: Add required include files from gimple.h.
3166 2013-11-22  David Malcolm  <dmalcolm@redhat.com>
3168         * c-decl.c (define_label, shadow_tag_warned)
3169         (check_bitfield_type_and_width, grokdeclarator, grokparms,
3170         store_parm_decls_newstyle, store_parm_decls_oldstyle)
3171         (declspecs_add_type): Remove use of in_system_header macro.
3172         * c-parser.c (c_parser_unary_expression): Likewise.
3173         * c-typeck.c (store_init_value, process_init_element)
3174         (c_start_case): Likewise.
3176         * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
3177         macro.
3179         * c-parser.c (c_parser_set_source_position_from_token): Remove
3180         reference to in_system_header from comment.
3182 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
3184         * c-decl.c (grokdeclarator): Update comment to refer to
3185         tree_to_[su]hwi rather than tree_low_cst.
3187 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
3189         * c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
3190         tree_to_uhwi throughout.
3192 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
3194         * c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
3195         throughout.
3197 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
3199         * c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
3200         throughout.
3202 2013-11-15  Aldy Hernandez  <aldyh@redhat.com>
3204         * c-parser.c (c_parser_cilk_simd): New.
3205         (c_parser_cilk_verify_simd): New.
3206         (c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
3207         (c_parser_omp_for_loop): Add case for NE_EXPR.
3208         Set c_break_label for CILK_SIMD.
3209         (c_parser_cilk_clause_vectorlength): New.
3210         (c_parser_cilk_clause_linear): New.
3211         (c_parser_cilk_clause_name): New.
3212         (c_parser_cilk_all_clauses): New.
3213         * c-typeck.c (build_unary_op): Pass location argument to
3214         readonly_error.
3215         (build_modify_expr): Same.
3216         (build_asm_expr): Same.
3217         (c_finish_bc_stmt): Error on break/continue in loops.
3219 2013-11-14  Andrew MacLeod  <amacleod@redhat.com>
3221         * c-typeck.c: Include only gimplify.h and gimple.h as needed.
3223 2013-11-14  Diego Novillo  <dnovillo@google.com>
3225         * c-decl.c: Include print-tree.h.
3226         Include stor-layout.h.
3227         Include varasm.h.
3228         Include attribs.h.
3229         Include stringpool.h.
3230         * c-lang.c: Include fold-const.h.
3231         * c-parser.c: Include stringpool.h.
3232         Include attribs.h.
3233         Include stor-layout.h.
3234         Include varasm.h.
3235         Include trans-mem.h.
3236         * c-typeck.c: Include stor-layout.h.
3237         Include trans-mem.h.
3238         Include varasm.h.
3239         Include stmt.h.
3241 2013-11-13  Joseph Myers  <joseph@codesourcery.com>
3243         * c-tree.h (c_typespec_keyword): Add cts_auto_type.
3244         * c-decl.c (declspecs_add_type, finish_declspecs): Handle
3245         __auto_type.
3246         * c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
3247         (c_parser_attribute_any_word, c_parser_objc_selector): Handle
3248         RID_AUTO_TYPE.
3249         (c_parser_declspecs): Take argument AUTO_TYPE_OK.
3250         (c_parser_declaration_or_fndef, c_parser_struct_declaration)
3251         (c_parser_declarator, c_parser_direct_declarator_inner)
3252         (c_parser_parameter_declaration, c_parser_type_name): All callers
3253         changed.
3254         (c_parser_declaration_or_fndef): Handle declarations with type
3255         determined from the initializer.
3257 2013-11-12  Andrew MacLeod  <amacleod@redhat.com>
3259         * c-typeck.c: Include gimplify.h.
3261 2013-11-12  Joseph Myers  <joseph@codesourcery.com>
3263         * c-tree.h (struct c_declspecs): Add thread_gnu_p field.
3264         * c-parser.c (c_parser_declspecs): Mention _Thread_local in
3265         comment.
3266         * c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
3267         or _Thread_local as appropriate in diagnostics.
3268         (build_null_declspecs): Initialize ret->thread_gnu_p.
3269         (declspecs_add_scspec): Handle either __thread or _Thread_local
3270         for RID_THREAD.  Diagnose _Thread_local for pre-C11 standards if
3271         pedantic.  Do not disallow _Thread_local extern and _Thread_local
3272         static.
3274 2013-11-07  Joseph Myers  <joseph@codesourcery.com>
3275             Andrew MacLeod  <amacleod@redhat.com>
3277         * c-aux-info.c (gen_type): Handle atomic qualifier.
3278         * c-decl.c (validate_proto_after_old_defn): Do not remove atomic
3279         qualifiers when compating types.
3280         (shadow_tag_warned): Handle atomic_p in declspecs.
3281         (quals_from_declspecs): Likewise.
3282         (start_decl): Use c_type_promotes_to when promoting argument
3283         types.
3284         (grokdeclarator): Handle _Atomic.
3285         (get_parm_info): Diagnose any qualifier on "void" as only
3286         parameter.
3287         (store_parm_decls_oldstyle): Do not remove atomic qualifiers when
3288         comparing types.  Use c_type_promotes_to when promoting argument
3289         types.
3290         (finish_function): Use c_type_promotes_to when promoting argument
3291         types.
3292         (build_null_declspecs): Handle atomic_p in declspecs.
3293         (declspecs_add_qual): Handle RID_ATOMIC.
3294         * c-parser.c (c_token_starts_typename, c_token_is_qualifier)
3295         (c_token_starts_declspecs): Handle RID_ATOMIC.
3296         (c_parser_declspecs): Handle atomic type specifiers and
3297         qualifiers.
3298         (c_parser_typeof_specifier): Remove const and _Atomic qualifiers
3299         from types of expressions with atomic type.
3300         (c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
3301         (c_parser_attribute_any_word): Handle RID_ATOMIC.
3302         (c_parser_initializer, c_parser_initelt, c_parser_initval)
3303         (c_parser_statement_after_labels, c_parser_switch_statement)
3304         (c_parser_for_statement, c_parser_expr_no_commas)
3305         (c_parser_conditional_expression, c_parser_binary_expression)
3306         (c_parser_cast_expression, c_parser_unary_expression)
3307         (c_parser_postfix_expression)
3308         (c_parser_postfix_expression_after_primary, c_parser_expression):
3309         Use convert_lvalue_to_rvalue.
3310         (c_parser_expression_conv, c_parser_expr_list): Document
3311         conversion of lvalues to rvalues.  Use convert_lvalue_to_rvalue.
3312         (c_parser_objc_synchronized_statement): Use
3313         convert_lvalue_to_rvalue.
3314         (c_parser_objc_selector): Handle RID_ATOMIC.
3315         (c_parser_objc_receiver, c_parser_array_notation): Use
3316         convert_lvalue_to_rvalue.
3317         * c-tree.h (ctsk_typeof): Adjust comment to mention use for
3318         _Atomic (type-name).
3319         (struct c_declspecs): Add atomic_p field.
3320         (convert_lvalue_to_rvalue): Declare.
3321         * c-typeck.c (c_type_promotes_to): Promote atomic types to
3322         corresponding atomic types.
3323         (qualify_type): Don't add _Atomic qualifiers from second argument.
3324         (comp_target_types): Do not allow _Atomic mismatches.
3325         (type_lists_compatible_p): Do not remove atomic qualifiers when
3326         comparing types.
3327         (really_atomic_lvalue, convert_lvalue_to_rvalue)
3328         (build_atomic_assign): New functions.
3329         (build_unary_op): Use build_atomic_assign for atomic increment and
3330         decrement.
3331         (build_conditional_expr): Do not treat _Atomic void as a qualified
3332         version of void.
3333         (build_modify_expr): Use build_atomic_assign for atomic LHS.
3334         (find_anonymous_field_with_type, convert_to_anonymous_field)
3335         (convert_for_assignment): Do not remove atomic qualifiers when
3336         comparing types.
3337         (digest_init): Do not accept initialization of arrays of atomic
3338         elements by string constants.
3339         (build_asm_expr): Use convert_lvalue_to_rvalue.
3340         (build_binary_op): Do not treat _Atomic void as a qualified
3341         version of void.
3343 2013-11-06  DJ Delorie  <dj@redhat.com>
3345         * c-decl.c (locate_old_decl): If a previous conflicting decl is
3346         both explicit and builtin, print the location of the explicit one.
3348 2013-11-05  Tobias Burnus  <burnus@net-b.de>
3350         * c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
3351         c_parser_omp_distribute, c_parser_omp_teams,
3352         c_parser_omp_target, c_parser_omp_declare): Handle
3353         -fopenmp-simd.
3355 2013-11-03  Marek Polacek  <polacek@redhat.com>
3357         * c-decl.c (grokdeclarator): Add VLA instrumentation.
3359 2013-11-01  Jakub Jelinek  <jakub@redhat.com>
3361         * c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
3362         check_dup_generic at the end, unless remove is true.
3363         (c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
3364         remove = true;.
3365         (c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
3367 2013-10-31  Jakub Jelinek  <jakub@redhat.com>
3369         * c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
3370         with decl that is not pointer nor array.
3372 2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3374         * c-decl.c (finish_function): Added a call for insert_cilk_frame when
3375         a spawning function is found.
3376         * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
3377         (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
3378         (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
3379         * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
3380         case.
3381         (c_parser_postfix_expression): Added RID_CILK_SPAWN case.
3382         * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
3383         expr.
3384         (c_finish_return): Added a check to reject _Cilk_spawn in return
3385         expression.
3386         (build_cilk_spawn): New function.
3387         (build_cilk_sync): Likewise.
3388         * Makefile.in (c-decl.o): Added cilk.h in dependency list.
3389         
3390 2013-10-27  Tobias Burnus  <burnus@net-b.de>
3392         PR other/33426
3393         * c-parser.c (c_parser_while_statement, c_parser_while_statement,
3394         c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
3395         (c_parser_statement_after_labels): Update calls.
3397 2013-10-24  Tobias Burnus  <burnus@net-b.de>
3399         PR other/33426
3400         * c-parser.c (c_parser_pragma, c_parser_for_statement):
3401         Handle PRAGMA_IVDEP.
3402         (c_parser_statement_after_labels): Update call.
3404 2013-10-24  Marek Polacek  <polacek@redhat.com>
3406         * c-parser.c (c_parser_struct_declaration): Add a comment.
3407         (c_parser_declarator): Don't allow _Alignas here.
3409 2013-10-17  Andrew MacLeod  <amacleod@redhat.com>
3411         * c-parser.c: Include omp-low.h.
3412         * c-typeck.c: Likewise.
3414 2013-10-17  Marek Polacek  <polacek@redhat.com>
3416         PR c/58267
3417         * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
3418         Document syntax of the array-declarator.
3419         (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
3420         are not permitted.
3421         (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
3422         (c_parser_struct_declaration): Likewise.
3423         (c_parser_declarator): Likewise.
3424         (c_parser_direct_declarator_inner): Likewise.
3425         (c_parser_parameter_declaration): Likewise.
3426         (c_parser_type_name): Likewise.
3428 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
3430         * c-lang.h (current_omp_declare_target_attribute): New extern
3431         decl.
3432         * c-parser.c: Include c-lang.h.
3433         (struct c_parser): Change tokens to c_token *.
3434         Add tokens_buf field.  Change tokens_avail type to unsigned int.
3435         (c_parser_consume_token): If parser->tokens isn't
3436         &parser->tokens_buf[0], increment parser->tokens.
3437         (c_parser_consume_pragma): Likewise.
3438         (enum pragma_context): Add pragma_struct and pragma_param.
3439         (c_parser_external_declaration): Adjust
3440         c_parser_declaration_or_fndef caller.
3441         (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
3442         argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
3443         Adjust recursive call.
3444         (c_parser_struct_or_union_specifier): Use pragma_struct instead
3445         of pragma_external.
3446         (c_parser_parameter_declaration): Use pragma_param instead of
3447         pragma_external.
3448         (c_parser_compound_statement_nostart, c_parser_label,
3449         c_parser_for_statement): Adjust
3450         c_parser_declaration_or_fndef callers.
3451         (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
3452         it through to c_parser_conditional_expression.
3453         (c_parser_conditional_expression): Add omp_atomic_lhs argument,
3454         pass it through to c_parser_binary_expression.  Adjust recursive
3455         call.
3456         (c_parser_binary_expression): Remove prec argument, add
3457         omp_atomic_lhs argument instead.  Always start from PREC_NONE, if
3458         omp_atomic_lhs is non-NULL and one of the arguments of toplevel
3459         binop matches it, use build2 instead of parser_build_binary_op.
3460         (c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
3461         PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
3462         PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
3463         Handle pragma_struct and pragma_param the same as pragma_external.
3464         (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
3465         (c_parser_omp_variable_list): Parse array sections for
3466         OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
3467         (c_parser_omp_clause_collapse): Fully fold collapse expression.
3468         (c_parser_omp_clause_reduction): Handle user defined reductions.
3469         (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
3470         c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
3471         c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
3472         c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
3473         c_parser_omp_clause_depend, c_parser_omp_clause_map,
3474         c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
3475         c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
3476         c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
3477         (c_parser_omp_all_clauses): Add finish_p argument.  Don't call
3478         c_finish_omp_clauses if it is false.  Handle new OpenMP 4.0 clauses.
3479         (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
3480         present to c_finish_omp_atomic.  Handle OpenMP 4.0 atomic forms.
3481         (c_parser_omp_for_loop): Add CODE argument, pass it through
3482         to c_finish_omp_for.  Change last argument to cclauses,
3483         and adjust uses to grab parallel clauses from the array of all
3484         the split clauses.  Adjust c_parser_binary_expression,
3485         c_parser_declaration_or_fndef and c_finish_omp_for callers.
3486         (omp_split_clauses): New function.
3487         (c_parser_omp_simd): New function.
3488         (c_parser_omp_for): Add p_name, mask and cclauses arguments.
3489         Allow the function to be called also when parsing combined constructs,
3490         and call c_parser_omp_simd when parsing for simd.
3491         (c_parser_omp_sections_scope): If section-sequence doesn't start with
3492         #pragma omp section, require exactly one structured-block instead of
3493         sequence of statements.
3494         (c_parser_omp_sections): Add p_name, mask and cclauses arguments.
3495         Allow the function to be called also when parsing combined constructs.
3496         (c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
3497         Allow the function to be called also when parsing combined
3498         constructs.
3499         (c_parser_omp_taskgroup, c_parser_omp_cancel,
3500         c_parser_omp_cancellation_point, c_parser_omp_distribute,
3501         c_parser_omp_teams, c_parser_omp_target_data,
3502         c_parser_omp_target_update, c_parser_omp_target,
3503         c_parser_omp_declare_simd, c_finish_omp_declare_simd,
3504         c_parser_omp_declare_target, c_parser_omp_end_declare_target,
3505         c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
3506         (c_parser_omp_construct): Add p_name and mask vars.  Handle
3507         PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
3508         PRAGMA_OMP_TEAMS.  Adjust c_parser_omp_for, c_parser_omp_parallel
3509         and c_parser_omp_sections callers.
3510         (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
3511         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
3512         OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
3513         (OMP_PARALLEL_CLAUSE_MASK): Likewise.  Add OMP_CLAUSE_PROC_BIND.
3514         (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.  Add
3515         OMP_CLAUSE_DEPEND.
3516         (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
3517         OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
3518         OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
3519         OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
3520         OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
3521         * c-typeck.c: Include tree-inline.h.
3522         (c_finish_omp_cancel, c_finish_omp_cancellation_point,
3523         handle_omp_array_sections_1, handle_omp_array_sections,
3524         c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
3525         (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
3526         user defined reductions.
3527         (c_tree_equal): New function.
3528         * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
3529         c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
3530         c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
3531         c_check_omp_declare_reduction_r): New prototypes.
3532         * c-decl.c (current_omp_declare_target_attribute): New variable.
3533         (c_decl_attributes): New function.
3534         (start_decl, start_function): Use it instead of decl_attributes.
3535         (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
3536         c_omp_reduction_decl, c_omp_reduction_lookup,
3537         c_check_omp_declare_reduction_r): New functions.
3539 2013-09-25  Tom Tromey  <tromey@redhat.com>
3541         * Make-lang.in (c/gccspec.o): Remove.
3542         (CFLAGS-c/gccspec.o): New variable.
3543         (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
3544         (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
3545         (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
3547 2013-09-25  Tom Tromey  <tromey@redhat.com>
3549         * Make-lang.in (c/gccspec.o): Don't use subshell.
3551 2013-09-18  Marek Polacek  <polacek@redhat.com>
3553         PR sanitize/58443
3554         * c-typeck.c (build_binary_op): Properly honor -fsanitize options.
3555         Remove unnecessary check.
3557 2013-09-18  Marek Polacek  <polacek@redhat.com>
3559         PR sanitizer/58411
3560         * c-typeck.c (build_binary_op): Don't sanitize function if it has the
3561         no_sanitize_undefined attribute.
3563 2013-09-13  Kai Tietz  <ktietz@redhat.com>
3565         PR target/57848
3566         * c-decl.c (c_builtin_function_ext_scope): Remove
3567         wrong assumption that it is never called on prexisting
3568         symbol.
3570 2013-09-08  Joern Rennecke  <joern.rennecke@embecosm.com>
3572         * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
3574 2013-09-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3576         * c-objc-common.c (c_tree_printer): Tidy.
3578 2013-08-30  Marek Polacek  <polacek@redhat.com>
3580         * c-typeck.c (build_binary_op): Add division by zero and shift
3581         instrumentation.
3583 2013-08-26  Joern Rennecke  <joern.rennecke@embecosm.com>
3584             Joseph Myers  <joseph@codesourcery.com>
3586         PR c/35649
3587         * c-typeck.c (c_common_type): Prefer double_type_node over
3588         other REAL_TYPE types with the same precision.
3589         (convert_arguments): Likewise.
3591 2013-08-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3593         * c-objc-common.c (c_tree_printer): Document the nature of the cast.
3594         (c_initialize_diagnostics): Call a destructor for the early printer.
3596 2013-08-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3598         * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
3599         printer initialization.
3601 2013-08-19  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3603         PR c/57490
3604         * c-array-notation.c (fix_conditional_array_notations_1): Added a
3605         check for truth values.
3606         (expand_array_notation_exprs): Added truth values case.  Removed an
3607         unwanted else.  Added for-loop to walk through subtrees in default
3608         case.
3610 2013-08-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3612         * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
3614 2013-07-23  Joseph Myers  <joseph@codesourcery.com>
3616         * c-parser.c (struct c_generic_association): Fix typo.
3618 2013-07-23  Tom Tromey  <tromey@redhat.com>
3619             Joseph Myers  <joseph@codesourcery.com>
3621         * c-parser.c (struct c_generic_association): New.
3622         (c_generic_association_d): New typedef.
3623         (c_parser_generic_selection): New function.
3624         (c_parser_postfix_expression): Handle RID_GENERIC.
3626 2013-07-13  Jason Merrill  <jason@redhat.com>
3628         PR c++/57793
3629         * c-decl.c (finish_struct): Check for too-large class.
3631 2013-07-04  Joern Rennecke  <joern.rennecke@embecosm.com>
3633         PR c/57821
3634         * c-typeck.c (set_init_index): When folding, check for index overflow.
3636 2013-06-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3638         * c-parser.c (c_parser_array_notation): Removed rejection of array
3639         notations in an array of function pointers.
3641 2013-06-21  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3643         * c-array-notation.c (make_triplet_val_inv): New function.
3644         (create_cmp_incr): Likewise.
3645         (create_array_refs): Likewise.
3646         (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
3647         Also modularized common parts between functions and called the function.
3648         (build_array_notation_expr): Likewise.
3649         (fix_conditional_array_notations_1): Likewise.
3650         (fix_array_notation_expr): Likewise.
3651         (fix_array_notation_call_expr): Likewise.
3653 2013-06-18  Marek Polacek  <polacek@redhat.com>
3655         PR c/57630
3656         * c-decl.c (check_for_loop_decls): Improve diagnostics messages.
3658 2013-06-12  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3660         * c-array-notation.c (build_array_notation_expr): Reject array notation
3661         mismatch between LHS and RHS even inside a call_expr.  Also, removed
3662         a couple while statements that were dead code.
3664 2013-06-10  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3666         * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
3667         excessive precision expressions in function parameters.  Also removed
3668         couple unwanted while statements.
3670 2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3672         * c-array-notation.c (expand_array_notation_exprs): Added
3673         ARRAY_NOTATION_REF case.
3674         
3675 2013-06-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3677         * c-array-notation.c (length_mismatch_in_expr_p): Moved this
3678         function to c-family/array-notation-common.c.
3679         (is_cilkplus_reduce_builtin): Likewise.
3680         (find_rank): Likewise.
3681         (extract_array_notation_exprs): Likewise.
3682         (replace_array_notations): Likewise.
3683         (find_inv_trees): Likewise.
3684         (replace_inv_trees): Likewise.
3685         (contains_array_notation_expr): Likewise.
3686         (find_correct_array_notation_type): Likewise.
3687         (replace_invariant_exprs): Initialized additional_tcodes to NULL.
3688         (struct inv_list): Moved this to c-family/array-notation-common.c.
3689         * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
3690         
3691 2013-06-05  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3693         * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
3694         reduction functions outside the for-loop.  Added a check if the fundecl
3695         is non-NULL.  Finally, removed an unwanted if-statement, and made the
3696         body unconditional.
3698 2013-06-03  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3700         * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
3701         condition of the if-statement matches the rank of else-block and then-
3702         block when array notations are used.
3703         * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
3704         expression after the entire function body is parsed.
3705         (c_parser_expr_no_commas): Delayed creating array notation expressions
3706         to the end of function parsing.
3707         * c-array-notation.c (fix_conditional_array_notations_1): Expanded the
3708         whole if-statement instead of just the condition.
3709         (expand_array_notation_exprs): Added MODIFY_EXPR case.  
3711 2013-06-03  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3713         PR c/57474
3714         * c-array-notation.c (build_array_notation_expr): Initialized rhs_length
3715         array to NULL_TREE if they are unused.  Also added a check for the
3716         field to be NULL before its fields are used in future.
3717         
3718 2013-05-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3720         PR bootstrap/57450
3721         * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
3722         (build_array_notation_expr): Likewise.
3724 2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3726         * c-typeck.c (build_array_ref): Added a check to see if array's
3727         index is greater than one.  If true, then emit an error.
3728         (build_function_call_vec): Exclude error reporting and checking
3729         for builtin array-notation functions.
3730         (convert_arguments): Likewise.
3731         (c_finish_return): Added a check for array notations as a return
3732         expression.  If true, then emit an error.
3733         (c_finish_loop): Added a check for array notations in a loop
3734         condition.  If true then emit an error.
3735         (lvalue_p): Added a ARRAY_NOTATION_REF case.
3736         (build_binary_op): Added a check for array notation expr inside
3737         op1 and op0.  If present, we call another function to find correct
3738         type.
3739         * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
3740         * c-parser.c (c_parser_compound_statement): Check if array
3741         notation code is used in tree, if so, then transform them into
3742         appropriate C code.
3743         (c_parser_expr_no_commas): Check if array notation is used in LHS
3744         or RHS, if so, then build array notation expression instead of
3745         regular modify.
3746         (c_parser_postfix_expression_after_primary): Added a check for
3747         colon(s) after square braces, if so then handle it like an array
3748         notation.  Also, break up array notations in unary op if found.
3749         (c_parser_direct_declarator_inner): Added a check for array
3750         notation.
3751         (c_parser_compound_statement): Added a check for array notation in
3752         a stmt.  If one is present, then expand array notation expr.
3753         (c_parser_if_statement): Likewise.
3754         (c_parser_switch_statement): Added a check for array notations in
3755         a switch statement's condition.  If true, then output an error.
3756         (c_parser_while_statement): Similarly, but for a while.
3757         (c_parser_do_statement): Similarly, but for a do-while.
3758         (c_parser_for_statement): Similarly, but for a for-loop.
3759         (c_parser_unary_expression): Check if array notation is used in a
3760         pre-increment or pre-decrement expression.  If true, then expand
3761         them.
3762         (c_parser_array_notation): New function.
3763         * c-array-notation.c: New file.
3764         * c-tree.h (is_cilkplus_reduce_builtin): Protoize.
3765         
3766 2013-05-23  Mike Stump  <mikestump@comcast.net>
3768         * c-typeck.c (convert_for_assignment): Handle references to memory
3769         spaces better.
3771 2013-05-16  Jason Merrill  <jason@redhat.com>
3773         * Make-lang.in (cc1$(exeext)): Use link mutex.
3775 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
3777         * c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns
3778         to simply use OPT_Wpointer_arith.
3779         (build_unary_op): Likewise.
3781 2013-04-03  Jakub Jelinek  <jakub@redhat.com>
3783         PR c/19449
3784         * c-parser.c (c_parser_get_builtin_args): Add choose_expr_p
3785         argument.  If set, or it temporarily for parsing of the first
3786         argument into force_folding_builtin_constant_p.
3787         (c_parser_postfix_expression): Adjust callers.
3789 2013-03-21  Richard Biener  <rguenther@suse.de>
3791         * c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
3792         instead of DECL_DEBUG_EXPR_IS_FROM.  Guard properly.
3794 2013-02-12  Marek Polacek  <polacek@redhat.com>
3796         PR c/44938
3797         * c-parser.c (c_parser_postfix_expression_after_primary): Initialize
3798         origtypes to NULL.
3800 2013-01-24  Jakub Jelinek  <jakub@redhat.com>
3802         PR c/56078
3803         * c-typeck.c (set_nonincremental_init_from_string): If
3804         constructor_max_index is NULL, treat it as if tree_int_cst_lt
3805         returned false.
3806         (process_init_element): Likewise.
3808 2012-12-20  Jakub Jelinek  <jakub@redhat.com>
3810         PR c++/55619
3811         * c-parser.c (c_parser_asm_operands): Remove CONVERT_P
3812         argument, don't call default_function_array_conversion
3813         nor c_fully_fold here.
3814         (c_parser_asm_statement): Adjust callers.
3815         * c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
3816         and outputs here, and call default_function_array_conversion
3817         on inputs that don't need to be addressable.
3819 2012-12-18  Jakub Jelinek  <jakub@redhat.com>
3821         PR c/39464
3822         * c-typeck.c (convert_for_assignment): For -Wpointer-sign
3823         warning require that both c_common_unsigned_type as well as
3824         c_common_signed_type is the same for both mvl and mvr types.
3826 2012-11-16  Diego Novillo  <dnovillo@google.com>
3828         Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
3830         * c-common.c: Use new vec API in vec.h.
3831         * c-common.h: Likewise.
3832         * c-gimplify.c: Likewise.
3833         * c-pragma.c: Likewise.
3834         * c-pretty-print.c: Likewise.
3835         * c-pretty-print.h: Likewise.
3836         * c-semantics.c: Likewise.
3837         * c-decl.c: Likewise.
3838         * c-parser.c: Likewise.
3839         * c-tree.h: Likewise.
3840         * c-typeck.c: Likewise.
3842 2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
3844         PR c++/54930
3845         * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr.
3847 2012-10-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3849         PR c/53066
3850         * c-decl.c (warn_if_shadowing): Do not warn if a variable
3851         shadows a function, unless the variable is a function or a
3852         pointer-to-function.
3854 2012-10-12  Jakub Jelinek  <jakub@redhat.com>
3856         PR c/54381
3857         * c-parser.c (struct c_tree_loc_pair): Removed.
3858         (c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
3859         add location_t * and tree * arguments, fill in array of 3
3860         sizeof_arg trees and corresponding locs.
3861         (c_parser_attributes, c_parser_objc_keywordexpr): Adjust
3862         c_parser_expr_list callers.
3863         (c_parser_postfix_expression_after_primary): Likewise.  Pass
3864         array of 3 sizeof_arg trees and locs (corresponding to first
3865         3 arguments) to sizeof_pointer_memaccess_warning.
3867 2012-10-09  Lawrence Crowl  <crowl@google.com>
3869         * Make-lang.in (c-decl.o): Add dependence on hash-table.h.
3870         * c-decl.c (detect_field_duplicates_hash): Change to new type-safe
3871         hash table.
3873 2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
3875         PR c++/54194
3876         * c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
3877         call.
3879 2012-10-09  Marc Glisse  <marc.glisse@inria.fr>
3881         PR c++/54427
3882         * c-typeck.c: Include c-common.h.
3883         (enum stv_conv): Moved to c-common.h.
3884         (scalar_to_vector): Moved to c-common.c.
3885         (build_binary_op): Adapt to scalar_to_vector's new prototype.
3886         * Make-lang.in: c-typeck.c depends on c-common.h.
3888 2012-10-04  Arnaud Charlet  <charlet@adacore.com>
3890         * c-decl.c (c_write_global_declarations): Fix handling of
3891         -fdump-ada-spec*.
3893 2012-09-30  Sharad Singhai  <singhai@google.com>
3895         * c-decl.c (c_write_global_declarations): Use a different method
3896         to determine if the dump has ben initialized.
3898 2012-09-14  Joseph Myers  <joseph@codesourcery.com>
3900         PR c/54552
3901         * c-typeck.c (c_cast_expr): When casting to a type requiring
3902         C_MAYBE_CONST_EXPR to be created, pass the inner expression to
3903         c_fully_fold first.
3905 2012-09-14  Joseph Myers  <joseph@codesourcery.com>
3907         PR c/54103
3908         * c-typeck.c (build_unary_op): Pass original argument of
3909         TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
3910         any C_MAYBE_CONST_EXPR, if it has integer operands.
3911         (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
3912         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
3913         to c_objc_common_truthvalue_conversion, then remove any
3914         C_MAYBE_CONST_EXPR, if they have integer operands.  Use
3915         c_objc_common_truthvalue_conversion not
3916         c_common_truthvalue_conversion.
3917         (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
3918         call note_integer_operands for arguments with integer operands
3919         that are not integer constants.
3921 2012-09-13  Jakub Jelinek  <jakub@redhat.com>
3923         PR c/54559
3924         * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
3925         COMPLEX_TYPE with in_late_binary_op set temporarily to true.
3927 2012-08-31  Jakub Jelinek  <jakub@redhat.com>
3929         PR c/54428
3930         * c-convert.c (convert): Don't call fold_convert_loc if
3931         TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
3932         is a COMPLEX_EXPR.  Remove TYPE_MAIN_VARIANT check from
3933         COMPLEX_TYPE -> COMPLEX_TYPE conversion.
3935 2012-08-24  Jakub Jelinek  <jakub@redhat.com>
3937         PR c/54355
3938         * c-decl.c (c_parser_label): Pass true as nested and fix up comments
3939         for nested and empty_ok arguments in the call to
3940         c_parser_declaration_or_fndef.
3942 2012-08-17  Jakub Jelinek  <jakub@redhat.com>
3944         * c-tree.h (c_last_sizeof_arg): Declare.
3945         * c-parser.c (struct c_tree_loc_pair): New type.
3946         (c_parser_expr_list): Add sizeof_arg argument.  Fill it in if
3947         non-NULL.
3948         (c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers.
3949         (c_parser_postfix_expression_after_primary): Likewise.  Call
3950         sizeof_pointer_memaccess_warning if needed.
3951         (sizeof_ptr_memacc_comptypes): New function.
3952         * c-typeck.c (c_last_sizeof_arg): New global variable.
3953         (c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it.
3955 2012-07-24  Uros Bizjak  <ubizjak@gmail.com>
3957         * c-lang.h (lang_decl): Add variable_size GTY option.
3959 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
3961         * c-decl.c: Include dumpfile.h instead of tree-dump.h.
3962         * Make-lang.in: Fix dependencies.
3964 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
3966         * Make-lang.in: New file, rules migrated from gcc/Makefile.in
3967         and add language Makefile hooks.
3968         * config-lang.in: New file.
3969         * c-config-lang.in: Moved from gcc/config-lang.in to here, and
3970         add the required "normal" config-lang.in rules.
3971         * c-lang.h: Moved from gcc/ to here.
3972         * c-tree.h: Likewise.
3973         * c-objc-common.c: Likewise.
3974         * c-objc-common.h: Likewise.
3975         * c-typeck.c: Likewise.
3976         * c-convert.c: Likewise.
3977         * c-lang.c: Likewise.
3978         * c-aux-info.c: Likewise.
3979         * c-errors.c: Likewise.
3980         * gccspec.c: Likewise.
3981         * c-decl.c: Likewise.  Include gt-c-c-decl.h, not gt-c-decl.h.
3982         * c-parser.c: Likewise.  Include gt-c-c-parser.h, not gt-c-parser.h.
3984 Copyright (C) 2012-2016 Free Software Foundation, Inc.
3986 Copying and distribution of this file, with or without modification,
3987 are permitted in any medium without royalty provided the copyright
3988 notice and this notice are preserved.