Commit Graph

180740 Commits

Author SHA1 Message Date
Richard Biener
63b2149fb4 Refactor SLP instance analysis
This refactors the toplevel entry to analyze an SLP instance to
expose a worker analyzing from a vector of stmts and an SLP entry
kind.

2020-10-26  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (enum slp_instance_kind): New.
	(vect_build_slp_instance): Split out from...
	(vect_analyze_slp_instance): ... this.
2020-10-26 16:00:25 +01:00
Andrew MacLeod
425bb53b54 Re: error: ‘EVRP_MODE_DEBUG’ was not declared – was: [PUSHED] Ranger classes.
Initialize zerov to match vr-values.c.

	* gimple-range.cc (range_of_builtin_call): Initialize zerov to 0.
2020-10-26 10:18:01 -04:00
Ville Voutilainen
9e2256dcd4 c++: Implement __is_nothrow_constructible and __is_nothrow_assignable
gcc/c-family/ChangeLog:

	* c-common.c (__is_nothrow_assignable): New.
	(__is_nothrow_constructible): Likewise.
	* c-common.h (RID_IS_NOTHROW_ASSIGNABLE): New.
	(RID_IS_NOTHROW_CONSTRUCTIBLE): Likewise.

gcc/cp/ChangeLog:

	* cp-tree.h (CPTK_IS_NOTHROW_ASSIGNABLE): New.
	(CPTK_IS_NOTHROW_CONSTRUCTIBLE): Likewise.
	(is_nothrow_xible): Likewise.
	* method.c (is_nothrow_xible): New.
	(is_trivially_xible): Tweak.
	* parser.c (cp_parser_primary_expression): Handle the new RID_*.
	(cp_parser_trait_expr): Likewise.
	* semantics.c (trait_expr_value): Handle the new RID_*.
	(finish_trait_expr): Likewise.

libstdc++-v3/ChangeLog:

	* include/std/type_traits (__is_nt_constructible_impl): Remove.
	(__is_nothrow_constructible_impl): Adjust.
	(is_nothrow_default_constructible): Likewise.
	(__is_nt_assignable_impl): Remove.
	(__is_nothrow_assignable_impl): Adjust.
2020-10-26 15:36:24 +02:00
Jan Hubicka
783dc02d89 Fix simdclones
gcc/ChangeLog:

	PR ipa/97576
	* cgraphclones.c (cgraph_node::materialize_clone): Clear stmt
	references.
	* cgraphunit.c (mark_functions_to_output): Do not clear them here.
	* ipa-inline-transform.c (inline_transform): Clear stmt references.
	* symtab.c (symtab_node::clear_stmts_in_references): Make recursive
	for clones.
	* tree-ssa-structalias.c (ipa_pta_execute): Do not clear references.

gcc/testsuite/ChangeLog:

	PR ipa/97576
	* gcc.c-torture/compile/pr97576.c: New test.
2020-10-26 14:11:35 +01:00
zhengnannan
2d5aad691f AArch64: Add FLAG for store intrinsics [PR94442]
2020-10-26  Zhiheng Xie  <xiezhiheng@huawei.com>
	    Nannan Zheng  <zhengnannan@huawei.com>

gcc/ChangeLog:

	* config/aarch64/aarch64-builtins.c: Add FLAG STORE.
	* config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
	for store intrinsics.
2020-10-26 13:02:18 +00:00
Jonathan Wakely
93e9a7bcd5 libstdc++: Fix declarations of memalign etc. for freestanding [PR 97570]
libstdc++-v3/ChangeLog:

	PR libstdc++/97570
	* libsupc++/new_opa.cc: Declare size_t in global namespace.
	Remove unused header.
2020-10-26 12:02:50 +00:00
Kyrylo Tkachov
7f0ce82a4c PR tree-optimization/97546 Bail out of find_bswap_or_nop on non-INTEGER_CST sizes
This patch fixes the ICE in the PR by bailing out of find_bswap_or_nop
on poly_int sizes.
I don't think it intends to handle them and from my reading of the code
it's the most appropriate place to reject them
here rather than in the callers.

Bootstrapped and tested on aarch64-none-linux-gnu.

gcc/
	PR tree-optimization/97546
	* gimple-ssa-store-merging.c (find_bswap_or_nop): Return NULL if
	type is not INTEGER_CST.

gcc/testsuite/
	PR tree-optimization/97546
	* gcc.target/aarch64/sve/acle/general/pr97546.c: New test.
2020-10-26 11:43:26 +00:00
Richard Biener
605c2a393d middle-end/97521 - always use single-bit bools in mask vector types
This makes us always use a single-bit boolean type component type
for integer mode mask VECTOR_BOOLEAN_TYPE_P to match the RTL and target
representation.  This aovids the need for magic translation and
the inconsistencies from the translation requirement now that
we expose temporaries of those types on the GIMPLE level.

2020-10-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/97521
	* expr.c (const_scalar_mask_from_tree): Remove.
	(expand_expr_real_1): Always VIEW_CONVERT integer mode
	vector constants to an integer type.
	* tree.c (build_truth_vector_type_for_mode): Use a single-bit
	boolean component type for non-vector-mode mask_mode.

	* gcc.target/i386/pr97521.c: New testcase.
2020-10-26 12:28:30 +01:00
H.J. Lu
4052c05e5b x86: Inline strncmp only with -minline-all-stringops
Expand strncmp to "repz cmpsb" only with -minline-all-stringops since
"repz cmpsb" can be much slower than strncmp function implemented with
vector instructions, see

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052

gcc/

	PR target/95458
	* config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem):
	Return false for -mno-inline-all-stringops.

gcc/testsuite/

	PR target/95458
	* gcc.target/i386/pr95458-1.c: New test.
	* gcc.target/i386/pr95458-2.c: Likewise.
2020-10-26 04:15:47 -07:00
H.J. Lu
3edc21af52 x86: Add cmpmemsi for -minline-all-stringops
We used to expand memcmp to "repz cmpsb" via cmpstrnsi.  It was changed
by

commit 9b0f6f5e51
Author: Nick Clifton <nickc@redhat.com>
Date:   Fri Aug 12 16:26:11 2011 +0000

    builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.

            * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi
            pattern.
            * doc/md.texi (cmpstrn): Note that the comparison stops if both
            fetched bytes are zero.
            (cmpstr): Likewise.
            (cmpmem): Note that the comparison does not stop if both of the
            fetched bytes are zero.

Duplicate the cmpstrn pattern for cmpmem.  The only difference is that
the length argument of cmpmem is guaranteed to be less than or equal to
lengths of 2 memory areas.  Since "repz cmpsb" can be much slower than
memcmp function implemented with vector instruction, see

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052

expand cmpmem to "repz cmpsb" only for -minline-all-stringops.

gcc/

	PR target/95151
	* config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem): New
	function.
	* config/i386/i386-protos.h (ix86_expand_cmpstrn_or_cmpmem): New
	prototype.
	* config/i386/i386.md (cmpmemsi): New pattern.

gcc/testsuite/

	PR target/95151
	* gcc.target/i386/pr95151-1.c: New test.
	* gcc.target/i386/pr95151-2.c: Likewise.
	* gcc.target/i386/pr95151-3.c: Likewise.
	* gcc.target/i386/pr95151-4.c: Likewise.
2020-10-26 04:06:32 -07:00
Andreas Krebbel
19534269d8 IBM Z: Add vcond_mask expander
After adding vec_cmp expanders we have seen various performance
related regression in the testsuite.  These appear to be caused by a
missing vcond_mask definition in the backend.  Fixed with this patch.

The patch fixes the following testsuite fails:

FAIL: gcc.dg/vect/vect-21.c -flto -ffat-lto-objects  scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-21.c scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-23.c -flto -ffat-lto-objects  scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-23.c scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-24.c -flto -ffat-lto-objects  scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-24.c scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-live-6.c -flto -ffat-lto-objects  scan-tree-dump vect "vectorized 1 loops"
FAIL: gcc.dg/vect/vect-live-6.c scan-tree-dump vect "vectorized 1 loops"
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesrab\\t%v.?,%v.?,7 6
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesraf\\t%v.?,%v.?,31 6
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesrah\\t%v.?,%v.?,15 6
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesrlb\\t%v.?,%v.?,7 4
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesrlf\\t%v.?,%v.?,31 4
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesrlh\\t%v.?,%v.?,15 4
FAIL: gcc.dg/vect/vect-21.c -flto -ffat-lto-objects  scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-21.c scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-23.c -flto -ffat-lto-objects  scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-23.c scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-24.c -flto -ffat-lto-objects  scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-24.c scan-tree-dump-times vect "vectorized 3 loops" 1
FAIL: gcc.dg/vect/vect-live-6.c -flto -ffat-lto-objects  scan-tree-dump vect "vectorized 1 loops"
FAIL: gcc.dg/vect/vect-live-6.c scan-tree-dump vect "vectorized 1 loops"
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesrab\\t%v.?,%v.?,7 6
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesraf\\t%v.?,%v.?,31 6
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesrah\\t%v.?,%v.?,15 6
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesrlb\\t%v.?,%v.?,7 4
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesrlf\\t%v.?,%v.?,31 4
FAIL: gcc.target/s390/vector/vcond-shift.c scan-assembler-times vesrlh\\t%v.?,%v.?,15 4

gcc/ChangeLog:

	* config/s390/vector.md ("vcond_mask_<mode><mode>"): New expander.
2020-10-26 11:42:06 +01:00
Richard Biener
50f9e1f4d4 middle-end/97554 - avoid overflow in alloc size compute
This avoids overflow in the allocation size computations in
sbitmap_vector_alloc when the result exceeds 2GB.

2020-10-26  Richard Biener  <rguenther@suse.de>

	* sbitmap.c (sbitmap_vector_alloc): Use size_t for byte
	quantities to avoid overflow.
2020-10-26 11:33:50 +01:00
Richard Biener
27c14056f4 tree-optimization/97539 - reset out-of-loop debug uses before peeling
This makes sure to reset out-of-loop debug uses before vectorizer
loop peeling as we cannot make sure to retain the use-def dominance
relationship when there are no LC SSA nodes.

2020-10-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/97539
	* tree-vect-loop-manip.c (vect_do_peeling): Reset out-of-loop
	debug uses before peeling.

	* gcc.dg/pr97539.c: New testcase.
2020-10-26 11:33:50 +01:00
Jan Hubicka
40e67ab8e5 Make default duplicate and insert methods of summaries abort; fix fallout
the default duplicate and insert methods of sumaries produce empty
summary that is not useful for anything and makes it easy to introduce
bugs.

This patch makes the default hooks to abort and summaries that do not
need dupicaito/insertion disable the corresponding hooks. I also
implemented missing insertion hook for ipa-sra which forced me to move
analysis out of anonymous namespace.

2020-10-23  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.h (struct cgraph_node): Make ipa_transforms_to_apply vl_ptr.
	* ipa-inline-analysis.c (initialize_growth_caches): Disable insertion
	and duplication hooks.
	* ipa-inline-transform.c (clone_inlined_nodes): Clear
	ipa_transforms_to_apply.
	(save_inline_function_body): Disable insertion hoook for
	ipa_saved_clone_sources.
	* ipa-prop.c (ipcp_transformation_initialize): Disable insertion hook.
	* ipa-prop.h (ipa_node_params_t): Disable insertion hook.
	* ipa-reference.c (propagate): Disable insertion hoook.
	* ipa-sra.c (ipa_sra_summarize_function): Move out of anonymous
	namespace.
	(ipa_sra_function_summaries::insert): New virtual function.
	* passes.c (execute_one_pass): Do not add transforms to inline clones.
	* symbol-summary.h (function_summary_base): Make insert and duplicate
	hooks fail instead of silently producing empty summaries; add way to
	disable duplication hooks
	(call_summary_base): Likewise.
	* tree-nested.c (nested_function_info::get_create): Disable insertion
	hooks
	(maybe_record_nested_function): Likewise.
2020-10-26 11:24:33 +01:00
Stephan Bergmann
dc7824734e libstdc++: Add missing exception-specifications in shared_ptr
libstdc++-v3/ChangeLog:

	* include/bits/shared_ptr_base.h
	(_Sp_counted_base::_M_add_ref_lock_nothrow(): Add noexcept to
	definitions to match declaration.
	(__shared_count(const __weak_count&, nothrow_t)): Add noexcept
	to declaration to match definition.
2020-10-26 10:15:45 +00:00
Ed Schonberg
02a8253980 [Ada] Handle Iterated_Component_Association with Others_Choice
gcc/ada/

	* exp_aggr.adb (Build_Array_Aggr_Code): If the aggregate
	includes an Others_Choice in an association that is an
	Iterated_Component_Association, generate a proper loop for it.
2020-10-26 04:59:17 -04:00
Eric Botcazou
fcae4f70cd [Ada] Further small edition to documentation of Ada.Text_IO.Fixed_IO
gcc/ada/

	* libgnat/a-tifiio.adb: Add missing sign in documentation.
	* libgnat/s-imgrea.ads: Minor fixes in commentary.
2020-10-26 04:59:16 -04:00
Pat Rogers
38a61cff22 [Ada] Replace GNAT_Extended_Ravenscar profile name
gcc/ada/

	* doc/gnat_rm/implementation_defined_pragmas.rst: Include
	"Jorvik" in pragma Profile description.
	* gnat_rm.texi: Regenerate.
2020-10-26 04:59:15 -04:00
Bob Duff
10c633b7d6 [Ada] Avoid crash on use of Ada 2020 feature
gcc/ada/

	* sem_attr.adb (Check_Image_Type): Remove "|", so the compiler
	will not crash.
	* errout.ads: Improve comment. This has nothing to do with
	-gnatQ.
2020-10-26 04:59:14 -04:00
Eric Botcazou
4b0fe398db [Ada] Further small edition to documentation of Ada.Text_IO.Fixed_IO
gcc/ada/

	* libgnat/a-tifiio.adb: Minor editions to documentation.
2020-10-26 04:59:13 -04:00
Piotr Trojanek
19b00ffa9c [Ada] Fix freezing of previous contracts
gcc/ada/

	* contracts.adb (Causes_Contract_Freezing): Extend condition to
	match the one in Analyze_Subprogram_Body_Helper. This routine is
	used both as an assertion at the very start of
	Freeze_Previous_Contracts and to detect previous declaration for
	which Freeze_Previous_Contracts has been executed.
2020-10-26 04:59:12 -04:00
Eric Botcazou
d4506716bc [Ada] Another small edition to documentation of Ada.Text_IO.Fixed_IO
gcc/ada/

	* libgnat/a-tifiio.adb: Move around documentaton paragraph.
2020-10-26 04:59:12 -04:00
Piotr Trojanek
acd4ef9df2 [Ada] Fix harmless assertion failure in GNATprove mode
gcc/ada/

	* inline.adb (Establish_Actual_Mapping_For_Inlined_Call): Add
	guard for a call to Set_Last_Assignment with the same condition
	as the assertion in that routine and explain why this guard
	fails in GNATprove mode.
2020-10-26 04:59:11 -04:00
Eric Botcazou
4ab5d8c17b [Ada] Document characteristics of ordinary fixed point types
gcc/ada/

	* doc/gnat_rm/implementation_defined_characteristics.rst: Adjust
	the entries of 3.5.9(8) and 3.5.9(10).
	* gnat_rm.texi: Regenerate.
2020-10-26 04:59:10 -04:00
Eric Botcazou
4d4a3fb738 [Ada] Relax assertion on Small in Ada.Text_IO.Fixed_IO
gcc/ada/

	* libgnat/a-tifiio.adb: Change the range of supported Small
	values.
	(E0, E1, E2): Adjust factors.
	(Exact): Return false if the Small does not fit in 64 bits.
2020-10-26 04:59:09 -04:00
Dmitriy Anisimkov
86d774f68e [Ada] Fix Accept_Socket and Connect_Socket timeout support
gcc/ada/

	* libgnat/g-socket.adb (Wait_On_Socket): Boolean parameter
	For_Read changed to Event parameter of type
	GNAT.Sockets.Poll.Wait_Event_Set.  Implementation is simplified
	and based on call to GNAT.Sockets.Poll.Wait now.
2020-10-26 04:59:08 -04:00
Eric Botcazou
e0481cf5fc [Ada] Minor editions to documentation of Ada.Text_IO.Fixed_IO
gcc/ada/

	* libgnat/a-tifiio.adb: Minor editions to documentation.
2020-10-26 04:59:07 -04:00
Yannick Moy
326c36ce37 [Ada] Fix GNATprove crash on generics with access types
gcc/ada/

	* sem_ch12.adb (Restore_Private_Views): Do not lose the
	information provided by Is_Generic_Actual_Type in GNATprove
	mode.
2020-10-26 04:59:06 -04:00
Arnaud Charlet
7649892bfc [Ada] Suppress warnings on unreferenced parameters of dispatching ops
gcc/ada/

	* sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning
	on formal parameters of all dispatching operations.

gcc/testsuite/

	* gnat.dg/warn14.adb: Update expectations.
2020-10-26 04:59:05 -04:00
Piotr Trojanek
f69ecf3bba [Ada] Fix typos in error message for array delta aggregates
gcc/ada/

	* sem_aggr.adb (Resolve_Delta_Array_Aggregate): Fix typos in
	error message.
2020-10-26 04:59:04 -04:00
Olivier Hainque
d111f09ee5 [Ada] Restore hex addresses and improve symbolic backtraces
gcc/ada/

	* libgnat/s-dwalin.adb (Symbolic_Traceback): Always emit the hex
	address at the beginning of an entry if suppression is not
	requested. Consistently output a "???" for the subprogram name
	when it is unknown.
2020-10-26 04:59:03 -04:00
Doug Rupp
51fb7000aa [Ada] x86-lynx178elf - gcc build fails
gcc/ada/

	* s-oscons-tmplt.c (_nfds_t): Use sizeof (unsigned long int).
2020-10-26 04:59:03 -04:00
Piotr Trojanek
5d2041a0c7 [Ada] Fix interference between iterated element-and-component association
gcc/ada/

	* par-ch4.adb (P_Iterated_Component_Association): Move code for
	iterated_element_association to
	Build_Iterated_Element_Association.
2020-10-26 04:59:02 -04:00
Yannick Moy
aa32e8f466 [Ada] Do not instantiate generic bodies outside of main unit in GNATprove
gcc/ada/

	* sem_ch12.adb (Needs_Body_Instantiated): In GNATprove mode, do
	not instantiate bodies outside of the main unit.
2020-10-26 04:59:01 -04:00
Ed Schonberg
cfc3a1db82 [Ada] Spurious error on Old attribute reference in delta aggregate
gcc/ada/

	* sem_aggr.adb (Resolve_Delta_Array_Aggregate): For an
	association that is an iterated component association, attach
	the copy of the expression to the tree prior to analysis, in
	order to preserve its context. This is needed when verifying
	static semantic rules that depend on context, for example that a
	use of 'Old appears only within a postcondition.
2020-10-26 04:59:00 -04:00
Bob Duff
adf1c867c0 [Ada] gnatpp: Document that --no-comments-fill is now the default
gcc/ada/

	* doc/gnat_ugn/gnat_utility_programs.rst: Document that
	--no-comments-fill is now the default.
2020-10-26 04:58:59 -04:00
Gary Dismukes
5c6430d68c [Ada] Missing errors on extension aggregates with unknown discriminants
gcc/ada/

	* sem_aggr.adb (Resolve_Extension_Aggregate): When testing for
	an aggregate that is illegal due to having an ancestor type that
	has unknown discriminants, add an "or else" condition testing
	whether the aggregate type has unknown discriminants and that
	Partial_View_Has_Unknown_Discr is also set on the ancestor type.
	Extend the comment, including adding ??? about a possible
	simpler test.
2020-10-26 04:58:58 -04:00
Bob Duff
cc744c0c23 [Ada] Delete: set Position to No_Element
gcc/ada/

	* libgnat/a-cihama.adb, libgnat/a-cohama.adb,
	libgnat/a-cohase.adb (Delete): Set Position.Position, and
	assert.
2020-10-26 04:58:57 -04:00
Arnaud Charlet
1ab538527f [Ada] Improve error on missing with clause
gcc/ada/

	* sem_ch8.adb (Find_Direct_Name.Undefined): Handle known unit
	names with 3 selectors.
2020-10-26 04:58:56 -04:00
Piotr Trojanek
8cb66f9609 [Ada] Fix SPARK expansion of iterated_component_assoc in delta aggregate
gcc/ada/

	* exp_spark.adb (Expand_SPARK_Delta_Or_Update): Add missing call
	to Enter_Name, just like it is called for
	iterated_component_association in Expand_SPARK_N_Aggregate.
2020-10-26 04:58:55 -04:00
Piotr Trojanek
9fdbcec694 [Ada] Cleanup SPARK expansion of aggregates with iterated_component_assoc
gcc/ada/

	* exp_spark.adb (Expand_SPARK_Delta_Or_Update): Reuse local
	constant Expr and the Choice_List routine.
	(Expand_SPARK_N_Aggregate): Reuse local constant Expr.
2020-10-26 04:58:54 -04:00
Piotr Trojanek
acdd1bd4c6 [Ada] Fix typos in comments about parsing iterated_component_association
gcc/ada/

	* par-ch4.adb (P_Iterated_Component_Association): Fix typos in
	comments.
2020-10-26 04:58:54 -04:00
Arnaud Charlet
e3710c6509 [Ada] AI12-0395: Allow aspect_specifications on formal parameters
gcc/ada/

	* par-ch6.adb (P_Formal_Part): Ada 2020 supports scanning
	aspects on formal parameters.
	* doc/gnat_rm/implementation_defined_aspects.rst (Aspect
	Unreferenced): Update documentation.
	* gnat_rm.texi: Regenerate.
2020-10-26 04:58:53 -04:00
Ed Schonberg
e8d6d5f039 [Ada] Crash on membership test in expression function
gcc/ada/

	* freeze.adb (Freeze_Type_Refs): When an entity in an expression
	function is a type, freeze the entity and not just its type,
	which would be incomplete when the type is derived and/or
	tagged.
2020-10-26 04:58:52 -04:00
Piotr Trojanek
3b01ce303b [Ada] Handle subtype_indication in 'Update for arrays
gcc/ada/

	* exp_attr.adb (Expand_Update_Attribute): Handle
	subtype_indication just like in Expand_Delta_Array_Aggregate.
2020-10-26 04:58:51 -04:00
Xionghu Luo
a7d153ab84 Add overloaded debug_bb and debug_bb_n with dump flags
Add overloads that accept a flags argument so we can print
debug_bb_n (5, TDF_DETAILS) in gdb, also the debug_bb_slim
variant would then be just a forwarder.

gcc/ChangeLog:

2020-10-26  Xionghu Luo  <luoxhu@linux.ibm.com>

	* cfg.c (debug_bb): New overloaded function.
	(debug_bb_n): New overloaded function.
	* cfg.h (debug_bb): New declaration.
	(debug_bb_n): New declaration.
	* print-rtl.c (debug_bb_slim): Call debug_bb with flags.
2020-10-26 02:52:39 -05:00
GCC Administrator
9651cba436 Daily bump. 2020-10-26 00:16:21 +00:00
Iain Sandoe
308e40331f Ada, Darwin, PowerPC : Fix bootstrap after 128 int changes.
The GNATRTL_128BIT_PAIRS/OBJS need to be added for 64bit
multilibs on powerpc-darwin, and for powerpc64-darwin.

gcc/ada/ChangeLog:

	* Makefile.rtl: Add GNATRTL_128BIT_PAIRS/OBJS for 64bit
	PowerPC Darwin cases.
2020-10-25 19:20:42 +00:00
Thomas Koenig
47d13acbda Correct decls for functions which do not pass actual arguments.
A wrong decl for findloc caused segfaults at runtime on
Darwin for ARM; however, this is only a symptom of a larger
disease: The declarations for our library functions are often
inconsistent.  This patch solves that problem for the functions
specifically for the functions for which we do not pass optional
arguments, i.e. findloc and (min|max)loc.

It works by saving the symbols of the specific functions in
gfc_intrinsic_namespace and by generating the formal argument
lists from the actual argument lists.  Because symbols are
re-used, so are the backend decls.

gcc/fortran/ChangeLog:

	PR fortran/97454
	* gfortran.h (gfc_symbol): Add pass_as_value flag.
	(gfc_copy_formal_args_intr): Add optional argument
	copy_type.
	(gfc_get_intrinsic_function_symbol): Add prototype.
	(gfc_find_intrinsic_symbol): Add prototype.
	* intrinsic.c (gfc_get_intrinsic_function_symbol): New function.
	(gfc_find_intrinsic_symbol): New function.
	* symbol.c (gfc_copy_formal_args_intr): Add argument. Handle case
	where the type needs to be copied from the actual argument.
	* trans-intrinsic.c (remove_empty_actual_arguments): New function.
	(specific_intrinsic_symbol): New function.
	(gfc_conv_intrinsic_funcall): Use it.
	(strip_kind_from_actual): Adjust so that the expression pointer
	is set to NULL.
	(gfc_conv_intrinsic_minmaxloc): Likewise.
	(gfc_conv_intrinsic_minmaxval): Adjust removal of dim.
	* trans-types.c (gfc_sym_type): If sym->pass_as_value is set, do
	not pass by reference.
2020-10-25 13:17:06 +01:00
GCC Administrator
d7ddd287ca Daily bump. 2020-10-25 00:16:26 +00:00