Hi,

in a patch I am developing, I have the following code:

typedef struct {
  gfc_code *c;
  int branch_level;
  bool seen_goto;
  vec <gfc_expr *> extrema;
} do_t;

static vec<do_t> doloop_list;

[...]


  do_t loop;

  doloop_list.safe_push (loop);
  doloop_list.last().extrema.reserve (1 << doloop_level);

where the last statement segfaults.  It also segfaults if
I replace the last line with

 doloop_list[0].extrema.reserve (1 << doloop_level);

Is there something glaringly obvious I am doing wrong, and
could this be easily fixed?

If not, I guess I'll just implement this using standard C
techniques (i.e. malloc/realloc). It will look a bit strange,
but, as a wise man once said, a patch that works beats
an elegant idea every time...

Best regards

        Thomas

Reply via email to