[PATCH 6/9 v4] libstdc++, contracts: Add base P2900R14 contracts support.

Jonathan Wakely jwakely@redhat.com
Wed Jan 28 10:25:34 GMT 2026


On Tue, 27 Jan 2026 at 00:33 +0000, Iain Sandoe wrote:
>diff --git a/libstdc++-v3/src/experimental/Makefile.am b/libstdc++-v3/src/experimental/Makefile.am
>index e6d41cf66eb2..e428aef23c04 100644
>--- a/libstdc++-v3/src/experimental/Makefile.am
>+++ b/libstdc++-v3/src/experimental/Makefile.am
>@@ -39,10 +39,16 @@ endif
> headers =
>
> sources = \
>-	contract.cc
>+	contract26.cc
>
> # vpath % $(top_srcdir)/src/experimental
>
>+
>+contract26.lo: contract26.cc
>+	$(LTCXXCOMPILE) -std=gnu++26 -fcontracts -c $<
>+contract26.o: contract26.cc
>+	$(CXXCOMPILE) -std=gnu++26 -fcontracts -c $<
>+
> libstdc__exp_la_SOURCES = $(sources)
>
> libstdc__exp_la_LIBADD = \
>diff --git a/libstdc++-v3/src/experimental/Makefile.in b/libstdc++-v3/src/experimental/Makefile.in
>index 8cb0acd4e68b..a9248197f8c7 100644
>--- a/libstdc++-v3/src/experimental/Makefile.in
>+++ b/libstdc++-v3/src/experimental/Makefile.in
>@@ -152,7 +152,7 @@ am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
> LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
> @ENABLE_FILESYSTEM_TS_TRUE@am__DEPENDENCIES_1 = $(top_builddir)/src/filesystem/libstdc++fsconvenience.la
> @ENABLE_BACKTRACE_TRUE@am__DEPENDENCIES_2 = $(top_builddir)/src/libbacktrace/libstdc++_libbacktrace.la
>-am__objects_1 = contract.lo
>+am__objects_1 = contract26.lo
> am_libstdc__exp_la_OBJECTS = $(am__objects_1)
> libstdc__exp_la_OBJECTS = $(am_libstdc__exp_la_OBJECTS)
> AM_V_lt = $(am__v_lt_@AM_V@)
>@@ -458,10 +458,8 @@ toolexeclib_LTLIBRARIES = libstdc++exp.la
> @ENABLE_BACKTRACE_TRUE@backtrace_lib = $(top_builddir)/src/libbacktrace/libstdc++_libbacktrace.la
> headers =
> sources = \
>-	contract.cc
>+	contract26.cc
>
>-
>-# vpath % $(top_srcdir)/src/experimental
> libstdc__exp_la_SOURCES = $(sources)
> libstdc__exp_la_LIBADD = \
> 	$(top_builddir)/src/c++23/libc++23convenience.la \
>@@ -480,7 +478,7 @@ libstdc__exp_la_DEPENDENCIES = \
> # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
> # as the occasion calls for it.
> AM_CXXFLAGS = \
>-	-std=gnu++17 -nostdinc++ \
>+	-std=gnu++20 -nostdinc++ \
> 	$(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
> 	$(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \
> 	$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) \

I'm not sure where this change came from, it looks like a remnant from
some earlier change to src/experimental/Makefile.am which was
reverted, but the Makefile.in wasn't regenerated.

I'll fix it now.



More information about the Libstdc++ mailing list