https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65992
Markus Trippelsdorf trippels at gcc dot gnu.org changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed||2015-05-03
CC||trippels at gcc dot gnu.org
Ever confirmed|0 |1
Severity|major |normal
--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
markus@x4 tmp % cat BuildTests.pp.ii
namespace std {
template typename _Tp, _Tp struct integral_constant {
static constexpr _Tp value = 0;
};
template typename struct is_same : integral_constantbool, false {};
template bool struct enable_if;
template class class initializer_list {
int *_M_array;
unsigned long _M_len;
};
class A {
int _M_t;
};
}
template typename class Gen {
public:
template typename Impl = std::enable_ifstd::is_sameint::value
Gen(Impl);
std::A m_impl;
};
namespace gen {
void tuple();
template typename class B;
template typename Type, typename T class BT(Type::*) {
public:
typedef T ValueType;
};
template typename Member struct C {
using LensT = BMember;
using ValueType = typename LensT::ValueType;
using GenT = GenValueType;
GenT gen;
};
template typename T GenT construct();
template typename Member CMember set(Member, typename CMember::GenT);
template typename T, typename... Members
void build(GenT, const CMembers ... bs) {
[=] { [] { auto dummy = {(bs, 0)...}; }; };
}
}
template typename struct Foobar {
void setB();
void setCD();
int e;
};
void C_A_T_C_HT_E_S_T185() {
build(gen::constructFoobarint(), gen::set(Foobarint::setB, 0),
gen::set(Foobarint::setCD, gen::tuple),
gen::set(Foobarint::e, 0));
}
markus@x4 tmp % g++ -std=c++11 -c BuildTests.pp.ii
BuildTests.pp.ii: In function ‘void gen::build(GenT, const gen::CMembers
...) [with T = Foobarint; Members = {void (Foobarint::*)(), void
(Foobarint::*)(), int Foobarint::*}]’:
BuildTests.pp.ii:36:6: internal compiler error: in execute, at cfgexpand.c:6044
void build(GenT, const CMembers ... bs) {
^
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.