https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118096

--- Comment #4 from Sam James <sjames at gcc dot gnu.org> ---
Reduced but still a bit gross:
```
void fancy_abort(char *, int, const char *) __attribute__((__noreturn__));
unsigned m_num;
struct vl_ptr;
struct va_heap {
  typedef vl_ptr default_layout;
};
template <typename, typename A = va_heap, typename = typename
A::default_layout>
struct vec;
int vNULL;
template <typename T, typename A> struct vec<T, A, int> {
  T operator[](unsigned ix) {
    ix < m_num ? fancy_abort("", 0, __FUNCTION__), 0 : 0;
    return ix;
  }
};
template <typename T> struct vec<T> {
  vec(int);
  T operator[](unsigned ix) { return m_vec[ix]; }
  vec<T, va_heap, int> m_vec;
};
int *graphds_scc_queue;
vec<int> graphds_scc_postorder = vNULL;
void graphds_scc() {
  int i;
  for (; i; i++)
    graphds_scc_queue[i] = graphds_scc_postorder[1];
}
```

Reply via email to