get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2217728,
    "url": "http://patchwork.ozlabs.org/api/patches/2217728/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260330123443.D98954BA9019@sourceware.org/",
    "project": {
        "id": 17,
        "url": "http://patchwork.ozlabs.org/api/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": "<20260330123443.D98954BA9019@sourceware.org>",
    "list_archive_url": null,
    "date": "2026-03-30T12:33:47",
    "name": "tree-optimization/124692 - update stmt before folding",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "3c65f60948d5fc838c4c9df1c86111cae4c79aec",
    "submitter": {
        "id": 4338,
        "url": "http://patchwork.ozlabs.org/api/people/4338/?format=api",
        "name": "Richard Biener",
        "email": "rguenther@suse.de"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260330123443.D98954BA9019@sourceware.org/mbox/",
    "series": [
        {
            "id": 498020,
            "url": "http://patchwork.ozlabs.org/api/series/498020/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=498020",
            "date": "2026-03-30T12:33:47",
            "name": "tree-optimization/124692 - update stmt before folding",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498020/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2217728/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2217728/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 (1024-bit key;\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=lk+kWZs6;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=YWPX+ttA;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=y2K5xR0n;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=FuL4Qc1p;\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 (1024-bit key,\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=lk+kWZs6;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=YWPX+ttA;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=y2K5xR0n;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=FuL4Qc1p",
            "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=suse.de",
            "sourceware.org; spf=pass smtp.mailfrom=suse.de",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=195.135.223.131",
            "smtp-out2.suse.de;\n\tnone"
        ],
        "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 4fkrKz3jRkz1y1q\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 23:34:46 +1100 (AEDT)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id D98954BA9019\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 12:34:43 +0000 (GMT)",
            "from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])\n by sourceware.org (Postfix) with ESMTPS id 40E364B92083\n for <gcc-patches@gcc.gnu.org>; Mon, 30 Mar 2026 12:33:49 +0000 (GMT)",
            "from murzim.nue2.suse.org (unknown [10.168.4.243])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-out2.suse.de (Postfix) with ESMTPS id 5E0815BE8D\n for <gcc-patches@gcc.gnu.org>; Mon, 30 Mar 2026 12:33:47 +0000 (UTC)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org D98954BA9019",
            "OpenDKIM Filter v2.11.0 sourceware.org 40E364B92083"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 40E364B92083",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 40E364B92083",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774874029; cv=none;\n b=sCG0IsAqEscYJ++A0krAvMk4ppiYuYkvoVJxX532XELoYXz/ii+hx4ufiS23ET9FIl5hJO2Xsvsot8l1BV8m9sGj3dzJ7lWQPyAb5cF4oFkKXs4a2WAj8KkFlb19QRCEkMQ5Emrr01+gAdOnqpYSGFw0BDwKpZwonUs1chbl5h8=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1774874029; c=relaxed/simple;\n bh=Qix0Sjnk98PvlKHATdriADWFlOGxetpFHIXvgVxJ+fg=;\n h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:Date:\n From:To:Subject:MIME-Version;\n b=S4FcQQLQCFjuuvACy2HPXX2PPpKWrtQHdNPUGa2l1OozJZVAdNUnzyMzbQZ57052J9tifwHn+0xVihmwHOdSP9cKEPlFFyDw2MEn9/50yU+QPYlGimD3lv5u6LhAUmZzd23vAgYQwLwffs8W62naZua7TRk/5HwVlmvj/J/HAvg=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1774874028;\n h=from:from:reply-to:date:date:to:to:cc:mime-version:mime-version:\n content-type:content-type; bh=lYYVpBwOzCeq0Pidk302zNJEAsrzV3gm4PNiYIHjaJo=;\n b=lk+kWZs6n/dwQ3T6XkkIvuWyqusb41J1FJd6Z7jbTMWYR2He/OAflMCN5qP3oa0g2JMMy7\n +bu9pn9otimS6WEp0kYC1o+fe4p7yl3OFZlls/dJ3/8GSDBL7v9zBVn3cpzPW6WTFTpfEo\n hEx61XolzhGOSqPKz8PVHRSPEOS4Ayc=",
            "v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1774874028;\n h=from:from:reply-to:date:date:to:to:cc:mime-version:mime-version:\n content-type:content-type; bh=lYYVpBwOzCeq0Pidk302zNJEAsrzV3gm4PNiYIHjaJo=;\n b=YWPX+ttAnYfogS/cUBfQCtqvAG0VbT3GOSBOckPwswxmbD39L02BlxHYTxnODr/SakBxjV\n X8+MJQv3IRRp/2Aw==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1774874027;\n h=from:from:reply-to:date:date:to:to:cc:mime-version:mime-version:\n content-type:content-type; bh=lYYVpBwOzCeq0Pidk302zNJEAsrzV3gm4PNiYIHjaJo=;\n b=y2K5xR0nrzMiHc1UZ/gEmDZ+hhhLX3ODTLcriFg+KSem4VuADhCSDU2Opo6pPhXaYEjhcA\n VUGjakttnWaykCk/M75W1E0dJGcDtv/zCx84jITZWyv9L34KCipmwilRu7oQ0Y1fbcMIbD\n Oi0xkZoaansDK2Tee4DBZJsz7JyKCEA=",
            "v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1774874027;\n h=from:from:reply-to:date:date:to:to:cc:mime-version:mime-version:\n content-type:content-type; bh=lYYVpBwOzCeq0Pidk302zNJEAsrzV3gm4PNiYIHjaJo=;\n b=FuL4Qc1pDJStRIjJk4WbKf1PAANQVqvdARu1k8rbYAWLQ++c8CHuUcYoPQDKmPqGgNLrNK\n GpBIaSM654DuWeCw=="
        ],
        "Date": "Mon, 30 Mar 2026 14:33:47 +0200 (CEST)",
        "From": "Richard Biener <rguenther@suse.de>",
        "To": "gcc-patches@gcc.gnu.org",
        "Subject": "[PATCH] tree-optimization/124692 - update stmt before folding",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=US-ASCII",
        "X-Spamd-Result": "default: False [-1.80 / 50.00]; BAYES_HAM(-3.00)[100.00%];\n MISSING_MID(2.50)[]; NEURAL_HAM_LONG(-1.00)[-0.998];\n NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain];\n TO_MATCH_ENVRCPT_ALL(0.00)[]; RCPT_COUNT_ONE(0.00)[1];\n MISSING_XM_UA(0.00)[]; FROM_EQ_ENVFROM(0.00)[];\n TO_DN_NONE(0.00)[]; ARC_NA(0.00)[]; RCVD_COUNT_ZERO(0.00)[0];\n FUZZY_RATELIMITED(0.00)[rspamd.com];\n DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]",
        "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",
        "Message-Id": "<20260330123443.D98954BA9019@sourceware.org>"
    },
    "content": "The following makes sure SSA operands are up-to-date before folding.\nEsp. when replace_uses_by is invoked from SCEV cprop which now has\nranger enabled we can otherwise end up ICEing where purpoted SSA\nnames now are constants.  This follows what forwprop does.\n\nBootstrap and regtest ongoing on x86_64-unknown-linux-gnu, will\npush if that succeeds.\n\nRichard.\n\n\tPR tree-optimization/124692\n\t* tree-cfg.cc (replace_uses_by): Call update_stmt after\n\tsubstitution and before folding.\n\n\t* gcc.dg/torture/pr124692.c: New testcase.\n---\n gcc/testsuite/gcc.dg/torture/pr124692.c | 22 ++++++++++++++++++++++\n gcc/tree-cfg.cc                         |  8 +++++---\n 2 files changed, 27 insertions(+), 3 deletions(-)\n create mode 100644 gcc/testsuite/gcc.dg/torture/pr124692.c",
    "diff": "diff --git a/gcc/testsuite/gcc.dg/torture/pr124692.c b/gcc/testsuite/gcc.dg/torture/pr124692.c\nnew file mode 100644\nindex 00000000000..340f7ea02d1\n--- /dev/null\n+++ b/gcc/testsuite/gcc.dg/torture/pr124692.c\n@@ -0,0 +1,22 @@\n+/* { dg-do compile } */\n+\n+int a, b, d, e[3][1], f, g, h;\n+unsigned c;\n+int main()\n+{\n+  while (b)\n+    {\n+      h = g;\n+      for (b = 0; b < 2; b++)\n+\t;\n+      for (; c; c++)\n+\t{\n+\t  int j = e[b][h];\n+\t  f = a < 0 ? j : j - a;\n+\t  if (!f)\n+\t    break;\n+\t  g = c;\n+\t}\n+    }\n+  return 0;\n+}\ndiff --git a/gcc/tree-cfg.cc b/gcc/tree-cfg.cc\nindex 66ea54f8b85..3b95e0a68f1 100644\n--- a/gcc/tree-cfg.cc\n+++ b/gcc/tree-cfg.cc\n@@ -1988,14 +1988,16 @@ replace_uses_by (tree name, tree val)\n \t\tif (op && TREE_CODE (op) == ADDR_EXPR)\n \t\t  recompute_tree_invariant_for_addr_expr (op);\n \t      }\n+\t  update_stmt (stmt);\n \n \t  if (fold_stmt (&gsi))\n-\t    stmt = gsi_stmt (gsi);\n+\t    {\n+\t      stmt = gsi_stmt (gsi);\n+\t      update_stmt (stmt);\n+\t    }\n \n \t  if (maybe_clean_or_replace_eh_stmt (orig_stmt, stmt))\n \t    gimple_purge_dead_eh_edges (gimple_bb (stmt));\n-\n-\t  update_stmt (stmt);\n \t}\n     }\n \n",
    "prefixes": []
}