There are two global variables in utils.h that cause a static initialization order fiasco: all_sinks and standard_sink.
The Sink class uses all_sinks in a constructor:
There is a global variable called standard_sink created as standard_sink(SinkOptions(STDERR_FILENO)).
As per C++ standard, the order of static variables initialization is undefined. Which means that standard_sink may be created before all_sinks is initialized. See https://isocpp.org/wiki/faq/ctors#static-init-order for more information.
There are two global variables in utils.h that cause a static initialization order fiasco:
all_sinks
andstandard_sink
. TheSink
class usesall_sinks
in a constructor:There is a global variable called
standard_sink
created asstandard_sink(SinkOptions(STDERR_FILENO))
.As per C++ standard, the order of static variables initialization is undefined. Which means that
standard_sink
may be created beforeall_sinks
is initialized. See https://isocpp.org/wiki/faq/ctors#static-init-order for more information.