https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63191
--- Comment #5 from woodfin at intersystems dot com --- You could try adding a non-static function that returns an address inside Zs. const Z* getzs() { return &Zs[0]; } I'd think that would force it to actually perform the initialization if the contents can be externally accessed. Sorry, I don't have a gcc 5.0 environment yet. I'll set one up if you still can't reproduce this there.