Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2226102/?format=api
{ "id": 2226102, "url": "http://patchwork.ozlabs.org/api/1.2/patches/2226102/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/bmm.hhu8u7e3ks.gcc.gcc-TEST.redi.4.2.1@forge-stage.sourceware.org/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/1.2/projects/17/?format=api", "name": "GNU Compiler Collection", "link_name": "gcc", "list_id": "gcc-patches.gcc.gnu.org", "list_email": "gcc-patches@gcc.gnu.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<bmm.hhu8u7e3ks.gcc.gcc-TEST.redi.4.2.1@forge-stage.sourceware.org>", "list_archive_url": null, "date": "2026-04-22T08:58:15", "name": "[v2,1/1] libstdc++: Deprecate useless <cxxx> compatibility headers for C++17", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "41376441292f351ef705f8748e4909e7f8eba2e4", "submitter": { "id": 93210, "url": "http://patchwork.ozlabs.org/api/1.2/people/93210/?format=api", "name": "Jonathan Wakely via Sourceware Forge", "email": "forge-bot+redi@forge-stage.sourceware.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/bmm.hhu8u7e3ks.gcc.gcc-TEST.redi.4.2.1@forge-stage.sourceware.org/mbox/", "series": [ { "id": 500950, "url": "http://patchwork.ozlabs.org/api/1.2/series/500950/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=500950", "date": "2026-04-22T08:58:14", "name": "libstdc++: Deprecate useless <cxxx> compatibility headers for C++17", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/500950/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2226102/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2226102/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)", "sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org", "sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org", "server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39" ], "Received": [ "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0tVv486vz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 19:01:10 +1000 (AEST)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id B9A924BAD158\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 09:01:08 +0000 (GMT)", "from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 5E0FF4B9DB61\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 08:59:19 +0000 (GMT)", "from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 33B2D4052F\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 08:59:19 +0000 (UTC)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org B9A924BAD158", "OpenDKIM Filter v2.11.0 sourceware.org 5E0FF4B9DB61" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 5E0FF4B9DB61", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 5E0FF4B9DB61", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776848359; cv=none;\n b=quLSEefkvmn/RNSLvEhuadsntAnfAw75OC9qbasiZhpSwCuvH8ICQUvFQQ5OGzXhQMbNqGC4JNc32h+UWKFupoYt2niKAPgZ1EXKA4lRvHg4kgq7dr7vgsq38ktkvL3A1hdRchZwsxO82VCUF4mgKIy5v3Iq3Qdw5/R2ms+WE1w=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776848359; c=relaxed/simple;\n bh=o71XWluqC+J/CKZyPSpgJA5HmcGrktZ3SyQoOhP9jr4=;\n h=From:Date:Subject:To:Message-ID;\n b=vsZfmEPrqVQh3OlPWCsVgBM579rf/5nCTqhtvRjIuTtZrLMkeHxdRJitxmQGBcMTpgYsZ57Vz03zUfFVD4U3fLjBPRkM8WHKrwQeZuLFKIRiNGbXossaJ5JBq6cbp6aohj9mjGR1yi4cgj8UiHF/m5/UCHthCJMNzDf1G8ODad0=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "From": "Jonathan Wakely via Sourceware Forge\n <forge-bot+redi@forge-stage.sourceware.org>", "Date": "Wed, 22 Apr 2026 08:58:15 +0000", "Subject": "[PATCH v2 1/1] libstdc++: Deprecate useless <cxxx> compatibility\n headers for C++17", "To": "gcc-patches mailing list <gcc-patches@gcc.gnu.org>", "Message-ID": "\n <bmm.hhu8u7e3ks.gcc.gcc-TEST.redi.4.2.1@forge-stage.sourceware.org>", "X-Mailer": "batrachomyomachia", "X-Pull-Request-Organization": "gcc", "X-Pull-Request-Repository": "gcc-TEST", "X-Pull-Request": "https://forge.sourceware.org/gcc/gcc-TEST/pulls/4", "References": "\n <bmm.hhu8u7e3ks.gcc.gcc-TEST.redi.4.2.0@forge-stage.sourceware.org>", "In-Reply-To": "\n <bmm.hhu8u7e3ks.gcc.gcc-TEST.redi.4.2.0@forge-stage.sourceware.org>", "X-Patch-URL": "\n https://forge.sourceware.org/redi/gcc/commit/0740f7d2e5e1ba2ec93969675a6b9baa31e48c47", "X-BeenThere": "gcc-patches@gcc.gnu.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>", "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>", "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>", "List-Post": "<mailto:gcc-patches@gcc.gnu.org>", "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>", "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>", "Reply-To": "gcc-patches mailing list <gcc-patches@gcc.gnu.org>, redi@gcc.gnu.org", "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org" }, "content": "From: Jonathan Wakely <jwakely@redhat.com>\n\nThese headers make no sense for C++ programs, because they either define\ndifferent content to the corresponding <xxx.h> C header, or define\nnothing at all in namespace std. They were all deprecated in C++17, so\nadd deprecation warnings to them, which can be disabled with\n-Wno-deprecated. For C++20 and later these headers are no longer in the\nstandard at all, so compiling with _GLIBCXX_USE_DEPRECATED defined to 0\nwill give an error when they are included.\n\nBecause #warning is non-standard before C++23 we need to use pragmas to\nignore -Wc++23-extensions for the -Wsystem-headers -pedantic case.\n\nOne g++ test needs adjustment because it includes <ciso646>, but that\ncan be made conditional on the __cplusplus value without any reduction\nin test coverage.\n\nFor the library tests, consolidate the std_c++0x_neg.cc XFAIL tests into\nthe macros.cc test, using dg-error with a { target c++98_only }\nselector. This avoids having two separate test files, one for C++98 and\none for everything later. Also add tests for the <xxx.h> headers to\nensure that they behave as expected and don't give deprecated warnings.\n\nlibstdc++-v3/ChangeLog:\n\n\t* doc/xml/manual/evolution.xml: Document deprecations.\n\t* doc/html/*: Regenerate.\n\t* include/c_compatibility/complex.h (_GLIBCXX_COMPLEX_H): Move\n\tinclude guard to start of file. Include <complex> directly\n\tinstead of <ccomplex>.\n\t* include/c_compatibility/tgmath.h: Include <cmath> and\n\t<complex> directly, instead of <ctgmath>.\n\t* include/c_global/ccomplex: Add deprecated #warning for C++17\n\tand #error for C++20 if _GLIBCXX_USE_DEPRECATED == 0.\n\t* include/c_global/ciso646: Likewise.\n\t* include/c_global/cstdalign: Likewise.\n\t* include/c_global/cstdbool: Likewise.\n\t* include/c_global/ctgmath: Likewise.\n\t* include/c_std/ciso646: Likewise.\n\t* include/precompiled/stdc++.h: Do not include ccomplex,\n\tciso646, cstdalign, cstdbool, or ctgmath in C++17 and later.\n\t* testsuite/18_support/headers/cstdalign/macros.cc: Check for\n\twarnings and errors for unsupported dialects.\n\t* testsuite/18_support/headers/cstdbool/macros.cc: Likewise.\n\t* testsuite/26_numerics/headers/ctgmath/complex.cc: Likewise.\n\t* testsuite/27_io/objects/char/1.cc: Do not include <ciso646>.\n\t* testsuite/27_io/objects/wchar_t/1.cc: Likewise.\n\t* testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc: Removed.\n\t* testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc: Removed.\n\t* testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc: Removed.\n\t* testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc: Removed.\n\t* testsuite/18_support/headers/ciso646/macros.cc: New test.\n\t* testsuite/18_support/headers/ciso646/macros.h.cc: New test.\n\t* testsuite/18_support/headers/cstdbool/macros.h.cc: New test.\n\t* testsuite/26_numerics/headers/ccomplex/complex.cc: New test.\n\t* testsuite/26_numerics/headers/ccomplex/complex.h.cc: New test.\n\t* testsuite/26_numerics/headers/ctgmath/complex.h.cc: New test.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.old-deja/g++.other/headers1.C: Do not include ciso646 for\n\tC++17 and later.\n---\n .../g++.old-deja/g++.other/headers1.C | 2 +\n libstdc++-v3/doc/html/manual/api.html | 8 +++\n libstdc++-v3/doc/xml/manual/evolution.xml | 10 ++++\n .../include/c_compatibility/complex.h | 10 ++--\n libstdc++-v3/include/c_compatibility/tgmath.h | 11 ++--\n libstdc++-v3/include/c_global/ccomplex | 9 ++++\n libstdc++-v3/include/c_global/ciso646 | 9 ++++\n libstdc++-v3/include/c_global/cstdalign | 8 +++\n libstdc++-v3/include/c_global/cstdbool | 8 +++\n libstdc++-v3/include/c_global/ctgmath | 14 +++--\n libstdc++-v3/include/c_std/ciso646 | 10 ++++\n libstdc++-v3/include/precompiled/stdc++.h | 13 +++--\n .../18_support/headers/ciso646/macros.cc | 51 +++++++++++++++++++\n .../18_support/headers/ciso646/macros.h.cc | 49 ++++++++++++++++++\n .../18_support/headers/cstdalign/macros.cc | 10 +++-\n .../18_support/headers/cstdalign/macros.h.cc | 25 +++++++++\n .../headers/cstdalign/std_c++0x_neg.cc | 24 ---------\n .../18_support/headers/cstdbool/macros.cc | 9 +++-\n .../18_support/headers/cstdbool/macros.h.cc | 21 ++++++++\n .../headers/cstdbool/std_c++0x_neg.cc | 26 ----------\n .../26_numerics/headers/ccomplex/complex.cc | 10 ++++\n .../26_numerics/headers/ccomplex/complex.h.cc | 10 ++++\n .../headers/ccomplex/std_c++0x_neg.cc | 26 ----------\n .../26_numerics/headers/ctgmath/complex.cc | 9 +++-\n .../26_numerics/headers/ctgmath/complex.h.cc | 10 ++++\n .../headers/ctgmath/std_c++0x_neg.cc | 26 ----------\n .../testsuite/27_io/objects/char/1.cc | 1 -\n .../testsuite/27_io/objects/wchar_t/1.cc | 1 -\n 28 files changed, 294 insertions(+), 126 deletions(-)\n create mode 100644 libstdc++-v3/testsuite/18_support/headers/ciso646/macros.cc\n create mode 100644 libstdc++-v3/testsuite/18_support/headers/ciso646/macros.h.cc\n create mode 100644 libstdc++-v3/testsuite/18_support/headers/cstdalign/macros.h.cc\n delete mode 100644 libstdc++-v3/testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc\n create mode 100644 libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.h.cc\n delete mode 100644 libstdc++-v3/testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc\n create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/ccomplex/complex.cc\n create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/ccomplex/complex.h.cc\n delete mode 100644 libstdc++-v3/testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc\n create mode 100644 libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.h.cc\n delete mode 100644 libstdc++-v3/testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc", "diff": "diff --git a/gcc/testsuite/g++.old-deja/g++.other/headers1.C b/gcc/testsuite/g++.old-deja/g++.other/headers1.C\nindex 5d37e94082f7..90a1a7dc8f96 100644\n--- a/gcc/testsuite/g++.old-deja/g++.other/headers1.C\n+++ b/gcc/testsuite/g++.old-deja/g++.other/headers1.C\n@@ -12,7 +12,9 @@\n #include <cctype>\n #include <cerrno>\n #include <cfloat>\n+#if __cplusplus < 201703L\n #include <ciso646>\n+#endif\n #include <climits>\n #include <clocale>\n #include <cmath>\ndiff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html\nindex 799f6eae2a23..2ccfc07b83e5 100644\n--- a/libstdc++-v3/doc/html/manual/api.html\n+++ b/libstdc++-v3/doc/html/manual/api.html\n@@ -498,4 +498,12 @@ to be used with <code class=\"code\">std::basic_istream</code>.\n longer allowed in C++20 mode.\n </p></div><div class=\"section\"><div class=\"titlepage\"><div><div><h3 class=\"title\"><a id=\"api.rel_151\"></a><code class=\"constant\">15</code></h3></div></div></div><p>\n Enabled debug assertions by default for unoptimized builds.\n+</p><p>\n+Added warnings when including the headers that were deprecated in C++17\n+and removed in C++20:\n+<code class=\"filename\"><ccomplex></code>,\n+<code class=\"filename\"><ciso646></code>,\n+<code class=\"filename\"><cstdalign></code>,\n+<code class=\"filename\"><cstdbool></code>, and\n+<code class=\"filename\"><ctgmath></code>.\n </p></div></div><div class=\"navfooter\"><hr /><table width=\"100%\" summary=\"Navigation footer\"><tr><td width=\"40%\" align=\"left\"><a accesskey=\"p\" href=\"abi.html\">Prev</a> </td><td width=\"20%\" align=\"center\"><a accesskey=\"u\" href=\"appendix_porting.html\">Up</a></td><td width=\"40%\" align=\"right\"> <a accesskey=\"n\" href=\"backwards.html\">Next</a></td></tr><tr><td width=\"40%\" align=\"left\" valign=\"top\">ABI Policy and Guidelines </td><td width=\"20%\" align=\"center\"><a accesskey=\"h\" href=\"../index.html\">Home</a></td><td width=\"40%\" align=\"right\" valign=\"top\"> Backwards Compatibility</td></tr></table></div></body></html>\n\\ No newline at end of file\ndiff --git a/libstdc++-v3/doc/xml/manual/evolution.xml b/libstdc++-v3/doc/xml/manual/evolution.xml\nindex 75cf948a4a2d..6b134de0e71f 100644\n--- a/libstdc++-v3/doc/xml/manual/evolution.xml\n+++ b/libstdc++-v3/doc/xml/manual/evolution.xml\n@@ -1135,6 +1135,16 @@ to be used with <code>std::basic_istream</code>.\n Enabled debug assertions by default for unoptimized builds.\n </para>\n \n+<para>\n+Added warnings when including the headers that were deprecated in C++17\n+and removed in C++20:\n+<filename class=\"headerfile\"><ccomplex></filename>,\n+<filename class=\"headerfile\"><ciso646></filename>,\n+<filename class=\"headerfile\"><cstdalign></filename>,\n+<filename class=\"headerfile\"><cstdbool></filename>, and\n+<filename class=\"headerfile\"><ctgmath></filename>.\n+</para>\n+\n </section>\n \n </section>\ndiff --git a/libstdc++-v3/include/c_compatibility/complex.h b/libstdc++-v3/include/c_compatibility/complex.h\nindex 605d1f30e06e..461ff2117b10 100644\n--- a/libstdc++-v3/include/c_compatibility/complex.h\n+++ b/libstdc++-v3/include/c_compatibility/complex.h\n@@ -26,10 +26,15 @@\n * This is a Standard C++ Library header.\n */\n \n+#ifndef _GLIBCXX_COMPLEX_H\n+#define _GLIBCXX_COMPLEX_H 1\n+\n #include <bits/c++config.h>\n \n #if __cplusplus >= 201103L\n-# include <ccomplex>\n+extern \"C++\" {\n+#include <complex>\n+}\n #endif\n \n #if __cplusplus >= 201103L && defined(__STRICT_ANSI__)\n@@ -42,7 +47,4 @@\n # endif\n #endif\n \n-#ifndef _GLIBCXX_COMPLEX_H\n-#define _GLIBCXX_COMPLEX_H 1\n-\n #endif\ndiff --git a/libstdc++-v3/include/c_compatibility/tgmath.h b/libstdc++-v3/include/c_compatibility/tgmath.h\nindex aadddd91b606..6bf6727a15c4 100644\n--- a/libstdc++-v3/include/c_compatibility/tgmath.h\n+++ b/libstdc++-v3/include/c_compatibility/tgmath.h\n@@ -32,11 +32,12 @@\n #include <bits/c++config.h>\n \n #if __cplusplus >= 201103L\n-# include <ctgmath>\n-#else\n-# if _GLIBCXX_HAVE_TGMATH_H\n-# include_next <tgmath.h>\n-# endif\n+# include <cmath>\n+extern \"C++\" {\n+# include <complex>\n+}\n+#elif _GLIBCXX_HAVE_TGMATH_H\n+# include_next <tgmath.h>\n #endif\n \n #endif\ndiff --git a/libstdc++-v3/include/c_global/ccomplex b/libstdc++-v3/include/c_global/ccomplex\nindex ee1166aaecbe..b0e30fa67eb0 100644\n--- a/libstdc++-v3/include/c_global/ccomplex\n+++ b/libstdc++-v3/include/c_global/ccomplex\n@@ -41,4 +41,13 @@ extern \"C++\" {\n #include <complex>\n }\n \n+#if __cplusplus >= 202002L && ! _GLIBCXX_USE_DEPRECATED\n+# error \"<ccomplex> is not a standard header in C++20, use <complex.h>\"\n+#elif __cplusplus >= 201703L && defined __DEPRECATED\n+# pragma GCC diagnostic push\n+# pragma GCC diagnostic ignored \"-Wc++23-extensions\"\n+# warning \"<ccomplex> is deprecated in C++17, use <complex.h>\"\n+# pragma GCC diagnostic pop\n+#endif\n+\n #endif\ndiff --git a/libstdc++-v3/include/c_global/ciso646 b/libstdc++-v3/include/c_global/ciso646\nindex 6e26f9be12eb..ed1fcf6f14e0 100644\n--- a/libstdc++-v3/include/c_global/ciso646\n+++ b/libstdc++-v3/include/c_global/ciso646\n@@ -38,4 +38,13 @@\n \n #include <bits/c++config.h>\n \n+#if __cplusplus >= 202002L && ! _GLIBCXX_USE_DEPRECATED\n+# error \"<ciso646> is not a standard header in C++20, use <iso646.h> or <version>\"\n+#elif __cplusplus >= 201703L && defined __DEPRECATED\n+# pragma GCC diagnostic push\n+# pragma GCC diagnostic ignored \"-Wc++23-extensions\"\n+# warning \"<ciso646> is deprecated in C++17, use <iso646.h> or <version>\"\n+# pragma GCC diagnostic pop\n+#endif\n+\n #endif\ndiff --git a/libstdc++-v3/include/c_global/cstdalign b/libstdc++-v3/include/c_global/cstdalign\nindex 4f6105884258..f7bbbad82a06 100644\n--- a/libstdc++-v3/include/c_global/cstdalign\n+++ b/libstdc++-v3/include/c_global/cstdalign\n@@ -40,6 +40,14 @@\n # if _GLIBCXX_HAVE_STDALIGN_H\n # include <stdalign.h>\n # endif\n+# if __cplusplus >= 202002L && ! _GLIBCXX_USE_DEPRECATED\n+# error \"<cstdalign> is not a standard header in C++20, use <stdalign.h>\"\n+# elif __cplusplus >= 201703L && defined __DEPRECATED\n+# pragma GCC diagnostic push\n+# pragma GCC diagnostic ignored \"-Wc++23-extensions\"\n+# warning \"<cstdalign> is deprecated in C++17, use <stdalign.h>\"\n+# pragma GCC diagnostic pop\n+# endif\n #endif\n \n #endif\ndiff --git a/libstdc++-v3/include/c_global/cstdbool b/libstdc++-v3/include/c_global/cstdbool\nindex 8d2e75df33f0..27be50ff5109 100644\n--- a/libstdc++-v3/include/c_global/cstdbool\n+++ b/libstdc++-v3/include/c_global/cstdbool\n@@ -40,6 +40,14 @@\n # if _GLIBCXX_HAVE_STDBOOL_H\n # include <stdbool.h>\n # endif\n+# if __cplusplus >= 202002L && ! _GLIBCXX_USE_DEPRECATED\n+# error \"<cstdbool> is not a standard header in C++20, use <stdbool.h>\"\n+# elif __cplusplus >= 201703L && defined __DEPRECATED\n+# pragma GCC diagnostic push\n+# pragma GCC diagnostic ignored \"-Wc++23-extensions\"\n+# warning \"<cstdbool> is deprecated in C++17, use <stdbool.h>\"\n+# pragma GCC diagnostic pop\n+# endif\n #endif\n \n #endif\ndiff --git a/libstdc++-v3/include/c_global/ctgmath b/libstdc++-v3/include/c_global/ctgmath\nindex 79c1a029f41d..5824a20c7c0c 100644\n--- a/libstdc++-v3/include/c_global/ctgmath\n+++ b/libstdc++-v3/include/c_global/ctgmath\n@@ -26,13 +26,13 @@\n * This is a Standard C++ Library header.\n */\n \n+#ifndef _GLIBCXX_CTGMATH\n+#define _GLIBCXX_CTGMATH 1\n+\n #ifdef _GLIBCXX_SYSHDR\n #pragma GCC system_header\n #endif\n \n-#ifndef _GLIBCXX_CTGMATH\n-#define _GLIBCXX_CTGMATH 1\n-\n #if __cplusplus < 201103L\n # include <bits/c++0x_warning.h>\n #else\n@@ -40,6 +40,14 @@\n extern \"C++\" {\n # include <complex>\n }\n+# if __cplusplus >= 202002L && ! _GLIBCXX_USE_DEPRECATED\n+# error \"<ctgmath> is not a standard header in C++20, use <tgmath.h>\"\n+# elif __cplusplus >= 201703L && defined __DEPRECATED\n+# pragma GCC diagnostic push\n+# pragma GCC diagnostic ignored \"-Wc++23-extensions\"\n+# warning \"<ctgmath> is deprecated in C++17, use <tgmath.h>\"\n+# pragma GCC diagnostic pop\n+# endif\n #endif\n \n #endif\ndiff --git a/libstdc++-v3/include/c_std/ciso646 b/libstdc++-v3/include/c_std/ciso646\nindex 7971f0d0c313..ac9801aef2bc 100644\n--- a/libstdc++-v3/include/c_std/ciso646\n+++ b/libstdc++-v3/include/c_std/ciso646\n@@ -37,4 +37,14 @@\n #endif\n \n #include <bits/c++config.h>\n+\n+#if __cplusplus >= 202002L && ! _GLIBCXX_USE_DEPRECATED\n+# error \"<ciso646> is not a standard header in C++20, use <iso646.h> or <version>\"\n+#elif __cplusplus >= 201703L && defined __DEPRECATED\n+# pragma GCC diagnostic push\n+# pragma GCC diagnostic ignored \"-Wc++23-extensions\"\n+# warning \"<ciso646> is deprecated in C++17, use <iso646.h> or <version>\"\n+# pragma GCC diagnostic pop\n+#endif\n+\n #endif\ndiff --git a/libstdc++-v3/include/precompiled/stdc++.h b/libstdc++-v3/include/precompiled/stdc++.h\nindex 3eef20d16458..89917106bac2 100644\n--- a/libstdc++-v3/include/precompiled/stdc++.h\n+++ b/libstdc++-v3/include/precompiled/stdc++.h\n@@ -34,7 +34,6 @@\n #endif\n #include <cctype>\n #include <cfloat>\n-#include <ciso646>\n #include <climits>\n #include <csetjmp>\n #include <cstdarg>\n@@ -43,6 +42,9 @@\n \n #if __cplusplus >= 201103L\n #include <cstdint>\n+#if __cplusplus < 201703L\n+#include <ciso646>\n+#endif\n #endif\n \n // C++\n@@ -108,7 +110,6 @@\n #include <cctype>\n #include <cerrno>\n #include <cfloat>\n-#include <ciso646>\n #include <climits>\n #include <clocale>\n #include <cmath>\n@@ -124,14 +125,16 @@\n #include <cwctype>\n \n #if __cplusplus >= 201103L\n-#include <ccomplex>\n #include <cfenv>\n #include <cinttypes>\n+#include <cstdint>\n+#include <cuchar>\n+#if __cplusplus < 201703L\n+#include <ccomplex>\n #include <cstdalign>\n #include <cstdbool>\n-#include <cstdint>\n #include <ctgmath>\n-#include <cuchar>\n+#endif\n #endif\n \n // C++\ndiff --git a/libstdc++-v3/testsuite/18_support/headers/ciso646/macros.cc b/libstdc++-v3/testsuite/18_support/headers/ciso646/macros.cc\nnew file mode 100644\nindex 000000000000..ab3a041de062\n--- /dev/null\n+++ b/libstdc++-v3/testsuite/18_support/headers/ciso646/macros.cc\n@@ -0,0 +1,51 @@\n+// { dg-options \"-D_GLIBCXX_USE_DEPRECATED=0 -Wdeprecated -fno-operator-names\" }\n+// { dg-do preprocess }\n+\n+#include <ciso646>\n+\n+// { dg-warning \"deprecated\" \"\" { target c++17_only } 0 }\n+// { dg-error \"not a standard header\" \"\" { target c++20 } 0 }\n+\n+#ifdef and\n+# error \"The header <ciso646> defines a macro named and\"\n+#endif\n+\n+#ifdef and_eq\n+# error \"The header <ciso646> defines a macro named and_eq\"\n+#endif\n+\n+#ifdef bitand\n+# error \"The header <ciso646> defines a macro named bitand\"\n+#endif\n+\n+#ifdef bitor\n+# error \"The header <ciso646> defines a macro named bitor\"\n+#endif\n+\n+#ifdef compl\n+# error \"The header <ciso646> defines a macro named compl\"\n+#endif\n+\n+#ifdef not\n+# error \"The header <ciso646> defines a macro named not\"\n+#endif\n+\n+#ifdef not_eq\n+# error \"The header <ciso646> defines a macro named not_eq\"\n+#endif\n+\n+#ifdef or\n+# error \"The header <ciso646> defines a macro named or\"\n+#endif\n+\n+#ifdef or_eq\n+# error \"The header <ciso646> defines a macro named or_eq\"\n+#endif\n+\n+#ifdef xor\n+# error \"The header <ciso646> defines a macro named xor\"\n+#endif\n+\n+#ifdef xor_eq\n+# error \"The header <ciso646> defines a macro named xor_eq\"\n+#endif\ndiff --git a/libstdc++-v3/testsuite/18_support/headers/ciso646/macros.h.cc b/libstdc++-v3/testsuite/18_support/headers/ciso646/macros.h.cc\nnew file mode 100644\nindex 000000000000..a70c18de918e\n--- /dev/null\n+++ b/libstdc++-v3/testsuite/18_support/headers/ciso646/macros.h.cc\n@@ -0,0 +1,49 @@\n+// { dg-options \"-D_GLIBCXX_USE_DEPRECATED=0 -Wdeprecated -fno-operator-names\" }\n+// { dg-do preprocess }\n+// { dg-bogus \"deprecated\" \"C++17 deprecated <ciso646> but not <iso646.h>\" }\n+\n+#include <iso646.h>\n+\n+#ifdef and\n+# error \"The header <iso646.h> defines a macro named and\"\n+#endif\n+\n+#ifdef and_eq\n+# error \"The header <iso646.h> defines a macro named and_eq\"\n+#endif\n+\n+#ifdef bitand\n+# error \"The header <iso646.h> defines a macro named bitand\"\n+#endif\n+\n+#ifdef bitor\n+# error \"The header <iso646.h> defines a macro named bitor\"\n+#endif\n+\n+#ifdef compl\n+# error \"The header <iso646.h> defines a macro named compl\"\n+#endif\n+\n+#ifdef not\n+# error \"The header <iso646.h> defines a macro named not\"\n+#endif\n+\n+#ifdef not_eq\n+# error \"The header <iso646.h> defines a macro named not_eq\"\n+#endif\n+\n+#ifdef or\n+# error \"The header <iso646.h> defines a macro named or\"\n+#endif\n+\n+#ifdef or_eq\n+# error \"The header <iso646.h> defines a macro named or_eq\"\n+#endif\n+\n+#ifdef xor\n+# error \"The header <iso646.h> defines a macro named xor\"\n+#endif\n+\n+#ifdef xor_eq\n+# error \"The header <iso646.h> defines a macro named xor_eq\"\n+#endif\ndiff --git a/libstdc++-v3/testsuite/18_support/headers/cstdalign/macros.cc b/libstdc++-v3/testsuite/18_support/headers/cstdalign/macros.cc\nindex c50c921cd59a..793cd26dfa83 100644\n--- a/libstdc++-v3/testsuite/18_support/headers/cstdalign/macros.cc\n+++ b/libstdc++-v3/testsuite/18_support/headers/cstdalign/macros.cc\n@@ -1,8 +1,13 @@\n-// { dg-options \"-D_GLIBCXX_USE_DEPRECATED=1 -Wno-deprecated\" }\n-// { dg-do preprocess { target c++11 } }\n+// { dg-options \"-D_GLIBCXX_USE_DEPRECATED=0 -Wdeprecated\" }\n+// { dg-do preprocess }\n \n #include <cstdalign>\n \n+// { dg-error \"ISO C.. 2011\" \"\" { target c++98_only } 0 }\n+// { dg-warning \"deprecated\" \"\" { target c++17_only } 0 }\n+// { dg-error \"not a standard header\" \"\" { target c++20 } 0 }\n+\n+#if __cplusplus >= 201103L\n #ifndef __alignas_is_defined\n # error \"The header <cstdalign> fails to define a macro named __alignas_is_defined\"\n #elif __alignas_is_defined != 1\n@@ -22,3 +27,4 @@\n #ifdef alignof\n # error \"The header <cstdalign> defines a macro named alignof\"\n #endif\n+#endif\ndiff --git a/libstdc++-v3/testsuite/18_support/headers/cstdalign/macros.h.cc b/libstdc++-v3/testsuite/18_support/headers/cstdalign/macros.h.cc\nnew file mode 100644\nindex 000000000000..78f41ae02e85\n--- /dev/null\n+++ b/libstdc++-v3/testsuite/18_support/headers/cstdalign/macros.h.cc\n@@ -0,0 +1,25 @@\n+// { dg-options \"-D_GLIBCXX_USE_DEPRECATED=0 -Wdeprecated\" }\n+// { dg-do preprocess { target c++11 } }\n+// { dg-bogus \"deprecated\" \"C++17 deprecated <cstdalign> but not <stdalign.h>\" }\n+\n+#include <stdalign.h>\n+\n+#ifndef __alignas_is_defined\n+# error \"The header <stdalign.h> fails to define a macro named __alignas_is_defined\"\n+#elif __alignas_is_defined != 1\n+# error \"__alignas_is_defined is not defined to 1 in <stdalign.h>\"\n+#endif\n+\n+#ifndef __alignof_is_defined\n+# error \"The header <stdalign.h> fails to define a macro named __alignof_is_defined\"\n+#elif __alignof_is_defined != 1\n+# error \"__alignof_is_defined is not defined to 1 in <stdalign.h>\"\n+#endif\n+\n+#ifdef alignas\n+# error \"The header <stdalign.h> defines a macro named alignas\"\n+#endif\n+\n+#ifdef alignof\n+# error \"The header <stdalign.h> defines a macro named alignof\"\n+#endif\ndiff --git a/libstdc++-v3/testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc b/libstdc++-v3/testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc\ndeleted file mode 100644\nindex 14694f034e6c..000000000000\n--- a/libstdc++-v3/testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-// { dg-options \"-std=gnu++98\" }\n-// { dg-do compile { target c++98_only } }\n-\n-// Copyright (C) 2011-2024 Free Software Foundation, Inc.\n-//\n-// This file is part of the GNU ISO C++ Library. This library is free\n-// software; you can redistribute it and/or modify it under the\n-// terms of the GNU General Public License as published by the\n-// Free Software Foundation; either version 3, or (at your option)\n-// any later version.\n-\n-// This library is distributed in the hope that it will be useful,\n-// but WITHOUT ANY WARRANTY; without even the implied warranty of\n-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n-// GNU General Public License for more details.\n-\n-// You should have received a copy of the GNU General Public License along\n-// with this library; see the file COPYING3. If not see\n-// <http://www.gnu.org/licenses/>.\n-\n-#include <cstdalign>\n-\n-// { dg-error \"ISO C.. 2011\" \"\" { target *-*-* } 32 }\n-\ndiff --git a/libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.cc b/libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.cc\nindex e0afc26e458d..658a02a4565b 100644\n--- a/libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.cc\n+++ b/libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.cc\n@@ -1,4 +1,5 @@\n-// { dg-do compile { target c++11 } }\n+// { dg-options \"-D_GLIBCXX_USE_DEPRECATED=0 -Wdeprecated\" }\n+// { dg-do preprocess }\n \n // Copyright (C) 2012-2024 Free Software Foundation, Inc.\n //\n@@ -19,6 +20,11 @@\n \n #include <cstdbool>\n \n+// { dg-error \"ISO C.. 2011\" \"\" { target c++98_only } 0 }\n+// { dg-warning \"deprecated\" \"\" { target c++17_only } 0 }\n+// { dg-error \"not a standard header\" \"\" { target c++20 } 0 }\n+\n+#if __cplusplus >= 201103L\n #ifndef __bool_true_false_are_defined\n # error \"The header <cstdbool> fails to define a macro named __bool_true_false_are_defined\"\n #endif\n@@ -34,3 +40,4 @@\n #ifdef false\n # error \"The header <cstdbool> defines a macro named false\"\n #endif\n+#endif\ndiff --git a/libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.h.cc b/libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.h.cc\nnew file mode 100644\nindex 000000000000..a3c0f9a0aec0\n--- /dev/null\n+++ b/libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.h.cc\n@@ -0,0 +1,21 @@\n+// { dg-options \"-D_GLIBCXX_USE_DEPRECATED=0 -Wdeprecated\" }\n+// { dg-do preprocess { target c++11 } }\n+// { dg-bogus \"deprecated\" \"C++17 deprecated <cstdbool> but not <stdbool.h>\" }\n+\n+#include <stdbool.h>\n+\n+#ifndef __bool_true_false_are_defined\n+# error \"The header <stdbool.h> fails to define a macro named __bool_true_false_are_defined\"\n+#endif\n+\n+#ifdef bool\n+# error \"The header <stdbool.h> defines a macro named bool\"\n+#endif\n+\n+#ifdef true\n+# error \"The header <stdbool.h> defines a macro named true\"\n+#endif\n+\n+#ifdef false\n+# error \"The header <stdbool.h> defines a macro named false\"\n+#endif\ndiff --git a/libstdc++-v3/testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc b/libstdc++-v3/testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc\ndeleted file mode 100644\nindex 5b8c56888775..000000000000\n--- a/libstdc++-v3/testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc\n+++ /dev/null\n@@ -1,26 +0,0 @@\n-// { dg-options \"-std=gnu++98\" }\n-// { dg-do compile { target c++98_only } }\n-\n-// Copyright (C) 2007-2024 Free Software Foundation, Inc.\n-//\n-// This file is part of the GNU ISO C++ Library. This library is free\n-// software; you can redistribute it and/or modify it under the\n-// terms of the GNU General Public License as published by the\n-// Free Software Foundation; either version 3, or (at your option)\n-// any later version.\n-\n-// This library is distributed in the hope that it will be useful,\n-// but WITHOUT ANY WARRANTY; without even the implied warranty of\n-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n-// GNU General Public License for more details.\n-\n-// You should have received a copy of the GNU General Public License along\n-// with this library; see the file COPYING3. If not see\n-// <http://www.gnu.org/licenses/>.\n-\n-#include <cstdbool>\n-\n-// { dg-error \"ISO C.. 2011\" \"\" { target *-*-* } 32 }\n-\n-\n-\ndiff --git a/libstdc++-v3/testsuite/26_numerics/headers/ccomplex/complex.cc b/libstdc++-v3/testsuite/26_numerics/headers/ccomplex/complex.cc\nnew file mode 100644\nindex 000000000000..d6c33781ae5d\n--- /dev/null\n+++ b/libstdc++-v3/testsuite/26_numerics/headers/ccomplex/complex.cc\n@@ -0,0 +1,10 @@\n+// { dg-options \"-D_GLIBCXX_USE_DEPRECATED=0 -Wdeprecated\" }\n+// { dg-do compile }\n+\n+#include <ccomplex>\n+\n+std::complex<double> d;\n+\n+// { dg-error \"ISO C.. 2011\" \"\" { target c++98_only } 0 }\n+// { dg-warning \"deprecated\" \"\" { target c++17_only } 0 }\n+// { dg-error \"not a standard header\" \"\" { target c++20 } 0 }\ndiff --git a/libstdc++-v3/testsuite/26_numerics/headers/ccomplex/complex.h.cc b/libstdc++-v3/testsuite/26_numerics/headers/ccomplex/complex.h.cc\nnew file mode 100644\nindex 000000000000..318b78ee89ee\n--- /dev/null\n+++ b/libstdc++-v3/testsuite/26_numerics/headers/ccomplex/complex.h.cc\n@@ -0,0 +1,10 @@\n+// { dg-options \"-D_GLIBCXX_USE_DEPRECATED=0 -Wdeprecated\" }\n+// { dg-do compile }\n+// { dg-bogus \"deprecated\" \"C++17 deprecated <ccomplex> but not <complex.h>\" }\n+\n+#include <complex.h>\n+\n+#if __cplusplus < 201103L\n+# undef complex\n+#endif\n+std::complex<double> d; // { dg-error \"does not name a template\" \"\" { target c++98_only } 0 }\ndiff --git a/libstdc++-v3/testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc b/libstdc++-v3/testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc\ndeleted file mode 100644\nindex 16c623b25b08..000000000000\n--- a/libstdc++-v3/testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc\n+++ /dev/null\n@@ -1,26 +0,0 @@\n-// { dg-options \"-std=gnu++98\" }\n-// { dg-do compile { target c++98_only } }\n-\n-// Copyright (C) 2007-2024 Free Software Foundation, Inc.\n-//\n-// This file is part of the GNU ISO C++ Library. This library is free\n-// software; you can redistribute it and/or modify it under the\n-// terms of the GNU General Public License as published by the\n-// Free Software Foundation; either version 3, or (at your option)\n-// any later version.\n-\n-// This library is distributed in the hope that it will be useful,\n-// but WITHOUT ANY WARRANTY; without even the implied warranty of\n-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n-// GNU General Public License for more details.\n-\n-// You should have received a copy of the GNU General Public License along\n-// with this library; see the file COPYING3. If not see\n-// <http://www.gnu.org/licenses/>.\n-\n-#include <ccomplex>\n-\n-// { dg-error \"ISO C.. 2011\" \"\" { target *-*-* } 32 }\n-\n-\n-\ndiff --git a/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc b/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc\nindex a2c4a55c89b6..ef2bbd0e20a2 100644\n--- a/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc\n+++ b/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc\n@@ -15,8 +15,13 @@\n // with this library; see the file COPYING3. If not see\n // <http://www.gnu.org/licenses/>.\n \n-// { dg-do compile { target c++11 } }\n+// { dg-options \"-D_GLIBCXX_USE_DEPRECATED=0 -Wdeprecated\" }\n+// { dg-do compile }\n \n #include <ctgmath>\n \n-std::complex<double> d;\n+std::complex<double> d; // { dg-error \"does not name a template\" \"\" { target c++98_only } 0 }\n+\n+// { dg-error \"ISO C.. 2011\" \"\" { target c++98_only } 0 }\n+// { dg-warning \"deprecated\" \"\" { target c++17_only } 0 }\n+// { dg-error \"not a standard header\" \"\" { target c++20 } 0 }\ndiff --git a/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.h.cc b/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.h.cc\nnew file mode 100644\nindex 000000000000..fd6847bff4fc\n--- /dev/null\n+++ b/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.h.cc\n@@ -0,0 +1,10 @@\n+// { dg-options \"-D_GLIBCXX_USE_DEPRECATED=0 -Wdeprecated\" }\n+// { dg-do compile }\n+// { dg-bogus \"deprecated\" \"C++17 deprecated <ctgmath> but not <tgmath.h>\" }\n+\n+#include <tgmath.h>\n+\n+#if __cplusplus < 201103L\n+# undef complex\n+#endif\n+std::complex<double> d; // { dg-error \"does not name a template\" \"\" { target c++98_only } 0 }\ndiff --git a/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc b/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc\ndeleted file mode 100644\nindex d693c8b23ed1..000000000000\n--- a/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc\n+++ /dev/null\n@@ -1,26 +0,0 @@\n-// { dg-options \"-std=gnu++98\" }\n-// { dg-do compile { target c++98_only } }\n-\n-// Copyright (C) 2007-2024 Free Software Foundation, Inc.\n-//\n-// This file is part of the GNU ISO C++ Library. This library is free\n-// software; you can redistribute it and/or modify it under the\n-// terms of the GNU General Public License as published by the\n-// Free Software Foundation; either version 3, or (at your option)\n-// any later version.\n-\n-// This library is distributed in the hope that it will be useful,\n-// but WITHOUT ANY WARRANTY; without even the implied warranty of\n-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n-// GNU General Public License for more details.\n-\n-// You should have received a copy of the GNU General Public License along\n-// with this library; see the file COPYING3. If not see\n-// <http://www.gnu.org/licenses/>.\n-\n-#include <ctgmath>\n-\n-// { dg-error \"ISO C.. 2011\" \"\" { target *-*-* } 32 }\n-\n-\n-\ndiff --git a/libstdc++-v3/testsuite/27_io/objects/char/1.cc b/libstdc++-v3/testsuite/27_io/objects/char/1.cc\nindex 9fc9244baf47..d50b38847027 100644\n--- a/libstdc++-v3/testsuite/27_io/objects/char/1.cc\n+++ b/libstdc++-v3/testsuite/27_io/objects/char/1.cc\n@@ -53,7 +53,6 @@\n #include <cctype>\n #include <cerrno>\n #include <cfloat>\n-#include <ciso646>\n #include <climits>\n #include <clocale>\n #include <cmath>\ndiff --git a/libstdc++-v3/testsuite/27_io/objects/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/objects/wchar_t/1.cc\nindex 23b2168805d1..c2f3643b4e55 100644\n--- a/libstdc++-v3/testsuite/27_io/objects/wchar_t/1.cc\n+++ b/libstdc++-v3/testsuite/27_io/objects/wchar_t/1.cc\n@@ -53,7 +53,6 @@\n #include <cctype>\n #include <cerrno>\n #include <cfloat>\n-#include <ciso646>\n #include <climits>\n #include <clocale>\n #include <cmath>\n", "prefixes": [ "v2", "1/1" ] }