32 lines
932 B
Ada
32 lines
932 B
Ada
-- { dg-do run { target i?86-*-* x86_64-*-* alpha*-*-* ia64-*-* } }
|
|
-- { dg-options "-O2" }
|
|
|
|
with Ada.Characters.Handling; use Ada.Characters.Handling;
|
|
with Interfaces; use Interfaces;
|
|
with Ada.Unchecked_Conversion;
|
|
|
|
procedure Opt47 is
|
|
|
|
subtype String4 is String (1 .. 4);
|
|
function To_String4 is new Ada.Unchecked_Conversion (Unsigned_32, String4);
|
|
type Arr is array (Integer range <>) of Unsigned_32;
|
|
Leaf : Arr (1 .. 4) := (1349478766, 1948272498, 1702436946, 1702061409);
|
|
Value : Unsigned_32;
|
|
Result : String (1 .. 32);
|
|
Last : Integer := 0;
|
|
|
|
begin
|
|
for I in 1 .. 4 loop
|
|
Value := Leaf (I);
|
|
for J in reverse String4'Range loop
|
|
if Is_Graphic (To_String4 (Value)(J)) then
|
|
Last := Last + 1;
|
|
Result (Last) := To_String4 (Value)(J);
|
|
end if;
|
|
end loop;
|
|
end loop;
|
|
if Result (1) /= 'P' then
|
|
raise Program_Error;
|
|
end if;
|
|
end;
|