[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 22:25:12 PST 2015
Enable -fvisibility-ms-compat flag might have the same effect as
-fvisibility-inlines-hidden, as my test.
I think our project should change the way how constructor/destructor
use, as gcc/clang/msvc not always the same.:-)
On 12/03/2015 11:00 AM, Weitian Leung wrote:
>> 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
>> 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