Commit Graph

180115 Commits

Author SHA1 Message Date
Nikhil Benesch
f33ac3b0cd runtime: use correct types in __go_ptrace shim
Make the types of the addr and data arguments in the __go_ptrace shim
match the types declared in Go and the types declared by the C ptrace
function, i.e., void*. This avoids a warning about an implicit
int-to-pointer cast on some platforms.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/262340
2020-10-15 13:36:08 -07:00
Nikhil Benesch
6949fbefe2 libgo: correct Makefile typo in path to x/net/route package
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/262342
2020-10-15 12:37:39 -07:00
Ian Lance Taylor
4f4f649d66 compiler: export type for string and bool constants
Also consolidate the identical code for constant type export into a
pair of static methods.

Fixes golang/go#35739

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/262437
2020-10-15 12:34:07 -07:00
David Edelsohn
b7beab8282 testsuite: Fix some endianness bugs in p9 runnable tests.
This patch fixes some bugs in the powerpc testsuite for runnable tests
whose expected values were endian dependent.

gcc/testsuite/ChangeLog:

2020-10-15  David Edelsohn  <dje.gcc@gmail.com>

	* gcc.target/powerpc/builtins-1-p9-runnable.c: Adjust for big endian.
	* gcc.target/powerpc/builtins-7-p9-runnable.c: Same.
2020-10-15 15:25:40 -04:00
Jonathan Wakely
7dbf96e2a2 libstdc++: Fix typos in copyright notice
It looks like I did a s/a/__a/ substition in one of these headers, and
then copied it to the other one.

libstdc++-v3/ChangeLog:

	* include/std/concepts: Fix typos in copyright notice.
	* include/std/ranges: Likewise.
2020-10-15 19:20:21 +01:00
Jason Merrill
f3ee947246 c++: Fix [[deprecated]] and implicit operator==. [PR97358]
Trying to diagnose the problem with an implicit copy function breaks if the
function isn't actually a copy function.

gcc/cp/ChangeLog:

	PR c++/95844
	* decl.c (copy_fn_p): Return false for a function that is neither a
	constructor nor an assignment operator.
	(move_signature_fn_p): Likewise.

gcc/testsuite/ChangeLog:

	PR c++/95844
	* g++.dg/cpp2a/spaceship-eq10.C: New test.
2020-10-15 13:27:37 -04:00
David Edelsohn
782ebeaa68 testsuite: Add appropriate target requirements to P9 testcases.
This patch adds effective target and target specific expected results
to a few P9 testcases.

gcc/testsuite/ChangeLog:

	* gcc.target/powerpc/builtins-5-p9-runnable.c: Require lp64.
	* gcc.target/powerpc/builtins-msum-runnable.c: Require int128.
	* gcc.target/powerpc/float128-cmp2-runnable.c: Require float128.
	* gcc.target/powerpc/fold-vec-extract-double.p9.c: Require lp64.
2020-10-15 13:04:31 -04:00
Marek Polacek
08e712211e c++: Improve printing of pointers-to-members [PR97406, PR85901]
This PR points out that when printing the parameter mapping for a
pointer-to-member-function, the output was truncated:

  [with T = void (X::*]

Fixed by printing the abstract declarator for pointers-to-members in
cxx_pretty_printer::type_id.  So now we print:

  [with T = void (X::*)()]

But when I tried a pointer-to-data-member, I got

  [with T = ‘offset_type’ not supported by simple_type_specifier)‘offset_type’ not supported by direct_abstract_declarator]

so had to fix that too so that we now print:

  [with T = int X::*]

or

  [with T = int (X::*)[5]]

when the type is an array type.  Which is what PR85901 was about.

gcc/cp/ChangeLog:

	PR c++/97406
	PR c++/85901
	* cxx-pretty-print.c (pp_cxx_type_specifier_seq): Handle OFFSET_TYPE.
	(cxx_pretty_printer::abstract_declarator): Fix the printing of ')'.
	(cxx_pretty_printer::direct_abstract_declarator): Handle OFFSET_TYPE.
	(cxx_pretty_printer::type_id): Likewise.  Print the abstract declarator
	for pointers-to-members.

gcc/testsuite/ChangeLog:

	PR c++/97406
	PR c++/85901
	* g++.dg/diagnostic/ptrtomem1.C: New test.
	* g++.dg/diagnostic/ptrtomem2.C: New test.
2020-10-15 11:17:22 -04:00
Tom de Vries
f2ff7d2672 [nvptx, testsuite] Xfail stack atomics
Nvptx currently doesn't support atomics if it involves a stack address.
PR97444 is open about.

Xfail corresponding execution fails in gcc.dg/atomic.  Tested on nvptx.

gcc/testsuite/ChangeLog:

2020-10-15  Tom de Vries  <tdevries@suse.de>

	* gcc.dg/atomic/c11-atomic-exec-6.c: Xfail execution for nvptx.
	* gcc.dg/atomic/c11-atomic-exec-7.c: Same.
	* gcc.dg/atomic/stdatomic-op-5.c: Same.
2020-10-15 16:00:15 +02:00
Andre Vehreschild
f6db796d0a Fix fndecl's for fortran coarray calls.
gcc/fortran/ChangeLog:

	* trans-decl.c (gfc_build_builtin_function_decls): Fix the coarray fndecls.
2020-10-15 15:47:15 +02:00
Tom de Vries
34af17c016 [nvptx] Remove -m32
The nvptx port has an -m32 option, but it's not clear whether this
was ever build/tested/used.

Don't expose to user anymore.  Tested on nvptx.

gcc/ChangeLog:

2020-10-15  Tom de Vries  <tdevries@suse.de>

	PR target/97436
	* config/nvptx/nvptx.opt (m32): Comment out.
	* doc/invoke.texi (NVPTX options): Remove -m32.

gcc/testsuite/ChangeLog:

2020-10-15  Tom de Vries  <tdevries@suse.de>

	PR target/97436
	* gcc.target/nvptx/atomic_fetch-3.c: Remove.
2020-10-15 15:25:34 +02:00
Jan Hubicka
6b55fa29ad Fix toplevel comment of attr-fnspec.h
gcc/ChangeLog:

2020-10-15  Jan Hubicka  <hubicka@ucw.cz>
	    Richard Biener  <rguenther@suse.de>

	* attr-fnspec.h: Fix toplevel comment.
2020-10-15 14:46:12 +02:00
Richard Biener
7cb40b08bd fix TARGET_MEM_REF dumping
This fixes the missing constant offset from TARGET_MEM_REF dumping.

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

	* tree-pretty-print.c (dump_mem_ref): Print constant offset
	also for TARGET_MEM_REF.
2020-10-15 13:59:58 +02:00
Jan Hubicka
2fa684fd37 Also accept symbols in other partition in symtab_node::binds_to_current_def_p
* symtab.c (symtab_node::binds_to_current_def_p): Also accept symbols
	defined in other partition.
2020-10-15 13:50:22 +02:00
Kwok Cheung Yeung
445567b22a libgomp: Amend documentation for omp_get_max_active_levels and omp_get_supported_active_levels
2020-10-15  Kwok Cheung Yeung  <kcy@codesourcery.com>

	libgomp/
	* libgomp.texi (omp_get_max_active_levels): Modify description.
	(omp_get_supported_active_levels): Make descriptions consistent.
2020-10-15 03:02:57 -07:00
Richard Biener
852dce0608 Fix ICE in vectorizable_live_operation
This fixes the case where the insertion iterator for the live stmt
is the end of a BB by adjusting the dominance query to the definition
of the def we're substituting.

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

	* tree-vect-loop.c (vectorizable_live_operation): Adjust
	dominance query.

	* gcc.dg/vect/bb-slp-52.c: New testcase.
2020-10-15 11:49:38 +02:00
Arnaud Charlet
d8394e2aa2 [Ada] Spurious visibility on private with package
gcc/ada/

	* sem_ch10.adb (Install_With_Clause): Fix implementation of Ada
	2005 AI-262 by taking into account generic packages.  Minor
	reformatting.
	* libgnat/a-cbhase.ads, libgnat/a-cbhase.adb: Remove use clause
	on runtime unit spec.
2020-10-15 05:39:14 -04:00
Arnaud Charlet
7e3f6147a7 [Ada] Wrong use of Scope_Depth_Value
gcc/ada/

	* einfo.ads, einfo.adb (Scope_Depth_Value,
	Set_Scope_Depth_Value): Add assertions on valid nodes and update
	documentation accordingly.
	(Write_Field22_Name): Sync with change in Scope_Depth_Value.
	* sem_ch8.adb (Find_Direct_Name): Fix call to Scope_Depth_Value.
2020-10-15 05:39:14 -04:00
Javier Miranda
cba9c0267a [Ada] Ada2020: AI12-0003 Specifying the standard storage pool
gcc/ada/

	* sem_prag.adb (Analyze_Pragma): Adding semantic support of
	Standard to Default_Storage_Pool.
	* freeze.adb (Freeze_Entity): If pragma Default_Storage_Pool
	applies and it is set to Standard then use the global pool as
	the associated storage pool of the access type.
2020-10-15 05:39:13 -04:00
Javier Miranda
952604032a [Ada] Cleanup definition of Might_Have_Tasks
gcc/ada/

	* exp_ch6.ads (Might_Have_Tasks): Update documentation.
	* exp_ch6.adb (Might_Have_Tasks): Return also true when the type
	has tasks.
	(Make_Build_In_Place_Call_In_Allocator): Code cleanup.
	* exp_ch3.adb (Ensure_Activation_Chain_And_Master,
	Expand_N_Full_Type_Declaration, Expand_N_Object_Declaration):
	Code cleanup.
2020-10-15 05:39:13 -04:00
Steve Baird
8861bdd59a [Ada] Get finalization right when a function returns a function call
gcc/ada/

	* checks.adb (Apply_Predicate_Check): Generate "infinite
	recursion" warning message even if run-time predicate checking
	is disabled.
	* exp_ch6.adb (Expand_Simple_Function_Return): In testing
	whether the returned expression is a function call, look for the
	case where the call has been transformed into a dereference of
	an access value that designates the result of a function call.
	* sem_ch3.adb (Analyze_Object_Declaration): Legality checking
	for a static expression is unaffected by assertion policy (and,
	in particular, enabling/disabling of subtype predicates.  To get
	the right legality checking, we need to call
	Check_Expression_Against_Static_Predicate for a static
	expression even if predicate checking is disabled for the given
	predicate-bearing subtype.  On the other hand, we don't want to
	call Make_Predicate_Check unless predicate checking is enabled.
	* sem_ch7.adb (Uninstall_Declarations.Preserve_Full_Attributes):
	Preserve the Predicates_Ignored attribute.
	* sem_eval.adb (Check_Expression_Against_Static_Predicate):
	Previously callers ensured that this procedure was only called
	if predicate checking was enabled; that is no longer the case,
	so predicates-disabled case must be handled.
	* sem_prag.adb (Analyze_Pragma): Fix bug in setting
	Predicates_Ignored attribute in Predicate pragma case.
2020-10-15 05:39:13 -04:00
Ed Schonberg
7e37c1a522 [Ada] Crash on subtype of fixed-point type
gcc/ada/

	* freeze.adb (Freeze_Fixed_Point_Type): Do not scale the bounds
	of a declared subtype using the 'Small of the type;  this is
	done during resolution of the bound itself, unlike what is done
	for the bounds of the base type, which are used to determine its
	required size. Previous code performed this scaling twice,
	leading to meaningless values for such a subtype.
2020-10-15 05:39:12 -04:00
Piotr Trojanek
e4f503be5d [Ada] Fix access to uninitialized global variable when emitting error
gcc/ada/

	* sem_util.adb (Bad_Predicated_Subtype_Use): Emit an
	unconditional error, not a conditional warning.
2020-10-15 05:39:12 -04:00
Piotr Trojanek
a0a294d3eb [Ada] Cleanup defensive guards for Null_Exclusion_Present
gcc/ada/

	* sem_ch3.adb (Process_Subtype): Combine guards for
	Null_Exclusion_Present in May_Have_Null_Exclusion; use this
	combined guard when checking AI-231.
2020-10-15 05:39:12 -04:00
Piotr Trojanek
8f366ea4db [Ada] Bring defensive guard for Null_Exclusion_Present up to date
gcc/ada/

	* sem_ch3.adb (Process_Subtype): Sync May_Have_Null_Exclusion
	with assertion in Null_Exclusion_Present; clarify the scope of
	local variables.
2020-10-15 05:39:12 -04:00
Piotr Trojanek
1d1e5e2e2c [Ada] Explain predicate function not being inherited by index type
gcc/ada/

	* sem_ch3.adb (Analyze_Subtype_Declaration): Fix style.
	(Make_Index): Refactor to avoid repeated detection of subtype
	indication; add comment.
2020-10-15 05:39:11 -04:00
Piotr Trojanek
2b47f13dab [Ada] Adjust style in support for CUDA_Execute pragma
gcc/ada/

	* sem_prag.adb (Is_Acceptable_Dim3): Use Is_RTE to not pull CUDA
	package unless necessary; rename local Tmp variable; iterate
	with procedural Next.
2020-10-15 05:39:11 -04:00
Piotr Trojanek
e1e129684c [Ada] Avoid unnecessary (re)assignments in Make_Info
gcc/ada/

	* sem_ch3.adb (Array_Type_Declaration): Refine type of a local
	variable.
	(Make_Index): Simplify to avoid assignment with a type entity
	and then backtracking by reassigning to Empty; remove excessive
	whitespace.
	* sem_ch9.adb (Analyze_Entry_Body): Remove extra parens.
2020-10-15 05:39:11 -04:00
Piotr Trojanek
fcbac1b334 [Ada] Remove excessive defensive calls to Is_Type
gcc/ada/

	* sem_ch3.adb (Access_Subprogram_Declaration): Remove extra
	parens.
	(Make_Index): Remove excessive calls to Is_Type.
2020-10-15 05:39:10 -04:00
Arnaud Charlet
701a05667f [Ada] Code cleanup
gcc/ada/

	* sem_util.adb (Enter_Name): Remove unnecessary conditions in
	Enter_Name that come from the beginning of times.
2020-10-15 05:39:10 -04:00
Bob Duff
f644627e27 [Ada] Remove obsolete DSP comment
gcc/ada/

	* exp_ch6.adb (Expand_Simple_Function_Return): Remove DSP part
	of comment, and reformat.
2020-10-15 05:39:10 -04:00
Boris Yakobowski
8b6d722d6e [Ada] Do not expand 'Initialized in codepeer mode
gcc/ada/

	* exp_attr.adb (Expand_N_Attribute_Reference): Do not expand
	'Initialized in CodePeer mode.
2020-10-15 05:39:10 -04:00
Arnaud Charlet
cc53bec460 [Ada] Assert failure on incorrect code
gcc/ada/

	* sem_ch12.adb (Reset_Entity): Protect against malformed tree.
2020-10-15 05:39:09 -04:00
Arnaud Charlet
96ece83775 [Ada] Double evaluation of predicate
gcc/ada/

	* sem_ch13.adb (Add_Predicates): Prevent analyzing twice the
	same pragma in case an inner package references the type with a
	predicate (as opposed to defining the type).
2020-10-15 05:39:09 -04:00
Eric Botcazou
73b211a76e [Ada] Do not use maximal values from System in runtime units
gcc/ada/

	* libgnat/a-cfinve.adb (Int): Use subtype of Long_Long_Integer.
	* libgnat/a-cofove.adb (Int): Likewise.
	* libgnat/a-cgcaso.adb (T): Likewise.
	* libgnat/a-cogeso.adb (T): Likewise.
	* libgnat/g-debpoo.ads (Byte_Count): Use Long_Long_Integer'Size.
2020-10-15 05:39:09 -04:00
Piotr Trojanek
a39bc02543 [Ada] Simplify membership tests with N_Entity subtype
gcc/ada/

	* sem_ch12.adb: Replace list of N_Defining_... enumerations with
	N_Entity.
2020-10-15 05:39:09 -04:00
Piotr Trojanek
fd11c7e621 [Ada] Refine type from Nat to Pos in Make_Index
gcc/ada/

	* sem_ch3.ads, sem_ch3.adb (Make_Index): Refined type of
	parameter.
	(Constrain_Index): Likewise.
	(Array_Type_Declaration): Refine type of a local counter
	variable; remove a trivially useless initialization.
2020-10-15 05:39:08 -04:00
Piotr Trojanek
38e5d9c57f [Ada] Fix range check on constrained array with expanded index name
gcc/ada/

	* sem_ch3.adb (Analyze_Subtype_Declaration): Recognize both
	identifiers and expanded names; use high-level Is_Scalar_Type
	instead of low-level membership test.
2020-10-15 05:39:08 -04:00
Arnaud Charlet
8ad6af8fc9 [Ada] Add support for compile time evaluation of Shift_Right_Arithmetic
gcc/ada/

	* sem_eval.adb (Eval_Intrinsic_Call, Fold_Shift): Add support
	for Shift_Right_Arithmetic and for signed integers.
	* exp_ch4.adb (Expand_N_Op_Rotate_Left,
	Expand_N_Op_Rotate_Right, Expand_N_Op_Shift_Left,
	Expand_N_Op_Shift_Right_Arithmetic): Minor reformatting and code
	cleanup to ensure a consistent handling. Update comments and add
	assertion.
2020-10-15 05:39:08 -04:00
Bob Duff
46a3809b15 [Ada] Ada2020: AI12-0180 Using subprograms and entries in invariants
gcc/ada/

	* sem_ch13.adb (Visible_Component): Enable this code for task
	and protected types, as well as record and private types.
	* sem_ch13.ads (Replace_Type_References_Generic): Update
	comment.  Move the efficiency comment into the body, because
	it's about the implementation.
2020-10-15 05:39:08 -04:00
Arnaud Charlet
acc1708cf0 [Ada] Warn on unknown aspect
gcc/ada/

	* par-ch13.adb (Get_Aspect_Specifications): Generate a warning
	rather than an error on unknown aspects unless -gnatd2 is used.
	(Aspect_Specifications_Present): Improve detection of unknown
	aspects.
	* debug.adb (Debug_Flag_2): Update document.
2020-10-15 05:39:07 -04:00
Arnaud Charlet
c2c8f0d042 [Ada] Complete support for static intrinsic functions
gcc/ada/

	* sem_res.adb (Resolve_Call): Do not try to inline intrinsic
	calls.
2020-10-15 05:39:07 -04:00
Ed Schonberg
fe3463cc98 [Ada] Ada_2020: Add aspect Aggregate to standard container units
gcc/ada/

	* exp_aggr.adb (Expand_N_Aggregate): A record aggregate requires
	a non-private type.
	* sem_ch13.adb (Valid_Assign_Indexed): New subprogram local to
	Resolve_Aspect_Aggregate, to handle the case when the
	corresponding name appearing in the aspect specification for an
	indexed aggregate is an overloaded operation.
	* libgnat/a-convec.ads, libgnat/a-convec.adb,
	libgnat/a-coinve.ads, libgnat/a-coinve.adb,
	libgnat/a-cobove.ads, libgnat/a-cobove.adb,
	libgnat/a-cdlili.ads, libgnat/a-cdlili.adb,
	libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb,
	libgnat/a-cohama.ads, libgnat/a-cihama.ads,
	libgnat/a-cbhama.ads, libgnat/a-cborma.ads,
	libgnat/a-ciorma.ads, libgnat/a-coorma.ads,
	libgnat/a-cihase.ads, libgnat/a-cohase.ads,
	libgnat/a-cbhase.ads, libgnat/a-cborse.ads,
	libgnat/a-ciorse.ads, libgnat/a-coorse.ads: Add Ada_2020 aspect
	Aggregate to types declared in standard containers, as well as
	new subprograms where required.
2020-10-15 05:39:07 -04:00
Arnaud Charlet
d588b8b40c [Ada] Add iterators over GNAT.Array_Split.Slice_Set
gcc/ada/

	* libgnat/g-arrspl.ads, libgnat/g-arrspl.adb (Create,
	First_Cursor, Advance, Has_Element): New.
2020-10-15 05:39:06 -04:00
Arnaud Charlet
40486f926c [Ada] AI12-0385 Predefined shifts and rotates should be static
gcc/ada/

	* Makefile.rtl: Add target pair for interfac.ads.
	* libgnat/interfac.ads: Add a comment.
	* libgnat/interfac__2020.ads: New, used for bootstrap purposes.
	* sem_util.adb (Is_Static_Function): Always return False for pre
	Ada 2020 to e.g. ignore the Static aspect in Interfaces for
	Ada < 2020.
2020-10-15 05:39:06 -04:00
Piotr Trojanek
d43123ee06 [Ada] Do not remove side effects from any object declarations in SPARK
gcc/ada/

	* exp_util.adb (Remove_Side_Effects): Move special-casing for
	GNATprove to be applied to all object declarations.
2020-10-15 05:39:06 -04:00
Richard Biener
28290cb50c tree-optimization/97482 - fix split_constant_offset of nop-conversions
split_constant_offset is confused about a nop-conversion from
unsigned long to sizetype and tries to prove non-overflowing
of the inner operation.  Obviously the conversion could have been
elided so make sure split_constant_offset handles this properly.

It also makes sure that convert_to_ptrofftype does not introduce
conversions not necessary which in this case is the source for
the unnecessary conversion.

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

	PR tree-optimization/97482
	* tree-data-ref.c (split_constant_offset_1): Handle
	trivial conversions better.
	* fold-const.c (convert_to_ptrofftype_loc): Elide conversion
	if the offset is already ptrofftype_p.

	* gcc.dg/vect/pr97428.c: New testcase.
2020-10-15 10:54:24 +02:00
Tom de Vries
ee21a5f397 [nvptx, testsuite] Remove xfail for PR84958
The xfail in gcc.dg/tree-ssa/pr84512.c for PR84958 has started to xpass,
presumably because of commit 744fd446c3 "tree-ssa-sccvn.c (class pass_fre):
Add may_iterate pass parameter".

Remove the xfail.  Tested on nvptx.

gcc/testsuite/ChangeLog:

2020-10-15  Tom de Vries  <tdevries@suse.de>

	* gcc.dg/tree-ssa/pr84512.c: Remove xfail for nvptx.
2020-10-15 10:36:37 +02:00
Tom de Vries
6760065a13 [nvptx, testsuite] Fix xpass with ident-0b.c
For nvptx, I see:
...
XPASS: c-c++-common/ident-0b.c  -Wc++-compat   scan-assembler-not GCC:
...

Fix this by requiring effective target ident_directive.  Tested on nvptx.

gcc/testsuite/ChangeLog:

2020-10-15  Tom de Vries  <tdevries@suse.de>

	* c-c++-common/ident-0b.c: Require effective target ident_directive.
2020-10-15 10:36:37 +02:00
Tom de Vries
c3d243f1c2 [nvptx, testsuite] Remove dg-skip-if for ptxas oom
There's a dg-skip-if for nvptx that is related to ptxas oom.

If I remove it, the test-case passes for me (with ptxas from cuda 9.1).

I've tested it on a range of cudas, from 5.0 to 11.1 and did not
manage to reproduce the fail.

Remove the dg-skip-if.  Tested on nvptx.

gcc/testsuite/ChangeLog:

2020-10-15  Tom de Vries  <tdevries@suse.de>

	* gcc.c-torture/compile/limits-externdecl.c: Remove dg-skip-if for
	nvptx.
2020-10-15 10:36:37 +02:00