https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69075
--- Comment #4 from Mikhail Maltsev <miyuki at gcc dot gnu.org> --- Somewhat reduced testcase: $ cat test2.cc using Timer_Probe = int; struct A { Timer_Probe probe; }; struct Gateway_Order_Probe : A { using Body = A; Gateway_Order_Probe() : Body{} {} }; struct Backend_Response_Probe { int sequence_number; int message_id_value; int source_time; }; template <typename T0> struct B { typedef T0 type; }; void *operator new(unsigned long, void *p2) { return p2; } template <typename... Messages> class Variant_Message { public: template <typename T> struct emplace_t { typedef T emplace_type; }; template <typename T, typename... Args> Variant_Message(emplace_t<T>, Args &&...) noexcept; typename B<Messages...>::type largest_type; char storage_[sizeof largest_type]; }; template <typename... Messages> template <typename T, typename... Args> Variant_Message<Messages...>::Variant_Message(emplace_t<T>, Args &&...) noexcept { using msg_type = typename emplace_t<T>::emplace_type; new (storage_) msg_type; } template <typename T, typename Variant> class make_t : Variant { using emplace_t = typename Variant::template emplace_t<T>; public: make_t() : Variant(emplace_t()) {} }; template <typename T, typename Variant> make_t<T, Variant> make_variant() { return make_t<T, Variant>(); } struct Performance_Data : Variant_Message<Backend_Response_Probe> { using base_type = Variant_Message; template <typename T> Performance_Data(emplace_t<T>) : base_type(emplace_t<T>()) {} }; struct C { C(int const &&); decltype(make_variant<Gateway_Order_Probe, Performance_Data>()) probe_; }; C::C(int const &&) : probe_(make_variant<Gateway_Order_Probe, Performance_Data>()) {} $ /opt/gcc-5-latest/bin/g++ -std=c++14 -flto -O3 -fdevirtualize-at-ltrans --param early-inlining-insns=15 test2.cc test2.cc: In member function 'C::C(int const&&)': test2.cc:57:67: internal compiler error: Segmentation fault : probe_(make_variant<Gateway_Order_Probe, Performance_Data>()) {} ^ 0xd3b116 crash_signal /home/jenkins/workspace/build-gcc-snapshot/src/gcc-5-20151229/gcc/toplev.c:383 0x6df210 tree_check(tree_node*, char const*, int, char const*, tree_code) /home/jenkins/workspace/build-gcc-snapshot/src/gcc-5-20151229/gcc/tree.h:2850 0x6df210 is_really_empty_class(tree_node*) /home/jenkins/workspace/build-gcc-snapshot/src/gcc-5-20151229/gcc/cp/class.c:8056 [snip]