173715 Commits

Author SHA1 Message Date
Jozef Lawrynowicz
e8aa9f55f6 MSP430: Add new msp430-elfbare target
contrib/ChangeLog:

2019-12-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config-list.mk: Add msp430-elfbare.

gcc/ChangeLog:

2019-12-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config.gcc: s/msp430*-*-*/msp430-*-*.
	Handle msp430-*-elfbare.
	* config/msp430/msp430-devices.c (TARGET_SUBDIR): Define.
	(_MSPMKSTR): Define.
	(__MSPMKSTR): Define.
	(rest_of_devices_path): Use TARGET_SUBDIR value in string.
	* config/msp430/msp430.c (msp430_option_override): Error if
	-fuse-cxa-atexit is used when it has been disabled at configure time.
	* config/msp430/t-msp430: Define TARGET_SUBDIR when building
	msp430-devices.o.
	* doc/install.texi: Document msp430-*-elf and msp430-*-elfbare.
	* doc/invoke.texi: Update documentation about which path devices.csv is
	searched for.

gcc/testsuite/ChangeLog:

2019-12-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* g++.dg/init/dso_handle1.C: Require cxa_atexit support.
	* g++.dg/init/dso_handle2.C: Likewise.
	* g++.dg/other/cxa-atexit1.C: Likewise.
	* gcc.target/msp430/msp430.exp: Update csv-using-installed.c test to
	handle msp430-elfbare configuration.

libgcc/ChangeLog:

2019-12-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config.host: s/msp430*-*-elf/msp430-*-elf*.
	Override default "extra_parts" variable.
	* configure: Regenerate.
	* configure.ac: Disable TM clone registry by default for
	msp430-elfbare.

From-SVN: r279442
2019-12-16 11:02:10 +00:00
Bob Duff
1edfb10a5a [Ada] Suppress unused warnings in the presence of errors
2019-12-16  Bob Duff  <duff@adacore.com>

gcc/ada/

	* errout.adb (Handle_Serious_Error): Disable the above-mentioned
	warnings.

From-SVN: r279441
2019-12-16 10:35:31 +00:00
Bob Duff
495cdc79fb [Ada] Minor: improve comments
2019-12-16  Bob Duff  <duff@adacore.com>

gcc/ada/

	* errout.adb, errout.ads: Improve comments.

From-SVN: r279440
2019-12-16 10:35:24 +00:00
Bob Duff
9aaea2cc4b [Ada] Minor comment fix
2019-12-16  Bob Duff  <duff@adacore.com>

gcc/ada/

	* sem_util.ads: Minor comment fix.

From-SVN: r279439
2019-12-16 10:35:17 +00:00
Bob Duff
eb2ff584d5 [Ada] Check for "size for" in Special_Msg_Delete
2019-12-16  Bob Duff  <duff@adacore.com>

gcc/ada/

	* errout.ads, errout.adb (Is_Size_Too_Small_Message): Check for
	"size for" instead of "size for& too small, minimum allowed is
	^".

From-SVN: r279438
2019-12-16 10:35:09 +00:00
Eric Botcazou
1cbd208038 [Ada] Do not set a bogus Esize on subtype built for Component_Size clause
2019-12-16  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Set only
	the RM_Size on the subtype built for a Component_Size clause
	when the component type is a biased integer type.

From-SVN: r279437
2019-12-16 10:35:05 +00:00
Arnaud Charlet
08611be254 [Ada] Fix warning on _REENTRANT
2019-12-16  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* socket.c: Shutdown warning.

From-SVN: r279436
2019-12-16 10:35:00 +00:00
Arnaud Charlet
c1c3784bd9 [Ada] Mark Deallocator as Favor_Top_Level
2019-12-16  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* libgnarl/s-tataat.ads (Deallocator): Mark as Favor_Top_Level.

From-SVN: r279435
2019-12-16 10:34:56 +00:00
Arnaud Charlet
019c74bb73 [Ada] AI12-0234/321 atomic operations
2019-12-16  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* libgnat/s-aotase.adb, libgnat/s-aotase.ads,
	libgnat/s-atoope.ads, libgnat/s-atopar.adb,
	libgnat/s-atopar.ads, libgnat/s-atopex.adb,
	libgnat/s-atopex.ads: New files.
	* libgnat/s-atopri.ads: Add new intrinsics.
	* Makefile.rtl: Add new runtime files.
	* impunit.adb: Add new units to Ada 2020 list.

From-SVN: r279434
2019-12-16 10:34:51 +00:00
Eric Botcazou
1dcdd961c5 [Ada] Remove new strict-alignment check added by AI12-0001
2019-12-16  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* freeze.adb (Check_Strict_Alignment): Remove new check on
	Has_Aliased_Components for array types.

From-SVN: r279433
2019-12-16 10:34:47 +00:00
Ed Schonberg
c85dda7236 [Ada] Crash on constrained container in generalized indexing operation
2019-12-16  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* sem_ch4.adb (Try_Container_Indexing): In the case of a derived
	container type, use the base type to look for candidate indexing
	operations, because the object may be a constrained subtype or
	itype with no explicit declaration.  Candidate indexing
	operations are found in the same scope and list of declarations
	as the declaration of the base type.

From-SVN: r279432
2019-12-16 10:34:42 +00:00
Ed Schonberg
3c08de3407 [Ada] Prototype implementastion of Ada2020 Map-reduce construct
2019-12-16  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* scng.adb (Scan): In Ada2020, a left-bracket indicates the
	start of an homogenous aggregate.
	* par-ch4.adb (P_Reduction_Attribute_Reference): New procedure.
	(P_Aggregate): Recognize Ada2020 bracket-delimited aggregates.
	(P_Primary): Ditto.
	* par-util.adb (Comma_Present): Return false on a right bracket
	in Ada2020, indicating the end of an aggregate.
	* snames.ads-tmpl: Introduce Name_Reduce and Attribute Reduce.
	* sinfo.ads, sinfo.adb (Is_Homogeneous_Aggregate): New flag on
	aggregates, to designate an Ada2020 array or container aggregate
	that is bracket-delimited in the source.
	* sem_attr.adb (Analyze_Attribute): For attribute Reduce, verify
	that two arguments are present, and verify that the prefix is a
	stream or an object that is iterable (array or contrainer).
	(Resolve_Attribute): For attribute Reduce, resolve initial value
	with the type of the context. Type-checking of element type of
	prefix is performed after expansion.
	* exp_attr.adb (Expand_N_Attribute_Reference): For attribute
	Reduce, expand into a loop: a) If prefix is an aggregate with a
	single iterated component association, use its iterator
	specification to construct a loop, b) If prefix is a name, build
	a loop using an element iterator loop.
	* scans.ads: Add brackets tokens.

From-SVN: r279431
2019-12-16 10:34:37 +00:00
Eric Botcazou
a517d6c19a [Ada] AI12-0001: Independence and Representation clauses for atomic objects
2019-12-16  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust calls to
	validate_size.
	(gnat_to_gnu_component_type): Likewise.
	(gnat_to_gnu_field): Likewise and pass string for error messages.
	(components_need_strict_alignment): Remove test on Is_Aliased and
	add test for the independence of the component.
	(validate_size): Add S1 and S2 string parameters and use them to
	give better error messages for fields.  Tweak a couple of messages.
	* einfo.ads (Has_Independent_Components): Document more cases.
	(Is_Independent): Likewise.
	(Strict_Alignment): Document new semantics.
	* exp_ch9.adb (Install_Private_Data_Declarations): Also set the
	Is_Independent flag along with Is_Aliased on the renaming
	entity.
	* freeze.adb (Size_Known): Remove always-false test and add test
	for the strict-alignment on the record type.  Remove redundant
	tests and add test for the strict-alignment on the component
	type.
	(Check_Strict_Alignment): Set the flag if the type is by-ref and
	remove now redundant conditions.  Set the flag on an array type
	if it has aliased components.  In the record type case, do not
	set type for C_Pass_By_Copy convention.
	(Freeze_Array_Type): Move code checking for conflicts between
	representation aspects and clauses to before specific handling
	of packed array types. Give a warnind instead of an error for a
	conflict with pragma Pack.  Do not test Has_Pragma_Pack for the
	specific handling of packed array types.
	(Freeze_Record_Type): Move error checking of representation
	clause to...
	(Freeze_Entity): ...here after Check_Strict_Alignment is called.
	* sem_aggr.adb (Array_Aggr_Subtype): Also set the Is_Independent
	flag along with Is_Aliased on the Itype.
	* sem_ch13.adb (Check_Record_Representation_Clause): Do not set
	the RM size for a strict-alignment type.
	* sem_ch3.adb (Add_Interface_Tag_Components): Also set the
	Is_Independent flag along with Is_Aliased on the tag.
	(Add_Interface_Tag_Components): Likewise on the offset.
	(Analyze_Component_Declaration): Likewise on the component.
	(Analyze_Object_Declaration): Likewise on the object.
	(Constrain_Array): Likewise on the array.
	(Record_Type_Declaration: Likewise on the tag.
	(Array_Type_Declaration): Also set the
	Has_Independent_Components flag along with
	Has_Aliased_Components on the array.
	(Copy_Array_Base_Type_Attributes): Copy
	Has_Independent_Components.
	(Copy_Array_Subtype_Attributes): Copy Is_Atomic, Is_Independent
	and Is_Volatile_Full_Access.
	(Analyze_Iterator_Specification): Set Is_Independent on the loop
	variable according to Independent_Components on the array.
	* sem_ch5.adb: Likewise.
	* sem_ch6.adb (Process_Formals): Also set the Is_Independent
	flag along with Is_Aliased on the formal.

gcc/testsuite/

	* gnat.dg/specs/clause_on_volatile.ads,
	gnat.dg/specs/size_clause3.ads: Update expected diagnostics.

From-SVN: r279430
2019-12-16 10:34:33 +00:00
Eric Botcazou
2cee58d810 [Ada] Fully propagate representation aspects through renaming
2019-12-16  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* sem_ch8.adb (Analyze_Object_Renaming): Set Atomic, Independent
	and Volatile_Full_Access aspects on the entity of the renaming
	the same way as the Volatile aspect is set.
	* sem_util.ads (Is_Atomic_Object_Entity): Move declaration to...
	(Is_Independent_Object): New function.
	(Is_Volatile_Full_Access_Object): Likewise.
	* sem_util.adb (Is_Atomic_Object_Entity): ...here.
	(Prefix_Has_Atomic_Components): Minor tweak.
	(Is_Atomic_Object): Test Is_Atomic on the Etype uniformly.
	(Is_Atomic_Or_VFA_Object): Call Is_Volatile_Full_Access_Object.
	(Is_Independent_Object): New predicate.
	(Is_Subcomponent_Of_Atomic_Object): Remove redundant test.
	(Is_Volatile_Full_Access_Object): New predicate.
	(Is_Volatile_Prefix): Rename into...
	(Prefix_Has_Volatile_Components): ... and call
	Is_Volatile_Object.
	(Object_Has_Volatile_Components): Delete.
	(Is_Volatile_Object): Simplify.
	* gcc-interface/trans.c (node_is_volatile_full_access): Adjust
	comment.

From-SVN: r279429
2019-12-16 10:34:27 +00:00
Bob Duff
0bba838d7f [Ada] Syntax error on improperly indented imported subprogram
2019-12-16  Bob Duff  <duff@adacore.com>

gcc/ada/

	* par.adb: Add Scopes function to do range checking on the scope
	stack.  Call Scopes all over the parser.  Add
	SIS_Aspect_Import_Seen flag.
	* par-ch6.adb (P_Subprogram): Initialize SIS_Aspect_Import_Seen
	to False at the start, and check it at the end.
	* par-ch13.adb (Get_Aspect_Specifications): Set
	SIS_Aspect_Import_Seen to True when appropriate.
	* par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
	par-ch5.adb, par-ch7.adb, par-ch9.adb, par-endh.adb,
	par-util.adb: Call Scopes.

From-SVN: r279428
2019-12-16 10:34:22 +00:00
Eric Botcazou
17a98a3dbb [Ada] Fix couple of oversights in the implementation of AI12-0128
2019-12-16  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* sem_prag.adb (Atomic_Components): Remove local variable and
	fix consistency issues.  Call Component_Type on the Etype of E.
	(Independent_Components): Remove local variable.
	* sem_util.adb (Is_Subcomponent_Of_Atomic_Object): Properly deal
	with prefixes that are access values.
	* gcc-interface/trans.c (atomic_acces_t): New enumeral type.
	(node_is_atomic) <N_Indexed_Component>: Test the prefix.
	(node_has_volatile_full_access): Rename into...
	(node_is_volatile_full_access): ...this.
	(node_is_component): New predicare.
	(gnat_strip_type_conversion): Delete.
	(outer_atomic_access_required_p): Likewise.
	(atomic_access_required_p): Rename into...
	(get_atomic_access): ...this.  Implement the 3 different semantics
	of Atomic and Volatile_Full_Access.
	(simple_atomic_access_required_p): New predicate.
	(Call_to_gnu): Remove outer_atomic_access parameter and change the
	type of atomic_access parameter to atomic_acces_t.  Replace call to
	atomic_access_required_p with simple_atomic_access_required_p for
	the in direction and call get_atomic_access for the out direction
	instead of [outer_]atomic_access_required_p.
	(lhs_or_actual_p): Constify local variables.
	(present_in_lhs_or_actual_p): Likewise.
	(gnat_to_gnu) <N_Identifier>: Replace call to atomic_access_required_p
	with simple_atomic_access_required_p.
	<N_Explicit_Dereference>: Likewise.
	<N_Indexed_Component>: Likewise.
	<N_Selected_Component>: Likewise.
	<N_Assignment_Statement>: Call get_atomic_access for the name instead
	of [outer_]atomic_access_required_p.  Adjust call to Call_to_gnu.
	<N_Function_Call>: Adjust call to Call_to_gnu.
	(get_controlling_type): Fix typo in comment.

From-SVN: r279427
2019-12-16 10:34:17 +00:00
Eric Botcazou
2f31b36248 [Ada] Export the Ada version through the C interface
2019-12-16  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* fe.h (Ada_Version_Type): New typedef.
	(Ada_Version): Declare.
	* opt.ads (Ada_Version_Type): Add Convention C and WARNING line.
	(Ada_Version): Add WARNING line.
	(Exception_Mechanism_Type): Likewise.

From-SVN: r279426
2019-12-16 10:34:12 +00:00
Gary Dismukes
ba58b776c0 [Ada] Minor reformatting and U.S. spelling adjustment
2019-12-16  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

	* checks.adb, sem_util.adb: Minor reformatting and U.S. spelling
	adjustment.

From-SVN: r279425
2019-12-16 10:34:08 +00:00
Bob Duff
dce1ef7a34 [Ada] Better error message for "is null" subunit
2019-12-16  Bob Duff  <duff@adacore.com>

gcc/ada/

	* sem_ch10.adb (Analyze_Subunit): Give an error if the subunit
	is not a proper body. This hides the confusing "duplicate body"
	message that was previously given.

From-SVN: r279424
2019-12-16 10:34:03 +00:00
Eric Botcazou
9c9535f974 [Ada] Expand renamings of subcomponents of an atomic or VFA object
2019-12-16  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Document
	third special case of renamings requiring special handling.
	(Evaluation_Required): Return true for an atomic or VFA prefix.

From-SVN: r279423
2019-12-16 10:33:59 +00:00
Ed Schonberg
90393d3ca7 [Ada] Crash on conversion in branch of if-expression
2019-12-16  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* checks.adb (Apply_Float_Conversion_Check): Use node of type
	conversion and not its parent, when inserting the declaration
	for the temporary that hold the result of the conversion.
	Previously the declaration was inserted above the parent of the
	conversion, apparently as a small optimization for the
	subsequent traversal in Insert_Actions.  Unfortunately a similar
	optimization takes place in Insert_Actions, assuming that the
	insertion point must be above the expression that creates the
	actions to insert.  This is not correct in the presence of
	conditional expressions (i.e.  since Ada2012), where the
	insertion must be in the list of actions attached to the current
	alternative.

From-SVN: r279422
2019-12-16 10:33:54 +00:00
Bob Duff
4a1872632c [Ada] Bad warning: Size in Compile_Time_Error in nested instance
2019-12-16  Bob Duff  <duff@adacore.com>

gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Use Known_RM_Size. But we
	still need Size_Known_At_Compile_Time, because when the size
	really is known, sometimes only one or the other of these is
	True.

From-SVN: r279421
2019-12-16 10:33:50 +00:00
Eric Botcazou
d8468b976b [Ada] Small consistency fix for Volatile_Full_Access objects
2019-12-16  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* sem_util.adb (Is_Atomic_Or_VFA_Object): Also return true for
	components whose type is Volatile_Full_Access or which are
	subject to the aspect/pragma individually.
	* sem_util.ads (Is_Atomic_Object_Entity): Small comment fix.

From-SVN: r279420
2019-12-16 10:33:45 +00:00
Yannick Moy
bee69f3368 [Ada] Do not issue restriction violations on ignored ghost code
2019-12-16  Yannick Moy  <moy@adacore.com>

gcc/ada/

	* exp_ch6.adb: Fix comment.
	* sem_res.adb (Resolve_Call): Do not check No_Recursion
	restriction or indirectly No_Secondary_Stack restriction, when
	inside an ignored ghost subprogram.

From-SVN: r279419
2019-12-16 10:33:41 +00:00
Arnaud Charlet
f17f5647c5 [Ada] AI12-0208 Support for Ada.Numerics.Big_Numbers.Big_Integers and Big_Reals
2019-12-16  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* impunit.adb: Add a-nbnbin, a-nbnbre, a-nubinu to Ada 2020
	units.
	* Makefile.rtl: Enable new file.
	* libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
	libgnat/a-nbnbre.adb, libgnat/a-nbnbre.ads,
	libgnat/a-nubinu.ads: New files. Provide default standalone
	implementation of Ada.Numerics.Big_Numbers.Big_* based on
	System.Generic_Bignum.
	* libgnat/a-nbnbin__gmp.adb: Alternate implementation of
	Ada.Numerics.Big_Numbers.Big_Integers based on GMP. Not enabled
	for now.
	* libgnat/s-bignum.ads, libgnat/s-bignum.adb: Now a simple
	wrapper on top of s-genbig.ads.
	* libgnat/s-genbig.ads, libgnat/s-genbig.adb: New files, making
	s-bignum generic for reuse in Ada.Numerics.Big_Numbers.

From-SVN: r279418
2019-12-16 10:33:36 +00:00
Bob Duff
a4ada47ed0 [Ada] Correct documentation of -gnatw_C switch
2019-12-16  Bob Duff  <duff@adacore.com>

gcc/ada/

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Correct documentation of -gnatw_C switch
	* gnat_ugn.texi: Regenerate.

From-SVN: r279417
2019-12-16 10:33:31 +00:00
Joel Brobecker
5903c91cae [Ada] Reword the impact of -minimal on the debugger
2019-12-16  Joel Brobecker  <brobecker@adacore.com>

gcc/ada/

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
	(_Switches_for_gnatbind): Reword the section explaining the
	impact of -minimal on debugging.
	* gnat_ugn.texi: Regenerate.

From-SVN: r279416
2019-12-16 10:33:27 +00:00
Gary Dismukes
f17267c88f [Ada] Typo fixes and minor reformatting
2019-12-16  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

	* libgnat/g-exptty.adb, libgnat/g-exptty.ads: Typo fixes and
	minor reformatting.

From-SVN: r279415
2019-12-16 10:33:22 +00:00
Eric Botcazou
6a6ac07985 [Ada] Implement RM C.6(19) clause entirely in the front-end
2019-12-16  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* exp_ch6.adb (Requires_Atomic_Or_Volatile_Copy): New predicate.
	(Expand_Actuals): Use it to decide whether to add call by copy
	code as per the RM C.6(19) clause.
	* fe.h (Is_Atomic_Object): Remove.
	(Is_Volatile_Object): Likewise.
	* sem_util.ads (Is_Atomic_Object): Remove WARNING note.
	(Is_Volatile_Object): Likewise.
	* gcc-interface/trans.c (atomic_or_volatile_copy_required_p): Delete.
	(Call_to_gnu): Do not implement the  RM C.6(19) clause.

From-SVN: r279414
2019-12-16 10:33:17 +00:00
Ghjuvan Lacambre
4efe11c6bc [Ada] Validate_Access_Subprogram_Instance: check if not null types match
2019-12-16  Ghjuvan Lacambre  <lacambre@adacore.com>

gcc/ada/

	* sem_ch12.adb (Validate_Access_Subprogram_Instance): Add
	Can_Never_Be_Null checks.

From-SVN: r279413
2019-12-16 10:33:13 +00:00
Eric Botcazou
d6c7e020cf [Ada] Implement new legality rules introduced in C.6(13) by AI12-0128
2019-12-16  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* doc/gnat_rm/implementation_defined_pragmas.rst (VFA): Document
	extension of the no-aliasing rule to any subcomponent.
	* freeze.adb (Freeze_Object_Declaration): Small comment tweak.
	(Freeze_Record_Type): Do not deal with delayed aspect
	specifications for components here but...
	(Freeze_Entity): ...here instead.
	* sem_ch12.adb (Instantiate_Object): Improve wording of errors
	given for legality rules in C.6(12) and implement the new rule
	in C.6(13).
	* sem_res.adb (Resolve_Actuals): Likewise.
	* sem_prag.adb (Check_Atomic_VFA): New procedure implementing
	the new legality rules in C.6(13).
	(Process_Atomic_Independent_Shared_Volatile): Call
	Check_Atomic_VFA to check the legality rules.  Factor out code
	marking types into...
	(Mark_Type): ...this new procedure.
	(Check_VFA_Conflicts): Do not check the legality rules here.
	(Pragma_Atomic_Components): Call Check_Atomic_VFA on component
	type.
	* sem_util.ads (Is_Subcomponent_Of_Atomic_Object): Declare.
	* sem_util.adb (Is_Subcomponent_Of_Atomic_Object): New
	predicate.
	* gnat_rm.texi: Regenerate.

From-SVN: r279412
2019-12-16 10:33:08 +00:00
Andreas Krebbel
070fa48b0a Fix PR92950: Wrong code emitted for movv1qi
The backend emits 16 bit memory loads for single element character
vector.  As a result the character will not be right justified in the
GPR.

gcc/ChangeLog:

2019-12-16  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR target/92950
	* config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy,
	and lhrl with llc.

gcc/testsuite/ChangeLog:

2019-12-16  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR target/92950
	* gcc.target/s390/vector/pr92950.c: New test.

From-SVN: r279410
2019-12-16 08:03:28 +00:00
Andrew Pinski
438fbf6303 Add a couple int128_t bit-field testcases.
2019-12-15  Andrew Pinski  <apinski@marvell.com>

        * gcc.c-torture/compile/bitfield-1.c: New test.
        * gcc.c-torture/compile/bitfield-endian-1.c: New test.
        * gcc.c-torture/compile/bitfield-endian-2.c: New test.

From-SVN: r279409
2019-12-15 19:43:19 -08:00
GCC Administrator
0f1374e98b Daily bump.
From-SVN: r279408
2019-12-16 00:16:20 +00:00
GCC Administrator
3d3a0f364b Daily bump.
From-SVN: r279402
2019-12-15 00:16:13 +00:00
Jakub Jelinek
937a778ea3 re PR preprocessor/92919 (invalid memory access in wide_str_to_charconst when running ucn2.C testcase (caught by hwasan))
PR preprocessor/92919
	* charset.c (wide_str_to_charconst): If str contains just the
	NUL terminator, punt quietly.

From-SVN: r279399
2019-12-14 23:18:53 +01:00
Martin Sebor
8640a70471 extend.texi (attribute access): Correct typos.
gcc/ChangeLog:

	* doc/extend.texi (attribute access): Correct typos.

From-SVN: r279398
2019-12-14 10:31:54 -07:00
Jakub Jelinek
16570c12c9 re PR ipa/92357 (ICE in IPA pass fnsummary in openmp offload)
PR ipa/92357
	* ipa-fnsummary.c (ipa_fn_summary_write): Use
	lto_symtab_encoder_iterator with lsei_start_function_in_partition and
	lsei_next_function_in_partition instead of walking all cgraph nodes
	in encoder.

From-SVN: r279395
2019-12-14 12:19:07 +01:00
Jakub Jelinek
813b70a17b re PR tree-optimization/92930 (GCC incorrectly optimizes away __builtin_apply() calls)
PR tree-optimization/92930
	* ipa-pure-const.c (special_builtin_state): Don't handle
	BUILT_IN_APPLY.  Formatting fixes.
	(check_call): Formatting fixes.

	* gcc.dg/tree-ssa/pr92930.c: New test.

From-SVN: r279394
2019-12-14 12:18:30 +01:00
Iain Sandoe
4e62faf211 [Darwin, PPC] Use Darwin9 bundle header for Rosetta builds.
On Darwin10 it's possible to make a 32b PPC build using the
'Rosetta' emulator.  However, these builds need to make use of
Darwin9 crts (for exes, dylibs and bundles).  This adds the
change to cater for bundles.

gcc/ChangeLog:

2019-12-14  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.h (DARWIN_EXTRA_SPECS): Add new
	bundle spec. (DARWIN_BUNDLE1_SPEC): New.
	(STARTFILE_SPEC): Use darwin bundle spec.
	* config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New.
	(DARWIN_DYLIB1_SPEC): Delete duplicate.

From-SVN: r279393
2019-12-14 08:25:02 +00:00
Martin Sebor
ef29b12cfb PR middle-end/91582 - missing heap overflow detection for strcpy
PR middle-end/91582 - missing heap overflow detection for strcpy
PR middle-end/92868 - ICE: tree check: expected integer_cst, have ssa_name

gcc/ChangeLog:

	PR middle-end/91582
	PR middle-end/92868
	* builtins.c (addr_decl_size): New function.
	(gimple_call_alloc_size): Add arguments.
	(compute_objsize): Add an argument.  Set *PDECL even for allocated
	objects.
	Correct checking for negative wide_int.
	Correct handling of negative outer offsets into unknown regions
	or with unknown inner offsets.
	Extend offsets to at most sizetype precision.
	Only handle constant subobject sizes.
	* builtins.h (gimple_call_alloc_size): Add arguments.
	* tree.c (component_ref_size): Always return sizetype.
	* tree-ssa-strlen.c (strinfo::alloc): New member.
	(get_addr_stridx): Add argument.
	(get_stridx): Use ptrdiff_t.  Add argument.
	(new_strinfo): Set new member.
	(get_string_length): Handle alloca and VLA.
	(dump_strlen_info): Dump more state.
	(maybe_invalidate): Print more info.  Decrease indentation.
	(unshare_strinfo): Set new member.
	(valid_builtin_call): Handle alloca and VLA.
	(maybe_warn_overflow): Check and set no-warning bit.  Improve
	handling of offsets.  Print allocated objects.
	(handle_builtin_strlen): Handle strinfo records with null lengths.
	(handle_builtin_strcpy): Add argument.  Call maybe_warn_overflow.
	(is_strlen_related_p): Handle dynamically allocated objects.
	(get_range): Add argument.
	(handle_builtin_malloc): Rename...
	(handle_alloc): ...to this and handle all allocation functions.
	(handle_builtin_memset): Call maybe_warn_overflow.
	(count_nonzero_bytes): Handle more MEM_REF forms.
	(strlen_check_and_optimize_call): Call handle_alloc_call.  Pass
	arguments to more callees.
	(handle_integral_assign): Add argument.  Create strinfo entries
	for MEM_REF assignments.
	(check_and_optimize_stmt): Handle more MEM_REF forms.

gcc/testsuite/ChangeLog:

	PR middle-end/91582
	* c-c++-common/Wrestrict.c: Adjust expected warnings.
	* gcc/testsuite/c-c++-common/Wstringop-truncation-4.c: Enable more
	warnings.
	* gcc/testsuite/c-c++-common/Wstringop-truncation.c: Remove an xfail.
	* gcc.dg/Warray-bounds-46.c: Disable -Wstringop-overflow.
	* gcc.dg/Warray-bounds-47.c: Same.
	* gcc.dg/Warray-bounds-52.c: New test.
	* gcc.dg/Wstringop-overflow-27.c: New test.
	* gcc.dg/Wstringop-overflow-28.c: New test.
	* gcc.dg/Wstringop-overflow-29.c: New test.
	* gcc.dg/attr-alloc_size.c (test): Disable -Warray-bounds.
	* gcc.dg/attr-copy-2.c: Adjust expected warnings.
	* gcc.dg/builtin-stringop-chk-5.c: Adjust text of expected messages.
	* gcc.dg/strlenopt-86.c: Relax test.
	* gcc.target/i386/pr82002-1.c: Prune expected warnings.

From-SVN: r279392
2019-12-13 17:52:46 -07:00
GCC Administrator
e78b9a6fca Daily bump.
From-SVN: r279391
2019-12-14 00:16:44 +00:00
Julian Brown
1cbd94e834 Fix potential race condition in OpenACC "exit data" operations
PR libgomp/92881

	libgomp/
	* libgomp.h (gomp_remove_var_async): Add prototype.
	* oacc-mem.c (delete_copyout): Call gomp_remove_var_async instead of
	gomp_remove_var.
	* target.c (gomp_unref_tgt): Change return type to bool, indicating
	whether target_mem_desc was unmapped.
	(gomp_unref_tgt_void): New.
	(gomp_remove_var): Reimplement in terms of...
	(gomp_remove_var_internal): ...this new helper function.
	(gomp_remove_var_async): New, implemented using above helper function.
	(gomp_unmap_vars_internal): Use gomp_unref_tgt_void instead of
	gomp_unref_tgt.

Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>

From-SVN: r279388
2019-12-13 23:14:15 +00:00
Iain Sandoe
a7c70129b9 [Darwin, PPC] Use Darwin9 dylib header for Rosetta builds.
On Darwin10 it's possible to make a 32b PPC build using the
'Rosetta' emulator.  However, these builds need to make use of
Darwin9 crts (for exes and dylibs).  This adds the change to
cater for dylibs.

gcc/ChangeLog:

2019-12-13  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/darwin.h (DARWIN_DYLIB1_SPEC): New.

From-SVN: r279381
2019-12-13 21:06:22 +00:00
Ian Lance Taylor
c926fd82bb libbacktrace: add DWARF 5 support
* dwarf.c (struct attr): Add val field.
	(enum attr_val_encoding): Add ATTR_VAL_ADDDRESS_INDEX,
	ATTR_VAL_STRING_INDEX, ATTR_VAL_RNGLISTS_INDEX.
	(struct line_header): Add addrsize field.
	(struct line_header_format): Define.
	(struct unit): Add str_offsets_base, addr_base, and rnglists_base
	fields.
	(read_uint24): New static function.
	(read_attribute): Add implicit_val parameter.  Replace dwarf_str
	and dwarf_str_size parameters with dwarf_sections parameter.  Add
	support for new DWARF 5 forms.  Change all callers.
	(resolve_string): New static function.
	(resolve_addr_index): Likewise.
	(read_abbrevs): Support DW_FORM_implicit_const.
	(struct pcrange): Add lowpc_is_addr_index, highpc_is_addr_Index,
	and ranges_is_index fields.
	(update_pcrange): Support DWARF 5 encodings.
	(add_high_low_range): New static function, split out of
	add_ranges.
	(add_ranges_from_ranges): Likewise.
	(add_ranges_from_rnglists): New static function.
	(add_ranges): Just call new helper functions.
	(find_address_ranges): Use resolve_string for strings, after
	reading all attributes.  Handle new DWARF 5 attributes.
	(build_address_map): Support DWARF 5 compilation units.
	(read_v2_paths): New static function, split out of
	read_line_header.
	(read_lnct): New static	function.
	(read_line_header_format_entries): Likewise.
	(read_line_header): Add ddata parameter.  Support DWARF 5 line
	headers.  Call new helper functions.  Change all callers.
	(read_line_program): Use addrsize from line program header.  Don't
	special case directory index 0 for DWARF 5.
	(read_referenced_name): Use resolve_string.
	(read_function_entry): Handle DWARF 5 encodings.  Use
	resolve_string.
	* internal.h (enum dwarf_section): Add DEBUG_ADDR,
	DEBUG_STR_OFFSETS, DEBUG_LINE_STR, DEBUG_RNGLISTS.
	* elf.c (dwarf_section_names): Add new section names.
	* pecoff.c (dwarf_section_names): Likewise.
	* xcoff.c (xcoff_add): Clear dwarf_sections before setting
	fields.
	* configure.ac: Define HAVE_DWARF5 automake conditional.
	* Makefile.am (dwarf5_SOURCES): New variable if HAVE_DWARF5.
	(dwarf5_CFLAGS, dwarf5_LDADD): Likewise.
	(dwarf5_alloc_SOURCES, dwarf5_alloc_CFLAGS): Likewise.
	(dwarf5_alloc_LDADD): Likewise.
	(BUILDTESTS): Add dwarf5 tests if HAVE_DWARF5.
	(CLEANFILES, clean-local): Define.

From-SVN: r279380
2019-12-13 20:04:47 +00:00
Jan Hubicka
510873f901 lto-streamer-in.c (input_function): Add node parameter.
* lto-streamer-in.c (input_function): Add node parameter.
	(lto_read_body_or_constructor): Use it.

From-SVN: r279379
2019-12-13 18:43:20 +00:00
Andrew Stubbs
26b74ed022 Update OpenACC tests for amdgcn
2019-12-13  Andrew Stubbs  <ams@codesourcery.com>

	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c: Handle gcn.
	* testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/function-not-offloaded.c:
	Likewise.
	* testsuite/libgomp.oacc-c-c++-common/async_queue-1.c: Disable on GCN.
	* testsuite/libgomp.oacc-c-c++-common/tile-1.c: Likewise.

From-SVN: r279378
2019-12-13 17:40:06 +00:00
Roman Zhuykov
faab8a70f2 modulo-sched: fix branch rescheduling issue (PR92591)
PR rtl-optimization/92591
	* modulo-sched.c (ps_add_node_check_conflicts): Improve checking
	for history > 0 case.

testsuite:

	PR rtl-optimization/92591
	* gcc.dg/pr92951-1.c: New test.
	* gcc.dg/pr92951-2.c: New test.

From-SVN: r279377
2019-12-13 17:33:38 +00:00
Roman Zhuykov
c420be8b3c modulo-sched: fix parameters usage and their ranges
* modulo-sched.c (sms_schedule): Use param_sms_max_ii_factor
	value instead of macro.  Adjust comment.
	(sms_schedule_by_order): Use parameter value without macro.
	* params.opt: Add ranges for modulo scheduler parameters,
	set param_sms_max_ii_factor = 2 by default.

From-SVN: r279376
2019-12-13 17:17:31 +00:00
Roman Zhuykov
728c2e5eea modulo-sched: speed up DDG analysis (PR90001)
PR rtl-optimization/90001
	* ddg.c (create_ddg): Init max_dist array for each node.
	(free_ddg): Free max_dist array.
	(create_ddg_edge): Use bool field instead of aux union.
	(set_recurrence_length): Use prepared max_dist information instead
	of calling longest_simple_path.
	(create_scc): Remove graph argument, fill node's aux.count with
	SCC id, and move set_recurrence_length call to...
	(create_ddg_all_sccs): ...here, after filling all max_dist arrays
	using Floyd–Warshall-like algorithm.
	(update_dist_to_successors): Remove the whole function.
	(longest_simple_path): Likewise.
	* ddg.h (struct ddg_node): Add max_dist pointer.
	(struct ddg_edge): Use bool field instead of unused aux union.

From-SVN: r279375
2019-12-13 17:02:53 +00:00