• R/O
  • HTTP
  • SSH
  • HTTPS

List of commits

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GCC with patches for OS216


RSS
Rev. Tiempo Autor
53bc489 2020-06-26 22:47:12 Iain Buclaw

d: Fix ICE in uda_attribute_p when looking up unknown attribute

The target attribute table is not guaranteed to be set in all backends.

gcc/d/ChangeLog:

PR d/95173
* d-attribs.cc (uda_attribute_p): Don't search target attribute table
if NULL.

gcc/testsuite/ChangeLog:

PR d/95173
* gdc.dg/pr95173.d: New test.

(cherry picked from commit 62e02c8729a75c4a859edc18e0bcafb87d717f46)

95f5dc7 2020-06-26 22:45:39 Iain Buclaw

d: Fix ICE during error recovery in semantic pass

Fixes a regression caused by an incomplete backport of converting the
Expression semantic pass to a Visitor.

gcc/d/ChangeLog:

PR d/95250
* dmd/expressionsem.c (class ExpressionSemanticVisitor): Return early
if error occurred during semantic of DivExp.

gcc/testsuite/ChangeLog:

PR d/95250
* gdc.dg/pr95250.d: New test.

(cherry picked from commit 1d19c9cd3dd99ba8885c0fc93223918399f73939)

3e1af1d 2020-06-26 22:29:28 Iain Buclaw

d: Fix ICE in uda_attribute_p when looking up unknown attribute

The target attribute table is not guaranteed to be set in all backends.

gcc/d/ChangeLog:

PR d/95173
* d-attribs.cc (uda_attribute_p): Don't search target attribute table
if NULL.

gcc/testsuite/ChangeLog:

PR d/95173
* gdc.dg/pr95173.d: New test.

(cherry picked from commit 62e02c8729a75c4a859edc18e0bcafb87d717f46)

b3d7740 2020-06-26 22:26:48 Eric Botcazou

Take into account range info to optimize range tests into bit tests

The patch is aimed at addressing the following two issues:

1. In order to protect the shift operation from undefinedness, the
new bit test is guarded with a new test, but this new test uses the
range of the bit test values, not that of the shift operation so,
if the input is in the range of the shift operation but not of the
bit test values, then the subsequent VRP pass cannot eliminate the
new test. Moreover changing the new test to use the range of the
shift operation, instead of that of the bit test values, in the
general case would pessimize the cases which are in between.

2. If the new test can be eliminated, then it becomes profitable
to do the optimization into a bit test for one fewer comparison in
the source code.

Therefore the patch changes optimize_range_tests_to_bit_test to use
the range info of the input in order to eliminate the new test.

gcc/ChangeLog:
* tree-ssa-reassoc.c (dump_range_entry): New function.
(debug_range_entry): New debug function.
(update_range_test): Invoke dump_range_entry for dumping.
(optimize_range_tests_to_bit_test): Merge the entry test in the
bit test when possible and lower the profitability threshold.

gcc/ada/ChangeLog:
* exp_ch4.adb (Expand_Set_Membership): Expand the membership test
using left associativity instead of right associativity.

gcc/testsuite/ChangeLog:
* gnat.dg/opt86_pkg.ads: New helper.
* gnat.dg/opt86a.adb: New test.
* gnat.dg/opt86b.adb: Likewise.
* gnat.dg/opt86c.adb: Likewise.

2ca7883 2020-06-26 20:59:50 Iain Buclaw

d/testsuite: Amend test to actually trigger the ICE being fixed

gcc/testsuite/ChangeLog:

* gdc.dg/pr95250.d: Updated.

e74c760 2020-06-26 20:40:16 Iain Sandoe

coroutines: Handle non-method promise expressions [PR95519]

The PR points out that the standard does not restrict promise
expressions to methods, but the current implementation does.

The patch factors out the building of a general promise expression,
and then uses it in a fairly mechanical replacement of each case
that we need such an expressions.

This extends the handling for p.xxxxxx() expressions to cover the
cases where the promise member is some form callable.

Tests are added for each of the promise expressions.

It's somewhat tortuous to find good uses for this for the
get-return-object and get-return-object-on-allocation-failure
cases, but they are included anyway.

gcc/cp/ChangeLog:

PR c++/95519
* coroutines.cc (struct coroutine_info):Add a field
to hold computed p.return_void expressions.
(coro_build_promise_expression): New.
(get_coroutine_return_void_expr): New.
(finish_co_yield_expr): Build the promise expression
using coro_build_promise_expression.
(finish_co_return_stmt): Likewise.
(build_init_or_final_await): Likewise.
(morph_fn_to_coro): Likewise, for several cases.

gcc/testsuite/ChangeLog:

PR c++/95519
* g++.dg/coroutines/torture/pr95519-00-return_void.C: New test.
* g++.dg/coroutines/torture/pr95519-01-initial-suspend.C: New test.
* g++.dg/coroutines/torture/pr95519-02-final_suspend.C: New test.
* g++.dg/coroutines/torture/pr95519-03-return-value.C: New test.
* g++.dg/coroutines/torture/pr95519-04-yield-value.C: New test.
* g++.dg/coroutines/torture/pr95519-05-gro.C: New test.
* g++.dg/coroutines/torture/pr95519-06-grooaf.C: New test.
* g++.dg/coroutines/torture/pr95519-07-unhandled-exception.C: New test.

e195c80 2020-06-26 20:40:16 Iain Sandoe

coroutines: Handle bad g-r-o-o-a-f cases.

If we see a get_return_object_on_allocation_failure in the
promise, we expect to be able to use it. If this isn't
possible (because of some error in the declaration) then we
need to handle the erroneous return to allow following code
to complete.

gcc/cp/ChangeLog:

* coroutines.cc (morph_fn_to_coro): Handle error
returns in building g-r-o-o-a-f expressions.

gcc/testsuite/ChangeLog:

* g++.dg/coroutines/coro1-allocators.h (BAD_GROOAF_STATIC):
New.
* g++.dg/coroutines/coro-bad-grooaf-00-static.C: New test.

5b959c2 2020-06-26 20:04:21 Richard Biener

tree-optimization/95897 - fix fold-left SLP reduction insert place

This fixes computation of the insertion place for fold-left SLP
reductions where the PHIs do not have vectorized stmts. The
SLP representation isn't perfect here thus the following.

2020-06-26 Richard Biener <rguenther@suse.de>

PR tree-optimization/95897
* tree-vectorizer.h (vectorizable_induction): Remove
unused gimple_stmt_iterator * parameter.
* tree-vect-loop.c (vectorizable_induction): Likewise.
(vect_analyze_loop_operations): Adjust.
* tree-vect-stmts.c (vect_analyze_stmt): Likewise.
(vect_transform_stmt): Likewise.
* tree-vect-slp.c (vect_schedule_slp_instance): Adjust
for fold-left reductions, clarify existing reduction case.

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

87fce92 2020-06-26 18:06:48 Nick Clifton

This patch removes the use of the "register" keyword from the bsearch() and bsearch_r() functions supplied by libiberty. The register keyword is deprecated in C++17.

2020-06-25 Nick Clifton <nickc@redhat.com>

include/
* libiberty.h (bsearch_r): Remove use of the register keyword from
the prototype.

libiberty/
* bsearch.c (bsearch): Remove use of register keyword.
* bsearch_r.c (bsearch_r): Likewise.

a534cd6 2020-06-26 09:30:29 Nathan Sidwell

Fix stupid communicating server bugs.

gcc/cp/
* mapper-server.cc (process_server): We should Write when writing.
(server): Fix off-by-one error.

597b99c 2020-06-26 09:18:08 GCC Administrator

Daily bump.

985e3cd 2020-06-26 09:17:32 GCC Administrator

Daily bump.

89da6aa 2020-06-26 09:16:55 GCC Administrator

Daily bump.

d61ffe1 2020-06-26 09:16:23 GCC Administrator

Daily bump.

08ca2d7 2020-06-26 08:05:15 Marek Polacek

c++: Add test for c++/91104

Fixed by r271705.

gcc/testsuite/ChangeLog:

PR c++/91104
* g++.dg/cpp1y/lambda-generic-variadic21.C: New test.

d07d094 2020-06-26 05:22:51 Nathan Sidwell

Merge master 68df8e8c343

869158f 2020-06-26 05:11:38 Nathan Sidwell

Merge master 502d63b6d61

Lower VEC_COND_EXPR into internal functions. [Martin Liska]
Apply d11c9841d54 Add missing check for gassign. [Martin Liska]
Apply 9435fb9668e Fix typo in tree-ssa-reassoc.c. [Martin Liska]

de9908a 2020-06-26 04:58:18 Iain Sandoe

Merge master r11-1667.

* Merge master r11-1667-g77d455ee81ec.

69240fb 2020-06-26 04:34:30 Harald Anlauf

PR fortran/95827 - Buffer overflows with submodules and coarrays

With submodules and coarrays, name mangling results in long internal
symbols. Enlarge internal buffer.

gcc/fortran/
PR fortran/95827
* iresolve.c (gfc_get_string): Enlarge internal buffer used in
generating the mangled name.

(cherry picked from commit a16d0924f18046704ef9a4b6d9593718594677f1)

0862b62 2020-06-26 04:16:04 Nathan Sidwell

Merge master 2021af0c23a

77d455e 2020-06-26 03:34:48 Harald Anlauf

PR fortran/95828 - Buffer overflows with SELECT RANK

With SELECT RANK, name mangling results in long internal symbols that
overflows internal buffers. Fix that.

gcc/fortran/
PR fortran/95828
* match.c (select_rank_set_tmp): Enlarge internal buffer used in
generating a mangled name.
* resolve.c (resolve_select_rank): Likewise.

35a335a 2020-06-26 03:32:13 Harald Anlauf

PR fortran/95826 - Buffer overflows with PDTs and long symbols

With PDTs (parameterized derived types), name mangling results in variably
long internal symbols. Use a dynamic buffer instead of a fixed-size one.

gcc/fortran/
PR fortran/95826
* decl.c (gfc_match_decl_type_spec): Replace a fixed size
buffer by a pointer and reallocate if necessary.

20f4663 2020-06-26 00:48:34 Nick Clifton

This patch disables the movsicc pattern in the M32R backend, which is repsonsible for the failure of several gcc testsuite entries.

2020-06-05 Nick Clifton <nickc@redhat.com>

gcc/
* config/m32r/m32r.md (movsicc): Disable pattern.

8ad50d2 2020-06-26 00:27:45 Nathan Sidwell

Merge masrer 668ef28fbb4.

c++: Clean up previous change [PR41437] [Patrick Palka]
gcc/cp/
* module.cc (trees_{in,out}::code_vals [TEMPLATE_INFO]): Adjust
access checking streaming.

27a6802 2020-06-26 00:02:47 Iain Buclaw

d: Do not implicitly set DECL_DECLARED_INLINE_P on member functions.

This has been questionable behaviour since it was added, and though it
has no effect on wider discussions around what should be the correct
semantics of pragma(inline) within D modules, doing this tree-level
optimization has mostly zero benefit as cross-module inlining doesn't
happen anyway.

gcc/d/ChangeLog:

* decl.cc (get_symbol_decl): Do not implicitly set
DECL_DECLARED_INLINE_P on member functions.

bbd6a32 2020-06-26 00:02:47 Iain Buclaw

d: Move d_signed_type and d_unsigned_type to types.cc

These two functions are not tied to the language-specific part of the
front-end in any way.

gcc/d/ChangeLog:

* d-lang.cc (d_gimplify_expr_p): Make static.
(d_parse_file): Likewise.
(d_signed_or_unsigned_type): Move to types.cc.
(d_unsigned_type): Likewise.
(d_signed_type): Likewise.
* d-tree.h (d_unsigned_type): Change the location in file.
(d_signed_type): Likewise.
* types.cc (d_signed_or_unsigned_type): Moved from d-lang.cc.
(d_unsigned_type): Likewise.
(d_signed_type): Likewise.

1b7b352 2020-06-26 00:02:47 Iain Buclaw

d: Merge upstream dmd 4be011355.

Fixes self-assignment warnings seen when compiling with clang.

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

gcc/d/ChangeLog:

PR d/95075
* dmd/MERGE: Merge upstream dmd 4be011355.

1d19c9c 2020-06-26 00:02:46 Iain Buclaw

d: Merge upstream dmd 90450f3ef.

Fixes a regression caused by an incomplete backport of converting the
Expression semantic pass to a Visitor.

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

gcc/d/ChangeLog:

PR d/95250
* dmd/MERGE: Merge upstream dmd 90450f3ef.

gcc/testsuite/ChangeLog:

PR d/95250
* gdc.dg/pr95250.d: New test.

e52f5d0 2020-06-26 00:02:46 Iain Buclaw

d: Remove another dependency on the front-end OutBuffer type.

As the DMD front-end never frees allocated memory, the glue layer
between the DMD front-end and GCC should generally avoid using DMD types
and interfaces if the purpose is internal only.

gcc/d/ChangeLog:

* d-lang.cc (d_parse_file): Replace OutBuffer with obstack.

d103f33 2020-06-26 00:02:46 Iain Buclaw

d: Merge upstream dmd 5fc1806cd.

Backports the OutBuffer interface from upstream dmd master, removing
another difference this and the self-hosted D branch that is purely
refactoring, and doesn't introduce any mechanical changes.

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

gcc/d/ChangeLog:

* dmd/MERGE: Merge upstream dmd 5fc1806cd.
* d-lang.cc (d_parse_file): Use peekChars to get string representation
of OutBuffer data.