Skip to content

Commit 6c66527

Browse files
committed
[libcxx] Use local names for the operator new impl symbols
This way the impl symbols don't even make it into the symbol table which is important for symbolization since we want the symbolizer to always pick up the public symbol (which has the same address as the impl one).
1 parent 31e9d39 commit 6c66527

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

libcxx/src/include/overridable_function.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ _LIBCPP_END_NAMESPACE_STD
9090

9191
# define _LIBCPP_CAN_DETECT_OVERRIDDEN_FUNCTION 1
9292
# define _LIBCPP_OVERRIDABLE_FUNCTION(symbol, type, name, arglist) \
93-
static type symbol##_impl__ arglist __asm__(_LIBCPP_TOSTRING(symbol##_impl__)); \
94-
[[gnu::weak, gnu::alias(_LIBCPP_TOSTRING(symbol##_impl__))]] type name arglist; \
93+
static type symbol##_impl__ arglist __asm__(".L" _LIBCPP_TOSTRING(symbol)); \
94+
[[gnu::weak, gnu::alias(".L" _LIBCPP_TOSTRING(symbol))]] type name arglist; \
9595
_LIBCPP_BEGIN_NAMESPACE_STD \
9696
template <> \
9797
inline bool __is_function_overridden<static_cast<type(*) arglist>(name)>() { \

0 commit comments

Comments
 (0)