]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
7 years agoRemove stray reference to error_at_rich_loc
dmalcolm [Mon, 15 Oct 2018 22:09:51 +0000 (22:09 +0000)] 
Remove stray reference to error_at_rich_loc

"error_at_rich_loc" went away in r254280 (in favor of overloading
"error_at"), but there was a stray reference in a comment.

Remove it.

gcc/ChangeLog:
* gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
Fix usage of "error_at_rich_loc" in the comment.

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

7 years ago2018-10-15 Tobias Burnus <burnus@net-b.de>
burnus [Mon, 15 Oct 2018 18:58:17 +0000 (18:58 +0000)] 
2018-10-15  Tobias Burnus  <burnus@net-b.de>

       PR fortran/87597
       * gfortran.dg/inline_matmul_24.f90: Tweak scan-tree.

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

7 years ago[PR87563][AARCH64-SVE]: Don't keep ifcvt loop when COND_<OP> ifn could not be vectorized.
renlin [Mon, 15 Oct 2018 16:49:05 +0000 (16:49 +0000)] 
[PR87563][AARCH64-SVE]: Don't keep ifcvt loop when COND_<OP> ifn could not be vectorized.

ifcvt will created versioned loop and it will permissively generate
scalar COND_<OP> ifn.

If in the loop vectorize pass, COND_<OP> could not get vectoized,
the if-converted loop should be abandoned when the target doesn't support
such ifn.

gcc/

2018-10-12  Renlin Li  <renlin.li@arm.com>

PR target/87563
* tree-vectorizer.c (try_vectorize_loop_1): Don't use
if-conversioned loop when it contains ifn with types not
supported by backend.
* internal-fn.c (expand_direct_optab_fn): Add an assert.
(direct_internal_fn_supported_p): New helper function.
* internal-fn.h (direct_internal_fn_supported_p): Declare.

gcc/testsuite/

2018-10-12  Renlin Li  <renlin.li@arm.com>

PR target/87563
* gcc.target/aarch64/sve/pr87563.c: New.

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

7 years ago2018-10-15 Paul Thomas <pault@gcc.gnu.org>
pault [Mon, 15 Oct 2018 16:31:15 +0000 (16:31 +0000)] 
2018-10-15  Paul Thomas  <pault@gcc.gnu.org>
    Tobias Burnus  <burnus@gcc.gnu.org>

PR fortran/87566
* resolve.c (resolve_assoc_var): Add missing array spec for
class associate names.
(resolve_select_type): Handle case where last typed component
of the selector has a different type to the expression.
* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Replace
call to gfc_expr_to_initialize with call to gfc_copy_expr.
(gfc_conv_class_to_class): Guard assignment to 'len' field
against case where zero constant is supplied.

2018-10-15  Paul Thomas  <pault@gcc.gnu.org>
    Tobias Burnus  <burnus@gcc.gnu.org>

PR fortran/87566
* gfortran.dg/select_type_44.f90: New test.
* gfortran.dg/associate_42.f90: New test.

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

7 years ago PR target/87572
jakub [Mon, 15 Oct 2018 16:08:09 +0000 (16:08 +0000)] 
PR target/87572
* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
Remove OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
OPTION_MASK_ISA_AVX5124VNNIW_UNSET.

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

7 years agoAdjust test to pass with latest glibc
redi [Mon, 15 Oct 2018 13:55:42 +0000 (13:55 +0000)] 
Adjust test to pass with latest glibc

Glibc changed the it_IT locales to use thousands separators,
invalidating this test. Use nl_NL instead, as Dutch only uses grouping
for money not numbers.

* testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
account for change to glibc it_IT localedata (glibc bz#10797).

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

7 years agoPR libstdc++/87587 prevent -Wabi warnings
redi [Mon, 15 Oct 2018 12:58:51 +0000 (12:58 +0000)] 
PR libstdc++/87587 prevent -Wabi warnings

The warnings about changes to empty struct parameter passing can be
ignored because the callers are all internal to the library, and so
compiled with the same -fabi-version as the function definitions.

It would be preferable to use #pragma GCC diagnostic warning "-Wabi=12"
to get warnings about any other ABI changes in future versions, but
until PR c++/87611 is fixed the warnings must be completely disabled
with #pragma GCC diagnostic ignroed "-Wabi".

PR libstdc++/87587
* src/c++11/cxx11-shim_facets.cc: Suppress -Wabi warnings.

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

7 years ago PR tree-optimization/87022
amker [Mon, 15 Oct 2018 11:35:56 +0000 (11:35 +0000)] 
PR tree-optimization/87022
* tree-loop-distribution.c (pg_add_dependence_edges): Check all
bits in dist vector rather than the first one.

gcc/testsuite
PR tree-optimization/87022
* gcc.dg/tree-ssa/pr87022.c: New test.

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

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

PR middle-end/87610
* tree-ssa-structalias.c (struct vls_data): Add escaped_p member.
(visit_loadstore): When a used restrict tag escaped verify that
the points-to solution of "other" pointers do not include
escaped.
(compute_dependence_clique): If a used restrict tag escaped
communicated that down to visit_loadstore.

* gcc.dg/torture/restrict-6.c: New testcase.

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

7 years agoS/390: Fix problem with vec_init expander
krebbel [Mon, 15 Oct 2018 08:07:13 +0000 (08:07 +0000)] 
S/390: Fix problem with vec_init expander

gcc/ChangeLog:

2018-10-15  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/s390.c (s390_expand_vec_init): Force vector element
into reg if it isn't a general operand.

gcc/testsuite/ChangeLog:

2018-10-15  Andreas Krebbel  <krebbel@linux.ibm.com>

* g++.dg/vec-init-1.C: New test.

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

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

* include/debug/vector (vector<>::cbegin()): Use C++11 direct
initialization.
(vector<>::cend()): Likewise.
(vector<>::emplace(const_iterator, _Args&&...)): Likewise and use
consistent iterator comparison.
(vector<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
(vector<>::insert(const_iterator, _InputIterator, _InputIterator)):
Likewise.
(vector<>::erase(const_iterator)): Likewise.
(vector<>::erase(const_iterator, const_iterator)): Likewise.

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

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

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

7 years agoi386: Add register source to movddup
hjl [Sun, 14 Oct 2018 20:39:05 +0000 (20:39 +0000)] 
i386: Add register source to movddup

Add register source to movddup so that IRA will allow register source
for *vec_dupv2di when SSE3 is enabled.

gcc/

PR target/87599
* config/i386/sse.md (*vec_dupv2di): Add register source to
movddup.

gcc/testsuite/

PR target/87599
* gcc.target/i386/pr87599.c: New test.

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

7 years agoi386: Also disable AVX512IFMA/AVX5124FMAPS/AVX5124VNNIW
hjl [Sun, 14 Oct 2018 20:30:02 +0000 (20:30 +0000)] 
i386: Also disable AVX512IFMA/AVX5124FMAPS/AVX5124VNNIW

Also disable AVX512IFMA, AVX5124FMAPS and AVX5124VNNIW when disabling
AVX512F.

gcc/

PR target/87572
* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
Add OPTION_MASK_ISA_AVX512IFMA_UNSET,
OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
OPTION_MASK_ISA_AVX5124VNNIW_UNSET.

gcc/testsuite/

PR target/87572
* gcc.target/i386/pr87572.c: New test.

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

7 years ago * MAINTAINERS: Update my email address.
amker [Sun, 14 Oct 2018 09:45:35 +0000 (09:45 +0000)] 
* MAINTAINERS: Update my email address.

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

7 years ago2018-10-14 Paul Thomas <pault@gcc.gnu.org>
pault [Sun, 14 Oct 2018 09:25:13 +0000 (09:25 +0000)] 
2018-10-14  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83146
* gfortran.dg/associate_43.f90: New test.

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

7 years agoThis patch adjusts one of the c-torture tests to account for the possible lack of...
green [Sun, 14 Oct 2018 09:21:51 +0000 (09:21 +0000)] 
This patch adjusts one of the c-torture tests to account for the possible lack of divide-by-zero exceptions on certain moxie targets.

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

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

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

7 years ago * dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh.
ebotcazou [Sat, 13 Oct 2018 17:32:07 +0000 (17:32 +0000)] 
* dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh.
(notice_args_size): Set it in the current trace if no insn that can
throw internally has been seen yet.
(connect_traces): When connecting args_size between traces, allow the
incoming values not to match if there is an insn setting it before the
first insn that can throw internally; in that case, force the creation
of a CFI note on this latter insn.

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

7 years agoFix compilation failure with C++98 compilers
redi [Sat, 13 Oct 2018 11:19:09 +0000 (11:19 +0000)] 
Fix compilation failure with C++98 compilers

* opt-problem.h (opt_wrapper): Use template-argument-list when naming
the base class, because using the injected-class-name was not clearly
specified until DR 176.

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

7 years agoDaily bump.
gccadmin [Sat, 13 Oct 2018 00:16:39 +0000 (00:16 +0000)] 
Daily bump.

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

7 years agotighten the toplevel guard on ibm-ldouble.c
hainque [Fri, 12 Oct 2018 21:25:46 +0000 (21:25 +0000)] 
tighten the toplevel guard on ibm-ldouble.c

2018-10-12  Olivier Hainque  <hainque@adacore.com>

        * config/rs6000/ibm-ldouble.c: Augment the toplevel guard with
        defined (__FLOAT128_TYPE__) || defined (__LONG_DOUBLE_128__).

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

7 years ago * config/pdp11/pdp11.md (doloop_end): New expander.
pkoning [Fri, 12 Oct 2018 21:12:38 +0000 (21:12 +0000)] 
    * config/pdp11/pdp11.md (doloop_end): New expander.
    (doloop_end_insn): renamed from "doloop_end".
    (addqi3): New pattern.
    (subqi3): New pattern.
    * config/pdp11/predicates.md (incdec_operand): New predicate.

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

7 years agoAdd pattern to remove useless float casts in comparisons.
ygribov [Fri, 12 Oct 2018 20:35:20 +0000 (20:35 +0000)] 
Add pattern to remove useless float casts in comparisons.

PR middle-end/81376

gcc/
* real.c (format_helper::can_represent_integral_type_p): New function
* real.h (format_helper::can_represent_integral_type_p): Ditto.
* match.pd: New pattern.

gcc/testsuite/
* c-c++-common/pr81376.c: New test.
* gcc.target/i386/387-ficom-2.c: Update test.
* gcc.target/i386/387-ficom-2.c: Ditto.

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

7 years agointroduce --enable-large-address-aware
aoliva [Fri, 12 Oct 2018 20:11:27 +0000 (20:11 +0000)] 
introduce --enable-large-address-aware

Add a configure knob for mingw32 and 64 toolchains to default passing
--large-address-aware to the linker, when creating 32-bit binaries.
-Wl,--disable-large-address-aware can still reverse its effects.

for  gcc/ChangeLog

* configure.ac: Introduce --enable-large-address-aware
to define MINGW_DEFAULT_LARGE_ADDR_AWARE.
* doc/install.texi: Document it.
* configure, config.in: Rebuilt.
* config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Define,
based on MINGW_DEFAULT_LARGE_ADDR_AWARE.
(LINK_SPEC): Insert it.
* config/i386/mingw-264.h: Likewise.

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

7 years agodefine HAVE_GAS_ALIGNED_COMM
aoliva [Fri, 12 Oct 2018 20:11:16 +0000 (20:11 +0000)] 
define HAVE_GAS_ALIGNED_COMM

HAVE_GAS_ALIGNED_COMM is referenced in an initializer in cygming.opt,
but it's not guaranteed to be defined by configure, so define it to
zero in a cygming-specific header if it's not defined.

for  gcc/ChangeLog

* cygming.h (HAVE_GAS_ALIGNED_COMM): Fallback-define.

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

7 years ago[C++ PATCH] more TU parsing refactoring
nathan [Fri, 12 Oct 2018 18:44:48 +0000 (18:44 +0000)] 
[C++ PATCH] more TU parsing refactoring

https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00788.html
* parser.h (struct cp_parser): Drop implicit_extern_c.
* parser.c (cp_debug_parser): Drop implicit_extern_c.
(cp_parser_new): Likewise.
(cp_parser_translation_unit): Handle implicit extern c here.  Call
cp_parser_toplevel_declaration.
(cp_parser_toplevel_declaration): New, broken out of ...
(cp_parser_declaration_seq_opt): ... here.  Call it.  Drop
implicit extern C handling.

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

7 years agoFix off-by-one issue with inline matmul
burnus [Fri, 12 Oct 2018 18:18:13 +0000 (18:18 +0000)] 
Fix off-by-one issue with inline matmul

        PR fortran/87597
        * expr.c (gfc_simplify_expr): Avoid simplifying
        the 'array' argument to lbound/ubound/lcobound/
        ucobound.

        PR fortran/87597
        * gfortran.dg/inline_matmul_24.f90: New.

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

7 years agoFix error-recovery ICE in check_proc_interface
burnus [Fri, 12 Oct 2018 18:13:25 +0000 (18:13 +0000)] 
Fix error-recovery ICE in check_proc_interface

        PR fortran/58787
        * decl.c (get_proc_name): Return with error before
        creating sym_tree.

        PR fortran/58787
        * gfortran.dg/goacc/pr77765.f90: Modify dg-error.
        * gfortran.dg/interface_42.f90: Ditto.
        * gfortran.dg/internal_references_1.f90: Ditto.
        * gfortran.dg/invalid_procedure_name.f90: Ditto.
        * gfortran.dg/pr65453.f90: Ditto.
        * gfortran.dg/pr77414.f90: Ditto.
        * gfortran.dg/pr78741.f90: Ditto.
        * gfortran.dg/same_name_2.f90: Ditto.

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

7 years ago PR rtl-optimization/87600
bergner [Fri, 12 Oct 2018 16:31:11 +0000 (16:31 +0000)] 
PR rtl-optimization/87600
* ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets.

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

7 years ago * doc/md.texi (doloop_end): Document that the pattern code may
pkoning [Fri, 12 Oct 2018 13:50:15 +0000 (13:50 +0000)] 
* doc/md.texi (doloop_end): Document that the pattern code may
need to check operand mode.

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

7 years agoInitial commit of Networking TS implementation
redi [Fri, 12 Oct 2018 10:50:15 +0000 (10:50 +0000)] 
Initial commit of Networking TS implementation

* include/Makefile.am: Add new headers.
* include/Makefile.in: Regenerate.
* include/experimental/bits/net.h: New header for common
implementation details of Networking TS.
* include/experimental/buffer: New header.
* include/experimental/executor: New header.
* include/experimental/internet: New header.
* include/experimental/io_context: New header.
* include/experimental/net: New header.
* include/experimental/netfwd: New header.
* include/experimental/socket: New header.
* include/experimental/timer: New header.
* testsuite/experimental/net/buffer/arithmetic.cc: New test.
* testsuite/experimental/net/buffer/const.cc: New test.
* testsuite/experimental/net/buffer/creation.cc: New test.
* testsuite/experimental/net/buffer/mutable.cc: New test.
* testsuite/experimental/net/buffer/size.cc: New test.
* testsuite/experimental/net/buffer/traits.cc: New test.
* testsuite/experimental/net/execution_context/use_service.cc: New
test.
* testsuite/experimental/net/headers.cc: New test.
* testsuite/experimental/net/internet/address/v4/comparisons.cc: New
test.
* testsuite/experimental/net/internet/address/v4/cons.cc: New test.
* testsuite/experimental/net/internet/address/v4/creation.cc: New
test.
* testsuite/experimental/net/internet/address/v4/members.cc: New
test.
* testsuite/experimental/net/internet/resolver/base.cc: New test.
* testsuite/experimental/net/internet/resolver/ops/lookup.cc: New
test.
* testsuite/experimental/net/internet/resolver/ops/reverse.cc: New
test.
* testsuite/experimental/net/timer/waitable/cons.cc: New test.
* testsuite/experimental/net/timer/waitable/dest.cc: New test.
* testsuite/experimental/net/timer/waitable/ops.cc: New test.

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

7 years ago[AArch64] Support zero-extended move to FP register
wilco [Fri, 12 Oct 2018 10:49:27 +0000 (10:49 +0000)] 
[AArch64] Support zero-extended move to FP register

The popcount expansion uses SIMD instructions acting on 64-bit values.
As a result a popcount of a 32-bit integer requires zero-extension before
moving the zero-extended value into an FP register.  This patch adds
support for zero-extended int->FP moves to avoid the redundant uxtw.
Similarly, add support for 32-bit zero-extending load->FP register
and 32-bit zero-extending FP->FP and FP->int moves.
Add a missing 'fp' arch attribute to the related 8/16-bit pattern and
fix an incorrect type attribute.

To complete zero-extended load support, add a new alternative to
load_pair_zero_extendsidi2_aarch64 to support LDP into FP registers too.

int f (int a)
{
  return __builtin_popcount (a);
}

Before:
uxtw x0, w0
fmov d0, x0
cnt v0.8b, v0.8b
addv b0, v0.8b
fmov w0, s0
ret

After:
fmov s0, w0
cnt v0.8b, v0.8b
addv b0, v0.8b
fmov w0, s0
ret

Passes regress & bootstrap on AArch64.

    gcc/
* config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Add alternatives
to zero-extend between int and floating-point registers.
(load_pair_zero_extendsidi2_aarch64): Add alternative for zero-extended
ldp into floating-point registers.  Add type and arch attributes.
(zero_extend<SHORT:mode><GPI:mode>2_aarch64): Add arch attribute.
Use f_loads for type attribute.

    testsuite/
* gcc.target/aarch64/popcnt.c: Test zero-extended popcount.
* gcc.target/aarch64/vec_zeroextend.c: Test zero-extended vectors.

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

7 years agoFix typo in previous commit.
clyon [Fri, 12 Oct 2018 07:38:05 +0000 (07:38 +0000)] 
Fix typo in previous commit.

2018-10-12  Christophe Lyon  <christophe.lyon@linaro.org>

PR c++/87364
* c-pretty-print.c (c_pretty_printer::constant): Fix typo.

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

7 years ago PR c++/87364
law [Fri, 12 Oct 2018 03:35:48 +0000 (03:35 +0000)] 
PR c++/87364
* c-pretty-print.h (pp_c_type_cast): Prototype.
(pp_c_integer_constant): Likewise.
* c-pretty-print.c (pp_c_type_cast): No longer static.
(pp_c_integer_constant): Likewise.
(pp_c_enumeration_constant): Fix loop termination when finding
name of constant.  No longer returns a value.  Call
pp_c_integer_constant.
(c_pretty_printer::constant): Update for changes to
pp_c_enumeration_constant.

PR c++/87364
* cxx-pretty-print.c (pp_cxx_enumeration_constant): New function.
(cxx_pretty_printer::constant): Use it.

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

7 years agogcc/ChangeLog:
msebor [Fri, 12 Oct 2018 03:18:23 +0000 (03:18 +0000)] 
gcc/ChangeLog:

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

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

7 years agogcc/ChangeLog:
msebor [Fri, 12 Oct 2018 03:16:10 +0000 (03:16 +0000)] 
gcc/ChangeLog:

* doc/extend.texi (attribute flatten): Mention interaction with
noinline.

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

7 years ago PR target/87156
law [Fri, 12 Oct 2018 02:40:17 +0000 (02:40 +0000)] 
PR target/87156
* cgraphclones.c (cgraph_node::create_version_clone_with_body):
Set new_decl virtual flag to zero.

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

7 years agoPR middle-end/87593 - conflicting format_arg attributes on a declaration accepted
msebor [Fri, 12 Oct 2018 01:42:08 +0000 (01:42 +0000)] 
PR middle-end/87593 - conflicting format_arg attributes on a declaration accepted

gcc/ChangeLog:

* doc/extend.texi (attribute format_arg): Discuss using multiple
attributes on a single function.

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

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

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

7 years agoPR libstdc++/77691 increase allocation size to at least alignment
redi [Thu, 11 Oct 2018 23:21:11 +0000 (23:21 +0000)] 
PR libstdc++/77691 increase allocation size to at least alignment

It's not safe to assume that malloc(n) returns memory aligned to more
than n, so when relying on the guaranteed alignment of malloc ensure
that the number of bytes allocated is at least as large as the
alignment.

PR libstdc++/77691
* include/experimental/memory_resource (__resource_adaptor_imp): Do
not allocate sizes smaller than alignment when relying on guaranteed
alignment.
* testsuite/experimental/memory_resource/new_delete_resource.cc:
Adjust expected number of bytes allocated for alignof(max_align_t).

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

7 years ago[testsuite]
willschm [Thu, 11 Oct 2018 21:31:32 +0000 (21:31 +0000)] 
[testsuite]

2018-10-10  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-insert-char-p8.c: New.
* gcc.target/powerpc/fold-vec-insert-char-p9.c: New.
* gcc.target/powerpc/fold-vec-insert-double.c: New.
* gcc.target/powerpc/fold-vec-insert-float-p8.c: New.
* gcc.target/powerpc/fold-vec-insert-float-p9.c: New.
* gcc.target/powerpc/fold-vec-insert-int-p8.c: New.
* gcc.target/powerpc/fold-vec-insert-int-p9.c: New.
* gcc.target/powerpc/fold-vec-insert-longlong.c: New.
* gcc.target/powerpc/fold-vec-insert-short-p8.c: New.
* gcc.target/powerpc/fold-vec-insert-short-p9.c: New.

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

7 years ago[testsuite]
willschm [Thu, 11 Oct 2018 21:25:23 +0000 (21:25 +0000)] 
[testsuite]
* gcc.target/powerpc/fold-vec-extract-char.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-char.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-char.p9.c: New.
* gcc.target/powerpc/fold-vec-extract-double.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-double.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-double.p9.c: New.
* gcc.target/powerpc/fold-vec-extract-float.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-float.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-float.p9.c: New.
* gcc.target/powerpc/fold-vec-extract-int.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-int.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-int.p9.c: New.
* gcc.target/powerpc/fold-vec-extract-longlong.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-longlong.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-longlong.p9.c: New.
* gcc.target/powerpc/fold-vec-extract-short.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-short.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-short.p9.c: New.

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

7 years ago[testsuite]
willschm [Thu, 11 Oct 2018 21:10:12 +0000 (21:10 +0000)] 
[testsuite]

2018-10-11  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-select-char.c: New.
* gcc.target/powerpc/fold-vec-select-double.c: New.
* gcc.target/powerpc/fold-vec-select-float.c: New.
* gcc.target/powerpc/fold-vec-select-int.c: New.
* gcc.target/powerpc/fold-vec-select-longlong.c: New.
* gcc.target/powerpc/fold-vec-select-short.c: New.

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

7 years ago PR tree-optimization/86829
law [Thu, 11 Oct 2018 21:06:12 +0000 (21:06 +0000)] 
PR tree-optimization/86829
* match.pd (sin (atan (x))): New simplification rules.
(cos (atan (x))): Likewise.
* real.c (build_sinatan_real): New function.
* real.h (build_sinatan_real): Prototype.

PR tree-optimization/86829
* gcc.dg/sinatan-1.c: New test.
* gcc.dg/sinatan-2.c: New test.
* gcc.dg/sinatan-3.c: New test.

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

7 years ago[gcc]
willschm [Thu, 11 Oct 2018 21:03:30 +0000 (21:03 +0000)] 
[gcc]

2018-10-09  Will Schmidt <will_schmidt@vnet.ibm.com>

* config/rs6000/rs6000.c (map_to_integral_tree_type): New helper
function.
(fold_mergeeo_helper): New helper function.
(rs6000_gimple_fold_builtin): Add hooks for vec_mergee and vec_mergeo
intrinsics.  Correct some whitespace indentation issues.

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

7 years ago[testsuite]
willschm [Thu, 11 Oct 2018 20:59:15 +0000 (20:59 +0000)] 
[testsuite]

2018-10-09  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-mergeeo-floatdouble.c: New.
* gcc.target/powerpc/fold-vec-mergeeo-int.c: New.
* gcc.target/powerpc/fold-vec-mergeeo-longlong.c: New.

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

7 years ago2018-10-11 François Dumont <fdumont@gcc.gnu.org>
fdumont [Thu, 11 Oct 2018 20:47:13 +0000 (20:47 +0000)] 
2018-10-11  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/forward_list
(forward_list<>::before_begin()): Use C++11 direct initialization.
(forward_list<>::begin()): Likewise.
(forward_list<>::end()): Likewise.
(forward_list<>::cbefore_begin()): Likewise.
(forward_list<>::cbegin()): Likewise.
(forward_list<>::cend()): Likewise.
(forward_list<>::emplace_after<>(const_iterator, _Args&&...)): Likewise.
(forward_list<>::insert_after(const_iterator, const _Tp&)): Likewise.
(forward_list<>::insert_after(const_iterator, _Tp&&)): Likewise.
(forward_list<>::insert_after(const_iterator, size_type, const _Tp&)):
Likewise.
(forward_list<>::insert_after(const_iterator, initializer_list<>)):
Likewise.
(forward_list<>::erase_after(const_iterator)): Likewise.
(forward_list<>::erase_after(const_iterator, const_iterator)): Likewise
and ensure consistent iterator comparison.

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

7 years ago2018-10-11 François Dumont <fdumont@gcc.gnu.org>
fdumont [Thu, 11 Oct 2018 20:21:57 +0000 (20:21 +0000)] 
2018-10-11  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/forward_list.h
(_Fwd_list_iterator<>::operator==): Replace member function with inline
friend.
(_Fwd_list_iterator<>::operator!=): Likewise.
(_Fwd_list_const_iterator<>::operator==): Likewise.
(_Fwd_list_const_iterator<>::operator!=): Likewise.
(operator==(const _Fwd_list_iterator<>&,
const _Fwd_list_const_iterator<>&)): Remove.
(operator!=(const _Fwd_list_iterator<>&,
const _Fwd_list_const_iterator<>&)): Remove.
(forward_list<>::_Node): Take typedef from base type.
(forward_list<>::iterator): Likewise.
(forward_list<>::const_iterator): Likewise.

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

7 years ago2018-10-11 Tobias Burnus <burnus@net-b.de>
burnus [Thu, 11 Oct 2018 19:37:28 +0000 (19:37 +0000)] 
2018-10-11  Tobias Burnus <burnus@net-b.de>

        Revert:
        2018-10-09  Tobias Burnus <burnus@net-b.de>

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

2018-10-11  Tobias Burnus <burnus@net-b.de>

        Revert:
        2018-10-09  Tobias Burnus <burnus@net-b.de>

        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@265059 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[AArch64] Fix PR87511
wilco [Thu, 11 Oct 2018 19:10:12 +0000 (19:10 +0000)] 
[AArch64] Fix PR87511

As mentioned in PR87511, the shift used in aarch64_mask_and_shift_for_ubfiz_p
should be evaluated as a HOST_WIDE_INT rather than int.

Passes bootstrap & regress.

    gcc/
PR target/87511
* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
Use HOST_WIDE_INT_1U for shift.

    testsuite/
PR target/87511
* gcc.target/aarch64/pr87511.c: Add new test.

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

7 years agoC++: suggestions for misspelled private members (PR c++/84993)
dmalcolm [Thu, 11 Oct 2018 19:03:33 +0000 (19:03 +0000)] 
C++: suggestions for misspelled private members (PR c++/84993)

PR c++/84993 identifies a problem with our suggestions for
misspelled member names in the C++ FE for the case where the
member is private.

For example, given:

class foo
{
public:
  double get_ratio() const { return m_ratio; }

private:
  double m_ratio;
};

void test(foo *ptr)
{
  if (ptr->ratio >= 0.5)
    ;// etc
}

...we currently emit this suggestion:

<source>: In function 'void test(foo*)':
<source>:12:12: error: 'class foo' has no member named 'ratio'; did you mean 'm_ratio'?
   if (ptr->ratio >= 0.5)
            ^~~~~
            m_ratio

...but if the user follows this suggestion, they get:

<source>: In function 'void test(foo*)':
<source>:12:12: error: 'double foo::m_ratio' is private within this context
   if (ptr->m_ratio >= 0.5)
            ^~~~~~~
<source>:7:10: note: declared private here
   double m_ratio;
          ^~~~~~~
<source>:12:12: note: field 'double foo::m_ratio' can be accessed via 'double foo::get_ratio() const'
   if (ptr->m_ratio >= 0.5)
            ^~~~~~~
            get_ratio()

It feels wrong to be emitting a fix-it hint that doesn't compile, so this
patch adds the accessor fix-it hint logic to this case, so that we directly
offer a valid suggestion:

<source>: In function 'void test(foo*)':
<source>:12:12: error: 'class foo' has no member named 'ratio'; did you mean
'double foo::m_ratio'? (accessible via 'double foo::get_ratio() const')
   if (ptr->ratio >= 0.5)
            ^~~~~
            get_ratio()

gcc/cp/ChangeLog:
PR c++/84993
* call.c (enforce_access): Move diagnostics to...
(complain_about_access): ...this new function.
* cp-tree.h (class access_failure_info): Rename split out field
"m_field_decl" into "m_decl" and "m_diag_decl".
(access_failure_info::record_access_failure): Add tree param.
(access_failure_info::was_inaccessible_p): New accessor.
(access_failure_info::get_decl): New accessor.
(access_failure_info::get_diag_decl): New accessor.
(access_failure_info::get_any_accessor): New member function.
(access_failure_info::add_fixit_hint): New static member function.
(complain_about_access): New decl.
* typeck.c (access_failure_info::record_access_failure): Update
for change to fields.
(access_failure_info::maybe_suggest_accessor): Split out into...
(access_failure_info::get_any_accessor): ...this new function...
(access_failure_info::add_fixit_hint): ...and this new function.
(finish_class_member_access_expr): Split out "has no member named"
error-handling into...
(complain_about_unrecognized_member): ...this new function, and
check that the guessed name is accessible along the access path.
Only provide a spell-correction fix-it hint if it is; otherwise,
attempt to issue an accessor fix-it hint.

gcc/testsuite/ChangeLog:
PR c++/84993
* g++.dg/torture/accessor-fixits-9.C: New test.

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

7 years ago[C++ PATCH] parser simplification
nathan [Thu, 11 Oct 2018 18:58:55 +0000 (18:58 +0000)] 
[C++ PATCH] parser simplification

https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00689.html
cp/
* parser.c (cp_parser_translation_unit): Return void.  Don't fail
at first extra }, simplify logic.
(c_parse_file): Call finish_translation_unit here.

testsuite/
* g++.dg/parse/close-brace.C: New.
* g++.dg/cpp0x/noexcept16.C: Avoid warning.
* g++.old-deja/g++.other/crash32.C: Add another error

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

7 years agoleverage linker relaxation on ppc vxworks RTPs
hainque [Thu, 11 Oct 2018 18:36:34 +0000 (18:36 +0000)] 
leverage linker relaxation on ppc vxworks RTPs

2018-10-11  Doug Rupp  <rupp@adacore.com>
            Olivier Hainque  <hainque@adacore.com>

        * config/rs6000/vxworks.h (VXWORKS_RELAX_LINK_SPEC): New macro.
        Pass --relax to the linker for RTPs.
        (LINK_SPEC): Append VXWORKS_RELAX_LINK_SPEC.

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

7 years ago PR c++/85070
jakub [Thu, 11 Oct 2018 18:35:11 +0000 (18:35 +0000)] 
PR c++/85070
* g++.dg/cpp0x/pr85070.C: Change effective target for diagnostics from
c++14_only to c++14.

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

7 years agomultiline.exp: complain about mismatched dg-{begin|end}-multiline-output
dmalcolm [Thu, 11 Oct 2018 17:05:23 +0000 (17:05 +0000)] 
multiline.exp: complain about mismatched dg-{begin|end}-multiline-output

Mismatched dg-{begin|end}-multiline-output directives are currently
silently ignored, leading to difficult-to-diagnose test failures
involving excess output.

This patch makes multiline.exp complain about them.

gcc/testsuite/ChangeLog:
* lib/multiline.exp (dg-begin-multiline-output): Issue an error if
there hasn't been a dg-end-multiline-output since the last
dg-begin-multiline-output.
(dg-end-multiline-output): Issue an error if there hasn't been a
dg-begin-multiline-output.  Reset _multiline_last_beginning_line
as soon possible.  Rename "line" to "last_line".

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

7 years agoPR libstdc++/80538 Only call sleep for non-zero values
redi [Thu, 11 Oct 2018 16:37:23 +0000 (16:37 +0000)] 
PR libstdc++/80538 Only call sleep for non-zero values

Avoid a system call when no sleep is required. Sleep in a loop (actually
two loops) to handle interruption by signals.

PR libstdc++/80538
* src/c++11/thread.cc (this_thread::__sleep_for)
[_GLIBCXX_HAVE_SLEEP]: Only call sleep for non-zero values.
Loop while sleep call is interrupted and until steady_clock
shows requested duration has elapsed.
(!_GLIBCXX_HAVE_USLEEP]: Use the _GLIBCXX_HAVE_SLEEP code path, but
avoiding the usleep call.
* testsuite/30_threads/this_thread/60421.cc: Test repeated
signal interruptions.

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

7 years agoElide repeated RTL elements.
ams [Thu, 11 Oct 2018 14:00:20 +0000 (14:00 +0000)] 
Elide repeated RTL elements.

GCN's 64-lane vectors tend to make RTL dumps very long.  This patch makes them
far more bearable by eliding long sequences of the same element into "repeated"
messages.

This also takes care of reading repeated sequences in the RTL front-end.

There are self tests for both reading and writing.

2018-10-11  Andrew Stubbs  <ams@codesourcery.com>
    Jan Hubicka  <jh@suse.cz>
    Martin Jambor  <mjambor@suse.cz>

gcc/
* print-rtl.c (print_rtx_operand_codes_E_and_V): Print how many times
the same elements are repeated rather than printing all of them.
* read-rtl.c (rtx_reader::read_rtx_operand): Recognize and expand
"repeated" elements.
* read-rtl-function.c (test_loading_repeat): New function.
(read_rtl_function_c_tests): Call test_loading_repeat.
* rtl-tests.c (test_dumping_repeat): New function.
(rtl_tests_c_tests): Call test_dumping_repeat.

gcc/testsuite/
* selftests/repeat.rtl: New file.

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

7 years ago PR c++/87582
jakub [Thu, 11 Oct 2018 13:46:27 +0000 (13:46 +0000)] 
PR c++/87582
* typeck.c (maybe_warn_about_returning_address_of_local): If
whats_returned is a structured binding identifier and the structured
binding is a reference, recurse on its initializer.

* g++.dg/cpp1z/decomp48.C: New test.

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

7 years agolibcpp: show macro definition when used with wrong argument count
dmalcolm [Thu, 11 Oct 2018 13:21:28 +0000 (13:21 +0000)] 
libcpp: show macro definition when used with wrong argument count

Consider:

demo.c: In function 'test':
demo.c:5:40: error: macro "LOG_2" requires 3 arguments, but only 2 given
5 |   LOG_2 ("loading file: %s\n", filename);
  |                                        ^

This patch adds a note showing the definition of the macro in
question, giving:

demo.c: In function 'test':
demo.c:5:40: error: macro "LOG_2" requires 3 arguments, but only 2 given
5 |   LOG_2 ("loading file: %s\n", filename);
  |                                        ^
In file included from demo.c:1:
logging.h:1: note: macro "LOG_2" defined here
1 | #define LOG_2(FMT, ARG0, ARG1) do { fprintf (stderr, (FMT), (ARG0), (ARG1)); }
  |

gcc/testsuite/ChangeLog:
* g++.dg/diagnostic/macro-arg-count.C: Move to...
* c-c++-common/cpp/macro-arg-count-1.c: ...here, generalizing
output for C vs C++.  Expect notes showing the definitions of the
macros.
* c-c++-common/cpp/macro-arg-count-2.c: New test, adapted from the
above.

libcpp/ChangeLog:
* macro.c (_cpp_arguments_ok): If the argument count is wrong, add
a note showing the definition of the macro.

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

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

* config/i386/x86-tune-costs.h (bdver?_memcpy, bdver?_memset,
bdver?_cost): Unify to ...
(bdver_memcpy, bdver_memset, bdver_cost): ... this.
* config/i386/i386.c (processor_cost_table): Adjust.

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

7 years ago[PATCH] A couple of line map fixes
nathan [Thu, 11 Oct 2018 12:42:37 +0000 (12:42 +0000)] 
[PATCH] A couple of line map fixes

https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00623.html
* include/line-map.h (LINEMAPS_MACRO_LOWEST_LOCATION): Fix
off-by-one error.
* line-map.c (linemap_enter_macro): Use RAII.  Clear all of the
macro_locations.

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

7 years agoMake ext allocators support heterogeneous equality comparison
redi [Thu, 11 Oct 2018 11:32:29 +0000 (11:32 +0000)] 
Make ext allocators support heterogeneous equality comparison

The Allocator requirements include the ability to compare different
specializations of the same allocator class template. This did not work
for __gnu_cxx::new_allocator and other extension allocators.  This patch
replaces the equality operators for those allocators with inline friends
that support heterogeneous comparisons.  (I'm not changing all ext
allocators because some are bit-rotted already).

Additionally, the equality operators for comparing two std::allocator
objects of the same type are now defined as inline friends. Those
overloads don't need to be declared at namespace scope, because they
aren't specified in the standard (but they're needed in this
implementation to avoid ambiguities caused by the extra overloads
defined for the base allocator type).

* include/bits/allocator.h
(operator==(const allocator<_Tp>&, const allocator<_Tp>))
(operator!=(const allocator<_Tp>&, const allocator<_Tp>)): Replace
with inline friends.
* include/ext/debug_allocator.h (operator==, operator!=): Replace
with inline friend functions that compare to rebound allocators.
* include/ext/malloc_allocator.h (operator==, operator!=): Likewise.
* include/ext/new_allocator.h (operator==, operator!=): Likewise.
* testsuite/ext/debug_allocator/eq.cc: New test.
* testsuite/ext/ext_pointer/alloc_eq.cc: New test.
* testsuite/ext/malloc_allocator/eq.cc: New test.
* testsuite/ext/new_allocator/eq.cc: New test.

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

7 years ago[testsuite] Further fixes to warn-abs-1.c
jamborm [Thu, 11 Oct 2018 08:53:49 +0000 (08:53 +0000)] 
[testsuite] Further fixes to warn-abs-1.c

2018-10-11  Martin Jambor  <mjambor@suse.cz>

testsuite/
* gcc.dg/warn-abs-1.c: Guard tests assuming size of long double is
greater that the size of double by target large_long double.

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

7 years ago * c-lex.c (c_common_has_attribute): Return 201803 instead of 20180312
jakub [Thu, 11 Oct 2018 07:13:55 +0000 (07:13 +0000)] 
* c-lex.c (c_common_has_attribute): Return 201803 instead of 20180312
for no_unique_address.

* g++.dg/cpp2a/feat-cxx2a.C: New test.

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

7 years ago PR c++/87547
jakub [Thu, 11 Oct 2018 07:07:22 +0000 (07:07 +0000)] 
PR c++/87547
* rtti.c (get_tinfo_decl_dynamic): Use unlowered_expr_type instead
of TREE_TYPE.

* g++.dg/rtti/typeid12.C: New test.

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

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

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

7 years ago PR middle-end/87574
ebotcazou [Wed, 10 Oct 2018 22:54:04 +0000 (22:54 +0000)] 
PR middle-end/87574
* cgraphunit.c (cgraph_node::expand_thunk): Force DECL_IGNORED_P on
the thunk when expanding to GIMPLE.

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

7 years ago PR c++/87567 - constexpr rejects call to non-constexpr function.
mpolacek [Wed, 10 Oct 2018 21:11:18 +0000 (21:11 +0000)] 
PR c++/87567 - constexpr rejects call to non-constexpr function.
* constexpr.c (potential_constant_expression_1) <case FOR_STMT>: Return
true if the condition is always false.
<case WHILE_STMT>: Likewise.

* g++.dg/cpp1y/constexpr-loop7.C: New test.

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

7 years agoFat-fingered my recent patch adding the SSE3 testcases for powerpc,
pc [Wed, 10 Oct 2018 20:52:48 +0000 (20:52 +0000)] 
Fat-fingered my recent patch adding the SSE3 testcases for powerpc,
most likely by twice applying the patch which added the testcases.

This patch removes the duplicated code.

[gcc/testsuite]

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

PR target/87579
* gcc.target/powerpc/sse3-check.h: Remove duplicated code.
* gcc.target/powerpc/sse3-addsubps.c: Likewise.
* gcc.target/powerpc/sse3-addsubpd.c: Likewise.
* gcc.target/powerpc/sse3-haddps.c: Likewise.
* gcc.target/powerpc/sse3-hsubps.c: Likewise.
* gcc.target/powerpc/sse3-haddpd.c: Likewise.
* gcc.target/powerpc/sse3-hsubpd.c: Likewise.
* gcc.target/powerpc/sse3-lddqu.c: Likewise.
* gcc.target/powerpc/sse3-movsldup.c: Likewise.
* gcc.target/powerpc/sse3-movshdup.c: Likewise.
* gcc.target/powerpc/sse3-movddup.c: Likewise.
* gcc.target/powerpc/pr37191.c: Likewise.

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

7 years ago2018-10-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Wed, 10 Oct 2018 18:32:47 +0000 (18:32 +0000)] 
2018-10-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * varasm.c (mergeable_string_section): Don't try to move zero-length
        strings to the merge section.

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

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