get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/2224606/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2224606,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2224606/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260417172621.1015209-5-torbjorn.svensson@foss.st.com/",
    "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": "<20260417172621.1015209-5-torbjorn.svensson@foss.st.com>",
    "list_archive_url": null,
    "date": "2026-04-17T17:26:21",
    "name": "[05/30] Change `struct loop` to `class loop` to align tags",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "c95a557b8341b648e46fe2a23fcd84342cd3da30",
    "submitter": {
        "id": 84848,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/84848/?format=api",
        "name": "Torbjörn SVENSSON",
        "email": "torbjorn.svensson@foss.st.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260417172621.1015209-5-torbjorn.svensson@foss.st.com/mbox/",
    "series": [
        {
            "id": 500377,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/500377/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=500377",
            "date": "2026-04-17T17:25:07",
            "name": "Align struct/class forward declaration with implementation",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/500377/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2224606/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2224606/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\tdkim=pass (2048-bit key;\n unprotected) header.d=foss.st.com header.i=@foss.st.com header.a=rsa-sha256\n header.s=selector2 header.b=X1ZRrjLE;\n\tdkim-atps=neutral",
            "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;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=foss.st.com header.i=@foss.st.com header.a=rsa-sha256\n header.s=selector2 header.b=X1ZRrjLE",
            "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=foss.st.com",
            "sourceware.org; spf=pass smtp.mailfrom=foss.st.com",
            "server2.sourceware.org;\n arc=pass smtp.remote-ip=52.101.83.57"
        ],
        "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 4fy2193ClMz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 18 Apr 2026 03:29:00 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 5B7604AA397A\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 17:28:58 +0000 (GMT)",
            "from GVXPR05CU001.outbound.protection.outlook.com\n (mail-swedencentralazon11013057.outbound.protection.outlook.com\n [52.101.83.57])\n by sourceware.org (Postfix) with ESMTPS id 1496B4CCCA30\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 17:26:43 +0000 (GMT)",
            "from AM8P189CA0007.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:218::12)\n by AS8PR10MB5903.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:52d::5)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.25; Fri, 17 Apr\n 2026 17:26:37 +0000",
            "from AMS0EPF000001B0.eurprd05.prod.outlook.com\n (2603:10a6:20b:218:cafe::59) by AM8P189CA0007.outlook.office365.com\n (2603:10a6:20b:218::12) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.52 via Frontend Transport; Fri,\n 17 Apr 2026 17:26:37 +0000",
            "from smtpO365.st.com (164.130.1.60) by\n AMS0EPF000001B0.mail.protection.outlook.com (10.167.16.164) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9769.17 via Frontend Transport; Fri, 17 Apr 2026 17:26:37 +0000",
            "from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com\n (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Fri, 17 Apr\n 2026 19:29:26 +0200",
            "from jkgcxl0012.jkg.st.com (10.74.22.122) by STKDAG1NODE2.st.com\n (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Fri, 17 Apr\n 2026 19:26:36 +0200"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 5B7604AA397A",
            "OpenDKIM Filter v2.11.0 sourceware.org 1496B4CCCA30"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 1496B4CCCA30",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 1496B4CCCA30",
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1776446803; cv=pass;\n b=pO1Qi1/Brl/bYnsdc4eWmdpLOF7vTihQejycAWEiF/78m/tJhXoHn6/uZ9uu5nXikZ4AXXiOu25uAKALe0xXSQGbUT0JX03Zyo+QYqKi6r3MTOid5+d+PoP/IKWuwq7Dyan+HG5qMMkRhoZhPhIFgkUoIha0ZykR5LSFWcFP5QM=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=jgbpjJ5tF8MwnhcyWhB35BHmyrBHE35MYBroYkwGcyZBQWW8yTVBof3YasaGUTekZtYH3ltbr7XJ3ETsNPbWe2+VsYeb+1nhtTkLyL7Nmctn9t2wVuWNWVieAwkdWLljonKgscgQ+X9+0InvkI/fLxF4ZQ+eCnJSf90h4dusVYl3w8JOjp4buuHYKcc9/xrQJBqYAF5obUFF7M4b9R7yrRX+xnSAu5qNY8jPAz3QSUDN3SpetefFw1ull3I214IbbNaV0d4EqrztWJIoLmL1iNhBQRlPlY2GgMmQhWJJ8xWLBOZpSSsnzVfxNrHhJX4dovG7LQ30kobtdGIYwIlHwA=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776446803; c=relaxed/simple;\n bh=VfMgXdJGquPL+Rb5GhC/3w8F7PvemDxuMjLDxEPkqCI=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=uwoY8Zjrm8mPj1mA+aFA5v+JBYqdRCYmKBqqoZLwMfl9cnEotjQ/DSkyl10Rh+XGYXzBcYjzZOuTQGaCHlVi+JY394CIbCVWwncqjlhhiy3gUxHGeVHDNBpHisl3GgIpG4BAXBpCWbh1VLHzl6T1suRrMKt+/CcgzzHCFFIKJ7M=",
            "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=F5pOpwo6+syHG3hyrAy5Fo+bU7Kt0ESN8kHXGYgn7po=;\n b=YPhZOjJWQN2+6ryycpCBbByhFl5f4r89iiCMcCws+4tpOyZIFBwL9SuSmrSWXurrwapmQAVGyhawwRIh95XTjOP6KyjZbD63ebUEm1iTDWO/DQIE1BmFzzodMrS/sJ++CcSOUJSwX+COAA7RgKvbP0lmZGcNWdZB1vw+3lhUp6NTySYm770BUfU1fenWMKxiL3ocaepTXwuRLYGLq9OB8YeIoeG3xwH+v+oOLFnXjCZZoXisaaas9DMF6gtTG/oLf6R3fHj/0wsHSkF/xJ+BWS0xHqYNk2r9+s506ww4ilMVhDN0+JZropS7eLRdsK2tk06PfyrxyGlfVo7u4XKRBA=="
        ],
        "ARC-Authentication-Results": [
            "i=2; server2.sourceware.org",
            "i=1; mx.microsoft.com 1; spf=fail (sender ip is\n 164.130.1.60) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=foss.st.com;\n dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com;\n dkim=none (message not signed); arc=none (0)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=F5pOpwo6+syHG3hyrAy5Fo+bU7Kt0ESN8kHXGYgn7po=;\n b=X1ZRrjLEE1aQnmzb/7M8UEgWlXm3L+T+xlZuWnv9BQ4wgJVYt+zvEVWF6mMKMFPwxjvc9jk07cV4ohPJRrL5OZpJeFTkpXCJTRoeTkHXy5ddKGCcSMTGVHYiZHN9P0RCxTYa7I7vOSOQGyM4CQgOTWq3GfWZROlci4yMBde8u+MnNAnr5BrnFr68gDVCU6BSTbvogAbPhTgQES4ZbGWAu4ZuIqUDmaX3jcHkZAYbBQACrrJ3l2v+j8OlBQX3q5YYBkcIltBwzuj/aZCjAQ7IC6v1olTTqocNFn6Qfi1Xso6fLR4lYCxGnUGyZt+otQg3CwjBuNuU8h6HU3BrygOLpg==",
        "X-MS-Exchange-Authentication-Results": "spf=fail (sender IP is 164.130.1.60)\n smtp.mailfrom=foss.st.com; dkim=none (message not signed)\n header.d=none;dmarc=fail action=none header.from=foss.st.com;",
        "Received-SPF": "Fail (protection.outlook.com: domain of foss.st.com does not\n designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com;\n client-ip=164.130.1.60; helo=smtpO365.st.com;",
        "From": "=?utf-8?q?Torbj=C3=B6rn_SVENSSON?= <torbjorn.svensson@foss.st.com>",
        "To": "<gcc-patches@gcc.gnu.org>",
        "CC": "=?utf-8?q?Torbj=C3=B6rn_SVENSSON?= <torbjorn.svensson@foss.st.com>",
        "Subject": "[PATCH 05/30] Change `struct loop` to `class loop` to align tags",
        "Date": "Fri, 17 Apr 2026 19:26:21 +0200",
        "Message-ID": "<20260417172621.1015209-5-torbjorn.svensson@foss.st.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20260417172621.1015209-1-torbjorn.svensson@foss.st.com>",
        "References": "<20260417172506.1015169-2-torbjorn.svensson@foss.st.com>\n <20260417172621.1015209-1-torbjorn.svensson@foss.st.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"UTF-8\"",
        "Content-Transfer-Encoding": "8bit",
        "X-Originating-IP": "[10.74.22.122]",
        "X-ClientProxiedBy": "ENXCAS1NODE2.st.com (10.75.128.138) To STKDAG1NODE2.st.com\n (10.75.128.133)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "AMS0EPF000001B0:EE_|AS8PR10MB5903:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "06b571f9-4d9e-46cd-9b37-08de9ca67ad8",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|376014|82310400026|1800799024|42112799006|36860700016|22082099003|56012099003|18002099003;",
        "X-Microsoft-Antispam-Message-Info": "\n T9mJee/1Fi/C6t4fH8LEngywrJxXA2XRoktuPhAgZ3IoIUUKBcIExYMbtXe/yLZGBjs5CPvUSINQSIHVOPZxlSPkPXHj8PdfZAAONw09Xx8P8dTJmw1Fgv67MNCAZptR7ucZTJymU/NosUAgvRdDyznEtWgzHDJnv5Z9WX3KSDEXHiwSsSgJBeNcK0/ijyWURh9s8AbcqO0BQVv1P/KnIAewUbHK9HUUZa5rZewbhw1qouRKVDPbt7yqypeqPtiWJJ9vf04EHag9Q0eiNSD6sLiaS90GBVziwWO7PAfGnybm2ClgZlx6YUFwwbDipWfQuU/yxEyAMVjhM1FIfuPBdLSC2IknX+AuQAD5xuvBaJUF2DaX5+S3PwL3qymTe/1DsR1yKZ7ooxuqElsceHG6FX0GsjQz/QRs5ZkNailBoAFR+pJeZ3O11LFYllUm0q2idSTg95szbhJahhzqjpXTrgLlaZqrtf64RZkXnywTbZDq7EOkzdMsav3+Tb9UIj6XEDy45xuR6j7U/+UcIfeqYLzX6UJrLTREK5wB/1Jw2tpzpEIrGgndFNAXU2p3te3iYV5qoQ74N3VRdDV89XTR+khR7KQTdYfd+pjktnOzuHiYtrPP8stykrrQMdWCqWnNQaOSrTbSaIVa9FrKw8SkSEp1OZkbd/DK/JaEp35gHscRun7FMqwbIQ2KhjMI3UW/GHTeVf29p1FUe/rYE02onO7Z7kBrNiq+B3ux2Fga3o+I+aQhAju3nxRE0641qehzaJZasIC81H8TvhLmgkHJZQ==",
        "X-Forefront-Antispam-Report": "CIP:164.130.1.60; CTRY:IT; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:smtpO365.st.com; PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(376014)(82310400026)(1800799024)(42112799006)(36860700016)(22082099003)(56012099003)(18002099003);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n q+tBM2BvGrBg+n31nC2U8GWh00P1AwVxQn0QGCPKTElFUImSj9eOnvgZceKHDirS6egPmUWNwkHCzwe4v991WoeIVLonYKNDKCVfNJUreCBZ1LGt9oUxjjacvxUmBrC/5X3oFjsuNIYWoPRA6Vo3Mq/RjCgLoQyz43+wboFSypMpbj/ZVzaXouMzQ2mXQ9ryuMDgKKaaO5TcudqXxgRsgv6I9WVljX9j+VKwm10u7UMJIP2eCB+/gs/h0O4Mj6G1GT3z4AOaYI/dQBJSUNSYE2QZq/1xpi/njihwZA3rhL82bRZxRA/uGGAQHBpAnt5uKoPQTYD+hVs6xFk5lXKHICClkFIq4GRamQ6Agk++TQMsImT3dUQHqKD7d+KlJnnxK2oSzT9qPc5Sw022IsN1cvO7Hng7XTNNluo5uynNv5mres6jEyEFJf+dVRCoPzdz",
        "X-OriginatorOrg": "foss.st.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "17 Apr 2026 17:26:37.1660 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 06b571f9-4d9e-46cd-9b37-08de9ca67ad8",
        "X-MS-Exchange-CrossTenant-Id": "75e027c9-20d5-47d5-b82f-77d7cd041e8f",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f; Ip=[164.130.1.60];\n Helo=[smtpO365.st.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n AMS0EPF000001B0.eurprd05.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AS8PR10MB5903",
        "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>",
        "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"
    },
    "content": "Building GCC with clang gives warnings like:\nwarning: struct 'loop' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags]\n\ngcc/ChangeLog:\n\n\t* cfg.cc: Change `struct loop` to `class loop`.\n\t* config/arm/arm.cc: Likewise.\n\t* config/rs6000/rs6000.cc: Likewise.\n\t* config/s390/s390.cc: Likewise.\n\t* fwprop.cc: Likewise.\n\t* graphite-isl-ast-to-gimple.cc: Likewise.\n\t* graphite-scop-detection.cc: Likewise.\n\t* tree-ssa-loop-ivopts.cc: Likewise.\n\t* tree-ssa-loop-split.cc: Likewise.\n\t* tree-ssa-reassoc.cc: Likewise.\n\t* tree-vect-loop.cc: Likewise.\n\t* tree-vect-slp.cc: Likewise.\n\t* tree-vectorizer.cc: Likewise.\n\nSigned-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>\n---\n gcc/cfg.cc                        |  2 +-\n gcc/config/arm/arm.cc             |  4 ++--\n gcc/config/rs6000/rs6000.cc       |  6 +++---\n gcc/config/s390/s390.cc           |  6 +++---\n gcc/fwprop.cc                     |  6 +++---\n gcc/graphite-isl-ast-to-gimple.cc |  6 +++---\n gcc/graphite-scop-detection.cc    |  2 +-\n gcc/tree-ssa-loop-ivopts.cc       |  4 ++--\n gcc/tree-ssa-loop-split.cc        | 32 +++++++++++++++----------------\n gcc/tree-ssa-reassoc.cc           |  2 +-\n gcc/tree-vect-loop.cc             |  2 +-\n gcc/tree-vect-slp.cc              |  8 ++++----\n gcc/tree-vectorizer.cc            |  2 +-\n 13 files changed, 41 insertions(+), 41 deletions(-)",
    "diff": "diff --git a/gcc/cfg.cc b/gcc/cfg.cc\nindex 6b9d5b24a55..92b36d979b9 100644\n--- a/gcc/cfg.cc\n+++ b/gcc/cfg.cc\n@@ -55,7 +55,7 @@ along with GCC; see the file COPYING3.  If not see\n #include \"cfghooks.h\"\n #include \"df.h\"\n #include \"cfganal.h\"\n-#include \"cfgloop.h\" /* FIXME: For struct loop.  */\n+#include \"cfgloop.h\" /* FIXME: For class loop.  */\n #include \"dumpfile.h\"\n \n \f\ndiff --git a/gcc/config/arm/arm.cc b/gcc/config/arm/arm.cc\nindex b75a32ddab9..d4f2f486fdf 100644\n--- a/gcc/config/arm/arm.cc\n+++ b/gcc/config/arm/arm.cc\n@@ -35326,7 +35326,7 @@ arm_mve_loop_valid_for_dlstp (loop *loop)\n    need of a heuristic to determine what an appropriate size boundary is.  */\n \n static bool\n-arm_predict_doloop_p (struct loop *loop)\n+arm_predict_doloop_p (class loop *loop)\n {\n   gcc_assert (loop);\n   /* On arm, targetm.can_use_doloop_p is actually\n@@ -35380,7 +35380,7 @@ arm_predict_doloop_p (struct loop *loop)\n    the unrolling.  */\n \n unsigned\n-arm_loop_unroll_adjust (unsigned nunroll, struct loop *loop)\n+arm_loop_unroll_adjust (unsigned nunroll, class loop *loop)\n {\n   if (TARGET_HAVE_MVE\n       && arm_target_bb_ok_for_lob (loop->latch)\ndiff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc\nindex 3838059a7e2..ef04ae23e78 100644\n--- a/gcc/config/rs6000/rs6000.cc\n+++ b/gcc/config/rs6000/rs6000.cc\n@@ -5209,7 +5209,7 @@ rs6000_cost_data::density_test (loop_vec_info loop_vinfo)\n   if (m_costing_for_scalar)\n     return;\n \n-  struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);\n+  class loop *loop = LOOP_VINFO_LOOP (loop_vinfo);\n   basic_block *bbs = get_loop_body (loop);\n   int nbbs = loop->num_nodes;\n   int vec_cost = m_costs[vect_body], not_vec_cost = 0;\n@@ -5573,7 +5573,7 @@ rs6000_cost_data::finish_cost (const vector_costs *scalar_costs)\n /* Implement targetm.loop_unroll_adjust.  */\n \n static unsigned\n-rs6000_loop_unroll_adjust (unsigned nunroll, struct loop *loop)\n+rs6000_loop_unroll_adjust (unsigned nunroll, class loop *loop)\n {\n    if (unroll_only_small_loops)\n     {\n@@ -28743,7 +28743,7 @@ rs6000_mangle_decl_assembler_name (tree decl, tree id)\n    doloop_optimize pass.  */\n \n static bool\n-rs6000_predict_doloop_p (struct loop *loop)\n+rs6000_predict_doloop_p (class loop *loop)\n {\n   gcc_assert (loop);\n \ndiff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc\nindex cdd39f63500..e3d2337a4e3 100644\n--- a/gcc/config/s390/s390.cc\n+++ b/gcc/config/s390/s390.cc\n@@ -15522,7 +15522,7 @@ s390_z10_optimize_cmp (rtx_insn *insn)\n /* Scan LOOP for static OSC collisions and return true if a osc_break\n    should be issued for this loop.  */\n static bool\n-s390_adjust_loop_scan_osc (struct loop* loop)\n+s390_adjust_loop_scan_osc (class loop* loop)\n \n {\n   HARD_REG_SET modregs, newregs;\n@@ -16463,14 +16463,14 @@ s390_sched_init (FILE *file ATTRIBUTE_UNUSED,\n }\n \n /* This target hook implementation for TARGET_LOOP_UNROLL_ADJUST calculates\n-   a new number struct loop *loop should be unrolled if tuned for cpus with\n+   a new number class loop *loop should be unrolled if tuned for cpus with\n    a built-in stride prefetcher.\n    The loop is analyzed for memory accesses by calling check_dpu for\n    each rtx of the loop. Depending on the loop_depth and the amount of\n    memory accesses a new number <=nunroll is returned to improve the\n    behavior of the hardware prefetch unit.  */\n static unsigned\n-s390_loop_unroll_adjust (unsigned nunroll, struct loop *loop)\n+s390_loop_unroll_adjust (unsigned nunroll, class loop *loop)\n {\n   basic_block *bbs;\n   rtx_insn *insn;\ndiff --git a/gcc/fwprop.cc b/gcc/fwprop.cc\nindex 68969d10401..ec2729b5d99 100644\n--- a/gcc/fwprop.cc\n+++ b/gcc/fwprop.cc\n@@ -869,8 +869,8 @@ forward_propagate_into (use_info *use, bool reg_prop_only = false)\n   /* Allow propagations into a loop only for reg-to-reg copies, since\n      replacing one register by another shouldn't increase the cost.\n      Propagations from inner loop to outer loop should also be ok.  */\n-  struct loop *def_loop = def_insn->bb ()->cfg_bb ()->loop_father;\n-  struct loop *use_loop = use->bb ()->cfg_bb ()->loop_father;\n+  class loop *def_loop = def_insn->bb ()->cfg_bb ()->loop_father;\n+  class loop *use_loop = use->bb ()->cfg_bb ()->loop_father;\n   if ((reg_prop_only\n        || (def_loop != use_loop\n \t   && !flow_loop_nested_p (use_loop, def_loop)))\n@@ -946,7 +946,7 @@ fwprop_insn (insn_info *insn, bool fwprop_addr_p)\n \t}\n       else\n \t{\n-\t  struct loop *loop = insn->bb ()->cfg_bb ()->loop_father;\n+\t  class loop *loop = insn->bb ()->cfg_bb ()->loop_father;\n \t  /* The outermost loop is not really a loop.  */\n \t  if (loop == NULL || loop_outer (loop) == NULL)\n \t    {\ndiff --git a/gcc/graphite-isl-ast-to-gimple.cc b/gcc/graphite-isl-ast-to-gimple.cc\nindex d8de78a3ed0..dfc156f4a85 100644\n--- a/gcc/graphite-isl-ast-to-gimple.cc\n+++ b/gcc/graphite-isl-ast-to-gimple.cc\n@@ -168,7 +168,7 @@ class translate_isl_ast_to_gimple\n   tree gcc_expression_from_isl_expr_op (tree type,\n \t\t\t\t\t__isl_take isl_ast_expr *expr,\n \t\t\t\t\tivs_params &ip);\n-  struct loop *graphite_create_new_loop (edge entry_edge,\n+  class loop *graphite_create_new_loop (edge entry_edge,\n \t\t\t\t\t __isl_keep isl_ast_node *node_for,\n \t\t\t\t\t loop_p outer, tree type,\n \t\t\t\t\t tree lb, tree ub, ivs_params &ip);\n@@ -565,7 +565,7 @@ gcc_expression_from_isl_expression (tree type, __isl_take isl_ast_expr *expr,\n    loop of STMT.  The new induction variable is inserted in the NEWIVS\n    vector and is of type TYPE.  */\n \n-struct loop *translate_isl_ast_to_gimple::\n+class loop *translate_isl_ast_to_gimple::\n graphite_create_new_loop (edge entry_edge, __isl_keep isl_ast_node *node_for,\n \t\t\t  loop_p outer, tree type, tree lb, tree ub,\n \t\t\t  ivs_params &ip)\n@@ -603,7 +603,7 @@ translate_isl_ast_for_loop (loop_p context_loop,\n \t\t\t    ivs_params &ip)\n {\n   gcc_assert (isl_ast_node_get_type (node_for) == isl_ast_node_for);\n-  struct loop *loop = graphite_create_new_loop (next_e, node_for, context_loop,\n+  class loop *loop = graphite_create_new_loop (next_e, node_for, context_loop,\n \t\t\t\t\t\ttype, lb, ub, ip);\n   edge last_e = single_exit (loop);\n   edge to_body = single_succ_edge (loop->header);\ndiff --git a/gcc/graphite-scop-detection.cc b/gcc/graphite-scop-detection.cc\nindex f97f5f5ccc3..bd6b1c35c4f 100644\n--- a/gcc/graphite-scop-detection.cc\n+++ b/gcc/graphite-scop-detection.cc\n@@ -1547,7 +1547,7 @@ build_alias_set (scop_p scop)\n   int i, j;\n   int *all_vertices;\n \n-  struct loop *nest\n+  class loop *nest\n     = find_common_loop (scop->scop_info->region.entry->dest->loop_father,\n \t\t\tscop->scop_info->region.exit->src->loop_father);\n \ndiff --git a/gcc/tree-ssa-loop-ivopts.cc b/gcc/tree-ssa-loop-ivopts.cc\nindex 6ecf5bef7b4..c1ae8ca9e19 100644\n--- a/gcc/tree-ssa-loop-ivopts.cc\n+++ b/gcc/tree-ssa-loop-ivopts.cc\n@@ -8060,7 +8060,7 @@ determine_scaling_factor (struct ivopts_data *data, basic_block *body)\n static bool\n find_doloop_use (struct ivopts_data *data)\n {\n-  struct loop *loop = data->current_loop;\n+  class loop *loop = data->current_loop;\n \n   for (unsigned i = 0; i < data->vgroups.length (); i++)\n     {\n@@ -8119,7 +8119,7 @@ analyze_and_mark_doloop_use (struct ivopts_data *data)\n       data->doloop_use_p = true;\n       if (dump_file && (dump_flags & TDF_DETAILS))\n \t{\n-\t  struct loop *loop = data->current_loop;\n+\t  class loop *loop = data->current_loop;\n \t  fprintf (dump_file,\n \t\t   \"Predict loop %d can perform\"\n \t\t   \" doloop optimization later.\\n\",\ndiff --git a/gcc/tree-ssa-loop-split.cc b/gcc/tree-ssa-loop-split.cc\nindex 722383a420a..24ae94e0557 100644\n--- a/gcc/tree-ssa-loop-split.cc\n+++ b/gcc/tree-ssa-loop-split.cc\n@@ -859,7 +859,7 @@ public:\n    stage of semi-invariant condition.  */\n \n static void\n-find_vdef_in_loop (struct loop *loop)\n+find_vdef_in_loop (class loop *loop)\n {\n   split_info *info = (split_info *) loop->aux;\n   gphi *vphi = get_virtual_phi (loop->header);\n@@ -949,7 +949,7 @@ find_vdef_in_loop (struct loop *loop)\n    means BB is control-dependent on at least one basic block in LOOP.  */\n \n static basic_block\n-get_control_equiv_head_block (struct loop *loop, basic_block bb)\n+get_control_equiv_head_block (class loop *loop, basic_block bb)\n {\n   while (!bb->aux)\n     {\n@@ -969,7 +969,7 @@ get_control_equiv_head_block (struct loop *loop, basic_block bb)\n    dependent on.  */\n \n static hash_set<basic_block> *\n-find_control_dep_blocks (struct loop *loop, basic_block bb)\n+find_control_dep_blocks (class loop *loop, basic_block bb)\n {\n   /* BB has same control dependency as loop header, then it is not control-\n      dependent on any basic block in LOOP.  */\n@@ -1071,7 +1071,7 @@ find_control_dep_blocks (struct loop *loop, basic_block bb)\n /* Forward declaration */\n \n static bool\n-stmt_semi_invariant_p_1 (struct loop *loop, gimple *stmt,\n+stmt_semi_invariant_p_1 (class loop *loop, gimple *stmt,\n \t\t\t const_basic_block skip_head,\n \t\t\t hash_map<gimple *, bool> &stmt_stat);\n \n@@ -1082,7 +1082,7 @@ stmt_semi_invariant_p_1 (struct loop *loop, gimple *stmt,\n    NULL, all basic blocks of LOOP are checked.  */\n \n static bool\n-vuse_semi_invariant_p (struct loop *loop, gimple *stmt,\n+vuse_semi_invariant_p (class loop *loop, gimple *stmt,\n \t\t       const_basic_block skip_head)\n {\n   split_info *info = (split_info *) loop->aux;\n@@ -1123,7 +1123,7 @@ vuse_semi_invariant_p (struct loop *loop, gimple *stmt,\n    redundant computation in possible following re-check.  */\n \n static inline bool\n-ssa_semi_invariant_p (struct loop *loop, tree name,\n+ssa_semi_invariant_p (class loop *loop, tree name,\n \t\t      const_basic_block skip_head,\n \t\t      hash_map<gimple *, bool> &stmt_stat)\n {\n@@ -1145,7 +1145,7 @@ ssa_semi_invariant_p (struct loop *loop, tree name,\n    are excluded from LOOP.  */\n \n static bool\n-loop_iter_phi_semi_invariant_p (struct loop *loop, gphi *loop_phi,\n+loop_iter_phi_semi_invariant_p (class loop *loop, gphi *loop_phi,\n \t\t\t\tconst_basic_block skip_head)\n {\n   const_edge latch = loop_latch_edge (loop);\n@@ -1249,7 +1249,7 @@ loop_iter_phi_semi_invariant_p (struct loop *loop, gphi *loop_phi,\n    in hash map STMT_STAT.  */\n \n static bool\n-control_dep_semi_invariant_p (struct loop *loop, basic_block bb,\n+control_dep_semi_invariant_p (class loop *loop, basic_block bb,\n \t\t\t      const_basic_block skip_head,\n \t\t\t      hash_map<gimple *, bool> &stmt_stat)\n {\n@@ -1284,7 +1284,7 @@ control_dep_semi_invariant_p (struct loop *loop, basic_block bb,\n    STMT_STAT.  */\n \n static bool\n-stmt_semi_invariant_p_1 (struct loop *loop, gimple *stmt,\n+stmt_semi_invariant_p_1 (class loop *loop, gimple *stmt,\n \t\t\t const_basic_block skip_head,\n \t\t\t hash_map<gimple *, bool> &stmt_stat)\n {\n@@ -1384,7 +1384,7 @@ stmt_semi_invariant_p_1 (struct loop *loop, gimple *stmt,\n    blocks dominated by SKIP_HEAD (if non-NULL), are excluded from LOOP.  */\n \n static bool\n-stmt_semi_invariant_p (struct loop *loop, gimple *stmt,\n+stmt_semi_invariant_p (class loop *loop, gimple *stmt,\n \t\t       const_basic_block skip_head)\n {\n   hash_map<gimple *, bool> stmt_stat;\n@@ -1426,7 +1426,7 @@ branch_removable_p (basic_block branch_bb)\n    conditional statement remains unchanged in all following iterations.  */\n \n static edge\n-get_cond_invariant_branch (struct loop *loop, gcond *cond)\n+get_cond_invariant_branch (class loop *loop, gcond *cond)\n {\n   basic_block cond_bb = gimple_bb (cond);\n   basic_block targ_bb[2];\n@@ -1481,7 +1481,7 @@ get_cond_invariant_branch (struct loop *loop, gcond *cond)\n    loop split upon certain branch (BRANCH_EDGE) of a conditional statement.  */\n \n static int\n-compute_added_num_insns (struct loop *loop, const_edge branch_edge)\n+compute_added_num_insns (class loop *loop, const_edge branch_edge)\n {\n   basic_block cond_bb = branch_edge->src;\n   unsigned branch = EDGE_SUCC (cond_bb, 1) == branch_edge;\n@@ -1561,7 +1561,7 @@ compute_added_num_insns (struct loop *loop, const_edge branch_edge)\n    this branch in LOOP.  */\n \n static edge\n-get_cond_branch_to_split_loop (struct loop *loop, gcond *cond)\n+get_cond_branch_to_split_loop (class loop *loop, gcond *cond)\n {\n   edge invar_branch = get_cond_invariant_branch (loop, cond);\n   if (!invar_branch)\n@@ -1628,7 +1628,7 @@ get_cond_branch_to_split_loop (struct loop *loop, gcond *cond)\n    constant bool condition, based on which branch is semi-invariant.  */\n \n static bool\n-do_split_loop_on_cond (struct loop *loop1, edge invar_branch)\n+do_split_loop_on_cond (class loop *loop1, edge invar_branch)\n {\n   basic_block cond_bb = invar_branch->src;\n   bool true_invar = !!(invar_branch->flags & EDGE_TRUE_VALUE);\n@@ -1643,7 +1643,7 @@ do_split_loop_on_cond (struct loop *loop1, edge invar_branch)\n \n   initialize_original_copy_tables ();\n \n-  struct loop *loop2 = loop_version (loop1, boolean_true_node, NULL,\n+  class loop *loop2 = loop_version (loop1, boolean_true_node, NULL,\n \t\t\t\t     invar_branch->probability.invert (),\n \t\t\t\t     invar_branch->probability,\n \t\t\t\t     profile_probability::always (),\n@@ -1713,7 +1713,7 @@ do_split_loop_on_cond (struct loop *loop1, edge invar_branch)\n    upon which we can do loop split.  */\n \n static bool\n-split_loop_on_cond (struct loop *loop)\n+split_loop_on_cond (class loop *loop)\n {\n   split_info *info = new split_info ();\n   basic_block *bbs = info->bbs = get_loop_body (loop);\ndiff --git a/gcc/tree-ssa-reassoc.cc b/gcc/tree-ssa-reassoc.cc\nindex 7abbf195520..0ffb17ae97f 100644\n--- a/gcc/tree-ssa-reassoc.cc\n+++ b/gcc/tree-ssa-reassoc.cc\n@@ -1925,7 +1925,7 @@ cleanup_vinfo_map (hash_map<tree, v_info_ptr> &info_map)\n */\n static bool\n undistribute_bitref_for_vector (enum tree_code opcode,\n-\t\t\t\tvec<operand_entry *> *ops, struct loop *loop)\n+\t\t\t\tvec<operand_entry *> *ops, class loop *loop)\n {\n   if (ops->length () <= 1)\n     return false;\ndiff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc\nindex 5d4af8c8ee5..215c291c460 100644\n--- a/gcc/tree-vect-loop.cc\n+++ b/gcc/tree-vect-loop.cc\n@@ -2757,7 +2757,7 @@ static bool\n vect_better_loop_vinfo_p (loop_vec_info new_loop_vinfo,\n \t\t\t  loop_vec_info old_loop_vinfo)\n {\n-  struct loop *loop = LOOP_VINFO_LOOP (new_loop_vinfo);\n+  class loop *loop = LOOP_VINFO_LOOP (new_loop_vinfo);\n   gcc_assert (LOOP_VINFO_LOOP (old_loop_vinfo) == loop);\n \n   poly_int64 new_vf = LOOP_VINFO_VECT_FACTOR (new_loop_vinfo);\ndiff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc\nindex 8fa6a740c96..c440700f0b4 100644\n--- a/gcc/tree-vect-slp.cc\n+++ b/gcc/tree-vect-slp.cc\n@@ -6436,7 +6436,7 @@ public:\n \n private:\n   /* Graph building.  */\n-  struct loop *containing_loop (slp_tree);\n+  class loop *containing_loop (slp_tree);\n   bool is_cfg_latch_edge (graph_edge *);\n   void build_vertices (hash_set<slp_tree> &, slp_tree);\n   void build_vertices ();\n@@ -6623,7 +6623,7 @@ vect_slp_permute (vec<unsigned> perm,\n \n /* Return the cfg loop that contains NODE.  */\n \n-struct loop *\n+class loop *\n vect_optimize_slp_pass::containing_loop (slp_tree node)\n {\n   stmt_vec_info rep = SLP_TREE_REPRESENTATIVE (node);\n@@ -6748,7 +6748,7 @@ vect_optimize_slp_pass::create_partitions ()\n      a natural nesting, but we should get better results when it does.  */\n   m_partitions.reserve (m_vertices.length ());\n   unsigned int next_partition_i = 0;\n-  hash_map<struct loop *, int> loop_partitions;\n+  hash_map<class loop *, int> loop_partitions;\n   unsigned int rpo_begin = 0;\n   unsigned int num_partitioned_nodes = 0;\n   for (unsigned int rpo_end : scc_pos)\n@@ -6773,7 +6773,7 @@ vect_optimize_slp_pass::create_partitions ()\n \t\texisted = next_partition_i > partition_i;\n \t      else\n \t\t{\n-\t\t  struct loop *loop = containing_loop (vertex.node);\n+\t\t  class loop *loop = containing_loop (vertex.node);\n \t\t  auto &entry = loop_partitions.get_or_insert (loop, &existed);\n \t\t  if (!existed)\n \t\t    entry = next_partition_i;\ndiff --git a/gcc/tree-vectorizer.cc b/gcc/tree-vectorizer.cc\nindex b73243252c0..fda8ffad5d3 100644\n--- a/gcc/tree-vectorizer.cc\n+++ b/gcc/tree-vectorizer.cc\n@@ -2001,7 +2001,7 @@ vector_costs::compare_inside_loop_cost (const vector_costs *other) const\n   loop_vec_info this_loop_vinfo = as_a<loop_vec_info> (this->m_vinfo);\n   loop_vec_info other_loop_vinfo = as_a<loop_vec_info> (other->m_vinfo);\n \n-  struct loop *loop = LOOP_VINFO_LOOP (this_loop_vinfo);\n+  class loop *loop = LOOP_VINFO_LOOP (this_loop_vinfo);\n   gcc_assert (LOOP_VINFO_LOOP (other_loop_vinfo) == loop);\n \n   poly_int64 this_vf = LOOP_VINFO_VECT_FACTOR (this_loop_vinfo);\n",
    "prefixes": [
        "05/30"
    ]
}