Hi folks. I rolled our own is_a<> implementation for vrange, because it was trivial. We needed it to work on references, and GCC's is-a.h implementation is pointer-only. However, I now realize it confuses gengtype when adding additional types:
template<typename T> struct vrange_traits { // Default to something unusable. typedef void range_type; }; template<> struct vrange_traits<irange> { typedef irange range_type; }; template<> struct vrange_traits<frange> { typedef frange range_type; <-- BOO! HISS! }; build/gengtype \ -S /home/aldyh/src/gcc/gcc -I gtyp-input.list -w tmp-gtype.state /home/aldyh/src/gcc/gcc/value-range.h:291: type `range_type' previously defined /home/aldyh/src/gcc/gcc/value-range.h:285: previously defined here Can some gengtype guru offer guidance? Thanks. Aldy