HomePhabricator

[WebAssembly] WebAssembly doesn't support "protected" visibility

Authored by sunfishcode on Jun 9 2020, 5:34 PM.

Description

[WebAssembly] WebAssembly doesn't support "protected" visibility

Implement the hasProtectedVisibility() hook to indicate that, like
Darwin, WebAssembly doesn't support "protected" visibility.

On ELF, "protected" visibility is intended to be an optimization, however
in practice it often [isn't], and ELF documentation generally ranges from
[not mentioning it at all] to [strongly discouraging its use].

[isn't]: https://www.airs.com/blog/archives/307
[not mentioning it at all]: https://gcc.gnu.org/wiki/Visibility
[strongly discouraging its use]: https://www.akkadia.org/drepper/dsohowto.pdf

While here, also mention the new Reactor support in the release notes.

Details

Event Timeline

dschuff added a subscriber: sbc100.Jun 12 2020, 9:24 PM
dschuff added inline comments.
/clang/lib/Basic/Targets/WebAssembly.h
139

@sbc100 is this necessary for emscripten?

sbc100 added inline comments.Jun 12 2020, 10:50 PM
/clang/lib/Basic/Targets/WebAssembly.h
139

Probably not... but we should run some experiments to find out. I suggest we enable the warning and see if shows up in our test suite. If it doesn't ( which I suspect i won't) then we should probably just remove this line.