aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2021-07-12[Ada] Add DWARF 5 support to System.Dwarf_LineEric Botcazou2-313/+653
gcc/ada/ * libgnat/s-dwalin.ads: Adjust a few comments left and right. (Line_Info_Register): Comment out unused components. (Line_Info_Header): Add DWARF 5 support. (Dwarf_Context): Likewise. Rename "prologue" into "header". * libgnat/s-dwalin.adb: Alphabetize "with" clauses. (DWARF constants): Add DWARF 5 support and reorder. (For_Each_Row): Adjust. (Initialize_Pass): Likewise. (Initialize_State_Machine): Likewise and fix typo. (Open): Add DWARF 5 support. (Parse_Prologue): Rename into... (Parse_Header): ...this and add DWARF 5 support. (Read_And_Execute_Isn): Rename into... (Read_And_Execute_Insn): ...this and adjust. (To_File_Name): Change parameter name and add DWARF 5 support. (Read_Entry_Format_Array): New procedure. (Skip_Form): Add DWARF 5 support and reorder. (Seek_Abbrev): Do not count entries and add DWARF 5 support. (Debug_Info_Lookup): Add DWARF 5 support. (Symbolic_Address.Set_Result): Likewise. (Symbolic_Address): Adjust.
2021-07-12[Ada] Duplicate Size/Value_Size clauseBob Duff2-14/+55
gcc/ada/ * sem_ch13.adb (Duplicate_Clause): Add a helper routine Check_One_Attr, with a parameter for the attribute_designator we are looking for, and one for the attribute_designator of the current node (which are usually the same). For Size and Value_Size, call it twice, once for each. * errout.ads: Fix a typo.
2021-07-12[Ada] Avoid unnecessary work when expanding 'Image into 'Put_ImagePiotr Trojanek1-9/+10
gcc/ada/ * exp_imgv.adb (Expand_Image_Attribute): Move rewriting to attribute Put_Image to the beginning of expansion of attribute Image.
2021-07-12Display the number of components BB vectorizedRichard Biener3-6/+10
This amends the optimization message printed when a basic-block part is vectorized to mention the number of SLP graph entries. This helps when debugging vectorization differences and we end up merging SLP instances for costing purposes. 2021-07-07 Richard Biener <rguenther@suse.de> * tree-vect-slp.c (vect_slp_region): Show the number of SLP graph entries in the optimization message. * g++.dg/vect/slp-pr87105.cc: Adjust. * gcc.dg/vect/bb-slp-pr54400.c: Likewise.
2021-07-12tree-optimization/101394 - fix PRE full redundancy wrt abnormalsRichard Biener2-1/+23
This avoids adding a copy from an abnormal picked up from PHI translation much like we'd avoid inserting the translated expression on pred edges. 2021-07-12 Richard Biener <rguenther@suse.de> PR tree-optimization/101394 * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting copies from abnormals for a full redundancy. * gcc.dg/torture/pr101394.c: New testcase.
2021-07-12middle-end/101423 - internal calls do not trapRichard Biener2-2/+7
This adjusts gimple_could_trap_p to not consider internal function calls to trap compared to indirect calls or calls to weak functions. 2021-07-12 Richard Biener <rguenther@suse.de> PR middle-end/101423 * gimple.c (gimple_could_trap_p_1): Internal function calls do not trap. * tree-eh.c (tree_could_trap_p): Likewise.
2021-07-12Tweak testcase for PR tree-optimization/101403.Roger Sayle1-1/+1
Initialize unused variable u in compound expression. Committed as obvious. 2021-07-12 Roger Sayle <roger@nextmovesoftware.com> Jakub Jelinek <jakub@redhat.com> gcc/testsuite/ChangeLog PR tree-optimization/101403 * gcc.dg/pr101403.c: Avoid (unimportant) uninitialized variable.
2021-07-12arm/66791: Replace builtins for unsigned and fp vmul_n intrinsics.prathamesh.kulkarni2-9/+25
gcc/ChangeLog: PR target/66791 * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with __a * __b. (vmulq_n_u32): Likewise. (vmul_n_f32): Gate __a * __b on __FAST_MATH__. (vmulq_n_f32): Likewise. (vmul_n_f16): Likewise. (vmulq_n_f16): Likewise. gcc/testsuite/ChangeLog: PR target/66791 * gcc.target/arm/armv8_2-fp16-neon-2.c: Adjust.
2021-07-12offloading: fix -foffload hintingMartin Liska1-7/+10
PR sanitizer/101425 gcc/ChangeLog: * gcc.c (check_offload_target_name): Call candidates_list_and_hint only if we have a candidate.
2021-07-12arm/98435: Missed optimization in expanding vector constructor.prathamesh.kulkarni3-9/+24
The patch moves vec_init pattern from neon.md to vec-common.md, and adjusts the mode to VDQX to accomodate binary floats. Also, the pattern is additionally gated on VALID_MVE_MODE. gcc/ChangeLog: PR target/98435 * config/arm/neon.md (vec_init): Move to ... * config/arm/vec-common.md (vec_init): ... here. Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE. gcc/testsuite/ChangeLog: PR target/98435 * gcc.target/arm/simd/pr98435.c: New test.
2021-07-12PR tree-optimization/101403: Incorrect folding of ((T)bswap(x))>>CRoger Sayle2-12/+41
My sincere apologies for the breakage. My recent patch to fold bswapN(x)>>C where the constant C was large enough that the result only contains bits from the low byte, and can therefore avoid the byte swap contains a minor logic error. The pattern contains a convert? allowing an extension to occur between the bswap and the shift. The logic is correct if there's no extension, or the extension has the same sign as the shift, but I'd mistakenly convinced myself that these couldn't have different signedness. (T)bswap16(x)>>12 is (T)((unsigned char)x>>4) or (T)((signed char)x>>4). The bug is that for zero-extensions to signed type T, we need to use the unsigned char variant [the signedness of the byte shift is not (always) the same as the signedness of T and the original shift]. Then because I'm now paranoid, I've also added a clause to handle the hypothetical (but in practice impossible) sign-extension to an unsigned type T, which can implemented as (T)(x<<8)>>12. 2021-07-12 Roger Sayle <roger@nextmovesoftware.com> gcc/ChangeLog PR tree-optimization/101403 * match.pd ((T)bswap(X)>>C): Correctly handle cases where signedness of the shift is not the same as the signedness of the type extension. gcc/testsuite/ChangeLog PR tree-optimization/101403 * gcc.dg/pr101403.c: New test case.
2021-07-12Daily bump.GCC Administrator1-1/+1
2021-07-11Daily bump.GCC Administrator3-1/+23
2021-07-10Require target lra for tests using asm gotoJohn David Anglin2-2/+2
gcc/testsuite/ChangeLog: * gcc.dg/torture/pr100329.c: Require target lra. * gcc.dg/torture/pr100519.c: Likewise.
2021-07-09runtime: remove direct assignments to memory locationsIan Lance Taylor1-1/+1
PR bootstrap/101374 They cause a warning with the updated GCC -Warray-bounds option. Replace them with calls to abort, which for our purposes is fine. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/333409
2021-07-09c++: 'new T[N]' and SFINAE [PR82110]Patrick Palka4-16/+41
Here we're failing to treat 'new T[N]' as erroneous in a SFINAE context when T isn't default constructible because expand_aggr_init_1 doesn't communicate to build_aggr_init (its only SFINAE caller) whether the initialization was actually successful. To fix this, this patch makes expand_aggr_init_1 and its subroutine expand_default_init return true on success, false on failure so that build_aggr_init can properly return error_mark_node on failure. PR c++/82110 gcc/cp/ChangeLog: * init.c (build_aggr_init): Return error_mark_node if expand_aggr_init_1 returns false. (expand_default_init): Change return type to bool. Return false on error, true on success. (expand_aggr_init_1): Likewise. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/pr78765.C: Expect another conversion failure diagnostic. * g++.dg/template/sfinae14.C: Flip incorrect assertion. * g++.dg/cpp2a/concepts-requires27.C: New test.
2021-07-10Daily bump.GCC Administrator5-1/+416
2021-07-09c++: concepts TS and explicit specialization [PR101098]Jason Merrill2-1/+12
duplicate_decls was not recognizing the explicit specialization as matching the implicit specialization of g<Y> because function_requirements_equivalent_p was seeing the C constraint on the implicit one and not on the explicit. PR c++/101098 gcc/cp/ChangeLog: * decl.c (function_requirements_equivalent_p): Only compare trailing requirements on a specialization. gcc/testsuite/ChangeLog: * g++.dg/concepts/explicit-spec1.C: New test.
2021-07-09coroutines: Factor code. Match original source location in helpers [NFC].Iain Sandoe1-14/+15
This is primarily a source code refactoring, the only change is to ensure that the outlined functions are marked to begin at the same line as the original. Otherwise, they get the default (which seems to be input_location, which corresponds to the closing brace at the point that this is done). Having the source location point to that confuses some debuggers. This is a contributory fix to: PR c++/99215 - coroutines: debugging with gdb Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> gcc/cp/ChangeLog: * coroutines.cc (build_actor_fn): Move common code to act_des_fn. (build_destroy_fn): Likewise. (act_des_fn): Build the void return here. Ensure that the source location matches the original function.
2021-07-09Improvement to signed division of integer constant on x86_64.Roger Sayle2-1/+40
This patch tweaks the way GCC handles 32-bit integer division on x86_64, when the numerator is constant. Currently the function int foo (int x) { return 100/x; } generates the code: foo: movl $100, %eax cltd idivl %edi ret where the sign-extension instruction "cltd" creates a long dependency chain, as it depends on the "mov" before it, and is depended upon by "idivl" after it. With this patch, GCC now matches both icc and LLVM and uses an xor instead, generating: foo: xorl %edx, %edx movl $100, %eax idivl %edi ret Microbenchmarking confirms that this is faster on Intel processors (Kaby lake), and no worse on AMD processors (Zen2), which agrees with intuition, but oddly disagrees with the llvm-mca cycle count prediction on godbolt.org. The tricky bit is that this sign-extension instruction is only produced by late (postreload) splitting, and unfortunately none of the subsequent passes (e.g. cprop_hardreg) is able to propagate and simplify its constant argument. The solution here is to introduce a define_insn_and_split that allows the constant numerator operand to be captured (by combine) and then split into an optimal form after reload. The above microbenchmarking also shows that eliminating the sign extension of negative values (using movl $-1,%edx) is also a performance improvement, as performed by icc but not by LLVM. Both the xor and movl sign-extensions are larger than cltd, so this transformation is prevented for -Os. 2021-07-09 Roger Sayle <roger@nextmovesoftware.com> Uroš Bizjak <ubizjak@gmail.com> gcc/ChangeLog * config/i386/i386.md (*divmodsi4_const): Optimize SImode divmod of a constant numerator with new define_insn_and_split. gcc/testsuite/ChangeLog * gcc.target/i386/divmod-9.c: New test case.
2021-07-09coroutines: Fix a typo in rewriting the function.Iain Sandoe1-2/+2
When amending the function re-write code, I made a typo in the block connections. This has not shown up in any test fails (as far as can be seen) but is a regression in debug info. Fixed thus. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> gcc/cp/ChangeLog: * coroutines.cc (coro_rewrite_function_body): Connect the replacement function block to the block nest correctly.
2021-07-09Darwin, X86: Adjust call clobbers to allow for lazy-binding [PR 100152].Iain Sandoe1-1/+15
We allow public functions defined in a TU to bind locally for PIC code (the default) on 64bit Mach-O. If such functions are not inlined, we cannot tell at compile-time if they might be called via the lazy symbol resolver (this can depend on options given at link-time). Therefore, we must assume that the lazy resolver could be used which clobbers R11 and R10. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> gcc/ChangeLog: PR target/100152 * config/i386/i386-expand.c (ix86_expand_call): If a call is to a non-local-binding, or local but to a public symbol, then assume that it might be indirected via the lazy symbol binder. Mark R10 and R10 as clobbered in that case.
2021-07-09Missing piece in earlier changeEric Botcazou1-3/+0
gcc/ada/ * gcc-interface/utils.c (finish_subprog_decl): Remove obsolete line.
2021-07-09testsuite/101269: fix testcase when used with -m32Indu Bhagat1-0/+1
PR testsuite/101269 - new test case gcc.dg/debug/btf/btf-datasec-1.c fails with its introduction in r12-1852 BTF datasec records for .rodata/.data are expected for now for all targets. For powerpc based targets, use -msdata=none when ilp32 is enabled. 2021-07-09 Indu Bhagat <indu.bhagat@oracle.com> gcc/testsuite/ChangeLog: PR testsuite/101269 * gcc.dg/debug/btf/btf-datasec-1.c: Force -msdata=none with ilp32 for powerpc based targets.
2021-07-09c++: requires-expr with dependent extra args [PR101181]Patrick Palka5-18/+58
Here we're crashing ultimately because the mechanism for delaying substitution into a requires-expression (and constexpr if and pack expansions) doesn't expect to see dependent args. But we end up capturing dependent args here during substitution into the default template argument as part of coerce_template_parms for the dependent specialization p<T>. This patch enables the commented out code in add_extra_args for handling this situation. This isn't needed for pack expansions (as the accompanying comment points out), and it doesn't seem strictly necessary for constexpr if either, but for requires-expressions delaying even dependent substitution is important for ensuring we don't evaluate requirements out of order. It turns out we also need to make a copy of the arguments when capturing them so that coerce_template_parms doesn't later add to them and form an unexpected cycle (REQUIRES_EXPR_EXTRA_ARGS (t) would indirectly point to t). We also need to make tsubst_template_args handle missing template arguments, since the arguments we capture from coerce_template_parms and are incomplete at that point. PR c++/101181 gcc/cp/ChangeLog: * constraint.cc (tsubst_requires_expr): Pass complain/in_decl to add_extra_args. * cp-tree.h (add_extra_args): Add complain/in_decl parameters. * pt.c (build_extra_args): Make a copy of args. (add_extra_args): Add complain/in_decl parameters. Enable the code for handling the case where the extra arguments are dependent. (tsubst_pack_expansion): Pass complain/in_decl to add_extra_args. (tsubst_template_args): Handle missing template arguments. (tsubst_expr) <case IF_STMT>: Pass complain/in_decl to add_extra_args. gcc/testsuite/ChangeLog: * g++.dg/cpp2a/concepts-requires26.C: New test. * g++.dg/cpp2a/lambda-uneval16.C: New test.
2021-07-09c++: find_template_parameters and TEMPLATE_DECLs [PR101247]Patrick Palka4-10/+32
r12-1989 fixed the testcase in the PR, but unfortunately the fix is buggy: it breaks the case where the common template between the TEMPLATE_DECL t and ctx_parms is the innermost template (as in concepts-memtmpl5.C below). This can be fixed by instead passing the TREE_TYPE of ctmpl to common_enclosing_class when ctmpl is a class template. But even after that's fixed, the analogous case where the innermost template is a partial specialization is still broken (as in concepts-memtmpl5a.C below), because ctmpl is always a primary template. So this patch instead takes a diferent approach that doesn't rely on ctx_parms at all: when looking for the template parameters of a TEMPLATE_DECL that are shared with the current template context, just walk its DECL_CONTEXT. As long as the template is not overly general (e.g. we didn't pass it through most_general_template), this should give us exactly what we want, since if a TEMPLATE_DECL can be referred to from some template context then the template parameters it uses must all be in-scope and contained in its DECL_CONTEXT. This effectively makes us treat TEMPLATE_DECLs more similarly to other _DECLs (whose DECL_CONTEXT we also walk). PR c++/101247 gcc/cp/ChangeLog: * pt.c (any_template_parm_r) <case TEMPLATE_DECL>: Just walk the DECL_CONTEXT. gcc/testsuite/ChangeLog: * g++.dg/cpp2a/concepts-memtmpl4.C: Uncomment the commented out example, which we now handle correctly. * g++.dg/cpp2a/concepts-memtmpl5.C: New test. * g++.dg/cpp2a/concepts-memtmpl5a.C: New test.
2021-07-09[Ada] Fix style in expansion of attribute Put_ImagePiotr Trojanek1-2/+10
gcc/ada/ * exp_put_image.adb (Make_Put_Image_Name): Fix style. (Image_Should_Call_Put_Image): Likewise. (Build_Image_Call): Likewise.
2021-07-09[Ada] par-ch6: do not mark subprogram as missing "is" if importedGhjuvan Lacambre1-1/+25
gcc/ada/ * par-ch6.adb (Contains_Import_Aspect): New function. (P_Subprogram): Acknowledge `Import` aspects.
2021-07-09[Ada] Fix crash on type extensions with discriminantsBob Duff1-2/+2
gcc/ada/ * exp_put_image.adb (Make_Component_Attributes): Use Implementation_Base_Type to get the parent type. Otherwise, Parent_Type_Decl is actually an internally generated subtype declaration, so we blow up on Type_Definition (Parent_Type_Decl).
2021-07-09[Ada] Add missed OS constant valuesDmitriy Anisimkov2-0/+7
gcc/ada/ * gsocket.h: Include net/if.h to get IF_NAMESIZE constant. * s-oscons-tmplt.c: Define IPV6_FLOWINFO for Linux.
2021-07-09[Ada] Improve performance of ↵Steve Baird1-58/+161
Ada.Containers.Doubly_Linked_Lists.Generic_Sorting.Sort gcc/ada/ * libgnat/a-cdlili.adb: Reimplement Ada.Containers.Doubly_Linked_Lists.Generic_Sorting.Sort using Mergesort instead of the previous Quicksort variant.
2021-07-09[Ada] Crash on expansion of BIP construct in -gnatf modeJustin Squirek1-0/+9
gcc/ada/ * exp_ch6.adb (Is_Build_In_Place_Function_Call): Add check to verify the Selector_Name of Exp_Node has been analyzed before obtaining its entity.
2021-07-09[Ada] Typo corrections and minor reformattingGary Dismukes5-16/+15
gcc/ada/ * libgnarl/s-osinte__vxworks.ads: Fix typo ("release" => "releases") plus comment reformatting. * libgnat/s-os_lib.ads: In a comment, fix typo ("indended" => "intended"), add a hyphen and semicolon, plus reformatting. In comment for subtype time_t, fix typo ("effect" => "affect"), add hyphens, plus reformatting. * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads: Remove period from one-line comment.
2021-07-09[Ada] Add -gnatX support for casing on discriminated valuesSteve Baird4-93/+241
gcc/ada/ * exp_ch5.adb (Expand_General_Case_Statement): Add new function Else_Statements to handle the case of invalid data analogously to how it is handled when casing on a discrete value. * sem_case.adb (Has_Static_Discriminant_Constraint): A new Boolean-valued function. (Composite_Case_Ops.Scalar_Part_Count): Include discriminants when traversing components. (Composite_Case_Ops.Choice_Analysis.Traverse_Discrete_Parts): Include discriminants when traversing components; the component range for a constrained discriminant is a single value. (Composite_Case_Ops.Choice_Analysis.Parse_Choice): Eliminate Done variable and modify how Next_Part is computed so that it is always correct (as opposed to being incorrect when Done is True). This includes changes in Update_Result (a local procedure). Add new local procedure Update_Result_For_Box_Component and call it not just for box components but also for "missing" components (components associated with an inactive variant). (Check_Choices.Check_Composite_Case_Selector.Check_Component_Subtype): Instead of disallowing all discriminated component types, allow those that are unconstrained or statically constrained. Check discriminant subtypes along with other component subtypes. * doc/gnat_rm/implementation_defined_pragmas.rst: Update documentation to reflect current implementation status. * gnat_rm.texi: Regenerate.
2021-07-09[Ada] Crash on inlined separate subprogramJustin Squirek1-1/+6
gcc/ada/ * sem_ch6.adb (Check_Pragma_Inline): Correctly use Corresponding_Spec_Of_Stub when dealing subprogram body stubs.
2021-07-09[Ada] Declare time_t uniformly based on a system parameterDoug Rupp37-33/+342
gcc/ada/ * Makefile.rtl: Add translations for s-parame__posix2008.ads * libgnarl/s-linux.ads: Import System.Parameters. (time_t): Declare using System.Parameters.time_t_bits. * libgnarl/s-linux__alpha.ads: Likewise. * libgnarl/s-linux__android.ads: Likewise. * libgnarl/s-linux__hppa.ads: Likewise. * libgnarl/s-linux__mips.ads: Likewise. * libgnarl/s-linux__riscv.ads: Likewise. * libgnarl/s-linux__sparc.ads: Likewise. * libgnarl/s-linux__x32.ads: Likewise. * libgnarl/s-qnx.ads: Likewise. * libgnarl/s-osinte__aix.ads: Likewise. * libgnarl/s-osinte__android.ads: Likewise. * libgnarl/s-osinte__darwin.ads: Likewise. * libgnarl/s-osinte__dragonfly.ads: Likewise. * libgnarl/s-osinte__freebsd.ads: Likewise. * libgnarl/s-osinte__gnu.ads: Likewise. * libgnarl/s-osinte__hpux-dce.ads: Likewise. * libgnarl/s-osinte__hpux.ads: Likewise. * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise. * libgnarl/s-osinte__lynxos178e.ads: Likewise. * libgnarl/s-osinte__qnx.ads: Likewise. * libgnarl/s-osinte__rtems.ads: Likewise. * libgnarl/s-osinte__solaris.ads: Likewise. * libgnarl/s-osinte__vxworks.ads: Likewise. * libgnat/g-sothco.ads: Likewise. * libgnat/s-osprim__darwin.adb: Likewise. * libgnat/s-osprim__posix.adb: Likewise. * libgnat/s-osprim__posix2008.adb: Likewise. * libgnat/s-osprim__rtems.adb: Likewise. * libgnat/s-osprim__x32.adb: Likewise. * libgnarl/s-osinte__linux.ads: use type System.Linux.time_t. * libgnat/s-os_lib.ads (time_t): Declare as subtype of Long_Long_Integer. * libgnat/s-parame.ads (time_t_bits): New constant. * libgnat/s-parame__ae653.ads (time_t_bits): Likewise. * libgnat/s-parame__hpux.ads (time_t_bits): Likewise. * libgnat/s-parame__vxworks.ads (time_t_bits): Likewise. * libgnat/s-parame__posix2008.ads: New file for 64 bit time_t.
2021-07-09[Ada] Add source file name to gnat bug boxBob Duff1-0/+5
gcc/ada/ * comperr.adb (Compiler_Abort): Print source file name.
2021-07-09[Ada] Fix layout of contractsJoffrey Huguet2-22/+18
gcc/ada/ * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Fix layout in contracts.
2021-07-09[Ada] Fix invalid JSON for derived variant record with -gnatRjEric Botcazou2-18/+44
gcc/ada/ * repinfo.ads (JSON output format): Document adjusted key name. * repinfo.adb (List_Record_Layout): Use Original_Record_Component if the normalized position of the component is not known. (List_Structural_Record_Layout): Rename Outer_Ent parameter into Ext_End and add Ext_Level parameter. In an extension, if the parent subtype has static discriminants, call List_Record_Layout on it. Output "parent_" prefixes before "variant" according to Ext_Level. Adjust recursive calls throughout the procedure.
2021-07-09[Ada] Fix typo in comment related to derived discriminated typesPiotr Trojanek1-1/+1
gcc/ada/ * exp_util.ads (Map_Types): Fix typo.
2021-07-09[Ada] Fix index range violations in krunchFedor Rybin1-8/+9
gcc/ada/ * krunch.adb: Add safeguards against index range violations.
2021-07-09[Ada] Code cleanups in a-strfix.adbArnaud Charlet1-84/+54
gcc/ada/ * libgnat/a-strfix.adb: Take advantage of extended returns.
2021-07-09[Ada] Add paragraph about representation changes and Scalar_Storage_OrderEric Botcazou2-0/+80
gcc/ada/ * doc/gnat_rm/implementation_defined_attributes.rst (Scalar_Storage_Order): Add paragraph about representation changes. * gnat_rm.texi: Regenerate.
2021-07-09[Ada] aarch64-rtems6: use wraplf variant for a-nallflFrederic Konrad1-1/+1
gcc/ada/ * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <aarch64*-*-rtems*>: Use the wraplf variant of Aux_Long_Long_Float.
2021-07-09[Ada] Initialize local variables related to static expression functionsPiotr Trojanek1-2/+2
gcc/ada/ * sem_ch6.adb (Analyze_Expression_Function): Initialize Orig_N and Typ variables.
2021-07-09[Ada] Inconsistency between declaration and body of predicate functionsArnaud Charlet2-18/+36
gcc/ada/ * sem_ch13.adb (Resolve_Aspect_Expressions): Use the same processing for Predicate, Static_Predicate and Dynamic_Predicate. Do not build the predicate function spec. Update comments. (Resolve_Name): Only reset Entity when necessary to avoid spurious visibility errors. (Check_Aspect_At_End_Of_Declarations): Handle consistently all Predicate aspects. * sem_ch3.adb (Analyze_Subtype_Declaration): Fix handling of private types with predicates.
2021-07-09[Ada] Incremental patch for restriction No_Dynamic_Accessibility_ChecksJustin Squirek3-12/+44
gcc/ada/ * sem_util.ads (Type_Access_Level): Add new optional parameter Assoc_Ent. * sem_util.adb (Accessibility_Level): Treat access discriminants the same as components when the restriction No_Dynamic_Accessibility_Checks is enabled. (Deepest_Type_Access_Level): Remove exception for Debug_Flag_Underscore_B when returning the result of Type_Access_Level in the case where No_Dynamic_Accessibility_Checks is active. (Function_Call_Or_Allocator_Level): Correctly calculate the level of Expr based on its containing subprogram instead of using Current_Subprogram. * sem_res.adb (Valid_Conversion): Add actual for new parameter Assoc_Ent in call to Type_Access_Level, and add test of No_Dynamic_Accessibility_Checks_Enabled to ensure that static accessibility checks are performed for all anonymous access type conversions.
2021-07-09[Ada] Update internal documentation of debugging informationEric Botcazou1-218/+191
gcc/ada/ * exp_dbug.ads: Update documentation of various items.
2021-07-09[Ada] Reorder preanalysis of static expression functionsPiotr Trojanek1-10/+6
gcc/ada/ * sem_ch6.adb (Analyze_Expression_Function): Reorder code.
2021-07-09[Ada] Decouple analysis of static expression functions from GNATprovePiotr Trojanek1-69/+68
gcc/ada/ * sem_ch6.adb (Analyze_Expression_Function): Reorder code.