171131 Commits

Author SHA1 Message Date
GCC Administrator
ae12842109 Daily bump.
From-SVN: r274816
2019-08-22 00:16:17 +00:00
Prathamesh Kulkarni
9556ef2016 re PR target/88839 ([SVE] Poor implementation of blend-like permutes)
2019-08-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
	    Richard Sandiford  <richard.sandiford@arm.com>

	PR target/88839
	* config/aarch64/aarch64.c (aarch64_evpc_sel): New function.
	(aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel.

testsuite/
	* gcc.target/aarch64/sve/sel_1.c: New test.
	* gcc.target/aarch64/sve/sel_2.c: Likewise.
	* gcc.target/aarch64/sve/sel_3.c: Likewise.
	* gcc.target/aarch64/sve/sel_4.c: Likewise.
	* gcc.target/aarch64/sve/sel_5.c: Likewise.
	* gcc.target/aarch64/sve/sel_6.c: Likewise.

Co-Authored-By: Richard Sandiford <richard.sandiford@arm.com>

From-SVN: r274810
2019-08-21 20:41:41 +00:00
Prathamesh Kulkarni
846f78d414 re PR target/90724 (ICE with __sync_bool_compare_and_swap with -march=armv8.2-a+sve)
2019-08-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/90724
	* config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
	in reg if it fails aarch64_plus_operand predicate.

From-SVN: r274805
2019-08-21 18:34:43 +00:00
Ian Lance Taylor
eda684e6a7 compiler: don't use pkgpath for fieldtrack of unexported field
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/191040

From-SVN: r274803
2019-08-21 17:19:52 +00:00
Ian Lance Taylor
7f8c0c0504 compiler: if hidden function referenced by inline, don't hide descriptor
Fixes golang/go#33739
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/191037

From-SVN: r274800
2019-08-21 14:11:24 +00:00
Richard Sandiford
077eb7af6e [C++] Protect call to copy_attributes_to_builtin (PR91505)
copy_attributes_to_builtin only handles BUILT_IN_NORMAL, but C++ was
calling it immediately after the:

	  if (DECL_BUILT_IN_CLASS (newdecl) == BUILT_IN_NORMAL)

block.  The corresponding C code calls it inside the block instead.

2019-08-21  Richard Sandiford  <richard.sandiford@arm.com>

gcc/cp/
	PR c++/91505
	* decl.c (duplicate_decls): Call copy_attributes_to_builtin inside
	the BUILT_IN_NORMAL block rather than afterward.

gcc/testsuite/
	PR c++/91505
	* g++.target/i386/crc32-4.C: New test.

From-SVN: r274799
2019-08-21 13:59:31 +00:00
Richard Biener
d6dea10acf re PR tree-optimization/91482 (__builtin_assume_aligned should not break write combining)
2019-08-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91482
	* tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless
	BUILT_IN_ASSUME_ALIGNED calls.

	* gcc.dg/tree-ssa/pr91482.c: New testcase.

From-SVN: r274796
2019-08-21 11:45:34 +00:00
Eric Botcazou
8bb2ee5939 c-ada-spec.c (dump_ada_function_declaration): Be prepared for broken function declarations where arguments are missing.
* c-ada-spec.c (dump_ada_function_declaration): Be prepared for broken
	function declarations where arguments are missing.  Rename variables.

From-SVN: r274794
2019-08-21 09:54:04 +00:00
Christophe Lyon
73c1f2f00e [testsuite][arm] Add missing quotes to expected warning messages.
2019-08-21  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/arm/cmse/cmse-9.c: Add quotes to expected
	warning messages.

From-SVN: r274793
2019-08-21 11:40:51 +02:00
Richard Biener
8ef64ab954 re PR target/91498 (STV change in r274481 causes 300.twolf regression on Haswell)
2019-08-21  Richard Biener  <rguenther@suse.de>

	PR target/91498
	PR target/91503
	* config/i386/i386-features.c
	(general_scalar_chain::make_vector_copies): Copy stack temporary
	rtx when using it multiple times.
	(general_scalar_chain::convert_reg): Likewise.

From-SVN: r274792
2019-08-21 08:44:59 +00:00
Vadim Godunko
5eb349352b [Ada] Improve detection of end of the process by GNAT.Expect
'read' system call may be interrupted by signal with 'errno' is set to
EINTER. In this case, re-try a few times.

2019-08-21  Vadim Godunko  <godunko@adacore.com>

gcc/ada/

	* libgnat/g-expect.adb (Expect_Internal): Attempt to read
	several times when 'read' returns non-positive.

From-SVN: r274791
2019-08-21 08:31:20 +00:00
Piotr Trojanek
7c2a44aebb [Ada] Minor refactorings/reformattings
2019-08-21  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* einfo.adb (Is_Discriminal): Remove extra parens.
	(Is_Constant_Object): Simplify by reusing Ekind_In.
	(Is_Prival): Remove extra parens.
	* checks.adb, exp_ch4.adb, sem_ch3.adb, sem_spark.adb: Minor
	reformattings.

From-SVN: r274790
2019-08-21 08:31:16 +00:00
Claire Dross
0728477991 [Ada] Allow for of iteration on formal vectors
2019-08-21  Claire Dross  <dross@adacore.com>

gcc/ada/

	* libgnat/a-cofove.ads (Vector): Add an Iterable aspect to allow
	iteration.
	(Iter_First, Iter_Next): Primitives used for iteration.

From-SVN: r274789
2019-08-21 08:31:11 +00:00
Yannick Moy
61e33106ed [Ada] More precise propagation of Size attribute in generic instances
GNATprove analyzer for SPARK code depends on the frontend to accurately
propagate the known value of Size attribute. This was not done for
formal type parameters in generic instantiations. Now fixed.

There is no impact on compilation.

2019-08-21  Yannick Moy  <moy@adacore.com>

gcc/ada/

	* sem_ch3.adb (Analyze_Subtype_Declaration): Inherit RM_Size
	field for formal type parameters in generic instantiations.

From-SVN: r274788
2019-08-21 08:31:07 +00:00
Yannick Moy
e9934e8c79 [Ada] Update references to the SPARK RM
2019-08-21  Yannick Moy  <moy@adacore.com>

gcc/ada/

	* sem_spark.adb: Update references to the SPARK RM.

From-SVN: r274787
2019-08-21 08:31:03 +00:00
Eric Botcazou
3c488e6c86 [Ada] More complete information level for -gnatR4 output
This instructs -gnatR4 to also list the Etype of components in
user-declared record types if it is compiler-generated, for example in:

package P3 is

    type idx is range 1 .. 100;

    type Arr is array (Idx range <>) of Character;

    type Rec is record
       C : Arr (1 .. 5);
    end record;

end P3;

2019-08-21  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* repinfo.adb (List_Array_Info): In -gnatR4 mode, set the
	relevant flag on the component type here instead of...
	(List_Object_Info): Likewise for the object type.
	(List_Entities): ...here.  In -gnatR4 mode, recurse into
	entities local to a record type.
	(List_Component_Layout): In -gnatR4 mode, mark the type as
	relevant.

From-SVN: r274786
2019-08-21 08:30:58 +00:00
Bob Duff
abdeafa67a [Ada] Add the System.Bitfield_Utils runtime unit
2019-08-21  Bob Duff  <duff@adacore.com>

gcc/ada/

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-bitutil.o and
	s-biutin.o.
	* exp_ch5.adb (Expand_Assign_Array_Bitfield): New function to
	generate a call to Copy_Bitfield. This is disabled for now.
	(Expand_Assign_Array_Loop_Or_Bitfield): New function to decide
	whether to call Expand_Assign_Array_Bitfield.
	(Expand_Assign_Array): Call Expand_Assign_Array_Loop_Or_Bitfield
	instead of Expand_Assign_Array_Loop.
	* libgnat/s-bitfie.ads, libgnat/s-bituti.adb,
	libgnat/s-bituti.ads: New units.
	* rtsfind.ads: Add enum literals for accessing Copy_Bitfield.

From-SVN: r274785
2019-08-21 08:30:53 +00:00
Piotr Trojanek
a1fda1e875 [Ada] Bindo.Graphs: Minor typo fixes
2019-08-21  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* bindo-graphs.ads (Iterate_Edges_To_Successors): Fix typo in
	pragma Inline.
	* bindo-graphs.adb (Delete_Edge): Fix layout in parameter list.

From-SVN: r274784
2019-08-21 08:30:32 +00:00
Gary Dismukes
830c594810 [Ada] Undefined master in task with limited class-wide aliased entry formal
In the case of a task declaring an entry with an aliased formal
parameter of a limited class-wide type, the front end was creating a
master object (_master) for the access type generated for such an entry
formal inside the task specification, even though such access types
don't need an associated master.  The master object wasn't being copied
into the procedure expanded for the task body, but a renaming for the
master appeared in the statements of the task body, and the LLVM back
end rejects this since the master object doesn't appear in the expanded
task procedure (for some reason, gigi doesn't complain). This is fixed
by suppressing the creation of the master object in the case where the
access-to-limited-class-wide access type is the type of a component in
an entry's parameter block.  This is similar to the suppression done for
the master object in other cases, where the access type designates a
type explicitly containing tasks (though the suppression involves
testing Comes_From_Source in that case).

No simple test (and this only affects the LLVM-based compiler).

2019-08-21  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

	* exp_ch3.adb (Build_Master): Suppress call to
	Build_Class_Wide_Master in the case where the
	access-to-limited-class-wide type was created for a component in
	an entry's formal parameter
	block (Is_Parameter_Block_Component_Type), to prevent a master
	from being created for such access types generated by the front
	end in a task spec for entry formals in a parameter block.  Add
	a ??? about whether this suppression should be done more
	generally (such as by using Comes_From_Source).

From-SVN: r274783
2019-08-21 08:30:17 +00:00
Eric Botcazou
bde9a2c227 [Ada] Fix type mismatch in extended return statement expansion
This fixes a (sub)type mismatch in the expansion of an extended return
statement generated for a built-in-place function that doesn't need a
BIP_Alloc_Form parameter but returns unconstrained.

No functional changes.

2019-08-21  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* exp_ch6.adb (Expand_N_Extended_Return_Statement): In the case
	of a built-in-place function that doesn't need a BIP_Alloc_Form
	parameter but returns unconstrained, build the return
	consistently using the function's result subtype.  Remove bypass
	added in previous change.

From-SVN: r274782
2019-08-21 08:30:00 +00:00
Piotr Trojanek
92ef57728e [Ada] Do not rewrite argument of pragma Entry_Queue_Length in analysis
It was unusual for the analysis phase of compiler to rewrite static
expression of pragma Entry_Queue_Length with its value. This typically
happens when expanding the AST and only if needed for a given backend.
In particular, GNATprove doesn't need such an expansion and actually
needs the unrewritten AST to detect references to constants declared
with SPARK_Mode => Off within a code with SPARK_Mode => On.

This change has no impact on compilation, so no frontend test is
provided.

2019-08-21  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* sem_prag.adb (Max_Entry_Queue_Length): Do not substitute
	expression of the pragma argument with its value during
	analysis.
	* sem_util.adb (Get_Max_Queue_Length): Compute value of the
	pragma argument when needed.

From-SVN: r274781
2019-08-21 08:29:56 +00:00
Yannick Moy
5c34f30d16 [Ada] Avoid spurious error in GNATprove mode on non-null access types
GNATprove directly handles non-null access checks, and requires that the
frontend does not insert explicit checks in the form of conditional
exceptions being raised. Now fixed.

There is no impact on compilation.

2019-08-21  Yannick Moy  <moy@adacore.com>

gcc/ada/

	* checks.adb (Install_Null_Excluding_Check): Do not install
	check in GNATprove mode.

From-SVN: r274780
2019-08-21 08:29:51 +00:00
Yannick Moy
570d0072bd [Ada] Ignore subprogram address in ownership checking
Ownership checking done as in GNATprove should ignore address of
subprograms, as it applies only on objects. Now fixed.

There is no impact on compilation.

2019-08-21  Yannick Moy  <moy@adacore.com>

gcc/ada/

	* sem_spark.adb (Process_Path): Do nothing on address of
	subprogram.

From-SVN: r274779
2019-08-21 08:29:47 +00:00
Eric Botcazou
78170c8ea1 [Ada] Fix assertion failure on derived private protected type
This fixes an assertion failure on the instantiation of a generic
package on a type derived from the private view of a protected type,
ultimately caused by Finalize_Address returning Empty for the subtype
built for the generic actual type of the instantiation.

Finalize_Address has a special processing for untagged derivations of
private views, but it would no longer trigger for the subtype because
this subtype is now represented as a subtype of an implicit derived base
type instead of as the derived type of an implicit subtype previously.

2019-08-21  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* exp_util.adb (Finalize_Address): Deal consistently with
	subtypes of private protected types.

gcc/testsuite/

	* gnat.dg/prot9.adb, gnat.dg/prot9_gen.ads,
	gnat.dg/prot9_pkg1.ads, gnat.dg/prot9_pkg2.ads: New testcase.

From-SVN: r274778
2019-08-21 08:29:42 +00:00
Piotr Trojanek
5188952e59 [Ada] Replace low-level membership tests with high-level routines
Code cleanup to improve readablity. Semantics unaffected.

2019-08-21  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* exp_util.adb (Corresponding_Runtime_Package): Use high-level
	Is_Protected_Type.
	* sem_ch8.adb (Analyze_Renamed_Entry): Likewise.
	* sem_ch9.adb (Analyze_Requeue): Likewise.

From-SVN: r274777
2019-08-21 08:29:37 +00:00
Javier Miranda
93a08e1e4a [Ada] Missing attribute update in new_copy_tree
The compiler crashes processing an internally generated cloned tree that
has a subprogram call with a named actual parameter.

2019-08-21  Javier Miranda  <miranda@adacore.com>

gcc/ada/

	* sem_util.adb (Update_Named_Associations): Update
	First_Named_Actual when the subprogram call has a single named
	actual.

gcc/testsuite/

	* gnat.dg/implicit_param.adb, gnat.dg/implicit_param_pkg.ads:
	New testcase.

From-SVN: r274776
2019-08-21 08:29:33 +00:00
Joel Brobecker
cfc03d536f [Ada] doc/Makefile: automatically create doc/share/_static
2019-08-21  Joel Brobecker  <brobecker@adacore.com>

gcc/ada/

	* doc/Makefile (mk_empty_dirs): New (PHONY) rule.
	(%.html, %.pdf, %.txt, %.info, %.texinfo): Add dependencies on
	mk_empty_dirs.

From-SVN: r274775
2019-08-21 08:29:27 +00:00
Justin Squirek
df2d2fe0ee [Ada] Max_Entry_Queue_Length aspect for protected entries
Allow values of negative one to be accepted as a valid parameter as a
special case.

2019-08-21  Justin Squirek  <squirek@adacore.com>

gcc/ada/

	* doc/gnat_rm/implementation_defined_pragmas.rst: Modify
	documentation to reflect expected behavior.
	* gnat_rm.texi: Regenerate.
	* sem_prag.adb (Analyze_Pragma): Modify handling of pragma
	Max_Entry_Queue_Length to not reject integer values of negative
	one.
	* sem_util.adb (Get_Max_Queue_Length): Add processing for values
	of negative one to fit within the current scheme.

From-SVN: r274774
2019-08-21 08:29:23 +00:00
Iain Buclaw
1e78c638a7 libphobos: Merge upstream druntime 5bb8ce19
Synchronizes extern(C) bindings with latest release.

Reviewed-on: https://github.com/dlang/druntime/pull/2741

libphobos/ChangeLog:

	* libdruntime/Makefile.am (DRUNTIME_DSOURCES_BIONIC): Add
	core/sys/bionic/string.d.
	(DRUNTIME_DSOURCES_DARWIN): Add core/sys/darwin/string.d.
	(DRUNTIME_DSOURCES_DRAGONFLYBSD): Add core/sys/dragonflybsd/string.d,
	core/sys/dragonflybsd/sys/socket.d.
	(DRUNTIME_DSOURCES_FREEBSD): Add core/sys/freebsd/string.d.
	(DRUNTIME_DSOURCES_LINUX): Add core/sys/linux/string.d.
	(DRUNTIME_DSOURCES_NETBSD): Add core/sys/netbsd/string.d,
	core/sys/netbsd/sys/featuretest.d.
	* libdruntime/Makefile.in: Regenerate.

From-SVN: r274773
2019-08-21 07:54:34 +00:00
Iain Buclaw
0234a9176c libphobos: Merge upstream druntime 94686651
Adds extern(C) bindings for version OpenBSD.

Reviewed-on: https://github.com/dlang/druntime/pull/2748

libphobos/ChangeLog:

	* libdruntime/Makefile.am (DRUNTIME_DSOURCES_OPENBSD): Add
	core/sys/openbsd/sys/cdefs.d, core/sys/openbsd/sys/elf.d,
	core/sys/openbsd/sys/elf32.d, core/sys/openbsd/sys/elf64.d,
	core/sys/openbsd/sys/elf_common.d, core/sys/openbsd/sys/link_elf.d,
	core/sys/openbsd/sys/mman.d, core/sys/openbsd/time.d.
	* libdruntime/Makefile.in: Regenerate.

From-SVN: r274772
2019-08-21 07:54:19 +00:00
Iain Buclaw
134d3a142d re PR d/91339 (libphobos: ftbfs when the path contains '~')
PR d/91339
d/dmd: Merge upstream dmd b37a537d3

Fixes the error: cannot find source code for runtime library file
'object.d' when the path contains '~'.

Reviewed-on: https://github.com/dlang/dmd/pull/10309

From-SVN: r274771
2019-08-21 07:54:06 +00:00
Iain Buclaw
71043642d5 libphobos: Merge upstream phobos 66ae77ac3
Finishes off phobos support for musl targets.

Reviewed-on: https://github.com/dlang/phobos/pull/7108

From-SVN: r274770
2019-08-21 07:53:55 +00:00
Iain Buclaw
7cc9cfd2ca d: Partially fix ICE: in register_moduleinfo, at d/modules.cc:40
gcc/d/ChangeLog:

	PR d/88722
	* modules.cc: Include diagnostic.h.
	(register_moduleinfo): Use sorry instead of gcc_assert for targets
	without named sections.

From-SVN: r274769
2019-08-21 07:53:44 +00:00
Iain Buclaw
de83a4c14b d/dmd: Merge upstream dmd 375ed10aa
Don't crash when compiling for 16-bit platforms.

Reviewed-on: https://github.com/dlang/dmd/pull/10306

gcc/d/ChangeLog:

	* d-target.cc: Include diagnostic.h.
	(Target::_init): Set Tsize_t and Tptrdiff_t as D ushort and short if
	the target pointer size is 2.  Add sorry if the pointer size is not
	either 2, 4, or 8.

From-SVN: r274768
2019-08-21 07:53:35 +00:00
Iain Buclaw
edf095929f d: Fix ICE: Segmentation fault in build_function_type at gcc/tree.c:8539
gcc/d/ChangeLog:

	PR d/90446
	* d-lang.cc (d_type_for_mode): Check for all internal __intN types.
	(d_type_for_size): Likewise.

From-SVN: r274767
2019-08-21 07:53:25 +00:00
Iain Buclaw
7610ae806e d: Fix internal compiler error: in d_build_c_type_nodes, at d/d-builtins.cc:783
gcc/d/ChangeLog:

	PR d/90445
	* d-builtins.cc (d_build_c_type_nodes): Test UINTMAX_TYPE for setting
	uintmax_type_node.  Set signed_size_type_node as the signed_type_for
	size_type_node.

From-SVN: r274766
2019-08-21 07:53:15 +00:00
Iain Buclaw
2ee3ea4b90 d: Fix internal compiler error: in d_init_builtins, at d/d-builtins.cc:1121
gcc/d/ChangeLog:

	PR d/90444
	* d-builtins.cc (build_frontend_type): Build anonymous RECORD_TYPE
	nodes as well, push all fields to the struct members.
	(d_build_builtins_module): Push anonymous va_list structs to the
	builtins module, naming them __builtin_va_list.
	(d_init_builtins): Use sorry instead of gcc_unreachable if va_list did
	not succeed in being represented as a D type.

From-SVN: r274765
2019-08-21 07:53:05 +00:00
Martin Sebor
dcb6ebe3d6 re PR testsuite/91458 (FAIL: g++.dg/tree-ssa/pr19807.C -std=gnu++98 scan-tree-dump-times optimized "&MEM\\\\[\\\\(void .\\\\)&a \\\\+ 8B\\\\]" 3)
PR testsuite/91458

gcc/testsuite/ChangeLog:
	* g++.dg/tree-ssa/ssa-dse-1.C: Use the same search pattern
	unconditionally (correcting r272199, PR middle-end/90676).
	* gcc.dg/tree-prof/stringop-2.c: Same.

From-SVN: r274764
2019-08-20 20:18:41 -06:00
GCC Administrator
a707d6ad05 Daily bump.
From-SVN: r274763
2019-08-21 00:16:16 +00:00
Jonathan Wakely
9e3c41ab04 Do not try to process deleted headers with Doxygen
* doc/doxygen/user.cfg.in (INPUT): Remove profile mode headers.

From-SVN: r274758
2019-08-20 22:35:55 +01:00
Jonathan Wakely
eb0e858945 Fix markdown in Doxygen comments for std::reduce
* include/std/numeric (reduce): Fix Doxygen markup.

From-SVN: r274757
2019-08-20 22:34:15 +01:00
Jonathan Wakely
72459cfd86 PR libstdc++/91371 make std::is_function handle other calling conventions
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
2019-08-20 22:21:15 +01:00
Ian Lance Taylor
43055d2379 compiler, runtime: implement shifts by signed amounts
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
2019-08-20 21:15:46 +00:00
Bernd Edlinger
5ba5ad304a function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
2019-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.

From-SVN: r274751
2019-08-20 16:08:12 +00:00
Matthew Beliveau
529f304811 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
2019-08-20 13:23:01 +00:00
Richard Biener
00f7060a2d re PR lto/91307 (-flto causes binary to vary)
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
2019-08-20 13:14:59 +00:00
Richard Biener
3ed01d5408 re PR tree-optimization/37242 (missed FRE opportunity because of signedness of addition)
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
2019-08-20 12:02:56 +00:00
Mark Eggleston
a53aa4da8a Intrinsic documentation changes.
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
2019-08-20 10:08:10 +00:00
Arnaud Charlet
dd241b9458 [Ada] Unnesting: take inlining (-gnatn) into account
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
2019-08-20 09:50:43 +00:00
Ed Schonberg
b82f1618c4 [Ada] Crash on a Storage_Size aspect depending on attr. of another type
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
2019-08-20 09:50:38 +00:00