this caused us to codegen dead globals like this:
struct foo { int a; int b; };
static struct foo fooarray[] = {
{1, 2},
{4},
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101150
91177308-0d34-0410-b5e6-
96231b3b80d8
return Visit(E->getSubExpr());
}
bool VisitUnaryOperator(UnaryOperator *E) { return Visit(E->getSubExpr()); }
+
+ // Has side effects if any element does.
+ bool VisitInitListExpr(InitListExpr *E) {
+ for (unsigned i = 0, e = E->getNumInits(); i != e; ++i)
+ if (Visit(E->getInit(i))) return true;
+ return false;
+ }
};
} // end anonymous namespace