blob: d2a125f401f0d99e9e7f81d120f7a037266755b7 [file] [log] [blame]
2018-07-26 Release Manager
* GCC 8.2.0 released.
2018-07-12 Jakub Jelinek <>
* c-decl.c (c_decl_attributes): Don't diagnose vars without mappable
type here, instead add "omp declare target implicit" attribute.
(finish_decl): Diagnose vars without mappable type here.
2018-06-20 Jakub Jelinek <>
Backported from mainline
2018-06-15 Jakub Jelinek <>
PR c/86093
* c-typeck.c (pointer_diff): Cast both pointers to unqualified types
before doing POINTER_DIFF_EXPR.
2018-05-30 Jakub Jelinek <>
Backported from mainline
2018-05-10 Jakub Jelinek <>
PR c++/85662
* c-fold.c (c_fully_fold_internal): Use fold_offsetof rather than
fold_offsetof_1, pass TREE_TYPE (expr) as TYPE to it and drop the
* c-typeck.c (build_unary_op): Use fold_offsetof rather than
fold_offsetof_1, pass argtype as TYPE to it and drop the
2018-05-02 Release Manager
* GCC 8.1.0 released.
2018-03-21 Joseph Myers <>
* c-parser.c (c_parser_postfix_expression): For __builtin_tgmath
where all functions return the same _FloatN or _FloatNx type,
treat integer types as _Float64 instead of double.
2018-03-21 Jakub Jelinek <>
PR c/84999
* c-typeck.c (build_binary_op): If c_common_type_for_size fails when
building vector comparison, diagnose it and return error_mark_node.
2018-03-15 Jakub Jelinek <>
PR c/84853
* c-typeck.c (build_binary_op) <case RSHIFT_EXPR, case LSHIFT_EXPR>:
If code1 is INTEGER_TYPE, only allow code0 VECTOR_TYPE if it has
INTEGER_TYPE element type.
2018-03-13 David Pagan <>
PR c/46921
* c-typeck.c (output_init_element): Ensure field initializer
expression is always evaluated if there are side effects.
2018-03-06 Jakub Jelinek <>
PR c/84721
* c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if
!building_stmt_list_p ().
2018-02-13 Richard Sandiford <>
PR c/84305
* c-decl.c (grokdeclarator): Create an anonymous TYPE_DECL
in PARM and TYPENAME contexts too, but attach it to a BIND_EXPR
and include the BIND_EXPR in the list of things that need to be
2018-02-09 Nathan Sidwell <>
PR c/84293
* c-typeck.c (build_indirect_ref, build_c_cast): Pass expr location
to strict_aliasing_warning.
2018-02-02 Paolo Carlini <>
* c-typeck.c (really_start_incremental_init, push_init_level,
set_nonincremental_init, output_init_element, process_init_element):
2018-01-31 Marek Polacek <>
PR c/81779
* c-parser.c (c_parser_compound_statement_nostart): Call
2018-01-17 David Malcolm <>
PR c++/83814
* c-fold.c (fold_for_warn): Move from c-common.c, reducing to just
the C part.
2018-01-13 Jakub Jelinek <>
PR c/83801
* c-tree.h (decl_constant_value_1): Add a bool argument.
* c-typeck.c (decl_constant_value_1): Add IN_INIT argument, allow
returning a CONSTRUCTOR if it is true. Use error_operand_p.
(decl_constant_value): Adjust caller.
* c-fold.c (c_fully_fold_internal): If in_init, pass true to
decl_constant_value_1 as IN_INIT. Otherwise, punt if
decl_constant_value returns initializer that has BLKmode or
array type.
(c_fully_fold_internal) <case COMPONENT_REF>: Fold if !lval.
2018-01-03 Richard Sandiford <>
Alan Hayward <>
David Sherwood <>
* c-typeck.c (comptypes_internal, build_binary_op): Handle polynomial
2018-01-03 Jakub Jelinek <>
Update copyright years.
2018-01-01 Jakub Jelinek <>
PR c/83595
* c-parser.c (c_parser_braced_init, c_parser_initelt,
c_parser_conditional_expression, c_parser_cast_expression,
c_parser_sizeof_expression, c_parser_alignof_expression,
c_parser_postfix_expression, c_parser_omp_declare_reduction,
c_parser_transaction_expression): Use set_error () method instead
of setting value member to error_mark_node.
2017-12-28 Michael Meissner <>
* c-decl.c (header_for_builtin_fn): Add integer rounding _Float<N>
and _Float<N>X built-in functions.
2017-12-22 Jakub Jelinek <>
PR debug/83550
* c-decl.c (finish_struct): Set DECL_SOURCE_LOCATION on
TYPE_STUB_DECL and call rest_of_type_compilation before processing
incomplete vars rather than after it.
PR debug/83547
* c-typeck.c (c_finish_stmt_expr): Ignore !TREE_SIDE_EFFECTS as
indicator of ({ }), instead skip all trailing DEBUG_BEGIN_STMTs first,
and consider empty ones if there are no other stmts. For
-Wunused-value walk all statements before the one only followed by
2017-12-22 Mike Stump <>
Eric Botcazou <>
* c-parser.c (c_parser_while_statement): Add unroll parameter and
build ANNOTATE_EXPR if present. Add 3rd operand to ANNOTATE_EXPR.
(c_parser_do_statement): Likewise.
(c_parser_for_statement): Likewise.
(c_parser_statement_after_labels): Adjust calls to above.
(c_parse_pragma_ivdep): New static function.
(c_parser_pragma_unroll): Likewise.
(c_parser_pragma) <PRAGMA_IVDEP>: Add support for pragma Unroll.
<PRAGMA_UNROLL>: New case.
2017-12-19 Jakub Jelinek <>
* c-typeck.c (comptypes_internal, function_types_compatible_p,
perform_integral_promotions, digest_init): Replace Yoda conditions
with typical order conditions.
* c-decl.c (check_bitfield_type_and_width): Likewise.
2017-12-14 Bernd Edlinger <>
* c-typeck.c (c_safe_arg_type_equiv_p,
c_safe_function_type_cast_p): New function.
(build_c_cast): Implement -Wcast-function-type.
2017-12-14 Richard Biener <>
PR c/83415
* c-fold.c (c_fully_fold_internal): Treat VIEW_CONVERT_EXPR
like REALPART_EXPR for the behavior of whether its operand
is an lvalue.
2017-12-12 Marek Polacek <>
PR c/82679
* c-decl.c (grokdeclarator): Check declspecs insted of atomicp.
2017-12-12 Alexandre Oliva <>
* c-objc-common.h (LANG_HOOKS_EMITS_BEGIN_STMT): Redefine as true.
* c-parser.c (add_debug_begin_stmt): New.
(c_parser_declaration_or_fndef): Call it.
(c_parser_compound_statement_nostart): Likewise.
(c_parser_statement_after_labels): Likewise.
* c-typeck (c_finish_stmt_expr): Skip begin stmts markers.
2017-12-07 Joseph Myers <>
* c-decl.c (build_compound_literal): Add parameter alignas_align
and set alignment of decl if nonzero.
* c-parser.c (c_keyword_starts_typename): Allow RID_ALIGNAS.
(c_parser_declspecs): Allow RID_ALIGNAS to follow a type, like a
(c_parser_struct_declaration): Update syntax comment.
(c_parser_type_name): Add alignas_ok argument and pass it to
(c_parser_cast_expression): Pass true to c_parser_type_name and
give error if a cast used an _Alignas specifier.
(c_parser_sizeof_expression): Pass true to c_parser_type_name and
give error if sizeof (type-name) used an _Alignas specifier.
(c_parser_alignof_expression): Pass true to c_parser_type_name and
give error if _Alignof (type-name) used an _Alignas specifier.
(c_parser_postfix_expression_after_paren_type): Check specified
alignment for a compound literal and pass it to
* c-parser.h (c_parser_type_name): Update prototype.
* c-tree.h (build_compound_literal): Update prototype.
2017-12-07 Martin Sebor <>
PR c/81544
* c-decl.c (c_decl_attributes): Look up existing declaration and
pass it to decl_attributes.
2017-12-06 David Malcolm <>
PR c/83236
* c-decl.c (lookup_name_fuzzy): Don't suggest names that are
reserved for use by the implementation.
2017-12-06 David Malcolm <>
* c-decl.c: Include "c-family/c-spellcheck.h".
2017-12-05 Martin Liska <>
Jakub Jelinek <>
* c-typeck.c (pointer_diff): Add new argument and instrument
pointer subtraction.
(build_binary_op): Similar for pointer comparison.
2017-12-01 Jakub Jelinek <>
PR c/79153
* c-parser.c: Include tree-iterator.h.
(c_parser_switch_statement): Emit LABEL_EXPR for the break label
into SWITCH_BODY instead of after it and set SWITCH_BREAK_LABEL_P
on it.
PR c/83222
* c-tree.h (decl_constant_value_1): Declare.
* c-typeck.c (decl_constant_value_1): New function.
(decl_constant_value): Use it.
* c-fold.c (c_fully_fold_internal): If in_init, use
decl_constant_value_1 instead of decl_constant_value.
2017-11-30 Jakub Jelinek <>
* c-parser.c (c_parser_postfix_expression): Use ; instead of ;;.
2017-11-28 Jakub Jelinek <>
PR sanitizer/81275
* c-typeck.c (c_finish_case): Set SWITCH_ALL_CASES_P if
c_switch_covers_all_cases_p returns true.
2017-11-28 Julia Koval <>
Sebastian Peryt <>
* (c/c-array-notation.o): Remove.
* c-array-notation.c: Delete.
* c-decl.c: Remove cilkplus condition.
* c-parser.c (c_parser_cilk_simd, c_parser_cilk_for,
c_parser_cilk_verify_simd, c_parser_array_notation,
c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize,
c_finish_cilk_simd_fn_tokens): Delete.
(c_parser_declaration_or_fndef): Remove cilkplus condition.
(c_parser_direct_declarator_inner): Ditto.
(c_parser_attributes, c_parser_compound_statement,
c_parser_statement_after_labels, c_parser_if_statement,
c_parser_switch_statement, c_parser_while_statement,
c_parser_do_statement, c_parser_for_statement,
c_parser_unary_expression, c_parser_postfix_expression,
c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses,
c_parser_omp_for_loop, c_finish_omp_declare_simd): Remove cilkplus
* c-typeck.c (build_array_ref, build_function_call_vec,
lvalue_p, build_compound_expr, c_finish_return, c_finish_if_stmt,
c_finish_loop, build_binary_op): Remove cilkplus support.
2017-11-28 Jakub Jelinek <>
* c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead
of build3.
2017-11-14 Boris Kolpackov <>
* (c.install-plugin): Install backend import library.
2017-11-23 Jakub Jelinek <>
* c-parser.c (c_parser_omp_declare_simd): Reject declare simd in
pragma_stmt context.
2017-11-23 Mike Stump <>
Eric Botcazou <>
* c-parser.c (c_parser_while_statement): Pass 3rd operand to
(c_parser_do_statement): Likewise.
(c_parser_for_statement): Likewise.
2017-11-22 David Malcolm <>
PR c++/62170
* c-objc-common.c (c_tree_printer): Convert penultimate param from
bool to bool *. Within '%T' handling, if showing an "aka", use
"quoted" param to add appropriate quoting.
2017-11-22 Marek Polacek <>
PR c++/60336
PR middle-end/67239
PR target/68355
* c-decl.c (grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.
2017-11-21 David Malcolm <>
PR c/83056
* c-decl.c (lookup_name_fuzzy): Don't suggest names that came from
earlier failed lookups.
2017-11-21 Marc Glisse <>
* c-fold.c (c_fully_fold_internal): Handle POINTER_DIFF_EXPR.
* c-typeck.c (pointer_diff): Use POINTER_DIFF_EXPR.
2017-11-20 David Malcolm <>
PR c/81404
* c-decl.c: Include "c-family/known-headers.h".
(get_c_name_hint): Rename to get_stdlib_header_for_name and move
(class suggest_missing_header): Move to known-header.h.
(lookup_name_fuzzy): Call get_c_stdlib_header_for_name rather
than get_c_name_hint.
2017-11-20 David Malcolm <>
* c-decl.c (get_c_name_hint): New function.
(class suggest_missing_header): New class.
(lookup_name_fuzzy): Call get_c_name_hint and use it to
suggest missing headers to the user.
2017-11-20 David Malcolm <>
* c-decl.c: Define INCLUDE_UNIQUE_PTR before including system.h.
Include "c-family/name-hint.h"
(implicit_decl_warning): Convert "hint" from
const char * to name_hint. Pass location to
lookup_name_fuzzy. Suppress any deferred diagnostic if the
warning was not printed.
(undeclared_variable): Likewise for "guessed_id".
(lookup_name_fuzzy): Convert return type from const char *
to name_hint. Add location_t param.
* c-parser.c: Define INCLUDE_UNIQUE_PTR before including system.h.
Include "c-family/name-hint.h"
(c_parser_declaration_or_fndef): Convert "hint" from
const char * to name_hint. Pass location to lookup_name_fuzzy.
(c_parser_parameter_declaration): Likewise.
2017-11-19 Jakub Jelinek <>
PR c/66618
PR c/69960
* c-parser.c (c_parser_omp_atomic): Pass true as LVAL to c_fully_fold
where needed.
* c-typeck.c (build_unary_op, build_modify_expr, build_asm_expr,
handle_omp_array_sections): Likewise.
(digest_init): Don't call decl_constant_value_for_optimization.
* c-tree.h (decl_constant_value_for_optimization): Removed.
* c-fold.c (c_fold_array_ref): New function.
(c_fully_fold_internal): Add LVAL argument, propagate it through
recursive calls. For VAR_P call decl_constant_value and
unshare if not LVAL and either optimizing or IN_INIT. Remove
decl_constant_value_for_optimization calls. If IN_INIT and not LVAL,
fold ARRAY_REF with STRING_CST and INTEGER_CST operands.
(c_fully_fold): Add LVAL argument, pass it through to
(decl_constant_value_for_optimization): Removed.
2017-11-15 Joseph Myers <>
PR c/81156
* c-parser.c (check_tgmath_function): New function.
(enum tgmath_parm_kind): New enum.
(c_parser_postfix_expression): Handle __builtin_tgmath.
2017-10-31 David Malcolm <>
* c-decl.c (implicit_decl_warning): Update for renaming of
pedwarn_at_rich_loc and warning_at_rich_loc.
(implicitly_declare): Likewise for renaming of inform_at_rich_loc.
(undeclared_variable): Likewise for renaming of error_at_rich_loc.
* c-parser.c (c_parser_declaration_or_fndef): Likewise.
(c_parser_struct_or_union_specifier): Likewise for renaming of
(c_parser_parameter_declaration): Likewise for renaming of
* c-typeck.c (build_component_ref): Likewise.
(build_unary_op): Likewise for renaming of inform_at_rich_loc.
(pop_init_level): Likewise for renaming of warning_at_rich_loc.
(set_init_label): Likewise for renaming of error_at_rich_loc.
2017-10-30 Richard Biener <>
* gimple-parser.c (c_parser_gimple_statement): Parse conditional
2017-10-27 Michael Meissner <>
* c-decl.c (header_for_builtin_fn): Add support for copysign, fma,
fmax, fmin, and sqrt _Float<N> and _Float<N>X variants.
2017-10-25 David Malcolm <>
PR c/7356
* c-parser.c (c_parser_declaration_or_fndef): Detect missing
2017-10-25 Jakub Jelinek <>
PR libstdc++/81706
* c-decl.c (merge_decls): Copy "omp declare simd" attributes from
newdecl to corresponding __builtin_ if any.
2017-10-24 Paolo Carlini <>
PR c++/82466
* c-decl.c (diagnose_mismatched_decls): Use
2017-10-12 David Malcolm <>
* c-parser.c (c_parser_require): Add "type_is_unique" param and
use it to guard calls to maybe_suggest_missing_token_insertion.
(c_parser_parms_list_declarator): Override default value of new
"type_is_unique" param to c_parser_require.
(c_parser_asm_statement): Likewise.
* c-parser.h (c_parser_require): Add "type_is_unique" param,
defaulting to true.
2017-10-11 Nathan Sidwell <>
* c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too.
2017-10-10 Richard Sandiford <>
* c-parser.c (c_parser_cilk_clause_vectorlength): Use wi::to_wide when
operating on trees as wide_ints.
* c-typeck.c (build_c_cast, c_finish_omp_clauses): Likewise.
(c_tree_equal): Likewise.
2017-10-04 David Malcolm <>
* c-decl.c (push_parm_decl): Store c_parm's location into the
(build_c_parm): Add "loc" param and store it within the c_parm.
* c-parser.c (struct c_parser): Add "last_token_location" field.
(c_parser_consume_token): Store location of the token into the
new field.
(c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS
when handling a FUNCTION_DECL, if it doesn't already have them.
(c_parser_parameter_declaration): Generate a location for the
parameter, and pass it to the call to build_c_parm.
* c-tree.h (struct c_parm): Add field "loc".
(build_c_parm): Add location_t param.
* c-typeck.c (get_fndecl_argument_location): New function.
(inform_for_arg): New function.
(convert_for_assignment): Use inform_for_arg when dealing with
2017-09-29 Jakub Jelinek <>
* c-decl.c (grokfield): Use SET_DECL_C_BIT_FIELD here if
width is non-NULL.
(finish_struct): Test DECL_C_BIT_FIELD instead of DECL_INITIAL,
don't SET_DECL_C_BIT_FIELD here.
PR c/82340
* c-decl.c (build_compound_literal): Use c_apply_type_quals_to_decl
instead of trying to set just TREE_READONLY manually.
2017-09-16 Tom de Vries <>
PR c/81875
* c-parser.c (c_parser_omp_for_loop): Fold only operands of cond, not
cond itself.
2017-09-15 Joseph Myers <>
PR c/82071
* c-typeck.c (ep_convert_and_check): Just call convert_and_check
for C11.
(build_conditional_expr): For C11, generate result with excess
precision when one argument is an integer and the other is of a
type using excess precision.
2017-09-15 Bernd Edlinger <>
* c-typeck.c (build_c_cast): Implement -Wcast-align=strict.
2017-09-13 Marek Polacek <>
PR c/82167
* c-typeck.c (c_expr_sizeof_expr): Use the type of expr.value rather
than expr.original_type.
2017-09-12 Nathan Sidwell <>
* c-decl.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
resort_sorted_fields): Moved from c-family/c-common.c.
* c-lang.h (struct sorted_fields_type): Moved from c-family/c-common.h.
2017-09-01 Joseph Myers <>
PR c/82071
* c-typeck.c (build_atomic_assign): Handle argument with excess
precision. Ensure any EXCESS_PRECISION_EXPR is present in
argument passed to build_binary_op and convert_for_assignment but
not for call to c_fully_fold.
(build_modify_expr): Do not remove EXCESS_PRECISION_EXPR early.
Ensure build_binary_op is called with argument with original
semantic type. Avoid calling c_fully_fold with an
EXCESS_PRECISION_EXPR from build_binary_op.
2017-09-01 Jakub Jelinek <>
PR c/81887
* c-parser.c (c_parser_omp_ordered): Handle -fopenmp-simd.
2017-08-30 Richard Sandiford <>
Alan Hayward <>
David Sherwood <>
* c-typeck.c (build_binary_op): Use SCALAR_TYPE_MODE.
(c_common_type): Likewise. Use as_a <scalar_mode> when setting
m1 and m2 to the signed equivalent of a fixed-point
2017-08-24 David Malcolm <>
* c-tree.h (c_expr::get_location) Use EXPR_HAS_LOCATION rather
than CAN_HAVE_LOCATION_P when determining whether to use the
location_t value within "value".
2017-08-21 David Malcolm <>
* c-parser.c (c_parser_expr_list): Use c_expr::get_location ()
rather than peeking the location of the first token.
* c-tree.h (c_expr::get_location): New method.
2017-08-21 David Malcolm <>
* c-typeck.c (build_function_call_vec): Pass arg_loc to call
to check_function_arguments.
2017-08-18 Marek Polacek <>
* c-parser.c (c_parser_postfix_expression): Remove unused code. Update
2017-08-18 H.J. Lu <>
PR c/53037
* c-decl.c (merge_decls): Also merge DECL_WARN_IF_NOT_ALIGN.
(check_bitfield_type_and_width): Don't allow bit-field with
warn_if_not_aligned type.
2017-08-14 Martin Sebor <>
PR c/81117
* c-objc-common.c (c_objc_common_init): Handle 'G'.
2017-08-11 Marek Polacek <>
PR c/81795
* c-decl.c (pushtag): Only print inform if the warning was printed.
(grokdeclarator): Likewise.
2017-08-10 David Malcolm <>
* c-parser.c (c_parser_error): Rename to...
(c_parser_error_richloc): ...this, making static, and adding
"richloc" parameter, passing it to the c_parse_error call,
rather than calling c_parser_set_source_position_from_token.
(c_parser_error): Reintroduce, reimplementing in terms of the
above, converting return type from void to bool.
(class token_pair): New class.
(struct matching_paren_traits): New struct.
(matching_parens): New typedef.
(struct matching_brace_traits): New struct.
(matching_braces): New typedef.
(get_matching_symbol): New function.
(c_parser_require): Add param MATCHING_LOCATION, using it to
highlight matching "opening" tokens for missing "closing" tokens.
(c_parser_skip_until_found): Likewise.
(c_parser_static_assert_declaration_no_semi): Convert explicit
parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of
class matching_parens, so that the pertinent open parenthesis is
highlighted when there are problems locating the close
(c_parser_struct_or_union_specifier): Likewise.
(c_parser_typeof_specifier): Likewise.
(c_parser_alignas_specifier): Likewise.
(c_parser_simple_asm_expr): Likewise.
(c_parser_braced_init): Likewise, for matching_braces.
(c_parser_paren_condition): Likewise, for matching_parens.
(c_parser_switch_statement): Likewise.
(c_parser_for_statement): Likewise.
(c_parser_asm_statement): Likewise.
(c_parser_asm_operands): Likewise.
(c_parser_cast_expression): Likewise.
(c_parser_sizeof_expression): Likewise.
(c_parser_alignof_expression): Likewise.
(c_parser_generic_selection): Likewise.
(c_parser_postfix_expression): Likewise for cases RID_VA_ARG,
RID_AT_PROTOCOL, RID_AT_ENCODE, reindenting as necessary.
In case CPP_OPEN_PAREN, pass loc_open_paren to the
c_parser_skip_until_found call.
(c_parser_objc_class_definition): Use class matching_parens as
(c_parser_objc_method_decl): Likewise.
(c_parser_objc_try_catch_finally_statement): Likewise.
(c_parser_objc_synchronized_statement): Likewise.
(c_parser_objc_at_property_declaration): Likewise.
(c_parser_oacc_wait_list): Likewise.
(c_parser_omp_var_list_parens): Likewise.
(c_parser_omp_clause_collapse): Likewise.
(c_parser_omp_clause_default): Likewise.
(c_parser_omp_clause_if): Likewise.
(c_parser_omp_clause_num_threads): Likewise.
(c_parser_omp_clause_num_tasks): Likewise.
(c_parser_omp_clause_grainsize): Likewise.
(c_parser_omp_clause_priority): Likewise.
(c_parser_omp_clause_hint): Likewise.
(c_parser_omp_clause_defaultmap): Likewise.
(c_parser_oacc_single_int_clause): Likewise.
(c_parser_omp_clause_ordered): Likewise.
(c_parser_omp_clause_reduction): Likewise.
(c_parser_omp_clause_schedule): Likewise.
(c_parser_omp_clause_num_teams): Likewise.
(c_parser_omp_clause_thread_limit): Likewise.
(c_parser_omp_clause_aligned): Likewise.
(c_parser_omp_clause_linear): Likewise.
(c_parser_omp_clause_safelen): Likewise.
(c_parser_omp_clause_simdlen): Likewise.
(c_parser_omp_clause_depend): Likewise.
(c_parser_omp_clause_map): Likewise.
(c_parser_omp_clause_device): Likewise.
(c_parser_omp_clause_dist_schedule): Likewise.
(c_parser_omp_clause_proc_bind): Likewise.
(c_parser_omp_clause_uniform): Likewise.
(c_parser_omp_for_loop): Likewise.
(c_parser_cilk_clause_vectorlength): Likewise.
(c_parser_cilk_clause_linear): Likewise.
(c_parser_transaction_expression): Likewise.
* c-parser.h (c_parser_require): Add param matching_location with
(c_parser_error): Convert return type from void to bool.
(c_parser_skip_until_found): Add param matching_location with
2017-08-09 Marek Polacek <>
* c-decl.c (build_enumerator): Use true/false instead of 1/0.
* c-tree.h (build_external_ref): Update declaration.
* c-typeck.c (build_array_ref): Use true/false instead of 1/0.
(build_external_ref): Change the type of a parameter to bool.
(parser_build_binary_op): Use true/false instead of 1/0.
(pointer_diff): Likewise.
(build_modify_expr): Likewise.
(set_designator): Change the type of a parameter to bool.
(set_init_index): Use true/false instead of 1/0.
(set_init_label): Likewise.
(output_init_element): Change the type of a parameter to bool.
(output_pending_init_elements): Use true/false instead of 1/0.
(process_init_element): Likewise.
(build_binary_op): Change the type of a parameter to bool.
2017-08-09 Marek Polacek <>
PR c/81233
* c-typeck.c (pedwarn_init): Make the function take a variable list.
Call emit_diagnostic_valist instead of pedwarn.
(convert_for_assignment): Unroll the PEDWARN_FOR_ASSIGNMENT macro.
Print the relevant types in diagnostics.
2017-08-09 Marek Polacek <>
PR c/81417
* c-array-notation.c (fix_builtin_array_notation_fn): Update calls to
* c-parser.c (c_parser_conditional_expression): Create locations for
EXP1 and EXP2 from their source ranges. Pass the locations down to
* c-tree.h (build_conditional_expr): Update declaration.
* c-typeck.c (build_conditional_expr): Add location_t parameters.
For -Wsign-compare, also print the types.
2017-08-08 Martin Liska <>
* c-convert.c: Include header files.
* c-typeck.c: Likewise.
2017-08-07 Martin Liska <>
* c-parser.c (c_parser_attributes): Canonicalize name of an
2017-08-02 Marek Polacek <>
PR c/81289
* c-parser.c (c_parser_unary_expression): Use set_error.
PR c/81448
PR c/81306
* c-warn.c (warn_for_multistatement_macros): Prevent bogus
warnings. Avoid walking MACRO_MAP_LOCATIONS.
2017-07-31 Jan Hubicka <>
Martin Liska <>
* c-typeck.c (c_finish_goto_label): Build gimple predict
2017-07-31 Martin Liska <>
PR sanitize/81530
* c-convert.c (convert): Guard condition with flag_sanitize_p
also with current_function_decl non-null equality.
* c-decl.c (grokdeclarator): Likewise.
* c-typeck.c (build_binary_op): Likewise.
2017-07-25 Marek Polacek <>
* c-decl.c (grokfield): Remove local variable.
2017-07-25 Marek Polacek <>
PR c/81364
* c-parser.c (c_parser_else_body): Don't warn about multistatement
macro expansion if the body is in { }.
(c_parser_while_statement): Likewise.
(c_parser_for_statement): Likewise.
2017-07-18 Nathan Sidwell <>
* c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE.
2017-07-14 David Malcolm <>
* c-decl.c (implicitly_declare): When suggesting a missing
#include, provide a fix-it hint.
2017-07-06 David Malcolm <>
* c-lang.c (selftest::run_c_tests): Move body to c_family_tests,
and call that instead.
* c-tree.h (selftest::run_c_tests): New decl.
2017-06-26 Marek Polacek <>
PR c/80116
* c-parser.c (c_parser_if_body): Set the location of the
body of the conditional after parsing all the labels. Call
(c_parser_else_body): Likewise.
(c_parser_switch_statement): Likewise.
(c_parser_while_statement): Likewise.
(c_parser_for_statement): Likewise.
(c_parser_statement): Add a default argument. Save the location
after labels have been parsed.
(c_parser_c99_block_statement): Likewise.
2017-06-19 Richard Biener <>
* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
negated _Literals to parse _Literal (int) -1.
2017-06-13 Martin Liska <>
PR sanitize/78204
* c-convert.c (convert): Use sanitize_flags_p.
* c-decl.c (grokdeclarator): Likewise.
* c-typeck.c (convert_for_assignment): Likewise.
(c_finish_return): Likewise.
(build_binary_op): Likewise.
2017-06-08 Jakub Jelinek <>
PR c/81006
* c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE
to sizetype before size_binop.
2017-06-07 Jakub Jelinek <>
* gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead
of TDI_generic.
2017-06-06 Marek Polacek <>
PR c/79983
* c-decl.c (start_struct): Use the location of TYPE_STUB_DECL of
(start_enum): Use the location of TYPE_STUB_DECL of enumtype.
2017-06-02 Bernd Edlinger <>
* c-parser.c (c_parser_binary_expression): Implement the
-Wsizeof_pointer_div warning.
(c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code
from a parenthesized expression.
(c_parser_expr_list): Use c_last_sizeof_loc.
* c-tree.h (c_last_sizeof_loc): New external.
* c-typeck.c (c_last_sizeof_loc): New variable.
(c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc.
2017-05-31 Mikhail Maltsev <>
PR testsuite/80580
* gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels.
2017-05-30 David Malcolm <>
* c-objc-common.c (c_tree_printer): Gain bool and const char **
2017-05-24 Martin Sebor <>
PR c/80731
* c-fold.c (c_fully_fold_internal): Adjust.
* c-typeck.c (parser_build_unary_op): Adjust.
2017-05-23 Thomas Schwinge <>
* c-parser.c (OACC_KERNELS_CLAUSE_MASK): Add
2017-05-23 Marek Polacek <>
* c-parser.c (c_parser_compound_statement_nostart): Remove redundant
2017-05-22 Jakub Jelinek <>
* c-fold.c (c_fully_fold_internal): Save the c_fully_fold_internal
result for SAVE_EXPR operand and set SAVE_EXPR_FOLDED_P even if
it returned invariant. Call tree_invariant_p unconditionally
afterwards to decide whether to return expr or op0.
2017-05-22 Nathan Sidwell <>
* c-decl.c (c_parse_final_cleanups): Drop TDI_tu handling.
2017-05-19 Thomas Schwinge <>
* c-parser.c (c_parser_omp_clause_default): Handle
2017-05-18 Bernd Edlinger <>
* (gtfiles): Add c-family/c-format.c.
2017-05-18 Nathan Sidwell <>
* c-decl.c (pushdecl_top_level): Delete unused function.
2017-05-18 Marek Polacek <>
* c-decl.c (match_builtin_function_types): Use NULL_TREE instead of 0.
(check_earlier_gotos): Likewise.
(define_label): Likewise.
(pending_xref_error): Likewise.
(smallest_type_quals_location): Likewise.
(grokdeclarator): Likewise.
(grokparms): Likewise.
(identifier_global_value): Likewise.
* c-typeck.c (set_nonincremental_init_from_string): Likewise.
(find_init_member): Likewise.
2017-05-18 Marek Polacek <>
* c-decl.c (start_decl): Use false/true instead of 0/1.
(grokdeclarator): Likewise.
(finish_struct): Likewise.
(start_function): Change the return type to bool. Use false/true
instead of 0/1.
(declspecs_add_qual): Use UNKNOWN_LOCATION instead of 0.
* c-tree.h (start_function): Update.
* c-typeck.c (same_translation_unit_p): Change the return type to bool.
(set_designator): Change the return type to bool. Use false/true
instead of 0/1.
2017-05-17 Marek Polacek <>
* c-decl.c: Use NULL_TREE instead of 0 where appropriate.
* c-typeck.c: Likewise.
2017-05-17 Marek Polacek <>
PR sanitizer/80659
* c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and
DECL_IGNORED_P even for non-static compound literals.
2017-05-17 Martin Liska <>
* c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and
use it instead of int type.
2017-05-17 Marek Polacek <>
* c-convert.c (convert): Replace c_save_expr with save_expr. Don't
call c_fully_fold.
(convert) <case COMPLEX_TYPE>: Remove special handling of COMPLEX_TYPEs.
* c-decl.c (grokdeclarator): Replace c_save_expr with save_expr.
* c-fold.c (c_fully_fold_internal): Handle SAVE_EXPR.
* c-parser.c (c_parser_declaration_or_fndef): Replace c_save_expr with
(c_parser_conditional_expression): Likewise.
* c-tree.h (SAVE_EXPR_FOLDED_P): Define.
* c-typeck.c (build_modify_expr): Replace c_save_expr with save_expr.
(process_init_element): Likewise.
(build_binary_op): Likewise.
(handle_omp_array_sections_1): Likewise.
2017-05-12 Thomas Schwinge <>
* c-parser.c (c_parser_omp_clause_num_gangs)
(c_parser_omp_clause_vector_length): Merge functions into...
(c_parser_oacc_single_int_clause): ... this new function. Adjust
all users.
2017-05-11 Nathan Sidwell <>
* gimple-parser.c: Don't #include tree-dump.h.
2017-05-11 Mikhail Maltsev <>
PR testsuite/80580
* gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.
2017-05-11 Mikhail Maltsev <>
PR testsuite/80580
* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
incorrect __MEM syntax.
2017-05-11 Mikhail Maltsev <>
PR testsuite/80580
* gimple-parser.c (c_parser_gimple_unary_expression): Check argument
type of unary '*'.
2017-05-09 Nathan Sidwell <>
* c-tree.h (pushdecl): Declare.
2017-05-05 David Malcolm <>
* c-decl.c (warn_defaults_to): Replace report_diagnostic
with diagnostic_report_diagnostic.
* c-errors.c (pedwarn_c99): Likewise.
(pedwarn_c90): Likewise.
2017-05-01 Xi Ruoyao <>
PR c++/80038
* c-gimplify.c (c_gimplify_expr): Remove calls to
2017-04-25 David Malcolm <>
* c-parser.c (c_parser_struct_or_union_specifier): Add fix-it
hint for removing extra semicolon.
2017-04-21 Jakub Jelinek <>
PR c/80468
* c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not
enabled, set specs->type to integer_type_node.
2017-04-03 Jonathan Wakely <>
* c-array-notation.c: Fix typo in comment.
2017-03-29 Marek Polacek <>
PR c/79730
* c-decl.c (finish_decl): Check VAR_P.
2017-03-27 Jakub Jelinek <>
PR middle-end/80162
* c-tree.h (c_mark_addressable): Add array_ref_p argument.
* c-typeck.c (c_mark_addressable): Likewise. Look through
VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
(build_array_ref): Pass true as array_ref_p to c_mark_addressable.
2017-03-23 Marek Polacek <>
* c-tree.h: Remove a C_RID_YYCODE reference.
2017-03-21 Jakub Jelinek <>
PR c/80097
* c-typeck.c (build_binary_op): Add EXCESS_PRECISION_EXPR only around
optional COMPOUND_EXPR with ubsan instrumentation.
2017-03-17 Marek Polacek <>
* c-parser.c: Add C11 references.
2017-03-15 Marek Polacek <>
* c-parser.c (c_parser_enum_specifier): Remove redundant line.
2017-03-11 Marek Polacek <>
* c-decl.c (implicit_decl_warning): Add a comment. Fix formatting.
2017-03-10 David Malcolm <>
PR translation/79848
* c-decl.c (declspecs_add_type): Simplify uses of "%<%s%>" to
* c-parser.c (c_parser_oacc_shape_clause): Likewise.
2017-03-09 Marek Polacek <>
PR sanitizer/79757
* c-parser.c (c_parser_declaration_or_fndef): Don't sanitize old-style
parameter declarations with initializers.
2017-03-09 Jakub Jelinek <>
PR c/79969
* c-decl.c (start_enum): Adjust DECL_SOURCE_LOCATION of
2017-03-07 Jakub Jelinek <>
PR c/79834
* c-parser.c (c_parser_pragma): Use error_at instead of c_parser_error
for "may only be used in compound statements" diagnostics, change it
such that the same translatable string is used for all pragmas. For
PRAGMA_OACC_WAIT use "acc wait" rather than "acc enter data" in the
(c_parser_omp_cancellation_point, c_parser_omp_target_update,
c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Change
"may only be used in compound statements" diagnostics, such that the
same translatable string is used for all pragmas.
2017-03-04 Marek Polacek <>
PR c/79847
* c-decl.c (implicit_decl_warning): Add missing space.
2017-03-03 Marek Polacek <>
PR c/79758
* c-decl.c (store_parm_decls_oldstyle): Check if the element of
current_function_prototype_arg_types is error_mark_node. Fix
formatting. Use TREE_VALUE instead of TREE_TYPE.
2017-03-03 Jakub Jelinek <>
PR c/79837
* c-parser.c (c_parser_omp_clause_reduction): Don't mention
%<min%> or %<max%> in the diagnostics, instead mention identifier.
(c_parser_omp_declare_reduction): Don't mention %<min%> in the
PR c/79836
* c-parser.c (c_parser_generic_selection): Use %<_Generic%>
instead of %<_Generic>.
(c_parser_omp_ordered): Use %<depend%> instead of %<depend>.
(c_parser_omp_target_exit_data): Use %<release%> instead of
2017-02-28 Jakub Jelinek <>
* c-parser.c (c_parser_asm_statement): Use cond ? G_("...") : G_("...")
instead of just cond ? "..." : "...".
(c_parser_oacc_enter_exit_data): Use %s and ternary operator only
for "enter"/"exit" keyword.
(c_finish_oacc_routine): Don't use %s to supply portions of the
2017-02-24 Jakub Jelinek <>
PR c++/79588
* c-parser.c (c_parser_postfix_expression_after_primary): Don't
handle -Wrestrict here.
* c-typeck.c (build_function_call_vec): Adjust
check_function_arguments caller.
2017-02-23 Richard Biener <>
PR c/79684
* gimple-parser.c (c_parser_gimple_statement): Use set_error
to initialize c_exprs to return.
(c_parser_gimple_binary_expression): Likewise.
(c_parser_gimple_unary_expression): Likewise.
(c_parser_gimple_postfix_expression): Likewise.
2017-02-22 Marek Polacek <>
PR c/79662
* c-typeck.c (convert_arguments): Handle error_mark_node.
2017-02-19 Prathamesh Kulkarni <>
* gimple-parser.c (c_parser_gimple_postfix_expression): Check return
value of c_parser_parse_ssa_name against error_mark_node and emit
error if ssa name is anonymous and written as default definition.
2017-02-19 Prathamesh Kulkarni <>
* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
2017-02-16 Jakub Jelinek <>
PR c++/79512
* c-parser.c (c_parser_omp_target): For -fopenmp-simd
ignore #pragma omp target even when not followed by identifier.
2017-02-14 Prathamesh Kulkarni <>
* gimpler-parser.c (c_parser_gimple_statement): Handle ABS_EXPR.
(c_parser_gimple_unary_expression): Likewise.
2017-02-13 Jakub Jelinek <>
* c-parser.c (c_parser_oacc_declare): Add missing space in
2017-02-13 Prathamesh Kulkarni <>
PR c/79478
* gimple-parser.c (c_parser_gimple_postfix_expression): Call
set_c_expr_source_range when parsing ssa-name.
2017-02-10 Prasad Ghangal <>
Richard Biener <>
* gimple-parser.c (c_parser_gimple_binary_expression): Avoid
building IL when arguments are error_mark_node.
(c_parser_gimple_unary_expression): Likewise.
(c_parser_gimple_if_stmt): Likewise.
(c_parser_gimple_switch_stmt): Likewise.
(c_parser_gimple_return_stmt): Likewise.
(c_parser_parse_ssa_name): When name lookup fails do not build
an SSA name. Use undeclared rather than not declared in error
2017-02-09 Marek Polacek <>
PR c/79428
* c-parser.c (c_parser_omp_ordered): Call c_parser_skip_to_pragma_eol
instead of c_parser_skip_until_found.
2017-02-09 Jakub Jelinek <>
PR c/79431
* c-parser.c (c_parser_omp_declare_target): Don't invoke
symtab_node::get on automatic variables.
2016-02-09 Nathan Sidwell <>
Chung-Lin Tang <>
* c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
(c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
semantic checking.
* c-parser.c (c_parser_omp_for_loop): Accept tiling constructs.
2017-02-07 Richard Biener <>
* gimple-parser.c (c_parser_gimple_expr_list): Simplify.
Do not use c_build_function_call_vec to avoid folding and promotion.
2017-01-25 Maxim Ostapenko <>
PR lto/79061
* c-decl.c (pop_scope): Pass main_input_filename to
2017-01-24 David Malcolm <>
* c-parser.c: Include "read-rtl-function.h" and
(c_parser_declaration_or_fndef): Rename "gimple-pass-list" in
grammar to gimple-or-rtl-pass-list. Add rtl-function-definition
production. Update for renaming of field "gimple_pass" to
"gimple_or_rtl_pass". If __RTL was seen, call
c_parser_parse_rtl_body. Convert a timevar_push/pop pair
to an auto_timevar, to cope with early exit.
(c_parser_declspecs): Update RID_GIMPLE handling for renaming of
field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of
c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list.
Handle RID_RTL.
(c_parser_parse_rtl_body): New function.
* c-tree.h (enum c_declspec_word): Add cdw_rtl.
(struct c_declspecs): Rename field "gimple_pass" to
"gimple_or_rtl_pass". Add field "rtl_p".
* gimple-parser.c (c_parser_gimple_pass_list): Rename to...
(c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly.
* gimple-parser.h (c_parser_gimple_pass_list): Rename to...
(c_parser_gimple_or_rtl_pass_list): ...this.
2017-01-20 Marek Polacek <>
PR c/64279
* c-typeck.c (build_conditional_expr): Warn about duplicated branches.
2017-01-13 Richard Biener <>
* gimple-parser.c (c_parser_gimple_compound_statement): Handle
2017-01-13 Richard Biener <>
* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
_Literal ( type-name ) number.
2017-01-12 Richard Biener <>
* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
2017-01-11 Jakub Jelinek <>
PR c++/72813
* c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing
PCH file.
2017-01-11 Richard Biener <>
PR bootstrap/79052
* gimple-parser.c (c_parser_gimple_switch_stmt): Add missing
returns on parse errors.
2017-01-04 Marek Polacek <>
PR c++/64767
* c-parser.c (c_parser_postfix_expression): Mark zero character
constants by setting original_type in c_expr.
* c-typeck.c (parser_build_binary_op): Warn when a pointer is compared
with a zero character constant.
(char_type_p): New function.
2017-01-04 David Malcolm <>
* c-parser.c (c_parser_declaration_or_fndef): Create a
rich_location at init_loc and parse it to start_init.
(last_init_list_comma): New global.
(c_parser_braced_init): Update last_init_list_comma when parsing
commas. Pass it to pop_init_level. Pass location of closing
brace to pop_init_level.
(c_parser_postfix_expression_after_paren_type): Create a
rich_location at type_loc and parse it to start_init.
(c_parser_omp_declare_reduction): Likewise for loc.
* c-tree.h (start_init): Add rich_location * param.
(pop_init_level): Add location_t param.
* c-typeck.c (struct initializer_stack): Add field
(start_init): Add richloc param, use it to initialize
the stack node's missing_brace_richloc.
(last_init_list_comma): New decl.
(finish_implicit_inits): Pass last_init_list_comma to
(push_init_level): When finding missing open braces, add fix-it
hints to the richloc.
(pop_init_level): Add "insert_before" param and pass it
when calling pop_init_level. Add fixits about missing
close braces to any richloc. Use the richloc for the
-Wmissing-braces warning.
(set_designator): Pass last_init_list_comma to pop_init_level.
(process_init_element): Likewise.
2017-01-01 Jakub Jelinek <>
Update copyright years.
2016-12-21 Jakub Jelinek <>
PR bootstrap/78817
* c-typeck.c (build_function_call_vec): If check_function_arguments
returns true, set TREE_NO_WARNING on CALL_EXPR.
PR c/77767
* c-decl.c (grokdeclarator): If *expr is non-NULL, append expression
to *expr instead of overwriting it.
2016-12-20 Richard Biener <>
* gimple-parser.c (c_parser_gimple_compound_statement): Improve
error recovery.
(c_parser_gimple_statement): Only build assigns for non-error
(c_parser_gimple_postfix_expression_after): Improve error recovery.
2016-12-14 Martin Jambor <>
* c-parser.c: Include omp-general.h and omp-offload.h instead of
(c_finish_oacc_routine): Adjusted call to
get_oacc_fn_attrib, build_oacc_routine_dims and replace_oacc_fn_attrib
to use their new names.
(c_parser_oacc_enter_exit_data): Adjusted call to find_omp_clause to
use its new name.
(c_parser_oacc_update): Likewise.
(c_parser_omp_simd): Likewise.
(c_parser_omp_target_update): Likewise.
* c-typeck.c: Include omp-general.h instead of omp-low.h.
(c_finish_omp_cancel): Adjusted call to find_omp_clause to use its new
(c_finish_omp_cancellation_point): Likewise.
* gimple-parser.c: Do not include omp-low.h
2016-12-02 Cesar Philippidis <>
James Norris <>
* c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
EXIT_DATA,WAIT} are not used in compound statements.
(c_parser_oacc_enter_exit_data): Update diagnostics.
2016-11-21 Bernd Edlinger <>
PR c++/71973
* c-decl.c (diagnose_mismatched_decls): Use
OPT_Wbuiltin_declaration_mismatch here too.
2016-11-18 Richard Sandiford <>
Alan Hayward <>
David Sherwood <>
* c-decl.c (merge_decls): Use SET_DECL_MODE.
(make_label, finish_struct): Likewise.
2016-11-14 Prasad Ghangal <>
Richard Biener <>
* (C_AND_OBJC_OBJS): Add gimple-parser.o.
* (gtfiles): Add c/c-parser.h.
* c-tree.h (enum c_declspec_word): Add cdw_gimple.
(struct c_declspecs): Add gimple_pass member and gimple_p flag.
* c-parser.c (enum c_id_kind, struct c_token,
c_parser_next_token_is, c_parser_next_token_is_not,
enum c_lookahead_kind, enum c_dtr_syn, enum c_parser_prec):
Split out to ...
* c-parser.h: ... new header.
* c-parser.c: Include c-parser.h and gimple-parser.h.
(c_parser_peek_token, c_parser_peek_2nd_token,
c_token_starts_typename, c_parser_next_token_starts_declspecs,
c_parser_next_tokens_start_declaration, c_parser_consume_token,
c_parser_error, c_parser_require, c_parser_skip_until_found,
c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
c_parser_type_name): Export.
(c_parser_tokens_buf): New function.
(c_parser_error): Likewise.
(c_parser_set_error): Likewise.
(c_parser_declspecs): Handle RID_GIMPLE.
(c_parser_declaration_or_fndef): Parse __GIMPLE marked body
via c_parser_parse_gimple_body.
* c-parser.h (c_parser_peek_token, c_parser_peek_2nd_token,
c_token_starts_typename, c_parser_next_token_starts_declspecs,
c_parser_next_tokens_start_declaration, c_parser_consume_token,
c_parser_error, c_parser_require, c_parser_skip_until_found,
c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
c_parser_type_name): Declare.
(struct c_parser): Declare forward.
(c_parser_tokens_buf): Declare.
(c_parser_error): Likewise.
(c_parser_set_error): Likewise.
* gimple-parser.c: New file.
* gimple-parser.h: Likewise.
2016-11-13 Prathamesh Kulkarni <>
PR c/35503
* c-parser.c (c_parser_postfix_expression_after_primary): Call
2016-09-11 Le-Chun Wu <>
Mark Wielaard <>
* c-decl.c (warn_if_shadowing): Use the warning code corresponding
to the given -Wshadow= variant.
2016-10-13 Thomas Preud'homme <>
* c-typeck.c: Include memmodel.h.
2016-10-13 Jakub Jelinek <>
PR target/77957
* c-objc-common.h (LANG_HOOKS_GETDECLS): Use hook_tree_void_null
instead of lhd_return_null_tree_v.
2016-10-07 Bernd Schmidt <>
PR c++/69733
* c-decl.c (smallest_type_quals_location): New static function.
(grokdeclarator): Try to find the correct location for an ignored
2016-09-26 Marek Polacek <>
PR c/7652
* c-decl.c (pop_scope): Add gcc_fallthrough.
2016-09-26 Marek Polacek <>
PR c/7652
* c-parser.c (struct c_token): Add flags field.
(c_lex_one_token): Pass it to c_lex_with_flags.
(c_parser_declaration_or_fndef): Turn __attribute__((fallthrough));
(c_parser_label): Set FALLTHROUGH_LABEL_P on labels. Handle
attribute fallthrough after a case label or default label.
(c_parser_statement_after_labels): Handle RID_ATTRIBUTE.
2016-09-24 Marek Polacek <>
PR c/77490
* c-typeck.c (build_unary_op): Warn about bit not on expressions that
have boolean value. Warn about ++/-- on booleans.
2016-09-23 Jakub Jelinek <>
* c-parser.c (incomplete_record_decls): Remove unnecessary
= vNULL initialization of file scope vec.
2016-09-16 Marek Polacek <>
* c-typeck.c (lvalue_p): Use true and false instead of 1 and 0.
2016-09-14 Marek Polacek <>
* c-array-notation.c (create_cmp_incr): Use false instead of 0.
(fix_array_notation_expr): Likewise.
* c-decl.c (finish_decl): Likewise.
* c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
* c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
(function_to_pointer_conversion): Use false instead of 0.
(convert_lvalue_to_rvalue): Likewise.
(parser_build_unary_op): Likewise.
(build_atomic_assign): Likewise.
(build_unary_op): Change nonconvert parameter type to bool, use
true/false instead of 1/0.
(build_binary_op): Use true instead of 1.
2016-09-13 David Malcolm <>
* c-parser.c (c_parser_declaration_or_fndef): Update for renaming
of add_fixit_insert to add_fixit_insert_before.
2016-09-13 Marek Polacek <>
* c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT. Use
2016-09-12 Bernd Edlinger <>
PR c++/77496
* c-parser.c (c_parser_conditional_expression): Pass the rightmost
COMPOUND_EXPR to warn_for_omitted_condop.
2016-09-07 David Malcolm <>
c_get_substring_location for this new langhook.
2016-09-02 Jakub Jelinek <>
PR c/65467
* c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
(c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
instead of mark_exp_read on low_bound/length expression.
(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
c_parser_omp_clause_priority, c_parser_omp_clause_hint,
c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
c_parser_omp_clause_vector_length, 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_device,
c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
instead of mark_expr_read.
(c_parser_omp_declare_reduction): Reject _Atomic qualified types.
* c-tree.h (c_omp_clause_copy_ctor): New prototype.
* c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
array section bases outside of depend clause, for depend clause
use convert_lvalue_to_rvalue on the base.
(c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
linear, aligned, map, to and from clauses.
(c_omp_clause_copy_ctor): New function.
2016-09-01 Marek Polacek <>
PR c/7652
* c-typeck.c (composite_type): Add FALLTHRU comment.
2016-08-31 David Malcolm <>
* c-parser.c (c_parser_declaration_or_fndef): Add trailing space
to the insertion fixits for "struct", "union", and "enum".
2016-08-30 David Malcolm <>
* c-decl.c (implicit_decl_warning): Use add_fixit_replace
rather than add_fixit_misspelled_id.
(undeclared_variable): Likewise.
* c-parser.c (c_parser_declaration_or_fndef): Likewise. Remove
now-redundant "here" params from add_fixit_insert method calls.
(c_parser_parameter_declaration): Likewise.
* c-typeck.c (build_component_ref): Remove now-redundant range
param from add_fixit_replace method calls.
2016-08-25 Marek Polacek <>
* c-typeck.c (parser_build_binary_op): Pass LHS to
2016-08-25 Marek Polacek <>
PR c/77323
* c-decl.c (declspecs_add_type): Set typespec_word even when __intN
or _FloatN or _FloatNx is not supported.
(finish_declspecs): Set type to integer_type_node when _FloatN or
_FloatNx is not supported.
2016-08-19 Joseph Myers <>
PR c/32187
* c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
(struct c_declspecs): Add field floatn_nx_idx.
* c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
and _FloatNx type specifiers.
* c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
(c_parser_declspecs, c_parser_attribute_any_word)
(c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
* c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
(convert_arguments): Avoid promoting _FloatN and _FloatNx types
narrower than double.
2016-08-12 Jakub Jelinek <>
Martin Liska <>
PR c/67410
* c-typeck.c (set_nonincremental_init_from_string): Use / instead of
% to determine val element to change. Assert that
wchar_bytes * charwidth fits into val array.
2016-08-12 Marek Polacek <>
PR c/7652
* c-parser.c (c_parser_external_declaration): Add FALLTHRU.
(c_parser_postfix_expression): Likewise.
* c-typeck.c (build_unary_op): Adjust fall through comment.
(c_mark_addressable): Likewise.
2016-08-11 Jakub Jelinek <>
PR c/72816
* c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
array member through typedef, for orig_qual_indirect == 0 clear
2016-08-08 David Malcolm <>
PR c/64955
this up to selftest::run_c_tests.
(selftest::run_c_tests): New function.
2016-08-04 Thomas Schwinge <>
* c-parser.c (struct oacc_routine_data): Add error_seen and
fndecl_seen members.
(c_finish_oacc_routine): Use these.
(c_parser_declaration_or_fndef): Adjust.
(c_parser_oacc_routine): Likewise. Support more C language
constructs, and improve diagnostics. Move pragma context
(c_parser_pragma): ... here.
* c-parser.c (struct oacc_routine_data): New.
(c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
Simplify code.
(c_finish_oacc_routine): Likewise. Don't attach clauses to "omp
declare target" attribute.
2016-08-01 Jan Beulich <>
* c-fold.c (c_fully_fold_internal): Also emit shift count
warnings for vector types.
* c-typeck.c (build_binary_op): Likewise.
2016-07-29 Marek Polacek <>
PR c/71742
* c-decl.c (finish_struct): Rephrase an error message.
PR c/71853
* c-parser.c (c_parser_switch_statement): Initialize ce.original_type
to error node for invalid code.
PR c/71573
* c-decl.c (implicitly_declare): Return decl early not only for
error_mark_nodes, but for anything that is not a FUNCTION_DECL.
2016-07-29 Jakub Jelinek <>
PR c/71969
* c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS
on GNU extern inline functions.
2016-07-29 Marek Polacek <>
PR c/71583
* c-parser.c (c_parser_postfix_expression_after_paren_type): Also
check expr.value.
2016-07-22 Uros Bizjak <>
* c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
2016-07-20 David Malcolm <>
* c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
(best_macro_match): Likewise, converting from a typedef to a
(find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
(lookup_name_fuzzy): Update for change of best_macro_match to a
subclass with a ctor that calls cpp_forall_identifiers.
2016-07-20 David Malcolm <>
* c-decl.c (implicit_decl_warning): Update for conversion of
return type of lookup_name_fuzzy to const char *.
(undeclared_variable): Likewise.
(lookup_name_fuzzy): Convert return type from tree to
const char *.
* c-parser.c (c_parser_declaration_or_fndef): Update for
conversion of return type of lookup_name_fuzzy to const char *.
(c_parser_parameter_declaration): Likewise.
2016-07-15 Cesar Philippidis <>
* c-parser.c (c_parser_oacc_declare): Don't scan for
* c-typeck.c (handle_omp_array_sections): Mark data clauses with
zero-length subarrays.
2016-07-15 Jakub Jelinek <>
PR c/71858
* c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME
(lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider
FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros.
2016-07-14 Jakub Jelinek <>
PR c/71858
* c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.
2016-07-12 Trevor Saunders <>
* c-parser.c (c_parser_generic_selection): Make type of variable
(c_parser_omp_declare_simd): Likewise.
2016-07-12 Trevor Saunders <>
* c-decl.c (struct c_struct_parse_info): Change member types
from vec to auto_vec.
(start_struct): Adjust.
(finish_struct): Likewise.
2016-07-02 Jakub Jelinek <>
PR c/71719
* c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
2016-06-29 Thomas Schwinge <>
* c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
Move pragma context checking into...
(c_parser_omp_cancellation_point): ... here, and improve
diagnostic messages.
* c-typeck.c (c_finish_omp_cancel)
(c_finish_omp_cancellation_point): Improve diagnostic messages.
2016-06-29 Jakub Jelinek <>
PR c/71685
* c-typeck.c (c_build_qualified_type): Don't clear
C_TYPE_INCOMPLETE_VARS for the main variant.
2016-06-28 Martin Sebor <>
PR c/71552
* c-typeck.c (output_init_element): Diagnose incompatible types
before non-constant initializers.
2016-06-28 Jakub Jelinek <>
* Don't cat ../stage_current if it does not exist.
2016-06-23 Andi Kleen <>
* Add support for autofdo.
2016-06-22 David Malcolm <>
PR c/70339
* c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
(implicit_decl_warning): When issuing warnings for implicit
declarations, attempt to provide a suggestion via
(undeclared_variable): Likewise when issuing errors.
(lookup_name_in_scope): Likewise.
(struct edit_distance_traits<cpp_hashnode *>): New struct.
(best_macro_match): New typedef.
(find_closest_macro_cpp_cb): New function.
(lookup_name_fuzzy): New function.
* c-parser.c: Include gcc-rich-location.h.
(c_token_starts_typename): Split out case CPP_KEYWORD into...
(c_keyword_starts_typename): ...this new function.
(c_parser_declaration_or_fndef): When issuing errors about
missing "struct" etc, add a fixit. For other kinds of errors,
attempt to provide a suggestion via lookup_name_fuzzy.
(c_parser_parms_declarator): When looking ahead to detect typos in
type names, also reject CPP_KEYWORD.
(c_parser_parameter_declaration): When issuing errors about
unknown type names, attempt to provide a suggestion via
* c-tree.h (c_keyword_starts_typename): New prototype.
2016-06-20 Joseph Myers <>
PR c/71601
* c-typeck.c (build_conditional_expr): Return error_mark_node if
c_common_type returns error_mark_node.
2016-06-19 Martin Sebor <>
PR c/69507
* c-parser.c (c_parser_alignof_expression): Avoid diagnosing
__alignof__ (expression).
2016-06-14 David Malcolm <>
* c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h.
2016-06-14 David Malcolm <>
* c-typeck.c (build_component_ref): Simplify fixit code by
using gcc_rich_location::add_fixit_misspelled_id.
(set_init_label): Likewise.
2016-06-13 David Malcolm <>
* c-parser.c (c_parser_initelt): Provide location of name for new
location_t param of set_init_label.
* c-tree.h (set_init_label): Add location_t param.
* c-typeck.c (set_init_index): Add "fieldname_loc" location_t
param and use it when issuing error messages about unrecognized
field names. Attempt to provide a fixit hint if appropriate,
otherwise update the error message to provide the type name.
2016-06-10 Thomas Schwinge <>
PR c/71381
* c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
Loosen checking.
2016-06-08 Martin Sebor <>
Jakub Jelinek <>
PR c++/70507
PR c/68120
* c-typeck.c (convert_arguments): Don't promote last argument
2016-06-08 Marek Polacek <>
PR c/71418
* c-decl.c (grokdeclarator): Check TYPE_P.
PR c/71426
* c-decl.c (get_parm_info): Don't crash on an assert on invalid
2016-06-07 David Malcolm <>
* c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
and structure element reference, capture the location of the
element name token and pass it to build_component_ref.
(c_parser_postfix_expression_after_primary): Likewise for
structure element dereference.
(c_parser_omp_variable_list): Likewise for
* c-tree.h (build_component_ref): Add location_t param.
* c-typeck.c (build_component_ref): Add location_t param
COMPONENT_LOC. Use it, if available, when issuing hints about
mispelled member names to provide a fixit replacement hint.
2016-06-06 Marek Polacek <>
PR c/71362
* c-parser.c (c_parser_direct_declarator): Set location.
2016-06-06 Marek Polacek <>
* c-typeck.c (comptypes_internal): Handle comparisons of
2016-06-03 Chung-Lin Tang <>
* c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction
arguments as addressable when async clause exists.
2016-05-30 Jakub Jelinek <>
PR c++/71349
* c-parser.c (c_parser_omp_for): Don't disallow nowait clause
when combined with target construct.
2016-05-26 Jakub Jelinek <>
* c-parser.c (c_parser_omp_clause_schedule): Warn if
OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
2016-05-25 Marek Polacek <>
PR c/71265
* c-decl.c (c_make_fname_decl): Don't check seen_error.
PR c/71266
* c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.
2016-05-24 Cesar Philippidis <>
* c-parser.c (c_parser_oacc_declare): Add support for
* c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
argument with enum c_omp_region_type ort.
(handle_omp_array_sections): Likewise. Update call to
(c_finish_omp_clauses): Add specific errors and warning messages for
OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update
call to handle_omp_array_sections.
2016-05-24 Thomas Schwinge <>
* c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
2016-05-24 Richard Biener <>
PR middle-end/70434
PR c/69504
* c-typeck.c (build_array_ref): Do not complain about indexing
non-lvalue vectors. Adjust for function name change.
2016-05-20 Martin Sebor <>
PR c/71115
* c-typeck.c (error_init): Use
(warning_init): Same.
2016-05-19 David Malcolm <>
PR c/71171
* c-parser.c (c_parser_generic_selection): Use c_expr::set_error
in error-handling.
(c_parser_postfix_expression): Likewise.
* c-tree.h (c_expr::set_error): New method.
* c-typeck.c (parser_build_binary_op): In error-handling, ensure
that result's range is initialized.
2016-05-17 James Greenhalgh <>
* c-typeck.c (parser_build_unary_op): Fix formatting.
2016-05-16 Matthew Wahab <>
* c-decl.c (grokdeclarator): Remove errmsg and use of
(grokparms): Remove errmsg and use of
2016-05-13 Joseph Myers <>
* c-decl.c (grokdeclarator): For C11, discard qualifiers on
function return type.
2016-05-12 Marek Polacek <>
PR c/70756
* c-decl.c (build_compound_literal): Pass LOC down to
* c-tree.h (require_complete_type): Adjust declaration.
(c_incomplete_type_error): Likewise.
* c-typeck.c (require_complete_type): Add location parameter, pass it
down to c_incomplete_type_error.
(c_incomplete_type_error): Add location parameter, pass it down to
(build_component_ref): Pass location down to c_incomplete_type_error.
(default_conversion): Pass location down to require_complete_type.
(build_array_ref): Likewise.
(build_function_call_vec): Likewise.
(convert_arguments): Likewise.
(build_unary_op): Likewise.
(build_c_cast): Likewise.
(build_modify_expr): Likewise.
(convert_for_assignment): Likewise.
(c_finish_omp_clauses): Likewise.
2016-05-11 Mikhail Maltsev <>
PR c/43651
* c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier
is enabled.
* c-errors.c (pedwarn_c90): Return true if warned.
* c-tree.h (pedwarn_c90): Change return type to bool.
(enum c_declspec_word): Add new enumerator cdw_atomic.
2016-05-11 Marek Polacek <>
PR c++/71024
* c-decl.c (diagnose_mismatched_decls): Factor out code to
diagnose_mismatched_attributes and call it.
2016-05-10 Marek Polacek <>
PR c/70255
* c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute
on a declaration following the definition.
2016-05-05 Jakub Jelinek <>
* c-parser.c (c_parser_switch_statement): Add IF_P argument,
parse it through to c_parser_c99_block_statement.
(c_parser_statement_after_labels): Adjust c_parser_switch_statement
2016-05-04 Marek Polacek <>
* c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
2016-05-04 Marek Polacek <>
PR c/48778
* c-typeck.c (build_binary_op): Don't issue -Waddress warnings
for macro expansions.
2016-05-03 Marek Polacek <>
PR c/70859
* c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
2016-05-03 Richard Biener <>
* (cc1-checksum.c): For stage-final re-use
the checksum from the previous stage.
2016-05-02 Cesar Philippidis <>
* c-parser.c (c_parser_oacc_all_clauses): Update call to
(c_parser_omp_all_clauses): Likewise.
(c_parser_oacc_cache): Likewise.
(c_parser_oacc_loop): Likewise.
(omp_split_clauses): Likewise.
(c_parser_omp_declare_target): Likewise.
(c_parser_cilk_all_clauses): Likewise.
(c_parser_cilk_for): Likewise.
* c-typeck.c (c_finish_omp_clauses): Replace bool arguments
is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.
2016-05-02 Marek Polacek <>
PR c/70851
* c-decl.c (grokdeclarator): Diagnose when array's size has an
incomplete type.
2016-04-29 Cesar Philippidis <>
PR middle-end/70626
* c-parser.c (c_parser_oacc_loop): Don't augment mask with
(c_parser_oacc_kernels_parallel): Update call to
2016-04-28 Andrew MacLeod <>
* c-array-notation.c (fix_builtin_array_notation_fn): Fix final
argument to build_modify_expr in two cases.
2016-04-27 Bernd Schmidt <>
* c-parser.c (c_parser_postfix_expression_after_primary): Call
warn_for_memset instead of warning directly here.
2016-04-26 Marek Polacek <>
PR c/67784
* c-parser.c (c_parser_maybe_reclassify_token): New function factored
out of ...
(c_parser_for_statement): ... here.
(c_parser_if_statement): Use it.
(c_parser_switch_statement): Use it.
(c_parser_while_statement): Use it.
PR c/70791
* c-decl.c (pushdecl): Pass LOCUS down to warning.
2016-04-20 Ilya Verbin <>
PR c++/69363
* c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
instead of c_finish_cilk_clauses.
* c-tree.h (c_finish_omp_clauses): Add new default argument.
* c-typeck.c (c_finish_omp_clauses): Add new argument. Allow
floating-point variables in the linear clause for Cilk Plus.
2016-04-18 Michael Matz <>
* c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
(grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.
2016-04-15 Marek Polacek <>
PR c/70671
* c-typeck.c (build_unary_op): Pass location down to error and
warning call.
2016-04-15 Jakub Jelinek <>
PR c/70436
* c-parser.c (c_parser_pragma): Add IF_P argument, pass it down
where needed.
(c_parser_external_declaration, c_parser_struct_or_union_specifier,
c_parser_parameter_declaration, c_parser_compound_statement_nostart,
c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist):
Adjust c_parser_pragma callers.
(c_parser_statement_after_labels): Likewise. Adjust c_parser_cilk_for
(c_parser_omp_structured_block): Add IF_P argument, pass it down to
(c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop,
c_parser_oacc_kernels_parallel, c_parser_omp_critical,
c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master,
c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single,
c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute,
c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target,
c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize,
c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it
down where needed.
(c_parser_omp_for_loop): Likewise. Clear IF_P if nbraces.
(c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block
2016-04-13 Marek Polacek <>
PR c/70436
* c-parser.c (c_parser_statement_after_labels): Add IF_P argument and
adjust callers.
(c_parser_statement): Likewise.
(c_parser_c99_block_statement): Likewise.
(c_parser_while_statement): Likewise.
(c_parser_for_statement): Likewise.
(c_parser_if_body): Don't set IF_P here.
(c_parser_if_statement): Add IF_P argument. Set IF_P here. Warn
about dangling else here.
* c-tree.h (c_finish_if_stmt): Adjust declaration.
* c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter. Don't
warn about dangling else here.
2016-04-04 Marek Polacek <>
PR c/70307
* c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR.
2016-03-31 Marek Polacek <>
PR c/70297
* c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
2016-03-18 David Malcolm <>
PR c/70281
* c-parser.c (c_parser_postfix_expression): Set the source range
for uses of "__builtin_types_compatible_p".
2016-03-17 Jakub Jelinek <>
PR c/70280
* c-typeck.c (composite_type): Don't count void_list_node
into len, if the list is terminated by void_list_node, start
with void_list_node instead of NULL for newargs. Stop
at void_list_node.
2016-03-16 Marek Polacek <>
PR c/70093
* c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for
nested functions returning VM types.
2016-03-09 Cesar Philippidis <>
* c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
when calling c_finish_omp_clauses.
2016-03-04 Bernd Schmidt <>
PR c/69824
* c-decl.c (get_parm_info): Don't queue implicit function declarations
for later.
2016-03-04 Marek Polacek <>
PR c/69798
* c-parser.c (c_parser_postfix_expression): Call
c_parser_cast_expression rather than c_parser_postfix_expression.
2016-03-01 Jakub Jelinek <>
PR c/69796
PR c/69974
* c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
of incomplete decls to error_mark_node.
2016-02-24 Marek Polacek <>
PR c/69819
* c-decl.c (finish_decl): Don't update the copy of the type of a
different decl type.
2016-02-23 Jakub Jelinek <>
PR objc/69844
* c-parser.c (c_parser_for_statement): Properly handle ObjC classes
in id_kind reclassification.
2016-02-16 Jakub Jelinek <>
PR c/69835
* c-typeck.c (build_binary_op): Revert 2015-09-09 change.
2016-02-16 James Norris <>
PR c/64748
* c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
2016-02-12 Bernd Schmidt <>
* c-decl.c (build_null_declspecs): Zero the entire struct.
PR c/69522
* c-parser.c (c_parser_braced_init): New arg outer_obstack. All
callers changed. If nested_p is true, use it to call
* c-tree.h (finish_implicit_inits): Declare.
* c-typeck.c (finish_implicit_inits): New function. Move code
from ...
(push_init_level): ... here.
(set_designator, process_init_element): Call finish_implicit_inits.
2016-02-11 Jakub Jelinek <>
PR c/69768
* c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop
arguments for -Waddress warning.
2016-02-04 Jakub Jelinek <>
PR c/69669
* c-decl.c (finish_enum): When honoring mode attribute,
make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE.
2016-01-29 Jakub Jelinek <>
PR debug/69518
* c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
all type variants, not just TYPE_MAIN_VARIANT.
2016-01-27 Jakub Jelinek <>
PR debug/66869
* c-decl.c (c_write_global_declarations_1): Warn with
warn_unused_function if static prototype without definition
is not C_DECL_USED.
2016-01-27 Marek Polacek <>
PR c/68062
* c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand
to unsigned, if needed. Add -Wsign-compare warning.
2016-01-26 Jakub Jelinek <>
PR tree-optimization/69483
* c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT.
2016-01-20 Prathamesh Kulkarni <>
PR c/24293
* c-tree.h (incomplete_record_decls): Declare.
* c-parser.c (incomplete_record_decls): Define.
(c_parser_translation_unit): Iterate through incomplete_record_decls and
report error if any decl has zero size.
* c-decl.c (finish_decl): Append static decl with incomplete struct/union
or enum type to incomplete_record_decls.
2016-01-14 Tom de Vries <>
PR tree-optimization/68773
* c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
set force_output.
2016-01-14 Marek Polacek <>
PR c/69262
* c-decl.c (grokdeclarator): Provide more information for invalid
array declarations.
2016-01-06 David Malcolm <>
* c-parser.c (c_parser_unary_expression): For dereferences, build
a combined location before calling build_indirect_ref, so that
error reports cover the full range, manually updating the c_expr
2016-01-06 Marek Polacek <>
PR sanitizer/69099
* c-convert.c (convert) [INTEGER_TYPE]: Drop ARG. Don't pass ARG to
ubsan_instrument_float_cast. Fold EXPR. Use NULL_TREE instead of
2016-01-04 Jakub Jelinek <>
Update copyright years.
2016-01-04 Marek Polacek <>
PR c/68908
* c-typeck.c (build_atomic_assign): Improve commentary. Add
optimization to use __atomic_fetch_* built-in if possible.
2015-12-23 Thomas Schwinge <>
* c-parser.c (c_parser_oacc_clause_use_device): Merge function
(c_parser_omp_clause_use_device_ptr): ... this function. Adjust
all users.
2015-12-22 Marek Polacek <>
PR c/69002
* c-typeck.c (build_component_ref): Warn when acessing elements of
atomic structures or unions.
2015-12-21 David Malcolm <>
* c-typeck.c: Include "gcc-rich-location.h".
(build_binary_op): In the two places that call binary_op_error,
create a gcc_rich_location and populate it with the location of
the binary op and its two operands.
2015-12-16 David Malcolm <>
* c-parser.c (c_parser_statement_after_labels): When calling
c_finish_return, Use the return expression's location if it has
one, falling back to the location of the first token within it.
* c-typeck.c (c_finish_return): When issuing warnings about
the incorrect presence/absence of a return value, issue a note
showing the declaration of the function.
2015-12-16 David Malcolm <>
* c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
to 4.
(c_parser_peek_nth_token): New function.
(c_parser_peek_conflict_marker): New function.
(c_parser_error): Detect conflict markers and report them as such.
2015-12-16 David Malcolm <>
* c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
to preserve range information for the primary expression
in the call to c_parser_postfix_expression_after_primary.
2015-12-16 David Malcolm <>
* c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
expression location, falling back on the first token location,
rather than always using the latter.
2015-12-16 Marek Polacek <>
PR c/64637
* c-typeck.c (c_process_expr_stmt): Use location of the expression if
2015-12-15 Marek Polacek <>
PR c/68907
* c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
artificial decl.
2015-12-08 David Malcolm <>
* c-parser.c (c_parser_alignof_expression): Capture location of
closing parenthesis (if any), or of end of unary expression, and
use it to build a src_range for the expression.
2015-12-08 David Malcolm <>
PR c/68757
* c-parser.c (c_parser_get_builtin_args): Add
"out_close_paren_loc" param, and write back to it.
(c_parser_postfix_expression): Capture the closing
parenthesis location for RID_CHOOSE_EXPR,
RID_BUILTIN_SHUFFLE and use it to set the source range
for such expressions; within RID_BUILTIN_COMPLEX set
the underlying location.
2015-12-07 Marek Polacek <>
PR c/68668
* c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
2015-12-04 Eric Botcazou <>
* c-tree.h (c_build_va_arg): Adjust prototype.
* c-parser.c (c_parser_postfix_expression): Adjust call to above.
* c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1
parameter, adjust throughout and issue an error if EXPR is a component
with reverse storage order.
2015-12-02 Jason Merrill <>
* c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
(c_fully_fold_internal, decl_constant_value_for_optimization):
Move from c-common.c.
* c-tree.h: Declare decl_constant_value_for_optimization.
* (C_AND_OBJC_OBJS): Add c-fold.o.
2015-12-02 Joseph Myers <>
PR c/68162
* c-decl.c (grokdeclarator): Set first_non_attr_kind before
following link from declarator to next declarator. Track original
qualified type and pass it to c_build_qualified_type.
* c-typeck.c (c_build_qualified_type): Add arguments
orig_qual_type and orig_qual_indirect.
2015-12-02 Thomas Schwinge <>
* c-parser.c (c_parser_omp_clause_name)
(c_parser_oacc_all_clauses): Alphabetical sorting.
2015-12-02 Jakub Jelinek <>
PR c/68533
* c-decl.c (get_parm_info): Use b->locus instead of input_location
for diagnostics.
2015-12-01 Julian Brown <>
Cesar Philippidis <>
James Norris <>
* c-parser.c (c_parser_omp_clause_name): Add use_device support.
(c_parser_oacc_clause_use_device): New function.
(c_parser_oacc_all_clauses): Add use_device support.
(c_parser_oacc_host_data): New function.
(c_parser_omp_construct): Add host_data support.
* c-tree.h (c_finish_oacc_host_data): Add prototype.
* c-typeck.c (c_finish_oacc_host_data): New function.
(c_finish_omp_clauses): Add use_device support.
2015-11-29 Jan Hubicka <>
PR c/67106
* c-decl.c: Set TYPE_PACKED in variants.
2015-11-27 Martin Liska <>
PR c++/68312
* c-array-notation.c (fix_builtin_array_notation_fn):
Use release_vec_vec instead of vec::release.
(build_array_notation_expr): Likewise.
(fix_conditional_array_notations_1): Likewise.
(fix_array_notation_expr): Likewise.
(fix_array_notation_call_expr): Likewise.
2015-11-27 Jakub Jelinek <>
PR c/63326
* c-parser.c (c_parser_compound_statement_nostart): If
last_label is true, use pragma_stmt instead of pragma_compound
as second c_parser_pragma argument.
(c_parser_omp_ordered, c_parser_omp_target_update,
c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
false as second argument to c_parser_skip_to_pragma_eol after
diagnosing standalone directives used in pragma_stmt context.
2015-11-24 Ilya Verbin <>
* c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
2015-11-23 David Malcolm <>
PR objc/68438
* c-parser.c (c_parser_postfix_expression): Set up source ranges
for various Objective-C constructs: syntax,
@selector(), @protocol(), @encode(), and [] message syntax.
2015-11-20 David Malcolm <>
PR 62314
* c-typeck.c (should_suggest_deref_p): New function.
(build_component_ref): Special-case POINTER_TYPE when
generating a "not a structure of union" error message, and
suggest a "->" rather than a ".", providing a fix-it hint.
2015-11-19 David Malcolm <>
* c-typeck.c (lookup_field_fuzzy): Move determination of closest
candidate into a new function, find_closest_identifier.
2015-11-19 Marek Polacek <>
PR c/68412
* c-typeck.c (parser_build_binary_op): Properly handle
C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.
2015-11-17 David Malcolm <>
* c-parser.c (set_c_expr_source_range): Bulletproof both
overloaded implementations against NULL expr->value.
(c_parser_braced_init): Set src_range for "ret" to a sane pair of
(c_parser_unary_expression): Likewise when handling addresses of
(c_parser_postfix_expression): Likewise for statement expressions,
for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
__builtin_va_arg, and for __builtin_offset_of.
(c_parser_postfix_expression_after_paren_type): Initialize expr's
src_range using the range of the braced initializer.
(c_parser_transaction_expression): Set src_range for "ret" to a
sane pair of values.
2015-11-16 Kirill Yukhin <>
* c-parser.c (c_finish_omp_declare_simd): Look for
"simd" attribute as well. Update error message.
2015-11-14 Trevor Saunders <>
* c-parser.c (c_parser_omp_declare_target): Adjust.
2015-11-14 Jakub Jelinek <>
* c-typeck.c (c_finish_omp_clauses): Don't mark
2015-11-14 Marek Polacek <>
* c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
* c-typeck.c: Likewise.
2015-11-13 David Malcolm <>
* c-decl.c (warn_defaults_to): Pass line_table to
rich_location ctor.
* c-errors.c (pedwarn_c99): Likewise.
(pedwarn_c90): Likewise.
* c-parser.c (set_c_expr_source_range): New functions.
(c_token::get_range): New method.
(c_token::get_finish): New method.
(c_parser_expr_no_commas): Call set_c_expr_source_range on the ret
based on the range from the start of the LHS to the end of the
(c_parser_conditional_expression): Likewise, based on the range
from the start of the cond.value to the end of exp2.value.
(c_parser_binary_expression): Call set_c_expr_source_range on
the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
(c_parser_cast_expression): Call set_c_expr_source_range on ret
based on the cast_loc through to the end of the expr.
(c_parser_unary_expression): Likewise, based on the
op_loc through to the end of op.
(c_parser_sizeof_expression) Likewise, based on the start of the
sizeof token through to either the closing paren or the end of
(c_parser_postfix_expression): Likewise, using the token range,
or from the open paren through to the close paren for
parenthesized expressions.
(c_parser_postfix_expression_after_primary): Likewise, for
various kinds of expression.
* c-tree.h (struct c_expr): Add field "src_range".
(c_expr::get_start): New method.
(c_expr::get_finish): New method.
(set_c_expr_source_range): New decls.
* c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range
on ret for prefix unary ops.
(parser_build_binary_op): Likewise, running from the start of
arg1.value through to the end of arg2.value.
2015-11-13 Marek Polacek <>
PR c/68320
* c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs.
2015-11-13 David Malcolm <>
* c-typeck.c: Include spellcheck.h.
(lookup_field_fuzzy_find_candidates): New function.
(lookup_field_fuzzy): New function.
(build_component_ref): If the field was not found, try using
lookup_field_fuzzy and potentially offer a suggestion.
2015-11-12 James Norris <>
Joseph Myers <>
* c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE.
(c_parser_omp_clause_name): Handle 'device_resident' clause.
(c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
(c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
(c_parser_oacc_declare): New function.
2015-11-12 Marek Polacek <>
PR c/67784
* c-parser.c (c_parser_for_statement): Reclassify the token in
a correct scope.
2015-11-11 Marek Polacek <>
PR c/68107
PR c++/68266
* c-decl.c (grokdeclarator): Call valid_array_size_p. Remove code
checking the size of an array.
2015-11-11 Andrew MacLeod <>
* c-array-notation.c: Remove unused header files.
* c-aux-info.c: Likewise.
* c-convert.c: Likewise.
* c-decl.c: Likewise.
* c-errors.c: Likewise.
* c-lang.c: Likewise.
* c-objc-common.c: Likewise.
* c-parser.c: Likewise.
* c-typeck.c: Likewise.
* gccspec.c: Likewise.
2015-11-09 Thomas Schwinge <>
Cesar Philippidis <>
James Norris <>
Julian Brown <>
Nathan Sidwell <>
* c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
routine arg.
(c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
(c_parser_pragma): Parse 'acc routine'.
(c_parser_oacc_routine, (c_finish_oacc_routine): New.
2015-11-09 Andreas Arnez <>
PR debug/67192
* c-typeck.c (c_finish_loop): For unconditional loops, set the
location of the backward-goto to the start of the loop body.
2015-11-09 Andreas Arnez <>
PR debug/67192
* c-parser.c (c_parser_while_statement): Finish the loop before
parsing ahead for misleading indentation.
(c_parser_for_statement): Likewise.
2015-11-08 Eric Botcazou <>
* c-decl.c (finish_struct): If the structure has reverse storage
order, rewrite the type of array fields with scalar component. Call
maybe_apply_pragma_scalar_storage_order on entry.
* c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs. Issue
errors on bit-fields and reverse SSO here and not...
(output_init_element): Adjust call to initializer_constant_valid_p.
(c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER.
2015-11-06 David Malcolm <>
* c-decl.c (warn_defaults_to): Update for change in signature
of diagnostic_set_info.
* c-errors.c (pedwarn_c99): Likewise.
(pedwarn_c90): Likewise.
* c-objc-common.c (c_tree_printer): Update for new "caret_p" param
for textinfo::set_location.
2015-11-05 Cesar Philippidis <>
Thomas Schwinge <>
James Norris <>
* c-parser.c (c_parser_omp_clause_name): Add support for
(c_parser_omp_clause_default): Add is_oacc argument. Handle
default(none) in OpenACC.
(c_parser_oacc_shape_clause): Allow pointer variables as gang static
(c_parser_oacc_clause_tile): New function.
(c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
(c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
(c_parser_oacc_update): Update the error message for missing clauses.
* c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
2015-11-05 Marek Polacek <>
PR c/68090
* c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
deal with pre-evaluation on invalid types.
2015-11-05 Jakub Jelinek <>
Ilya Verbin <>
* c-parser.c: Include context.h and gimple-expr.h.
(c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
monotonic together with nonmonotonic.
(c_parser_omp_for_loop): Call c_omp_check_loop_iv. Call add_stmt here.
(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
(c_parser_omp_target_data, c_parser_omp_target_enter_data,
c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
(c_parser_omp_target): Likewise. Evaluate num_teams and thread_limit
expressions on combined target teams before the target.
(c_parser_omp_declare_target): If decl has "omp declare target" or
"omp declare target link" attribute, and cgraph or varpool node already
exists, then set corresponding flags. Call c_finish_omp_clauses
in the parenthesized extended-list syntax case.
* c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
declare target.
* c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
on OMP_CLAUSE_REDUCTION array sections.
(handle_omp_array_sections): Encode low-bound into the MEM_REF, either
into the constant offset, or for variable low-bound using
POINTER_PLUS_EXPR. For structure element based array sections use
(c_finish_omp_clauses): Drop generic_field_head, structure
elements are now always mapped even as array section bases,
diagnose same var in data sharing and mapping clauses. Diagnose if
linear step on declare simd is neither a constant nor a uniform
parameter. Look through POINTER_PLUS_EXPR for array section
reductions. Diagnose the same var or function appearing multiple
times on the same directive. Fix up wording for the to clause if t
is neither a FUNCTION_DECL nor a VAR_DECL. Diagnose nonmonotonic
modifier on kinds other than dynamic or guided or nonmonotonic
modifier together with ordered clause.
2015-11-03 Thomas Schwinge <>
Chung-Lin Tang <>
* c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
2015-10-29 Andrew MacLeod <>
* c-array-notation.c: Reorder #include's and remove duplicates.
* c-aux-info.c: Likewise.
* c-convert.c: Likewise.
* c-decl.c: Likewise.
* c-errors.c: Likewise.
* c-lang.c: Likewise.
* c-objc-common.c: Likewise.
* c-parser.c: Likewise.
* c-typeck.c: Likewise.
2015-10-26 Jim Wilson <>
PR debug/66068
* c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS
after calling build_qualified_type.
2015-10-27 Cesar Philippidis <>
Thomas Schwinge <>
James Norris <>
Joseph Myers <>
Julian Brown <>
Bernd Schmidt <>
* c-parser.c (c_parser_oacc_shape_clause): New.
(c_parser_oacc_simple_clause): New.
(c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
(OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq.
2015-10-27 Thomas Schwinge <>
James Norris <>
Cesar Philippidis <>
PR c/64765
PR c/64880
* c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
parameters, and handle these. Adjust all users.
(c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
(c_parser_oacc_kernels_parallel): ... this new function. Adjust
all users.
* c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
declare functions.
(c_finish_omp_construct): Declare function.
* c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
Merge functions into...
(c_finish_omp_construct): ... this new function.
2015-10-22 Richard Biener <>
* c-typeck.c (c_finish_omp_clauses): Properly convert operands
before folding a MINUS_EXPR.
2015-10-21 Marek Polacek <>
PR c/68024
* c-decl.c (start_function): Warn about vararg functions without
a prototype.
2015-10-21 Ilya Enkovich <>
* c-typeck.c (build_conditional_expr): Use boolean vector
type for vector comparison.
(build_vec_cmp): New.
(build_binary_op): Use build_vec_cmp for comparison.
2015-10-20 Marek Polacek <>
* c-parser.c (is_cilkplus_vector_p): Don't define here.
2015-10-20 Marek Polacek <>
PR c/67964
* c-parser.c (c_parser_attributes): Break out of the loop if the
token after an attribute isn't a comma.
2015-10-13 Jakub Jelinek <>
Aldy Hernandez <>
* c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
(c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
(c_parser_omp_variable_list): Handle structure elements for
map, to and from clauses. Handle array sections in reduction
clause. Formatting fixes.
(c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
if clause modifiers.
(c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
c_parser_omp_clause_priority, c_parser_omp_clause_hint,
c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
c_parser_omp_clause_is_device_ptr): New functions.
(c_parser_omp_clause_ordered): Parse optional parameter.
(c_parser_omp_clause_reduction): Handle array reductions.
(c_parser_omp_clause_schedule): Parse optional simd modifier.
(c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
(c_parser_omp_clause_linear): Parse linear clause modifiers.
(c_parser_omp_clause_depend_sink): New function.
(c_parser_omp_clause_depend): Parse source/sink depend kinds.
(c_parser_omp_clause_map): Parse release/delete map kinds and
optional always modifier.
(c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
and c_finish_omp_clauses callers.
(c_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
(c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
(c_parser_omp_critical): Parse critical clauses.
(c_parser_omp_for_loop): Handle doacross loops, adjust
c_finish_omp_for and c_finish_omp_clauses callers.
(OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
(c_parser_omp_simd): Allow ordered clause if it has no parameter.
(OMP_FOR_CLAUSE_MASK): Add linear clause.
(c_parser_omp_for): Disallow ordered clause when combined with
distribute. Disallow linear clause when combined with distribute
and not combined with simd.
(c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
parse clauses and if depend clause is found, don't parse a body.
(c_parser_omp_parallel): Disallow copyin clause on target parallel.
Allow target parallel without for after it.
(OMP_TASK_CLAUSE_MASK): Add priority clause.
(OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
(c_parser_omp_target_data): Diagnose no map clauses or clauses with
invalid kinds.
(OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
(c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
(OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
defaultmap and is_device_ptr clauses.
(c_parser_omp_target): Parse target parallel and target simd. Set
OMP_TARGET_COMBINED on combined constructs. Parse target enter data
and target exit data. Diagnose invalid map kinds.
(c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
(c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
(c_parser_omp_taskloop): New function.
(c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
(c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
* c-tree.h (c_finish_omp_clauses): Add two new arguments.
* c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
Add IS_OMP argument, handle structure element bases, diagnose
bitfields, pass IS_OMP recursively, diagnose known zero length
array sections in depend clauses, handle array sections in reduction
clause, diagnose negative length even for pointers.
(handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
types, pass IS_OMP down to handle_omp_array_sections_1, handle
array sections in reduction clause, set
length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
(c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
2015-10-06 Marek Polacek <>
* c-parser.c (c_parser_statement_after_labels): Use
(c_parser_omp_clause_num_gangs): Likewise.
(c_parser_omp_clause_num_threads): Likewise.
(c_parser_omp_clause_num_workers): Likewise.
(c_parser_omp_clause_vector_length): Likewise.
(c_parser_omp_clause_num_teams): Likewise.
(c_parser_omp_clause_thread_limit): Likewise.
* c-typeck.c (build_c_cast): Likewise.
(c_cast_expr): Likewise.
2015-10-05 Richard Sandiford <>
* c-typeck.c (c_tree_equal): Use real_equal instead of
2015-10-04 Jason Merrill <>
* c-parser.c (c_lex_one_token): Handle @synchronized.
* c-decl.c (match_builtin_function_types): A declaration of a built-in
can change whether the function is transaction_safe.
2015-10-02 Marek Polacek <>
PR c/67730
* c-typeck.c (convert_for_assignment): Use the expansion point
location throughout.
2015-10-02 Marek Polacek <>
PR c/64249
* c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter
and pass it down to c_parser_if_statement.
(c_parser_else_body): Add CHAIN parameter and pass it down to
(c_parser_if_statement): Add CHAIN parameter. Add code to warn about
duplicated if-else-if conditions.
2015-10-01 Marek Polacek <>
* c-typeck.c (convert_for_assignment): Improve commentary.
2015-09-30 Marek Polacek <>
PR c/67730
* c-typeck.c (c_finish_return): Use the expansion point location for
certain "return with value" warnings.
2015-09-18 Manuel López-Ibáñez <>
* c-parser.c (pragma_lex): Add loc argument.
2015-09-15 Marek Polacek <>
PR c/67580
* c-decl.c (tag_exists_p): New function.
* c-parser.c (c_parser_declaration_or_fndef): Give a hint when
struct/union/enum keywords are missing.
* c-tree.h (tag_exists_p): Declare.
2015-09-15 Marek Polacek <>
* c-decl.c (lookup_label): Return NULL_TREE instead of 0.
(lookup_tag): Change the type of THISLEVEL_ONLY to bool.
Return NULL_TREE instead of 0.
(lookup_name): Return NULL_TREE instead of 0.
(lookup_name_in_scope): Likewise.
(shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
(parser_xref_tag): Use false instead of 0.
(start_struct): Use true instead of 1.
(start_enum): Use true instead of 1 and NULL_TREE instead of 0.
2015-09-14 Marek Polacek <>
* c-typeck.c (set_nonincremental_init_from_string): Use
HOST_WIDE_INT_M1U when shifting a negative value.
2015-09-09 Mark Wielaard <>
* c-typeck.c (build_binary_op): Check and warn when nonnull arg
parm against NULL.
2015-09-10 Jakub Jelinek <>
PR c/67502
* c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
into OMP_FOR_PRE_BODY rather than before the loop.
2015-09-09 Jakub Jelinek <>
PR c/67501
* c-parser.c (c_parser_oacc_all_clauses,
c_parser_omp_all_clauses): Remove invalid clause from
list of clauses even if parser->error is set.
PR c/67500
* c-parser.c (c_parser_omp_clause_aligned,
c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
test for errors.
* c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
PR c/67495
* c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
instead of c_parser_unary_expression. If the result is !lvalue_p,
wrap the result of c_fully_fold into NON_LVALUE_EXPR.
2015-09-04 Marek Polacek <>
PR sanitizer/67279
* c-typeck.c (build_binary_op): Don't instrument static initializers.
2015-09-03 Martin Sebor <>
PR c/66516
* c-typeck.c (convert_arguments, parser_build_unary_op,
build_conditional_expr, c_cast_expr, convert_for_assignment,
build_binary_op, _objc_common_truthvalue_conversion): Call
(c_decl_implicit): Define.
2015-09-02 Marek Polacek <>
PR c/67432
* c-parser.c (c_parser_enum_specifier): Give a better error for
an empty enum.
2015-08-18 Trevor Saunders <>
* c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.
2015-08-12 Marek Polacek <>
* c-decl.c (grokdeclarator): Call error_at instead of error and pass
LOC to it.
2015-08-03 Marek Polacek <>
PR c/67088
* c-decl.c (check_bitfield_type_and_width): Add location parameter.
Use it.
(grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
2015-08-02 Patrick Palka <>
* c-parser.c (c_parser_if_body): Take token_indent_info
argument. Call warn_for_misleading_indentation even when the
body is a semicolon. Extract token_indent_infos corresponding
to the guard, body and next tokens. Adjust call to
warn_for_misleading_indentation accordingly.
(c_parser_else_body): Likewise.
(c_parser_if_statement): Likewise.
(c_parser_while_statement): Likewise.
(c_parser_for_statement): Likewise.
2015-07-28 Luis Felipe Strano Moraes <>
Manuel López-Ibáñez <>
* c-decl.c (get_parm_info): Remove static var. Update warning
2015-07-27 Marek Polacek <>
PR c++/66555
PR c/54979
* c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
2015-07-20 Marek Polacek <>
PR c++/55095
* c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
(build_binary_op): Warn about left shift overflows.
2015-07-09 Andrew MacLeod <>
* c-array-notation.c: Adjust includes for flags.h changes.
* c-objc-common.c: Likewise.
2015-07-07 Andrew MacLeod <>
* c-array-notation.c: Adjust includes.
* c-aux-info.c: Likewise.
* c-convert.c: Likewise.
* c-decl.c: Likewise.
* c-errors.c: Likewise.
* c-lang.c: Likewise.
* c-objc-common.c: Likewise.
* c-parser.c: Likewise.
* c-typeck.c: Likewise.
2015-06-29 Manuel López-Ibáñez <>
PR fortran/66605
* c-decl.c (finish_function): Call do_warn_unused_parameter.
2015-06-29 Marek Polacek <>
PR c/66322
* c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
(c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P. Don't warn
about -Wswitch-bool here.
(do_case): Update c_add_case_label call.
(c_finish_case): Update c_do_switch_warnings call.
2015-06-27 Marek Polacek <>
* c-typeck.c: Use VECTOR_TYPE_P throughout.
2015-06-26 Marek Polacek <>
* c-array-notation.c (fix_builtin_array_notation_fn): Use
* c-typeck.c (array_to_pointer_conversion): Likewise.
(build_unary_op): Likewise.
(c_finish_return): Likewise.
2015-06-25 Andrew MacLeod <>
* c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
* c-parser.c: Likewise.
2015-06-25 Richard Sandiford <>
* c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
instead of pointer_hash.
(detect_field_duplicates): Likewise.
2015-06-25 Marek Polacek <>
* c-array-notation.c: Use VAR_P throughout.
* c-decl.c: Likewise.
* c-objc-common.c: Likewise.
* c-parser.c: Likewise.
* c-typeck.c: Likewise.
2015-06-25 Marek Polacek <>
* c-decl.c: Use is_global_var throughout.
* c-parser.c: Likewise.
* c-typeck.c: Likewise.
2015-06-17 Andrew MacLeod <>
* c-array-notation.c: Do not include input.h, line-map.h or is-a.h.
* c-aux-info.c: Likewise.
* c-convert.c: Likewise.
* c-decl.c: Likewise.
* c-errors.c: Likewise.
* c-lang.c: Likewise.
* c-objc-common.c: Likewise.
* c-parser.c: Likewise.
* c-typeck.c: Likewise.
2015-06-11 Jan Hubicka <>
PR middle-end/66325
* c-decl.c (start_enum): Set TYPE_PACKED consistently among type
2015-06-11 Pierre-Marie de Rodat <>
* c-decl.c (pop_scope): Register the main translation unit
through the new debug hook.
2015-06-08 Andrew MacLeod <>
* c-array-notation.c : Adjust include files.
* c-aux-info.c : Likewise.
* c-convert.c : Likewise.
* c-decl.c : Likewise.
* c-errors.c : Likewise.
* c-lang.c : Likewise.
* c-lang.h : Likewise.
* c-objc-common.c : Likewise.
* c-parser.c : Likewise.
* c-typeck.c : Likewise.
2015-06-05 Aldy Hernandez <>
* c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and
immediately clobber it.
(c_write_global_declarations_1): Remove call to
(c_write_global_declarations_2): Remove.
(c_write_final_cleanups): Rename from c_write_global_declarations.
Remove call to finalize_compilation_unit.
Remove calls to debugging hooks.
* c-objc-common.c: Adjust comment for c_warn_unused_global_decl.
* c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS.
* c-tree.h: Remove c_write_global_declarations.
2015-06-04 Andrew MacLeod <>
* c-array-notation.c: Adjust includes for restructured coretypes.h.
* c-aux-info.c: Likewise.
* c-convert.c: Likewise.
* c-decl.c: Likewise.
* c-errors.c: Likewise.
* c-lang.c: Likewise.
* c-objc-common.c: Likewise.
* c-parser.c: Likewise.
* c-typeck.c: Likewise.
2015-06-04 Marek Polacek <>
PR c/66341
* c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if
it is a lvalue.
2015-06-03 Prathamesh Kulkarni <>
* c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc.
Warn for empty struct.
(finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct.
2015-06-02 Andres Tiraboschi <>
* c-decl.c (start_function): Call plugin before parsing.
(finish_function): Call plugin after parsing.
2015-06-02 Prathamesh Kulkarni <>
PR c/49551
* c-decl.c (merge_decls): Merge DECL_COMMON.
2015-05-22 Jim Wilson <>
* (check_gcc_pallelize): Define.
2015-05-22 Marek Polacek <>
PR c/47043
* c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
2015-05-21 Marek Polacek <>
* c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
2015-05-20 Marek Polacek <>
* c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
* c-typeck.c: Likewise.
2015-05-19 Marek Polacek <>
* c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
2015-05-19 Jakub Jelinek <>
PR middle-end/66199
* c-parser.c (c_parser_omp_for_loop): Don't add
(c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
2015-05-19 Mikhail Maltsev <>
* c-typeck.c (build_array_ref): Use std::swap instead of explicit
2015-05-16 Manuel López-Ibáñez <>
PR fortran/44054
* c-objc-common.c (c_tree_printer): Replace locus pointer with
accessor function.
2015-05-14 Marek Polacek <>
PR c/66066
PR c/66127
* c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic
rather than with 0.
2015-05-12 David Malcolm <>
* c-parser.c (c_parser_if_body): Add param "if_loc", use it
to add a call to warn_for_misleading_indentation.
(c_parser_else_body): Likewise, adding param "else_loc".
(c_parser_if_statement): Check for misleading indentation.
(c_parser_while_statement): Likewise.
(c_parser_for_statement): Likewise.
2015-05-08 Marek Polacek <>
PR c/64918
* c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects.
(output_init_element): Likewise.
2015-05-07 Marek Polacek <>
PR c/65179
* c-typeck.c (build_binary_op): Warn when left shifting a negative
2015-04-30 Marek Polacek <>
* c-typeck.c (set_init_label): Call error_at instead of error and
pass LOC to it.
* c-typeck.c (c_incomplete_type_error): Refactor to use %qT. Print
the type of a decl.
* c-typeck.c (c_build_va_arg): Clarify the error message.
2015-04-29 Thomas Schwinge <>
* c-parser.c (c_parser_oacc_enter_exit_data): Use
2015-04-28 Marek Polacek <>
* c-parser.c (c_parser_binary_expression): Remove duplicate line.
2015-04-28 Marek Polacek <>
PR c/65901
* c-typeck.c (c_build_va_arg): Require TYPE be a complete type.
2015-04-25 Marek Polacek <>
PR c/52085
* c-decl.c (finish_enum): Copy over TYPE_ALIGN. Also check for "mode"
2015-04-23 Marek Polacek <>
PR c/65345
* c-decl.c (set_labels_context_r): New function.
(store_parm_decls): Call it via walk_tree_without_duplicates.
* c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
instead of create_tmp_var. Build TARGET_EXPR instead of
(build_atomic_assign): Use create_tmp_var_raw instead of
create_tmp_var. Build TARGET_EXPRs instead of MODIFY_EXPR.
2015-04-20 Ilya Verbin <>
* c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon.
(c_parser_omp_target_update): Add missed %> to error_at ().
2015-04-10 Bernhard Reutner-Fischer <>
PR target/55143
* c-decl.c (c_default_pointer_mode): Remove definition.
* c-tree.h (c_default_pointer_mode): Remove declaration.
2015-03-27 Tobias Burnus <>
PR c/65586
* c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't
error out.
(c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute,
c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare):
Update calls to not error for skipped omp pragmas with -fopenmp-simd.
2015-03-19 Jakub Jelinek <>
* c-decl.c (c_decl_attributes): Also add "omp declare target"
attribute for DECL_EXTERNAL VAR_DECLs.
2015-03-11 Jakub Jelinek <>
* c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
2015-03-10 Jakub Jelinek <>
PR c/65120
* c-typeck.c (parser_build_binary_op): Check for tcc_comparison
before preparing arguments to warn_logical_not_parentheses.
2015-03-09 Jakub Jelinek <>
PR c/65120
* c-typeck.c (parser_build_binary_op): Don't warn for
!!x == y or !b == y where b is _Bool.
2015-03-09 Marek Polacek <>
* c-convert.c (convert): Make use of do_ubsan_in_current_function.
* c-decl.c (grokdeclarator): Likewise.
* c-typeck.c (build_binary_op): Likewise.
2015-02-27 Marek Polacek <>
PR c/65228
* c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
2015-02-14 Marek Polacek <>
PR c/64768
* c-decl.c (grokdeclarator): Set the range of a flexible array member
declared through a typedef name.
2015-02-13 Marek Polacek <>
PR c/65050
* c-decl.c (grokdeclarator): Print also the type when giving
the error message about array's incomplete element type.
2015-02-11 Jakub Jelinek <>
PR c/64824
* c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
check in the POP macro.
2015-02-09 Marek Polacek <>
PR c/64856
* c-typeck.c (process_init_element): Don't always wrap
initializing a range of elements.
2015-02-04 Jakub Jelinek <>
PR c/64824
PR c/64868
* c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR.
2015-02-02 Bruno Loff <>
* c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
processing enum declaration.
2015-01-29 Marek Polacek <>
PR c/64709
* c-typeck.c (pop_init_level): If constructor_elements has
exactly one element with integer_zerop value, set constructor_zeroinit
to 1. Remove braces around warning_init call.
2015-01-27 Jakub Jelinek <>
PR c/64766
* c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
of FUNCTION_DECLs with error_mark_node.
2015-01-26 Jakub Jelinek <>
PR c/64778
* c-typeck.c (convert_arguments): Return -1 if there are
error_args, even if we've diagnosed too many arguments.
2015-01-21 Richard Biener <>
PR middle-end/64313
* c-decl.c (merge_decls): Call set_builtin_decl_declared_p
for builtins the user declared correctly.
2015-01-15 Thomas Schwinge <>
Bernd Schmidt <>
Cesar Philippidis <>
James Norris <>
Jakub Jelinek <>
Ilmir Usmanov <>
* c-parser.c: Include "gomp-constants.h".
(c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
(c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
(c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
(c_parser_omp_clause_name): Handle "auto", "async", "copy",
"copyout", "create", "delete", "deviceptr", "gang", "host",
"num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
"present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
"present_or_create", "pcreate", "seq", "self", "vector",
"vector_length", "wait", "worker".
(c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
(c_parser_oacc_wait_list, c_parser_oacc_data_clause)
(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
(c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
(c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
(c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
(c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
(c_parser_oacc_parallel, c_parser_oacc_update)
(c_parser_oacc_wait): New functions.
* c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
(c_finish_oacc_data): New prototypes.
* c-typeck.c: Include "gomp-constants.h".
(handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
(c_finish_oacc_parallel, c_finish_oacc_kernels)
(c_finish_oacc_data): New functions.
(c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
2015-01-09 Michael Collison <>
* c-array-notation.c: Include hash-set.h, machmode.h,
vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h.
* c-aux-info.c: Ditto.
* c-convert.c: Ditto.
* c-decl.c: Ditto.
* c-errors.c: Ditto.
* c-lang.c: Dittoxs.
* c-objc-common.c: Ditto.
* c-parser.c: Ditto.
* c-typeck.c: Include hash-set.h, machmode.h,
vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
fold-const.h, wide-int.h, inchash.h, real.h and
fixed-value.h due to flattening of tree.h.
2015-01-07 Marek Polacek <>
PR c/64417
* c-typeck.c (process_init_element): Disallow initialization of
a flexible array member with a string constant if the structure
is in an array.
2015-01-05 Jakub Jelinek <>
PR sanitizer/64344
* c-typeck.c (convert_for_assignment, c_finish_return): For
-fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum
types also set in_late_binary_op around convert call.
* c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE
to integral type casts, if not in_late_binary_op, pass c_fully_fold
result on expr as last argument to ubsan_instrument_float_cast,
if in_late_binary_op, don't use c_save_expr but save_expr.
Update copyright years.
2015-01-05 Marek Polacek <>
PR c/64423
* c-typeck.c (build_array_ref): Pass loc down to
2014-12-20 Martin Uecker <>
* c-typeck.c: New behavious for pointers to arrays with qualifiers
(common-pointer-type): For pointers to arrays take qualifiers from
element type.
(build_conditional_expr): Add warnings for lost qualifiers.
(comp-target-types): Allow pointers to arrays with different qualifiers.
(convert-for-assignment): Adapt warnings for discarded qualifiers. Add
2014-12-17 Jakub Jelinek <>
PR sanitizer/64289
* c-convert.c: Include ubsan.h.
(convert): For real -> integral casts and
-fsanitize=float-cast-overflow don't call convert_to_integer, but
instead instrument the float cast directly.
2014-11-29 Jakub Jelinek <>
* c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
c_finish_stmt_expr): Remove NULL last argument from
create_tmp_var_raw and create_tmp_var calls.
* c-array-notation.c (fix_builtin_array_notation_fn,
build_array_notation_expr, fix_conditional_array_notations_1,
fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
2014-11-28 Marek Polacek <>
PR c/63862
* c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't
convert the right operand to integer type.
2014-11-25 Marek Polacek <>
PR c/63877
* c-decl.c (start_function): Disable -Wmissing-declarations warning
for inline functions.
2014-11-21 Jakub Jelinek <>
PR target/63764
* c-typeck.c (build_array_ref): Adjust
convert_vector_to_pointer_for_subscript caller. If it returns true,
call non_lvalue_loc on the result.
2014-11-11 Richard Biener <>
* c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
to true.
2014-11-10 Andi Kleen <>
PR c/60804
* c-parser.c (c_parser_statement_after_labels): Call
(c_parser_if_statement): Dito.
(c_parser_switch_statement): Dito.
(c_parser_while_statement): Dito.
(c_parser_do_statement): Dito.
(c_parser_for_statement): Dito.
* c-typeck.c (c_finish_loop): Dito.
2014-11-10 Paolo Carlini <>
* c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
OPT_Wshift_count_overflow in the warnings.
2014-10-30 Marek Polacek <>
* c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
print the stripped version as well, if they're not the same.
2014-10-29 Richard Sandiford <>
* c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
2014-10-28 Andrew MacLeod <>
* c-decl.c: Adjust include files.
* c-parser.c: Ditto.
2014-10-27 Phil Muldoon <>
Tom Tromey <>
* c-tree.h (enum c_oracle_request): New.
(c_binding_oracle_function): New typedef.
(c_binding_oracle, c_pushtag, c_bind): Declare.
* c-decl.c (c_binding_oracle): New global.
(I_SYMBOL_CHECKED): New macro.
(i_symbol_binding): New function.
(I_TAG_CHECKED): New macro.
(i_tag_binding): New function.
(I_LABEL_CHECKED): New macro.
(i_label_binding): New function.
(c_print_identifier): Save and restore c_binding_oracle.
(c_pushtag, c_bind): New functions.
2014-10-27 Andrew MacLeod <>
* c-typeck.c: Adjust include files.
2014-10-26 Manuel López-Ibáñez <>
PR c++/53061
* c-objc-common.c (c_objc_common_init): Do not do diagnostics
initialization here...
(c_initialize_diagnostics): ... but here. Set defaults after
building pretty-printer.
2014-10-23 Marek Polacek <>
PR c/63626
* c-decl.c (pop_scope): Don't print warning in external_scope.
2014-10-19 Marek Polacek <>
PR c/63567
* c-typeck.c (output_init_element): Allow initializing objects with
static storage duration with compound literals even in C99 and add
pedwarn for it.
2014-10-17 Marek Polacek <>
PR c/63567
* c-typeck.c (digest_init): Allow initializing objects with static
storage duration with compound literals even in C99 and add pedwarn
for it.
2014-10-17 Marek Polacek <>
PR c/63543
* c-tree.h (C_TYPE_ERROR_REPORTED): Define.
* c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
error multiple times. Print the type.
2014-10-17 Marek Polacek <>
PR c/63549
* c-typeck.c (build_array_ref): Bail if the index in an incomplete
2014-10-17 Marek Polacek <>
* c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
(start_function): Use OPT_Wimplicit_int instead of 0.
(store_parm_decls_oldstyle): Likewise.
2014-10-17 Alan Modra <>
PR middle-end/61848
* c-decl.c (merge_decls): Don't merge section name or tls model
to newdecl symtab node, instead merge to olddecl. Override
existing olddecl section name. Set tls_model for all thread-local
vars, not just OMP thread-private ones. Remove incorrect comment.
2014-10-16 Andrew MacLeod <>
* c-decl.c: Adjust include files.
2014-10-14 DJ Delorie <>
* c-parser.c (c_parse_init): Add RID entries for each __intN.
(c_token_starts_typename): Check all __intN, not just __int128.
(c_token_starts_declspecs): Likewise.
(c_parser_declspecs): Likewise.
(c_parser_attribute_any_word): Likewise.
(c_parser_objc_selector): Likewise.
* c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
(struct c_declspecs): Add int_n_idx field to record *which* __intN
is specified.
* c-decl.c (declspecs_add_type): Check for all __intN, not just
(finish_declspecs): Likewise.
2014-10-13 Anthony Brandon <>
* c-parser.c (c_parser_all_labels): New function to replace
the duplicate code.
(c_parser_statement): Call the new function.
2014-10-09 Marek Polacek <>
PR c/63480
* c-typeck.c (pop_init_level): Don't warn about initializing
with { }.
2014-10-07 Marek Polacek <>
PR c/59717
* c-decl.c (header_for_builtin_fn): New function.
(implicitly_declare): Suggest which header to include.
2014-10-07 Marek Polacek <>
* c-convert.c (convert): Use error_operand_p.
* c-typeck.c (require_complete_type): Likewise.
(really_atomic_lvalue): Likewise.
(digest_init): Likewise.
(handle_omp_array_sections_1): Likewise.
2014-10-03 Marek Polacek <>
PR c/63453
* c-decl.c (pop_scope): Don't warn about "inline function declared
but never defined" for functions marked with gnu_inline attribute.
2014-09-25 Jakub Jelinek <>
PR c++/63249
* c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
on low_bound and length.
2014-09-24 Marek Polacek <>
PR c/61405
PR c/53874
* c-parser.c: Don't define CPP_KEYWORD.
(c_parser_switch_statement): Pass original type to c_finish_case.
* c-tree.h (c_finish_case): Update declaration.
* c-typeck.c (c_finish_case): Add TYPE parameter. Pass it
conditionally to c_do_switch_warnings.
2014-09-03 Marek Polacek <>
PR c/62024
* c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
2014-09-02 Jakub Jelinek <>
Balaji V. Iyer <>
Igor Zamyatin <>
* c-parser.c (c_parser_cilk_for): New function.
(c_parser_cilk_grainsize): Likewise.
(c_get_temp_regvar): Likewise.
(c_parser_statement_after_labels): Added RID_CILK_FOR case.
(c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
(c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
* c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
2014-08-27 Chen Gang <>
* c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
with using HOST_WIDE_INT without truncation to 'int'
2014-08-22 Marek Polacek <>
PR c++/62199
* c-typeck.c (parser_build_binary_op): Adjust call to
2014-08-22 Igor Zamyatin <>
PR other/62008
* c-parser.c (c_parser_array_notation): Check for correct
type of an array added.
2014-08-19 Marek Polacek <>
PR c++/62153
* c-typeck.c (build_binary_op): If either operand of a comparison
is a boolean expression, call maybe_warn_bool_compare.
2014-08-19 Patrick Palka <>
PR c/45584
* c-typeck.c (build_c_cast): Do a conversion even when the
TYPE_MAIN_VARIANTs are the same.
2014-08-19 Marek Polacek <>
* c-decl.c (diagnose_mismatched_decls): Unconditionally call
pedwarn_c99 instead of pedwarn.
(grokfield): Likewise.
(warn_defaults_to): New function.
(grokdeclarator): Call warn_defaults_to instead of pedwarn_c99.
Unconditionally call pedwarn_c99 instead of pedwarn.
(start_function): Call warn_defaults_to instead of pedwarn_c99.
(declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't
check flag_isoc11 before.
* c-errors.c (pedwarn_c99): Change the return type to bool.
Handle -Wc99-c11-compat.
* c-parser.c (disable_extension_diagnostics): Handle
(restore_extension_diagnostics): Likewise.
(c_parser_static_assert_declaration_no_semi): Call pedwarn_c99
instead of pedwarn, don't check flag_isoc11 before.
(c_parser_declspecs): Likewise.
(c_parser_alignas_specifier): Likewise.
(c_parser_alignof_expression): Likewise.
(c_parser_generic_selection): Likewise.
* c-tree.h (pedwarn_c99): Update declaration.
* c-typeck.c (c_finish_return): Call pedwarn or warning_at instead
of pedwarn_c99.
2014-08-19 Marek Polacek <>
* c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally
to pedwarn_c90.
* c-errors.c: Include "opts.h".
(pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better.
* c-parser.c (disable_extension_diagnostics): Handle negative value
of warn_c90_c99_compat, too.
(restore_extension_diagnostics): Likewise.
(c_parser_compound_statement_nostart): Pass
OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90.
2014-08-12 Marek Polacek <>
* c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>:
Add pedwarn.
(c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>:
(c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise.
2014-08-10 Marek Polacek <>
PR c/51849
* c-decl.c (build_array_declarator): Remove check for !flag_isoc99.
Call pedwarn_c90 instead of pedwarn.
(check_bitfield_type_and_width): Likewise.
(declspecs_add_qual): Likewise.
(declspecs_add_type): Likewise.
(warn_variable_length_array): Unify function for -pedantic and -Wvla.
Adjust to only call pedwarn_c90.
(grokdeclarator): Remove pedantic && !flag_isoc99 check. Call
pedwarn_c90 instead of pedwarn.
* c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat.
* c-parser.c (disable_extension_diagnostics): Handle
(restore_extension_diagnostics): Likewise.
(c_parser_enum_specifier): Remove check for !flag_isoc99. Call
pedwarn_c90 instead of pedwarn.
(c_parser_initelt): Likewise.
(c_parser_postfix_expression): Likewise.
(c_parser_postfix_expression_after_paren_type): Likewise.
(c_parser_compound_statement_nostart): Remove check for !flag_isoc99.
* c-tree.h: Fix formatting.
* c-typeck.c (build_array_ref): Remove check for !flag_isoc99. Call
pedwarn_c90 instead of pedwarn.
2014-08-07 Trevor Saunders <>
* c-typeck.c: Remove include of pointer-set.h.
2014-08-07 Marek Polacek <>
* c-typeck.c (pointer_diff): Remove P - (P + CST) optimization.
2014-08-02 Trevor Saunders <>
* c-typeck.c: Use hash_map instead of pointer_map.
2014-08-02 Trevor Saunders <>
* c-decl.c: Use hash_set instead of pointer_set.
2014-08-01 Igor Zamyatin <>
PR middle-end/61455
* c-array-notation.c (expand_array_notations): Handling
of DECL_EXPR added.
2014-07-31 Marc Glisse <>
PR c++/60517
* c-typeck.c (c_finish_return): Return 0 instead of the address of
a local variable.
2014-07-30 Tom Tromey <>
* c-typeck.c (struct constructor_stack) <designator_depth>: New
(really_start_incremental_init, push_init_level): Initialize
(pop_init_level): Set global designator_depth.
(process_init_element): Check for designated_init attribute.
2014-07-20 Marek Polacek <>
PR c/61852
* c-decl.c (implicit_decl_warning): Add location_t parameter. Use it.
(implicitly_declare): Pass location to implicit_decl_warning.
2014-07-14 Jakub Jelinek <>
PR middle-end/61294
* c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
If non-NULL, call c_parser_check_literal_zero.
(c_parser_check_literal_zero): New function.
(c_parser_postfix_expression_after_primary): Adjust
c_parser_expr_list caller, handle -Wmemset-transposed-args.
2014-07-06 Marek Polacek <>
PR c/6940
* c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
* c-tree.h (C_ARRAY_PARAMETER): Define.
* c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
function parameter.
2014-07-02 Jan Hubicka <>
Chen Gang <>
* c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
releasing symbol.
2014-07-01 Marek Polacek <>
* c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
instead of 0 to WARN_FOR_ASSIGNMENT.
2014-07-01 Marek Polacek <>
PR c/58286
* c-typeck.c (convert_for_assignment): Pass
OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
2014-06-30 Marek Polacek <>
* c-decl.c (grokdeclarator): Don't instrument VLAs if the function
has no_sanitize_undefined attribute.
2014-06-30 Igor Zamyatin <>
PR middle-end/57541
* c-array-notation.c (fix_builtin_array_notation_fn):
Check for 0 arguments in builtin call. Check that bultin argument is
* c-parser.c (c_parser_array_notation): Check for incorrect initial
2014-06-27 Sebastian Huber <>
* c-parser.c (c_parser_declaration_or_fndef): Discard all type
qualifiers in __auto_type for atomic types.
(c_parser_typeof_specifier): Discard all type qualifiers in
__typeof__ for atomic types.
2014-06-25 Marek Polacek <>
PR c/61162
* c-parser.c (c_parser_statement_after_labels): Pass the location of
the return expression to c_finish_return.
2014-06-25 Jakub Jelinek <>
* c-typeck.c (c_finish_omp_clauses): Make sure
OMP_CLAUSE_LINEAR_STEP has correct type.
2014-06-24 Trevor Saunders <>
* c-decl.c: Adjust.
2014-06-24 Jakub Jelinek <>
* c-parser.c (c_parser_omp_for_loop): For
#pragma omp parallel for simd move lastprivate clause from parallel
to for rather than simd.
2014-06-23 Marek Polacek <>
* c-typeck.c (parser_build_binary_op): Don't call
warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
2014-06-15 Jan Hubicka <>
* c-parser.c (c_parser_omp_threadprivate): Likewise.
* c-decl.c (merge_decls): Likewise.
2014-06-09 Marek Polacek <>
PR c/36446
* c-typeck.c (error_init): Call inform instead of error_at.
(pedwarn_init): Call inform instead of pedwarn.
(warning_init): Call inform instead of warning_at.
2014-06-07 Jan Hubicka <>
* c-decl.c (merge_decls): Use set_decl_section_name.
(duplicate_decls): Remove node if it exists.
2014-06-05 S. Gilles <>
PR c/53119
* c-typeck.c (push_init_level, process_init_element,
pop_init_level): Correct check for zero initialization, move
missing brace warning to respect zero initialization.
2014-06-05 Marek Polacek <>
PR c/56724
* c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass.
2014-06-05 Marek Polacek <>
PR c/49706
* c-typeck.c (parser_build_binary_op): Warn when logical not is used
on the left hand side operand of a comparison.
2014-06-05 Marek Polacek <>
PR c/48062
* c-decl.c (warn_if_shadowing): Call inform instead of warning_at.
Print note only if the warning was printed.
2014-06-04 Igor Zamyatin <>
PR c/58942
* c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
with a pointer.
2014-06-03 Marek Polacek <>
PR c/60439
* c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
* c-tree.h (c_start_case): Update.
* c-typeck.c (c_start_case): Add new boolean parameter. Warn if
switch condition has boolean value.
2014-06-02 Andrew MacLeod <>
* c-decl.c: Include builtins.h.
* c-parser.c: Likewise.
2014-05-27 Marek Polacek <>
PR c/56724
* c-typeck.c (convert_arguments): Get location of a parameter. Change
error and warning calls to error_at and warning_at. Pass location of
a parameter to it. Call warning_at with OPT_Wtraditional_conversion.
(convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and
WARN_FOR_QUALIFIERS. Pass expr_loc to those.
2014-05-26 Igor Zamyatin <>
PR c/61191
* c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
function parameters.
2014-05-23 Jan Hubicka <>
* c-decl.c (merge_decls): Preserve symtab node pointers.
(duplicate_decls): Free new decl.
2014-05-23 Thomas Schwinge <>
* c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
* c-parser.c (c_parser_omp_target): Return bool values.
2014-05-22 Thomas Schwinge <>
* c-parser.c (c_parser_omp_clause_thread_limit): Rename
num_teams_loc variable to num_thread_limit_loc.
2014-05-21 Richard Sandiford <>
* c-array-notation.c (expand_array_notations): Use void_node
instead of void_zero_node.
2014-05-17 Trevor Saunders <>
* c-decl.c (finish_struct): Adjust.
(finish_enum): Likewise.
(bind): Adjust.
(record_inline_static): Likewise.
(push_scope): Likewise.
(make_label): Likewise.
(lookup_label_for_goto): Likewise.
(finish_struct): Likewise.
(finish_enum): Likewise.
(store_parm_decls): Likewise.
(c_push_function_context): Likewise.
* c-lang.h: Remove usage of variable_size gty attribute.
* c-parser.c (c_parse_init): Adjust.
(c_parse_file): Likewise.
2014-05-13 Marek Polacek <>
PR c/61162
* c-typeck.c (convert_for_assignment): Pass location to
WARN_FOR_ASSIGNMENT instead of input_location.
2014-05-10 Marek Polacek <>
* c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
(c_parser_postfix_expression_after_paren_type): Pass type_loc to
* c-tree.h (maybe_warn_string_init): Update declaration.
* c-typeck.c (maybe_warn_string_init): Add location parameter.
Call pedwarn_init with loc instead of with input_location.
(digest_init): Pass init_loc to maybe_warn_string_init.
(pop_init_level): Call pedwarn_init with loc instead of with
(set_init_index): Likewise.
(process_init_element): Likewise.
2014-05-09 Marek Polacek <>
PR c/61096
* c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level.
(c_parser_initelt): Pass location to set_init_label. Pass array index
location to set_init_index.
* c-tree.h (push_init_level): Update declaration.
(pop_init_level): Likewise.
(set_init_index): Likewise.
(set_init_label): Likewise.
* c-typeck.c (error_init): Add location parameter. Call error_at
instead of error.
(digest_init): Pass init_loc to error_init.
(push_init_level): Add location parameter. Pass loc to pop_init_level
and error_init.
(pop_init_level): Likewise.
(set_designator): Add location parameter. Pass loc to pop_init_level,
push_init_level, and error_init.
(set_init_index): Add location parameter. Pass loc to error_init and
(set_init_label): Likewise.
(output_init_element): Pass loc to error_init.
(process_init_element): Pass loc to error_init, pop_init_level,
pedwarn_init, and push_init_level.
2014-05-09 Marek Polacek <>
PR c/50459
* c-parser.c (c_parser_attributes): Parse the arguments as an
expression-list if the attribute takes identifier.
2014-05-08 Marek Polacek <>
PR c/61053
* c-decl.c (grokdeclarator): Use min_align_of_type instead of
2014-05-08 Marek Polacek <>
PR c/61077
* c-decl.c (start_function): Warn for _Atomic-qualified return type
of main.
2014-05-06 Kenneth Zadeck <>
Mike Stump <>
Richard Sandiford <>
* c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN.
(finish_enum): Use wide-int interfaces.
* c-parser.c (c_parser_cilk_clause_vectorlength): Likewise.
* c-typeck.c (build_c_cast): Likewise.
(set_nonincremental_init_from_string): Likewise.
(c_tree_equal): Likewise.
2014-05-02 Marek Polacek <>
PR c/25801
* c-typeck.c (c_size_in_bytes): Update comment. Don't call error.
Return size_one_node when the type is not complete.
(pointer_diff): Remove comment.
(build_unary_op): Improve error messages.
2014-05-02 Marek Polacek <>
* c-typeck.c (c_finish_return): Separate warning_at calls.
2014-05-02 Marek Polacek <>
* c-tree.h (error_init): Remove declaration.
(pedwarn_init): Likewise.
* c-typeck.c (error_init): Make static and move above.
(pedwarn_init): Likewise.
(warning_init): Move above.
(maybe_warn_string_init): Likewise.
2014-05-01 Jeff Law <>
2014-04-24 Prathamesh Kulkarni <>
* c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
avoid goto.
2014-05-02 Marek Polacek <>
PR c/60784
* c-typeck.c (push_init_level): Set constructor_designated to
p->designated for structures.
2014-05-01 Marek Polacek <>
PR c/60915
* c-parser.c (c_parser_declaration_or_fndef): Give better error if
function-definition has an attribute after the declarator.
2014-05-01 Marek Polacek <>
PR c/60257
* c-typeck.c (warning_init): Add location_t parameter. Call
warning_at instead of warning.
(push_init_level): Pass input_location to warning_init.
(add_pending_init): Add location_t parameter. Pass loc to
(set_nonincremental_init): Pass input_location to add_pending_init.
(set_nonincremental_init_from_string): Likewise.
(output_init_element): Pass loc to warning_init and to
2014-05-01 Marek Polacek <>
PR c/43395
* c-typeck.c (c_finish_return): Distinguish between label and variable
when warning about returning local address.
2014-05-01 Marek Polacek <>
PR c/29467
* c-decl.c (declspecs_add_type): Pedwarn if boolean types are used
in C89 mode.
2014-05-01 Marek Polacek <>
PR c/43245
* c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers
instead of 0 to WARN_FOR_QUALIFIERS.
2014-05-01 Marek Polacek <>
PR c/56989
* c-typeck.c (default_conversion): Use better location for
error call.
2014-04-30 Marek Polacek <>
* c-typeck.c (build_binary_op): Call ubsan_instrument_division
also when SANITIZE_FLOAT_DIVIDE is on.
2014-04-30 Marek Polacek <>
PR c/60139
* c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn
and pedwarn_init. Use loc insted of input_location.
2014-04-30 Marek Polacek <>
PR c/60351
* c-typeck.c (build_binary_op): Use location when warning about
shift count.
2014-04-25 Marek Polacek <>
PR c/18079
* c-decl.c (diagnose_mismatched_decls): Warn for mismatched
always_inline/noinline and hot/cold attributes.
2014-04-25 Marek Polacek <>
PR c/60114
* c-parser.c (c_parser_initelt): Pass input_location to
(c_parser_initval): Pass loc to process_init_element.
* c-tree.h (process_init_element): Adjust declaration.
* c-typeck.c (push_init_level): Pass input_location to
(pop_init_level): Likewise.
(set_designator): Likewise.
(output_init_element): Add location_t parameter. Pass loc to
(output_pending_init_elements): Pass input_location to
(process_init_element): Add location_t parameter. Pass loc to
2014-04-24 Jakub Jelinek <>
* c-parser.c (c_parser_omp_atomic): Allow seq_cst before
atomic-clause, allow comma in between atomic-clause and
2014-04-22 Jakub Jelinek <>
PR c/59073
* c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
fails, don't set OM_PARALLEL_COMBINED and return NULL.
2014-04-12 Igor Zamyatin <>
PR middle-end/60469
* c-array-notation.c (fix_builtin_array_notation_fn): Use
create_tmp_var instead build_decl for creating temps.
(build_array_notation_expr): Likewise.
(fix_conditional_array_notations_1): Likewise.
(fix_array_notation_expr): Likewise.
(fix_array_notation_call_expr): Likewise.