get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2224609,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2224609/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260417172621.1015209-2-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-2-torbjorn.svensson@foss.st.com>",
    "list_archive_url": null,
    "date": "2026-04-17T17:26:18",
    "name": "[02/30] Change `struct cgraph_edge` to `class cgraph_edge` to align tags",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "bb60a41b6719bdd74675736ac36fd76e9006ac56",
    "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-2-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/2224609/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2224609/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=iBslsxy3;\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=iBslsxy3",
            "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=40.107.159.5"
        ],
        "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 4fy2261Dhgz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 18 Apr 2026 03:29:50 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 3EBBF4D108E1\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 17:29:48 +0000 (GMT)",
            "from OSPPR02CU001.outbound.protection.outlook.com\n (mail-norwayeastazon11013005.outbound.protection.outlook.com [40.107.159.5])\n by sourceware.org (Postfix) with ESMTPS id CD1224C318B0\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 17:26:42 +0000 (GMT)",
            "from DU7PR01CA0008.eurprd01.prod.exchangelabs.com\n (2603:10a6:10:50f::29) by GVXPR10MB8926.EURPRD10.PROD.OUTLOOK.COM\n (2603:10a6:150:1eb::20) 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:36 +0000",
            "from DB3PEPF0000885E.eurprd02.prod.outlook.com\n (2603:10a6:10:50f:cafe::8f) by DU7PR01CA0008.outlook.office365.com\n (2603:10a6:10:50f::29) 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:36 +0000",
            "from smtpO365.st.com (164.130.1.59) by\n DB3PEPF0000885E.mail.protection.outlook.com (10.167.242.9) 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:36 +0000",
            "from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com\n (10.250.44.71) 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:47 +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:35 +0200"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 3EBBF4D108E1",
            "OpenDKIM Filter v2.11.0 sourceware.org CD1224C318B0"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org CD1224C318B0",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org CD1224C318B0",
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1776446803; cv=pass;\n b=mTzUyoNDzfXzlknTiyf1sRyFrUwgpJDZXnPKtQUYg2gCxzS3R0kxnIQLCls+0VfxuUElJCbI1n1ZB0HDxF34FZaTaxH9GTW/9p2/HYUeNi2Y+xt0ws7WdZp1lniHluHZNqVVWN5IQdH0nfqIrkpSa9XjZXZU6T75EeAxUaRRhaA=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=WVvYly7mXK7gPg8nZfczIS0vvbwwenFopavSaJo7gpuS7Q/oLY0R4PGfymqQzbAKWsgmcA2Z2OC/zgG8ARJ8y5nF0nEEkKoDHe5fkjuGmFpvwLgJwFgJaXPNzR2lkh4gXJxZZSF0DDDC52e7VVdCDG5yAy5Z1R1diubuQbeHS0Q23BUESw93o4CWrgzFLUFt3xVCXF5G04oFWYDqv++4Hoi4O7+m9XAAPafUBiGwjGHJt//IW4JQjIYYBZC8ME6EkDjds37xeOF4q+dDscc1aMobsSkgiyMZBGqtlCf5kbj7sR5eMq0ZQblod2uecGnPyLf4j4RANvJ6lfnowBlGAQ=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776446803; c=relaxed/simple;\n bh=jXldee86OT8lXcIKv154M4fBYX5CG9GqiJiFAQwsvns=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=iWZ64BL8Qib1mDWa6DTXtOoGAwxxt60ClAPB8svKG1NJRMxLYOf4AZAxukB2ZUSX0AhO8nbdwAkz/HuaDyZy8Y90wxN+gM+6x9O8XkmVznzrU9Gx1OdVkvpp3bA9KhxbSAJo5onUAv2r9FIKT5kL/49mXpFzpLOyvfZfvkqL2tk=",
            "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=KNPys/t7fkJ74pFaCOtnaF0UxW893Lr5XmslQfrNA34=;\n b=H/xXBCxXpzdT0VMWz/MpD7ahEisboWv461+zHmGZiVJnvtCsRetHV1YbRw4PYGruf+MTJ7yw11RD/V5y7bIxNE1XlSR/5k3wom+uMr6sTsjbnRswVymzYnBCrEp1oIXgxdzqfcIdByjQmTX5iebXoh8ENGIBI+CSZ08G8omS3mmD8jF/+Pr14Wr5wFV3fP6LHjHM7v+n/2zVN8UHWYYINiqBrW9B174SMX5RGTQ24vzKxPKOG+hwX4kKGgJD/yME78CqhzzKBcRYE9+EekeQL0Wif1FM2Xkv6nIretFyl+yTyi/jkGljhAgf0bYAJ1lQw9ndrxtWcKdeYP0ZHP5RqA=="
        ],
        "ARC-Authentication-Results": [
            "i=2; server2.sourceware.org",
            "i=1; mx.microsoft.com 1; spf=fail (sender ip is\n 164.130.1.59) 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=KNPys/t7fkJ74pFaCOtnaF0UxW893Lr5XmslQfrNA34=;\n b=iBslsxy3DJsr/O8Y8hHdF8Qzh66+6v7MRX7516KRCX/bXVK203cSwvZzKBvBpub/KEwqVHUJ6qGnQUet/7lxQlktybfE2I7sWMnTSKvTGWjoq4CLQfEsIiDrV5t8g/Cu+ekLCLJ4ynCuETHJqWz6EKgrnyg39efwiSsIpZQZYOkzsyivDEmfVHygvZ0OW+FeV6tdNWVXVlSuJoWFBgqkE4bFYnimoGL7boK+hlfBOvXbPMEb55KFttJMOu0LryA6aGwPHaBJ2igRw4s67yEZJPgXMl7Cg/1WJhu3j9WSd72Kv5iRdiXTMiTe+RVkdNBNYf2vyNZtA+Rr/Slo/2olxw==",
        "X-MS-Exchange-Authentication-Results": "spf=fail (sender IP is 164.130.1.59)\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.59 as permitted sender) receiver=protection.outlook.com;\n client-ip=164.130.1.59; 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 02/30] Change `struct cgraph_edge` to `class cgraph_edge` to\n align tags",
        "Date": "Fri, 17 Apr 2026 19:26:18 +0200",
        "Message-ID": "<20260417172621.1015209-2-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": "DB3PEPF0000885E:EE_|GVXPR10MB8926:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "48d57cf6-545c-4f56-a8c7-08de9ca67a7e",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|1800799024|42112799006|82310400026|376014|36860700016|18096099003|18002099003|22082099003|56012099003;",
        "X-Microsoft-Antispam-Message-Info": "\n YeBn+gyzgoy/d+eynCQSwECCJVhGj+GU52ywIhY69kkaI49s69mMj+9IE37KVk/cp57FSLjivxuUWTA9TNOm/Iw4Rbmv3oAcKOQF1uFgRw7HrLnm4t0zXjUj6btllguxkmTAEOFx8Y2WHQ69kuS43DqkbPp8pwu4umB7PaiG36Ub5vvaXVUKvefoITE2Qv02Mcwgt11JsT5wxfannV6O2pHm+YH+ucjBv453uhY1pbh9RkgkI9YEph3zmhtIQzHSniiVacc4kZuODu9oS3wZWC/8Y7BjYN0Kcs1kQOa0bsUEKjaB0ZzbWG4dpAW+HVJdA8xW8h6Mziud/mdlIcPM3ZfSzQ41TKar8lVIHeKs/HVZ2qxw5j6LEz8mBMqnuby14Dz6xTL1w9/u1yw4P8B5U+vu2rNFseTCpmfk73kRB09ZW8XfdmdE1rZ+8hlPs3P43g7nvoAPRC9plk0DKDJhX8AVI2EbCs1bz4XIxKlMpB7n0QSL9J2hOL/4+fC8NGWI9P3Q5Bi0QBnjLM+OJzLfvmU9WIx8TH2jqXfe7JvIX4qrGxYaGwXlq7qkuB6+U0YI8zaa7ZiCyUNBrNBWcM2GCrxY8hf4Qf0gLWyzTAjluYKO294w7rnNzjCutV6T7F9l/iEEEIXzPm4PSyV9XYSgb7YLYJYgM2f8+9qfQ0zl8bKVY3kJ6Cr+R64qZ1ZxJ1PJRwm8QJVx7mbdZuc512kw4ObtvivtD39vgHfMsqzoYbLNV59vMvXQdFKc12BcVDBYHWi7rymj1esvV0Xdgnkr5Q==",
        "X-Forefront-Antispam-Report": "CIP:164.130.1.59; CTRY:IT; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:smtpO365.st.com; PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(1800799024)(42112799006)(82310400026)(376014)(36860700016)(18096099003)(18002099003)(22082099003)(56012099003);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n ADkbxlmqUeR2U0oOrE14jlyXnSuD/OK4LDgv8M3fnS0BN4fKPXmB9HhUadUzenNLqHeYUmwF30QMjG9bhNqvaZgPa8ZIETyA82rWhqDXQuhlXhvP8Bh4IWfJ3sRaTY0fnVFBGFY6JIkyc1FS7rcUC2kAhoNeTyG9BRgnpu3QdcSP5ZdO5RspZRNZIgjvrU8S2cw5Q59YpjrrACQpUUVTPKEHQNxPY8U8ZtHpEFeWR9aPCzCknnNh1hLRrSbHDlCoOJRxTZAduSu1lRcLTezQ7/dEkhAzkZnxIB11wdUp4oph1ZmN/ynJGgq++UOcXV+uW+apHTLy+DxB2bzGCt2o1WlMUB8I1OTyfQcLnjgLBJYKSLTpkK+yGFdnUXscKItJSvgAF958pDkfPJ8UdRo3EycRlEr5oKVBBbh7iwApMqbr3Oj1oyQvs0mp46A2NroD",
        "X-OriginatorOrg": "foss.st.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "17 Apr 2026 17:26:36.5555 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 48d57cf6-545c-4f56-a8c7-08de9ca67a7e",
        "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.59];\n Helo=[smtpO365.st.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n DB3PEPF0000885E.eurprd02.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "GVXPR10MB8926",
        "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 'cgraph_edge' 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* auto-profile.cc: Change `struct cgraph_edge` to `class\n\tcgraph_edge`.\n\t* auto-profile.h: Likewise.\n\t* cgraph.cc: Likewise.\n\t* cgraph.h: Likewise.\n\t* coretypes.h: Likewise.\n\t* except.cc\n\t* gimple-iterator.cc\n\t* ipa-comdats.cc:\n\t* ipa-cp.cc: Likewise.\n\t* ipa-devirt.cc: Likewise.\n\t* ipa-fnsummary.cc: Likewise.\n\t* ipa-fnsummary.h: Likewise.\n\t* ipa-icf.cc: Likewise.\n\t* ipa-inline-analysis.cc: Likewise.\n\t* ipa-inline-transform.cc: Likewise.\n\t* ipa-inline.cc: Likewise.\n\t* ipa-inline.h: Likewise.\n\t* ipa-locality-cloning.cc: Likewise.\n\t* ipa-modref.cc: Likewise.\n\t* ipa-profile.cc: Likewise.\n\t* ipa-prop.cc: Likewise.\n\t* ipa-prop.h: Likewise.\n\t* ipa-pure-const.cc: Likewise.\n\t* ipa-reference.cc: Likewise.\n\t* ipa-sra.cc: Likewise.\n\t* ipa-utils.cc: Likewise.\n\t* ipa-utils.h: Likewise.\n\t* ipa-visibility.cc: Likewise.\n\t* ipa.cc: Likewise.\n\t* lto-cgraph.cc: Likewise.\n\t* lto-streamer-in.cc: Likewise.\n\t* passes.cc: Likewise.\n\t* predict.cc: Likewise.\n\t* trans-mem.cc: Likewise.\n\t* tree-cfgcleanup.cc: Likewise.\n\t* tree-inline.cc: Likewise.\n\t* tree-inline.h: Likewise.\n\ngcc/lto/ChangeLog:\n\n\t* lto-partition.cc: Change `struct cgraph_edge` to `class\n\tcgraph_edge`.\n\t* lto-symtab.cc: Likewise.\n\nSigned-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>\n---\n gcc/auto-profile.cc         |  6 +--\n gcc/auto-profile.h          |  2 +-\n gcc/cgraph.cc               |  2 +-\n gcc/cgraph.h                |  8 ++--\n gcc/coretypes.h             |  2 +-\n gcc/except.cc               |  2 +-\n gcc/gimple-iterator.cc      |  2 +-\n gcc/ipa-comdats.cc          |  4 +-\n gcc/ipa-cp.cc               | 54 ++++++++++++------------\n gcc/ipa-devirt.cc           |  2 +-\n gcc/ipa-fnsummary.cc        | 50 +++++++++++-----------\n gcc/ipa-fnsummary.h         |  8 ++--\n gcc/ipa-icf.cc              |  4 +-\n gcc/ipa-inline-analysis.cc  | 22 +++++-----\n gcc/ipa-inline-transform.cc | 14 +++----\n gcc/ipa-inline.cc           | 82 ++++++++++++++++++-------------------\n gcc/ipa-inline.h            | 24 +++++------\n gcc/ipa-locality-cloning.cc | 12 +++---\n gcc/ipa-modref.cc           |  2 +-\n gcc/ipa-profile.cc          | 10 ++---\n gcc/ipa-prop.cc             | 66 ++++++++++++++---------------\n gcc/ipa-prop.h              | 12 +++---\n gcc/ipa-pure-const.cc       | 14 +++----\n gcc/ipa-reference.cc        |  4 +-\n gcc/ipa-sra.cc              |  2 +-\n gcc/ipa-utils.cc            | 18 ++++----\n gcc/ipa-utils.h             | 10 ++---\n gcc/ipa-visibility.cc       |  2 +-\n gcc/ipa.cc                  |  8 ++--\n gcc/lto-cgraph.cc           | 22 +++++-----\n gcc/lto-streamer-in.cc      |  2 +-\n gcc/lto/lto-partition.cc    |  6 +--\n gcc/lto/lto-symtab.cc       |  2 +-\n gcc/passes.cc               |  2 +-\n gcc/predict.cc              |  6 +--\n gcc/trans-mem.cc            |  8 ++--\n gcc/tree-cfgcleanup.cc      |  2 +-\n gcc/tree-inline.cc          | 14 +++----\n gcc/tree-inline.h           |  2 +-\n 39 files changed, 257 insertions(+), 257 deletions(-)",
    "diff": "diff --git a/gcc/auto-profile.cc b/gcc/auto-profile.cc\nindex 34f863a7731..43eaf5f5deb 100644\n--- a/gcc/auto-profile.cc\n+++ b/gcc/auto-profile.cc\n@@ -681,7 +681,7 @@ public:\n \t\t       cgraph_node *node = NULL) const;\n \n   /* Find total count of the callee of EDGE.  */\n-  gcov_type get_callsite_total_count (struct cgraph_edge *edge) const;\n+  gcov_type get_callsite_total_count (class cgraph_edge *edge) const;\n \n   /* Update value profile INFO for STMT within NODE from the inlined indirect\n      callsite.  Return true if INFO is updated.  */\n@@ -2966,7 +2966,7 @@ autofdo_source_profile::remove_icall_target (cgraph_edge *e)\n \n gcov_type\n autofdo_source_profile::get_callsite_total_count (\n-    struct cgraph_edge *edge) const\n+    class cgraph_edge *edge) const\n {\n   inline_stack stack;\n   stack.safe_push ({edge->callee->decl, 0, UNKNOWN_LOCATION});\n@@ -4715,7 +4715,7 @@ end_auto_profile (void)\n /* Returns TRUE if EDGE is hot enough to be inlined early.  */\n \n bool\n-afdo_callsite_hot_enough_for_early_inline (struct cgraph_edge *edge)\n+afdo_callsite_hot_enough_for_early_inline (class cgraph_edge *edge)\n {\n   gcov_type count\n       = autofdo::afdo_source_profile->get_callsite_total_count (edge);\ndiff --git a/gcc/auto-profile.h b/gcc/auto-profile.h\nindex 2685a1453c5..9d5f9eff8d2 100644\n--- a/gcc/auto-profile.h\n+++ b/gcc/auto-profile.h\n@@ -28,7 +28,7 @@ extern void read_autofdo_file (void);\n extern void end_auto_profile (void);\n \n /* Returns TRUE if EDGE is hot enough to be inlined early.  */\n-extern bool afdo_callsite_hot_enough_for_early_inline (struct cgraph_edge *);\n+extern bool afdo_callsite_hot_enough_for_early_inline (class cgraph_edge *);\n \n /* Try to turn indirect calls into speculative calls for early inlining.  */\n extern bool afdo_vpt_for_early_inline (cgraph_node *node);\ndiff --git a/gcc/cgraph.cc b/gcc/cgraph.cc\nindex 90635fb5a89..06ef6f7d252 100644\n--- a/gcc/cgraph.cc\n+++ b/gcc/cgraph.cc\n@@ -3807,7 +3807,7 @@ cgraph_edge::verify_corresponds_to_fndecl (tree decl)\n static bool\n verify_speculative_call (struct cgraph_node *node, gimple *stmt,\n \t\t\t unsigned int lto_stmt_uid,\n-\t\t\t struct cgraph_edge *indirect)\n+\t\t\t class cgraph_edge *indirect)\n {\n   if (indirect == NULL)\n     {\ndiff --git a/gcc/cgraph.h b/gcc/cgraph.h\nindex 39209b53957..44b8a109c07 100644\n--- a/gcc/cgraph.h\n+++ b/gcc/cgraph.h\n@@ -905,7 +905,7 @@ enum cgraph_inline_failed_type_t\n   CIF_FINAL_ERROR\n };\n \n-struct cgraph_edge;\n+class cgraph_edge;\n \n struct cgraph_edge_hasher : ggc_ptr_hash<cgraph_edge>\n {\n@@ -2550,7 +2550,7 @@ class GTY((tag (\"SYMTAB\"))) symbol_table\n public:\n   friend struct symtab_node;\n   friend struct cgraph_node;\n-  friend struct cgraph_edge;\n+  friend class cgraph_edge;\n \n   symbol_table ():\n   cgraph_count (0), cgraph_max_uid (1), cgraph_max_summary_id (0),\n@@ -2963,8 +2963,8 @@ bool ipa_discover_variable_flags (void);\n tree ctor_for_folding (tree);\n \n /* In ipa-inline-analysis.cc  */\n-void initialize_inline_failed (struct cgraph_edge *);\n-bool speculation_useful_p (struct cgraph_edge *e, bool anticipate_inlining);\n+void initialize_inline_failed (class cgraph_edge *);\n+bool speculation_useful_p (class cgraph_edge *e, bool anticipate_inlining);\n \n /* Return true when the symbol is real symbol, i.e. it is not inline clone\n    or abstract function kept for debug info purposes only.  */\ndiff --git a/gcc/coretypes.h b/gcc/coretypes.h\nindex 465bead6863..ae506319dff 100644\n--- a/gcc/coretypes.h\n+++ b/gcc/coretypes.h\n@@ -155,7 +155,7 @@ struct toplevel_node;\n   struct symtab_node;\n     struct cgraph_node;\n     struct varpool_node;\n-struct cgraph_edge;\n+class cgraph_edge;\n \n union section;\n typedef union section section;\ndiff --git a/gcc/except.cc b/gcc/except.cc\nindex 98876833ee1..2adcf18f579 100644\n--- a/gcc/except.cc\n+++ b/gcc/except.cc\n@@ -2025,7 +2025,7 @@ set_nothrow_function_flags (void)\n           >= AVAIL_AVAILABLE))\n     {\n       struct cgraph_node *node = cgraph_node::get (current_function_decl);\n-      struct cgraph_edge *e;\n+      class cgraph_edge *e;\n       for (e = node->callers; e; e = e->next_caller)\n         e->can_throw_external = false;\n       node->set_nothrow_flag (true);\ndiff --git a/gcc/gimple-iterator.cc b/gcc/gimple-iterator.cc\nindex 2b6133ec8c0..abbde3cf5eb 100644\n--- a/gcc/gimple-iterator.cc\n+++ b/gcc/gimple-iterator.cc\n@@ -89,7 +89,7 @@ update_call_edge_frequencies (gimple_seq_node first, basic_block bb)\n   for (n = first; n ; n = n->next)\n     if (is_gimple_call (n))\n       {\n-\tstruct cgraph_edge *e;\n+\tclass cgraph_edge *e;\n \n \t/* These function calls are expensive enough that we want\n \t   to avoid calling them if we never see any calls.  */\ndiff --git a/gcc/ipa-comdats.cc b/gcc/ipa-comdats.cc\nindex b89eb596ef3..ae47d4ec3dc 100644\n--- a/gcc/ipa-comdats.cc\n+++ b/gcc/ipa-comdats.cc\n@@ -120,7 +120,7 @@ propagate_comdat_group (struct symtab_node *symbol,\n   cgraph_node *cnode = dyn_cast <cgraph_node *> (symbol);\n \n   if (cnode)\n-    for (struct cgraph_edge * edge = cnode->callers;\n+    for (class cgraph_edge * edge = cnode->callers;\n \t edge && newgroup != error_mark_node; edge = edge->next_caller)\n       {\n \tstruct symtab_node *symbol2 = edge->caller;\n@@ -180,7 +180,7 @@ enqueue_references (symtab_node **first,\n \n   if (cgraph_node *cnode = dyn_cast <cgraph_node *> (symbol))\n     {\n-      struct cgraph_edge *edge;\n+      class cgraph_edge *edge;\n \n       for (edge = cnode->callees; edge; edge = edge->next_callee)\n \tif (!edge->inline_failed)\ndiff --git a/gcc/ipa-cp.cc b/gcc/ipa-cp.cc\nindex e96b1dc8391..4987592ace5 100644\n--- a/gcc/ipa-cp.cc\n+++ b/gcc/ipa-cp.cc\n@@ -580,7 +580,7 @@ static bool\n gather_caller_stats (struct cgraph_node *node, void *data)\n {\n   struct caller_statistics *stats = (struct caller_statistics *) data;\n-  struct cgraph_edge *cs;\n+  class cgraph_edge *cs;\n \n   for (cs = node->callers; cs; cs = cs->next_caller)\n     if (!cs->caller->thunk)\n@@ -1425,7 +1425,7 @@ static void\n initialize_node_lattices (struct cgraph_node *node)\n {\n   ipa_node_params *info = ipa_node_params_sum->get (node);\n-  struct cgraph_edge *ie;\n+  class cgraph_edge *ie;\n   bool disable = false, variable = false;\n   int i;\n \n@@ -2375,7 +2375,7 @@ propagate_vals_across_pass_through (cgraph_edge *cs, ipa_jump_func *jfunc,\n    is the index of the source parameter.  */\n \n static bool\n-propagate_vals_across_ancestor (struct cgraph_edge *cs,\n+propagate_vals_across_ancestor (class cgraph_edge *cs,\n \t\t\t\tstruct ipa_jump_func *jfunc,\n \t\t\t\tipcp_lattice<tree> *src_lat,\n \t\t\t\tipcp_lattice<tree> *dest_lat, int src_idx,\n@@ -2405,7 +2405,7 @@ propagate_vals_across_ancestor (struct cgraph_edge *cs,\n    parameter to which the result is passed.  */\n \n static bool\n-propagate_scalar_across_jump_function (struct cgraph_edge *cs,\n+propagate_scalar_across_jump_function (class cgraph_edge *cs,\n \t\t\t\t       struct ipa_jump_func *jfunc,\n \t\t\t\t       ipcp_lattice<tree> *dest_lat,\n \t\t\t\t       tree param_type)\n@@ -2814,7 +2814,7 @@ set_chain_of_aglats_contains_variable (struct ipcp_agg_lattice *aglat)\n    in any way.  */\n \n static bool\n-merge_aggregate_lattices (struct cgraph_edge *cs,\n+merge_aggregate_lattices (class cgraph_edge *cs,\n \t\t\t  class ipcp_param_lattices *dest_plats,\n \t\t\t  class ipcp_param_lattices *src_plats,\n \t\t\t  int src_idx, HOST_WIDE_INT offset_delta)\n@@ -2886,7 +2886,7 @@ agg_pass_through_permissible_p (class ipcp_param_lattices *src_plats,\n    way.  */\n \n static bool\n-propagate_aggregate_lattice (struct cgraph_edge *cs,\n+propagate_aggregate_lattice (class cgraph_edge *cs,\n \t\t\t     struct ipa_agg_jf_item *item,\n \t\t\t     struct ipcp_agg_lattice *aglat)\n {\n@@ -2964,7 +2964,7 @@ propagate_aggregate_lattice (struct cgraph_edge *cs,\n    edge CS and put the values into DEST_LAT.  */\n \n static bool\n-propagate_aggs_across_jump_function (struct cgraph_edge *cs,\n+propagate_aggs_across_jump_function (class cgraph_edge *cs,\n \t\t\t\t     struct ipa_jump_func *jfunc,\n \t\t\t\t     class ipcp_param_lattices *dest_plats)\n {\n@@ -3068,7 +3068,7 @@ call_passes_through_thunk (cgraph_edge *cs)\n    caller.  */\n \n static bool\n-propagate_constants_across_call (struct cgraph_edge *cs)\n+propagate_constants_across_call (class cgraph_edge *cs)\n {\n   class ipa_node_params *callee_info;\n   enum availability availability;\n@@ -3152,7 +3152,7 @@ propagate_constants_across_call (struct cgraph_edge *cs)\n    KNOWN_AGGS is ignored.  */\n \n static tree\n-ipa_get_indirect_edge_target_1 (struct cgraph_edge *ie,\n+ipa_get_indirect_edge_target_1 (class cgraph_edge *ie,\n \t\t\t\tconst vec<tree> &known_csts,\n \t\t\t\tconst vec<ipa_polymorphic_call_context> &known_contexts,\n \t\t\t\tconst ipa_argagg_value_list &avs,\n@@ -3320,7 +3320,7 @@ ipa_get_indirect_edge_target_1 (struct cgraph_edge *ie,\n    whether the discovered target is only speculative guess.  */\n \n tree\n-ipa_get_indirect_edge_target (struct cgraph_edge *ie,\n+ipa_get_indirect_edge_target (class cgraph_edge *ie,\n \t\t\t      ipa_call_arg_values *avals,\n \t\t\t      bool *speculative)\n {\n@@ -3340,7 +3340,7 @@ static sreal\n devirtualization_time_bonus (struct cgraph_node *node,\n \t\t\t     ipa_auto_call_arg_values *avals)\n {\n-  struct cgraph_edge *ie;\n+  class cgraph_edge *ie;\n   sreal res = 0;\n \n   for (ie = node->indirect_calls; ie; ie = ie->next_callee)\n@@ -3951,7 +3951,7 @@ propagate_constants_topo (class ipa_topo_info *topo)\n       v = pop_node_from_stack (topo);\n       while (v)\n \t{\n-\t  struct cgraph_edge *cs;\n+\t  class cgraph_edge *cs;\n \t  class ipa_node_params *info = NULL;\n \t  bool self_scc = true;\n \n@@ -3987,7 +3987,7 @@ propagate_constants_topo (class ipa_topo_info *topo)\n \t    && opt_for_fn (v->decl, flag_ipa_cp)\n \t    && opt_for_fn (v->decl, optimize))\n \t  {\n-\t    struct cgraph_edge *cs;\n+\t    class cgraph_edge *cs;\n \n \t    estimate_local_effects (v);\n \t    add_all_node_vals_to_toposort (v, topo);\n@@ -4134,7 +4134,7 @@ ipcp_discover_new_direct_edges (struct cgraph_node *node,\n \t\t\t\tknown_contexts,\n \t\t\t\tvec<ipa_argagg_value, va_gc> *aggvals)\n {\n-  struct cgraph_edge *ie, *next_ie;\n+  class cgraph_edge *ie, *next_ie;\n   bool found = false;\n \n   for (ie = node->indirect_calls; ie; ie = next_ie)\n@@ -4155,7 +4155,7 @@ ipcp_discover_new_direct_edges (struct cgraph_node *node,\n \t  bool agg_contents = sii && sii->agg_contents;\n \t  bool polymorphic = !!pii;\n \t  int param_index = ie->indirect_info->param_index;\n-\t  struct cgraph_edge *cs = ipa_make_edge_direct_to_target (ie, target,\n+\t  class cgraph_edge *cs = ipa_make_edge_direct_to_target (ie, target,\n \t\t\t\t\t\t\t\t   speculative);\n \t  found = true;\n \n@@ -4353,8 +4353,8 @@ cgraph_edge_brings_value_p (cgraph_edge *cs,\n \n /* Get the next clone in the linked list of clones of an edge.  */\n \n-static inline struct cgraph_edge *\n-get_next_cgraph_edge_clone (struct cgraph_edge *cs)\n+static inline class cgraph_edge *\n+get_next_cgraph_edge_clone (class cgraph_edge *cs)\n {\n   edge_clone_summary *s = edge_clone_summaries->get (cs);\n   return s != NULL ? s->next_clone : NULL;\n@@ -4385,7 +4385,7 @@ get_info_about_necessary_edges (ipcp_value<valtype> *val, cgraph_node *dest,\n \n   for (src = val->sources; src; src = src->next)\n     {\n-      struct cgraph_edge *cs = src->cs;\n+      class cgraph_edge *cs = src->cs;\n       while (cs)\n \t{\n \t  if (cgraph_edge_brings_value_p (cs, src, dest, val))\n@@ -4463,7 +4463,7 @@ gather_edges_for_value (ipcp_value<valtype> *val, cgraph_node *dest,\n \n   for (src = val->sources; src; src = src->next)\n     {\n-      struct cgraph_edge *cs = src->cs;\n+      class cgraph_edge *cs = src->cs;\n       while (cs)\n \t{\n \t  if (cgraph_edge_brings_value_p (cs, src, dest, val))\n@@ -5334,7 +5334,7 @@ find_scalar_values_for_callers_subset (vec<tree> &known_csts,\n \t  continue;\n \t}\n \n-      struct cgraph_edge *cs;\n+      class cgraph_edge *cs;\n       tree newval = NULL_TREE;\n       int j;\n       bool first = true;\n@@ -5479,7 +5479,7 @@ find_contexts_for_caller_subset (vec<ipa_polymorphic_call_context>\n    parameter, which allows for simpler early returns.  */\n \n static void\n-push_agg_values_for_index_from_edge (struct cgraph_edge *cs, int index,\n+push_agg_values_for_index_from_edge (class cgraph_edge *cs, int index,\n \t\t\t\t     vec<ipa_argagg_value> *res,\n \t\t\t\t     const ipa_argagg_value_list *interim)\n {\n@@ -5613,7 +5613,7 @@ push_agg_values_for_index_from_edge (struct cgraph_edge *cs, int index,\n    with INTERIM.  */\n \n static void\n-push_agg_values_from_edge (struct cgraph_edge *cs,\n+push_agg_values_from_edge (class cgraph_edge *cs,\n \t\t\t   ipa_node_params *dest_info,\n \t\t\t   vec<ipa_argagg_value> *res,\n \t\t\t   const ipa_argagg_value_list *interim,\n@@ -5734,7 +5734,7 @@ find_aggregate_values_for_callers_subset_gc (struct cgraph_node *node,\n    specialized for.  */\n \n static bool\n-cgraph_edge_brings_all_scalars_for_node (struct cgraph_edge *cs,\n+cgraph_edge_brings_all_scalars_for_node (class cgraph_edge *cs,\n \t\t\t\t\t struct cgraph_node *node)\n {\n   ipa_node_params *dest_info = ipa_node_params_sum->get (node);\n@@ -5769,7 +5769,7 @@ cgraph_edge_brings_all_scalars_for_node (struct cgraph_edge *cs,\n    specialized for.  */\n \n static bool\n-cgraph_edge_brings_all_agg_vals_for_node (struct cgraph_edge *cs,\n+cgraph_edge_brings_all_agg_vals_for_node (class cgraph_edge *cs,\n \t\t\t\t\t  struct cgraph_node *node)\n {\n   ipcp_transformation *ts = ipcp_get_transformation_summary (node);\n@@ -5801,7 +5801,7 @@ perhaps_add_new_callers (cgraph_node *node, ipcp_value<valtype> *val)\n \n   for (src = val->sources; src; src = src->next)\n     {\n-      struct cgraph_edge *cs = src->cs;\n+      class cgraph_edge *cs = src->cs;\n       while (cs)\n \t{\n \t  if (cgraph_edge_brings_value_p (cs, src, node, val)\n@@ -6405,7 +6405,7 @@ decide_whether_version_node (struct cgraph_node *node, int cur_sweep)\n static void\n spread_undeadness (struct cgraph_node *node)\n {\n-  struct cgraph_edge *cs;\n+  class cgraph_edge *cs;\n \n   for (cs = node->callees; cs; cs = cs->next_callee)\n     if (ipa_edge_within_scc (cs))\n@@ -6431,7 +6431,7 @@ static bool\n has_undead_caller_from_outside_scc_p (struct cgraph_node *node,\n \t\t\t\t      void *data ATTRIBUTE_UNUSED)\n {\n-  struct cgraph_edge *cs;\n+  class cgraph_edge *cs;\n \n   for (cs = node->callers; cs; cs = cs->next_caller)\n     if (cs->caller->thunk\ndiff --git a/gcc/ipa-devirt.cc b/gcc/ipa-devirt.cc\nindex 8577e9b30fb..92e712073b7 100644\n--- a/gcc/ipa-devirt.cc\n+++ b/gcc/ipa-devirt.cc\n@@ -3713,7 +3713,7 @@ ipa_devirt (void)\n {\n   struct cgraph_node *n;\n   hash_set<void *> bad_call_targets;\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   struct devirt_stats stats;\n   memset (&stats, 0, sizeof (stats));\n \ndiff --git a/gcc/ipa-fnsummary.cc b/gcc/ipa-fnsummary.cc\nindex e187231dfb6..4859327124d 100644\n--- a/gcc/ipa-fnsummary.cc\n+++ b/gcc/ipa-fnsummary.cc\n@@ -248,8 +248,8 @@ ipa_fn_summary::account_size_time (int size, sreal time,\n \n /* We proved E to be unreachable, redirect it to __builtin_unreachable.  */\n \n-static struct cgraph_edge *\n-redirect_to_unreachable (struct cgraph_edge *e)\n+static class cgraph_edge *\n+redirect_to_unreachable (class cgraph_edge *e)\n {\n   struct cgraph_node *callee = !e->inline_failed ? e->callee : NULL;\n   struct cgraph_node *target\n@@ -282,7 +282,7 @@ redirect_to_unreachable (struct cgraph_edge *e)\n /* Set predicate for edge E.  */\n \n static void\n-edge_set_predicate (struct cgraph_edge *e, ipa_predicate *predicate)\n+edge_set_predicate (class cgraph_edge *e, ipa_predicate *predicate)\n {\n   /* If the edge is determined to be never executed, redirect it\n      to BUILTIN_UNREACHABLE to make it clear to IPA passes the call will\n@@ -606,7 +606,7 @@ fre_will_run_p (struct cgraph_node *node)\n    COMPUTE_CONTEXTS is true.  */\n \n void\n-evaluate_properties_for_edge (struct cgraph_edge *e, bool inline_p,\n+evaluate_properties_for_edge (class cgraph_edge *e, bool inline_p,\n \t\t\t      clause_t *clause_ptr,\n \t\t\t      clause_t *nonspec_clause_ptr,\n \t\t\t      ipa_auto_call_arg_values *avals,\n@@ -849,7 +849,7 @@ ipa_fn_summary_t::duplicate (cgraph_node *src,\n       size_time_entry *e;\n       int optimized_out_size = 0;\n       bool inlined_to_p = false;\n-      struct cgraph_edge *edge, *next;\n+      class cgraph_edge *edge, *next;\n \n       info->size_time_table.release ();\n       avals.m_known_vals.safe_grow_cleared (count, true);\n@@ -986,8 +986,8 @@ ipa_fn_summary_t::duplicate (cgraph_node *src,\n /* Hook that is called by cgraph.cc when a node is duplicated.  */\n \n void\n-ipa_call_summary_t::duplicate (struct cgraph_edge *src,\n-\t\t\t       struct cgraph_edge *dst,\n+ipa_call_summary_t::duplicate (class cgraph_edge *src,\n+\t\t\t       class cgraph_edge *dst,\n \t\t\t       class ipa_call_summary *srcinfo,\n \t\t\t       class ipa_call_summary *info)\n {\n@@ -1014,7 +1014,7 @@ static void\n dump_ipa_call_summary (FILE *f, int indent, struct cgraph_node *node,\n \t\t       class ipa_fn_summary *info)\n {\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n   for (edge = node->callees; edge; edge = edge->next_callee)\n     {\n       class ipa_call_summary *es = ipa_call_summaries->get (edge);\n@@ -3046,7 +3046,7 @@ analyze_function_body (struct cgraph_node *node, bool early)\n \t  if (is_gimple_call (stmt)\n \t      && !gimple_call_internal_p (stmt))\n \t    {\n-\t      struct cgraph_edge *edge = node->get_edge (stmt);\n+\t      class cgraph_edge *edge = node->get_edge (stmt);\n \t      ipa_call_summary *es = ipa_call_summaries->get_create (edge);\n \n \t      /* Special case: results of BUILT_IN_CONSTANT_P will be always\n@@ -3386,7 +3386,7 @@ void\n compute_fn_summary (struct cgraph_node *node, bool early)\n {\n   HOST_WIDE_INT self_stack_size;\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n \n   gcc_assert (!node->inlined_to);\n \n@@ -3554,7 +3554,7 @@ compute_fn_summary_for_current (void)\n    m_known_aggs in AVALS.  Return false straight away if AVALS is NULL.  */\n \n static bool\n-estimate_edge_devirt_benefit (struct cgraph_edge *ie,\n+estimate_edge_devirt_benefit (class cgraph_edge *ie,\n \t\t\t      int *size, int *time,\n \t\t\t      ipa_call_arg_values *avals)\n {\n@@ -3612,7 +3612,7 @@ estimate_edge_devirt_benefit (struct cgraph_edge *ie,\n    as far as values of parameters are concerened.  */\n \n static inline void\n-estimate_edge_size_and_time (struct cgraph_edge *e, int *size, int *min_size,\n+estimate_edge_size_and_time (class cgraph_edge *e, int *size, int *min_size,\n \t\t\t     sreal *time, ipa_call_arg_values *avals,\n \t\t\t     ipa_hints *hints)\n {\n@@ -3650,7 +3650,7 @@ estimate_calls_size_and_time_1 (struct cgraph_node *node, int *size,\n \t\t\t        clause_t possible_truths,\n \t\t\t\tipa_call_arg_values *avals)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   for (e = node->callees; e; e = e->next_callee)\n     {\n       if (!e->inline_failed)\n@@ -3696,7 +3696,7 @@ static void\n summarize_calls_size_and_time (struct cgraph_node *node,\n     \t\t\t       ipa_fn_summary *sum)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   for (e = node->callees; e; e = e->next_callee)\n     {\n       if (!e->inline_failed)\n@@ -4298,7 +4298,7 @@ ipa_get_stack_frame_offset (struct cgraph_node *node)\n static void\n inline_update_callee_summaries (struct cgraph_node *node, int depth)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n \n   ipa_propagate_frequency (node);\n   for (e = node->callees; e; e = e->next_callee)\n@@ -4321,8 +4321,8 @@ inline_update_callee_summaries (struct cgraph_node *node, int depth)\n    of change is now PROB1*PROB2.  */\n \n static void\n-remap_edge_params (struct cgraph_edge *inlined_edge,\n-\t\t   struct cgraph_edge *edge)\n+remap_edge_params (class cgraph_edge *inlined_edge,\n+\t\t   class cgraph_edge *edge)\n {\n   if (ipa_node_params_sum)\n     {\n@@ -4382,7 +4382,7 @@ remap_edge_params (struct cgraph_edge *inlined_edge,\n    Also update change probabilities.  */\n \n static void\n-remap_edge_summaries (struct cgraph_edge *inlined_edge,\n+remap_edge_summaries (class cgraph_edge *inlined_edge,\n \t\t      struct cgraph_node *node,\n \t\t      class ipa_fn_summary *info,\n \t\t      class ipa_node_params *params_summary,\n@@ -4392,7 +4392,7 @@ remap_edge_summaries (struct cgraph_edge *inlined_edge,\n \t\t      clause_t possible_truths,\n \t\t      ipa_predicate *toplev_predicate)\n {\n-  struct cgraph_edge *e, *next;\n+  class cgraph_edge *e, *next;\n   for (e = node->callees; e; e = next)\n     {\n       ipa_predicate p;\n@@ -4470,7 +4470,7 @@ remap_freqcounting_predicate (class ipa_fn_summary *info,\n /* We inlined EDGE.  Update summary of the function we inlined into.  */\n \n void\n-ipa_merge_fn_summary_after_inlining (struct cgraph_edge *edge)\n+ipa_merge_fn_summary_after_inlining (class cgraph_edge *edge)\n {\n   ipa_fn_summary *callee_info = ipa_fn_summaries->get (edge->callee);\n   struct cgraph_node *to = (edge->caller->inlined_to\n@@ -4673,7 +4673,7 @@ inline_analyze_function (struct cgraph_node *node)\n   compute_fn_summary (node, false);\n   if (!optimize)\n     {\n-      struct cgraph_edge *e;\n+      class cgraph_edge *e;\n       for (e = node->callees; e; e = e->next_callee)\n \te->inline_failed = CIF_FUNCTION_NOT_OPTIMIZED;\n       for (e = node->indirect_calls; e; e = e->next_callee)\n@@ -4720,7 +4720,7 @@ ipa_fn_summary_generate (void)\n /* Write inline summary for edge E to OB.  */\n \n static void\n-read_ipa_call_summary (class lto_input_block *ib, struct cgraph_edge *e,\n+read_ipa_call_summary (class lto_input_block *ib, class cgraph_edge *e,\n \t\t       bool prevails)\n {\n   class ipa_call_summary *es = prevails\n@@ -4808,7 +4808,7 @@ inline_read_section (struct lto_file_decl_data *file_data, const char *data,\n       class ipa_size_summary *size_info;\n       lto_symtab_encoder_t encoder;\n       struct bitpack_d bp;\n-      struct cgraph_edge *e;\n+      class cgraph_edge *e;\n       ipa_predicate p;\n \n       index = streamer_read_uhwi (&ib);\n@@ -5013,7 +5013,7 @@ ipa_fn_summary_read (void)\n /* Write inline summary for edge E to OB.  */\n \n static void\n-write_ipa_call_summary (struct output_block *ob, struct cgraph_edge *e)\n+write_ipa_call_summary (struct output_block *ob, class cgraph_edge *e)\n {\n   class ipa_call_summary *es = ipa_call_summaries->get (e);\n   int i;\n@@ -5072,7 +5072,7 @@ ipa_fn_summary_write (void)\n \t  class ipa_fn_summary *info = ipa_fn_summaries->get (cnode);\n \t  class ipa_size_summary *size_info = ipa_size_summaries->get (cnode);\n \t  struct bitpack_d bp;\n-\t  struct cgraph_edge *edge;\n+\t  class cgraph_edge *edge;\n \t  int i;\n \t  size_time_entry *e;\n \t  struct condition *c;\ndiff --git a/gcc/ipa-fnsummary.h b/gcc/ipa-fnsummary.h\nindex de7b7f61cb1..9d71a96535d 100644\n--- a/gcc/ipa-fnsummary.h\n+++ b/gcc/ipa-fnsummary.h\n@@ -417,14 +417,14 @@ void inline_analyze_function (struct cgraph_node *node);\n void estimate_ipcp_clone_size_and_time (struct cgraph_node *node,\n \t\t\t\t\tipa_auto_call_arg_values *avals,\n \t\t\t\t\tipa_call_estimates *estimates);\n-void ipa_merge_fn_summary_after_inlining (struct cgraph_edge *edge);\n+void ipa_merge_fn_summary_after_inlining (class cgraph_edge *edge);\n void ipa_update_overall_fn_summary (struct cgraph_node *node, bool reset = true);\n void compute_fn_summary (struct cgraph_node *, bool);\n bool refs_local_or_readonly_memory_p (tree);\n bool points_to_local_or_readonly_memory_p (tree);\n \n \n-void evaluate_properties_for_edge (struct cgraph_edge *e,\n+void evaluate_properties_for_edge (class cgraph_edge *e,\n \t       \t\t           bool inline_p,\n \t\t\t\t   clause_t *clause_ptr,\n \t\t\t\t   clause_t *nonspec_clause_ptr,\n@@ -433,12 +433,12 @@ void evaluate_properties_for_edge (struct cgraph_edge *e,\n \n void ipa_fnsummary_cc_finalize (void);\n HOST_WIDE_INT ipa_get_stack_frame_offset (struct cgraph_node *node);\n-void ipa_remove_from_growth_caches (struct cgraph_edge *edge);\n+void ipa_remove_from_growth_caches (class cgraph_edge *edge);\n \n /* Return true if EDGE is a cross module call.  */\n \n inline bool\n-cross_module_call_p (struct cgraph_edge *edge)\n+cross_module_call_p (class cgraph_edge *edge)\n {\n   /* Here we do not want to walk to alias target becuase ICF may create\n      cross-unit aliases.  */\ndiff --git a/gcc/ipa-icf.cc b/gcc/ipa-icf.cc\nindex 40e9614c736..45d20cd6c35 100644\n--- a/gcc/ipa-icf.cc\n+++ b/gcc/ipa-icf.cc\n@@ -979,7 +979,7 @@ redirect_all_callers (cgraph_node *n, cgraph_node *to)\n \t punt on redirection.  */\n       if (!e->caller->thunk)\n \t{\n-\t  struct cgraph_edge *nexte = e->next_caller;\n+\t  class cgraph_edge *nexte = e->next_caller;\n           e->redirect_callee (to);\n \t  e = nexte;\n           nredirected++;\n@@ -1509,7 +1509,7 @@ sem_function::hash_stmt (gimple *stmt, inchash::hash &hstate)\n bool\n sem_function::compare_polymorphic_p (void)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n \n   if (!opt_for_fn (get_node ()->decl, flag_devirtualize))\n     return false;\ndiff --git a/gcc/ipa-inline-analysis.cc b/gcc/ipa-inline-analysis.cc\nindex ca5f2c8eb20..ca7bfb6ec83 100644\n--- a/gcc/ipa-inline-analysis.cc\n+++ b/gcc/ipa-inline-analysis.cc\n@@ -101,7 +101,7 @@ static long node_context_cache_hit, node_context_cache_miss,\n    nullified or usually overwritten by more precise reasons later.  */\n \n void\n-initialize_inline_failed (struct cgraph_edge *e)\n+initialize_inline_failed (class cgraph_edge *e)\n {\n   struct cgraph_node *callee = e->callee;\n \n@@ -157,7 +157,7 @@ free_growth_caches (void)\n /* Return hints derived from EDGE.   */\n \n int\n-simple_edge_hints (struct cgraph_edge *edge)\n+simple_edge_hints (class cgraph_edge *edge)\n {\n   int hints = 0;\n   struct cgraph_node *to = (edge->caller->inlined_to\n@@ -183,7 +183,7 @@ simple_edge_hints (struct cgraph_edge *edge)\n    size, since we always need both metrics eventually.  */\n \n sreal\n-do_estimate_edge_time (struct cgraph_edge *edge, sreal *ret_nonspec_time)\n+do_estimate_edge_time (class cgraph_edge *edge, sreal *ret_nonspec_time)\n {\n   sreal time, nonspec_time;\n   int size;\n@@ -301,7 +301,7 @@ reset_node_cache (struct cgraph_node *node)\n \n /* Remove EDGE from caches once it was inlined.  */\n void\n-ipa_remove_from_growth_caches (struct cgraph_edge *edge)\n+ipa_remove_from_growth_caches (class cgraph_edge *edge)\n {\n   if (node_context_cache)\n     node_context_cache->remove (edge->callee);\n@@ -313,7 +313,7 @@ ipa_remove_from_growth_caches (struct cgraph_edge *edge)\n    Only to be called via estimate_edge_size.  */\n \n int\n-do_estimate_edge_size (struct cgraph_edge *edge)\n+do_estimate_edge_size (class cgraph_edge *edge)\n {\n   int size;\n   struct cgraph_node *callee;\n@@ -347,7 +347,7 @@ do_estimate_edge_size (struct cgraph_edge *edge)\n    Only to be called via estimate_edge_size.  */\n \n ipa_hints\n-do_estimate_edge_hints (struct cgraph_edge *edge)\n+do_estimate_edge_hints (class cgraph_edge *edge)\n {\n   struct cgraph_node *callee;\n   clause_t clause, nonspec_clause;\n@@ -381,7 +381,7 @@ do_estimate_edge_hints (struct cgraph_edge *edge)\n \n int\n estimate_size_after_inlining (struct cgraph_node *node,\n-\t\t\t      struct cgraph_edge *edge)\n+\t\t\t      class cgraph_edge *edge)\n {\n   class ipa_call_summary *es = ipa_call_summaries->get (edge);\n   ipa_size_summary *s = ipa_size_summaries->get (node);\n@@ -410,7 +410,7 @@ struct growth_data\n static bool\n do_estimate_growth_1 (struct cgraph_node *node, void *data)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   struct growth_data *d = (struct growth_data *) data;\n \n   for (e = node->callers; e; e = e->next_caller)\n@@ -495,7 +495,7 @@ estimate_growth (struct cgraph_node *node)\n \n static bool\n check_callers (cgraph_node *node, int *growth, int *n, int offline,\n-\t       int min_size, struct cgraph_edge *known_edge)\n+\t       int min_size, class cgraph_edge *known_edge)\n {\n   ipa_ref *ref;\n \n@@ -543,9 +543,9 @@ check_callers (cgraph_node *node, int *growth, int *n, int offline,\n \n bool\n growth_positive_p (struct cgraph_node *node,\n-\t\t   struct cgraph_edge * known_edge, int edge_growth)\n+\t\t   class cgraph_edge * known_edge, int edge_growth)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n \n   ipa_size_summary *s = ipa_size_summaries->get (node);\n \ndiff --git a/gcc/ipa-inline-transform.cc b/gcc/ipa-inline-transform.cc\nindex c4df9d91425..efe8321caca 100644\n--- a/gcc/ipa-inline-transform.cc\n+++ b/gcc/ipa-inline-transform.cc\n@@ -65,7 +65,7 @@ int nfunctions_inlined;\n    copy of function was removed.  */\n \n static bool\n-can_remove_node_now_p_1 (struct cgraph_node *node, struct cgraph_edge *e)\n+can_remove_node_now_p_1 (struct cgraph_node *node, class cgraph_edge *e)\n {\n   ipa_ref *ref;\n \n@@ -100,7 +100,7 @@ can_remove_node_now_p_1 (struct cgraph_node *node, struct cgraph_edge *e)\n    group that the whole comdat group is removable.  */\n \n static bool\n-can_remove_node_now_p (struct cgraph_node *node, struct cgraph_edge *e)\n+can_remove_node_now_p (struct cgraph_node *node, class cgraph_edge *e)\n {\n   struct cgraph_node *next;\n   if (!can_remove_node_now_p_1 (node, e))\n@@ -148,12 +148,12 @@ master_clone_with_noninline_clones_p (struct cgraph_node *node)\n    transformation.  */\n \n void\n-clone_inlined_nodes (struct cgraph_edge *e, bool duplicate,\n+clone_inlined_nodes (class cgraph_edge *e, bool duplicate,\n \t\t     bool keep_offline_copy,\n \t\t     bool update_original, int *overall_size)\n {\n   struct cgraph_node *inlining_into;\n-  struct cgraph_edge *next;\n+  class cgraph_edge *next;\n \n   if (e->caller->inlined_to)\n     inlining_into = e->caller->inlined_to;\n@@ -321,14 +321,14 @@ mark_all_inlined_calls_cdtor (cgraph_node *node)\n    result of inlining.  */\n \n bool\n-inline_call (struct cgraph_edge *e, bool update_original,\n+inline_call (class cgraph_edge *e, bool update_original,\n \t     vec<cgraph_edge *> *new_edges,\n \t     int *overall_size, bool update_overall_summary,\n \t     bool *callee_removed)\n {\n   int old_size = 0, new_size = 0;\n   struct cgraph_node *to = NULL;\n-  struct cgraph_edge *curr = e;\n+  class cgraph_edge *curr = e;\n   bool comdat_local = e->callee->comdat_local_p ();\n   struct cgraph_node *callee = e->callee->ultimate_alias_target ();\n   bool new_edges_found = false;\n@@ -797,7 +797,7 @@ unsigned int\n inline_transform (struct cgraph_node *node)\n {\n   unsigned int todo = 0;\n-  struct cgraph_edge *e, *next;\n+  class cgraph_edge *e, *next;\n   bool has_inline = false;\n \n   /* FIXME: Currently the pass manager is adding inline transform more than\ndiff --git a/gcc/ipa-inline.cc b/gcc/ipa-inline.cc\nindex 24d8974d5ca..db38ead8276 100644\n--- a/gcc/ipa-inline.cc\n+++ b/gcc/ipa-inline.cc\n@@ -192,7 +192,7 @@ static profile_count spec_rem;\n    inlined. */\n \n static bool\n-caller_growth_limits (struct cgraph_edge *e)\n+caller_growth_limits (class cgraph_edge *e)\n {\n   struct cgraph_node *to = e->caller;\n   struct cgraph_node *what = e->callee->ultimate_alias_target ();\n@@ -275,7 +275,7 @@ caller_growth_limits (struct cgraph_edge *e)\n /* Dump info about why inlining has failed.  */\n \n static void\n-report_inline_failed_reason (struct cgraph_edge *e)\n+report_inline_failed_reason (class cgraph_edge *e)\n {\n   if (dump_enabled_p ())\n     {\n@@ -368,7 +368,7 @@ sanitize_attrs_match_for_inline_p (const_tree caller, const_tree callee)\n    if REPORT is true, output reason to the dump file. */\n \n static bool\n-can_inline_edge_p (struct cgraph_edge *e, bool report,\n+can_inline_edge_p (class cgraph_edge *e, bool report,\n \t\t   bool early = false)\n {\n   gcc_checking_assert (e->inline_failed);\n@@ -524,7 +524,7 @@ enum can_inline_edge_by_limits_flags\n    caller growth limits allow doing so.  */\n \n static bool\n-can_inline_edge_by_limits_p (struct cgraph_edge *e, int flags)\n+can_inline_edge_by_limits_p (class cgraph_edge *e, int flags)\n {\n   gcc_checking_assert (e->inline_failed);\n \n@@ -690,7 +690,7 @@ can_inline_edge_by_limits_p (struct cgraph_edge *e, int flags)\n /* Return true if the edge E is inlinable during early inlining.  */\n \n static bool\n-can_early_inline_edge_p (struct cgraph_edge *e)\n+can_early_inline_edge_p (class cgraph_edge *e)\n {\n   cgraph_node *caller = (e->caller->inlined_to\n \t\t\t ? e->caller->inlined_to : e->caller);\n@@ -768,7 +768,7 @@ can_early_inline_edge_p (struct cgraph_edge *e)\n static int\n num_calls (struct cgraph_node *n)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   int num = 0;\n \n   for (e = n->callees; e; e = e->next_callee)\n@@ -781,7 +781,7 @@ num_calls (struct cgraph_node *n)\n /* Return true if we are interested in inlining small function.  */\n \n static bool\n-want_early_inline_function_p (struct cgraph_edge *e)\n+want_early_inline_function_p (class cgraph_edge *e)\n {\n   bool want_inline = true;\n   struct cgraph_node *callee = e->callee->ultimate_alias_target ();\n@@ -857,7 +857,7 @@ want_early_inline_function_p (struct cgraph_edge *e)\n    does not happen.  */\n \n inline sreal\n-compute_uninlined_call_time (struct cgraph_edge *edge,\n+compute_uninlined_call_time (class cgraph_edge *edge,\n \t\t\t     sreal uninlined_call_time,\n \t\t\t     sreal freq)\n {\n@@ -878,7 +878,7 @@ compute_uninlined_call_time (struct cgraph_edge *edge,\n    does happen.  */\n \n inline sreal\n-compute_inlined_call_time (struct cgraph_edge *edge,\n+compute_inlined_call_time (class cgraph_edge *edge,\n \t\t\t   sreal time,\n \t\t\t   sreal freq)\n {\n@@ -907,7 +907,7 @@ compute_inlined_call_time (struct cgraph_edge *edge,\n    and with inlined is INLINED_TYPE.  */\n \n inline sreal\n-inlining_speedup (struct cgraph_edge *edge,\n+inlining_speedup (class cgraph_edge *edge,\n     \t\t  sreal freq,\n \t\t  sreal uninlined_time,\n \t\t  sreal inlined_time)\n@@ -934,7 +934,7 @@ inlining_speedup (struct cgraph_edge *edge,\n     by call frequency.  */\n \n static sreal\n-callee_speedup (struct cgraph_edge *e)\n+callee_speedup (class cgraph_edge *e)\n {\n   sreal unspec_time;\n   sreal spec_time = estimate_edge_time (e, &unspec_time);\n@@ -945,7 +945,7 @@ callee_speedup (struct cgraph_edge *e)\n    param_inline_min_speedup.  */\n \n static bool\n-big_speedup_p (struct cgraph_edge *e)\n+big_speedup_p (class cgraph_edge *e)\n {\n   sreal unspec_time;\n   sreal spec_time = estimate_edge_time (e, &unspec_time);\n@@ -966,7 +966,7 @@ big_speedup_p (struct cgraph_edge *e)\n    When REPORT is true, report reason to dump file.  */\n \n static bool\n-want_inline_small_function_p (struct cgraph_edge *e, bool report)\n+want_inline_small_function_p (class cgraph_edge *e, bool report)\n {\n   bool want_inline = true;\n   struct cgraph_node *callee = e->callee->ultimate_alias_target ();\n@@ -1106,7 +1106,7 @@ want_inline_small_function_p (struct cgraph_edge *e, bool report)\n    inlining the call will just introduce new recursive calls to appear.  */\n \n static bool\n-want_inline_self_recursive_call_p (struct cgraph_edge *edge,\n+want_inline_self_recursive_call_p (class cgraph_edge *edge,\n \t\t\t\t   struct cgraph_node *outer_node,\n \t\t\t\t   bool peeling,\n \t\t\t\t   int depth)\n@@ -1206,7 +1206,7 @@ want_inline_self_recursive_call_p (struct cgraph_edge *edge,\n static bool\n check_callers (struct cgraph_node *node, void *has_hot_call)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   for (e = node->callers; e; e = e->next_caller)\n     {\n       if (!opt_for_fn (e->caller->decl, flag_inline_functions_called_once)\n@@ -1292,7 +1292,7 @@ wrapper_heuristics_may_apply (struct cgraph_node *where, int size)\n    of the function or function body size.  */\n \n static sreal\n-edge_badness (struct cgraph_edge *edge, bool dump)\n+edge_badness (class cgraph_edge *edge, bool dump)\n {\n   sreal badness;\n   int growth;\n@@ -1509,7 +1509,7 @@ edge_badness (struct cgraph_edge *edge, bool dump)\n \n /* Recompute badness of EDGE and update its key in HEAP if needed.  */\n static inline void\n-update_edge_key (edge_heap_t *heap, struct cgraph_edge *edge)\n+update_edge_key (edge_heap_t *heap, class cgraph_edge *edge)\n {\n   sreal badness = edge_badness (edge, false);\n   if (edge->aux)\n@@ -1561,8 +1561,8 @@ update_edge_key (edge_heap_t *heap, struct cgraph_edge *edge)\n static void\n reset_edge_caches (struct cgraph_node *node)\n {\n-  struct cgraph_edge *edge;\n-  struct cgraph_edge *e = node->callees;\n+  class cgraph_edge *edge;\n+  class cgraph_edge *e = node->callees;\n   struct cgraph_node *where = node;\n   struct ipa_ref *ref;\n \n@@ -1613,9 +1613,9 @@ reset_edge_caches (struct cgraph_node *node)\n static void\n update_caller_keys (edge_heap_t *heap, struct cgraph_node *node,\n \t\t    bitmap updated_nodes,\n-\t\t    struct cgraph_edge *check_inlinablity_for)\n+\t\t    class cgraph_edge *check_inlinablity_for)\n {\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n   struct ipa_ref *ref;\n \n   if ((!node->alias && !ipa_fn_summaries->get (node)->inlinable)\n@@ -1666,7 +1666,7 @@ update_callee_keys (edge_heap_t *heap, struct cgraph_node *node,\n \t\t    struct cgraph_node *update_since,\n \t\t    bitmap updated_nodes)\n {\n-  struct cgraph_edge *e = node->callees;\n+  class cgraph_edge *e = node->callees;\n   bool check_inlinability = update_since == node;\n \n   if (!e)\n@@ -1748,7 +1748,7 @@ static void\n lookup_recursive_calls (struct cgraph_node *node, struct cgraph_node *where,\n \t\t\tedge_heap_t *heap)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   enum availability avail;\n \n   for (e = where->callees; e; e = e->next_callee)\n@@ -1770,7 +1770,7 @@ lookup_recursive_calls (struct cgraph_node *node, struct cgraph_node *where,\n    is NULL.  */\n \n static bool\n-recursive_inlining (struct cgraph_edge *edge,\n+recursive_inlining (class cgraph_edge *edge,\n \t\t    vec<cgraph_edge *> *new_edges)\n {\n   cgraph_node *to  = (edge->caller->inlined_to\n@@ -1780,7 +1780,7 @@ recursive_inlining (struct cgraph_edge *edge,\n   inline_badness b (edge, sreal::min ());\n   edge_heap_t heap (b);\n   struct cgraph_node *node;\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   struct cgraph_node *master_clone = NULL, *next;\n   int depth = 0;\n   int n = 0;\n@@ -1806,7 +1806,7 @@ recursive_inlining (struct cgraph_edge *edge,\n   /* Do the inlining and update list of recursive call during process.  */\n   while (!heap.empty ())\n     {\n-      struct cgraph_edge *curr = heap.extract_min ();\n+      class cgraph_edge *curr = heap.extract_min ();\n       struct cgraph_node *cnode, *dest = curr->callee;\n \n       if (!can_inline_edge_p (curr, true)\n@@ -1930,7 +1930,7 @@ add_new_edges_to_heap (edge_heap_t *heap, vec<cgraph_edge *> &new_edges)\n {\n   while (new_edges.length () > 0)\n     {\n-      struct cgraph_edge *edge = new_edges.pop ();\n+      class cgraph_edge *edge = new_edges.pop ();\n \n       gcc_assert (!edge->aux);\n       gcc_assert (edge->callee);\n@@ -1948,7 +1948,7 @@ add_new_edges_to_heap (edge_heap_t *heap, vec<cgraph_edge *> &new_edges)\n /* Remove EDGE from the fibheap.  */\n \n static void\n-heap_edge_removal_hook (struct cgraph_edge *e, void *data)\n+heap_edge_removal_hook (class cgraph_edge *e, void *data)\n {\n   if (e->aux)\n     {\n@@ -1962,7 +1962,7 @@ heap_edge_removal_hook (struct cgraph_edge *e, void *data)\n    may get inlined.  */\n \n bool\n-speculation_useful_p (struct cgraph_edge *e, bool anticipate_inlining)\n+speculation_useful_p (class cgraph_edge *e, bool anticipate_inlining)\n {\n   /* If we have already decided to inline the edge, it seems useful.\n      Also if ipa-cp or other pass worked hard enough to produce a clone,\n@@ -2027,7 +2027,7 @@ speculation_useful_p (struct cgraph_edge *e, bool anticipate_inlining)\n    See if we can remove speculation.  */\n \n static void\n-resolve_noninline_speculation (edge_heap_t *edge_heap, struct cgraph_edge *edge)\n+resolve_noninline_speculation (edge_heap_t *edge_heap, class cgraph_edge *edge)\n {\n   if (edge->speculative && !speculation_useful_p (edge, false))\n     {\n@@ -2066,7 +2066,7 @@ inline_account_function_p (struct cgraph_node *node)\n static bool\n sum_callers (struct cgraph_node *node, void *data)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   int *num_calls = (int *)data;\n \n   for (e = node->callers; e; e = e->next_caller)\n@@ -2077,7 +2077,7 @@ sum_callers (struct cgraph_node *node, void *data)\n /* We only propagate across edges with non-interposable callee.  */\n \n inline bool\n-ignore_edge_p (struct cgraph_edge *e)\n+ignore_edge_p (class cgraph_edge *e)\n {\n   enum availability avail;\n   e->callee->function_or_virtual_thunk_symbol (&avail, e->caller);\n@@ -2094,7 +2094,7 @@ static void\n inline_small_functions (void)\n {\n   struct cgraph_node *node;\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n   inline_badness b;\n   edge_heap_t edge_heap (b);\n   auto_bitmap updated_nodes;\n@@ -2174,7 +2174,7 @@ inline_small_functions (void)\n   FOR_EACH_DEFINED_FUNCTION (node)\n     {\n       bool update = false;\n-      struct cgraph_edge *next = NULL;\n+      class cgraph_edge *next = NULL;\n       bool has_speculative = false;\n \n       if (!opt_for_fn (node->decl, optimize)\n@@ -2513,7 +2513,7 @@ inline_small_functions (void)\n static void\n flatten_function (struct cgraph_node *node, bool early, bool update)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n \n   /* We shouldn't be called recursively when we are being processed.  */\n   gcc_assert (node->aux == NULL);\n@@ -2713,7 +2713,7 @@ dump_inline_stats (void)\n     reason_freq[i] = 0;\n   FOR_EACH_DEFINED_FUNCTION (node)\n   {\n-    struct cgraph_edge *e;\n+    class cgraph_edge *e;\n     for (e = node->callees; e; e = e->next_callee)\n       {\n \tif (e->inline_failed)\n@@ -2951,7 +2951,7 @@ ipa_inline (void)\n     {\n       FOR_EACH_DEFINED_FUNCTION (node)\n \t{\n-\t  struct cgraph_edge *edge, *next;\n+\t  class cgraph_edge *edge, *next;\n \t  bool update=false;\n \n \t  if (!opt_for_fn (node->decl, optimize)\n@@ -3008,7 +3008,7 @@ ipa_inline (void)\n static bool\n inline_always_inline_functions (struct cgraph_node *node)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   bool inlined = false;\n \n   for (e = node->callees; e; e = e->next_callee)\n@@ -3065,7 +3065,7 @@ inline_always_inline_functions (struct cgraph_node *node)\n static bool\n early_inline_small_functions (struct cgraph_node *node)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   bool inlined = false;\n \n   for (e = node->callees; e; e = e->next_callee)\n@@ -3131,7 +3131,7 @@ inline_functions_by_afdo (struct cgraph_node *node, bool *speculative_calls)\n {\n   if (!flag_auto_profile || !flag_auto_profile_inlining)\n     return false;\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   bool inlined = false;\n \n   *speculative_calls |= afdo_vpt_for_early_inline (node);\n@@ -3215,7 +3215,7 @@ unsigned int\n early_inliner (function *fun)\n {\n   struct cgraph_node *node = cgraph_node::get (current_function_decl);\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n   unsigned int todo = 0;\n   int iterations = 0;\n   bool inlined = false;\ndiff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h\nindex ed492cf8361..56d70802c1c 100644\n--- a/gcc/ipa-inline.h\n+++ b/gcc/ipa-inline.h\n@@ -42,12 +42,12 @@ public:\n extern fast_call_summary<edge_growth_cache_entry *, va_heap> *edge_growth_cache;\n \n /* In ipa-inline-analysis.cc  */\n-int estimate_size_after_inlining (struct cgraph_node *, struct cgraph_edge *);\n+int estimate_size_after_inlining (struct cgraph_node *, class cgraph_edge *);\n int estimate_growth (struct cgraph_node *);\n-bool growth_positive_p (struct cgraph_node *, struct cgraph_edge *, int);\n-int do_estimate_edge_size (struct cgraph_edge *edge);\n-sreal do_estimate_edge_time (struct cgraph_edge *edge, sreal *nonspec_time = NULL);\n-ipa_hints do_estimate_edge_hints (struct cgraph_edge *edge);\n+bool growth_positive_p (struct cgraph_node *, class cgraph_edge *, int);\n+int do_estimate_edge_size (class cgraph_edge *edge);\n+sreal do_estimate_edge_time (class cgraph_edge *edge, sreal *nonspec_time = NULL);\n+ipa_hints do_estimate_edge_hints (class cgraph_edge *edge);\n void reset_node_cache (struct cgraph_node *node);\n void initialize_growth_caches ();\n void free_growth_caches (void);\n@@ -58,10 +58,10 @@ bool inline_account_function_p (struct cgraph_node *node);\n \n \n /* In ipa-inline-transform.cc  */\n-bool inline_call (struct cgraph_edge *, bool, vec<cgraph_edge *> *, int *, bool,\n+bool inline_call (class cgraph_edge *, bool, vec<cgraph_edge *> *, int *, bool,\n \t\t  bool *callee_removed = NULL);\n unsigned int inline_transform (struct cgraph_node *);\n-void clone_inlined_nodes (struct cgraph_edge *e, bool, bool, bool, int *);\n+void clone_inlined_nodes (class cgraph_edge *e, bool, bool, bool, int *);\n \n extern int ncalls_inlined;\n extern int nfunctions_inlined;\n@@ -70,7 +70,7 @@ extern function_summary <tree *> *ipa_saved_clone_sources;\n /* Return estimated size of the inline sequence of EDGE.  */\n \n inline int\n-estimate_edge_size (struct cgraph_edge *edge)\n+estimate_edge_size (class cgraph_edge *edge)\n {\n   edge_growth_cache_entry *entry;\n   if (edge_growth_cache == NULL\n@@ -83,7 +83,7 @@ estimate_edge_size (struct cgraph_edge *edge)\n /* Return lower bound on estimated callee growth after inlining EDGE.  */\n \n inline int\n-estimate_min_edge_growth (struct cgraph_edge *edge)\n+estimate_min_edge_growth (class cgraph_edge *edge)\n {\n   ipa_call_summary *s = ipa_call_summaries->get (edge);\n   struct cgraph_node *callee = edge->callee->ultimate_alias_target ();\n@@ -93,7 +93,7 @@ estimate_min_edge_growth (struct cgraph_edge *edge)\n /* Return estimated callee growth after inlining EDGE.  */\n \n inline int\n-estimate_edge_growth (struct cgraph_edge *edge)\n+estimate_edge_growth (class cgraph_edge *edge)\n {\n   ipa_call_summary *s = ipa_call_summaries->get (edge);\n   gcc_checking_assert (s->call_stmt_size || !edge->callee->analyzed);\n@@ -104,7 +104,7 @@ estimate_edge_growth (struct cgraph_edge *edge)\n    EDGE.  */\n \n inline sreal\n-estimate_edge_time (struct cgraph_edge *edge, sreal *nonspec_time = NULL)\n+estimate_edge_time (class cgraph_edge *edge, sreal *nonspec_time = NULL)\n {\n   edge_growth_cache_entry *entry;\n   if (edge_growth_cache == NULL\n@@ -121,7 +121,7 @@ estimate_edge_time (struct cgraph_edge *edge, sreal *nonspec_time = NULL)\n    EDGE.  */\n \n inline ipa_hints\n-estimate_edge_hints (struct cgraph_edge *edge)\n+estimate_edge_hints (class cgraph_edge *edge)\n {\n   edge_growth_cache_entry *entry;\n   if (edge_growth_cache == NULL\ndiff --git a/gcc/ipa-locality-cloning.cc b/gcc/ipa-locality-cloning.cc\nindex e75458b8fb9..042df0c59da 100644\n--- a/gcc/ipa-locality-cloning.cc\n+++ b/gcc/ipa-locality-cloning.cc\n@@ -356,7 +356,7 @@ order_templ_hashes ()\n static void\n populate_caller_locality_info (cgraph_node *node, locality_info *info)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   for (e = node->callers; e; e = e->next_caller)\n     {\n       /* Make a local decision about all edges for EDGE->caller but not the\n@@ -454,7 +454,7 @@ node_partitioned_p (cgraph_node *node)\n static void\n add_node_to_partition (locality_partition part, cgraph_node *node)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   if (node_partitioned_p (node))\n     return;\n \n@@ -790,7 +790,7 @@ create_locality_clone (cgraph_node *cnode,\n   cgraph_node *cl_node = NULL;\n   vec<cgraph_edge *> redirect_callers = vNULL;\n   /* All callers of cnode in current partition are redirected.  */\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n   for (edge = cnode->callers; edge; edge = edge->next_caller)\n     {\n       struct cgraph_node *caller = edge->caller;\n@@ -902,7 +902,7 @@ adjust_recursive_callees (cgraph_node *clone, cgraph_node *new_callee,\n static void\n inline_clones (cgraph_node *caller, cgraph_node *orig_inlined_to)\n {\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n   for (edge = caller->callees; edge; edge = edge->next_callee)\n     {\n       struct cgraph_node *callee = edge->callee;\n@@ -1320,7 +1320,7 @@ locality_determine_ipa_order (auto_vec<locality_order *> *order)\n \t\tcontinue;\n \t      }\n \t    sreal count = 0;\n-\t    struct cgraph_edge *edge;\n+\t    class cgraph_edge *edge;\n \t    for (edge = node->callees; edge; edge = edge->next_callee)\n \t      {\n \t\t/* For PGO, frequency is not used in\n@@ -1360,7 +1360,7 @@ locality_determine_static_order (auto_vec<locality_order *> *order,\n \telse if (is_entry_node_p (node))\n \t  {\n \t    sreal count = 0;\n-\t    struct cgraph_edge *edge;\n+\t    class cgraph_edge *edge;\n \t    for (edge = node->callees; edge; edge = edge->next_callee)\n \t      {\n \t\tsreal freq = edge->sreal_frequency ();\ndiff --git a/gcc/ipa-modref.cc b/gcc/ipa-modref.cc\nindex 9372cc1d594..b18ddfc41fa 100644\n--- a/gcc/ipa-modref.cc\n+++ b/gcc/ipa-modref.cc\n@@ -4282,7 +4282,7 @@ namespace {\n    Ignore not available symbols.  */\n \n static bool\n-ignore_edge (struct cgraph_edge *e)\n+ignore_edge (class cgraph_edge *e)\n {\n   /* We merge summaries of inline clones into summaries of functions they\n      are inlined to.  For that reason the complete function bodies must\ndiff --git a/gcc/ipa-profile.cc b/gcc/ipa-profile.cc\nindex 7c294c2babe..6df1e1c10ee 100644\n--- a/gcc/ipa-profile.cc\n+++ b/gcc/ipa-profile.cc\n@@ -290,7 +290,7 @@ ipa_profile_generate_summary (void)\n \t\t  if (h)\n \t\t    {\n \t\t      gcov_type val, count, all;\n-\t\t      struct cgraph_edge *e = node->get_edge (stmt);\n+\t\t      class cgraph_edge *e = node->get_edge (stmt);\n \t\t      if (e && !e->indirect_unknown_callee)\n \t\t\tcontinue;\n \n@@ -559,7 +559,7 @@ static bool\n ipa_propagate_frequency_1 (struct cgraph_node *node, void *data)\n {\n   struct ipa_propagate_frequency_data *d;\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n \n   d = (struct ipa_propagate_frequency_data *)data;\n   for (edge = node->callers;\n@@ -630,7 +630,7 @@ ipa_propagate_frequency_1 (struct cgraph_node *node, void *data)\n bool\n contains_hot_call_p (struct cgraph_node *node)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   for (e = node->callees; e; e = e->next_callee)\n     if (e->maybe_hot_p ())\n       return true;\n@@ -741,7 +741,7 @@ ipa_propagate_frequency (struct cgraph_node *node)\n    Be conservative when summaries are not present.  */\n \n static bool\n-check_argument_count (struct cgraph_node *n, struct cgraph_edge *e)\n+check_argument_count (struct cgraph_node *n, class cgraph_edge *e)\n {\n   if (!ipa_node_params_sum || !ipa_edge_args_sum)\n     return true;\n@@ -764,7 +764,7 @@ static unsigned int\n ipa_profile (void)\n {\n   struct cgraph_node **order;\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   int order_pos;\n   bool something_changed = false;\n   int i;\ndiff --git a/gcc/ipa-prop.cc b/gcc/ipa-prop.cc\nindex ea7519a17d3..798c849f129 100644\n--- a/gcc/ipa-prop.cc\n+++ b/gcc/ipa-prop.cc\n@@ -128,7 +128,7 @@ static struct cgraph_node_hook_list *function_insertion_hook_holder;\n struct ipa_cst_ref_desc\n {\n   /* Edge that corresponds to the statement which took the reference.  */\n-  struct cgraph_edge *cs;\n+  class cgraph_edge *cs;\n   /* Linked list of duplicates created when call graph edges are cloned.  */\n   struct ipa_cst_ref_desc *next_duplicate;\n   /* Number of references in IPA structures, IPA_UNDESCRIBED_USE if the value\n@@ -602,7 +602,7 @@ ipa_dump_jump_function (FILE *f, ipa_jump_func *jump_func,\n /* Print the jump functions associated with call graph edge CS to file F.  */\n \n static void\n-ipa_print_node_jump_functions_for_edge (FILE *f, struct cgraph_edge *cs)\n+ipa_print_node_jump_functions_for_edge (FILE *f, class cgraph_edge *cs)\n {\n   ipa_edge_args *args = ipa_edge_args_sum->get (cs);\n   int count = ipa_get_cs_argument_count (args);\n@@ -625,7 +625,7 @@ ipa_print_node_jump_functions_for_edge (FILE *f, struct cgraph_edge *cs)\n void\n ipa_print_node_jump_functions (FILE *f, struct cgraph_node *node)\n {\n-  struct cgraph_edge *cs;\n+  class cgraph_edge *cs;\n \n   fprintf (f, \"  Jump functions of caller  %s:\\n\", node->dump_name ());\n   for (cs = node->callees; cs; cs = cs->next_callee)\n@@ -697,7 +697,7 @@ ipa_set_jf_cst_copy (struct ipa_jump_func *dst,\n \n static void\n ipa_set_jf_constant (struct ipa_jump_func *jfunc, tree constant,\n-\t\t     struct cgraph_edge *cs)\n+\t\t     class cgraph_edge *cs)\n {\n   jfunc->type = IPA_JF_CONST;\n   jfunc->value.constant.value = unshare_expr_without_location (constant);\n@@ -2310,7 +2310,7 @@ determine_known_aggregate_parts (struct ipa_func_body_info *fbi,\n    edge E.  */\n \n tree\n-ipa_get_callee_param_type (struct cgraph_edge *e, int i)\n+ipa_get_callee_param_type (class cgraph_edge *e, int i)\n {\n   int n;\n   tree type = (e->callee\n@@ -2454,7 +2454,7 @@ skip_a_safe_conversion_op (tree t)\n    This primarily means allocating the correct amount of jump functions.  */\n \n static inline void\n-init_callback_edge_summary (struct cgraph_edge *cbe, tree attr)\n+init_callback_edge_summary (class cgraph_edge *cbe, tree attr)\n {\n   ipa_edge_args *cb_args = ipa_edge_args_sum->get_create (cbe);\n   size_t jf_vec_length = callback_num_args(attr);\n@@ -2468,7 +2468,7 @@ init_callback_edge_summary (struct cgraph_edge *cbe, tree attr)\n \n static void\n ipa_compute_jump_functions_for_edge (struct ipa_func_body_info *fbi,\n-\t\t\t\t     struct cgraph_edge *cs)\n+\t\t\t\t     class cgraph_edge *cs)\n {\n   ipa_node_params *info = ipa_node_params_sum->get (cs->caller);\n   ipa_edge_args *args = ipa_edge_args_sum->get_create (cs);\n@@ -2714,7 +2714,7 @@ ipa_compute_jump_functions_for_bb (struct ipa_func_body_info *fbi, basic_block b\n {\n   struct ipa_bb_info *bi = ipa_get_bb_info (fbi, bb);\n   int i;\n-  struct cgraph_edge *cs;\n+  class cgraph_edge *cs;\n \n   FOR_EACH_VEC_ELT_REVERSE (bi->cg_edges, i, cs)\n     {\n@@ -3194,7 +3194,7 @@ ipa_analyze_call_uses (struct ipa_func_body_info *fbi, gcall *call)\n           && !virtual_method_call_p (target)))\n     return;\n \n-  struct cgraph_edge *cs = fbi->node->get_edge (call);\n+  class cgraph_edge *cs = fbi->node->get_edge (call);\n   /* If we previously turned the call into a direct call, there is\n      no need to analyze.  */\n   if (cs && !cs->indirect_unknown_callee)\n@@ -3593,13 +3593,13 @@ ipa_analyze_node (struct cgraph_node *node)\n   fbi.param_count = ipa_get_param_count (info);\n   fbi.aa_walk_budget = opt_for_fn (node->decl, param_ipa_max_aa_steps);\n \n-  for (struct cgraph_edge *cs = node->callees; cs; cs = cs->next_callee)\n+  for (class cgraph_edge *cs = node->callees; cs; cs = cs->next_callee)\n     {\n       ipa_bb_info *bi = ipa_get_bb_info (&fbi, gimple_bb (cs->call_stmt));\n       bi->cg_edges.safe_push (cs);\n     }\n \n-  for (struct cgraph_edge *cs = node->indirect_calls; cs; cs = cs->next_callee)\n+  for (class cgraph_edge *cs = node->indirect_calls; cs; cs = cs->next_callee)\n     {\n       ipa_bb_info *bi = ipa_get_bb_info (&fbi, gimple_bb (cs->call_stmt));\n       bi->cg_edges.safe_push (cs);\n@@ -3656,8 +3656,8 @@ ipa_analyze_var_static_initializer (varpool_node *node)\n    indirectly) inlined into CS->callee and that E has not been inlined.  */\n \n static void\n-update_jump_functions_after_inlining (struct cgraph_edge *cs,\n-\t\t\t\t      struct cgraph_edge *e)\n+update_jump_functions_after_inlining (class cgraph_edge *cs,\n+\t\t\t\t      class cgraph_edge *e)\n {\n   ipa_edge_args *top = ipa_edge_args_sum->get (cs);\n   ipa_edge_args *args = ipa_edge_args_sum->get (e);\n@@ -3979,8 +3979,8 @@ update_jump_functions_after_inlining (struct cgraph_edge *cs,\n    (SPECULATIVE)destination of an indirect edge IE and return the edge.\n    Otherwise, return NULL.  */\n \n-struct cgraph_edge *\n-ipa_make_edge_direct_to_target (struct cgraph_edge *ie, tree target,\n+class cgraph_edge *\n+ipa_make_edge_direct_to_target (class cgraph_edge *ie, tree target,\n \t\t\t\tbool speculative)\n {\n   struct cgraph_node *callee;\n@@ -4114,7 +4114,7 @@ ipa_make_edge_direct_to_target (struct cgraph_edge *ie, tree target,\n     }\n   if (!speculative)\n     {\n-      struct cgraph_edge *orig = ie;\n+      class cgraph_edge *orig = ie;\n       ie = cgraph_edge::make_direct (ie, callee);\n       /* If we resolved speculative edge the cost is already up to date\n \t for direct call (adjusted by inline_edge_duplication_hook).  */\n@@ -4269,7 +4269,7 @@ static bool\n remove_described_reference (symtab_node *symbol, struct ipa_cst_ref_desc *rdesc)\n {\n   struct ipa_ref *to_del;\n-  struct cgraph_edge *origin;\n+  class cgraph_edge *origin;\n \n   origin = rdesc->cs;\n   if (!origin)\n@@ -4348,8 +4348,8 @@ try_decrement_rdesc_refcount (struct ipa_jump_func *jfunc)\n    NEW_ROOT and NEW_ROOT_INFO is the node and its info that JFUNC lattices are\n    relative to.  */\n \n-static struct cgraph_edge *\n-try_make_edge_direct_simple_call (struct cgraph_edge *ie,\n+static class cgraph_edge *\n+try_make_edge_direct_simple_call (class cgraph_edge *ie,\n \t\t\t\t  struct ipa_jump_func *jfunc, tree target_type,\n \t\t\t\t  struct cgraph_node *new_root,\n \t\t\t\t  class ipa_node_params *new_root_info)\n@@ -4393,7 +4393,7 @@ try_make_edge_direct_simple_call (struct cgraph_edge *ie,\n    and target (the latter can be NULL) are dumped when dumping is enabled.  */\n \n tree\n-ipa_impossible_devirt_target (struct cgraph_edge *ie, tree target)\n+ipa_impossible_devirt_target (class cgraph_edge *ie, tree target)\n {\n   if (dump_file)\n     {\n@@ -4420,8 +4420,8 @@ ipa_impossible_devirt_target (struct cgraph_edge *ie, tree target)\n    NEW_ROOT_INFO is the node and its info that JFUNC lattices are relative\n    to.  */\n \n-static struct cgraph_edge *\n-try_make_edge_direct_virtual_call (struct cgraph_edge *ie,\n+static class cgraph_edge *\n+try_make_edge_direct_virtual_call (class cgraph_edge *ie,\n \t\t\t\t   struct ipa_jump_func *jfunc,\n \t\t\t\t   class ipa_polymorphic_call_context ctx,\n \t\t\t\t   struct cgraph_node *new_root,\n@@ -4533,7 +4533,7 @@ try_make_edge_direct_virtual_call (struct cgraph_edge *ie,\n    unless NEW_EDGES is NULL.  Return true iff a new edge(s) were created.  */\n \n static bool\n-update_indirect_edges_after_inlining (struct cgraph_edge *cs,\n+update_indirect_edges_after_inlining (class cgraph_edge *cs,\n \t\t\t\t      struct cgraph_node *node,\n \t\t\t\t      vec<cgraph_edge *> *new_edges)\n {\n@@ -4681,11 +4681,11 @@ update_indirect_edges_after_inlining (struct cgraph_edge *cs,\n    created.  */\n \n static bool\n-propagate_info_to_inlined_callees (struct cgraph_edge *cs,\n+propagate_info_to_inlined_callees (class cgraph_edge *cs,\n \t\t\t\t   struct cgraph_node *node,\n \t\t\t\t   vec<cgraph_edge *> *new_edges)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   bool res;\n \n   res = update_indirect_edges_after_inlining (cs, node, new_edges);\n@@ -4716,7 +4716,7 @@ combine_controlled_uses_counters (int c, int d)\n    tree of inlined nodes.  */\n \n static void\n-propagate_controlled_uses (struct cgraph_edge *cs)\n+propagate_controlled_uses (class cgraph_edge *cs)\n {\n   ipa_edge_args *args = ipa_edge_args_sum->get (cs);\n   if (!args)\n@@ -4858,7 +4858,7 @@ propagate_controlled_uses (struct cgraph_edge *cs)\n    created.  */\n \n bool\n-ipa_propagate_indirect_call_infos (struct cgraph_edge *cs,\n+ipa_propagate_indirect_call_infos (class cgraph_edge *cs,\n \t\t\t\t   vec<cgraph_edge *> *new_edges)\n {\n   bool changed;\n@@ -5418,7 +5418,7 @@ ipa_write_jump_function (struct output_block *ob,\n static void\n ipa_read_jump_function (class lto_input_block *ib,\n \t\t\tstruct ipa_jump_func *jump_func,\n-\t\t\tstruct cgraph_edge *cs,\n+\t\t\tclass cgraph_edge *cs,\n \t\t\tclass data_in *data_in,\n \t\t\tbool prevails)\n {\n@@ -5553,7 +5553,7 @@ ipa_read_jump_function (class lto_input_block *ib,\n \n static void\n ipa_write_indirect_edge_info (struct output_block *ob,\n-\t\t\t      struct cgraph_edge *cs)\n+\t\t\t      class cgraph_edge *cs)\n {\n   struct bitpack_d bp;\n \n@@ -5607,7 +5607,7 @@ ipa_write_indirect_edge_info (struct output_block *ob,\n static void\n ipa_read_indirect_edge_info (class lto_input_block *ib,\n \t\t\t     class data_in *data_in,\n-\t\t\t     struct cgraph_edge *cs,\n+\t\t\t     class cgraph_edge *cs,\n \t\t\t     class ipa_node_params *info)\n {\n   struct bitpack_d bp;\n@@ -5671,7 +5671,7 @@ ipa_write_node_info (struct output_block *ob, struct cgraph_node *node)\n   lto_symtab_encoder_t encoder;\n   ipa_node_params *info = ipa_node_params_sum->get (node);\n   int j;\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   struct bitpack_d bp;\n \n   encoder = ob->decl_state->symtab_node_encoder;\n@@ -5746,7 +5746,7 @@ ipa_write_node_info (struct output_block *ob, struct cgraph_node *node)\n static void\n ipa_read_edge_info (class lto_input_block *ib,\n \t\t    class data_in *data_in,\n-\t\t    struct cgraph_edge *e, bool prevails)\n+\t\t    class cgraph_edge *e, bool prevails)\n {\n   int count = streamer_read_uhwi (ib);\n   bool contexts_computed = count & 1;\n@@ -5796,7 +5796,7 @@ ipa_read_node_info (class lto_input_block *ib, struct cgraph_node *node,\n \t\t    class data_in *data_in)\n {\n   int k;\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   struct bitpack_d bp;\n   bool prevails = node->prevailing_p ();\n   ipa_node_params *info\ndiff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h\nindex 173f5f466a2..4acc3d15568 100644\n--- a/gcc/ipa-prop.h\n+++ b/gcc/ipa-prop.h\n@@ -1175,7 +1175,7 @@ ipa_check_create_node_params (void)\n    without causing allocations.  */\n \n inline bool\n-ipa_edge_args_info_available_for_edge_p (struct cgraph_edge *edge)\n+ipa_edge_args_info_available_for_edge_p (class cgraph_edge *edge)\n {\n   return ipa_edge_args_sum->exists (edge);\n }\n@@ -1192,16 +1192,16 @@ ipcp_get_transformation_summary (cgraph_node *node)\n /* Function formal parameters related computations.  */\n void ipa_initialize_node_params (struct cgraph_node *node);\n void ipa_print_constant_value (FILE *f, tree val);\n-bool ipa_propagate_indirect_call_infos (struct cgraph_edge *cs,\n+bool ipa_propagate_indirect_call_infos (class cgraph_edge *cs,\n \t\t\t\t\tvec<cgraph_edge *> *new_edges);\n \n /* Indirect edge processing and target discovery.  */\n-tree ipa_get_indirect_edge_target (struct cgraph_edge *ie,\n+tree ipa_get_indirect_edge_target (class cgraph_edge *ie,\n \t\t\t\t   ipa_call_arg_values *avals,\n \t\t\t\t   bool *speculative);\n-struct cgraph_edge *ipa_make_edge_direct_to_target (struct cgraph_edge *, tree,\n+class cgraph_edge *ipa_make_edge_direct_to_target (class cgraph_edge *, tree,\n \t\t\t\t\t\t    bool speculative = false);\n-tree ipa_impossible_devirt_target (struct cgraph_edge *, tree);\n+tree ipa_impossible_devirt_target (class cgraph_edge *, tree);\n \n \n /* Functions related to both.  */\n@@ -1266,7 +1266,7 @@ void ipa_dump_jump_function (FILE *f, ipa_jump_func *jfunc,\n void ipa_dump_noted_record_fnptrs (FILE *f);\n void ipa_debug_noted_record_fnptrs (void);\n void ipa_release_body_info (struct ipa_func_body_info *);\n-tree ipa_get_callee_param_type (struct cgraph_edge *e, int i);\n+tree ipa_get_callee_param_type (class cgraph_edge *e, int i);\n bool ipcp_get_parm_bits (tree, tree *, widest_int *);\n tree ipcp_get_aggregate_const (struct function *func, tree parm, bool by_ref,\n \t\t\t       HOST_WIDE_INT bit_offset,\ndiff --git a/gcc/ipa-pure-const.cc b/gcc/ipa-pure-const.cc\nindex af94e5e3b74..b531043c361 100644\n--- a/gcc/ipa-pure-const.cc\n+++ b/gcc/ipa-pure-const.cc\n@@ -1404,7 +1404,7 @@ pure_const_read_summary (void)\n    is not interposable.  */\n \n static bool\n-ignore_edge_for_nothrow (struct cgraph_edge *e)\n+ignore_edge_for_nothrow (class cgraph_edge *e)\n {\n   if (!e->can_throw_external || TREE_NOTHROW (e->callee->decl))\n     return true;\n@@ -1428,7 +1428,7 @@ ignore_edge_for_nothrow (struct cgraph_edge *e)\n static bool\n self_recursive_p (struct cgraph_node *node)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   for (e = node->callees; e; e = e->next_callee)\n     if (e->callee->function_symbol () == node)\n       return true;\n@@ -1451,7 +1451,7 @@ cdtor_p (cgraph_node *n, void *)\n    Ignore not available symbols.  */\n \n static bool\n-ignore_edge_for_pure_const (struct cgraph_edge *e)\n+ignore_edge_for_pure_const (class cgraph_edge *e)\n {\n   enum availability avail;\n   cgraph_node *ultimate_target\n@@ -1610,8 +1610,8 @@ propagate_pure_const (void)\n       w = node;\n       while (w && pure_const_state != IPA_NEITHER)\n \t{\n-\t  struct cgraph_edge *e;\n-\t  struct cgraph_edge *ie;\n+\t  class cgraph_edge *e;\n+\t  class cgraph_edge *ie;\n \t  int i;\n \t  struct ipa_ref *ref = NULL;\n \n@@ -1774,7 +1774,7 @@ propagate_pure_const (void)\n       w = node;\n       while (w && !can_free)\n \t{\n-\t  struct cgraph_edge *e;\n+\t  class cgraph_edge *e;\n \t  funct_state w_l = funct_state_summaries->get (w);\n \n \t  if (w_l->can_free\n@@ -1894,7 +1894,7 @@ propagate_nothrow (void)\n       w = node;\n       while (w && !can_throw)\n \t{\n-\t  struct cgraph_edge *e, *ie;\n+\t  class cgraph_edge *e, *ie;\n \n \t  if (!TREE_NOTHROW (w->decl))\n \t    {\ndiff --git a/gcc/ipa-reference.cc b/gcc/ipa-reference.cc\nindex c5699312c8f..aa598c8c25b 100644\n--- a/gcc/ipa-reference.cc\n+++ b/gcc/ipa-reference.cc\n@@ -385,7 +385,7 @@ copy_static_var_set (bitmap set, bool for_propagation)\n static void\n propagate_bits (ipa_reference_global_vars_info_t x_global, struct cgraph_node *x)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   bool read_all = x_global->statics_read == all_module_statics;\n   bool write_all = x_global->statics_written == all_module_statics;\n   for (e = x->callees;\n@@ -691,7 +691,7 @@ static void\n get_read_write_all_from_node (struct cgraph_node *node,\n \t\t\t      bool &read_all, bool &write_all)\n {\n-  struct cgraph_edge *e, *ie;\n+  class cgraph_edge *e, *ie;\n \n   /* When function is overwritable, we cannot assume anything.  */\n   if (node->get_availability () <= AVAIL_INTERPOSABLE\ndiff --git a/gcc/ipa-sra.cc b/gcc/ipa-sra.cc\nindex fd33e2028a0..5c8bc7c069c 100644\n--- a/gcc/ipa-sra.cc\n+++ b/gcc/ipa-sra.cc\n@@ -3098,7 +3098,7 @@ ipa_sra_dump_all_summaries (FILE *f, bool hints)\n \t  fprintf (f, \"\\n\");\n \t}\n \n-      struct cgraph_edge *cs;\n+      class cgraph_edge *cs;\n       for (cs = node->callees; cs; cs = cs->next_callee)\n \t{\n \t  fprintf (f, \"  Summary for edge %s->%s:\\n\", cs->caller->dump_name (),\ndiff --git a/gcc/ipa-utils.cc b/gcc/ipa-utils.cc\nindex f6ba07aef48..e6f9a52b180 100644\n--- a/gcc/ipa-utils.cc\n+++ b/gcc/ipa-utils.cc\n@@ -88,9 +88,9 @@ struct searchc_env {\n \n static void\n searchc (struct searchc_env* env, struct cgraph_node *v,\n-\t bool (*ignore_edge) (struct cgraph_edge *))\n+\t bool (*ignore_edge) (class cgraph_edge *))\n {\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n   struct ipa_dfs_info *v_info = (struct ipa_dfs_info *) v->aux;\n \n   /* mark node as old */\n@@ -171,7 +171,7 @@ searchc (struct searchc_env* env, struct cgraph_node *v,\n int\n ipa_reduced_postorder (struct cgraph_node **order,\n \t\t       bool reduce,\n-\t\t       bool (*ignore_edge) (struct cgraph_edge *))\n+\t\t       bool (*ignore_edge) (class cgraph_edge *))\n {\n   struct cgraph_node *node;\n   struct searchc_env env;\n@@ -259,7 +259,7 @@ ipa_get_nodes_in_cycle (struct cgraph_node *node)\n    computed by ipa_reduced_postorder.  */\n \n bool\n-ipa_edge_within_scc (struct cgraph_edge *cs)\n+ipa_edge_within_scc (class cgraph_edge *cs)\n {\n   struct ipa_dfs_info *caller_dfs = (struct ipa_dfs_info *) cs->caller->aux;\n   struct ipa_dfs_info *callee_dfs;\n@@ -274,7 +274,7 @@ ipa_edge_within_scc (struct cgraph_edge *cs)\n struct postorder_stack\n {\n   struct cgraph_node *node;\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n   int ref;\n };\n \n@@ -288,7 +288,7 @@ ipa_reverse_postorder (struct cgraph_node **order)\n   struct cgraph_node *node, *node2;\n   int stack_size = 0;\n   int order_pos = 0;\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n   int pass;\n   struct ipa_ref *ref = NULL;\n \n@@ -381,7 +381,7 @@ scale_ipa_profile_for_fn (struct cgraph_node *node, profile_count orig_count)\n {\n   profile_count to = node->count;\n   profile_count::adjust_for_ipa_scaling (&to, &orig_count);\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n \n   for (e = node->callees; e; e = e->next_callee)\n     e->count = e->count.apply_scale (to, orig_count);\n@@ -527,7 +527,7 @@ ipa_merge_profiles (struct cgraph_node *dst,\n   else\n     {\n       basic_block srcbb, dstbb;\n-      struct cgraph_edge *e, *e2;\n+      class cgraph_edge *e, *e2;\n \n       for (e = dst->callees, e2 = src->callees; e && e2 && match;\n \t   e2 = e2->next_callee, e = e->next_callee)\n@@ -610,7 +610,7 @@ ipa_merge_profiles (struct cgraph_node *dst,\n     }\n   if (match)\n     {\n-      struct cgraph_edge *e, *e2;\n+      class cgraph_edge *e, *e2;\n       basic_block srcbb, dstbb;\n \n       /* Function and global profile may be out of sync.  First scale it same\ndiff --git a/gcc/ipa-utils.h b/gcc/ipa-utils.h\nindex 172ba401d3d..e85eddd2d1c 100644\n--- a/gcc/ipa-utils.h\n+++ b/gcc/ipa-utils.h\n@@ -37,10 +37,10 @@ struct ipa_dfs_info {\n /* In ipa-utils.cc  */\n void ipa_print_order (FILE*, const char *, struct cgraph_node**, int);\n int ipa_reduced_postorder (struct cgraph_node **, bool,\n-\t\t\t  bool (*ignore_edge) (struct cgraph_edge *));\n+\t\t\t  bool (*ignore_edge) (class cgraph_edge *));\n void ipa_free_postorder_info (void);\n vec<cgraph_node *> ipa_get_nodes_in_cycle (struct cgraph_node *);\n-bool ipa_edge_within_scc (struct cgraph_edge *);\n+bool ipa_edge_within_scc (class cgraph_edge *);\n int ipa_reverse_postorder (struct cgraph_node **);\n tree get_base_var (tree);\n void ipa_merge_profiles (struct cgraph_node *dst,\n@@ -127,7 +127,7 @@ void register_odr_enum (tree type);\n    the particular node is a virtual function present in the cache.  */\n \n inline vec <cgraph_node *>\n-possible_polymorphic_call_targets (struct cgraph_edge *e,\n+possible_polymorphic_call_targets (class cgraph_edge *e,\n \t\t\t\t   bool *completep = NULL,\n \t\t\t\t   void **cache_token = NULL,\n \t\t\t\t   bool speculative = false)\n@@ -164,7 +164,7 @@ possible_polymorphic_call_targets (tree ref,\n /* Dump possible targets of a polymorphic call E into F.  */\n \n inline void\n-dump_possible_polymorphic_call_targets (FILE *f, struct cgraph_edge *e,\n+dump_possible_polymorphic_call_targets (FILE *f, class cgraph_edge *e,\n \t\t\t\t\tbool verbose = true)\n {\n   ipa_polymorphic_call_context context(e);\n@@ -182,7 +182,7 @@ dump_possible_polymorphic_call_targets (FILE *f, struct cgraph_edge *e,\n    E.  */\n \n inline bool\n-possible_polymorphic_call_target_p (struct cgraph_edge *e,\n+possible_polymorphic_call_target_p (class cgraph_edge *e,\n \t\t\t\t    struct cgraph_node *n)\n {\n   ipa_polymorphic_call_context context(e);\ndiff --git a/gcc/ipa-visibility.cc b/gcc/ipa-visibility.cc\nindex d0d6348d534..bae7149fb50 100644\n--- a/gcc/ipa-visibility.cc\n+++ b/gcc/ipa-visibility.cc\n@@ -783,7 +783,7 @@ function_and_variable_visibility (bool whole_program)\n \t    {\n \t      while (node->callers)\n \t\t{\n-\t\t  struct cgraph_edge *e = node->callers;\n+\t\t  class cgraph_edge *e = node->callers;\n \n \t\t  e->redirect_callee (alias);\n \t\t  if (gimple_has_body_p (e->caller->decl))\ndiff --git a/gcc/ipa.cc b/gcc/ipa.cc\nindex d1a0bb8ce1d..82378119d22 100644\n--- a/gcc/ipa.cc\n+++ b/gcc/ipa.cc\n@@ -71,7 +71,7 @@ is_indirect_call_target_p (struct cgraph_node *node, void *)\n static void\n update_inlined_to_pointer (struct cgraph_node *node, struct cgraph_node *inlined_to)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   for (e = node->callees; e; e = e->next_callee)\n     if (e->callee->inlined_to)\n       {\n@@ -173,7 +173,7 @@ process_references (symtab_node *snode,\n \n static void\n walk_polymorphic_call_targets (hash_set<void *> *reachable_call_targets,\n-\t\t\t       struct cgraph_edge *edge,\n+\t\t\t       class cgraph_edge *edge,\n \t\t\t       symtab_node **first,\n \t\t\t       hash_set<symtab_node *> *reachable)\n {\n@@ -426,12 +426,12 @@ symbol_table::remove_unreachable_nodes (FILE *file)\n  \t     inline functions we decided to not inline.  */\n \t  if (!in_boundary_p)\n \t    {\n-\t      struct cgraph_edge *e;\n+\t      class cgraph_edge *e;\n \t      /* Keep alive possible targets for devirtualization.  */\n \t      if (opt_for_fn (cnode->decl, optimize)\n \t\t  && opt_for_fn (cnode->decl, flag_devirtualize))\n \t\t{\n-\t\t  struct cgraph_edge *next;\n+\t\t  class cgraph_edge *next;\n \t\t  for (e = cnode->indirect_calls; e; e = next)\n \t\t    {\n \t\t      next = e->next_callee;\ndiff --git a/gcc/lto-cgraph.cc b/gcc/lto-cgraph.cc\nindex 635ed1af76b..e0efae5b6aa 100644\n--- a/gcc/lto-cgraph.cc\n+++ b/gcc/lto-cgraph.cc\n@@ -239,7 +239,7 @@ lto_set_symtab_encoder_in_partition (lto_symtab_encoder_t encoder,\n /* Output the cgraph EDGE to OB using ENCODER.  */\n \n static void\n-lto_output_edge (struct lto_simple_output_block *ob, struct cgraph_edge *edge,\n+lto_output_edge (struct lto_simple_output_block *ob, class cgraph_edge *edge,\n \t\t lto_symtab_encoder_t encoder)\n {\n   unsigned int uid;\n@@ -335,7 +335,7 @@ referenced_from_other_partition_p (symtab_node *node, lto_symtab_encoder_t encod\n bool\n reachable_from_other_partition_p (struct cgraph_node *node, lto_symtab_encoder_t encoder)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   if (!node->definition)\n     return false;\n   if (node->inlined_to)\n@@ -374,7 +374,7 @@ referenced_from_this_partition_p (symtab_node *node,\n bool\n reachable_from_this_partition_p (struct cgraph_node *node, lto_symtab_encoder_t encoder)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   for (e = node->callers; e; e = e->next_caller)\n     if (lto_symtab_encoder_in_partition_p (encoder, e->caller))\n       return true;\n@@ -752,7 +752,7 @@ output_profile_summary (struct lto_simple_output_block *ob)\n    edge.  */\n \n static void\n-output_outgoing_cgraph_edges (struct cgraph_edge *edge,\n+output_outgoing_cgraph_edges (class cgraph_edge *edge,\n \t\t\t      struct lto_simple_output_block *ob,\n \t\t\t      lto_symtab_encoder_t encoder)\n {\n@@ -871,7 +871,7 @@ select_what_to_stream (void)\n lto_symtab_encoder_t\n compute_ltrans_boundary (lto_symtab_encoder_t in_encoder)\n {\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n   int i;\n   lto_symtab_encoder_t encoder;\n   lto_symtab_encoder_iterator lsei;\n@@ -1550,7 +1550,7 @@ input_edge (class lto_input_block *ib, vec<symtab_node *> nodes,\n \t    bool indirect)\n {\n   struct cgraph_node *caller, *callee;\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n   unsigned int stmt_id, speculative_id;\n   profile_count count;\n   cgraph_inline_failed_t inline_failed;\n@@ -1759,7 +1759,7 @@ merge_profile_summaries (struct lto_file_decl_data **file_data_vec)\n   unsigned int j;\n   gcov_unsigned_t max_runs = 0;\n   struct cgraph_node *node;\n-  struct cgraph_edge *edge;\n+  class cgraph_edge *edge;\n \n   /* Find unit with maximal number of runs.  If we ever get serious about\n      roundoff errors, we might also consider computing smallest common\n@@ -2089,7 +2089,7 @@ output_cgraph_opt_summary_p (struct cgraph_node *node)\n /* Output optimization summary for EDGE to OB.  */\n static void\n output_edge_opt_summary (struct output_block *ob ATTRIBUTE_UNUSED,\n-\t\t\t struct cgraph_edge *edge ATTRIBUTE_UNUSED)\n+\t\t\t class cgraph_edge *edge ATTRIBUTE_UNUSED)\n {\n }\n \n@@ -2102,7 +2102,7 @@ output_node_opt_summary (struct output_block *ob,\n {\n   struct ipa_replace_map *map;\n   int i;\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n \n   /* TODO: Should this code be moved to ipa-param-manipulation?  */\n   struct bitpack_d bp;\n@@ -2201,7 +2201,7 @@ output_cgraph_opt_summary (void)\n /* Input optimisation summary of EDGE.  */\n \n static void\n-input_edge_opt_summary (struct cgraph_edge *edge ATTRIBUTE_UNUSED,\n+input_edge_opt_summary (class cgraph_edge *edge ATTRIBUTE_UNUSED,\n \t\t\tclass lto_input_block *ib_main ATTRIBUTE_UNUSED)\n {\n }\n@@ -2215,7 +2215,7 @@ input_node_opt_summary (struct cgraph_node *node,\n {\n   int i;\n   int count;\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n \n   /* TODO: Should this code be moved to ipa-param-manipulation?  */\n   struct bitpack_d bp;\ndiff --git a/gcc/lto-streamer-in.cc b/gcc/lto-streamer-in.cc\nindex 9659d4aa532..41890eda50c 100644\n--- a/gcc/lto-streamer-in.cc\n+++ b/gcc/lto-streamer-in.cc\n@@ -1204,7 +1204,7 @@ fixup_call_stmt_edges_1 (struct cgraph_node *node, gimple **stmts,\n #define STMT_UID_NOT_IN_RANGE(uid) \\\n   (gimple_stmt_max_uid (fn) < uid || uid == 0)\n \n-  struct cgraph_edge *cedge;\n+  class cgraph_edge *cedge;\n   struct ipa_ref *ref = NULL;\n   unsigned int i;\n \ndiff --git a/gcc/lto/lto-partition.cc b/gcc/lto/lto-partition.cc\nindex 4812142c48d..d5694bb23ac 100644\n--- a/gcc/lto/lto-partition.cc\n+++ b/gcc/lto/lto-partition.cc\n@@ -201,7 +201,7 @@ add_symbol_to_partition_1 (ltrans_partition part, symtab_node *node)\n \n   if (cgraph_node *cnode = dyn_cast <cgraph_node *> (node))\n     {\n-      struct cgraph_edge *e;\n+      class cgraph_edge *e;\n       if (!node->alias && c == SYMBOL_PARTITION)\n \tpart->insns += ipa_size_summaries->get (cnode)->size;\n \n@@ -1345,7 +1345,7 @@ lto_balanced_map (int n_lto_partitions, int max_partition_size)\n \n \t  if (cgraph_node *node = dyn_cast <cgraph_node *> (snode))\n \t    {\n-\t      struct cgraph_edge *edge;\n+\t      class cgraph_edge *edge;\n \n \t      gcc_assert (node->definition || node->weakref);\n \n@@ -1618,7 +1618,7 @@ add_node_references_to_partition (ltrans_partition partition, symtab_node *node)\n       }\n   if (cgraph_node *cnode = dyn_cast <cgraph_node *> (node))\n     {\n-      struct cgraph_edge *e;\n+      class cgraph_edge *e;\n \n       /* Add all inline clones and callees that are duplicated.  */\n       for (e = cnode->callees; e; e = e->next_callee)\ndiff --git a/gcc/lto/lto-symtab.cc b/gcc/lto/lto-symtab.cc\nindex b458462dc23..54ad072a1c7 100644\n--- a/gcc/lto/lto-symtab.cc\n+++ b/gcc/lto/lto-symtab.cc\n@@ -43,7 +43,7 @@ static void\n lto_cgraph_replace_node (struct cgraph_node *node,\n \t\t\t struct cgraph_node *prevailing_node)\n {\n-  struct cgraph_edge *e, *next;\n+  class cgraph_edge *e, *next;\n   bool compatible_p;\n \n   if (dump_file)\ndiff --git a/gcc/passes.cc b/gcc/passes.cc\nindex 9ec37eeb2a9..50f4ac2da2b 100644\n--- a/gcc/passes.cc\n+++ b/gcc/passes.cc\n@@ -3229,7 +3229,7 @@ debug_properties (unsigned int props)\n bool\n function_called_by_processed_nodes_p (void)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   for (e = cgraph_node::get (current_function_decl)->callers;\n        e;\n        e = e->next_caller)\ndiff --git a/gcc/predict.cc b/gcc/predict.cc\nindex 2859f64964b..8ee18ee4891 100644\n--- a/gcc/predict.cc\n+++ b/gcc/predict.cc\n@@ -3747,7 +3747,7 @@ drop_profile (struct cgraph_node *node, profile_count call_count)\n       fn->cfg->count_max = profile_count::uninitialized ();\n     }\n \n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n   for (e = node->callees; e; e = e->next_callee)\n     e->count = gimple_bb (e->call_stmt)->count;\n   for (e = node->indirect_calls; e; e = e->next_callee)\n@@ -3784,7 +3784,7 @@ handle_missing_profiles (void)\n      lost some profile.  Drop its function profile to PROFILE_GUESSED.  */\n   FOR_EACH_DEFINED_FUNCTION (node)\n     {\n-      struct cgraph_edge *e;\n+      class cgraph_edge *e;\n       profile_count call_count = profile_count::zero ();\n       gcov_type max_tp_first_run = 0;\n       struct function *fn = DECL_STRUCT_FUNCTION (node->decl);\n@@ -3818,7 +3818,7 @@ handle_missing_profiles (void)\n      potentially called by COMDATs we already dropped the profile on.  */\n   while (worklist.length () > 0)\n     {\n-      struct cgraph_edge *e;\n+      class cgraph_edge *e;\n \n       node = worklist.pop ();\n       for (e = node->callees; e; e = e->next_caller)\ndiff --git a/gcc/trans-mem.cc b/gcc/trans-mem.cc\nindex b10704b2f55..d1eaf2a20b6 100644\n--- a/gcc/trans-mem.cc\n+++ b/gcc/trans-mem.cc\n@@ -4332,7 +4332,7 @@ ipa_tm_note_irrevocable (struct cgraph_node *node,\n \t\t\t cgraph_node_queue *worklist_p)\n {\n   struct tm_ipa_cg_data *d = get_cg_data (&node, true);\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n \n   d->is_irrevocable = true;\n \n@@ -4764,7 +4764,7 @@ ipa_tm_mayenterirr_function (struct cgraph_node *node)\n static void\n ipa_tm_diagnose_tm_safe (struct cgraph_node *node)\n {\n-  struct cgraph_edge *e;\n+  class cgraph_edge *e;\n \n   for (e = node->callees; e ; e = e->next_callee)\n     if (!is_tm_callable (e->callee->decl)\n@@ -5185,7 +5185,7 @@ ipa_tm_transform_calls_redirect (struct cgraph_node *node,\n {\n   gcall *stmt = as_a <gcall *> (gsi_stmt (*gsi));\n   struct cgraph_node *new_node;\n-  struct cgraph_edge *e = node->get_edge (stmt);\n+  class cgraph_edge *e = node->get_edge (stmt);\n   tree fndecl = gimple_call_fndecl (stmt);\n \n   /* For indirect calls, pass the address through the runtime.  */\n@@ -5558,7 +5558,7 @@ ipa_tm_execute (void)\n   for (i = 0; i < irr_worklist.length (); ++i)\n     {\n       struct cgraph_node *caller;\n-      struct cgraph_edge *e;\n+      class cgraph_edge *e;\n       struct ipa_ref *ref;\n \n       if (i > 256 && i == irr_worklist.length () / 8)\ndiff --git a/gcc/tree-cfgcleanup.cc b/gcc/tree-cfgcleanup.cc\nindex 4cf754f5e56..dee7c45a943 100644\n--- a/gcc/tree-cfgcleanup.cc\n+++ b/gcc/tree-cfgcleanup.cc\n@@ -1550,7 +1550,7 @@ delete_unreachable_blocks_update_callgraph (cgraph_node *dst_node,\n \n           for (bsi = gsi_start_bb (b); !gsi_end_p (bsi); gsi_next (&bsi))\n \t    {\n-\t      struct cgraph_edge *e;\n+\t      class cgraph_edge *e;\n \t      struct cgraph_node *node;\n \n \t      dst_node->remove_stmt_references (gsi_stmt (bsi));\ndiff --git a/gcc/tree-inline.cc b/gcc/tree-inline.cc\nindex df5597ef30d..2c51eed9b6b 100644\n--- a/gcc/tree-inline.cc\n+++ b/gcc/tree-inline.cc\n@@ -2291,7 +2291,7 @@ copy_bb (copy_body_data *id, basic_block bb,\n \t     callgraph edges and update or duplicate them.  */\n \t  if (gcall *call_stmt = dyn_cast <gcall *> (stmt))\n \t    {\n-\t      struct cgraph_edge *edge;\n+\t      class cgraph_edge *edge;\n \n \t      switch (id->transform_call_graph_edges)\n \t\t{\n@@ -2299,7 +2299,7 @@ copy_bb (copy_body_data *id, basic_block bb,\n \t\t  edge = id->src_node->get_edge (orig_stmt);\n \t\t  if (edge)\n \t\t    {\n-\t\t      struct cgraph_edge *old_edge = edge;\n+\t\t      class cgraph_edge *old_edge = edge;\n \n \t\t      /* A speculative call is consist of multiple\n \t\t\t edges - indirect edge and one or more direct edges\n@@ -3062,7 +3062,7 @@ redirect_all_calls (copy_body_data * id, basic_block bb)\n       gimple *stmt = gsi_stmt (si);\n       if (is_gimple_call (stmt))\n \t{\n-\t  struct cgraph_edge *edge = id->dst_node->get_edge (stmt);\n+\t  class cgraph_edge *edge = id->dst_node->get_edge (stmt);\n \t  if (edge)\n \t    {\n \t      if (!id->killed_new_ssa_names)\n@@ -4850,7 +4850,7 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id,\n   hash_map<tree, tree> *st = NULL;\n   tree return_slot;\n   tree modify_dest;\n-  struct cgraph_edge *cg_edge;\n+  class cgraph_edge *cg_edge;\n   cgraph_inline_failed_t reason;\n   basic_block return_block;\n   edge e;\n@@ -5124,7 +5124,7 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id,\n   if (id->src_cfun->calls_alloca && !gimple_call_noreturn_p (stmt))\n     /* Don't do this for VLA allocations though, just for user alloca\n        calls.  */\n-    for (struct cgraph_edge *e = id->src_node->callees; e; e = e->next_callee)\n+    for (class cgraph_edge *e = id->src_node->callees; e; e = e->next_callee)\n       if (gimple_maybe_alloca_call_p (e->call_stmt)\n \t  && !gimple_call_alloca_for_var_p (e->call_stmt))\n \t{\n@@ -5672,7 +5672,7 @@ optimize_inline_calls (tree fn)\n \n   if (flag_checking)\n     {\n-      struct cgraph_edge *e;\n+      class cgraph_edge *e;\n \n       id.dst_node->verify ();\n \n@@ -6568,7 +6568,7 @@ tree_function_versioning (tree old_decl, tree new_decl,\n      within proper range in the cloned function.  */\n   if (new_entry)\n     {\n-      struct cgraph_edge *e;\n+      class cgraph_edge *e;\n       rebuild_frequencies ();\n \n       new_version_node->count = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;\ndiff --git a/gcc/tree-inline.h b/gcc/tree-inline.h\nindex aeedab0c26f..06025a15f0c 100644\n--- a/gcc/tree-inline.h\n+++ b/gcc/tree-inline.h\n@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.  If not see\n #define GCC_TREE_INLINE_H\n \n \n-struct cgraph_edge;\n+class cgraph_edge;\n \n /* Indicate the desired behavior wrt call graph edges.  We can either\n    duplicate the edge (inlining, cloning), move the edge (versioning,\n",
    "prefixes": [
        "02/30"
    ]
}