This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: unable to detect exception model
On Sun, 25 Jun 2006, Andrew Pinski wrote:
>
> On Jun 24, 2006, at 6:58 AM, Andrew Pinski wrote:
>
> >I can reproduce this, something is miscompiling cc1plus.
>
> If I revert:
> 2006-06-23 Richard Guenther <rguenther@suse.de>
>
> * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
> sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
> alignment requests instead. Add verification code.
> Add struct tree_function_decl and struct tree_binfo size to
> extra_order_size_table. Add missing element to size_lookup
> table.
>
> Bootstrap works.
How does size_loopup look like? And object_size_table? Does
Index: ggc-page.c
===================================================================
--- ggc-page.c (revision 114974)
+++ ggc-page.c (working copy)
@@ -1574,8 +1574,9 @@ init_ggc (void)
/* Verify we got everything right with respect to alignment requests.
*/
for (order = 1; order < 512; ++order)
- gcc_assert (ffs (OBJECT_SIZE (size_lookup [order]))
- >= ffs (order | MAX_ALIGNMENT));
+ gcc_assert ((ffs (OBJECT_SIZE (size_lookup [order]))
+ >= ffs (order | MAX_ALIGNMENT))
+ && order >= OBJECT_SIZE (size_lookup [order]));
G.depth_in_use = 0;
G.depth_max = 10;
pass? What is MAX_ALIGNMENT on ppc-darwin? It's defined as
struct max_alignment {
char c;
union {
HOST_WIDEST_INT i;
long double d;
} u;
};
/* The biggest alignment required. */
#define MAX_ALIGNMENT (offsetof (struct max_alignment, u))
I would guess this exposes a latent GC problem, do you have a testcase
or a .o file that is miscompiled? Does it reproduce with different
gc --parms? Does ppc-darwin use the USING_MMAP variant?
It would be nice if you can track down this some more, as I do not
have access to ppc-darwin.
Richard.
--
Richard Guenther <rguenther@suse.de>
Novell / SUSE Labs