You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Blake Bender (Jira)" <ji...@apache.org> on 2020/03/12 14:26:00 UTC

[jira] [Resolved] (GEODE-5079) Investigate why dynamic_cast fails when visibility is set to 'hidden' by default in Clang

     [ https://issues.apache.org/jira/browse/GEODE-5079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Blake Bender resolved GEODE-5079.
---------------------------------
    Resolution: Won't Fix

Resolving won't fix - this doesn't meet the bar for investigation, because it's not an issue that's actually affecting the product at this time.  We've encountered this bug in specific circumstances, and fixed it at that time against a more specific ticket describing the instance in question at that time.  We'll continue to do so in the future, rather than spend developer time chasing a general solution to the problem.

> Investigate why dynamic_cast fails when visibility is set to 'hidden' by default in Clang
> -----------------------------------------------------------------------------------------
>
>                 Key: GEODE-5079
>                 URL: https://issues.apache.org/jira/browse/GEODE-5079
>             Project: Geode
>          Issue Type: Bug
>          Components: native client
>            Reporter: Ryan McMahon
>            Priority: Major
>
> We should investigate why symbols aren't fully exported when specifying 'CXX_VISIBILITY_PRESET hidden' and aliasing with the 'using' keyword i.e.
> ```
> using CacheableBytes = CacheableArray<int8_t, GeodeTypeIds::CacheableBytes>
> ```
> The immediate fix was to set visibility to 'default' for Clang only (https://issues.apache.org/jira/browse/GEODE-5067), but it would be good to better understand 'hidden' visibility causes problems. 
> The issue can be reproduced by reverting Clang back to 'default' visibility and running the testThinClientBigValue test.
> We identified that if we do not alias with 'using' and explicitly define the class e.g. CacheableBytes and decorate that class with APACHE_GEODE_EXPORT, then this seems to resolve the issue when using 'hidden' by default on Clang.  However, it seems cumbersome to explicitly define all these classes just to solve this particular issue.
> Some potentially relevant stackoverflow posts include:
> https://stackoverflow.com/questions/19496643/using-clang-fvisibility-hidden-and-typeinfo-and-type-erasure
> [https://stackoverflow.com/questions/5116333/dynamic-cast-failed-when-hiding-symbol]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)