gcc.git
5 years agoPR c++/88761 - ICE with reference capture of constant.
Jason Merrill [Sat, 2 Feb 2019 04:21:06 +0000 (23:21 -0500)]
PR c++/88761 - ICE with reference capture of constant.

Here, we capture nf, then the use of the proxy decays to a constant during
semantic processing of +nf.  Since we saw some decay from proxy to constant,
we walk through the lambda body to see which proxies are still used, but we
weren't walking into subtrees of DECL_EXPR at all, so we missed the use of
&nf in the initializer of y, and removed the capture.  But then at
instantiation time we try to use nf, don't have a proxy anymore, and ICE.

* lambda.c (mark_const_cap_r): Do walk subtrees of DECL_EXPR for
non-proxy decls.

From-SVN: r268471

5 years ago* nsdmi-template14.C: Expect error for last example.
Jason Merrill [Sat, 2 Feb 2019 04:19:00 +0000 (23:19 -0500)]
* nsdmi-template14.C: Expect error for last example.

From-SVN: r268470

5 years agoDaily bump.
GCC Administrator [Sat, 2 Feb 2019 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268469

5 years agore PR middle-end/87887 (ICE in make_ssa_name_fn, at tree-ssanames.c:269)
Jakub Jelinek [Sat, 2 Feb 2019 00:04:39 +0000 (01:04 +0100)]
re PR middle-end/87887 (ICE in make_ssa_name_fn, at tree-ssanames.c:269)

PR middle-end/87887
* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
Punt with warning on aggregate return or argument types.  Ignore
type/mode checking for uniform arguments.

* gcc.dg/gomp/pr87887-1.c: New test.
* gcc.dg/gomp/pr87887-2.c: New test.

From-SVN: r268466

5 years agoruntime: add hurd netpoll and semaphore support
Ian Lance Taylor [Fri, 1 Feb 2019 23:57:08 +0000 (23:57 +0000)]
runtime: add hurd netpoll and semaphore support

    Patch by Svante Signell.

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

From-SVN: r268465

5 years agoRegenerate .pot files.
Joseph Myers [Fri, 1 Feb 2019 23:04:22 +0000 (23:04 +0000)]
Regenerate .pot files.

gcc/po:
* gcc.pot: Regenerate.

libcpp/po:
* cpplib.pot: Regenerate.

From-SVN: r268464

5 years agoruntime: add getproccount for hurd
Ian Lance Taylor [Fri, 1 Feb 2019 22:55:55 +0000 (22:55 +0000)]
runtime: add getproccount for hurd

    Patch by Svante Signell.

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

From-SVN: r268463

5 years agore PR fortran/83246 (internal compiler error or loader problem might be related to...
Jakub Jelinek [Fri, 1 Feb 2019 22:54:05 +0000 (23:54 +0100)]
re PR fortran/83246 (internal compiler error or loader problem might be related to a PARAMETER statement being in a BLOCK)

PR fortran/83246
PR fortran/89084
* trans-decl.c (generate_local_decl): Add referenced FL_PARAMETERs
if sym->ns->construct_entities rather than if
sym->ns->parent->code->op == EXEC_BLOCK.

* gfortran.dg/pr89084.f90: New test.
* gfortran.dg/lto/pr89084_0.f90: New test.
* gfortran.dg/pr83246.f90: New test.

From-SVN: r268462

5 years agolibgo: add configury and sysinfo support for hurd
Ian Lance Taylor [Fri, 1 Feb 2019 22:46:39 +0000 (22:46 +0000)]
libgo: add configury and sysinfo support for hurd

    Patch by Svante Signell.

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

From-SVN: r268461

5 years agolibgo: add hurd build tags to test files
Ian Lance Taylor [Fri, 1 Feb 2019 22:11:50 +0000 (22:11 +0000)]
libgo: add hurd build tags to test files

    Patch by Svante Signell.

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

From-SVN: r268460

5 years agolibgo: add hurd build tags
Ian Lance Taylor [Fri, 1 Feb 2019 21:57:36 +0000 (21:57 +0000)]
libgo: add hurd build tags

    Patch by Svante Signell.

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

From-SVN: r268459

5 years agoruntime, sync: use __atomic intrinsics instead of __sync
Ian Lance Taylor [Fri, 1 Feb 2019 21:55:38 +0000 (21:55 +0000)]
runtime, sync: use __atomic intrinsics instead of __sync

    GCC has supported the __atomic intrinsics since 4.7.  They are better
    than the __sync intrinsics in that they specify a memory model and,
    more importantly for our purposes, they are reliably implemented
    either in the compiler or in libatomic.

    Fixes https://gcc.gnu.org/PR52084

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

From-SVN: r268458

5 years agoPR c++/88325 - ICE with invalid out-of-line template member definition.
Marek Polacek [Fri, 1 Feb 2019 19:58:44 +0000 (19:58 +0000)]
PR c++/88325 - ICE with invalid out-of-line template member definition.

* parser.c (cp_parser_class_name): Don't call make_typename_type
for overloads.

* g++.dg/cpp2a/typename14.C: New test.

From-SVN: r268455

5 years agocombine: Use TDF_DETAILS for "can't combine" dump prints
Segher Boessenkool [Fri, 1 Feb 2019 16:26:48 +0000 (17:26 +0100)]
combine: Use TDF_DETAILS for "can't combine" dump prints

Some people use the -fdump-rtl-combine dumps (instead of the -da or
-fdump-rtl-combine-all dump), but the "Can't combine iN into iM"
messages do not make any sense if the failed combine attempts are not
printed otherwise.  So let's change that.

* combine.c (try_combine): Do not print "Can't combine" messages unless
printing failed combination attempts.

From-SVN: r268453

5 years ago[PR hsa/87863] Set assembler name of group and global variables early
Martin Jambor [Fri, 1 Feb 2019 16:22:13 +0000 (17:22 +0100)]
[PR hsa/87863] Set assembler name of group and global variables early

2019-02-01  Martin Jambor  <mjambor@suse.cz>

PR hsa/87863
* omp-grid.c (grid_mark_variable_segment): Set assembler name of group
segment and global segment variables before making them static.

From-SVN: r268452

5 years agoAdd two missing dump_enabled_p calls
Martin Jambor [Fri, 1 Feb 2019 16:15:36 +0000 (17:15 +0100)]
Add two missing dump_enabled_p calls

2019-02-01  Martin Jambor  <mjambor@suse.cz>

* omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
missed optimization dump with dump_enabled_p.

From-SVN: r268451

5 years agocompiler: support alias to pointer type as receiver in method declaration
Ian Lance Taylor [Fri, 1 Feb 2019 15:00:46 +0000 (15:00 +0000)]
compiler: support alias to pointer type as receiver in method declaration

    Fixes golang/go#27994.

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

From-SVN: r268450

5 years agore PR tree-optimization/88597 (Compile time hog w/ -O1 -fpeel-loops)
Richard Biener [Fri, 1 Feb 2019 13:41:43 +0000 (13:41 +0000)]
re PR tree-optimization/88597 (Compile time hog w/ -O1 -fpeel-loops)

2019-02-01  Richard Biener  <rguenther@suse.de>

PR middle-end/88597
* tree-scalar-evolution.c (analyze_scalar_evolution): Set up
the instantiate cache.
(instantiate_scev_binary): Elide second operand procesing
if equal to the first.
* tree-chrec.c (chrec_contains_symbols): Add visited set.
(chrec_contains_undetermined): Likewise.
(tree_contains_chrecs): Likewise.

* gcc.dg/torture/pr88597.c: New testcase.

From-SVN: r268449

5 years ago* parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
Jan Hubicka [Fri, 1 Feb 2019 10:46:36 +0000 (11:46 +0100)]
* parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.

From-SVN: r268448

5 years agore PR tree-optimization/85497 ([graphite] ICE in set_codegen_error, at graphite-isl...
Richard Biener [Fri, 1 Feb 2019 09:17:14 +0000 (09:17 +0000)]
re PR tree-optimization/85497 ([graphite] ICE in set_codegen_error, at graphite-isl-ast-to-gimple.c:206)

2019-02-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/85497
* gcc.dg/graphite/pr85497.c: New testcase.

From-SVN: r268447

5 years agore PR debug/87451 (FAIL: gcc.dg/debug/dwarf2/inline5.c)
Richard Biener [Fri, 1 Feb 2019 09:08:55 +0000 (09:08 +0000)]
re PR debug/87451 (FAIL: gcc.dg/debug/dwarf2/inline5.c)

2019-02-01  Richard Biener  <rguenther@suse.de>

PR testsuite/87451
* gcc.dg/debug/dwarf2/inline5.c: Allow more comment variants.

From-SVN: r268446

5 years agore PR tree-optimization/89143 (comparison of abs(i) against excessive constant less...
Jakub Jelinek [Fri, 1 Feb 2019 08:44:23 +0000 (09:44 +0100)]
re PR tree-optimization/89143 (comparison of abs(i) against excessive constant less than UXXX_MAX no longer folded)

PR tree-optimization/89143
* wide-int-range.h (wide_int_range_absu): Declare.
* wide-int-range.cc (wide_int_range_absu): New function.
* tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.

* gcc.dg/tree-ssa/vrp121.c: New test.

From-SVN: r268445

5 years agore PR tree-optimization/88107 (ICE in find_outermost_region_in_block, at tree-cfg...
Jakub Jelinek [Fri, 1 Feb 2019 08:43:02 +0000 (09:43 +0100)]
re PR tree-optimization/88107 (ICE in find_outermost_region_in_block, at tree-cfg.c:7157)

PR tree-optimization/88107
* tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
instead of assertion that eh_region_outermost is non-NULL, if it
is NULL, set *ALL to true and return NULL.
(move_sese_region_to_fn): Adjust caller, if all is set, call
duplicate_eh_regions with NULL region.

* gcc.dg/gomp/pr88107.c: New test.

From-SVN: r268444

5 years agore PR c++/87175 (__attribute__)) is ignored by the parser)
Jakub Jelinek [Fri, 1 Feb 2019 08:42:01 +0000 (09:42 +0100)]
re PR c++/87175 (__attribute__)) is ignored by the parser)

PR c++/87175
* parser.c (cp_parser_gnu_attributes_opt): Set ok to false
if require_open failed.

* g++.dg/ext/attrib57.C: New test.

From-SVN: r268443

5 years agore PR rtl-optimization/88593 (cleanup_cfg may make cached dominance info stale)
Richard Biener [Fri, 1 Feb 2019 08:07:35 +0000 (08:07 +0000)]
re PR rtl-optimization/88593 (cleanup_cfg may make cached dominance info stale)

2019-02-01  Richard Biener  <rguenth@suse.de>

PR rtl-optimization/88593
* mode-switching.c (optimize_mode_switching): Free dominators before
calling cleanup_cfg.

From-SVN: r268442

5 years agore PR tree-optimization/88932 (ICE: verify_ssa failed (Error: definition in block...
Bin Cheng [Fri, 1 Feb 2019 02:39:52 +0000 (02:39 +0000)]
re PR tree-optimization/88932 (ICE: verify_ssa failed (Error: definition in block 29 does not dominate use in block 25))

PR tree-optimization/88932
* tree-predcom.c (try_combine_chains): Get loop bbs in dom order.

gcc/testsuite
* gfortran.dg/pr88932.f90: New test.

From-SVN: r268439

5 years agoPR c++/88983 - ICE with switch in constexpr function.
Marek Polacek [Fri, 1 Feb 2019 00:30:46 +0000 (00:30 +0000)]
PR c++/88983 - ICE with switch in constexpr function.

* constexpr.c (cxx_eval_switch_expr): Use SWITCH_COND and SWITCH_BODY.
(cxx_eval_constant_expression) <case COND_EXPR>: Don't look for the
label in the else branch if we found it in the then branch.

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

From-SVN: r268438

5 years agoDaily bump.
GCC Administrator [Fri, 1 Feb 2019 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268437

5 years agore PR middle-end/89137 (gcc/omp-low.c:7135: possible read of uninit memory ?)
Jakub Jelinek [Thu, 31 Jan 2019 23:05:01 +0000 (00:05 +0100)]
re PR middle-end/89137 (gcc/omp-low.c:7135: possible read of uninit memory ?)

PR middle-end/89137
* omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
bogus clang warning.

From-SVN: r268434

5 years ago* libgfortran/ChangeLog: Better commit message for my last commit.
Uros Bizjak [Thu, 31 Jan 2019 22:59:36 +0000 (23:59 +0100)]
* libgfortran/ChangeLog: Better commit message for my last commit.

From-SVN: r268433

5 years agore PR fortran/88669 (Contiguous attribute wrongly rejected)
Thomas Koenig [Thu, 31 Jan 2019 22:21:28 +0000 (22:21 +0000)]
re PR fortran/88669 (Contiguous attribute wrongly rejected)

2019-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/88669
* resolve.c (resolve_component): If the reference is a BT_CLASS,
copy the contiguous attribute from the reference and use the
correct attributes.

2019-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/88669
* gfortran.dg/contiguous_9.f90: New test.

From-SVN: r268432

5 years agot-linux: Add -mfp-rounding-mode=d to HOST_LIBGCC2_CFLAGS.
Uros Bizjak [Thu, 31 Jan 2019 20:49:02 +0000 (21:49 +0100)]
t-linux: Add -mfp-rounding-mode=d to HOST_LIBGCC2_CFLAGS.

* config/alpha/t-linux: Add -mfp-rounding-mode=d
to HOST_LIBGCC2_CFLAGS.

From-SVN: r268430

5 years agoPR c++/89083, c++/80864 - ICE with list initialization in template.
Marek Polacek [Thu, 31 Jan 2019 20:21:11 +0000 (20:21 +0000)]
PR c++/89083, c++/80864 - ICE with list initialization in template.

* constexpr.c (adjust_temp_type): Use copy_node and change the type
instead of using build_constructor.
* decl.c (reshape_init_r): Don't reshape a digested initializer.
Return the initializer for COMPOUND_LITERAL_P.

* g++.dg/cpp0x/initlist107.C: New test.
* g++.dg/cpp0x/initlist108.C: New test.
* g++.dg/cpp0x/initlist109.C: New test.
* g++.dg/cpp0x/initlist110.C: New test.
* g++.dg/cpp0x/initlist111.C: New test.
* g++.dg/cpp0x/initlist112.C: New test.
* g++.dg/init/ptrfn4.C: New test.

From-SVN: r268428

5 years agore PR target/89071 (AVX vcvtsd2ss lets us avoid PXOR dependency breaking for scalar...
Uros Bizjak [Thu, 31 Jan 2019 20:06:42 +0000 (21:06 +0100)]
re PR target/89071 (AVX vcvtsd2ss lets us avoid PXOR dependency breaking for scalar float<->double and other scalar xmm,xmm instructions)

PR target/89071
* config/i386/i386.md (*extendsfdf2): Split out reg->reg
alternative to avoid partial SSE register stall for TARGET_AVX.
(truncdfsf2): Ditto.
(sse4_1_round<mode>2): Ditto.

From-SVN: r268427

5 years agoFix bogus fix-it for FLT_MAX (PR c/89122)
David Malcolm [Thu, 31 Jan 2019 18:09:29 +0000 (18:09 +0000)]
Fix bogus fix-it for FLT_MAX (PR c/89122)

PR c/89122 reports that we emit a bogus fix-it hint for the case where
the code uses FLT_MAX, but has included <limits.h> rather than <float.h>:

x.c:3:11: error: 'FLT_MAX' undeclared here (not in a function); did you
  mean 'INT_MAX'?
    3 | float f = FLT_MAX;
      |           ^~~~~~~
      |           INT_MAX

This patch adds some knowledge of <float.h> (and <cfloat>) to
known-headers.cc, fixing the issue:

x.c:3:11: error: 'FLT_MAX' undeclared here (not in a function)
    3 | float f = FLT_MAX;
      |           ^~~~~~~
x.c:2:1: note: 'FLT_MAX' is defined in header '<float.h>'; did you forget
  to '#include <float.h>'?
    1 | #include <limits.h>
  +++ |+#include <float.h>
    2 |

gcc/c-family/ChangeLog:
PR c/89122
* known-headers.cc (get_stdlib_header_for_name): Add
{FLT|DBL|LDBL}_{MAX|MIN} to "hints" array.

gcc/testsuite/ChangeLog:
PR c/89122
* g++.dg/spellcheck-stdlib.C (test_FLT_MAX): New test.
* gcc.dg/spellcheck-stdlib.c (test_FLT_MAX): New test.

From-SVN: r268426

5 years agoPR c++/88752 - ICE with lambda and constexpr if.
Jason Merrill [Thu, 31 Jan 2019 15:03:21 +0000 (10:03 -0500)]
PR c++/88752 - ICE with lambda and constexpr if.

In this testcase, we look for an instantiation of the outer lambda from
within the inner lambda.  enclosing_instantiation_of didn't handle this
properly, as it assumed that any references would be from the same lambda
nesting depth.  Fixed thus.

* cp-tree.h (LAMBDA_EXPR_INSTANTIATED): New.
* pt.c (tsubst_lambda_expr): Set it.
(instantiated_lambda_fn_p): Check it.
(enclosing_instantiation_of): Use it.

From-SVN: r268424

5 years agore PR middle-end/89008 (O2 and O1 results differ for simple test)
Bill Schmidt [Thu, 31 Jan 2019 13:53:06 +0000 (13:53 +0000)]
re PR middle-end/89008 (O2 and O1 results differ for simple test)

2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>

PR tree-optimization/89008
* gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
process anything of the form X * 0.

From-SVN: r268422

5 years ago[libbacktrace] Fix .gnu_debugaltlink build-id check
Tom de Vries [Thu, 31 Jan 2019 12:17:32 +0000 (12:17 +0000)]
[libbacktrace] Fix .gnu_debugaltlink build-id check

The 'debugaltlink_name_len =+ 1' bug reported in PR89136 exposes the fact that
the build-id is not verified for the .gnu_debugaltlink.

Fix both problems.

2019-01-31  Tom de Vries  <tdevries@suse.de>

PR libbacktrace/89136
* elf.c (elf_add): Read build-id if with_buildid_data.  Fix
'debugaltlink_name_len =+ 1'.

From-SVN: r268419

5 years agore PR tree-optimization/89135 (internal compiler error: in gimple_split_edge, at...
Richard Biener [Thu, 31 Jan 2019 11:51:59 +0000 (11:51 +0000)]
re PR tree-optimization/89135 (internal compiler error: in gimple_split_edge, at tree-cfg.c:2747)

2019-01-31  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89135
* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
with abnormal preds.

* gcc.dg/torture/pr89135.c: New testcase.

From-SVN: r268417

5 years agore PR sanitizer/89124 (__attribute__((no_sanitize_address)) interferes with __attribu...
Jakub Jelinek [Thu, 31 Jan 2019 08:20:45 +0000 (09:20 +0100)]
re PR sanitizer/89124 (__attribute__((no_sanitize_address)) interferes with __attribute__((target(xxx))))

PR sanitizer/89124
* ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
always_inline callees into no_sanitize_address callers.

* c-c++-common/asan/pr89124.c: New test.

From-SVN: r268415

5 years agore PR rtl-optimization/89115 (compile time and memory hog)
Richard Biener [Thu, 31 Jan 2019 08:09:59 +0000 (08:09 +0000)]
re PR rtl-optimization/89115 (compile time and memory hog)

2019-01-31  Richard Biener  <rguenther@suse.de>

PR rtl-optimization/89115
* lra.c (lra_rtx_hash): Properly hash CONST_INT values.

From-SVN: r268414

5 years agore PR libstdc++/88170 (pretty printer FAILs)
Jakub Jelinek [Thu, 31 Jan 2019 07:37:34 +0000 (08:37 +0100)]
re PR libstdc++/88170 (pretty printer FAILs)

PR libstdc++/88170
* c-pretty-print.c (pp_c_enumeration_constant): Print always as
a C cast in pp_c_flag_gnu_v3 mode.

* cxx-pretty-print.c (pp_cxx_enumeration_constant): Print always as
a C cast in pp_c_flag_gnu_v3 mode.

From-SVN: r268413

5 years agore PR fortran/52564 (Accepts invalid: Missing I/O list after comma)
Jerry DeLisle [Thu, 31 Jan 2019 03:37:16 +0000 (03:37 +0000)]
re PR fortran/52564 (Accepts invalid: Missing I/O list after comma)

2019-01-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/52564
* io.c (match_io): Add check for comma after '*' without subsequent
IO list.

* gfortran.dg/print_2.f90: New test.

From-SVN: r268412

5 years agoPR other/89106 - cast-to-union documentation incorrect w.r.t. lvalueness
Martin Sebor [Thu, 31 Jan 2019 02:33:58 +0000 (02:33 +0000)]
PR other/89106 - cast-to-union documentation incorrect w.r.t. lvalueness

gcc/ChangeLog:

PR other/89106
* doc/extend.texi (cast to a union): Correct and expand.

From-SVN: r268411

5 years agoDaily bump.
GCC Administrator [Thu, 31 Jan 2019 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268410

5 years agore PR c++/88988 (ICE: Segmentation fault (in lookup_name_real_1))
Jakub Jelinek [Wed, 30 Jan 2019 23:28:53 +0000 (00:28 +0100)]
re PR c++/88988 (ICE: Segmentation fault (in lookup_name_real_1))

PR c++/88988
* lambda.c (is_capture_proxy): Don't return true for
DECL_OMP_PRIVATIZED_MEMBER artificial vars.

* testsuite/libgomp.c++/pr88988.C: New test.

From-SVN: r268407

5 years agoPR libstdc++/89117 fix path::replace_extension("") case
Jonathan Wakely [Wed, 30 Jan 2019 23:18:22 +0000 (23:18 +0000)]
PR libstdc++/89117 fix path::replace_extension("") case

Previously the operator+=(extension) call would have re-parsed the path
and recreated the components with the right extension. Since optimising
it to not re-parse the whole string, we need to actually remove the
extension from the final filename before appending anything to it, and
append the dot to that final component too.

PR libstdc++/89117
* src/c++17/fs_path.cc (path::replace_extension): Erase extension from
final component as well as from _M_pathname. Append the dot using
operator+= instead of only to _M_pathname.
(path::_M_find_extension): Reformat slightly.
* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
Add more test cases.

From-SVN: r268406

5 years agosfp-exceptions.c (__sfp_handle_exceptions): Remove stray semicolon.
Uros Bizjak [Wed, 30 Jan 2019 23:09:40 +0000 (00:09 +0100)]
sfp-exceptions.c (__sfp_handle_exceptions): Remove stray semicolon.

* config/i386/sfp-exceptions.c (__sfp_handle_exceptions):
Remove stray semicolon.

From-SVN: r268405

5 years agore PR rtl-optimization/87246 (ICE in decompose_normal_address, at rtlanal.c:6379)
Vladimir Makarov [Wed, 30 Jan 2019 21:49:23 +0000 (21:49 +0000)]
re PR rtl-optimization/87246 (ICE in decompose_normal_address, at rtlanal.c:6379)

2019-01-30  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/87246
* lra-constraints.c (simplify_operand_subreg): Reload memory
in subreg if the address became invalid.

2019-01-30  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/87246
* gcc.target/i386/pr87246.c: New.

From-SVN: r268404

5 years agore PR target/87064 (libgomp.oacc-fortran/reduction-3.f90 fails starting with r263751)
Bill Schmidt [Wed, 30 Jan 2019 20:52:08 +0000 (20:52 +0000)]
re PR target/87064 (libgomp.oacc-fortran/reduction-3.f90 fails starting with r263751)

2019-01-30  Bill Schmidt  <wschmidt@linux.ibm.com>

PR target/87064
* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
Disable for little-endian.

From-SVN: r268403

5 years agore PR fortran/88678 (Many gfortran.dg/ieee/ieee_X.f90 test cases fail starting with...
Uros Bizjak [Wed, 30 Jan 2019 20:44:35 +0000 (21:44 +0100)]
re PR fortran/88678 (Many gfortran.dg/ieee/ieee_X.f90 test cases fail starting with r267465)

PR fortran/88678
* config/fpu-glibc.h (support_fpu_trap): Do not try to enable
exceptions to determine if exception is supported.

From-SVN: r268402

5 years agoPR c++/89119 - ICE with value-initialization in template.
Marek Polacek [Wed, 30 Jan 2019 19:04:05 +0000 (19:04 +0000)]
PR c++/89119 - ICE with value-initialization in template.

* pt.c (tsubst_copy_and_build): Handle RANGE_EXPR.

* g++.dg/cpp0x/initlist-value3.C: New test.

From-SVN: r268400

5 years ago* doc/xml/manual/status_cxx2020.xml: Update P0600 entry.
Ulrich Drepper [Wed, 30 Jan 2019 16:23:44 +0000 (16:23 +0000)]
* doc/xml/manual/status_cxx2020.xml: Update P0600 entry.

From-SVN: r268398

5 years agocompiler: support alias to pointer type as method receiver
Ian Lance Taylor [Wed, 30 Jan 2019 15:57:46 +0000 (15:57 +0000)]
compiler: support alias to pointer type as method receiver

    Fixes golang/go#28252.

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

From-SVN: r268397

5 years agore PR fortran/52884 (double precision constants promoted to 16 byte by -fdefault...
Dominique d'Humieres [Wed, 30 Jan 2019 15:53:51 +0000 (16:53 +0100)]
re PR fortran/52884 (double precision constants promoted to 16 byte by -fdefault-real-8)

2019-01-30  Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR fortran/52884
* invoke.texi: Document the promotion of double precision
constants.

From-SVN: r268396

5 years agore PR rtl-optimization/89115 (compile time and memory hog)
Richard Biener [Wed, 30 Jan 2019 15:11:04 +0000 (15:11 +0000)]
re PR rtl-optimization/89115 (compile time and memory hog)

2019-01-30  Richard Biener  <rguenther@suse.de>

PR rtl-optimization/89115
* opts.c (default_options_optimization): Reduce
PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
to the default.

From-SVN: r268394

5 years agore PR fortran/88678 (Many gfortran.dg/ieee/ieee_X.f90 test cases fail starting with...
Uros Bizjak [Wed, 30 Jan 2019 15:04:06 +0000 (16:04 +0100)]
re PR fortran/88678 (Many gfortran.dg/ieee/ieee_X.f90 test cases fail starting with r267465)

PR fortran/88678
* config/fpu-glibc.h (set_fpu_trap_exceptions): Clear stalled
exception flags before changing trap mode.  Optimize to call
feenableexcept and fedisableexcept only once.

From-SVN: r268392

5 years agors6000-c.c (altivec-resolve_overloaded_builtin): Change handling of ALTIVEC_BUILTIN_V...
Kelvin Nilsen [Wed, 30 Jan 2019 15:01:40 +0000 (15:01 +0000)]
rs6000-c.c (altivec-resolve_overloaded_builtin): Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.

gcc/ChangeLog:

2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.  Coerce result to
type of vector element when vec_extract is implemented by direct
move.

gcc/testsuite/ChangeLog:

2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/vec-extract-schar-1.c: New test.
* gcc.target/powerpc/vec-extract-sint-1.c: New test.
* gcc.target/powerpc/vec-extract-sint128-1.c: New test.
* gcc.target/powerpc/vec-extract-slong-1.c: New test.
* gcc.target/powerpc/vec-extract-sshort-1.c: New test.
* gcc.target/powerpc/vec-extract-uchar-1.c: New test.
* gcc.target/powerpc/vec-extract-uint-1.c: New test.
* gcc.target/powerpc/vec-extract-uint128-1.c: New test.
* gcc.target/powerpc/vec-extract-ulong-1.c: New test.
* gcc.target/powerpc/vec-extract-ushort-1.c: New test.

From-SVN: r268391

5 years agoDefault compute dimensions: list "-fopenacc-dim" in documentation
Thomas Schwinge [Wed, 30 Jan 2019 14:40:10 +0000 (15:40 +0100)]
Default compute dimensions: list "-fopenacc-dim" in documentation

gcc/
* doc/invoke.texi (C Language Options): List "-fopenacc-dim".

From-SVN: r268390

5 years agore PR tree-optimization/89111 (wrong code at -O1 and above on x86_64-linux-gnu)
Richard Biener [Wed, 30 Jan 2019 12:41:13 +0000 (12:41 +0000)]
re PR tree-optimization/89111 (wrong code at -O1 and above on x86_64-linux-gnu)

2019-01-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89111
* tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
canonicalization to appropriately sized access types.

* gcc.dg/torture/pr89111.c: New testcase.

From-SVN: r268388

5 years agoCache effective-target llvm_binutils result.
Andrew Stubbs [Wed, 30 Jan 2019 11:26:31 +0000 (11:26 +0000)]
Cache effective-target llvm_binutils result.

2019-01-30  Andrew Stubbs  <ams@codesourcery.com>

PR testsuite/88920

gcc/testsuite/
* lib/target-supports.exp: Cache result.

From-SVN: r268384

5 years agore PR c++/89105 (-Wabi warns for functions with internal linkage)
Jakub Jelinek [Wed, 30 Jan 2019 07:51:24 +0000 (08:51 +0100)]
re PR c++/89105 (-Wabi warns for functions with internal linkage)

PR c++/89105
* config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
for arguments to functions that are TU-local and shouldn't be
referenced by assembly.

* g++.target/i386/pr89105.C: New test.

From-SVN: r268382

5 years agore PR c/89061 (GCC 9 introduces false positive in -Wjump-misses-init)
Jakub Jelinek [Wed, 30 Jan 2019 07:49:58 +0000 (08:49 +0100)]
re PR c/89061 (GCC 9 introduces false positive in -Wjump-misses-init)

PR c/89061
* c-tree.h (C_DECL_COMPOUND_LITERAL_P): Define.
* c-decl.c (decl_jump_unsafe): Return false for
C_DECL_COMPOUND_LITERAL_P decls.
(build_compound_literal): Set C_DECL_COMPOUND_LITERAL_P.

* gcc.dg/pr89061.c: New test.

From-SVN: r268381

5 years agodumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears after '='.
Ulrich Drepper [Wed, 30 Jan 2019 07:18:22 +0000 (07:18 +0000)]
dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears after '='.

* dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
after '='.

From-SVN: r268380

5 years agoPR middle-end/88956 - ICE: Floating point exception on a memcpy from
Martin Sebor [Wed, 30 Jan 2019 03:04:14 +0000 (03:04 +0000)]
PR middle-end/88956 - ICE: Floating point exception on a memcpy from

PR middle-end/88956 - ICE: Floating point exception on a memcpy from
a zero-length constant array

gcc/ChangeLog:

PR c/88956
* gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.

gcc/testsuite/ChangeLog:

PR c/88956
* gcc.dg/Warray-bounds-39.c: New test.

From-SVN: r268378

5 years agoPR c++/86943 - wrong code converting lambda to function pointer.
Jason Merrill [Wed, 30 Jan 2019 02:43:04 +0000 (21:43 -0500)]
PR c++/86943 - wrong code converting lambda to function pointer.

In this PR, instantiating the static thunk returned from the generic lambda
conversion function template was using normal overload resolution, which
meant calling an extra constructor when forwarding its argument.  Fixed by
special-casing thunk calls significantly more.

* lambda.c (maybe_add_lambda_conv_op): Use a template-id in the
call.  Only forward parms for decltype.
* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Handle CALL_FROM_THUNK_P
specially.
* typeck.c (check_return_expr): Don't mess with a thunk call.

From-SVN: r268377

5 years agore PR testsuite/89110 (r268343 breaks several tests in c++2a)
Marek Polacek [Wed, 30 Jan 2019 02:32:33 +0000 (02:32 +0000)]
re PR testsuite/89110 (r268343 breaks several tests in c++2a)

PR testsuite/89110
* g++.dg/other/nontype-1.C: Expect error in all modes.
* g++.dg/parse/crash13.C: Likewise.
* g++.dg/parse/error36.C: Likewise.
* g++.dg/template/error29.C: Likewise.

From-SVN: r268376

5 years agoDaily bump.
GCC Administrator [Wed, 30 Jan 2019 00:16:31 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268375

5 years agore PR fortran/57048 (Handling of C_PTR and C_FUNPTR leads to reject valid)
Thomas Koenig [Tue, 29 Jan 2019 22:40:26 +0000 (22:40 +0000)]
re PR fortran/57048 (Handling of C_PTR and C_FUNPTR leads to reject valid)

2019-01-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/57048
* interface.c (gfc_compare_types): If a derived type and an
integer both have a derived type, and they are identical,
this is a C binding type and compares equal.

2019-01-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/57048
* gfortran.dg/c_funptr_1.f90: New file.
* gfortran.dg/c_funptr_1_mod.f90: New file.

From-SVN: r268372

5 years agore PR c++/66676 (pragma omp simd aligned(x) results in "internal compiler error:...
Jakub Jelinek [Tue, 29 Jan 2019 21:09:41 +0000 (22:09 +0100)]
re PR c++/66676 (pragma omp simd aligned(x) results in "internal compiler error: Segmentation fault")

PR c++/66676
PR ipa/89104
* omp-simd-clone.c (simd_clone_clauses_extract)
<case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
OMP_CLAUSE_ALIGNED_ALIGNMENT.

* gcc.dg/gomp/pr89104.c: New test.

From-SVN: r268370

5 years ago[libbacktrace] Add test-cases exercising build-id and dwz
Tom de Vries [Tue, 29 Jan 2019 16:25:46 +0000 (16:25 +0000)]
[libbacktrace] Add test-cases exercising build-id and dwz

Add test-cases b2test_buildid and b3test_dwz_buildid.

The last one triggers the segfault fixed by "[backtrace] Avoid segfault"
( r268275 ).

2019-01-29  Tom de Vries  <tdevries@suse.de>

* install-debuginfo-for-buildid.sh.in: New script.
* Makefile.am (check_PROGRAMS): Add b2test and b3test.
(TESTS): Add b2test_buildid and b3test_dwz_buildid.
* Makefile.in: Regenerate.
* configure.ac (HAVE_ELF): Set with AM_CONDITIONAL.
(READELF): Set with AC_CHECK_PROG.
(install-debuginfo-for-buildid.sh): Generate with AC_CONFIG_FILES.
* configure: Regenerate.
* elf.c (SYSTEM_BUILD_ID_DIR): Factor out of ...
(elf_open_debugfile_by_buildid): ... here.

From-SVN: r268369

5 years agoPR c++/89089 - ICE with [[no_unique_address]].
Jason Merrill [Tue, 29 Jan 2019 15:39:40 +0000 (10:39 -0500)]
PR c++/89089 - ICE with [[no_unique_address]].

In 89089, we were never actually setting DECL_SIZE on an empty data member,
because its type is a POD, so we didn't set it in the maybe-overlapping
section.  Fixed by also handling empty types there.

In 88865, we were failing to consider empty data members in
include_empty_classes.  Fixed by making end_of_class always include them.

While looking at these I noticed that the ABI says that a
potentially-overlapping data member makes its class non-layout-POD, and that
an empty data member doesn't prevent its class from being empty, so I've
implemented those points as well.

PR c++/88865 - wrong layout with [[no_unique_address]].
* class.c (check_field_decls): A potentially-overlapping field makes
the class non-layout-POD, but not non-empty.
(end_of_class): Always consider empty data members.
(layout_class_type): Set DECL_SIZE for empty fields.

From-SVN: r268368

5 years agoruntime: fix sigprof frame counting
Ian Lance Taylor [Tue, 29 Jan 2019 15:31:10 +0000 (15:31 +0000)]
runtime: fix sigprof frame counting

    If sigtramp and sigtrampgo are both on stack, n -= framesToDiscard
    is executed twice, which should actually run only once.

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

From-SVN: r268366

5 years ago[ARC] Enable init_array support.
Vineet Gupta [Tue, 29 Jan 2019 15:08:16 +0000 (15:08 +0000)]
[ARC] Enable init_array support.

gcc's common configure script has a subtle flaw that it only tests
{init,fini.preinit}_array support when NOT cross compiling. This causes
cross builds to erroneously deduce that the feature is not supported by
the target.

| host-gcc-final-ab544139bfee/build/gcc/config.log
|
|configure:22941: checking for .preinit_array/.init_array/.fini_array support
|configure:23106: checking cross compile... guessing
|configure:23111: result: no

The right fix is to enable this for *all* cross setups (and address any
fallouts). However in the short-term to enable ARC glibc port to upstream,
force enable this for ARC.

This has been discussed at length on glibc mailing list [1], [2]

[1] https://sourceware.org/ml/libc-alpha/2018-11/msg00870.html
[2] https://sourceware.org/ml/libc-alpha/2019-01/msg00656.html

gcc/

2019-xx-xx  Vineet Gupta <vgupta@synopsys.com>

* gcc/config.gcc: Force .init_array for ARC

From-SVN: r268365

5 years agoMark gdc.dg/pr89042?.d as compile tests
Rainer Orth [Tue, 29 Jan 2019 08:43:37 +0000 (08:43 +0000)]
Mark gdc.dg/pr89042?.d as compile tests

* gdc.dg/pr89042a.d: Mark as compile test.
* gdc.dg/pr89042b.d: Likewise.

From-SVN: r268362

5 years agore PR debug/87295 ([early debug] ICE with -ffat-lto-objects -fdebug-types-section -g)
Richard Biener [Tue, 29 Jan 2019 08:12:02 +0000 (08:12 +0000)]
re PR debug/87295 ([early debug] ICE with -ffat-lto-objects -fdebug-types-section -g)

2019-01-29  Richard Biener  <rguenther@suse.de>

PR debug/87295
* dwarf2out.c (collect_skeleton_dies): New helper.
(copy_decls_for_unworthy_types): Call it.
(build_abbrev_table): Assert we do not try to replace
DW_AT_signature refs with local refs.

* g++.dg/lto/pr87295_0.C: New testcase.

From-SVN: r268361

5 years ago[libbacktrace] Don't assign check_PROGRAMS to TESTS
Tom de Vries [Tue, 29 Jan 2019 07:22:16 +0000 (07:22 +0000)]
[libbacktrace] Don't assign check_PROGRAMS to TESTS

In automake files, the check_PROGRAMS variable lists programs that need to be
build for testing, and TESTS lists the programs that need to be run.

The libbacktrace/Makefile.am uses a shortcut:
...
TESTS = $(check_PROGRAMS)
...
to make sure that each program added with:
...
check_PROGRAMS += foo
...
is both build and run.

However, for the allocfail.sh test, we need allocfail to be build and
allocfail.sh to be run:
...
check_PROGRAMS += allocfail
TESTS += allocfail.sh
...
but the shortcut causes allocfail also to be run, which is not required.

Fix this by removing the short-cut, allowing check_PROGRAMS to retain its
original semantics, and introducing a variable BUILDTESTS for programs that
need to be both build and run.

2019-01-29  Tom de Vries  <tdevries@suse.de>

* Makefile.am: Replace check_PROGRAMS with BUILDTESTS, except for
allocfail.
(TESTS): Don't add check_PROGRAMS. Add BUILDTESTS.
(check_PROGRAMS): Add BUILDTESTS.
* Makefile.in: Regenerate.

From-SVN: r268360

5 years agoFix tests for complex overloads of std::arg and std::proj
Jonathan Wakely [Tue, 29 Jan 2019 01:49:36 +0000 (01:49 +0000)]
Fix tests for complex overloads of std::arg and std::proj

The test for the synopsis of <complex> incorrectly adds constexpr to
two functions in C++2a mode, but the C++2a draft and the <complex>
header do not declare them constexpr.

* testsuite/26_numerics/headers/complex/synopsis.cc: Remove incorrect
constexpr specifiers from arg and proj.

From-SVN: r268359

5 years agoruntime: use the call instruction's PC for panic-in-runtime detection
Ian Lance Taylor [Tue, 29 Jan 2019 00:49:23 +0000 (00:49 +0000)]
runtime: use the call instruction's PC for panic-in-runtime detection

    If a panic happens in the runtime we turn that into a fatal error.
    We use the caller's PC to determine if the panic call is inside
    the runtime. getcallerpc returns the PC immediately after the
    call instruction. If the call is the very last instruction of a
    function, it may not find this PC belong to a runtime function,
    giving false result. We need to back off the PC by 1 to the call
    instruction.

    The gc runtime doesn't do this because the gc compiler always
    emit an instruction following a panic call, presumably an UNDEF
    instruction which turns into an architecture-specific illegal
    instruction. Our compiler doesn't do this.

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

From-SVN: r268358

5 years agoAdd missing exports for symbols used by directory iterators
Jonathan Wakely [Tue, 29 Jan 2019 00:47:43 +0000 (00:47 +0000)]
Add missing exports for symbols used by directory iterators

* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add missing exports for
__shared_ptr instantiations used by gcc4-compatible ABI.

From-SVN: r268357

5 years agoAvoid ambiguity between C++2a std::erase_if and LFTS version
Jonathan Wakely [Tue, 29 Jan 2019 00:47:38 +0000 (00:47 +0000)]
Avoid ambiguity between C++2a std::erase_if and LFTS version

These calls should have been qualified to avoid ADL anyway, but in C++2a
it becomes essential to qualify the calls in experimental::erase because
std::erase_if is also declared and the calls become ambiguous.

* include/experimental/forward_list (experimental::erase): Qualify
call to erase_if.
* include/experimental/list (experimental::erase): Likewise.
* include/std/forward_list (std::erase): Likewise.
* include/std/list (std::erase): Likewise.

From-SVN: r268356

5 years agoFix tests that fail in C++2a mode
Jonathan Wakely [Tue, 29 Jan 2019 00:47:32 +0000 (00:47 +0000)]
Fix tests that fail in C++2a mode

The nested typedefs in std::reference_wrapper are no longer present in
C++2a mode, so skip the tests that check for them.

The addition of the [[nodiscard]] attribute to a few functions causes
some failures in tests that intentionally ignore the return value.
Casting the result to void suppresses the new warnings.

* testsuite/20_util/reference_wrapper/result_type.cc: Disable for
C++2a.
* testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise.
* testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise.
* testsuite/20_util/reference_wrapper/typedefs.cc: Likewise.
* testsuite/30_threads/async/54297.cc: Suppress nodiscard warning.
* testsuite/ext/array_allocator/26875.cc: Likewise.
* testsuite/ext/pool_allocator/allocate_chunk.cc: Likewise.
* testsuite/util/replacement_memory_operators.h: Likewise.
* testsuite/util/testsuite_allocator.h: Likewise.

From-SVN: r268355

5 years agoEnsure pool resources always use normal mode vector
Jonathan Wakely [Tue, 29 Jan 2019 00:47:25 +0000 (00:47 +0000)]
Ensure pool resources always use normal mode vector

The __pool_resource::_M_unpooled member was declared with type
std::vector, which means that the type depends on whether debug mode is
active or not. Because the non-inline definitions in
src/c++17/memory_resource.cc are never compiled with debug mode, the
type declared in the header doesn't match the type in the library
definitions, leading to undefined behaviour.

The solution is to ensure the header always uses the non-debug vector,
even when debug mode is active. To make this easier a new alias template
is defined: _GLIBCXX_STD_C::pmr::vector.

* include/std/memory_resource (__pool_resource::_M_unpooled): Use
normal mode vector, even for debug mode.
* include/std/vector [_GLIBCXX_DEBUG] (_GLIBCXX_STD_C::pmr::vector):
Define alias template for normal mode vector.

From-SVN: r268354

5 years agoDaily bump.
GCC Administrator [Tue, 29 Jan 2019 00:16:42 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268353

5 years agoPR libstdc++/68737 Do not use vsnprintf on HPUX
Jonathan Wakely [Mon, 28 Jan 2019 23:58:57 +0000 (23:58 +0000)]
PR libstdc++/68737 Do not use vsnprintf on HPUX

It doesn't conform to the spec, so use vsprintf with a large buffer
instead.

PR libstdc++/68737
* config/locale/generic/c_locale.h (__convert_from_v)
[_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
* config/os/hpux/os_defines.h: Define _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
* include/bits/locale_facets.tcc (num_put::_M_insert_float)
[_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.

From-SVN: r268350

5 years agore PR c/89045 (ICE in get_parm_info, at c/c-decl.c:7518)
Jakub Jelinek [Mon, 28 Jan 2019 23:49:51 +0000 (00:49 +0100)]
re PR c/89045 (ICE in get_parm_info, at c/c-decl.c:7518)

PR c/89045
* c-decl.c (build_compound_literal): Don't pushdecl if in parameter
scope.

* gcc.dg/pr89045.c: New test.

From-SVN: r268349

5 years agore PR c/86125 (missing -Wbuiltin-declaration-mismatch on a mismatched return type)
Jakub Jelinek [Mon, 28 Jan 2019 23:21:10 +0000 (00:21 +0100)]
re PR c/86125 (missing -Wbuiltin-declaration-mismatch on a mismatched return type)

PR c/86125
* c-decl.c (last_fileptr_type): Remove.
(last_structptr_types): New variable.
(match_builtin_function_types): Compare TYPE_MAIN_VARIANT of
{old,new}rettype instead of the types themselves.  Assert
last_structptr_types array has the same number of elements
as builtin_structptr_types array.  Use TYPE_MAIN_VARIANT for
argument oldtype and newtype.  Instead of handling
just fileptr_type_node specially, handle all builtin_structptr_types
pointer nodes.  Formatting fix.

* c-common.c (c_common_nodes_and_builtins): Build type variants for
builtin_structptr_types types even for C.

* gcc.dg/Wbuiltin-declaration-mismatch-7.c: Guard testcase for
lp64, ilp32 and llp64 only.
(fputs): Use unsigned long long instead of size_t for return type.
(vfprintf, vfscanf): Accept arbitrary target specific type for
va_list.

From-SVN: r268348

5 years agocompiler: improve recursive type detection
Ian Lance Taylor [Mon, 28 Jan 2019 22:36:05 +0000 (22:36 +0000)]
compiler: improve recursive type detection

    Detect recursive type definition like
    "type T0 T1; type T1 T2; ...... type Tn T0".

    Fixes golang/go#25320.

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

From-SVN: r268347

5 years agore PR middle-end/89002 (ICE in scan_omp_1_op, at omp-low.c:3166)
Jakub Jelinek [Mon, 28 Jan 2019 22:34:32 +0000 (23:34 +0100)]
re PR middle-end/89002 (ICE in scan_omp_1_op, at omp-low.c:3166)

PR middle-end/89002
* gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
for lastprivate/linear IV, push gimplify context around gimplify_assign
and, if it needed any temporaries, pop it into a gimple bind around the
sequence.

* testsuite/libgomp.c/pr89002.c: New test.

From-SVN: r268346

5 years agore PR middle-end/89002 (ICE in scan_omp_1_op, at omp-low.c:3166)
Jakub Jelinek [Mon, 28 Jan 2019 22:33:33 +0000 (23:33 +0100)]
re PR middle-end/89002 (ICE in scan_omp_1_op, at omp-low.c:3166)

PR middle-end/89002
* gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
for lastprivate/linear IV, push gimplify context around gimplify_assign
and, if it needed any temporaries, pop it into a gimple bind around the
sequence.

* testsuite/libgomp.c/pr89002.c: New test.

From-SVN: r268345

5 years ago[libbacktrace] Fix and simplify xcoff_%.c pattern rule
Tom de Vries [Mon, 28 Jan 2019 22:21:19 +0000 (22:21 +0000)]
[libbacktrace] Fix and simplify xcoff_%.c pattern rule

When generating xcoff_%.c, the last command is a sed command.  In case of a
sed failure, this will leave an incomplete file, which will appear as up to
date to make, so consequently it will not be regenerated.  Fix this by
sedding into a temporary file instead.

Also, use $< to access the prerequisite xcoff.c, instead of spelling out the
file name once more.

2019-01-28  Tom de Vries  <tdevries@suse.de>

* Makefile.am (xcoff_%.c): Generate sed result into temporary file.
Use $< to access prerequisite.
* Makefile.in: Regenerate.

From-SVN: r268344

5 years agoPR c++/88358 - name wrongly treated as type.
Marek Polacek [Mon, 28 Jan 2019 22:14:27 +0000 (22:14 +0000)]
PR c++/88358 - name wrongly treated as type.

* parser.c (cp_parser_direct_declarator): Don't assume a qualified-id
in parameter-list is a type if the function's declarator-id is not
qualified.

* g++.dg/cpp2a/typename1.C: Add dg-error.
* g++.dg/cpp2a/typename13.C: New test.
* g++.dg/cpp2a/typename6.C: Make a function name qualified.
Add typename.

From-SVN: r268343

5 years agoMakefile.in: Really regenerate.
Uros Bizjak [Mon, 28 Jan 2019 22:14:19 +0000 (23:14 +0100)]
Makefile.in: Really regenerate.

* Makefile.in: Really regenerate.

From-SVN: r268342

5 years ago* g++.dg/cpp0x/enum37.C: Add dg-error.
Marek Polacek [Mon, 28 Jan 2019 21:58:36 +0000 (21:58 +0000)]
* g++.dg/cpp0x/enum37.C: Add dg-error.

From-SVN: r268341

5 years agoc-warn.c (check_address_or_pointer_of_packed_member): Handle the case when rhs is...
Bernd Edlinger [Mon, 28 Jan 2019 13:14:37 +0000 (13:14 +0000)]
c-warn.c (check_address_or_pointer_of_packed_member): Handle the case when rhs is of array type correctly.

2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-warn.c (check_address_or_pointer_of_packed_member): Handle the case
        when rhs is of array type correctly.  Fix handling of nested structures.
        Fix handling of indirect_ref together with nop_expr and/or addr_expr.
        (check_and_warn_address_or_pointer_of_packed_member): Fix handling of
        type casts within nested compound expressions.

testsuite:
2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-c++-common/Waddress-of-packed-member-1.c: Extended test case.
        * c-c++-common/Waddress-of-packed-member-2.c: New test case.

From-SVN: r268337

5 years agocommon.opt (-Wattribute-alias): Remove "no-" from name.
Bernd Edlinger [Mon, 28 Jan 2019 13:10:29 +0000 (13:10 +0000)]
common.opt (-Wattribute-alias): Remove "no-" from name.

2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * common.opt (-Wattribute-alias): Remove "no-" from name.
        Make -Wattribute-alias command line option and
        #pragma GCC diagnostic ignored "-Wattribute-alias" work again.

testsuite:
2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.dg/Wattribute-alias.c: Add test for #pragma GCC diagnostic ignored
        "-Wattribute-alias".

From-SVN: r268336

5 years agore PR target/89073 (x86 __attribute__ ((target("sha"))) not documented)
Jakub Jelinek [Mon, 28 Jan 2019 10:38:29 +0000 (11:38 +0100)]
re PR target/89073 (x86 __attribute__ ((target("sha"))) not documented)

PR target/89073
* doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
-madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
x86 ISA options.
(bmi2): Add missing @opindex.
* doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
options alphabetically.  Add missing 3dnow, 3dnowa, adx, avx, avx2,
avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
xsavec, xsaveopt and xsaves options.

From-SVN: r268335

5 years agore PR debug/89076 (gcc/dwarf2out.c:23270:9: warning: duplicated ‘if’ condition)
Richard Biener [Mon, 28 Jan 2019 09:36:50 +0000 (09:36 +0000)]
re PR debug/89076 (gcc/dwarf2out.c:23270:9: warning: duplicated ‘if’ condition)

2019-01-28  Richard Biener  <rguenther@suse.de>

PR debug/89076
* dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
support removal.

From-SVN: r268334

5 years agore PR testsuite/89064 (libgomp.graphite/force-parallel-5.c fails starting with r268257)
Richard Biener [Mon, 28 Jan 2019 09:07:30 +0000 (09:07 +0000)]
re PR testsuite/89064 (libgomp.graphite/force-parallel-5.c fails starting with r268257)

2019-01-28  Richard Biener  <rguenther@suse.de>

PR testsuite/89064
PR tree-optimization/86865
* testsuite/libgomp.graphite/force-parallel-5.c: XFAIL.

From-SVN: r268333

5 years agore PR tree-optimization/88739 (Big-endian union bug)
Richard Biener [Mon, 28 Jan 2019 08:15:42 +0000 (08:15 +0000)]
re PR tree-optimization/88739 (Big-endian union bug)

2019-01-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/88739
* tree-cfg.c (verify_types_in_gimple_reference): Verify
BIT_FIELD_REFs only are applied to mode-precision operands
when they are integral.
(verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
* tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
BIT_FIELD_REFs of non-mode-precision integral operands.

From-SVN: r268332