Commit a6ed513c by Eric Botcazou Committed by Pierre-Marie de Rodat

[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  <ebotcazou@adacore.com>

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
parent a7576e13
2018-07-31 Eric Botcazou <ebotcazou@adacore.com>
* 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 <squirek@adacore.com>
* exp_ch5.adb (Make_Field_Assign): Force temporarily generated
......
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment