From: Eric Botcazou Date: Tue, 31 Jul 2018 09:56:10 +0000 (+0000) Subject: [Ada] Fix alignment of mutex_t and cond_t type on 32-bit SPARC/Solaris X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a6ed513cb809e1c0da0d021f35835ce0924954ca;p=gcc.git [Ada] Fix alignment of mutex_t and cond_t type on 32-bit SPARC/Solaris The alignment of the couple of types from System.OS_Interface was wrongly set to 4 (32-bit) instead of 8 (64-bit) in 32-bit mode. 2018-07-31 Eric Botcazou gcc/ada/ * libgnarl/s-osinte__solaris.ads (upad64_t): New private type. (mutex_t): Use it for 'lock' and 'data' components. (cond_t): Likewise for 'data' and use single 'flags' component. From-SVN: r263099 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 0d26bb50fda..eab50c1e155 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2018-07-31 Eric Botcazou + + * libgnarl/s-osinte__solaris.ads (upad64_t): New private type. + (mutex_t): Use it for 'lock' and 'data' components. + (cond_t): Likewise for 'data' and use single 'flags' component. + 2018-07-31 Justin Squirek * exp_ch5.adb (Make_Field_Assign): Force temporarily generated diff --git a/gcc/ada/libgnarl/s-osinte__solaris.ads b/gcc/ada/libgnarl/s-osinte__solaris.ads index 57d1d5c3ece..8d53d634d35 100644 --- a/gcc/ada/libgnarl/s-osinte__solaris.ads +++ b/gcc/ada/libgnarl/s-osinte__solaris.ads @@ -536,17 +536,18 @@ private end record; pragma Convention (C, record_type_3); + type upad64_t is new Interfaces.Unsigned_64; + type mutex_t is record flags : record_type_3; - lock : String (1 .. 8); - data : String (1 .. 8); + lock : upad64_t; + data : upad64_t; end record; pragma Convention (C, mutex_t); type cond_t is record - flag : array_type_9; - Xtype : unsigned_long; - data : String (1 .. 8); + flags : record_type_3; + data : upad64_t; end record; pragma Convention (C, cond_t);