1-- Copyright 2008-2016 Free Software Foundation, Inc. 2-- 3-- This program is free software; you can redistribute it and/or modify 4-- it under the terms of the GNU General Public License as published by 5-- the Free Software Foundation; either version 3 of the License, or 6-- (at your option) any later version. 7-- 8-- This program is distributed in the hope that it will be useful, 9-- but WITHOUT ANY WARRANTY; without even the implied warranty of 10-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11-- GNU General Public License for more details. 12-- 13-- You should have received a copy of the GNU General Public License 14-- along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16procedure Foo is 17 type Bar (N : Natural) is record 18 S : String (1 .. N); 19 end record; 20 21 function Get (S : String) return Bar is 22 begin 23 return (N => S'Length, S => S); 24 end Get; 25 26 procedure Do_Nothing (B : Bar) is 27 begin 28 null; 29 end Do_Nothing; 30 31 B : Bar := Get ("Foo"); 32begin 33 Do_Nothing (B); -- STOP 34end Foo; 35