Fixed in 3.4.1 and mainline. Thank you for your report!
As for a temporary workaround, the problem comes from the use of typeid()
within an initializer expression of a variable in a template. Try using a
wrapper function, something along the lines of:
template <class T>
const std::type_info& wrapper_typeid()
{ return typeid(T); }
/* ... */
template <class T>
void dummy() {
const std::type_info& tid = wrapper_typeid<T>();
}
Untested, but should work as a workaround.