summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/commands/command/script/TestCommandScript.py
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2020-01-09 15:50:55 -0500
committerEric Fiselier <eric@efcs.ca>2020-01-09 15:51:02 -0500
commit61bd19206f61ace4b007838a2ff8884a13ec0374 (patch)
treea5d3fe51624593547f90b4827f5c70d95332d6e8 /lldb/packages/Python/lldbsuite/test/commands/command/script/TestCommandScript.py
parentfc3367dd5ed4698036c421b23cf4f52cf8aedcae (diff)
downloadbcm5719-llvm-61bd19206f61ace4b007838a2ff8884a13ec0374.tar.gz
bcm5719-llvm-61bd19206f61ace4b007838a2ff8884a13ec0374.zip
[libc++] Explicitly enumerate std::string external instantiations.
The external instantiation of std::string is a problem for libc++. Additions and removals of inline functions in string can cause ABI breakages, including introducing new symbols. This patch aims to: (1) Make clear which functions are explicitly instatiated. (2) Prevent new functions from being accidentally instantiated. (3) Allow a migration path for adding or removing functions from the explicit instantiation over time. Although this new formulation is uglier, it is preferable from a maintainability and readability standpoint because it explicitly enumerates the functions we've chosen to expose in our ABI. Changing this list is non-trivial and requires thought and planning. (3) is achieved by making it possible to control the extern template declaration separately from it's definition. Meaning we could add a new definition to the dylib, wait for it to roll out, then add the extern template declaration to the header. Similarly, we could remove existing extern template declarations while still keeping the definition to prevent ABI breakages.
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/commands/command/script/TestCommandScript.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud