diff options
author | Eric Fiselier <eric@efcs.ca> | 2015-08-18 19:40:38 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2015-08-18 19:40:38 +0000 |
commit | 4504cf2c8de1e6c2479e07c06b71e4506fe8fe70 (patch) | |
tree | fe1a86b484575587cd2b332705a63e9e96c98f9d /clang/lib/Frontend/ASTMerge.cpp | |
parent | 556f9340f75ab0300ec194d27e115be8a91d849e (diff) | |
download | llvm-4504cf2c8de1e6c2479e07c06b71e4506fe8fe70.zip llvm-4504cf2c8de1e6c2479e07c06b71e4506fe8fe70.tar.gz llvm-4504cf2c8de1e6c2479e07c06b71e4506fe8fe70.tar.bz2 |
[libc++] Fix PR22606 - Leak pthread_key with static storage duration to ensure all of thread-local destructors are called.
Summary:
See https://llvm.org/bugs/show_bug.cgi?id=22606 for more discussion.
Most of the changes in this patch are file reorganization to help ensure assumptions about how __thread_specific_pointer is used hold. The assumptions are:
* `__thread_specific_ptr<Tp>` is only created with a `__thread_struct` pointer.
* `__thread_specific_ptr<Tp>` can only be constructed inside the `__thread_local_data()` function.
I'll remove the comments before committing. They are there for clarity during review.
Reviewers: earthdok, mclow.lists
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D8802
llvm-svn: 245334
Diffstat (limited to 'clang/lib/Frontend/ASTMerge.cpp')
0 files changed, 0 insertions, 0 deletions