blob: fc90dd9c766c7aa3d58f79899727be33215cd4fc [file] [log] [blame]
/* { dg-require-effective-target alloca } */
/* PR target/78439. */
enum demangle_component_type
{
DEMANGLE_COMPONENT_THROW_SPEC
};
struct demangle_component
{
enum demangle_component_type type;
struct
{
struct
{
struct demangle_component *left;
struct demangle_component *right;
};
};
};
int a, b;
struct d_info
{
struct demangle_component *comps;
int next_comp;
int num_comps;
struct demangle_component *subs;
int num_subs;
int is_conversion;
};
void
fn1 (int p1, struct d_info *p2)
{
p2->num_comps = 2 * p1;
p2->next_comp = p2->num_subs = p1;
p2->is_conversion = 0;
}
int fn3 (int *);
void fn4 (struct d_info *, int);
void
fn2 ()
{
int c;
struct d_info d;
b = 0;
c = fn3 (&a);
fn1 (c, &d);
struct demangle_component e[d.num_comps];
struct demangle_component *f[d.num_subs];
d.comps = e;
d.subs = (struct demangle_component *) f;
fn4 (&d, 1);
}