1. 21 Aug, 2019 19 commits
  2. 20 Aug, 2019 21 commits
    • Do not try to process deleted headers with Doxygen · 9e3c41ab
      	* doc/doxygen/user.cfg.in (INPUT): Remove profile mode headers.
      
      From-SVN: r274758
      Jonathan Wakely committed
    • Fix markdown in Doxygen comments for std::reduce · eb0e8589
      	* include/std/numeric (reduce): Fix Doxygen markup.
      
      From-SVN: r274757
      Jonathan Wakely committed
    • PR libstdc++/91371 make std::is_function handle other calling conventions · 72459cfd
      The x86 attributes such as ms_abi, stdcall, fastcall etc. alter the
      function type, which means that functions with one of those attributes
      do not match any of the partial specializations of std::is_function.
      
      Rather than duplicating the list for every calling convention, use a
      much simpler definition of std::is_function.
      
      Also redefine __is_referenceable to not rely on partial specializations
      for each type of referenceable function.
      
      	PR libstdc++/91371
      	* include/std/type_traits (is_function): Simplify definition. Remove
      	partial specializations for function types.
      	(__is_referenceable): Simplify definition.
      	* testsuite/20_util/bind/91371.cc: New test.
      	* testsuite/20_util/is_function/91371.cc: New test.
      	* testsuite/20_util/is_function/value.cc: Check more pointer types.
      	* testsuite/20_util/is_member_function_pointer/91371.cc: New test.
      	* testsuite/20_util/is_object/91371.cc: New test.
      
      From-SVN: r274756
      Jonathan Wakely committed
    • compiler, runtime: implement shifts by signed amounts · 43055d23
          
          Shifting by signed types is a new language feature in Go 1.13.
          
          This requires a patch to the testsuite.
          
          Updates golang/go#19113
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/190977
      
      	* go.test/test/fixedbugs/bug073.go: Update for language changes.
      
      From-SVN: r274755
      Ian Lance Taylor committed
    • function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==. · 5ba5ad30
      2019-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
      
      From-SVN: r274751
      Bernd Edlinger committed
    • tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to catch more… · 529f3048
      tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to catch more redundant zero initialization cases.
      
      2019-08-19  Matthew Beliveau  <mbelivea@redhat.com>
      
      	* tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to
      	catch more redundant zero initialization cases.
      	(dse_dom_walker::dse_optimize_stmt): Likewise.
      
      From-SVN: r274749
      Matthew Beliveau committed
    • re PR lto/91307 (-flto causes binary to vary) · 00f7060a
      2019-08-20  Richard Biener  <rguenther@suse.de>
      
      	PR lto/91307
      	* ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
      	by collect2 when targetm.have_ctors_dtors which avoids dragging
      	in temporary filenames from LTO input objects.
      
      From-SVN: r274748
      Richard Biener committed
    • re PR tree-optimization/37242 (missed FRE opportunity because of signedness of addition) · 3ed01d54
      2019-08-20  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/37242
      	* tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b)
      	to (T)a + (T)b if we know that a + b does not overflow.
      
      	* gcc.dg/tree-ssa/ssa-fre-80.c: New testcase.
      
      From-SVN: r274746
      Richard Biener committed
    • Intrinsic documentation changes. · a53aa4da
      Add notes to DIM, MOD and MODULE stating that as a GNU extension,
      integers of different kinds are allowed as arguments and that the
      return value has the larger kind.
      
      From-SVN: r274744
      Mark Eggleston committed
    • [Ada] Unnesting: take inlining (-gnatn) into account · dd241b94
      This affects only LLVM-based compilation.
      
      2019-08-20  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb (Unnest_Subprograms, Unnest_Subprogram): Take
      	inlining (-gnatn) into account.
      
      From-SVN: r274743
      Arnaud Charlet committed
    • [Ada] Crash on a Storage_Size aspect depending on attr. of another type · b82f1618
      This patch fixes a crash on an aspect specification for Storage_Size for
      a type T when the expression for the aspect depends on attributes of a
      previously declared type that is not frozen yet. The  temporary
      declaration that captures the value of the aspect must be part of the
      actions attached to the freeze node for T.
      
      2019-08-20  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
      	Storage_Size): If the expression for Storage_Size is not static
      	it may depend on characterstics of another type that may bot be
      	frozen yet, so the elaboration of the expression for the aspect
      	must be attached directly to the freeze actions of the type to
      	which it applies.
      
      gcc/testsuite/
      
      	* gnat.dg/storage_size1.adb: New testcase.
      
      From-SVN: r274742
      Ed Schonberg committed
    • [Ada] Inconsistent scope chain due to quantified expression · aa090e20
      Routine Build_DIC_Procedure_Declaration appears to be heavily inspired
      by Build_Invariant_Procedure_Declaration; they both wrap an expression
      attached to a type inside an internal procedure. Initially none of them
      were calling Set_Last_Entity.
      
      For Build_Invariant_Procedure_Declaration this was fixed previously.
      For Build_DIC_Procedure_Declaration this is fixed here.
      
      The issue affects the GNATprove tool and is not visible to end users of
      the GNAT compiler. No simple test is available because this would
      require a debug session.
      
      2019-08-20  Piotr Trojanek  <trojanek@adacore.com>
      
      gcc/ada/
      
      	* exp_util.adb (Build_DIC_Procedure_Declaration): Set the last
      	entity of the generated Default_Initial_Condition procedure in
      	order to construct a proper entity chain.
      
      From-SVN: r274741
      Piotr Trojanek committed
    • [Ada] Adapt GNATprove expansion for slices with access prefix · dd6e65c6
      The special expansion done in GNATprove mode should be adapted to slices
      where the prefix has access type, like indexed expressions.
      
      There is no impact on compilation.
      
      2019-08-20  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* exp_spark.adb (Expand_SPARK_N_Slice_Or_Indexed_Component):
      	Renaming of function to apply to slices as well.
      	(Expand_SPARK): Expand prefix of slices of access type.
      
      From-SVN: r274740
      Yannick Moy committed
    • [Ada] Improve efficiency of aggregates with <> · d4e4e88a
      The generated code has been improved so that aggregates with <> are more
      efficient.  No change in behavior; no test.
      
      2019-08-20  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* exp_aggr.adb (Expand_Array_Aggregate): Use build-in-place in
      	the nonlimited case in STEP 4. This improves the efficiency of
      	things like (1 .. 1000 => <>).  We still generate some code for
      	that, unfortunately, but it is much improved.
      	(Aggr_Assignment_OK_For_Backend): Return false if <> components
      	are present.
      
      From-SVN: r274739
      Bob Duff committed
    • [Ada] Improve speed of discriminated return types · cf0e5ca7
      The compiler now generates faster code for functions that return
      discriminated types in many cases where the size is known at compile
      time.
      
      2019-08-20  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* exp_ch6.adb (Needs_BIP_Alloc_Form): Call
      	Requires_Transient_Scope rather than checking constrainedness
      	and so forth.  We have previously improved
      	Requires_Transient_Scope to return False in various cases,
      	notably a limited record with an access discriminant. This
      	change takes advantage of that to avoid using the secondary
      	stack for functions returning such types.
      	(Make_Build_In_Place_Call_In_Allocator): Be consistent by
      	calling Needs_BIP_Alloc_Form rather than Is_Constrained and so
      	forth.
      	* sem_ch4.adb (Analyze_Allocator): The above change causes the
      	compiler to generate code that is not legal Ada, in particular
      	an uninitialized allocator for indefinite subtype.  This is
      	harmless, so we suppress the error message in this case.
      
      From-SVN: r274738
      Bob Duff committed
    • [Ada] Minor reformattings · 31fde973
      2019-08-20  Gary Dismukes  <dismukes@adacore.com>
      
      gcc/ada/
      
      	* ali.adb, ali.ads, aspects.adb, checks.ads, checks.adb,
      	doc/gnat_rm/implementation_defined_pragmas.rst,
      	doc/gnat_ugn/building_executable_programs_with_gnat.rst,
      	einfo.ads, exp_aggr.adb, exp_ch11.adb, exp_ch3.ads, exp_ch4.adb,
      	exp_disp.adb, inline.adb, libgnat/a-locale.ads,
      	libgnat/s-soflin.ads, par_sco.adb, repinfo.adb, sem_ch5.adb,
      	sem_disp.adb, sem_elab.adb, sem_eval.adb, sem_spark.adb,
      	sem_spark.ads, sinfo.ads: Minor reformattings, typo fixes and
      	and rewordings.
      
      From-SVN: r274737
      Gary Dismukes committed
    • [Ada] Set GNAT.OS_Lib.GM_Split's granularity back to 1 second · 8d3e8018
      The modification to round time up to even second was added decades ago.
      It was done to avoid unneeded recompilations when the project was built
      on non-FAT filesystems and then moved to FAT filesystems. Such a
      situation is now very rare and does not deserve time distortion.
      
      2019-08-20  Dmitriy Anisimkov  <anisimko@adacore.com>
      
      gcc/ada/
      
      	* adaint.c (__gnat_to_gm_time): On _WIN32, don't round time up
      	to even second.
      
      From-SVN: r274736
      Dmitriy Anisimkov committed
    • [Ada] Fix propagation of compiler internal flag · b08f42ae
      No change in behavior for GCC-based compilations.
      
      2019-08-20  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_ch3.adb (Analyze_Object_Declaration): If actual type is
      	private and distinct from nominal type in declaration, propagate
      	flags Is_Constr_Subt_For_U_Nominal and _UN_Aliased to full view
      	of private type.
      
      From-SVN: r274735
      Ed Schonberg committed
    • [Ada] Crash on Loop_Entry for while_loop involving substrings · b6b011dd
      When expanding a loop entry attribute for a while_loop we construct a
      function that incorporates the expanded condition of the loop. The
      itypes that may be generated in that expansion must carry the scope of
      the constructed function for proper handling in the backend.
      
      2019-08-20  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_attr.adb (Expand_Loop_Entry_Attribute): When expanding a
      	loop entry attribute for a while_loop we construct a function
      	that incorporates the expanded condition of the loop. The itypes
      	that may be generated in that expansion must carry the scope of
      	the constructed function for proper handling in gigi.
      
      gcc/testsuite/
      
      	* gnat.dg/loop_entry2.adb: New testcase.
      
      From-SVN: r274734
      Ed Schonberg committed
    • [Ada] Spurious error in dispatching call with class-wide precondition · 1233757a
      This patch fixes a spurious visibility error on a dispatching call to
      a subprogram with a classwide precondition, when the call qppears in
      the same declarative part as the subprogram declaration itself.
      
      2019-08-20  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_disp.adb (Build_Class_Wide_Check, Replace_Formals): When a
      	dispatching call tp a subprogram with a class-wide precondition
      	occurrs in the same declarative part as the ancestor subprogram
      	being called, the`expression for the precondition has not been
      	analyzed yet. Such a call may appear, e.g. in an expression
      	function. In that case, the replacement of formals by actuals in
      	the call cannot use the formal entities of the subprogram being
      	called, and the occurrence of the formals in the expression must
      	be located by name (Chars fields) as would be done at a later
      	freeze point, when the expression is resolved in the context of
      	the subprogram itself.
      
      gcc/testsuite/
      
      	* gnat.dg/tagged5.adb, gnat.dg/tagged5.ads: New testcase.
      
      From-SVN: r274733
      Ed Schonberg committed
    • [Ada] Suppress Initialize_Scalars for Persistent_BSS · 9740c244
      If a variable has pragma Persistent_BSS, the compiler now automatically
      suppresses implicit initializations caused by Initialize_Scalars and
      Normalize_Scalars. Variables with Persistent_BSS cannot be initialized,
      and previously a pragma Suppress_Initialization was required before the
      pragma Persistent_BSS.
      
      2019-08-20  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* sem_prag.adb (Persistent_BSS): If an initialization is present
      	because of Initialize_Scalars or Normalize_Scalars, generate an
      	implicit pragma Suppress_Initialization to remove that, because
      	initialization is not allowed for these variables. Other
      	initializations remain illegal.
      
      From-SVN: r274732
      Bob Duff committed