-- { dg-do compile } -- { dg-options "-gnatwa" } procedure Warn16 is package Define is type Key_Type is record Value : Integer := 0; end record; function "=" (Left : in Key_Type; Right : in Key_Type) return Boolean; end; package body Define is function "=" (Left : in Key_Type; Right : in Key_Type) return Boolean is begin return Left.Value = Right.Value; end; end; generic type Key_Type is private; with function "=" (Left : in Key_Type; Right : in Key_Type) return Boolean; package Oper is end; use type Define.Key_Type; -- !!! package Inst is new Oper (Key_Type => Define.Key_Type, "=" => "="); pragma Unreferenced (Inst); begin null; end;