blob: e51736720c323e7462eb6f3bebf1df34c9c20c2e [file] [log] [blame]
2019-11-14 Release Manager
* GCC 7.5.0 released.
2019-09-05 Iain Sandoe <>
Backport from mainline.
2019-08-23 Iain Sandoe <>
PR pch/61250
* c-parser.c (c_parse_file): Call c_common_no_more_pch ()
after determining that the first token is not
2019-08-30 Jakub Jelinek <>
Backported from mainline
2019-04-19 Jakub Jelinek <>
PR c++/90108
* c-decl.c (merge_decls): If remove is main variant and
DECL_ORIGINAL_TYPE is some other type, remove a DECL_ORIGINAL_TYPE
variant that has newdecl as TYPE_NAME if any.
2019-04-12 Jakub Jelinek <>
PR c/89933
* c-decl.c (merge_decls): When newdecl's type is its main variant,
don't try to remove it from the variant list, but instead assert
it has no variants.
2019-03-19 Jakub Jelinek <>
PR c/89734
* c-decl.c (grokdeclarator): Call c_build_qualified_type on function
return type even if quals_used is 0. Formatting fixes.
2019-01-16 Joseph Myers <>
Backport from mainline
2019-01-07 Joseph Myers <>
PR c/88720
PR c/88726
* c-decl.c (pop_scope): Use TREE_PUBLIC and b->nested to determine
whether a function is nested, not DECL_EXTERNAL. Diagnose inline
functions declared but never defined only for external scope, not
for other scopes.
2018-01-02 Segher Boessenkool <>
Backport from trunk
2018-12-06 Segher Boessenkool <>
PR inline-asm/55681
* c-parser.c (c_parser_asm_statement): Update grammar. Allow any
combination of volatile and goto, in any order, without repetitions.
Backport from trunk
2018-12-06 Segher Boessenkool <>
* c-parser.c (c_parser_asm_statement): Detect the inline keyword
after asm. Pass a flag for it to build_asm_expr.
* c-tree.h (build_asm_expr): Update declaration.
* c-typeck.c (build_asm_stmt): Add is_inline parameter. Use it to
Backport from trunk
2018-12-08 Segher Boessenkool <>
* c-parser (c_parser_asm_statement) [RID_INLINE]: Delete stray line
setting "quals".
Backport from trunk
2018-12-19 Segher Boessenkool <>
* c-parser.c (c_parser_asm_statement): Rewrite the loop to work without
"done" boolean variable.
Backport from trunk
2018-12-19 Segher Boessenkool <>
* c-parser.c (c_parser_asm_statement): Keep track of the location each
asm qualifier is first seen; use that to give nicer "duplicate asm
qualifier" messages. Delete 'quals" variable, instead pass the
"is_volatile_ flag to build_asm_stmt directly.
* c-tree.h (build_asm_stmt): Make the first arg bool instead of tree.
* c-typeck.c (build_asm_stmt): Ditto; adjust.
Backport from trunk
2018-12-19 Segher Boessenkool <>
* c-parser.c (c_parser_asm_statement) <RID_CONST, RID_RESTRICT>: Give
a more specific error message (instead of just falling through).
And extra for the backport
2019-01-02 Segher Boessenkool <>
* c-parser.c (c_parser_asm_statement): Output a warning instead of an
error for const and restrict.
2018-12-06 Release Manager
* GCC 7.4.0 released.
2018-06-22 Jakub Jelinek <>
Backported from mainline
2018-05-11 Jakub Jelinek <>
PR c/85696
* c-typeck.c (c_finish_omp_clauses): Don't use
c_omp_predetermined_sharing, instead just check TREE_READONLY.
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-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-01-25 Release Manager
* GCC 7.3.0 released.
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.
2017-12-10 Tom de Vries <>
backport from trunk:
PR c/81875
2017-09-16 Tom de Vries <>
* c-parser.c (c_parser_omp_for_loop): Fold only operands of cond, not
cond itself.
2017-09-30 Jakub Jelinek <>
Backported from mainline
2017-09-29 Jakub Jelinek <>
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-08-14 Release Manager
* GCC 7.2.0 released.
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-05-26 Marek Polacek <>
Backported from mainline
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-03 Jakub Jelinek <>
Backported from mainline
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-05-02 Release Manager
* GCC 7.1.0 released.
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.
2014-03-28 Jakub Jelinek <>
PR c++/60689
* c-tree.h (c_build_function_call_vec): New prototype.
* c-typeck.c (build_function_call_vec): Don't call
resolve_overloaded_builtin here.
(c_build_function_call_vec): New wrapper function around
build_function_call_vec. Call resolve_overloaded_builtin here.
(convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
Call c_build_function_call_vec instead of build_function_call_vec.
* c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
* c-decl.c (finish_decl): Likewise.
2014-03-18 Manuel López-Ibáñez <>
PR c/55383
* c-typeck.c: Use correct format string in cast-qual warning
2014-03-07 Thomas Schwinge <>
* c-decl.c (c_decl_attributes): Use
* c-typeck.c (c_finish_omp_clauses): Likewise.
2014-03-06 Marek Polacek <>
PR c/60197
* c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
of checking tree code.
2014-02-19 Prathamesh Kulkarni <>
* c-parser.c (c_parser_declspecs): Replace call to error by error_at.
(c_parser_parameter_declaration): Likewise.
2014-02-19 Marek Polacek <>
PR c/60195
* c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp.
Call mark_exp_read on exp.value.
(build_atomic_assign): Set TREE_NO_WARNING on val and old. Set
TREE_ADDRESSABLE on old instead of val.
(emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING.
2014-02-07 Prathamesh Kulkarni <>
* c-parser.c (c_parser_get_builtin_args): Replace calls to
C_EXPR_APPEND by vec_safe_push.
* c-tree.h (C_EXPR_APPEND): Remove.
2014-01-31 Marek Polacek <>
PR c/59963
* c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to
(build_function_call): Likewise.
(build_atomic_assign): Likewise.
(build_function_call_vec): Add arg_loc parameter. Use it.
(convert_arguments): Likewise.
(convert_for_assignment): Rename rhs_loc to expr_loc.
* c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list.
(c_parser_objc_keywordexpr): Likewise.
(c_parser_postfix_expression_after_primary): Call
build_function_call_vec with expr_loc rather than op_loc.
Call c_parser_expr_list to fill arg_loc. Pass arg_loc to
(c_parser_expr_list): Add locations parameter. Fill it with locations
of function arguments.
* c-decl.c (finish_decl): Pass vNULL to build_function_call_vec.
2014-01-30 Marek Polacek <>
PR c/59940
* c-typeck.c (build_function_call_vec): Use loc parameter.
(convert_arguments): Add location parameter. Use it.
(ep_convert_and_check): Likewise.
(build_atomic_assign): Adjust convert_for_assignment call.
(build_modify_expr): Likewise.
(digest_init): Likewise.
(c_finish_return): Likewise.
(build_conditional_expr): Adjust ep_convert_and_check calls.
(convert_for_assignment): Add rhs_loc parameter. Use it.
(build_binary_op): Adjust convert_and_check and ep_convert_and_check
2014-01-30 Richard Biener <>
PR c/59905
* c-typeck.c (build_function_call_vec): Do not replace calls
to a function via an incompatible type with a runtime abort.
2014-01-24 Balaji V. Iyer <>
* c-parser.c (c_parser_declaration_or_fndef): Replaced
flag_enable_cilkplus with flag_cilkplus.
(c_parser_direct_declarator_inner): Likewise.
(c_parser_attribute_any_word): Likewise.
(c_parser_attributes): Likewise.
(c_parser_compound_statement): Likewise.
(c_parser_statement_after_labels): Likewise.
(c_parser_if_statement): Likewise.
(c_parser_switch_statement): Likewise.
(c_parser_do_statement): Likewise.
(c_parser_for_statement): Likewise.
(c_parser_unary_expression): Likewise.
(c_parser_postfix_expression): Likewise.
(c_parser_postfix_expression_after_primary): Likewise.
(c_parser_postfix_expression_after_primary): Likewise.
(c_parser_omp_clause_name): Likewise.
(c_finish_omp_declare_simd): Likewise.
(c_parser_cilk_verify_simd): Likewise.
* c-typeck.c (build_array_ref): Likewise.
(build_function_call_vec): Likewise.
(convert_arguments): Likewise.
(build_compound_expr): Likewise.
(c_finish_return): Likewise.
(c_finish_if_stmt): Likewise.
(c_finish_loop): Likewise.
(build_binary_op): Likewise.
2014-01-23 Marek Polacek <>
PR c/59846
* c-typeck.c (parser_build_binary_op): Use location instead of
(build_binary_op): Pass location to shorten_compare.
2014-01-23 Marek Polacek <>
PR c/58346
* c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to
an empty aggregate.
2014-01-23 Marek Polacek <>
PR c/59871
* c-typeck.c (build_compound_expr): Warn even for right-hand operand
of a comma expression.
(emit_side_effect_warnings): Likewise.
2014-01-23 Balaji V. Iyer <>
PR c/59825
* c-array-notation.c (expand_array_notation_exprs): Rewrote this
function to use walk_tree and moved a lot of its functionality to
(expand_array_notations): New function.
2014-01-23 Balaji V. Iyer <>
* c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
attribute an attribute without value.
2014-01-23 Jakub Jelinek <>
PR middle-end/58809
* c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR,
2014-01-22 Marek Polacek <>
PR c/59891
* c-typeck.c (build_conditional_expr): Call c_fully_fold instead
of remove_c_maybe_const_expr on op1 and op2.
2014-01-15 Jakub Jelinek <>
PR c/58943
* c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side
effects, preevaluate rhs using SAVE_EXPR first.
2014-01-09 Balaji V. Iyer <>
PR c++/59631
* c-parser.c (c_parser_postfix_expression): Replaced consecutive if
statements with if-elseif statements.
2014-01-06 Marek Polacek <>
PR c/57773
* c-decl.c (check_bitfield_type_and_width): Warn for implementation
defined bit-field types only in ISO C.
2014-01-02 Richard Sandiford <>
Update copyright years
2014-01-02 Richard Sandiford <>
* c-array-notation.c: Use the standard form for the copyright notice.
2013-12-18 Balaji V. Iyer <>
* c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field.
(c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens
field in parser is not empty. If not-empty, call the function
(c_parser_cilk_clause_vectorlength): Modified function to be shared
between SIMD-enabled functions and #pragma simd. Added new parameter.
(c_parser_cilk_all_clauses): Modified the usage of the function
c_parser_cilk_clause_vectorlength as mentioned above.
(c_parser_cilk_simd_fn_vector_attrs): New function.
(c_finish_cilk_simd_fn_tokens): Likewise.
(is_cilkplus_vector_p): Likewise.
(c_parser_omp_clause_name): Added checking for "vectorlength,"
"nomask," and "mask" strings in clause name.
(c_parser_omp_all_clauses): Added 3 new case statements:
(c_parser_attributes): Added a cilk_simd_fn_tokens parameter. Added a
check for vector attribute and if so call the function
c_parser_cilk_simd_fn_vector_attrs. Also, when Cilk plus is enabled,
called the function c_finish_cilk_simd_fn_tokens.
(c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in
parser field is non-empty. If so, parse them as you would parse
the omp declare simd pragma.
(c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn.
Added a check when step is a parameter and flag it as error.
(c_parser_cilk_clause_name): Changed pragma_cilk_clause to
2013-12-17 Thomas Schwinge <>
* c-parser.c (c_parser_omp_parallel): Fix description.
2013-12-11 Balaji V. Iyer <>
* c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove.
* c-typeck.c (cilk_install_body_with_frame_cleanup): New function.
2013-12-04 Joseph Myers <>
PR c/52023
* c-parser.c (c_parser_alignas_specifier): Use
c_sizeof_or_alignof_type instead of c_alignof.
(c_parser_alignof_expression): Likewise, with min_alignof
parameter depending on alignof spelling used.
2013-12-04 Marek Polacek <>
PR c/54113
* c-decl.c (start_function): Don't warn for missing prototype for
inline functions.
2013-12-03 Marek Polacek <>
PR c/59351
* c-decl.c (build_compound_literal): Allow compound literals with
empty initial value.
2013-12-02 Joseph Myers <>
PR c/58235
* c-typeck.c (build_modify_expr): Diagnose assignment to
expression with array type.
2013-11-29 Joseph Myers <>
PR c/42262
* c-typeck.c (process_init_element): Do not treat a string as
initializing a whole array when used with a designator for an
individual element.
2013-11-29 Joseph Myers <>
PR c/57574
* c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
an inline function following a static declaration.
2013-11-28 Jakub Jelinek <>
PR c/59310
* c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
to p_name before calling c_parser_omp_teams instead of after.
(c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
argument. Remove unused p_name variable.
2013-11-27 Aldy Hernandez <>
Jakub Jelinek <>
* c-decl.c (c_builtin_function_ext_scope): Avoid binding if
external_scope is NULL.
2013-11-27 Tom de Vries <>
Marc Glisse <>
PR c++/59032
* c-typeck.c (build_unary_op): Allow vector increment and decrement.
2013-11-22 Andrew MacLeod <>
* c-typeck.c: Add required include files from gimple.h.
2013-11-22 David Malcolm <>
* c-decl.c (define_label, shadow_tag_warned)
(check_bitfield_type_and_width, grokdeclarator, grokparms,
store_parm_decls_newstyle, store_parm_decls_oldstyle)
(declspecs_add_type): Remove use of in_system_header macro.
* c-parser.c (c_parser_unary_expression): Likewise.
* c-typeck.c (store_init_value, process_init_element)
(c_start_case): Likewise.
* c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE
* c-parser.c (c_parser_set_source_position_from_token): Remove
reference to in_system_header from comment.
2013-11-18 Richard Sandiford <>
* c-decl.c (grokdeclarator): Update comment to refer to
tree_to_[su]hwi rather than tree_low_cst.
2013-11-18 Richard Sandiford <>
* c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
tree_to_uhwi throughout.
2013-11-18 Richard Sandiford <>
* c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
2013-11-18 Richard Sandiford <>
* c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
2013-11-15 Aldy Hernandez <>
* c-parser.c (c_parser_cilk_simd): New.
(c_parser_cilk_verify_simd): New.
(c_parser_pragma): Add case for PRAGMA_CILK_SIMD.
(c_parser_omp_for_loop): Add case for NE_EXPR.
Set c_break_label for CILK_SIMD.
(c_parser_cilk_clause_vectorlength): New.
(c_parser_cilk_clause_linear): New.
(c_parser_cilk_clause_name): New.
(c_parser_cilk_all_clauses): New.
* c-typeck.c (build_unary_op): Pass location argument to
(build_modify_expr): Same.
(build_asm_expr): Same.
(c_finish_bc_stmt): Error on break/continue in loops.
2013-11-14 Andrew MacLeod <>
* c-typeck.c: Include only gimplify.h and gimple.h as needed.
2013-11-14 Diego Novillo <>
* c-decl.c: Include print-tree.h.
Include stor-layout.h.
Include varasm.h.
Include attribs.h.
Include stringpool.h.
* c-lang.c: Include fold-const.h.
* c-parser.c: Include stringpool.h.
Include attribs.h.
Include stor-layout.h.
Include varasm.h.
Include trans-mem.h.
* c-typeck.c: Include stor-layout.h.
Include trans-mem.h.
Include varasm.h.
Include stmt.h.
2013-11-13 Joseph Myers <>
* c-tree.h (c_typespec_keyword): Add cts_auto_type.
* c-decl.c (declspecs_add_type, finish_declspecs): Handle
* c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
(c_parser_attribute_any_word, c_parser_objc_selector): Handle
(c_parser_declspecs): Take argument AUTO_TYPE_OK.
(c_parser_declaration_or_fndef, c_parser_struct_declaration)
(c_parser_declarator, c_parser_direct_declarator_inner)
(c_parser_parameter_declaration, c_parser_type_name): All callers
(c_parser_declaration_or_fndef): Handle declarations with type
determined from the initializer.
2013-11-12 Andrew MacLeod <>
* c-typeck.c: Include gimplify.h.
2013-11-12 Joseph Myers <>
* c-tree.h (struct c_declspecs): Add thread_gnu_p field.
* c-parser.c (c_parser_declspecs): Mention _Thread_local in
* c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
or _Thread_local as appropriate in diagnostics.
(build_null_declspecs): Initialize ret->thread_gnu_p.
(declspecs_add_scspec): Handle either __thread or _Thread_local
for RID_THREAD. Diagnose _Thread_local for pre-C11 standards if
pedantic. Do not disallow _Thread_local extern and _Thread_local
2013-11-07 Joseph Myers <>
Andrew MacLeod <>
* c-aux-info.c (gen_type): Handle atomic qualifier.
* c-decl.c (validate_proto_after_old_defn): Do not remove atomic
qualifiers when compating types.
(shadow_tag_warned): Handle atomic_p in declspecs.
(quals_from_declspecs): Likewise.
(start_decl): Use c_type_promotes_to when promoting argument
(grokdeclarator): Handle _Atomic.
(get_parm_info): Diagnose any qualifier on "void" as only
(store_parm_decls_oldstyle): Do not remove atomic qualifiers when
comparing types. Use c_type_promotes_to when promoting argument
(finish_function): Use c_type_promotes_to when promoting argument
(build_null_declspecs): Handle atomic_p in declspecs.
(declspecs_add_qual): Handle RID_ATOMIC.
* c-parser.c (c_token_starts_typename, c_token_is_qualifier)
(c_token_starts_declspecs): Handle RID_ATOMIC.
(c_parser_declspecs): Handle atomic type specifiers and
(c_parser_typeof_specifier): Remove const and _Atomic qualifiers
from types of expressions with atomic type.
(c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
(c_parser_attribute_any_word): Handle RID_ATOMIC.
(c_parser_initializer, c_parser_initelt, c_parser_initval)
(c_parser_statement_after_labels, c_parser_switch_statement)
(c_parser_for_statement, c_parser_expr_no_commas)
(c_parser_conditional_expression, c_parser_binary_expression)
(c_parser_cast_expression, c_parser_unary_expression)
(c_parser_postfix_expression_after_primary, c_parser_expression):
Use convert_lvalue_to_rvalue.
(c_parser_expression_conv, c_parser_expr_list): Document
conversion of lvalues to rvalues. Use convert_lvalue_to_rvalue.
(c_parser_objc_synchronized_statement): Use
(c_parser_objc_selector): Handle RID_ATOMIC.
(c_parser_objc_receiver, c_parser_array_notation): Use
* c-tree.h (ctsk_typeof): Adjust comment to mention use for
_Atomic (type-name).
(struct c_declspecs): Add atomic_p field.
(convert_lvalue_to_rvalue): Declare.
* c-typeck.c (c_type_promotes_to): Promote atomic types to
corresponding atomic types.
(qualify_type): Don't add _Atomic qualifiers from second argument.
(comp_target_types): Do not allow _Atomic mismatches.
(type_lists_compatible_p): Do not remove atomic qualifiers when
comparing types.
(really_atomic_lvalue, convert_lvalue_to_rvalue)
(build_atomic_assign): New functions.
(build_unary_op): Use build_atomic_assign for atomic increment and
(build_conditional_expr): Do not treat _Atomic void as a qualified
version of void.
(build_modify_expr): Use build_atomic_assign for atomic LHS.
(find_anonymous_field_with_type, convert_to_anonymous_field)
(convert_for_assignment): Do not remove atomic qualifiers when
comparing types.
(digest_init): Do not accept initialization of arrays of atomic
elements by string constants.
(build_asm_expr): Use convert_lvalue_to_rvalue.
(build_binary_op): Do not treat _Atomic void as a qualified
version of void.
2013-11-06 DJ Delorie <>
* c-decl.c (locate_old_decl): If a previous conflicting decl is
both explicit and builtin, print the location of the explicit one.
2013-11-05 Tobias Burnus <>
* c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
c_parser_omp_distribute, c_parser_omp_teams,
c_parser_omp_target, c_parser_omp_declare): Handle
2013-11-03 Marek Polacek <>
* c-decl.c (grokdeclarator): Add VLA instrumentation.
2013-11-01 Jakub Jelinek <>
* c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to
check_dup_generic at the end, unless remove is true.
(c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after
remove = true;.
(c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise.
2013-10-31 Jakub Jelinek <>
* c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause
with decl that is not pointer nor array.
2013-10-29 Balaji V. Iyer <>
* c-decl.c (finish_function): Added a call for insert_cilk_frame when
a spawning function is found.
* c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
* c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
(c_parser_postfix_expression): Added RID_CILK_SPAWN case.
* c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
(c_finish_return): Added a check to reject _Cilk_spawn in return
(build_cilk_spawn): New function.
(build_cilk_sync): Likewise.
* (c-decl.o): Added cilk.h in dependency list.
2013-10-27 Tobias Burnus <>
PR other/33426
* c-parser.c (c_parser_while_statement, c_parser_while_statement,
c_parser_pragma): Add GCC ivdep support to 'do' and 'while'.
(c_parser_statement_after_labels): Update calls.
2013-10-24 Tobias Burnus <>
PR other/33426
* c-parser.c (c_parser_pragma, c_parser_for_statement):
(c_parser_statement_after_labels): Update call.
2013-10-24 Marek Polacek <>
* c-parser.c (c_parser_struct_declaration): Add a comment.
(c_parser_declarator): Don't allow _Alignas here.
2013-10-17 Andrew MacLeod <>
* c-parser.c: Include omp-low.h.
* c-typeck.c: Likewise.
2013-10-17 Marek Polacek <>
PR c/58267
* c-parser.c (c_parser_declspecs): Add alignspec_ok parameter.
Document syntax of the array-declarator.
(c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs
are not permitted.
(c_parser_declaration_or_fndef): Adjust c_parser_declspecs call.
(c_parser_struct_declaration): Likewise.
(c_parser_declarator): Likewise.
(c_parser_direct_declarator_inner): Likewise.
(c_parser_parameter_declaration): Likewise.
(c_parser_type_name): Likewise.
2013-10-11 Jakub Jelinek <>
* c-lang.h (current_omp_declare_target_attribute): New extern
* c-parser.c: Include c-lang.h.
(struct c_parser): Change tokens to c_token *.
Add tokens_buf field. Change tokens_avail type to unsigned int.
(c_parser_consume_token): If parser->tokens isn't
&parser->tokens_buf[0], increment parser->tokens.
(c_parser_consume_pragma): Likewise.
(enum pragma_context): Add pragma_struct and pragma_param.
(c_parser_external_declaration): Adjust
c_parser_declaration_or_fndef caller.
(c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
Adjust recursive call.
(c_parser_struct_or_union_specifier): Use pragma_struct instead
of pragma_external.
(c_parser_parameter_declaration): Use pragma_param instead of
(c_parser_compound_statement_nostart, c_parser_label,
c_parser_for_statement): Adjust
c_parser_declaration_or_fndef callers.
(c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
it through to c_parser_conditional_expression.
(c_parser_conditional_expression): Add omp_atomic_lhs argument,
pass it through to c_parser_binary_expression. Adjust recursive
(c_parser_binary_expression): Remove prec argument, add
omp_atomic_lhs argument instead. Always start from PREC_NONE, if
omp_atomic_lhs is non-NULL and one of the arguments of toplevel
binop matches it, use build2 instead of parser_build_binary_op.
(c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
Handle pragma_struct and pragma_param the same as pragma_external.
(c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
(c_parser_omp_variable_list): Parse array sections for
(c_parser_omp_clause_collapse): Fully fold collapse expression.
(c_parser_omp_clause_reduction): Handle user defined reductions.
(c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
c_parser_omp_clause_depend, c_parser_omp_clause_map,
c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
(c_parser_omp_all_clauses): Add finish_p argument. Don't call
c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
(c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms.
(c_parser_omp_for_loop): Add CODE argument, pass it through
to c_finish_omp_for. Change last argument to cclauses,
and adjust uses to grab parallel clauses from the array of all
the split clauses. Adjust c_parser_binary_expression,
c_parser_declaration_or_fndef and c_finish_omp_for callers.
(omp_split_clauses): New function.
(c_parser_omp_simd): New function.
(c_parser_omp_for): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined constructs,
and call c_parser_omp_simd when parsing for simd.
(c_parser_omp_sections_scope): If section-sequence doesn't start with
#pragma omp section, require exactly one structured-block instead of
sequence of statements.
(c_parser_omp_sections): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined constructs.
(c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined
(c_parser_omp_taskgroup, c_parser_omp_cancel,
c_parser_omp_cancellation_point, c_parser_omp_distribute,
c_parser_omp_teams, c_parser_omp_target_data,
c_parser_omp_target_update, c_parser_omp_target,
c_parser_omp_declare_simd, c_finish_omp_declare_simd,
c_parser_omp_declare_target, c_parser_omp_end_declare_target,
c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
(c_parser_omp_construct): Add p_name and mask vars. Handle
PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel
and c_parser_omp_sections callers.
(c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
* c-typeck.c: Include tree-inline.h.
(c_finish_omp_cancel, c_finish_omp_cancellation_point,
handle_omp_array_sections_1, handle_omp_array_sections,
c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
(c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
user defined reductions.
(c_tree_equal): New function.
* c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
c_check_omp_declare_reduction_r): New prototypes.
* c-decl.c (current_omp_declare_target_attribute): New variable.
(c_decl_attributes): New function.
(start_decl, start_function): Use it instead of decl_attributes.
(temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
c_omp_reduction_decl, c_omp_reduction_lookup,
c_check_omp_declare_reduction_r): New functions.
2013-09-25 Tom Tromey <>
* (c/gccspec.o): Remove.
(CFLAGS-c/gccspec.o): New variable.
(cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o)
(c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o)
(c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove.
2013-09-25 Tom Tromey <>
* (c/gccspec.o): Don't use subshell.
2013-09-18 Marek Polacek <>
PR sanitize/58443
* c-typeck.c (build_binary_op): Properly honor -fsanitize options.
Remove unnecessary check.
2013-09-18 Marek Polacek <>
PR sanitizer/58411
* c-typeck.c (build_binary_op): Don't sanitize function if it has the
no_sanitize_undefined attribute.
2013-09-13 Kai Tietz <>
PR target/57848
* c-decl.c (c_builtin_function_ext_scope): Remove
wrong assumption that it is never called on prexisting
2013-09-08 Joern Rennecke <>
* c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p.
2013-09-03 Gabriel Dos Reis <>
* c-objc-common.c (c_tree_printer): Tidy.
2013-08-30 Marek Polacek <>
* c-typeck.c (build_binary_op): Add division by zero and shift
2013-08-26 Joern Rennecke <>
Joseph Myers <>
PR c/35649
* c-typeck.c (c_common_type): Prefer double_type_node over
other REAL_TYPE types with the same precision.
(convert_arguments): Likewise.
2013-08-23 Gabriel Dos Reis <>
* c-objc-common.c (c_tree_printer): Document the nature of the cast.
(c_initialize_diagnostics): Call a destructor for the early printer.
2013-08-22 Gabriel Dos Reis <>
* c-objc-common.c (c_initialize_diagnostics): Simplify C pretty
printer initialization.
2013-08-19 Balaji V. Iyer <>
PR c/57490
* c-array-notation.c (fix_conditional_array_notations_1): Added a
check for truth values.
(expand_array_notation_exprs): Added truth values case. Removed an
unwanted else. Added for-loop to walk through subtrees in default
2013-08-04 Gabriel Dos Reis <>
* c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
2013-07-23 Joseph Myers <>
* c-parser.c (struct c_generic_association): Fix typo.
2013-07-23 Tom Tromey <>
Joseph Myers <>
* c-parser.c (struct c_generic_association): New.
(c_generic_association_d): New typedef.
(c_parser_generic_selection): New function.
(c_parser_postfix_expression): Handle RID_GENERIC.
2013-07-13 Jason Merrill <>
PR c++/57793
* c-decl.c (finish_struct): Check for too-large class.
2013-07-04 Joern Rennecke <>
PR c/57821
* c-typeck.c (set_init_index): When folding, check for index overflow.
2013-06-28 Balaji V. Iyer <>
* c-parser.c (c_parser_array_notation): Removed rejection of array
notations in an array of function pointers.
2013-06-21 Balaji V. Iyer <>
* c-array-notation.c (make_triplet_val_inv): New function.
(create_cmp_incr): Likewise.
(create_array_refs): Likewise.
(fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
Also modularized common parts between functions and called the function.
(build_array_notation_expr): Likewise.
(fix_conditional_array_notations_1): Likewise.
(fix_array_notation_expr): Likewise.
(fix_array_notation_call_expr): Likewise.
2013-06-18 Marek Polacek <>
PR c/57630
* c-decl.c (check_for_loop_decls): Improve diagnostics messages.
2013-06-12 Balaji V. Iyer <>
* c-array-notation.c (build_array_notation_expr): Reject array notation
mismatch between LHS and RHS even inside a call_expr. Also, removed
a couple while statements that were dead code.
2013-06-10 Balaji V. Iyer <>
* c-array-notation.c (fix_builtin_array_notation_fn): Fully folded