gcc.git
4 years agoPR c++/92576 - redeclaration of variable template.
Jason Merrill [Tue, 17 Dec 2019 21:46:11 +0000 (16:46 -0500)]
PR c++/92576 - redeclaration of variable template.

The variable templates patch way back when forgot to add handling here.  The
simplest answer seems to be recursing to the underlying declaration.

* decl.c (redeclaration_error_message): Recurse for variable
templates.

From-SVN: r279472

4 years ago* name-lookup.c (get_std_name_hint): Add std::byte.
Jason Merrill [Tue, 17 Dec 2019 21:45:19 +0000 (16:45 -0500)]
* name-lookup.c (get_std_name_hint): Add std::byte.

From-SVN: r279471

4 years agore PR c++/59655 (incorrect diagnostic on templatized function with lambda parameter)
Jakub Jelinek [Tue, 17 Dec 2019 21:40:14 +0000 (22:40 +0100)]
re PR c++/59655 (incorrect diagnostic on templatized function with lambda parameter)

PR c++/59655
* pt.c (push_tinst_level_loc): If limit_bad_template_recursion,
set TREE_NO_WARNING on tldcl.
* decl2.c (no_linkage_error): Treat templates with TREE_NO_WARNING
as defined during error recovery.

* g++.dg/cpp0x/diag3.C: New test.

From-SVN: r279470

4 years agore PR target/92841 (Optimize -fstack-protector-strong code generation a bit)
Jakub Jelinek [Tue, 17 Dec 2019 20:40:01 +0000 (21:40 +0100)]
re PR target/92841 (Optimize -fstack-protector-strong code generation a bit)

PR target/92841
* config/i386/i386.md (@stack_protect_set_1_<mode>,
@stack_protect_test_1_<mode>): Use output_asm_insn.
(*stack_protect_set_2_<mode>, *stack_protect_set_3): New define_insns
and corresponding define_peephole2s.

* gcc.target/i386/pr92841.c: New test.

From-SVN: r279468

4 years agoRevert "Fix vector testcases for amdgcn."
Andrew Stubbs [Tue, 17 Dec 2019 16:46:27 +0000 (16:46 +0000)]
Revert "Fix vector testcases for amdgcn."

Apologies everyone. :-(

From-SVN: r279466

4 years agoFix vector testcases for amdgcn.
Andrew Stubbs [Tue, 17 Dec 2019 16:37:09 +0000 (16:37 +0000)]
Fix vector testcases for amdgcn.

2019-12-17  Andrew Stubbs  <ams@codesourcery.com>

gcc/testsuite/
* gcc.dg/vect/pr65947-8.c: Change pass conditions for amdgcn.
* gcc.dg/vect/vect-multitypes-11.c: Ensure that main isn't vectorized.
* gcc.dg/vect/vect-multitypes-12.c: Likewise.

From-SVN: r279465

4 years agosymtab.c (symtab_node::get_partitioning_class): Aliases of external symbols are external.
Jan Hubicka [Tue, 17 Dec 2019 15:57:25 +0000 (16:57 +0100)]
symtab.c (symtab_node::get_partitioning_class): Aliases of external symbols are external.

* symtab.c (symtab_node::get_partitioning_class): Aliases of external
symbols are external.

From-SVN: r279464

4 years ago[ARM] Add support for -mpure-code in thumb-1 (v6m)
Christophe Lyon [Tue, 17 Dec 2019 15:43:07 +0000 (15:43 +0000)]
[ARM] Add support for -mpure-code in thumb-1 (v6m)

This patch extends support for -mpure-code to all thumb-1 processors,
by removing the need for MOVT.

Symbol addresses are built using upper8_15, upper0_7, lower8_15 and
lower0_7 relocations, and constants are built using sequences of
movs/adds and lsls instructions.

The extension of the *thumb1_movhf pattern uses always the same size
(6) although it can emit a shorter sequence when possible. This is
similar to what *arm32_movhf already does.

CASE_VECTOR_PC_RELATIVE is now false with -mpure-code, to avoid
generating invalid assembly code with differences from symbols from
two different sections (the difference cannot be computed by the
assembler).

Tests pr45701-[12].c needed a small adjustment to avoid matching
upper8_15 when looking for the r8 register.

Test no-literal-pool.c is augmented with __fp16, so it now uses
-mfp16-format=ieee.

Test thumb1-Os-mult.c generates an inline code sequence with
-mpure-code and computes the multiplication by using a sequence of
add/shift rather than using the multiply instruction, so we skip it in
presence of -mpure-code.

With -mcpu=cortex-m0, the pure-code/no-literal-pool.c fails because
code like:
static char *p = "Hello World";
char *
testchar ()
{
  return p + 4;
}

generates 2 indirections (I removed non-essential directives/code)
          .section        .rodata
  .LC0:
  .ascii  "Hello World\000"
  .data
  p:
  .word   .LC0
  .section        .rodata
  .LC2:
  .word   p
  .section .text,"0x20000006",%progbits
  testchar:
  push    {r7, lr}
  add     r7, sp, #0
  movs    r3, #:upper8_15:#.LC2
  lsls    r3, #8
  adds    r3, #:upper0_7:#.LC2
  lsls    r3, #8
  adds    r3, #:lower8_15:#.LC2
  lsls    r3, #8
  adds    r3, #:lower0_7:#.LC2
  ldr     r3, [r3]
  ldr     r3, [r3]
  adds    r3, r3, #4
  movs    r0, r3
  mov     sp, r7
  @ sp needed
  pop     {r7, pc}

By contrast, when using -mcpu=cortex-m4, the code looks like:
        .section        .rodata
.LC0:
.ascii  "Hello World\000"
.data
p:
.word   .LC0
testchar:
push    {r7}
add     r7, sp, #0
movw    r3, #:lower16:p
movt    r3, #:upper16:p
ldr     r3, [r3]
adds    r3, r3, #4
mov     r0, r3
mov     sp, r7
pop     {r7}
bx      lr

I haven't found yet how to make code for cortex-m0 apply upper/lower
relocations to "p" instead of .LC2. The current code looks functional,
but could be improved.

2019-10-18  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* config/arm/arm-protos.h (thumb1_gen_const_int): Add new prototype.
* config/arm/arm.c (arm_option_check_internal): Remove restriction
on MOVT for -mpure-code.
(thumb1_gen_const_int): New function.
(thumb1_legitimate_address_p): Support -mpure-code.
(thumb1_rtx_costs): Likewise.
(thumb1_size_rtx_costs): Likewise.
(arm_thumb1_mi_thunk): Likewise.
* config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Likewise.
* config/arm/thumb1.md (thumb1_movsi_symbol_ref): New.
(*thumb1_movhf): Support -mpure-code.

gcc/testsuite/
* gcc.target/arm/pr45701-1.c: Adjust for -mpure-code.
* gcc.target/arm/pr45701-2.c: Likewise.
* gcc.target/arm/pure-code/no-literal-pool.c: Add tests for
__fp16.
* gcc.target/arm/pure-code/pure-code.exp: Remove thumb2 and movt
conditions.
* gcc.target/arm/thumb1-Os-mult.c: Skip if -mpure-code is used.

From-SVN: r279463

4 years agoAdd myself to write after approval.
Mihail Ionescu [Tue, 17 Dec 2019 14:19:22 +0000 (14:19 +0000)]
Add myself to write after approval.

2019-12-17  Mihail Ionescu  <mihail.ionescu@arm.com>

* MAINTAINERS (write_after_approval): Add myself.

From-SVN: r279461

4 years agoAdd pointer to PR92772
Andrew Stubbs [Tue, 17 Dec 2019 13:01:36 +0000 (13:01 +0000)]
Add pointer to PR92772

2019-12-17  Andrew Stubbs  <ams@codesourcery.com>

* tree-vect-loop.c (vect_create_epilog_for_reduction): Mention pr92772
in the comments.

From-SVN: r279460

4 years agoAdd extract_last for amdgcn
Andrew Stubbs [Tue, 17 Dec 2019 13:01:25 +0000 (13:01 +0000)]
Add extract_last for amdgcn

2019-12-17  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn-valu.md (extract_last_<mode>): New expander.
(fold_extract_last_<mode>): New expander.

gcc/testsuite/
* lib/target-supports.exp
(check_effective_target_vect_fold_extract_last): Add amdgcn.

From-SVN: r279459

4 years agoAdd clz and ctz for amdgcn
Andrew Stubbs [Tue, 17 Dec 2019 13:01:16 +0000 (13:01 +0000)]
Add clz and ctz for amdgcn

2019-12-17  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
(CTZ_DEFINED_VALUE_AT_ZERO): Define.
* config/gcn/gcn.md (s_mnemonic): Add clz and ctz.
(expander): Likewise.
(countzeros): New code iterator.
(<expander>si2): New insn pattern.
(<expander>di2): New insn pattern.

From-SVN: r279458

4 years agolibgomp/openacc.f90 – clean-up public/private attributes
Tobias Burnus [Tue, 17 Dec 2019 11:19:32 +0000 (11:19 +0000)]
libgomp/openacc.f90 – clean-up public/private attributes

        * config/accel/openacc.f90 (module openacc_kinds): Use 'PUBLIC' to mark
        all symbols as public except for the 'use …, only' imported symbol,
        which is private.
        (module openacc): Default to 'PRIVATE' to exclude openacc_internal; mark
        all symbols from module openacc_kinds as PUBLIC
        * openacc.f90: Add comment with crossref to that file and openmp_lib.h;
        fix comment typo.
        * openacc_lib.h (acc_device_gcn): Add this PARAMETER.

From-SVN: r279456

4 years agore PR target/92962 (Documentation: x86 Options - znver2 missing RDPID and WBNOINVD)
Jakub Jelinek [Tue, 17 Dec 2019 09:23:59 +0000 (10:23 +0100)]
re PR target/92962 (Documentation: x86 Options - znver2 missing RDPID and WBNOINVD)

PR target/92962
* common/config/i386/i386-common.c (processor_alias_table): Formatting
fixes.
* doc/invoke.texi (bdver3, bdver4, znver1): Add missing closing paren.
(znver2): Likewise.  Add RDPID and WBNOINVD, remove spurious comma
before CLWB.

From-SVN: r279455

4 years agoAdd abs pattern to handle {si,di} mode abs to avoid pmax/cmove conversion.
Hongyu Wang [Tue, 17 Dec 2019 01:50:35 +0000 (01:50 +0000)]
Add abs pattern to handle {si,di} mode abs to avoid pmax/cmove conversion.

2019-12-17  Hongyu Wang  <hongyu.wang@intel.com>

gcc/
PR target/92651
* config/i386/i386.h (TARGET_EXPAND_ABS): New macro.
* config/i386/x86-tune.def (X86_TUNE_EXPAND_ABS): New.
* config/i386/i386.md (abs<SWI48x>2): New define_expand.

gcc/testsuite
* gcc.target/i386/pr92651.c: New testcase.

From-SVN: r279452

4 years agoUse add for a = a + b and a = b + a when possible.
H.J. Lu [Tue, 17 Dec 2019 01:29:09 +0000 (17:29 -0800)]
Use add for a = a + b and a = b + a when possible.

Since except for Bonnell,

01 fb                   add    %edi,%ebx

is faster and shorter than

8d 1c 1f                lea    (%rdi,%rbx,1),%ebx

we should use add for a = a + b and a = b + a when possible if not
optimizing for Bonnell.

Tested on x86-64.

2019-12-17  H.J. Lu  <hjl.tools@gmail.com>

gcc/

PR target/92807
* config/i386/i386.c (ix86_lea_outperforms): Check !TARGET_BONNELL.
(ix86_avoid_lea_for_addr): When not optimizing for Bonnell, use add
for a = a + b and a = b + a.

gcc/testsuite/

PR target/92807
* gcc.target/i386/pr92807-1.c: New test.

From-SVN: r279451

4 years agoDaily bump.
GCC Administrator [Tue, 17 Dec 2019 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r279450

4 years agoPR c++/91165 - verify_gimple ICE with cached constexpr.
Jason Merrill [Mon, 16 Dec 2019 23:25:08 +0000 (18:25 -0500)]
PR c++/91165 - verify_gimple ICE with cached constexpr.

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

4 years agoPR middle-end/92952 - gfortran.dg/lto/pr87689 FAILs at -O2
Martin Sebor [Mon, 16 Dec 2019 22:24:15 +0000 (22:24 +0000)]
PR middle-end/92952 - gfortran.dg/lto/pr87689 FAILs at -O2

gcc/ChangeLog:
* builtins.c (compute_objsize): Adjust offset by the array low bound.

From-SVN: r279445

4 years agoAdd pp_write_text_as_html_like_dot_to_stream
David Malcolm [Mon, 16 Dec 2019 17:07:45 +0000 (17:07 +0000)]
Add pp_write_text_as_html_like_dot_to_stream

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

4 years agors6000: Use symbolic names for the CR fields in more cases
Segher Boessenkool [Mon, 16 Dec 2019 16:06:17 +0000 (17:06 +0100)]
rs6000: Use symbolic names for the CR fields in more cases

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

4 years agoMSP430: Add new msp430-elfbare target
Jozef Lawrynowicz [Mon, 16 Dec 2019 11:02:10 +0000 (11:02 +0000)]
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

4 years ago[Ada] Suppress unused warnings in the presence of errors
Bob Duff [Mon, 16 Dec 2019 10:35:31 +0000 (10:35 +0000)]
[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

4 years ago[Ada] Minor: improve comments
Bob Duff [Mon, 16 Dec 2019 10:35:24 +0000 (10:35 +0000)]
[Ada] Minor: improve comments

2019-12-16  Bob Duff  <duff@adacore.com>

gcc/ada/

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

From-SVN: r279440

4 years ago[Ada] Minor comment fix
Bob Duff [Mon, 16 Dec 2019 10:35:17 +0000 (10:35 +0000)]
[Ada] Minor comment fix

2019-12-16  Bob Duff  <duff@adacore.com>

gcc/ada/

* sem_util.ads: Minor comment fix.

From-SVN: r279439

4 years ago[Ada] Check for "size for" in Special_Msg_Delete
Bob Duff [Mon, 16 Dec 2019 10:35:09 +0000 (10:35 +0000)]
[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

4 years ago[Ada] Do not set a bogus Esize on subtype built for Component_Size clause
Eric Botcazou [Mon, 16 Dec 2019 10:35:05 +0000 (10:35 +0000)]
[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

4 years ago[Ada] Fix warning on _REENTRANT
Arnaud Charlet [Mon, 16 Dec 2019 10:35:00 +0000 (10:35 +0000)]
[Ada] Fix warning on _REENTRANT

2019-12-16  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

* socket.c: Shutdown warning.

From-SVN: r279436

4 years ago[Ada] Mark Deallocator as Favor_Top_Level
Arnaud Charlet [Mon, 16 Dec 2019 10:34:56 +0000 (10:34 +0000)]
[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

4 years ago[Ada] AI12-0234/321 atomic operations
Arnaud Charlet [Mon, 16 Dec 2019 10:34:51 +0000 (10:34 +0000)]
[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

4 years ago[Ada] Remove new strict-alignment check added by AI12-0001
Eric Botcazou [Mon, 16 Dec 2019 10:34:47 +0000 (10:34 +0000)]
[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

4 years ago[Ada] Crash on constrained container in generalized indexing operation
Ed Schonberg [Mon, 16 Dec 2019 10:34:42 +0000 (10:34 +0000)]
[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

4 years ago[Ada] Prototype implementastion of Ada2020 Map-reduce construct
Ed Schonberg [Mon, 16 Dec 2019 10:34:37 +0000 (10:34 +0000)]
[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

4 years ago[Ada] AI12-0001: Independence and Representation clauses for atomic objects
Eric Botcazou [Mon, 16 Dec 2019 10:34:33 +0000 (10:34 +0000)]
[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

4 years ago[Ada] Fully propagate representation aspects through renaming
Eric Botcazou [Mon, 16 Dec 2019 10:34:27 +0000 (10:34 +0000)]
[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

4 years ago[Ada] Syntax error on improperly indented imported subprogram
Bob Duff [Mon, 16 Dec 2019 10:34:22 +0000 (10:34 +0000)]
[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

4 years ago[Ada] Fix couple of oversights in the implementation of AI12-0128
Eric Botcazou [Mon, 16 Dec 2019 10:34:17 +0000 (10:34 +0000)]
[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

4 years ago[Ada] Export the Ada version through the C interface
Eric Botcazou [Mon, 16 Dec 2019 10:34:12 +0000 (10:34 +0000)]
[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

4 years ago[Ada] Minor reformatting and U.S. spelling adjustment
Gary Dismukes [Mon, 16 Dec 2019 10:34:08 +0000 (10:34 +0000)]
[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

4 years ago[Ada] Better error message for "is null" subunit
Bob Duff [Mon, 16 Dec 2019 10:34:03 +0000 (10:34 +0000)]
[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

4 years ago[Ada] Expand renamings of subcomponents of an atomic or VFA object
Eric Botcazou [Mon, 16 Dec 2019 10:33:59 +0000 (10:33 +0000)]
[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

4 years ago[Ada] Crash on conversion in branch of if-expression
Ed Schonberg [Mon, 16 Dec 2019 10:33:54 +0000 (10:33 +0000)]
[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

4 years ago[Ada] Bad warning: Size in Compile_Time_Error in nested instance
Bob Duff [Mon, 16 Dec 2019 10:33:50 +0000 (10:33 +0000)]
[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

4 years ago[Ada] Small consistency fix for Volatile_Full_Access objects
Eric Botcazou [Mon, 16 Dec 2019 10:33:45 +0000 (10:33 +0000)]
[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

4 years ago[Ada] Do not issue restriction violations on ignored ghost code
Yannick Moy [Mon, 16 Dec 2019 10:33:41 +0000 (10:33 +0000)]
[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

4 years ago[Ada] AI12-0208 Support for Ada.Numerics.Big_Numbers.Big_Integers and Big_Reals
Arnaud Charlet [Mon, 16 Dec 2019 10:33:36 +0000 (10:33 +0000)]
[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

4 years ago[Ada] Correct documentation of -gnatw_C switch
Bob Duff [Mon, 16 Dec 2019 10:33:31 +0000 (10:33 +0000)]
[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

4 years ago[Ada] Reword the impact of -minimal on the debugger
Joel Brobecker [Mon, 16 Dec 2019 10:33:27 +0000 (10:33 +0000)]
[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

4 years ago[Ada] Typo fixes and minor reformatting
Gary Dismukes [Mon, 16 Dec 2019 10:33:22 +0000 (10:33 +0000)]
[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

4 years ago[Ada] Implement RM C.6(19) clause entirely in the front-end
Eric Botcazou [Mon, 16 Dec 2019 10:33:17 +0000 (10:33 +0000)]
[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

4 years ago[Ada] Validate_Access_Subprogram_Instance: check if not null types match
Ghjuvan Lacambre [Mon, 16 Dec 2019 10:33:13 +0000 (10:33 +0000)]
[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

4 years ago[Ada] Implement new legality rules introduced in C.6(13) by AI12-0128
Eric Botcazou [Mon, 16 Dec 2019 10:33:08 +0000 (10:33 +0000)]
[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

4 years agoFix PR92950: Wrong code emitted for movv1qi
Andreas Krebbel [Mon, 16 Dec 2019 08:03:28 +0000 (08:03 +0000)]
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

4 years agoAdd a couple int128_t bit-field testcases.
Andrew Pinski [Mon, 16 Dec 2019 03:43:19 +0000 (03:43 +0000)]
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

4 years agoDaily bump.
GCC Administrator [Mon, 16 Dec 2019 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r279408

4 years agoDaily bump.
GCC Administrator [Sun, 15 Dec 2019 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r279402

4 years agore PR preprocessor/92919 (invalid memory access in wide_str_to_charconst when running...
Jakub Jelinek [Sat, 14 Dec 2019 22:18:53 +0000 (23:18 +0100)]
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

4 years agoextend.texi (attribute access): Correct typos.
Martin Sebor [Sat, 14 Dec 2019 17:31:54 +0000 (17:31 +0000)]
extend.texi (attribute access): Correct typos.

gcc/ChangeLog:

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

From-SVN: r279398

4 years agore PR ipa/92357 (ICE in IPA pass fnsummary in openmp offload)
Jakub Jelinek [Sat, 14 Dec 2019 11:19:07 +0000 (12:19 +0100)]
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

4 years agore PR tree-optimization/92930 (GCC incorrectly optimizes away __builtin_apply() calls)
Jakub Jelinek [Sat, 14 Dec 2019 11:18:30 +0000 (12:18 +0100)]
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

4 years ago[Darwin, PPC] Use Darwin9 bundle header for Rosetta builds.
Iain Sandoe [Sat, 14 Dec 2019 08:25:02 +0000 (08:25 +0000)]
[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

4 years agoPR middle-end/91582 - missing heap overflow detection for strcpy
Martin Sebor [Sat, 14 Dec 2019 00:52:46 +0000 (00:52 +0000)]
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

4 years agoDaily bump.
GCC Administrator [Sat, 14 Dec 2019 00:16:44 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r279391

4 years agoFix potential race condition in OpenACC "exit data" operations
Julian Brown [Fri, 13 Dec 2019 23:14:15 +0000 (23:14 +0000)]
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

4 years ago[Darwin, PPC] Use Darwin9 dylib header for Rosetta builds.
Iain Sandoe [Fri, 13 Dec 2019 21:06:22 +0000 (21:06 +0000)]
[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

4 years agolibbacktrace: add DWARF 5 support
Ian Lance Taylor [Fri, 13 Dec 2019 20:04:47 +0000 (20:04 +0000)]
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

4 years agolto-streamer-in.c (input_function): Add node parameter.
Jan Hubicka [Fri, 13 Dec 2019 18:43:20 +0000 (19:43 +0100)]
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

4 years agoUpdate OpenACC tests for amdgcn
Andrew Stubbs [Fri, 13 Dec 2019 17:40:06 +0000 (17:40 +0000)]
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

4 years agomodulo-sched: fix branch rescheduling issue (PR92591)
Roman Zhuykov [Fri, 13 Dec 2019 17:33:38 +0000 (17:33 +0000)]
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

4 years agomodulo-sched: fix parameters usage and their ranges
Roman Zhuykov [Fri, 13 Dec 2019 17:17:31 +0000 (17:17 +0000)]
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

4 years agomodulo-sched: speed up DDG analysis (PR90001)
Roman Zhuykov [Fri, 13 Dec 2019 17:02:53 +0000 (17:02 +0000)]
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

4 years agoSub-dword vector multiply for amdgcn
Andrew Stubbs [Fri, 13 Dec 2019 16:37:17 +0000 (16:37 +0000)]
Sub-dword vector multiply for amdgcn

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

4 years agoFix merging of common traget info.
Jan Hubicka [Fri, 13 Dec 2019 15:41:55 +0000 (16:41 +0100)]
Fix merging of common traget info.

* ipa-utils.c (ipa_merge_profiles): Improve dumping; merge common
targets.

From-SVN: r279373

4 years agoSub-dword vector extend and truncate for amdgcn
Andrew Stubbs [Fri, 13 Dec 2019 15:29:26 +0000 (15:29 +0000)]
Sub-dword vector extend and truncate for amdgcn

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

4 years ago[AArch64] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16
Dennis Zhang [Fri, 13 Dec 2019 10:22:39 +0000 (10:22 +0000)]
[AArch64] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16

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

4 years agore PR target/92908 (wrong code with -Og -fno-tree-fre -mavx512bw and vector compare)
Jakub Jelinek [Fri, 13 Dec 2019 10:12:55 +0000 (11:12 +0100)]
re PR target/92908 (wrong code with -Og -fno-tree-fre -mavx512bw and vector compare)

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

4 years ago[Ada] Minor rewording of one sentence
Gary Dismukes [Fri, 13 Dec 2019 09:05:43 +0000 (09:05 +0000)]
[Ada] Minor rewording of one sentence

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

4 years ago[Ada] Unnesting and annex E
Arnaud Charlet [Fri, 13 Dec 2019 09:05:38 +0000 (09:05 +0000)]
[Ada] Unnesting and annex E

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

4 years ago[Ada] implementation_defined_pragmas.rst: Update Initialize_Scalars docs
Ghjuvan Lacambre [Fri, 13 Dec 2019 09:05:33 +0000 (09:05 +0000)]
[Ada] implementation_defined_pragmas.rst: Update Initialize_Scalars docs

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

4 years ago[Ada] Spurious error on precondition of subprogram instantiation
Javier Miranda [Fri, 13 Dec 2019 09:05:28 +0000 (09:05 +0000)]
[Ada] Spurious error on precondition of subprogram instantiation

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

4 years ago[Ada] Better error message for aliased formal and atomic actual
Eric Botcazou [Fri, 13 Dec 2019 09:05:23 +0000 (09:05 +0000)]
[Ada] Better error message for aliased formal and atomic actual

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

4 years ago[Ada] Clear confusion about subcomponents of atomic object
Eric Botcazou [Fri, 13 Dec 2019 09:05:18 +0000 (09:05 +0000)]
[Ada] Clear confusion about subcomponents of atomic object

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

4 years ago[Ada] Fix support for > 24 hours image in Ada.Calendar.Formatting
Arnaud Charlet [Fri, 13 Dec 2019 09:05:13 +0000 (09:05 +0000)]
[Ada] Fix support for > 24 hours image in Ada.Calendar.Formatting

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

4 years ago[Ada] Adding support for unsupported type conversions in CCG
Javier Miranda [Fri, 13 Dec 2019 09:05:08 +0000 (09:05 +0000)]
[Ada] Adding support for unsupported type conversions in CCG

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

4 years ago[Ada] Pragma Linker_Section in subprogram instantiations in CCG
Javier Miranda [Fri, 13 Dec 2019 09:05:03 +0000 (09:05 +0000)]
[Ada] Pragma Linker_Section in subprogram instantiations in CCG

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

4 years ago[Ada] Avoid spurious mismatch error of assertion policy in generics
Yannick Moy [Fri, 13 Dec 2019 09:04:58 +0000 (09:04 +0000)]
[Ada] Avoid spurious mismatch error of assertion policy in generics

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

4 years ago[Ada] Minor fix typo in comment
Piotr Trojanek [Fri, 13 Dec 2019 09:04:53 +0000 (09:04 +0000)]
[Ada] Minor fix typo in comment

2019-12-13  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

* exp_aggr.adb, exp_unst.adb: Minor fix typo in comment.

From-SVN: r279358

4 years ago[Ada] Detect illegal implicit type conversions
Steve Baird [Fri, 13 Dec 2019 09:04:48 +0000 (09:04 +0000)]
[Ada] Detect illegal implicit type conversions

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

4 years ago[Ada] Adding support for unsupported type conversion in CCG
Javier Miranda [Fri, 13 Dec 2019 09:04:43 +0000 (09:04 +0000)]
[Ada] Adding support for unsupported type conversion in CCG

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

4 years ago[Ada] Implement AI12-0109 (prohibit some "early" derivations)
Steve Baird [Fri, 13 Dec 2019 09:04:38 +0000 (09:04 +0000)]
[Ada] Implement AI12-0109 (prohibit some "early" derivations)

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

4 years ago[Ada] Minor tweak to Volatile_Full_Access wording in GNAT RM
Eric Botcazou [Fri, 13 Dec 2019 09:04:33 +0000 (09:04 +0000)]
[Ada] Minor tweak to Volatile_Full_Access wording in GNAT RM

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

4 years ago[Ada] Suppress Base_Address call on init of activation record components
Gary Dismukes [Fri, 13 Dec 2019 09:04:28 +0000 (09:04 +0000)]
[Ada] Suppress Base_Address call on init of activation record components

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

4 years ago[Ada] Crash on implicit dereference not made explicit
Ed Schonberg [Fri, 13 Dec 2019 09:04:23 +0000 (09:04 +0000)]
[Ada] Crash on implicit dereference not made explicit

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

4 years ago[Ada] Deallocation of controlled type implementing interface types
Javier Miranda [Fri, 13 Dec 2019 09:04:18 +0000 (09:04 +0000)]
[Ada] Deallocation of controlled type implementing interface types

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

4 years ago[Ada] Remove Is_Available function
Bob Duff [Fri, 13 Dec 2019 09:04:12 +0000 (09:04 +0000)]
[Ada] Remove Is_Available function

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

4 years ago[Ada] Crash on inherited private operation in child package
Ed Schonberg [Fri, 13 Dec 2019 09:04:06 +0000 (09:04 +0000)]
[Ada] Crash on inherited private operation in child package

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

4 years ago[Ada] Avoid spurious errors on Global/Depends in instantiations
Yannick Moy [Fri, 13 Dec 2019 09:04:01 +0000 (09:04 +0000)]
[Ada] Avoid spurious errors on Global/Depends in instantiations

2019-12-13  Yannick Moy  <moy@adacore.com>

gcc/ada/

* sem_prag.adb (Analyze_Depends_In_Decl_Part,
Analyze_Global_In_Decl_Part,
Analyze_Refined_Depends_In_Decl_Part,
Analyze_Refined_Global_In_Decl_Part, Check_Missing_Part_Of):
Skip redundant checking involving visibility inside
instantiations.

From-SVN: r279348

4 years ago[Ada] Prevent inlining inside condition of while loop in GNATprove
Yannick Moy [Fri, 13 Dec 2019 09:03:56 +0000 (09:03 +0000)]
[Ada] Prevent inlining inside condition of while loop in GNATprove

2019-12-13  Yannick Moy  <moy@adacore.com>

gcc/ada/

* sem_res.adb (Resolve_Call): Prevent inlining inside while loop
conditions.
* sem_util.adb, sem_util.ads (In_While_Loop_Condition): New
query function.

From-SVN: r279347

4 years ago[Ada] Ada2020: Update Impunit for Ada 202X
Bob Duff [Fri, 13 Dec 2019 09:03:50 +0000 (09:03 +0000)]
[Ada] Ada2020: Update Impunit for Ada 202X

2019-12-13  Bob Duff  <duff@adacore.com>

gcc/ada/

* impunit.ads: Add Ada_202X_Unit.
* impunit.adb: Add a table Non_Imp_File_Names_2X analogous to
the other tables. Add code to search this table.
* opt.ads: Add Warn_On_Ada_202X_Compatibility flag, currently
always True.
* sem_ch10.adb (Analyze_With_Clause): Give a warning if an Ada
2020 unit is with-ed when Ada_Version < Ada_2020.  Change 'if'
to 'case': Full coverage rules rule.

From-SVN: r279346

4 years ago[Ada] Rtsfind: minor comment fixes
Bob Duff [Fri, 13 Dec 2019 09:03:45 +0000 (09:03 +0000)]
[Ada] Rtsfind: minor comment fixes

2019-12-13  Bob Duff  <duff@adacore.com>

gcc/ada/

* rtsfind.ads: Minor comment fix.

From-SVN: r279345