diff mbox series

[Ada] Rewrite operator entity in derived class-wide expressions

Message ID 20211005082639.GA2693614@adacore.com
State New
Headers show
Series [Ada] Rewrite operator entity in derived class-wide expressions | expand

Commit Message

Pierre-Marie de Rodat Oct. 5, 2021, 8:26 a.m. UTC
When building a derived class-wide pre- or postcondition we are mapping
references to inherited formals and to the inherited subprogram itself.

We now do the same for references to the inherited operator. Such
references might appear as prefixes of the Result attribute, e.g.
"="'Result.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

	* exp_util.adb (Build_Class_Wide_Expression): Replace entities
	of both identifiers and operator symbols.
diff mbox series

Patch

diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb
--- a/gcc/ada/exp_util.adb
+++ b/gcc/ada/exp_util.adb
@@ -1293,7 +1293,7 @@  package body Exp_Util is
             Adjust_Inherited_Pragma_Sloc (N);
          end if;
 
-         if Nkind (N) = N_Identifier
+         if Nkind (N) in N_Identifier | N_Operator_Symbol
            and then Present (Entity (N))
            and then
              (Is_Formal (Entity (N)) or else Is_Subprogram (Entity (N)))