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

Blake Bender closed GEODE-5079.
-------------------------------

> 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)

Reply via email to