]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
5 years agoWork around lack of dlpi_tls_modid before Solaris 11.5
ro [Sun, 14 Apr 2019 09:30:42 +0000 (09:30 +0000)] 
Work around lack of dlpi_tls_modid before Solaris 11.5

2019-04-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
    Iain Buclaw  <ibuclaw@gdcproject.org>

PR d/88150
* m4/druntime/os.m4 (DRUNTIME_OS_DLPI_TLS_MODID): New macro.
* configure.ac: Use it.
Call AC_USE_SYSTEM_EXTENSIONS.
* configure: Regenerate.
* Makefile.in, libdruntime/Makefile.in, src/Makefile.in,
testsuite/Makefile.in: Regenerate.
* libdruntime/gcc/config.d.in (OS_Have_Dlpi_Tls_Modid): Define.
* libdruntime/gcc/sections/elf_shared.d: Import gcc.config.
(scanSegments) <PT_TLS> [OS_Have_Dlpi_Tls_Modid]: Use
dlpi_tls_modid.
[Solaris]: Use dlinfo(RTLD_DI_LINKMAP) to get rt_tlsmodid.
Otherwise clear pdso._tlsMod, pdso._tlsSize.
(getTLSRange) [Solaris && !OS_Have_Dlpi_Tls_Modid]: Readjust mod.

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

5 years agoWork around Solaris ld bug linking __tls_get_addr on 64-bit x86
ro [Sun, 14 Apr 2019 09:24:26 +0000 (09:24 +0000)] 
Work around Solaris ld bug linking __tls_get_addr on 64-bit x86

* m4/druntime/os.m4 (DRUNTIME_OS_LINK_SPEC): New macro.
* configure.ac: Call it.
* configure: Regenerate.
* Makefile.in, libdruntime/Makefile.in, src/Makefile.in,
testsuite/Makefile.in: Regenerate.
* src/libgphobos.spec.in (*link): Append OS_LINK_SPEC.

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

5 years agoUse gcc/sections/elf_shared.d on Solaris 11.5 (PR d/88150)
ro [Sun, 14 Apr 2019 09:18:42 +0000 (09:18 +0000)] 
Use gcc/sections/elf_shared.d on Solaris 11.5 (PR d/88150)

PR d/88150
* libdruntime/gcc/sections/elf_shared.d [Solaris] (SharedELF): Set
to true.
Import core.sys.solaris.dlfcn, core.sys.solaris.link,
core.sys.solaris.sys.elf, core.sys.solaris.sys.link.
(dummy_ref): Declare.
(initSections): Initialize dummy_ref.
(getDependencies): Set strtab.
(handleForName): Don't dlclose handle.
(findDSOInfoForAddr): Set IterateManually.
(getprogname): Declare.
(progname): Use it.
* libdruntime/gcc/sections/package.d [Solaris]: Import
gcc.sections.elf_shared instead of gcc.sections.solaris.
* libdruntime/gcc/sections/solaris.d: Remove.
* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove
gcc/sections/solaris.d.

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

5 years agoDaily bump. 40/head
gccadmin [Sun, 14 Apr 2019 00:16:15 +0000 (00:16 +0000)] 
Daily bump.

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

5 years agolibphobos: Move rt.sections modules to gcc.sections
ibuclaw [Sat, 13 Apr 2019 15:29:15 +0000 (15:29 +0000)] 
libphobos: Move rt.sections modules to gcc.sections

These modules depend on a mixture between how the compiler emits
run-time module information, and what functions are exposed by the
platform to inquire about loaded global and thread-local data sections.

As the upstream implementation is written to work only with how the
reference D compiler writes out data, much of what is present does not
apply to the GCC D front-end.  So it has been moved to a non-upstream
location in the source tree, where most of it will be rewritten once
each port has been completed.

The only tested module sections/elf_shared.d has been cleaned up so that
all deprecated declarations have been removed, as well as the brittle
module collision checking, which required bss_sections.c.  All other
ports have been left unchanged apart from a commonizing of attributes.

libphobos/ChangeLog:

2019-04-13  Iain Buclaw  <ibuclaw@gdcproject.org>

* libdruntime/Makefile.am (DRUNTIME_CSOURCES): Remove bss_sections.c.
(DRUNTIME_DSOURCES): Rename rt/sections_* modules to gcc/sections/*.
* libdruntime/Makefile.in: Regenerate.
* libdruntime/gcc/sections/android.d: New file.
* libdruntime/gcc/sections/elf_shared.d: New file.
* libdruntime/gcc/sections/osx.d: New file.
* libdruntime/gcc/sections/package.d: New file.
* libdruntime/gcc/sections/solaris.d: New file.
* libdruntime/gcc/sections/win32.d: New file.
* libdruntime/gcc/sections/win64.d: New file.
* libdruntime/rt/bss_section.c: Remove.
* libdruntime/rt/sections.d: Publicly import gcc.sections.
* libdruntime/rt/sections_android.d: Remove.
* libdruntime/rt/sections_elf_shared.d: Remove.
* libdruntime/rt/sections_osx.d: Remove.
* libdruntime/rt/sections_solaris.d: Remove.
* libdruntime/rt/sections_win32.d: Remove.
* libdruntime/rt/sections_win64.d: Remove.

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

5 years ago * gcc.pot: Regenerate.
jakub [Sat, 13 Apr 2019 15:22:23 +0000 (15:22 +0000)] 
* gcc.pot: Regenerate.

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

5 years ago PR target/89093
jakub [Sat, 13 Apr 2019 15:20:46 +0000 (15:20 +0000)] 
PR target/89093
* config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
instead of strncmp when checking for thumb and arm.  Formatting fixes.

* gcc.target/arm/pr89093.c: New test.

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

5 years ago2019-04-13 Dominique d'Humieres <dominiq@gcc.gnu.org>
dominiq [Sat, 13 Apr 2019 11:32:49 +0000 (11:32 +0000)] 
2019-04-13  Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR fortran/79842
* module.c (gfc_use_module): use complete sentences.

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

5 years ago * gcc.pot: Regenerate.
jakub [Sat, 13 Apr 2019 08:16:59 +0000 (08:16 +0000)] 
* gcc.pot: Regenerate.

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

5 years ago compiler: improve type handling for string concat ops on constants
ian [Sat, 13 Apr 2019 01:03:55 +0000 (01:03 +0000)] 
compiler: improve type handling for string concat ops on constants

    Resolve a small problem with concatenation of string constants: in a
    string concat X + Y where X has named type and Y has abstract string
    type, insure that the result has X's type, and disable folding if the
    both sides have a concrete type that does not match.

    Fixes golang/go#31412.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/171797

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

5 years agoDaily bump.
gccadmin [Sat, 13 Apr 2019 00:16:34 +0000 (00:16 +0000)] 
Daily bump.

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

5 years agoUglify identifiers missed in previous commit(s)
rodgertq [Sat, 13 Apr 2019 00:13:46 +0000 (00:13 +0000)] 
Uglify identifiers missed in previous commit(s)

       * include/pstl/algorithm_impl.h: Uglify identfiers.
       * include/pstl/numeric_impl.h:  Uglify identfiers.
       * include/pstl/parallel_backend_tbb.h: Uglify identfiers.

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

5 years agoCommit a change missed in r270326:
msebor [Fri, 12 Apr 2019 22:37:12 +0000 (22:37 +0000)] 
Commit a change missed in r270326:

gcc/c-family/ChangeLog:

PR c/88383
PR c/89288
PR c/89798
PR c/89797
* c-attribs.c (type_valid_for_vector_size): Detect excessively
large sizes.
(validate_attribute): Handle DECLs and expressions.
(has_attribute): Handle types referenced by expressions.
Avoid considering array attributes in ARRAY_REF expressions .

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

5 years agolibphobos: Add subdir-objects to configure script.
ibuclaw [Fri, 12 Apr 2019 21:50:42 +0000 (21:50 +0000)] 
libphobos: Add subdir-objects to configure script.

Running autoreconf regenerates all files cleanly with autoconf2.69.

libphobos/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

* configure.ac (AM_INIT_AUTOMAKE): Add subdir-objects.
* configure: Regenerate.
* libdruntime/Makefile.in: Regenerate.

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

5 years ago PR c/89933
jakub [Fri, 12 Apr 2019 21:45:54 +0000 (21:45 +0000)] 
PR c/89933
c/
* c-decl.c (merge_decls): When newdecl's type is its main variant,
don't try to remove it from the variant list, but instead assert
it has no variants.
cp/
* decl.c (duplicate_decls): When newdecl's type is its main variant,
don't try to remove it from the variant list, but instead assert
it has no variants.
testsuite/
* c-c++-common/pr89933.c: New test.

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

5 years agolibphobos: Add target-zlib to top-level configure
ibuclaw [Fri, 12 Apr 2019 20:13:34 +0000 (20:13 +0000)] 
libphobos: Add target-zlib to top-level configure

Removes the building of zlib from within libphobos, using instead the
libz_convenience.a library.

ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

* configure.ac: Add target-zlib to target_libraries.
* configure: Regenerate.

gcc/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

* doc/install.texi: Document --with-target-system-zlib.

libphobos/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_ZLIB): Use
libz_convenience.a if not using system zlib.
* Makefile.in: Regenerate.
* configure: Regenerate.
* libdruntime/Makefile.in: Regenerate.
* src/Makefile.am: Remove ZLIB_CSOURCES and AM_CFLAGS.
* src/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.

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

5 years agogcc/ChangeLog:
msebor [Fri, 12 Apr 2019 19:11:59 +0000 (19:11 +0000)] 
gcc/ChangeLog:
* doc/extend.texi (__builtin_has_attribute): Add a clarifying note.

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

5 years agoPR c/88383 - ICE calling __builtin_has_attribute on a reference
msebor [Fri, 12 Apr 2019 19:01:17 +0000 (19:01 +0000)] 
PR c/88383 - ICE calling __builtin_has_attribute on a reference
PR c/89288 - ICE in tree_code_size, at tree.c:865
PR c/89798 - excessive vector_size silently accepted and truncated
PR c/89797 - ICE on a vector_size (1LU << 33) int variable

gcc/ChangeLog:

PR c/89797
* targhooks.c (default_vector_alignment): Avoid assuming
argument fits in SHWI.
* tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
a shift expression.
* doc/extend.texi (__builtin_has_attribute): Add a clarifying note.

gcc/c-family/ChangeLog:

PR c/88383
PR c/89288
PR c/89798
PR c/89797
* c-attribs.c (type_valid_for_vector_size): Detect excessively
large sizes.
(validate_attribute): Handle DECLs and expressions.
(has_attribute): Handle types referenced by expressions.
Avoid considering array attributes in ARRAY_REF expressions .

gcc/cp/ChangeLog:

PR c/88383
PR c/89288
* parser.c (cp_parser_has_attribute_expression): Handle assignment
expressions.

gcc/testsuite/ChangeLog:

PR c/88383
PR c/89288
PR c/89798
PR c/89797
* c-c++-common/attributes-1.c: Adjust.
* c-c++-common/builtin-has-attribute-6.c: New test.
* c-c++-common/builtin-has-attribute-7.c: New test.
* c-c++-common/builtin-has-attribute-4.c: Adjust expectations.
* c-c++-common/builtin-has-attribute-6.c: New test.
* c-c++-common/pr71574.c: Adjust.
* gcc.dg/pr25559.c: Adjust.
* gcc.dg/attr-vector_size.c: New test.

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

5 years agoAvoid ICE on pmf{} in template.
jason [Fri, 12 Apr 2019 16:25:59 +0000 (16:25 +0000)] 
Avoid ICE on pmf{} in template.

Now that we return the original CONSTRUCTOR from finish_compound_literal,
the call to null_member_pointer_value_p in tsubst_copy_and_build was getting
confused because the CONSTRUCTOR was still empty rather than a valid PMF
value.

* call.c (null_member_pointer_value_p): Handle an empty CONSTRUCTOR
of PMF type.

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

5 years ago PR rtl-optimization/89965
jakub [Fri, 12 Apr 2019 16:20:21 +0000 (16:20 +0000)] 
PR rtl-optimization/89965
* dce.c: Include rtl-iter.h.
(struct check_argument_load_data): New type.
(check_argument_load): New function.
(find_call_stack_args): Check for loads from stack slots still tracked
in sp_bytes and punt if any is found.

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

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

5 years ago * config/mips/loongson-mmiintrin.h: Fix up #error message.
jakub [Fri, 12 Apr 2019 16:16:35 +0000 (16:16 +0000)] 
* config/mips/loongson-mmiintrin.h: Fix up #error message.

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

5 years ago PR translation/90041
jakub [Fri, 12 Apr 2019 16:12:49 +0000 (16:12 +0000)] 
PR translation/90041
* exgettext: Print MissingArgError, UnknownError or Warn
*.opt argument using error or warning instead of _ to mark it
as gcc-internal-format.

* c.opt (-fhandle-exceptions): Use %< and %> around option names
in the Warn diagnostics.

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

5 years ago PR c++/87603 - constexpr functions are no longer noexcept.
mpolacek [Fri, 12 Apr 2019 15:29:03 +0000 (15:29 +0000)] 
PR c++/87603 - constexpr functions are no longer noexcept.
* constexpr.c (is_sub_constant_expr): Remove unused function.
* cp-tree.h (is_sub_constant_expr): Remove declaration.
* except.c (check_noexcept_r): Don't consider a call to a constexpr
function noexcept.

* g++.dg/cpp0x/constexpr-noexcept.C: Adjust the expected result.
* g++.dg/cpp0x/constexpr-noexcept3.C: Likewise.
* g++.dg/cpp0x/constexpr-noexcept4.C: Likewise.
* g++.dg/cpp0x/constexpr-noexcept8.C: New test.
* g++.dg/cpp0x/inh-ctor32.C: Remove dg-message.
* g++.dg/cpp1y/constexpr-noexcept1.C: New test.

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

5 years ago * except.c (build_noexcept_spec): Use build_converted_constant_bool_expr
mpolacek [Fri, 12 Apr 2019 15:26:16 +0000 (15:26 +0000)] 
* except.c (build_noexcept_spec): Use build_converted_constant_bool_expr
instead of perform_implicit_conversion_flags.

* g++.dg/cpp0x/noexcept30.C: Tweak dg-error.
* g++.dg/cpp0x/pr86397-1.C: Likewise.
* g++.dg/cpp0x/pr86397-2.C: Likewise.

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

5 years ago * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
hubicka [Fri, 12 Apr 2019 14:36:26 +0000 (14:36 +0000)] 
* doc/invoke.texi (max-lto-streaming-paralellism): New --param.

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

5 years ago * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
hubicka [Fri, 12 Apr 2019 14:35:48 +0000 (14:35 +0000)] 
* params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
* lto.c (do_stream_out): rename to ...
(stream_out): ... this one; move original code to ...
(stream_out_partitions_1, stream_out_partitions): ... these new
functions.
(lto_wpa_write_files): Honnor lto_parallelism

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

5 years ago[testsuite][arm] Update warning prune regex
matmal01 [Fri, 12 Apr 2019 13:15:52 +0000 (13:15 +0000)] 
[testsuite][arm] Update warning prune regex

r269586 changed the format of some warning messages.

Each switch in the warning message is now surrounded by single quotes.

This commit updates the regex's in arm.exp dejagnu files to match the
new format and remove the extra 20+ FAILs on excess errors that are
introduced on certain variations (e.g.
arm-eabi-aem/-marm/-march=armv7-a/-mfpu=vfpv3-d16/-mfloat-abi=softfp).

Regtested arm.exp with cross-compiler arm-none-eabi

gcc/testsuite/ChangeLog:

2019-04-12  Matthew Malcomson  <matthew.malcomson@arm.com>

* g++.target/arm/arm.exp: Change format of default prune regex.
* gcc.target/arm/arm.exp: Change format of default prune regex.

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

5 years agoHandle multiple 'default' in target attribute (PR middle-end/89970).
marxin [Fri, 12 Apr 2019 12:54:00 +0000 (12:54 +0000)] 
Handle multiple 'default' in target attribute (PR middle-end/89970).

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

PR middle-end/89970
* multiple_target.c (create_dispatcher_calls): Wrap ifunc
in error message.
(separate_attrs): Handle multiple 'default's.
(expand_target_clones): Rework error handling code.
2019-04-12  Martin Liska  <mliska@suse.cz>

PR middle-end/89970
* gcc.target/i386/mvc15.c: New test.
* gcc.target/i386/mvc3.c: Quote target in error pattern.
* gcc.target/i386/mvc4.c: Remove duplicit 'default'.

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

5 years agogcc/ChangeLog:
kelvin [Fri, 12 Apr 2019 12:51:58 +0000 (12:51 +0000)] 
gcc/ChangeLog:

2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/87532
* config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
mode of vector rather than mode of destination for move instruction.
* config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
Use QI inner mode with V16QI vector mode.

gcc/testsuite/ChangeLog:

2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/87532
* gcc.target/powerpc/fold-vec-extract-char.p8.c: Adjust expected
instruction counts.
* gcc.target/powerpc/fold-vec-extract-int.p8.c: Likewise.
* gcc.target/powerpc/fold-vec-extract-short.p8.c: Likewise.

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

5 years ago * de.po, sv.po: Update.
jakub [Fri, 12 Apr 2019 09:07:37 +0000 (09:07 +0000)] 
* de.po, sv.po: Update.

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

5 years ago PR target/52726
jakub [Fri, 12 Apr 2019 08:10:51 +0000 (08:10 +0000)] 
PR target/52726
* config/tilepro/tilepro.c (tilepro_print_operand): Use just
"invalid %%t operand" in output_operand_lossage message.

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

5 years agoRemove spurious empty line from ChangeLog
redi [Fri, 12 Apr 2019 08:04:56 +0000 (08:04 +0000)] 
Remove spurious empty line from ChangeLog

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

5 years agoS/390: Fix a problem with the bswap vector pattern
krebbel [Fri, 12 Apr 2019 07:41:51 +0000 (07:41 +0000)] 
S/390: Fix a problem with the bswap vector pattern

arch13 introduced instructions to perform vector element-wise byte
swaps on the way from or to memory.  For a byte swap between vector
registers the vector permute instruction is required which needs a
permute pattern to be loaded into a vector register first.

With the current implementation there is a potential problem when the
decision for the reg-reg variant is made very late.  This patch is
supposed to fix that.

With the patch the required permute pattern is generated already in
the expander and attached to the bswap pattern as USE operand.  The
predicate in the insn_and_split pattern accepts it although the
permute constant as such is not a valid constant.  For the reg-reg
variant only the vector register constraint is used for the permute
constant forcing LRA to a) push the constant into literal pool and b)
load the literal pool constant into a vector register.

gcc/ChangeLog:

2019-04-12  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/predicates.md (permute_pattern_operand): New
predicate.
* config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
operand for the permute pattern.
("*vec_perm<mode>"): New insn definition.
("bswap<mode>"): Generate the permute pattern operand in the
expander and perform the operand reloads for pre arch13 level
already.
("*bswap<mode>_emu"): Rename to ...
("*bswap<mode>"): ... this. And make the splitter vxe2 only.
* config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
Add the USE operand for the permute pattern.
("*vec_set_bswap_vec<mode>"): Likewise.

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

5 years ago PR c/89946
jakub [Fri, 12 Apr 2019 07:28:35 +0000 (07:28 +0000)] 
PR c/89946
* varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
and gcc_unreachable if it fails, just call tree_to_uhwi which
verifies that too.  Test TREE_CHAIN instead of list_length > 1.
Start warning message with a lower-case letter.  Formatting fixes.
c-family/
* c-attribs.c (handle_patchable_function_entry_attribute): Add
function comment.  Warn if arguments of the attribute are not positive
integer constants.
testsuite/
* c-c++-common/pr89946.c: New test.

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

5 years ago PR rtl-optimization/90026
jakub [Fri, 12 Apr 2019 07:27:25 +0000 (07:27 +0000)] 
PR rtl-optimization/90026
* cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
successors, look for BARRIERs inside of the whole BB_FOOTER chain
rather than just at the start of it.  If e->src BB_FOOTER is not NULL
in cfglayout mode, use emit_barrier_after_bb.

* g++.dg/opt/pr90026.C: New test.

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

5 years agolibphobos: Parallelize the libphobos testsuite
ibuclaw [Fri, 12 Apr 2019 06:25:34 +0000 (06:25 +0000)] 
libphobos: Parallelize the libphobos testsuite

The removal of the check programs in libphobos means that all tests
will now be compiled one at a time, causing a notable slowdown in
comparison with the previous method of testing.

libphobos/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

* testsuite/Makefile.am:
* testsuite/Makefile.am (AUTOMAKE_OPTIONS): Remove dejagnu.
(RUNTEST): Remove variable.
(RUNTESTDEFAULTFLAGS, check_p_subno, check_p_numbers0,
check_p_numbers1, check_p_numbers2, check_p_numbers3,
check_p_numbers4, check_p_numbers5, check_p_numbers6, check_p_numbers,
check_p_subdirs, check_DEJAGNU_libphobos_targets): New variables.
(site.exp, %/site.exp, check-DEJAGNU, check-am, clean-local): New
rules written so that all the *.exp files are ran parallelized.
(CLEANFILES): Add *.exe, *.o, and site.exp.
* testsuite/Makefile.in: Regenerate.

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

5 years agolibphobos: Replace library check programs with dg-runtest
ibuclaw [Fri, 12 Apr 2019 06:25:17 +0000 (06:25 +0000)] 
libphobos: Replace library check programs with dg-runtest

Fixes multilib handling when running the libphobos testsuite.

libphobos/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

PR d/89255
* configure.ac (ENABLE_SHARED, ENABLE_STATIC): Remove conditionals.
* configure: Regenerate.
* d_rules.am (%.t.lo, %.t.o): Remove rules.
(unittest_static_LINK, unittest_LINK, libgdruntime_t_la_LINK,
libgphobos_t_la_LINK): Remove variables.
* libdruntime/Makefile.am (DRUNTIME_TEST_LOBJECTS,
DRUNTIME_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES,
unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS,
unittest_static_LDFLAGS, unittest_static_LDADD,
EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES,
libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS,
libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES,
unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS,
unittest_LDADD): Remove variables.
(clean-local): Remove rule.
* libdruntime/Makefile.in: Regenerate.
* src/Makefile.am (PHOBOS_TEST_LOBJECTS,
PHOBOS_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES,
unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS,
unittest_static_LDFLAGS, unittest_static_LDADD,
EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES,
libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS,
libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES,
unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS,
unittest_LDADD): Remove variables.
(clean-local): Remove rule.
* src/Makefile.in: Regenerate.
* testsuite/lib/libphobos.exp (libphobos_test_name): New global.
(libphobos_init): Set libphobos_test_name.
(libphobos-dg-test): Override name if libphobos_test_name is set.
(filter_libphobos_unittests): New proc.
* testsuite/libphobos.aa/aa.exp: Don't load libphobos-dg.exp.
* testsuite/libphobos.cycles/cycles.exp: Set libphobos_test_name.
* testsuite/libphobos.druntime/druntime.exp: New file.
* testsuite/libphobos.druntime_shared/druntime_shared.exp: New file.
* testsuite/libphobos.phobos/phobos.exp: New file.
* testsuite/libphobos.phobos_shared/phobos_shared.exp: New file.
* testsuite/libphobos.shared/shared.exp: Use dg-runtest to run tests.
* testsuite/libphobos.hash/hash.exp: Don't load libphobos-dg.exp
* testsuite/libphobos.init_fini/init_fini.exp: Likewise.
* testsuite/libphobos.thread/thread.exp: Likewise.
* testsuite/libphobos.typeinfo/typeinfo.exp: Likewise.
* testsuite/libphobos.unittests/unittests.exp: Remove.
* testsuite/test_runner.d: Remove.
* testsuite/testsuite_flags.in: Add phobos to --gdcpaths.

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

5 years agod: Add -fbuilding-libphobos-tests option
ibuclaw [Fri, 12 Apr 2019 06:25:04 +0000 (06:25 +0000)] 
d: Add -fbuilding-libphobos-tests option

Currently, the druntime and phobos unittests are compiled as a separate
check program, then ran by the libphobos.unittest/unittest.exp script.
As PR d/89255 notes, this process lacks proper multilib handling.

As a first step, a new internal option that instructs the compiler to
put the reference to all unittest functions in another symbol has been
added.  This will allow each module to be compiled separately as a
standalone program using dg-runtest without running into collisions in
the D runtime module registry.

gcc/d/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-tree.h (DECL_IN_UNITTEST_CONDITION_P): Define.
* decl.cc (DeclVisitor): Add in_version_unittest_ field.
(DeclVisitor::visit(ConditionalDeclaration)): New override.
(DeclVisitor::visit(FuncDeclaration)): Set
DECL_IN_UNITTEST_CONDITION_P.
* lang.opt (-fbuilding-libphobos-tests): Add option.
* modules.cc (current_testing_module): New static variable.
(build_module_tree): Generate second moduleinfo symbol to hold
reference to unittests if flag_building_libphobos_tests.
(register_module_decl): Check DECL_IN_UNITTEST_CONDITION_P to decide
which moduleinfo the decl should be registered against.

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

5 years agod/dmd: Merge upstream dmd c185f9df1
ibuclaw [Fri, 12 Apr 2019 06:24:53 +0000 (06:24 +0000)] 
d/dmd: Merge upstream dmd c185f9df1

Adds new virtual isVersionCondition, this is so that in the code
generation pass, a ConditionDeclaration's condition can be identified
without requiring a Visitor function.

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

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

5 years agoDaily bump.
gccadmin [Fri, 12 Apr 2019 00:16:31 +0000 (00:16 +0000)] 
Daily bump.

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

5 years agolibphobos: Merge upstream phobos cf95639ff
ibuclaw [Thu, 11 Apr 2019 21:11:15 +0000 (21:11 +0000)] 
libphobos: Merge upstream phobos cf95639ff

Backports ports committed to upstream phobos since the last sync.

Reviewed-on: https://github.com/dlang/phobos/pull/6947

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

5 years agolibphobos: Merge upstream druntime 175bf5fc
ibuclaw [Thu, 11 Apr 2019 21:11:03 +0000 (21:11 +0000)] 
libphobos: Merge upstream druntime 175bf5fc

Backports extern(C) bindings committed to upstream druntime since the
last sync.

Reviewed-on: https://github.com/dlang/druntime/pull/2552

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

5 years agod/dmd: Merge upstream dmd d7ed327ed
ibuclaw [Thu, 11 Apr 2019 21:10:49 +0000 (21:10 +0000)] 
d/dmd: Merge upstream dmd d7ed327ed

Fixes ICE when accessing empty array in CTFE.

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

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

5 years agoReplace direct PSTL uses of assert() with a macro
rodgertq [Thu, 11 Apr 2019 20:40:40 +0000 (20:40 +0000)] 
Replace direct PSTL uses of assert() with a macro

This also replaces calls to __TBB_ASSERT so that there are two macro
definitions provided by c++config -
    __PSTL_ASSERT(_Condition)
    __PSTL_ASSERT_MSG(_Condition, _Message)

    * include/bits/c++config:
    Add definition for __PSTL_ASSERT.
    Add definition for __PSTL_ASSERT_MSG.
    * include/pstl/algorithm_impl.h: Replace use of assert().
    * include/pstl/numeric_impl.h: Replace use of assert().
    * include/pstl/parallel_backend_tbb.h:
    Replace use of assert().
    Replace use of __TBB_ASSERT().

    * include/pstl/parallel_backend_utils.h: Replace use of assert().

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

5 years ago2019-04-11 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Thu, 11 Apr 2019 20:14:27 +0000 (20:14 +0000)] 
2019-04-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR translation/89939
* frontend-passes.c (B_ERROR): Delete macro.
(C_ERROR): Delete macro.
(B_ERROR_1): New macro.
(C_ERROR_1): New macro.
(C_ERROR_2): New macro.
(inline_matmul_assign): Use new macros.
(call_external_blas): Likewise.

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

5 years agoPR libstdc++/90046 fix build failure on epiphany-elf
redi [Thu, 11 Apr 2019 19:58:14 +0000 (19:58 +0000)] 
PR libstdc++/90046 fix build failure on epiphany-elf

The epiphany-elf target aligns structs to 8 bytes, which causes the
static_assert(alignof(_Chunk) == 1) to fail.

Instead of requiring _Chunks to be positionable at any alignment, ensure
new buffers are aligned to alignof(_Chunk). Because the buffer size is a
power of two, we know that both the buffer size and sizeof(_Chunk) are
multiples of alignof(_Chunk). So is p is aligned to alignof(_Chunk) then
so is (p + size - sizeof(_Chunk)). So just ensure the new buffer is
aligned to at least alignof(_Chunk), which should already be true
because the caller requests at least alignof(max_align_t).

PR libstdc++/90046
* src/c++17/memory_resource.cc
(monotonic_buffer_resource::_Chunk::allocate): Increase alignment if
needed to allow placing a _Chunk at the end of the buffer.
(monotonic_buffer_resource::_M_new_buffer): Remove static_assert.

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

5 years ago2018-04-11 Steve Ellcey <sellcey@marvell.com>
sje [Thu, 11 Apr 2019 18:03:49 +0000 (18:03 +0000)] 
2018-04-11  Steve Ellcey  <sellcey@marvell.com>

PR rtl-optimization/87763
* gcc.target/aarch64/combine_bfxil.c: Change some bfxil checks
to bfi.

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

5 years ago2018-04-11 Steve Ellcey <sellcey@marvell.com>
sje [Thu, 11 Apr 2019 18:02:41 +0000 (18:02 +0000)] 
2018-04-11  Steve Ellcey  <sellcey@marvell.com>

PR rtl-optimization/87763
* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
New Instruction.

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

5 years ago[doc] Note variable shadowing at max macro using statement expression
vries [Thu, 11 Apr 2019 15:36:59 +0000 (15:36 +0000)] 
[doc] Note variable shadowing at max macro using statement expression

When suggesting to rewrite the unsafe (with respect to multiple evaluation of
arguments) macro definition:
...
  #define max(a,b) ((a) > (b) ? (a) : (b))
...
into the safe macro definition:
...
  #define maxint(a,b) \
    ({int _a = (a), _b = (b); _a > _b ? _a : _b; })
...
mention the variable shadowing problem for:
...
  #define maxint3(a, b, c) \
    ({int _a = (a), _b = (b), _c = (c); maxint (maxint (_a, _b), _c); })
...

2019-04-11  Tom de Vries  <tdevries@suse.de>

* doc/extend.texi (@node Statement Exprs): Note variable shadowing at
max macro using statement expression.

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

5 years ago PR translation/90035
jakub [Thu, 11 Apr 2019 15:28:18 +0000 (15:28 +0000)] 
PR translation/90035
* parser.h (struct cp_parser): Add
type_definition_forbidden_message_arg member.
* parser.c (cp_debug_parser): Print it.
(cp_parser_check_type_definition): Pass
parser->type_definition_forbidden_message_arg as second argument to
error.
(cp_parser_has_attribute_expression, cp_parser_sizeof_operand): Set
parser->type_definition_forbidden_message_arg and use G_() with
%qs for parser->type_definition_forbidden_message instead of
building untranslatable message using concat.

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

5 years ago * xcoffout.h (xcoff_private_rodata_section_name): Declare.
dje [Thu, 11 Apr 2019 14:14:35 +0000 (14:14 +0000)] 
    * xcoffout.h (xcoff_private_rodata_section_name): Declare.
        * xcoffout.c (xcoff_private_rodata_section_name): Define.
        * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
        read_only_private_data_section using xcoff_private_rodata_section_name.
        (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.

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

5 years ago[aarch64] PR90016 - aarch64: reference to undeclared N in help for command line option
clyon [Thu, 11 Apr 2019 10:56:08 +0000 (10:56 +0000)] 
[aarch64] PR90016 - aarch64: reference to undeclared N in help for command line option

2019-04-11  Christophe Lyon  <christophe.lyon@linaro.org>

PR target/90016
* config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.

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

5 years ago PR rtl-optimization/89965
jakub [Thu, 11 Apr 2019 09:02:47 +0000 (09:02 +0000)] 
PR rtl-optimization/89965
* dce.c (sp_based_mem_offset): New function.
(find_call_stack_args): Use sp_based_mem_offset.

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

5 years agoClarify documentation for -flive-patching
redi [Thu, 11 Apr 2019 08:52:22 +0000 (08:52 +0000)] 
Clarify documentation for -flive-patching

* doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.

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

5 years ago2019-04-11 Richard Biener <rguenther@suse.de>
rguenth [Thu, 11 Apr 2019 07:34:20 +0000 (07:34 +0000)] 
2019-04-11  Richard Biener  <rguenther@suse.de>

PR tree-optimization/90020
* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
* tree-ssa-pre.c (compute_avail): Use it to not put
possibly trapping references after a call that might not
return into EXP_GEN.
* gcse.c (compute_hash_table_work): Do not elide
marking a block containing a call if the call might not
return.

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

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

5 years ago2019-04-11 Richard Biener <rguenther@suse.de>
rguenth [Thu, 11 Apr 2019 07:30:59 +0000 (07:30 +0000)] 
2019-04-11  Richard Biener  <rguenther@suse.de>

PR tree-optimization/90018
* tree-vect-data-refs.c (vect_preserves_scalar_order_p):
Test both SLP and interleaving variants.

* gcc.dg/vect/pr90018.c: New testcase.

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

5 years agoS/390: Add arch13 pipeline and model number
rdapp [Thu, 11 Apr 2019 07:04:03 +0000 (07:04 +0000)] 
S/390: Add arch13 pipeline and model number

This patch adds the pipeline description and the CPU model number for
arch13.

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

5 years agoDaily bump.
gccadmin [Thu, 11 Apr 2019 00:16:32 +0000 (00:16 +0000)] 
Daily bump.

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

5 years ago2018-04-10 Steve Ellcey <sellcey@marvell.com>
sje [Wed, 10 Apr 2019 20:29:57 +0000 (20:29 +0000)] 
2018-04-10  Steve Ellcey  <sellcey@marvell.com>

PR rtl-optimization/87763
* gcc.target/aarch64/combine_bfxil.c: Change some bfxil checks
to bfi.
* gcc.target/aarch64/combine_bfi_2.c: New test.

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

5 years ago2018-04-10 Steve Ellcey <sellcey@marvell.com>
sje [Wed, 10 Apr 2019 20:28:19 +0000 (20:28 +0000)] 
2018-04-10  Steve Ellcey  <sellcey@marvell.com>

PR rtl-optimization/87763
* config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
New prototype.
* config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
New function.
* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
New instruction.
(*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
(*aarch64_bfi<GPI:mode>4_noand): Ditto.
(*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
(*aarch64_bfi<GPI:mode>4_noshift): Ditto.

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

5 years agoUpdate documentation regarding bogus memory leaks in libstdc++
redi [Wed, 10 Apr 2019 19:24:04 +0000 (19:24 +0000)] 
Update documentation regarding bogus memory leaks in libstdc++

* doc/xml/faq.xml: Add information about emergency EH pool.
* doc/xml/manual/debug.xml: Update list of memory debugging tools.
Move outdated information on mt_allocator to a separate section.
* doc/xml/manual/evolution.xml: Clarify that GLIBCXX_FORCE_NEW
doesn't affect the default allocator.

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

5 years agoChange wording of -fipa-icf documentation
redi [Wed, 10 Apr 2019 14:55:01 +0000 (14:55 +0000)] 
Change wording of -fipa-icf documentation

* doc/invoke.texi (Optimize Options): Change "Nevertheless" to
"Although" in -fipa-icf documentation.

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

5 years agoFix typo in effective-target check
redi [Wed, 10 Apr 2019 14:46:03 +0000 (14:46 +0000)] 
Fix typo in effective-target check

* testsuite/lib/libstdc++.exp (check_v3_target_parallel_mode): Fix
typo.

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

5 years agoFix a stack exhaustion bug in libiberty's demangler when decoding a pathalogically...
nickc [Wed, 10 Apr 2019 14:44:47 +0000 (14:44 +0000)] 
Fix a stack exhaustion bug in libiberty's demangler when decoding a pathalogically constructed mangled name.

PR 89394
* cp-demangle.c (cplus_demangle_fill_name): Reject negative
lengths.
(d_count_templates_scopes): Replace num_templates and num_scopes
parameters with a struct d_print_info pointer parameter.  Adjust
body of the function accordingly.  Add recursion counter and check
that the recursion limit is not reached.
(d_print_init): Pass dpi parameter to d_count_templates_scopes.
Reset recursion counter afterwards, unless the recursion limit was
reached.

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

5 years agoClearly document behaviour of multiple -g options
redi [Wed, 10 Apr 2019 14:39:59 +0000 (14:39 +0000)] 
Clearly document behaviour of multiple -g options

This copies the wording from the -O options to clearly state what
happens if more than one -g option is used.

* doc/invoke.texi (Debugging Options): Explicitly state the semantics
of using multiple -g options.

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

5 years agoMake gcov docs more precise (PR gcov-profile/89959).
marxin [Wed, 10 Apr 2019 11:44:08 +0000 (11:44 +0000)] 
Make gcov docs more precise (PR gcov-profile/89959).

2019-04-10  Martin Liska  <mliska@suse.cz>

PR gcov-profile/89959
* doc/gcov.texi: Make documentation of -x option
more precise.

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

5 years ago2019-04-10 Richard Biener <rguenther@suse.de>
rguenth [Wed, 10 Apr 2019 11:25:10 +0000 (11:25 +0000)] 
2019-04-10  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
member.
(DR_GROUP_SAME_DR_STMT): Remove.
* tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
* tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
replace with assert.
(vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
(vect_record_grouped_load_vectors): Remove unreachable code.

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

5 years agoPR libstdc++/89851 Add testcase for std::variant equality
redi [Wed, 10 Apr 2019 10:43:39 +0000 (10:43 +0000)] 
PR libstdc++/89851 Add testcase for std::variant equality

Add a test for the regression introduced with r269422 and fixed with
r270056.

PR libstdc++/89851
* testsuite/20_util/variant/89851.cc: New test.

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

5 years ago[aarch64] PR90016 - aarch64: reference to undeclared N in help for command line option
rearnsha [Wed, 10 Apr 2019 09:51:16 +0000 (09:51 +0000)] 
[aarch64] PR90016 - aarch64: reference to undeclared N in help for command line option

'to N' is now redundant and misleading given the earlier change to use
<number>.

Removed.

PR target/90016
* config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
obsolete reference to N.

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

5 years ago PR middle-end/90025
jakub [Wed, 10 Apr 2019 07:28:05 +0000 (07:28 +0000)] 
PR middle-end/90025
* expr.c (store_expr): Set properly size on the MEM passed to
clear_storage.

* gcc.c-torture/execute/pr90025.c: New test.

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

5 years ago PR c++/90010
jakub [Wed, 10 Apr 2019 07:27:20 +0000 (07:27 +0000)] 
PR c++/90010
* gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
with strlen in between hostsz-3 and hostsz-1 inclusive when no
translation is needed, and when translation is needed, only append
... if the string length is hostsz or more bytes long.  Avoid using
strncpy or strcat.

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

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

5 years agoDaily bump.
gccadmin [Wed, 10 Apr 2019 00:16:21 +0000 (00:16 +0000)] 
Daily bump.

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

5 years ago * c-ada-spec.c (print_destructor): Deal with deleting destructors.
ebotcazou [Tue, 9 Apr 2019 19:29:17 +0000 (19:29 +0000)] 
* c-ada-spec.c (print_destructor): Deal with deleting destructors.
(dump_ada_declaration) <FUNCTION_DECL>: Likewise.

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

5 years agoAdd comments and style fixes to <variant>
redi [Tue, 9 Apr 2019 18:50:48 +0000 (18:50 +0000)] 
Add comments and style fixes to <variant>

* include/std/variant: Adjust whitespace. Add comments.
(_Multi_array): Leave primary template undefined.
(_Multi_array<_Tp>): Define partial specialization for base case of
recursion.
(__gen_vtable_impl, __gen_vtable): Remove redundant && from type
which is always a reference.
(__gen_vtable::_S_apply()): Remove function, inline body into
default member initializer.
* testsuite/20_util/variant/visit.cc: Test with noncopyable types.

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

5 years agoFix std::visit to support arbitrary callables
redi [Tue, 9 Apr 2019 18:50:43 +0000 (18:50 +0000)] 
Fix std::visit to support arbitrary callables

The __visitor_result_type helper didn't use std::invoke and so didn't
compile when the visitor was a pointer-to-member rather than a function
object. Use std::invoke_result instead.

* include/std/variant (__variant_idx_cookie): Add member type.
(__visitor_result_type): Remove.
(__do_visit): Use invoke_result instead of __visitor_result_type.
* testsuite/20_util/variant/visit.cc: New test.

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

5 years agoPR libstdc++/90008 remove unused capture from variant rel ops
redi [Tue, 9 Apr 2019 18:50:39 +0000 (18:50 +0000)] 
PR libstdc++/90008 remove unused capture from variant rel ops

PR libstdc++/90008
* include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Remove
unused capture.
* testsuite/20_util/variant/90008.cc: New test.

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

5 years ago * gcc.target/i386/ifcvt-onecmpl-abs-1.c
uros [Tue, 9 Apr 2019 18:16:14 +0000 (18:16 +0000)] 
* gcc.target/i386/ifcvt-onecmpl-abs-1.c
(dg-options): Use -O2 -fdump-rtl-ce1.
(dg-final): Scan ce1 RTL dump instead of asm dump.

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

5 years agoAdd PSTL internal namespace qualifications
rodgertq [Tue, 9 Apr 2019 15:45:26 +0000 (15:45 +0000)] 
Add PSTL internal namespace qualifications

* include/pstl/algorithm_impl.h: Add namespace qualification.
* include/pstl/execution_defs.h: Add namespace qualification.
* include/pstl/execution_impl.h: Add namespace qualification.
* include/pstl/numeric_impl.h: Add namespace qualification.
* include/pstl/parallel_backend_tbb.h: Add namespace qualification.
* include/pstl/unseq_backend_simd.h: Add namespace qualification.
* include/pstl/parallel_backend_utils.h: Include <cassert>.

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

5 years ago PR translation/90011
jakub [Tue, 9 Apr 2019 13:19:16 +0000 (13:19 +0000)] 
PR translation/90011
* typeck2.c (check_narrowing): Remove trailing space from diagnostics.

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

5 years agoHi there,
matmal01 [Tue, 9 Apr 2019 11:39:59 +0000 (11:39 +0000)] 
Hi there,

The "*neon_mov<mode>" patterns for 128 bit sized quantities uses the "Dn"
constraint to match vmov.f32 and vmov.i<vec-width> patterns.
This constraint boils down to using the `neon_immediate_valid` function.
Once the constraint has matched, the output C statement asserts that function
passes.

The output C statement calls `neon_immediate_valid` with the mode taken from the
iterator, while the constraint takes the mode from the operand.
This can cause a discrepency when the operand is a CONST_INT, as the constraint
passes VOIDmode which `neon_immediate_valid` treats as DImode, while the C
statement passes the mode of the iterator which can be TImode.
When this happens, the `neon_immediate_valid` can fail in the second call (if
e.g. the CONST_INT is a valid immediate in DImode but not TImode) which would
trigger the assertion.

The testcase added with this patch triggers this when compiled with an arm cross
compiler using the command line below.
gcc -march=armv8-a -c neon-immediate-timode.c -O1 -mfloat-abi=hard -mfpu=neon-fp-armv8

This patch splits the original "Dn" constraint into three new constraints, "DN"
for TImode CONST_INT, "Dn" for DImode CONST_INT, and "Dm" for CONST_VECTOR.
Splitting things up this way requires using one extra alternative in the
"*neon_mov<mode>" patterns, but makes it clear from the constraint what mode is
being used.

We also remove the behaviour of treating VOIDmode as DImode in
`neon_valid_immediate` since the original "Dn" constraint was the only place
that functionality was used.  VOIDmode is now never passed to that function.
An assertion has been added to the function to ensure this problem is caught
earlier on.

Bootstrapped on arm-none-linux-gnueabihf
Regtested on cross-compiler arm-none-eabi

gcc/ChangeLog:

2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>

PR target/90024
* config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
* config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
into three.
* config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
differences directly.
(*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.

gcc/testsuite/ChangeLog:

2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>

PR target/90024
* gcc.dg/torture/neon-immediate-timode.c: New test.

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

5 years ago PR translation/90011
jakub [Tue, 9 Apr 2019 10:27:14 +0000 (10:27 +0000)] 
PR translation/90011
* ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
from diagnostics.
* config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
diagnostics.
* config/riscv/freebsd.h (LINK_SPEC): Likewise.
* config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
* config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
trailing space from -gsplit-dwarf diagnostics.

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

5 years ago PR tree-optimization/89998
jakub [Tue, 9 Apr 2019 10:26:13 +0000 (10:26 +0000)] 
PR tree-optimization/89998
* gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
instead of integer_type_node if possible, don't add ranges if return
type is not compatible with int.
* gimple-fold.c (gimple_fold_builtin_sprintf,
gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
integer_type_node.

* gcc.c-torture/compile/pr89998-1.c: New test.
* gcc.c-torture/compile/pr89998-2.c: New test.

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

5 years agoCome up with bootstrap-lto-lean config.
marxin [Tue, 9 Apr 2019 08:49:14 +0000 (08:49 +0000)] 
Come up with bootstrap-lto-lean config.

2019-04-09  Martin Liska  <mliska@suse.cz>

* Makefile.in: Regenerate.
* Makefile.tpl: Pass GENERATOR_CFLAGS
in all stages.
2019-04-09  Martin Liska  <mliska@suse.cz>

* bootstrap-lto-lean.mk: New file.
2019-04-09  Martin Liska  <mliska@suse.cz>

* Makefile.in: Use GENERATOR_CFLAGS for all generators.
* doc/install.texi: Document the new config.

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

5 years agoSVE fallout from PR90006
rsandifo [Tue, 9 Apr 2019 07:50:51 +0000 (07:50 +0000)] 
SVE fallout from PR90006

2019-04-08  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
use gimple_expr_type for load and store calls.  Skip over the
condition argument in a conditional internal function.
Protect use of TREE_INT_CST_LOW.

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

5 years ago PR target/90015
jakub [Tue, 9 Apr 2019 06:38:07 +0000 (06:38 +0000)] 
PR target/90015
* config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
(riscv_merge_decl_attributes): Fix typo in diagnostics.  Remove
trailing period from it too.

* gcc.target/riscv/interrupt-conflict-mode.c (foo): Adjust expected
diagnostics.

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

5 years ago compiler: sort packages in export data more deterministically
ian [Tue, 9 Apr 2019 04:36:51 +0000 (04:36 +0000)] 
compiler: sort packages in export data more deterministically

    We can have multiple packages with the same name, so also sort by pkgpath.
    To avoid an inconsistent sort, sort by symbol and pointer address if
    we somehow get two different packages with the same name and pkgpath.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/171032

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

5 years agoDaily bump.
gccadmin [Tue, 9 Apr 2019 00:16:18 +0000 (00:16 +0000)] 
Daily bump.

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

5 years agoFix visit<R> for variant.
ville [Mon, 8 Apr 2019 19:45:48 +0000 (19:45 +0000)] 
Fix visit<R> for variant.

* include/std/variant (__do_visit): Add a template parameter
for enforcing same return types for visit.
(__gen_vtable_impl): Likewise.
(_S_apply_single_alt): Adjust.
(__visit_invoke_impl): New. Handle casting to void.
(__do_visit_invoke): New. Enforces same return types.
(__do_visit_invoke_r): New. Converts return types.
(__visit_invoke): Adjust.
(__gen_vtable):  Add a template parameter for enforcing
same return types for visit.
* testsuite/20_util/variant/visit_r.cc: Add a test for a visitor with
different return types.
* testsuite/20_util/variant/visit_neg.cc: New. Ensures that
visitors with different return types don't accidentally
compile with regular visitation.

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

5 years ago * typeck2.c (digest_init_r): Don't condition the object slicing warning
mpolacek [Mon, 8 Apr 2019 19:31:00 +0000 (19:31 +0000)] 
* typeck2.c (digest_init_r): Don't condition the object slicing warning
on flag_checking.

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

5 years ago libgo: update to Go 1.12.2
ian [Mon, 8 Apr 2019 18:36:25 +0000 (18:36 +0000)] 
libgo: update to Go 1.12.2

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/170706

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

5 years ago[AArch64] Add tsv110 pipeline scheduling
jgreenhalgh [Mon, 8 Apr 2019 17:08:32 +0000 (17:08 +0000)] 
[AArch64] Add tsv110 pipeline scheduling

Committed on behalf of Wu Yuan:

2019-04-04  wu yuan <wuyuan5@huawei.com>

* config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
* config/aarch64/aarch64.md : Add "tsv110.md"
* config/aarch64/tsv110.md: New file.

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

5 years ago2019-04-08 Richard Biener <rguenther@suse.de>
rguenth [Mon, 8 Apr 2019 13:54:02 +0000 (13:54 +0000)] 
2019-04-08  Richard Biener  <rguenther@suse.de>

PR tree-optimization/90006
* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
calls like lrint.

* gcc.dg/vect/bb-slp-pr90006.c: New testcase.

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

5 years agoLOCAL_PATCHES: Add revision.
marxin [Mon, 8 Apr 2019 13:09:26 +0000 (13:09 +0000)] 
LOCAL_PATCHES: Add revision.

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

5 years agoAdd missing libsanitizer extra patch (r259664) (PR sanitizer/89941).
marxin [Mon, 8 Apr 2019 13:08:30 +0000 (13:08 +0000)] 
Add missing libsanitizer extra patch (r259664) (PR sanitizer/89941).

2019-04-08  Martin Liska  <mliska@suse.cz>

PR sanitizer/89941
* sanitizer_common/sanitizer_platform_limits_linux.cc (defined):
Reapply patch from r259664.
* sanitizer_common/sanitizer_platform_limits_posix.h (defined):
Likewise.

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

5 years agoThe fma_forest, fma_root_node and func_fma_steering classes lack a
rearnsha [Mon, 8 Apr 2019 12:59:24 +0000 (12:59 +0000)] 
The fma_forest, fma_root_node and func_fma_steering classes lack a
copy constructor.  However, they contain pointers to allocated memory
so this omission can be regarded as poor style.  We don't need to copy
such objects, so declare the copy constructor private to inhibit
accidental copying.

2019-04-08  Andrea Corallo  <andrea.corallo@arm.com>

PR target/83033
* config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
construction.
(fma_root_node): Likewise.
(func_fma_steering): Likewise.

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

5 years ago PR rtl-optimization/89865
jakub [Mon, 8 Apr 2019 12:36:58 +0000 (12:36 +0000)] 
PR rtl-optimization/89865
* config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.

* gcc.target/i386/pr49095.c: Don't expect any RMW sequences.

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

5 years ago PR rtl-optimization/89865
jakub [Mon, 8 Apr 2019 12:35:22 +0000 (12:35 +0000)] 
PR rtl-optimization/89865
* config/i386/i386.md
(SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
numbers not to clash with the additional operands[4].
(peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
with extra register copy in the middle.

* gcc.target/i386/pr49095.c: Adjust number of expected RMW spots
on ia32.

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

5 years agoAdd data_file to GCOV interm. format (PR gcov-profile/89961).
marxin [Mon, 8 Apr 2019 12:16:15 +0000 (12:16 +0000)] 
Add data_file to GCOV interm. format (PR gcov-profile/89961).

2019-04-08  Martin Liska  <mliska@suse.cz>

PR gcov-profile/89961
* doc/gcov.texi: Document data_file.
* gcov.c (generate_results): Add data_info into JSON output.

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

5 years ago2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
rguenth [Mon, 8 Apr 2019 11:52:18 +0000 (11:52 +0000)] 
2019-04-01  Bin Cheng  <bin.cheng@linux.alibaba.com>

PR tree-optimization/89725
* tree-chrec.c (chrec_contains_symbols): New parameter.  Handle outer
loop's chrec as invariant symbol.
* tree-chrec.h (chrec_contains_symbols): New parameter.
* tree-data-ref.c (analyze_miv_subscript): Pass new argument.
(build_classic_dist_vector_1, add_other_self_distances): Bypass access
function of loops not in DDR's loop_nest.
* tree-data-ref.h (index_in_loop_nest): Add unreachable check.

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

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

5 years agoFix expected scanned pattern.
marxin [Mon, 8 Apr 2019 08:42:00 +0000 (08:42 +0000)] 
Fix expected scanned pattern.

2019-04-08  Martin Liska  <mliska@suse.cz>

* gcc.target/riscv/arch-1.c: Fix expected scanned pattern.

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