gcc.git
5 years agod/dmd: Merge upstream dmd f8e38c001
Iain Buclaw [Sun, 16 Jun 2019 07:50:07 +0000 (07:50 +0000)]
d/dmd: Merge upstream dmd f8e38c001

Fixes bug where foreach(int) doesn't work on BigEndian targets by
deprecating the use of index types smaller than a size_t/ptrdiff_t.

Reviewed-on: https://github.com/dlang/dmd/pull/10009

From-SVN: r272350

5 years agod/dmd: Merge upstream dmd 974650488
Iain Buclaw [Sun, 16 Jun 2019 07:49:54 +0000 (07:49 +0000)]
d/dmd: Merge upstream dmd 974650488

Adds static function VarDeclaration::create to the dmd C++ interface.

Reviewed-on: https://github.com/dlang/dmd/pull/10008

From-SVN: r272349

5 years agore PR d/90560 (ICE in visit, at d/dmd/dcast.c:1872)
Iain Buclaw [Sun, 16 Jun 2019 07:49:43 +0000 (07:49 +0000)]
re PR d/90560 (ICE in visit, at d/dmd/dcast.c:1872)

PR d/90560
d/dmd: Merge upstream dmd c6887d9bb

Fixes segmentation fault in castTo::CastTo::visit.

Reviewed-on: https://github.com/dlang/dmd/pull/10007

From-SVN: r272348

5 years agore PR d/90762 (ICE in resolvePropertiesX, at d/dmd/expression.c:251)
Iain Buclaw [Sun, 16 Jun 2019 07:49:30 +0000 (07:49 +0000)]
re PR d/90762 (ICE in resolvePropertiesX, at d/dmd/expression.c:251)

PR d/90762
d/dmd: Merge upstream dmd b0cd59177

Fixes segmentation fault in resolvePropertiesX.

Reviewed-on: https://github.com/dlang/dmd/pull/10006

From-SVN: r272347

5 years agore PR d/90761 (ICE in visit, at d/dmd/dcast.c:883)
Iain Buclaw [Sun, 16 Jun 2019 07:49:18 +0000 (07:49 +0000)]
re PR d/90761 (ICE in visit, at d/dmd/dcast.c:883)

PR d/90761
d/dmd: Merge upstream dmd d912f4e49

Fixes segmentation fault in implicitConvTo::ImplicitConvTo::visit.

Reviewed-on: https://github.com/dlang/dmd/pull/10005

From-SVN: r272346

5 years agore PR d/90651 (ICE in FuncDeclaration::semantic3, at d/dmd/func.c:1524)
Iain Buclaw [Sun, 16 Jun 2019 07:49:06 +0000 (07:49 +0000)]
re PR d/90651 (ICE in FuncDeclaration::semantic3, at d/dmd/func.c:1524)

PR d/90651
d/dmd: Merge upstream dmd 0f6cbbcad

Fixes segmentation fault in FuncDeclaration::semantic3.

Reviewed-on: https://github.com/dlang/dmd/pull/10003

gcc/d/ChangeLog:

2019-06-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* typeinfo.cc (object_module): New variable.
(make_frontend_typeinfo): Update signature.  Set temporary on
generated TypeInfo classes.
(create_tinfo_types): Set object_module.  Move generation of front-end
typeinfo into ...
(create_frontend_tinfo_types): ... New function.
(layout_typeinfo): Call create_frontend_tinfo_types.
(layout_classinfo): Likewise.
(layout_cpp_typeinfo): Likewise.
(create_typeinfo): Likewise.

From-SVN: r272345

5 years agore PR d/90650 (ICE in fold_convert_loc, at fold-const.c:2552)
Iain Buclaw [Sun, 16 Jun 2019 07:48:53 +0000 (07:48 +0000)]
re PR d/90650 (ICE in fold_convert_loc, at fold-const.c:2552)

PR d/90650
d/dmd: Merge upstream dmd ab03e2918

Fixes internal compiler error in fold_convert_loc.

Reviewed-on: https://github.com/dlang/dmd/pull/9996

gcc/testsuite/ChangeLog:

2019-06-16  Iain Buclaw  <ibuclaw@gdcproject.org>

PR d/90650
* gdc.dg/pr90650a.d: New test.
* gdc.dg/pr90650b.d: New test.

From-SVN: r272344

5 years agore PR d/90604 (ICE in sizemask, at d/dmd/mtype.c:2542)
Iain Buclaw [Sun, 16 Jun 2019 07:48:42 +0000 (07:48 +0000)]
re PR d/90604 (ICE in sizemask, at d/dmd/mtype.c:2542)

PR d/90604
d/dmd: Merge upstream dmd f30c5dc79

Fixes internal compiler error in Type::sizemask.

Reviewed-on: https://github.com/dlang/dmd/pull/9998

From-SVN: r272343

5 years agore PR d/90602 (ICE: null field)
Iain Buclaw [Sun, 16 Jun 2019 07:48:23 +0000 (07:48 +0000)]
re PR d/90602 (ICE: null field)

PR d/90602
d/dmd: Merge upstream dmd 420cce2a6

Fixes internal compiler error during CTFE.

Reviewed-on: https://github.com/dlang/dmd/pull/9997

From-SVN: r272342

5 years agore PR d/90661 (ICE in AlignDeclaration::syntaxCopy, at d/dmd/attrib.c:670)
Iain Buclaw [Sun, 16 Jun 2019 07:47:57 +0000 (07:47 +0000)]
re PR d/90661 (ICE in AlignDeclaration::syntaxCopy, at d/dmd/attrib.c:670)

PR d/90661
d/dmd: Merge upstream dmd c74e624c9

Fixes segmentation fault in AlignDeclaration::syntaxCopy.

Reviewed-on: https://github.com/dlang/dmd/pull/10001

From-SVN: r272341

5 years agore PR d/90651 (ICE in FuncDeclaration::semantic3, at d/dmd/func.c:1524)
Iain Buclaw [Sun, 16 Jun 2019 07:47:46 +0000 (07:47 +0000)]
re PR d/90651 (ICE in FuncDeclaration::semantic3, at d/dmd/func.c:1524)

PR d/90651
d/dmd: Merge upstream dmd 78dc31152

Fixes bug where the object module was not always implicitly imported.

Reviewed-on: https://github.com/dlang/dmd/pull/9999

From-SVN: r272340

5 years agore PR d/90660 (ICE in TypeQualified::resolveHelper, at d/dmd/mtype.c:6738)
Iain Buclaw [Sun, 16 Jun 2019 07:47:34 +0000 (07:47 +0000)]
re PR d/90660 (ICE in TypeQualified::resolveHelper, at d/dmd/mtype.c:6738)

PR d/90660
d/dmd: Merge upstream dmd bbc5ea66a

Fixes segmentation fault in TypeQualified::resolveHelper.

Reviewed-on: https://github.com/dlang/dmd/pull/10000

From-SVN: r272339

5 years ago[openacc, parloops] Fix SIGSEGV in oacc_entry_exit_ok_1
Tom de Vries [Sun, 16 Jun 2019 07:47:15 +0000 (07:47 +0000)]
[openacc, parloops] Fix SIGSEGV in oacc_entry_exit_ok_1

When compiling the test-case with r268755, we run into a SIGSEGV in
oacc_entry_exit_ok_1 when trying to dereference a NULL red:
...
                      struct reduction_info *red;
                      red = reduction_phi (reduction_list, use_stmt);
                      tree val = PHI_RESULT (red->keep_res);
...

Fix this by handling ref == NULL.

Bootstrapped and reg-tested on x86_64.
Build and reg-tested on x86_64 with nvptx accelerator.

2019-06-16  Tom de Vries  <tdevries@suse.de>

PR tree-optimization/89376
* tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.

* testsuite/libgomp.oacc-c-c++-common/pr89376.c: New test.

From-SVN: r272338

5 years agoDaily bump.
GCC Administrator [Sun, 16 Jun 2019 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r272337

5 years agodecl.c (gfc_match_derived_decl): Dummy argument cannot be a derived type.
Steven G. Kargl [Sat, 15 Jun 2019 22:10:54 +0000 (22:10 +0000)]
decl.c (gfc_match_derived_decl): Dummy argument cannot be a derived type.

2019-06-15  Steven G. Kargl  <kargl@gcc.gnu.org>

* decl.c (gfc_match_derived_decl): Dummy argument cannot be a derived
 type.

2019-06-15  Steven G. Kargl  <kargl@gcc.gnu.org>

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

From-SVN: r272333

5 years agoSync top-level change from gdb
Tom Tromey [Sat, 15 Jun 2019 21:32:03 +0000 (21:32 +0000)]
Sync top-level change from gdb

This patch syncs a change to the top-level configury from gdb.  It
should not affect the gcc build at all.  Tested by rebuilding.

ChangeLog
2019-06-15  Tom Tromey  <tom@tromey.com>

* configure.ac (host_libs): Add gnulib.
* configure: Rebuild.
* Makefile.def (host_modules, dependencies): Add gnulib.
* Makefile.in: Rebuild.

From-SVN: r272332

5 years agoinvoke.texi (Spec Files): Update location of the Fortran spec file.
Maya Rashish [Sat, 15 Jun 2019 21:12:41 +0000 (21:12 +0000)]
invoke.texi (Spec Files): Update location of the Fortran spec file.

* doc/invoke.texi (Spec Files): Update location of the
Fortran spec file.

From-SVN: r272331

5 years agoextend.texi (Common Function Attributes): Clarify no_sanitize.
Gerald Pfeifer [Sat, 15 Jun 2019 21:07:27 +0000 (21:07 +0000)]
extend.texi (Common Function Attributes): Clarify no_sanitize.

* doc/extend.texi (Common Function Attributes): Clarify
no_sanitize.  Fix grammar.

From-SVN: r272330

5 years agoalias-access-path-2.c: New testcase.
Jan Hubicka [Sat, 15 Jun 2019 18:33:26 +0000 (20:33 +0200)]
alias-access-path-2.c: New testcase.

* gcc.dg/tree-ssa/alias-access-path-2.c: New testcase.

* tree-ssa-alias.c (alias_stats): Add
nonoverlapping_component_refs_p_may_alias,
nonoverlapping_component_refs_p_no_alias,
nonoverlapping_component_refs_of_decl_p_may_alias,
nonoverlapping_component_refs_of_decl_p_no_alias.
(dump_alias_stats): Dump them.
(nonoverlapping_component_refs_of_decl_p): Add stats.
(nonoverlapping_component_refs_p): Add stats; do not stop on first
ARRAY_REF.

From-SVN: r272329

5 years agoieee_4.f90: Un-xfail on i?86-*-freebsd.
Steven G. Kargl [Sat, 15 Jun 2019 16:35:38 +0000 (16:35 +0000)]
ieee_4.f90: Un-xfail on i?86-*-freebsd.

2019-06-15  Steven G. Kargl  <kargl@gcc.gnu.org>

* gfortran.dg/ieee/ieee_4.f90: Un-xfail on i?86-*-freebsd.

From-SVN: r272328

5 years ago[objective-c/c++, testsuite, 3/3] Workaround for PR90709.
Iain Sandoe [Sat, 15 Jun 2019 14:03:44 +0000 (14:03 +0000)]
[objective-c/c++, testsuite, 3/3] Workaround for PR90709.

Use the CF-CFString.h, F-NS*.h proxy headers where needed in the objective-c++
testsuite.  Make minor adjustments to tests as required, providing that those
do not alter the test intent.

2019-06-15  Iain Sandoe  <iain@sandoe.co.uk>

PR objc/90709
* obj-c++.dg/proto-lossage-7.mm: Use proxy headers.
* obj-c++.dg/strings/const-cfstring-2.mm: Likewise.
* obj-c++.dg/strings/const-cfstring-5.mm: Likewise
* obj-c++.dg/strings/const-str-12.mm: Likewise.
* obj-c++.dg/syntax-error-1.mm: Likewise.
* obj-c++.dg/torture/strings/const-cfstring-1.mm: Likewise.
* obj-c++.dg/torture/strings/const-str-10.mm: Likewise.
* obj-c++.dg/torture/strings/const-str-11.mm: Likewise.
* obj-c++.dg/torture/strings/const-str-9.mm: Likewise.
* obj-c++.dg/cxx-ivars-3.mm: Skip on later Darwin, where the 10.4 API
in no longer supported, also on m64 where there's no meaning to it.
* obj-c++.dg/isa-field-1.mm: Suppress unwanted warning, add comment why.
* obj-c++.dg/objc-gc-3.mm: Skip for Darwin > 16, the API use is an error
there.
* obj-c++.dg/qual-types-1.mm: Prune a spurious l64 warning.
* obj-c++.dg/stubify-1.mm: Tidy up after better compiler warnings.
* obj-c++.dg/stubify-2.mm: Likewise.
* obj-c++.dg/try-catch-1.mm: Likewise.
* obj-c++.dg/try-catch-3.mm: Likewise.

From-SVN: r272327

5 years ago[objective-c/c++, testsuite, 2/3] Workaround for PR90709.
Iain Sandoe [Sat, 15 Jun 2019 14:00:24 +0000 (14:00 +0000)]
[objective-c/c++, testsuite, 2/3] Workaround for PR90709.

Use the CF-CFString.h, F-NS*.h proxy headers where needed in the objective-c
testsuite.  Make minor adjustments to tests as required, providing that those
do not alter the test intent.

2019-06-15  Iain Sandoe  <iain@sandoe.co.uk>

PR objc/90709
* objc.dg/encode-7-next-64bit.m: Use proxy headers.
* objc.dg/image-info.m: Likewise.
* objc.dg/method-6.m: Likewise.
* objc.dg/no-extra-load.m: Likewise.
* objc.dg/objc-foreach-4.m: Likewise.
* objc.dg/objc-foreach-5.m: Likewise.
* objc.dg/proto-lossage-7.m: Likewise.
* objc.dg/strings/const-cfstring-2.m: Likewise.
* objc.dg/strings/const-cfstring-5.m: Likewise.
* objc.dg/strings/const-str-12b.m: Likewise.
* objc.dg/symtab-1.m: Likewise.
* objc.dg/torture/strings/const-cfstring-1.m: Likewise.
* objc.dg/torture/strings/const-str-10.m: Likewise.
* objc.dg/torture/strings/const-str-11.m: Likewise.
* objc.dg/torture/strings/const-str-9.m: Likewise.
* objc.dg/zero-link-1.m: Likewise.
* objc.dg/zero-link-2.m: Likewise.
* objc.dg/zero-link-3.m: Likewise.
* objc.dg/isa-field-1.m: Suppress unwanted warning, add comment why.
* objc.dg/headers.m: XFAIL for Darwin14-19.
* objc.dg/objc-gc-4.m: Skip for Darwin > 16, the API use is an error
there.

From-SVN: r272326

5 years ago[objective-c/c++, testsuite, 1/3] Workaround for PR90709.
Iain Sandoe [Sat, 15 Jun 2019 13:54:36 +0000 (13:54 +0000)]
[objective-c/c++, testsuite, 1/3] Workaround for PR90709.

Since we cannot parse the current NeXT headers, because of PR90709 and its
dependents, we have a large amount of testsuite noise for Darwin platforms.
In order to restore the usefulness of the testsuite, we are going add headers
without the modern syntax elements that trigger the bug, and use these for
test runs on newer Darwin.

The headers are imported from GNUStep, with some local modifications to make
sure that __BLOCKS__ is honoured as a gate for Apple-style blocks closures.

CF-CFString.h, F-NS*.h are proxy headers that use the installed CoreFoundation
or Foundation headers on systems <= Darwin12 and the GNUStep headers for newer.

2019-06-15  Iain Sandoe  <iain@sandoe.co.uk>

PR objc/90709
* objc-obj-c++-shared/CF-CFString.h: New.
* objc-obj-c++-shared/F-NSArray.h: New.
* objc-obj-c++-shared/F-NSAutoreleasePool.h: New.
* objc-obj-c++-shared/F-NSObject.h: New.
* objc-obj-c++-shared/F-NSString.h: New.
* objc-obj-c++-shared/F-NSValue.h: New.
* objc-obj-c++-shared/GNUStep/CoreFoundation/CFArray.h: New.
* objc-obj-c++-shared/GNUStep/CoreFoundation/CFAvailability.h: New.
* objc-obj-c++-shared/GNUStep/CoreFoundation/CFBase.h: New.
* objc-obj-c++-shared/GNUStep/CoreFoundation/CFCharacterSet.h: New.
* objc-obj-c++-shared/GNUStep/CoreFoundation/CFData.h: New.
* objc-obj-c++-shared/GNUStep/CoreFoundation/CFDictionary.h: New.
* objc-obj-c++-shared/GNUStep/CoreFoundation/CFLocale.h: New.
* objc-obj-c++-shared/GNUStep/CoreFoundation/CFString.h: New.
* objc-obj-c++-shared/GNUStep/Foundation/NSArray.h: New.
* objc-obj-c++-shared/GNUStep/Foundation/NSAutoreleasePool.h: New.
* objc-obj-c++-shared/GNUStep/Foundation/NSDate.h: New.
* objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h: New.
* objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h: New.
* objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h: New.
* objc-obj-c++-shared/GNUStep/Foundation/NSObject.h: New.
* objc-obj-c++-shared/GNUStep/Foundation/NSRange.h: New.
* objc-obj-c++-shared/GNUStep/Foundation/NSString.h: New.
* objc-obj-c++-shared/GNUStep/Foundation/NSValue.h: New.
* objc-obj-c++-shared/GNUStep/Foundation/NSZone.h: New.
* objc-obj-c++-shared/GNUStep/GNUstepBase/GNUstep.h: New.
* objc-obj-c++-shared/GNUStep/GNUstepBase/GSBlocks.h: New.
* objc-obj-c++-shared/GNUStep/GNUstepBase/GSConfig.h: New.
* objc-obj-c++-shared/GNUStep/GNUstepBase/GSObjCRuntime.h: New.
* objc-obj-c++-shared/GNUStep/GNUstepBase/GSVersionMacros.h: New.
* objc-obj-c++-shared/GNUStep/GNUstepBase/NSArray+GNUstepBase.h: New.
* objc-obj-c++-shared/GNUStep/GNUstepBase/NSMutableString+GNUstepBase.h:
New.
* objc-obj-c++-shared/GNUStep/GNUstepBase/NSNumber+GNUstepBase.h: New.
* objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h: New.
* objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h: New.

From-SVN: r272325

5 years ago[nvptx, libgomp] Update pr85381-{2,4}.c test-cases
Tom de Vries [Sat, 15 Jun 2019 12:01:30 +0000 (12:01 +0000)]
[nvptx, libgomp] Update pr85381-{2,4}.c test-cases

After the fix for "PR tree-optimization/89713 - Assume loop with an exit is
finite" ( r272234 ) empty oacc loops are removed before expand.

Update pr85381-{2,4}.c accordingly.

2019-06-15  Tom de Vries  <tdevries@suse.de>

PR tree-optimization/89713
* testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: Expect no bar.sync.
* testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: Same.

From-SVN: r272324

5 years agoi386.md (and<mode>3): Generate zero-extends for TARGET_ZERO_EXTEND_WITH_AND &&...
Uros Bizjak [Sat, 15 Jun 2019 07:32:02 +0000 (09:32 +0200)]
i386.md (and<mode>3): Generate zero-extends for TARGET_ZERO_EXTEND_WITH_AND &&...

* config/i386/i386.md (and<mode>3): Generate zero-extends for
TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
only.
(*anddi3_doubleword): Split before reload. Merge with
anddi->zext pre-reload splitter.
(*andndi3_doubleword): Split before reload.
(*<code>di3_doubleword): Ditto.
(*one_cmpldi2_doubleword): Ditto.

From-SVN: r272323

5 years agore PR middle-end/90779 (Fortran array initialization in offload regions)
Jakub Jelinek [Sat, 15 Jun 2019 07:09:04 +0000 (09:09 +0200)]
re PR middle-end/90779 (Fortran array initialization in offload regions)

PR middle-end/90779
* gimplify.c: Include omp-offload.h and context.h.
(gimplify_bind_expr): Add "omp declare target" attributes
to static block scope variables inside of target region or target
functions.

* c-c++-common/goacc/routine-5.c (func2): Don't expect error for
static block scope variable in #pragma acc routine.

* testsuite/libgomp.c/pr90779.c: New test.
* testsuite/libgomp.fortran/pr90779.f90: New test.

From-SVN: r272322

5 years ago[openacc] Disable pass_thread_jumps for IFN_UNIQUE
Tom de Vries [Sat, 15 Jun 2019 07:06:19 +0000 (07:06 +0000)]
[openacc] Disable pass_thread_jumps for IFN_UNIQUE

If we compile the openacc testcase with -fopenacc -O2, we run into a SIGSEGV
or assert.  The root cause for this is that pass_thread_jumps breaks the
invariant that OACC_FORK and OACC_JOIN mark the start and end of a
single-entry-single-exit region.

Fix this by bailing out when encountering an IFN_UNIQUE in
thread_jumps::profitable_jump_thread_path.

Bootstrapped and reg-tested on x86_64.
Build and reg-tested libgomp on x86_64 with nvptx accelerator.

2019-06-15  Tom de Vries  <tdevries@suse.de>

PR tree-optimization/90009
* tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
Return NULL if bb contains IFN_UNIQUE.

* testsuite/libgomp.oacc-c-c++-common/pr90009.c: New test.

From-SVN: r272321

5 years agoarith.c (arith_power): Rework overflow of an integer to an integer exponent.
Steven G. Kargl [Sat, 15 Jun 2019 00:38:55 +0000 (00:38 +0000)]
arith.c (arith_power): Rework overflow of an integer to an integer exponent.

2019-06-14  Steven G. Kargl  <kargl@gcc.gnu.org>

* arith.c (arith_power): Rework overflow of an integer to an integer
exponent.

2019-06-14  Steven G. Kargl  <kargl@gcc.gnu.org>

* gfortran.dg/integer_exponentiation_4.f90: Update test.
* gfortran.dg/integer_exponentiation_5.F90: Ditto.
* gfortran.dg/no_range_check_1.f90: Ditto.

From-SVN: r272320

5 years agors6000: New iterator CCEITHER
Segher Boessenkool [Sat, 15 Jun 2019 00:25:18 +0000 (02:25 +0200)]
rs6000: New iterator CCEITHER

This expands to both CC and CCUNS, it's useful for isel for example.

* config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
(un): New define_mode_attr.
(isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
(isel_<un>signed_<GPR:mode>): ... this.  New define_insn.
(isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
merge into ...
(isel_reversed_<un>signed_<GPR:mode>): ... this.  New define_insn.

From-SVN: r272319

5 years agoDaily bump.
GCC Administrator [Sat, 15 Jun 2019 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r272318

5 years agore PR fortran/90577 (FAIL: gfortran.dg/lrshift_1.f90 with -O(2|3) and -flto)
Harald Anlauf [Fri, 14 Jun 2019 18:41:20 +0000 (18:41 +0000)]
re PR fortran/90577 (FAIL: gfortran.dg/lrshift_1.f90 with -O(2|3) and -flto)

2019-06-14  Harald Anlauf  <anlauf@gmx.de>

PR fortran/90577
PR fortran/90578
* trans-intrinsic.c (gfc_conv_intrinsic_shift): Properly
distinguish logical/arithmetic shifts.
* intrinsic.texi: Update documentation for SHIFTR/SHIFTL/SHIFTA
(Fortran 2008) and LSHIFT/RSHIFT (GNU extensions).

PR fortran/90577
PR fortran/90578
* gfortran.dg/lrshift_1.f90: Adjust testcase.
* gfortran.dg/shiftalr_3.f90: New testcase.

From-SVN: r272309

5 years agoDarwin, opts processing - Initial tidy.
Iain Sandoe [Fri, 14 Jun 2019 18:31:44 +0000 (18:31 +0000)]
Darwin, opts processing - Initial tidy.

This change adds RejectNegative in a number of places it was needed,
reorders the opts into two groups (one general and one driver-only).
We also add a minimal description to each opt, and note some that
are now obsolete.  The only functional change is to permit
-mtarget-linker= as an alias of -mtarget-linker.

gcc/

2019-06-14  Iain Sandoe  <iain@sandoe.co.uk>

* config/darwin.opt: Add RejectNegative where needed, reorder
and add minimal functional descriptions.

From-SVN: r272308

5 years agore PR fortran/89646 (Spurious actual argument might interfere warning)
Steven G. Kargl [Fri, 14 Jun 2019 18:17:00 +0000 (18:17 +0000)]
re PR fortran/89646 (Spurious actual argument might interfere warning)

2019-06-14  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/89646
* dependency.c (gfc_check_argument_var_dependency): Suppress spurious
warnings by comparing variable names.

2019-06-14  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/89646
* gfortran.dg/pr89646.f90: New test.

From-SVN: r272307

5 years agoUpdate preferred_stack_boundary only when expanding function call
H.J. Lu [Fri, 14 Jun 2019 16:24:56 +0000 (16:24 +0000)]
Update preferred_stack_boundary only when expanding function call

locate_and_pad_parm is called when expanding function call from
initialize_argument_information and when generating function body
from assign_parm_find_entry_rtl:

  /* Remember if the outgoing parameter requires extra alignment on the
     calling function side.  */
  if (crtl->stack_alignment_needed < boundary)
    crtl->stack_alignment_needed = boundary;
  if (crtl->preferred_stack_boundary < boundary)
    crtl->preferred_stack_boundary = boundary;

stack_alignment_needed and preferred_stack_boundary should be updated
only when expanding function call, not when generating function body.

Add update_stack_alignment_for_call to update stack alignment when
outgoing parameter is passed in the stack.

gcc/

PR rtl-optimization/90765
* calls.c (update_stack_alignment_for_call): New function.
(expand_call): Call update_stack_alignment_for_call when
outgoing parameter is passed in the stack.
(emit_library_call_value_1): Likewise.
* function.c (locate_and_pad_parm): Don't update
stack_alignment_needed and preferred_stack_boundary.

gcc/testsuite/

PR rtl-optimization/90765
* gcc.target/i386/pr90765-1.c: New test.
* gcc.target/i386/pr90765-2.c: Likewise.

From-SVN: r272296

5 years agoUse __builtin_mul_overflow in xmallocarray
Janne Blomqvist [Fri, 14 Jun 2019 16:05:54 +0000 (19:05 +0300)]
Use __builtin_mul_overflow in xmallocarray

As GCC now provides builtins for doing integer overflow checking, lets
use it when checking for overflow in xmallocarray.

Regtested on x86_64-pc-linux-gnu.

libgfortran/ChangeLog:

2019-06-14  Janne Blomqvist  <jb@gcc.gnu.org>

* runtime/memory.c (SIZE_MAX):Remove macro definition.
(xmallocarray): Use __builtin_mul_overflow.

From-SVN: r272295

5 years agoi386: Update SSE <-> integer move costs
Hongtao Liu [Fri, 14 Jun 2019 15:41:43 +0000 (15:41 +0000)]
i386: Update SSE <-> integer move costs

Since inline_secondary_memory_needed has

  /* ??? This is a lie.  We do have moves between mmx/general, and for
     mmx/sse2.  But by saying we need secondary memory we discourage the
     register allocator from using the mmx registers unless needed.  */
  if (MMX_CLASS_P (class1) != MMX_CLASS_P (class2))
    return true;

moves between MMX and non-MMX units require secondary memory.   There
is no need to check moves between MMX and integer units.

struct processor_costs has:

  const int mmxsse_to_integer;  /* cost of moving mmxsse register to
                                   integer.  */
  const int ssemmx_to_integer;  /* cost of moving integer to mmxsse register. */

This patch also renames mmxsse_to_integer to sse_to_integer and
ssemmx_to_integer to integer_to_sse.

Tested on Linux/x86-64.

PR target/90877
* config/i386/i386-features.c
(dimode_scalar_chain::compute_convert_gain): Replace
mmxsse_to_integer with sse_to_integer.
* config/i386/i386.c (ix86_register_move_cost): Verify that
moves between MMX and non-MMX units require secondary memory.
Correct costs of moves between SSE and integer units.
* config/i386/i386.h (processor_costs): Rename cost of moving
SSE register to integer to sse_to_integer.  Rename cost of
moving integer register to SSE to integer_to_sse.

From-SVN: r272294

5 years agoPR c++/90884 - stray note with -Wctor-dtor-privacy.
Marek Polacek [Fri, 14 Jun 2019 14:49:57 +0000 (14:49 +0000)]
PR c++/90884 - stray note with -Wctor-dtor-privacy.

* class.c (maybe_warn_about_overly_private_class): Guard the call to
inform.

* g++.dg/warn/ctor-dtor-privacy-4.C: New.
* g++.dg/warn/ctor-dtor-privacy-4.h: New.

From-SVN: r272291

5 years ago[NetBSD] Add support for the Arm EABI.
Matt Thomas [Fri, 14 Jun 2019 14:04:20 +0000 (14:04 +0000)]
[NetBSD] Add support for the Arm EABI.

This is a roll-up of a set of changes needed to support the Arm EABI on NetBSD.

2019-06-14  Matt Thomas  <matt@3am-software.com>
    Matthew Green  <mrg@eterna.com.au>
    Nick Hudson  <skrll@netbsd.org>
    Maya Rashish  <coypu@sdf.org>
    Richard Earnshaw  <rearnsha@arm.com>

gcc:

* config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
* config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
* config/arm/netbsd-eabi.h: New file.
* config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
redefining.
(SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
* config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
(NETBSD_SUBTARGET_EXTRA_SPECS): New define.
(SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.

libatomic:
* configure.tgt (arm*): Handle NetBSD in the same way as FreeBSD.

libgcc:
* config.host (arm*-*-netbsdelf*): Add support for EABI configurations.
* config/arm/t-netbsd (LIB1ASMFUNCS): Add some additional assembler
functions to build.
* config/arm/t-netbsd-eabi: New file.

Co-Authored-By: Matthew Green <mrg@eterna.com.au>
Co-Authored-By: Maya Rashish <coypu@sdf.org>
Co-Authored-By: Nick Hudson <skrll@netbsd.org>
Co-Authored-By: Richard Earnshaw <rearnsha@arm.com>
From-SVN: r272290

5 years agoDisable -Wctor-dtor-privacy warnings for some standard types
Jonathan Wakely [Fri, 14 Jun 2019 14:03:20 +0000 (15:03 +0100)]
Disable -Wctor-dtor-privacy warnings for some standard types

* include/experimental/type_traits (experimental::nonesuch): Use
pragma to disable -Wctor-dtor-privacy warnings.
* include/std/type_traits (__is_convertible_helper<From, To, false>)
(__is_nt_convertible_helper<From, To, false>, __nonesuch): Likewise.

From-SVN: r272289

5 years agoAdd __cpp_lib_bind_front macro to <version> header
Jonathan Wakely [Fri, 14 Jun 2019 14:03:16 +0000 (15:03 +0100)]
Add __cpp_lib_bind_front macro to <version> header

* include/std/version (__cpp_lib_bind_front): Add missing macro.

From-SVN: r272288

5 years agoPR c++/85552 - wrong instantiation of dtor for DMI.
Jason Merrill [Fri, 14 Jun 2019 13:22:33 +0000 (09:22 -0400)]
PR c++/85552 - wrong instantiation of dtor for DMI.

The problem here is that when processing direct-initialization of a data
member, we don't need to worry about destruction semantics; that will be
handled in the [cd]tor.  Conveniently, we already have tf_no_cleanup from a
similar fix to new-expressions.

* typeck2.c (digest_nsdmi_init): Set tf_no_cleanup for direct-init.

From-SVN: r272287

5 years agotree-loop-distribution.c (classify_partition): Return whether a reduction appeared...
Richard Biener [Fri, 14 Jun 2019 11:29:44 +0000 (11:29 +0000)]
tree-loop-distribution.c (classify_partition): Return whether a reduction appeared in all partitions and do not stop builtin...

2019-06-14  Richard Biener  <rguenther@suse.de>

* tree-loop-distribution.c (classify_partition): Return
whether a reduction appeared in all partitions and do not
stop builtin detection because of this.
(distribute_loop): Sort a non-builtin partition last if
there's a reduction in all partitions and make sure the
partition prevailing as last is not a builtin.

* gcc.dg/tree-ssa/ldist-26.c: Adjust.

From-SVN: r272284

5 years agore PR ipa/90401 (Missed propagation of by-ref constant argument to callee function)
Feng Xue [Fri, 14 Jun 2019 02:34:48 +0000 (02:34 +0000)]
re PR ipa/90401 (Missed propagation of by-ref constant argument to callee function)

PR ipa/90401

gcc/ChangeLog:

* ipa-prop.c (add_to_agg_contents_list): New function.
(clobber_by_agg_contents_list_p): Likewise.
(extract_mem_content): Likewise.
(get_place_in_agg_contents_list): Delete.
(determine_known_aggregate_parts): Renamed from
determine_locally_known_aggregate_parts.  New parameter
aa_walk_budget_p.

gcc/testsuite/ChangeLog:

* gcc.dg/ipa/ipcp-agg-10.c: New test.

From-SVN: r272282

5 years agoPR tree-optimization/90662 - strlen of a string in a vla plus offset not folded
Martin Sebor [Fri, 14 Jun 2019 02:07:02 +0000 (02:07 +0000)]
PR tree-optimization/90662 - strlen of a string in a vla plus offset not folded

gcc/ChangeLog:

PR tree-optimization/90662
* tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
to the same type.

gcc/testsuite/ChangeLog:

PR tree-optimization/90662
* gcc.dg/pr90866-2.c: New test.
* gcc.dg/pr90866.c: Ditto.

From-SVN: r272281

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

From-SVN: r272280

5 years agore PR bootstrap/90873 (-Wmaybe-uninitialized warning in gcc/tree-ssa-forwprop.c break...
Jan Hubicka [Thu, 13 Jun 2019 21:56:37 +0000 (23:56 +0200)]
re PR bootstrap/90873 (-Wmaybe-uninitialized warning in gcc/tree-ssa-forwprop.c breaks 32-bit bootstrap)

PR bootstrap/90873
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
dbase is not TARGET_MEM_REF.

From-SVN: r272273

5 years ago* ChangeLog: Fix my last entry.
Uros Bizjak [Thu, 13 Jun 2019 21:37:17 +0000 (23:37 +0200)]
* ChangeLog: Fix my last entry.

From-SVN: r272272

5 years agoi386.md (SWIM1248s): Rename from SWIM1248x.
Uros Bizjak [Thu, 13 Jun 2019 21:29:06 +0000 (23:29 +0200)]
i386.md (SWIM1248s): Rename from SWIM1248x.

* config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
Update all uses.
(and<mode>3): Use gen_extend_insn instead of indirect functions.
Do not generate DImode extends for 32bit targets.
(and->zext post-reload splitter): Use gen_extend_insn
instead of indirect functions.
(anddi->zext pre-reload splitter): New.

* config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
Use gen_sub3_insn instead of indirect function.
(ix86_expand_ashl_const): Use gen_add2_insn instead of
indirect function.
(ix86_adjust_counter): Ditto.

From-SVN: r272270

5 years agore PR tree-optimization/77820 (A jump threading opportunity with conditionals)
Jiufu Guo [Thu, 13 Jun 2019 18:55:55 +0000 (18:55 +0000)]
re PR tree-optimization/77820 (A jump threading opportunity with conditionals)

PR tree-optimization/77820
* tree-ssa-threadedge.c
(edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
function.
(thread_across_edge): Add call to
edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.

PR tree-optimization/77820
* gcc.dg/tree-ssa/phi_on_compare-1.c: New testcase.
* gcc.dg/tree-ssa/phi_on_compare-2.c: New testcase.
* gcc.dg/tree-ssa/phi_on_compare-3.c: New testcase.
* gcc.dg/tree-ssa/phi_on_compare-4.c: New testcase.
* gcc.dg/tree-ssa/split-path-6.c: Update testcase.
* gcc.target/sh/pr51244-20.c: Update testcase.

Co-Authored-By: Lijia He <helijia@linux.ibm.com>
From-SVN: r272261

5 years agoDarwin, Driver - Improve processing of macosx-version-min=
Iain Sandoe [Thu, 13 Jun 2019 18:53:05 +0000 (18:53 +0000)]
Darwin, Driver - Improve processing of macosx-version-min=

For PR target/63810 some improvements were made in the parsing of
the version string at the point it's used to define the built-in
__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__.  This is fine, but the
specs processing also uses the version, and specs version-compare
doesn't like leading zeros on components.  This means that while we
succeed in processing -mmacosx-version-min=010.00002.000099 on compile
lines, it fails for any other line that uses the value as part of a spec
(in particular, link lines fail).

To fix this, we need to apply a bit of clean-up to the version that's
presented to the driver, and push that back into the command line opts.

The value can come from four places:
 1. User-entered on the command line
 2. User-entered as MACOSX_DEPLOYMENT_TARGET= environment var.
 3. Absent those two
   3a For self-hosting systems, look-up from the kernel
   3b For cross-compilers, as a default supplied at configure time.

We apply the clean-up to all 4 (although it shouldn't really be needed
for the cases under 3).

We also supply a test-case that adapts to the target-version of the
system, so that the link requirements are met by the SDK in use (if you
try to link i686-darwin9 on an x86-64-darwin18 SDK, it will fail).

gcc/

2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>

* config/darwin-driver.c (validate_macosx_version_min): New.
(darwin_default_min_version): Cleanup and validate supplied version.
(darwin_driver_init): Likewise and push cleaned version into opts.

gcc/testsuite/

2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>

* gcc.dg/darwin-minversion-link.c: New test.

From-SVN: r272260

5 years agore PR fortran/68544 (ICE trying to pass derived type constructor as a function)
Steven G. Kargl [Thu, 13 Jun 2019 18:40:19 +0000 (18:40 +0000)]
re PR fortran/68544 (ICE trying to pass derived type constructor as a function)

2019-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68544
* resolve.c (is_dt_name): New function to compare symbol name against
list of derived types.
(resolve_actual_arglist): Use it to find wrong code.

2019-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68544
* gfortran.dg/pr68544.f90: New test.
* gfortran.dg/pr85687.f90: Modify test for new error message.

From-SVN: r272259

5 years agoDarwin, testsuite - Fix pr71694 fail for m32.
Iain Sandoe [Thu, 13 Jun 2019 18:32:32 +0000 (18:32 +0000)]
Darwin, testsuite - Fix pr71694 fail for m32.

This test fails for Darwin m32 because it's scanning for absence
of an instruction that's validly used in PIC code.  Fixed, in this
case, by using non-PIC codegen.

2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>

* g++.dg/pr71694.C: Use non-PIC codegen for Darwin m32.

From-SVN: r272257

5 years agore PR fortran/89344 (uncaught programmer error: polymorphic variable is INTENT(IN...
Steven G. Kargl [Thu, 13 Jun 2019 18:07:53 +0000 (18:07 +0000)]
re PR fortran/89344 (uncaught programmer error:  polymorphic variable is INTENT(IN) but assigned to without error)

2019-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/89344
* expr.c (gfc_check_vardef_context): Check for INTENT(IN) variable
in SELECT TYPE construct.

2019-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/89344
 * gfortran.dg/pr89344.f90: New test.

From-SVN: r272255

5 years agore PR fortran/88810 (gcc/fortran/dependency.c:2200: possible cut'n'paste error ?)
Steven G. Kargl [Thu, 13 Jun 2019 17:45:52 +0000 (17:45 +0000)]
re PR fortran/88810 (gcc/fortran/dependency.c:2200: possible cut'n'paste error ?)

2019-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/88810
* dependency.c (gfc_dep_resolver): Re-arrange code to make the logic
a bit more transparent.  Fix 2 nearby formatting issues.

From-SVN: r272254

5 years agoDarwin, testsuite - Adjust two tests that fail on newer OS versions.
Iain Sandoe [Thu, 13 Jun 2019 17:15:37 +0000 (17:15 +0000)]
Darwin, testsuite - Adjust two tests that fail on newer OS versions.

Newer OS versions (10.14+) do not provide some of the CRTs that are used
for older ones (e.g. 10.5), and thus link tests that specify targeting
such a revision fail.  We retain the testing of the correct defined OS
version number but switch to compile-only testing for these two tests.

2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>

* gcc.dg/darwin-minversion-1.c: Use compile rather than link/run.
* gcc.dg/darwin-minversion-2.c: Likewise.

From-SVN: r272251

5 years agore PR target/90871 (g++.dg/ext/altivec-15.C fails after r272236)
Paolo Carlini [Thu, 13 Jun 2019 17:10:03 +0000 (17:10 +0000)]
re PR target/90871 (g++.dg/ext/altivec-15.C fails after r272236)

2019-06-13  Paolo Carlini  <paolo.carlini@oracle.com>

PR target/90871
* g++.dg/ext/altivec-15.C: Add dg-error directive.

From-SVN: r272250

5 years agotestsuite - Require alias support for pr90760.
Iain Sandoe [Thu, 13 Jun 2019 16:58:35 +0000 (16:58 +0000)]
testsuite - Require alias support for pr90760.

This test fails on Darwin because it requires alias support, so
add the relevant dg-requires.

2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>

* gcc.dg/pr90760.c: Require alias support.

From-SVN: r272248

5 years agore PR tree-optimization/90869 (Non-disambiguated memory accesses)
Jan Hubicka [Thu, 13 Jun 2019 15:00:41 +0000 (17:00 +0200)]
re PR tree-optimization/90869 (Non-disambiguated memory accesses)

PR tree-optimize/90869
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
converts in MEM_REF referencing decl rather than view converts
from decl type to MEM_REF type.

* g++.dg/tree-ssa/alias-access-path-1.C: New testcase.

From-SVN: r272247

5 years agore PR tree-optimization/90856 (ICE: verify_gimple failed (error: incompatible types...
Richard Biener [Thu, 13 Jun 2019 13:03:13 +0000 (13:03 +0000)]
re PR tree-optimization/90856 (ICE: verify_gimple failed (error: incompatible types in 'PHI' argument 1))

2019-06-13  Richard Biener  <rguenther@suse.de>

PR tree-optimization/90856
* tree-sra.c (build_ref_for_model): Only use
build_reconstructed_reference when address-spaces are the same.

* gcc.target/i386/pr90856.c: New testcase.

From-SVN: r272244

5 years agonvptx.c (nvptx_sese_number, [...]): Don't wrap ei variable name in the declaration...
Jakub Jelinek [Thu, 13 Jun 2019 12:51:39 +0000 (14:51 +0200)]
nvptx.c (nvptx_sese_number, [...]): Don't wrap ei variable name in the declaration in ()s.

* config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
wrap ei variable name in the declaration in ()s.
(nvptx_single): Actually use mode_label variable.  Formatting fix.

From-SVN: r272243

5 years agossa-dse-1.C: Don't match exact number of chars of = {} store.
Jakub Jelinek [Thu, 13 Jun 2019 11:29:13 +0000 (13:29 +0200)]
ssa-dse-1.C: Don't match exact number of chars of = {} store.

* g++.dg/tree-ssa/ssa-dse-1.C: Don't match exact number of chars of
= {} store.
* g++.dg/tree-ssa/pr31146.C: Change -fdump-tree-forwprop to
-fdump-tree-forwprop1 in dg-options.  Expect <int[5]> in MEM.

From-SVN: r272240

5 years agotree-vectorizer.h (vect_loop_vectorized_call): Declare.
Richard Biener [Thu, 13 Jun 2019 10:10:05 +0000 (10:10 +0000)]
tree-vectorizer.h (vect_loop_vectorized_call): Declare.

2019-06-13  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.h (vect_loop_vectorized_call): Declare.
* tree-vectorizer.c (vect_loop_vectorized_call): Export and
also return the condition stmt.
* tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
loop we can version and version that, reusing the loop version
created by if-conversion instead of versioning again.

* gcc.dg/vect/vect-version-1.c: New testcase.
* gcc.dg/vect/vect-version-2.c: Likewise.

From-SVN: r272239

5 years agoRevamp value_range::may_contain_p.
Aldy Hernandez [Thu, 13 Jun 2019 09:46:00 +0000 (09:46 +0000)]
Revamp value_range::may_contain_p.

From-SVN: r272238

5 years ago[ARC] Add documentation naked, ilink and firq
Claudiu Zissulescu [Thu, 13 Jun 2019 09:35:19 +0000 (11:35 +0200)]
[ARC] Add documentation naked, ilink and firq

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

* doc/extend.texi (ARC Function Attributes): Update info.

From-SVN: r272237

5 years agodecl.c (grokdeclarator): Use id_loc in five additional places in the last part of...
Paolo Carlini [Thu, 13 Jun 2019 08:45:46 +0000 (08:45 +0000)]
decl.c (grokdeclarator): Use id_loc in five additional places in the last part of the function.

/cp
2019-06-13  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (grokdeclarator): Use id_loc in five additional places
in the last part of the function.

/testsuite
2019-06-13  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/diagnostic/variably-modified-type-1.C: New.
* g++.dg/cpp0x/alias-decl-1.C: Test the location too.
* g++.dg/other/pr84792-1.C: Likewise.
* g++.dg/other/pr84792-2.C: Likewise.
* g++.dg/parse/error24.C: Likewise.
* g++.dg/parse/error32.C: Likewise.
* g++.dg/parse/error33.C: Likewise.
* g++.dg/parse/saved1.C: Likewise.
* g++.dg/template/operator6.C: Likewise.
* g++.dg/template/pr61745.C: Likewise.
* g++.dg/template/typedef41.C: Likewise.
* g++.old-deja/g++.jason/crash10.C: Likewise.

/cp
2019-06-13  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (grokdeclarator): Move further up the declaration of
id_loc, use it immediately, update its value after the loop
over declarator, use it again in the final part of function;
improve locations of error messages about multiple data types
and conflicting specifiers.

/testsuite
2019-06-13  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/diagnostic/conflicting-specifiers-1.C: New.
* g++.dg/diagnostic/two-or-more-data-types-1.C: Likewise.
* g++.dg/parse/error10.C: Adjust location.
* g++.dg/parse/pragma2.C: Likewise.

From-SVN: r272236

5 years agore PR c++/90801 (A recurring hang)
Richard Biener [Thu, 13 Jun 2019 08:41:13 +0000 (08:41 +0000)]
re PR c++/90801 (A recurring hang)

2019-06-13  Richard Biener  <rguenther@suse.de>

PR c++/90801
* typeck2.c (split_nonconstant_init_1): Properly count
num_split_elts, optimize single constructor elt removal.

From-SVN: r272235

5 years agoPR tree-optimization/89713 - Assume loop with an exit is finite
Feng Xue [Thu, 13 Jun 2019 04:17:42 +0000 (04:17 +0000)]
PR tree-optimization/89713 - Assume loop with an exit is finite

gcc/ChangeLog:

        * doc/invoke.texi (-ffinite-loops): Document new option.
        * common.opt (-ffinite-loops): New option.
        * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
        IFN_GOACC_LOOP calls as necessary.
        * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
        is finite.
        * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
        IFN_GOACC_LOOP call is not used.
        * opts.c (default_options_table): Enable -ffinite-loops at -O2+.

gcc/testsuite/ChangeLog:

        * g++.dg/tree-ssa/empty-loop.C: New test.
        * gcc.dg/tree-ssa/dce-2.c: New test.
        * gcc.dg/const-1.c: Add -fno-finite-loops option.
        * gcc.dg/graphite/graphite.exp: Likewise.
        * gcc.dg/loop-unswitch-1.c: Likewise.
        * gcc.dg/predict-9.c: Likewise.
        * gcc.dg/pure-2.c: Likewise.
        * gcc.dg/tree-ssa/20040211-1.c: Likewise.
        * gcc.dg/tree-ssa/loop-10.c: Likewise.
        * gcc.dg/tree-ssa/split-path-6.c: Likewise.
        * gcc.dg/tree-ssa/ssa-thread-12.c: Likewise.

libgomp/ChangeLog:

        * testsuite/libgomp.oacc-c-c++-common/pr84955-1.c: New test.

From-SVN: r272234

5 years agore PR target/88838 ([SVE] Use 32-bit WHILELO in LP64 mode)
Kugan Vivekanandarajah [Thu, 13 Jun 2019 03:34:28 +0000 (03:34 +0000)]
re PR target/88838 ([SVE] Use 32-bit WHILELO in LP64 mode)

gcc/ChangeLog:

2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>

PR target/88838
* tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
compare_type is not with Pmode size, we will create an IV with
Pmode size with truncated use (i.e. converted to the correct type).
* tree-vect-loop.c (vect_verify_full_masking): Find IV type.
(vect_iv_limit_for_full_masking): New. Factored out of
vect_set_loop_condition_masked.
* tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
(vect_iv_limit_for_full_masking): Declare.

gcc/testsuite/ChangeLog:

2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>

PR target/88838
* gcc.target/aarch64/pr88838.c: New test.
* gcc.target/aarch64/sve/while_1.c: Adjust.

From-SVN: r272233

5 years agore PR target/88834 ([SVE] Poor addressing mode choices for LD2 and ST2)
Kugan Vivekanandarajah [Thu, 13 Jun 2019 03:18:54 +0000 (03:18 +0000)]
re PR target/88834 ([SVE] Poor addressing mode choices for LD2 and ST2)

gcc/ChangeLog:

2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>

PR target/88834
* tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
(get_alias_ptr_type_for_ptr_address): Likewise.
(add_iv_candidate_for_use): Add scaled index candidate if useful.
* tree-ssa-address.c (preferred_mem_scale_factor): New.
* config/aarch64/aarch64.c (aarch64_classify_address): Relax
allow_reg_index_p.

gcc/testsuite/ChangeLog:

2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>

PR target/88834
* gcc.target/aarch64/pr88834.c: New test.
* gcc.target/aarch64/sve/struct_vect_1.c: Adjust.
* gcc.target/aarch64/sve/struct_vect_14.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_15.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_16.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_17.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_7.c: Likewise.

From-SVN: r272232

5 years agoiterators.md (ADDSUB): Fix typo in comment.
Kugan Vivekanandarajah [Thu, 13 Jun 2019 03:13:56 +0000 (03:13 +0000)]
iterators.md (ADDSUB): Fix typo in comment.

gcc/ChangeLog:

2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>

* config/aarch64/iterators.md (ADDSUB): Fix typo in comment.

From-SVN: r272231

5 years agore PR c++/87410 (internal compiler error: in fold_convert_loc, at fold-const.c:2530)
Marek Polacek [Thu, 13 Jun 2019 01:31:03 +0000 (01:31 +0000)]
re PR c++/87410 (internal compiler error: in fold_convert_loc, at fold-const.c:2530)

PR c++/87410
* g++.dg/cpp1y/pr87410.C: New test.

From-SVN: r272230

5 years agoDaily bump.
GCC Administrator [Thu, 13 Jun 2019 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r272228

5 years agoPR c++/66999 - 'this' captured by reference.
Marek Polacek [Wed, 12 Jun 2019 22:41:35 +0000 (22:41 +0000)]
PR c++/66999 - 'this' captured by reference.

* parser.c (cp_parser_lambda_introducer): Reject `&this'.  Use
cp_lexer_nth_token_is instead of cp_lexer_peek_nth_token.

* g++.dg/cpp0x/lambda/lambda-this21.C: New test.

From-SVN: r272223

5 years agoio.c (check_format): Use G_(...) instead of _(...) for error values...
Jakub Jelinek [Wed, 12 Jun 2019 22:38:10 +0000 (00:38 +0200)]
io.c (check_format): Use G_(...) instead of _(...) for error values...

* io.c (check_format): Use G_(...) instead of _(...) for error values,
append " in format string at %L" to all strings but unexpected_element,
use error as gfc_error formating string instead of
"%s in format string at %L".  Formatting fixes.

From-SVN: r272222

5 years agoPR c++/90825 - endless recursion when evaluating sizeof.
Marek Polacek [Wed, 12 Jun 2019 22:26:54 +0000 (22:26 +0000)]
PR c++/90825 - endless recursion when evaluating sizeof.

PR c++/90832 - endless recursion when evaluating sizeof.
* constexpr.c (cxx_eval_constant_expression): Don't recurse on the
result of fold_sizeof_expr if is returns a SIZEOF_EXPR.
* typeck.c (cxx_sizeof_expr): Only return a SIZEOF_EXPR if the operand
is instantiation-dependent.

* g++.dg/cpp0x/constexpr-sizeof2.C: New test.
* g++.dg/cpp0x/constexpr-sizeof3.C: New test.

From-SVN: r272221

5 years agogfortran.h (gfc_free_dt_list): Remove prototype.
Steven G. Kargl [Wed, 12 Jun 2019 22:18:37 +0000 (22:18 +0000)]
gfortran.h (gfc_free_dt_list): Remove prototype.

2019-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>

* gfortran.h (gfc_free_dt_list): Remove prototype.

From-SVN: r272220

5 years agoTweak tests to avoid fallout from MEM_REF changes on targets that don't enable...
Martin Sebor [Wed, 12 Jun 2019 20:43:27 +0000 (20:43 +0000)]
Tweak tests to avoid fallout from MEM_REF changes on targets that don't enable...

Tweak tests to avoid fallout from MEM_REF changes on targets that don't
enable store merging but achieve the same effect by other means (DSE).

gcc/testsuite?ChangeLog:

PR middle-end/90676
* gcc.dg/tree-ssa/pr30375.c: Adjust and simplify expected test
output some more.
* gcc.dg/tree-ssa/slsr-27.c: Ditto.
* gcc.dg/tree-ssa/slsr-28.c: Ditto.
* gcc.dg/tree-ssa/slsr-29.c: Ditto.
* gcc.dg/tree-ssa/ssa-dse-24.c: Ditto.

From-SVN: r272218

5 years agoPR c++/90736 - bogus error with alignof.
Marek Polacek [Wed, 12 Jun 2019 20:17:36 +0000 (20:17 +0000)]
PR c++/90736 - bogus error with alignof.

* constexpr.c (adjust_temp_type): Use cv_unqualified type.

* g++.dg/cpp0x/alignof5.C: New test.

From-SVN: r272217

5 years agoFix incorrect __cpp_lib_parallel_algorithm macro definitions
Jonathan Wakely [Wed, 12 Jun 2019 20:16:03 +0000 (21:16 +0100)]
Fix incorrect __cpp_lib_parallel_algorithm macro definitions

* include/std/algorithm (__cpp_lib_parallel_algorithm): Fix value.
* include/std/memory (__cpp_lib_parallel_algorithm): Likewise.
* include/std/numeric (__cpp_lib_parallel_algorithm): Likewise.
* testsuite/25_algorithms/pstl/feature_test.cc: New test.

From-SVN: r272216

5 years agoAdd myself to MAINTAINERS
Dimitar Dimitrov [Wed, 12 Jun 2019 20:10:21 +0000 (20:10 +0000)]
Add myself to MAINTAINERS

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r272215

5 years agotestsuite: Mark testsuite that PRU has different
Dimitar Dimitrov [Wed, 12 Jun 2019 19:52:54 +0000 (19:52 +0000)]
testsuite: Mark testsuite that PRU has different

gcc/testsuite/ChangeLog:

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

        * gcc.dg/builtin-apply2.c: Skip for PRU.
        * gcc.dg/torture/stackalign/builtin-apply-2.c: Ditto.

From-SVN: r272212

5 years agotestsuite: Mark that PRU uses all function pointer bits
Dimitar Dimitrov [Wed, 12 Jun 2019 19:50:45 +0000 (19:50 +0000)]
testsuite: Mark that PRU uses all function pointer bits

gcc/testsuite/ChangeLog:

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

* g++.old-deja/g++.abi/ptrmem.C: Add PRU to list.

From-SVN: r272211

5 years agotestsuite: Mark that PRU has one-cycle jumps
Dimitar Dimitrov [Wed, 12 Jun 2019 19:48:59 +0000 (19:48 +0000)]
testsuite: Mark that PRU has one-cycle jumps

gcc/testsuite/ChangeLog:

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

* gcc.dg/tree-ssa/20040204-1.c: XFAIL on pru.
* gcc.dg/tree-ssa/reassoc-33.c: Ditto.
* gcc.dg/tree-ssa/reassoc-34.c: Ditto.
* gcc.dg/tree-ssa/reassoc-35.c: Ditto.
* gcc.dg/tree-ssa/reassoc-36.c: Ditto.

From-SVN: r272210

5 years agotestsuite: Define PRU stack usage
Dimitar Dimitrov [Wed, 12 Jun 2019 19:47:09 +0000 (19:47 +0000)]
testsuite: Define PRU stack usage

gcc/testsuite/ChangeLog:

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

* gcc.dg/stack-usage-1.c: Define PRU stack usage.

From-SVN: r272209

5 years agotestsuite: Remove PRU from test cases requiring hosted environment
Dimitar Dimitrov [Wed, 12 Jun 2019 19:44:21 +0000 (19:44 +0000)]
testsuite: Remove PRU from test cases requiring hosted environment

gcc/testsuite/ChangeLog:

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

* gcc.c-torture/execute/20101011-1.c: Define DO_TEST to 0 for PRU.
* gcc.dg/20020312-2.c: No PIC register for PRU.

From-SVN: r272208

5 years agotestsuite: Add check for unsupported TI ABI PRU features to testsuite
Dimitar Dimitrov [Wed, 12 Jun 2019 19:41:02 +0000 (19:41 +0000)]
testsuite: Add check for unsupported TI ABI PRU features to testsuite

gcc/testsuite/ChangeLog:

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

* lib/gcc-dg.exp: Filter unsupported features in PRU's TI ABI mode.
* lib/target-utils.exp: Ditto.
* lib/target-supports.exp (check_effective_target_function_pointers,
check_effective_target_large_return_values): New.

From-SVN: r272207

5 years agotestsuite: Add check for overflowed IMEM region to testsuite
Dimitar Dimitrov [Wed, 12 Jun 2019 19:36:34 +0000 (19:36 +0000)]
testsuite: Add check for overflowed IMEM region to testsuite

gcc/testsuite/ChangeLog:

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

* lib/gcc-dg.exp: Bail on region overflow for tiny targets.
* lib/target-utils.exp: Ditto.
* lib/target-supports.exp: Declare PRU target as tiny.

From-SVN: r272206

5 years agotestsuite: Add PRU tests
Dimitar Dimitrov [Wed, 12 Jun 2019 19:33:31 +0000 (19:33 +0000)]
testsuite: Add PRU tests

gcc/testsuite/ChangeLog:

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

* gcc.target/pru/abi-arg-struct.c: New test.
* gcc.target/pru/ashiftrt.c: New test.
* gcc.target/pru/builtins-1.c: New test.
* gcc.target/pru/builtins-error.c: New test.
* gcc.target/pru/clearbit.c: New test.
* gcc.target/pru/loop-asm.c: New test.
* gcc.target/pru/loop-dowhile.c: New test.
* gcc.target/pru/loop-hi-1.c: New test.
* gcc.target/pru/loop-hi-2.c: New test.
* gcc.target/pru/loop-qi-1.c: New test.
* gcc.target/pru/loop-qi-2.c: New test.
* gcc.target/pru/loop-short-1.c: New test.
* gcc.target/pru/loop-short-2.c: New test.
* gcc.target/pru/loop-si-1.c: New test.
* gcc.target/pru/loop-si-2.c: New test.
* gcc.target/pru/loop-u8_pcrel_overflow.c: New test.
* gcc.target/pru/loop-ubyte-1.c: New test.
* gcc.target/pru/loop-ubyte-2.c: New test.
* gcc.target/pru/lra-framepointer-fragmentation-1.c: New test.
* gcc.target/pru/lra-framepointer-fragmentation-2.c: New test.
* gcc.target/pru/mabi-ti-1.c: New test.
* gcc.target/pru/mabi-ti-2.c: New test.
* gcc.target/pru/mabi-ti-3.c: New test.
* gcc.target/pru/mabi-ti-4.c: New test.
* gcc.target/pru/mabi-ti-5.c: New test.
* gcc.target/pru/mabi-ti-6.c: New test.
* gcc.target/pru/mabi-ti-7.c: New test.
* gcc.target/pru/pr64366.c: New test.
* gcc.target/pru/pragma-ctable_entry.c: New test.
* gcc.target/pru/pru.exp: New file.
* gcc.target/pru/qbbc-1.c: New test.
* gcc.target/pru/qbbc-2.c: New test.
* gcc.target/pru/qbbc-3.c: New test.
* gcc.target/pru/qbbs-1.c: New test.
* gcc.target/pru/qbbs-2.c: New test.
* gcc.target/pru/setbit.c: New test.
* gcc.target/pru/zero_extend-and-hisi.c: New test.
* gcc.target/pru/zero_extend-and-qihi.c: New test.
* gcc.target/pru/zero_extend-and-qisi.c: New test.
* gcc.target/pru/zero_extend-hisi.c: New test.
* gcc.target/pru/zero_extend-qihi.c: New test.
* gcc.target/pru/zero_extend-qisi.c: New test.
* lib/target-supports.exp: Add PRU to feature filters.

From-SVN: r272205

5 years agoInitial TI PRU libgcc port
Dimitar Dimitrov [Wed, 12 Jun 2019 19:28:51 +0000 (19:28 +0000)]
Initial TI PRU libgcc port

libgcc/ChangeLog:

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

* config.host: Add PRU target.
* config/pru/asri.c: New file.
* config/pru/eqd.c: New file.
* config/pru/eqf.c: New file.
* config/pru/ged.c: New file.
* config/pru/gef.c: New file.
* config/pru/gtd.c: New file.
* config/pru/gtf.c: New file.
* config/pru/led.c: New file.
* config/pru/lef.c: New file.
* config/pru/lib2bitcountHI.c: New file.
* config/pru/lib2divHI.c: New file.
* config/pru/lib2divQI.c: New file.
* config/pru/lib2divSI.c: New file.
* config/pru/libgcc-eabi.ver: New file.
* config/pru/ltd.c: New file.
* config/pru/ltf.c: New file.
* config/pru/mpyll.S: New file.
* config/pru/pru-abi.h: New file.
* config/pru/pru-asm.h: New file.
* config/pru/pru-divmod.h: New file.
* config/pru/sfp-machine.h: New file.
* config/pru/t-pru: New file.

From-SVN: r272204

5 years agoFix ChangeLog dates for last commit
Dimitar Dimitrov [Wed, 12 Jun 2019 19:26:31 +0000 (19:26 +0000)]
Fix ChangeLog dates for last commit

From-SVN: r272203

5 years agoInitial TI PRU GCC port
Dimitar Dimitrov [Wed, 12 Jun 2019 19:04:24 +0000 (19:04 +0000)]
Initial TI PRU GCC port

ChangeLog:

2019-06-19  Dimitar Dimitrov  <dimitar@dinux.eu>

* configure: Regenerate.
* configure.ac: Add PRU target.

gcc/ChangeLog:

2019-06-19  Dimitar Dimitrov  <dimitar@dinux.eu>

* common/config/pru/pru-common.c: New file.
* config.gcc: Add PRU target.
* config/pru/alu-zext.md: New file.
* config/pru/constraints.md: New file.
* config/pru/predicates.md: New file.
* config/pru/pru-opts.h: New file.
* config/pru/pru-passes.c: New file.
* config/pru/pru-pragma.c: New file.
* config/pru/pru-protos.h: New file.
* config/pru/pru.c: New file.
* config/pru/pru.h: New file.
* config/pru/pru.md: New file.
* config/pru/pru.opt: New file.
* config/pru/t-pru: New file.
* doc/extend.texi: Document PRU pragmas.
* doc/invoke.texi: Document PRU-specific options.
* doc/md.texi: Document PRU asm constraints.

From-SVN: r272202

5 years agore PR fortran/90002 (ICE: free_expr0(): Bad expr type)
Steven G. Kargl [Wed, 12 Jun 2019 18:28:32 +0000 (18:28 +0000)]
re PR fortran/90002 (ICE: free_expr0(): Bad expr type)

2019-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/90002
* array.c (gfc_free_array_spec): When freeing an array-spec, avoid
an ICE for assumed-shape coarrays

2019-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/90002
* gfortran.dg/pr90002.f90: New test.

From-SVN: r272201

5 years agoUpdate last ChangeLog entry.
Martin Sebor [Wed, 12 Jun 2019 17:27:41 +0000 (11:27 -0600)]
Update last ChangeLog entry.

From-SVN: r272200

5 years agoPR middle-end/90676 - default GIMPLE dumps lack information
Martin Sebor [Wed, 12 Jun 2019 17:05:35 +0000 (17:05 +0000)]
PR middle-end/90676 - default GIMPLE dumps lack information

gcc/ChangeLog:

PR middle-end/90676
* tree-pretty-print.c (dump_mem_ref): New function.  Include
MEM_REF type in output when different size than operand.
(dump_generic_node): Move code to dump_mem_ref and call it.

gcc/testsuite/ChangeLog:

PR middle-end/90676
* gcc.dg/tree-ssa/dump-6.c: New test.
* g++.dg/tree-ssa/pr19807.C: Adjust expected output.
* g++.dg/tree-ssa/ssa-dse-1.C: Same.
* gcc.dg/store_merging_5.c: Same.
* gcc.dg/tree-prof/stringop-2.c: Same.
* gcc.dg/tree-ssa/pr30375.c: Same.
* gcc.dg/tree-ssa/slsr-27.c: Same.
* gcc.dg/tree-ssa/slsr-28.c: Same.
* gcc.dg/tree-ssa/slsr-29.c: Same.
* gcc.dg/tree-ssa/ssa-dse-24.c: Same.

From-SVN: r272199

5 years agoPR tree-optimization/90662 - strlen of a string in a vla plus offset not folded
Martin Sebor [Wed, 12 Jun 2019 16:33:04 +0000 (16:33 +0000)]
PR tree-optimization/90662 - strlen of a string in a vla plus offset not folded

gcc/ChangeLog:

PR tree-optimization/90662
* tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
to arrays.

gcc/testsuite/ChangeLog:

PR tree-optimization/90662
* gcc.dg/strlenopt-62.c: New test.
* gcc.dg/strlenopt-63.c: New test.
* gcc.dg/strlenopt-64.c: New test.

From-SVN: r272197

5 years ago[nvptx] Assert fork has at most one join in nvptx_find_par
Tom de Vries [Wed, 12 Jun 2019 14:56:18 +0000 (14:56 +0000)]
[nvptx] Assert fork has at most one join in nvptx_find_par

With the test-case of PR90009 we run into a SIGSEGV in nvptx_neuter_pars,
because par->join_insn and par->join_block are NULL.

Detect this problem earlier, by adding an assert in nvptx_find_par that
asserts that a fork cannot be paired with more than one join.

Build and tested on x86_64 with nvptx accelerator enabled.

2019-06-12  Tom de Vries  <tdevries@suse.de>

PR tree-optimization/90009
* config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.

From-SVN: r272189

5 years agoImprove static_assert messages for std::variant
Jonathan Wakely [Wed, 12 Jun 2019 14:52:09 +0000 (15:52 +0100)]
Improve static_assert messages for std::variant

Also fix a warning with -Wunused-parameter -Wsystem-headers.

* include/std/variant (get<T>, get<N>, get_if<N>, get_if<T>)
(variant::emplace): Change static_assert messages from "should be"
to "must be".
(hash<monostate>::operator()): Remove name of unused parameter.

From-SVN: r272188

5 years agoSimplify std::scoped_lock destructor
Jonathan Wakely [Wed, 12 Jun 2019 14:52:06 +0000 (15:52 +0100)]
Simplify std::scoped_lock destructor

* include/std/mutex (scoped_lock::~scoped_lock()): Use fold
expression.

From-SVN: r272187

5 years agoReplace std::to_string for integers with optimized version
Jonathan Wakely [Wed, 12 Jun 2019 14:52:02 +0000 (15:52 +0100)]
Replace std::to_string for integers with optimized version

The std::to_chars functions from C++17 can be used to implement
std::to_string with much better performance than calling snprintf. Only
the __detail::__to_chars_len and __detail::__to_chars_10 functions are
needed for to_string, because it always outputs base 10 representations.

The return type of __detail::__to_chars_10 should not be declared before
C++17, so the function body is extracted into a new function that can be
reused by to_string and __detail::__to_chars_10.

The existing tests for to_chars rely on to_string to check for correct
answers. Now that they use the same code that doesn't actually ensure
correctness, so add new tests for std::to_string that compare against
printf output.

* include/Makefile.am: Add new <bits/charconv.h> header.
* include/Makefile.in: Regenerate.
* include/bits/basic_string.h (to_string(int), to_string(unsigned))
(to_string(long), to_string(unsigned long), to_string(long long))
(to_string(unsigned long long)): Rewrite to use __to_chars_10_impl.
* include/bits/charconv.h: New header.
(__detail::__to_chars_len): Move here from <charconv>.
(__detail::__to_chars_10_impl): New function extracted from
__detail::__to_chars_10.
* include/std/charconv (__cpp_lib_to_chars): Add, but comment out.
(__to_chars_unsigned_type): New class template that reuses
__make_unsigned_selector_base::__select to pick a type.
(__unsigned_least_t): Redefine as __to_chars_unsigned_type<T>::type.
(__detail::__to_chars_len): Move to new header.
(__detail::__to_chars_10): Add inline specifier. Move code doing the
output to __detail::__to_chars_10_impl and call that.
* include/std/version (__cpp_lib_to_chars): Add, but comment out.
* testsuite/21_strings/basic_string/numeric_conversions/char/
to_string.cc: Fix reference in comment. Remove unused variable.
* testsuite/21_strings/basic_string/numeric_conversions/char/
to_string_int.cc: New test.

From-SVN: r272186

5 years agoDisable hash-table sanitization for mem stats maps.
Martin Liska [Wed, 12 Jun 2019 13:07:07 +0000 (15:07 +0200)]
Disable hash-table sanitization for mem stats maps.

2019-06-12  Martin Liska  <mliska@suse.cz>

* ggc-common.c (ggc_prune_overhead_list): Do not sanitize
the created map.
* hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
* mem-stats.h (mem_alloc_description::mem_alloc_description):
Do not sanitize created maps.

From-SVN: r272183