diff options
author | Eric Fiselier <eric@efcs.ca> | 2017-01-05 01:15:42 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2017-01-05 01:15:42 +0000 |
commit | 528600c41ffb6afc9d95f5ba808ed5e6b348d7a3 (patch) | |
tree | 4c29d45e1c7949c1e587c33e257810c52099d8eb /lldb/packages/Python/lldbsuite/test/expression_command/call-function/main.cpp | |
parent | 61195e12fc5cc128e5908cfb76a91ee6860659e5 (diff) | |
download | bcm5719-llvm-528600c41ffb6afc9d95f5ba808ed5e6b348d7a3.tar.gz bcm5719-llvm-528600c41ffb6afc9d95f5ba808ed5e6b348d7a3.zip |
Fix std::pointer_safety type in ABI v2
In the C++ standard `std::pointer_safety` is defined
as a C++11 strongly typed enum. However libc++ currently defines
it as a class type which simulates a C++11 enumeration. This
can be detected in valid C++ code.
This patch introduces an the _LIBCPP_ABI_POINTER_SAFETY_ENUM_TYPE ABI option.
When defined `std::pointer_safety` is implemented as an enum type.
Unfortunatly this also means it can no longer be provided as an extension
in C++03.
Additionally this patch moves the definition for `get_pointer_safety()`
out of the dylib, and into the headers. New usages of `get_pointer_safety()`
will now use the inline version instead of the dylib version. However in
order to keep the dylib ABI compatible the old definition is explicitly
compiled into it.
llvm-svn: 291046
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/call-function/main.cpp')
0 files changed, 0 insertions, 0 deletions