1. 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
  2. 13 Dec, 2019 33 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
    • modulo-sched: speed up DDG analysis (PR90001) · 728c2e5e
      	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
      Roman Zhuykov committed
    • Sub-dword vector multiply for amdgcn · 7b945b19
      2019-12-13  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md (mulv64si3<exec>): Rename to ...
      	(mul<mode>3<exec>): ... this, and implement sub-dword patterns.
      	(mulv64si3_dup<exec>): Rename to ...
      	(mul<mode>3_dup<exec>): ... this, and implement sub-dword patterns.
      
      From-SVN: r279374
      Andrew Stubbs committed
    • Fix merging of common traget info. · e44deb43
      	* ipa-utils.c (ipa_merge_profiles): Improve dumping; merge common
      	targets.
      
      From-SVN: r279373
      Jan Hubicka committed
    • Sub-dword vector extend and truncate for amdgcn · 3d66c777
      2019-12-13  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md (sdwa): New mode attribute.
      	(VCVT_FROM_MODE): Rename to ...
      	(VCVT_MODE): ... this.
      	(VCVT_TO_MODE): Delete mode iterator.
      	(VCVT_FMODE): New mode iterator.
      	(VCVT_IMODE): Likewise.
      	(<cvt_name><VCVT_FROM_MODE:mode><VCVT_TO_MODE:mode>2<exec>): Change ...
      	(<cvt_name><VCVT_MODE:mode><VCVT_FMODE:mode>2<exec>): ... to this.
      	(<cvt_name><VCVT_FMODE:mode><VCVT_IMODE:mode>2<exec>): New.
      	(zero_convert): New code iterator.
      	(convop): New code attribute.
      	(<convop><VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>)
      	: New.
      	(extend<VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>)
      	: New.
      	(vec_truncatev64div64si): Rename to ...
      	(truncv64di<mode>2): ... this and implement sub-dword patterns.
      	(vec_truncatev64div64si_exec): Rename to ...
      	(truncv64di<mode>2_exec): ... this and implement sub-dword patterns.
      	(<convop><mode>v64di2): New insn_and_split.
      	(<convop><mode>v64di2_exec): Likewise.
      	(mask_gather_load<mode>): Update truncate names.
      	(mask_scatter_store<mode>): Likewise.
      	* config/gcn/gcn.c (gcn_expand_scaled_offsets): Update truncate names.
      
      From-SVN: r279372
      Andrew Stubbs committed
    • [AArch64] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16 · a93e1d5c
      2019-12-13  Dennis Zhang  <dennis.zhang@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-arches.def (armv8.6-a): New.
      	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
      	__ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC and
      	__ARM_FEATURE_BF16_SCALAR_ARITHMETIC when enabled.
      	* config/aarch64/aarch64-option-extensions.def (i8mm, bf16): New.
      	(fp): Disabling fp also disables i8mm and bf16.
      	(simd): Disabling simd also disables i8mm.
      	* config/aarch64/aarch64.h (AARCH64_FL_V8_6): New macro.
      	(AARCH64_FL_I8MM, AARCH64_FL_BF16, AARCH64_FL_FOR_ARCH8_6): Likewise.
      	(AARCH64_ISA_V8_6, AARCH64_ISA_I8MM, AARCH64_ISA_BF16): Likewise.
      	(TARGET_I8MM, TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise.
      	* doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options
      	and add a new table to list permissible values for ARCH.
      
      gcc/testsuite/
      	* gcc.target/aarch64/pragma_cpp_predefs_2.c: Add tests for i8mm
      	and bf16 features.
      
      From-SVN: r279370
      Dennis Zhang committed
    • re PR target/92908 (wrong code with -Og -fno-tree-fre -mavx512bw and vector compare) · 1a4c0446
      	PR target/92908
      	* simplify-rtx.c (simplify_relational_operation): Punt for vector
      	cmp_mode and scalar mode, if simplify_relational_operation returned
      	const_true_rtx.
      	(simplify_const_relational_operation): Change VOID_mode in function
      	comment to VOIDmode.
      
      	* gcc.target/i386/avx512bw-pr92908.c: New test.
      
      From-SVN: r279369
      Jakub Jelinek committed
    • [Ada] Minor rewording of one sentence · 814db0c1
      2019-12-13  Gary Dismukes  <dismukes@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_rm/implementation_defined_pragmas.rst: Minor
      	rewording of one sentence.
      	* gnat_rm.texi: Regenerate.
      
      From-SVN: r279368
      Gary Dismukes committed
    • [Ada] Unnesting and annex E · 9531aef5
      2019-12-13  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb (Unnest_Subprogram): Account for trees produced
      	by Annex E constructs.
      
      From-SVN: r279367
      Arnaud Charlet committed
    • [Ada] implementation_defined_pragmas.rst: Update Initialize_Scalars docs · e203dd6e
      2019-12-13  Ghjuvan Lacambre  <lacambre@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_rm/implementation_defined_pragmas.rst: Update
      	Initialize_Scalars documentation.
      	* gnat_rm.texi: Regenerate.
      
      From-SVN: r279366
      Ghjuvan Lacambre committed
    • [Ada] Spurious error on precondition of subprogram instantiation · c90e1eca
      2019-12-13  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* sem_ch13.adb (Analyze_Aspect_Specification): Processing a
      	precondition, if the expression is of the form A and then B, do
      	not generate separate Pre/Post aspects for the separate clases
      	when we are processing a generic unit. Required to avoid
      	reporting spurious visibility errors on the instantiations.
      
      From-SVN: r279365
      Javier Miranda committed
    • [Ada] Better error message for aliased formal and atomic actual · e1e1e53a
      2019-12-13  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* sem_res.adb (Resolve_Actuals): Give canonical error for
      	illegal case of atomic/volatile parameter also if the formal is
      	aliased.
      
      From-SVN: r279364
      Eric Botcazou committed
    • [Ada] Clear confusion about subcomponents of atomic object · a35c1b07
      2019-12-13  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* sem_util.ads (Is_Atomic_Object): Mention relevant RM clauses.
      	* sem_util.adb (Is_Atomic_Object): For an indexed component,
      	only look at the Has_Atomic_Components aspect of the prefix and
      	do not recurse on it; for a selected component, do not look at
      	the prefix.
      	(Is_Atomic_Or_VFA_Object): Minor tweak.
      
      From-SVN: r279363
      Eric Botcazou committed
    • [Ada] Fix support for > 24 hours image in Ada.Calendar.Formatting · 309ff6fb
      2019-12-13  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* libgnat/a-calfor.ads, libgnat/a-calfor.adb (Split_Duration):
      	New procedure.
      	(Split, Image): Use Split_Duration. Update Image spec.
      
      From-SVN: r279362
      Arnaud Charlet committed
    • [Ada] Adding support for unsupported type conversions in CCG · 3af796b5
      2019-12-13  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb (Unnest_Subprogram): Generate an extra temporary
      	to facilitate the C backend processing dereferences.
      
      From-SVN: r279361
      Javier Miranda committed
    • [Ada] Pragma Linker_Section in subprogram instantiations in CCG · 48f05f09
      2019-12-13  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* sem_prag.adb (Analyze_Pragma): Propagate the
      	Linker_Section_Attribute to the ultimate alias of the subprogram
      	to facilitate the C backend processing this attribute.
      
      From-SVN: r279360
      Javier Miranda committed
    • [Ada] Avoid spurious mismatch error of assertion policy in generics · de12d07e
      2019-12-13  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* sem_util.adb (Original_Aspect_Pragma_Name): Go through
      	Original_Node for pragma.
      
      From-SVN: r279359
      Yannick Moy committed
    • [Ada] Minor fix typo in comment · 8973b987
      2019-12-13  Piotr Trojanek  <trojanek@adacore.com>
      
      gcc/ada/
      
      	* exp_aggr.adb, exp_unst.adb: Minor fix typo in comment.
      
      From-SVN: r279358
      Piotr Trojanek committed
    • [Ada] Detect illegal implicit type conversions · a85475be
      2019-12-13  Steve Baird  <baird@adacore.com>
      
      gcc/ada/
      
      	* sem_res.adb (Resolve, Valid_Conversion): Add Base_Type call
      	when testing whether a type is a general access type.
      
      From-SVN: r279357
      Steve Baird committed
    • [Ada] Adding support for unsupported type conversion in CCG · 02458cc7
      2019-12-13  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Generate an
      	extra temporary for cases unsupported by the C backend.
      
      From-SVN: r279356
      Javier Miranda committed
    • [Ada] Implement AI12-0109 (prohibit some "early" derivations) · cfedf3e5
      2019-12-13  Steve Baird  <baird@adacore.com>
      
      gcc/ada/
      
      	* einfo.ads: Correct comment for Derived_Type_Link to reflect
      	that fact that this function is now used for more than just
      	generation of warnings.
      	* sem_ch3.adb (Build_Derived_Type): Do not call
      	Set_Derived_Type_Link if the derived type and the parent type
      	are in different compilation units. Such a derivation cannot be
      	a problematic "early" derivation (identifying these is what the
      	Derived_Type_Link attribute is used for) and we don't like
      	inter-unit references that go in the opposite direction of
      	semantic dependencies.
      	* sem_ch13.adb (Is_Type_Related_Rep_Item): A new function,
      	analogous to the existing function Is_Operational_Item.
      	(Rep_Item_Too_Late): Generate a hard error (with same text as
      	the warning that was previously being generated) if the
      	AI12-0109 legality rule is violated.
      
      From-SVN: r279355
      Steve Baird committed
    • [Ada] Minor tweak to Volatile_Full_Access wording in GNAT RM · 63e21a72
      2019-12-13  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_rm/implementation_defined_pragmas.rst: Minor tweak to
      	Volatile_Full_Access wording in GNAT RM.
      	* gnat_rm.texi: Regenerate.
      
      From-SVN: r279354
      Eric Botcazou committed
    • [Ada] Suppress Base_Address call on init of activation record components · 47997d25
      2019-12-13  Gary Dismukes  <dismukes@adacore.com>
      
      gcc/ada/
      
      	* exp_attr.adb (Expand_N_Attribute_Reference,
      	Attribute_Address): Suppress generation of a call to
      	Base_Address in the case where the Address attribute is being
      	used to initialize a corresponding component of an activation
      	record.
      	(Is_Unnested_Component_Init): New function to determine whether
      	an attribute reference for Address is used to initialized a
      	component of an activation record object that corresponds to the
      	object denoted by the prefix of the attribute (an assignment
      	used in support of unnesting for back ends like LLVM).
      
      From-SVN: r279353
      Gary Dismukes committed
    • [Ada] Crash on implicit dereference not made explicit · be3614c7
      2019-12-13  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_res.adb (Resolve): IF an entity reference is overloaded
      	because its type has an Implicit_Dereference aspect, we must
      	examine the discriminants of the type to determine whether an
      	explicit dereference must be inserted for use in code
      	generation. Previously this was done for other expressions but
      	not for entity references by themselves.  This was sufficient to
      	handle uses of the aspect in container handling and iteration,
      	but not more generally.
      
      From-SVN: r279352
      Ed Schonberg committed
    • [Ada] Deallocation of controlled type implementing interface types · 20dc266e
      2019-12-13  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* exp_disp.ads (Expand_Interface_Thunk): Adding one formal (the
      	interface type).
      	* exp_disp.adb (Expand_Interface_Thunk): Using the added formal
      	to ensure the correct profile of the thunk generated for
      	predefined primitives; in addition, the added formal is also
      	used to perform a check that ensures that the controlling type
      	of the thunk is the one expected by the GCC backend.
      	(Make_Secondary_DT, Register_Primitive): Adding the new formal
      	to the calls to Expand_Interface_Thunk.
      	* exp_ch6.adb (Register_Predefined_DT_Entry): Adding the new
      	formal to the call to Expand_Interface_Thunk.
      	* exp_intr.adb (Expand_Unc_Deallocation): When deallocating a
      	controlled type and the call to unchecked deallocation is
      	performed with a pointer to one of the convered interface types,
      	displace the pointer to the object to reference the base of the
      	object to deallocate its memory.
      	* gcc-interface/trans.c (maybe_make_gnu_thunk): Assert that the
      	controlling type of the thunk is an interface type.
      
      From-SVN: r279351
      Javier Miranda committed
    • [Ada] Remove Is_Available function · 6c9e4a1d
      2019-12-13  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* exp_attr.adb (Is_Available): Remove this function, and replace
      	all calls with RTE_Available. RTE_Available will return True if
      	"not Configurable_Run_Time_Mode". Remove the "???" comment.
      
      From-SVN: r279350
      Bob Duff committed
    • [Ada] Crash on inherited private operation in child package · 7f8ad8f0
      2019-12-13  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_ch7.adb (Analyze_Package_Body_Helper): Do not call
      	Declare_Inherited_Private_Subprograms on s child body: the
      	required operations have already been created when analyzing the
      	corresponding package declaration. This prevents a redeclaration
      	of inehrited operation, and a crash when inserting the new
      	operation in the current scope.
      
      From-SVN: r279349
      Ed Schonberg committed