1. 17 Dec, 2019 4 commits
  2. 16 Dec, 2019 36 commits
    • PR c++/91165 - verify_gimple ICE with cached constexpr. · 4953b790
      It seems we need to unshare even non-CONSTRUCTOR expressions that we are
      going to stick in the constexpr_call_table, so we don't end up sharing the
      same e.g. ADDR_EXPR between two different functions.  I now think I
      understand why unsharing CONSTRUCTOR arguments was improving memory
      performance: separating the arguments from the caller function allows the
      caller function to be GC'd better.  But it occurs to me that we don't need
      to unshare until we decide that we're evaluating and caching this call, so
      we can avoid the CONSTRUCTOR unshare/free pair for tentative arguments.
      Freeing the tentative TREE_VEC still seems worth doing, so free_bindings
      isn't going away entirely.
      
      	* constexpr.c (cxx_bind_parameters_in_call): Don't unshare.
      	(cxx_eval_call_expression): Unshare all args if we're caching.
      
      From-SVN: r279447
      Jason Merrill committed
    • PR middle-end/92952 - gfortran.dg/lto/pr87689 FAILs at -O2 · 12603635
      gcc/ChangeLog:
      	* builtins.c (compute_objsize): Adjust offset by the array low bound.
      
      From-SVN: r279445
      Martin Sebor committed
    • Add pp_write_text_as_html_like_dot_to_stream · a326a3de
      gcc/ChangeLog:
      	* pretty-print.c (pp_write_text_as_html_like_dot_to_stream): New
      	function.
      	* pretty-print.h (pp_write_text_as_html_like_dot_to_stream): New decl.
      
      From-SVN: r279444
      David Malcolm committed
    • rs6000: Use symbolic names for the CR fields in more cases · bb03700c
      It turns out we still used hardcoded register numbers for the CR fields
      in some cases, and they now use the wrong numbers since we renumbered
      most of the registers.  So let's use the symbolic names, instead.
      
      
      	* config/rs6000/rs6000.md (movsi_to_cr_one): Use CR0_REGNO instead of
      	hardcoding the (old, expired) register number.
      	(*mtcrfsi): Ditto.
      
      From-SVN: r279443
      Segher Boessenkool committed
    • MSP430: Add new msp430-elfbare target · e8aa9f55
      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
      Jozef Lawrynowicz committed
    • [Ada] Suppress unused warnings in the presence of errors · 1edfb10a
      2019-12-16  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* errout.adb (Handle_Serious_Error): Disable the above-mentioned
      	warnings.
      
      From-SVN: r279441
      Bob Duff committed
    • [Ada] Minor: improve comments · 495cdc79
      2019-12-16  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* errout.adb, errout.ads: Improve comments.
      
      From-SVN: r279440
      Bob Duff committed
    • [Ada] Minor comment fix · 9aaea2cc
      2019-12-16  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* sem_util.ads: Minor comment fix.
      
      From-SVN: r279439
      Bob Duff committed
    • [Ada] Check for "size for" in Special_Msg_Delete · eb2ff584
      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
      Bob Duff committed
    • [Ada] Do not set a bogus Esize on subtype built for Component_Size clause · 1cbd2080
      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
      Eric Botcazou committed
    • [Ada] Fix warning on _REENTRANT · 08611be2
      2019-12-16  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* socket.c: Shutdown warning.
      
      From-SVN: r279436
      Arnaud Charlet committed
    • [Ada] Mark Deallocator as Favor_Top_Level · c1c3784b
      2019-12-16  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* libgnarl/s-tataat.ads (Deallocator): Mark as Favor_Top_Level.
      
      From-SVN: r279435
      Arnaud Charlet committed
    • [Ada] AI12-0234/321 atomic operations · 019c74bb
      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
      Arnaud Charlet committed
    • [Ada] Remove new strict-alignment check added by AI12-0001 · 1dcdd961
      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
      Eric Botcazou committed
    • [Ada] Crash on constrained container in generalized indexing operation · c85dda72
      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
      Ed Schonberg committed
    • [Ada] Prototype implementastion of Ada2020 Map-reduce construct · 3c08de34
      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
      Ed Schonberg committed
    • [Ada] AI12-0001: Independence and Representation clauses for atomic objects · a517d6c1
      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
      Eric Botcazou committed
    • [Ada] Fully propagate representation aspects through renaming · 2cee58d8
      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
      Eric Botcazou committed
    • [Ada] Syntax error on improperly indented imported subprogram · 0bba838d
      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
      Bob Duff committed
    • [Ada] Fix couple of oversights in the implementation of AI12-0128 · 17a98a3d
      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
      Eric Botcazou committed
    • [Ada] Export the Ada version through the C interface · 2f31b362
      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
      Eric Botcazou committed
    • [Ada] Minor reformatting and U.S. spelling adjustment · ba58b776
      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
      Gary Dismukes committed
    • [Ada] Better error message for "is null" subunit · dce1ef7a
      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
      Bob Duff committed
    • [Ada] Expand renamings of subcomponents of an atomic or VFA object · 9c9535f9
      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
      Eric Botcazou committed
    • [Ada] Crash on conversion in branch of if-expression · 90393d3c
      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
      Ed Schonberg committed
    • [Ada] Bad warning: Size in Compile_Time_Error in nested instance · 4a187263
      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
      Bob Duff committed
    • [Ada] Small consistency fix for Volatile_Full_Access objects · d8468b97
      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
      Eric Botcazou committed
    • [Ada] Do not issue restriction violations on ignored ghost code · bee69f33
      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
      Yannick Moy committed
    • [Ada] AI12-0208 Support for Ada.Numerics.Big_Numbers.Big_Integers and Big_Reals · f17f5647
      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
      Arnaud Charlet committed
    • [Ada] Correct documentation of -gnatw_C switch · a4ada47e
      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
      Bob Duff committed
    • [Ada] Reword the impact of -minimal on the debugger · 5903c91c
      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
      Joel Brobecker committed
    • [Ada] Typo fixes and minor reformatting · f17267c8
      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
      Gary Dismukes committed
    • [Ada] Implement RM C.6(19) clause entirely in the front-end · 6a6ac079
      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
      Eric Botcazou committed
    • [Ada] Validate_Access_Subprogram_Instance: check if not null types match · 4efe11c6
      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
      Ghjuvan Lacambre committed
    • [Ada] Implement new legality rules introduced in C.6(13) by AI12-0128 · d6c7e020
      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
      Eric Botcazou committed
    • Fix PR92950: Wrong code emitted for movv1qi · 070fa48b
      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
      Andreas Krebbel committed