blob: 2a122ef1da33a24fc436361261c400a3ec08f78b [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-lex.c (c_lex_with_flags): Don't call
c_common_no_more_pch () from here.
2019-08-30 Richard Biener <>
Backport from mainline
2019-05-15 Richard Biener <>
PR c/90474
* c-common.c (c_common_mark_addressable_vec): Also mark
a COMPOUND_LITERAL_EXPR_DECL addressable similar to
2019-08-30 Jakub Jelinek <>
Backported from mainline
2019-06-25 Jakub Jelinek <>
PR sanitizer/90954
* c-omp.c (c_finish_omp_atomic): Allow tree_invariant_p in addition
to SAVE_EXPR in first operand of a COMPOUND_EXPR.
2019-04-09 Eric Botcazou <>
* c-ada-spec.c (print_destructor): Deal with deleting destructors.
(dump_ada_declaration) <FUNCTION_DECL>: Likewise.
2018-12-06 Release Manager
* GCC 7.4.0 released.
2018-06-22 Jakub Jelinek <>
Backported from mainline
2018-06-20 Jakub Jelinek <>
PR c++/86210
* c-common.c (check_nonnull_arg): Use fold_for_warn. Adjust obsolete
2018-05-11 Jakub Jelinek <>
PR c/85696
* c-omp.c (c_omp_predetermined_sharing): Return
OMP_CLAUSE_DEFAULT_SHARED for artificial vars with integral type.
2018-05-10 Jakub Jelinek <>
PR c++/85662
* c-common.h (fold_offsetof_1): Removed.
(fold_offsetof): Add TYPE argument defaulted to size_type_node and
CTX argument defaulted to ERROR_MARK.
* c-common.c (fold_offsetof_1): Renamed to ...
(fold_offsetof): ... this. Remove wrapper function. Add TYPE
argument, convert the pointer constant to TYPE and use size_binop
with PLUS_EXPR instead of fold_build_pointer_plus if type is not
a pointer type. Adjust recursive calls.
2018-04-26 Richard Biener <>
Backport from mainline
2018-03-16 Richard Biener <>
PR c/84873
* c-gimplify.c (c_gimplify_expr): Revert previous change. Instead
unshare the possibly folded expression.
2018-03-15 Richard Biener <>
PR c/84873
* c-gimplify.c (c_gimplify_expr): Do not fold expressions.
2018-03-03 Jakub Jelinek <>
Backported from mainline
2018-01-27 Jakub Jelinek <>
* c-cppbuiltin.c (c_cpp_builtins): Use ggc_strdup for the fp_suffix
(lazy_hex_fp_values): Allow up to LAZY_HEX_FP_VALUES_CNT lazy hex fp
values rather than just 12.
(builtin_define_with_hex_fp_value): Likewise.
2018-01-25 Release Manager
* GCC 7.3.0 released.
2017-12-15 Jakub Jelinek <>
Backported from mainline
2017-11-21 Jakub Jelinek <>
PR c++/83059
* c-common.c (get_atomic_generic_size): Use TREE_INT_CST_LOW
instead of tree_to_uhwi, formatting fix.
2017-09-15 Jakub Jelinek <>
Backported from mainline
2017-09-12 Jakub Jelinek <>
PR target/82112
* c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
assertion check that in the condition.
(get_atomic_generic_size): Likewise. Before testing if parameter
has pointer type, if it has array type, call for C++
default_conversion to perform array-to-pointer conversion.
2017-09-15 Martin Liska <>
Backport from mainline
2017-08-29 Martin Liska <>
PR other/39851
* c-common.c (parse_optimize_options): Add argument to function
* c-pragma.c (handle_pragma_diagnostic): Likewise.
2017-09-15 Martin Liska <>
Backport from mainline
2017-06-28 Martin Liska <>
PR ipa/81128
* c-attribs.c (handle_alias_ifunc_attribute): Append ifunc alias
to a function declaration.
2017-09-10 Jonathan Wakely <>
PR c++/81852
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_threadsafe_static_init.
2017-09-07 Jakub Jelinek <>
Backported from mainline
2017-07-27 Jakub Jelinek <>
PR c/45784
* c-omp.c (c_finish_omp_for): If the condition is wrapped in
rhs of COMPOUND_EXPR(s), skip them and readd their lhs into
new COMPOUND_EXPRs around the rhs of the comparison.
2017-08-14 Release Manager
* GCC 7.2.0 released.
2017-06-07 Richard Biener <>
Backport from mainline
2017-05-19 Richard Biener <>
PR c++/80593
* c-warn.c (strict_aliasing_warning): Do not warn for accesses
to alias-set zero memory.
2017-06-07 Marek Polacek <>
Backport from mainline
2017-06-04 Marek Polacek <>
PR c/80919
* c-format.c (matching_type_p): Return false if any of the types
requires structural equality.
2017-05-02 Release Manager
* GCC 7.1.0 released.
2017-04-27 Jakub Jelinek <>
PR c++/80534
* c-common.c (complete_array_type): Only hash TYPE_TYPELESS_STORAGE
flag on non-aggregate element types.
2017-04-20 Jakub Jelinek <>
PR middle-end/80423
* c-common.c (complete_array_type): Preserve TYPE_TYPELESS_STORAGE.
2017-04-18 Jakub Jelinek <>
PR middle-end/79788
PR middle-end/80375
* c-common.c (c_common_type_for_mode): Don't handle
widest_*_literal_type_node here.
c_common_signed_or_unsigned_type): Likewise.
(c_common_nodes_and_builtins): Set widest_*_literal_type_node
to *intTI_type_node or *intDI_type_node depending on whether
TImode is supported by the target or not.
2017-04-10 Martin Liska <>
PR sanitizer/80350
* c-ubsan.c (ubsan_instrument_shift): Evaluate RHS before
doing an UBSAN check.
2017-04-03 Jonathan Wakely <>
* c-warn.c (do_warn_double_promotion): Fix typo in comment.
2017-03-31 Jakub Jelinek <>
PR c++/79572
* c-ubsan.h (ubsan_maybe_instrument_reference): Change argument to
tree *.
* c-ubsan.c (ubsan_maybe_instrument_reference): Likewise. Handle
not just NOP_EXPR to REFERENCE_TYPE, but also INTEGER_CST with
2017-03-31 David Malcolm <>
PR documentation/78732
* c.opt (Wendif-labels): Fix description to refer to
#else rather than #elif.
2017-03-31 Jakub Jelinek <>
PR libstdc++/80251
* c-common.h (enum rid): Add RID_IS_AGGREGATE.
* c-common.c (c_common_reswords): Add __is_aggregate trait.
2017-03-27 Jakub Jelinek <>
PR middle-end/80162
* c-common.c (c_common_mark_addressable_vec): Don't set
2017-03-21 Martin Sebor <>
PR c++/79548
* c-common.c (set_underlying_type): Mark type used only when
original del is declared unused.
2017-03-10 David Malcolm <>
PR translation/79848
* c-format.c (check_format_string): Simplify uses of "%<%s%>" to
2017-03-10 David Malcolm <>
PR c/79921
* c-indentation.c (warn_for_misleading_indentation): Remove parens
from inform's message, so that xgettext can locate it.
2017-03-09 Marek Polacek <>
PR c++/79962
PR c++/79984
* c-attribs.c (handle_nonnull_attribute): Save the result of default
conversion to the attribute list.
2017-03-09 Martin Liska <>
* c-ada-spec.c (macro_length): Increment value instead of a pointer.
2017-03-03 Jason Merrill <>
* c.opt (Wnoexcept-type): New.
2017-03-02 Richard Biener <>
PR c/79756
* c-common.c (c_common_mark_addressable_vec): Look through
2017-02-28 Martin Liska <>
* c.opt: Replace space with tabular for options of <number>
2017-02-28 Martin Liska <>
* c.opt: Fix --help=option -Q for options which are of
an enum type.
2017-02-24 Jakub Jelinek <>
PR c++/79588
* c-common.c (check_function_restrict): New function.
(check_function_arguments): Add FNDECL argument. Call
check_function_restrict if -Wrestrict.
* c-warn.c (warn_for_restrict): Remove ARGS argument, add ARGARRAY
and NARGS. Use auto_vec for ARG_POSITIONS, simplify.
* c-common.h (check_function_arguments): Add FNDECL argument.
(warn_for_restrict): Remove ARGS argument, add ARGARRAY and NARGS.
2017-02-24 Eric Botcazou <>
* c-ada-spec.c (dump_ada_function_declaration): Add comment about the
treatment of parameters with pointer-to-tagged type and tidy up.
(print_ada_methods): Remove the special treatment of C++ static member
2017-02-22 Martin Liska <>
* c.opt: Replace inequality signs with square brackets
for -Wnornalized.
2017-02-21 Jakub Jelinek <>
PR c++/79641
* c-attribs.c (handle_mode_attribute): Use build_qualified_type to
preserve quals.
2017-02-17 Joseph Myers <>
* c-cppbuiltin.c (builtin_define_float_constants): Define
__DECIMAL_DIG__ to the value for long double.
2017-02-15 Marek Polacek <>
PR c/79515
* c-warn.c (do_warn_double_promotion): Don't warn if an invalid
conversion has occured.
2017-01-24 David Malcolm <>
* c-common.c (c_common_reswords): Add "__RTL".
* c-common.h (enum rid): Add RID_RTL.
2017-01-20 Marek Polacek <>
PR c/64279
* c-common.h (do_warn_duplicated_branches_r): Declare.
* c-gimplify.c (c_genericize): Walk the function tree calling
* c-warn.c (expr_from_macro_expansion_r): New.
(do_warn_duplicated_branches): New.
(do_warn_duplicated_branches_r): New.
* c.opt (Wduplicated-branches): New option.
2017-01-17 David Malcolm <>
PR c++/71497
* c-indentation.c (warn_for_misleading_indentation): Use the past
subjunctive in the note.
2017-01-17 Aldy Hernandez <>
PR c/79116
* array-notation-common.c (cilkplus_extract_an_triplets): Convert
start type to integer_type.
2017-01-16 Jakub Jelinek <>
PR driver/49726
* c.opt (gen-decls): Add Driver flag.
2017-01-16 Paolo Carlini <>
2017-01-16 Paolo Carlini <>
PR c++/71737
* c-common.c (set_underlying_type): Always set DECL_ORIGINAL_TYPE.
2017-01-16 Paolo Carlini <>
PR c++/71737
* c-common.c (set_underlying_type): Always set DECL_ORIGINAL_TYPE.
2017-01-12 Martin Sebor <>
(-Wformat-overflow): this.
2017-01-11 Martin Sebor <>
PR c/78768
* c.opt (-Walloca-larger-than, -Wformat-length, -Wformat-truncation):
Also enable for LTO.
2017-01-10 Jason Merrill <>
Implement P0195R2, C++17 variadic using.
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_variadic_using.
2017-01-09 Jakub Jelinek <>
PR translation/79019
PR translation/79020
* c.opt (Wnormalized=): Fix typo in description.
2017-01-08 Martin Sebor <>
PR middle-end/77708
* c.opt (-Wformat-truncation): New option.
2017-01-06 Alexandre Oliva <>
* c-pretty-print.c (pp_c_tree_decl_identifier): Convert 16-bit
value to unsigned short to fit in 4 hex digits without
2017-01-05 Eric Botcazou <>
* c.opt (fsso-struct): Add 'native' value.
2017-01-05 Martin Liska <>
PR pch/78970
* c-opts.c (c_common_post_options): Reject '-' filename for a precompiled
2017-01-04 Marek Polacek <>
PR c++/64767
* c.opt (Wpointer-compare): New option.
2017-01-04 Jakub Jelinek <>
PR driver/78957
* c.opt (fsso-struct=): Add RejectNegative.
2017-01-01 Jakub Jelinek <>
Update copyright years.
2016-12-29 Martin Liska <>
PR c/78933
* c.opt (strong-eval-order): Add RejectNegative keyword.
2016-12-22 Jason Merrill <>
Implement P0522R0, matching of template template arguments.
* c-cppbuiltin.c (c_cpp_builtins): Define
2016-12-21 Jakub Jelinek <>
PR bootstrap/78817
* c-common.c (struct nonnull_arg_ctx): New type.
(check_function_nonnull): Return bool instead of void. Use
nonnull_arg_ctx as context rather than just location_t.
(check_nonnull_arg): Adjust for the new context type, set
warned_p to true if a warning has been diagnosed.
(check_function_arguments): Return bool instead of void.
* c-common.h (check_function_arguments): Adjust prototype.
2016-12-21 Jason Merrill <>
* c.opt (-fnew-ttp-matching): New flag.
* c-opts.c (c_common_post_options): Default on if -std=c++1z.
2016-12-14 Martin Jambor <>
* c-omp.c: Include omp-general.h instead of omp-low.h.
(c_finish_oacc_wait): Adjusted call to find_omp_clause to use its new
2016-12-14 Martin Sebor <>
PR c/17308
* c-common.c (check_nonnull_arg): Disable when optimization
is enabled.
2016-12-12 Marek Polacek <>
PR c++/78647
* c-common.c (attribute_fallthrough_p): Return false for
2016-12-08 Martin Sebor <>
PR c/78284
* c.opt (-Walloc-zero, -Walloc-size-larger-than): New options.
2016-12-08 Martin Sebor <>
PR c/78165
* c-pretty-print (pp_c_integer_constant): Avoid formatting type
2016-12-07 Martin Sebor <>
PR c/53562
PR middle-end/77784
PR middle-end/78149
PR middle-end/78138
* c.opt (-Wstringop-overflow): New option.
2016-12-02 Maxim Ostapenko <>
* c-attribs.c (asan odr indicator): New attribute.
(handle_asan_odr_indicator_attribute): New function.
2016-11-26 Prathamesh Kulkarni <>
* c-common.c (c_common_nodes_and_builtins): Remove initialization of
2016-11-23 James Greenhalgh <>
* c-common.c (excess_precision_mode_join): New.
(c_ts18661_flt_eval_method): New.
(c_c11_flt_eval_method): Likewise.
(c_flt_eval_method): Likewise.
* c-common.h (excess_precision_mode_join): New.
(c_flt_eval_method): Likewise.
* c-cppbuiltin.c (c_cpp_flt_eval_method_iec_559): New.
(cpp_iec_559_value): Call it.
(c_cpp_builtins): Modify logic for __LIBGCC_*_EXCESS_PRECISION__,
call c_flt_eval_method to set __FLT_EVAL_METHOD__ and
2016-11-23 James Greenhalgh <>
* c-opts.c (c_common_post_options): Add logic to handle the default
case for -fpermitted-flt-eval-methods.
2016-11-23 Paolo Bonzini <>
* c.opt (Wexpansion-to-defined): New.
2016-11-23 Jakub Jelinek <>
PR target/78451
* c-pragma.c (handle_pragma_target): Don't replace
current_target_pragma, but chainon the new args to the current one.
2016-11-22 Nathan Sidwell <>
* array-notation-common.c (cilkplus_extract_an_trplets): Fix
indentation and formatting.
2016-11-21 Martin Sebor <>
* c.opt (-fprintf-return-value): Enable by default.
2016-11-21 Bernd Edlinger <>
PR c++/71973
* c.opt (-Wbuiltin-declaration-mismatch): New warning.
* c-common.c (c_common_nodes_and_builtins): Initialize
2016-11-16 Marek Polacek <>
PR c/78285
* c-common.c (c_add_case_label): Turn error_at calls into inform.
2016-11-14 Jakub Jelinek <>
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings.
2016-11-14 Prasad Ghangal <>
Richard Biener <>
* c-common.h (c_common_resword): Add RID_GIMPLE, RID_PHI types.
* c-common.h (enum rid): Add RID_GIMPLE, RID_PHI.
* c.opt (fgimple): New option.
2016-11-13 Prathamesh Kulkarni <>
PR c/35503
* c-common.h (warn_for_restrict): Declare.
* c-warn.c: Include gcc-rich-location.h.
(warn_for_restrict): New function.
* c-format.c (gcc_tdiag_char_table): Add entry for "Z" specifier.
(gcc_cdiag_char_table): Likewise.
(gcc_cxxdiag_char_table): Likewise.
* c.opt (Wrestrict): New option.
2016-11-13 Eric Botcazou <>
* c-ada-spec.c (print_ada_declaration): For typedef declarations, look
for nested types only if the type is a record or union and dump SLOC.
2016-11-09 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_template_auto.
2016-11-09 Jakub Jelinek <>
* c-ubsan.c (ubsan_instrument_shift): Handle split
-fsanitize=shift-base and -fsanitize=shift-exponent.
2016-11-07 Jason Merrill <>
* c.opt (Wc++1z-compat): New.
* c-cppbuiltin.c (c_cpp_builtins): Add __cpp_noexcept_function_type.
2016-11-07 Martin Liska <>
* c-warn.c (warn_for_unused_label): Save all labels used
in goto or in &label.
2016-11-03 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Correct
2016-11-01 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Update
* c.opt (-fnew-inheriting-ctors): New.
* c-opts.c: Default to on for ABI 11+.
2016-10-31 Jakub Jelinek <>
PR c++/77948
* c.opt (fext-numeric-literals): Add Var and Init.
* c-opts.c (c_common_handle_option): Don't clear
cpp_opts->ext_numeric_literals for -std=c++{11,14,1z}.
(c_common_post_options): Clear it here if not set
2016-10-28 Aldy Hernandez <>
PR debug/77773
* c-pretty-print.c (simple_type_specifier): Do not dereference `t'
if NULL.
2016-10-25 Jakub Jelinek <>
* c-common.h (enum rid): Add RID_BUILTIN_LAUNDER.
* c-common.c (c_common_reswords): Add __builtin_launder.
2016-10-24 Bernd Edlinger <>
* c-common.c (c_common_truthvalue_conversion): Warn for
multiplications in boolean context. Fix the quoting of '<<' and '<'
in the shift warning.
2016-10-20 Bernd Edlinger <>
* c-common.c (c_common_truthvalue_conversion): Fix the comment.
2016-10-20 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_concepts value.
2016-10-19 Bernd Edlinger <>
* c-common.c (c_common_truthvalue_conversion): Warn only for signed
integer shift ops in boolean context.
2016-10-18 Aldy Hernandez <>
* c.opt (Walloca): New.
(Walloca-larger-than=): New.
(Wvla-larger-than=): New.
2016-10-17 Marek Polacek <>
* c-warn.c (find_array_ref_with_const_idx_r): Remove parameter names.
Return immediately when finding a match.
(warn_tautological_cmp): Remove a boolean variable that is no longer
2016-10-17 Marek Polacek <>
* c-attribs.c: New file.
* c-common.c: Move attributes handling to c-attribs.c.
(get_nonnull_operand): No longer static.
* c-common.h: Move the declarations from c-attribs.c to its own section.
2016-10-14 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_aggregate_bases
and __cpp_deduction_guides.
2016-10-13 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Add __cpp_inline_variables.
2016-10-13 Thomas Preud'homme <>
* c-cppbuiltin.c: Include memmodel.h.
* c-opts.c: Likewise.
* c-pragma.c: Likewise.
* c-warn.c: Likewise.
2016-10-12 Jakub Jelinek <>
* c.opt (Wextra): Add as C/C++/ObjC/ObjC++ option.
(Wimplicit-fallthrough=): Enable for these languages by -Wextra.
* c-opts.c (sanitize_cpp_opts): Initialize
2016-10-11 Marek Polacek <>
* c-common.c (warning_candidate_p): Change the return type to bool
and return true/false instead of 1/0.
(vector_mode_valid_p): Likewise.
2016-10-11 Marek Polacek <>
* c-common.c (fold_for_warn): No longer static.
(bool_promoted_to_int_p): Likewise.
(c_common_get_narrower): Likewise.
(constant_expression_warning): Move to c-warn.c.
(constant_expression_error): Likewise.
(overflow_warning): Likewise.
(warn_logical_operator): Likewise.
(find_array_ref_with_const_idx_r): Likewise.
(warn_tautological_cmp): Likewise.
(expr_has_boolean_operands_p): Likewise.
(warn_logical_not_parentheses): Likewise.
(warn_if_unused_value): Likewise.
(strict_aliasing_warning): Likewise.
(sizeof_pointer_memaccess_warning): Likewise.
(check_main_parameter_types): Likewise.
(conversion_warning): Likewise.
(warnings_for_convert_and_check): Likewise.
(match_case_to_enum_1): Likewise.
(match_case_to_enum): Likewise.
(c_do_switch_warnings): Likewise.
(warn_for_omitted_condop): Likewise.
(readonly_error): Likewise.
(lvalue_error): Likewise.
(invalid_indirection_error): Likewise.
(warn_array_subscript_with_type_char): Likewise.
(warn_about_parentheses): Likewise.
(warn_for_unused_label): Likewise.
(warn_for_div_by_zero): Likewise.
(warn_for_memset): Likewise.
(warn_for_sign_compare): Likewise.
(do_warn_double_promotion): Likewise.
(do_warn_unused_parameter): Likewise.
(record_locally_defined_typedef): Likewise.
(maybe_record_typedef_use): Likewise.
(maybe_warn_unused_local_typedefs): Likewise.
(maybe_warn_bool_compare): Likewise.
(maybe_warn_shift_overflow): Likewise.
(warn_duplicated_cond_add_or_warn): Likewise.
(diagnose_mismatched_attributes): Likewise.
* c-common.h: Move the declarations from c-warn.c to its own section.
* c-warn.c: New file.
2016-10-08 Jason Merrill <>
* c-common.c (c_common_truthvalue_conversion): Don't distribute
into COND_EXPR in C++.
2016-10-08 Jakub Jelinek <>
* c-lex.c (c_lex_with_flags) <case CPP_COMMENT>: For CPP_COMMENT
token with PREV_FALLTHROUGH, skip all following CPP_PADDING and
CPP_COMMENT tokens and set add_flags to PREV_FALLTHROUGH afterwards.
2016-10-07 Jakub Jelinek <>
Implement LWG2296 helper intrinsic
* c-common.h (enum rid): Add RID_ADDRESSOF.
* c-common.c (c_common_reswords): Add __builtin_addressof.
2016-10-07 Bernd Edlinger <>
PR c++/77700
* c-common.c (c_common_truthvalue_conversion): Warn also for
suspicious enum values in boolean context.
2016-10-06 Jakub Jelinek <>
Implement P0258R2 - helper for C++17
std::has_unique_object_representations trait
* c-common.h (enum rid): Add RID_HAS_UNIQUE_OBJ_REPRESENTATIONS.
* c-common.c (c_common_reswords): Add
2016-10-05 Jakub Jelinek <>
PR sanitizer/66343
* c-ubsan.c (ubsan_instrument_return): Don't call
initialize_sanitizer_builtins here.
2016-10-05 Bernd Edlinger <>
* c-common.c (c_common_truthvalue_conversion): Warn also for suspicious
conditional expression in boolean context when only one arm is
2016-10-05 Jakub Jelinek <>
PR sanitizer/77823
* c-ubsan.c (ubsan_instrument_shift): Return NULL_TREE if type0
is not integral.
* c-common.c (c_common_reswords): Update comment for C++11.
2016-10-04 Jason Merrill <>
* c-common.c (make_tree_vector_from_ctor): New.
* c-common.h: Declare it.
2016-10-04 Jakub Jelinek <>
* c-cppbuiltin.c (c_cpp_builtins): Don't define
2016-10-03 Bernd Edlinger <>
* c-common.c (c_common_truthvalue_conversion): Warn for suspicious
left shift in boolean context.
2016-09-29 Jakub Jelinek <>
Implement P0001R1 - C++17 removal of register storage class specifier
* c.opt (Wregister): New warning.
* c-opts.c (c_common_post_options): Enable -Wregister by
default for C++17.
2016-09-29 James Greenhalgh <>
* c-opts.c (c_common_post_options): Remove special case for
TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard
in C++.
2016-09-27 Jakub Jelinek <>
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_capture_star_this for
* c-ada-spec.c (print_ada_declaration): Remove break after return.
2016-09-26 Thomas Preud'homme <>
* c-common.c: Include memmodel.h.
2016-09-26 Marek Polacek <>
* c-lex.c (c_common_has_attribute): Handle attribute fallthrough.
2016-09-26 Marek Polacek <>
PR c/7652
* c-common.c (c_common_attribute_table): Add fallthrough attribute.
(handle_fallthrough_attribute): New function.
(attribute_fallthrough_p): New function.
* c-common.h (attribute_fallthrough_p): Declare.
2016-09-24 Marek Polacek <>
PR c/77490
* c.opt (Wbool-operation): New.
2016-09-21 Bernd Edlinger <>
* c-common.c (c_common_truthvalue_conversion): Inhibit
Wint-in-bool-context warning with from_macro_definition_at.
Mention the expression will always evaluate to true.
2016-09-21 Martin Sebor <>
PR bootstrap/77676
* c.opt (fprintf-return-value): Temporarily initialize to zero
to unblock bootstrap failures.
2016-09-21 Jakub Jelinek <>
PR c++/77651
* c.opt (Waligned-new=): Add RejectNegative.
(faligned-new=): Likewise. Spelling fix - change
aligned_new_threshhold to aligned_new_threshold.
* c-cppbuiltin.c (c_cpp_builtins): Change aligned_new_threshhold
to aligned_new_threshold.
2016-09-20 Martin Sebor <>
PR middle-end/49905
* c.opt: Add -Wformat-length and -fprintf-return-value.
2016-09-19 Bernd Edlinger <>
PR c++/77434
* c.opt (Wint-in-bool-context): New warning.
* c-common.c (c_common_truthvalue_conversion): Warn on integer
constants in boolean context.
2016-09-19 Joseph Myers <>
* c-common.c (max_align_t_align): Also consider alignment of
2016-09-15 Jason Merrill <>
* c-common.c (check_cxx_fundamental_alignment_constraints): Check
2016-09-14 Jason Merrill <>
* c-common.c (check_cxx_fundamental_alignment_constraints): Don't
limit FIELD_DECL, either.
2016-09-14 Marek Polacek <>
* c-common.c (c_common_truthvalue_conversion): Use false instead of 0.
* c-common.h (build_unary_op): Change nonconvert parameter type to bool.
* c-omp.c (c_finish_omp_atomic): Use false instead of 0.
2016-09-13 David Malcolm <>
* c-common.c (warn_logical_not_parentheses): Replace
rich_location::add_fixit_insert calls with add_fixit_insert_before
and add_fixit_insert_after, eliminating the "next_loc" calculation.
2016-09-13 Jason Merrill <>
Tom de Vries <>
PR c++/77427
* c-common.c (set_underlying_type): Don't treat array as builtin type.
2016-09-13 Jason Merrill <>
* c-common.c (check_cxx_fundamental_alignment_constraints): Don't
limit types at all.
2016-09-12 Jason Merrill <>
* c-common.c (check_cxx_fundamental_alignment_constraints): Fix
bit/byte confusion, allow large alignment for types.
2016-09-12 Bernd Edlinger <>
PR c++/77496
* c-common.c (warn_for_omitted_condop): Also warn for boolean data.
2016-09-12 David Malcolm <>
PR c/72858
* c-format.c (argument_parser::check_argument_type): Add params
"type_start" and "conversion_char". Use the former to generate
offset_to_type_start and pass it and conversion_char to
(check_format_info_main): Capture the start of the type
information as "type_start", and pass it an format_char
to arg_parser.check_argument_type.
(check_format_types): Provide an example in the leading comment.
Add params "offset_to_type_start" and "conversion_char"; pass
them to format_type_warning calls.
(test_get_modifier_for_format_len): Likewise.
(matching_type_p): New function.
(get_format_for_type): Add param "conversion_char" and move
implementation into...
(get_format_for_type_1): function, called twice.
Use new function matching_type_p rather than checking for
(get_corrected_substring): New function.
(format_type_warning): Provide an example in the leading comment.
Add params "offset_to_type_start" and "conversion_char". Replace
call to get_format_for_type with call to get_corrected_substring
and move rejection of hints for widths/precisions there.
(assert_format_for_type_streq): Add param "conversion_char".
(test_get_format_for_type_printf): Add conversion chars to the
tests, adding coverage for various combinations of integer
vs double conversions, and for preserving octal and hexadecimal
(test_get_format_for_type_scanf): Add conversion chars to the
2016-09-10 Tom de Vries <>
PR C/71602
* c-common.c (build_va_arg): Handle more strict
targetm.canonical_va_list_type. Replace first argument type error with
2016-09-09 Martin Sebor <>
PR c/77520
PR c/77521
* c-format.c (argument_parser::find_format_char_info): Use %qc
format directive unconditionally.
2016-09-09 Jason Merrill <>
Implement C++17 new of over-aligned types.
* c.opt: Add -faligned-new and -Waligned-new.
* c-common.c (max_align_t_align): Split out from...
* c-common.h: Declare it.
* c-cppbuiltin.c (c_cpp_builtins): Handle aligned new.
2016-09-09 Joseph Myers <>
* c-cppbuiltin.c (builtin_define_type_width): New function.
(builtin_define_stdint_macros, c_cpp_builtins): Define type width
2016-09-07 David Malcolm <>
* c-common.c (get_cpp_ttype_from_string_type): Handle being passed
(substring_loc::get_location): Move to substring-locations.c,
keeping implementation as...
(c_get_substring_location): New function, from the above, reworked
to use accessors rather than member lookup.
* c-common.h (class substring_loc): Move to substring-locations.h,
replacing with a forward decl.
(c_get_substring_location): New decl.
* c-format.c: Include "substring-locations.h".
(format_warning_va): Move to substring-locations.c.
(format_warning_at_substring): Likewise.
2016-09-06 Martin Sebor <>
PR c/77336
* c-format.c (check_function_format): Avoid issuing warnings for
functions unless they call format functions with non-constant
format strings.
2016-09-06 Richard Biener <>
PR c/77450
* c-common.c (c_common_mark_addressable_vec): Handle
2016-09-05 Marek Polacek <>
PR c/77423
* c-common.c (bool_promoted_to_int_p): New function.
(expr_has_boolean_operands_p): New function.
(warn_logical_not_parentheses): Return if expr_has_boolean_operands_p.
(maybe_warn_bool_compare): Use bool_promoted_to_int_p.
2016-09-04 Tom de Vries <>
2016-08-29 Tom de Vries <>
* c-common.c (build_va_arg): Replace first argument type error
with assert.
2016-09-02 Jakub Jelinek <>
PR c/65467
* c-omp.c (c_finish_omp_atomic): Reject _Atomic qualified expressions.
(c_finish_omp_for): Reject _Atomic qualified iterators.
2016-09-01 Martin Sebor <>
* c-ada-spec.c (dump_ada_function_declaration): Increase buffer
size to guarantee it fits the output of the formatted function
regardless of its arguments.
2016-09-01 Marek Polacek <>
PR c/7652
* c-common.c (resolve_overloaded_builtin): Fix formatting. Add
FALLTHRU comments.
2016-08-29 Marek Polacek <>
PR c/77292
* c-common.c (warn_logical_not_parentheses): Don't warn for
a comparison or a logical operator.
2016-08-29 Tom de Vries <>
* c-common.c (build_va_arg): Fix type comparison assert.
2016-08-29 Tom de Vries <>
* c-common.c (build_va_arg): Replace first argument type error
with assert.
2016-08-29 Tom de Vries <>
PR c/77398
* c-common.c (build_va_arg): Add first argument error. Build va_arg
with error_mark_node as va_list instead of with illegal va_list.
2016-08-25 Marek Polacek <>
David Malcolm <>
* c-common.c (warn_logical_not_parentheses): Print fixit hints.
* c-common.h (warn_logical_not_parentheses): Update declaration.
2016-08-22 Marek Polacek <>
PR c++/77321
* c-common.c (warn_for_memset): Check type for null.
2016-08-22 Joseph Myers <>
* c-family/c-cppbuiltin.c (c_cpp_builtins): Check _FloatN and
_FloatNx types for suffixes for built-in functions.
2016-08-19 Joseph Myers <>
PR c/32187
(RID_FLOAT128X): New enum rid values.
(CASE_RID_FLOATN_NX): New macro.
* c-common.c (c_common_reswords): Add _FloatN and _FloatNx
(c_common_type_for_mode): Check for _FloatN and _FloatNx and
corresponding complex types.
(c_common_nodes_and_builtins): For non-C++, register _FloatN and
_FloatNx and corresponding complex types.
(keyword_begins_type_specifier): Use CASE_RID_FLOATN_NX.
* c-cppbuiltin.c (builtin_define_float_constants): Check _FloatN
and _FloatNx types for the widest type for determining
DECIMAL_DIG. Define __LDBL_DECIMAL_DIG__ as well as
__DECIMAL_DIG__ for long double. Handle FMA_SUFFIX being NULL.
(c_cpp_builtins): Call builtin_define_float_constants for _FloatN
and _FloatNx types.
* c-lex.c (interpret_float): Handle _FloatN and _FloatNx
* c-pretty-print.c (pp_c_floating_constant): Handle _FloatN and
_FloatNx types.
2016-08-18 David Malcolm <>
* c-opts.c (c_diagnostic_finalizer): Update for change to
2016-08-18 David Malcolm <>
* c-common.c: Include "spellcheck.h".
(cb_get_suggestion): New function.
* c-common.h (cb_get_suggestion): New decl.
* c-lex.c (init_c_lex): Initialize cb->get_suggestion to
2016-08-18 Marek Polacek <>
PR c/71514
* c-common.c (get_atomic_generic_size): Disallow pointer-to-function
and pointer-to-VLA.
2016-08-16 David Malcolm <>
PR c/72857
* c-common.c (substring_loc::get_range): Rename to...
(substring_loc::get_location): ...this, converting param from a
source_range * to a location_t *. Call
get_source_location_for_substring rather than
get_source_range_for_substring, and pass in m_caret_idx.
* c-common.h (substring_loc::substring_loc): Add param "caret_idx".
(substring_loc::get_range): Replace with...
(substring_loc::get_location): ...this.
(substring_loc::set_caret_index): New method.
(substring_loc): Add field m_caret_idx.
* c-format.c (format_warning_va): Update for above changes.
Rename local "substring_loc" to "fmt_substring_loc" to avoid
clashing with type name.
(format_warning_at_char): Add caret_idx param to substring_loc ctor.
(check_argument_type): Likewise.
(format_type_warning): Rename param "fmt_loc" to "whole_fmt_loc"
Use a copy when emitting warnings, setting the caret index from TYPE.
2016-08-16 Eric Botcazou <>
Arnaud Charlet <>
* c-ada-spec.c (dump_number): New function.
(handle_escape_character): Likewise.
(print_ada_macros): Add handling of constant integers and strings.
2016-08-12 Marek Polacek <>
PR c/7652
* c-common.c (scalar_to_vector): Adjust fall through comment.
* c-opts.c (c_common_handle_option): Likewise.
* c-pragma.c (handle_pragma_pack): Add FALLTHRU.
* c-pretty-print.c (c_pretty_printer::postfix_expression): Adjust
fall through comment.
* cilk.c (extract_free_variables): Add FALLTHRU.
2016-08-10 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.
2016-08-09 Jason Merrill <>
* c-common.c (c_common_attribute_table): vector_size affects type
2016-08-09 Marek Polacek <>
PR c/7652
* c-ada-spec.c (dump_generic_ada_node): Add return.
2016-08-09 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_constexpr for
C++17 constexpr lambdas.
2016-08-08 David Malcolm <>
PR c/64955
* c-common.h (selftest::c_format_c_tests): New declaration.
(selftest::run_c_tests): New declaration.
* c-format.c: Include "selftest.h.
(format_warning_va): Add param "corrected_substring" and use
it to add a replacement fix-it hint.
(format_warning_at_substring): Likewise.
(format_warning_at_char): Update for new param of
(argument_parser::check_argument_type): Pass "fki" to
(check_format_types): Add param "fki" and pass it to
(deref_n_times): New function.
(get_modifier_for_format_len): New function.
(selftest::test_get_modifier_for_format_len): New function.
(get_format_for_type): New function.
(format_type_warning): Add param "fki" and use it to attempt
to provide hints for argument types when calling
(selftest::get_info): New function.
(selftest::assert_format_for_type_streq): New function.
(selftest::test_get_format_for_type_printf): New function.
(selftest::test_get_format_for_type_scanf): New function.
(selftest::c_format_c_tests): New function.
2016-08-08 David Malcolm <>
PR c/52952
* c-format.c: Include "diagnostic.h".
(location_column_from_byte_offset): Delete.
(location_from_offset): Delete.
(format_warning_va): New function.
(format_warning_at_substring): New function.
(format_warning_at_char): New function.
(check_format_arg): Capture location of format_tree and pass to
(argument_parser): Add fields "start_of_this_format" and
(flag_chars_t::validate): Add param "format_string_cst". Convert
warning_at call using location_from_offset to call to
(argument_parser::argument_parser): Add param "format_string_cst_"
and use use it to initialize field "format_string_cst".
Initialize new field "start_of_this_format".
(argument_parser::read_format_flags): Convert warning_at call
using location_from_offset to a call to format_warning_at_char.
(argument_parser::read_any_format_left_precision): Likewise.
(argument_parser::read_any_format_precision): Likewise.
(argument_parser::read_any_other_modifier): Likewise.
(argument_parser::find_format_char_info): Likewise, in three places.
(argument_parser::parse_any_scan_set): Likewise, in one place.
(argument_parser::handle_conversions): Likewise, in two places.
(argument_parser::check_argument_type): Add param "fmt_param_loc"
and use it to make a substring_loc. Pass the latter to
(check_format_info_main): Add params "fmt_param_loc" and
"format_string_cst". Convert warning_at calls using
location_from_offset to calls to format_warning_at_char. Pass the
new params to the arg_parser ctor. Pass "format_string_cst" to
flag_chars.validate. Pass "fmt_param_loc" to
(check_format_types): Convert first param from a location_t
to a const substring_loc & and rename to "fmt_loc". Attempt
to extract the range of the relevant parameter and pass it
to format_type_warning.
(format_type_warning): Convert first param from a location_t
to a const substring_loc & and rename to "fmt_loc". Add
params "param_range" and "type". Replace calls to warning_at
with calls to format_warning_at_substring.
2016-08-08 David Malcolm <>
* c-format.c (class flag_chars_t): New class.
(struct length_modifier): New struct.
(class argument_parser): New class.
(flag_chars_t::flag_chars_t): New ctor.
(flag_chars_t::has_char_p): New method.
(flag_chars_t::add_char): New method.
(flag_chars_t::validate): New method.
(flag_chars_t::get_alloc_flag): New method.
(flag_chars_t::assignment_suppression_p): New method.
(argument_parser::argument_parser): New ctor.
(argument_parser::read_any_dollar): New method.
(argument_parser::read_format_flags): New method.
(argument_parser::read_any_format_width): New method.
(argument_parser::read_any_format_left_precision): New method.
(argument_parser::read_any_format_precision): New method.
(argument_parser::handle_alloc_chars): New method.
(argument_parser::read_any_length_modifier): New method.
(argument_parser::read_any_other_modifier): New method.
(argument_parser::find_format_char_info): New method.
(argument_parser::validate_flag_pairs): New method.
(argument_parser::give_y2k_warnings): New method.
(argument_parser::parse_any_scan_set): New method.
(argument_parser::handle_conversions): New method.
(argument_parser::check_argument_type): New method.
(check_format_info_main): Introduce classes argument_parser
and flag_chars_t, moving the code within the loop into methods
of these classes. Make various locals "const".
2016-08-05 David Malcolm <>
* c-common.c: Include "substring-locations.h".
(get_cpp_ttype_from_string_type): New function.
(g_string_concat_db): New global.
(substring_loc::get_range): New method.
* c-common.h (g_string_concat_db): New declaration.
(class substring_loc): New class.
* c-lex.c (lex_string): When concatenating strings, capture the
locations of all tokens using a new obstack, and record the
concatenation locations within g_string_concat_db.
* c-opts.c (c_common_init_options): Construct g_string_concat_db
on the ggc-heap.
2016-07-29 Marek Polacek <>
PR c/71926
* c-common.c (c_common_truthvalue_conversion): Use LOCATION for the
parentheses warning.
PR c/71574
* c-common.c (handle_alloc_align_attribute): Also check FUNCTION_DECL.
2016-07-28 Martin Liska <>
PR gcov-profile/68025
* c-common.c (handle_no_profile_instrument_function_attribute):
2016-07-27 Bernd Edlinger <>
* c-common.c (check_user_alignment): Use LOG2_BITS_PER_UNIT instead of
2016-07-25 Jason Merrill <>
PR c++/65970
* c.opt (fconstexpr-loop-limit): New.
2016-07-22 Martin Sebor <>
PR c++/71675
* c-common.c (resolve_overloaded_builtin): Avoid converting
__atomic_compare_exchange_n return type to that of what its
first argument points to.
2016-07-22 Uros Bizjak <>
* c-common.c: Use HOST_WIDE_INT_M1U instead of
~(unsigned HOST_WIDE_INT) 0.
2016-07-22 Martin Liska <>
PR gcov-profile/69028
PR gcov-profile/62047
* cilk.c (create_cilk_helper_decl): Set location of a new decl
to the current_function_decl.
2016-07-21 Jason Merrill <>
PR c++/65168
* c-common.c (c_common_truthvalue_conversion): Check
c_inhibit_evaluation_warnings for warning about address of
2016-07-20 David Malcolm <>
* c-common.h (lookup_name_fuzzy): Convert return type from tree to
const char *.
2016-07-15 Jason Merrill <>
* c-opts.c (c_common_post_options): Update -fabi-version default to 11.
2016-07-15 Jakub Jelinek <>
PR c/71858
* c-common.h (enum lookup_name_fuzzy_kind): Add
2016-07-08 Jason Merrill <>
P0145: Refining Expression Order for C++.
* c.opts (-fargs-in-order): Rename to -fstrong-eval-order.
* c-opts.c: Adjust.
2016-07-05 Markus Trippelsdorf <>
PR c++/71214
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_rvalue_references.
2016-06-29 Thomas Schwinge <>
* c-pragma.h (enum pragma_kind): Rename
2016-06-29 Richard Biener <>
PR middle-end/71002
* c-common.c (c_common_get_alias_set): Remove union type punning case.
2016-06-24 Jason Merrill <>
P0145R2: Refining Expression Order for C++.
* c-common.c (verify_tree) [COMPOUND_EXPR]: Fix handling on LHS of
2016-06-24 Jakub Jelinek <>
* c-common.c (check_builtin_function_arguments): Require last
argument of BUILT_IN_*_OVERFLOW_P to have INTEGER_TYPE type.
Adjust wording of diagnostics for BUILT_IN_*_OVERLFLOW
if the last argument is pointer to enumerated or boolean type.
2016-06-22 David Malcolm <>
PR c/70339
* c-common.h (enum lookup_name_fuzzy_kind): New enum.
(lookup_name_fuzzy): New prototype.
2016-06-21 John David Anglin <>
* c-common.c (get_source_date_epoch): Use int64_t instead of long long.
2016-06-14 Jason Merrill <>
P0145R2: Refining Expression Order for C++.
* c.opt (fargs-in-order): New.
* c-opts.c (c_common_post_options): Adjust flag_args_in_order.
2016-06-13 Jakub Jelinek <>
PR sanitizer/71498
* c-gimplify.c (ubsan_walk_array_refs_r): Set *walk_subtrees = 0 on
all BIND_EXPRs, and on all BIND_EXPRs recurse also on BIND_EXPR_BODY.
PR preprocessor/71183
* c-ppoutput.c (init_pp_output): Set cb->get_source_date_epoch
to cb_get_source_date_epoch.
2016-06-10 Jakub Jelinek <>
PR c/68657
* c.opt (Wpsabi): Add Warning flag.
2016-06-10 Martin Sebor <>
PR c/71392
* gcc/c-family/c-common.c (handle_nonnull_attribute): Accept
the nonnull attribute in type-generic builtins.
2016-06-09 Martin Sebor <>
PR c/70883
* c-common.c (builtin_function_validate_nargs): Make text of error
message consistent with others like it.
2016-06-08 Martin Sebor <>
Jakub Jelinek <>
PR c++/70507
PR c/68120
* c-common.c (check_builtin_function_arguments): Handle
2016-06-08 Richard Biener <>
* c-common.c (parse_optimize_options): Improve diagnostic messages.
2016-06-07 Richard Biener <>
PR c/61564
* c-common.c (parse_optimize_options): Only apply CL_OPTIMIZATION
options and warn about others.
2016-06-01 Eduard Sanou <>
* c-common.c (get_source_date_epoch): Rename to
* c-common.c (cb_get_source_date_epoch): Use a single generic erorr
message when the parsing fails. Use error_at instead of fatal_error.
* c-common.h (get_source_date_epoch): Rename to
* c-common.h (cb_get_source_date_epoch): Prototype.
* c-common.h (MAX_SOURCE_DATE_EPOCH): Define.
* c-common.h (c_omp_region_type): Remove trailing comma.
* c-lex.c (init_c_lex): Set cb->get_source_date_epoch callback.
* c-lex.c (c_lex_with_flags): Remove initialization of
2016-05-30 Jakub Jelinek <>
PR c++/71349
* c-omp.c (c_omp_split_clauses): Put OMP_CLAUSE_DEPEND to
C_OMP_CLAUSE_SPLIT_TARGET if combined with target construct,
2016-05-24 Richard Biener <>
PR middle-end/70434
PR c/69504
* c-common.h (convert_vector_to_pointer_for_subscript): Rename to ...
(convert_vector_to_array_for_subscript): ... this.
* c-common.c (convert_vector_to_pointer_for_subscript): Use a
VIEW_CONVERT_EXPR to an array type. Rename to ...
(convert_vector_to_array_for_subscript): ... this.
2016-05-12 Marek Polacek <>
PR c/70756
* c-common.c (pointer_int_sum): Call size_in_bytes_loc instead of
size_in_bytes and pass LOC to it.
2016-05-11 Mikhail Maltsev <>
PR c/43651
* c.opt (Wduplicate-decl-specifier): New option.
2016-05-11 Marek Polacek <>
PR c++/71024
* c-common.c (diagnose_mismatched_attributes): New function.
* c-common.h (diagnose_mismatched_attributes): Declare.
2016-05-04 Marek Polacek <>
* c.opt (Wdangling-else): New option.
2016-05-03 Marek Polacek <>
PR c/70859
* c-common.c (builtin_function_validate_nargs): Add location
parameter. Use it.
(check_builtin_function_arguments): Add location and arguments
parameters. Use them.
* c-common.h (check_builtin_function_arguments): Update declaration.
2016-05-03 Richard Biener <>
* cilk.c (cilk_gimplify_call_params_in_spawned_fn): Do not
allow call args to gimplify to SSA names.
2016-05-03 Marek Polacek <>
* c-common.h (enum c_omp_region_type): Remove stray comma.
2016-05-02 Cesar Philippidis <>
* c-common.h (enum c_omp_region_type): Define.
2016-05-02 Richard Sandiford <>
* c-common.c (shorten_compare): Use wi::to_wide.
2016-04-29 Cesar Philippidis <>
PR middle-end/70626
* c-common.h (c_oacc_split_loop_clauses): Add boolean argument.
* c-omp.c (c_oacc_split_loop_clauses): Use it to duplicate
reduction clauses in acc parallel loops.
2016-04-29 Marek Polacek <>
PR c/70852
* c-common.c (warn_for_memset): Check domain before accessing it.
2016-04-29 Dominik Vogt <>
* c-common.c (handle_aligned_attribute): Allow 0 as an argument to the
"aligned" attribute.
2016-04-28 Jason Merrill <>
* c-lex.c (c_common_has_attribute): Handle nodiscard.
2016-04-28 Eduard Sanou <>
Matthias Klose <>
* c-common.c (get_source_date_epoch): New function, gets the environment
variable SOURCE_DATE_EPOCH and parses it as long long with error
* c-common.h (get_source_date_epoch): Prototype.
* c-lex.c (c_lex_with_flags): set parse_in->source_date_epoch.
2015-04-27 Ryan Burn <>
PR c++/69024
PR c++/68997
* cilk.c (cilk_ignorable_spawn_rhs_op): Change to external linkage.
(cilk_recognize_spawn): Renamed from recognize_spawn and change to
external linkage.
(cilk_detect_and_unwrap): Corresponding changes.
(extract_free_variables): Don't extract free variables from
* c-common.h (cilk_ignorable_spawn_rhs_op): Prototype.
(cilk_recognize_spawn): Likewise.
2016-04-27 Bernd Schmidt <>
* c.opt (Wmemset-elt-size): New option.
* c-common.c (warn_for_memset): New function.
* c-common.h (warn_for_memset): Declare.
2016-04-25 Jason Merrill <>
* c-common.c (handle_unused_attribute): Accept CONST_DECL.
No longer static.
* c-common.h: Declare it.
* c-lex.c (c_common_has_attribute): Add maybe_unused.
2016-04-22 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_range_based_for.
2016-04-20 Ilya Verbin <>
PR c++/69363
* c-cilkplus.c (c_finish_cilk_clauses): Remove function.
* c-common.h (c_finish_cilk_clauses): Remove declaration.
2016-04-18 Michael Matz <>
* c-common.c (handle_aligned_attribute): Use SET_TYPE_ALIGN
2016-04-17 Eric Botcazou <>
* c-ada-spec.c (get_underlying_decl): Return the typedef, if any.
(dump_generic_ada_node) <POINTER_TYPE>: Clean up handling of access
to incomplete types.
(dump_nested_type): Remove redundant tests and tidy up.
(print_ada_declaration): Also set TREE_VISITED on the declaration of
a type which is the typedef of an original type.
2016-04-15 Marek Polacek <>
PR c/70651
* c-common.c (build_va_arg): Change two asserts into errors and return
2016-04-13 Marek Polacek <>
PR c++/70639
* c-indentation.c (should_warn_for_misleading_indentation): Bail out
for switch statements, too.
2016-03-28 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_range_based_for.
2016-03-23 Marek Polacek <>
PR c++/69884
* c.opt (Wignored-attributes): New option.
2016-03-22 David Malcolm <>
PR c/69993
* c-indentation.c (warn_for_misleading_indentation): Rewrite the
diagnostic text, reversing the order of the warning and note so
that they appear in source order.
2016-03-17 Marek Polacek <>
PR c/69407
* c-common.c (resolve_overloaded_builtin): Set TREE_USED for the fetch
2016-03-14 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Set __cpp_hex_float.
* c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_range_based_for.
2016-03-09 Richard Biener <>
PR c/70143
* c-common.c (strict_aliasing_warning): Add back
alias_sets_conflict_p check.
2016-03-08 Jason Merrill <>
* c-opts.c (set_std_cxx1z): Don't enable concepts.
2016-03-04 David Malcolm <>
PR c/68187
* c-indentation.c (get_visual_column): Move code to determine next
tab stop to...
(next_tab_stop): ...this new function.
(line_contains_hash_if): Delete function.
(detect_preprocessor_logic): Delete function.
(get_first_nws_vis_column): New function.
(detect_intervening_unindent): New function.
(should_warn_for_misleading_indentation): Replace call to
detect_preprocessor_logic with a call to
2016-03-04 David Malcolm <>
PR c/68187
* c-indentation.c (should_warn_for_misleading_indentation): When
suppressing warnings about cases where the guard and body are on
the same column, only use the first non-whitespace column in place
of the guard token column when dealing with "else" clauses.
When rejecting aligned BODY and NEXT, loosen the requirement
from equality with the first non-whitespace of guard to simply
that they not be indented relative to it.
2016-03-04 Richard Biener <>
PR c++/70054
* c-common.c (strict_aliasing_warning): Use alias_set_subset_of
instead of alias_sets_conflict_p.
2016-03-01 Marek Polacek <>
PR c++/69795
* c-common.c (reject_gcc_builtin): Check for FUNCTION_DECL rather than
any DECL.
2016-02-22 Martin Sebor <>
PR middle-end/69780
* c-common.c (check_builtin_function_arguments): Validate and
reject invalid arguments to __builtin_alloca_with_align.
2016-02-20 Mark Wielaard <>
PR c/28901
* c.opt (Wunused-const-variable): Turn into Alias for...
(Wunused-const-variable=): New option.
2016-02-19 Bernd Edlinger <>
PR c++/69865
* c-opts.c (c_common_post_options): Move call to set_std_cxx14 from
(c_common_init_options): here.
(set_std_cxx98): Initialize flag_isoc94 and flag_isoc99.
2016-02-19 Jakub Jelinek <>
PR c++/69826
* c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_GRAINSIZE.
(init_pragma): Register PRAGMA_CILK_GRAINSIZE even for
2016-02-16 Jakub Jelinek <>
PR c/69835
* c.opt (Wnonnull-compare): Enable for -Wall.
2016-02-15 Jakub Jelinek <>
PR c++/69797
* c-common.c (sync_resolve_size): Diagnose too few arguments
even when params is non-NULL empty vector.
2016-02-08 Bernd Schmidt <>
PR target/60410
* c.opt (fshort-double): Remove.
2016-02-05 Martin Sebor <>
PR c++/69662
* c.opt (Warning options): Update -Wplacement-new to take
an optional argument.
2016-02-01 Jakub Jelinek <>
PR preprocessor/69543
PR c/69558
* c-pragma.c (handle_pragma_diagnostic): Pass input_location
instead of loc to control_warning_option.
2016-02-01 Nathan Sidwell <>
* c.opt (fopenacc-dim=): New option.
2016-01-27 Ryan Burn <>
PR cilkplus/69267
* cilk.c (cilk_gimplify_call_params_in_spawned_fn): Change to use
gimplify_arg. Removed superfluous post_p argument.
* c-family.h (cilk_gimplify_call_params_in_spawned_fn): Removed
superfluous post_p argument.
* c-gimplify.c (c_gimplify_expr): Likewise.
2016-01-26 David Malcolm <>
PR other/69006
* c-opts.c (c_diagnostic_finalizer): Replace invocation of
pp_newline_and_flush with pp_flush.
2016-01-20 Martin Sebor <>
PR c/69405
* c-common.c (sync_resolve_size): Avoid printing diagnostic about
an incompatible argument when the argument isn't a valid tree node.
2016-01-18 Jason Merrill <>
PR c++/68767
* c-common.c (check_function_arguments_recurse): Fold the whole
COND_EXPR, not just the condition.
2016-01-18 Tom de Vries <>
* c-omp.c (c_oacc_split_loop_clauses): Don't copy OMP_CLAUSE_REDUCTION,
classify as loop clause.
2016-01-15 Jakub Jelinek <>
PR bootstrap/68271
* c-pragma.c (c_register_pragma_1): Adjust comment to note that
C++ FE no longer has limit on number of pragmas.
2015-01-14 Ryan Burn <>
PR c++/69048
* cilk.c (create_cilk_wrapper_body): Call fold_build_cleanup_point_expr
to add missing cleanup point.
2016-01-14 David Malcolm <>
PR c++/68819
* c-indentation.c (get_visual_column): Add location_t param.
Handle the column number being zero by effectively disabling the
warning, with an "inform".
(should_warn_for_misleading_indentation): Add location_t argument
for all uses of get_visual_column.
2016-01-10 Patrick Palka <>
PR c++/69029
* c-indentation.c (should_warn_for_misleading_indentation):
Don't warn about do-while statements.
2016-01-07 Martin Sebor <>
PR c/68966
* c-common.c (sync_resolve_size): Reject first argument when it's
a pointer to _Bool.
2016-01-05 David Malcolm <>
PR c/69122
* c-indentation.c (get_visual_column): Remove default argument.
(should_warn_for_misleading_indentation): For the multiline case,
update call to get_visual_column for next_stmt_exploc so that it
captures the location of the first non-whitespace character in the
relevant line. Don't issue warnings if there is non-whitespace
before the next statement.
2016-01-04 Jakub Jelinek <>
Update copyright years.
2015-12-21 David Malcolm <>
* c-common.c (binary_op_error): Convert first param from
location_t to rich_location * and use it when emitting an error.
* c-common.h (binary_op_error): Convert first param from
location_t to rich_location *.
2015-12-16 David Malcolm <>
* c-common.h (conflict_marker_get_final_tok_kind): New prototype.
* c-lex.c (conflict_marker_get_final_tok_kind): New function.
2015-12-15 Ilya Verbin <>
* c-common.c (c_common_attribute_table): Handle "omp declare target
link" attribute.
2015-12-14 Jakub Jelinek <>
PR c/68833
* c.opt (Wmissing-format-attribute, Wnormalized): Add Warning option.
2014-12-12 Tobias Burnus <>
PR fortran/68815
* c-format.c (gcc_gfc_char_table): Add 'q' flag to remaining
specifiers (%d, %i,%u and %c).
2015-12-10 David Malcolm <>
* c.opt (Wmisleading-indentation): Add to -Wall for C and C++.
2015-12-08 Jakub Jelinek <>
PR c/48088
PR c/68657
* c.opt (Wfloat-conversion, Wsign-conversion): Add Warning.
* c-pragma.c (handle_pragma_diagnostic): Adjust
control_warning_option caller.
2015-12-07 David Malcolm <>
* c-common.c (c_cpp_error): Update for change to
2015-12-04 Paolo Bonzini <>
* c-common.c (maybe_warn_shift_overflow): Warn on all overflows if
shifting 1 out of the sign bit.
2015-12-04 Kirill Yukhin <>
* c-common.c (c_common_attribute_table[]): Update max arguments
count for "simd" attribute.
(handle_simd_attribute): Parse "notinbranch" and "inbranch" arguments.
2015-12-03 Jakub Jelinek <>
PR preprocessor/57580
* c-ppoutput.c (print): Change printed field to bool.
Move src_file last for smaller padding.
(init_pp_output): Set print.printed to false instead of 0.
(scan_translation_unit): Fix up formatting. Set print.printed
to true after printing something other than newline.
(scan_translation_unit_trad): Set print.printed to true instead of 1.
(maybe_print_line_1): Set print.printed to false instead of 0.
(print_line_1): Likewise.
(do_line_change): Set print.printed to true instead of 1.
(cb_define, dump_queued_macros, cb_include, cb_def_pragma,
dump_macro): Set print.printed to false after printing newline.
2015-12-02 Jason Merrill <>
* c-common.c (fold_for_warn): New.
(warn_logical_operator, warn_tautological_cmp)
(check_function_arguments_recurse, maybe_warn_bool_compare): Use it.
* c-common.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
(c_fully_fold_internal, decl_constant_value_for_optimization):
Move to c/c-fold.c.
* c-common.h: Don't declare decl_constant_value_for_optimization.
2015-12-02 Joseph Myers <>
PR c/68162
* c-common.h (c_build_qualified_type): Add extra default
2015-12-01 Julian Brown <>
Cesar Philippidis <>
James Norris <>
* c-pragma.c (oacc_pragmas): Add PRAGMA_OACC_HOST_DATA.
* c-pragma.h (pragma_kind): Add PRAGMA_OACC_HOST_DATA.
(pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_USE_DEVICE.
2015-11-30 Eric Botcazou <>
* c-ada-spec.c (print_ada_macros): Remove redundant blank line.
(decl_sloc_common): Delete and move bulk of processing to...
(pp_ada_tree_identifier): Remove reference to QUAL_UNION_TYPE.
(dump_ada_double_name): Remove S parameter and compute the suffix.
(dump_ada_array_type): Add PARENT parameter. Simplify computation of
element type and deal with an anonymous one.
(dump_ada_template): Use RECORD_OR_UNION_TYPE_P macro.
(dump_generic_ada_node): Tweak. Adjust call to dump_ada_array_type
and remove reference to QUAL_UNION_TYPE.
(dump_nested_types): Make 2 passes on the fields and move bulk to...
(dump_nested_type): New function extracted from above.
Generate a full declaration for anonymous element type of arrays.
(print_ada_declaration): Really skip anonymous declarations. Remove
references to QUAL_UNION_TYPE. Adjust call to dump_ada_array_type.
Clean up processing of declarations of array types and objects.
(print_ada_struct_decl): Remove reference to QUAL_UNION_TYPE.
Remove obsolete code and tidy up.
2015-11-29 Jan Hubicka <>
PR c/67581
* c-common.c (handle_transparent_union_attribute): Update
also type variants.
2015-11-27 Martin Liska <>
PR c++/68312
* array-notation-common.c (cilkplus_extract_an_triplets):
Release vector of vectors.
* cilk.c (gimplify_cilk_spawn): Free allocated memory.
2015-11-26 Eric Botcazou <>
PR c++/68527
* c-ada-spec.c (dump_nested_types): Add guard for error_mark_node.
(print_ada_struct_decl): Likewise.
2015-11-23 Igor Zamyatin <>
PR c++/68001
* c-gimplify.c (c_gimplify_expr): Stop the process if see an error.
* cilk.c (recognize_spawn): Determine location in a more precise
2015-11-19 Jason Merrill <>
* c-common.c (shorten_compare): But look through macros from
system headers.
2015-11-18 Jason Merrill <>
* c-common.c (shorten_compare): Don't -Wtype-limits if the
non-constant operand comes from a macro.
2015-11-17 Jason Merrill <>
PR bootstrap/68346
* c-common.c (warn_tautological_cmp): Fold before checking for
2015-11-16 Marek Polacek <>
PR c++/68362
* c-common.c (check_case_bounds): Fold low and high cases.
2015-11-16 Marek Polacek <>
* c-ada-spec.c (dump_ada_template): Use RECORD_OR_UNION_TYPE_P.
* c-common.c (c_common_get_alias_set): Likewise.
(handle_visibility_attribute): Likewise.
2015-11-16 Kirill Yukhin <>
* c-common.c (handle_simd_attribute): New.
(struct attribute_spec): Add entry for "simd".
(handle_simd_attribute): New.
2015-11-13 Kai Tietz <>
* c-lex.c (interpret_float): Use fold_convert.
2015-11-13 David Malcolm <>
* c-common.c (c_fully_fold_internal): Capture existing souce_range,
and store it on the result.
* c-opts.c (c_common_init_options): Set
2015-11-12 James Norris <>
Joseph Myers <>
* c-pragma.c (oacc_pragmas): Add entry for declare directive.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_DECLARE.
(enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT and
2015-11-11 Marek Polacek <>
PR c/68107
PR c++/68266
* c-common.c (valid_array_size_p): New function.
* c-common.h (valid_array_size_p): Declare.
2015-11-11 Dominique d'Humieres <>
PR bootstrap/68271
* c-pragma.c (c_register_pragma_1): Update the gcc_assert to 256.
2015-11-11 Andrew MacLeod <>
* array-notation-common.c: Remove unused header files.
* c-ada-spec.c: Likewise.
* c-cilkplus.c: Likewise.
* c-common.c: Likewise.
* c-cppbuiltin.c: Likewise.
* c-dump.c: Likewise.
* c-format.c: Likewise.
* c-gimplify.c: Likewise.
* c-indentation.c: Likewise.
* c-lex.c: Likewise.
* c-omp.c: Likewise.
* c-opts.c: Likewise.
* c-pch.c: Likewise.
* c-ppoutput.c: Likewise.
* c-pragma.c: Likewise.
* c-pretty-print.c: Likewise.
* c-semantics.c: Likewise.
* c-ubsan.c: Likewise.
* cilk.c: Likewise.
* stub-objc.c: Likewise.
2015-11-09 Thomas Schwinge <>
Cesar Philippidis <>
James Norris <>
Julian Brown <>
Nathan Sidwell <>
* c-pragma.c (oacc_pragmas): Add "routine".
* c-pragma.h (pragma_kind): Add PRAGMA_OACC_ROUTINE.
2015-11-08 Eric Botcazou <>
* c-common.c (c_common_attributes): Add scalar_storage_order.
(handle_scalar_storage_order_attribute): New function.
* c-pragma.c (global_sso): New variable.
(maybe_apply_pragma_scalar_storage_order): New function.
(handle_pragma_scalar_storage_order): Likewise.
(init_pragma): Register scalar_storage_order.
* c-pragma.h (maybe_apply_pragma_scalar_storage_order): Declare.
* c.opt (Wscalar-storage-order): New warning.
(fsso-struct=): New option.
2015-11-08 Martin Sebor <>
* c.opt (Wplacement-new): Add a period to the end of a sentence.
2015-11-07 Richard Sandiford <>
* c-common.c: Don't undef DEF_BUILTIN.
2015-11-06 David Malcolm <>
* c-common.c (c_cpp_error): Convert parameter from location_t to
rich_location *. Eliminate the "column_override" parameter and
the call to diagnostic_override_column.
Update the "done_lexing" clause to set range 0
on the rich_location, rather than overwriting a location_t.
* c-common.h (c_cpp_error): Convert parameter from location_t to
rich_location *. Eliminate the "column_override" parameter.
2015-11-05 Cesar Philippidis <>
Thomas Schwinge <>
James Norris <>
* c-omp.c (c_oacc_split_loop_clauses): Make TILE, GANG, WORKER, VECTOR,
clauses with parallel and kernels and loops.
* c-pragma.h (enum pragma_omp_clause): Add entries for
* pt.c (tsubst_omp_clauses): Add support for OMP_CLAUSE_{NUM_GANGS,
(tsubst_expr): Add support for OMP_CLAUSE_{KERNELS,PARALLEL,LOOP}.
2015-11-05 Martin Sebor <>
PR c++/67942
* c.opt (-Wplacement-new): New option.
2015-11-05 Jakub Jelinek <>
* c-common.h (c_finish_omp_atomic): Add TEST argument.
(c_omp_check_loop_iv, c_omp_check_loop_iv_exprs): New prototypes.
* c-omp.c (c_finish_omp_atomic): Add TEST argument. Don't call
save_expr or create_tmp_var* if TEST is true.
(c_finish_omp_for): Store OMP_FOR_ORIG_DECLS always.
Don't call add_stmt here.
(struct c_omp_check_loop_iv_data): New type.
(c_omp_check_loop_iv_r, c_omp_check_loop_iv,
c_omp_check_loop_iv_exprs): New functions.
(c_omp_split_clauses): Adjust for lastprivate being allowed on
(c_omp_declare_simd_clauses_to_numbers): Change
(c_omp_declare_simd_clauses_to_decls): Similarly change those
from numbers to PARM_DECLs.
2015-11-04 Mikhail Maltsev <>
* c-omp.c (c_omp_split_clauses): Remove conditional compilation. Use
2015-11-03 Bernd Schmidt <>
PR c++-common/67882
* c-common.h (fold_offsetof_1): Add argument.
* c-common.c (fold_offsetof_1): Diagnose more invalid
offsetof expressions that reference elements past the end of
an array.
2015-11-03 Thomas Schwinge <>
Chung-Lin Tang <>
* c-pragma.c (oacc_pragmas): Add "atomic".
* c-pragma.h (pragma_kind): Add PRAGMA_OACC_ATOMIC.
2015-10-30 Evgeny Stupachenko <>
* c-common.c (handle_target_clones_attribute): New.
(c_common_attribute_table): Add handle_target_clones_attribute.
(handle_always_inline_attribute): Add check on target_clones attribute.
(handle_target_attribute): Ditto.
2015-10-29 Andrew MacLeod <>
* array-notation-common.c: Reorder #include's and remove duplicates.
* c-ada-spec.c: Likewise.
* c-cilkplus.c: Likewise.
* c-common.c: Likewise.
* c-cppbuiltin.c: Likewise.
* c-dump.c: Likewise.
* c-format.c: Likewise.
* c-gimplify.c: Likewise.
* c-indentation.c: Likewise.
* c-lex.c: Likewise.
* c-omp.c: Likewise.
* c-opts.c: Likewise.
* c-pch.c: Likewise.
* c-ppoutput.c: Likewise.
* c-pragma.c: Likewise.
* c-pretty-print.c: Likewise.
* c-semantics.c: Likewise.
* c-ubsan.c: Likewise.
* cilk.c: Likewise.
* stub-objc.c: Likewise.
2015-10-28 Jason Merrill <>
* c-common.c (pointer_int_sum): Fold the MULT_EXPR.
2015-10-27 Thomas Schwinge <>
James Norris <>
Cesar Philippidis <>
PR c/64765
PR c/64880
* c-common.h (c_oacc_split_loop_clauses): Declare function.
* c-omp.c (c_oacc_split_loop_clauses): New function.
2015-10-21 Martin Sebor <>
PR driver/68043
* c.opt: End each sentence that describes an option with a period.
2015-10-20 Marek Polacek <>
* array-notation-common.c (is_cilkplus_vector_p): Define.
* c-common.h (is_cilkplus_vector_p): Declare.
2015-10-20 Marek Polacek <>
* c.opt (std=gnu++11): Do not describe as experimental.
(std=gnu++14): Likewise.
2015-10-19 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Define
2015-10-19 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Define
__cpp_enumerator_attributes, __cpp_fold_expressions,
2015-10-13 Jakub Jelinek <>
Aldy Hernandez <>
* c-common.c (enum c_builtin_type): Define DEF_FUNCTION_TYPE_9,
(c_define_builtins): Likewise.
* c-common.h (enum c_omp_clause_split): Add
(c_finish_omp_critical, c_finish_omp_ordered): Add CLAUSES argument.
(c_finish_omp_for): Add ORIG_DECLV argument.
* c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP as
201511 instead of 201307.
* c-omp.c (c_finish_omp_critical): Add CLAUSES argument, set
(c_finish_omp_ordered): Add CLAUSES argument, set
(c_finish_omp_for): Add ORIG_DECLV argument, set OMP_FOR_ORIG_DECLS
to it if OMP_FOR. Clear DECL_INITIAL on the IVs.
(c_omp_split_clauses): Handle OpenMP 4.5 combined/composite
constructs and new OpenMP 4.5 clauses. Clear
OMP_CLAUSE_SCHEDULE_SIMD if not combined with OMP_SIMD. Add
verification code.
* c-pragma.c (omp_pragmas_simd): Add taskloop.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKLOOP.
(enum pragma_omp_clause): Add
2015-10-05 Richard Sandiford <>
* c-lex.c (interpret_float): Use real_equal instead of
2015-10-04 Jason Merrill <>
Implement N4514, C++ Extensions for Transactional Memory.
* c-common.c (c_common_reswords): Add C++ TM TS keywords.
(c_common_attribute_table): Add transaction_safe_dynamic.
transaction_safe now affects type identity.
(handle_tm_attribute): Handle transaction_safe_dynamic.
* c-common.h (enum rid): Add RID_ATOMIC_NOEXCEPT,
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_transactional_memory.
* c-pretty-print.c (pp_c_attributes_display): Don't print
transaction_safe in C++.
2015-10-02 Marek Polacek <>
* c.opt (Wduplicated-cond): Don't enable by -Wall anymore.
2015-10-02 Marek Polacek <>
PR c/64249
* c-common.c (warn_duplicated_cond_add_or_warn): New function.
* c-common.h (warn_duplicated_cond_add_or_warn): Declare.
* c.opt (Wduplicated-cond): New option.
2015-10-01 Joseph Myers <>
* c.opt (std=c11): Do not describe as experimental.
(std=gnu11): Likewise.
(std=iso9899:2011): Likewise.
2015-09-28 Nathan Sidwell <>
* c-common.c (DEF_FUNCTION_TYPE_VAR_6): New.
2015-09-25 Marek Polacek <>
* c-ubsan.c (ubsan_instrument_division): Remove unnecessary code.
(ubsan_instrument_shift): Likewise.
2015-09-25 Marek Polacek <>
PR sanitizer/64906
* c-ubsan.c (ubsan_instrument_division): Also pre-evaluate OP1.
2015-09-24 Patrick Palka <>
* c-indentation.c (should_warn_for_misleading_indentation):
Compare next_stmt_vis_column with guard_line_first_nws instead
of with guard_line_vis_column.
2015-09-23 Manuel López-Ibáñez <>
PR c/49654
PR c/49655
* c-pragma.c (handle_pragma_diagnostic): Detect non-warning
options and options not valid for the current language.
2015-09-22 Patrick Palka <>
* c-indentation.c (should_warn_for_misleading_indentation):
Float out and consolidate the calls to get_visual_column that
are passed guard_exploc as an argument. Compare
next_stmt_vis_column with guard_line_first_nws instead of with
2015-09-22 Nathan Sidwell <>
* c.opt (Wmultiple-inheritance, Wvirtual-inheritance, Wtemplates,
Wnamespaces): New C++ warnings.
2015-09-22 Jason Merrill <>
* c-common.h (abi_compat_version_crosses): New.
(warn_abi_version): Declare.
* c-common.c: Define it.
* c-opts.c (c_common_post_options): Handle it.
flag_abi_compat_version defaults to 8.
2015-09-21 Ville Voutilainen <>
Complete the implementation of N4230, Nested namespace definition.
* c-cppbuiltin.c: Add __cpp_namespace_attributes and
2015-09-18 Manuel López-Ibáñez <>
* c-pragma.c (handle_pragma_diagnostic): Fix wrong return.
2015-09-18 Manuel López-Ibáñez <>
* c-pragma.c (handle_pragma_diagnostic): Use explicit location
when warning.
* c-pragma.h (pragma_lex): Add optional loc argument.
2015-09-16 Mikhail Maltsev <>
* c-format.c (check_format_arg): Adjust to use common block size in all
object pools.
2015-09-15 David Malcolm <>
* c-format.c (location_from_offset): Update for change in
signature of location_get_source_line.
* c-indentation.c (get_visual_column): Likewise.
(line_contains_hash_if): Likewise.
2015-09-14 Marek Polacek <>
* c-opts.c (c_common_post_options): Set C++ standard earlier, before
setting various warnings.
2015-09-14 Marek Polacek <>
* c-common.c (warn_for_sign_compare): Cast to unsigned when shifting
a negative value.
2015-09-11 Mark Wielaard <>
PR c/28901
* c.opt (Wunused-variable): Option from common.opt.
(Wunused-const-variable): New option.
2015-09-09 Paolo Carlini <>
PR c++/53184
* c.opt ([Wsubobject-linkage]): Add.
2015-09-03 Martin Sebor <>
PR c/66516
* c-common.h (c_decl_implicit, reject_gcc_builtin): Declare new
* c-common.c (reject_gcc_builtin): Define.
2015-09-02 Balaji V. Iyer <>
PR middle-end/60586
* c-common.h (cilk_gimplify_call_params_in_spawned_fn): New
* c-gimplify.c (c_gimplify_expr): Added a call to the function
* cilk.c (cilk_gimplify_call_params_in_spawned_fn): New function.
(gimplify_cilk_spawn): Removed EXPR_STMT and CLEANUP_POINT_EXPR
2015-08-25 Marek Polacek <>
PR middle-end/67330
* c-common.c (handle_weak_attribute): Don't check whether the
visibility can be changed here.
2015-08-22 Manuel López-Ibáñez <>
* c-lex.c (c_lex_with_flags): Use explicit locations.
2015-08-18 Trevor Saunders <>
* c-ada-spec.h, c-common.c, c-common.h, c-format.c, c-format.h,
c-objc.h, c-ppoutput.c, c-pragma.c, c-pragma.h: Remove useless
2015-08-18 Francois-Xavier Coudert <>
PR middle-end/36757
* c-common.c (check_builtin_function_arguments): Add check
for BUILT_IN_SIGNBIT argument.
2015-08-18 Paolo Carlini <>
PR c++/67160
* c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_static_assert value
in c++1z mode.
2015-08-17 Marek Polacek <>
* c-pretty-print.c (pp_c_cv_qualifiers): Remove code dealing
with whitespaces before qualifier names.
2015-08-12 Marek Polacek <>
PR c++/55095
* c-common.c (maybe_warn_shift_overflow): Properly handle
left-shifting 1 into the sign bit.
2015-08-09 Manuel López-Ibáñez <>
* c.opt (Wchkp): Use LangEnabledBy instead of EnabledBy.
2015-08-06 Andrew Sutton <>
Braden Obrzut <>
Jason Merrill <>
Add C++ Concepts TS support.
* c-common.c (c_common_reswords): Add __is_same_as, concept, requires.
* c-common.h (enum rid): Add RID_IS_SAME_AS, RID_CONCEPT, RID_REQUIRES.
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_concepts.
* c-opts.c (set_std_cxx1z): Set flag_concepts.
* c.opt (fconcepts): New.
2015-08-02 Martin Sebor <>
* c.opt (-Wframe-address): New warning option.
2015-08-02 Patrick Palka <>
* c-indentation.c (should_warn_for_misleading_indentation):
Improve heuristics.
2015-08-02 Patrick Palka <>
* c-indentation.c (get_visual_column): Add parameter first_nws,
use it. Update comment documenting the function.
(is_first_nonwhitespace_on_line): Remove.
(should_warn_for_misleading_indentation): Replace usage of
of is_first_nonwhitespace_on_line with get_visual_column.
2015-08-02 Patrick Palka <>
* c-indentation.h (struct token_indent_info): Define.
(get_token_indent_info): Define.
(warn_for_misleading_information): Declare.
* c-common.h (warn_for_misleading_information): Remove.
* c-identation.c (warn_for_misleading_indentation):
Change declaration to take three token_indent_infos. Adjust
* c-identation.c (should_warn_for_misleading_indentation):
Likewise. Bail out early if the body is a compound statement.
(guard_tinfo_to_string): Define.
2015-07-30 Jason Merrill <>
* c-pretty-print.c (unary_expression) [INDIRECT_REF]: Don't print
'*' for reference decay.
2015-07-30 Marek Polacek <>
* c-common.c (warn_tautological_cmp): Bail for float types.
2015-07-27 Marek Polacek <>
PR bootstrap/67030
* c-common.c (warn_tautological_cmp): Don't warn for macro expansion.
2015-07-27 Marek Polacek <>
PR c++/66555
PR c/54979
* c-common.c (find_array_ref_with_const_idx_r): New function.
(warn_tautological_cmp): New function.
* c-common.h (warn_tautological_cmp): Declare.
* c.opt (Wtautological-compare): New option.
2015-07-23 Marek Polacek <>
* c-ubsan.c (ubsan_instrument_division): Use unshare_expr throughout.
(ubsan_instrument_shift): Likewise.
2015-07-23 Marek Polacek <>
PR sanitizer/66908
* c-ubsan.c: Include gimplify.h.
(ubsan_instrument_division): Unshare OP0 and OP1.
(ubsan_instrument_shift): Likewise.
2015-07-20 Marek Polacek <>
Richard Sandiford <>
PR c++/55095
* c-common.c (c_fully_fold_internal): Warn about left shift overflows.
(maybe_warn_shift_overflow): New function.
* c-common.h (maybe_warn_shift_overflow): Declare.
* c-opts.c (c_common_post_options): Set warn_shift_overflow.
* c.opt (Wshift-overflow): New option.
2015-07-16 Martin Liska <>
* c-format.c (static void check_format_info_main): Use
object_allocator instead of pool_allocator.
(check_format_arg): Likewise.
(check_format_info_main): Likewise.
2015-07-15 Andrew MacLeod <>
* c-opts.c: Remove multiline #include comment.
2015-07-12 Aldy Hernandez <>
* c-common.c: Fix double word typos.
2015-07-10 Eric Botcazou <>
* c-ada-spec.h (cpp_operation): Revert latest change.
* c-ada-spec.c (print_ada_declaration): Likewise. Skip implicit
constructors and destructors.
2015-07-09 Andrew MacLeod <>
* c-common.h: Adjust includes for flags.h changes.
* stub-objc.c: Likewise.
2015-07-08 Eric Botcazou <>
* c-ada-spec.h (cpp_operation): Add IS_CONSTEXPR.
* c-ada-spec.c (print_ada_declaration): Skip constexpr constructors.
2015-07-08 Jakub Jelinek <>
* c-omp.c (c_omp_declare_simd_clauses_to_numbers): If all clauses
are to be removed, return NULL rather than original clauses list.
2015-07-07 Andrew MacLeod <>
* array-notation-common.c: Adjust includes.
* c-ada-spec.c: Likewise.
* c-cilkplus.c: Likewise.
* c-common.h: Likewise.
* c-cppbuiltin.c: Likewise.
* c-dump.c: Likewise.
* c-format.c: Likewise.
* c-gimplify.c: Likewise.
* c-indentation.c: Likewise.
* c-lex.c: Likewise.
* c-omp.c: Likewise.
* c-opts.c: Likewise.
* c-pch.c: Likewise.
* c-ppoutput.c: Likewise.
* c-pragma.c: Likewise.
* c-pretty-print.c: Likewise.
* c-semantics.c: Likewise.
* c-ubsan.c: Likewise.
* cilk.c: Likewise.
* stub-objc.c: Likewise.
2015-07-07 Eric Botcazou <>
* c-ada-spec.h (cpp_operation): Add IS_MOVE_CONSTRUCTOR.
* c-ada-spec.c (print_ada_declaration): Skip move constructors.
2015-07-01 Jason Merrill <>
* c-common.h (D_CXX11): Rename from D_CXX0X.
(RID_FIRST_CXX11, RID_LAST_CXX11): Rename from *_CXX0X.
* c-common.c: Adjust.
* c-opts.c (c_common_post_options): Default to C++14.
* c-opts.c (c_common_post_options): Highest ABI level is now 10.
2015-06-30 Edward Smith-Rowland <>
Implement N4197 - Adding u8 character literals
* c-ada-spec.c (print_ada_macros): Treat CPP_UTF8CHAR like
* c-common.c (c_parse_error): Print CPP_UTF8CHAR and
* c-lex.c (c_lex_with_flags): Treat CPP_UTF8CHAR_USERDEF
and CPP_UTF8CHAR tokens.
(lex_charconst): Treat CPP_UTF8CHAR token.
2015-06-29 Manuel López-Ibáñez <>
PR fortran/66605
* c-common.c (do_warn_unused_parameter): Move here.
* c-common.h (do_warn_unused_parameter): Declare.
2015-06-29 Marek Polacek <>
PR c/66322
* c-common.c (check_case_bounds): Add bool * parameter. Set
(c_add_case_label): Add bool * parameter. Pass it down to
(c_do_switch_warnings): Add bool parameters. Implement -Wswitch-bool
warning here.
* c-common.h (c_add_case_label, c_do_switch_warnings): Update
2015-06-27 Marek Polacek <>
* c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P
or VECTOR_INTEGER_TYPE_P throughout.
* c-gimplify.c: Likewise.
2015-06-26 Marek Polacek <>
* array-notation-common.c (find_rank): Use INDIRECT_REF_P.
* c-common.c (c_fully_fold_internal): Likewise.
(c_alignof_expr): Likewise.
* c-pretty-print.c (c_pretty_printer::postfix_expression): Likewise.
* c-ubsan.c (ubsan_instrument_bounds): Likewise.
* cilk.c (create_parm_list): Likewise.
2015-06-26 Marek Polacek <>
* c-common.c (handle_unused_attribute): Use VAR_OR_FUNCTION_DECL_P.
2015-06-25 Andrew MacLeod <>
* c-common.c: Remove ipa-ref.h and plugin-api.h from include list.
* c-gimplify.c: Likewise.
* c-pragma.c: Likewise.
* c-ubsan.c: Likewise.
* cilk.c: Likewise.
2015-06-25 Richard Sandiford <>
* c-common.c (c_type_hasher): Inherit from ggc_ptr_hash rather than
2015-06-25 Andrew MacLeod <>
* cilk.c: Move calls.h after tm.h in the include chain.
2015-06-25 Marek Polacek <>
* array-notation-common.c: Use VAR_P throughout.
* c-ada-spec.c: Likewise.
* c-common.c: Likewise.
* c-format.c: Likewise.
* c-gimplify.c: Likewise.
* c-omp.c: Likewise.
* c-pragma.c: Likewise.
* c-pretty-print.c: Likewise.
* cilk.c: Likewise.
2015-06-25 Marek Polacek <>
* cilk.c (extract_free_variables): Use is_global_var.
2015-06-23 Richard Sandiford <>
* c-common.c: Don't include target-def.h.
2015-06-23 Marek Polacek <>
* c-common.c (warn_logical_operator): Use tree_int_cst_equal
when comparing INTEGER_CSTs.
2015-06-22 Pierre-Marie de Rodat <>
* c-ada-spec.h (cpp_operation): Add HAS_DEPENDENT_TEMPLATE_ARGS.
* c-ada-spec.c (collect_ada_nodes): Skip NAMESPACE_DECL
(dump_ada_template): Skip partially specialized types.
2015-06-22 Mikhail Maltsev <>
* c-common.c (scalar_to_vector): Use std::swap instead of manually
2015-06-17 Andrew MacLeod <>
* array-notation-common.c: Do not include input.h, line-map.h or is-a.h.
* c-ada-spec.c: Likewise.
* c-cilkplus.c: Likewise.
* c-common.c: Likewise.
* c-common.h: Likewise.
* c-cppbuiltin.c: Likewise.
* c-dump.c: Likewise.
* c-format.c: Likewise.
* c-gimplify.c: Likewise.
* c-indentation.c: Likewise.
* c-lex.c: Likewise.
* c-omp.c: Likewise.
* c-opts.c: Likewise.
* c-pch.c: Likewise.
* c-ppoutput.c: Likewise.
* c-pragma.c: Likewise.
* c-pretty-print.c: Likewise.
* c-semantics.c: Likewise.
* c-ubsan.c: Likewise.
* cilk.c: Likewise.
* stub-objc.c: Likewise.
2015-06-13 Patrick Palka <>
PR c++/65168
* c-common.c (c_common_truthvalue_conversion): Warn when
converting an address of a reference to a truth value.
2015-06-08 Andrew MacLeod <>
* array-notation-common.c : Adjust include files.
* c-ada-spec.c : Likewise.
* c-cilkplus.c : Likewise.
* c-common.c : Likewise.
* c-common.h : Likewise.
* c-cppbuiltin.c : Likewise.
* c-dump.c : Likewise.
* c-format.c : Likewise.
* c-gimplify.c : Likewise.
* c-indentation.c : Likewise.
* c-lex.c : Likewise.
* c-omp.c : Likewise.
* c-opts.c : Likewise.
* c-pch.c : Likewise.
* c-ppoutput.c : Likewise.
* c-pragma.c : Likewise.
* c-pretty-print.c : Likewise.
* c-semantics.c : Likewise.
* c-ubsan.c : Likewise.
* cilk.c : Likewise.
* stub-objc.c : Likewise.
2015-06-08 Marek Polacek <>
PR c/66415
* c-format.c (location_from_offset): Return LOC if LINE is null.
2015-06-05 Aldy Hernandez <>
* c-common.h (c_parse_final_cleanups): New prototype.
* c-opts.c (c_common_parse_file): Call c_parse_final_cleanups.
2015-06-04 Sriraman Tallam <>
* c-common.c (noplt): New attribute.
(handle_noplt_attribute): New handler.
2015-06-04 Andrew MacLeod <>
* array-notation-common.c: Adjust includes for restructured coretypes.h.
* c-ada-spec.c: Likewise.
* c-cilkplus.c: Likewise.
* c-common.c: Likewise.
* c-common.h: Likewise.
* c-cppbuiltin.c: Likewise.
* c-dump.c: Likewise.
* c-format.c: Likewise.
* c-gimplify.c: Likewise.
* c-indentation.c: Likewise.
* c-lex.c: Likewise.
* c-omp.c: Likewise.
* c-opts.c: Likewise.
* c-pch.c: Likewise.
* c-ppoutput.c: Likewise.
* c-pragma.c: Likewise.
* c-pretty-print.c: Likewise.
* c-semantics.c: Likewise.
* c-ubsan.c: Likewise.
* cilk.c: Likewise.
* stub-objc.c: Likewise.
2015-06-02 David Malcolm <>
PR c/66220:
* c-indentation.c (should_warn_for_misleading_indentation): Use
expand_location rather than expand_location_to_spelling_point.
Don't warn if the guarding statement is more indented than the
next/body stmts.
2015-06-02 David Malcolm <>
* c-indentation.c (warn_for_misleading_indentation): Bail out
immediately if -Wmisleading-indentation isn't enabled.
2015-06-01 Martin Liska <>
* c-format.c (check_format_arg):Use new type-based pool allocator.
(check_format_info_main) Likewise.
2015-05-31 Eric Botcazou <>
* c-ada-spec.c (is_tagged_type): Test for TYPE_METHODS on main variant.
(has_nontrivial_methods): Likewise.
2015-05-25 Marek Polacek <>
* c-ubsan.c (ubsan_instrument_shift): Use type0.
2015-05-22 Marek Polacek <>
PR c/47043
* c-common.c (handle_deprecated_attribute): Allow CONST_DECL.
2015-05-21 Trevor Saunders <>
* c-cppbuiltin.c (c_cpp_builtins): Use if instead of #if with
2015-05-21 Trevor Saunders <>
* c-cppbuiltin.c (c_cpp_builtins): Check the value of
STACK_GROWS_DOWNWARD rather than if it is defined.
2015-05-21 Manuel López-Ibáñez <>
PR c/52952
* c-format.c (location_column_from_byte_offset): New.
(location_from_offset): New.
(struct format_wanted_type): Add offset_loc field.
(check_format_info): Move handling of location for extra arguments
closer to the point of warning.
(check_format_info_main): Pass the result of location_from_offset
to warning_at.
(format_type_warning): Pass the result of location_from_offset
to warning_at.
2015-05-20 Marek Polacek <>
* c-omp.c (check_omp_for_incr_expr): Use BINARY_CLASS_P.
2015-05-20 Marek Polacek <>
* c-ada-spec.c (dump_sloc): Use DECL_P.
2015-05-20 Marek Polacek <>
* c-pragma.c: Use VAR_OR_FUNCTION_DECL_P throughout.
* c-common.c: Likewise.
2015-05-19 David Malcolm <>
* c-common.h (fe_file_change): Strengthen param from
const line_map * to const line_map_ordinary *.
(pp_file_change): Likewise.
* c-lex.c (fe_file_change): Likewise.
(cb_define): Use linemap_check_ordinary when invoking
(cb_undef): Likewise.
* c-opts.c (c_finish_options): Use linemap_check_ordinary when
invoking cb_file_change.
(c_finish_options): Likewise.
(push_command_line_include): Likewise.
(cb_file_change): Strengthen param "new_map" from
const line_map * to const line_map_ordinary *.
* c-ppoutput.c (cb_define): Likewise for local "map".
(pp_file_change): Likewise for param "map" and local "from".
2015-05-19 Mikhail Maltsev <>
* c-common.c (shorten_compare): Use std::swap instead of explicit swaps.
2015-05-18 Tom de Vries <>
* c-common.c (build_va_arg_1): New function.
(build_va_arg): Add address operator to va_list operand if necessary.
2015-05-15 Mikhail Maltsev <>
PR c/48956
* c-common.c (int_safely_convertible_to_real_p): Define.
(unsafe_conversion_p): Check conversions involving complex types.
(conversion_warning): Add new warning message for conversions which
discard imaginary component.
* c-common.h: (enum conversion_safety): Add new enumerator for such
2015-05-14 Marek Polacek <>
PR c/66066
PR c/66127
* c-common.c (c_fully_fold): Pass false down to c_fully_fold_internal.
(c_fully_fold_internal): Fold C_MAYBE_CONST_EXPRs with
use it. If FOR_INT_CONST, require that all evaluated operands be
2015-05-12 David Malcolm <>
* c-common.h (warn_for_misleading_indentation): New prototype.
* c-indentation.c: New file.
* c.opt (Wmisleading-indentation): New option.
2015-05-12 Tom de Vries <>
PR tree-optimization/66010
* c-common.c (build_va_arg): Don't mark ap addressable unless necessary.
2015-05-09 Jason Merrill <>
* c-opts.c (c_common_post_options): Also clear
* c-common.h (enum cxx_dialect): Add cxx_unset.
* c-common.c (cxx_dialect): Initialize to cxx_unset.
* c-opts.c (c_common_post_options): Set C++ dialect to C++98 if unset.
* c.opt (std=c++14): Remove Undocumented flag and experimental warning.
(std=gnu++0x): Mark as Undocumented.
(std=gnu++1y): Add deprecated message.
2015-05-08 Jason Merrill <>
* c.opt (Wc++11-compat): Make primary. Rename var warn_cxx11_compat.
* c-opts.c: Adjust.
* c.opt (Wc++0x-compat): Also set cpp_warn_cxx11_compat.
2015-05-08 Marek Polacek <>
PR c/64918
* c.opt (Woverride-init-side-effects): New option.
2015-05-07 Marek Polacek <>
PR c/65179
* c-common.c (c_fully_fold_internal): Warn when left shifting a
negative value.
* c.opt (Wshift-negative-value): New option.
* c-opts.c (c_common_post_options): Set warn_shift_negative_value
when -Wextra and C99/C++11 mode.
2015-05-07 Marek Polacek <>
Martin Uecker <>
* c-ubsan.c (ubsan_instrument_bounds): Don't skip instrumenting
flexible member array-like members if SANITIZE_BOUNDS_STRICT.
2015-05-05 Jason Merrill <>
* c.opt (Wterminate): New.
2015-04-30 Marek Polacek <>
* c-common.c (maybe_warn_bool_compare): When comparing with 0/1,
require that the non-constant be of a boolean type.
2015-04-29 Josh Triplett <>
* c-common.c (handle_section_attribute): Refactor to reduce
nesting and distinguish between error cases.
2015-04-29 Marek Polacek <>
PR c/64610
* c-common.c (maybe_warn_bool_compare): Warn when comparing a boolean
with 0/1.
2015-04-29 Jakub Jelinek <>
* c-common.h (omp_clause_mask): Unconditionally define as a class.
Use uint64_t instead of unsigned HOST_WIDE_INT and 64 instead of
2015-04-28 Tom de Vries <>
PR tree-optimization/65887
* c-common.c (build_va_arg): Mark va_arg ap argument as addressable.
2015-04-28 Eric Botcazou <>
Pierre-Marie de Rodat <>
* c-ada-spec.c (in_function): Delete.
(dump_generic_ada_node): Do not change in_function and remove the
redundant code dealing with it.
(print_ada_declaration): Do not change in_function. Use INDENT_INCR.
(print_ada_methods): Output the static member functions in a nested
package after the regular methods as well as associated renamings.
2015-04-24 Marek Polacek <>
PR c/65830
* c-common.c (c_fully_fold_internal): Use OPT_Wshift_count_negative
and OPT_Wshift_count_overflow.
PR c/63357
* c-common.c (warn_logical_operator): Warn if the operands have the
same expressions.
2015-04-24 Marek Polacek <>
PR c/61534
* c-common.c (warn_logical_operator): Bail if either operand comes
from a macro expansion.
2015-04-10 Bernhard Reutner-Fischer <>
PR target/55143
* c-common.c (c_default_pointer_mode): Add definition.
* c-common.h (c_default_pointer_mode): Add declaration.
2015-03-11 Jakub Jelinek <>
* c-common.c (c_common_nodes_and_builtins): Don't call xstrdup
on record_builtin_type argument.
2015-03-10 Jakub Jelinek <>
PR c/65120
* c-common.c (warn_logical_not_parentheses): Don't warn for
!x == 0 or !x != 0.
2015-03-07 Marek Polacek <>
PR sanitizer/65280
* c-ubsan.c (ubsan_instrument_bounds): Check for COMPONENT_REF
before trying to figure out whether we have a flexible array member.
2015-03-06 Eric Botcazou <>
Jonathan Wakely <>
* c-ada-spec.c (dump_ada_double_name): Fix pasto.
2015-03-05 Eric Botcazou <>
PR ada/65319
* c-ada-spec.c (print_destructor): Remove obsolete code.
2015-03-01 Eric Botcazou <>
* c-ada-spec.c (is_tagged_type): Add guard for DECL_VINDEX.
(dump_template_types): Adjust DECL_TEMPLATE_INSTANTIATIONS and
(dump_ada_template)): Add guard for TYPE_METHODS.
2015-02-27 Marek Polacek <>
PR c/65040
* c.opt (Wformat-signedness): Don't enable by -Wformat=2.
2015-02-27 Kai Tietz <>
PR c/35330
* c-pragma.c (handle_pragma_weak): Do not try to create
weak/alias of declarations not being function, or variable
2015-02-24 Thomas Schwinge <>
PR libgomp/64625
Remove macros.
2015-02-16 Marek Polacek <>
PR c/65066
* c-format.c (check_format_types): Handle null param.
2015-02-13 Marek Polacek <>
PR c/65040
* c-format.c (check_format_types): Don't warn about different
signedness if the original value is in the range of WANTED_TYPE.
2015-02-12 Jason Merrill <>
PR c++/64956
* c-opts.c (c_common_post_options): Change flag_abi_version from 0
to the current highest version.
* c-cppbuiltin.c (c_cpp_builtins): Assert that it isn't 0.
2015-02-04 Jakub Jelinek <>
PR c/64824
PR c/64868
* c-omp.c (c_finish_omp_atomic): Use TRUNC_DIV_EXPR
instead of RDIV_EXPR. Use build_binary_op instead of
2015-01-30 Joseph Myers <>
* c-opts.c, c-pch.c, cppspec.c: All callers of fatal_error changed
to pass input_location as first argument.
2015-01-23 Tom de Vries <>
PR libgomp/64672
* c.opt (fopenacc): Mark as LTO option.
2015-01-23 Tom de Vries <>
PR libgomp/64707
* c.opt (fopenmp): Mark as LTO option.
2015-01-21 Jakub Jelinek <>
PR c/63307
* cilk.c (fill_decls_vec): Only put decls into vector v.
(compare_decls): Fix up formatting.
2015-01-21 Igor Zamyatin <>
PR c/63307
* cilk.c: Include vec.h.
(struct cilk_decls): New structure.
(wrapper_parm_cb): Split this function to...
(fill_decls_vec): ...this...
(create_parm_list): ...and this.
(compare_decls): New function.
(for_local_cb): Remove.
(wrapper_local_cb): Ditto.
(build_wrapper_type): For now first traverse and fill vector of
declarations then sort it and then deal with sorted vector.
(cilk_outline): Ditto.
(declare_one_free_variable): Ditto.
2015-01-21 Jason Merrill <>
PR c++/64629
* c-format.c (check_format_arg): Call decl_constant_value.
2015-01-19 Martin Liska <>
* c-common.c (handle_noicf_attribute): New function.
2015-01-15 Thomas Schwinge <>
Bernd Schmidt <>
James Norris <>
Cesar Philippidis <>
Ilmir Usmanov <>
Jakub Jelinek <>
* c.opt (fopenacc): New option.
* c-cppbuiltin.c (c_cpp_builtins): Conditionally define _OPENACC.
New macros.
* c-common.h (c_finish_oacc_wait): New prototype.
* c-omp.c: Include "omp-low.h" and "gomp-constants.h".
(c_finish_oacc_wait): New function.
* c-pragma.c (oacc_pragmas): New variable.
(c_pp_lookup_pragma, init_pragma): Handle it.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_CACHE,
(enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ASYNC,
2015-01-14 Marcos Diaz <>
* c-cppbuiltin.c (c_cpp_builtins): New cpp define __SSP_EXPLICIT__
for the new option fstack-protector_explicit.
* c-common.c (c_common_attribute_table): Add stack_protect attribute.
(handle_stack_protect_attribute): New function.
2015-01-13 Martin Uecker <>
* c.opt: New option -Warray-bounds=.
2015-01-09 Michael Collison <>
* array-notation-common.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-ada-spec.c: Ditto.
* c-cilkplus.c: Ditto.
* c-common.c: Include input.h due to flattening of tree.h.
Define macro GCC_C_COMMON_C.
* c-common.h: Flatten tree.h header files into c-common.h.
Remove include of tree-core.h.
* c-cppbuiltin.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-dump.c: Ditto.
* c-format.c: Flatten tree.h header files into c-common.h.
* c-cppbuiltin.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-dump.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-format.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 and real.h due to
flattening of tree.h.
* c-gimplify.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.
* cilk.c: Ditto.
* c-lex.c: Ditto.
* c-omp.c: Ditto.
* c-opts.c: Ditto.
* c-pch.c: Ditto.
* c-ppoutput.c: Ditto.
* c-pragma.c: Ditto.
* c-pretty-print.c: Ditto.
* c-semantics.c: Ditto.
* c-ubsan.c: Ditto.
* stub-objc.c: Ditto.
2015-01-08 Jason Merrill <>
* c-ubsan.c (ubsan_maybe_instrument_array_ref): Use
(ubsan_maybe_instrument_reference_or_call): Likewise.
* c-ubsan.h: Declare it.
2015-01-08 Mike Stump <>
* c-common.c (c_common_attribute_table): Add no_sanitize_thread.
2015-01-07 Marek Polacek <>
PR c/64440
* c-common.c (c_fully_fold_internal): Warn for division and modulo
if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST and is zero.
2015-01-05 Trevor Saunders <>
PR c++/31397
* c.opt (Wsuggest-override): New option.
2015-01-05 Jakub Jelinek <>
Update copyright years.
2015-01-05 Marek Polacek <>
PR c/64423
* c-common.c (warn_array_subscript_with_type_char): Add location_t
parameter. Use it.
* c-common.h (warn_array_subscript_with_type_char): Update
2014-12-20 Edward Smith-Rowland <>
* c-cppbuiltin.c (__cpp_sized_deallocation): Uncomment and move macro.
Control macro with flag_sized_deallocation.
2014-12-20 Martin Uecker <>
* c.opt (Wdiscarded-array-qualifiers): New option.
2014-12-19 Jakub Jelinek <>
PR preprocessor/63831
* c-cppbuiltin.c (c_cpp_builtins): Don't define __has_attribute
and __has_cpp_attribute here.
* c-ppoutput.c (init_pp_output): Set cb->has_attribute to
* c-common.h (c_common_has_attribute): New prototype.
* c-lex.c (init_c_lex): Set cb->has_attribute to
c_common_has_attribute instead of cb_has_attribute.
(get_token_no_padding): New function.
(cb_has_attribute): Renamed to ...
(c_common_has_attribute): ... this. No longer static. Use
get_token_no_padding, require ()s, don't build TREE_LIST
unnecessarily, fix up formatting, adjust diagnostics, call
2014-12-15 Jason Merrill <>
* c.opt (-fsized-deallocation, -Wc++14-compat): New.
(-Wsized-deallocation): New.
* c-opts.c (c_common_post_options): -fsized-deallocation defaults
to on in C++14 and up.
2014-12-11 Jason Merrill <>
* c-cppbuiltin.c (c_cpp_builtins): Enable C++14 __cpp_constexpr.
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_runtime_arrays if
we aren't complaining about VLAs.
2014-12-06 Marek Polacek <>
PR tree-optimization/64183
* c-gimplify.c (c_gimplify_expr): Don't convert the RHS of a
shift-expression if it is integer_type_node. Use types_compatible_p.
2014-11-29 Jakub Jelinek <>
* c-common.c (convert_vector_to_pointer_for_subscript): Remove NULL
last argument from create_tmp_var_raw and create_tmp_var calls.
* cilk.c (gimplify_cilk_spawn): Likewise.
* c-omp.c (c_finish_omp_atomic): Likewise.
2014-11-28 Marek Polacek <>
* c-ubsan.c (ubsan_instrument_shift): Use op1_utype for MINUS_EXPR
instead of unsigned_type_node.
2014-11-28 Marek Polacek <>
PR c/63862
* c-ubsan.c (ubsan_instrument_shift): Change the type of a MINUS_EXPR
to op1_utype.
* c-gimplify.c (c_gimplify_expr): Convert right operand of a shift
expression to unsigned_type_node.
2014-11-20 Mark Wielaard <>
PR debug/38757
* c-opts.c (set_std_c89): Set
(set_std_c99): Likewise.
(set_std_c11): Likewise.
(set_std_cxx98): Likewise.
(set_std_cxx11): Likewise.
(set_std_cxx14): Likewise.
(set_std_cxx1z): Likewise.
2014-11-21 Jakub Jelinek <>
PR target/63764
* c-common.h (convert_vector_to_pointer_for_subscript): Change
return type to bool.
* c-common.c: Include gimple-expr.h.
(convert_vector_to_pointer_for_subscript): Change return type to
bool. If *vecp is not lvalue_p and has VECTOR_TYPE, return true
and copy it into a TARGET_EXPR and use that instead of *vecp
2014-11-19 David Malcolm <>
Merger of git branch "gimple-classes-v2-option-3".
* ChangeLog.gimple-classes: New.
* c-gimplify.c (add_block_to_enclosing): Strengthen local "stack"
from being just a vec<gimple> to a vec<gbind *>.
2014-11-18 Jakub Jelinek <>
PR sanitizer/63813
* c-ubsan.c (ubsan_maybe_instrument_reference_or_call): Change type
argument to ptype, set type to TREE_TYPE (ptype). Don't call
get_pointer_alignment for non-pointers. Use ptype, or if it is
reference type, corresponding pointer type, as type of kind
ubsan_maybe_instrument_member_call): Adjust callers.
2014-11-15 Marek Polacek <>
PR middle-end/63884
* array-notation-common.c (is_sec_implicit_index_fn): Return false
for NULL fndecl.
(extract_array_notation_exprs): Return for NULL node.
2014-11-12 Joseph Myers <>
* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define and
undefine __NO_MATH_ERRNO__ based on changes to -fmath-errno state.
2014-11-12 Jakub Jelinek <>
PR c/59708
* c-common.c (check_builtin_function_arguments): Handle
2014-11-10 Andi Kleen <>
PR c/60804
* c-common.h (check_no_cilk): Declare.
* cilk.c (get_error_location): New function.
(check_no_cilk): Dito.
2014-11-10 Andi Kleen <>
* cilk.c (recognize_spawn): Use expression location
for error message.
2014-11-10 Paolo Carlini <>
* c.opt ([Wshift-count-negative, Wshift-count-overflow]): Add.
2014-11-10 Edward Smith-Rowland <>
* c-cppbuiltin.c (__has_attribute, __has_cpp_attribute): New macros;
(__cpp_rtti, __cpp_exceptions): New macros for C++98;
(__cpp_range_based_for, __cpp_initializer_lists,
__cpp_delegating_constructors, __cpp_nsdmi,
__cpp_inheriting_constructors, __cpp_ref_qualifiers): New macros
for C++11; (__cpp_attribute_deprecated): Remove in favor of
* c-lex.c (cb_has_attribute): New callback CPP function;
(init_c_lex): Set has_attribute callback.
2014-11-04 Richard Biener <>
* c-common.c (shorten_compare): Do not shorten mixed
DFP and non-DFP compares.
2014-11-01 Edward Smith-Rowland <>
* g++.dg/cpp1y/feat-cxx11.C: Commentary and rearrangement of tests.
* g++.dg/cpp1y/feat-cxx11-neg.C: Add aggregate NSDMI test.
Commentary and rearrangement of tests.
* g++.dg/cpp1y/feat-cxx14.C: Enable aggregate NSDMI test.
Commentary and rearrangement of tests.
* g++.dg/cpp1y/feat-cxx98-neg.C: Ditto
* g++.dg/cpp1y/feat-cxx98.C: Commentary.
2014-10-29 Richard Sandiford <>
* c-common.c, c-common.h, c-cppbuiltin.c, c-lex.c: Remove redundant
enum from machine_mode.
2014-10-28 Andrew MacLeod <>
* c-common.c: Adjust include files.
* c-gimplify.c: Ditto.
* cilk.c: Ditto.
* c-pragma.c: Ditto.
* c-ubsan.c: Ditto.
2014-10-27 Andrew MacLeod <>
* c-gimplify.c: Adjust include files.
2014-10-26 Manuel López-Ibáñez <>
PR c++/53061
* c-opts.c (c_common_diagnostics_set_defaults): Renamed from
* c-common.h: Likewise.
2014-10-24 Marek Polacek <>
PR c/56980
* c-pretty-print.c (c_pretty_printer::simple_type_specifier): Don't
print "struct"/"union"/"enum" for typedefed names.
2014-10-23 Marek Polacek <>
* c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
in unsigned type.
2014-10-22 Jakub Jelinek <>
Yury Gribov <>
* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
ubsan_instrument_vla): Check bits in flag_sanitize_recover bitmask
instead of flag_sanitize_recover as bool flag.
2014-10-21 Kirill Yukhin <>
* cilk.c: Revert previous change.
2014-10-20 Igor Zamyatin <>
PR c/63307
* cilk.c: Include vec.h.
(struct cilk_decls): New structure.
(wrapper_parm_cb): Split this function to...
(fill_decls_vec): ...this...
(create_parm_list): ...and this.
(compare_decls): New function.
(for_local_cb): Remove.
(wrapper_local_cb): Ditto.
(build_wrapper_type): For now first traverse and fill vector of
declarations then sort it and then deal with sorted vector.
(cilk_outline): Ditto.
(declare_one_free_variable): Ditto.
2014-10-17 Marek Polacek <>
* c-opts.c (c_common_post_options): Set warn_implicit_int.
* c.opt (Wimplicit-int): Initialize to -1.
2014-10-16 Andrew MacLeod <>
* c-pragma.c: Adjust include files.
* c-semantics.c: Likewise.
2014-10-16 DJ Delorie <>
* c-cppbuiltin.c (cpp_atomic_builtins): Don't assume pointers are
multiples of bytes.
2014-10-14 Jason Merrill <>
PR c++/63455
* c-common.h (CPP_PREPARSED_EXPR): New.
(N_CP_TTYPES): Adjust.
2014-10-15 Marek Polacek <>
* c-opts.c (c_common_init_options): Make -std=gnu11 the default for C.
2014-10-14 DJ Delorie <>
* c-pretty-print.c (pp_c_integer_constant): Check for all __intN
types, not just __int128.
* c-cppbuiltin.c (c_cpp_builtins): Add builtins for all __intN
types, not just __int128.
(cpp_atomic_builtins): Round pointer sizes up.
(type_suffix): Use type precision, not specific types.
* c-common.c (c_common_reswords): Remove __int128 special case.
(c_common_type_for_size): Check for all __intN types, not just
(c_common_type_for_mode): Likewise.
(c_common_signed_or_unsigned_type): Likewise.
(c_build_bitfield_integer_type): Likewise.
(c_common_nodes_and_builtins): Likewise.
(keyword_begins_type_specifier): Likewise.
* c-common.h (rid): Remove RID_INT128 and add RID_INT_N_* for all
__intN variants.
2014-10-12 Trevor Saunders <>
* c-common.c: Use hash_table instead of hashtab.
2014-10-06 Edward Smith-Rowland <>
* c-cppbuiltin.c: Move __cpp_attribute_deprecated to the
C++11 section.
2014-10-03 Marc Glisse <>
PR c++/54427
PR c++/57198
PR c++/58845
* c-common.c (warn_logical_operator): Punt for vectors.
2014-10-01 Edward Smith-Rowland <>
Implement SD-6: SG10 Feature Test Recommendations
* c-cppbuiltin.c (c_cpp_builtins()): Define language feature
macros and the __has_header macro.
2014-09-30 Jason Merrill <>
* c-common.h (enum rid): Add RID_IS_TRIVIALLY_ASSIGNABLE and
* c-common.c (c_common_reswords): Add __is_trivially_copyable.
* c-common.h (enum rid): Add RID_IS_TRIVIALLY_COPYABLE.
* c-common.c (c_common_reswords): Add __is_trivially_copyable.
* c-common.h (enum rid): Remove RID_IS_CONVERTIBLE_TO.
* c-common.c (c_common_reswords): Remove __is_convertible_to.
2014-09-24 Marek Polacek <>
PR c/61405
PR c/53874
* c-common.h (struct c_common_resword): Don't define CPP_KEYWORD.
2014-09-23 Andi Kleen <>
* c-common.c (handle_no_reorder_attribute): New function.
(c_common_attribute_table): Add no_reorder attribute.
2014-09-22 Joseph Myers <>
* c-cppbuiltin.c (c_cpp_builtins): Define
__LIBGCC_*_EXCESS_PRECISION__ macros for supported floating-point
2014-09-18 Joseph Myers <>
* c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_*_FUNC_EXT__
for supported floating-point modes.
2014-09-15 Manuel López-Ibáñez <>
* c.opt (Wpsabi): Use LangEnabledBy.
* c-opts.c (c_common_handle_option): Do not handle here.
2014-09-12 Joseph Myers <>
* c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_HAS_%s_MODE__
macros for floating-point modes.
2014-09-11 Marc Glisse <>
PR target/58757
* c-cppbuiltin.c (builtin_define_float_constants): Correct
__*_DENORM_MIN__ without denormals.
2014-09-10 Jakub Jelinek <>
* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
ubsan_instrument_vla, ubsan_instrument_return): Adjust
ubsan_create_data callers.
(ubsan_instrument_bounds): Don't emit UBSAN_BOUNDS at all if
index is constant or BIT_AND_EXPR with constant mask and is
small enough for the bound.
* c-gimplify.c (ubsan_walk_array_refs_r): For ADDR_EXPR of
ARRAY_REF, make sure the inner ARRAY_REF is not walked again.
2014-09-09 Manuel López-Ibáñez <>
* c.opt: Add CppReason to various flags.
(Wdate-time): Re-sort.
* c-common.c: Include c-common.h earlier.
(struct reason_option_codes_t): Delete.
(c_option_controlling_cpp_error): Prefix global type and struct
with cpp_.
2014-09-09 Manuel López-Ibáñez <>
* c.opt (Wnormalized): New.
(Wnormalized=): Use Enum and Reject Negative.
* c-opts.c (c_common_handle_option): Do not handle Wnormalized here.
2014-09-08 Joseph Myers <>
* c-cppbuiltin.c (c_cpp_builtins): Define macros for mantissa
digits of floating-point modes if -fbuilding-libgcc.
2014-09-05 Joseph Myers <>
* c-cppbuiltin.c (c_cpp_builtins): Also define
__LIBGCC_VTABLE_USES_DESCRIPTORS__ for -fbuilding-libgcc.
(builtin_define_with_value): Handle backslash-escaping in string
macro values.
2014-09-05 Richard Biener <>
PR middle-end/63148
* c-format.c (check_format_arg): Properly handle
effectively signed POINTER_PLUS_EXPR offset.
2014-09-04 Manuel López-Ibáñez <>
* c.opt (Wc90-c99-compat,Wc++-compat,Wcomment,Wendif-labels,
(Wdate-time,Wtraditional,Wundef,Wvariadic-macros): Add CPP, Var
and Init.
* c-opts.c (c_common_handle_option): Do not handle here.
(sanitize_cpp_opts): Likewise.
* c-common.c (struct reason_option_codes_t): Handle
2014-09-03 Marek Polacek <>
* c.opt (Wlogical-not-parentheses): Enable by -Wall.
2014-09-02 Jakub Jelinek <>
Balaji V. Iyer <>
Igor Zamyatin <>
* c-cilkplus.c (cilk_for_number_of_iterations): New function.
* c-common.c (c_common_reswords): Added _Cilk_for.
* c-common.h (enum rid): Added RID_CILK_FOR.
(cilk_for_number_of_iterations): Add declaration.
* c-omp.c (c_finish_omp_for): Added checks for CILK_SIMD and
* c-pragma.c (init_pragma): Register "grainsize" pragma.
* c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_GRAINSIZE.
2014-08-29 Manuel López-Ibáñez <>
* c.opt (Wbuiltin-macro-redefined,Wdeprecated,Wendif-labels,
Wundef): Use CPP, Var and Init.
* c-opts.c (c_common_handle_option): Do not handle the above flags here.
2014-08-29 Manuel López-Ibáñez <>
* c.opt (Wbuiltin-macro-redefined): Use CPP, Var and Init.
* c-opts.c (c_common_handle_option): Do not handle here.
2014-08-25 Jason Merrill <>
* c.opt: Change -std=c++1y and -std=gnu++1y to be aliases for
-std=c++14 and -std=gnu++14, rather than the reverse.
* c-opts.c (c_common_handle_option): Change OPT_std_c__1y and
OPT_std_gnu__1y to OPT_std_c__14 and OPT_std_gnu__14.
* c-common.h (cxx_dialect): Remove cxx1y.
2014-08-23 Edward Smith-Rowland <>
* c-common.h (enum cxx_dialect): Add cxx14.
* c-opts.c (set_std_cxx1y): Rename to set_std_cxx14; Use cxx14.
* c-ubsan.c (ubsan_instrument_shift): Change comment and logic from
cxx_dialect == cxx11 || cxx_dialect == cxx1y to cxx_dialect >= cxx11.
2014-08-22 Jason Merrill <>
* c.opt (std=gnu++17): Fix alias.
2014-08-22 Marek Polacek <>
PR c++/62199
* c-common.c (warn_logical_not_parentheses): Don't check LHS. Don't
check for vector types. Drop LHS argument.
* c-common.h (warn_logical_not_parentheses): Adjust.
2014-08-22 Manuel López-Ibáñez <>
* c.opt (Wcomment): Use CPP, Var and LangEnabledBy.
(Wmultichar): Likewise.
(Wdate-time): Use C-family languages instead of Common. Use CPP
and Var.
* c-opts.c (c_common_handle_option): Do not handle the above
options here.
(sanitize_cpp_opts): Likewise.
2014-08-21 Manuel López-Ibáñez <>
PR fortran/44054
* c-opts.c: Include tree-diagnostics.h.
(c_diagnostic_finalizer): New.
(c_common_initialize_diagnostics): Use it.
2014-08-20 Manuel López-Ibáñez <>
PR preprocessor/51303
* c-common.c (struct reason_option_codes_t option_codes):
Add CPP_W_MISSING_INCLUDE_DIRS. Sort alphabetically.
2014-08-20 Manuel López-Ibáñez <>
PR c/60975
PR c/53063
* c.opt (Wvariadic-macros): Use CPP and LangEnabledBy.
* c-opts.c (c_common_handle_option): Call cpp_handle_option_auto.
(c_common_post_options): Call init_global_opts_from_cpp.
(sanitize_cpp_opts): Do not handle Wvariadic-macros here.
2014-08-19 Marek Polacek <>
PR c++/62153
* c-common.c (maybe_warn_bool_compare): New function.
* c-common.h (maybe_warn_bool_compare): Declare.
* c.opt (Wbool-compare): New option.
2014-08-19 Marek Polacek <>
* c.opt (Wc99-c11-compat): New option.
2014-08-19 Marek Polacek <>
* c-opts.c (sanitize_cpp_opts): Make warn_long_long be set according
to warn_c90_c99_compat.
* c.opt (Wc90-c99-compat, Wdeclaration-after-statement): Initialize
to -1.
2014-08-19 Manuel López-Ibáñez <>
Steven Bosscher <>
PR c/52952
* c-format.c: Add extra_arg_loc and format_string_loc to struct
(check_function_format): Use true and add comment for boolean
(finish_dollar_format_checking): Use explicit location when warning.
(check_format_info): Likewise.
(check_format_arg): Set extra_arg_loc and format_string_loc.
(check_format_info_main): Use explicit location when warning.
(check_format_types): Pass explicit location.
(format_type_warning): Likewise.
2014-08-15 Manuel López-Ibáñez <>
PR fortran/44054
* c-format.c: Handle Fortran flags.
2014-08-12 Igor Zamyatin <>
PR other/61962
* array-notation-common.c (find_rank): Added handling for other
types of references.
2014-08-10 Marek Polacek <>
PR c/51849
* c-opts.c (sanitize_cpp_opts): Pass warn_c90_c99_compat to libcpp.
* c.opt (Wc90-c99-compat): Add option.
2014-08-07 Trevor Saunders <>
* c-gimplify.c, cilk.c: Remove includes of pointer-set.h.
2014-08-03 Marek Polacek <>
* c-common.c (check_case_value): Add location_t parameter. Use it.
(c_add_case_label): Pass loc to check_case_value.
2014-08-02 Trevor Saunders <>
* cilk.c: Use hash_map instead of pointer_map.
2014-08-02 Trevor Saunders <>
* c-gimplify.c: Use hash_set instead of pointer_set.
2014-08-01 Igor Zamyatin <>
PR middle-end/61455
* array-notation-common.c (extract_array_notation_exprs): Handling
of DECL_EXPR added.
2014-08-01 Jakub Jelinek <>
* c-common.h (min_align_of_type): Removed prototype.
* c-common.c (min_align_of_type): Removed.
* c-ubsan.h (ubsan_maybe_instrument_reference,
ubsan_maybe_instrument_member_call): New prototypes.
* c-ubsan.c: Include stor-layout.h and builtins.h.
ubsan_maybe_instrument_reference, ubsan_maybe_instrument_call): New
2014-07-31 Marc Glisse <>
PR c++/60517
* c.opt (-Wreturn-local-addr): Move to common.opt.
2014-07-30 Jason Merrill <>
PR c++/61659
PR c++/61687
* c.opt (-fuse-all-virtuals): New.
2014-07-30 Tom Tromey <>
PR c/59855
* c.opt (Wdesignated-init): New option.
* c-common.c (c_common_attribute_table): Add "designated_init".
(handle_designated_init): New function.
2014-07-24 Marek Polacek <>
PR c/57653
* c-opts.c (c_finish_options): If -imacros is in effect, return.
2014-07-16 Dodji Seketeli <>
PR preprocessor/60723 - missing system-ness marks for macro tokens
* c-ppoutput.c (struct print::prev_was_system_token): New data
(init_pp_output): Initialize it.
(maybe_print_line_1, maybe_print_line, print_line_1, print_line)
(do_line_change): Return a flag saying if a line marker was
emitted or not.
(scan_translation_unit): Detect if the system-ness of the token we
are about to emit is different from the one of the previously
emitted token. If so, emit a line marker. Avoid emitting useless
adjacent line markers. Avoid emitting line markers for tokens
originating from the expansion of built-in macros.
(scan_translation_unit_directives_only): Adjust.
2014-07-15 Marek Polacek <>
* c-ubsan.c (ubsan_instrument_bounds): Don't instrument if
2014-07-14 Jakub Jelinek <>
PR middle-end/61294
* c.opt (Wmemset-transposed-args): New warning.
2014-07-10 Jason Merrill <>
PR c++/61659
PR c++/61687
* c.opt (-fuse-all-virtuals): New.
2014-07-09 Richard Biener <>
PR c-family/61741
* c-gimplify.c (c_gimplify_expr): Gimplify self-modify expressions
using unsigned arithmetic if overflow does not wrap instead of
if overflow is undefined.
2014-07-06 Marek Polacek <>
PR c/6940
* c.opt (Wsizeof-array-argument): New option.
2014-07-03 Jakub Jelinek <>
* c-ada-spec.c (dump_ada_nodes): Don't call qsort if
comments->count <= 1, as comments->entries might be NULL.
2014-07-01 Marek Polacek <>
* c.opt (Wint-conversion): New option.
2014-07-01 Marek Polacek <>
PR c/58286
* c.opt (Wincompatible-pointer-types): New option.
2014-06-30 Paolo Carlini <>
PR c++/51400
* c-common.c (handle_noreturn_attribute, handle_const_attribute):
Do not discard TYPE_QUALS of type.
2014-06-26 Jason Merrill <>
* c-common.h (enum cxx_dialect): Add cxx1z.
* c.opt (std=c++1z, std=c++17, std=gnu++1z, std=gnu++17): New.
* c-opts.c (c_common_handle_option, set_std_cxx1z): Handle it.
2014-06-26 Teresa Johnson <>
* c-common.h (get_dump_info): Declare.
* c-gimplify.c (c_genericize): Use saved dump files.
* c-opts.c (c_common_parse_file): Begin and end dumps
once around parsing invocation.
(get_dump_info): New function.
2014-06-23 Marek Polacek <>
Andrew MacLeod <>
PR c/61553
* c-common.c (get_atomic_generic_size): Don't segfault if the
type doesn't have a size.
2014-06-20 Marek Polacek <>
* c-gimplify.c: Include "c-ubsan.h" and "pointer-set.h".
(ubsan_walk_array_refs_r): New function.
(c_genericize): Instrument array bounds.
* c-ubsan.c: Include "internal-fn.h".
(ubsan_instrument_division): Mark instrumented arrays as having
side effects. Adjust ubsan_type_descriptor call.
(ubsan_instrument_shift): Likewise.
(ubsan_instrument_vla): Adjust ubsan_type_descriptor call.
(ubsan_instrument_bounds): New function.
(ubsan_array_ref_instrumented_p): New function.
(ubsan_maybe_instrument_array_ref): New function.
* c-ubsan.h (ubsan_instrument_bounds): Declare.
(ubsan_array_ref_instrumented_p): Declare.
(ubsan_maybe_instrument_array_ref): Declare.
2014-06-20 Hale Wang <>
PR lto/61123
* c.opt (fshort-enums): Add to LTO.
* c.opt (fshort-wchar): Likewise.
2014-06-16 Marek Polacek <>
PR c/60439
* c.opt (Wswitch-bool): Add Var.
2014-06-12 Jakub Jelinek <>
PR middle-end/61486
* c-omp.c (c_omp_split_clauses): Don't crash on firstprivate in
#pragma omp target teams or
#pragma omp {,target }teams distribute simd.
2014-06-12 Jason Merrill <>
* c.opt (Wabi=, fabi-compat-version): New.
* c-opts.c (c_common_handle_option): Handle -Wabi=.
(c_common_post_options): Handle flag_abi_compat_version default.
Disallow -fabi-compat-version=1.
* c-common.h (abi_version_crosses): New.
2014-06-11 Jan Hubicka <>
* c-common.c (handle_section_attribute): Update handling for
section names that are no longer trees.
2014-06-10 Jakub Jelinek <>
PR fortran/60928
* c-pragma.c (omp_pragmas_simd): Move PRAGMA_OMP_TASK...
(omp_pragmas): ... back here.
2014-06-05 Marek Polacek <>
PR c/49706
* c-common.c (warn_logical_not_parentheses): New function.
* c-common.h (warn_logical_not_parentheses): Declare.
* c.opt (Wlogical-not-parentheses): New option.
2014-06-04 Marek Polacek <>
PR c/30020
* c-common.c (check_case_bounds): Add location parameter.
Use it.
(c_add_case_label): Pass loc to check_case_bounds.
2014-06-03 Marek Polacek <>
PR c/60439
* c.opt (Wswitch-bool): New option.
2014-05-22 Thomas Schwinge <>
* c-common.h (c_omp_sharing_predetermined, c_omp_remap_decl):
Remove prototypes.
(record_types_used_by_current_var_decl): Move prototype to where
it belongs.
(DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
2014-05-21 Richard Sandiford <>
* c-common.h (CTI_VOID_ZERO, void_zero_node): Delete.
* c-common.c (c_common_nodes_and_builtins): Don't initialize
* c-pretty-print.c (pp_c_void_constant): New function.
(c_pretty_printer::constant, c_pretty_printer::primary_expression)
(c_pretty_printer::expression): Handle VOID_CST.
* cilk.c (extract_free_variables): Likewise.
* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift)
(ubsan_instrument_vla): Use void_node instead of void_zero_node.
2014-05-17 Trevor Saunders <>
* c-common.h (sorted_fields_type): Remove variable_size GTY attribute.
* c-pragma.c (push_alignment): Adjust.
(handle_pragma_push_options): Likewise.
2014-05-09 Marek Polacek <>
PR c/50459
* c-common.c (check_user_alignment): Return -1 if alignment is error
(handle_aligned_attribute): Don't call default_conversion on
(handle_vector_size_attribute): Likewise.
(handle_tm_wrap_attribute): Handle case when wrap_decl is error node.
(handle_sentinel_attribute): Call default_conversion and allow even
integral types as an argument.
2014-05-08 Marek Polacek <>
PR c/61053
* c-common.c (min_align_of_type): New function factored out from...
* c-common.h (min_align_of_type): Declare.
2014-05-08 Marek Polacek <>
PR c/61077
* c-common.c (check_main_parameter_types): Warn for _Atomic-qualified
parameter type of main.
2014-05-07 DJ Delorie <>
* c-cppbuiltin.c (print_bits_of_hex): New.
(builtin_define_type_minmax): Print values using hex so as not to
require a pre-computed list of string values.
2014-05-06 Kenneth Zadeck <>
Mike Stump <>
Richard Sandiford <>
* c-ada-spec.c: Include wide-int.h.
(dump_generic_ada_node): Use wide-int interfaces.
* c-common.c: Include wide-int-print.h.
(shorten_compare): Use wide-int interfaces and tree_int_cst_lt.
(pointer_int_sum): Use wide-int interfaces.
(c_common_nodes_and_builtins): Use make_int_cst.
(match_case_to_enum_1): Use tree_fits_uhwi_p and tree_fits_shwi_p.
(handle_alloc_size_attribute): Use wide-int interfaces.
(get_nonnull_operand): Likewise.
* c-format.c (get_constant): Use tree_fits_uhwi_p.
* c-lex.c: Include wide-int.h.
(narrowest_unsigned_type): Take a widest_int rather than two
(narrowest_signed_type): Likewise.
(interpret_integer): Update accordingly. Use wide-int interfaces.
(lex_charconst): Use wide-int interfaces.
* c-pretty-print.c: Include wide-int.h.
(pp_c_integer_constant): Use wide-int interfaces.
* cilk.c (declare_one_free_variable): Use tree_int_cst_lt instead of
2014-05-06 Richard Biener <>
* c-opts.c (c_common_post_options): For -freestanding,
-fno-hosted and -fno-builtin disable pattern recognition
if not enabled explicitely.
2014-05-02 Marek Polacek <>
* c.opt (Wsizeof-pointer-memaccess): Describe option.
2014-05-01 Marek Polacek <>
PR c/43245
* c.opt (Wdiscarded-qualifiers): Add.
2014-04-30 Marek Polacek <>
* c-ubsan.c (ubsan_instrument_division): Handle REAL_TYPEs. Perform
INT_MIN / -1 sanitization only for integer types.
2014-04-25 Marek Polacek <>
PR c/18079
* c-common.c (handle_noinline_attribute): Warn if the attribute
conflicts with always_inline attribute.
(handle_always_inline_attribute): Warn if the attribute conflicts
with noinline attribute.
2014-04-25 Marek Polacek <>
PR c/60156
* c-common.c (check_main_parameter_types): Warn about variadic main.
2014-04-24 Mike Stump <>
* c.opt (Wshadow-ivar): Default to on.
2014-04-24 Dimitris Papavasiliou <>
* c.opt (Wshadow-ivar, flocal-ivars, fivar-visibility): Add.
2014-04-23 Marek Polacek <>
* c-common.c (handle_tm_wrap_attribute): Tweak error message.
2014-04-22 Jakub Jelinek <>
PR sanitizer/60275
* c-ubsan.c (ubsan_instrument_return): Return __builtin_trap ()
if flag_sanitize_undefined_trap_on_error.
(ubsan_instrument_division, ubsan_instrument_shift,
ubsan_instrument_vla): Likewise. Use __ubsan_handle_*_abort ()
if !flag_sanitize_recover.
2014-04-22 Marc Glisse <>
PR libstdc++/43622
* c-common.c (registered_builtin_types): Make non-static.
* c-common.h (registered_builtin_types): Declare.
2014-04-14 Richard Biener <>
Marc Glisse <>
PR c/60819
* c-common.c (convert_vector_to_pointer_for_subscript): Properly
apply may-alias the scalar pointer type when applicable.
2014-04-12 Igor Zamyatin <>
PR middle-end/60467
* cilk.c (cilk_set_spawn_marker): Remove FUNCTION_DECL
as possible argument for Cilk_spawn.
2014-04-11 Tobias Burnus <>
PR c/60194
* c.opt (Wformat-signedness): Add
* c-format.c(check_format_types): Use it.
2014-04-11 Jason Merrill <>
PR c++/57926
* c-common.c (sync_resolve_size, get_atomic_generic_size): Call
default_conversion for an array argument.
2014-04-08 Marek Polacek <>
PR sanitizer/60745
* c-ubsan.c: Include asan.h.
(ubsan_instrument_return): Call initialize_sanitizer_builtins.
2014-04-03 Nathan Sidwell <>
* c.opt (Wnon-virtual-dtor): Auto set when Weffc++.
2014-04-02 Marek Polacek <>
* c-common.h (c_expand_expr): Remove declaration.
2014-03-28 Jakub Jelinek <>
PR c++/60689
* c-common.c (add_atomic_size_parameter): When creating new
params vector, push the size argument first.
2014-03-26 Jakub Jelinek <>
* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
ubsan_instrument_vla, ubsan_instrument_return): Adjust
ubsan_create_data callers.
2014-03-22 Jakub Jelinek <>
PR debug/60603
* c-opts.c (c_finish_options): Restore cb_file_change call to
2014-03-13 Jakub Jelinek <>
PR middle-end/36282
* c-pragma.c (apply_pragma_weak): Only look at
(maybe_apply_pending_pragma_weaks): Exit early if
vec_safe_is_empty (pending_weaks) rather than only when
(maybe_apply_pragma_weak): Likewise. If !DECL_ASSEMBLER_NAME_SET_P,
set assembler name back to NULL afterwards.
2014-03-11 Jason Merrill <>
* c.opt: Add -std=gnu++14.
2014-03-11 Ian Bolton <>
* c-opts.c (c_common_post_options): Don't override
-ffp-contract=fast if unsafe-math-optimizations is on.
2014-03-08 Paulo Matos <>
* c.opt: Enable LTO FE for fshort-double.
2014-03-07 Jason Merrill <>
* c.opt: Add -std=c++14.
2014-03-06 Marek Polacek <>
PR c/60197
* cilk.c (contains_cilk_spawn_stmt): New function.
(contains_cilk_spawn_stmt_walker): Likewise.
(recognize_spawn): Give error on invalid use of _Cilk_spawn.
* c-common.h (contains_cilk_spawn_stmt): Add declaration.
2014-03-03 Jakub Jelinek <>
* c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_SIMD.
(init_pragma): Call cpp_register_deferred_pragma for PRAGMA_CILK_SIMD
even when flag_preprocess_only.
2014-02-26 Jason Merrill <>
PR c++/59231
PR c++/11586
* c-common.c (shorten_compare): Don't check
2014-02-19 Jakub Jelinek <>
PR c/37743
* c-common.c (c_common_nodes_and_builtins): When initializing
c_uint{16,32,64}_type_node, also set corresponding
uint{16,32,64}_type_node to the same value.
PR c++/60267
* c-pragma.c (init_pragma): Don't call cpp_register_deferred_pragma
for PRAGMA_IVDEP if flag_preprocess_only.
2014-02-12 Jakub Jelinek <>
PR c/60101
* c-common.c (merge_tlist): If copy is true, call new_tlist,
if false, add ADD itself, rather than vice versa.
(verify_tree): For COND_EXPR, don't call merge_tlist with non-zero
copy. For SAVE_EXPR, only call merge_tlist once.
2014-02-08 Jakub Jelinek <>
PR middle-end/60092
* c-common.c (handle_alloc_size_attribute): Use tree_fits_uhwi_p
and tree_to_uhwi.
(handle_alloc_align_attribute, handle_assume_aligned_attribute): New
(c_common_attribute_table): Add alloc_align and assume_aligned
2014-02-06 Marek Polacek <>
PR c/60087
* c-common.c (warn_for_sign_compare): Call warning_at with location
instead of warning.
2014-02-05 Marek Polacek <>
PR c/53123
* c-omp.c (c_finish_omp_atomic): Remove unreachable return
2014-02-04 Marek Polacek <>
PR c/60036
* c-common.c (conversion_warning): Unwrap C_MAYBE_CONST_EXPR and/or
2014-02-03 Marc Glisse <>
PR c++/53017
PR c++/59211
* c-common.c (handle_aligned_attribute, handle_alloc_size_attribute,
handle_vector_size_attribute, handle_nonnull_attribute): Call
default_conversion on the attribute argument.
(handle_nonnull_attribute): Increment the argument number.