From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by sourceware.org (Postfix) with ESMTPS id 3D9EC385B804 for ; Mon, 9 May 2022 09:30:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3D9EC385B804 Received: by mail-wr1-x431.google.com with SMTP id b19so18538840wrh.11 for ; Mon, 09 May 2022 02:30:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition; bh=eSK94VaVEoIHLkiIwqUedxj4+io7ts3AB+N73FQZbCI=; b=r4wJN9jqrwdc0gmOPjwiNOc2mwCyYijTkCP94MvxGnq1CCCnPBKV8BrwKsyz+w2kYY W2HxClpZgO2XJQBgUlX5CwnJlTD1aLjHHyDvNTGKAKTvMu9dOuxSutX4OnxFMt5koih1 VzJNwA6Od1Vr8C5iRbGsFBhGJYd7xlmOlZ8Yp9BDSYqEDdkculLEL9g+7kDJ3QMmoNtw sg8yzMcDggJtem7ao0j0q4h4I1P0CB4dLbDJ3tdxDzygZAQzjLnWIdCnWRwcvguZpyXi av/R1CnAIPNht9VM3sA2AmKgQunXaT7rMZxwR9keaKD8lMTuf6lq/vQfHgfka7z4HqVJ A8XQ== X-Gm-Message-State: AOAM531xNnWDAGmz0dA7UHHBG+9uRpVYLyzXgL1gCLmm4pU2rrdG6IgQ tlA0rtdm5m4xcq14dUL3fWAupxYTwsNWFw== X-Google-Smtp-Source: ABdhPJwBoCuIw1tKOJbxEWNZuXRjqgxe9bTHVXADrRFdp2HPe8bMAL9Eo8HxPKtO2qL+OPuM4G6imw== X-Received: by 2002:a05:6000:1e0e:b0:20c:59b4:e9db with SMTP id bj14-20020a0560001e0e00b0020c59b4e9dbmr13204719wrb.524.1652088619456; Mon, 09 May 2022 02:30:19 -0700 (PDT) Received: from adacore.com ([45.147.211.82]) by smtp.gmail.com with ESMTPSA id b17-20020adff911000000b0020c5253d8casm10554850wrr.22.2022.05.09.02.30.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 May 2022 02:30:18 -0700 (PDT) Date: Mon, 9 May 2022 09:30:18 +0000 From: Pierre-Marie de Rodat To: gcc-patches@gcc.gnu.org Cc: Eric Botcazou Subject: [Ada] Revamp type resolution for comparison and equality operators Message-ID: <20220509093018.GA3184191@adacore.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="fdj2RfSjLxBAspz7" Content-Disposition: inline X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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: 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: Mon, 09 May 2022 09:30:22 -0000 --fdj2RfSjLxBAspz7 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline The main goal was to make it symmetrical, but this also moves error handling entirely to the second phase of type resolution. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * einfo.ads (Access Kinds): Reorder and beef up. * sem.adb (Analyze): Call Analyze_Comparison_Equality_Op for all comparison and equality operators. * sem_ch4.ads (Analyze_Comparison_Op): Delete. (Analyze_Equality_Op): Likewise. (Analyze_Comparison_Equality_Op): Declare. (Ambiguous_Operands): Likewise. * sem_ch4.adb (Ambiguous_Operands): Remove declaration. (Defined_In_Scope): Delete. (Find_Comparison_Types): Merge into... (Find_Equality_Types): Merge into... (Find_Comparison_Equality_Types): ...this. Make fully symmetrical. (Analyze_Arithmetic_Op): Minor consistency tweaks. (Analyze_Comparison_Op): Merge into... (Analyze_Equality_Op): Merge into... (Analyze_Comparison_Equality_Op): ...this. Make fully symmetrical. (Analyze_Logical_Op): Minor consistency tweaks. (Analyze_Membership_Op): Make fully symmetrical. (Analyze_One_Call): Minor comment tweak. (Analyze_Operator_Call): Call Find_Comparison_Equality_Types. (Analyze_User_Defined_Binary_Op): Make fully symmetrical. (Check_Arithmetic_Pair.Specific_Type): Delete. (Diagnose_Call): Add special handling for "+" operator. (Operator_Check): Call Analyze_Comparison_Equality_Op. * sem_ch8.adb (Has_Implicit_Operator): Add Is_Type guard for boolean operators, use Valid_Comparison_Arg and Valid_Equality_Arg for resp. comparison and equality operators. * sem_res.adb (Check_For_Visible_Operator): Call Is_Visible_Operator (Make_Call_Into_Operator): Use Preserve_Comes_From_Source. (Resolve_Actuals): Deal specifically with Any_Type actuals for user- defined comparison and equality operators. (Resolve_Call): Minor tweaks. (Resolve_Comparison_Op): Tidy up and give error for ambiguity. (Resolve_Equality_Op): Likewise, as well as other errors. (Rewrite_Renamed_Operator): Simplify. * sem_type.ads (Is_Invisible_Operator): Delete. (Is_Visible_Operator): Declare. (Has_Compatible_Type): Remove For_Comparison parameter. (Specific_Type): Declare. (Valid_Equality_Arg): Likewise. * sem_type.adb (Specific_Type): Remove declaration. (Add_One_Interp): Call Is_Visible_Operator for the visibility test. (Remove_Conversions): Rename into... (Remove_Conversions_And_Abstract_Operations): ...this. Do not apply numeric-type treatment to Any_Type. Expand the special handling for abstract interpretations to second operand. Remove obsolete code. (Disambiguate): Adjust to above renaming. Tweak to hidden case and call Remove_Conversions_And_Abstract_Operations for operators too. (Entity_Matches_Spec): Minor tweak. (Find_Unique_Type): Simplify and deal with user-defined literals. (Has_Compatible_Type): Remove For_Comparison parameter and adjust. Call the Is_User_Defined_Literal predicate and remove call to the Is_Invisible_Operator predicate. (Is_Invisible_Operator): Delete. (Is_Visible_Operator): New function. (Operator_Matches_Spec): Use Valid_Equality_Arg predicate. (Specific_Type): Tidy up, make fully symmetrical and deal with private views the same way as Covers. (Valid_Comparison_Arg): Return true for Any_Composite/Any_String. (Valid_Equality_Arg): New function. * sem_util.ads (Is_User_Defined_Literal): Declare. * sem_util.adb (Is_User_Defined_Literal): New function. --fdj2RfSjLxBAspz7 Content-Type: application/gzip Content-Disposition: attachment; filename="patch.diff.gz" Content-Transfer-Encoding: base64 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 v16hd6seAif/P9FkgfC56gEA --fdj2RfSjLxBAspz7--