[{"id":3678848,"web_url":"http://patchwork.ozlabs.org/comment/3678848/","msgid":"<87v7dptrwo.fsf@gentoo.org>","list_archive_url":null,"date":"2026-04-17T17:31:35","subject":"Re: [PATCH 00/30] Align struct/class forward declaration with\n implementation","submitter":{"id":83216,"url":"http://patchwork.ozlabs.org/api/people/83216/","name":"Sam James","email":"sam@gentoo.org"},"content":"Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> writes:\n\n> Hi,\n>\n> This patch series attempts to address the mix of \"struct foo\" and \"class foo\"\n> that exist thoughout the code base.\n> While it should be valid to mix them, LLVM warns that it might cause link\n> errors in Microsoft C++ ABI.\n>\n> [...]\n> This entire series does not have any functional change.\n>\n> Ok for trunk?\n\nRefactoring is definitely stage 1 material. We are very late in stage 4.","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;\n dmarc=pass (p=none dis=none) header.from=gentoo.org","sourceware.org; spf=pass smtp.mailfrom=gentoo.org","server2.sourceware.org;\n arc=none smtp.remote-ip=140.211.166.183"],"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 4fy2NG6k6hz1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 18 Apr 2026 03:45:33 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id ACB6B4C91766\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 17:45:31 +0000 (GMT)","from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183])\n by sourceware.org (Postfix) with ESMTP id 177A24C91766\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 17:31:41 +0000 (GMT)","from mop.sam.mop\n (2.8.3.0.0.0.0.0.0.0.0.0.0.0.0.0.a.5.c.d.c.d.9.1.0.b.8.0.1.0.0.2.ip6.arpa\n [IPv6:2001:8b0:19dc:dc5a::382])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested) (Authenticated sender: sam)\n by smtp.gentoo.org (Postfix) with ESMTPSA id 95AE4340F85;\n Fri, 17 Apr 2026 17:31:39 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org ACB6B4C91766","OpenDKIM Filter v2.11.0 sourceware.org 177A24C91766"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 177A24C91766","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 177A24C91766","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776447101; cv=none;\n b=BUQkOpk8udyTt+OykfQBQPb7NczZQCLV8iZ2/Wjts8dEURc+Ofl0kE35zQbv+kmrEVPjQ/uzG76vekkp11asT7nqlynFLaIzW39ewNHFWiMc5jFTkgyaYnxkm4AEaTH3nZRcfxQ2o7qLGkCuhXw5eNPC9GAoKqKyQ4s6u7zs2gk=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776447101; c=relaxed/simple;\n bh=621nOKYm4m73bQJXkf4gCDNVxJYXF6QiPtRJGEF7sYQ=;\n h=From:To:Subject:Date:Message-ID:MIME-Version;\n b=mXFxLmA9bvH4qNkT1175vyvz8zjTRUPtnTeK16PiF1XgwKjKAgB/HDyEBhAqbTECzBr+7ngM6O456491U3FCO+KDYCsCIk1obBkXxtNI91Aic86QnOjnsC9fv7qFuNzT1Vv57CCaQfEevtypGnLsNNt8tB1hxdSeBsGfSzEATBg=","ARC-Authentication-Results":"i=1; server2.sourceware.org","From":"Sam James <sam@gentoo.org>","To":"=?utf-8?b?VG9yYmrDtnJu?= SVENSSON <torbjorn.svensson@foss.st.com>","Cc":"<gcc-patches@gcc.gnu.org>","Subject":"Re: [PATCH 00/30] Align struct/class forward declaration with\n implementation","In-Reply-To":"<20260417172506.1015169-2-torbjorn.svensson@foss.st.com>","Organization":"Gentoo","References":"<20260417172506.1015169-2-torbjorn.svensson@foss.st.com>","User-Agent":"mu4e 1.14.0; emacs 31.0.50","Date":"Fri, 17 Apr 2026 18:31:35 +0100","Message-ID":"<87v7dptrwo.fsf@gentoo.org>","MIME-Version":"1.0","Content-Type":"multipart/signed; boundary=\"=-=-=\";\n micalg=pgp-sha512; protocol=\"application/pgp-signature\"","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":3678861,"web_url":"http://patchwork.ozlabs.org/comment/3678861/","msgid":"<CALvbMcDOqJBTL1dEx6SPBj_OmLAqsRygHG+cE8UDYrgB9P_7Vg@mail.gmail.com>","list_archive_url":null,"date":"2026-04-17T18:56:31","subject":"Re: [PATCH 00/30] Align struct/class forward declaration with\n implementation","submitter":{"id":91428,"url":"http://patchwork.ozlabs.org/api/people/91428/","name":"Andrew Pinski","email":"andrew.pinski@oss.qualcomm.com"},"content":"On Fri, Apr 17, 2026 at 10:26 AM Torbjörn SVENSSON\n<torbjorn.svensson@foss.st.com> wrote:\n>\n> Hi,\n>\n> This patch series attempts to address the mix of \"struct foo\" and \"class foo\"\n> that exist thoughout the code base.\n> While it should be valid to mix them, LLVM warns that it might cause link\n> errors in Microsoft C++ ABI.\n>\n> After applying this serie, the following files still produces the warning:\n>\n> gt-alias.h\n> gt-arm-mve-builtins.h\n> gt-btfout.h\n> gt-c-c-decl.h\n> gt-cgraph.h\n> gt-cgraphclones.h\n> gt-cp-class.h\n> gt-cp-constexpr.h\n> gt-cp-constraint.h\n> gt-cp-contracts.h\n> gt-cp-coroutines.h\n> gt-cp-cp-gimplify.h\n> gt-cp-decl.h\n> gt-cp-decl2.h\n> gt-cp-lex.h\n> gt-cp-logic.h\n> gt-cp-module.h\n> gt-cp-name-lookup.h\n> gt-cp-pt.h\n> gt-cp-semantics.h\n> gt-cp-tree.h\n> gt-dwarf2asm.h\n> gt-dwarf2out.h\n> gt-emit-rtl.h\n> gt-except.h\n> gt-function.h\n> gt-ipa-modref.h\n> gt-ipa-prop.h\n> gt-ipa-sra.h\n> gt-optabs-libfuncs.h\n> gt-trans-mem.h\n> gt-tree-scalar-evolution.h\n> gt-tree.h\n> gt-ubsan.h\n> gt-varasm.h\n> gtype-desc.cc\n>\n>\n> I belive that all the above files are generated by the 'gengtype' program\n> during the build, but I've not found an easy way to fix it.\n> Currently, the gengtype program consider class and struct to be identical\n> keywords, but acoording to the LLVM warning, they are not.\n\nThey are valid thing to do for C++, except it looks like a\nnon-compliant C++ compiler can cause differences. I am not sure we\nwant to support a non C++14 compiler.\nWe did add this warning (but it causes GC issues and it is NOT enabled\nby default).\nThat being said I think instead we should remove the tag in most\nplaces. And that can/should be done separately from the fixup of the\nplaces where struct/class tags do need to stay/change.\n\nThanks,\nAndrea\n\n> As I see it, there are two possible ways to address the remaning warnings.\n> a) Change all usage of 'struct' to 'class' for the types that are tagged with\n>    GTY.\n> b) Split out classes from structs in gengtype and generate 'class' for classes\n>    and 'struct' for structs.\n>\n> Anyway, gengtype can be addressed at a later time.\n>\n> Regtested on top of r16-8473-g5cc0ead3625fe6 with arm-none-eabi using a GCC\n> built Linux hosted toolchain and a LLVM built macOS hosted toolchain.\n>\n> This entire series does not have any functional change.\n>\n> Ok for trunk?\n>\n> Kind regards,\n> Torbjörn\n>\n>\n> Torbjörn SVENSSON (30):\n>   Change `struct alloca_type_and_limit` to `class alloca_type_and_limit`\n>     to align tags\n>   Change `struct cgraph_edge` to `class cgraph_edge` to align tags\n>   Change `struct data_in` to `class data_in` to align tags\n>   Change `struct gori_stmt_info` to `class gori_stmt_info` to align tags\n>   Change `struct loop` to `class loop` to align tags\n>   Change `struct lto_input_block` to `class lto_input_block` to align\n>     tags\n>   Change `struct mkdeps` to `class mkdeps` to align tags\n>   Change `struct object_allocator` to `class object_allocator` to align\n>     tags\n>   Change `struct tree_niter_desc` to `class tree_niter_desc` to align\n>     tags\n>   Change `struct vrange_storage` to `class vrange_storage` to align tags\n>   Change `class access_data` to `struct access_data` to align tags\n>   Change `class bounded_ranges` to `struct bounded_ranges` to align tags\n>   Change `class byte_range` to `struct byte_range` to align tags\n>   Change `class cpp_char_column_policy` to `struct\n>     cpp_char_column_policy` to align tags\n>   Change `class dump_widget_info` to `struct dump_widget_info` to align\n>     tags\n>   Change `class element` to `struct element` to align tags\n>   Change `class escape_summary` to `struct escape_summary` to align tags\n>   Change `class graph` to `struct graph` to align tags\n>   Change `class ipcp_transformation` to `struct ipcp_transformation` to\n>     align tags\n>   Change `class ipa_jump_func` to `struct ipa_jump_func` to align tags\n>   Change `class ipa_vr` to `struct ipa_vr` to align tags\n>   Change `class lto_simple_output_block` to `struct\n>     lto_simple_output_block` to align tags\n>   Change `class modref_summary` to `struct modref_summary` to align tags\n>   Change `class modref_summary_lto` to `struct modref_summary_lto` to\n>     align tags\n>   Change `class node` to `struct node` to align tags\n>   Change `class odr_enum` to `struct odr_enum` to align tags\n>   Change `class real_value` to `struct real_value` to align tags\n>   Change `class deallocator` to `struct deallocator` to align tags\n>   Change `class deallocator_set` to `struct deallocator_set` to align\n>     tags\n>   Change `class redirection_data` to `struct redirection_data` to align\n>     tags\n>\n>  gcc/analyzer/common.h             |  2 +-\n>  gcc/analyzer/sm-malloc.cc         |  4 +-\n>  gcc/analyzer/store.h              |  2 +-\n>  gcc/auto-profile.cc               |  6 +--\n>  gcc/auto-profile.h                |  2 +-\n>  gcc/cfg.cc                        |  2 +-\n>  gcc/cgraph.cc                     |  2 +-\n>  gcc/cgraph.h                      |  8 +--\n>  gcc/config/arm/arm.cc             |  4 +-\n>  gcc/config/rs6000/rs6000.cc       |  6 +--\n>  gcc/config/s390/s390.cc           |  6 +--\n>  gcc/coretypes.h                   |  2 +-\n>  gcc/diagnostics/digraphs.h        |  2 +-\n>  gcc/diagnostics/state-graphs.h    |  2 +-\n>  gcc/except.cc                     |  2 +-\n>  gcc/fwprop.cc                     |  6 +--\n>  gcc/gimple-iterator.cc            |  2 +-\n>  gcc/gimple-range-gori.cc          |  4 +-\n>  gcc/gimple-ssa-warn-access.h      |  3 +-\n>  gcc/gimple-ssa-warn-alloca.cc     |  2 +-\n>  gcc/graphite-isl-ast-to-gimple.cc |  6 +--\n>  gcc/graphite-scop-detection.cc    |  4 +-\n>  gcc/graphviz.h                    |  2 +-\n>  gcc/inchash.h                     |  2 +-\n>  gcc/input.h                       |  2 +-\n>  gcc/ipa-comdats.cc                |  4 +-\n>  gcc/ipa-cp.cc                     | 54 ++++++++++----------\n>  gcc/ipa-devirt.cc                 |  4 +-\n>  gcc/ipa-fnsummary.cc              | 50 +++++++++----------\n>  gcc/ipa-fnsummary.h               |  8 +--\n>  gcc/ipa-icf.cc                    |  4 +-\n>  gcc/ipa-inline-analysis.cc        | 22 ++++-----\n>  gcc/ipa-inline-transform.cc       | 14 +++---\n>  gcc/ipa-inline.cc                 | 82 +++++++++++++++----------------\n>  gcc/ipa-inline.h                  | 24 ++++-----\n>  gcc/ipa-locality-cloning.cc       | 12 ++---\n>  gcc/ipa-modref-tree.cc            |  2 +-\n>  gcc/ipa-modref-tree.h             |  2 +-\n>  gcc/ipa-modref.cc                 | 26 +++++-----\n>  gcc/ipa-profile.cc                | 10 ++--\n>  gcc/ipa-prop.cc                   | 70 +++++++++++++-------------\n>  gcc/ipa-prop.h                    | 20 ++++----\n>  gcc/ipa-pure-const.cc             | 14 +++---\n>  gcc/ipa-reference.cc              |  4 +-\n>  gcc/ipa-sra.cc                    | 10 ++--\n>  gcc/ipa-utils.cc                  | 18 +++----\n>  gcc/ipa-utils.h                   | 10 ++--\n>  gcc/ipa-visibility.cc             |  2 +-\n>  gcc/ipa.cc                        |  8 +--\n>  gcc/lto-cgraph.cc                 | 22 ++++-----\n>  gcc/lto-streamer-in.cc            |  6 +--\n>  gcc/lto/lto-partition.cc          |  6 +--\n>  gcc/lto/lto-symtab.cc             |  2 +-\n>  gcc/optc-save-gen.awk             |  4 +-\n>  gcc/passes.cc                     |  2 +-\n>  gcc/predict.cc                    |  6 +--\n>  gcc/symtab-thunks.h               |  2 +-\n>  gcc/text-art/tree-widget.h        |  2 +-\n>  gcc/trans-mem.cc                  |  8 +--\n>  gcc/tree-cfgcleanup.cc            |  2 +-\n>  gcc/tree-core.h                   |  2 +-\n>  gcc/tree-inline.cc                | 14 +++---\n>  gcc/tree-inline.h                 |  2 +-\n>  gcc/tree-ssa-loop-ivopts.cc       |  4 +-\n>  gcc/tree-ssa-loop-split.cc        | 32 ++++++------\n>  gcc/tree-ssa-reassoc.cc           |  2 +-\n>  gcc/tree-ssa-threadupdate.h       |  2 +-\n>  gcc/tree-vect-loop.cc             |  2 +-\n>  gcc/tree-vect-slp.cc              |  8 +--\n>  gcc/tree-vectorizer.cc            |  2 +-\n>  gcc/xml-printer.h                 |  4 +-\n>  libcpp/include/mkdeps.h           |  8 +--\n>  libcpp/mkdeps.cc                  |  8 +--\n>  73 files changed, 355 insertions(+), 356 deletions(-)\n>\n> --\n> 2.43.0\n>","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=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=co9i0dfI;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=NH3oTzTr;\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=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=co9i0dfI;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=NH3oTzTr","sourceware.org; dmarc=none (p=none dis=none)\n header.from=oss.qualcomm.com","sourceware.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com","server2.sourceware.org;\n arc=pass smtp.remote-ip=205.220.180.131"],"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 4fy3z2673Fz1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 18 Apr 2026 04:57:18 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 37ABF4D108C0\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 18:57:16 +0000 (GMT)","from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n by sourceware.org (Postfix) with ESMTPS id 23C8E4CD200C\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 18:56:46 +0000 (GMT)","from pps.filterd (m0279873.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63HG4PkU1985563\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 18:56:45 GMT","from mail-dy1-f199.google.com (mail-dy1-f199.google.com\n [74.125.82.199])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dkfyqth4m-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 18:56:45 +0000 (GMT)","by mail-dy1-f199.google.com with SMTP id\n 5a478bee46e88-2bda35eab74so1135153eec.0\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 11:56:45 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 37ABF4D108C0","OpenDKIM Filter v2.11.0 sourceware.org 23C8E4CD200C"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 23C8E4CD200C","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 23C8E4CD200C","ARC-Seal":["i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1776452206; cv=pass;\n b=lJZnXPw7jmJ1PSgE0atOoyJSWN6fK5GXhQ2ukRoah95Lk68srBJZ/rjd0XMm/YJL50CMWqWxBJHweY09NDBBIWwflfY/gU1+Ag3+JJ4Ft2tIyBxtB7ERjTnSqQE7o/AuidgdkVQWk3eaSC7cgIlF/hTLA0g4sUXsJVQ1tA3uBLk=","i=1; a=rsa-sha256; t=1776452204; cv=none;\n d=google.com; s=arc-20240605;\n b=EF+X9bwx7FZLPaFqvyWJUCnYGDE/4lDqUmDle4raQWFlPo3UFZN1PhIq90EKk58n+h\n GLhGRByD5pLilLkP7wtgfN4e+zEoDQzXgCHc1yp98WJqOdmO/i2oq+aVPrDWiB1SR7OA\n koMSQwtaFtrHwAuadyKxESuSiWc5hvuqwvoQhqcqpyP6fNfb7DsmBwkWdjJSc5JC2Imo\n VUBQWH2joKTFvNBFCKa/JfRwGIpD+oTHLxqVZZGSyzoWlP+0Kdy+gmlm67wNNaHY8H7s\n zpXrRZ69ZF6aFje78RpdPqPsjeINGXqPeJNC96A/cwsBk85JGdwxeu2V64laR0WbqvOM\n /hwQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776452206; c=relaxed/simple;\n bh=yY6VnnliHuMo7YV8BhgEWN2cyjr4CADYC0u6IMWnvFw=;\n h=DKIM-Signature:DKIM-Signature:MIME-Version:From:Date:Message-ID:\n Subject:To;\n b=e1c+DSi1sCuBjMoPRcTALZYdRATbfulIWfBCDtOPhmpqEJ+iqyl7TzzIw85h5GPh2Ag1Kk5hC5M2tM4+prnav4cD/iUHkcK1tkeL06bnmHl8c6DKAcR2bCkB953+khqvL2eCzI/M4p7sbDZo7+HJFJb0jOFBCa7T+Wgl3ZajhJE=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=bX7/M88R8IjJdwoCVM8O6aAfw5JZ5qE5ieYgs/QTpQU=;\n fh=DG0ZxEQyojbJOuIOd/MOxKcbunKJQ5dnNBaCVPRTkp0=;\n b=SVcZOCT/nNG2SWjOuDEZIl07inrLni/NhPMW0pYcjbtXc06qa6qE/66JlRKzqtm9iM\n 0j0TdJoUnaxtJm7vGYEQrgi72v65zH2lPdqscxk5kWWhdhwKmpDKgi3FQDvfmKlv4Qmq\n MHrLJFImTgtC2ivX48blCu6Ef2tUjv3JgIBH0TWcQ5fNG2IMCXlPP/8n0inRUOOarVUm\n FE0yn/tzRp47Gci/CjSOyyR/xW2sY+ZxV+NlBzpcd27g5s6d8haL/S3WW63Q0DZfAob3\n tXSBUTo/p22KQSEQaRz+5GpMSkSXnFjcKQFzRPGdpMYXa7Tm+rM7OvrPgI9sYXheq448\n xOdQ==; darn=gcc.gnu.org"],"ARC-Authentication-Results":["i=2; server2.sourceware.org","i=1; mx.google.com; arc=none"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n bX7/M88R8IjJdwoCVM8O6aAfw5JZ5qE5ieYgs/QTpQU=; b=co9i0dfIFp2ZB/Bl\n 03Uk+xICMYugC1zRWP3GkyqNOhOYVZQnjAUwi2T2yuKkxDkLWSKzaJD1CQRJw+h8\n bzjqq3v+BE3vn3a0AeH+xfRYWdIBE9bGZSCtBmQl0D0kFKtF3FesDZjz0PbbqBAi\n dbiKDHqNn4rMxHyqLbCfYTy0rCupTu5npLkdqZE5afs0UCfQx9VMooyv1O7hWXAd\n CWIlbmAybbYM4/9UAYO6hxKPKMoOHkU2b3slnvRpy2OKEX98Bk4o5T62GEnDSJm5\n RinuP4lODt5S18Wm6mC2H8vcEq0YJVrG8NSXwB9jVOQwN8Sg034Oj3e64KYaN3Gy\n uwm+Qg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1776452204; x=1777057004; darn=gcc.gnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=bX7/M88R8IjJdwoCVM8O6aAfw5JZ5qE5ieYgs/QTpQU=;\n b=NH3oTzTrBHmpTTt28a+dP09DcPc/0+WhVD6KFaC9rcIARXxPbxYPnc6awW1hlzLqNq\n JyxhsckpkucspXl93Qd47wXsuERoiqT4Vym/k87qCCNj/WFf9ZGgL09akUA/S91nlHBz\n gAkxyY3SHVNNgIiy2HY4RhlseqJDWMDISTlB8OjyRLcrNF+68Qi/2gIrc+I0q74vXLCt\n NAWj43+X3qcLtcOzKuexzEvhrSG+XfLlFhZNjSJcT7a3t9dVA0qAZ7Kn6ikrTHwS6xx9\n obkPzA0gHNESsPRxGz5h2Dbwvv/Q1eWkldUAIU2co8W9ocxqA9TrtUAul5MR4knF4jEy\n Mhbw=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776452204; x=1777057004;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=bX7/M88R8IjJdwoCVM8O6aAfw5JZ5qE5ieYgs/QTpQU=;\n b=RBdeDbfN1vivXegPr6SlxhlTHkTtRAX14FQwh9dYPibRn9WtoJL6OgC6UcwU295vUr\n x4FcWTIA9yycooErihaHCBzxs0Kn5VDDp3yD7/cQjTrrR1UzEO7LW3BdeFS4OX+fi1Em\n lmF7tDMA6oIFwNMie2ey0NL87yG102fkV+V0lpW6bfiCJDa09EM1AqubXJMJd8pUX4hI\n 7aPkFB1fgD/TpduEYl66mcf5et1JtXdiozLnoDcm5Gk7mft+XNHFQAXOWBgSfWyZnq3b\n 2wP1GO8zWJkzECb9CFEt7vV6xvaa/ux702vss4+AE/pZLZ40yhjwwFibA6r8TvVPdKRt\n CQJw==","X-Gm-Message-State":"AOJu0Yxj8YzOi5iPdw3wm1AG1UlHTFusz1krO4BVfxy4eNF56fP//zdU\n /4EugDXxb2xlRUps+C61c6l82/M4+tK+AxrTN6DuUVcXijoZz/AdJmg47J7YoajqeWCSd2CbEYD\n TQHyyTiZ5p5Y+AvtpxSrdf3yh5PQ8p4ndaWdFNiEx0lmzepu7X26jjDxPNlAu2P5/W7SbFzLGC8\n PVYMZhLHns9MqxJBJYyb3sISPwzmaWo1WoOrg=","X-Gm-Gg":"AeBDievPfpnknB5pSGhshPEPFZg3SUwcRYob7M6df87Za9BWYWxWvbYcaJ0E3IBnLrs\n aDSZMKpO2cPX/egYmYF4hN5FyagCehYTLrdyDlAYpkWteJmOJ8MeGdG+b+jsrBOGci3rs8wtNxv\n cnIYIk6eWmmpTb364ey32ztmBLW32kMxpiVL9oBwBIPKkztPGeNXggKV1uCx583pecGxOBTe9PW\n boG4HUKeynW7kM=","X-Received":["by 2002:a05:7300:fb83:b0:2be:17b1:e49f with SMTP id\n 5a478bee46e88-2e42c251424mr1852343eec.4.1776452204260;\n Fri, 17 Apr 2026 11:56:44 -0700 (PDT)","by 2002:a05:7300:fb83:b0:2be:17b1:e49f with SMTP id\n 5a478bee46e88-2e42c251424mr1852322eec.4.1776452203602; Fri, 17 Apr 2026\n 11:56:43 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260417172506.1015169-2-torbjorn.svensson@foss.st.com>","In-Reply-To":"<20260417172506.1015169-2-torbjorn.svensson@foss.st.com>","From":"Andrew Pinski <andrew.pinski@oss.qualcomm.com>","Date":"Fri, 17 Apr 2026 11:56:31 -0700","X-Gm-Features":"AQROBzB9GWTuJTVCuUBM_IZs4xjQcZk08RC3VHue-_wHQ1YibuF0b5zcOnJ81Fo","Message-ID":"\n <CALvbMcDOqJBTL1dEx6SPBj_OmLAqsRygHG+cE8UDYrgB9P_7Vg@mail.gmail.com>","Subject":"Re: [PATCH 00/30] Align struct/class forward declaration with\n implementation","To":"=?utf-8?q?Torbj=C3=B6rn_SVENSSON?= <torbjorn.svensson@foss.st.com>","Cc":"gcc-patches@gcc.gnu.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDE3MDE5MCBTYWx0ZWRfX4JvkcGAt6sMt\n Ig4UJjpGN3TyCl9wicDC/+w/vyt9A0OlshNtgsPMZe6n6Jwy4Lnjg6G/hipHGV65MtxmHECIKLV\n vFIiKaBLNcDWFVaMJxHe/HVXIchaNxipPTTva6jpCbG6ewMlRYk2fc7WwMZpZ6R2A5RQ6zsALiM\n LxrAAUFIiaV1JMBz06zQ8Po6XFAYLSZCJik9g+/aztlAKdKoDwaZ6aoDWOsCFr/rP2dqc27cJ6h\n CufnzYxs22JRFpTja9V1ky7DURKF2Lq4WOkM4b2LEQ61sdi7qBpUYQae4mCsIf0exJh7whfkR6N\n YyUqAg/ed3Cf44/gP1mi/6F+jnhaXz6kxse+3sgcWD1T5IAONE6a6X/HPP3kZFn7MAi/AbLQ2Wf\n A2RNPuId9k1E6OAXkcXAlmeLkjCsxTMUP0+8eFLqwTHTKOMY3+riL6OMnzWkKGtvdplUmidFqEv\n DzEW8q4V1hLPCYZ8kbg==","X-Authority-Analysis":"v=2.4 cv=BZPoFLt2 c=1 sm=1 tr=0 ts=69e2826d cx=c_pps\n a=cFYjgdjTJScbgFmBucgdfQ==:117 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10\n a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22\n a=rJkE3RaqiGZ5pbrm-msn:22 a=8b9GpE9nAAAA:8 a=1wHARYkuAGALbDS8AP0A:9\n a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=T3LWEMljR5ZiDmsYVIUa:22","X-Proofpoint-ORIG-GUID":"nTOYGlqIEIYdLj9Lx0K9ZOX3sz8sK3fV","X-Proofpoint-GUID":"nTOYGlqIEIYdLj9Lx0K9ZOX3sz8sK3fV","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-17_02,2026-04-17_04,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n impostorscore=0 malwarescore=0 suspectscore=0 priorityscore=1501 spamscore=0\n clxscore=1015 bulkscore=0 adultscore=0 lowpriorityscore=0 phishscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604170190","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"}}]