+2013-10-17 Andrew MacLeod <amacleod@redhat.com>
+
+ * c-parser.c: Include omp-low.h.
+ * c-typeck.c: Likewise.
+
+2013-10-17 Marek Polacek <polacek@redhat.com>
+
+ PR c/58267
+ * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
+ Document syntax of the array-declarator.
+ (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
+ are not permitted.
+ (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
+ (c_parser_struct_declaration): Likewise.
+ (c_parser_declarator): Likewise.
+ (c_parser_direct_declarator_inner): Likewise.
+ (c_parser_parameter_declaration): Likewise.
+ (c_parser_type_name): Likewise.
+
+2013-10-11 Jakub Jelinek <jakub@redhat.com>
+
+ * c-lang.h (current_omp_declare_target_attribute): New extern
+ decl.
+ * c-parser.c: Include c-lang.h.
+ (struct c_parser): Change tokens to c_token *.
+ Add tokens_buf field. Change tokens_avail type to unsigned int.
+ (c_parser_consume_token): If parser->tokens isn't
+ &parser->tokens_buf[0], increment parser->tokens.
+ (c_parser_consume_pragma): Likewise.
+ (enum pragma_context): Add pragma_struct and pragma_param.
+ (c_parser_external_declaration): Adjust
+ c_parser_declaration_or_fndef caller.
+ (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
+ argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
+ Adjust recursive call.
+ (c_parser_struct_or_union_specifier): Use pragma_struct instead
+ of pragma_external.
+ (c_parser_parameter_declaration): Use pragma_param instead of
+ pragma_external.
+ (c_parser_compound_statement_nostart, c_parser_label,
+ c_parser_for_statement): Adjust
+ c_parser_declaration_or_fndef callers.
+ (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
+ it through to c_parser_conditional_expression.
+ (c_parser_conditional_expression): Add omp_atomic_lhs argument,
+ pass it through to c_parser_binary_expression. Adjust recursive
+ call.
+ (c_parser_binary_expression): Remove prec argument, add
+ omp_atomic_lhs argument instead. Always start from PREC_NONE, if
+ omp_atomic_lhs is non-NULL and one of the arguments of toplevel
+ binop matches it, use build2 instead of parser_build_binary_op.
+ (c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
+ PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
+ PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
+ Handle pragma_struct and pragma_param the same as pragma_external.
+ (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
+ (c_parser_omp_variable_list): Parse array sections for
+ OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
+ (c_parser_omp_clause_collapse): Fully fold collapse expression.
+ (c_parser_omp_clause_reduction): Handle user defined reductions.
+ (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
+ c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
+ c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
+ c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
+ c_parser_omp_clause_depend, c_parser_omp_clause_map,
+ c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
+ c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
+ c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
+ (c_parser_omp_all_clauses): Add finish_p argument. Don't call
+ c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
+ (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
+ present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms.
+ (c_parser_omp_for_loop): Add CODE argument, pass it through
+ to c_finish_omp_for. Change last argument to cclauses,
+ and adjust uses to grab parallel clauses from the array of all
+ the split clauses. Adjust c_parser_binary_expression,
+ c_parser_declaration_or_fndef and c_finish_omp_for callers.
+ (omp_split_clauses): New function.
+ (c_parser_omp_simd): New function.
+ (c_parser_omp_for): Add p_name, mask and cclauses arguments.
+ Allow the function to be called also when parsing combined constructs,
+ and call c_parser_omp_simd when parsing for simd.
+ (c_parser_omp_sections_scope): If section-sequence doesn't start with
+ #pragma omp section, require exactly one structured-block instead of
+ sequence of statements.
+ (c_parser_omp_sections): Add p_name, mask and cclauses arguments.
+ Allow the function to be called also when parsing combined constructs.
+ (c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
+ Allow the function to be called also when parsing combined
+ constructs.
+ (c_parser_omp_taskgroup, c_parser_omp_cancel,
+ c_parser_omp_cancellation_point, c_parser_omp_distribute,
+ c_parser_omp_teams, c_parser_omp_target_data,
+ c_parser_omp_target_update, c_parser_omp_target,
+ c_parser_omp_declare_simd, c_finish_omp_declare_simd,
+ c_parser_omp_declare_target, c_parser_omp_end_declare_target,
+ c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
+ (c_parser_omp_construct): Add p_name and mask vars. Handle
+ PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
+ PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel
+ and c_parser_omp_sections callers.
+ (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
+ (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
+ OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
+ (OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
+ (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
+ OMP_CLAUSE_DEPEND.
+ (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
+ OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
+ OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
+ OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
+ OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
+ * c-typeck.c: Include tree-inline.h.
+ (c_finish_omp_cancel, c_finish_omp_cancellation_point,
+ handle_omp_array_sections_1, handle_omp_array_sections,
+ c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
+ (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
+ user defined reductions.
+ (c_tree_equal): New function.
+ * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
+ c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
+ c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
+ c_check_omp_declare_reduction_r): New prototypes.
+ * c-decl.c (current_omp_declare_target_attribute): New variable.
+ (c_decl_attributes): New function.
+ (start_decl, start_function): Use it instead of decl_attributes.
+ (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
+ c_omp_reduction_decl, c_omp_reduction_lookup,
+ c_check_omp_declare_reduction_r): New functions.
+
+2013-09-25 Tom Tromey <tromey@redhat.com>
+
+ * Make-lang.in (c/gccspec.o): Remove.
+ (CFLAGS-c/gccspec.o): New variable.
+ (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
+ (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
+ (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
+
+2013-09-25 Tom Tromey <tromey@redhat.com>
+
+ * Make-lang.in (c/gccspec.o): Don't use subshell.
+
+2013-09-18 Marek Polacek <polacek@redhat.com>
+
+ PR sanitize/58443
+ * c-typeck.c (build_binary_op): Properly honor -fsanitize options.
+ Remove unnecessary check.
+
+2013-09-18 Marek Polacek <polacek@redhat.com>
+
+ PR sanitizer/58411
+ * c-typeck.c (build_binary_op): Don't sanitize function if it has the
+ no_sanitize_undefined attribute.
+
+2013-09-13 Kai Tietz <ktietz@redhat.com>
+
+ PR target/57848
+ * c-decl.c (c_builtin_function_ext_scope): Remove
+ wrong assumption that it is never called on prexisting
+ symbol.
+
+2013-09-08 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
+
+2013-09-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * c-objc-common.c (c_tree_printer): Tidy.
+
+2013-08-30 Marek Polacek <polacek@redhat.com>
+
+ * c-typeck.c (build_binary_op): Add division by zero and shift
+ instrumentation.
+
+2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
+ Joseph Myers <joseph@codesourcery.com>
+
+ PR c/35649
+ * c-typeck.c (c_common_type): Prefer double_type_node over
+ other REAL_TYPE types with the same precision.
+ (convert_arguments): Likewise.
+
+2013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * c-objc-common.c (c_tree_printer): Document the nature of the cast.
+ (c_initialize_diagnostics): Call a destructor for the early printer.
+
+2013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
+ printer initialization.
+
+2013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ PR c/57490
+ * c-array-notation.c (fix_conditional_array_notations_1): Added a
+ check for truth values.
+ (expand_array_notation_exprs): Added truth values case. Removed an
+ unwanted else. Added for-loop to walk through subtrees in default
+ case.
+
+2013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
+
+2013-07-23 Joseph Myers <joseph@codesourcery.com>
+
+ * c-parser.c (struct c_generic_association): Fix typo.
+
+2013-07-23 Tom Tromey <tromey@redhat.com>
+ Joseph Myers <joseph@codesourcery.com>
+
+ * c-parser.c (struct c_generic_association): New.
+ (c_generic_association_d): New typedef.
+ (c_parser_generic_selection): New function.
+ (c_parser_postfix_expression): Handle RID_GENERIC.
+
+2013-07-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/57793
+ * c-decl.c (finish_struct): Check for too-large class.
+
+2013-07-04 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ PR c/57821
+ * c-typeck.c (set_init_index): When folding, check for index overflow.
+
+2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * c-parser.c (c_parser_array_notation): Removed rejection of array
+ notations in an array of function pointers.
+
+2013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * c-array-notation.c (make_triplet_val_inv): New function.
+ (create_cmp_incr): Likewise.
+ (create_array_refs): Likewise.
+ (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
+ Also modularized common parts between functions and called the function.
+ (build_array_notation_expr): Likewise.
+ (fix_conditional_array_notations_1): Likewise.
+ (fix_array_notation_expr): Likewise.
+ (fix_array_notation_call_expr): Likewise.
+
+2013-06-18 Marek Polacek <polacek@redhat.com>
+
+ PR c/57630
+ * c-decl.c (check_for_loop_decls): Improve diagnostics messages.
+
+2013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * c-array-notation.c (build_array_notation_expr): Reject array notation
+ mismatch between LHS and RHS even inside a call_expr. Also, removed
+ a couple while statements that were dead code.
+
+2013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
+ excessive precision expressions in function parameters. Also removed
+ couple unwanted while statements.
+
+2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * c-array-notation.c (expand_array_notation_exprs): Added
+ ARRAY_NOTATION_REF case.
+
+2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * c-array-notation.c (length_mismatch_in_expr_p): Moved this
+ function to c-family/array-notation-common.c.
+ (is_cilkplus_reduce_builtin): Likewise.
+ (find_rank): Likewise.
+ (extract_array_notation_exprs): Likewise.
+ (replace_array_notations): Likewise.
+ (find_inv_trees): Likewise.
+ (replace_inv_trees): Likewise.
+ (contains_array_notation_expr): Likewise.
+ (find_correct_array_notation_type): Likewise.
+ (replace_invariant_exprs): Initialized additional_tcodes to NULL.
+ (struct inv_list): Moved this to c-family/array-notation-common.c.
+ * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype.
+
+2013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
+ reduction functions outside the for-loop. Added a check if the fundecl
+ is non-NULL. Finally, removed an unwanted if-statement, and made the
+ body unconditional.
+
+2013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the
+ condition of the if-statement matches the rank of else-block and then-
+ block when array notations are used.
+ * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation
+ expression after the entire function body is parsed.
+ (c_parser_expr_no_commas): Delayed creating array notation expressions
+ to the end of function parsing.
+ * c-array-notation.c (fix_conditional_array_notations_1): Expanded the
+ whole if-statement instead of just the condition.
+ (expand_array_notation_exprs): Added MODIFY_EXPR case.
+
+2013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ PR c/57474
+ * c-array-notation.c (build_array_notation_expr): Initialized rhs_length
+ array to NULL_TREE if they are unused. Also added a check for the
+ field to be NULL before its fields are used in future.
+
+2013-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR bootstrap/57450
+ * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
+ (build_array_notation_expr): Likewise.
+
+2013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * c-typeck.c (build_array_ref): Added a check to see if array's
+ index is greater than one. If true, then emit an error.
+ (build_function_call_vec): Exclude error reporting and checking
+ for builtin array-notation functions.
+ (convert_arguments): Likewise.
+ (c_finish_return): Added a check for array notations as a return
+ expression. If true, then emit an error.
+ (c_finish_loop): Added a check for array notations in a loop
+ condition. If true then emit an error.
+ (lvalue_p): Added a ARRAY_NOTATION_REF case.
+ (build_binary_op): Added a check for array notation expr inside
+ op1 and op0. If present, we call another function to find correct
+ type.
+ * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o.
+ * c-parser.c (c_parser_compound_statement): Check if array
+ notation code is used in tree, if so, then transform them into
+ appropriate C code.
+ (c_parser_expr_no_commas): Check if array notation is used in LHS
+ or RHS, if so, then build array notation expression instead of
+ regular modify.
+ (c_parser_postfix_expression_after_primary): Added a check for
+ colon(s) after square braces, if so then handle it like an array
+ notation. Also, break up array notations in unary op if found.
+ (c_parser_direct_declarator_inner): Added a check for array
+ notation.
+ (c_parser_compound_statement): Added a check for array notation in
+ a stmt. If one is present, then expand array notation expr.
+ (c_parser_if_statement): Likewise.
+ (c_parser_switch_statement): Added a check for array notations in
+ a switch statement's condition. If true, then output an error.
+ (c_parser_while_statement): Similarly, but for a while.
+ (c_parser_do_statement): Similarly, but for a do-while.
+ (c_parser_for_statement): Similarly, but for a for-loop.
+ (c_parser_unary_expression): Check if array notation is used in a
+ pre-increment or pre-decrement expression. If true, then expand
+ them.
+ (c_parser_array_notation): New function.
+ * c-array-notation.c: New file.
+ * c-tree.h (is_cilkplus_reduce_builtin): Protoize.
+
+2013-05-23 Mike Stump <mikestump@comcast.net>
+
+ * c-typeck.c (convert_for_assignment): Handle references to memory
+ spaces better.
+
+2013-05-16 Jason Merrill <jason@redhat.com>
+
+ * Make-lang.in (cc1$(exeext)): Use link mutex.
+
2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
* c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns