diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 8257e4265f215ed611c22339c7ffe4042b1713b8..bc2e38c1ced75a571d644fbb6af724dca999fe94 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + PR ada/24533 + * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8. + 2005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t. diff --git a/gcc/ada/s-osinte-linux-hppa.ads b/gcc/ada/s-osinte-linux-hppa.ads index ec7efd2feae1b5c25759316c0eef62934baf3874..40f0d073af562dc1709dcad899eb53cb5497ebca 100644 --- a/gcc/ada/s-osinte-linux-hppa.ads +++ b/gcc/ada/s-osinte-linux-hppa.ads @@ -508,7 +508,10 @@ private lock : lock_array; end record; pragma Convention (C, atomic_lock_t); - for atomic_lock_t'Alignment use 16; + -- ??? Alignment should be 16 but this is larger than BIGGEST_ALIGNMENT. + -- This causes an erroneous pointer value to sometimes be passed to free + -- during deallocation. See PR ada/24533 for more details. + for atomic_lock_t'Alignment use 8; type struct_pthread_fast_lock is record spinlock : atomic_lock_t;