{"id":2223280,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2223280/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/20260414231905.191063-24-arthur.cohen@embecosm.com/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/1.1/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20260414231905.191063-24-arthur.cohen@embecosm.com>","date":"2026-04-14T23:18:45","name":"[COMMITTED,24/43] gccrs: Flatten AttrInputExpr literals to AttrInputLiteral","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"62283ca507f9663eec638c61ff8851bd412f6f29","submitter":{"id":83476,"url":"http://patchwork.ozlabs.org/api/1.1/people/83476/?format=json","name":"Arthur Cohen","email":"arthur.cohen@embecosm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/20260414231905.191063-24-arthur.cohen@embecosm.com/mbox/","series":[{"id":499900,"url":"http://patchwork.ozlabs.org/api/1.1/series/499900/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=499900","date":"2026-04-14T23:18:24","name":"[COMMITTED,01/43] gccrs: testsuite:Add a testcase for setup_associated_types","version":1,"mbox":"http://patchwork.ozlabs.org/series/499900/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2223280/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2223280/checks/","tags":{},"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=embecosm.com header.i=@embecosm.com header.a=rsa-sha256\n header.s=google header.b=AgROtcLH;\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=embecosm.com header.i=@embecosm.com header.a=rsa-sha256\n header.s=google header.b=AgROtcLH","sourceware.org;\n dmarc=none (p=none dis=none) header.from=embecosm.com","sourceware.org; spf=pass smtp.mailfrom=embecosm.com","server2.sourceware.org;\n arc=none smtp.remote-ip=209.85.128.54"],"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 4fwKyJ5N9tz1yHM\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 15 Apr 2026 09:20:40 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id E4A394BA2E11\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 23:20:38 +0000 (GMT)","from mail-wm1-f54.google.com (mail-wm1-f54.google.com\n [209.85.128.54])\n by sourceware.org (Postfix) with ESMTPS id 91DA44BA23E6\n for <gcc-patches@gcc.gnu.org>; Tue, 14 Apr 2026 23:14:45 +0000 (GMT)","by mail-wm1-f54.google.com with SMTP id\n 5b1f17b1804b1-488a29e6110so66403855e9.3\n for <gcc-patches@gcc.gnu.org>; Tue, 14 Apr 2026 16:14:45 -0700 (PDT)","from platypus.localdomain (176-147-231-59.abo.bbox.fr.\n [176.147.231.59]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-488f1dd8806sm3325945e9.3.2026.04.14.16.14.41\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 14 Apr 2026 16:14:42 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org E4A394BA2E11","OpenDKIM Filter v2.11.0 sourceware.org 91DA44BA23E6"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 91DA44BA23E6","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 91DA44BA23E6","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776208485; cv=none;\n b=ZR7+uq64nabRUL9dwO1cUKi4/dcLtKT82bEoVjYW9yE2WfuQOuaRrlnvVhwYcbteLUBx+jvRLCBUuVBb1uw7M3m8l6dm2+rN9w+d5LGtvYo6Yidj5+ZkmQsoVuMaqFd+7jlrb+vuG3V3PFSn47TC3xCioYJ8FBzoQn4TA/46ndQ=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776208485; c=relaxed/simple;\n bh=q8z/W35klDc7Qo7fq5DyE/B6+hw45e8y1RGCmpszYLg=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=LkHJOYdNgqjYoT/etit9+QdMYTnBrIgt7yKLfqZIz2yrcAHa4bSwvj2MfXoh4JQjzkiJ36z66sUF8HIZIl5rh8NoZjrKzkPcl/EVKH7V6CuKuQOxdBmcfqVq41fPox0OBKFTWJTxVPSqzI0nnjqkMUQ0BhkIG3H2vk3iLIzGLDk=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=embecosm.com; s=google; t=1776208484; x=1776813284; 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=P+QFlzq1OKVDkQBU0adJlxXdIa8XnM23dkKgmdflnz0=;\n b=AgROtcLHURp58d/Cu4HTRgd6b0hd901lvho46lNxh8anzJmGjXFFcEgs8cnD1JE5Z8\n j1ILVVldCeMNklrOSVZvjWLFGmUkVjIgOJ/ZcMXeNkq0A+BkK5pdpxftIIjgVeCKTxyo\n VFCejfH5uFFwHTebsmAv0prtFuN6APWZflSUNbsd3wWEuuPWraJydXXD7wupH/gWktRf\n 6ka1xaTD49ntUpHUrAlT1XinVCZHx8CxXdI9qJhEzxoZ8x6iLziP8/whqDDFFS5Cuarl\n apzc+cgGQtRLkwtr0S5OR1uasN1KIWZBCE36VqZSAgpkcpXokUqGiWm/g3D/mQRSI6xl\n W8MA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776208484; x=1776813284;\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=P+QFlzq1OKVDkQBU0adJlxXdIa8XnM23dkKgmdflnz0=;\n b=HYU1NKUQw2LN9mbbO4yxKd1DruVXzWbLRZXRpOWv6kC9ZD4jJJOrkAvYmCIrED7B+j\n RRzHQ9U/r9bi6lXcKTvJBVaZbeRbgeoVkyFsCXRJGz6eFoBs3+25kUItMuKARbgHwaA1\n GS56VPqptAVohY3pMK11zatnXUrwPNzBshM8Vt+0n2+ZJ3G37mSP6lgmRkjnfWNxfWqX\n 2jA6t1u0pYPv/TkZ7vwZgCrsTSbI0VD6wXnxdr4WNDc051bx1ToG/IH5bY5pr7UGm3PR\n yloEtxYzlFsJRfCBZsp9wUFfNY3PFI6yMFnwYlxuza+07GYfifw1NUY/Z0/cBA2bybI2\n XhXA==","X-Gm-Message-State":"AOJu0YyqapKLkJGbekyLfOebCRXuJjDlYa832m7VKUD1fprH+2AZTVi3\n 1DeKeIQ5qoUaCMlYcfbQmeWR+pOgb5yrEHwu0Ei6GCxl9C2F4M5Ai+GNkGWQzhCzDfkcIkli5kB\n aDRdW2w==","X-Gm-Gg":"AeBDieuHfHLabT5A4sl4baIv1GpbXWSVQGMDD2H3d8Fdo/uKFjnqal8TZ9CAP62sqdk\n RYjwcQE6mGWB0UKmsR2OQblg6/SC/HUoQ4hvUg8PacYZ93PXJKawNKuvi9UwZHRFBLPTgE/bcJl\n 3nEIygLiX1Q5F1OTIIFLjFV8QXdZ0pRRJH9d1Am0NctZO3/u3U3DWDir30eXd74vsHSo3DbptRG\n f6pz86kprLkxNYTNOhpd0/B/YRZg459Iy5N0DpC2GrSx84Pp/ZeyOaaOQ3/5IE2dynO3DRMZDb8\n q9EoCopD4NVgOiM68J+/SNhhUsvpsmZtZ/Gg+7c4RrevXfHhfBIV/sIuWHPl3snUoZjcHdbGYW/\n Mu9+9x5xJ4UetMMTRPZE3N1s9NODhA4WrKPSK17i9NJHRcQr/DQ2K/nFUOulYNgABvPIGavph1Y\n JHDEC3+eL80rApyBdrlRxasQSxKl689ruCzbL/AQ1EPzanHDmm2Ebf0CeQYJIm3NMqRemD0pDMT\n LkfwQ==","X-Received":"by 2002:a05:600c:6089:b0:488:d376:42cd with SMTP id\n 5b1f17b1804b1-488d689d9admr257649815e9.22.1776208484275;\n Tue, 14 Apr 2026 16:14:44 -0700 (PDT)","From":"arthur.cohen@embecosm.com","To":"gcc-patches@gcc.gnu.org","Cc":"gcc-rust@gcc.gnu.org,\n Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>","Subject":"[COMMITTED 24/43] gccrs: Flatten AttrInputExpr literals to\n AttrInputLiteral","Date":"Wed, 15 Apr 2026 01:18:45 +0200","Message-ID":"<20260414231905.191063-24-arthur.cohen@embecosm.com>","X-Mailer":"git-send-email 2.50.1","In-Reply-To":"<20260414231905.191063-1-arthur.cohen@embecosm.com>","References":"<20260414231905.191063-1-arthur.cohen@embecosm.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":"From: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>\n\nSome macros may be expanded to literals within attribute input. This\nthis means they could be converted to AttrInputLiteral and properly\ndifferentiate both expr and literal in the builtin attribute checker to\nemit an error message when a real expr remains within an attribute.\n\ngcc/rust/ChangeLog:\n\n\t* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Flatten\n\tAttrInputExpr containing a literal to an AttrInputLiteral.\n\t* expand/rust-expand-visitor.h: Add function prototype.\n\nSigned-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>\n---\n gcc/rust/expand/rust-expand-visitor.cc | 18 ++++++++++++++++++\n gcc/rust/expand/rust-expand-visitor.h  |  2 ++\n 2 files changed, 20 insertions(+)","diff":"diff --git a/gcc/rust/expand/rust-expand-visitor.cc b/gcc/rust/expand/rust-expand-visitor.cc\nindex 16786e32e15..d03793b4287 100644\n--- a/gcc/rust/expand/rust-expand-visitor.cc\n+++ b/gcc/rust/expand/rust-expand-visitor.cc\n@@ -335,6 +335,24 @@ ExpandVisitor::expand_inner_stmts (AST::BlockExpr &expr)\n   expander.pop_context ();\n }\n \n+void\n+ExpandVisitor::visit (AST::Attribute &attr)\n+{\n+  // An attribute input containing a macro may have been expanded to a literal\n+  if (attr.has_attr_input ()\n+      && attr.get_attr_input ().get_attr_input_type ()\n+\t   == AST::AttrInput::AttrInputType::EXPR)\n+    {\n+      auto &expr = static_cast<AST::AttrInputExpr &> (attr.get_attr_input ());\n+      if (expr.get_expr ().is_literal ())\n+\t{\n+\t  auto &lit = static_cast<AST::LiteralExpr &> (expr.get_expr ());\n+\t  attr.set_attr_input (std::make_unique<AST::AttrInputLiteral> (lit));\n+\t}\n+    }\n+  AST::DefaultASTVisitor::visit (attr);\n+}\n+\n void\n ExpandVisitor::maybe_expand_expr (std::unique_ptr<AST::Expr> &expr)\n {\ndiff --git a/gcc/rust/expand/rust-expand-visitor.h b/gcc/rust/expand/rust-expand-visitor.h\nindex d6e48e0757f..6faf825ae3e 100644\n--- a/gcc/rust/expand/rust-expand-visitor.h\n+++ b/gcc/rust/expand/rust-expand-visitor.h\n@@ -221,6 +221,8 @@ public:\n   void visit (AST::LifetimeParam &) override;\n   void visit (AST::ConstGenericParam &) override;\n \n+  void visit (AST::Attribute &attribute) override;\n+\n   void visit (AST::MacroInvocation &macro_invoc) override;\n \n   void visit (AST::PathInExpression &path) override;\n","prefixes":["COMMITTED","24/43"]}