From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id B65993858D3C for ; Fri, 10 Dec 2021 21:00:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B65993858D3C Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-507-MXygiTuVNNyRY3eXUc_HsA-1; Fri, 10 Dec 2021 16:00:20 -0500 X-MC-Unique: MXygiTuVNNyRY3eXUc_HsA-1 Received: by mail-qv1-f69.google.com with SMTP id fn12-20020ad45d6c000000b003bd9c921c0eso15739609qvb.21 for ; Fri, 10 Dec 2021 13:00:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=DkNDpnQWwuf89aMmKO0NIMO3Z97W39NY/VvS2h3dV1M=; b=UXXH1Akns0ZY70StamTVQR6ck2FiZgR43PPopoIhDlJWsQyRqxa19yOIirHMMOOuGA G257QxkmHhbzEUAsH4BE20L2xAaLD0nPLpzMUBfQjuo+QpiPuyelwChPqBiOo9W4iTVK XXxzuUggqM7lu2WaWHDJDdC4SWjFiQyfS6TMYuUOmsgHuzol7c2GqmPf5ljtLDsuUhFR +hg4vPsBSfLs7Od1EjGSax/sENA6YM0pH8S8ZMpiShayqrvuOHnOcoP/Sl6L+nTbNyHe oAYUDbzUZINKy9gAz0PR/8yQXhDTcAFD4NeYSYSUG2d2VTWf0b32nOMs5aXrgITPTLRT grBQ== X-Gm-Message-State: AOAM533cYM2MUuAZ/JL2da6Hrpc7NkHgOGyXuJJgIZkeKzEitBWbe3dX nxbwMRBgwtx8xyt3UvP2LK7a9yFMFxb27aJyR8FPZ6LDT2DoBX0aXFTx/88g1Vnmwq2AoFnDvKo xhDS6Hlk= X-Received: by 2002:a37:68ce:: with SMTP id d197mr21903523qkc.693.1639170019539; Fri, 10 Dec 2021 13:00:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJxPOe21ZbnmvFabAd8df6NzBqskXhfz1rf/ef/g2qLaw6r1MaC6upTBF+ek5FAKSt+eREgo3g== X-Received: by 2002:a37:68ce:: with SMTP id d197mr21903499qkc.693.1639170019304; Fri, 10 Dec 2021 13:00:19 -0800 (PST) Received: from t14s.localdomain (c-73-69-212-193.hsd1.nh.comcast.net. [73.69.212.193]) by smtp.gmail.com with ESMTPSA id bk39sm1871906qkb.35.2021.12.10.13.00.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Dec 2021 13:00:18 -0800 (PST) Message-ID: Subject: Re: Flexible array member From: David Malcolm To: Marc =?ISO-8859-1?Q?Nieper-Wi=DFkirchen?= , jit@gcc.gnu.org Date: Fri, 10 Dec 2021 16:00:17 -0500 In-Reply-To: References: User-Agent: Evolution 3.38.4 (3.38.4-1.fc33) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: jit@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Jit mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Dec 2021 21:00:24 -0000 On Fri, 2021-12-10 at 18:44 +0100, Marc Nieper-Wißkirchen via Jit wrote: > C99 (and thus GCC) allow defining structures that end in a flexible > array > member ([1]). > > How can this be encoded in libgccjit? Is it valid to create an array > type > of length 0 and use that to define the last field in a struct? I don't know. I did some quick grepping of the C front-end, and gcc/c/c-decl.c's grokdeclarator has: /* ISO C99 Flexible array members are effectively identical to GCC's zero-length array extension. */ if (flexible_array_member || array_parm_vla_unspec_p) itype = build_range_type (sizetype, size_zero_node, NULL_TREE); So using length 0 for the array type might work in libgccjit, or it might not, as there might be something else in the IR that libgccjit needs to set up for it to work properly. You could try it, I guess. Sorry not to have a clearer answer. Dave > > Thanks, > > Marc > > -- > > [1] https://en.wikipedia.org/wiki/Flexible_array_member >