[{"id":3680981,"web_url":"http://patchwork.ozlabs.org/comment/3680981/","msgid":"<bmm.hhupc5fsg0.gcc.gcc-TEST.forge-bot.109.5693.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2026-04-22T18:56:51","subject":"Re: [PATCH v2 0/1] libgccjit: Add the function attributes for setting\n the ABI","submitter":{"id":93212,"url":"http://patchwork.ozlabs.org/api/people/93212/","name":"Lichenor Forgejo Bot via Sourceware Forge","email":"forge-bot+forge-bot@forge-stage.sourceware.org"},"content":"<!-- pr-new-version -->\nVersion 2 of this pull request has been stored. It includes the following commits:\n- libgccjit: Add the function attributes for setting the ABI - 6b8ac8824303a72a363c935b0a1e97e95f947118\n\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-5693","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 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; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"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 4g19Cd20l1z1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 06:03:57 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 35B154BA798B\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 20:03:55 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id C77FD4314217;\n Wed, 22 Apr 2026 18:57:20 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 4BFF3435C0;\n Wed, 22 Apr 2026 18:57:20 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 35B154BA798B","OpenDKIM Filter v2.11.0 sourceware.org C77FD4314217"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org C77FD4314217","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org C77FD4314217","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776884240; cv=none;\n b=Wm0LKHpKV2A0d5uPl1h3AO6I5KCoCYh1vguBcjlcyvUjC+fCa3lGPaLpvafYG2tThxXd8EgymojDz0g24NUEji+KZxX+NX97FzGayPT1ZXr8FnDnUsnjpeHrS3AzLxj10HX/jbYfZQKT3g+TFMCzfPjOFNZ7A7t7qzMbwO8+mq8=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776884240; c=relaxed/simple;\n bh=kF7dkHiRfD5C0mw/A3ZgYgcYWw18qan3LzbCEgr7CUA=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=oJrZAKKs3gzxYRveViG3aEccfGWQpTOZbaAc5yHeaAa0MMgGqqyLkOu1JtJ4qiO3lbCnwf5ncHNRa+yziI0IltiNIXUPnjJUvQjmQofThkdmak23N01xkk+6Tb1YdgdBZQxtJdJE+n2a+Lidmg281UP2nkWBWBoBcy1rlm2TIL0=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v2 0/1] libgccjit: Add the function attributes for setting\n the ABI","From":"Lichenor Forgejo Bot via Sourceware Forge\n <forge-bot+forge-bot@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Cc":"David Malcolm <dmalcolm@redhat.com>,  <jit@gcc.gnu.org>","Date":"Wed, 22 Apr 2026 18:56:51 +0000","Message-ID":"\n <bmm.hhupc5fsg0.gcc.gcc-TEST.forge-bot.109.5693.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhupb9trnq.gcc.gcc-TEST.antoyo.109.2.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/109","X-Comment":"\n https://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-5693","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","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"}},{"id":3680986,"web_url":"http://patchwork.ozlabs.org/comment/3680986/","msgid":"<bmm.hhupcqfc0y.gcc.gcc-TEST.antoyo.109.2.SUMMARY@forge-stage.sourceware.org>","list_archive_url":null,"date":"2026-04-22T18:57:26","subject":"[SUMMARY] Re: [PATCH v2 0/1] libgccjit: Add the function attributes\n for setting the ABI","submitter":{"id":92206,"url":"http://patchwork.ozlabs.org/api/people/92206/","name":"Antoni Boucher via Sourceware Forge","email":"forge-bot+antoyo@forge-stage.sourceware.org"},"content":"This is a summary of discussions relative to the merge request created by Antoni Boucher (antoyo) titled\nlibgccjit: Add the function attributes for setting the ABI\nsince its creation.\n\nDescription: ```\ngcc/jit/ChangeLog\n\n\t* jit-playback.cc: Support new function attributes.\n\t* jit-recording.cc: Support new function attributes.\n\t* libgccjit.h: Support new function attributes.\n\ngcc/testsuite/ChangeLog:\n\n\t* jit.dg/all-non-failing-tests.h: Mention new test.\n\t* jit.dg/test-abi.c: New test.\n```\n\nCC: David Malcolm <dmalcolm@redhat.com>, <jit@gcc.gnu.org>\n\nThe full and up to date discussion can be found at https://forge.sourceware.org/gcc/gcc-TEST/pulls/109\n\nThe merge request has been closed without being merged directly on the forge repository.\n\nOn 2025-10-16 23:10:20+00:00, Andrew Pinski (pinskia) <pinskia@gcc.gnu.org> commented on the code:\n\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nDoes it make sense to do this way or should it be a target specific hook to add the ability to have new fn attributes here?\n>From a GCC point of view I rather have hooks rather than target specific items in generic code.\nI know rustc and clang handle the target specific code in general code all the time but I think that is bad design.\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nCould you please explain how that API would look like?\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nThere will be a range defined for in gcc_jit_fn_attribute for target specific enums.\nAnd then you have headers for the target you are compiling which defines attributes in that range. And you dispatch to the hook for that for the target.\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nYou mean something like:\n```\nenum gcc_jit_fn_attribute\n{\n  GCC_JIT_FN_ATTRIBUTE_ALIAS,\n  GCC_JIT_FN_ATTRIBUTE_ALWAYS_INLINE,\n  GCC_JIT_FN_ATTRIBUTE_INLINE,\n  GCC_JIT_FN_ATTRIBUTE_NOINLINE,\n  GCC_JIT_FN_ATTRIBUTE_TARGET,\n  GCC_JIT_FN_ATTRIBUTE_USED,\n  GCC_JIT_FN_ATTRIBUTE_VISIBILITY,\n  GCC_JIT_FN_ATTRIBUTE_COLD,\n  GCC_JIT_FN_ATTRIBUTE_RETURNS_TWICE,\n  GCC_JIT_FN_ATTRIBUTE_PURE,\n  GCC_JIT_FN_ATTRIBUTE_CONST,\n  GCC_JIT_FN_ATTRIBUTE_WEAK,\n  GCC_JIT_FN_ATTRIBUTE_NONNULL,\n\n#include \"target-fn-attributes.def\"\n}\n```\n?\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nMore like:\n```\nenum gcc_jit_fn_attribute\n{\n...\n  GCC_JIT_FN_ATTRIBUTE_TARGET_START,\n};\n\n#include \"target-libgccjit.h\"\n```\n\nAnd then inside target-libgccjit.h for the specific target, define a new enum that starts at GCC_JIT_FN_ATTRIBUTE_TARGET_START.\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\n`libgccjit` aims to provide a [strong ABI guarantee](https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html). How would you keep that guarantee with this approach?\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\n@antoyo wrote in https://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-3110:\n\n> `libgccjit` aims to provide a [strong ABI guarantee](https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html). How would you keep that guarantee with this approach?\n\nI don't see how that is NOT backwards compatible. Put GCC_JIT_FN_ATTRIBUTE_TARGET_START higher up if needed so you can add more inbetween. Like say `0x10_00_00`.\nThe ABI/API guarantee between targets is NOT talked about.\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nHow would you handle the bindings from other programming languages to the C API of libgccjit if we follow this approach?\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nHow does they work right now? Is there some processing of the header file to generate it?\nIf so that is how. Instead of processing the header file you process the preprocessed source.\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nIf @dmalcolm confirms that he's OK with having the libgccjit API different depending on the target, I'll implement these changes.\nI wonder if this could leads to problems or ABI breakages if at some point we have a multi-arch GCC.\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nI think I prefer @antoyo's approach here.  I'm not sure why we went with an enum for identifying attributes in gcc_jit_function_add_attribute and gcc_jit_function_add_string_attribute; perhaps using const char * would have been better.\n\nBut given that we did, I prefer having a unified enum giving all possible attributes - this might be better if we need to support cross-compilation in the future.\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nPatch looks good to me; thanks.\n\n\nOn 2025-10-16 23:10:24+00:00, Lichenor Forgejo Bot (forge-bot) wrote:\n\n<!-- pr-new-version -->\nVersion 1 of this pull request has been stored. It includes the following commits:\n- libgccjit: Add the function attributes for setting the ABI - 5dda902d4f9951466b3092cbd6f084cac806949c\n\n\n\nOn 2025-10-16 23:11:00+00:00, Lichenor Forgejo Bot (forge-bot) wrote:\n\nSent patch series version 1 containing 1 patches to gcc-patches mailing list <test-list@sourceware.org> and cc'd David Malcolm <dmalcolm@redhat.com>, <jit@gcc.gnu.org>.\n[Cover letter](https://inbox.sourceware.org/test-list/176065622653.1144.107544853565647137.batrachomyomachia.gcc.gcc-TEST.109.1.0@forge-test.rdfm.org)\n\n\nOn 2025-11-12 16:27:40+00:00, Antoni Boucher (antoyo) wrote:\n\nMerged.\n\n\nOn 2026-04-22 18:56:51+00:00, Lichenor Forgejo Bot (forge-bot) wrote:\n\n<!-- pr-new-version -->\nVersion 2 of this pull request has been stored. It includes the following commits:\n- libgccjit: Add the function attributes for setting the ABI - 6b8ac8824303a72a363c935b0a1e97e95f947118\n\n\n\nOn 2026-04-22 18:57:18+00:00, Lichenor Forgejo Bot (forge-bot) wrote:\n\nSent patch series version 2 containing 1 patches to gcc-patches mailing list <gcc-patches@gcc.gnu.org> and cc'd David Malcolm <dmalcolm@redhat.com>, <jit@gcc.gnu.org>.\n[Cover letter](https://inbox.sourceware.org/gcc-patches/bmm.hhupb9trnq.gcc.gcc-TEST.antoyo.109.2.0@forge-stage.sourceware.org)","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 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; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"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 4g19F650mHz1yGs\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 06:05:14 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id B18F74BC35B0\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 20:05:12 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 4F4FE43470BD;\n Wed, 22 Apr 2026 18:57:26 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 26B11435B5;\n Wed, 22 Apr 2026 18:57:26 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org B18F74BC35B0","OpenDKIM Filter v2.11.0 sourceware.org 4F4FE43470BD"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 4F4FE43470BD","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 4F4FE43470BD","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776884246; cv=none;\n b=efseiPRMUZFdnObDrlfReybtW64G/Pmcf99AtrpLjWnuIXQEPAm7BirVUHaEm/WnIjpKUB0RsNCH6rG+HEL40EJXjKIlf8P2XEFdHVyqHmthXcPfwjiH7klwl0i0pf0eRmFP/0J5JxSfrQxTqk306AJQVGv3uzXDRCy/ijBWNJU=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776884246; c=relaxed/simple;\n bh=C+ZjjwkKVf8udPgdGAAVcUkiL9W89ByGnP9FL6Q9C00=;\n h=Subject:From:To:Message-ID:MIME-Version:Date;\n b=FkU9OTX5TyERESMF64MZ6PJGFD9Z52OIuLAwGPL3cPKrhU+O+wI3BMTDzhdhi1EFGgavphAWAdbAUYUqcFHK4nbFq7KPpSoJn/Y7GcvSM55I16Bl13SD+qO9dxOg8C0KuzuN2hOvfSfWfajIyyfClhL/CdTp+CcF/cbH4wzvjVk=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"[SUMMARY] Re: [PATCH v2 0/1] libgccjit: Add the function attributes\n for setting the ABI","From":"Antoni Boucher via Sourceware Forge\n <forge-bot+antoyo@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Cc":"David Malcolm <dmalcolm@redhat.com>,  <jit@gcc.gnu.org>","In-Reply-To":"\n <bmm.hhupb9trnq.gcc.gcc-TEST.antoyo.109.2.0@forge-stage.sourceware.org>","Message-ID":"\n <bmm.hhupcqfc0y.gcc.gcc-TEST.antoyo.109.2.SUMMARY@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/109","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","Date":"Wed, 22 Apr 2026 18:57:26 +0000 (UTC)","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"}},{"id":3681022,"web_url":"http://patchwork.ozlabs.org/comment/3681022/","msgid":"<bmm.hc3mbiemtc.gcc.gcc-TEST.forge-bot.109.3103.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-10-16T23:11:00","subject":"Re: [PATCH v2 0/1] libgccjit: Add the function attributes for setting\n the ABI","submitter":{"id":93212,"url":"http://patchwork.ozlabs.org/api/people/93212/","name":"Lichenor Forgejo Bot via Sourceware Forge","email":"forge-bot+forge-bot@forge-stage.sourceware.org"},"content":"Sent patch series version 1 containing 1 patches to gcc-patches mailing list <test-list@sourceware.org> and cc'd David Malcolm <dmalcolm@redhat.com>, <jit@gcc.gnu.org>.\n[Cover letter](https://inbox.sourceware.org/test-list/176065622653.1144.107544853565647137.batrachomyomachia.gcc.gcc-TEST.109.1.0@forge-test.rdfm.org)\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-3103","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 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; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"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 4g19Sl6yWNz1yHB\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 06:15:19 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 2FAF4507A31C\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 20:15:18 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 51E9942DAB10;\n Wed, 22 Apr 2026 18:57:20 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 2AF57435BE;\n Wed, 22 Apr 2026 18:57:20 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 2FAF4507A31C","OpenDKIM Filter v2.11.0 sourceware.org 51E9942DAB10"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 51E9942DAB10","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 51E9942DAB10","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776884240; cv=none;\n b=btDuiludTwf5scVClAqkTInXSjsxZ04iWYd2syoQ0IfVHtM+m5iYEkB302yLRzH76NT93wijQ2r3K/EiBvgUvm68YjNOYoeQ6BUhqEgppcNoC+fFAHhtOc5fsjcUXiIau9Wd83DOSOktRbrg8y/tl8XNLpgS/KgyW7nb/ZU5RNI=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776884240; c=relaxed/simple;\n bh=ygxcHla/LpjO8jiH3dhzjoDWbvKSCkclWYXlClPdt1M=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=RQbx+Cc3EC8nl+EmaRrhTKYVSHD4QxBsdFeLYCQygqHCgffpSoZpjfaVkdhgdkifMX4tpyC7ii+2JmWMgA2uClxHBuKGr6iNRf0Y+VI6tuOd+XFYL34jCVMRRtydMVFGg6cm2ngSDp/cACxVgShUQmkIUj+rB9f8zNLr/AwqFUs=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v2 0/1] libgccjit: Add the function attributes for setting\n the ABI","From":"Lichenor Forgejo Bot via Sourceware Forge\n <forge-bot+forge-bot@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Cc":"David Malcolm <dmalcolm@redhat.com>,  <jit@gcc.gnu.org>","Date":"Thu, 16 Oct 2025 23:11:00 +0000","Message-ID":"\n <bmm.hc3mbiemtc.gcc.gcc-TEST.forge-bot.109.3103.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhupb9trnq.gcc.gcc-TEST.antoyo.109.2.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/109","X-Comment":"\n https://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-3103","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","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"}},{"id":3681028,"web_url":"http://patchwork.ozlabs.org/comment/3681028/","msgid":"<bmm.hc3mawz11c.gcc.gcc-TEST.forge-bot.109.3101.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-10-16T23:10:24","subject":"Re: [PATCH v2 0/1] libgccjit: Add the function attributes for setting\n the ABI","submitter":{"id":93212,"url":"http://patchwork.ozlabs.org/api/people/93212/","name":"Lichenor Forgejo Bot via Sourceware Forge","email":"forge-bot+forge-bot@forge-stage.sourceware.org"},"content":"<!-- pr-new-version -->\nVersion 1 of this pull request has been stored. It includes the following commits:\n- libgccjit: Add the function attributes for setting the ABI - 5dda902d4f9951466b3092cbd6f084cac806949c\n\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-3101","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 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; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"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 4g19Y57485z1yHB\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 06:19:05 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 30AB14703825\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 20:18:02 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 455134332F23;\n Wed, 22 Apr 2026 18:57:20 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 1926E435BD;\n Wed, 22 Apr 2026 18:57:20 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 30AB14703825","OpenDKIM Filter v2.11.0 sourceware.org 455134332F23"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 455134332F23","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 455134332F23","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776884240; cv=none;\n b=P+2nIr3GyduKLrzqxpvznFfnjN6j43ZKS+iScS4HchUb0KgQZWxCRB3L4zAE0G3SG2Mpw5HjWkWlwSqPZPuqiwyu6RZoUgkdDuxIYaVVRTVeCDDIYUMsvCWazldBY4Ids/zBt5aomXlPFRjTfqic0q0iPiM+Ux88i945U3ZIkNM=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776884240; c=relaxed/simple;\n bh=/8Abu8NjZ6ZzorVN1v7LoUkTLmw35xdf/nO6TD+0o/k=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=fLTDZoPEmEXAtKs+cZ4B1UbsASBw0xZ3d8OJkmUeiwHt4bb/23dfmNzrMX7O9utgxpVUmoyfxkGJtElEO410+tbIj8NonExbcOn4xbpr8V8h3eifDsvRej0n8wvQx5xSlJAigrdKKNkfZc/tQgQnWajOORxQXXrKGORq1PU/UKU=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v2 0/1] libgccjit: Add the function attributes for setting\n the ABI","From":"Lichenor Forgejo Bot via Sourceware Forge\n <forge-bot+forge-bot@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Cc":"David Malcolm <dmalcolm@redhat.com>,  <jit@gcc.gnu.org>","Date":"Thu, 16 Oct 2025 23:10:24 +0000","Message-ID":"\n <bmm.hc3mawz11c.gcc.gcc-TEST.forge-bot.109.3101.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhupb9trnq.gcc.gcc-TEST.antoyo.109.2.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/109","X-Comment":"\n https://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-3101","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","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"}},{"id":3681033,"web_url":"http://patchwork.ozlabs.org/comment/3681033/","msgid":"<bmm.hc3maulam8.gcc.gcc-TEST.pinskia.109.299.REVIEW@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-10-16T23:10:20","subject":"Re: [PATCH v2 0/1] libgccjit: Add the function attributes for setting\n the ABI","submitter":{"id":93219,"url":"http://patchwork.ozlabs.org/api/people/93219/","name":"Andrew Pinski via Sourceware Forge","email":"forge-bot+pinskia@forge-stage.sourceware.org"},"content":"Andrew Pinski (pinskia) <pinskia@gcc.gnu.org>) commented on the code:\n\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nDoes it make sense to do this way or should it be a target specific hook to add the ability to have new fn attributes here?\n>From a GCC point of view I rather have hooks rather than target specific items in generic code.\nI know rustc and clang handle the target specific code in general code all the time but I think that is bad design.\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nCould you please explain how that API would look like?\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nThere will be a range defined for in gcc_jit_fn_attribute for target specific enums.\nAnd then you have headers for the target you are compiling which defines attributes in that range. And you dispatch to the hook for that for the target.\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nYou mean something like:\n```\nenum gcc_jit_fn_attribute\n{\n  GCC_JIT_FN_ATTRIBUTE_ALIAS,\n  GCC_JIT_FN_ATTRIBUTE_ALWAYS_INLINE,\n  GCC_JIT_FN_ATTRIBUTE_INLINE,\n  GCC_JIT_FN_ATTRIBUTE_NOINLINE,\n  GCC_JIT_FN_ATTRIBUTE_TARGET,\n  GCC_JIT_FN_ATTRIBUTE_USED,\n  GCC_JIT_FN_ATTRIBUTE_VISIBILITY,\n  GCC_JIT_FN_ATTRIBUTE_COLD,\n  GCC_JIT_FN_ATTRIBUTE_RETURNS_TWICE,\n  GCC_JIT_FN_ATTRIBUTE_PURE,\n  GCC_JIT_FN_ATTRIBUTE_CONST,\n  GCC_JIT_FN_ATTRIBUTE_WEAK,\n  GCC_JIT_FN_ATTRIBUTE_NONNULL,\n\n#include \"target-fn-attributes.def\"\n}\n```\n?\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nMore like:\n```\nenum gcc_jit_fn_attribute\n{\n...\n  GCC_JIT_FN_ATTRIBUTE_TARGET_START,\n};\n\n#include \"target-libgccjit.h\"\n```\n\nAnd then inside target-libgccjit.h for the specific target, define a new enum that starts at GCC_JIT_FN_ATTRIBUTE_TARGET_START.\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\n`libgccjit` aims to provide a [strong ABI guarantee](https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html). How would you keep that guarantee with this approach?\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\n@antoyo wrote in https://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-3110:\n\n> `libgccjit` aims to provide a [strong ABI guarantee](https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html). How would you keep that guarantee with this approach?\n\nI don't see how that is NOT backwards compatible. Put GCC_JIT_FN_ATTRIBUTE_TARGET_START higher up if needed so you can add more inbetween. Like say `0x10_00_00`.\nThe ABI/API guarantee between targets is NOT talked about.\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nHow would you handle the bindings from other programming languages to the C API of libgccjit if we follow this approach?\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nHow does they work right now? Is there some processing of the header file to generate it?\nIf so that is how. Instead of processing the header file you process the preprocessed source.\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nIf @dmalcolm confirms that he's OK with having the libgccjit API different depending on the target, I'll implement these changes.\nI wonder if this could leads to problems or ABI breakages if at some point we have a multi-arch GCC.\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nI think I prefer @antoyo's approach here.  I'm not sure why we went with an enum for identifying attributes in gcc_jit_function_add_attribute and gcc_jit_function_add_string_attribute; perhaps using const char * would have been better.\n\nBut given that we did, I prefer having a unified enum giving all possible attributes - this might be better if we need to support cross-compilation in the future.\n\n> +++ gcc/jit/jit-playback.cc\n> @@ -547,6 +547,38 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)\n>        return \"weak\";\n>      case GCC_JIT_FN_ATTRIBUTE_NONNULL:\n>        return \"nonnull\";\n> +    case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_CALL:\nPatch looks good to me; thanks.\n\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-3100","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 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; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"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 4g19hB3DGWz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 06:25:14 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id BCE59516F05C\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 20:22:08 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 32FD5430E69B;\n Wed, 22 Apr 2026 18:57:20 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 07069435BC;\n Wed, 22 Apr 2026 18:57:20 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org BCE59516F05C","OpenDKIM Filter v2.11.0 sourceware.org 32FD5430E69B"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 32FD5430E69B","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 32FD5430E69B","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776884240; cv=none;\n b=oTrnjtOFukcp/Pm20AN5Eq6WRcL7vM2b6mgPkwCTFACqMx4HcibfU/v8YnxF9It8VzRHBb7QghftWJ3Koo5WrKLTnxX77rIzHZNVOaAI9juAaGZkhUerYw4xsWO6pTgBS/gHqcj3Qqe3u86sUtEj8c9HvVeFCVpqR7D53iKfG1s=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776884240; c=relaxed/simple;\n bh=bZUVkMw/fdqR8mLDhu+ysW0g2aSHSiQeoSKOy2adYfw=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=TC1QxkjR+dRVV9S/2ao9msC9IKtOe/zK5/+wRZJzHSftzgCvWya8xVl+Ygmi0/znBAMuhlq3tp1l4A5QnWFxioO+D2uEnkfQJOj1O2X+kSGovcmurhKfClAhFRwa9YTJ/MQI5jWgXKdNftGa0aWz/a1TPkl8rGdyBZjwke9yiNQ=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v2 0/1] libgccjit: Add the function attributes for setting\n the ABI","From":"Andrew Pinski via Sourceware Forge\n <forge-bot+pinskia@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Cc":"David Malcolm <dmalcolm@redhat.com>,  <jit@gcc.gnu.org>","Date":"Thu, 16 Oct 2025 23:10:20 +0000","Message-ID":"\n <bmm.hc3maulam8.gcc.gcc-TEST.pinskia.109.299.REVIEW@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhupb9trnq.gcc.gcc-TEST.antoyo.109.2.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/109","X-Review":"\n https://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-3100","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","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"}},{"id":3681035,"web_url":"http://patchwork.ozlabs.org/comment/3681035/","msgid":"<bmm.hcx2vj8nb4.gcc.gcc-TEST.antoyo.109.3985.CMT@forge-stage.sourceware.org>","list_archive_url":null,"date":"2025-11-12T16:27:40","subject":"Re: [PATCH v2 0/1] libgccjit: Add the function attributes for setting\n the ABI","submitter":{"id":92206,"url":"http://patchwork.ozlabs.org/api/people/92206/","name":"Antoni Boucher via Sourceware Forge","email":"forge-bot+antoyo@forge-stage.sourceware.org"},"content":"Merged.\n\n--\nhttps://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-3985","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 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; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org","sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org","server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"],"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 4g19mC3vrjz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 06:28:42 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id A180C45ADFA8\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 20:27:33 +0000 (GMT)","from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id C9DCE42D1F6C;\n Wed, 22 Apr 2026 18:57:20 +0000 (GMT)","from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 3B52F435BF;\n Wed, 22 Apr 2026 18:57:20 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org A180C45ADFA8","OpenDKIM Filter v2.11.0 sourceware.org C9DCE42D1F6C"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org C9DCE42D1F6C","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org C9DCE42D1F6C","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776884240; cv=none;\n b=gK9MyeLuxgR3dvAfww6Z/+bJEEElHE5tJIi6p2MbPUtok1sjVPaWPfb9VLCBKyOt3W7xhVRVYH3kYBIpZjAYGYSStqCkLcu5NYdLWHeC0OL3PBt++VU513zX7A0HZnGXnX9lo14vg6/g50O5sODCHk7rk2tna47Q8cAA4GKPwM8=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776884240; c=relaxed/simple;\n bh=/0q2tXNZ1VvcjHKAnMq5sDpkHmto9s9PODVeP7YXLec=;\n h=Subject:From:To:Date:Message-ID:MIME-Version;\n b=D9kaSJKeGm4uuSvUGHw0/VDbpY6bHrVc/uhKWgkT7Jn6718+lHcW8RSSxuUaCFYxlASfMG+gT4pcJGODSUIL03IkQWYM+Dz6PR5qwoj50qixdLecbBIrVecHjmPW6dqzGSIx3XBQekoOdAiEphGiPw+Aue1C4xCoLSvuuhKKgdI=","ARC-Authentication-Results":"i=1; server2.sourceware.org","Subject":"Re: [PATCH v2 0/1] libgccjit: Add the function attributes for setting\n the ABI","From":"Antoni Boucher via Sourceware Forge\n <forge-bot+antoyo@forge-stage.sourceware.org>","To":"gcc-patches mailing list <gcc-patches@gcc.gnu.org>","Cc":"David Malcolm <dmalcolm@redhat.com>,  <jit@gcc.gnu.org>","Date":"Wed, 12 Nov 2025 16:27:40 +0000","Message-ID":"\n <bmm.hcx2vj8nb4.gcc.gcc-TEST.antoyo.109.3985.CMT@forge-stage.sourceware.org>","In-Reply-To":"\n <bmm.hhupb9trnq.gcc.gcc-TEST.antoyo.109.2.0@forge-stage.sourceware.org>","X-Mailer":"batrachomyomachia","X-Pull-Request-Organization":"gcc","X-Pull-Request-Repository":"gcc-TEST","X-Pull-Request":"https://forge.sourceware.org/gcc/gcc-TEST/pulls/109","X-Comment":"\n https://forge.sourceware.org/gcc/gcc-TEST/pulls/109#issuecomment-3985","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","MIME-Version":"1.0","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"}}]