1. 13 Dec, 2019 35 commits
    • [Ada] Unnesting and annex E · 9531aef5
      2019-12-13  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb (Unnest_Subprogram): Account for trees produced
      	by Annex E constructs.
      
      From-SVN: r279367
      Arnaud Charlet committed
    • [Ada] implementation_defined_pragmas.rst: Update Initialize_Scalars docs · e203dd6e
      2019-12-13  Ghjuvan Lacambre  <lacambre@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_rm/implementation_defined_pragmas.rst: Update
      	Initialize_Scalars documentation.
      	* gnat_rm.texi: Regenerate.
      
      From-SVN: r279366
      Ghjuvan Lacambre committed
    • [Ada] Spurious error on precondition of subprogram instantiation · c90e1eca
      2019-12-13  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* sem_ch13.adb (Analyze_Aspect_Specification): Processing a
      	precondition, if the expression is of the form A and then B, do
      	not generate separate Pre/Post aspects for the separate clases
      	when we are processing a generic unit. Required to avoid
      	reporting spurious visibility errors on the instantiations.
      
      From-SVN: r279365
      Javier Miranda committed
    • [Ada] Better error message for aliased formal and atomic actual · e1e1e53a
      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
      Eric Botcazou committed
    • [Ada] Clear confusion about subcomponents of atomic object · a35c1b07
      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
      Eric Botcazou committed
    • [Ada] Fix support for > 24 hours image in Ada.Calendar.Formatting · 309ff6fb
      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
      Arnaud Charlet committed
    • [Ada] Adding support for unsupported type conversions in CCG · 3af796b5
      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
      Javier Miranda committed
    • [Ada] Pragma Linker_Section in subprogram instantiations in CCG · 48f05f09
      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
      Javier Miranda committed
    • [Ada] Avoid spurious mismatch error of assertion policy in generics · de12d07e
      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
      Yannick Moy committed
    • [Ada] Minor fix typo in comment · 8973b987
      2019-12-13  Piotr Trojanek  <trojanek@adacore.com>
      
      gcc/ada/
      
      	* exp_aggr.adb, exp_unst.adb: Minor fix typo in comment.
      
      From-SVN: r279358
      Piotr Trojanek committed
    • [Ada] Detect illegal implicit type conversions · a85475be
      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
      Steve Baird committed
    • [Ada] Adding support for unsupported type conversion in CCG · 02458cc7
      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
      Javier Miranda committed
    • [Ada] Implement AI12-0109 (prohibit some "early" derivations) · cfedf3e5
      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
      Steve Baird committed
    • [Ada] Minor tweak to Volatile_Full_Access wording in GNAT RM · 63e21a72
      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
      Eric Botcazou committed
    • [Ada] Suppress Base_Address call on init of activation record components · 47997d25
      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
      Gary Dismukes committed
    • [Ada] Crash on implicit dereference not made explicit · be3614c7
      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
      Ed Schonberg committed
    • [Ada] Deallocation of controlled type implementing interface types · 20dc266e
      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
      Javier Miranda committed
    • [Ada] Remove Is_Available function · 6c9e4a1d
      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
      Bob Duff committed
    • [Ada] Crash on inherited private operation in child package · 7f8ad8f0
      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
      Ed Schonberg committed
    • [Ada] Avoid spurious errors on Global/Depends in instantiations · 0a8ff576
      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
      Yannick Moy committed
    • [Ada] Prevent inlining inside condition of while loop in GNATprove · 2e3795d0
      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
      Yannick Moy committed
    • [Ada] Ada2020: Update Impunit for Ada 202X · e841d4d8
      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
      Bob Duff committed
    • [Ada] Rtsfind: minor comment fixes · 90366d65
      2019-12-13  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* rtsfind.ads: Minor comment fix.
      
      From-SVN: r279345
      Bob Duff committed
    • [Ada] Up-level addressing problems with private tasks and selective accept procs · 563be3ee
      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
      Gary Dismukes committed
    • [Ada] Add Ada.Containers.Vectors.Generic_Parallel_Sorting to known units · 9ea2a24d
      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
      Arnaud Charlet committed
    • [Ada] Missing accessibility checks on conditionals · 8daf00dd
      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
      Justin Squirek committed
    • [Ada] Implement AI12-0101 · d7c37f45
      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
      Steve Baird committed
    • [Ada] Spurious error on overriding controlled primitive · 08f4f172
      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
      Justin Squirek committed
    • [Ada] New flag to indicate whether aspect appears on partial view · b622076c
      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
      Ed Schonberg committed
    • Add C testcases for PR 86659 · db0aa34f
      
      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
      Andrew Pinski committed
    • libgomp/openacc.f90 – clean-up public/private attributes · 7858bb96
              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
      Tobias Burnus committed
    • [rs6000] Adjust vectorization cost for scalar COND_EXPR · 396c2a98
      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
      Kewen Lin committed
    • PR c++/92496 - ICE with <=> and no #include <compare>. · a1af2dd9
      	* typeck.c (cp_build_binary_op): Handle error from spaceship_type.
      
      From-SVN: r279331
      Jason Merrill committed
    • Daily bump. · 0fec7ca1
      From-SVN: r279330
      GCC Administrator committed
    • re PR target/92904 (varargs for __int128 is placed at an unaligned location and… · 46f3e52e
      re PR target/92904 (varargs for __int128 is placed at an unaligned location 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
      Jakub Jelinek committed
  2. 12 Dec, 2019 5 commits