with Interfaces; use Interfaces; | |
package Opt100_Pkg is | |
A : constant Unsigned_8 := 0; | |
B : constant Unsigned_8 := 1; | |
C : constant Unsigned_8 := 2; | |
subtype Small_Unsigned_8 is Unsigned_8 range A .. C; | |
type Rec is record | |
K : Unsigned_8; | |
N : Natural; | |
end record; | |
subtype Small_Rec is Rec | |
with Dynamic_Predicate => | |
Small_Rec.K in Small_Unsigned_8 and | |
((Small_Rec.N in Positive) = (Small_Rec.K in B | C)); | |
function Func (R : Rec) return Integer; | |
end Opt100_Pkg; |