This is an fyi rather than a question.
I recently had an issue with noinit objects. In retrospect it was obvious.... so obvious that I recall running into it years ago and forgetting.
When instantiating a cpp object, the noinit attribute can be specified. For example
ErrorLog errorLog __attribute__ ((section (".noinit")));
This all worked just fine. My error log persisted through restarts and was helpful in solving all sorts of issues... and then it stopped.
The issue was that I had run cppCheck and been through and resolved many of the warnings that it flagged. One of the warnings was the lack of initialisation in the constructor for the class.
Now obviously if the constructor initialises all of the attributes, noinit has no effect.
It is obvious now.... but it wasn't at the time.
Hopefully I don't forget this again and lose more sleep