+2019-07-11 Yannick Moy <moy@adacore.com>
+
+ * sem_res.adb (Check_Argument_Order): Special case calls to
+ operators.
+
2019-07-10 Dmitriy Anisimkov <anisimko@adacore.com>
* libgnat/s-ststop.adb: Remove System.Strings.Stream_Ops
begin
-- Nothing to do if no parameters, or original node is neither a
-- function call nor a procedure call statement (happens in the
- -- operator-transformed-to-function call case), or the call does
+ -- operator-transformed-to-function call case), or the call is to an
+ -- operator symbol (which is usually in infix form), or the call does
-- not come from source, or this warning is off.
if not Warn_On_Parameter_Order
or else No (Parameter_Associations (N))
or else Nkind (Original_Node (N)) not in N_Subprogram_Call
+ or else (Nkind (Name (N)) = N_Identifier
+ and then Present (Entity (Name (N)))
+ and then Nkind (Entity (Name (N)))
+ = N_Defining_Operator_Symbol)
or else not Comes_From_Source (N)
then
return;
+2019-07-11 Yannick Moy <moy@adacore.com>
+
+ * gnat.dg/warn21.adb, gnat.dg/warn21.ads: New testcase.
+
2019-07-11 Richard Biener <rguenther@suse.de>
PR middle-end/91131
--- /dev/null
+package Warn21 is
+
+ type Set is new Integer;
+
+ function "<=" (Left : Set; Right : Set) return Boolean;
+
+ function "=" (Left : Set; Right : Set) return Boolean with
+ Post => "="'Result = (Left <= Right and Right <= Left);
+
+ procedure Foo;
+
+private
+
+ function "<=" (Left : Set; Right : Set) return Boolean is (True);
+ function "=" (Left : Set; Right : Set) return Boolean is
+ (Left <= Right and Right <= Left);
+
+end Warn21;