I only remembered to add DEF_VEC_A handlgin to gengtype.c a second after committing the previous patch [1]. Here it is, done as a follow up. With some luck, this will be short-lived code because of the C++ conversion. Bootstrapped and regtested on x86_64 linux. OK for trunk? 2012-07-30 Laurynas Biveinis * gengtype.h (enum gc_vec_type_kind): New. List individual vector kinds in the token codes. * gengtype-lex.l: Handle DEF_VEC_A, DEF_VEC_O, DEF_VEC_P, DEF_VEC_I individually. * gengtype-parse.c (token_names): Replace "DEF_VEC_[OP]" with individual vector token names. (def_vec): handle vector token types separately. (parse_file): handle the new vector token types. * gengtype.c (note_def_vec): remove is_scalar argument, introduce vec_type_argument instead. Create GTY option and resolve the vector element type according to vec_type_argument value.