{"id":2224606,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2224606/?format=json","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=json","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=json","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=json","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"]}