Thanks for the feedback. How should I say that my patch has been tested in the future?
-- >8 -- From 794751bb0cd8f0351f0aebd8658a1cc7afd3ef7d Mon Sep 17 00:00:00 2001 From: Eczbek <[email protected]> Date: Thu, 14 May 2026 15:10:44 -0400 Subject: [PATCH] c++: Fix greater-than operator in requires expression in template parameters [PR125317] PR c++/125317 gcc/cp/ChangeLog: * parser.cc (cp_parser_requirement_body): Set parser->greater_than_is_operator_p. gcc/testsuite/ChangeLog: * g++.dg/cpp2a/concepts-requires42.C: New test. --- gcc/cp/parser.cc | 4 ++++ gcc/testsuite/g++.dg/cpp2a/concepts-requires42.C | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp2a/concepts-requires42.C diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc index d128de771b5..9923cf6be94 100644 --- a/gcc/cp/parser.cc +++ b/gcc/cp/parser.cc @@ -34913,6 +34913,10 @@ cp_parser_requirement_body (cp_parser *parser) if (!braces.require_open (parser)) return error_mark_node;+ /* Within the body of a requires expression, a '>' token is always the
+ greater-than operator. */ + auto gto = make_temp_override (parser->greater_than_is_operator_p, true); + tree reqs = cp_parser_requirement_seq (parser);if (!braces.require_close (parser))
diff --git a/gcc/testsuite/g++.dg/cpp2a/concepts-requires42.C
b/gcc/testsuite/g++.dg/cpp2a/concepts-requires42.C
new file mode 100644
index 00000000000..4521908a1c1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/concepts-requires42.C
@@ -0,0 +1,4 @@
+// PR c++/125317
+// { dg-do compile { target c++20 } }
+
+template<bool = requires { 0 > 0; }> int x;
--
2.53.0
