> 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.
This one (access1) is admittedly border line and we can probably kludge around it in the front-end, but what about access2 and more generally pointer cycles? -- Eric Botcazou