-5dd3eccc3b0758346f77bee3cdc3f6bd15de339b
+d7ed327edb0b01ad56e7e73e77b3401cd565675e
The first line of this file holds the git revision number of the last
merge done from the dlang/dmd repository.
/* Returns: true if e is void,
* or is an array literal or struct literal of void elements.
*/
-static bool isVoid(Expression *e)
+static bool isVoid(Expression *e, bool checkArray = false)
{
if (e->op == TOKvoid)
return true;
+ if (checkArray && e->type->ty != Tsarray)
+ return false;
+
if (e->op == TOKarrayliteral)
return isEntirelyVoid(((ArrayLiteralExp *)e)->elements);
// A struct .init may contain void members.
// Static array members are a weird special case (bug 10994).
- if (structlit && isVoid(e))
+ if (structlit && isVoid(e, true))
{
e = NULL;
}