get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2233239,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2233239/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260505223045.347444-5-feedabl3@gmail.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": "<20260505223045.347444-5-feedabl3@gmail.com>",
    "list_archive_url": null,
    "date": "2026-05-05T22:30:46",
    "name": "[RFC,3/3] wasm: Adjust tests",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "44627c633e283371846f99724e5c3162248ab046",
    "submitter": {
        "id": 92146,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/92146/?format=api",
        "name": "feedable",
        "email": "feedabl3@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260505223045.347444-5-feedabl3@gmail.com/mbox/",
    "series": [
        {
            "id": 502902,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/502902/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=502902",
            "date": "2026-05-05T22:30:44",
            "name": "wasm: New backend",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/502902/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2233239/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2233239/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=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=FOZXJXA5;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.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=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=FOZXJXA5",
            "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com",
            "sourceware.org; spf=pass smtp.mailfrom=gmail.com",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=2a00:1450:4864:20::32e"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org [38.145.34.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 4g9Cx3382Pz1yJq\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 08:34:15 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 962A64BA2E06\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  5 May 2026 22:34:13 +0000 (GMT)",
            "from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com\n [IPv6:2a00:1450:4864:20::32e])\n by sourceware.org (Postfix) with ESMTPS id 3C5664BA2E0D\n for <gcc-patches@gcc.gnu.org>; Tue,  5 May 2026 22:31:17 +0000 (GMT)",
            "by mail-wm1-x32e.google.com with SMTP id\n 5b1f17b1804b1-48d102471a4so24847795e9.2\n for <gcc-patches@gcc.gnu.org>; Tue, 05 May 2026 15:31:17 -0700 (PDT)",
            "from 7a38.moduleworks.com\n ([2a02:8308:900b:fc00:1c70:a43b:cde8:2b29])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-48e53559d8esm79055e9.9.2026.05.05.15.31.13\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 05 May 2026 15:31:14 -0700 (PDT)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 962A64BA2E06",
            "OpenDKIM Filter v2.11.0 sourceware.org 3C5664BA2E0D"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 3C5664BA2E0D",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 3C5664BA2E0D",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1778020277; cv=none;\n b=lW2YnFf8tyiLhMV/EgWyoayExy6IrUDwMi44zDTXV/tZx2AKtxwX8Zb71t39IQC2oCwJacmc7qo4W3pR6nQZHtmQ9CRcZW1nVBRzg0BcGFDF0S614gYLZs92voLngIiKuerad2rIl6ZMCo5c0YSVvG5XBqhpfYmldCR1groqQUY=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1778020277; c=relaxed/simple;\n bh=5ihIGhcAYtXc2da7xDCcE5X541nEOF+UjkgF2bGhd4U=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=LGf3pQC4zgG4hm885QR9ERpqGtsEzKTKmrxnaGxwupbamIn3y4P8NFaAzmgTe4aiTGNEhbAWk84E41LceMg3c+bepZzl99iVvAmLryX9tTk4JtZZ79uV9LbTj8VOXfs6aDiMcJ2KVJAK80BVBDG/EqjQNOKDWsq/JS4TAUSzbhg=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1778020276; x=1778625076; darn=gcc.gnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=laxrzMkcNXhf8cbblkYZKjc0V2IWri6haJbLrud1ABg=;\n b=FOZXJXA5kjez27Nr/4sumgycCeV9cT2v1Vv1XlPzrgP1+nsgU6HWD82SaUvM7Qtwqm\n cbDrcF4IUzV0y0mTKeHLzOTYaL1aqlHLEQCejDb6Pk3Lihzwf3lqjWaVsRUAwmh6mwt3\n W2pR9ViL7zanMOXP/8YBWJgsUawEhPTU1HxjXtfmXkYX+ySpEt4DtSuTClqYuI8X2MGP\n C8ONNA+VRKO1x8gBWoQC0gGQD8vhMvemF9ZTj4nF3wiDfGwIYsEjzEvkaN2amXIXB763\n Vn3VX9QFIBhagovhrZR0dAGHsagOJUQMEzJwsHBDUldWc3jD/2zQdcUMlG7zrBFWWq1e\n OsAg==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778020276; x=1778625076;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=laxrzMkcNXhf8cbblkYZKjc0V2IWri6haJbLrud1ABg=;\n b=Td4ewNUh2oU7QvEXSl6rRGExvr/rCi4DrzWt6Nj7wQFKESgKYv4UUfptzqccpyJzrz\n +wj3816IWVY6Ajfqd4VEqQ7p6edaDfkXoMctA2WBCeWwqGiPP0FX8K0MZnONoMxmdyHF\n 96BgqFLHSAmkulGIBSCZc8odIEKVbl7uFT51AVNH/dirRiHTuKfLq8i/z9Cmz8QufI6p\n mfmsR9dM0jYiu+tuC3HQwC+xIOhu1Tfecsrvq+mXi+BRtHowW3bX0mSJdkxul4asySbz\n NF/rnInBEB0uiEh4rVJmTt773ASRRjrBwmWsmQRp8cmtbs8dK1l2qS24ksILmHnyNZiS\n Td1Q==",
        "X-Gm-Message-State": "AOJu0Ywt3v314tgI+NkhWAcMPla8fyQ7LH97axaV+zyxZssn8GTLf9dE\n 7YEC7v5NGTZKqxtsPNDVx5dW7tqilOde27gOwD64Zf7RrIh2VKeHqmLEGHSloA==",
        "X-Gm-Gg": "AeBDietUfTb5u0jOCGQlaR2v8CnLYHHr9rPOTnpMM16RU/68jfVKA94JxlL+LNz67XS\n J44SIZIQiiXJb/vC2nov3fkwjuck4jRNdW60K4elhYVevQWIUfBDNU9+evX1zaGxHNllhp85Mld\n 5ewF3ehs38vwIevrFZ0B7Lmgqf/fcvpWhJqGMhKFT81ZCsFOr0vs8eRnpO8OAENbbziR7CkJ4Nn\n eNIDRkRiyxc3IV8GQ4zpA38ELh2F0ZSZsvBGcPkVQFvaAC2XTDaW3Jr2Uu/af2V/KU/rJ6n/1AY\n oXCye7a1mdUofxM8sDrsEZII9pf/x0USZTn5HlQQ7cTG3ErmLZK48g0GI1QHCDFmDcmwoZfbEwB\n DUo7DGESqbpqYcV+Icy4HOCTkguHv34EZn5vgNbiq3VqVEMZNgl+mjf3lrle6cbWs+65JmHWE7E\n BvdAgsLlEgqtcKWJ/cVLsHv9wj6Av+YMkOAyXUxPBMvDhgbZmAOPwlObzIuX4=",
        "X-Received": "by 2002:a05:600c:4f53:b0:48a:5565:ec3d with SMTP id\n 5b1f17b1804b1-48e51f44577mr17173205e9.22.1778020275588;\n Tue, 05 May 2026 15:31:15 -0700 (PDT)",
        "From": "feedable <feedabl3@gmail.com>",
        "To": "gcc-patches@gcc.gnu.org",
        "Cc": "feedable <feedabl3@gmail.com>",
        "Subject": "[RFC PATCH 3/3] wasm: Adjust tests",
        "Date": "Wed,  6 May 2026 01:30:46 +0300",
        "Message-ID": "<20260505223045.347444-5-feedabl3@gmail.com>",
        "X-Mailer": "git-send-email 2.54.0",
        "In-Reply-To": "<20260505223045.347444-2-feedabl3@gmail.com>",
        "References": "<20260505223045.347444-2-feedabl3@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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": "This patch marks tests that are not supported by the new backend skipped.\n\ngcc/testsuite/ChangeLog:\n\n\t* c-c++-common/analyzer/errno-1.c: Mark skipped for wasm (wasi-libc).\n\t* c-c++-common/analyzer/isatty-1.c: Likewise.\n\t* gcc.dg/analyzer/fd-access-mode-target-headers.c: Likewise.\n\t* gcc.dg/analyzer/fd-mktemp-family.c: Likewise.\n\t* gcc.dg/analyzer/mkdtemp-1.c: Likewise.\n\t* gcc.dg/analyzer/mkostemp-1.c: Likewise.\n\t* gcc.dg/analyzer/mkostemps-1.c: Likewise.\n\t* gcc.dg/analyzer/mkstemp-1.c: Likewise.\n\t* gcc.dg/analyzer/mkstemps-1.c: Likewise.\n\t* gcc.dg/analyzer/mktemp-1.c: Likewise.\n\t* gcc.dg/builtin-alloc-size.c: Likewise.\n\t* gcc.dg/builtins-nonnull.c: Likewise.\n\t* gcc.c-torture/compile/20000804-1.c: Mark skipped for wasm\n\t(register alllocation).\n\t* gcc.c-torture/compile/pr55921.c: Likewise.\n\t* gcc.c-torture/execute/20030222-1.c: Likewise.\n\t* gcc.dg/lower-subreg-1.c: Likewise.\n\t* gcc.c-torture/compile/pr60655-1.c: Mark skipped for wasm\n\t(named sections).\n\t* gcc.dg/array-quals-1.c: Likewise.\n\t* gcc.dg/pr49551.c: Likewise.\n\t* gcc.dg/profile-info-section.c: Mark skipped for wasm (profiling).\n\t* gcc.misc-tests/gcov-23.c: Likewise.\n\t* gcc.misc-tests/gcov.exp: Likewise.\n\t* gcc.c-torture/execute/builtins/20010124-1.x: Mark skipped for wasm\n\t(asm decls).\n\t* gcc.c-torture/execute/ieee/bfloat16-builtin-issignaling-1.c: Mark\n\tskipped for wasm (no signaling nans).\n\t* gcc.c-torture/execute/ieee/builtin-issignaling-1.c: Likewise.\n\t* gcc.c-torture/execute/ieee/float128-builtin-issignaling-1.c: Likewise.\n\t* gcc.c-torture/execute/ieee/float128x-builtin-issignaling-1.c:\n\tLikewise.\n\t* gcc.c-torture/execute/ieee/float16-builtin-issignaling-1.c: Likewise.\n\t* gcc.c-torture/execute/ieee/float32-builtin-issignaling-1.c: Likewise.\n\t* gcc.c-torture/execute/ieee/float32x-builtin-issignaling-1.c: Likewise.\n\t* gcc.c-torture/execute/ieee/float64-builtin-issignaling-1.c: Likewise.\n\t* gcc.c-torture/execute/ieee/float64x-builtin-issignaling-1.c: Likewise.\n\t* gcc.c-torture/execute/pr67037-1.c: Fork from pr67037.c.\n\t* gcc.c-torture/execute/pr67037.c: Mark skipped for wasm\n\t(unprotoyped call).\n\t* gcc.dg/builtin-apply5.c: Likewise.\n\t* gcc.dg/20060410.c: Mark skipped for wasm (output format).\n\t* gcc.dg/charset/function.c: Likewise.\n\t* gcc.dg/ipa/symver1.c: Likewise.\n\t* gcc.dg/pr28755.c: Likewise.\n\t* gcc.dg/attr-weakref-1.c: Mark skipped for wasm (weakrefs).\n\t* gcc.dg/builtin-prefetch-1.c: Mark skipped for wasm (no prefetch).\n\t* gcc.dg/builtins-config.h: Mark wasm as not supporting the full C99\n\truntime.\n\t* gcc.dg/c23-stdint-1.c: Likewise.\n\t* gcc.dg/c99-stdint-1.c: Likewise.\n\t* gcc.dg/c99-stdint-2.c: Likewise.\n\t* gcc.dg/c99-stdint-7.c: Likewise.\n\t* gcc.dg/c99-stdint-8.c: Likewise.\n\t* gcc.dg/format/pr78304.c: Likewise.\n\t* gcc.dg/stdint-width-1.c: Likewise.\n\t* gcc.dg/stdint-width-2.c: Likewise.\n\t* gcc.dg/pch/valid-1.c: Mark skipped for wasm (debug info).\n\t* gcc.dg/cpp/escape-3.i: Likewise.\n\t* gcc.dg/pr115066.c: Likewise.\n\t* gcc.dg/tls/thr-cse-1.c: Mark skipped for wasm (threads).\n\t* gcc.misc-tests/options.exp: Mark skipped for wasm\n\t(WABT commandline).\n\t* lib/file-format.exp: Introduce wasm object file format.\n\t* lib/scanasm.exp: Likewise.\n\t* lib/target-supports.exp: Disable unsupported functionality.\n---\n gcc/testsuite/c-c++-common/analyzer/errno-1.c |  2 +\n .../c-c++-common/analyzer/isatty-1.c          |  1 +\n .../gcc.c-torture/compile/20000804-1.c        |  1 +\n gcc/testsuite/gcc.c-torture/compile/pr55921.c |  1 +\n .../gcc.c-torture/compile/pr60655-1.c         |  2 +-\n .../gcc.c-torture/execute/20030222-1.c        |  2 +-\n .../execute/builtins/20010124-1.x             |  2 +-\n .../ieee/bfloat16-builtin-issignaling-1.c     |  1 +\n .../execute/ieee/builtin-issignaling-1.c      |  1 +\n .../ieee/float128-builtin-issignaling-1.c     |  1 +\n .../ieee/float128x-builtin-issignaling-1.c    |  1 +\n .../ieee/float16-builtin-issignaling-1.c      |  1 +\n .../ieee/float32-builtin-issignaling-1.c      |  1 +\n .../ieee/float32x-builtin-issignaling-1.c     |  1 +\n .../ieee/float64-builtin-issignaling-1.c      |  1 +\n .../ieee/float64x-builtin-issignaling-1.c     |  1 +\n .../gcc.c-torture/execute/pr67037-1.c         | 56 +++++++++++++++++++\n gcc/testsuite/gcc.c-torture/execute/pr67037.c |  4 +-\n gcc/testsuite/gcc.dg/20060410.c               |  2 +-\n .../analyzer/fd-access-mode-target-headers.c  |  1 +\n .../gcc.dg/analyzer/fd-mktemp-family.c        |  1 +\n gcc/testsuite/gcc.dg/analyzer/mkdtemp-1.c     |  1 +\n gcc/testsuite/gcc.dg/analyzer/mkostemp-1.c    |  1 +\n gcc/testsuite/gcc.dg/analyzer/mkostemps-1.c   |  1 +\n gcc/testsuite/gcc.dg/analyzer/mkstemp-1.c     |  1 +\n gcc/testsuite/gcc.dg/analyzer/mkstemps-1.c    |  1 +\n gcc/testsuite/gcc.dg/analyzer/mktemp-1.c      |  1 +\n gcc/testsuite/gcc.dg/array-quals-1.c          |  1 +\n gcc/testsuite/gcc.dg/attr-weakref-1.c         |  3 +\n gcc/testsuite/gcc.dg/builtin-alloc-size.c     |  1 +\n gcc/testsuite/gcc.dg/builtin-apply5.c         |  1 +\n gcc/testsuite/gcc.dg/builtin-prefetch-1.c     |  3 +-\n gcc/testsuite/gcc.dg/builtins-config.h        |  2 +\n gcc/testsuite/gcc.dg/builtins-nonnull.c       |  1 +\n gcc/testsuite/gcc.dg/c23-stdint-1.c           |  1 +\n gcc/testsuite/gcc.dg/c99-stdint-1.c           |  1 +\n gcc/testsuite/gcc.dg/c99-stdint-2.c           |  1 +\n gcc/testsuite/gcc.dg/c99-stdint-7.c           |  3 +\n gcc/testsuite/gcc.dg/c99-stdint-8.c           |  1 +\n gcc/testsuite/gcc.dg/charset/function.c       |  2 +-\n gcc/testsuite/gcc.dg/cpp/escape-3.i           |  1 +\n gcc/testsuite/gcc.dg/format/pr78304.c         |  1 +\n gcc/testsuite/gcc.dg/ipa/symver1.c            |  2 +-\n gcc/testsuite/gcc.dg/lower-subreg-1.c         |  2 +-\n gcc/testsuite/gcc.dg/pch/valid-1.c            |  1 +\n gcc/testsuite/gcc.dg/pr115066.c               |  2 +-\n gcc/testsuite/gcc.dg/pr28755.c                |  2 +-\n gcc/testsuite/gcc.dg/pr49551.c                |  2 +-\n gcc/testsuite/gcc.dg/profile-info-section.c   |  1 +\n gcc/testsuite/gcc.dg/stdint-width-1.c         |  1 +\n gcc/testsuite/gcc.dg/stdint-width-2.c         |  1 +\n gcc/testsuite/gcc.dg/tls/thr-cse-1.c          |  2 +-\n gcc/testsuite/gcc.misc-tests/gcov-23.c        |  1 +\n gcc/testsuite/gcc.misc-tests/gcov.exp         |  4 ++\n gcc/testsuite/gcc.misc-tests/options.exp      |  9 ++-\n gcc/testsuite/lib/file-format.exp             |  8 ++-\n gcc/testsuite/lib/scanasm.exp                 |  2 +\n gcc/testsuite/lib/target-supports.exp         | 39 ++++++++++---\n 58 files changed, 166 insertions(+), 26 deletions(-)\n create mode 100644 gcc/testsuite/gcc.c-torture/execute/pr67037-1.c",
    "diff": "diff --git a/gcc/testsuite/c-c++-common/analyzer/errno-1.c b/gcc/testsuite/c-c++-common/analyzer/errno-1.c\nindex 6b9d28c1079..39fa4aa58cd 100644\n--- a/gcc/testsuite/c-c++-common/analyzer/errno-1.c\n+++ b/gcc/testsuite/c-c++-common/analyzer/errno-1.c\n@@ -1,3 +1,5 @@\n+/* { dg-skip-if \"wasi-libc doesn't work well with analyzer\" { wasm*-*-* } } */\n+\n #include <errno.h>\n #include \"analyzer-decls.h\"\n \ndiff --git a/gcc/testsuite/c-c++-common/analyzer/isatty-1.c b/gcc/testsuite/c-c++-common/analyzer/isatty-1.c\nindex c5d376da498..af4ba4721d6 100644\n--- a/gcc/testsuite/c-c++-common/analyzer/isatty-1.c\n+++ b/gcc/testsuite/c-c++-common/analyzer/isatty-1.c\n@@ -1,5 +1,6 @@\n /* { dg-skip-if \"\" { powerpc*-*-aix* } } */\n /* { dg-skip-if \"\" { \"avr-*-*\" } } */\n+/* { dg-skip-if \"\" { \"wasm*-*-*\" } } */\n \n #include <errno.h>\n #include \"../../gcc.dg/analyzer/analyzer-decls.h\"\ndiff --git a/gcc/testsuite/gcc.c-torture/compile/20000804-1.c b/gcc/testsuite/gcc.c-torture/compile/20000804-1.c\nindex c6f6497b7a7..dbc2e8d3a21 100644\n--- a/gcc/testsuite/gcc.c-torture/compile/20000804-1.c\n+++ b/gcc/testsuite/gcc.c-torture/compile/20000804-1.c\n@@ -7,6 +7,7 @@\n /* { dg-xfail-if \"Inconsistent constraint on asm\" { csky-*-* } { \"-O0\" } { \"\" } } */\n /* { dg-xfail-if \"Inconsistent constraint on asm\" { bpf-*-* } { \"-O0\" } { \"\" } } */\n /* { dg-xfail-if \"\" { h8300-*-* } } */\n+/* { dg-skip-if \"\" { wasm*-*-* } } */\n /* { dg-require-stack-size \"99*4+16\" } */\n /* { dg-additional-options \"-std=gnu89\" } */\n \ndiff --git a/gcc/testsuite/gcc.c-torture/compile/pr55921.c b/gcc/testsuite/gcc.c-torture/compile/pr55921.c\nindex cf9084e33f0..1c14284067e 100644\n--- a/gcc/testsuite/gcc.c-torture/compile/pr55921.c\n+++ b/gcc/testsuite/gcc.c-torture/compile/pr55921.c\n@@ -1,6 +1,7 @@\n /* PR tree-optimization/55921 */\n /* { dg-skip-if \"Not enough registers\" { \"pdp11-*-*\" } } */\n /* { dg-skip-if \"exceeds eBPF stack limit\" { bpf-*-* } } */\n+/* { dg-skip-if \"\" { wasm*-*-* } } */\n \n typedef union\n {\ndiff --git a/gcc/testsuite/gcc.c-torture/compile/pr60655-1.c b/gcc/testsuite/gcc.c-torture/compile/pr60655-1.c\nindex 6911e0d278e..1b0d53c8c2d 100644\n--- a/gcc/testsuite/gcc.c-torture/compile/pr60655-1.c\n+++ b/gcc/testsuite/gcc.c-torture/compile/pr60655-1.c\n@@ -1,4 +1,4 @@\n-/* { dg-options \"-fdata-sections\" { target { { ! { { hppa*-*-hpux* } && { ! lp64 } } } && { ! \"nvptx-*-* pdp11-*-*\" } } } } */\n+/* { dg-options \"-fdata-sections\" { target { { ! { { hppa*-*-hpux* } && { ! lp64 } } } && { ! \"nvptx-*-* pdp11-*-* wasm*-*-*\" } } } } */\n \n typedef unsigned char unit;\n typedef unit *unitptr;\ndiff --git a/gcc/testsuite/gcc.c-torture/execute/20030222-1.c b/gcc/testsuite/gcc.c-torture/execute/20030222-1.c\nindex d619b8159b4..c8a73d4de3c 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/20030222-1.c\n+++ b/gcc/testsuite/gcc.c-torture/execute/20030222-1.c\n@@ -3,7 +3,7 @@\n    succeeded at all.  We use volatile to make sure the long long is\n    actually truncated to int, in case a single register is wide enough\n    for a long long.  */\n-/* { dg-skip-if \"asm requires register allocation\" { nvptx-*-* } } */\n+/* { dg-skip-if \"asm requires register allocation\" { nvptx-*-* wasm*-*-* } } */\n #include <limits.h>\n \n void abort (void);\ndiff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.x b/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.x\nindex c38970d40c0..864eef6b779 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.x\n+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.x\n@@ -1,6 +1,6 @@\n load_lib target-supports.exp\n \n-if [istarget \"nvptx-*-*\"] {\n+if { [istarget \"nvptx-*-*\"] || [istarget \"wasm*-*-*\"] } {\n     # This test uses memcpy for block move in the same file as it\n     # defines it.  The two decls are not the same, by design, and we\n     # end up emitting a definition of memcpy, along with a .extern\ndiff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/bfloat16-builtin-issignaling-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/bfloat16-builtin-issignaling-1.c\nindex 0e428db792b..f5f06008bf5 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/ieee/bfloat16-builtin-issignaling-1.c\n+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/bfloat16-builtin-issignaling-1.c\n@@ -5,6 +5,7 @@\n /* { dg-add-options ieee } */\n /* { dg-require-effective-target bfloat16_runtime } */\n /* { dg-additional-options \"-fsignaling-nans\" } */\n+/* { dg-skip-if \"WASM does not have signaling NaNs\" { wasm*-*-* } } */\n /* Workaround for PR57484 on ia32: */\n /* { dg-additional-options \"-msse2 -mfpmath=sse\" { target { ia32 && sse2_runtime } } } */\n \ndiff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/builtin-issignaling-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/builtin-issignaling-1.c\nindex 60125b2b656..4e47ed2e1e7 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/ieee/builtin-issignaling-1.c\n+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/builtin-issignaling-1.c\n@@ -1,6 +1,7 @@\n /* { dg-do run } */\n /* { dg-add-options ieee } */\n /* { dg-additional-options \"-fsignaling-nans\" } */\n+/* { dg-skip-if \"WASM does not have signaling NaNs\" { wasm*-*-* } } */\n /* Workaround for PR57484 on ia32: */\n /* { dg-additional-options \"-msse2 -mfpmath=sse\" { target { ia32 && sse2_runtime } } } */\n \ndiff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/float128-builtin-issignaling-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/float128-builtin-issignaling-1.c\nindex 3299ffd5666..acd9677297d 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/ieee/float128-builtin-issignaling-1.c\n+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/float128-builtin-issignaling-1.c\n@@ -5,6 +5,7 @@\n /* { dg-add-options ieee } */\n /* { dg-require-effective-target float128_runtime } */\n /* { dg-additional-options \"-fsignaling-nans\" } */\n+/* { dg-skip-if \"WASM does not have signaling NaNs\" { wasm*-*-* } } */\n /* Workaround for PR57484 on ia32: */\n /* { dg-additional-options \"-msse2 -mfpmath=sse\" { target { ia32 && sse2_runtime } } } */\n \ndiff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/float128x-builtin-issignaling-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/float128x-builtin-issignaling-1.c\nindex af0b25af8a5..ca765f34ff5 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/ieee/float128x-builtin-issignaling-1.c\n+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/float128x-builtin-issignaling-1.c\n@@ -5,6 +5,7 @@\n /* { dg-add-options ieee } */\n /* { dg-require-effective-target float128x_runtime } */\n /* { dg-additional-options \"-fsignaling-nans\" } */\n+/* { dg-skip-if \"WASM does not have signaling NaNs\" { wasm*-*-* } } */\n /* Workaround for PR57484 on ia32: */\n /* { dg-additional-options \"-msse2 -mfpmath=sse\" { target { ia32 && sse2_runtime } } } */\n \ndiff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/float16-builtin-issignaling-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/float16-builtin-issignaling-1.c\nindex a0747e4240b..0dbe2c976fc 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/ieee/float16-builtin-issignaling-1.c\n+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/float16-builtin-issignaling-1.c\n@@ -5,6 +5,7 @@\n /* { dg-add-options ieee } */\n /* { dg-require-effective-target float16_runtime } */\n /* { dg-additional-options \"-fsignaling-nans\" } */\n+/* { dg-skip-if \"WASM does not have signaling NaNs\" { wasm*-*-* } } */\n /* Workaround for PR57484 on ia32: */\n /* { dg-additional-options \"-msse2 -mfpmath=sse\" { target { ia32 && sse2_runtime } } } */\n \ndiff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/float32-builtin-issignaling-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/float32-builtin-issignaling-1.c\nindex 38e56c2c00c..9e0d9b33c9b 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/ieee/float32-builtin-issignaling-1.c\n+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/float32-builtin-issignaling-1.c\n@@ -5,6 +5,7 @@\n /* { dg-add-options ieee } */\n /* { dg-require-effective-target float32_runtime } */\n /* { dg-additional-options \"-fsignaling-nans\" } */\n+/* { dg-skip-if \"WASM does not have signaling NaNs\" { wasm*-*-* } } */\n /* Workaround for PR57484 on ia32: */\n /* { dg-additional-options \"-msse2 -mfpmath=sse\" { target { ia32 && sse2_runtime } } } */\n \ndiff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/float32x-builtin-issignaling-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/float32x-builtin-issignaling-1.c\nindex 88eefdbc1d6..ecd8a596306 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/ieee/float32x-builtin-issignaling-1.c\n+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/float32x-builtin-issignaling-1.c\n@@ -5,6 +5,7 @@\n /* { dg-add-options ieee } */\n /* { dg-require-effective-target float32x_runtime } */\n /* { dg-additional-options \"-fsignaling-nans\" } */\n+/* { dg-skip-if \"WASM does not have signaling NaNs\" { wasm*-*-* } } */\n /* Workaround for PR57484 on ia32: */\n /* { dg-additional-options \"-msse2 -mfpmath=sse\" { target { ia32 && sse2_runtime } } } */\n \ndiff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/float64-builtin-issignaling-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/float64-builtin-issignaling-1.c\nindex 07d755b37be..ec13f17fd51 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/ieee/float64-builtin-issignaling-1.c\n+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/float64-builtin-issignaling-1.c\n@@ -5,6 +5,7 @@\n /* { dg-add-options ieee } */\n /* { dg-require-effective-target float64_runtime } */\n /* { dg-additional-options \"-fsignaling-nans\" } */\n+/* { dg-skip-if \"WASM does not have signaling NaNs\" { wasm*-*-* } } */\n /* Workaround for PR57484 on ia32: */\n /* { dg-additional-options \"-msse2 -mfpmath=sse\" { target { ia32 && sse2_runtime } } } */\n \ndiff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/float64x-builtin-issignaling-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/float64x-builtin-issignaling-1.c\nindex fe6420aaa95..7665afc3c5b 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/ieee/float64x-builtin-issignaling-1.c\n+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/float64x-builtin-issignaling-1.c\n@@ -5,6 +5,7 @@\n /* { dg-add-options ieee } */\n /* { dg-require-effective-target float64x_runtime } */\n /* { dg-additional-options \"-fsignaling-nans\" } */\n+/* { dg-skip-if \"WASM does not have signaling NaNs\" { wasm*-*-* } } */\n /* Workaround for PR57484 on ia32: */\n /* { dg-additional-options \"-msse2 -mfpmath=sse\" { target { ia32 && sse2_runtime } } } */\n \ndiff --git a/gcc/testsuite/gcc.c-torture/execute/pr67037-1.c b/gcc/testsuite/gcc.c-torture/execute/pr67037-1.c\nnew file mode 100644\nindex 00000000000..5e506972202\n--- /dev/null\n+++ b/gcc/testsuite/gcc.c-torture/execute/pr67037-1.c\n@@ -0,0 +1,56 @@\n+/* { dg-additional-options \"-std=gnu17\" } */\n+ \n+long __attribute__((noipa))\n+sink1(void)\n+{\n+  return 0;\n+}\n+long __attribute__((noipa))\n+sink2(void*)\n+{\n+  return 0;\n+}\n+ \n+ \n+static inline void lstrcpynW( short *d, const short *s, int n )\n+{\n+    unsigned int count = n;\n+ \n+    while ((count > 1) && *s)\n+    {\n+        count--;\n+        *d++ = *s++;\n+    }\n+    if (count) *d = 0;\n+}\n+ \n+int __attribute__((noinline,noclone))\n+badfunc(int u0, int u1, int u2, int u3,\n+  short *fsname, unsigned int fsname_len)\n+{\n+    static const short ntfsW[] = {'N','T','F','S',0};\n+    char superblock[2048+3300];\n+    int ret = 0;\n+    short *p;\n+ \n+    if (sink1())\n+        return 0;\n+    p = (void *)sink1();\n+    if (p != 0)\n+        goto done;\n+ \n+    sink2(superblock);\n+ \n+    lstrcpynW(fsname, ntfsW, fsname_len);\n+ \n+    ret = 1;\n+done:\n+    return ret;\n+}\n+ \n+ \n+int main()\n+{\n+    short buf[6];\n+    return !badfunc(0, 0, 0, 0, buf, 6);\n+}\ndiff --git a/gcc/testsuite/gcc.c-torture/execute/pr67037.c b/gcc/testsuite/gcc.c-torture/execute/pr67037.c\nindex da626e8da8c..4ba9cbdc667 100644\n--- a/gcc/testsuite/gcc.c-torture/execute/pr67037.c\n+++ b/gcc/testsuite/gcc.c-torture/execute/pr67037.c\n@@ -1,5 +1,7 @@\n /* { dg-additional-options \"-std=gnu17\" } */\n-\n+/* { dg-skip-if \"\" { wasm*-*-* } } */\n+/* wasm doesn't play well with unprototyped fns when called with mismatching\n+   number of args */\n long (*extfunc)();\n \n static inline void lstrcpynW( short *d, const short *s, int n )\ndiff --git a/gcc/testsuite/gcc.dg/20060410.c b/gcc/testsuite/gcc.dg/20060410.c\nindex b4d00cb991d..233aec72ef9 100644\n--- a/gcc/testsuite/gcc.dg/20060410.c\n+++ b/gcc/testsuite/gcc.dg/20060410.c\n@@ -13,4 +13,4 @@ int bar (void)\n     return ((struct foo *)0x1234)->i;\n }\n \n-/* { dg-final { scan-assembler \"foo\" { xfail nvptx-*-* } } } */\n+/* { dg-final { scan-assembler \"foo\" { xfail nvptx-*-* wasm*-*-* } } } */\ndiff --git a/gcc/testsuite/gcc.dg/analyzer/fd-access-mode-target-headers.c b/gcc/testsuite/gcc.dg/analyzer/fd-access-mode-target-headers.c\nindex 1386ac2de1e..0f2eb5267df 100644\n--- a/gcc/testsuite/gcc.dg/analyzer/fd-access-mode-target-headers.c\n+++ b/gcc/testsuite/gcc.dg/analyzer/fd-access-mode-target-headers.c\n@@ -1,5 +1,6 @@\n /* { dg-skip-if \"\" { { powerpc*-*-aix* avr-*-* *-*-vxworks* } || newlib } } */\n /* { dg-skip-if \"PR analyzer/107750\" { *-*-solaris2* } } */\n+/* { dg-skip-if \"wasi-libc doesn't work well with analyzer\" { wasm*-*-* } } */\n \n #include <sys/stat.h>\n #include <fcntl.h>\ndiff --git a/gcc/testsuite/gcc.dg/analyzer/fd-mktemp-family.c b/gcc/testsuite/gcc.dg/analyzer/fd-mktemp-family.c\nindex db690256c05..5a0784cb9f3 100644\n--- a/gcc/testsuite/gcc.dg/analyzer/fd-mktemp-family.c\n+++ b/gcc/testsuite/gcc.dg/analyzer/fd-mktemp-family.c\n@@ -1,5 +1,6 @@\n /* Tests for fd leak and errno handling of mktemp-family functions.  */\n /* { dg-additional-options \"-Wno-analyzer-null-argument\" } */\n+/* { dg-skip-if \"wasi-libc doesn't work well with analyzer\" { wasm*-*-* } } */\n \n #include <stdlib.h>\n #include <fcntl.h>\ndiff --git a/gcc/testsuite/gcc.dg/analyzer/mkdtemp-1.c b/gcc/testsuite/gcc.dg/analyzer/mkdtemp-1.c\nindex da77ce78651..48a012c8d83 100644\n--- a/gcc/testsuite/gcc.dg/analyzer/mkdtemp-1.c\n+++ b/gcc/testsuite/gcc.dg/analyzer/mkdtemp-1.c\n@@ -1,4 +1,5 @@\n /* { dg-additional-options \"-Wno-analyzer-null-argument\" } */\n+/* { dg-skip-if \"wasi-libc doesn't work well with analyzer\" { wasm*-*-* } } */\n \n #include <stdio.h>\n #include <stdlib.h>\ndiff --git a/gcc/testsuite/gcc.dg/analyzer/mkostemp-1.c b/gcc/testsuite/gcc.dg/analyzer/mkostemp-1.c\nindex 55135ffd947..8dade236acb 100644\n--- a/gcc/testsuite/gcc.dg/analyzer/mkostemp-1.c\n+++ b/gcc/testsuite/gcc.dg/analyzer/mkostemp-1.c\n@@ -1,5 +1,6 @@\n /* { dg-additional-options \"-Wno-analyzer-null-argument\" } */\n /* { dg-prune-output \"leak of file descriptor\" } */\n+/* { dg-skip-if \"wasi-libc doesn't work well with analyzer\" { wasm*-*-* } } */\n \n #include <stdio.h>\n #include <stdlib.h>\ndiff --git a/gcc/testsuite/gcc.dg/analyzer/mkostemps-1.c b/gcc/testsuite/gcc.dg/analyzer/mkostemps-1.c\nindex 013906092d5..c3b045ad3ad 100644\n--- a/gcc/testsuite/gcc.dg/analyzer/mkostemps-1.c\n+++ b/gcc/testsuite/gcc.dg/analyzer/mkostemps-1.c\n@@ -1,5 +1,6 @@\n /* { dg-additional-options \"-Wno-analyzer-null-argument\" } */\n /* { dg-prune-output \"leak of file descriptor\" } */\n+/* { dg-skip-if \"wasi-libc doesn't work well with analyzer\" { wasm*-*-* } } */\n \n #include <stdio.h>\n #include <stdlib.h>\ndiff --git a/gcc/testsuite/gcc.dg/analyzer/mkstemp-1.c b/gcc/testsuite/gcc.dg/analyzer/mkstemp-1.c\nindex e7a7a724abf..f88103f9f76 100644\n--- a/gcc/testsuite/gcc.dg/analyzer/mkstemp-1.c\n+++ b/gcc/testsuite/gcc.dg/analyzer/mkstemp-1.c\n@@ -1,5 +1,6 @@\n /* { dg-additional-options \"-Wno-analyzer-null-argument\" } */\n /* { dg-prune-output \"leak of file descriptor\" } */\n+/* { dg-skip-if \"wasi-libc doesn't work well with analyzer\" { wasm*-*-* } } */\n \n #include <stdio.h>\n #include <stdlib.h>\ndiff --git a/gcc/testsuite/gcc.dg/analyzer/mkstemps-1.c b/gcc/testsuite/gcc.dg/analyzer/mkstemps-1.c\nindex 75fcb9dbb08..a927cf05bb1 100644\n--- a/gcc/testsuite/gcc.dg/analyzer/mkstemps-1.c\n+++ b/gcc/testsuite/gcc.dg/analyzer/mkstemps-1.c\n@@ -1,5 +1,6 @@\n /* { dg-additional-options \"-Wno-analyzer-null-argument\" } */\n /* { dg-prune-output \"leak of file descriptor\" } */\n+/* { dg-skip-if \"wasi-libc doesn't work well with analyzer\" { wasm*-*-* } } */\n \n #include <stdio.h>\n #include <stdlib.h>\ndiff --git a/gcc/testsuite/gcc.dg/analyzer/mktemp-1.c b/gcc/testsuite/gcc.dg/analyzer/mktemp-1.c\nindex 0f4b448a6aa..141a5c9cced 100644\n--- a/gcc/testsuite/gcc.dg/analyzer/mktemp-1.c\n+++ b/gcc/testsuite/gcc.dg/analyzer/mktemp-1.c\n@@ -1,4 +1,5 @@\n /* { dg-additional-options \"-Wno-analyzer-null-argument\" } */\n+/* { dg-skip-if \"wasi-libc doesn't work well with analyzer\" { wasm*-*-* } } */\n \n /* TODO: mktemp is deprecated per MSC24-C\n    (https://wiki.sei.cmu.edu/confluence/x/hNYxBQ).\ndiff --git a/gcc/testsuite/gcc.dg/array-quals-1.c b/gcc/testsuite/gcc.dg/array-quals-1.c\nindex e379f6121b7..eb238fee136 100644\n--- a/gcc/testsuite/gcc.dg/array-quals-1.c\n+++ b/gcc/testsuite/gcc.dg/array-quals-1.c\n@@ -5,6 +5,7 @@\n /* { dg-do compile } */\n /* { dg-options \"-Wno-discarded-array-qualifiers\" } */\n /* { dg-additional-options \"-fno-pie\" { target pie } } */\n+/* { dg-skip-if \"No sections on wasm\" { wasm*-*-* } } */\n /* The MMIX port always switches to the .data section at the end of a file.  */\n /* { dg-final { scan-assembler-not \"\\\\.data(?!\\\\.rel\\\\.ro)\" { xfail powerpc*-*-aix* mmix-*-* x86_64-*-mingw* } } } */\n /* { dg-final { scan-assembler-symbol-section {^_?a$} {^\\.(const|rodata|srodata|sdata)|\\[RO\\]} } } */\ndiff --git a/gcc/testsuite/gcc.dg/attr-weakref-1.c b/gcc/testsuite/gcc.dg/attr-weakref-1.c\nindex 1d25d9c2d41..abf77474ae2 100644\n--- a/gcc/testsuite/gcc.dg/attr-weakref-1.c\n+++ b/gcc/testsuite/gcc.dg/attr-weakref-1.c\n@@ -8,6 +8,9 @@\n // { dg-skip-if \"\" { \"hppa*-*-hpux*\" \"*-*-aix*\" \"nvptx-*-*\" } }\n // { dg-skip-if PR119369 { amdgcn-*-* } }\n \n+// WebAssembly does support undefined weak symbols, just not weakrefs\n+/* { dg-skip-if \"\" { wasm*-*-* } } */\n+\n // For kernel modules and static RTPs, the loader treats undefined weak\n // symbols in the same way as undefined strong symbols.  The test\n // therefore fails to load, so skip it.\ndiff --git a/gcc/testsuite/gcc.dg/builtin-alloc-size.c b/gcc/testsuite/gcc.dg/builtin-alloc-size.c\nindex bc1bd5bf4e8..b39ba339e15 100644\n--- a/gcc/testsuite/gcc.dg/builtin-alloc-size.c\n+++ b/gcc/testsuite/gcc.dg/builtin-alloc-size.c\n@@ -3,6 +3,7 @@\n    attribute alloc_size that __builtin_object_size can make use of (or\n    are treated as if they were for that purpose)..\n    { dg-do compile }\n+   { dg-skip-if \"wasm uses wasi-libc\" { wasm*-*-* } }\n    { dg-additional-options \"-O2 -fdump-tree-optimized\" } */\n \n void sink (void*);\ndiff --git a/gcc/testsuite/gcc.dg/builtin-apply5.c b/gcc/testsuite/gcc.dg/builtin-apply5.c\nindex 16892f76a8a..b02267bfce5 100644\n--- a/gcc/testsuite/gcc.dg/builtin-apply5.c\n+++ b/gcc/testsuite/gcc.dg/builtin-apply5.c\n@@ -1,6 +1,7 @@\n /* { dg-options \"-O2 -Wmissing-noreturn -fgnu89-inline\" } */\n /* { dg-additional-options \"-mno-mmx\" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */\n /* { dg-do compile } */\n+/* { dg-skip-if \"Unprototyped calls not supported\" { wasm*-*-* } } */\n \n extern void abort (void);\n \ndiff --git a/gcc/testsuite/gcc.dg/builtin-prefetch-1.c b/gcc/testsuite/gcc.dg/builtin-prefetch-1.c\nindex a24c5f7ebc6..c924a627bf2 100644\n--- a/gcc/testsuite/gcc.dg/builtin-prefetch-1.c\n+++ b/gcc/testsuite/gcc.dg/builtin-prefetch-1.c\n@@ -3,7 +3,8 @@\n    Prefetch using some invalid rw and locality values.  These must be\n    compile-time constants.  */\n \n-/* { dg-do run } */\n+/* { dg-do run }\n+   { dg-skip-if \"wasm does not support prefetch\" { wasm*-*-* } } */\n \n extern void exit (int);\n \ndiff --git a/gcc/testsuite/gcc.dg/builtins-config.h b/gcc/testsuite/gcc.dg/builtins-config.h\nindex 5e27c1deb33..b262ce33a9d 100644\n--- a/gcc/testsuite/gcc.dg/builtins-config.h\n+++ b/gcc/testsuite/gcc.dg/builtins-config.h\n@@ -12,6 +12,8 @@\n \n #if defined(__hppa) && defined(__hpux)\n /* PA HP-UX doesn't have the entire C99 runtime.  */\n+#elif defined(__wasm32__)\n+/* WebAssembly doesn't have the entire C99 runtime.  */\n #elif defined(__INTERIX)\n /* Interix6 doesn't have the entire C99 runtime.  */\n #elif defined(__AVR__)\ndiff --git a/gcc/testsuite/gcc.dg/builtins-nonnull.c b/gcc/testsuite/gcc.dg/builtins-nonnull.c\nindex d59579d78c8..cbc2b297199 100644\n--- a/gcc/testsuite/gcc.dg/builtins-nonnull.c\n+++ b/gcc/testsuite/gcc.dg/builtins-nonnull.c\n@@ -1,6 +1,7 @@\n /* PR c/17308 - nonnull attribute not as useful as it could be\n    PR c/78673 - sprintf missing attribute nonnull on destination argument\n    { dg-do \"compile\" }\n+   { dg-skip-if \"wasm uses wasi-libc\" { wasm*-*-* } }\n    { dg-additional-options \"-O2 -Wnonnull -ftrack-macro-expansion=0 -std=c99\" } */\n \n #define va_list __builtin_va_list\ndiff --git a/gcc/testsuite/gcc.dg/c23-stdint-1.c b/gcc/testsuite/gcc.dg/c23-stdint-1.c\nindex 9a984cfb4d7..c7f2473bace 100644\n--- a/gcc/testsuite/gcc.dg/c23-stdint-1.c\n+++ b/gcc/testsuite/gcc.dg/c23-stdint-1.c\n@@ -1,6 +1,7 @@\n /* Test __STDC_VERSION_STDINT_H__ in C23.  */\n /* { dg-do preprocess } */\n /* { dg-options \"-std=c23 -pedantic-errors -ffreestanding\" } */\n+/* { dg-skip-if \"wasi-libc doesn't support c23\" { wasm*-*-* } } */\n \n #include <stdint.h>\n \ndiff --git a/gcc/testsuite/gcc.dg/c99-stdint-1.c b/gcc/testsuite/gcc.dg/c99-stdint-1.c\nindex f5c2cda77c9..2b44b82746b 100644\n--- a/gcc/testsuite/gcc.dg/c99-stdint-1.c\n+++ b/gcc/testsuite/gcc.dg/c99-stdint-1.c\n@@ -11,6 +11,7 @@\n /* { dg-options \"-std=iso9899:1999 -pedantic-errors -fhosted\" } */\n /* { dg-require-effective-target ptr32plus } */\n /* { dg-additional-options \"-DSIGNAL_SUPPRESS\" { target { ! signal } } } */\n+/* { dg-skip-if \"wasi-libc doesn't support int width\" { wasm*-*-* } } */\n \n #include <limits.h>\n #include <stdint.h>\ndiff --git a/gcc/testsuite/gcc.dg/c99-stdint-2.c b/gcc/testsuite/gcc.dg/c99-stdint-2.c\nindex 08d9f6023d9..2c83aba18ae 100644\n--- a/gcc/testsuite/gcc.dg/c99-stdint-2.c\n+++ b/gcc/testsuite/gcc.dg/c99-stdint-2.c\n@@ -4,6 +4,7 @@\n /* { dg-options \"-std=iso9899:1999 -pedantic-errors -ffreestanding\" } */\n /* { dg-require-effective-target ptr32plus } */\n /* { dg-additional-options \"-DSIGNAL_SUPPRESS\" { target { ! signal } } } */\n+/* { dg-skip-if \"wasi-libc doesn't support int width\" { wasm*-*-* } } */\n \n /* The test is that there are no diagnostics, so just include the\n    hosted version.  */\ndiff --git a/gcc/testsuite/gcc.dg/c99-stdint-7.c b/gcc/testsuite/gcc.dg/c99-stdint-7.c\nindex 777e895b506..83b5e57e675 100644\n--- a/gcc/testsuite/gcc.dg/c99-stdint-7.c\n+++ b/gcc/testsuite/gcc.dg/c99-stdint-7.c\n@@ -3,6 +3,7 @@\n    conditions.  */\n /* { dg-do compile } */\n /* { dg-options \"-std=iso9899:1999 -fhosted\" } */\n+/* { dg-additional-options \"-DSIGNAL_SUPPRESS\" { target { ! signal } } } */\n \n #include <stdint.h>\n \n@@ -191,12 +192,14 @@\n #error \"PTRDIFF_MAX not usable in #if or wrong value\"\n #endif\n \n+#ifndef SIGNAL_SUPPRESS\n #if SIG_ATOMIC_MIN != __SIG_ATOMIC_MIN__\n #error \"SIG_ATOMIC_MIN not usable in #if or wrong value\"\n #endif\n #if SIG_ATOMIC_MAX != __SIG_ATOMIC_MAX__\n #error \"SIG_ATOMIC_MAX not usable in #if or wrong value\"\n #endif\n+#endif\n \n #if SIZE_MAX != __SIZE_MAX__\n #error \"SIZE_MAX not usable in #if or wrong value\"\ndiff --git a/gcc/testsuite/gcc.dg/c99-stdint-8.c b/gcc/testsuite/gcc.dg/c99-stdint-8.c\nindex c64b3feb4f6..9daba2375fa 100644\n--- a/gcc/testsuite/gcc.dg/c99-stdint-8.c\n+++ b/gcc/testsuite/gcc.dg/c99-stdint-8.c\n@@ -3,6 +3,7 @@\n    conditions.  Freestanding version.  */\n /* { dg-do compile } */\n /* { dg-options \"-std=iso9899:1999 -ffreestanding\" } */\n+/* { dg-additional-options \"-DSIGNAL_SUPPRESS\" { target { ! signal } } } */\n \n /* The test is that there are no diagnostics, so just include the\n    hosted version.  */\ndiff --git a/gcc/testsuite/gcc.dg/charset/function.c b/gcc/testsuite/gcc.dg/charset/function.c\nindex 5aba6511bd0..a589fa064f5 100644\n--- a/gcc/testsuite/gcc.dg/charset/function.c\n+++ b/gcc/testsuite/gcc.dg/charset/function.c\n@@ -1,6 +1,6 @@\n /* { dg-do compile }\n    { dg-require-iconv \"IBM1047\" }\n-   { dg-final { scan-assembler-not \"\\\"foobar\\\"\" } } */\n+   { dg-final { scan-assembler-not \"\\\"foobar\\\"\" { xfail wasm*-*-* } } } */\n \n const char *str;\n \ndiff --git a/gcc/testsuite/gcc.dg/cpp/escape-3.i b/gcc/testsuite/gcc.dg/cpp/escape-3.i\nindex cb4758190f7..0659942c372 100644\n--- a/gcc/testsuite/gcc.dg/cpp/escape-3.i\n+++ b/gcc/testsuite/gcc.dg/cpp/escape-3.i\n@@ -6,6 +6,7 @@\n \n /* { dg-do compile } */\n /* { dg-options \"-g1\" } */\n+/* { dg-skip-if \"wasm doesn't support -g\" { wasm*-*-* } } */\n \n int foo (int a, int b)\n {\ndiff --git a/gcc/testsuite/gcc.dg/format/pr78304.c b/gcc/testsuite/gcc.dg/format/pr78304.c\nindex f6ad80793c7..dc278d5fe39 100644\n--- a/gcc/testsuite/gcc.dg/format/pr78304.c\n+++ b/gcc/testsuite/gcc.dg/format/pr78304.c\n@@ -1,4 +1,5 @@\n /* { dg-do compile { target inttypes_types } } */\n+/* { dg-skip-if \"wasi-libc does not support PRIuN\" { wasm*-*-* } } */\n /* { dg-options \"-O2 -Wall -Wextra\" } */\n \n #include <inttypes.h>\ndiff --git a/gcc/testsuite/gcc.dg/ipa/symver1.c b/gcc/testsuite/gcc.dg/ipa/symver1.c\nindex d120ed5d76b..6c1a84a0a16 100644\n--- a/gcc/testsuite/gcc.dg/ipa/symver1.c\n+++ b/gcc/testsuite/gcc.dg/ipa/symver1.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-skip-if \"only works for ELF targets\" { *-*-darwin* *-*-aix* } } */\n+/* { dg-skip-if \"only works for ELF targets\" { *-*-darwin* *-*-aix* wasm*-*-* } } */\n \n __attribute__ ((__symver__ (\"foo@VER_2\")))\n __attribute__ ((__symver__ (\"foo@VER_3\")))\ndiff --git a/gcc/testsuite/gcc.dg/lower-subreg-1.c b/gcc/testsuite/gcc.dg/lower-subreg-1.c\nindex c62db2c466c..749c85269cb 100644\n--- a/gcc/testsuite/gcc.dg/lower-subreg-1.c\n+++ b/gcc/testsuite/gcc.dg/lower-subreg-1.c\n@@ -1,4 +1,4 @@\n-/* { dg-do compile { target { ! { mips64 || { aarch64*-*-* arm*-*-* i?86-*-* ia64-*-* pru-*-* sparc*-*-* x86_64-*-* } } } } } */\n+/* { dg-do compile { target { ! { mips64 || { aarch64*-*-* arm*-*-* i?86-*-* ia64-*-* pru-*-* sparc*-*-* x86_64-*-* wasm*-*-* } } } } } */\n /* { dg-options \"-O -fdump-rtl-subreg1\" } */\n /* { dg-require-effective-target ilp32 } */\n \ndiff --git a/gcc/testsuite/gcc.dg/pch/valid-1.c b/gcc/testsuite/gcc.dg/pch/valid-1.c\nindex b950d0d4c64..1704317ed69 100644\n--- a/gcc/testsuite/gcc.dg/pch/valid-1.c\n+++ b/gcc/testsuite/gcc.dg/pch/valid-1.c\n@@ -1,4 +1,5 @@\n /* { dg-options \"-I. -Winvalid-pch -g\" } */\n+/* { dg-skip-if \"wasm doesn't support -g\" { wasm*-*-* } } */\n \n #include \"valid-1.h\"/* { dg-warning \"created with .none. debug info, but used with\" } */\n /* { dg-error \"No such file\" \"no such file\" { target *-*-* } 0 } */\ndiff --git a/gcc/testsuite/gcc.dg/pr115066.c b/gcc/testsuite/gcc.dg/pr115066.c\nindex d79233f2e79..79f4780cd2e 100644\n--- a/gcc/testsuite/gcc.dg/pr115066.c\n+++ b/gcc/testsuite/gcc.dg/pr115066.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-skip-if \"split DWARF unsupported\" { hppa*-*-hpux* powerpc*-ibm-aix* *-*-darwin* } } */\n+/* { dg-skip-if \"split DWARF unsupported\" { hppa*-*-hpux* powerpc*-ibm-aix* *-*-darwin* wasm*-*-* } } */\n /* { dg-options \"-gsplit-dwarf -g3 -dA -gdwarf-4 -gno-strict-dwarf\" } */\n /* { dg-final { scan-assembler-times {\\.section\\t\"?\\.debug_macro} 1 } } */\n /* { dg-final { scan-assembler-not {\\.byte\\t0x5\\t[^\\n\\r]* Define macro strp} } } */\ndiff --git a/gcc/testsuite/gcc.dg/pr28755.c b/gcc/testsuite/gcc.dg/pr28755.c\nindex 50b56fb8907..5e76ea40d62 100644\n--- a/gcc/testsuite/gcc.dg/pr28755.c\n+++ b/gcc/testsuite/gcc.dg/pr28755.c\n@@ -3,7 +3,7 @@\n /* { dg-require-effective-target ptr32plus } */\n /* { dg-options \"-Os\" } */\n /* { dg-final { scan-assembler-times \"2112543726\\|7deadbee\" 2 } } */\n-/* { dg-skip-if \"integer output is different here\" { nvptx-*-* } } */\n+/* { dg-skip-if \"integer output is different here\" { nvptx-*-* wasm*-*-* } } */\n \n struct S\n {\ndiff --git a/gcc/testsuite/gcc.dg/pr49551.c b/gcc/testsuite/gcc.dg/pr49551.c\nindex dda0667f3e6..0b99475fe47 100644\n--- a/gcc/testsuite/gcc.dg/pr49551.c\n+++ b/gcc/testsuite/gcc.dg/pr49551.c\n@@ -1,6 +1,6 @@\n /* { dg-do compile } */\n /* { dg-options \"-O -fdata-sections\" } */\n-/* { dg-skip-if \"-fdata-sections not supported\" { hppa*-*-hpux* nvptx-*-* } } */\n+/* { dg-skip-if \"-fdata-sections not supported\" { hppa*-*-hpux* nvptx-*-* wasm*-*-* } } */\n \n int x = 1;\n int x;\ndiff --git a/gcc/testsuite/gcc.dg/profile-info-section.c b/gcc/testsuite/gcc.dg/profile-info-section.c\nindex 8f31f3b2c07..baf8a5f3de7 100644\n--- a/gcc/testsuite/gcc.dg/profile-info-section.c\n+++ b/gcc/testsuite/gcc.dg/profile-info-section.c\n@@ -1,6 +1,7 @@\n /* { dg-do compile } */\n /* { dg-skip-if \"profile-info-section\" { powerpc-ibm-aix* } } */\n /* { dg-options \"-fprofile-arcs -fprofile-info-section -fdump-tree-optimized\" } */\n+/* { dg-require-effective-target named_sections } */\n \n int foo()\n {\ndiff --git a/gcc/testsuite/gcc.dg/stdint-width-1.c b/gcc/testsuite/gcc.dg/stdint-width-1.c\nindex 3eba9f6cb15..8143a7b1604 100644\n--- a/gcc/testsuite/gcc.dg/stdint-width-1.c\n+++ b/gcc/testsuite/gcc.dg/stdint-width-1.c\n@@ -2,6 +2,7 @@\n /* { dg-do compile } */\n /* { dg-options \"-std=c11 -ffreestanding\" } */\n /* { dg-additional-options \"-DSIGNAL_SUPPRESS\" { target { ! signal } } } */\n+/* { dg-skip-if \"wasi-libc doesn't support int width\" { wasm*-*-* } } */\n \n #include <stddef.h>\n #define __STDC_WANT_IEC_60559_BFP_EXT__\ndiff --git a/gcc/testsuite/gcc.dg/stdint-width-2.c b/gcc/testsuite/gcc.dg/stdint-width-2.c\nindex a48333a3ec5..6233c76b55f 100644\n--- a/gcc/testsuite/gcc.dg/stdint-width-2.c\n+++ b/gcc/testsuite/gcc.dg/stdint-width-2.c\n@@ -2,6 +2,7 @@\n /* { dg-do compile } */\n /* { dg-options \"-std=c23 -ffreestanding\" } */\n /* { dg-additional-options \"-DSIGNAL_SUPPRESS\" { target { ! signal } } } */\n+/* { dg-skip-if \"wasi-libc doesn't support int width\" { wasm*-*-* } } */\n \n #include <stddef.h>\n #include <stdint.h>\ndiff --git a/gcc/testsuite/gcc.dg/tls/thr-cse-1.c b/gcc/testsuite/gcc.dg/tls/thr-cse-1.c\nindex 7145671eb95..38f03c3a4a4 100644\n--- a/gcc/testsuite/gcc.dg/tls/thr-cse-1.c\n+++ b/gcc/testsuite/gcc.dg/tls/thr-cse-1.c\n@@ -19,7 +19,7 @@ int foo (int b, int c, int d)\n   return a;\n }\n \n-/* { dg-final { scan-assembler-not \"emutls_get_address.*emutls_get_address.*\" { target { ! { \"*-wrs-vxworks\"  \"*-*-darwin8\"  \"hppa*-*-hpux*\" \"i?86-*-mingw*\" \"x86_64-*-mingw*\" visium-*-* nvptx-*-* } } } } } */\n+/* { dg-final { scan-assembler-not \"emutls_get_address.*emutls_get_address.*\" { target { ! { \"*-wrs-vxworks\"  \"*-*-darwin8\"  \"hppa*-*-hpux*\" \"i?86-*-mingw*\" \"x86_64-*-mingw*\" visium-*-* nvptx-*-* wasm*-*-* } } } } } */\n /* { dg-final { scan-assembler-not \"call\\tL___emutls_get_address.stub.*call\\tL___emutls_get_address.stub.*\" { target \"*-*-darwin8\" } } } */\n /* { dg-final { scan-assembler-not \"(b,l|bl) __emutls_get_address.*(b,l|bl) __emutls_get_address.*\" { target \"hppa*-*-hpux*\" } } } */\n /* { dg-final { scan-assembler-not \"tls_lookup.*tls_lookup.*\" { target *-wrs-vxworks } } } */\ndiff --git a/gcc/testsuite/gcc.misc-tests/gcov-23.c b/gcc/testsuite/gcc.misc-tests/gcov-23.c\nindex 72ba0aa1389..d32ec99f51e 100644\n--- a/gcc/testsuite/gcc.misc-tests/gcov-23.c\n+++ b/gcc/testsuite/gcc.misc-tests/gcov-23.c\n@@ -1,5 +1,6 @@\n /* { dg-options \"-fcondition-coverage -ftest-coverage -O2\" } */\n /* { dg-do compile } */\n+/* { dg-skip-if \"wasi-libc doesn't implement longjmp\" { wasm*-*-* } } */\n \n #include <stdint.h>\n #include <limits.h>\ndiff --git a/gcc/testsuite/gcc.misc-tests/gcov.exp b/gcc/testsuite/gcc.misc-tests/gcov.exp\nindex 0e31804b37c..e2a6a93ef01 100644\n--- a/gcc/testsuite/gcc.misc-tests/gcov.exp\n+++ b/gcc/testsuite/gcc.misc-tests/gcov.exp\n@@ -39,6 +39,10 @@ if ![info exists GCOV_UNDER_TEST] {\n # Initialize harness.\n dg-init\n \n+if [istarget wasm*-*-*] then {\n+  return 0;\n+}\n+\n # Delete old .gcda files.\n set files [glob -nocomplain gcov*.gcda]\n if { $files != \"\" } {\ndiff --git a/gcc/testsuite/gcc.misc-tests/options.exp b/gcc/testsuite/gcc.misc-tests/options.exp\nindex 0a634f7939f..8dd2d726f37 100644\n--- a/gcc/testsuite/gcc.misc-tests/options.exp\n+++ b/gcc/testsuite/gcc.misc-tests/options.exp\n@@ -59,9 +59,12 @@ proc check_for_all_options {language gcc_options compiler_pattern as_pattern ld_\n     set as_options [list \"additional_flags=-print-prog-name=as\"]\n     set as_prog [lindex [gcc_target_compile \"\" \"\" \"none\" $as_options] 0]\n     if {![regexp -line -- \" ${as_prog}(\\\\.exe)? .*$as_pattern\" $gcc_output]} {\n-\n-\tfail \"$test (assembler options)\"\n-\treturn\n+        # wasm does not use a standard assembler, its options are very different\n+        # from gas and the like\n+        if { ![istarget \"wasm*-*-*\"] } {\n+\t    fail \"$test (assembler options)\"\n+\t    return\n+\t}\n     }\n     # Match /collect2, /ld, or *-ld.\n     if {![regexp -- \"(/collect2|\\[-/\\]ld)(\\\\.exe)? .*$ld_pattern\" $gcc_output]} {\ndiff --git a/gcc/testsuite/lib/file-format.exp b/gcc/testsuite/lib/file-format.exp\nindex b36812a1fa4..5b4194d4161 100644\n--- a/gcc/testsuite/lib/file-format.exp\n+++ b/gcc/testsuite/lib/file-format.exp\n@@ -28,6 +28,9 @@ proc gcc_target_object_format { } {\n \n     if [info exists gcc_target_object_format_saved] {\n         verbose \"gcc_target_object_format returning saved $gcc_target_object_format_saved\" 2\n+    } elseif { [istarget wasm*-*-*] } {\n+\t# WebAssembly has its own assembly and objerct file format.\n+\tset gcc_target_object_format_saved wasm\n     } elseif { [istarget *-*-darwin*] } {\n \t# Darwin doesn't necessarily have objdump, so hand-code it.\n \tset gcc_target_object_format_saved mach-o\n@@ -83,7 +86,10 @@ proc gcc_target_object_format { } {\n                 }\n                 som          {\n                     set gcc_target_object_format_saved som\n-                } \n+                }\n+                wasm         {\n+                    set gcc_target_object_format_saved wasm\n+                }\n                 default      {\n                     verbose \"Unknown file format: $objformat\" 3\n                     set gcc_target_object_format_saved unknown\ndiff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp\nindex abfdd6a3a14..26dcfae2349 100644\n--- a/gcc/testsuite/lib/scanasm.exp\n+++ b/gcc/testsuite/lib/scanasm.exp\n@@ -148,6 +148,7 @@ proc hidden-scan-for { symbol } {\n         coff     { return \"$symbol\\[,\\d\\]*hidden\" }\n         elf      { return \"hidden\\[ \\t_\\]*$symbol\" }\n         mach-o   { return \"private_extern\\[ \\t_\\]*_?$symbol\" }\n+        wasm     { return \"(@sym(.import.data)? \\\\$$symbol|\\\\$$symbol \\\\\\(@sym) (|weak |local )hidden\" }\n         default  { return \"\" }\n     }\n \n@@ -159,6 +160,7 @@ proc weak-scan-for { symbol } {\n \n     switch $objformat {\n         default  { return \"weak\\[^ \\t\\]*\\[ \\t\\]_?$symbol\" }\n+        wasm     { return \"(@sym(.import.data)? \\\\$$symbol|\\\\$$symbol \\\\\\(@sym) weak\" }\n     }\n }\n \ndiff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp\nindex 373a61f4d57..de612b0d67b 100644\n--- a/gcc/testsuite/lib/target-supports.exp\n+++ b/gcc/testsuite/lib/target-supports.exp\n@@ -351,6 +351,7 @@ proc check_weak_available { } {\n \ta.out    { return 1 }\n \tmach-o\t { return 1 }\n \tsom\t { return 1 }\n+\twasm\t { return 1 }\n \tunknown  { return -1 }\n \tdefault  { return 0 }\n     }\n@@ -496,6 +497,10 @@ proc check_visibility_available { what_kind } {\n # be determined.\n \n proc check_alias_available { } {\n+    if { [istarget wasm*-*-*] } {\n+      return 0;\n+    }\n+\n     global tool\n \n     return [check_cached_effective_target alias_available {\n@@ -651,7 +656,8 @@ proc check_effective_target_trampolines { } {\n \t || [istarget nvptx-*-*]\n \t || [istarget ft32-*-*]\n \t || [istarget pru-*-*]\n-\t || [istarget bpf-*-*] } {\n+\t || [istarget bpf-*-*]\n+\t || [istarget wasm*-*-*] } {\n \treturn 0;\n     }\n     return 1\n@@ -723,6 +729,9 @@ proc dg-effective-target-value { effective_target } {\n # Return 1 if signal.h is supported.\n \n proc check_effective_target_signal { } {\n+    if { [istarget wasm*-*-*] } {\n+      return 0\n+    }\n     if [target_info exists gcc,signal_suppress] {\n       return 0\n     }\n@@ -993,7 +1002,7 @@ proc add_options_for_check_function_bodies { flags } {\n # Return 1 if indirect jumps are supported, 0 otherwise.\n \n proc check_effective_target_indirect_jumps {} {\n-    if { [istarget nvptx-*-*] || [istarget bpf-*-*] } {\n+    if { [istarget nvptx-*-*] || [istarget bpf-*-*] || [istarget wasm*-*-*] } {\n \treturn 0\n     }\n     return 1\n@@ -1002,7 +1011,7 @@ proc check_effective_target_indirect_jumps {} {\n # Return 1 if nonlocal goto is supported, 0 otherwise.\n \n proc check_effective_target_nonlocal_goto {} {\n-    if { [istarget nvptx-*-*] || [istarget bpf-*-*] } {\n+    if { [istarget nvptx-*-*] || [istarget bpf-*-*] || [istarget wasm*-*-*] } {\n \treturn 0\n     }\n     return 1\n@@ -1020,7 +1029,8 @@ proc check_effective_target_global_constructor {} {\n # Return 1 if taking label values is supported, 0 otherwise.\n \n proc check_effective_target_label_values {} {\n-    if { [istarget nvptx-*-*] || [target_info exists gcc,no_label_values] } {\n+    if { [istarget nvptx-*-*] || [istarget wasm*-*-*]\n+         || [target_info exists gcc,no_label_values] } {\n \treturn 0\n     }\n \n@@ -1047,7 +1057,7 @@ proc check_effective_target_return_address {} {\n \treturn 0\n     }\n     # No notion of return address in eBPF.\n-    if { [istarget bpf-*-*] } {\n+    if { [istarget bpf-*-*] || [istarget wasm*-*-*] } {\n \treturn 0\n     }\n     # It could be supported on amdgcn, but isn't yet.\n@@ -1062,7 +1072,7 @@ proc check_effective_target_return_address {} {\n # with K&R C function declarations.\n \n proc check_effective_target_untyped_assembly {} {\n-    if { [istarget nvptx-*-*] } {\n+    if { [istarget wasm*-*-*] || [istarget nvptx-*-*] } {\n \treturn 0\n     }\n     return 1\n@@ -1277,6 +1287,9 @@ proc check_effective_target_fgnu_tm {} {\n # Return 1 if the target supports mmap, 0 otherwise.\n \n proc check_effective_target_mmap {} {\n+    if [istarget wasm*-*-*] {\n+      return 0;\n+    }\n     return [check_function_available \"mmap\"]\n }\n \n@@ -4919,6 +4932,9 @@ proc check_effective_target_vect_intdouble_cvt { } {\n #Return 1 if we're supporting __int128 for target, 0 otherwise.\n \n proc check_effective_target_int128 { } {\n+    if [istarget wasm*-*-*] {\n+        return 0;\n+    }\n     return [check_no_compiler_messages int128 object {\n \tint dummy[\n     \t#ifndef __SIZEOF_INT128__\n@@ -12226,7 +12242,8 @@ proc check_effective_target_lto { } {\n \treturn 0\n     }\n     if { [istarget nvptx-*-*]\n-\t || [istarget amdgcn-*-*] } {\n+\t || [istarget amdgcn-*-*]\n+\t || [istarget wasm*-*-*] } {\n \treturn 0;\n     }\n     return [check_no_compiler_messages lto object {\n@@ -13035,6 +13052,7 @@ proc check_effective_target_fenv_exceptions_long_double {} {\n proc check_effective_target_exceptions {} {\n     if { [istarget amdgcn*-*-*]\n \t || [istarget bpf-*-*]\n+\t || [istarget wasm*-*-*]\n \t || [istarget nvptx-*-*] } {\n \treturn 0\n     }\n@@ -14050,7 +14068,7 @@ foreach N {df} {\n # Return 1 if this target uses an LLVM assembler and/or linker\n proc check_effective_target_llvm_binutils { } {\n     return [check_cached_effective_target llvm_binutils {\n-\t      expr { [istarget amdgcn*-*-*]\n+\t      expr { [istarget amdgcn*-*-*] || [istarget wasm*-*-*]\n \t\t     || [check_effective_target_offload_gcn] }}]\n }\n \n@@ -14126,7 +14144,7 @@ proc check_effective_target_large_initializer { } {\n # in the assembly.\n \n proc check_effective_target_non_strict_prototype { } {\n-    if { [istarget nvptx*-*-*] } {\n+    if { [istarget wasm*-*-*] || [istarget nvptx*-*-*] } {\n \treturn 0\n     }\n \n@@ -14328,6 +14346,9 @@ proc check_effective_target_lra { } {\n # Return 1 if 'asm goto' with outputs is supported, 0 otherwise.\n \n proc check_effective_target_asm_goto_with_outputs { } {\n+    if { [istarget wasm*-*-*] } {\n+\t    return 0\n+    }\n     if { [istarget nvptx-*-*] } {\n \treturn 1\n     }\n",
    "prefixes": [
        "RFC",
        "3/3"
    ]
}