https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108398

--- Comment #3 from Siddhesh Poyarekar <siddhesh at gcc dot gnu.org> ---
Oops, sorry I messed up the reproducer, here's the correct one.  The principles
don't really change though:

unsigned steps[2];

int main(void) {
    unsigned n_steps = sizeof (steps) / sizeof (unsigned);

    for (unsigned *io = steps; 0 < n_steps; io++) {
        if (*io == 0) {
            __builtin_printf ("%zu\n", __builtin_dynamic_object_size (io, 0));
            if (__builtin_dynamic_object_size (io, 0) < sizeof (unsigned))
                __builtin_abort ();
            n_steps--;
            io--;
        }
    }

    return 0;
}

Reply via email to