https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123419

--- Comment #1 from Iain Buclaw <ibuclaw at gcc dot gnu.org> ---
(In reply to Iain Buclaw from comment #0)
> The var expression fails this assertion.
> 
>     gcc_assert (e->type->isConst ()
>                 && e->type->nextOf ()->ty == TY::Tvoid);
The assert expects the type of `__traits(initSymbol)` to be exactly
`const(void[])`, but because D strips const from arrays to allow passing slices
as mutable ranges to template functions, it got turned into `const(void)[]`.

Instead it should be `e->type->nextOf ()->isConst ()`.

Reply via email to