aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-12-13[Ada] Better error message for aliased formal and atomic actualEric Botcazou2-1/+7
2019-12-13 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Actuals): Give canonical error for illegal case of atomic/volatile parameter also if the formal is aliased. From-SVN: r279364
2019-12-13[Ada] Clear confusion about subcomponents of atomic objectEric Botcazou3-37/+26
2019-12-13 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_util.ads (Is_Atomic_Object): Mention relevant RM clauses. * sem_util.adb (Is_Atomic_Object): For an indexed component, only look at the Has_Atomic_Components aspect of the prefix and do not recurse on it; for a selected component, do not look at the prefix. (Is_Atomic_Or_VFA_Object): Minor tweak. From-SVN: r279363
2019-12-13[Ada] Fix support for > 24 hours image in Ada.Calendar.FormattingArnaud Charlet3-19/+51
2019-12-13 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * libgnat/a-calfor.ads, libgnat/a-calfor.adb (Split_Duration): New procedure. (Split, Image): Use Split_Duration. Update Image spec. From-SVN: r279362
2019-12-13[Ada] Adding support for unsupported type conversions in CCGJavier Miranda2-0/+18
2019-12-13 Javier Miranda <miranda@adacore.com> gcc/ada/ * exp_unst.adb (Unnest_Subprogram): Generate an extra temporary to facilitate the C backend processing dereferences. From-SVN: r279361
2019-12-13[Ada] Pragma Linker_Section in subprogram instantiations in CCGJavier Miranda2-0/+26
2019-12-13 Javier Miranda <miranda@adacore.com> gcc/ada/ * sem_prag.adb (Analyze_Pragma): Propagate the Linker_Section_Attribute to the ultimate alias of the subprogram to facilitate the C backend processing this attribute. From-SVN: r279360
2019-12-13[Ada] Avoid spurious mismatch error of assertion policy in genericsYannick Moy2-3/+11
2019-12-13 Yannick Moy <moy@adacore.com> gcc/ada/ * sem_util.adb (Original_Aspect_Pragma_Name): Go through Original_Node for pragma. From-SVN: r279359
2019-12-13[Ada] Minor fix typo in commentPiotr Trojanek3-2/+6
2019-12-13 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * exp_aggr.adb, exp_unst.adb: Minor fix typo in comment. From-SVN: r279358
2019-12-13[Ada] Detect illegal implicit type conversionsSteve Baird2-2/+7
2019-12-13 Steve Baird <baird@adacore.com> gcc/ada/ * sem_res.adb (Resolve, Valid_Conversion): Add Base_Type call when testing whether a type is a general access type. From-SVN: r279357
2019-12-13[Ada] Adding support for unsupported type conversion in CCGJavier Miranda2-0/+26
2019-12-13 Javier Miranda <miranda@adacore.com> gcc/ada/ * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Generate an extra temporary for cases unsupported by the C backend. From-SVN: r279356
2019-12-13[Ada] Implement AI12-0109 (prohibit some "early" derivations)Steve Baird4-25/+129
2019-12-13 Steve Baird <baird@adacore.com> gcc/ada/ * einfo.ads: Correct comment for Derived_Type_Link to reflect that fact that this function is now used for more than just generation of warnings. * sem_ch3.adb (Build_Derived_Type): Do not call Set_Derived_Type_Link if the derived type and the parent type are in different compilation units. Such a derivation cannot be a problematic "early" derivation (identifying these is what the Derived_Type_Link attribute is used for) and we don't like inter-unit references that go in the opposite direction of semantic dependencies. * sem_ch13.adb (Is_Type_Related_Rep_Item): A new function, analogous to the existing function Is_Operational_Item. (Rep_Item_Too_Late): Generate a hard error (with same text as the warning that was previously being generated) if the AI12-0109 legality rule is violated. From-SVN: r279355
2019-12-13[Ada] Minor tweak to Volatile_Full_Access wording in GNAT RMEric Botcazou3-7/+13
2019-12-13 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst: Minor tweak to Volatile_Full_Access wording in GNAT RM. * gnat_rm.texi: Regenerate. From-SVN: r279354
2019-12-13[Ada] Suppress Base_Address call on init of activation record componentsGary Dismukes2-1/+38
2019-12-13 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * exp_attr.adb (Expand_N_Attribute_Reference, Attribute_Address): Suppress generation of a call to Base_Address in the case where the Address attribute is being used to initialize a corresponding component of an activation record. (Is_Unnested_Component_Init): New function to determine whether an attribute reference for Address is used to initialized a component of an activation record object that corresponds to the object denoted by the prefix of the attribute (an assignment used in support of unnesting for back ends like LLVM). From-SVN: r279353
2019-12-13[Ada] Crash on implicit dereference not made explicitEd Schonberg2-5/+42
2019-12-13 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_res.adb (Resolve): IF an entity reference is overloaded because its type has an Implicit_Dereference aspect, we must examine the discriminants of the type to determine whether an explicit dereference must be inserted for use in code generation. Previously this was done for other expressions but not for entity references by themselves. This was sufficient to handle uses of the aspect in container handling and iteration, but not more generally. From-SVN: r279352
2019-12-13[Ada] Deallocation of controlled type implementing interface typesJavier Miranda6-13/+88
2019-12-13 Javier Miranda <miranda@adacore.com> gcc/ada/ * exp_disp.ads (Expand_Interface_Thunk): Adding one formal (the interface type). * exp_disp.adb (Expand_Interface_Thunk): Using the added formal to ensure the correct profile of the thunk generated for predefined primitives; in addition, the added formal is also used to perform a check that ensures that the controlling type of the thunk is the one expected by the GCC backend. (Make_Secondary_DT, Register_Primitive): Adding the new formal to the calls to Expand_Interface_Thunk. * exp_ch6.adb (Register_Predefined_DT_Entry): Adding the new formal to the call to Expand_Interface_Thunk. * exp_intr.adb (Expand_Unc_Deallocation): When deallocating a controlled type and the call to unchecked deallocation is performed with a pointer to one of the convered interface types, displace the pointer to the object to reference the base of the object to deallocate its memory. * gcc-interface/trans.c (maybe_make_gnu_thunk): Assert that the controlling type of the thunk is an interface type. From-SVN: r279351
2019-12-13[Ada] Remove Is_Available functionBob Duff2-66/+47
2019-12-13 Bob Duff <duff@adacore.com> gcc/ada/ * exp_attr.adb (Is_Available): Remove this function, and replace all calls with RTE_Available. RTE_Available will return True if "not Configurable_Run_Time_Mode". Remove the "???" comment. From-SVN: r279350
2019-12-13[Ada] Crash on inherited private operation in child packageEd Schonberg2-0/+12
2019-12-13 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch7.adb (Analyze_Package_Body_Helper): Do not call Declare_Inherited_Private_Subprograms on s child body: the required operations have already been created when analyzing the corresponding package declaration. This prevents a redeclaration of inehrited operation, and a crash when inserting the new operation in the current scope. From-SVN: r279349
2019-12-13[Ada] Avoid spurious errors on Global/Depends in instantiationsYannick Moy2-35/+35
2019-12-13 Yannick Moy <moy@adacore.com> gcc/ada/ * sem_prag.adb (Analyze_Depends_In_Decl_Part, Analyze_Global_In_Decl_Part, Analyze_Refined_Depends_In_Decl_Part, Analyze_Refined_Global_In_Decl_Part, Check_Missing_Part_Of): Skip redundant checking involving visibility inside instantiations. From-SVN: r279348
2019-12-13[Ada] Prevent inlining inside condition of while loop in GNATproveYannick Moy4-0/+42
2019-12-13 Yannick Moy <moy@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Call): Prevent inlining inside while loop conditions. * sem_util.adb, sem_util.ads (In_While_Loop_Condition): New query function. From-SVN: r279347
2019-12-13[Ada] Ada2020: Update Impunit for Ada 202XBob Duff5-30/+69
2019-12-13 Bob Duff <duff@adacore.com> gcc/ada/ * impunit.ads: Add Ada_202X_Unit. * impunit.adb: Add a table Non_Imp_File_Names_2X analogous to the other tables. Add code to search this table. * opt.ads: Add Warn_On_Ada_202X_Compatibility flag, currently always True. * sem_ch10.adb (Analyze_With_Clause): Give a warning if an Ada 2020 unit is with-ed when Ada_Version < Ada_2020. Change 'if' to 'case': Full coverage rules rule. From-SVN: r279346
2019-12-13[Ada] Rtsfind: minor comment fixesBob Duff2-60/+15
2019-12-13 Bob Duff <duff@adacore.com> gcc/ada/ * rtsfind.ads: Minor comment fix. From-SVN: r279345
2019-12-13[Ada] Up-level addressing problems with private tasks and selective accept procsGary Dismukes2-4/+13
2019-12-13 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * sem_util.adb (Scope_Within): For the case of checking for a task type procedure, check the Implementation_Base_Type of Curr. (Scope_Within_Or_Same): For the case of checking for a task type procedure, check the Implementation_Base_Type of Curr. From-SVN: r279344
2019-12-13[Ada] Add Ada.Containers.Vectors.Generic_Parallel_Sorting to known unitsArnaud Charlet2-1/+8
2019-12-13 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * impunit.adb (Non_Imp_File_Names_12): Add Ada.Containers.Vectors.Generic_Parallel_Sorting. From-SVN: r279343
2019-12-13[Ada] Missing accessibility checks on conditionalsJustin Squirek3-4/+89
2019-12-13 Justin Squirek <squirek@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Allocator): Add calls to Check_Cond_Expr_Accessibility when a conditional expression is found. (Check_Allocator_Discrim_Accessibility_Exprs): Created to recursively traverse a potentially compound conditional expression and perform accessibility checks for each alternative. * sem_util.adb (Dynamic_Accessibility_Level): Avoid use of original node of the expression in question so we can handle dynamic accessibility in the limited case of a constant folded conditional expression. From-SVN: r279342
2019-12-13[Ada] Implement AI12-0101Steve Baird2-36/+115
2019-12-13 Steve Baird <baird@adacore.com> gcc/ada/ * exp_ch4.adb (Expand_N_Op_Eq.Is_Equality): Move this function from within Expand_N_Op_Eq.Find_Equality out to immediately within Expand_N_Op_Eq in order to give it greater visibility. Add a new Typ parameter (defaulted to Empty) which, if non-empty, means the function will return False in the case of an equality op for some other type. * (Expand_N_Op_Eq.User_Defined_Primitive_Equality_Op): A new function. Given an untagged record type, finds the corresponding user-defined primitive equality op (if any). May return Empty. Ignores visibility. * (Expand_N_Op): For Ada2012 or later, check for presence of a user-defined primitive equality op before falling back on the usual predefined component-by-component comparison. If found, then call the user-defined op instead. From-SVN: r279341
2019-12-13[Ada] Spurious error on overriding controlled primitiveJustin Squirek2-6/+31
2019-12-13 Justin Squirek <squirek@adacore.com> gcc/ada/ * sem_ch6.adb (Check_Overriding_Indicator): Modify condition to take into account the modification of the Is_Hidden flag within generic instances. (Verify_Overriding_Indicator): Add an exception for controlled primitives within an instance. From-SVN: r279340
2019-12-13[Ada] New flag to indicate whether aspect appears on partial viewEd Schonberg4-0/+49
2019-12-13 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sinfo.ads, sinfo.adb (Aspect_On_Partial_View, Set_Aspect_On_Partial_View): New flag for use by SPARK, to indicate whether an aspect that appears on a type declaration applies to the partial view of that type. * sem_ch13.adb (Analyze_Aspect_Specification): Set new flag appropriately. From-SVN: r279339
2019-12-13Add C testcases for PR 86659Andrew Pinski3-0/+89
testsuite/ChangeLog: 2019-12-13 Andrew Pinski <apinski@marvell.com> * gcc.c-torture/execute/pr86659-1.c: New test. * gcc.c-torture/execute/pr86659-2.c: New test. From-SVN: r279338
2019-12-13libgomp/openacc.f90 – clean-up public/private attributesTobias Burnus2-9/+20
libgomp/ * openacc.f90 (module openacc_kinds): Use 'PUBLIC' to mark all symbols as public except for the 'use …, only' imported symbol, which is private. (module openacc): Default to 'PRIVATE' to exclude openacc_internal; mark all symbols from module openacc_kinds as PUBLIC; add missing PUBLIC attributes for acc_copyout_finalize and acc_delete_finalize. From-SVN: r279337
2019-12-13[rs6000] Adjust vectorization cost for scalar COND_EXPRKewen Lin2-0/+30
We found that the vectorization cost modeling on scalar COND_EXPR is a bit off on rs6000. One typical case is 548.exchange2_r, -Ofast -mcpu=power9 -mrecip -fvect-cost-model=unlimited is better than -Ofast -mcpu=power9 -mrecip (the default is -fvect-cost-model=dynamic) by 1.94%. Scalar COND_EXPR is expanded into compare + branch or compare + isel normally, either of them should be priced more than the simple FXU operation. This patch is to add additional vectorization cost onto scalar COND_EXPR on top of builtin_vectorization_cost. The idea to use additional cost value 2 instead of the others: 1) try various possible value candidates from 1 to 5, 2 is the best measured on Power9. 2) from latency view, compare takes 3 cycles and isel takes 2 on Power9, it's 2.5 times of simple FXU instruction which takes cost 1 in the current modeling, it's close. 3) get fine SPEC2017 ratio on Power8 as well. gcc/ChangeLog * config/rs6000/rs6000.c (adjust_vectorization_cost): New function. (rs6000_add_stmt_cost): Call adjust_vectorization_cost and update stmt_cost. From-SVN: r279336
2019-12-13PR c++/92496 - ICE with <=> and no #include <compare>.Jason Merrill3-1/+22
* typeck.c (cp_build_binary_op): Handle error from spaceship_type. From-SVN: r279331
2019-12-13Daily bump.GCC Administrator1-1/+1
From-SVN: r279330
2019-12-13re PR target/92904 (varargs for __int128 is placed at an unaligned location ↵Jakub Jelinek4-0/+413
and uses movdqa for the load) PR target/92904 * config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and not need_temp, decrease alignment of the read because the GPR save area only guarantees 8-byte alignment. * gcc.c-torture/execute/pr92904.c: New test. From-SVN: r279327
2019-12-12re PR fortran/92898 (ICE in gfc_check_is_contiguous, at fortran/check.c:7157)Harald Anlauf4-3/+19
2019-12-12 Harald Anlauf <anlauf@gmx.de> PR fortran/92898 * check.c (gfc_check_is_contiguous): Simplify check to handle arbitrary NULL() argument. PR fortran/92898 * gfortran.dg/pr92898.f90: New test. From-SVN: r279314
2019-12-12[Committed, testsuite] Fix PR92870Sudakshina Das2-1/+9
With my recent commit, I added a test that is not passing on all targets. My change was valid for targets that have a vector/scalar shift/rotate optabs (optab that supports vector shifted by scalar). Since it does not seem to be easy to find out which targets would support it, I am limiting the test to the targets that I know pass. gcc/testsuite/ChangeLog 2019-12-12 Sudakshina Das <sudi.das@arm.com> PR testsuite/92870 * gcc.dg/vect/vect-shift-5.c: Add target to scan-tree-dump. From-SVN: r279310
2019-12-12Add support for some more AVR devices from avrxmega3 family.Georg-Johann Lay3-1/+22
* config/avr/avr-mcus.def (attiny1604, attiny1606, attiny1607) (attiny402, attiny404, attiny406) (attiny804, attiny806, attiny807) (attiny202, attiny204): Add AVR_MCU lines to support them. * doc/avr-mmcu.texi: Regenerate. From-SVN: r279309
2019-12-12libstdc++: Simplify std::common_comparison_categoryJonathan Wakely2-31/+30
* libsupc++/compare (common_comparison_category): Define without using concepts and optimise for compilation time. (__detail::__cmp_cat_ids): Remove. (__detail::__common_cmp_cat): Replace class template and specializations with constexpr function. From-SVN: r279307
2019-12-12ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering of ↵Jan Hubicka2-2/+8
execution of function call parameters. * ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering of execution of function call parameters. From-SVN: r279306
2019-12-12[Ada] Spurious warning about change of representastion in callEd Schonberg2-0/+15
2019-12-12 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch13.adb (Same_Reprewentation): if the actual in a call is a generic actual type, use its bsae type to determine whether a change of representastion may be necessary for proper parameter passing. From-SVN: r279305
2019-12-12[Ada] Spurious error on universal access equality operatorEd Schonberg2-2/+10
2019-12-12 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_type.adb (Find_Unique_Type): A call to the universal access equality operator requires one operand to be a universal access, and the other to be an access type. There is no requirement, as previously implied by this routine, that pool-specific access types were illegal in this context. From-SVN: r279304
2019-12-12[Ada] Tighten up semantic checking for protected subprogram declarationsSteve Baird2-13/+62
2019-12-12 Steve Baird <baird@adacore.com> gcc/ada/ * sem_ch6.adb (New_Overloaded_Entity.Check_Conforming_Paramters): Add new Conformance_Type parameter. With the value of Subtype_Conformant, the behavior of Check_Conforming_Parameters is unchanged. The call in Matching_Entry_Or_Subprogram to instead passes in Type_Conformant. This corresponds to the use of "type conformant" in Ada RM 9.4(11.4/3). (New_Overloaded_Entity.Has_Matching_Entry_Or_Subprogram): Add new Normalized_First_Parameter_Type function to help in ignoring the distinction between protected and access-to-protected first parameters when checking prefixed-view profile matching. Replace computations of the type of the first parameter with calls to this function as appropriate. From-SVN: r279303
2019-12-12[Ada] Missing dereference in bound of slice in element iteratorEd Schonberg2-0/+30
2019-12-12 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch5.adb: (Analyze_Iterator_Specification): If the iteration is over a slice, complete the resolution of its bounds, which may be aebitrary expressions. The previous pre-analysis may have created itypes for the slice but has not performed the expansion that for example may introduce actions that specify explicit dereferences and run-time checks. From-SVN: r279302
2019-12-12[Ada] Improve error message for dispatching subprogram formalsEd Schonberg2-3/+13
2019-12-12 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch8.adb: Improve error message for dispatching subprogram formals. From-SVN: r279301
2019-12-12[Ada] Fix related to handling up-level references in protected entriesGary Dismukes2-1/+9
2019-12-12 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * exp_ch9.adb (Build_Protected_Entry): Set the Scope of the new block to be the entity of the procedure created for the entry. From-SVN: r279300
2019-12-12[Ada] Improved handling of circular compilation dependenciesSteve Baird2-0/+21
2019-12-12 Steve Baird <baird@adacore.com> gcc/ada/ * sem_ch10.adb (Install_With_Clause): Check for the case of a circular dependency involving a predefined (or GNAT-defined) unit and handle that case by generating an appropropriate error message. From-SVN: r279299
2019-12-12[Ada] Fix various typos, plus minor reformattingGary Dismukes3-6/+10
2019-12-12 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * sem_ch4.adb, sem_res.adb: Minor reformatting. From-SVN: r279298
2019-12-12[Ada] Broken privacy on Controlled type extensionsJustin Squirek2-2/+57
2019-12-12 Justin Squirek <squirek@adacore.com> gcc/ada/ * sem_ch4.adb (Analyze_One_Call): Add condition to check for incorrectly resolved hidden controlled primitives. From-SVN: r279297
2019-12-12[Ada] Fix processing of standard predefined operatorsEd Schonberg2-1/+9
2019-12-12 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_res.adb: Fix processing of standard predefined operators. From-SVN: r279296
2019-12-12[Ada] Fix Global contract for the predefined Yield procedurePiotr Trojanek2-1/+7
2019-12-12 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * libgnarl/a-dispat.ads (Yield): Update Global contract. From-SVN: r279295
2019-12-12[Ada] Fix repeated words and typos in doc and commentsPiotr Trojanek19-40/+60
2019-12-12 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * libgnat/g-altive.ads: Fix typo in comment. * bindo-graphs.adb: Fix repeated words in comment. * exp_ch4.adb: Likewise. * exp_ch5.adb: Likewise. * exp_ch7.adb: Likewise. * exp_pakd.adb: Likewise. * exp_unst.adb: Likewise. * exp_util.adb: Likewise. * freeze.adb: Likewise. * inline.adb: Likewise. * layout.adb: Likewise. * sem_ch12.adb: Likewise. * sem_ch13.adb: Likewise. * sem_ch4.adb: Likewise. * sem_ch9.adb: Likewise. * sem_elab.adb: Likewise. * doc/gnat_ugn/gnat_and_program_execution.rst: Fix repeated words in user documentation. * gnat_ugn.texi: Regenerate. From-SVN: r279294
2019-12-12[Ada] Fix wrong value of 'Size for slices of bit-packed arrays (2)Eric Botcazou3-7/+16
2019-12-12 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_attr.adb (Expand_Size_Attribute): Look directly at the prefix to detect the bit-packed slices. Apply the checks last in case the attribute needs to be processed by the back-end. * exp_ch4.adb (Expand_N_Slice): Do not create a temporary for a prefix of the Size attribute. From-SVN: r279293