global trees
[gcc.git] / gcc / c-family / ChangeLog
index 5137426fab4326e9e68ff9668b0429837c1feb7b..dc15a61ee06b1ef8db6509ef8e9564a8ce7e8578 100644 (file)
@@ -1,3 +1,511 @@
+2020-11-16  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR objc/97854
+       * stub-objc.c: Include c-common.h to declare enum rid.
+
+2020-11-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/63287
+       * c-cppbuiltin.c: Include configargs.h.
+       (c_cpp_builtins): For C++11 and later if THREAD_MODEL_SPEC is not
+       defined, predefine __STDCPP_THREADS__ to 1 unless thread_model is
+       "single".
+
+2020-11-13  Gergö Barany  <gergo@codesourcery.com>
+           Thomas Schwinge  <thomas@codesourcery.com>
+
+       * c.opt (fopenacc-kernels): Add.
+
+2020-11-13  Jason Merrill  <jason@redhat.com>
+
+       * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_using_enum.
+
+2020-11-13  Piotr H. Dabrowski  <phd@phd.re>
+
+       PR c++/91318
+       * c-cppbuiltin.c: c_cpp_builtins_optimize_pragma(): use cpp_define_unused()
+
+2020-11-13  Martin Liska  <mliska@suse.cz>
+
+       * c-attribs.c (build_attr_access_from_parms): Format properly.
+
+2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR objc/90707
+       * c-common.c (c_common_reswords): null_unspecified, nullable,
+       nonnull, null_resettable: New keywords.
+       * c-common.h (enum rid): RID_NULL_UNSPECIFIED, RID_NULLABLE,
+       RID_NONNULL, RID_NULL_RESETTABLE: New.
+       (OBJC_IS_PATTR_KEYWORD): Include nullability keywords in the
+       ranges accepted for property attributes.
+       * c-attribs.c (handle_objc_nullability_attribute): New.
+       * c-objc.h (enum objc_property_attribute_group): Add
+       OBJC_PROPATTR_GROUP_NULLABLE.
+       (enum objc_property_attribute_kind):Add
+       OBJC_PROPERTY_ATTR_NULL_UNSPECIFIED, OBJC_PROPERTY_ATTR_NULLABLE,
+       OBJC_PROPERTY_ATTR_NONNULL, OBJC_PROPERTY_ATTR_NULL_RESETTABLE.
+
+2020-11-13  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR objc/77404
+       * c-attribs.c (handle_objc_root_class_attribute): New
+       * c-objc.h (objc_start_class_interface): Add a location
+       value for the position of the class name.
+       * c.opt: Add Wobjc-root-class.
+       * stub-objc.c (objc_start_class_interface): Add a location
+       value for the position of the class name.
+
+2020-11-12  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-lex.c (c_common_has_attribute): Take argument std_syntax.
+       Allow scope for C.  Handle standard attributes for C.  Do not
+       accept unscoped attributes if std_syntax and not handled as
+       standard attributes.
+       * c-common.h (c_common_has_attribute): Update prototype.
+
+2020-11-12  Nicholas Guriev  <guriev-ns@ya.ru>
+
+       PR pch/86674
+       * c-pch.c (c_common_valid_pch): Use cpp_warning with CPP_W_INVALID_PCH
+       reason to fix -Werror=invalid-pch and -Wno-error=invalid-pch switches.
+
+2020-11-11  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/88115
+       * c-opts.c (c_common_post_options): Update latest_abi_version.
+
+2020-11-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/97748
+       * c-common.h (warn_if_unused_value): Add quiet argument defaulted
+       to false.
+       * c-warn.c (warn_if_unused_value): Likewise.  Pass it down
+       recursively and just return true instead of warning if it is true.
+       Handle COMPLEX_EXPR.
+
+2020-11-10  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * c-common.h (c_omp_adjust_map_clauses): New declaration.
+       * c-omp.c (struct map_clause): Helper type for c_omp_adjust_map_clauses.
+       (c_omp_adjust_map_clauses): New function.
+
+2020-11-09  Marek Polacek  <polacek@redhat.com>
+
+       DR 1914
+       * c-common.c (attribute_fallthrough_p): Tweak the warning
+       message.
+
+2020-11-09  Patrick Palka  <ppalka@redhat.com>
+
+       * c-pragma.c (handle_pragma_diagnostic): Split the
+       unknown-option -Wpragmas diagnostic into a warning and a
+       subsequent note containing a spelling suggestion.  Avoid
+       computing the suggestion if -Wpragmas warnings are being
+       suppressed.
+
+2020-11-09  Patrick Palka  <ppalka@redhat.com>
+
+       PR testsuite/97117
+       * c-indentation.c (get_visual_column): Remove location_t
+       parameter.  Move the column-tracking diagnostic code from here
+       to ...
+       (should_warn_for_misleading_indentation): ... here, before the
+       early exit for when the loci are not all distinct.  Don't pass a
+       location_t argument to get_visual_column.
+       (assert_get_visual_column_succeeds): Don't pass a location_t
+       argument to get_visual_column.
+       (assert_get_visual_column_fails): Likewise.
+
+2020-11-08  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * c-common.h (OBJC_IS_PATTR_KEYWORD): Add class to the list
+       of keywords accepted in @property attribute contexts.
+       * c-objc.h (enum objc_property_attribute_group): Add
+       OBJC_PROPATTR_GROUP_CLASS.
+       (enum objc_property_attribute_kind): Add
+       OBJC_PROPERTY_ATTR_CLASS.
+
+2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * c-common.c (c_common_reswords): Add 'atomic' property
+       attribute.
+       * c-common.h (enum rid): Add RID_PROPATOMIC for atomic
+       property attributes.
+
+2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * c-attribs.c (handle_nsobject_attribute): New.
+       * c.opt: Add WNSObject-attribute.
+
+2020-11-06  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * c-objc.h (enum objc_property_attribute_group): New
+       (enum objc_property_attribute_kind): New.
+       (OBJC_PROPATTR_GROUP_MASK): New.
+       (struct property_attribute_info): Small class encapsulating
+       parser output from property attributes.
+       (objc_prop_attr_kind_for_rid): New
+       (objc_add_property_declaration): Simplify interface.
+       * stub-objc.c (enum rid): Dummy type.
+       (objc_add_property_declaration): Simplify interface.
+       (objc_prop_attr_kind_for_rid): New.
+
+2020-11-06  Nathan Sidwell  <nathan@acm.org>
+
+       * c-ada-spec.c (collect_ada_nodes): Rename
+       DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
+       (collect_ada_node): Likewise.
+       (dump_forward_type): Likewise.
+       * c-common.c (set_underlying_type): Rename
+       DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.
+       (user_facing_original_type, c_common_finalize_early_debug): Likewise.
+
+2020-11-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-common.c (verify_sequence_points): Remove DEBUG_FUNCTION.
+
+2020-11-05  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/97675
+       * c.opt (Wexceptions): New option.
+
+2020-11-05  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/25814
+       * c.opt (Wvexing-parse): New option.
+
+2020-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/97670
+       * c-omp.c (c_omp_split_clauses): Look through array reductions to find
+       underlying decl to clear in the allocate_head bitmap.
+
+2020-11-04  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * c-objc.h (objc_non_constant_expr_p): New.
+       * stub-objc.c (objc_non_constant_expr_p): New.
+
+2020-11-03  Nathan Sidwell  <nathan@acm.org>
+
+       * c.opt (MQ,MT): Reword description to be make-agnostic.
+
+2020-11-02  Nathan Sidwell  <nathan@acm.org>
+
+       * c-opts.c (c_common_post_options): Move var decl to its
+       initialization point.
+
+2020-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * c-lex.c (c_lex_with_flags): When combining '@' with a
+       keyword for Objective-C, combine the location ranges too.
+
+2020-10-30  Qing Zhao  <qing.zhao@oracle.com>
+           H.J.Lu  <hjl.tools@gmail.com>
+
+       * c-attribs.c (c_common_attribute_table): Add new attribute
+       zero_call_used_regs.
+       (handle_zero_call_used_regs_attribute): New function.
+
+2020-10-28  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/97573
+       * c-opts.c (c_common_post_options): In C++20, turn on
+       -Wdeprecated-enum-enum-conversion and
+       -Wdeprecated-enum-float-conversion.
+       * c.opt (Wdeprecated-enum-enum-conversion,
+       Wdeprecated-enum-float-conversion): New options.
+       (Wenum-conversion): Allow for C++ too.
+
+2020-10-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-pragma.h (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALLOCATE.
+       * c-omp.c: Include bitmap.h.
+       (c_omp_split_clauses): Handle OMP_CLAUSE_ALLOCATE.
+
+2020-10-26  Ville Voutilainen  <ville.voutilainen@gmail.com>
+
+       * c-common.c (__is_nothrow_assignable): New.
+       (__is_nothrow_constructible): Likewise.
+       * c-common.h (RID_IS_NOTHROW_ASSIGNABLE): New.
+       (RID_IS_NOTHROW_CONSTRUCTIBLE): Likewise.
+
+2020-10-23  Jan Hubicka  <hubicka@ucw.cz>
+
+       * c-common.c (c_common_finalize_early_debug): Update for new thunk api.
+
+2020-10-23  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/91741
+       * c-common.c (verify_tree): Handle PAREN_SIZEOF_EXPR.
+       (c_common_init_ts): Likewise.
+       * c-common.def (PAREN_SIZEOF_EXPR): New tree code.
+       * c-common.h (maybe_warn_sizeof_array_div): Declare.
+       * c-warn.c (sizeof_pointer_memaccess_warning): Unwrap NOP_EXPRs.
+       (maybe_warn_sizeof_array_div): New function.
+       * c.opt (Wsizeof-array-div): New option.
+
+2020-10-23  Martin Sebor  <msebor@redhat.com>
+
+       PR c/97463
+       * c-warn.c (warn_parm_ptrarray_mismatch): Move null test earlier.
+
+2020-10-22  Martin Liska  <mliska@suse.cz>
+
+       PR c/94722
+       * c-attribs.c (handle_no_stack_protect_function_attribute): New.
+       (handle_stack_protect_attribute): Add error message for a
+       no_stack_protector function.
+
+2020-10-22  Martin Liska  <mliska@suse.cz>
+
+       * c-cppbuiltin.c (c_cpp_builtins): Use the stack_protector enum.
+
+2020-10-22  Jan Hubicka  <hubicka@ucw.cz>
+
+       * c-gimplify.c: Include tree-nested.h
+       (c_genericize): Update for new nested function info.
+
+2020-10-14  Martin Sebor  <msebor@redhat.com>
+
+       PR c/97413
+       * c-attribs.c (build_attr_access_from_parms): Wrap chain of VLA
+       bounds in an extra list.
+
+2020-10-05  Richard Biener  <rguenther@suse.de>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/97197
+       * c-pretty-print.c: Include langhooks.h.
+       (c_pretty_printer::postfix_expression): Handle TARGET_MEM_REF as
+       expression.
+       (c_pretty_printer::expression): Handle TARGET_MEM_REF as
+       unary_expression.
+       (c_pretty_printer::unary_expression): Handle TARGET_MEM_REF.
+
+2020-09-30  Martin Sebor  <msebor@redhat.com>
+
+       PR middle-end/97189
+       * c-attribs.c (append_access_attr): Use the function declaration
+       location for a warning about an attribute access argument.
+
+2020-09-29  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/94695
+       * c.opt (Wrange-loop-construct): New option.
+
+2020-09-23  Martin Sebor  <msebor@redhat.com>
+
+       PR c/97131
+       * c-warn.c (warn_parm_ptrarray_mismatch): Handle more invalid input.
+
+2020-09-23  Marek Polacek  <polacek@redhat.com>
+
+       PR c/97125
+       * c-gimplify.c (c_genericize): Only call do_warn_duplicated_branches_r
+       after loops and other structured control constructs have been lowered.
+
+2020-09-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * c.opt (Wbuiltin-declaration-mismatch): Fix typo in variable name:
+       warn_builtin_declaraion_mismatch -> warn_builtin_declaration_mismatch.
+
+2020-09-21  Marek Polacek  <polacek@redhat.com>
+
+       * c.opt (Wctad-maybe-unsupported): New option.
+
+2020-09-19  Martin Sebor  <msebor@redhat.com>
+
+       PR c/50584
+       * c-common.h (warn_parm_array_mismatch): Declare new function.
+       (has_attribute): Move declaration of an existing function.
+       (build_attr_access_from_parms): Declare new function.
+       * c-warn.c (parm_array_as_string): Define new function.
+       (plus_one):  Define new function.
+       (warn_parm_ptrarray_mismatch): Define new function.
+       (warn_parm_array_mismatch):  Define new function.
+       (vla_bound_parm_decl): New function.
+       * c.opt (-Warray-parameter, -Wvla-parameter): New options.
+       * c-pretty-print.c (pp_c_type_qualifier_list): Don't print array type
+       qualifiers here...
+       (c_pretty_printer::direct_abstract_declarator): ...but instead print
+       them in brackets here.  Also print [static].  Strip extraneous
+       expressions from VLA bounds.
+
+2020-09-19  Martin Sebor  <msebor@redhat.com>
+
+       PR c/50584
+       * c-attribs.c (c_common_attribute_table): Add "arg spec" attribute.
+       (handle_argspec_attribute): New function.
+       (get_argument, get_argument_type): New functions.
+       (append_access_attrs): Add overload.  Handle internal attribute
+       representation in addition to external.
+       (handle_access_attribute): Handle internal attribute representation
+       in addition to external.
+       (build_attr_access_from_parms): New function.
+
+2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * c-gimplify.c (genericize_c_loop): Rewrite to match
+       c_finish_loop in c-typeck.c.
+
+2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * c-common.c (c_block_may_fallthrough): New, split from
+       cxx_block_may_fallthrough in the cp front end.
+       (c_common_init_ts): Move handling of loop and switch-related
+       statements here from the cp front end.
+       * c-common.def (FOR_STMT, WHILE_STMT, DO_STMT): Move here from
+       cp front end.
+       (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
+       * c-common.h (c_block_may_fallthru): Declare.
+       (bc_state_t): Move here from cp front end.
+       (save_bc_state, restore_bc_state): Declare.
+       (c_genericize_control_stmt): Declare.
+       (WHILE_COND, WHILE_BODY): Likewise.
+       (DO_COND, DO_BODY): Likewise.
+       (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY, FOR_SCOPE): Likewise.
+       (SWITCH_STMT_COND, SWITCH_STMT_BODY): Likewise.
+       (SWITCH_STMT_TYPE, SWITCH_STMT_SCOPE): Likewise.
+       (SWITCH_STMT_ALL_CASES_P, SWITCH_STMT_NO_BREAK_P): Likewise.
+       (LABEL_DECL_BREAK, LABEL_DECL_CONTINUE): Likewise.
+       * c-dump.c (dump_stmt): Copy from cp front end.
+       (c_dump_tree): Move code to handle structured loop and switch
+       tree nodes here from cp front end.
+       * c-gimplify.c: Adjust includes.
+       (enum bc_t, bc_label, begin_bc_block, finish_bc_block): Move from
+       cp front end.
+       (save_bc_state, restore_bc_state): New functions using old code
+       from cp front end.
+       (get_bc_label, expr_loc_or_loc): Move from cp front end.
+       (genericize_c_loop): Move from cp front end.
+       (genericize_for_stmt, genericize_while_stmt): Likewise.
+       (genericize_do_stmt, genericize_switch_stmt): Likewise.
+       (genericize_continue_stmt, genericize_break_stmt): Likewise.
+       (genericize_omp_for_stmt): Likewise.
+       (c_genericize_control_stmt): New function using code split from
+       cp front end.
+       (c_genericize_control_r): New.
+       (c_genericize): Call walk_tree with c_genericize_control_r.
+       * c-pretty-print.c (c_pretty_printer::statement): Move code to handle
+       structured loop and switch tree nodes here from cp front end.
+
+2020-09-17  Patrick Palka  <ppalka@redhat.com>
+
+       PR c/80076
+       * c-indentation.c (should_warn_for_misleading_indentation): Move
+       declarations of local variables closer to their first use.
+       Handle virtual token locations by resolving them to their
+       respective macro expansion points.  If all three tokens are
+       produced from the same macro expansion, then instead use their
+       loci within the macro definition.
+
+2020-09-16  Martin Sebor  <msebor@redhat.com>
+
+       PR c/78666
+       PR c/96126
+       * c-attribs.c (validate_attr_args): New function.
+       (validate_attr_arg): Same.
+       (handle_section_attribute): Call it.  Introduce a local variable.
+       (handle_alloc_size_attribute):  Same.
+       (handle_alloc_align_attribute): Same.
+
+2020-09-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-attribs.c (handle_optimize_attribute): Adjust
+       cl_optimization_save, cl_optimization_restore and
+       build_optimization_node callers.
+       * c-pragma.c (handle_pragma_optimize): Adjust
+       build_optimization_node caller.
+       (handle_pragma_push_options): Adjust
+       build_optimization_node and build_target_option_node callers.
+       (handle_pragma_pop_options, handle_pragma_reset_options):
+       Adjust cl_optimization_restore callers.
+
+2020-08-28  Martin Sebor  <msebor@redhat.com>
+
+       * c.opt (Wstringop-overread): New option.
+
+2020-08-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/96545
+       * c-common.c (get_atomic_generic_size): Require that first argument's
+       type points to a complete type and use tree_fits_uhwi_p instead of
+       just INTEGER_CST TREE_CODE check for the TYPE_SIZE_UNIT.
+
+2020-07-31  Martin Sebor  <msebor@redhat.com>
+
+       PR c++/96003
+       * c-common.c (check_function_arguments_recurse): Return early when
+       no-warning bit is set.
+
+2020-07-31  Richard Biener  <rguenther@suse.de>
+
+       PR debug/96383
+       * c-common.h (c_common_finalize_early_debug): Declare.
+       * c-common.c: Include debug.h.
+       (c_common_finalize_early_debug): finalize_early_debug langhook
+       implementation generating debug for extern declarations.
+
+2020-07-27  Nathan Sidwell  <nathan@acm.org>
+
+       * c-common.c (try_to_locate_new_include_insertion_point): Use
+       strcmp, not pointer equality.
+
+2020-07-25  Martin Sebor  <msebor@redhat.com>
+
+       PR c++/96310
+       * c-common.c (check_nonnull_arg): Print note only when warning was
+       issued.
+
+2020-07-22  Tobias Burnus  <tobias@codesourcery.com>
+
+       * c-omp.c (c_finish_omp_critical): Check for no name but
+       nonzero hint provided.
+
+2020-07-20  Jason Merrill  <jason@redhat.com>
+
+       * c-cppbuiltin.c (c_cpp_builtins): Update
+       __cpp_nontype_template_args for C++20.
+
+2020-07-20  Martin Sebor  <msebor@redhat.com>
+
+       PR c/96249
+       * c.opt: Remove stray text.
+
+2020-07-14  Lewis Hyatt  <lhyatt@gmail.com>
+
+       PR other/86904
+       * c-indentation.c (should_warn_for_misleading_indentation): Get
+       global tabstop from the new source.
+       * c-opts.c (c_common_handle_option): Remove handling of -ftabstop, which
+       is now a common option.
+       * c.opt: Likewise.
+
+2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * c.opt (Wscalar-storage-order): Add explicit variable.
+
+2020-07-07  Nathan Sidwell  <nathan@acm.org>
+
+       * c-opts.c (c_common_post_options): Add 'injecting' arg to
+       cpp_read_main_file.
+       (c_finish_options): Add linemap_line_start calls for builtin and cmd
+       maps.  Force token position to line_table's highest line.
+       * c-ppoutput.c (print_line_1): Refactor, print line zero.
+       (cb_define): Always increment source line.
+
+2020-07-06  Martin Sebor  <msebor@redhat.com>
+
+       PR c++/95984
+       * c-common.c (check_function_nonnull): Avoid checking syntesized calls
+       to stub lambda objects with null this pointer.
+       (check_nonnull_arg): Handle C++ nullptr.
+
+2020-07-02  Jason Merrill  <jason@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_consteval.
+
 2020-06-30  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/95963