[cfe-dev] strange behavior when compile with -fvisibility-inlines-hidden flag
Weitian Leung via cfe-dev
cfe-dev at lists.llvm.org
Wed Dec 2 19:00:14 PST 2015
> https://gcc.gnu.org/wiki/Visibility says "However,
> -fvisibility-inlines-hidden can be used with no source alterations,
> unless you need to override it for inlines where address identity is
> important either for the function itself *or any function local static
> data.*" (Clearly this is somewhat bogus: if the addresses of function
> local statics are different, their contents may also be different.)
> The behavior of this switch is not quite the same as marking the
> methods as hidden directly, because it *does not affect static
> variables local to the function* or cause the compiler to deduce that
> the function is defined in only one shared object.
Thanks for your detailed explanation.
One more strange thing, remove the -fvisibility-inlines-hidden flag not
works with some codes of our project.
I can't reproduce for a simple demo for now. Another flag we use is
-fvisibility-ms-compat, before adding it for gcc, all works fine.
Now both gcc and clang are broken. (Since the counter code enables in
debug build only, it's not so important for now)
I will remove -fvisibility-ms-compat rebuild with clang and test again.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev