summaryrefslogtreecommitdiff
path: root/include/rtl
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-01-26 14:57:05 +0100
committerStephan Bergmann <sbergman@redhat.com>2015-01-26 15:17:28 +0100
commit598d8194b0ea1a64e0ebba28a86c128bafa57c7c (patch)
treec81c2a85795c6218327d2c40dc2a52850a7d22ef /include/rtl
parent64235bc9896911b4abfca47089ac1e71056afea7 (diff)
Visible function type RTTI for Clang -fsanitize=function
...by adding some further SAL_DLLPUBLIC_RTTI type annotations (cf. b4f6b26b5a1a78fecfa95ec2eb7ac8b80495d8aa "SAL_DLLPUBLIC_RTTI for proper RTTI visibility for LLVM") and by making sure relevant function types do not use incomplete types in their parameter and return types (which would make the RTTI hidden). Change-Id: Id7aadcbc0704b9759968ae36266fc9ce11a2e340
Diffstat (limited to 'include/rtl')
-rw-r--r--include/rtl/alloc.h2
-rw-r--r--include/rtl/string.hxx2
-rw-r--r--include/rtl/unload.h2
-rw-r--r--include/rtl/ustring.h2
-rw-r--r--include/rtl/ustring.hxx2
5 files changed, 5 insertions, 5 deletions
diff --git a/include/rtl/alloc.h b/include/rtl/alloc.h
index 6a804928669c..835db155ac44 100644
--- a/include/rtl/alloc.h
+++ b/include/rtl/alloc.h
@@ -131,7 +131,7 @@ SAL_DLLPUBLIC void SAL_CALL rtl_freeAlignedMemory (
/** Opaque rtl_arena_type.
*/
-typedef struct rtl_arena_st rtl_arena_type;
+typedef struct SAL_DLLPUBLIC_RTTI rtl_arena_st rtl_arena_type;
#define RTL_ARENA_NAME_LENGTH 31
diff --git a/include/rtl/string.hxx b/include/rtl/string.hxx
index b3a89fc52c3f..94dad50bc3b4 100644
--- a/include/rtl/string.hxx
+++ b/include/rtl/string.hxx
@@ -85,7 +85,7 @@ namespace rtl
use this class.
*/
-class SAL_WARN_UNUSED OString
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI OString
{
public:
/// @cond INTERNAL
diff --git a/include/rtl/unload.h b/include/rtl/unload.h
index f29a7543de96..53a5df18f515 100644
--- a/include/rtl/unload.h
+++ b/include/rtl/unload.h
@@ -39,7 +39,7 @@ extern "C"
@deprecated Do not use.
*/
-typedef struct _rtl_ModuleCount
+typedef struct SAL_DLLPUBLIC_RTTI _rtl_ModuleCount
{
void ( SAL_CALL * acquire ) ( struct _rtl_ModuleCount * that );
void ( SAL_CALL * release ) ( struct _rtl_ModuleCount * that );
diff --git a/include/rtl/ustring.h b/include/rtl/ustring.h
index 80c6bccf7f3d..8dd70cb4911f 100644
--- a/include/rtl/ustring.h
+++ b/include/rtl/ustring.h
@@ -1173,7 +1173,7 @@ SAL_DLLPUBLIC double SAL_CALL rtl_ustr_toDouble(
/** @cond INTERNAL */
/** The implementation of a Unicode string.
*/
-typedef struct _rtl_uString
+typedef struct SAL_DLLPUBLIC_RTTI _rtl_uString
{
oslInterlockedCount refCount; /* opaque */
sal_Int32 length;
diff --git a/include/rtl/ustring.hxx b/include/rtl/ustring.hxx
index 418892670596..78a6b60f1c17 100644
--- a/include/rtl/ustring.hxx
+++ b/include/rtl/ustring.hxx
@@ -111,7 +111,7 @@ template<char C> struct SAL_WARN_UNUSED OUStringLiteral1 {
less people should have understanding problems when they use this class.
*/
-class SAL_WARN_UNUSED OUString
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI OUString
{
public:
/// @cond INTERNAL