]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
7 years ago[Ada] Remove spurious -Wuninitialized warning for small array at -O2
pmderodat [Tue, 9 Oct 2018 15:05:49 +0000 (15:05 +0000)] 
[Ada] Remove spurious -Wuninitialized warning for small array at -O2

2018-10-09  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* gcc-interface/decl.c (type_requires_init_of_formal): New
predicate.
(gnat_to_gnu_param): Use it to determine whether a PARM_DECL
must be created for an Out parameter passed by copy.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264971 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Ada] Bounded_Holders: fix a typo
pmderodat [Tue, 9 Oct 2018 15:05:44 +0000 (15:05 +0000)] 
[Ada] Bounded_Holders: fix a typo

2018-10-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

* libgnat/a-coboho.ads (Storage_Element): Fix a typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264970 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Ada] Functional_Vectors: remove default value for max size
pmderodat [Tue, 9 Oct 2018 15:05:39 +0000 (15:05 +0000)] 
[Ada] Functional_Vectors: remove default value for max size

2018-10-09  Claire Dross  <dross@adacore.com>

gcc/ada/

* libgnat/a-cfinve.ads: Remove default value for
Max_Size_In_Storage_Elements as it was not supported in SPARK.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264969 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Ada] Reset Is_True_Constant on entites used as OUT/IN OUT actuals
pmderodat [Tue, 9 Oct 2018 15:05:34 +0000 (15:05 +0000)] 
[Ada] Reset Is_True_Constant on entites used as OUT/IN OUT actuals

2018-10-09  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* exp_ch6.adb (Add_Call_By_Copy_Node,
Add_Simple_Call_By_Copy_Node, Expand_Call_Helper): Reset
Is_True_Constant on entities used as Out or In_Out parameters in
calls.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264968 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Ada] Unnesting: avoid unnecessary loads of System
pmderodat [Tue, 9 Oct 2018 15:05:29 +0000 (15:05 +0000)] 
[Ada] Unnesting: avoid unnecessary loads of System

2018-10-09  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* exp_unst.adb (Unnest_Subprogram): Do not load System to obtain
the Address entity unless an activation record is being built.
Removes useless with_clauses for System when nested subprograms
do not have uplevel references, and therefore do not need
activation records.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264967 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Ada] Spurious error message on visibiliy change in aspect expression
pmderodat [Tue, 9 Oct 2018 15:05:24 +0000 (15:05 +0000)] 
[Ada] Spurious error message on visibiliy change in aspect expression

This patch removes an improper error message on a visibility change in
an aspect expression between the freeze point and the end of the
declaration list, when the expression involves a call to a instance of
Unchecked_Conversion and the enclosing package declaration has a package
body with multiple subprogram bodies.

The following must compile quietly:

----
package body Par.Rep is
   procedure Nothing is begin null; end;
   procedure Rien is begin null; end;
end;
----
with Par.Loc;
package Par.Rep is
   type Rec is record
      X, Y : Integer;
   end record
      with Volatile;

   Thing2 : Unsigned_32 := 15;
   Thing3 : Rec
    with Volatile, Address => To_Address (Par.Loc.Flash_Base);
    procedure Nothing;
end;
----
pragma Restrictions (No_Elaboration_Code);
with interfaces;  use interfaces;
pragma unreferenced (interfaces);
with Tp;       use Tp;
pragma unreferenced (Tp);
package Par is
end Par;
----
with Ada.Unchecked_Conversion;
with System;
with Interfaces; use Interfaces;
package Tp is
subtype system_address is unsigned_32;
   function to_address is new
      ada.unchecked_conversion (system_address, system.address);
   function To_32 is new
      ada.unchecked_conversion (System.Address, System_Address);
end;
----
with TP; use TP;
package Par.Loc is
FLASH_BASE        : constant system_address := 16#0800_0000#;
end;

2018-10-09  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_ch6.adb (Fully_Conformant_Expressions): Handle properly
the conformance check on an aspect expression that includes a
call to an instance of Unchecked_Conversion, or more generally a
call to an intrinsic operation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264966 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Ada] Repinfo: list the mechanism of functions only
pmderodat [Tue, 9 Oct 2018 15:05:19 +0000 (15:05 +0000)] 
[Ada] Repinfo: list the mechanism of functions only

2018-10-09  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* repinfo.adb: Remove with/use clause for Stand.
(List_Mechanisms): List the mechanism of functions only.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264965 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Ada] Various User Manual updates for GNATpp
pmderodat [Tue, 9 Oct 2018 15:05:14 +0000 (15:05 +0000)] 
[Ada] Various User Manual updates for GNATpp

2018-10-09  Bob Duff  <duff@adacore.com>

gcc/ada/

* doc/gnat_ugn/gnat_utility_programs.rst: Correct spelling of
--eol switch.  Document the language-version switches.  Update
description for --no-exception.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264964 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Ada] System.Os_Lib.Normalize_Pathname: fix incorrect comment
pmderodat [Tue, 9 Oct 2018 15:05:09 +0000 (15:05 +0000)] 
[Ada] System.Os_Lib.Normalize_Pathname: fix incorrect comment

2018-10-09  Vasiliy Fofanov  <fofanov@adacore.com>

gcc/ada/

* libgnat/s-os_lib.ads (Normalize_Pathname): Fix incorrect
comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264963 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Ada] Remove CodePeer annotation
pmderodat [Tue, 9 Oct 2018 15:05:04 +0000 (15:05 +0000)] 
[Ada] Remove CodePeer annotation

2018-10-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

* vxlink.adb: Remove pragma Annotate, no longer needed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264962 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Ada] Preserve Do_Range_Check flags in SPARK mode
pmderodat [Tue, 9 Oct 2018 15:04:58 +0000 (15:04 +0000)] 
[Ada] Preserve Do_Range_Check flags in SPARK mode

2018-10-09  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* checks.adb (Apply_Type_Conversion_Checks): Use GNATprove_Mode
rather than SPARK_mode in order to preserve the Do_Range_Check
flag for verification purposes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264961 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Ada] Spurious warning on uninitialized entity during code generation
pmderodat [Tue, 9 Oct 2018 15:04:53 +0000 (15:04 +0000)] 
[Ada] Spurious warning on uninitialized entity during code generation

This patch suppresses a spurious warning coming from the GCC backend, on
an aggregate that cannot be built in place and for which a temporary
variable must be created. If the type of the aggregate is a packed
boolean array, the generated code may appear to use an uninitialized
value for a component of the array, when in fact the code simply sets a
single bit of that array.

2018-10-09  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* exp_aggr.adb (Expand_Array_Aggregate): If it is not possible
to build in place an aggregate with component associations, set
the Warnings_Off flag on the generated temporary, to prevent
spurious warnings from the backend when compiling with the
-Wuninitialized gcc flag.

gcc/testsuite/

* gnat.dg/warn18.adb: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264960 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDefine std::string and related typedefs outside __cxx11 namespace
redi [Tue, 9 Oct 2018 13:06:46 +0000 (13:06 +0000)] 
Define std::string and related typedefs outside __cxx11 namespace

The typedefs for common specializations of std::__cxx11::basic_string do
not need to be in the std::__cxx11 namespace. Those typedefs are never
used for linkage purposes so don't appear in mangled names, and so don't
need to be distinct from the equivalent typedefs for the COW
std::basic_string specializations. It is OK for the same typedef to
refer to different types in different translation units.

Defining them directly in namespace std improves diagnostics that use
those typedefs. For example:

error: could not convert '1' from 'int' to 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'}

will now be printed as:

error: could not convert '1' from 'int' to 'std::string' {aka 'std::__cxx11::basic_string<char>'}

The precise type is still shown, but the typedef is not obfuscated with
the inline namespace.

* include/bits/stringfwd.h (string, wstring, u16string, u32string):
Define typedefs outside of __cxx11 inline namespace.
* python/libstdcxx/v6/printers.py (register_type_printers): Also
register printers for typedefs in new location.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264958 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-09 Richard Biener <rguenther@suse.de>
rguenth [Tue, 9 Oct 2018 11:43:46 +0000 (11:43 +0000)] 
2018-10-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/63155
* tree-ssa-structalias.c: Include tree-ssa.h.
(get_constraint_for_ssa_var): For undefs return nothing_id.
(find_func_aliases): Cleanup PHI handling.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264956 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-09 Richard Biener <rguenther@suse.de>
rguenth [Tue, 9 Oct 2018 11:37:46 +0000 (11:37 +0000)] 
2018-10-09  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.c (dump_stmt_cost): Fix cut&paste missing
replacements.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264954 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoASAN: emit line information of stack variables.
marxin [Tue, 9 Oct 2018 08:34:52 +0000 (08:34 +0000)] 
ASAN: emit line information of stack variables.

2018-10-09  Martin Liska  <mliska@suse.cz>

* asan.c (asan_emit_stack_protection): If a stack variable
is located in a same file as current function, then emit
line info into variable definition string.
2018-10-09  Martin Liska  <mliska@suse.cz>

* c-c++-common/asan/pr64820.c: Add line number to scanned
pattern.
* c-c++-common/asan/use-after-return-1.c: Likewise.
* g++.dg/asan/function-argument-1.C (main): Likewise.
* g++.dg/asan/function-argument-2.C (main): Likewise.
* g++.dg/asan/function-argument-3.C (main): Likewise.
* g++.dg/asan/use-after-scope-1.C (main): Likewise.
* g++.dg/asan/use-after-scope-2.C (main): Likewise.
* g++.dg/asan/use-after-scope-types-1.C (main): Likewise.
* g++.dg/asan/use-after-scope-types-2.C (main): Likewise.
* g++.dg/asan/use-after-scope-types-3.C (main): Likewise.
* g++.dg/asan/use-after-scope-types-4.C (main): Likewise.
* g++.dg/asan/use-after-scope-types-5.C (main): Likewise.
* gcc.dg/asan/pr78541.c (main): Likewise.
* gcc.dg/asan/use-after-scope-1.c (main): Likewise.
* gcc.dg/asan/use-after-scope-10.c (main): Likewise.
* gcc.dg/asan/use-after-scope-2.c (main): Likewise.
* gcc.dg/asan/use-after-scope-3.c (main): Likewise.
* gcc.dg/asan/use-after-scope-5.c (main): Likewise.
* gcc.dg/asan/use-after-scope-9.c (main): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264951 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-09 Paul Thomas <pault@gcc.gnu.org>
pault [Tue, 9 Oct 2018 07:46:48 +0000 (07:46 +0000)] 
2018-10-09  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/87151
* trans-array.c (gfc_get_array_span): Deal with deferred char
array components having a TYPE_MAX_VALUE of zero.
(gfc_array_init_size): Use the hidden string length component
to build the descriptor dtype.
(gfc_array_allocate): Remove the erroneous replacement of the
charlen backend decl with a temporary.
(gfc_conv_expr_descriptor): Use the ss_info string length in
the case of deferred character components.
(gfc_alloc_allocatable_for_assignment): Actually compare the
string lengths for deferred characters. Make sure that kind > 1
is handled correctly. Set the span field of the descriptor.
* trans-intrinsic.c (gfc_conv_intrinsic_len): Remove the stupid
comment.

PR fortran/80931
* trans-array.c (gfc_array_allocate): Set the span field for
variable length character arrays.

2018-10-09  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/87151
* gfortran.dg/deferred_type_component_3.f90: New test.

PR fortran/80931
* gfortran.dg/deferred_character_28.f90: New test.
* gfortran.dg/deferred_character_29.f90: New test (note that
this test appears in PR83196 comment #4 by mistake).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264949 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Tue, 9 Oct 2018 00:16:37 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264948 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * print-rtl.c (rtx_writer::print_rtx_operand_code_i): Print column
ebotcazou [Mon, 8 Oct 2018 22:50:51 +0000 (22:50 +0000)] 
* print-rtl.c (rtx_writer::print_rtx_operand_code_i): Print column
information.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264944 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * cgraphunit.c (cgraph_node::expand_thunk): Do not force DECL_IGNORED_P
ebotcazou [Mon, 8 Oct 2018 22:49:07 +0000 (22:49 +0000)] 
* cgraphunit.c (cgraph_node::expand_thunk): Do not force DECL_IGNORED_P
on the thunk.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264943 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR tree-optimization/86659
ebotcazou [Mon, 8 Oct 2018 22:47:32 +0000 (22:47 +0000)] 
PR tree-optimization/86659
* gimple-match.h (struct gimple_match_op): Add reverse field.
(gimple_match_op::set_op): New overloaded method.
* gimple-match-head.c (maybe_build_generic_op) <BIT_FIELD_REF>: Set
the REF_REVERSE_STORAGE_ORDER flag on the value.
(gimple_simplify) <GIMPLE_ASSIGN>: For BIT_FIELD_REF, propagate the
REF_REVERSE_STORAGE_ORDER flag and avoid simplifying if it is set.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264942 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoUse FOR_EACH_IMM_USE_FAST in gimple-ssa-backprop.c
rsandifo [Mon, 8 Oct 2018 18:58:59 +0000 (18:58 +0000)] 
Use FOR_EACH_IMM_USE_FAST in gimple-ssa-backprop.c

As pointed out by Richard in PR63155.  It speeds up the testcase a few %.

2018-10-08  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
PR middle-end/63155
* gimple-ssa-backprop.c (backprop::intersect_uses): Use
FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264941 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * config/pdp11/t-pdp11: Remove -mfloat32 switch.
pkoning [Mon, 8 Oct 2018 16:49:48 +0000 (16:49 +0000)] 
* config/pdp11/t-pdp11: Remove -mfloat32 switch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264939 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Correct _mm512_mask3_fmaddsub_round_pd
hjl [Mon, 8 Oct 2018 14:54:53 +0000 (14:54 +0000)] 
i386: Correct _mm512_mask3_fmaddsub_round_pd

Define _mm512_mask3_fmaddsub_round_pd with
__builtin_ia32_vfmaddsubpd512_mask, instead of
__builtin_ia32_vfmaddpd512_mask.

PR target/87517
* config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd):
Defined with __builtin_ia32_vfmaddsubpd512_mask.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264935 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-08 Richard Biener <rguenther@suse.de>
rguenth [Mon, 8 Oct 2018 14:47:40 +0000 (14:47 +0000)] 
2018-10-08  Richard Biener  <rguenther@suse.de>

* config/i386/x86-tune-costs.h (znver1_cost): Make AVX256 vector loads
cost the same as AVX128 ones.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264934 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago libgo: update to Go 1.11.1 release
ian [Mon, 8 Oct 2018 14:21:30 +0000 (14:21 +0000)] 
libgo: update to Go 1.11.1 release

    Reviewed-on: https://go-review.googlesource.com/c/140277

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264932 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago Fix ICE on block move when using LRA.
pkoning [Mon, 8 Oct 2018 14:16:13 +0000 (14:16 +0000)] 
Fix ICE on block move when using LRA.

    * config/pdp11/pdp11-protos.h (output_block_move): Remove.
    (expand_block_move): New function.
    * config/pdp11/pdp11.c (output_block_move): Remove.
    (expand_block_move): New function.
    * config/pdp11/pdp11.h (MOVE_RATIO): New definition.
    * config/pdp11/pdp11.md (movmemhi): Use expand_block_move.
    (*movmemhi1): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264930 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoCome up with gcc/testsuite/g++.target/i386/i386.dg and move there some tests.
marxin [Mon, 8 Oct 2018 14:12:53 +0000 (14:12 +0000)] 
Come up with gcc/testsuite/g++.target/i386/i386.dg and move there some tests.

2018-10-08  Martin Liska  <mliska@suse.cz>

* gcc.target/i386/i386.exp: Move procedures to
target-supports.exp.
* g++.target/i386/i386.exp: New file.
* gcc.target/i386/mv*.C: Move here tests and remove
target filter in these tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264929 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[Fortran] Disable "Assignment to contiguous pointer from non-contiguous target" error
cesar [Mon, 8 Oct 2018 14:04:45 +0000 (14:04 +0000)] 
[Fortran] Disable "Assignment to contiguous pointer from non-contiguous target" error

gcc/fortran/
* expr.c (gfc_check_pointer_assign): Demote "Assignment to
contiguous pointer from non-contiguous target" to a warning.

gcc/testsuite/
* gfortran.dg/contiguous_4.f90: Adjust.
* gfortran.dg/contiguous_4.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264928 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoS/390: Increase latencies for some FP instructions
rdapp [Mon, 8 Oct 2018 13:16:32 +0000 (13:16 +0000)] 
S/390: Increase latencies for some FP instructions

This patch increases the latency of some floating point instructions to better
match the real machine's behavior.

2018-10-08  Robin Dapp  <rdapp@linux.ibm.com>

* config/s390/2827.md: Increase latencies for some FP instructions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264927 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-08 Richard Biener <rguenther@suse.de>
rguenth [Mon, 8 Oct 2018 12:29:51 +0000 (12:29 +0000)] 
2018-10-08  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
Open a dump scope.
* tree-vectorizer.c (dump_stmt_cost): Add cost param and dump it.
* tree-vectorizer.h (dump_stmt_cost): Adjust.
(add_stmt_cost): Dump return value of the hook.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264923 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/87538 Verify fix for std::experimental::not_fn
redi [Mon, 8 Oct 2018 12:17:58 +0000 (12:17 +0000)] 
PR libstdc++/87538 Verify fix for std::experimental::not_fn

PR libstdc++/87538
* testsuite/experimental/functional/87538.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264922 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/87538 fix std::not_fn exception specifications
redi [Mon, 8 Oct 2018 12:07:22 +0000 (12:07 +0000)] 
PR libstdc++/87538 fix std::not_fn exception specifications

PR libstdc++/87538
* include/std/functional (_Not_fn::operator()): Check value of
__is_nothrow_invocable as well.
* testsuite/20_util/function_objects/not_fn/87538.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264921 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-08 Paul Thomas <pault@gcc.gnu.org>
pault [Mon, 8 Oct 2018 11:17:10 +0000 (11:17 +0000)] 
2018-10-08  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/86372
* trans-stmt.c (trans_associate_var): Character associate names
with variable string length do not have to be deferred length
for the string length to be set, if variable.

2018-10-08  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/86372
* gfortran.dg/associate_41.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264919 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRequire string merging support in gnat.dg/string_merge?.adb etc.
ro [Mon, 8 Oct 2018 11:03:22 +0000 (11:03 +0000)] 
Require string merging support in gnat.dg/string_merge?.adb etc.

* gcc.dg/merge-all-constants-2.c: Require string_merging support.
* gnat.dg/string_merge1.adb: Likewise.
* gnat.dg/string_merge2.adb: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264918 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRequire constructor priority support in c-c++-common/Wprio-ctor-dtor.c
ro [Mon, 8 Oct 2018 10:59:36 +0000 (10:59 +0000)] 
Require constructor priority support in c-c++-common/Wprio-ctor-dtor.c

* c-c++-common/Wprio-ctor-dtor.c: Require init_priority support.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264917 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoLimit a MV test just for x86 target.
marxin [Mon, 8 Oct 2018 09:53:44 +0000 (09:53 +0000)] 
Limit a MV test just for x86 target.

2018-10-08  Martin Liska  <mliska@suse.cz>

* g++.dg/ext/pr82625.C: Add dg-compile filter.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264916 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-08 Paul Thomas <pault@gcc.gnu.org>
pault [Mon, 8 Oct 2018 09:11:03 +0000 (09:11 +0000)] 
2018-10-08  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/86372
* trans-stmt.c (trans_associate_var): Character associate names
with variable string length do not have to be deferred length
for the string length to be set, if variable.

2018-10-08  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/86372
* gfortran.dg/associate_41.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264915 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago/cp
paolo [Mon, 8 Oct 2018 09:02:55 +0000 (09:02 +0000)] 
/cp
2018-10-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71128
* pt.c (do_decl_instantiation): Per 12.6.8/5, a concept cannot be
explicitly instantiated.

/testsuite
2018-10-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71128
* g++.dg/concepts/pr71128.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264914 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDon't ICE on vectors of enums (PR 87286)
rsandifo [Mon, 8 Oct 2018 08:16:13 +0000 (08:16 +0000)] 
Don't ICE on vectors of enums (PR 87286)

We've traditionally allowed vectors of enums (not sure if that's
deliberate) but vector_types_compatible_elements_p checked for
INTEGER_TYPE rather than INTEGRAL_TYPE_P.

2018-10-08  Richard Sandiford  <richard.sandiford@arm.com>

gcc/c-family/
PR c/87286
* c-common.c (vector_types_compatible_elements_p): Use
INTEGRAL_TYPE_P instead of checking only for INTEGER_TYPE.

gcc/testsuite/
PR c/87286
* gcc.dg/pr87286.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264913 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-08 Richard Biener <rguenther@suse.de>
rguenth [Mon, 8 Oct 2018 07:16:28 +0000 (07:16 +0000)] 
2018-10-08  Richard Biener  <rguenther@suse.de>

PR tree-optimization/63155
* tree-ssa-propagate.c (add_ssa_edge): Do cheap check first.
(ssa_propagation_engine::ssa_propagate): Remove redundant
bitmap bit clearing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264912 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-08 François Dumont <fdumont@gcc.gnu.org>
fdumont [Mon, 8 Oct 2018 05:49:12 +0000 (05:49 +0000)] 
2018-10-08  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/list (list<>::cbegin()): Use C++11 direct
initialization.
(list<>::cend()): Likewise.
(list<>::emplace<>(const_iterator, _Args&&...)): Likewise.
(list<>::insert(const_iterator, initializer_list<>)): Likewise.
(list<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
(list<>::erase(const_iterator, const_iterator)): Ensure consistent
iterator comparisons.
(list<>::splice(const_iterator, list&&, const_iterator,
const_iterator)): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264911 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Mon, 8 Oct 2018 00:16:56 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264910 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Sun, 7 Oct 2018 00:16:21 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264906 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoUse gfc_charlen_type instead of int for string lenghts
jb [Sat, 6 Oct 2018 18:21:00 +0000 (18:21 +0000)] 
Use gfc_charlen_type instead of int for string lenghts

This patch cleans up a few places where I noticed the code was still
using int instead gfc_charlen_type for string lengths.  Regtested on
x86_64-pc-linux-gnu, committed as obvious.

libgfortran/ChangeLog:

2018-10-06  Janne Blomqvist  <jb@gcc.gnu.org>

* io/unix.c (compare_file_filename): Use gfc_charlen_type instead
of int for string length.
(inquire_sequential): Likewise.
(inquire_direct): Likewise.
(inquire_formatted): Likewise.
(inquire_unformatted): Likewise.
(inquire_access): Likewise.
(inquire_read): Likewise.
(inquire_write): Likewise.
(inquire_readwrite): Likewise.
* io/unix.h (compare_file_filename): Likewise.
(inquire_sequential): Likewise.
(inquire_direct): Likewise.
(inquire_formatted): Likewise.
(inquire_unformatted): Likewise.
(inquire_read): Likewise.
(inquire_write): Likewise.
(inquire_readwrite): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264901 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-06 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sat, 6 Oct 2018 18:20:14 +0000 (18:20 +0000)] 
2018-10-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/86111
* gfortran.h (enum arith): Add ARITH_WRONGCONCAT.
* arith.h (gfc_arith_error): Issue error for ARITH_WRONGCONCAT.
(gfc_arith_concat):  If the types of op1 and op2 are not
character of if their kinds do not match, issue ARITH_WRONGCONCAT.

2018-10-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/86111
* gfortran.dg/array_constructor_type_23.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264900 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-06 Paul Thomas <pault@gcc.gnu.org>
pault [Sat, 6 Oct 2018 15:14:29 +0000 (15:14 +0000)] 
2018-10-06  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83999
* resolve.c (resolve_fl_procedure): Include class functions in
the test that elemental function results be scalar.

2018-10-06  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83999
* gfortran.dg/elemental_function_4.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264899 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago 2018-10-06 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sat, 6 Oct 2018 11:45:05 +0000 (11:45 +0000)] 
 2018-10-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/84640
* simplify.c (gfc_simplify_cshift): Extend size of hs_ex and ss_ex
by one. Set extents one past the array boundaries to zero to avoid
warning with instrumented compiler.
(gfc_simplify_eoshift): Likewise, only for ss_ex.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264898 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agogcc/
bergner [Sat, 6 Oct 2018 02:12:30 +0000 (02:12 +0000)] 
gcc/
PR rtl-optimization/86939
PR rtl-optimization/87479
* ira.h (non_conflicting_reg_copy_p): New prototype.
* ira-lives.c (ignore_reg_for_conflicts): New static variable.
(make_hard_regno_dead): Don't add conflicts for register
ignore_reg_for_conflicts.
(make_object_dead): Likewise.
(non_conflicting_reg_copy_p): New function.
(process_bb_node_lives): Set ignore_reg_for_conflicts for copies.
Remove special conflict handling of REAL_PIC_OFFSET_TABLE_REGNUM.
* lra-lives.c (ignore_reg_for_conflicts): New static variable.
(make_hard_regno_dead): Don't add conflicts for register
ignore_reg_for_conflicts.  Remove special conflict handling of
REAL_PIC_OFFSET_TABLE_REGNUM.  Remove now unused argument
check_pic_pseudo_p and update callers.
(mark_pseudo_dead): Don't add conflicts for register
ignore_reg_for_conflicts.
(process_bb_lives): Set ignore_reg_for_conflicts for copies.

gcc/testsuite/
PR rtl-optimization/86939
PR rtl-optimization/87479
* gcc.target/powerpc/pr86939.c: New test.
* gcc/testsuite/gcc.target/i386/pr49095.c: Fix expected results.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264897 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Sat, 6 Oct 2018 00:17:07 +0000 (00:17 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264896 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRISC-V: Fix -fsignaling-nans for glibc testsuite.
wilson [Fri, 5 Oct 2018 20:18:21 +0000 (20:18 +0000)] 
RISC-V: Fix -fsignaling-nans for glibc testsuite.

gcc/
* config/riscv/riscv.md (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4):
Add define_expand.  Add ! HONOR_SNANS check to current pattern.  Add
new pattern using HONOR_SNANS that emits one extra instruction.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264892 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agors6000: Some mfcr pattern simplification
segher [Fri, 5 Oct 2018 19:40:36 +0000 (19:40 +0000)] 
rs6000: Some mfcr pattern simplification

* config/rs6000/rs6000.md (unnamed mfcr scc_comparison_operator
patterns): Merge SI and DI patterns to a GPR pattern.
(unnamed define_insn and define_split for record form of that): Merge
to a single define_insn_and_split pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264889 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Fri, 5 Oct 2018 19:19:42 +0000 (19:19 +0000)] 
2018-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gnat.dg/string_merge1.adb: Fix test expectations.
        * gnat.dg/string_merge2.adb: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264888 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoSupport string locations for C++ in -Wformat (PR c++/56856)
dmalcolm [Fri, 5 Oct 2018 19:02:17 +0000 (19:02 +0000)] 
Support string locations for C++ in -Wformat (PR c++/56856)

-Wformat in the C++ FE doesn't work as well as it could:
(a) it doesn't report precise locations within the string literal, and
(b) it doesn't underline arguments for those arguments !CAN_HAVE_LOCATION_P,
despite having location wrapper nodes.

For example:

  Wformat-ranges.C:32:10: warning: format '%s' expects argument of type 'char*', but argument 2 has type 'int' [-Wformat=]
  32 |   printf("hello %s", 42);
     |          ^~~~~~~~~~

(a) is due to not wiring up the langhook for extracting substring
    locations.

    This patch uses the one in c-family; it also fixes string literal
    parsing so that it records string concatenations (needed for
    extracting substring locations from concatenated strings).

(b) is due to the call to maybe_constant_value here:
       fargs[j] = maybe_constant_value (argarray[j]);
    within build_over_call.

    The patch fixes this by building a vec of location_t values when
    calling check_function_arguments.
    I attempted to eliminate the maybe_constant_value call here, but
    it's needed by e.g. check_function_sentinel for detecting NULL,
    and that code is in "c-family", so it can't simply call into
    maybe_constant_value (which is in "cp").

With this patch, the output for the above example is improved to:

  Wformat-ranges.C:32:18: warning: format '%s' expects argument of type 'char*', but argument 2 has type 'int' [-Wformat=]
  32 |   printf("hello %s", 42);
     |                 ~^   ~~
     |                  |   |
     |                  |   int
     |                  char*
     |                 %d

gcc/cp/ChangeLog:
PR c++/56856
* call.c (build_over_call): Build a vec of locations of the
arguments before the call to maybe_constant_value, and pass to
check_function_arguments.
* cp-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Define as
c_get_substring_location.
* parser.c (cp_parser_string_literal): Capture string
concatenation locations.

gcc/ChangeLog:
PR c++/56856
* input.c (expand_location_to_spelling_point): Add param "aspect"
and use rather than hardcoding LOCATION_ASPECT_CARET.
(get_substring_ranges_for_loc): Handle the case of a single token
within a macro expansion.
* input.h (expand_location_to_spelling_point): Add "aspect" param,
defaulting to LOCATION_ASPECT_CARET.

gcc/testsuite/ChangeLog:
PR c++/56856
* g++.dg/ext/builtin4.C: Set expected location for warning to the
correct location within the format string.
* g++.dg/plugin/plugin.exp (plugin_test_list): Add the plugin and
files for testing locations within string literal locations from
the C frontend.
* g++.dg/warn/Wformat-method.C: New test.
* g++.dg/warn/Wformat-pr71863.C: New test.
* g++.dg/warn/Wformat-ranges-c++11.C: New test.
* g++.dg/warn/Wformat-ranges.C: New test, based on
gcc.dg/format/diagnostic-ranges.c.
* gcc.dg/plugin/diagnostic-test-string-literals-1.c
(test_multitoken_macro): Generalize expected output to work with
both C and C++.
* gcc.dg/plugin/diagnostic-test-string-literals-2.c
(test_stringified_token_1): Likewise.
(test_stringified_token_3): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264887 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * config/i386/i386.md: Reorder cmpi patterns.
uros [Fri, 5 Oct 2018 18:59:04 +0000 (18:59 +0000)] 
* config/i386/i386.md: Reorder cmpi patterns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264886 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * config/i386/i386.md (*cmpxf_cc_i387): Remove pattern.
uros [Fri, 5 Oct 2018 18:48:56 +0000 (18:48 +0000)] 
* config/i386/i386.md (*cmpxf_cc_i387): Remove pattern.
(*cmp<mode>_cc_i387): Ditto.
(*cmpu<mode>_cc_i387): Ditto.
(*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
* config/i386/i386.c (ix86_expand_fp_compare): Remove
"scratch" argument.
<case IX86_FPCMP_SAHF>: Do not generate pattern with HImode clobber.
Emit x86_sahf_1 pattern.
(ix86_expand_compare): Update call to ix86_expand_fp_compare.
(ix86_expand_carry_flag_compare): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264884 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago Add some pdp11 target hook definitions for C++
pkoning [Fri, 5 Oct 2018 18:08:34 +0000 (18:08 +0000)] 
Add some pdp11 target hook definitions for C++

    * config/pdp11/pdp11.c (TARGET_CXX_GUARD_TYPE): Define.
    (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define.
    (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
    (pdp11_guard_type): New function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264883 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago libgo: use inline assembly in favor of call to _xgetbv()
ian [Fri, 5 Oct 2018 17:51:57 +0000 (17:51 +0000)] 
libgo: use inline assembly in favor of call to _xgetbv()

    Use inline assembly in the implementation of internal_cpu.xgetbv as
    opposed to a call to the intrinsic _xgetbv(), since non-gcc compilers
    (e.g. clang) may or may not have support for it.

    Reviewed-on: https://go-review.googlesource.com/c/140137

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264882 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago Remove -mfloat32, -mfloat64 switches from pdp11 target.
pkoning [Fri, 5 Oct 2018 17:37:56 +0000 (17:37 +0000)] 
Remove -mfloat32, -mfloat64 switches from pdp11 target.

    * config/pdp11/pdp11.h (FLOAT_TYPE_SIZE): Always 32.
    * config/pdp11/pdp11.opt (mfloat32): Remove.
    (mfloat64): Remove.
    * doc/invoke.texi (pdp11 -mfloat32): Remove:
    (pdp11 -mfloat64): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264881 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agotestsuite: multiline.exp: implement optional target/xfail selector
dmalcolm [Fri, 5 Oct 2018 17:35:55 +0000 (17:35 +0000)] 
testsuite: multiline.exp: implement optional target/xfail selector

gcc/testsuite/ChangeLog:
* lib/multiline.exp (proc dg-end-multiline-output): Check argument
count.  If there's a 3rd argument, use dg-process-target on it,
bailing out, or recording expected failures as "maybe_x".
(proc handle-multiline-outputs): Extract "maybe_x", and use it
to convert pass/fail into xpass/xfail.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264880 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * config/i386/i386.md (*cmpxf_i387): Change operand 2 predicate
uros [Fri, 5 Oct 2018 17:07:17 +0000 (17:07 +0000)] 
* config/i386/i386.md (*cmpxf_i387): Change operand 2 predicate
to reg_or_0_operand.  Add "C" constraint.
(*cmpxf_cc_i387): Ditto.
(*cmp<mode>_i387): Change operand 2 predicate
to nonimm_or_0_operand.  Add "C" constraint.
(*cmp<mode>_cc_i387): Ditto.
(*cmp<mode>_0_i387): Remove insn pattern.
(*cmp<mode>_0_cc_i387): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264879 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * config/i386/constraints.md ("C"): Do not depend on TARGET_SSE.
uros [Fri, 5 Oct 2018 16:45:52 +0000 (16:45 +0000)] 
* config/i386/constraints.md ("C"): Do not depend on TARGET_SSE.
* config/i386/predicates.md (nonimm_or_0_operand): Rename
from vector_move_operand.  Update all uses.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264877 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR tree-optimization/87490 - ICE in expand_builtin_strnlen with a constant argument...
msebor [Fri, 5 Oct 2018 16:43:11 +0000 (16:43 +0000)] 
PR tree-optimization/87490 - ICE in expand_builtin_strnlen with a constant argument and non-constant bound

gcc/ChangeLog:

PR tree-optimization/87490
* builtins.c (expand_builtin_strnlen): Handle a null data.decl
consistently.

gcc/testsuite/ChangeLog:

PR tree-optimization/87490
* gcc.dg/pr87490.c: New test.
* gcc.dg/warn-strnlen-no-nul-2.c: Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264876 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-05 François Dumont <fdumont@gcc.gnu.org>
fdumont [Fri, 5 Oct 2018 16:01:39 +0000 (16:01 +0000)] 
2018-10-05  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_tree.h
(_Rb_tree_iterator<>::operator==): Make inline friend.
(_Rb_tree_iterator<>::operator!=): Likewise.
(_Rb_tree_const_iterator<>::operator==): Likewise.
(_Rb_tree_const_iterator<>::operator!=): Likewise.
(operator==(const _Rb_tree_iterator<>&,
const _Rb_tree_const_iterator&)): Remove.
(operator!=(const _Rb_tree_iterator<>&,
const _Rb_tree_const_iterator&)): Remove.
(operator==(const _Rb_tree<>&, const _Rb_tree<>&)): Make inline friend.
(operator<(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
(operator!=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise and
deprecate.
(operator>(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
(operator<=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
(operator>=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
* include/debug/map.h (map<>::erase(const_iterator, const_iterator)):
Compare __victim with _Base::cend().
* include/debug/multimap.h
(multimap<>::erase(const_iterator, const_iterator)): Likewise.
* include/debug/set.h (set<>::erase(const_iterator, const_iterator)):
Compare __victim with _Base::cend().
* include/debug/multiset.h
(multiset<>::erase(const_iterator, const_iterator)): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264875 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-05 Steve Ellcey <sellcey@cavium.com>
sje [Fri, 5 Oct 2018 15:26:40 +0000 (15:26 +0000)] 
2018-10-05  Steve Ellcey  <sellcey@cavium.com>

PR tree-optimization/71625
* /gcc.target/aarch64/vclz.c (test_vclz_s8): Add noinline attribute.
(test_vclz_s16): Ditto.
(test_vclz_s32): Ditto.
(test_vclzq_s8): Ditto.
(test_vclzq_s16): Ditto.
(test_vclzq_s32): Ditto.
(test_vclz_u8): Ditto.
(test_vclz_u16): Ditto.
(test_vclz_u32): Ditto.
(test_vclzq_u8): Ditto.
(test_vclzq_u16): Ditto.
(test_vclzq_u32): Ditto.
* gcc.target/aarch64/vneg_s.c (test_vneg_s8): Ditto.
(test_vneg_s16): Ditto.
(test_vneg_s32): Ditto.
(test_vneg_s64): Ditto.
(test_vnegd_s64): Ditto.
(test_vnegq_s8): Ditto.
(test_vnegq_s16): Ditto.
(test_vnegq_s32): Ditto.
(test_vnegq_s64): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264874 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago runtime: remove checkgoarm function
ian [Fri, 5 Oct 2018 14:21:01 +0000 (14:21 +0000)] 
runtime: remove checkgoarm function

    Nothing in libgo calls checkgoarm, and it relies on a variable, goarm,
    that is not set.

    Reviewed-on: https://go-review.googlesource.com/c/140057

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264872 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR libbacktrace/87529
ian [Fri, 5 Oct 2018 14:09:07 +0000 (14:09 +0000)] 
PR libbacktrace/87529
* backtrace.h: Document that backtrace_create_state should be
called only once.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264871 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-05 Richard Biener <rguenther@suse.de>
rguenth [Fri, 5 Oct 2018 12:54:51 +0000 (12:54 +0000)] 
2018-10-05  Richard Biener  <rguenther@suse.de>

PR tree-optimization/63155
* tree-ssa-ccp.c (ccp_propagate::visit_phi): Avoid excess
vertical space in dumpfiles.
* tree-ssa-propagate.h
(ssa_propagation_engine::process_ssa_edge_worklist): Remove.
* tree-ssa-propagate.c (cfg_blocks_back): New global.
(ssa_edge_worklist_back): Likewise.
(curr_order): Likewise.
(cfg_blocks_get): Remove abstraction.
(cfg_blocks_add): Likewise.
(cfg_blocks_empty_p): Likewise.
(add_ssa_edge): Add to current or next worklist based on
RPO index.
(add_control_edge): Likewise.
(ssa_propagation_engine::process_ssa_edge_worklist): Fold
into ...
(ssa_propagation_engine::ssa_propagate): ... here.  Unify
iteration from CFG and SSA edge worklist so we process
everything in RPO order, prioritizing forward progress
over iteration.
(ssa_prop_init): Allocate new worklists, do not dump
immediate uses.
(ssa_prop_fini): Free new worklists.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264869 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-05 Richard Biener <rguenther@suse.de>
rguenth [Fri, 5 Oct 2018 11:46:12 +0000 (11:46 +0000)] 
2018-10-05  Richard Biener  <rguenther@suse.de>

* tree-core.h (tree_block::abstract_flag): Remove.
(tree_block::block_num): Make full 32bits.
* tree.def (BLOCK): Remove docs about BLOCK_ABSTRACT.
* tree.h (BLOCK_ABSTRACT): Remove.
* dwarf2out.c (gen_lexical_block_die): Remove dead code
resulting from BLOCK_ABSTRACT being always false.
(gen_inlined_subroutine_die): Likewise.
(gen_block_die): Likewise.
* tree.c (block_ultimate_origin): Likewise.
* tree-pretty-print.c (dump_block_node): Remove code dealing
with BLOCK_ABSTRACT.
* tree-ssa-live.c (dump_scope_block): Likewise.
* tree-streamer-in.c (unpack_ts_block_value_fields): Likewise.
* tree-streamer-out.c (pack_ts_block_value_fields): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264868 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-05 Richard Biener <rguenther@suse.de>
rguenth [Fri, 5 Oct 2018 11:40:50 +0000 (11:40 +0000)] 
2018-10-05   Richard Biener  <rguenther@suse.de>

* config/i386/i386.c (ix86_add_stmt_cost): When scalar cost
is asked for initialize mode to the component mode of the
vector type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264866 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Don't pass -msse2avx to assembler for -mavx
hjl [Fri, 5 Oct 2018 11:29:44 +0000 (11:29 +0000)] 
i386: Don't pass -msse2avx to assembler for -mavx

With

gcc -O2 -fPIC -flto -g -c -o a.o a.c
gcc -O2 -fPIC -flto -g -mavx   -c -o b.o b.c
gcc -shared -O2 -fPIC -flto -g -o lib1.so a.o b.o

LTO correctly generates AVX for b.o and SSE for a.o.  But the GCC driver
passes -msse2avx to assembler, which encodes SSE instructions as AVX
instructions.  We shouldn't pass -msse2avx to assembler for -mavx.

PR target/87522
* config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to
assembler for -mavx.
* config/i386/gnu-user64.h (ASM_SPEC): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264864 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agors6000: Various fixes for the new fpscr builtins (PR87509)
segher [Fri, 5 Oct 2018 10:52:33 +0000 (10:52 +0000)] 
rs6000: Various fixes for the new fpscr builtins (PR87509)

With these fixes all testcases test clean for me, both on
powerpc64-linux {-m32,-m64} and on powerpc64le-linux, with all
relevant -mcpu= settings.

PR target/87509
* config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_SET_FPSCR_DRN): Use
RS6000_BTM_DFP.
* config/rs6000/rs6000.md (rs6000_set_fpscr_rn): Require the operand
to be DImode.  When using mffscrn, force the operand to a register.

gcc/testsuite/
PR target/87509
* gcc.target/powerpc/test_fpscr_drn_builtin.c: Use hard_dfp instead
of dfp_hw.  Don't include <altivec.h>.
* gcc.target/powerpc/test_fpscr_drn_builtin_error.c: Ditto.  Require
lp64.
* gcc.target/powerpc/test_fpscr_rn_builtin.c: Don't include <altivec.h>.
* gcc.target/powerpc/test_fpscr_rn_builtin_error.c: Ditto.
* gcc.target/powerpc/test_mffsl.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264863 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-05 Paul Thomas <pault@gcc.gnu.org>
pault [Fri, 5 Oct 2018 07:01:57 +0000 (07:01 +0000)] 
2018-10-05  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/87487
* trans-decl.c (gfc_get_symbol_decl): Make sure that deferred
character length pointer initializer has the right type to fix
problem with deferred_character_24.f90 on big endian.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264862 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Fri, 5 Oct 2018 00:16:34 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264860 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agocontrib: unused_functions.py: Handle archives
aldot [Thu, 4 Oct 2018 22:28:18 +0000 (22:28 +0000)] 
contrib: unused_functions.py: Handle archives

one can now use verbatim the arguments used by the driver invocation to
link e.g. cc1.

2018-10-04  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

* unused_functions.py: Handle archive files.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264856 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * config/i386/i386.md (*fop_<X87MODEF:mode>_2_i387): Macroize insn
uros [Thu, 4 Oct 2018 19:52:44 +0000 (19:52 +0000)] 
* config/i386/i386.md (*fop_<X87MODEF:mode>_2_i387): Macroize insn
from *fop_<MODEF:mode>_2_i387 and *fop_xf_2_i387 using
X87MODEF mode iterator.
(*fop_<X87MODEF:mode>_3_i387): Macroize insn from
*fop_<MODEF:mode>_3_i387 and *fop_xf_3_i387 using
X87MODEF mode iterator.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264855 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * doc/invoke.texi (-Wno-prio-ctor-dtor): Document new warning
law [Thu, 4 Oct 2018 18:23:25 +0000 (18:23 +0000)] 
* doc/invoke.texi (-Wno-prio-ctor-dtor): Document new warning
-Wno-prio-ctor-dtor.

* c-attribs.c (get_priority): Add a warning flag warn_prio_ctor_dtor
to generate constructor destructor priority warning.
* c.opt (-Wprio-ctor-dtor): New option.

* c-c++-common/Wprio-ctor-dtor.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264853 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoReport vectorization problems via a new opt_problem class
dmalcolm [Thu, 4 Oct 2018 17:50:52 +0000 (17:50 +0000)] 
Report vectorization problems via a new opt_problem class

This is v3 of the patch; previous versions were:
  v2: https://gcc.gnu.org/ml/gcc-patches/2018-07/msg00446.html
  v1: https://gcc.gnu.org/ml/gcc-patches/2018-06/msg01462.html

This patch introduces a class opt_problem, along with wrapper
classes for bool (opt_result) and for pointers (e.g. opt_loop_vec_info
for loop_vec_info).

opt_problem instances are created when an optimization problem
is encountered, but only if dump_enabled_p.  They are manually
propagated up the callstack, and are manually reported at the
"top level" of an optimization if dumping is enabled, to give the user
a concise summary of the problem *after* the failure is reported.
In particular, the location of the problematic statement is
captured and emitted, rather than just the loop's location.

For example:

no-vfa-vect-102.c:24:3: missed: couldn't vectorize loop
no-vfa-vect-102.c:27:7: missed: statement clobbers memory: __asm__ __volatile__("" :  :  : "memory");

Changed in v3:
* This version bootstraps and passes regression testing (on
  x86_64-pc-linux-gnu).
* added selftests, to exercise the opt_problem machinery
* removed the "bool to opt_result" ctor, so that attempts to
  use e.g. return a bool from an opt_result-returning function
  will fail at compile time
* use formatted printing within opt_problem ctor to replace the
  various dump_printf_loc calls
* dropped i18n
* changed the sense of vect_analyze_data_ref_dependence's return
  value (see the ChangeLog)
* add MSG_PRIORITY_REEMITTED, so that -fopt-info can show the
  messages, without them messing up the counts in scan-tree-dump-times
  in DejaGnu tests

gcc/ChangeLog:
* Makefile.in (OBJS): Add opt-problem.o.
* dump-context.h: Include "selftest.h.
(selftest::temp_dump_context): New forward decl.
(class dump_context): Make friend of class
selftest::temp_dump_context.
(dump_context::dump_loc_immediate): New decl.
(class dump_pretty_printer): Move here from dumpfile.c.
(class temp_dump_context): Move to namespace selftest.
(temp_dump_context::temp_dump_context): Add param
"forcibly_enable_dumping".
(selftest::verify_dumped_text):
(ASSERT_DUMPED_TEXT_EQ): Move here from dumpfile.c.
(selftest::verify_item):
(ASSERT_IS_TEXT): Move here from dumpfile.c.
(ASSERT_IS_TREE): Likewise.
(ASSERT_IS_GIMPLE): Likewise.
* dumpfile.c (dump_context::dump_loc): Move immediate dumping
to...
(dump_context::dump_loc_immediate): ...this new function.
(class dump_pretty_printer): Move to dump-context.h.
(dump_switch_p_1): Don't enable MSG_PRIORITY_REEMITTED.
(opt_info_switch_p_1): Enable MSG_PRIORITY_REEMITTED.
(temp_dump_context::temp_dump_context): Move to "selftest"
namespace.  Add param "forcibly_enable_dumping", and use it to
conditionalize the use of m_pp;
(selftest::verify_dumped_text): Make non-static.
(ASSERT_DUMPED_TEXT_EQ): Move to dump-context.h.
(selftest::verify_item): Make non-static.
(ASSERT_IS_TEXT): Move to dump-context.h.
(ASSERT_IS_TREE): Likewise.
(ASSERT_IS_GIMPLE): Likewise.
(selftest::test_capture_of_dump_calls): Pass "true" for new
param of temp_dump_context.
* dumpfile.h (enum dump_flag): Add MSG_PRIORITY_REEMITTED, adding
it to MSG_ALL_PRIORITIES.  Update values of TDF_COMPARE_DEBUG and
TDF_COMPARE_DEBUG.
* opt-problem.cc: New file.
* opt-problem.h: New file.
* optinfo-emit-json.cc
(selftest::test_building_json_from_dump_calls): Pass "true" for
new param of temp_dump_context.
* optinfo.cc (optinfo_kind_to_dump_flag): New function.
(optinfo::emit_for_opt_problem): New function.
(optinfo::emit): Clarity which emit_item is used.
* optinfo.h (optinfo::get_dump_location): New accessor.
(optinfo::emit_for_opt_problem): New decl.
(optinfo::emit): Make const.
* selftest-run-tests.c (selftest::run_tests): Call
selftest::opt_problem_cc_tests.
* selftest.h (selftest::opt_problem_cc_tests): New decl.
* tree-data-ref.c (dr_analyze_innermost): Convert return type from
bool to opt_result, converting fprintf messages to
opt_result::failure_at calls.  Add "stmt" param for use by the
failure_at calls.
(create_data_ref): Pass "stmt" to the dr_analyze_innermost call.
(runtime_alias_check_p): Convert return type from bool to
opt_result, converting dump_printf calls to
opt_result::failure_at, using the statement DDR_A for their
location.
(find_data_references_in_stmt): Convert return type from bool to
opt_result, converting "return false" to opt_result::failure_at
with a new message.
* tree-data-ref.h: Include "opt-problem.h".
(dr_analyze_innermost): Convert return type from bool to opt_result,
and add a const gimple * param.
(find_data_references_in_stmt): Convert return type from bool to
opt_result.
(runtime_alias_check_p): Likewise.
* tree-predcom.c (find_looparound_phi): Pass "init_stmt" to
dr_analyze_innermost.
* tree-vect-data-refs.c (vect_mark_for_runtime_alias_test):
Convert return type from bool to opt_result, adding a message for
the PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS zero case.
(vect_analyze_data_ref_dependence): Convert return type from bool
to opt_result.  Change sense of return type from "false"
effectively meaning "no problems" to "false" meaning a problem,
so that "return false" becomes "return opt_result::success".
Convert "return true" calls to opt_result::failure_at, using
the location of statement A rather than vect_location.
(vect_analyze_data_ref_dependences): Convert return type from bool
to opt_result.
(verify_data_ref_alignment): Likewise, converting dump_printf_loc
calls to opt_result::failure_at, using the stmt location rather
than vect_location.
(vect_verify_datarefs_alignment): Convert return type from bool
to opt_result.
(vect_enhance_data_refs_alignment): Likewise.  Split local "stat"
into multiple more-tightly-scoped copies.
(vect_analyze_data_refs_alignment): Convert return type from bool
to opt_result.
(vect_analyze_data_ref_accesses): Likewise, converting a
"return false" to a "return opt_result::failure_at", adding a
new message.
(vect_prune_runtime_alias_test_list): Convert return type from
bool to opt_result, converting dump_printf_loc to
opt_result::failure_at.  Add a %G to show the pertinent statement,
and use the stmt's location rather than vect_location.
(vect_find_stmt_data_reference): Convert return type from
bool to opt_result, converting dump_printf_loc to
opt_result::failure_at, using stmt's location.
(vect_analyze_data_refs):  Convert return type from bool to
opt_result.  Convert "return false" to "return
opt_result::failure_at", adding messages as needed.
* tree-vect-loop.c (vect_determine_vf_for_stmt_1): Convert return
type from bool to opt_result.
(vect_determine_vf_for_stmt): Likewise.
(vect_determine_vectorization_factor): Likewise, converting
dump_printf_loc to opt_result::failure_at, using location of phi
rather than vect_location.
(vect_analyze_loop_form_1): Convert return type from bool to
opt_result, converting dump_printf_loc calls, retaining the use of
vect_location.
(vect_analyze_loop_form): Convert return type from loop_vec_info
to opt_loop_vec_info.
(vect_analyze_loop_operations): Convert return type from bool to
opt_result, converting dump_printf_loc calls, using the location
of phi/stmt rather than vect_location where available.  Convert
various "return false" to "return opt_result::failure_at" with
"unsupported phi" messages.
(vect_get_datarefs_in_loop): Convert return type from bool to
opt_result.  Add a message for the
PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS failure.
(vect_analyze_loop_2): Convert return type from bool to
opt_result.  Ensure "ok" is set to a opt_result::failure_at before
each "goto again;", adding new messages where needed.
Add "unsupported grouped {store|load}" messages.
(vect_analyze_loop): Convert return type from loop_vec_info to
opt_loop_vec_info.
* tree-vect-slp.c (vect_analyze_slp): Convert return type from
bool to opt_result.
* tree-vect-stmts.c (process_use): Likewise, converting
dump_printf_loc call and using stmt location, rather than
vect_location.
(vect_mark_stmts_to_be_vectorized): Likeise.
(vect_analyze_stmt): Likewise, adding a %G.
(vect_get_vector_types_for_stmt): Convert return type from bool to
opt_result, converting dump_printf_loc calls and using stmt
location, rather than vect_location.
(vect_get_mask_type_for_stmt): Convert return type from tree to
opt_tree, converting dump_printf_loc calls and using stmt location.
* tree-vectorizer.c: Include "opt-problem.h.
(try_vectorize_loop_1): Flag "Analyzing loop at" dump message as
MSG_PRIORITY_INTERNALS.  Convert local "loop_vinfo" from
loop_vec_info to opt_loop_vec_info.  If if fails, and dumping is
enabled, use it to report at the top level "couldn't vectorize
loop" followed by the problem.
* tree-vectorizer.h (opt_loop_vec_info): New typedef.
(vect_mark_stmts_to_be_vectorized): Convert return type from bool
to opt_result.
(vect_analyze_stmt): Likewise.
(vect_get_vector_types_for_stmt): Likewise.
(tree vect_get_mask_type_for_stmt): Likewise.
(vect_analyze_data_ref_dependences): Likewise.
(vect_enhance_data_refs_alignment): Likewise.
(vect_analyze_data_refs_alignment): Likewise.
(vect_verify_datarefs_alignment): Likewise.
(vect_analyze_data_ref_accesses): Likewise.
(vect_prune_runtime_alias_test_list): Likewise.
(vect_find_stmt_data_reference): Likewise.
(vect_analyze_data_refs): Likewise.
(vect_analyze_loop): Convert return type from loop_vec_info to
opt_loop_vec_info.
(vect_analyze_loop_form): Likewise.
(vect_analyze_slp): Convert return type from bool to opt_result.

gcc/testsuite/ChangeLog:
* gcc.dg/vect/nodump-vect-opt-info-2.c: New test.
* gcc.dg/vect/vect-alias-check-4.c: Add "-fopt-info-vec-all" to
dg-additional-options.  Add dg-message and dg-missed directives
to verify that -fopt-info messages are written at the correct
locations.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264852 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoAdd -fopt-info-internals
dmalcolm [Thu, 4 Oct 2018 17:41:08 +0000 (17:41 +0000)] 
Add -fopt-info-internals

This patch introduces a verbosity level to dump messages:
"user-facing" vs "internals".

By default, messages at the top-level dump scope are "user-facing",
whereas those that are in nested scopes are implicitly "internals",
and are filtered out by -fopt-info unless a new "-internals" sub-option
of "-fopt-info" is supplied (intended purely for use by GCC developers).
Dumpfiles are unaffected by the change.

Given that the vectorizer is the only subsystem using AUTO_DUMP_SCOPE
(via DUMP_VECT_SCOPE), this only affects the vectorizer.

Filtering out these implementation-detail messages goes a long way
towards making -fopt-info-vec-all more accessible to advanced end-users;
the follow-up patch restores the most pertinent missing details.

gcc/ChangeLog:
* doc/invoke.texi (-fopt-info): Document new "internals"
sub-option.
* dump-context.h (dump_context::apply_dump_filter_p): New decl.
* dumpfile.c (dump_options): Update for renaming of MSG_ALL to
MSG_ALL_KINDS.
(optinfo_verbosity_options): Add "internals".
(kind_as_string): Update for renaming of MSG_ALL to MSG_ALL_KINDS.
(dump_context::apply_dump_filter_p): New member function.
(dump_context::dump_loc): Use apply_dump_filter_p rather than
explicitly masking the dump_kind.
(dump_context::begin_scope): Increment the scope depth first.  Use
apply_dump_filter_p rather than explicitly masking the dump_kind.
(dump_context::emit_item): Use apply_dump_filter_p rather than
explicitly masking the dump_kind.
(dump_dec): Likewise.
(dump_hex): Likewise.
(dump_switch_p_1): Default to MSG_ALL_PRIORITIES.
(opt_info_switch_p_1): Default to MSG_PRIORITY_USER_FACING.
(opt_info_switch_p): Update handling of default
MSG_OPTIMIZED_LOCATIONS to cope with default of
MSG_PRIORITY_USER_FACING.
(dump_basic_block): Use apply_dump_filter_p rather than explicitly
masking the dump_kind.
(selftest::test_capture_of_dump_calls): Update test_dump_context
instances to use MSG_ALL_KINDS | MSG_PRIORITY_USER_FACING rather
than MSG_ALL.  Generalize scope test to be run at all four
combinations of with/without MSG_PRIORITY_USER_FACING and
MSG_PRIORITY_INTERNALS, adding examples of explicit priority
for each of the two values.
* dumpfile.h (enum dump_flag): Add comment about the MSG_* flags.
Rename MSG_ALL to MSG_ALL_KINDS.  Add MSG_PRIORITY_USER_FACING,
MSG_PRIORITY_INTERNALS, and MSG_ALL_PRIORITIES, updating the
values for TDF_COMPARE_DEBUG and TDF_ALL_VALUES.
(AUTO_DUMP_SCOPE): Add a note to the comment about the interaction
with MSG_PRIORITY_*.
* tree-vect-loop-manip.c (vect_loop_versioning): Mark versioning
dump messages as MSG_PRIORITY_USER_FACING.
* tree-vectorizer.h (DUMP_VECT_SCOPE): Add a note to the comment
about the interaction with MSG_PRIORITY_*.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/dump-1.c: Update expected output for test_scopes
due to "-internals" not being selected.
* gcc.dg/plugin/dump-2.c: New test, based on dump-1.c, with
"-internals" added to re-enable the output from test_scopes.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add dump-2.c.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264851 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Thu, 4 Oct 2018 17:34:56 +0000 (17:34 +0000)] 
2018-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * varasm.c (output_constant): Add new parameter merge_strings.
        Make strings properly zero terminated in merge string sections.
        (mergeable_string_section): Don't fail if the last char is non-zero.
        (assemble_variable_contents): Handle merge string sections.
        (assemble_variable): Likewise.
        (assemble_constant_contents): Likewise.
        (output_constant_def_contents): Likewise.
        (output_constructor_array_range,
        output_constructor_regular_field): Adjust call to output_constant.
        (output_object_block): Adjust call to assemble_constant_contents
        and assemble_variable_contents.

testsuie:
2018-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gnat.dg/string_merge1.adb: New test.
        * gnat.dg/string_merge2.adb: New test.
        * gcc.dg/merge-all-constants-1.c: Adjust test.
        * gcc.dg/merge-all-constants-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264850 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRevert "Never reload fixed form constraints memory operand"
thopre01 [Thu, 4 Oct 2018 16:48:50 +0000 (16:48 +0000)] 
Revert "Never reload fixed form constraints memory operand"

This reverts commit r264834.

2018-10-04  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

    Revert
    2018-10-04  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

    gcc/
    * lra-constraints.c (process_address_1): Bail out for all
    satisfied fixed constraints.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264849 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoList myself as "libgomp (OpenACC)" and "OpenACC" maintainer
tschwinge [Thu, 4 Oct 2018 15:50:34 +0000 (15:50 +0000)] 
List myself as "libgomp (OpenACC)" and "OpenACC" maintainer

* MAINTAINERS: List myself as "libgomp (OpenACC)" and "OpenACC"
maintainer.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264848 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[PATCH, rs6000] Fix expected error output for test case.
seurer [Thu, 4 Oct 2018 15:05:32 +0000 (15:05 +0000)] 
[PATCH, rs6000] Fix expected error output for test case.

r264355 removed some spelling suggestions including for "bool" as used
in this test case.

Bootstrapped and tested on powerpc64le-unknown-linux-gnu and
powerpc64be-unknown-linux-gnu with no regressions.  Is this ok for trunk?

2018-10-04  Bill Seurer  <seurer@linux.vnet.ibm.com>

PR target/87486
* gcc.target/powerpc/undef-bool-2.c: Fix expected error output.

Index: gcc/testsuite/gcc.target/powerpc/undef-bool-2.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/undef-bool-2.c (revision 264812)
+++ gcc/testsuite/gcc.target/powerpc/undef-bool-2.c (working copy)
@@ -9,7 +9,7 @@

 #include <xmmintrin.h>

-bool foo (int x) /* { dg-error "unknown type name 'bool'; did you mean '_Bool'?" } */
+bool foo (int x) /* { dg-error "unknown type name 'bool'" } */
 {
   return x == 2;
 }

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264847 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoError about alias attribute with body definition (PR c/87483).
marxin [Thu, 4 Oct 2018 14:44:53 +0000 (14:44 +0000)] 
Error about alias attribute with body definition (PR c/87483).

2018-10-04  Martin Liska  <mliska@suse.cz>

PR c/87483
* cgraphunit.c (process_function_and_variable_attributes):
Warn about a function with alias attribute and a body.
2018-10-04  Martin Liska  <mliska@suse.cz>

PR c/87483
* gcc.dg/pr87483.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264846 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRedirect call within specific target attribute among MV clones (PR ipa/82625).
marxin [Thu, 4 Oct 2018 14:36:55 +0000 (14:36 +0000)] 
Redirect call within specific target attribute among MV clones (PR ipa/82625).

2018-10-04  Martin Liska  <mliska@suse.cz>

PR ipa/82625
* multiple_target.c (redirect_to_specific_clone): New function.
(ipa_target_clone): Use it.
* tree-inline.c: Fix comment.
2018-10-04  Martin Liska  <mliska@suse.cz>

PR ipa/82625
* g++.dg/ext/pr82625.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264845 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix -fopt-info for plugin passes
dmalcolm [Thu, 4 Oct 2018 14:33:47 +0000 (14:33 +0000)] 
Fix -fopt-info for plugin passes

Attempts to dump via -fopt-info from a plugin pass fail, due
to the dfi->alt_state for such passes never being set.

This is because the -fopt-info options were being set up per-pass
during option-parsing (via gcc::dump_manager::opt_info_enable_passes),
but this data was not retained or used it for passes created later
(for plugins and target-specific passes).

This patch fixes the issue by storing the -fopt-info options into
gcc::dump_manager, refactoring the dfi-setup code out of
opt_info_enable_passes, and reusing it for such passes, fixing the
issue.  The patch adds a demo plugin to test that dumping from a
plugin works.

gcc/ChangeLog:
* dumpfile.c (gcc::dump_manager::dump_manager): Initialize new
fields.
(gcc::dump_manager::~dump_manager): Free m_optinfo_filename.
(gcc::dump_manager::register_pass): New member function, adapted
from loop body in gcc::pass_manager::register_pass, adding a
call to update_dfi_for_opt_info.
(gcc::dump_manager::opt_info_enable_passes): Store the
-fopt-info options into the new fields.  Move the loop
bodies into...
(gcc::dump_manager::update_dfi_for_opt_info): ...this new member
function.
* dumpfile.h (struct opt_pass): New forward decl.
(gcc::dump_manager::register_pass): New decl.
(gcc::dump_manager::update_dfi_for_opt_info): New decl.
(class gcc::dump_manager): Add fields "m_optgroup_flags",
"m_optinfo_flags", and "m_optinfo_filename".
* passes.c (gcc::pass_manager::register_pass): Move all of the
dump-handling code to gcc::dump_manager::register_pass.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/dump-1.c: New test.
* gcc.dg/plugin/dump_plugin.c: New test plugin.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264844 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoAdd missing ChangeLog entry for previous commit
bergner [Thu, 4 Oct 2018 13:38:51 +0000 (13:38 +0000)] 
Add missing ChangeLog entry for previous commit

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264843 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agogcc/
bergner [Thu, 4 Oct 2018 13:36:20 +0000 (13:36 +0000)] 
gcc/
PR rtl-optimization/87466
* target.def (setjmp_preserves_nonvolatile_regs_p): New target hook.
* doc/tm.texi.in (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): New hook.
* doc/tm.texi: Regenerate.
* ira-lives.c (process_bb_node_lives): Use the new target hook.
* lra-lives.c (process_bb_lives): Likewise.
* config/rs6000/rs6000.c (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P):
Define.

gcc/testsuite/
PR rtl-optimization/87466
* gcc.target/powerpc/pr87466.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264842 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRemove superfluous assignment in add_params.
tnfchris [Thu, 4 Oct 2018 13:06:59 +0000 (13:06 +0000)] 
Remove superfluous assignment in add_params.

This fixes the superfluous assignment that Coverity reported in add_params,
and changes the starting index from 0 to num_params - n in order for it to
work properly if add_params is called multiple times.

validate_params calls error so it doesn't matter that we don't check the
results here.  The results is checked in individual parameter updates after
front-end initialization.

2018-10-04  Tamar Christina  <tamar.christina@arm.com>

* params.c (add_params): Fix initialization.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264841 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix divergence in indirect profiling (PR gcov-profile/84107).
marxin [Thu, 4 Oct 2018 12:41:14 +0000 (12:41 +0000)] 
Fix divergence in indirect profiling (PR gcov-profile/84107).

2018-10-04  Martin Liska  <mliska@suse.cz>

PR gcov-profile/84107
* tree-profile.c (init_ic_make_global_vars):
Remove ic_void_ptr_var and ic_gcov_type_ptr_var.
Come up with new ic_tuple* variables.  Emit
__gcov_indirect_call{,_topn} variables.
(gimple_gen_ic_profiler): Access the variable
and emit gimple.
(gimple_gen_ic_func_profiler): Access
__gcov_indirect_call.callee field.
(gimple_init_gcov_profiler): Use ptr_type_node.
* value-prof.c (gimple_ic): Use ptr_type_node.
2018-10-04  Martin Liska  <mliska@suse.cz>

PR gcov-profile/84107
* libgcov-profiler.c (__gcov_indirect_call):
Change type to indirect_call_tuple.
(struct indirect_call_tuple): New struct.
(__gcov_indirect_call_topn_profiler): Change type.
(__gcov_indirect_call_profiler_v2): Use the new
variables.
* libgcov.h (struct indirect_call_tuple): New struct
definition.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264840 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[C++ PATCH] String concatenation is a thing
nathan [Thu, 4 Oct 2018 11:36:15 +0000 (11:36 +0000)] 
[C++ PATCH] String concatenation is a thing

https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00248.html
* lang-specs.h: Use string contatenation, not line splicing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264839 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
prathamesh3492 [Thu, 4 Oct 2018 11:06:24 +0000 (11:06 +0000)] 
2018-10-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

PR tree-optimization/85787
* ipa-pure-const.c (malloc_candidate_p_1): Move most of malloc_candidate_p
into this function and add support for detecting multiple phis.
(DUMP_AND_RETURN): Move from malloc_candidate_p into top-level macro.

testsuite/
* gcc.dg/ipa/propmalloc-4.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264838 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agocontrib: Add unused_functions.py script
aldot [Thu, 4 Oct 2018 08:59:12 +0000 (08:59 +0000)] 
contrib: Add unused_functions.py script

For a set of object-files, determine symbols that are
 - public but should be static

2018-10-04  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

* unused_functions.py: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264837 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-04 Richard Biener <rguenther@suse.de>
rguenth [Thu, 4 Oct 2018 08:59:12 +0000 (08:59 +0000)] 
2018-10-04  Richard Biener  <rguenther@suse.de>

* gcc.dg/tree-ssa/cunroll-15.c: Add XFAILs for arm and powerpc.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264836 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoCall ultimate_alias_target for node being inlined (PR ipa/87491).
marxin [Thu, 4 Oct 2018 08:06:52 +0000 (08:06 +0000)] 
Call ultimate_alias_target for node being inlined (PR ipa/87491).

2018-10-04  Martin Liska  <mliska@suse.cz>

PR ipa/87491
* ipa-inline.c (inline_to_all_callers_1):
Call ultimate_alias_target for node being inlined.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264835 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoNever reload fixed form constraints memory operand
thopre01 [Thu, 4 Oct 2018 07:55:02 +0000 (07:55 +0000)] 
Never reload fixed form constraints memory operand

The unconditional reload of address operand for recognized instruction
in process_address_1 prevent the patch fixing PR85434 from working as
expected. The code in that patch attempts to control which registers are
used to make PIC access but the reload performed by process_address_1
will use generic PIC access. This patch removes the test for the
instruction to be unrecognized to do the reload, thus always avoiding to
reload address operand for fixed constraints (such as "X" used in the
patch).

2018-10-04  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

    gcc/
    * lra-constraints.c (process_address_1): Bail out for all
    satisfied fixed constraints.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264834 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * gimple-ssa-sprintf.c (format_string): Do not hardcode size of
law [Thu, 4 Oct 2018 02:55:10 +0000 (02:55 +0000)] 
    * gimple-ssa-sprintf.c (format_string): Do not hardcode size of
        target's wchar_t.
        * tree.c (get_typenode_from_name): Moved from fortran/trans-types.c.
        * tree.h (get_typenode_from_name): Prototype.

        * trans-types.c (get_typenode_from_name): Moved into gcc/tree.c.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264833 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Thu, 4 Oct 2018 00:16:46 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264831 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
uros [Wed, 3 Oct 2018 21:51:50 +0000 (21:51 +0000)] 
* config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
Change operand 2 predicate to nonimmediate_operand.
(*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264827 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * go.test/go-test.exp (go-set-goarch): Use amd64p32 on x32.
ian [Wed, 3 Oct 2018 21:03:50 +0000 (21:03 +0000)] 
* go.test/go-test.exp (go-set-goarch): Use amd64p32 on x32.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264825 138bc75d-0d04-0410-961f-82ee72b054a4