mirror of
https://github.com/gcc-mirror/gcc.git
synced 2024-11-21 13:40:47 +00:00
Daily bump.
This commit is contained in:
parent
2d546ff694
commit
3164de6ac1
@ -1,3 +1,8 @@
|
||||
2022-06-01 David Seifert <soap@gentoo.org>
|
||||
|
||||
PR plugins/95648
|
||||
* gcc-plugin.m4: Use libtool's $ac_cv_prog_OBJDUMP.
|
||||
|
||||
2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
|
||||
|
||||
* dfp.m4: Add aarch64 support.
|
||||
|
385
gcc/ChangeLog
385
gcc/ChangeLog
@ -1,3 +1,388 @@
|
||||
2022-06-01 David Seifert <soap@gentoo.org>
|
||||
|
||||
PR plugins/95648
|
||||
* configure: Regenerate.
|
||||
|
||||
2022-06-01 H.J. Lu <hjl.tools@gmail.com>
|
||||
|
||||
PR rtl-optimization/105638
|
||||
* df-core.cc (df_find_single_def_src): Moved and renamed from
|
||||
find_single_def_src in loop-iv.cc. Change the argument to rtx
|
||||
and use rtx_equal_p. Return null for partial or conditional
|
||||
defs.
|
||||
* df.h (df_find_single_def_src): New prototype.
|
||||
* dse.cc (record_store): Use the constant source if the source
|
||||
register is set only once.
|
||||
* loop-iv.cc (find_single_def_src): Moved to df-core.cc.
|
||||
(replace_single_def_regs): Replace find_single_def_src with
|
||||
df_find_single_def_src.
|
||||
|
||||
2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.opt (explicit_tune_core): Rename to
|
||||
selected_tune.
|
||||
(explicit_arch): Rename to selected_arch.
|
||||
(x_aarch64_override_tune_string): Remove.
|
||||
(aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
|
||||
(aarch64_override_tune_string): Add Save so it gets saved/restored.
|
||||
* config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
|
||||
* config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
|
||||
(processor): Remove archtecture_version field.
|
||||
(selected_arch): Remove global.
|
||||
(selected_cpu): Remove global.
|
||||
(selected_tune): Remove global.
|
||||
(aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
|
||||
(aarch64_override_options_internal): Use aarch64_get_tune_cpu.
|
||||
(aarch64_override_options): Further simplify code to only set
|
||||
selected_arch and selected_tune globals.
|
||||
(aarch64_option_save): Remove now that target options are saved.
|
||||
(aarch64_option_restore): Remove redundant target option restores.
|
||||
* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
|
||||
AARCH64_ISA_V9.
|
||||
* config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
|
||||
* config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
|
||||
(aarch64_ra_sign_key): Remove.
|
||||
|
||||
2022-06-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/30314
|
||||
* match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
|
||||
x > ~(utype)0 / cst): New simplification.
|
||||
|
||||
2022-06-01 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/105786
|
||||
* tree-loop-distribution.cc
|
||||
(loop_distribution::transform_reduction_loop): Only do strlen
|
||||
replacement for integer type reductions.
|
||||
|
||||
2022-06-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/105770
|
||||
* tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
|
||||
CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
|
||||
|
||||
2022-06-01 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
|
||||
(sbr_vector::sbr_vector): Same.
|
||||
(sbr_vector::grow): Same.
|
||||
(sbr_vector::set_bb_range): Same.
|
||||
(sbr_vector::get_bb_range): Same.
|
||||
(sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
|
||||
(sbr_sparse_bitmap::set_bb_range): Same.
|
||||
(sbr_sparse_bitmap::get_bb_range): Same.
|
||||
(block_range_cache::set_bb_range): Same.
|
||||
(block_range_cache::get_bb_range): Same.
|
||||
(block_range_cache::dump): Same.
|
||||
(ssa_global_cache::get_global_range): Same.
|
||||
(ssa_global_cache::set_global_range): Same.
|
||||
(ssa_global_cache::clear): Same.
|
||||
(ssa_global_cache::dump): Same.
|
||||
(ranger_cache::get_global_range): Same.
|
||||
(ranger_cache::set_global_range): Same.
|
||||
(ranger_cache::range_of_def): Same.
|
||||
(ranger_cache::entry_range): Same.
|
||||
(ranger_cache::exit_range): Same.
|
||||
(ranger_cache::edge_range): Same.
|
||||
(ranger_cache::range_of_expr): Same.
|
||||
(ranger_cache::range_on_edge): Same.
|
||||
(ranger_cache::block_range): Same.
|
||||
(ranger_cache::propagate_cache): Same.
|
||||
(ranger_cache::fill_block_cache): Same.
|
||||
(ranger_cache::range_from_dom): Same.
|
||||
* gimple-range-cache.h: Same.
|
||||
* gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
|
||||
Same.
|
||||
(gimple_outgoing_range::switch_edge_range): Same.
|
||||
(gimple_outgoing_range::edge_range_p): Same.
|
||||
* gimple-range-edge.h: Same.
|
||||
* gimple-range-fold.cc (fur_source::get_operand): Same.
|
||||
(fur_source::get_phi_operand): Same.
|
||||
(fur_edge::get_operand): Same.
|
||||
(fur_edge::get_phi_operand): Same.
|
||||
(fur_stmt::get_operand): Same.
|
||||
(fur_stmt::get_phi_operand): Same.
|
||||
(fur_list::fur_list): Same.
|
||||
(fur_list::get_operand): Same.
|
||||
(fur_list::get_phi_operand): Same.
|
||||
(fold_range): Same.
|
||||
(adjust_imagpart_expr): Same.
|
||||
(adjust_realpart_expr): Same.
|
||||
(gimple_range_adjustment): Same.
|
||||
(fold_using_range::fold_stmt): Same.
|
||||
(fold_using_range::range_of_range_op): Same.
|
||||
(fold_using_range::range_of_address): Same.
|
||||
(fold_using_range::range_of_phi): Same.
|
||||
(fold_using_range::range_of_call): Same.
|
||||
(fold_using_range::range_of_builtin_call): Same.
|
||||
(fold_using_range::range_of_builtin_int_call): Same.
|
||||
(fold_using_range::range_of_cond_expr): Same.
|
||||
(fur_source::register_outgoing_edges): Same.
|
||||
* gimple-range-fold.h (fold_range): Same.
|
||||
(gimple_range_type): Same.
|
||||
(gimple_range_ssa_p): Same.
|
||||
* gimple-range-gori.cc (gimple_range_calc_op1): Same.
|
||||
(gimple_range_calc_op2): Same.
|
||||
(gori_compute::compute_operand_range_switch): Same.
|
||||
(gori_compute::compute_operand_range): Same.
|
||||
(gori_compute::logical_combine): Same.
|
||||
(gori_compute::compute_logical_operands): Same.
|
||||
(gori_compute::compute_operand1_range): Same.
|
||||
(gori_compute::compute_operand2_range): Same.
|
||||
(gori_compute::compute_operand1_and_operand2_range): Same.
|
||||
(gori_compute::outgoing_edge_range_p): Same.
|
||||
(gori_compute::condexpr_adjust): Same.
|
||||
* gimple-range-gori.h (gimple_range_calc_op1): Same.
|
||||
(gimple_range_calc_op2): Same.
|
||||
* gimple-range-path.cc (path_range_query::get_cache): Same.
|
||||
(path_range_query::set_cache): Same.
|
||||
(path_range_query::range_on_path_entry): Same.
|
||||
(path_range_query::internal_range_of_expr): Same.
|
||||
(path_range_query::range_of_expr): Same.
|
||||
(path_range_query::ssa_range_in_phi): Same.
|
||||
(path_range_query::range_defined_in_block): Same.
|
||||
(path_range_query::compute_ranges_in_phis): Same.
|
||||
(path_range_query::compute_ranges_in_block): Same.
|
||||
(path_range_query::add_to_imports): Same.
|
||||
(path_range_query::range_of_stmt): Same.
|
||||
* gimple-range-path.h: Same.
|
||||
* gimple-range-infer.cc (gimple_infer_range::add_range): Same.
|
||||
(gimple_infer_range::~side_effect_manager): Same.
|
||||
(gimple_infer_range::get_nonzero): Same.
|
||||
(gimple_infer_range::maybe_adjust_range): Same.
|
||||
(gimple_infer_range::add_range): Same.
|
||||
* gimple-range-infer.h: Same.
|
||||
* gimple-range-tests.cc: Same.
|
||||
* gimple-range-trace.cc (range_tracer::trailer): Same.
|
||||
(debug_seed_ranger): Same.
|
||||
* gimple-range-trace.h: Same.
|
||||
* gimple-range.cc (gimple_ranger::range_of_expr): Same.
|
||||
(gimple_ranger::range_on_entry): Same.
|
||||
(gimple_ranger::range_on_exit): Same.
|
||||
(gimple_ranger::range_on_edge): Same.
|
||||
(gimple_ranger::fold_range_internal): Same.
|
||||
(gimple_ranger::range_of_stmt): Same.
|
||||
(gimple_ranger::prefill_name): Same.
|
||||
(gimple_ranger::prefill_stmt_dependencies): Same.
|
||||
(gimple_ranger::export_global_ranges): Same.
|
||||
(gimple_ranger::dump_bb): Same.
|
||||
* gimple-range.h: Same.
|
||||
* gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
|
||||
(memmodel_to_uhwi): Same.
|
||||
* tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
|
||||
(determine_value_range): Same.
|
||||
(record_nonwrapping_iv): Same.
|
||||
(infer_loop_bounds_from_signedness): Same.
|
||||
(scev_var_range_cant_overflow): Same.
|
||||
* tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
|
||||
* value-query.cc (range_query::range_on_edge): Same.
|
||||
(range_query::range_of_stmt): Same.
|
||||
(range_query::value_of_expr): Same.
|
||||
(range_query::value_on_edge): Same.
|
||||
(range_query::value_of_stmt): Same.
|
||||
(range_query::get_tree_range): Same.
|
||||
(update_global_range): Same.
|
||||
(get_range_global): Same.
|
||||
(gimple_range_global): Same.
|
||||
(global_range_query::range_of_expr): Same.
|
||||
(range_query::query_relation): Same.
|
||||
* value-query.h (gimple_range_global): Same.
|
||||
(update_global_range): Same.
|
||||
* vr-values.cc (vr_values::range_of_expr): Same.
|
||||
(bounds_of_var_in_loop): Same.
|
||||
(simplify_using_ranges::vrp_visit_cond_stmt): Same.
|
||||
* vr-values.h (class vr_values): Same.
|
||||
* tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
|
||||
|
||||
2022-06-01 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
|
||||
vrange allocator.
|
||||
(sbr_vector::grow): Same.
|
||||
(sbr_vector::set_bb_range): Same.
|
||||
(sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
|
||||
(sbr_sparse_bitmap::set_bb_range): Same.
|
||||
(block_range_cache::~block_range_cache): Same.
|
||||
(block_range_cache::set_bb_range): Same.
|
||||
(ssa_global_cache::ssa_global_cache): Same.
|
||||
(ssa_global_cache::~ssa_global_cache): Same.
|
||||
(ssa_global_cache::set_global_range): Same.
|
||||
* gimple-range-cache.h (block_range_cache): Same.
|
||||
(ssa_global_cache): Same.
|
||||
* gimple-range-edge.cc
|
||||
(gimple_outgoing_range::calc_switch_ranges): Same.
|
||||
* gimple-range-edge.h (gimple_outgoing_range): Same.
|
||||
* gimple-range-infer.cc (infer_range_manager::get_nonzero):
|
||||
Same.
|
||||
(infer_range_manager::add_range): Same.
|
||||
* gimple-range-infer.h (class infer_range_manager): Same.
|
||||
* value-range.h (class irange_allocator): Rename to...
|
||||
(class vrange_allocator): ...this.
|
||||
(irange_allocator::irange_allocator): New.
|
||||
(vrange_allocator::vrange_allocator): New.
|
||||
(irange_allocator::~irange_allocator): New.
|
||||
(vrange_allocator::~vrange_allocator): New.
|
||||
(irange_allocator::get_memory): Rename to...
|
||||
(vrange_allocator::alloc): ...this.
|
||||
(vrange_allocator::alloc_vrange): Rename from...
|
||||
(irange_allocator::allocate): ...this.
|
||||
(vrange_allocator::alloc_irange): New.
|
||||
|
||||
2022-06-01 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
|
||||
vrange and convert range_op_handler function calls to use the
|
||||
identically named object.
|
||||
* gimple-range-fold.cc (gimple_range_operand1): Same.
|
||||
(gimple_range_operand2): Same.
|
||||
(fold_using_range::fold_stmt): Same.
|
||||
(fold_using_range::range_of_range_op): Same.
|
||||
(fold_using_range::range_of_builtin_ubsan_call): Same.
|
||||
(fold_using_range::relation_fold_and_or): Same.
|
||||
(fur_source::register_outgoing_edges): Same.
|
||||
* gimple-range-fold.h (gimple_range_handler): Remove.
|
||||
* gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
|
||||
(gimple_range_calc_op2): Same.
|
||||
(range_def_chain::get_def_chain): Same.
|
||||
(gori_compute::compute_operand_range): Same.
|
||||
(gori_compute::condexpr_adjust): Same.
|
||||
* gimple-range.cc (gimple_ranger::prefill_name): Same.
|
||||
(gimple_ranger::prefill_stmt_dependencies): Same.
|
||||
* range-op.cc (get_bool_state): Same.
|
||||
(class operator_equal): Add using clause.
|
||||
(class operator_not_equal): Same.
|
||||
(class operator_lt): Same.
|
||||
(class operator_le): Same.
|
||||
(class operator_gt): Same.
|
||||
(class operator_ge): Same.
|
||||
(class operator_plus): Same.
|
||||
(class operator_minus): Same.
|
||||
(class operator_mult): Same.
|
||||
(class operator_exact_divide): Same.
|
||||
(class operator_lshift): Same.
|
||||
(class operator_rshift): Same.
|
||||
(class operator_cast): Same.
|
||||
(class operator_logical_and): Same.
|
||||
(class operator_bitwise_and): Same.
|
||||
(class operator_logical_or): Same.
|
||||
(class operator_bitwise_or): Same.
|
||||
(class operator_bitwise_xor): Same.
|
||||
(class operator_trunc_mod): Same.
|
||||
(class operator_logical_not): Same.
|
||||
(class operator_bitwise_not): Same.
|
||||
(class operator_cst): Same.
|
||||
(class operator_identity): Same.
|
||||
(class operator_unknown): Same.
|
||||
(class operator_abs): Same.
|
||||
(class operator_negate): Same.
|
||||
(class operator_addr_expr): Same.
|
||||
(class pointer_or_operator): Same.
|
||||
(operator_plus::op1_range): Adjust for vrange.
|
||||
(operator_minus::op1_range): Same.
|
||||
(operator_mult::op1_range): Same.
|
||||
(operator_cast::op1_range): Same.
|
||||
(operator_bitwise_not::fold_range): Same.
|
||||
(operator_negate::fold_range): Same.
|
||||
(range_op_handler): Rename to...
|
||||
(get_handler): ...this.
|
||||
(range_op_handler::range_op_handler): New.
|
||||
(range_op_handler::fold_range): New.
|
||||
(range_op_handler::op1_range): New.
|
||||
(range_op_handler::op2_range): New.
|
||||
(range_op_handler::lhs_op1_relation): New.
|
||||
(range_op_handler::lhs_op2_relation): New.
|
||||
(range_op_handler::op1_op2_relation): New.
|
||||
(range_cast): Adjust for vrange.
|
||||
* range-op.h (range_op_handler): Remove function.
|
||||
(range_cast): Adjust for vrange.
|
||||
(class range_op_handler): New.
|
||||
(get_bool_state): Adjust for vrange.
|
||||
(empty_range_varying): Same.
|
||||
(relop_early_resolve): Same.
|
||||
* tree-data-ref.cc (compute_distributive_range): Same.
|
||||
* tree-vrp.cc (get_range_op_handler): Remove.
|
||||
(range_fold_binary_symbolics_p): Use range_op_handler class
|
||||
instead of get_range_op_handler.
|
||||
(range_fold_unary_symbolics_p): Same.
|
||||
(range_fold_binary_expr): Same.
|
||||
(range_fold_unary_expr): Same.
|
||||
* value-query.cc (range_query::get_tree_range): Adjust for vrange.
|
||||
|
||||
2022-06-01 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* gimple-range-fold.h (gimple_range_type): Check type before
|
||||
calling supports_type_p.
|
||||
* gimple-range-path.cc (path_range_query::range_of_stmt): Same.
|
||||
* value-query.cc (range_query::get_tree_range): Same.
|
||||
* value-range.cc (Value_Range::lower_bound): New.
|
||||
(Value_Range::upper_bound): New.
|
||||
(Value_Range::dump): New.
|
||||
* value-range.h (class Value_Range): New.
|
||||
(irange::supports_type_p): Do not check if type is non-zero.
|
||||
|
||||
2022-06-01 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* value-range-equiv.cc (value_range_equiv::set): New.
|
||||
* value-range-equiv.h (class value_range_equiv): Make set method
|
||||
virtual.
|
||||
Remove default bitmap argument from set method.
|
||||
* value-range.cc (vrange::contains_p): New.
|
||||
(vrange::singleton_p): New.
|
||||
(vrange::operator=): New.
|
||||
(vrange::operator==): New.
|
||||
(irange::fits_p): Move to .cc file.
|
||||
(irange::set_nonnegative): New.
|
||||
(unsupported_range::unsupported_range): New.
|
||||
(unsupported_range::set): New.
|
||||
(unsupported_range::type): New.
|
||||
(unsupported_range::set_undefined): New.
|
||||
(unsupported_range::set_varying): New.
|
||||
(unsupported_range::dump): New.
|
||||
(unsupported_range::union_): New.
|
||||
(unsupported_range::intersect): New.
|
||||
(unsupported_range::zero_p): New.
|
||||
(unsupported_range::nonzero_p): New.
|
||||
(unsupported_range::set_nonzero): New.
|
||||
(unsupported_range::set_zero): New.
|
||||
(unsupported_range::set_nonnegative): New.
|
||||
(unsupported_range::fits_p): New.
|
||||
(irange::set): Call irange::set_undefined.
|
||||
(irange::verify_range): Check discriminator field.
|
||||
(irange::dump): Dump [irange] marker.
|
||||
(irange::debug): Move to...
|
||||
(vrange::debug): ...here.
|
||||
(dump_value_range): Accept vrange.
|
||||
(debug): Same.
|
||||
* value-range.h (enum value_range_discriminator): New.
|
||||
(class vrange): New.
|
||||
(class unsupported_range): New.
|
||||
(struct vrange_traits): New.
|
||||
(is_a): New.
|
||||
(as_a): New.
|
||||
(class irange): Inherit from vrange.
|
||||
(dump_value_range): Adjust for vrange.
|
||||
(irange::kind): Rename to...
|
||||
(vrange::kind): ...this.
|
||||
(irange::varying_p): Rename to...
|
||||
(vrange::varying_p): ...this.
|
||||
(irange::undefined_p): Rename to...
|
||||
(vrange::undefined_p): ...this.
|
||||
(irange::irange): Set discriminator.
|
||||
(irange::union_): Convert to irange before passing to irange
|
||||
method.
|
||||
(irange::intersect): Same.
|
||||
(vrange::supports_type_p): New.
|
||||
* vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
|
||||
NULL bitmap argument to value_range_equiv::set.
|
||||
(vr_values::extract_range_basic): Same.
|
||||
|
||||
2022-06-01 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/105763
|
||||
* tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
|
||||
Check gimple_range_ssa_p.
|
||||
|
||||
2022-05-31 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* Makefile.in (TAGS): Look at libcpp/*.cc.
|
||||
|
@ -1 +1 @@
|
||||
20220601
|
||||
20220602
|
||||
|
@ -1,3 +1,275 @@
|
||||
2022-06-01 Yannick Moy <moy@adacore.com>
|
||||
|
||||
* contracts.adb (Check_Type_Or_Object_External_Properties): Check
|
||||
the validity of combinations only when No_Caching is not used.
|
||||
* sem_prag.adb (Analyze_External_Property_In_Decl_Part): Check
|
||||
valid combinations with No_Caching.
|
||||
|
||||
2022-06-01 Doug Rupp <rupp@adacore.com>
|
||||
|
||||
* libgnat/system-vxworks7-aarch64.ads (Word_Size): Compute
|
||||
based on Standard'Word_Size. (Memory_Size): Compute based
|
||||
on Word_Size.
|
||||
* libgnat/system-vxworks7-arm.ads: Likewise.
|
||||
* libgnat/system-vxworks7-e500-kernel.ads: Likewise.
|
||||
* libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
|
||||
* libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
|
||||
* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
|
||||
* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
|
||||
|
||||
2022-06-01 Doug Rupp <rupp@adacore.com>
|
||||
|
||||
* libgnat/system-qnx-arm.ads (Memory_Size): Compute based on
|
||||
Word_Size.
|
||||
|
||||
2022-06-01 Piotr Trojanek <trojanek@adacore.com>
|
||||
|
||||
* par-util.adb (Ignore): Add missing space to message string.
|
||||
|
||||
2022-06-01 Yannick Moy <moy@adacore.com>
|
||||
|
||||
* sem_prag.ads (Assertion_Expression_Pragmas): Fix value for
|
||||
pragma Subprogram_Variant.
|
||||
|
||||
2022-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* exp_ch6.adb (Caller_Known_Size): Invoke Needs_Secondary_Stack in
|
||||
lieu of Returns_On_Secondary_Stack.
|
||||
(Expand_Call_Helper): Likewise.
|
||||
(Expand_Simple_Function_Return): Likewise.
|
||||
(Needs_BIP_Alloc_Form): Likewise.
|
||||
* exp_ch7.adb (Wrap_Transient_Declaration): Likewise.
|
||||
* sem_res.adb (Resolve_Call): Likewise.
|
||||
(Resolve_Entry_Call): Likewise.
|
||||
* sem_util.ads (Returns_On_Secondary_Stack): Rename into...
|
||||
(Needs_Secondary_Stack): ...this.
|
||||
* sem_util.adb (Returns_On_Secondary_Stack): Rename into...
|
||||
(Needs_Secondary_Stack): ...this.
|
||||
* fe.h (Returns_On_Secondary_Stack): Delete.
|
||||
(Needs_Secondary_Stack): New function.
|
||||
* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Replace call
|
||||
to Returns_On_Secondary_Stack with Needs_Secondary_Stack.
|
||||
|
||||
2022-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): For the case where
|
||||
there is no previous declaration, freeze the body entity only after
|
||||
it has been processed as a new overloaded name.
|
||||
Use Was_Expression_Function to recognize expression functions.
|
||||
* sem_disp.adb (Check_Dispatching_Operation): Do not require a body
|
||||
which is the last primitive to be frozen here.
|
||||
|
||||
2022-06-01 Julien Bortolussi <bortolussi@adacore.com>
|
||||
|
||||
* libgnat/a-cfdlli.adb ("="): Make the function properly loop
|
||||
over the right list.
|
||||
|
||||
2022-06-01 Marc Poulhiès <poulhies@adacore.com>
|
||||
|
||||
* checks.adb (Apply_Predicate_Check): Refine condition for
|
||||
applying optimization.
|
||||
* sem_ch3.adb (Analyze_Component_Declaration): Adjust calls to
|
||||
Should_Build_Subtype.
|
||||
(Analyze_Object_Declaration): Likewise.
|
||||
(Should_Build_Subtype): Rename/move to ...
|
||||
* sem_util.ads (Build_Default_Subtype_OK): ... this.
|
||||
* sem_util.adb (Build_Default_Subtype_OK): Moved from
|
||||
sem_ch3.adb.
|
||||
|
||||
2022-06-01 Doug Rupp <rupp@adacore.com>
|
||||
|
||||
* init.c (__gnat_adjust_context_for_raise) [QNX][__thumb2__]: Bump
|
||||
the pc an extra byte.
|
||||
|
||||
2022-06-01 Ghjuvan Lacambre <lacambre@adacore.com>
|
||||
|
||||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
|
||||
Document new behavior.
|
||||
* errout.adb (Write_JSON_Location): Output absolute paths when
|
||||
needed.
|
||||
* switch-c.adb (Scan_Front_End_Switches): Update -gnatef
|
||||
comment.
|
||||
* usage.adb (Usage): Update description of -gnatef.
|
||||
* gnat_ugn.texi: Regenerate.
|
||||
|
||||
2022-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* contracts.adb (Build_Postconditions_Procedure): Set Is_Inlined
|
||||
unconditionnally on the procedure entity.
|
||||
|
||||
2022-06-01 Piotr Trojanek <trojanek@adacore.com>
|
||||
|
||||
* sem_ch3.adb (Constrain_Access): Propagate null-exclusion flag
|
||||
from parent type.
|
||||
|
||||
2022-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* sem_ch5.adb (Analyze_Loop_Statement): Add a comment about
|
||||
a finalization issue.
|
||||
|
||||
2022-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* exp_ch6.adb (Caller_Known_Size): Call Returns_On_Secondary_Stack
|
||||
instead of Requires_Transient_Scope and tidy up.
|
||||
(Needs_BIP_Alloc_Form): Likewise.
|
||||
* exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Also return
|
||||
true if the build-in-place function call has no BIPalloc parameter.
|
||||
(Is_Finalizable_Transient): Remove redundant test.
|
||||
|
||||
2022-06-01 Alexandre Oliva <oliva@adacore.com>
|
||||
|
||||
* doc/gnat_rm/security_hardening_features.rst: Note that hardening
|
||||
features are experimental.
|
||||
* gnat_rm.texi: Regenerate.
|
||||
|
||||
2022-06-01 Steve Baird <baird@adacore.com>
|
||||
|
||||
* exp_ch3.adb (Make_Controlling_Function_Wrappers): Set the
|
||||
Corresponding_Spec field of a wrapper subprogram body before
|
||||
analyzing the subprogram body; the field will be set (again)
|
||||
during analysis, but we need it to be set earlier.
|
||||
* exp_ch13.adb (Expand_N_Freeze_Entity): Add wrapper subprogram
|
||||
bodies to the list of declarations for which we do not want to
|
||||
suppress checks.
|
||||
|
||||
2022-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* sem_util.adb (Indirect_Temp_Needed): Adjust reference in comment.
|
||||
|
||||
2022-06-01 Doug Rupp <rupp@adacore.com>
|
||||
|
||||
* Makefile.rtl (GNATLIB_SHARED): Revert disablement for arm-qnx.
|
||||
|
||||
2022-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* sem_util.adb
|
||||
(Returns_On_Secondary_Stack.Caller_Known_Size_Record): Directly
|
||||
check the dependence on discriminants for the variant part, if
|
||||
any, instead of calling the Is_Definite_Subtype predicate.
|
||||
|
||||
2022-06-01 Ghjuvan Lacambre <lacambre@adacore.com>
|
||||
|
||||
* sem_warn.adb (Warn_On_Unreferenced_Entity): Fix warning tag.
|
||||
|
||||
2022-06-01 Ghjuvan Lacambre <lacambre@adacore.com>
|
||||
|
||||
* sem_warn.adb (Check_References): Adjust conditions under which
|
||||
warning messages should be emitted and their tags as well.
|
||||
|
||||
2022-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* exp_disp.ads (Expand_Interface_Thunk): Change type of Prim.
|
||||
* exp_disp.adb (Expand_Interface_Thunk): Declare Is_Predef_Op
|
||||
earlier, do not initialize Iface_Formal, use No idiom and tweaks
|
||||
comments.
|
||||
(Register_Primitive): Declare L earlier and tweak comments.
|
||||
* sem_disp.adb (Check_Dispatching_Operation): Move tests out of
|
||||
loop.
|
||||
|
||||
2022-06-01 Steve Baird <baird@adacore.com>
|
||||
|
||||
* exp_ch3.ads: Replace visible Build_Discr_Checking_Funcs (which
|
||||
did not need to be visible - it was not referenced outside this
|
||||
package) with Build_Or_Copy_Discr_Checking_Funcs.
|
||||
* exp_ch3.adb: Refactor existing code into 3 procedures -
|
||||
Build_Discr_Checking_Funcs, Copy_Discr_Checking_Funcs, and
|
||||
Build_Or_Copy_Discr_Checking_Funcs. This refactoring is intended
|
||||
to be semantics-preserving.
|
||||
* exp_ch4.adb (Expand_N_Selected_Component): Detect case where a
|
||||
call should be generated to the Discriminant_Checking_Func for
|
||||
the component in question, but that subprogram does not yet
|
||||
exist.
|
||||
* sem_ch13.adb (Freeze_Entity_Checks): Immediately before
|
||||
calling Build_Predicate_Function, add a call to
|
||||
Exp_Ch3.Build_Or_Copy_Discr_Checking_Funcs in order to ensure
|
||||
that Discriminant_Checking_Func attributes are already set when
|
||||
Build_Predicate_Function is called.
|
||||
* sem_ch6.adb (Analyze_Expression_Function): If the expression
|
||||
of a static expression function has been transformed into an
|
||||
N_Raise_xxx_Error node, then we need to copy the original
|
||||
expression in order to check the requirement that the expression
|
||||
must be a potentially static expression. We also want to set
|
||||
aside a copy the untransformed expression for later use in
|
||||
checking calls to the expression function via
|
||||
Inline_Static_Function_Call. So introduce a new function,
|
||||
Make_Expr_Copy, for use in these situations.
|
||||
* sem_res.adb (Preanalyze_And_Resolve): When analyzing certain
|
||||
expressions (e.g., a default parameter expression in a
|
||||
subprogram declaration) we want to suppress checks. However, we
|
||||
do not want to suppress checks for the expression of an
|
||||
expression function.
|
||||
|
||||
2022-06-01 Bob Duff <duff@adacore.com>
|
||||
|
||||
* exp_ch5.adb (Expand_Iterator_Loop_Over_Container): For each
|
||||
subprogram found, assert that the variable is Empty, so we can
|
||||
detect bugs where we find two or more things with the same name.
|
||||
Without this patch, that bug would happen when we add the new
|
||||
Next procedure. For Step, make sure we pick the right one, by
|
||||
checking name and number of parameters. For Get_Element_Access,
|
||||
check that we're picking a function. That's not really
|
||||
necessary, because there is no procedure with that name, but it
|
||||
seems cleaner this way.
|
||||
* rtsfind.ads: Minor comment improvement. It seems kind of odd
|
||||
to say "under no circumstances", and then immediately contradict
|
||||
that with "The one exception is...".
|
||||
|
||||
2022-06-01 Doug Rupp <rupp@adacore.com>
|
||||
|
||||
* init.c (QNX): __gnat_adjust_context_for_raise: New
|
||||
implementation for arm-qnx.
|
||||
|
||||
2022-06-01 Julien Bortolussi <bortolussi@adacore.com>
|
||||
|
||||
* libgnat/a-cofuba.ads, libgnat/a-cofuba.adb: Add reference
|
||||
counting.
|
||||
|
||||
2022-06-01 Yannick Moy <moy@adacore.com>
|
||||
|
||||
* sem_ch8.adb (Use_One_Package): Possibly warn.
|
||||
* sem_util.adb (Enter_Name): Factor out warning on hidden entity.
|
||||
(Warn_On_Hiding_Entity): Extract warning logic from Enter_Name and
|
||||
generalize it to be applied also on use_clause.
|
||||
* sem_util.ads (Warn_On_Hiding_Entity): Add new procedure.
|
||||
|
||||
2022-06-01 Yannick Moy <moy@adacore.com>
|
||||
|
||||
* par-ch3.adb (P_Known_Discriminant_Part_Opt): Reword error
|
||||
message to benefit from existing codefix.
|
||||
(P_Record_Definition): Detect out-of-order keywords in record
|
||||
definition and issue appropriate messages. Other cases are
|
||||
already caught at appropriate places.
|
||||
|
||||
2022-06-01 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* exp_ch6.adb (Freeze_Subprogram.Register_Predefined_DT_Entry): Put
|
||||
the actions into the Actions field of the freeze node instead of
|
||||
inserting them after it.
|
||||
|
||||
2022-06-01 Marc Poulhiès <poulhies@adacore.com>
|
||||
|
||||
* sinfo.ads: Add inline documention for Is_Parenthesis_Aggregate
|
||||
and Is_Enum_Array_Aggregate.
|
||||
|
||||
2022-06-01 Bob Duff <duff@adacore.com>
|
||||
|
||||
* einfo-utils.adb (Set_Convention): Call Set_Convention
|
||||
recursively, so that Set_Can_Use_Internal_Rep is called (if
|
||||
appropriate) on the anonymous access type of the object, and its
|
||||
designated subprogram type.
|
||||
* sem_ch3.adb (Access_Definition): Remove redundant call to
|
||||
Set_Can_Use_Internal_Rep.
|
||||
|
||||
2022-06-01 Bob Duff <duff@adacore.com>
|
||||
|
||||
* exp_ch4.adb (Expand_N_In): Do not warn in the above-mentioned
|
||||
cases.
|
||||
* fe.h (Assume_No_Invalid_Values): Remove from fe.h, because
|
||||
this is not used in gigi.
|
||||
* opt.ads (Assume_No_Invalid_Values): Improve the comment. We
|
||||
don't need to "clearly prove"; we can just "prove". Remove the
|
||||
comment about fe.h, which is no longer true.
|
||||
|
||||
2022-05-30 Ghjuvan Lacambre <lacambre@adacore.com>
|
||||
|
||||
* erroutc.adb (Get_Warning_Option): Don't consider `?` as a
|
||||
|
@ -1,3 +1,44 @@
|
||||
2022-06-01 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/105734
|
||||
* parser.cc (cp_parser_postfix_dot_deref_expression): Use typeof
|
||||
if the expression has auto type.
|
||||
|
||||
2022-06-01 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/105779
|
||||
* call.cc (resolve_args): Call mark_single_function here.
|
||||
* pt.cc (unify_one_argument): Not here.
|
||||
|
||||
2022-06-01 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* decl2.cc (fix_temporary_vars_context_r): Use data argument
|
||||
for new context.
|
||||
(one_static_initialization_or_destruction): Adjust tree walk
|
||||
call. Refactor guard generation.
|
||||
|
||||
2022-06-01 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* decl2.cc (ssdf_decl): Delete global.
|
||||
(start_static_storage_duration_function): Use some RAII.
|
||||
(do_static_initialization_or_destruction): Likewise.
|
||||
(c_parse_final_cleanups): Likewise. Avoid rechecking 'vars'.
|
||||
|
||||
2022-06-01 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* decl2.cc (start_objects): Replace 'method_type' parameter
|
||||
with 'initp' boolean, rename and retype 'priority' parameter.
|
||||
(finish_objects): Likewise. Do not expand here.
|
||||
(one_static_initialization_or_destruction): Move 'initp'
|
||||
parameter first.
|
||||
(do_static_initialization_or_destruction): Likewise.
|
||||
(generate_ctor_or_dtor_function): Rename 'initp' parameter.
|
||||
Adjust start_objects/finish_obects calls and expand here.
|
||||
(generate_ctor_and_dtor_functions_for_priority): Adjust calls.
|
||||
(c_parse_final_cleanups): Likewise.
|
||||
(vtv_start_verification_constructor_init): Adjust.
|
||||
(vtv_finish_verification_constructor_init): Use finish_objects.
|
||||
|
||||
2022-05-31 Patrick Palka <ppalka@redhat.com>
|
||||
|
||||
PR c++/105758
|
||||
|
@ -1,3 +1,38 @@
|
||||
2022-06-01 H.J. Lu <hjl.tools@gmail.com>
|
||||
|
||||
PR rtl-optimization/105638
|
||||
* g++.target/i386/pr105638.C: New test.
|
||||
|
||||
2022-06-01 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/105734
|
||||
* g++.dg/cpp0x/auto57.C: New test.
|
||||
|
||||
2022-06-01 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/105779
|
||||
* g++.dg/cpp1y/auto-fn63.C: New test.
|
||||
|
||||
2022-06-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/30314
|
||||
* gcc.dg/tree-ssa/pr30314.c: New test.
|
||||
|
||||
2022-06-01 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/105786
|
||||
* gcc.dg/torture/pr105786.c: New testcase.
|
||||
|
||||
2022-06-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/105770
|
||||
* gcc.dg/pr105770.c: New test.
|
||||
|
||||
2022-06-01 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/105763
|
||||
* gcc.dg/pr105763.c: New testcase.
|
||||
|
||||
2022-05-31 Patrick Palka <ppalka@redhat.com>
|
||||
|
||||
PR c++/105758
|
||||
|
@ -1,3 +1,8 @@
|
||||
2022-06-01 David Seifert <soap@gentoo.org>
|
||||
|
||||
PR plugins/95648
|
||||
* configure: Regenerate.
|
||||
|
||||
2021-12-16 Patrick Palka <ppalka@redhat.com>
|
||||
|
||||
PR c++/51577
|
||||
|
@ -1,3 +1,8 @@
|
||||
2022-06-01 H.J. Lu <hjl.tools@gmail.com>
|
||||
|
||||
PR libgcc/27576
|
||||
* crtstuff.c (__EH_FRAME_BEGIN__): Aligned to pointer size.
|
||||
|
||||
2022-05-25 Wilco Dijkstra <wilco.dijkstra@arm.com>
|
||||
|
||||
PR libgcc/105708
|
||||
|
Loading…
Reference in New Issue
Block a user