Fix a bug in my previous patch by restoring the behavior that the fatal
authorChandler Carruth <chandlerc@gmail.com>
Fri, 27 Jun 2014 16:37:27 +0000 (16:37 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 27 Jun 2014 16:37:27 +0000 (16:37 +0000)
commit6666074876eff651e25bd1cd3cfa0848b26f7c28
tree661dd0f01b6895218c3f6fd04258d3d4f7a7d38e
parent637f6cceeed31dbbcf441b5dcd71ad4f9606cde4
Fix a bug in my previous patch by restoring the behavior that the fatal
error handler is only registered once.

To avoid the use of std::call_once (the obvious way to do this) I've
wrapped everything up into a managed static and done the work in
a constructor. Silly, but it should be effective.

Some out-of-tree libclang users reported this to me, and I've asked them
to put together a test case which exhibits this behavior, but I wanted
to fix things ASAP since the nature of the fix is straight forward.

llvm-svn: 211905
clang/tools/libclang/CIndex.cpp