From 2d3a1837bcf31c9a622d810d29179081613346df Mon Sep 17 00:00:00 2001 From: Olivier Hainque Date: Mon, 28 Sep 2009 17:00:46 +0000 Subject: ada/ * gcc-interface/targtyps.c * (get_target_default_allocator_alignment): Account for observable alignments out of default allocators. testsuite/ * gnat.dg (tagged_alloc_free.adb): New testcase. From-SVN: r152243 --- gcc/ada/gcc-interface/targtyps.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'gcc/ada/gcc-interface/targtyps.c') diff --git a/gcc/ada/gcc-interface/targtyps.c b/gcc/ada/gcc-interface/targtyps.c index 716550e..9bc8f0e 100644 --- a/gcc/ada/gcc-interface/targtyps.c +++ b/gcc/ada/gcc-interface/targtyps.c @@ -160,10 +160,21 @@ get_target_maximum_default_alignment (void) handy and what alignment it honors). In the meantime, resort to malloc considerations only. */ +/* Account for MALLOC_OBSERVABLE_ALIGNMENTs here. Use this or the ABI + guaranteed alignment if greater. */ + +#ifdef MALLOC_OBSERVABLE_ALIGNMENT +#define MALLOC_ALIGNMENT MALLOC_OBSERVABLE_ALIGNMENT +#else +#define MALLOC_OBSERVABLE_ALIGNMENT (2 * LONG_TYPE_SIZE) +#define MALLOC_ALIGNMENT \ + MAX (MALLOC_ABI_ALIGNMENT, MALLOC_OBSERVABLE_ALIGNMENT) +#endif + Pos get_target_default_allocator_alignment (void) { - return MALLOC_ABI_ALIGNMENT / BITS_PER_UNIT; + return MALLOC_ALIGNMENT / BITS_PER_UNIT; } /* Standard'Maximum_Allowed_Alignment. Maximum alignment that we may -- cgit v1.1