From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id D04FC3858D1E for ; Wed, 27 Apr 2022 06:57:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D04FC3858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn Received: from [10.20.4.52] (unknown [10.20.4.52]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9DxPxFW6Whiyj8zAA--.37595S2; Wed, 27 Apr 2022 14:57:27 +0800 (CST) Subject: Re: [PATCH] loongarch: ignore zero-size fields in calling convention From: Lulu Cheng To: Xi Ruoyao , Xi Ruoyao via Gcc-patches Cc: Chenghua Xu , Xuerui Wang References: <4ec7e7a716cb0ca090983f0400c99c50bc67bcb3.camel@mengyan1223.wang> <0b6d4a0f77bf88df6ad2182c1f56c77573f2e336.camel@mengyan1223.wang> <8b0045aa-df0f-e217-58c7-a31e466fd1cc@loongson.cn> Message-ID: Date: Wed, 27 Apr 2022 14:57:26 +0800 User-Agent: Mozilla/5.0 (X11; Linux mips64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <8b0045aa-df0f-e217-58c7-a31e466fd1cc@loongson.cn> Content-Language: en-US X-CM-TRANSID: AQAAf9DxPxFW6Whiyj8zAA--.37595S2 X-Coremail-Antispam: 1UD129KBjvJXoW7CF1rXw48Cr43CFW7CryDJrb_yoW8WF13pr 1xZr1YyrW8Jrn7Gr12q345Xry5Jr1xGw1293WftF18Cr17Jryjvw18Xr9FgF1UJw48Xr10 qr18ur15uF1UXwUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUv214x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26r4j6ryUM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4j 6F4UM28EF7xvwVC2z280aVAFwI0_Cr1j6rxdM28EF7xvwVC2z280aVCY1x0267AKxVW0oV Cq3wAS0I0E0xvYzxvE52x082IY62kv0487McIj6xIIjxv20xvE14v26r1j6r18McIj6I8E 87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IY64vIr41lF7I21c0EjI I2zVCS5cI20VAGYxC7Mx8GjcxK6IxK0xIIj40E5I8CrwCYjI0SjxkI62AI1cAE67vIY487 MxkIecxEwVCm-wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c 02F40E14v26r106r1rMI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_ Jw1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7 CjxVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6rW3Jr0E3s1lIxAIcVC2z280aVAF wI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa 7VUb_gA7UUUUU== X-CM-SenderInfo: xfkh0wpoxo3qxorr0wxvrqhubq/ X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, BODY_8BITS, GIT_PATCH_0, HTML_MESSAGE, KAM_DMARC_STATUS, KAM_SHORT, NICE_REPLY_A, SPF_HELO_PASS, SPF_PASS, 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 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2022 06:57:32 -0000 >>> gcc/ >>> >>>          * config/loongarch/loongarch.cc >>>          (loongarch_flatten_aggregate_field): Ignore empty fields for >>>          RECORD_TYPE. >>> >>> gcc/testsuite/ >>> >>>          * gcc.target/loongarch/zero-size-field-pass.c: New test. >>>          * gcc.target/loongarch/zero-size-field-ret.c: New test. >>> --- >>>   gcc/config/loongarch/loongarch.cc             |  3 ++ >>>   .../loongarch/zero-size-field-pass.c          | 30 >>> +++++++++++++++++++ >>>   .../loongarch/zero-size-field-ret.c           | 28 +++++++++++++++++ >>>   3 files changed, 61 insertions(+) >>>   create mode 100644 >>> gcc/testsuite/gcc.target/loongarch/zero-size-field-pass.c >>>   create mode 100644 >>> gcc/testsuite/gcc.target/loongarch/zero-size-field-ret.c >>> >>> diff --git a/gcc/config/loongarch/loongarch.cc >>> b/gcc/config/loongarch/loongarch.cc >>> index f22150a60cc..57e4d9f82ce 100644 >>> --- a/gcc/config/loongarch/loongarch.cc >>> +++ b/gcc/config/loongarch/loongarch.cc >>> @@ -326,6 +326,9 @@ loongarch_flatten_aggregate_field (const_tree type, >>>         for (tree f = TYPE_FIELDS (type); f; f = DECL_CHAIN (f)) >>>          if (TREE_CODE (f) == FIELD_DECL) >>>            { >>> +           if (DECL_SIZE (f) && integer_zerop (DECL_SIZE (f))) >>> +             continue; >>> + I think the modification should be below. >>>              if (!TYPE_P (TREE_TYPE (f))) >>>                return -1; Thanks! Lulu Cheng