|  | ABI Changelog | 
|  | ============== | 
|  | This changelog contains information about ABI changes in libc++. Specifically | 
|  | the addition and deletion of symbols from the libc++ dylib. | 
|  |  | 
|  | Each entry should start with the revision number followed by a description of | 
|  | the change. The entry should contain a summary of the ABI changes made, | 
|  | including what symbols were added, removed, or changed. | 
|  |  | 
|  | To generate a summary use "sym_diff.py" diffing against the appropriate ABI list. | 
|  | Afterwards the ABI list should be updated to include the new changes. | 
|  |  | 
|  | New entries should be added directly below the "Version" header. | 
|  |  | 
|  | ----------- | 
|  | Version 7.0 | 
|  | ----------- | 
|  |  | 
|  | * r333467 - Fix embarrasing typo in uncaught_exceptions. | 
|  |  | 
|  | This bug caused __uncaught_exception to be ODR used instead of | 
|  | __uncaught_exceptions. This change is non-ABI breaking because the symbols | 
|  | for std::uncaught_exception and std::uncaught_exceptions haven't changed, | 
|  | and because users shouldn't be depending directly on libc++ exporting | 
|  | __uncaught_exception/__uncaught_exceptions. | 
|  |  | 
|  | All Platforms | 
|  | ---------------- | 
|  | SYMBOL REMOVED: __cxa_uncaught_exception | 
|  | Symbol added: __cxa_uncaught_exceptions | 
|  |  | 
|  |  | 
|  | ----------- | 
|  | Version 5.0 | 
|  | ----------- | 
|  |  | 
|  | * r313500 - Fix undefined "___cxa_deleted_virtual" symbol in macosx | 
|  |  | 
|  | x86_64-linux-gnu | 
|  | ---------------- | 
|  | No changes | 
|  |  | 
|  | x86_64-apple-darwin16.0 | 
|  | ----------------------- | 
|  | Symbol added: ___cxa_deleted_virtual | 
|  |  | 
|  | * r296729 - Remove std::num_get template methods which should be inline | 
|  |  | 
|  | These functions should never have had visible definitions in the dylib but | 
|  | since they were previously not specified with 'inline' they accidentally | 
|  | got emitted. This change is non-ABI breaking because every "linkage unit" | 
|  | must contain its own definition. | 
|  |  | 
|  | x86_64-linux-gnu | 
|  | ---------------- | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  | SYMBOL REMOVED: _ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_ | 
|  |  | 
|  | x86_64-apple-darwin16.0 | 
|  | ----------------------- | 
|  | No changes | 
|  |  | 
|  | ----------- | 
|  | Version 4.0 | 
|  | ----------- | 
|  |  | 
|  | * r290651 - Add _LIBCPP_ASSERT debug handling functions | 
|  |  | 
|  | All Platforms | 
|  | ------------- | 
|  | Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKNS_19__libcpp_debug_infoE | 
|  | Symbol added: _ZNSt3__124__libcpp_debug_exceptionD1Ev | 
|  | Symbol added: _ZTINSt3__124__libcpp_debug_exceptionE | 
|  | Symbol added: _ZNSt3__129__libcpp_throw_debug_functionERKNS_19__libcpp_debug_infoE | 
|  | Symbol added: _ZNSt3__124__libcpp_debug_exceptionD2Ev | 
|  | Symbol added: _ZNSt3__129__libcpp_abort_debug_functionERKNS_19__libcpp_debug_infoE | 
|  | Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2ERKS0_ | 
|  | Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1Ev | 
|  | Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKNS_19__libcpp_debug_infoE | 
|  | Symbol added: _ZNSt3__124__libcpp_debug_exceptionC2Ev | 
|  | Symbol added: _ZTSNSt3__124__libcpp_debug_exceptionE | 
|  | Symbol added: _ZNSt3__123__libcpp_debug_functionE | 
|  | Symbol added: _ZNKSt3__124__libcpp_debug_exception4whatEv | 
|  | Symbol added: _ZNSt3__124__libcpp_debug_exceptionC1ERKS0_ | 
|  | Symbol added: _ZNSt3__124__libcpp_debug_exceptionD0Ev | 
|  | Symbol added: _ZTVNSt3__124__libcpp_debug_exceptionE | 
|  | Symbol added: _ZNSt3__127__libcpp_set_debug_functionEPFvRKNS_19__libcpp_debug_infoEE | 
|  |  | 
|  | * r288547 - Implement C++17 <variant> | 
|  |  | 
|  | All Platforms | 
|  | ------------- | 
|  | Symbol added: _ZTVSt18bad_variant_access | 
|  | Symbol added: _ZTISt18bad_variant_access | 
|  | Symbol added: _ZTSSt18bad_variant_access | 
|  | Symbol added: _ZNKSt18bad_variant_access4whatEv | 
|  |  | 
|  | * r285537 - Remove std::string::append template methods which should be inline | 
|  |  | 
|  | These functions should never have had visible definitions in the dylib but | 
|  | since they were previously not specified with 'inline' they accidentally | 
|  | got emitted. This change is non-ABI breaking because every "linkage unit" | 
|  | must contain its own definition. | 
|  |  | 
|  | x86_64-linux-gnu | 
|  | ---------------- | 
|  | SYMBOL REMOVED: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendIPcEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_ | 
|  | SYMBOL REMOVED: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6appendIPwEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorIS9_EE5valueERS5_E4typeES9_S9_ | 
|  |  | 
|  | x86_64-apple-darwin16.0 | 
|  | ----------------------- | 
|  | No changes | 
|  |  | 
|  | * r285101 - Add -fvisibility-inlines-hidden when building libc++. | 
|  |  | 
|  | Although this change removes symbols, it should still be non-ABI breaking | 
|  | since all of the definitions removed are inline functions. For this reason | 
|  | removing these symbols is safe because every "linkage unit" which uses these | 
|  | functions will contain their own definition. | 
|  |  | 
|  | x86_64-linux-gnu | 
|  | ---------------- | 
|  | SYMBOL REMOVED: _ZNSt12bad_any_castD0Ev | 
|  | SYMBOL REMOVED: _ZNSt12experimental15fundamentals_v112bad_any_castD0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IDiED0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IDsED0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__114__codecvt_utf8IwED0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDiLb0EED0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDiLb1EED0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDsLb0EED0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IDsLb1EED0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IwLb0EED0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__115__codecvt_utf16IwLb1EED0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__117__assoc_sub_stateD0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__117__assoc_sub_stateD2Ev | 
|  | SYMBOL REMOVED: _ZNSt3__117__libcpp_sscanf_lEPKcP15__locale_structS1_z | 
|  | SYMBOL REMOVED: _ZNSt3__119__libcpp_asprintf_lEPPcP15__locale_structPKcz | 
|  | SYMBOL REMOVED: _ZNSt3__119__libcpp_snprintf_lEPcmP15__locale_structPKcz | 
|  | SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IDiED0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IDsED0Ev | 
|  | SYMBOL REMOVED: _ZNSt3__120__codecvt_utf8_utf16IwED0Ev | 
|  |  | 
|  | x86_64-apple-darwin16.0 | 
|  | ----------------------- | 
|  | No Changes - inline symbols are already hidden | 
|  |  | 
|  |  | 
|  | * r284206 - Implement C++17 aligned allocation in <new> | 
|  |  | 
|  | x86_64-linux-gnu | 
|  | ---------------- | 
|  | Symbol added: posix_memalign@GLIBC_2.2.5 | 
|  | Symbol added: _ZdaPvSt11align_val_t | 
|  | Symbol added: _ZdlPvSt11align_val_t | 
|  | Symbol added: _ZnamSt11align_val_t | 
|  | Symbol added: _ZdaPvmSt11align_val_t | 
|  | Symbol added: _ZdlPvmSt11align_val_t | 
|  | Symbol added: _ZdlPvSt11align_val_tRKSt9nothrow_t | 
|  | Symbol added: _ZnwmSt11align_val_tRKSt9nothrow_t | 
|  | Symbol added: _ZnamSt11align_val_tRKSt9nothrow_t | 
|  | Symbol added: _ZdaPvSt11align_val_tRKSt9nothrow_t | 
|  | Symbol added: _ZnwmSt11align_val_t | 
|  |  | 
|  | * r283980 - Implement C++17 <optional> | 
|  |  | 
|  | x86_64-linux-gnu | 
|  | ---------------- | 
|  | Symbol added: _ZTISt19bad_optional_access | 
|  | Symbol added: _ZNSt19bad_optional_accessD0Ev | 
|  | Symbol added: _ZNSt19bad_optional_accessD1Ev | 
|  | Symbol added: _ZNSt19bad_optional_accessD2Ev | 
|  | Symbol added: _ZTVSt19bad_optional_access | 
|  | Symbol added: _ZTSSt19bad_optional_access | 
|  |  | 
|  | * r278310 - Implement C++17 <any> | 
|  |  | 
|  | x86_64-linux-gnu | 
|  | ---------------- | 
|  | Symbol added: _ZNKSt12bad_any_cast4whatEv | 
|  | Symbol added: _ZNSt12bad_any_castD0Ev | 
|  | Symbol added: _ZTISt12bad_any_cast | 
|  | Symbol added: _ZTSSt12bad_any_cast | 
|  | Symbol added: _ZTVSt12bad_any_cast | 
|  |  | 
|  | * r295398 - Remove basic_string::insert and basic_string::replace template methods | 
|  | which should be inline. | 
|  |  | 
|  | These functions should never have had visible definitions in the dylib but | 
|  | since they were previously not specified with 'inline' they accidentally | 
|  | got emitted. This change is non-ABI breaking because every "linkage unit" | 
|  | must contain its own definition. | 
|  |  | 
|  | x86_64-linux-gnu | 
|  | ---------------- | 
|  | SYMBOL REMOVED: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertIPKcEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorISA_EE5valueENS_11__wrap_iterIPcEEE4typeENSB_IS8_EESA_SA_ | 
|  | SYMBOL REMOVED: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7replaceIPKcEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_ | 
|  | SYMBOL REMOVED: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6insertIPKwEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr38__libcpp_string_gets_noexcept_iteratorISA_EE5valueENS_11__wrap_iterIPwEEE4typeENSB_IS8_EESA_SA_ | 
|  | SYMBOL REMOVED: _ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7replaceIPKwEENS_9enable_ifIXsr19__is_input_iteratorIT_EE5valueERS5_E4typeENS_11__wrap_iterIS8_EESF_SA_SA_ |