From patchwork Tue Jul 18 13:13:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Marc_Poulhi=C3=A8s?= X-Patchwork-Id: 122037 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1742749vqt; Tue, 18 Jul 2023 06:23:50 -0700 (PDT) X-Google-Smtp-Source: APBJJlFgLTU8lgFn6i5LQ2GusXFGeoTnI1ou1GaQwnfaC5MwRKhq4+UanqSRex9R3s/JZ5IxR+Zm X-Received: by 2002:a17:906:24e:b0:993:db29:d27e with SMTP id 14-20020a170906024e00b00993db29d27emr13915198ejl.25.1689686630218; Tue, 18 Jul 2023 06:23:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689686630; cv=none; d=google.com; s=arc-20160816; b=eJ9ktnbC1U6VjvaJovwkRioQ9SLSlPVye65QDNjJWom4/qWwjgpPZN4nFUAbIrPBe+ B/pNTBpCWvj2pUNTcNnZxso8OP6ZlKlSTY773GyIYwileZExhbXjjaDwSknyTEP+Suy3 Vpx5bnrxSeydg0uJvK6xtUpQyKvazlHgAohy/iy7DNba36tSoKytPWx7zc0EUFnRxc/Z qjM+Rm5zY06QP/MApaeSajGL8V3cey1lQrAlDsZqo0ZRA1odZuM1P3nqdEKS/0INo0tY 2jHCpc2JDfhhuO3PB5sOBRbBycV44SLDBYWUO7xNb81PAXIEl7fxcZH4XwBZV8fSOGZy /hzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:message-id:date:subject:cc :to:dmarc-filter:delivered-to:dkim-signature:dkim-filter; bh=dj1vFmk3OFQuVAK11nUojTblAzQLoFg+hAn9F1m08U8=; fh=XugzLzSAfUMFtRI8ljBKsKm2X575N/wgCIOzZPd2BB4=; b=XfV846JjOrYl/zMjOTGxD5ivedgloNc8boDKPAfyo5svWMhP/goc7c0rsemAcjWLVD es+kt/xK5938/WXnjB/Bnr75WoBXqA0XdSRXr7xOE1+MrhZPUswtErXseHnRKiHXvI/i V7rpE7Z5Pcvu1vhtcPkzesuq9wEugouILguCDUzyOjKlTqc10dKLg6x6G2yBFIUQ7ULR V6j95pkNjZoxujHLqdEBVBBIP3qaZBS3bBqSZ3BunQUoYb7eaZ6LBHvQA8XKOCRzGMaJ AltyXYA+OcPSDza93LUXTfakVPTU++U7mlX3hSQnJ10OACt0IEB/vF2MRPut69C4jcAA XLhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=HK+YfUjV; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id f26-20020a170906495a00b009931a072599si1259756ejt.454.2023.07.18.06.23.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jul 2023 06:23:50 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=HK+YfUjV; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0AC1C38AA248 for ; Tue, 18 Jul 2023 13:18:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0AC1C38AA248 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689686293; bh=dj1vFmk3OFQuVAK11nUojTblAzQLoFg+hAn9F1m08U8=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=HK+YfUjVSpPqqeaERZX+Ojy8ucQvxNum0HU+j/5WtFfkEANj6FuYkhKLavtXlA5Ul HHAst7aHhVwzOvh1VCwLf1C3QNKHLdl8d0w23TVC3p3oTv8qX0PtBtpVnC9bvlDA+D E2UzleeQm7OK8ewdfqmFsC/hwiFh2J7hydwyVSyg= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by sourceware.org (Postfix) with ESMTPS id 10A58385DC0E for ; Tue, 18 Jul 2023 13:13:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 10A58385DC0E Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-3142970df44so5390165f8f.3 for ; Tue, 18 Jul 2023 06:13:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689686027; x=1690290827; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=dj1vFmk3OFQuVAK11nUojTblAzQLoFg+hAn9F1m08U8=; b=SJMSkNzrodRVMztuDkfQFWeNKqOhrtYDASPdUrGo+VRS1aWGzp73bwhN9oZz+zG+O2 yzNVS99gv7wVr3M6+S1UcoaJqgOyPg2KfJYK4UIdiaDJ+2mYJuSXYxDN9ktza4EekSMN BaXSO4BlTxAvas0u3TuXfDYK7RAN7GE/Bkaoyz/stjBBuww6tMcEuNoeHSe5iH4ON2Eo TIfT6+/E+YhL3dZnx7tS+0llzHzFoKDJLKGxGenJ4jeLn+2opJAKyHx7O7qz7osu0g2E Lw8xQdDqIy8rxh5CNLHoJmWtN47VpSCt3mllno/Ju+YRX2zjBFG0XNeJ40T2Wvl/1P+A /Vqg== X-Gm-Message-State: ABy/qLZr82LK5Aq8Rv37VGE6jfCN3mEVn3Ogm8tYVZk5I4iXhl+E+Fp3 OnCjTaJYVpvajM+ABnBuEi+2p68AfqeHQEaigUzzWQ== X-Received: by 2002:a5d:504e:0:b0:312:74a9:8259 with SMTP id h14-20020a5d504e000000b0031274a98259mr9920039wrt.71.1689686026791; Tue, 18 Jul 2023 06:13:46 -0700 (PDT) Received: from poulhies-Precision-5550.telnowedge.local (lmontsouris-659-1-24-67.w81-250.abo.wanadoo.fr. [81.250.175.67]) by smtp.gmail.com with ESMTPSA id x4-20020a5d6504000000b0031417fd473csm2379377wru.78.2023.07.18.06.13.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jul 2023 06:13:46 -0700 (PDT) To: gcc-patches@gcc.gnu.org Cc: Tom Tromey Subject: [COMMITTED] ada: Use new typedefs in gcc-interface Date: Tue, 18 Jul 2023 15:13:45 +0200 Message-Id: <20230718131345.81635-1-poulhies@adacore.com> X-Mailer: git-send-email 2.40.0 MIME-Version: 1.0 X-Spam-Status: No, score=-13.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, 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.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: =?utf-8?q?Marc_Poulhi=C3=A8s_via_Gcc-patches?= From: =?utf-8?q?Marc_Poulhi=C3=A8s?= Reply-To: =?utf-8?q?Marc_Poulhi=C3=A8s?= Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771764848088691971 X-GMAIL-MSGID: 1771764848088691971 From: Tom Tromey This changes gcc-interface to use the typedefs that were recently introduced in gnat. This is another step toward switching the code generator to emit enums rather than preprocessor defines. In a couple of spots, a 'default' case is also added. These avoid warnings from -Wswitch when the typedefs are changed to be enums. gcc/ada/ * gcc-interface/decl.cc (check_ok_for_atomic_type): Use Pragma_Id. * gcc-interface/trans.cc (lvalue_required_p, Pragma_to_gnu): Use Pragma_Id. (get_type_length, Attribute_to_gnu, get_atomic_access): Use Attribute_Id. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/gcc-interface/decl.cc | 5 ++++- gcc/ada/gcc-interface/trans.cc | 15 ++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/gcc/ada/gcc-interface/decl.cc b/gcc/ada/gcc-interface/decl.cc index ee913a017d2..ae756b35fdb 100644 --- a/gcc/ada/gcc-interface/decl.cc +++ b/gcc/ada/gcc-interface/decl.cc @@ -6875,6 +6875,9 @@ elaborate_entity (Entity_Id gnat_entity) } break; + /* -Wswitch warning avoidance. */ + default: + break; } } @@ -9705,7 +9708,7 @@ check_ok_for_atomic_type (tree type, Entity_Id gnat_entity, bool component_p) gnat_node = Next_Rep_Item (gnat_node)) if (Nkind (gnat_node) == N_Pragma) { - unsigned char pragma_id + const Pragma_Id pragma_id = Get_Pragma_Id (Chars (Pragma_Identifier (gnat_node))); if ((pragma_id == Pragma_Atomic && !component_p) diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interface/trans.cc index f5eadbbc895..fd85facaf70 100644 --- a/gcc/ada/gcc-interface/trans.cc +++ b/gcc/ada/gcc-interface/trans.cc @@ -814,7 +814,7 @@ lvalue_required_p (Node_Id gnat_node, tree gnu_type, bool constant, case N_Pragma: if (Is_Pragma_Name (Chars (Pragma_Identifier (gnat_parent)))) { - const unsigned char id + const Pragma_Id id = Get_Pragma_Id (Chars (Pragma_Identifier (gnat_parent))); return id == Pragma_Inspection_Point; } @@ -1331,7 +1331,7 @@ Pragma_to_gnu (Node_Id gnat_node) if (!Is_Pragma_Name (Chars (Pragma_Identifier (gnat_node)))) return gnu_result; - const unsigned char id + const Pragma_Id id = Get_Pragma_Id (Chars (Pragma_Identifier (gnat_node))); /* Save the expression of pragma Compile_Time_{Error|Warning} for later. */ @@ -1670,7 +1670,8 @@ get_type_length (tree type, tree result_type) should place the result type. ATTRIBUTE is the attribute ID. */ static tree -Attribute_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, int attribute) +Attribute_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, + Attribute_Id attribute) { const Node_Id gnat_prefix = Prefix (gnat_node); tree gnu_prefix = gnat_to_gnu (gnat_prefix); @@ -2370,6 +2371,10 @@ Attribute_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, int attribute) case Attr_Bit_Position: gnu_result = gnu_field_bitpos; break; + + /* -Wswitch warning avoidance. */ + default: + break; } /* If this has a PLACEHOLDER_EXPR, qualify it by the object we are @@ -4292,7 +4297,7 @@ static void get_atomic_access (Node_Id gnat_node, atomic_acces_t *type, bool *sync) { Node_Id gnat_parent, gnat_temp; - unsigned char attr_id; + Attribute_Id attr_id; /* First, scan the parent to filter out irrelevant cases. */ gnat_parent = Parent (gnat_node); @@ -6854,7 +6859,7 @@ gnat_to_gnu (Node_Id gnat_node) case N_Attribute_Reference: { /* The attribute designator. */ - const int attr = Get_Attribute_Id (Attribute_Name (gnat_node)); + const Attribute_Id attr = Get_Attribute_Id (Attribute_Name (gnat_node)); /* The Elab_Spec and Elab_Body attributes are special in that Prefix is a unit, not an object with a GCC equivalent. */