Hi Nathan,

Does the VEC API support the following?

typedef unsigned char vec_uchar;
DEF_VEC_I(vec_uchar);
DEF_VEC_ALLOC_I(vec_uchar,gc);

Note that this is GC'ed.  When I use this construct in except.c, I get

libbackend.a(except.o): In function `gt_ggc_mx_eh_status':
./gt-except.h:104: undefined reference to `gt_ggc_mx_VEC_vec_uchar_gc'
./gt-except.h:106: undefined reference to `gt_ggc_mx_VEC_vec_uchar_gc'
libbackend.a(except.o): In function `gt_pch_nx_eh_status':
./gt-except.h:221: undefined reference to `gt_pch_nx_VEC_vec_uchar_gc'
./gt-except.h:223: undefined reference to `gt_pch_nx_VEC_vec_uchar_gc'

The reason I'd like to use GC memory for these integer arrays is
because the structure, namely eh_status, that contains the integer
arrays is GC'ed.

I have a workaround like so

typedef struct vec_uchar_struct GTY(()) {
  unsigned char uc;
} vec_uchar;

DEF_VEC_O(vec_uchar);
DEF_VEC_ALLOC_O(vec_uchar,gc);

But this is more complicated than it should be.  If the VEC API does
not support an integer array in GC, what should I do to add that?
Some sketch would be greatly appreciated.

Thanks,

Kazu Hirata

Reply via email to