]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
7 years agoPR c/54391 - transparent_union typedef'ing inconsistent
msebor [Wed, 10 Oct 2018 17:09:26 +0000 (17:09 +0000)] 
PR c/54391 - transparent_union typedef'ing inconsistent

gcc/testsuite/ChangeLog:
* gcc.dg/transparent-union-6.c: New.

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

7 years agoPR libstdc++/87544 limit max_size() to PTRDIFF_MAX / sizeof(T)
redi [Wed, 10 Oct 2018 15:39:33 +0000 (15:39 +0000)] 
PR libstdc++/87544 limit max_size() to PTRDIFF_MAX / sizeof(T)

The C++17 standard requires the default implementation for
allocator_traits::max_size to return SIZE_MAX / sizeof(value_type).
That causes GCC to warn because the value could be larger than can
sensibly be passed to malloc. This patch changes the new_allocator and
malloc_allocator max_size() members to use PTRDIFF_MAX instead of
SIZE_MAX (and because they define it, the allocator_traits default isn't
used). This also changes vector::max_size to impose a sensible limit
using PTRDIFF_MAX for cases where the value from the allocator or
allocator_traits is not sensible.

PR libstdc++/87544
* include/bits/stl_vector.h (vector::_S_max_size): Limit size to
PTRDIFF_MAX / sizeof(value_type).
* include/ext/malloc_allocator.h (malloc_allocator::max_size):
Likewise.
* include/ext/new_allocator.h (new_allocator::max_size): Likewise.
* testsuite/23_containers/vector/allocator/minimal.cc: Adjust
expected value for max_size().
* testsuite/23_containers/vector/capacity/87544.cc: New test.

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

7 years agogcc/testsuite/ChangeLog:
msebor [Wed, 10 Oct 2018 15:33:43 +0000 (15:33 +0000)] 
gcc/testsuite/ChangeLog:

* gcc.c-torture/execute/memchr-1.c: Avoid assuming 4-byte wchar_t.
Add a test for 2-byte wchar_t.
* gcc.dg/builtin-memchr.c: New test.

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

7 years ago PR target/87573
uros [Wed, 10 Oct 2018 15:02:47 +0000 (15:02 +0000)] 
PR target/87573
* config/i386/mmx.md (const_vector 0 -> mem splitter): New splitter.

testsuite/ChangeLog:

PR target/87573
* gcc.target/i386/pr87573.c: New test.

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

7 years ago PR target/87550
jakub [Wed, 10 Oct 2018 09:28:26 +0000 (09:28 +0000)] 
PR target/87550
* config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set
to special_args set.

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

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

7 years ago PR c/87286
jakub [Wed, 10 Oct 2018 09:03:40 +0000 (09:03 +0000)] 
PR c/87286
* gcc.dg/pr87286.c: Add -Wno-psabi to dg-options.

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

7 years ago2018-10-10 Richard Biener <rguenther@suse.de>
rguenth [Wed, 10 Oct 2018 07:05:47 +0000 (07:05 +0000)] 
2018-10-10  Richard Biener  <rguenther@suse.de>

* config/i386/sse.md (reduc_plus_scal_v8df, reduc_plus_scal_v4df,
reduc_plus_scal_v2df, reduc_plus_scal_v16sf, reduc_plus_scal_v8sf,
reduc_plus_scal_v4sf): Merge into pattern reducing to half width
and recursing and pattern terminating the recursion on SSE
vector width using ix86_expand_reduc.
(reduc_sminmax_scal_<mode>): Split into part reducing to half
width and recursing and SSE2 vector variant doing the final
reduction with ix86_expand_reduc.
(reduc_uminmax_scal_<mode>): Likewise for the AVX512 variants
with terminating the recursion at AVX level, splitting that
to SSE there.

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

7 years agoDaily bump.
gccadmin [Wed, 10 Oct 2018 00:16:55 +0000 (00:16 +0000)] 
Daily bump.

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

7 years agoCleanup of libcpp diagnostic callbacks
dmalcolm [Tue, 9 Oct 2018 23:37:19 +0000 (23:37 +0000)] 
Cleanup of libcpp diagnostic callbacks

This patch renames the "error" callback within libcpp
to "diagnostic", and uses the pair of enums in cpplib.h, rather
than passing two different kinds of "int" around.

gcc/c-family/ChangeLog:
* c-common.c (c_option_controlling_cpp_error): Rename to...
(c_option_controlling_cpp_diagnostic): ...this, and convert
"reason" from int to enum.
(c_cpp_error): Rename to...
(c_cpp_diagnostic): ...this, converting level and reason to enums.
* c-common.h (c_cpp_error): Rename to...
(c_cpp_diagnostic): ...this, converting level and reason to enums.
* c-opts.c (c_common_init_options): Update for renaming.

gcc/fortran/ChangeLog:
* cpp.c (gfc_cpp_init_0): Update for renamings.
(cb_cpp_error): Rename to...
(cb_cpp_diagnostic): ...this, converting level and reason to
enums.

gcc/ChangeLog:
* genmatch.c (error_cb): Rename to...
(diagnostic_cb): ...this, converting int params to enums.
(fatal_at): Update for renaming.
(warning_at): Likewise.
(main): Likewise.
* input.c (selftest::ebcdic_execution_charset::apply):
Update for renaming of...
(selftest::ebcdic_execution_charset::on_error): ...this, renaming
to...
(selftest::ebcdic_execution_charset::on_diagnostic): ...this,
converting level and reason to enums.
(class selftest::lexer_error_sink): Rename to...
(class selftest::lexer_test_options): ...this, renaming field
"m_errors" to "m_diagnostics".
(selftest::lexer_test_options::apply): Update for renaming of...
(selftest::lexer_test_options::on_error): ...this, renaming to...
(selftest::lexer_test_options::on_diagnostic): ...this
converting level and reason to enums.
(selftest::test_lexer_string_locations_raw_string_unterminated):
Update for renamings.
* opth-gen.awk (struct cpp_reason_option_codes_t): Use enum for
"reason".

libcpp/ChangeLog:
* charset.c (noop_error_cb): Rename to...
(noop_diagnostic_cb): ...this, converting params to enums.
(cpp_interpret_string_ranges): Update for renaming and enums.
* directives.c (check_eol_1): Convert reason to enum.
(do_diagnostic): Convert code and reason to enum.
(do_error): Use CPP_W_NONE rather than 0.
(do_pragma_dependency): Likewise.
* errors.c (cpp_diagnostic_at): Convert level and reason to enums.
Update for renaming.
(cpp_diagnostic): Convert level and reason to enums.
(cpp_error): Convert level to enum.
(cpp_warning): Convert reason to enums.
(cpp_pedwarning): Likewise.
(cpp_warning_syshdr): Likewise.
(cpp_diagnostic_with_line): Convert level and reason to enums.
Update for renaming.
(cpp_error_with_line): Convert level to enum.
(cpp_warning_with_line): Convert reason to enums.
(cpp_pedwarning_with_line): Likewise.
(cpp_warning_with_line_syshdr): Likewise.
(cpp_error_at): Convert level to enum.
(cpp_errno): Likewise.
(cpp_errno_filename): Likewise.
* include/cpplib.h (enum cpp_diagnostic_level): Name this enum,
and move to before struct cpp_callbacks.
(enum cpp_warning_reason): Likewise.
(cpp_callbacks::diagnostic): Convert params from int to enums.
(cpp_error): Convert int param to enum cpp_diagnostic_level.
(cpp_warning): Convert int param to enum cpp_warning_reason.
(cpp_pedwarning): Likewise.
(cpp_warning_syshdr): Likewise.
(cpp_errno): Convert int param to enum cpp_diagnostic_level.
(cpp_errno_filename): Likewise.
(cpp_error_with_line): Likewise.
(cpp_warning_with_line): Convert int param to enum
cpp_warning_reason.
(cpp_pedwarning_with_line): Likewise.
(cpp_warning_with_line_syshdr): Likewise.
(cpp_error_at): Convert int param to enum cpp_diagnostic_level.
* macro.c (create_iso_definition): Convert int to enum.
(_cpp_create_definition): Likewise.

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

7 years ago/cp
paolo [Tue, 9 Oct 2018 21:16:09 +0000 (21:16 +0000)] 
/cp
2018-10-09  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84423
* pt.c (convert_template_argument): Immediately return error_mark_node
if the second argument is erroneous.
* parser.c (cp_parser_type_id): Add location_t * parameter.
(cp_parser_type_id_1): Likewise.
(cp_parser_alias_declaration): Adjust cp_parser_type_id call,
obtain the location of the type and save it.
(cp_parser_template_type_arg): Adjust.
(cp_parser_trailing_type_id): Likewise.
* decl.c (grokdeclarator): Improve error message for 'auto' in
alias declaration.

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

PR c++/84423
* g++.dg/concepts/pr84423-1.C: New.
* g++.dg/concepts/pr84423-2.C: Likewise.
* g++.dg/cpp0x/auto39.C: Test location too.
* g++.dg/cpp0x/auto9.C: Likewise.
* g++.dg/cpp1y/pr60384.C: Likewise.

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

7 years ago2018-10-09 François Dumont <fdumont@gcc.gnu.org>
fdumont [Tue, 9 Oct 2018 20:38:06 +0000 (20:38 +0000)] 
2018-10-09  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_list.h
(_List_operator<>::operator==): Replace member function with inline
friend.
(_List_operator<>::operator!=): Likewise.
(_List_const_operator<>::operator==): Likewise.
(_List_const_operator<>::operator!=): Likewise.
(operator==(const _List_iterator<>&, const _List_const_iterator<>&)):
Remove.
(operator!=(const _List_iterator<>&, const _List_const_iterator<>&)):
Remove.

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

7 years agoThis is part 2/2 for contributing PPC64LE support for X86 SSE3
pc [Tue, 9 Oct 2018 20:31:52 +0000 (20:31 +0000)] 
This is part 2/2 for contributing PPC64LE support for X86 SSE3
instrisics. This patch includes testsuite/gcc.target tests for the
intrinsics defined in pmmintrin.h.

Tested on POWER8 ppc64le and ppc64 (-m64 and -m32, the latter only reporting
10 new unsupported tests.)

[gcc/testsuite]

2018-10-09  Paul A. Clarke  <pc@us.ibm.com>

* gcc.target/powerpc/sse3-check.h: New file.
* gcc.target/powerpc/sse3-addsubps.c: New file.
* gcc.target/powerpc/sse3-addsubpd.c: New file.
* gcc.target/powerpc/sse3-haddps.c: New file.
* gcc.target/powerpc/sse3-hsubps.c: New file.
* gcc.target/powerpc/sse3-haddpd.c: New file.
* gcc.target/powerpc/sse3-hsubpd.c: New file.
* gcc.target/powerpc/sse3-lddqu.c: New file.
* gcc.target/powerpc/sse3-movsldup.c: New file.
* gcc.target/powerpc/sse3-movshdup.c: New file.
* gcc.target/powerpc/sse3-movddup.c: New file.
* gcc.target/powerpc/pr37191.c: New file.

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

7 years agoThis is a follow-on to earlier commits for adding compatibility
pc [Tue, 9 Oct 2018 20:25:57 +0000 (20:25 +0000)] 
This is a follow-on to earlier commits for adding compatibility
implementations of x86 intrinsics for PPC64LE.  This is the first of
two patches.  This patch adds 11 of the 13 x86 intrinsics from
<pmmintrin.h> ("SSE3").  (Patch 2/2 adds tests for these intrinsics,
and briefly describes the tests performed.)

Implementations are relatively straightforward, with occasional
extra effort for vector element ordering.

Not implemented are _mm_wait and _mm_monitor, as there are no
direct or trivial analogs in the POWER ISA.

./gcc/ChangeLog:

2018-10-05  Paul A. Clarke  <pc@us.ibm.com>

* config.gcc (powerpc*-*-*): Add pmmintrin.h to extra_headers.
* config/rs6000/pmmintrin.h: New file.

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

7 years ago2018-10-09 Tobias Burnus <burnus@net-b.de>
burnus [Tue, 9 Oct 2018 18:03:31 +0000 (18:03 +0000)] 
2018-10-09  Tobias Burnus <burnus@net-b.de>

PR fortran/83522
* resolve.c (resolve_ref): Reject nonscalar
substring references.

        PR fortran/83522
* gfortran.dg/actual_array_substr_1.f90: Add dg-error,
change to dg-do compile.
* gfortran.dg/actual_array_substr_2.f90: Ditto.
* gfortran.dg/array_initializer_1.f90: Use array
element not size-one section.
* gfortran.dg/array_substring.f90: New.

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

7 years ago PR tree-optimization/86659
ebotcazou [Tue, 9 Oct 2018 17:16:24 +0000 (17:16 +0000)] 
PR tree-optimization/86659
* gimple-match.h (gimple_match_op constructors): Initialize reverse.

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

7 years ago runtime: skip testSetPanicOnFault for gollvm
ian [Tue, 9 Oct 2018 16:51:10 +0000 (16:51 +0000)] 
runtime: skip testSetPanicOnFault for gollvm

    LLVM doesn't support non-call exception. This test was passing
    more or less by luck: if the faulting instruction is between two
    calls with the same landing pad (in instruction layout order,
    not the program's logic order), it generates a merged PC range
    that covers the faulting instruction. If the instruction layout
    order changes, or it uses two different (but may be degenerate)
    landing pads, this doesn't work.

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

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

7 years ago[Ada] Fix spurious -Wuninitialized warnings for small records
pmderodat [Tue, 9 Oct 2018 15:06:55 +0000 (15:06 +0000)] 
[Ada] Fix spurious -Wuninitialized warnings for small records

This change is aimed at getting rid of spurious -Wuninitialized warnings
issued for small records passed by copy and containing default values
for some of their components.

The source of the problem is that the _Init parameter of the
initialization routine is declared as an in/out parameter, so the
uninitialized object is passed by copy to it and this can be flagged by
-Wuninitialized.

That's why the mode of the parameter is changed to out, except for the
cases where information really needs to be passed in: unconstrained
array types, protected and task types.

For the following record type Rec!

 type Rec is record
    B : Boolean := True;
  end record;

the initialization routine must now be:

      procedure r__recIP (_init : out r__rec1) is
      begin
         _init.b := true;
         return;
      end r__recIP;

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

gcc/ada/

* exp_ch3.adb (Is_Null_Statement_List): New predicate.
(Build_Array_Init_Proc): Use it to find out whether the
initialization procedure Is_Null_Init_Proc; if so, set
Warnings_Off on the parameter.
(Build_Init_Procedure): Likewise.
(Init_Formals): Use an in/out first parameter only for
unconstrained arrays and for records either containing or built
for proteced types or task types; use an out parameter in all
the other cases.
* fe.h (Is_Init_Proc): Declare.
* gcc-interface/decl.c (type_requires_init_of_formal): Do not
return true for a discriminant in an unchecked union.
(gnat_to_gnu_param): Do not create a PARM_DECL for the Out
parameter of an initialization procedure.

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

7 years ago[Ada] Fix incorrect computation of Component_Size in ASIS mode
pmderodat [Tue, 9 Oct 2018 15:06:50 +0000 (15:06 +0000)] 
[Ada] Fix incorrect computation of Component_Size in ASIS mode

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

gcc/ada/

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: If
this is not a definition, retrieve the expression in all cases
even if we are just annotating types.
* gcc-interface/trans.c (gnat_to_gnu): Also translate Size
attribute for constrained types in this mode.

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

7 years ago[Ada] Minor tweaks to suppress warnings
pmderodat [Tue, 9 Oct 2018 15:06:46 +0000 (15:06 +0000)] 
[Ada] Minor tweaks to suppress warnings

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

gcc/ada/

* adaint.c (__gnat_get_executable_suffix_ptr): Add new line.
(__gnat_locate_exec): Check that HOST_EXECUTABLE_SUFFIX is not
empty before doing a string search for it.
* socket.c (ATTRIBUTE_UNUSED): Define.
(__gnat_disable_sigpipe): Add ATTRIBUTE_UNUSED on parameter.
* terminals.c (ATTRIBUTE_UNUSED): Move around.
(__gnat_setup_child_communication): Add ATTRIBUTE_UNUSED on
parameter.
(__gnat_send_header): Add ATTRIBUTE_UNUSED on parameters.

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

7 years ago[Ada] Ignore pragmas Compile_Time_Error/Warning in GNATprove mode
pmderodat [Tue, 9 Oct 2018 15:06:41 +0000 (15:06 +0000)] 
[Ada] Ignore pragmas Compile_Time_Error/Warning in GNATprove mode

GNATprove does not have sometimes the precise information of the
compiler about size of types and objects, so that it cannot evaluate the
expressions in pragma Compile_Time_Error/Warning the same way the
compiler does.  Thus, these pragmas should be ignored in GNATprove mode,
as it can neither verify them nor assume them (if the expression cannot
be evaluated at compile time, then the semantics for GNAT is to ignore
them).

2018-10-09  Yannick Moy  <moy@adacore.com>

gcc/ada/

* sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Rewrite
pragmas as null statements in GNATprove mode.

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

7 years ago[Ada] Fix spurious error on derived record passed as Out parameter
pmderodat [Tue, 9 Oct 2018 15:06:35 +0000 (15:06 +0000)] 
[Ada] Fix spurious error on derived record passed as Out parameter

This fixlet gets rid of a spurious error issued in the specific case of
a call to a subprogram taking an Out parameter of a discriminated record
type without default discriminants, if the actual parameter is the
result of the conversion to the record type of a variable whose type is
derived from the record and has a representation clause.

The compiler was failing to initialize the temporary made around the
call because of the representation clause, but this is required for a
type with discriminants because discriminants may be read by the called
subprogram.

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

gcc/ada/

* exp_ch6.adb (Add_Call_By_Copy_Code): Initialize the temporary
made for an Out parameter if the formal type has discriminants.

gcc/testsuite/

* gnat.dg/derived_type5.adb, gnat.dg/derived_type5_pkg.ads: New
testcase.

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

7 years ago[Ada] SPARK: fix bug related to non access object permissions
pmderodat [Tue, 9 Oct 2018 15:06:30 +0000 (15:06 +0000)] 
[Ada] SPARK: fix bug related to non access object permissions

2018-10-09  Maroua Maalej  <maalej@adacore.com>

gcc/ada/

* sem_spark.adb (Check_Declaration): fix bug related to non
access object permissions.

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

7 years ago[Ada] Minor copyright header fix
pmderodat [Tue, 9 Oct 2018 15:06:26 +0000 (15:06 +0000)] 
[Ada] Minor copyright header fix

2018-10-09  Doug Rupp  <rupp@adacore.com>

gcc/ada/

* libgnat/a-ncelfu.ads: Fix name in header to match package.

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

7 years ago[Ada] Fix strange warning when using Ada.Iterator_Interface
pmderodat [Tue, 9 Oct 2018 15:06:21 +0000 (15:06 +0000)] 
[Ada] Fix strange warning when using Ada.Iterator_Interface

The back-end was recently changed to issue more -Wuninitialized warnings
on Out parameters and this has caught a case related to
Ada.Iterator_Interface.: This patchlet simply kills this uninteresting
warning.

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

gcc/ada/

* exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Set
Warnings_Off on the B out parameter.

gcc/testsuite/

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

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

7 years ago[Ada] Einfo: minor comment fix
pmderodat [Tue, 9 Oct 2018 15:06:16 +0000 (15:06 +0000)] 
[Ada] Einfo: minor comment fix

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

gcc/ada/

* einfo.ads: Small comment fix.

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

7 years ago[Ada] Internal error on inlined renaming of subprogram instance
pmderodat [Tue, 9 Oct 2018 15:06:11 +0000 (15:06 +0000)] 
[Ada] Internal error on inlined renaming of subprogram instance

This fixes a recent regression introduced in the compiler for the
inlined renaming of a subprogram instantiated in a package body.  It was
wrongly clearing the Is_Public flag on the entity associated with the
body.

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

gcc/ada/

* sem_ch7.adb (Has_Referencer): Add comment for the
N_Freeze_Entity case.  Do not rely on
Has_Referencer_Of_Non_Subprograms to clear the Is_Public flag on
subprogram entities.

gcc/testsuite/

* gnat.dg/inline14.adb, gnat.dg/inline14_pkg.adb,
gnat.dg/inline14_pkg.ads: New testcase.

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

7 years ago[Ada] Unnesting: fix handling of private types that are synchronized
pmderodat [Tue, 9 Oct 2018 15:06:05 +0000 (15:06 +0000)] 
[Ada] Unnesting: fix handling of private types that are synchronized

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

gcc/ada/

* exp_unst.adb (In_Synchronized_Call): Handle properly private
types whose full views are synchronized types, in order to
recognize generated subprograms whose bodies must be considered
reachable even if no direct calls to them are visible in the
source.

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

7 years ago[Ada] Fix expansion of operations on nonbinary modular types
pmderodat [Tue, 9 Oct 2018 15:05:59 +0000 (15:05 +0000)] 
[Ada] Fix expansion of operations on nonbinary modular types

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

gcc/ada/

* exp_ch4.adb (Expand_Modular_Op): When expanding an operation
on nonbinary modular types, convert the opersnds to an integer
type that is large enough to hold the modulus of the type, which
may be larger than Integer'Last.

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

7 years ago[Ada] Unnesting: fix handling of uplevel refs to unconstrained formals
pmderodat [Tue, 9 Oct 2018 15:05:54 +0000 (15:05 +0000)] 
[Ada] Unnesting: fix handling of uplevel refs to unconstrained formals

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

gcc/ada/

* exp_unst.adb (Unnest_Subprogram):  When an uplevel reference
is to an unconstrained formal, the 'Access reference that is
created to initialize the corresponding component of the
activation record must be wrapped in an unchecked conversion to
the generated type of the component. Otherwise, spurious suvtype
conformance errors will be generated when the code is within an
instantiation and the type of the formal is a formal type of the
enclosing generic. Note that during unnesting there is no simple
way to determine that the code appears within an instance
because ther is no scope stack.

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

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