gcc.git
6 years agoDaily bump.
GCC Administrator [Tue, 26 Jun 2018 00:16:56 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r262127

6 years agopredicates.md (const_float_1_operand): Fix match_code test.
Jeff Law [Mon, 25 Jun 2018 23:45:05 +0000 (17:45 -0600)]
predicates.md (const_float_1_operand): Fix match_code test.

* config/v850/predicates.md (const_float_1_operand): Fix match_code
test.
(const_float_0_operand): Remove unused predicate.
* config/v850/v850.md (define_constants): Remove UNSPEC_LOOP.
(define_c_enum unspec): Add LOOP, RCP and RSQRT constants.
(recipsf2): New expander.  Original pattern now called
(recipsf2_insn).
(recipdf2, recipdf2_insn): Similarly.
(rsqrtsf2, rsqrtsf2_insn): Similarly
(rsqrtdf2, rsqrtdf2_insn): Similarly

From-SVN: r262123

6 years agostddef.h: Remove an obsolete comment on FreeBSD 5.
Gerald Pfeifer [Mon, 25 Jun 2018 22:29:55 +0000 (22:29 +0000)]
stddef.h: Remove an obsolete comment on FreeBSD 5.

* ginclude/stddef.h: Remove an obsolete comment on FreeBSD 5.
Simplify logic for FreeBSD (twice).

From-SVN: r262121

6 years agocompiler: improve escape analysis
Ian Lance Taylor [Mon, 25 Jun 2018 22:23:49 +0000 (22:23 +0000)]
compiler: improve escape analysis

    This CL ports recent enhancements of the escape analysis in the
    gc compiler to gofrontend.

    - CL 99335: unnamed receiver should not escape.

    - CL 105257: propagate loop depth to field. This prevents it
      from escaping when a field's address is taken inside a loop
      (but not otherwise escape).

    - CL 107597: use element type for "indirection" of slice/string.
      This prevents the slice/string from escaping when only the
      element, in case that it is pointerless, flows to outer scope.

    Reviewed-on: https://go-review.googlesource.com/120760

From-SVN: r262120

6 years agoPR libstdc++/86112 fix printers for Python 2.6
Jonathan Wakely [Mon, 25 Jun 2018 21:03:49 +0000 (22:03 +0100)]
PR libstdc++/86112 fix printers for Python 2.6

Dict comprehensions are only supported since Python 2.7, so use an
alternative syntax that is backwards compatible.

PR libstdc++/86112
* python/libstdcxx/v6/printers.py (add_one_template_type_printer):
Replace dict comprehension.

From-SVN: r262115

6 years agoPR tree-optimization/86204 - wrong strlen result after prior strnlen
Martin Sebor [Mon, 25 Jun 2018 20:46:45 +0000 (20:46 +0000)]
PR tree-optimization/86204 -  wrong strlen result after prior strnlen

gcc/ChangeLog:

PR tree-optimization/86204
* tree-ssa-strlen.c (handle_builtin_strlen): Avoid storing
a strnlen result if it's less than the length of the string.

gcc/testsuite/ChangeLog:

PR tree-optimization/86204
* gcc.dg/strlenopt-46.c: New test.

From-SVN: r262114

6 years agoUpdate powerpc64-linux-gnu/baseline_symbols.txt
Jonathan Wakely [Mon, 25 Jun 2018 20:36:51 +0000 (21:36 +0100)]
Update powerpc64-linux-gnu/baseline_symbols.txt

PR libstdc++/81092
* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r262112

6 years agoPR tree-optimization/85700 - Spurious -Wstringop-truncation warning with strncat
Martin Sebor [Mon, 25 Jun 2018 20:33:28 +0000 (20:33 +0000)]
PR tree-optimization/85700 - Spurious -Wstringop-truncation warning with strncat

gcc/ChangeLog:

PR tree-optimization/85700
* gimple-fold.c (gimple_fold_builtin_strncat): Adjust comment.
* tree-ssa-strlen.c (is_strlen_related_p): Handle integer subtraction.
(maybe_diag_stxncpy_trunc): Distinguish strncat from strncpy.

gcc/testsuite/ChangeLog:

PR tree-optimization/85700
* gcc.dg/Wstringop-truncation-4.c: New test.

From-SVN: r262110

6 years agoextend.texi (Zero-length arrays): Update and clarify.
Martin Sebor [Mon, 25 Jun 2018 19:46:14 +0000 (19:46 +0000)]
extend.texi (Zero-length arrays): Update and clarify.

gcc/ChangeLog:

* doc/extend.texi (Zero-length arrays): Update and clarify.

From-SVN: r262109

6 years agoconfig.gcc (powerpc64le*): Revert January 16th...
Michael Meissner [Mon, 25 Jun 2018 18:59:55 +0000 (18:59 +0000)]
config.gcc (powerpc64le*): Revert January 16th...

2018-06-25  Michael Meissner  <meissner@linux.ibm.com>

* config.gcc (powerpc64le*): Revert January 16th, 2018 patch that
added IEEE/IBM long double multilib support on PowerPC little
endian Linux systems.
* config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise.
(MULTILIB_DEFAULTS): Likewise.
* config/rs6000/rs6000.c (rs6000_option_override_internal):
Likewise.
* config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise.
* config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used.
* config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used.

From-SVN: r262105

6 years agoFix -finit-derived for c_ptr and c_funptr in programs which use
Fritz Reese [Mon, 25 Jun 2018 18:33:11 +0000 (18:33 +0000)]
Fix -finit-derived for c_ptr and c_funptr in programs which use
    iso_c_binding.

    gcc/fortran/ChangeLog:

    2018-06-25  Fritz Reese  <fritzoreese@gmail.com>

PR fortran/82972
        PR fortran/83088
        PR fortran/85851
* expr.c (component_initializer): Assign init expr to c->initializer.
(generate_isocbinding_initializer): New.
(gfc_generate_initializer): Call generate_isocbinding_initializer to
generate initializers for c_ptr and c_funptr with -finit-derived.

    gcc/testsuite/ChangeLog:

    2018-06-25  Fritz Reese  <fritzoreese@gmail.com>

PR fortran/82972
        PR fortran/83088
        PR fortran/85851
* gfortran.dg/init_flag_17.f90: New testcase.

From-SVN: r262104

6 years agogcc_qsort: avoid overlapping memcpy (PR 86311)
Alexander Monakov [Mon, 25 Jun 2018 17:44:15 +0000 (20:44 +0300)]
gcc_qsort: avoid overlapping memcpy (PR 86311)

PR middle-end/86311
* sort.cc (REORDER_23): Avoid memcpy with same destination and source.
(REORDER_45): Likewise.

From-SVN: r262092

6 years agoPR libstdc++/86292 fix exception safety of std::vector<InputIterator> constructor
Jonathan Wakely [Mon, 25 Jun 2018 16:46:33 +0000 (17:46 +0100)]
PR libstdc++/86292 fix exception safety of std::vector<InputIterator> constructor

PR libstdc++/86292
* include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
Add try-catch block.
* testsuite/23_containers/vector/cons/86292.cc: New.

From-SVN: r262029

6 years ago* doc/xml/manual/status_cxx2017.xml: Document N4531 status.
Jonathan Wakely [Mon, 25 Jun 2018 16:42:28 +0000 (17:42 +0100)]
* doc/xml/manual/status_cxx2017.xml: Document N4531 status.

From-SVN: r262025

6 years agoAdd experimental::sample and experimental::shuffle from N4531
Jonathan Wakely [Mon, 25 Jun 2018 16:23:49 +0000 (17:23 +0100)]
Add experimental::sample and experimental::shuffle from N4531

The additions to <experimental/random> were added in 2015 but the new
algorithms in <experimental/algorithm> were not. This adds them.

* include/experimental/algorithm (sample, shuffle): Add new overloads
using per-thread random number engine.
* testsuite/experimental/algorithm/sample.cc: Simpify and reduce
dependencies by using __gnu_test::test_container.
* testsuite/experimental/algorithm/sample-2.cc: New.
* testsuite/experimental/algorithm/shuffle.cc: New.

From-SVN: r262024

6 years agop9-extract-1.c: Make second argument of vec_extract a signed int.
Carl Love [Mon, 25 Jun 2018 16:04:14 +0000 (16:04 +0000)]
p9-extract-1.c: Make second argument of vec_extract a signed int.

gcc/testsuite/ChangeLog:

2018-06-25  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/p9-extract-1.c: Make second argument of
  vec_extract a signed int. Add vec_extract tests for bool char
and bool int.
* gcc.target/powerpc/p9-extract-4.c:  New test file for long long
vec_extract tests.

From-SVN: r262023

6 years agov850.md (divmodhi4): Make sure to sign extend the dividend to 32 bits.
Jeff Law [Mon, 25 Jun 2018 16:02:16 +0000 (10:02 -0600)]
v850.md (divmodhi4): Make sure to sign extend the dividend to 32 bits.

* config/v850/v850.md (divmodhi4): Make sure to sign extend the
dividend to 32 bits.  Adjust length.
(udivmodhi4): Cleanup output template.  Fix length.

From-SVN: r262022

6 years ago[testsuite/guality] Fix tcl error on gdb -v failure
Tom de Vries [Mon, 25 Jun 2018 15:56:13 +0000 (15:56 +0000)]
[testsuite/guality] Fix tcl error on gdb -v failure

2018-06-25  Tom de Vries  <tdevries@suse.de>

* lib/gcc-gdb-test.exp (report_gdb): Handle gdb -v failure.

From-SVN: r262021

6 years agovsx.md: Change word selector to prefered location.
Carl Love [Mon, 25 Jun 2018 15:43:34 +0000 (15:43 +0000)]
vsx.md: Change word selector to prefered location.

gcc/ChangeLog:

2018-06-25  Carl Love  <cel@us.ibm.com>

* config/rs6000/vsx.md: Change word selector to prefered location.

Signed-off-by: Carl Love <cel@us.ibm.com>
---
 gcc/config/rs6000/vsx.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index a528ef2e8..6e7a4277f 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -3934,7 +3934,7 @@

   operands[5] = gen_rtx_REG (V4SFmode, tmp_regno);
   operands[6] = gen_rtx_REG (V4SImode, tmp_regno);
-  operands[7] = GEN_INT (BYTES_BIG_ENDIAN ? 1 : 2);
+  operands[7] = GEN_INT (BYTES_BIG_ENDIAN ? 0 : 3);
   operands[8] = gen_rtx_REG (V4SImode, reg_or_subregno (operands[0]));
 }
   [(set_attr "type" "vecperm")
--
2.17.1

From-SVN: r262020

6 years agore PR regression/86304 ([MIPS] FAIL: gcc.dg/vect/pr79887.c -mmsa (internal compiler...
Richard Biener [Mon, 25 Jun 2018 13:04:38 +0000 (13:04 +0000)]
re PR regression/86304 ([MIPS] FAIL: gcc.dg/vect/pr79887.c  -mmsa (internal compiler error) starting with r261740)

2018-06-25  Richard Biener  <rguenther@suse.de>

PR tree-optimization/86304
* tree-vectorizer.c (vectorize_loops): Walk over new possibly
epilogue-if-converted loops as well.

From-SVN: r262017

6 years agore PR target/84786 ([miscompilation] vunpcklpd accessing xmm16-22 targeting KNL)
Jakub Jelinek [Mon, 25 Jun 2018 12:57:04 +0000 (14:57 +0200)]
re PR target/84786 ([miscompilation] vunpcklpd accessing xmm16-22 targeting KNL)

PR target/84786
* config/i386/sse.md (vshift_count): New mode attr.
(<shift_insn><mode>3<mask_name>): Use <vshift_count>N instead of vN
as last operand's constraint for VI2_AVX2_AVX512BW shifts.  Use YvN
instead of vN as last operand's constraint for VI48_AVX2 shifts.

* gcc.target/i386/avx512f-pr84786-3.c: New test.

From-SVN: r262015

6 years agolto-section-out.c (lto_begin_section): Do not print section name for noaddr and unnum...
Jan Hubicka [Mon, 25 Jun 2018 12:29:45 +0000 (14:29 +0200)]
lto-section-out.c (lto_begin_section): Do not print section name for noaddr and unnumbered dumps.

* lto-section-out.c (lto_begin_section): Do not print section
name for noaddr and unnumbered dumps.

From-SVN: r262013

6 years agotree-vectorizer.h (struct vec_info_shared): New structure with parts split out from...
Richard Biener [Mon, 25 Jun 2018 11:04:01 +0000 (11:04 +0000)]
tree-vectorizer.h (struct vec_info_shared): New structure with parts split out from struct vec_info and loop_nest from...

2018-06-25  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.h (struct vec_info_shared): New structure
with parts split out from struct vec_info and loop_nest from
struct _loop_vec_info.
(struct vec_info): Adjust accordingly.
(struct _loop_vec_info): Likewise.
(LOOP_VINFO_LOOP_NEST): Adjust.
(LOOP_VINFO_DATAREFS): Likewise.
(LOOP_VINFO_DDRS): Likewise.
(struct _bb_vec_info): Likewise.
(BB_VINFO_DATAREFS): Likewise.
(BB_VINFO_DDRS): Likewise.
(struct _stmt_vec_info): Add dr_aux member.
(DR_VECT_AUX): Adjust to refer to member of DR_STMTs vinfo.
(DR_MISALIGNMENT_UNINITIALIZED): New.
(set_dr_misalignment): Adjust.
(dr_misalignment): Assert misalign isn't DR_MISALIGNMENT_UNINITIALIZED.
(vect_analyze_loop): Adjust prototype.
(vect_analyze_loop_form): Likewise.
* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
Compute dependences lazily.
(vect_record_base_alignments): Use shared datarefs/ddrs.
(vect_verify_datarefs_alignment): Likewise.
(vect_analyze_data_refs_alignment): Likewise.
(vect_analyze_data_ref_accesses): Likewise.
(vect_analyze_data_refs): Likewise.
* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Add
constructor parameter for shared part.
(vect_analyze_loop_form): Pass in shared part and adjust.
(vect_analyze_loop_2): Pass in storage for the number of
stmts.  Move loop nest finding to the caller.  Compute
datarefs lazily.
(vect_analyze_loop): Pass in shared part.
(vect_transform_loop): Verify shared datarefs are unchanged.
* tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Add
constructor parameter for shared part.
(vect_slp_analyze_bb_1): Pass in shared part and adjust.
(vect_slp_bb): Verify shared datarefs are unchanged before
transform.
* tree-vect-stmts.c (ensure_base_align): Adjust for DR_AUX
change.
(new_stmt_vec_info): Initialize DR_AUX misalignment to
DR_MISALIGNMENT_UNINITIALIZED.
* tree-vectorizer.c (vec_info::vec_info): Add constructor
parameter for shared part.
(vec_info::~vec_info): Adjust.
(vec_info_shared::vec_info_shared): New.
(vec_info_shared::~vec_info_shared): Likewise.
(vec_info_shared::save_datarefs): Likewise.
(vec_info_shared::check_datarefs): Likewise.
(try_vectorize_loop_1): Construct shared part live for analyses
of a single loop for multiple vector sizes.
* tree-parloops.c (gather_scalar_reductions): Adjust.

From-SVN: r262009

6 years agotree-vect-data-refs.c (vect_find_stmt_data_reference): Modify DR for SIMD lane access...
Richard Biener [Mon, 25 Jun 2018 11:02:10 +0000 (11:02 +0000)]
tree-vect-data-refs.c (vect_find_stmt_data_reference): Modify DR for SIMD lane accesses here and mark DR with (void *)-1 aux.

2018-06-25  Richard Biener  <rguenther@suse.de>

* tree-vect-data-refs.c (vect_find_stmt_data_reference): Modify
DR for SIMD lane accesses here and mark DR with (void *)-1 aux.
(vect_analyze_data_refs): Remove similar code from here and
simplify accordingly.

From-SVN: r262008

6 years agotree-vect-data-refs.c (vect_check_gather_scatter): Fail for reverse storage order...
Richard Biener [Mon, 25 Jun 2018 11:01:07 +0000 (11:01 +0000)]
tree-vect-data-refs.c (vect_check_gather_scatter): Fail for reverse storage order accesses rather than asserting they cannot...

2018-06-25  Richard Biener  <rguenther@suse.de>
        Eric Botcazou  <ebotcazou@libertysurf.fr>

* tree-vect-data-refs.c (vect_check_gather_scatter): Fail
for reverse storage order accesses rather than asserting
they cannot happen here.

* gnat.dg/sso9.adb: New testcase.
* gnat.dg/sso9_pkg.ads: Likewise.

From-SVN: r262007

6 years ago[i386/debug] Fix insn prefix in tls_global_dynamic_64_<mode>
Tom de Vries [Mon, 25 Jun 2018 10:39:54 +0000 (10:39 +0000)]
[i386/debug] Fix insn prefix in tls_global_dynamic_64_<mode>

2018-06-25  Tom de Vries  <tdevries@suse.de>

PR debug/86257
* config/i386/i386.md (define_insn "*tls_global_dynamic_64_<mode>"):
Use data16 instead of .byte for insn prefix.

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

From-SVN: r262006

6 years agoC++: Fix PR86082
Andreas Krebbel [Mon, 25 Jun 2018 07:16:59 +0000 (07:16 +0000)]
C++: Fix PR86082

When turning a user-defined numerical literal into an operator
invocation the literal needs to be translated to the execution
character set.

gcc/cp/ChangeLog:

2018-06-25  Andreas Krebbel  <krebbel@linux.ibm.com>

PR C++/86082
* parser.c (make_char_string_pack): Pass this literal chars
through cpp_interpret_string.
(cp_parser_userdef_numeric_literal): Check the result of
make_char_string_pack.

gcc/testsuite/ChangeLog:

2018-06-25  Andreas Krebbel  <krebbel@linux.ibm.com>

PR C++/86082
* g++.dg/pr86082.C: New test.

From-SVN: r262003

6 years agoDaily bump.
GCC Administrator [Mon, 25 Jun 2018 00:17:04 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r262002

6 years agostddef.h: Simplify conditions around avoiding re-definition of __size_t.
Maya Rashish [Sun, 24 Jun 2018 21:32:40 +0000 (21:32 +0000)]
stddef.h: Simplify conditions around avoiding re-definition of __size_t.

* ginclude/stddef.h: Simplify conditions around avoiding
re-definition of __size_t.

From-SVN: r261998

6 years agolibgomp.texi (Top): Move www.openmp.org to https.
Gerald Pfeifer [Sun, 24 Jun 2018 20:38:14 +0000 (20:38 +0000)]
libgomp.texi (Top): Move www.openmp.org to https.

* libgomp.texi (Top): Move www.openmp.org to https.
(Enabling OpenMP): Ditto.
(omp_get_active_level): Ditto.
(omp_get_ancestor_thread_num): Ditto.
(omp_get_cancellation): Ditto.
(omp_get_default_device): Ditto.
(omp_get_dynamic): Ditto.
(omp_get_level): Ditto.
(omp_get_max_active_levels): Ditto.
(omp_get_max_task_priority): Ditto.
(omp_get_max_threads): Ditto.
(omp_get_nested): Ditto.
(omp_get_num_devices): Ditto.
(omp_get_num_procs): Ditto.
(omp_get_num_teams): Ditto.
(omp_get_num_threads): Ditto.
(omp_get_proc_bind): Ditto.
(omp_get_schedule): Ditto.
(omp_get_team_num): Ditto.
(omp_get_team_size): Ditto.
(omp_get_thread_limit): Ditto.
(omp_get_thread_num): Ditto.
(omp_in_parallel): Ditto.
(omp_in_final): Ditto.
(omp_is_initial_device): Ditto.
(omp_set_default_device): Ditto.
(omp_set_dynamic): Ditto.
(omp_set_max_active_levels): Ditto.
(omp_set_nested): Ditto.
(omp_set_num_threads): Ditto.
(omp_set_schedule): Ditto.
(omp_init_lock): Ditto.
(omp_set_lock): Ditto.
(omp_test_lock): Ditto.
(omp_unset_lock): Ditto.
(omp_destroy_lock): Ditto.
(omp_init_nest_lock): Ditto.
(omp_set_nest_lock): Ditto.
(omp_test_nest_lock): Ditto.
(omp_unset_nest_lock): Ditto.
(omp_destroy_nest_lock): Ditto.
(omp_get_wtick): Ditto.
(omp_get_wtime): Ditto.
(OMP_CANCELLATION): Ditto.
(OMP_DISPLAY_ENV): Ditto.
(OMP_DEFAULT_DEVICE): Ditto.
(OMP_DYNAMIC): Ditto.
(OMP_MAX_ACTIVE_LEVELS): Ditto.
(OMP_MAX_TASK_PRIORITY): Ditto.
(OMP_NESTED): Ditto.
(OMP_NUM_THREADS): Ditto.
(OMP_PROC_BIND): Ditto.
(OMP_PLACES): Ditto.
(OMP_STACKSIZE): Ditto.
(OMP_SCHEDULE): Ditto.
(OMP_THREAD_LIMIT): Ditto.
(OMP_WAIT_POLICY): Ditto.

From-SVN: r261997

6 years agolto-streamer-out.c (tree_is_indexable): Make LABEL_DECL nonindexable unless it is...
Jan Hubicka [Sun, 24 Jun 2018 14:11:55 +0000 (16:11 +0200)]
lto-streamer-out.c (tree_is_indexable): Make LABEL_DECL nonindexable unless it is forced or nonlocal...

* lto-streamer-out.c (tree_is_indexable): Make LABEL_DECL nonindexable
unless it is forced or nonlocal; assert that we stream no IMPORTED_DECL.

From-SVN: r261995

6 years agore PR fortran/85983 (ICE in check_dtio_interface1, at fortran/interface.c:4748)
Jerry DeLisle [Sun, 24 Jun 2018 04:09:20 +0000 (04:09 +0000)]
re PR fortran/85983 (ICE in check_dtio_interface1, at fortran/interface.c:4748)

2018-06-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/85983
* interface.c (check_dtio_interface1): Delete assert.

From-SVN: r261994

6 years agoDaily bump.
GCC Administrator [Sun, 24 Jun 2018 00:16:33 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r261992

6 years ago[testsuite/guality] Fix tcl error on missing gdb
Tom de Vries [Sat, 23 Jun 2018 23:41:51 +0000 (23:41 +0000)]
[testsuite/guality] Fix tcl error on missing gdb

2018-06-24  Tom de Vries  <tdevries@suse.de>

* g++.dg/guality/guality.exp: Don't use which on gdb arg to report_gdb.
* gcc.dg/guality/guality.exp: Same.
* gfortran.dg/guality/guality.exp: Same.
* lib/gcc-gdb-test.exp: Do early out if which gdb fails.

From-SVN: r261988

6 years agodecl.c (bad_specifiers): Add const location_t* parameter and use locations in error...
Paolo Carlini [Sat, 23 Jun 2018 07:32:45 +0000 (07:32 +0000)]
decl.c (bad_specifiers): Add const location_t* parameter and use locations in error messages about...

/cp
2018-06-23  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (bad_specifiers): Add const location_t* parameter and
use locations in error messages about 'inline' and 'virtual'.
(mark_inline_variable): Add location_t parameter and use it in
error_at and pedwarn messages.
(grokdeclarator): Use declspecs->locations[ds_constexpr],
declspecs->locations[ds_concept], declspecs->locations[ds_virtual],
declspecs->locations[ds_inline] in many error messages; adjust
bad_specifiers and mark_inline_variable calls.
(grokvardecl): Use declspecs->locations[ds_concept] in error message.

/testsuite
2018-06-23  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/concepts/locations1.C: New.
* g++.dg/cpp0x/locations1.C: Likewise.
* g++.dg/cpp1z/inline-var2.C: Test locations too.
* g++.dg/cpp1z/inline-var3.C: Likewise.

From-SVN: r261982

6 years agoinvoke.texi (mno-fancy-math-387): Update for changes made to OpenBSD and NetBSD throu...
Maya Rashish [Sat, 23 Jun 2018 05:05:58 +0000 (05:05 +0000)]
invoke.texi (mno-fancy-math-387): Update for changes made to OpenBSD and NetBSD through the years.

        * doc/invoke.texi (mno-fancy-math-387): Update for changes
        made to OpenBSD and NetBSD through the years.

From-SVN: r261981

6 years agoruntime: use #ifdef instead of #if for USING_SPLIT_STACK
Ian Lance Taylor [Sat, 23 Jun 2018 02:44:36 +0000 (02:44 +0000)]
runtime: use #ifdef instead of #if for USING_SPLIT_STACK

    USING_SPLIT_STACK is configured as defined/undefined, not 0/1.
    Most of the places test USING_SPLIT_STACK with #ifdef, with a
    few exceptions. This CL fixes the exceptions.

    Reviewed-on: https://go-review.googlesource.com/120596

From-SVN: r261980

6 years agoDaily bump.
GCC Administrator [Sat, 23 Jun 2018 00:16:56 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r261979

6 years agore PR fortran/86281 (SEGV in fortran/resolve.c:resolve_function)
Paul Thomas [Fri, 22 Jun 2018 22:31:17 +0000 (22:31 +0000)]
re PR fortran/86281 (SEGV in fortran/resolve.c:resolve_function)

2018-06-22  Paul Thomas  <pault@gcc.gnu.org>
    Rainer Orth  <ro@gcc.gnu.org>

PR fortran/86281
* resolve.c (resolve_contained_fntype): Check for the charlen
before testing the length.

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

PR fortran/86281
* gfortran.dg/assumed_charlen_function_7.f90: Add -std=legacy.

Co-Authored-By: Rainer Orth <ro@gcc.gnu.org>
From-SVN: r261975

6 years agors6000-c.c (altivec_overloaded_builtins): Change behavior of vec_pack (vector double...
Kelvin Nilsen [Fri, 22 Jun 2018 22:28:49 +0000 (22:28 +0000)]
rs6000-c.c (altivec_overloaded_builtins): Change behavior of vec_pack (vector double...

gcc/ChangeLog:

2018-06-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
behavior of vec_pack (vector double, vector double) to match
behavior of vec_float2 (vector double, vector double).

gcc/testsuite/ChangeLog:

2018-06-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/builtins-3-p8.c (test_pack_float): Remove
this test.
* gcc.target/powerpc/builtins-9.c: New test.
* gcc.target/powerpc/fold-vec-pack-double.c: Modify dg directives
to expect different code generation on big-endian vs.
little-endian targets.

From-SVN: r261974

6 years agoPR c++/86219 - ICE with erroneous initializer in template.
Jason Merrill [Fri, 22 Jun 2018 21:57:07 +0000 (17:57 -0400)]
PR c++/86219 - ICE with erroneous initializer in template.

* constexpr.c (fold_non_dependent_expr): Add complain parm.
* call.c, expr.c, init.c, pt.c, semantics.c, typeck.c, typeck2.c:
Pass it.
* call.c (build_cxx_call): Don't mess with builtins in a template.
* typeck2.c (store_init_value): If fold_non_dependent_expr didn't
produce a constant value, go back to the uninstantiated form.

From-SVN: r261972

6 years agoAvoid taking the address of something just because it's in parens.
Jason Merrill [Fri, 22 Jun 2018 21:57:01 +0000 (17:57 -0400)]
Avoid taking the address of something just because it's in parens.

* constexpr.c (same_type_ignoring_tlq_and_bounds_p): New.
(cxx_fold_indirect_ref): Use it.
(cxx_eval_constant_expression) [VIEW_CONVERT_EXPR]: Use it.
* cp-tree.h (REF_PARENTHESIZED_P): Allow VIEW_CONVERT_EXPR.
* semantics.c (force_paren_expr): Use VIEW_CONVERT_EXPR instead of
static_cast to reference type.
(maybe_undo_parenthesized_ref): Handle VIEW_CONVERT_EXPR.

From-SVN: r261971

6 years ago[testsuite/guality] Use buildarea gdb by default in combined build
Tom de Vries [Fri, 22 Jun 2018 20:56:08 +0000 (20:56 +0000)]
[testsuite/guality] Use buildarea gdb by default in combined build

2018-06-22  Tom de Vries  <tdevries@suse.de>

* g++.dg/guality/guality.exp (guality_gdb_name): Default to
$rootme/../gdb/gdb, if available.
* gcc.dg/guality/guality.exp (guality_gdb_name): Same.
* gfortran.dg/guality/guality.exp (guality_gdb_name): Same.

From-SVN: r261935

6 years ago[testsuite/guality] Be verbose about gdb version used
Tom de Vries [Fri, 22 Jun 2018 19:50:03 +0000 (19:50 +0000)]
[testsuite/guality] Be verbose about gdb version used

2018-06-22  Tom de Vries  <tdevries@suse.de>

* lib/gcc-gdb-test.exp (report_gdb): New proc.
* g++.dg/guality/guality.exp: Use report_gdb.
* gcc.dg/guality/guality.exp: Same.
* gfortran.dg/guality/guality.exp: Same.

From-SVN: r261911

6 years agore PR c++/85662 ("error: non-constant condition for static assertion" from __builtin_...
Jakub Jelinek [Fri, 22 Jun 2018 17:22:43 +0000 (19:22 +0200)]
re PR c++/85662 ("error: non-constant condition for static assertion" from __builtin_offsetof in C++)

PR c++/85662
* g++.dg/ext/offsetof3.C: New test.

From-SVN: r261909

6 years agoImprove entry/exit instrumentation for nested functions
Olivier Hainque [Fri, 22 Jun 2018 16:46:22 +0000 (16:46 +0000)]
Improve entry/exit instrumentation for nested functions

2018-06-22  Olivier Hainque  <hainque@adacore.com>

* gimplify.c (gimplify_function_tree): Prevent creation
of a trampoline for the address of the current function
passed to entry/exit instrumentation hooks.

From-SVN: r261908

6 years agoForgot PR target/86222 in ChangeLog
Aaron Sawdey [Fri, 22 Jun 2018 15:37:36 +0000 (10:37 -0500)]
Forgot PR target/86222 in ChangeLog

From-SVN: r261906

6 years agors6000-string.c (expand_strn_compare): Handle -m32 correctly.
Aaron Sawdey [Fri, 22 Jun 2018 15:36:31 +0000 (15:36 +0000)]
rs6000-string.c (expand_strn_compare): Handle -m32 correctly.

2018-06-22  Aaron Sawdey  <acsawdey@linux.ibm.com>

* config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32
correctly.

From-SVN: r261905

6 years agoaltivec-7.c: Add qualifiers for counts on AIX versus Linux.
Carl Love [Fri, 22 Jun 2018 15:01:34 +0000 (15:01 +0000)]
altivec-7.c: Add qualifiers for counts on AIX versus Linux.

gcc/testsuite/ChangeLog:

2018-06-22  Carl Love  <cel@us.ibm.com>

  * gcc.target/powerpc/altivec-7.c: Add qualifiers for counts on AIX
versus Linux.  Change checks for xxlnor, xxland and xxlxor to also look
for the vnor, vand and vxor instructions.
* gcc.target/powerpc/builtins-1.c: Move vec_or tests to a new file.
Remove counts for xxlor. Fix match on bl __divdi3 and bl __udivdi3.
* gcc.target/powerpc/builtins-4.c: Fix matching for vsl instructions.
* gcc.target/powerpc/builtins-5.c: New test file for vec_or test cases.
  * gcc.target/powerpc/vsx-vector-6.p7.c: Fix xxlnor BE expected count.
Add -dp to dg-options, update expected counts.

From-SVN: r261904

6 years agoFix test case failures for pdp11 target.
Paul Koning [Fri, 22 Jun 2018 14:34:37 +0000 (10:34 -0400)]
Fix test case failures for pdp11 target.

* gcc.c-torture/execute/builtins/lib/chk.c: Use smaller alignment
if pdp11.
* gcc.c-torture/compile/20010518-2.c: Skip if pdp11 -mint32.
* gcc.c-torture/compile/20040101-1.c: Ditto.
* gcc.c-torture/compile/20050622-1.c: Ditto.
* gcc.c-torture/compile/20080625-1.c: Ditto.
* gcc.c-torture/compile/20090107-1.c: Ditto.
* gcc.c-torture/compile/920501-12.c: Ditto.
* gcc.c-torture/compile/920501-4.c: Ditto.
* gcc.c-torture/compile/961203-1.c: Ditto.
* gcc.c-torture/compile/limits-externdecl.c: Ditto.
* gcc.c-torture/compile/pr25310.c: Ditto.

From-SVN: r261897

6 years agosyscall: remove Ustat
Ian Lance Taylor [Fri, 22 Jun 2018 14:25:52 +0000 (14:25 +0000)]
syscall: remove Ustat

    glibc 2.28 removes ustat.h and the ustat function entirely, which
    breaks syscall.Ustat.

    Updates golang/go#25990

    Reviewed-on: https://go-review.googlesource.com/120535

From-SVN: r261896

6 years agoFix unexported basic_string symbols for 32-bit targets
Jonathan Wakely [Fri, 22 Jun 2018 14:19:12 +0000 (15:19 +0100)]
Fix unexported basic_string symbols for 32-bit targets

* config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
different size_t mangling on 32-bit targets.

From-SVN: r261892

6 years agoPR libstdc++/86280 fix undefined left shift on 32-bit targets
Jonathan Wakely [Fri, 22 Jun 2018 13:05:20 +0000 (14:05 +0100)]
PR libstdc++/86280 fix undefined left shift on 32-bit targets

PR libstdc++/86280
* include/experimental/memory_resource
(__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
enough for result of left shift.

From-SVN: r261888

6 years agoFix emission of jump tables (PR tree-optimization/86263).
Martin Liska [Fri, 22 Jun 2018 11:32:20 +0000 (13:32 +0200)]
Fix emission of jump tables (PR tree-optimization/86263).

2018-06-22  Martin Liska  <mliska@suse.cz>

        PR tree-optimization/86263
* tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
        Bail out if is_enabled is false.
* tree-switch-conversion.h (jump_table_cluster::is_enabled):
        New declaration.
(jump_table_cluster::is_enabled): New function.

From-SVN: r261886

6 years agolto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream BINFO_BASE_ACCESSES...
Jan Hubicka [Fri, 22 Jun 2018 10:09:10 +0000 (12:09 +0200)]
lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream BINFO_BASE_ACCESSES and BINFO_VPTR_FIELD.

* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream
BINFO_BASE_ACCESSES and BINFO_VPTR_FIELD.
* tree-streamer-in.c (streamer_read_tree_bitfields): Likewise.
(lto_input_ts_binfo_tree_pointers): Likewise.
* tree-streamer-out.c (streamer_write_tree_bitfields,
write_ts_binfo_tree_pointers): Likewise.
* tree.c (free_lang_data_in_binfo): Clear BINFO_VPTR_FIELD.

From-SVN: r261885

6 years agoUpdate OpenACC testcases
Cesar Philippidis [Fri, 22 Jun 2018 10:04:14 +0000 (03:04 -0700)]
Update OpenACC testcases

gcc/testsuite/
* c-c++-common/goacc/deviceptr-4.c: New file.
* c-c++-common/goacc/kernels-counter-var-redundant-load.c:
Likewise.
* c-c++-common/goacc/kernels-loop-data-2.c: Likewise.
* c-c++-common/goacc/kernels-loop-data-enter-exit-2.c: Likewise.
* c-c++-common/goacc/kernels-loop-data-enter-exit.c: Likewise.
* c-c++-common/goacc/kernels-loop-data-update.c: Likewise.
* c-c++-common/goacc/kernels-loop-data.c: Likewise.
* c-c++-common/goacc/kernels-parallel-loop-data-enter-exit.c:
Likewise.
* c-c++-common/goacc/parallel-reduction.c: Likewise.
* c-c++-common/goacc/private-reduction-1.c: Likewise.
* gfortran.dg/goacc/kernels-parallel-loop-data-enter-exit.f95:
Likewise.
* gfortran.dg/goacc/modules.f95: Likewise.
* gfortran.dg/goacc/routine-8.f90: Likewise.
* gfortran.dg/goacc/routine-level-of-parallelism-1.f90: Likewise.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Don't force "-O2".
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Update.
* testsuite/libgomp.oacc-c-c++-common/host_data-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: Likewise.
* testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
* testsuite/libgomp.oacc-c++/non-scalar-data.C: New file.
* testsuite/libgomp.oacc-c-c++-common/declare-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/enter-data.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-4.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-5.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-4.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-5.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-6.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-4.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-5.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-6.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-7.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-reduction-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.h: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-loop-2.h: Likewise.
* testsuite/libgomp.oacc-fortran/cublas-fixed.h: Likewise.
* testsuite/libgomp.oacc-fortran/dummy-array.f90: Likewise.
* testsuite/libgomp.oacc-fortran/host_data-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/host_data-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/host_data-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-collapse-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-collapse-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-independent.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-loop-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-map-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-2.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-3.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-6.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-2.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-2.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-3.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-4.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-5.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-6.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-7.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-reduction-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-13.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-14.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-15.f90: Likewise.
* testsuite/libgomp.oacc-fortran/parallel-loop-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reference-reductions.f90: Likewise.
* testsuite/libgomp.oacc-fortran/vector-routine.f90: Likewise.

Co-Authored-By: James Norris <jnorris@codesourcery.com>
Co-Authored-By: Julian Brown <julian@codesourcery.com>
Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r261884

6 years ago* tree.c (free_lang_data_in_type): Free all TYPE_VFIELDs.
Jan Hubicka [Fri, 22 Jun 2018 09:45:54 +0000 (11:45 +0200)]
* tree.c (free_lang_data_in_type): Free all TYPE_VFIELDs.

From-SVN: r261883

6 years agoMake symbol_summary::get and call_summary::get pure.
Martin Liska [Fri, 22 Jun 2018 08:56:18 +0000 (10:56 +0200)]
Make symbol_summary::get and call_summary::get pure.

2018-06-22  Martin Liska  <mliska@suse.cz>

* symbol-summary.h (get): Make it pure and inline move
        functionality from ::get function.
        (get): Remove and inline into ::get and ::get_create.
        (get_create): Move code from ::get function.

From-SVN: r261882

6 years agoDon't preprocess .S files with -P on Solaris/x86 (PR target/85994)
Rainer Orth [Fri, 22 Jun 2018 06:19:14 +0000 (06:19 +0000)]
Don't preprocess .S files with -P on Solaris/x86 (PR target/85994)

PR target/85994
* config/i386/sol2.h (CPP_SPEC): Don't pass -P for
-x assembler-with-cpp.

From-SVN: r261880

6 years agoHave g++ define _FILE_OFFSET_BITS=64 on Solaris
Rainer Orth [Fri, 22 Jun 2018 06:16:00 +0000 (06:16 +0000)]
Have g++ define _FILE_OFFSET_BITS=64 on Solaris

* config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
_FILE_OFFSET_BITS=64 for C++.

From-SVN: r261879

6 years ago2018-06-21 François Dumont <fdumont@gcc.gnu.org>
François Dumont [Fri, 22 Jun 2018 05:23:47 +0000 (05:23 +0000)]
2018-06-21  François Dumont  <fdumont@gcc.gnu.org>
Fix this ChangeLog entry.

From-SVN: r261878

6 years agoDaily bump.
GCC Administrator [Fri, 22 Jun 2018 00:16:44 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r261877

6 years agoPR libstdc++/86138 prevent implicit instantiation of COW empty rep
Jonathan Wakely [Thu, 21 Jun 2018 23:29:01 +0000 (00:29 +0100)]
PR libstdc++/86138 prevent implicit instantiation of COW empty rep

The explicit instantiation declarations for std::basic_string are
disabled for C++17 (and later) so that basic_string symbols get
implicitly instantiated in every translation unit that needs them.  On
targets that don't support STB_GNU_UNIQUE this leads to multiple copies
of the empty rep symbol for COW strings. In order to detect whether a
COW string needs to deallocate its storage it compares the address with
the empty rep.  When there are multiple copies of the empty rep object
the address is not unique, and so string destructors try to delete the
empty rep, which crashes.

In order to guarantee uniqueness of the _S_empty_rep_storage symbol this
patch adds an explicit instantiation declaration for just that symbol.
This means the other symbols are still implicitly instantiated in C++17
code, but for the empty rep the definition in the library gets used.

Separately, there is no need for C++17 code to implicitly instantiate
the I/O functions for strings, so this also restores the explicit
instantiation declarations for those functions.

PR libstdc++/86138
* include/bits/basic_string.tcc:
[__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
(basic_string<char>::_Rep::_S_empty_rep_storage)
(basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
instantiation declarations.
[__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
explicit instantiation declarations.
* testsuite/21_strings/basic_string/cons/char/86138.cc: New.
* testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.

From-SVN: r261873

6 years agopack02.c: Use __ibm128 instead of long double if the long double format is IEEE 128...
Michael Meissner [Thu, 21 Jun 2018 23:13:25 +0000 (23:13 +0000)]
pack02.c: Use __ibm128 instead of long double if the long double format is IEEE 128-bit...

2018-06-21  Michael Meissner  <meissner@linux.ibm.com>

* gcc.target/powerpc/pack02.c: Use __ibm128 instead of long double
if the long double format is IEEE 128-bit for tests that are
explicitly testing IBM extended double support.  Use the
appropriate pack and unpack built-in functions.  Change calls from
__builtin_isinfl to __builtin_isinf since the later supports all
floating point types.
* gcc.target/powerpc/pr57150.c: Likewise.
* gcc.target/powerpc/pr60203.c: Likewise.
* gcc.target/powerpc/pr67808.c: Likewise.
* gcc.target/powerpc/pr70117.c: Likewise.
* gcc.target/powerpc/tfmode_off.c: Likewise.

From-SVN: r261872

6 years agocmd/go: re-enable a couple of tests of gccgo
Ian Lance Taylor [Thu, 21 Jun 2018 23:02:25 +0000 (23:02 +0000)]
cmd/go: re-enable a couple of tests of gccgo

    Port https://golang.org/cl/120375 over to the gofrontend repo so that
    it gets more reliable testing.

    Updates golang/go#22472

    Reviewed-on: https://go-review.googlesource.com/120395

From-SVN: r261871

6 years agors6000.c (init_float128_ieee): Prevent complex multiply and divide external functions...
Michael Meissner [Thu, 21 Jun 2018 22:55:50 +0000 (22:55 +0000)]
rs6000.c (init_float128_ieee): Prevent complex multiply and divide external functions from being created more...

2018-06-23  Michael Meissner  <meissner@linux.ibm.com>

* config/rs6000/rs6000.c (init_float128_ieee): Prevent complex
multiply and divide external functions from being created more
than once.

From-SVN: r261870

6 years agors6000.md (neg<mode>2_internal): Use the correct mode to check whether the mode is...
Michael Meissner [Thu, 21 Jun 2018 22:49:37 +0000 (22:49 +0000)]
rs6000.md (neg<mode>2_internal): Use the correct mode to check whether the mode is IBM extended.

2018-06-21  Michael Meissner  <meissner@linux.ibm.com>

* config/rs6000/rs6000.md (neg<mode>2_internal): Use the correct
mode to check whether the mode is IBM extended.

From-SVN: r261869

6 years agore PR fortran/49630 ([OOP] ICE on obsolescent deferred-length type bound character...
Paul Thomas [Thu, 21 Jun 2018 22:38:55 +0000 (22:38 +0000)]
re PR fortran/49630 ([OOP] ICE on obsolescent deferred-length type bound character function)

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

PR fortran/49630
* resolve.c (resolve_contained_fntype): Change standard ref.
from F95 to F2003: C418. Correct a spelling error in a comment.
It is an error for an abstract interface to have an assumed
character length result.
* trans-expr.c (gfc_conv_procedure_call): Likewise change the
standard reference.

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

PR fortran/49630
* gfortran.dg/assumed_charlen_function_7.f90: New test.

From-SVN: r261868

6 years agors6000.md (extendtfif2): Add missing 128-bit conversion insn that shows up when...
Michael Meissner [Thu, 21 Jun 2018 22:16:20 +0000 (22:16 +0000)]
rs6000.md (extendtfif2): Add missing 128-bit conversion insn that shows up when...

2018-06-21  Michael Meissner  <meissner@linux.ibm.com>

* config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit
conversion insn that shows up when pr85657-3.c is compiled using
IEEE 128-bit long double.

From-SVN: r261867

6 years agoPR libstdc++/83328 add correct basic_string::insert for initializer_list
Jonathan Wakely [Thu, 21 Jun 2018 22:01:25 +0000 (23:01 +0100)]
PR libstdc++/83328 add correct basic_string::insert for initializer_list

The SSO basic_string has a non-standard insert(iterator, initializer_list)
overload, from a C++0x draft. This adds the correct overload, while also
preserving the old one so that the old symbol is still exported from the
library.

The COW basic_string doesn't have any of the C++11 changes to the insert
overloads (they all still have non-const iterator parameters and the
ones that should return an iterator still return void). This doesn't
make any change to the COW string.

PR libstdc++/83328
* acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
* configure: Regenerate.
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string::insert(const_iterator, initializer_list<C>)): Add.
[_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
(basic_string::insert(iterator, initializer_list<C>)): Suppress
definition.
* include/debug/string (basic_string::insert(iterator, C)): Change
first parameter to const_iterator.
(basic_string::insert(iterator, size_type, C)): Likewise. Change
return type to iterator.
(basic_string::insert(iterator, InputIterator, InputIterator)):
Likewise.
(basic_string::insert(iterator, initializer_list<C>)): Change first
parameter to const_iterator and return type to iterator.
* src/c++11/string-inst.cc: Extend comment.
* testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
New.
* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
New.
* testsuite/util/testsuite_abi.cc: Add new symbol version.

From-SVN: r261866

6 years ago* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
Jonathan Wakely [Thu, 21 Jun 2018 20:57:07 +0000 (21:57 +0100)]
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r261865

6 years ago* pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Use TEMPLATE_PARM_DESCENDANTS.
Jason Merrill [Thu, 21 Jun 2018 18:19:38 +0000 (14:19 -0400)]
* pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Use TEMPLATE_PARM_DESCENDANTS.

From-SVN: r261861

6 years agoReduce garbage from push_to_top_level.
Jason Merrill [Thu, 21 Jun 2018 18:19:34 +0000 (14:19 -0400)]
Reduce garbage from push_to_top_level.

* name-lookup.c (do_push_to_top_level): Don't allocate
current_lang_base.
(do_pop_from_top_level): Release current_lang_base.

From-SVN: r261860

6 years agoLet -fmem-report see callers of cxx_make_type.
Jason Merrill [Thu, 21 Jun 2018 18:19:29 +0000 (14:19 -0400)]
Let -fmem-report see callers of cxx_make_type.

* lex.c (cxx_make_type): Add MEM_STAT_DECL.
(make_class_type): Likewise.
(cxx_make_type_hook): New.
* cp-objcp-common.h (LANG_HOOKS_MAKE_TYPE): Use cxx_make_type_hook.

From-SVN: r261859

6 years agoPR c++/86182 - fix wrong PR tag in earlier commit
Jason Merrill [Thu, 21 Jun 2018 18:19:23 +0000 (14:19 -0400)]
PR c++/86182 - fix wrong PR tag in earlier commit

From-SVN: r261858

6 years agore PR fortran/83118 (Bad intrinsic assignment of class(*) array component of derived...
Paul Thomas [Thu, 21 Jun 2018 17:34:31 +0000 (17:34 +0000)]
re PR fortran/83118 (Bad intrinsic assignment of class(*) array component of derived type)

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

PR fortran/83118
* resolve.c (resolve_ordinary_assign): Force the creation of a
vtable for assignment of non-polymorphic expressions to an
unlimited polymorphic object.
* trans-array.c (gfc_alloc_allocatable_for_assignment): Use the
size of the rhs type for such assignments. Set the dtype, _len
and vptrs appropriately.
* trans-expr.c (gfc_trans_assignment): Force the use of the
_copy function for these assignments.

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

PR fortran/83118
* gfortran.dg/unlimited_polymorphic_30.f03: New test.

From-SVN: r261857

6 years agocfgrtl.c (fixup_reorder_chain): Do not emit NOPs in DECL_IGNORED_P functions.
Eric Botcazou [Thu, 21 Jun 2018 17:03:58 +0000 (17:03 +0000)]
cfgrtl.c (fixup_reorder_chain): Do not emit NOPs in DECL_IGNORED_P functions.

* cfgrtl.c (fixup_reorder_chain): Do not emit NOPs in DECL_IGNORED_P
functions.
(rtl_merge_blocks): Likewise.  Do not emit a NOP if the location of
the edge can be forwarded.
(cfg_layout_merge_blocks): Likewise.

From-SVN: r261856

6 years agoexcept.c (finish_eh_generation): Commit edge insertions only after the EH edges have...
Eric Botcazou [Thu, 21 Jun 2018 17:02:13 +0000 (17:02 +0000)]
except.c (finish_eh_generation): Commit edge insertions only after the EH edges have been redirected from...

* except.c (finish_eh_generation): Commit edge insertions only after
the EH edges have been redirected from post-landing to landing pads.

From-SVN: r261855

6 years agotree-nested.c (get_frame_type): Use create_tmp_var_raw instead of create_tmp_var_for...
Eric Botcazou [Thu, 21 Jun 2018 17:01:12 +0000 (17:01 +0000)]
tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of create_tmp_var_for to create the FRAME decl.

* tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of
create_tmp_var_for to create the FRAME decl.
(finalize_nesting_tree_1): Do not unchain the FRAME decl.

From-SVN: r261854

6 years agotree-inline.c (copy_edges_for_bb): Minor tweak.
Eric Botcazou [Thu, 21 Jun 2018 16:59:28 +0000 (16:59 +0000)]
tree-inline.c (copy_edges_for_bb): Minor tweak.

* tree-inline.c (copy_edges_for_bb): Minor tweak.
(maybe_move_debug_stmts_to_successors): Also reset the locus of the
debug statement when resetting its value.
(expand_call_inline): Copy the locus of the call onto the assignment
of the return value, if any.  Use local variable in more cases.

From-SVN: r261853

6 years agoPR libstdc++/70940 make pmr::resource_adaptor return aligned memory
Jonathan Wakely [Thu, 21 Jun 2018 16:24:00 +0000 (17:24 +0100)]
PR libstdc++/70940 make pmr::resource_adaptor return aligned memory

PR libstdc++/70940
* include/experimental/memory_resource
(__resource_adaptor_imp::do_deallocate): Add missing return.
* testsuite/experimental/memory_resource/new_delete_resource.cc: New.
* testsuite/experimental/memory_resource/resource_adaptor.cc: Test
resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
__gnu_cxx::malloc_allocator.

From-SVN: r261851

6 years agoPR libstdc++/70940 make pmr::resource_adaptor return aligned memory
Jonathan Wakely [Thu, 21 Jun 2018 14:01:11 +0000 (15:01 +0100)]
PR libstdc++/70940 make pmr::resource_adaptor return aligned memory

PR libstdc++/70940
* include/experimental/memory_resource (__resource_adaptor_common):
New base class.
(__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
pointer from unaligned, and vice versa.
(__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
allocated pointer to meet alignment request.
(__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
original pointer for deallocation.
(__resource_adaptor_imp::do_is_equal): Reformat.
(__resource_adaptor_imp::_S_aligned_size): Remove.
(__resource_adaptor_imp::_S_supported): Remove.
(new_delete_resource): Use __gnu_cxx::new_allocator.
* testsuite/experimental/memory_resource/resource_adaptor.cc: Test
extended alignments and use debug_allocator to check for matching
allocate/deallocate pairs.

From-SVN: r261849

6 years agoIPA summaries use ::get in ipa-pure-const.c.
Martin Liska [Thu, 21 Jun 2018 13:53:30 +0000 (15:53 +0200)]
IPA summaries use ::get in ipa-pure-const.c.

2018-06-21  Martin Liska  <mliska@suse.cz>

* ipa-pure-const.c (propagate_nothrow): Use
        funct_state_summaries->get.
(dump_malloc_lattice): Likewise.
(propagate_malloc): Likewise.

From-SVN: r261848

6 years agolto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated comment.
Richard Biener [Thu, 21 Jun 2018 13:47:48 +0000 (13:47 +0000)]
lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated comment.

2018-06-21  Richard Biener  <rguenther@suse.de>

* lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated
comment.  Follow BLOCK_ABSTRACT_ORIGIN unconditionally.
* tree-streamer-in.c (lto_input_ts_block_tree_pointers): Update
comment.
* tree-streamer-out.c (write_ts_block_tree_pointers): Stream
BLOCK_ABSTRACT_ORIGIN unconditionally.

From-SVN: r261847

6 years agoFix IPA crash in libgccjit
David Malcolm [Thu, 21 Jun 2018 13:44:38 +0000 (13:44 +0000)]
Fix IPA crash in libgccjit

gcc/ChangeLog:
* ipa-cp.c (ipcp_driver): Set edge_clone_summaries to NULL after
deleting it.
* ipa-reference.c (ipa_reference_c_finalize): Delete
ipa_ref_opt_sum_summaries and set it to NULL.

From-SVN: r261846

6 years ago[testsuite] Fix guality/pr45882.c for flto
Tom de Vries [Thu, 21 Jun 2018 13:37:59 +0000 (13:37 +0000)]
[testsuite] Fix guality/pr45882.c for flto

Atm this test in pr45882.c fails:
...
  int d = a[i];  /* { dg-final { gdb-test 16 "d" "112" } } */
...
as follows:
...
FAIL: gcc.dg/guality/pr45882.c   -O2 -flto -fuse-linker-plugin \
      -fno-fat-lto-objects  line 16 d == 112
...

In more detail, gdb fails to print the value of d:
...
Breakpoint 1, foo (i=i@entry=7, j=j@entry=7) at pr45882.c:16
16        ++v;
$1 = <optimized out>
$2 = 112
<optimized out> != 112
...

Variable d is a local variable in function foo, initialized from global array a.
When compiling, first cddce1 removes the initialization of d in foo, given
that d is not used afterwards.  Then ipa marks array a as write-only, and
removes the stores to array a in main.  This invalidates the location
expression for d, which points to a[i], so it is removed, which is why gdb
ends up printing <optimized out> for d.

This patches fixes the fail by adding attribute used to array a, preventing
array a from being marked as write-only.

Tested on x86_64.

2018-06-21  Tom de Vries  <tdevries@suse.de>

* gcc.dg/guality/pr45882.c (a): Add used attribute.

From-SVN: r261845

6 years ago[tail-merge] Fix side-effect test in stmt_local_def
Tom de Vries [Thu, 21 Jun 2018 12:44:38 +0000 (12:44 +0000)]
[tail-merge] Fix side-effect test in stmt_local_def

2018-06-21  Tom de Vries  <tdevries@suse.de>

PR tree-optimization/85859
* tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call
test with comment from bb_no_side_effects_p.

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

From-SVN: r261844

6 years agore PR tree-optimization/86232 (ICE in record_estimate, at tree-ssa-loop-niter.c:3258)
Richard Biener [Thu, 21 Jun 2018 11:22:12 +0000 (11:22 +0000)]
re PR tree-optimization/86232 (ICE in record_estimate, at tree-ssa-loop-niter.c:3258)

2018-06-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/86232
* tree-ssa-loop-niter.c (number_of_iterations_popcount): Adjust
max for constant niter.

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

From-SVN: r261843

6 years ago[ARM] Use __ARM_ARCH and __ARM_FEATURE_LDREX instead of __ARM_ARCH__
Christophe Lyon [Thu, 21 Jun 2018 11:05:36 +0000 (11:05 +0000)]
[ARM] Use __ARM_ARCH and __ARM_FEATURE_LDREX instead of __ARM_ARCH__

2018-06-21  Christophe Lyon  <christophe.lyon@linaro.org>

libatomic/
* config/arm/arm-config.h (__ARM_ARCH__): Remove definitions, use
__ARM_ARCH instead. Use __ARM_FEATURE_LDREX to define HAVE_STREX
and HAVE_STREXBHD

libgcc/
* config/arm/lib1funcs.S (__ARM_ARCH__): Remove definitions, use
__ARM_ARCH and __ARM_FEATURE_CLZ instead.
(HAVE_ARM_CLZ): Remove definition, use __ARM_FEATURE_CLZ instead.
* config/arm/ieee754-df.S: Use __ARM_FEATURE_CLZ instead of
__ARM_ARCH__.
* config/arm/ieee754-sf.S: Likewise.
* config/arm/libunwind.S: Use __ARM_ARCH instead of __ARM_ARCH__.

From-SVN: r261841

6 years ago[ARM] libgcc: Remove unsupported code for __ARM_ARCH__ < 4
Christophe Lyon [Thu, 21 Jun 2018 11:01:05 +0000 (11:01 +0000)]
[ARM] libgcc: Remove unsupported code for __ARM_ARCH__ < 4

2018-06-21  Christophe Lyon  <christophe.lyon@linaro.org>

libgcc/
* config/arm/ieee754-df.S: Remove code for __ARM_ARCH__ < 4, no
longer supported.
* config/arm/ieee754-sf.S: Likewise.

From-SVN: r261840

6 years ago[AArch64][PATCH 2/2] Combine AES instructions with xor and zero operands
Andre Vieira [Thu, 21 Jun 2018 09:08:43 +0000 (09:08 +0000)]
[AArch64][PATCH 2/2] Combine AES instructions with xor and zero operands

gcc
2018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/aarch64/aarch64-simd.md
(*aarch64_crypto_aes<aes_op>v16qi_xor_combine): New.

gcc/testsuite
2018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc/gcc.target/aarch64/aes_xor_combine.c: New test.

From-SVN: r261836

6 years ago[AArch64][PATCH 1/2] Make AES unspecs commutative
Andre Vieira [Thu, 21 Jun 2018 09:01:21 +0000 (09:01 +0000)]
[AArch64][PATCH 1/2] Make AES unspecs commutative

gcc
2018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
Make opernads of the unspec commutative.

gcc/testsuite
2018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc/gcc.target/aarch64/aes_2.c: New test.

From-SVN: r261835

6 years agotree-data-ref.c (dr_step_indicator): Handle NULL DR_STEP.
Richard Biener [Thu, 21 Jun 2018 07:46:43 +0000 (07:46 +0000)]
tree-data-ref.c (dr_step_indicator): Handle NULL DR_STEP.

2018-06-21  Richard Biener  <rguenther@suse.de>

* tree-data-ref.c (dr_step_indicator): Handle NULL DR_STEP.
* tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
Avoid calling vect_mark_for_runtime_alias_test with gathers or scatters.
(vect_analyze_data_ref_dependence): Re-order checks to deal with
NULL DR_STEP.
(vect_record_base_alignments): Do not record base alignment
for gathers or scatters.
(vect_compute_data_ref_alignment): Drop return value that is always
true.  Bail out early for gathers or scatters.
(vect_enhance_data_refs_alignment): Bail out early for gathers
or scatters.
(vect_find_same_alignment_drs): Likewise.
(vect_analyze_data_refs_alignment): Remove dead code.
(vect_slp_analyze_and_verify_node_alignment): Likewise.
(vect_analyze_data_refs): For possible gathers or scatters do
not create an alternate DR, just check their possible validity
and mark them.  Adjust DECL_NONALIASED handling to not rely
on DR_BASE_ADDRESS.
* tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not
update inits of gathers or scatters.
* tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
Also copy gather/scatter flag to pattern vinfo.

From-SVN: r261834

6 years agore PR other/86198 (Libbacktrace does not properly work with ".note.gnu.build-id"...
Denis Khalikov [Thu, 21 Jun 2018 05:42:53 +0000 (05:42 +0000)]
re PR other/86198 (Libbacktrace does not properly work with ".note.gnu.build-id" section)

libbacktrace/

2018-06-21 Denis Khalikov <d.khalikov@partner.samsung.com>

PR other/86198
* elf.c (elf_add): Increase ".note.gnu.build-id" section size
checking up to 36 bytes.

From-SVN: r261832

6 years agodebug.h (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)): Compare...
François Dumont [Thu, 21 Jun 2018 05:36:48 +0000 (05:36 +0000)]
debug.h (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)): Compare __x base iterator with a default initialized iterator of the same type.

2018-06-21  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/debug.h
(_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
Compare __x base iterator with a default initialized iterator of the
same type.

From-SVN: r261831

6 years agoDaily bump.
GCC Administrator [Thu, 21 Jun 2018 00:16:46 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r261830

6 years agore PR libgcc/86213 (-fsplit-stack runtime may clobber SSE input param reg)
Than McIntosh [Wed, 20 Jun 2018 21:11:23 +0000 (21:11 +0000)]
re PR libgcc/86213 (-fsplit-stack runtime may clobber SSE input param reg)

libgcc/:
PR libgcc/86213
* generic-morestack.c (allocate_segment): Move calls to getenv and
getpagesize to __morestack_load_mmap.
(__morestack_load_mmap) Initialize static_pagesize and
use_guard_page here so as to avoid clobbering SSE regs during a
__morestack call.
gcc/testsuite/:
* gcc.dg/split-8.c: New.

From-SVN: r261823

6 years agors6000-c.c (altivec_overloaded_builtins): Change behavior of vec_packsu (vector unsig...
Kelvin Nilsen [Wed, 20 Jun 2018 20:06:51 +0000 (20:06 +0000)]
rs6000-c.c (altivec_overloaded_builtins): Change behavior of vec_packsu (vector unsigned long long...

gcc/ChangeLog:

2018-06-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
behavior of vec_packsu (vector unsigned long long, vector unsigned
long long) to match behavior of vec_packs with same signature.

gcc/testsuite/ChangeLog:

2018-06-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/builtins-1.c: Adjust dg directives to scan
for vpkudus in place of vpksdus.
* gcc.target/powerpc/builtins-3-p8.c: Likewise.

From-SVN: r261819

6 years agoPR libstdc++/70966 make pmr::new_delete_resource() immortal
Jonathan Wakely [Wed, 20 Jun 2018 19:34:53 +0000 (20:34 +0100)]
PR libstdc++/70966 make pmr::new_delete_resource() immortal

Construct the program-wide resource objects using placement new. This
means they have dynamic storage duration and won't be destroyed during
termination.

PR libstdc++/70966
* include/experimental/memory_resource (__resource_adaptor_imp): Add
static assertions to enforce requirements on pointer types.
(__resource_adaptor_imp::get_allocator()): Add noexcept.
(new_delete_resource, null_memory_resource): Return address of an
object with dynamic storage duration.
(__null_memory_resource): Remove.
* testsuite/experimental/memory_resource/70966.cc: New.

From-SVN: r261818

6 years ago[PR c++/85634] Fix tsubst ICE
Nathan Sidwell [Wed, 20 Jun 2018 19:22:53 +0000 (19:22 +0000)]
[PR c++/85634] Fix tsubst ICE

https://gcc.gnu.org/ml/gcc-patches/2018-06/msg01274.html
PR c++/85634
* friend.c (add_friend): Keep lookup sets of tempate sets.

PR c++/85634
* g++.dg/lookup/pr85634-2.C: New.

From-SVN: r261817