Merge remote-tracking branch 'up/main' into main-riscv64
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
This commit is contained in:
commit
c6571e1511
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@
|
|||||||
/nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz
|
/nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz
|
||||||
/newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz
|
/newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz
|
||||||
/gcc-15.0.1-20250201.tar.xz
|
/gcc-15.0.1-20250201.tar.xz
|
||||||
|
/gcc-15.0.1-20250204.tar.xz
|
||||||
|
25
gcc.spec
25
gcc.spec
@ -1,5 +1,5 @@
|
|||||||
%global DATE 20250201
|
%global DATE 20250204
|
||||||
%global gitrev 3e0244fe19596234d3e6cf38c4afa5ca638f4b8d
|
%global gitrev 785011ff892f91b1fedd8ba7812ff3203bc17b1a
|
||||||
%global gcc_version 15.0.1
|
%global gcc_version 15.0.1
|
||||||
%global gcc_major 15
|
%global gcc_major 15
|
||||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||||
@ -143,7 +143,7 @@
|
|||||||
Summary: Various compilers (C, C++, Objective-C, ...)
|
Summary: Various compilers (C, C++, Objective-C, ...)
|
||||||
Name: gcc
|
Name: gcc
|
||||||
Version: %{gcc_version}
|
Version: %{gcc_version}
|
||||||
Release: %{gcc_release}.6.0.riscv64%{?dist}
|
Release: %{gcc_release}.7.0.riscv64%{?dist}
|
||||||
# License notes for some of the less obvious ones:
|
# License notes for some of the less obvious ones:
|
||||||
# gcc/doc/cppinternals.texi: Linux-man-pages-copyleft-2-para
|
# gcc/doc/cppinternals.texi: Linux-man-pages-copyleft-2-para
|
||||||
# isl: MIT, BSD-2-Clause
|
# isl: MIT, BSD-2-Clause
|
||||||
@ -299,8 +299,7 @@ Patch9: gcc15-Wno-format-security.patch
|
|||||||
Patch10: gcc15-rh1574936.patch
|
Patch10: gcc15-rh1574936.patch
|
||||||
Patch11: gcc15-d-shared-libphobos.patch
|
Patch11: gcc15-d-shared-libphobos.patch
|
||||||
Patch12: gcc15-pr118206.patch
|
Patch12: gcc15-pr118206.patch
|
||||||
Patch13: gcc15-pr117231.patch
|
Patch13: gcc15-pr118671.patch
|
||||||
Patch14: gcc15-pr118671.patch
|
|
||||||
|
|
||||||
Patch50: isl-rh2155127.patch
|
Patch50: isl-rh2155127.patch
|
||||||
|
|
||||||
@ -916,8 +915,7 @@ so that there cannot be any synchronization problems.
|
|||||||
%endif
|
%endif
|
||||||
%patch -P11 -p0 -b .d-shared-libphobos~
|
%patch -P11 -p0 -b .d-shared-libphobos~
|
||||||
%patch -P12 -p0 -b .pr118206~
|
%patch -P12 -p0 -b .pr118206~
|
||||||
%patch -P13 -p0 -b .pr117231~
|
%patch -P13 -p0 -b .pr118671~
|
||||||
%patch -P14 -p0 -b .pr118671~
|
|
||||||
|
|
||||||
%patch -P50 -p0 -b .rh2155127~
|
%patch -P50 -p0 -b .rh2155127~
|
||||||
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
|
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
|
||||||
@ -3670,9 +3668,20 @@ end
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Sun Feb 2 2025 David Abdurachmanov <davidlt@rivosinc.com> 15.0.1-0.6.0.riscv64
|
* Wed Feb 5 2025 David Abdurachmanov <davidlt@rivosinc.com> 15.0.1-0.7.0.riscv64
|
||||||
- Remove riscv_cmo.h header
|
- Remove riscv_cmo.h header
|
||||||
|
|
||||||
|
* Tue Feb 4 2025 Jakub Jelinek <jakub@redhat.com> 15.0.1-0.7
|
||||||
|
- update from trunk
|
||||||
|
- PRs ada/118712, ada/118731, c/118742, c++/79786, c++/98893, c++/108205,
|
||||||
|
c++/109918, c++/114619, c++/116506, c++/116880, c++/116914,
|
||||||
|
c++/117114, c++/117778, c++/118265, c++/118470, c++/118491,
|
||||||
|
c++/118718, c++/118719, fortran/93289, lto/113207, middle-end/115913,
|
||||||
|
middle-end/116926, modula2/117411, modula2/118703,
|
||||||
|
rtl-optimization/111673, rtl-optimization/117248,
|
||||||
|
rtl-optimization/117611, target/116010, target/118713,
|
||||||
|
testsuite/116845, tree-optimization/117113, tree-optimization/118717
|
||||||
|
|
||||||
* Sat Feb 1 2025 Jakub Jelinek <jakub@redhat.com> 15.0.1-0.6
|
* Sat Feb 1 2025 Jakub Jelinek <jakub@redhat.com> 15.0.1-0.6
|
||||||
- update from trunk
|
- update from trunk
|
||||||
- PRs c++/117501, c++/117516, debug/100530, fortran/108454, fortran/118714,
|
- PRs c++/117501, c++/117516, debug/100530, fortran/108454, fortran/118714,
|
||||||
|
@ -1,177 +0,0 @@
|
|||||||
In the current implementation, statement expressions were intentionally
|
|
||||||
unsupported (as a C++ extension). However since they are quite heavily
|
|
||||||
used by end-users and also now emitted by the compiler in some cases
|
|
||||||
we are now working to add them. This first patch ensures that we
|
|
||||||
recurse into statement expressions (and therefore handle coroutine
|
|
||||||
keywords that might appear inside them).
|
|
||||||
|
|
||||||
PR c++/115851
|
|
||||||
PR c++/116914
|
|
||||||
PR c++/117231
|
|
||||||
|
|
||||||
gcc/cp/ChangeLog:
|
|
||||||
|
|
||||||
* coroutines.cc (await_statement_expander): Walk into
|
|
||||||
statement expressions.
|
|
||||||
(await_statement_walker): Likewise.
|
|
||||||
|
|
||||||
gcc/testsuite/ChangeLog:
|
|
||||||
|
|
||||||
* g++.dg/coroutines/pr115851.C: New test.
|
|
||||||
* g++.dg/coroutines/pr116914.C: New test.
|
|
||||||
* g++.dg/coroutines/pr117231.C: New test.
|
|
||||||
|
|
||||||
Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
|
|
||||||
---
|
|
||||||
gcc/cp/coroutines.cc | 22 ++++++++++++
|
|
||||||
gcc/testsuite/g++.dg/coroutines/pr115851.C | 35 +++++++++++++++++++
|
|
||||||
gcc/testsuite/g++.dg/coroutines/pr116914.C | 40 ++++++++++++++++++++++
|
|
||||||
gcc/testsuite/g++.dg/coroutines/pr117231.C | 21 ++++++++++++
|
|
||||||
4 files changed, 118 insertions(+)
|
|
||||||
create mode 100644 gcc/testsuite/g++.dg/coroutines/pr115851.C
|
|
||||||
create mode 100644 gcc/testsuite/g++.dg/coroutines/pr116914.C
|
|
||||||
create mode 100644 gcc/testsuite/g++.dg/coroutines/pr117231.C
|
|
||||||
|
|
||||||
--- gcc/cp/coroutines.cc
|
|
||||||
+++ gcc/cp/coroutines.cc
|
|
||||||
@@ -2128,6 +2128,14 @@ await_statement_expander (tree *stmt, int *do_subtree, void *d)
|
|
||||||
}
|
|
||||||
else if (EXPR_P (*stmt))
|
|
||||||
{
|
|
||||||
+ /* Look for ({}) at the top level - just recurse into these. */
|
|
||||||
+ if (TREE_CODE (*stmt) == EXPR_STMT)
|
|
||||||
+ {
|
|
||||||
+ tree inner = EXPR_STMT_EXPR (*stmt);
|
|
||||||
+ if (TREE_CODE (inner) == STATEMENT_LIST
|
|
||||||
+ || TREE_CODE (inner) == BIND_EXPR)
|
|
||||||
+ return NULL_TREE; // process contents
|
|
||||||
+ }
|
|
||||||
process_one_statement (stmt, d);
|
|
||||||
*do_subtree = 0; /* Done subtrees. */
|
|
||||||
}
|
|
||||||
@@ -3857,6 +3865,20 @@ await_statement_walker (tree *stmt, int *do_subtree, void *d)
|
|
||||||
if (!(cp_walk_tree (stmt, find_any_await, &await_ptr, &visited)))
|
|
||||||
return NULL_TREE; /* Nothing special to do here. */
|
|
||||||
|
|
||||||
+ /* Handle statement expressions. */
|
|
||||||
+ if (TREE_CODE (expr) == EXPR_STMT)
|
|
||||||
+ {
|
|
||||||
+ tree inner = EXPR_STMT_EXPR (expr);
|
|
||||||
+ if (TREE_CODE (inner) == STATEMENT_LIST
|
|
||||||
+ || TREE_CODE (inner) == BIND_EXPR)
|
|
||||||
+ {
|
|
||||||
+ res = cp_walk_tree (&EXPR_STMT_EXPR (expr),
|
|
||||||
+ await_statement_walker, d, NULL);
|
|
||||||
+ *do_subtree = 0;
|
|
||||||
+ return res;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
visited.empty ();
|
|
||||||
awpts->saw_awaits = 0;
|
|
||||||
hash_set<tree> truth_aoif_to_expand;
|
|
||||||
--- gcc/testsuite/g++.dg/coroutines/pr115851.C
|
|
||||||
+++ gcc/testsuite/g++.dg/coroutines/pr115851.C
|
|
||||||
@@ -0,0 +1,35 @@
|
|
||||||
+// { dg-additional-options "-Wno-pedantic " }
|
|
||||||
+#include <coroutine>
|
|
||||||
+
|
|
||||||
+struct SuspendNever {
|
|
||||||
+ bool await_ready() noexcept;
|
|
||||||
+ void await_suspend(std::coroutine_handle<>) noexcept;
|
|
||||||
+ void await_resume() noexcept;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+struct Coroutine;
|
|
||||||
+
|
|
||||||
+struct PromiseType {
|
|
||||||
+ Coroutine get_return_object();
|
|
||||||
+ SuspendNever initial_suspend();
|
|
||||||
+ SuspendNever final_suspend() noexcept;
|
|
||||||
+ void unhandled_exception () {}
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+struct Coroutine {
|
|
||||||
+ using promise_type = PromiseType;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+struct ErrorOr {
|
|
||||||
+ int release_error();
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+void warnln(int const&);
|
|
||||||
+
|
|
||||||
+Coroutine __async_test_input_basic() {
|
|
||||||
+ ({
|
|
||||||
+ co_await SuspendNever{};
|
|
||||||
+ ErrorOr _temporary_result2;
|
|
||||||
+ warnln(_temporary_result2.release_error());
|
|
||||||
+ });
|
|
||||||
+}
|
|
||||||
--- gcc/testsuite/g++.dg/coroutines/pr116914.C
|
|
||||||
+++ gcc/testsuite/g++.dg/coroutines/pr116914.C
|
|
||||||
@@ -0,0 +1,40 @@
|
|
||||||
+// { dg-additional-options "-std=gnu++20 -fpreprocessed" }
|
|
||||||
+
|
|
||||||
+namespace std {
|
|
||||||
+template <typename a, typename> struct coroutine_traits : a {};
|
|
||||||
+template <typename = void> struct coroutine_handle {
|
|
||||||
+ static coroutine_handle from_address(void *);
|
|
||||||
+ operator coroutine_handle<>();
|
|
||||||
+ void *address();
|
|
||||||
+};
|
|
||||||
+struct b {
|
|
||||||
+ int await_ready() noexcept;
|
|
||||||
+ void await_suspend(coroutine_handle<>) noexcept;
|
|
||||||
+ void await_resume() noexcept;
|
|
||||||
+};
|
|
||||||
+} // namespace std
|
|
||||||
+struct c;
|
|
||||||
+struct d {
|
|
||||||
+ c get_return_object();
|
|
||||||
+ std::b initial_suspend();
|
|
||||||
+ std::b final_suspend() noexcept;
|
|
||||||
+ void unhandled_exception();
|
|
||||||
+ std::b yield_value(int);
|
|
||||||
+};
|
|
||||||
+struct e {
|
|
||||||
+ void operator++();
|
|
||||||
+ int operator*();
|
|
||||||
+ int operator!=(e);
|
|
||||||
+};
|
|
||||||
+struct c {
|
|
||||||
+ using promise_type = d;
|
|
||||||
+ e begin();
|
|
||||||
+ e end();
|
|
||||||
+ c f() {
|
|
||||||
+ c g;
|
|
||||||
+ for (auto h : g) {
|
|
||||||
+ auto i = 1;
|
|
||||||
+ co_yield i;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+};
|
|
||||||
--- gcc/testsuite/g++.dg/coroutines/pr117231.C
|
|
||||||
+++ gcc/testsuite/g++.dg/coroutines/pr117231.C
|
|
||||||
@@ -0,0 +1,21 @@
|
|
||||||
+// { dg-additional-options "-std=c++23 " }
|
|
||||||
+// { dg-do run }
|
|
||||||
+#include <generator>
|
|
||||||
+//#include <print>
|
|
||||||
+#include <vector>
|
|
||||||
+
|
|
||||||
+std::generator<int> get_seq()
|
|
||||||
+{
|
|
||||||
+ std::vector<int> data_{1, 2, 3};
|
|
||||||
+ for (auto item : data_)
|
|
||||||
+ co_yield item;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int main()
|
|
||||||
+{
|
|
||||||
+ int res = 0;
|
|
||||||
+ for (auto item : get_seq())
|
|
||||||
+ res = item; //std::println("{}", item);
|
|
||||||
+ if (res != 3)
|
|
||||||
+ __builtin_abort ();
|
|
||||||
+}
|
|
2
sources
2
sources
@ -1,4 +1,4 @@
|
|||||||
SHA512 (gcc-15.0.1-20250201.tar.xz) = 2b429a615554218d491851b741cfd15ff871ef3beabd27194fe20ce85faa7422e9ac948b6c6bc8c194c33f1564e13ef438e2ec1665d61acc8823443953b01952
|
SHA512 (gcc-15.0.1-20250204.tar.xz) = 33b9175db47e892b60d9de6d2bbe48b44d7e44ac36f36e08a522cbf020919fe2dc2ef2239fa4c75be63c788fde9725106e64f76663ce1330f984ee3c03fc1ac9
|
||||||
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
|
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
|
||||||
SHA512 (newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz) = 839bb0c45b5023a83e1a5bf8773050af46bd075754502fc49a62ab860144c9a6bdc0a7d52e6c7ded87ba13ce58192755dd3f83333bc7c61ffb184fef4142a808
|
SHA512 (newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz) = 839bb0c45b5023a83e1a5bf8773050af46bd075754502fc49a62ab860144c9a6bdc0a7d52e6c7ded87ba13ce58192755dd3f83333bc7c61ffb184fef4142a808
|
||||||
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
|
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
|
||||||
|
Loading…
x
Reference in New Issue
Block a user