This patch both: 1. Provides a static checker to detect global variables which may not be initialized at compile-time 2. Verify that variables flagged as MOZ_RUNINIT are indeed initialized at runtime 3. In case of variables whose initialisation status varies based on macro definition or template parameters, just flag them as MOZ_GLOBINIT. Differential Revision: https://phabricator.services.mozilla.com/D223342