diff options
| author | Eric Fiselier <eric@efcs.ca> | 2019-06-12 02:03:31 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2019-06-12 02:03:31 +0000 |
| commit | 14d4869209cc8ff9a53aaa5a59d6409fbc1c5f5d (patch) | |
| tree | 74a756f118387cf47600a6de1fe3fa6fd615d353 /libcxx/include/functional | |
| parent | fbfee60c32636a5dec6acceca401a78a1b024025 (diff) | |
| download | bcm5719-llvm-14d4869209cc8ff9a53aaa5a59d6409fbc1c5f5d.tar.gz bcm5719-llvm-14d4869209cc8ff9a53aaa5a59d6409fbc1c5f5d.zip | |
Apply [[nodebug]] to typedefs throughout the STL.
When applied to a typedef or alias template, the [[nodebug]] attribute
makes the typedef transparent to the debugger, so instead of seeing
`std::__function::__alloc_func<remove_reference<void(&)()>::type,
allocator<remove_reference<void(&)()>, void()>::_Target` you see
`void(&)()` as the type of the variable in your debugger.
Removing all this SFINAE noise from debug info has huge binary size
wins, in addition to improving the readability.
For now this change is on by default. Users can override it by
specifying -D_LIBCPP_NODEBUG_TYPE=
llvm-svn: 363117
Diffstat (limited to 'libcxx/include/functional')
| -rw-r--r-- | libcxx/include/functional | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libcxx/include/functional b/libcxx/include/functional index e2eac0e7648..c0a89f7b0b9 100644 --- a/libcxx/include/functional +++ b/libcxx/include/functional @@ -1488,8 +1488,8 @@ class __alloc_func<_Fp, _Ap, _Rp(_ArgTypes...)> __compressed_pair<_Fp, _Ap> __f_; public: - typedef _Fp _Target; - typedef _Ap _Alloc; + typedef _LIBCPP_NODEBUG_TYPE _Fp _Target; + typedef _LIBCPP_NODEBUG_TYPE _Ap _Alloc; _LIBCPP_INLINE_VISIBILITY const _Target& __target() const { return __f_.first(); } @@ -1566,7 +1566,7 @@ class __default_alloc_func<_Fp, _Rp(_ArgTypes...)> { _Fp __f_; public: - typedef _Fp _Target; + typedef _LIBCPP_NODEBUG_TYPE _Fp _Target; _LIBCPP_INLINE_VISIBILITY const _Target& __target() const { return __f_; } |

