AFAIKS GPC implements resticted types quite unlike what EP requires. 1) Restriced types should be different then underlying type (6.4.1 says that restricted-type is a new-type, and new-type is different from other types. So according to rules for return values the following program (accepted by GPC in EP mode) is incorrect: program prog; type a=0..5; b= restricted a; var c:a; procedure foo(function bar:b); begin end; function baz:a; begin baz := c end; begin foo(baz) end . 2) According to 6.9.2.2 assignment to variable of restricted type is legal, and IMHO the following program (rejected by GPC) is legal: program prog; type a=0..5; b= restricted a; var c:b; begin c := 0; end . By the way, greping the testsuite for `restricted' gave me no matches... -- Waldek Hebisch hebisch@math.uni.wroc.pl