Bug ID: 41490
           Summary: _LIBCPP_INLINE_VISIBILITY doesn't always hide the
                    symbols (Ex. __emplace_back_slow_path)
           Product: libc++
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: All Bugs

The `inline` keyword placed on the declarations on `__push_back_slow_path` and
`__emplace_back_slow_path` is needed to prevent them from appearing in's dynamic symbol table (for instantiations used inside the library). 

However, they are marked also given hidden visibility, which should prevent
this in the first place.

Adding `inline` is problematic for two reasons:

1) It's not a real fix.
2) It can needlessly increase the binary size of users (because clang actually
uses `inline` as an inlining hint).

The second problem cause chrome to have a 1% binary size increase.

We should investigate why Clang is not hiding this symbol. We should also
seriously consider moving to explicit export lists.

@Louis, any thoughts?

You are receiving this mail because:
You are on the CC list for the bug.
llvm-bugs mailing list

Reply via email to