From patchwork Tue Jan 9 09:23:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Botcazou X-Patchwork-Id: 1884350 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256 header.s=google header.b=CcMRfuL1; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4T8QZd3Glyz1yPf for ; Tue, 9 Jan 2024 20:27:53 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6410A385DC0C for ; Tue, 9 Jan 2024 09:27:51 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) by sourceware.org (Postfix) with ESMTPS id 91CE33858012 for ; Tue, 9 Jan 2024 09:26:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 91CE33858012 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 91CE33858012 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::334 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704792405; cv=none; b=a7k3WVn3+RU3Y6GPop9KIU/FOSew4e/tyqcLKx7idXuq+oFUjh21ajnAm1o5JEmH1ibb4bynfEUljSjWCNTQrHEkZHkCuyZz7Yurq5n73VOiYGS1AyzK+n9LShdEvIZrvos+DxMxS14JGhYuQNa1k8ThXcYvtp1xO4hZcjC26CM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704792405; c=relaxed/simple; bh=6cUyqZNfVMazvSiJOKeUjWXQNMFUU1D2u6CL2Abe6UU=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=PdGU8C3aryrCskz6r59kkTrzVPO9mBwfmGqEEV7A+GA94kHRGCm1suC8jl1F/66NDGg1UIBJaNmV64B0tVTgSsN6kiHLvpV3+K3PODq4aMSxNvObC98E7PrgTkHqwOOc67PJ06d9SA4tLoZ7zy2Ey0fZGYJNnkuOOKKl8LfOVYs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-40e43e489e4so27309375e9.1 for ; Tue, 09 Jan 2024 01:26:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1704792401; x=1705397201; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=vFtOSKDrI5HKfL4qlhFbChAg/KSfhDnKOGzOq+KvWXM=; b=CcMRfuL1isQnLMQGtyjpWYxoV4ex3siG4sD1t/FXYP0n5PEHFFjOiJdl0xu071wo2R 8NwgfIZ2gpIT9TLfqqZ68a06VvcvuF+apCgMY0kHkETfrXXbgSqSGGNQ4HtPLDGL7sT2 s22TYYZb1K05N0HdtxGurK38TuW7BpLPo5K66wSmP0uDTRG7jOfAamhba8UXCXns7Ytn sv+tuG8CNa3SIq8/Dk4ln49UE/5mY8rc9kggCwvGMamiL1qArtYi4n0a6gQIAD7MArC4 JE6g55/OaOIJ18PiY8oQTruJbIEugqM7SgRhDFxWsyoMk8PRyESm4LbA7mXgzDoDVnNx Z7EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704792401; x=1705397201; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vFtOSKDrI5HKfL4qlhFbChAg/KSfhDnKOGzOq+KvWXM=; b=cxDrotV8Mbbfd/AUO3zCP25aLtcO108omMDknPd0eQDJU4EzyhC5yH3s4mUi3OPclz SUNGRfWqCfejYaby3WxZ3L2d26ez5a0BQMuCRwdYqCLNZZ7UfR40Jofww0hu+p/+4y33 te55tkP6rI1jBoUf7R2ZOWe0CpoTw03VmmdYxc7rJ6eV+x5WFr0zoZSgADlVYVMbd/Q9 nhUDt5NhZRYnCsh2nFGf0W3B++gZqAXbdIU8w+mEbKQhh2enqeN/mubLuUs1/dPbDL6i GCtAHyoY8rh5eH+Jctvhp3d4z6r0BTIHRyluAC7000QxRnhSETLt8H2Np3n+aavivJAv 3IZw== X-Gm-Message-State: AOJu0YxLl/VgfZ4JBdMnE0Z9s7mCN+MghA6Ume8IezlDi8EnbogxU3K3 wejys1cxE9TPD9Ny8SYN0SZnwTH1PY9pUOrqb/iw/487bA== X-Google-Smtp-Source: AGHT+IHqTUdoWION+kSduT3u2uCzFGMAOqPE+aYHbgaOW6H0e6S+qUmDg1GcPXf/kowaIBrfsS3Seg== X-Received: by 2002:a05:600c:3b87:b0:40e:4861:2f8e with SMTP id n7-20020a05600c3b8700b0040e48612f8emr1352097wms.80.1704792401271; Tue, 09 Jan 2024 01:26:41 -0800 (PST) Received: from fomalhaut.localnet ([2a01:e0a:8d5:d990:e654:e8ff:fe8f:2ce6]) by smtp.gmail.com with ESMTPSA id u20-20020a05600c139400b0040d8d11bf63sm2771153wmf.41.2024.01.09.01.26.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jan 2024 01:26:40 -0800 (PST) From: Eric Botcazou X-Google-Original-From: Eric Botcazou To: gcc-patches@gcc.gnu.org Subject: [Ada] Fix PR ada/113195 Date: Tue, 09 Jan 2024 10:23:44 +0100 Message-ID: <3783379.kQq0lBPeGt@fomalhaut> MIME-Version: 1.0 X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org This is a small regression present on the mainline and 13 branch, in the form of an internal error in gigi on anonymous access type equality. We now need to also accept them too for anonymous access types that point to compatible object subtypes in the language sense. Tested on SPARC64/Linux, applied on the mainline and 13 branch. 2024-01-09 Eric Botcazou PR ada/113195 * gcc-interface/utils2.cc (build_binary_op) : Relax assertion for regular pointer types. 2024-01-09 Eric Botcazou * gnat.dg/specs/anon4.ads: New test. diff --git a/gcc/ada/gcc-interface/utils2.cc b/gcc/ada/gcc-interface/utils2.cc index 6a951093ff8..df11eef2101 100644 --- a/gcc/ada/gcc-interface/utils2.cc +++ b/gcc/ada/gcc-interface/utils2.cc @@ -1142,14 +1142,10 @@ build_binary_op (enum tree_code op_code, tree result_type, tree left_ref_type = TREE_TYPE (left_base_type); tree right_ref_type = TREE_TYPE (right_base_type); - /* Anonymous access types in Ada 2005 can point to different - members of a tagged hierarchy or different function types. */ - gcc_assert (TYPE_MAIN_VARIANT (left_ref_type) - == TYPE_MAIN_VARIANT (right_ref_type) - || (TYPE_ALIGN_OK (left_ref_type) - && TYPE_ALIGN_OK (right_ref_type)) - || (TREE_CODE (left_ref_type) == FUNCTION_TYPE - && TREE_CODE (right_ref_type) == FUNCTION_TYPE)); + /* Anonymous access types in Ada 2005 may point to compatible + object subtypes or function types in the language sense. */ + gcc_assert (FUNCTION_POINTER_TYPE_P (left_ref_type) + == FUNCTION_POINTER_TYPE_P (right_ref_type)); best_type = left_base_type; }