http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51555
Bug #: 51555 Summary: Thinks System.Address is 64 bits wide when compiling with -m32 Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassig...@gcc.gnu.org ReportedBy: baldr...@gcc.gnu.org When using -m32 on a 64 bit system, the compiler thinks that System.Address does not have the same size as a pointer. Compiling the following testcase gives: $ gcc -S m32.adb -m32 m32.adb:4:07: warning: types for unchecked conversion have different sizes with System; package M32 is type P is access Integer; function C (A : System.Address) return P; end; with Ada.Unchecked_Conversion; package body M32 is function C (A : System.Address) return P is function D is new Ada.Unchecked_Conversion (System.Address, P); begin return D (A); end; end;