[libcxx-dev] Static initialization order potential issue in libcxxabi
Eric Fiselier via libcxx-dev
libcxx-dev at lists.llvm.org
Wed Dec 11 19:46:51 PST 2019
I've committed a fix, though I was unable to reproduce the problem with
Could you please confirm it on your end?
On Sun, Dec 8, 2019, 6:52 AM Idan Freiberg via libcxx-dev <
libcxx-dev at lists.llvm.org> wrote:
> I believe iv'e identified an issue with libcxxabi.
> The symptom is that, when calling std::treminate() on some simple program,
> the program segfaults.
> After a bit of debugging libcxxabi, Iv'e noticed that
> `__cxa_terminate_handler` is NULL at program initialization. However,
> calling std::set_terminate(nullptr); sets the actual default terminate
> handler (in my case is just std::abort).
> I tend to believe this is related to an static initialization order issue,
> in which `__cxa_terminate_handler` doesn't not get this correct value of
> std::abort (set by default_terminate_handler).
> One solution for iv'e found is wrapping the default_terminate_handler
> with a function and set this function as __cxa_terminate_handler first.
> I would be happy to hear your insights about this.
> Idan Freiberg
> Mobile: +972-52-2925213
> libcxx-dev mailing list
> libcxx-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the libcxx-dev