OK.
On Sun, Jan 14, 2018 at 6:47 PM, Martin Sebor <mse...@gmail.com> wrote: > The attached patch fixes PR c++/83588 - struct with two flexible > arrays causes an internal compiler error. The ICE is caused by > the same assertion in varasm.c that has led to other similar > reports in the past: > > /* Given a non-empty initialization, this field had better > be last. Given a flexible array member, the next field > on the chain is a TYPE_DECL of the enclosing struct. */ > const_tree next = DECL_CHAIN (local->field); > gcc_assert (!fieldsize || !next || TREE_CODE (next) != FIELD_DECL); > > The fix is simply to also detect when a class defines more than > one flexible array member and treat the subsequent array as any > other member, and reject such class definitions to make sure they > never reach the assertion above. > > Martin