31 lines
847 B
Ada
31 lines
847 B
Ada
-- { dg-do compile }
|
|
-- { dg-options "-O2" }
|
|
|
|
with Unchecked_Conversion;
|
|
|
|
procedure Warn4 is
|
|
|
|
type POSIX_Character is new Standard.Character;
|
|
type POSIX_String is array (Positive range <>) of aliased POSIX_Character;
|
|
|
|
type String_Ptr is access all String;
|
|
type POSIX_String_Ptr is access all POSIX_String;
|
|
|
|
function sptr_to_psptr is new Unchecked_Conversion -- { dg-warning "aliasing problem" }
|
|
(String_Ptr, POSIX_String_Ptr); -- { dg-warning "" "" { target *-*-* } 14 }
|
|
|
|
function To_POSIX_String (Str : String) return POSIX_String;
|
|
function To_POSIX_String (Str : String)
|
|
return POSIX_String is
|
|
begin
|
|
return sptr_to_psptr (Str'Unrestricted_Access).all;
|
|
end To_POSIX_String;
|
|
|
|
A : Boolean;
|
|
S : String := "ABCD/abcd";
|
|
P : Posix_String := "ABCD/abcd";
|
|
|
|
begin
|
|
A := To_POSIX_String (S) = P;
|
|
end;
|