public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] libstdc++: Add missing constexpr specifier and function overloads
@ 2023-07-24  3:28 Deev Patel
  2023-07-24 20:15 ` Jonathan Wakely
  0 siblings, 1 reply; 2+ messages in thread
From: Deev Patel @ 2023-07-24  3:28 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1421 bytes --]

Hi,

A couple of virtual functions in the libstdc++ format header are marked
constexpr in the base class, but not in the derived class. This was causing
build failures when trying to compile latest gcc libstd with clang 16 using
c++20. Adding the constexpr specifier resolves the issue.

2023-07-23  Deev Patel  <pateldeev@nevada.unr.edu>

	* include/std/format: Add missing constexpr specifiers on function overloads


From ac34afa1109b4c82e5cc377f49abf55422b89529 Mon Sep 17 00:00:00 2001
From: Deev Patel <pateldeev@nevada.unr.edu>
Date: Sun, 23 Jul 2023 20:08:46 -0700
Subject: [PATCH] [libstdc++] Add missing constexpr specifiers on function
 overloads

---
 libstdc++-v3/include/std/format | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
index 9710bff3c03..0c6069b2681 100644
--- a/libstdc++-v3/include/std/format
+++ b/libstdc++-v3/include/std/format
@@ -3554,14 +3554,14 @@ namespace __format

       using iterator = typename _Scanner<_CharT>::iterator;

-      void
+      constexpr void
       _M_on_chars(iterator __last) override
       {
 	basic_string_view<_CharT> __str(this->begin(), __last);
 	_M_fc.advance_to(__format::__write(_M_fc.out(), __str));
       }

-      void
+      constexpr void
       _M_format_arg(size_t __id) override
       {
 	using _Context = basic_format_context<_Out, _CharT>;
-- 
2.41.0

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] libstdc++: Add missing constexpr specifier and function overloads
  2023-07-24  3:28 [PATCH] libstdc++: Add missing constexpr specifier and function overloads Deev Patel
@ 2023-07-24 20:15 ` Jonathan Wakely
  0 siblings, 0 replies; 2+ messages in thread
From: Jonathan Wakely @ 2023-07-24 20:15 UTC (permalink / raw)
  To: Deev Patel; +Cc: gcc-patches, libstdc++

On 23/07/23 20:28 -0700, Deev Patel wrote:
>Hi,
>
>A couple of virtual functions in the libstdc++ format header are marked
>constexpr in the base class, but not in the derived class. This was causing
>build failures when trying to compile latest gcc libstd with clang 16 using
>c++20. Adding the constexpr specifier resolves the issue.
>
>2023-07-23  Deev Patel  <pateldeev@nevada.unr.edu>
>
>	* include/std/format: Add missing constexpr specifiers on function overloads


Thanks for the patch, I'll test and push it.

N.B. libstdc++ patches should be CC'd to the libstdc++ mailing list,
or I won't see them (and rely on somebody bringing it to my
attention).

>---
> libstdc++-v3/include/std/format | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
>diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
>index 9710bff3c03..0c6069b2681 100644
>--- a/libstdc++-v3/include/std/format
>+++ b/libstdc++-v3/include/std/format
>@@ -3554,14 +3554,14 @@ namespace __format
>
>       using iterator = typename _Scanner<_CharT>::iterator;
>
>-      void
>+      constexpr void
>       _M_on_chars(iterator __last) override
>       {
>       basic_string_view<_CharT> __str(this->begin(), __last);
>       _M_fc.advance_to(__format::__write(_M_fc.out(), __str));
>       }
>
>-      void
>+      constexpr void
>       _M_format_arg(size_t __id) override
>       {
>       using _Context = basic_format_context<_Out, _CharT>;


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-07-24 20:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-24  3:28 [PATCH] libstdc++: Add missing constexpr specifier and function overloads Deev Patel
2023-07-24 20:15 ` Jonathan Wakely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).