blob: 5503b965256ba72490ff7d8c1149d032f297380c [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O2" } */
#include <stdlib.h>
struct wrapper_t
{
long k;
long e;
};
struct wrapper_t **table;
__attribute__ ((weak, regparm (2)))
void
update (long k, long e)
{
struct wrapper_t *elmt;
elmt = table[k % 3079];
if (elmt == 0)
return;
elmt->e = e;
}
int
main ()
{
table = (struct wrapper_t **) malloc (20 * sizeof (struct wrapper_t *));
for (int i = 0; i < 20; i++)
table[i] = (struct wrapper_t *) calloc (sizeof (struct wrapper_t), 1);
if (table[10]->e != 0)
abort ();
update (10, 20);
if (table[10]->e != 20)
abort ();
return 0;
}