https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69149
Markus Trippelsdorf changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed||2016-01-05
CC||trippels at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #3 from Markus Trippelsdorf ---
This is what creduce came up with:
markus@x4 tmp % cat deb.ii
template struct A { typedef __underlying_type(_Tp) type; };
namespace o3tl {
template struct typed_flags;
template ::type> struct is_typed_flags {
class Wrap {
public:
constexpr operator E() {}
};
};
}
template
constexpr typename o3tl::typed_flags::Wrap operator|(E, E) {
__PRETTY_FUNCTION__;
}
enum SfxSlotMode { NONE, PROPGET };
namespace o3tl {
template <>
struct typed_flags : is_typed_flags {};
class {
public:
short nGroupId;
} a{(short)(NONE | PROPGET)};
}
markus@x4 tmp % g++ deb.ii
deb.ii:22:20: in constexpr expansion of
‘operator|((SfxSlotMode)0u, (SfxSlotMode)1u)’
deb.ii:22:28: internal compiler error: Segmentation fault
} a{(short)(NONE | PROPGET)};
^
0xcc988f crash_signal
../../gcc/gcc/toplev.c:334
0x7f1334c6230f ???
/home/markus/glibc/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0xa48714 bool vec_safe_reserve(vec*&, unsigned int, bool)
../../gcc/gcc/vec.h:553
0xa48714 tree_node** vec_safe_push(vec*&, tree_node* const&)
../../gcc/gcc/vec.h:647
0xa48714 add_local_decl(function*, tree_node*)
../../gcc/gcc/function.c:6791
0xd3c416 remap_decls
../../gcc/gcc/tree-inline.c:611
0xd3d290 remap_block
../../gcc/gcc/tree-inline.c:679
0xd4373e copy_bind_expr
../../gcc/gcc/tree-inline.c:752