Will the compiler not zero-initialize a1.n, a2.n, a3.n as per the C++ standard?

According to the rule of default initialization, if they're of automatic storage duration, no zero-initialization here, all values will be indeterminate. On the other hand, static and thread-local objects get zero initialized.

Email codedump link for Are they equivalent between implicit ctor, no-parameter-empty-body ctor and explicit default ctor?