This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/64798] [5 regression] g++.old-deja/g++.eh/badalloc1.C FAILs
- From: "rguenther at suse dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 27 Jan 2015 12:49:37 +0000
- Subject: [Bug libstdc++/64798] [5 regression] g++.old-deja/g++.eh/badalloc1.C FAILs
- Auto-submitted: auto-generated
- References: <bug-64798-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64798
--- Comment #14 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 27 Jan 2015, jakub at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64798
>
> --- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I
> think aligned attribute is similarly useless for this, I'd really go for
> testing alignments you need, rather than expecting some magic value.
> I'm not aware of any target that would have bigger alignment for say
> char/short/int/long than long long, ditto with float/double, so I'd just
> check maximum of long long, long double, void * alignment.
For the actual bug I can use __alignof__ (__cxa_refcounted_exception),
but that again ends up using __attribute__((__aligned__)) via the
_Unwind_Exception member:
struct _Unwind_Exception
{
_Unwind_Exception_Class exception_class;
_Unwind_Exception_Cleanup_Fn exception_cleanup;
#if !defined (__USING_SJLJ_EXCEPTIONS__) && defined (__SEH__)
_Unwind_Word private_[6];
#else
_Unwind_Word private_1;
_Unwind_Word private_2;
#endif
/* @@@ The IA-64 ABI says that this structure must be double-word
aligned.
Taking that literally does not make much sense generically. Instead
we
provide the maximum alignment required by any type for the machine.
*/
} __attribute__((__aligned__));
so I think that using __attribute__((__aligned__)) is very much the
correct and easiest thing to use.