> > > Bootstrapped/regtested x86_64-linux and also lto-bootstraped. Looks OK?
> > >
> > > * alias.c (alias_set_subset_of, alias_sets_conflict_p,
> > > objects_must_conflict_p): Short circuit for !flag_strict_aliasing
> > > (get_alias_set): Remove flag_strict_aliasing check.
> > > (new_alias_set): Likewise.
> >
> > Not clear whether it's this patch specifically or another one in the
> > series,
> > but the compiler now hangs on simple Ada code it used to compile instantly.
> >
> > A couple of testcases is attached. It looks like the compiler is now stuck
> > in
> > get_alias_set endlessly pushing references onto a vector.
> uhm, sorry. I will take a look.
The problem is with the type:
(gdb) p debug_tree (p)
<pointer_type 0x7ffff6af02a0 type <pointer_type 0x7ffff6af02a0>
sizes-gimplified public visited unsigned DI
size <integer_cst 0x7ffff6ad7bb8 type <integer_type 0x7ffff6adb2a0
bitsizetype> constant visited 64>
unit size <integer_cst 0x7ffff6ad7bd0 type <integer_type 0x7ffff6adb1f8
sizetype> constant visited 8>
align 64 symtab 0 alias set -1 canonical type 0x7ffff6af02a0
pointer_to_this <pointer_type 0x7ffff6af02a0>>
it is a recursive pointer to itself. Does this make sense in Ada? If so we
will need to add a recursion guard into the loop and put the alias set into
voidptr_alias_set. It more looks like a frontend bug to me - I can not think
of a use for this beast.
Honza