1. 16 Dec, 2019 25 commits
    • [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
    • Add a couple int128_t bit-field testcases. · 438fbf63
      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
      Andrew Pinski committed
    • Daily bump. · 0f1374e9
      From-SVN: r279408
      GCC Administrator committed
  2. 15 Dec, 2019 1 commit
  3. 14 Dec, 2019 7 commits
    • re PR preprocessor/92919 (invalid memory access in wide_str_to_charconst when… · 937a778e
      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
      Jakub Jelinek committed
    • extend.texi (attribute access): Correct typos. · 8640a704
      gcc/ChangeLog:
      
      	* doc/extend.texi (attribute access): Correct typos.
      
      From-SVN: r279398
      Martin Sebor committed
    • re PR ipa/92357 (ICE in IPA pass fnsummary in openmp offload) · 16570c12
      	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
      Jakub Jelinek committed
    • re PR tree-optimization/92930 (GCC incorrectly optimizes away __builtin_apply() calls) · 813b70a1
      	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
      Jakub Jelinek committed
    • [Darwin, PPC] Use Darwin9 bundle header for Rosetta builds. · 4e62faf2
      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
      Iain Sandoe committed
    • PR middle-end/91582 - missing heap overflow detection for strcpy · ef29b12c
      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
      Martin Sebor committed
    • Daily bump. · e78b9a6f
      From-SVN: r279391
      GCC Administrator committed
  4. 13 Dec, 2019 7 commits
    • Fix potential race condition in OpenACC "exit data" operations · 1cbd94e8
      	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
      Julian Brown committed
    • [Darwin, PPC] Use Darwin9 dylib header for Rosetta builds. · a7c70129
      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
      Iain Sandoe committed
    • libbacktrace: add DWARF 5 support · c926fd82
      	* 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
      Ian Lance Taylor committed
    • lto-streamer-in.c (input_function): Add node parameter. · 510873f9
      
      	* lto-streamer-in.c (input_function): Add node parameter.
      	(lto_read_body_or_constructor): Use it.
      
      From-SVN: r279379
      Jan Hubicka committed
    • Update OpenACC tests for amdgcn · 26b74ed0
      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
      Andrew Stubbs committed
    • modulo-sched: fix branch rescheduling issue (PR92591) · faab8a70
      	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
      Roman Zhuykov committed
    • modulo-sched: fix parameters usage and their ranges · c420be8b
      	* 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
      Roman Zhuykov committed