diff options
-rw-r--r-- | codemaker/source/cppumaker/cpputype.cxx | 8 | ||||
-rw-r--r-- | include/comphelper/embeddedobjectcontainer.hxx | 2 | ||||
-rw-r--r-- | include/sal/types.h | 8 | ||||
-rw-r--r-- | include/svl/undo.hxx | 2 |
4 files changed, 14 insertions, 6 deletions
diff --git a/codemaker/source/cppumaker/cpputype.cxx b/codemaker/source/cppumaker/cpputype.cxx index 3e2772957f90..64ac18b809b8 100644 --- a/codemaker/source/cppumaker/cpputype.cxx +++ b/codemaker/source/cppumaker/cpputype.cxx @@ -1072,7 +1072,7 @@ InterfaceType::InterfaceType( } void InterfaceType::dumpDeclaration(FileStream & out) { - out << "\nclass SAL_NO_VTABLE " << id_; + out << "\nclass SAL_NO_VTABLE SAL_DLLPUBLIC_RTTI " << id_; for (std::vector< unoidl::AnnotatedReference >::const_iterator i( entity_->getDirectMandatoryBases().begin()); i != entity_->getDirectMandatoryBases().end(); ++i) @@ -1812,7 +1812,7 @@ private: void PlainStructType::dumpDeclaration(FileStream & out) { out << "\n#ifdef SAL_W32\n# pragma pack(push, 8)\n#endif\n\n" << indent() - << "struct " << id_; + << "struct SAL_DLLPUBLIC_RTTI " << id_; OUString base(entity_->getDirectBase()); if (!base.isEmpty()) { out << ": public " << codemaker::cpp::scopedCppName(u2b(base)); @@ -2198,7 +2198,7 @@ private: void PolyStructType::dumpDeclaration(FileStream & out) { out << "\n#ifdef SAL_W32\n# pragma pack(push, 8)\n#endif\n\n" << indent(); dumpTemplateHead(out); - out << "struct " << id_ << " {\n"; + out << "struct SAL_DLLPUBLIC_RTTI " << id_ << " {\n"; inc(); out << indent() << "inline " << id_ << "();\n"; if (!entity_->getMembers().empty()) { @@ -3127,7 +3127,7 @@ void EnumType::addComprehensiveGetCppuTypeIncludes( void EnumType::dumpDeclaration(FileStream& o) { - o << "\nenum " << id_ << "\n{\n"; + o << "\nenum SAL_DLLPUBLIC_RTTI " << id_ << "\n{\n"; inc(); for (std::vector< unoidl::EnumTypeEntity::Member >::const_iterator i( diff --git a/include/comphelper/embeddedobjectcontainer.hxx b/include/comphelper/embeddedobjectcontainer.hxx index 2c8e25f5e8a5..842a3e7f804c 100644 --- a/include/comphelper/embeddedobjectcontainer.hxx +++ b/include/comphelper/embeddedobjectcontainer.hxx @@ -36,7 +36,7 @@ namespace comphelper class EmbeddedObjectContainer; /** Helper interface to give access to some common object which replace the SfxObjectShell */ - class SAL_NO_VTABLE IEmbeddedHelper + class SAL_NO_VTABLE SAL_DLLPUBLIC_RTTI IEmbeddedHelper { public: virtual EmbeddedObjectContainer& getEmbeddedObjectContainer() const = 0; diff --git a/include/sal/types.h b/include/sal/types.h index e77407b8355b..3d75f67ff920 100644 --- a/include/sal/types.h +++ b/include/sal/types.h @@ -249,6 +249,7 @@ typedef void * sal_Handle; #endif // defined(_MSC_VER) # define SAL_DLLPRIVATE # define SAL_DLLPUBLIC_TEMPLATE +# define SAL_DLLPUBLIC_RTTI # define SAL_CALL __cdecl # define SAL_CALL_ELLIPSE __cdecl #elif defined SAL_UNX @@ -259,12 +260,18 @@ typedef void * sal_Handle; # define SAL_DLLPUBLIC_IMPORT __attribute__ ((visibility("hidden"))) # define SAL_DLLPRIVATE __attribute__ ((visibility("hidden"))) # define SAL_DLLPUBLIC_TEMPLATE __attribute__ ((visibility("hidden"))) +# define SAL_DLLPUBLIC_RTTI # else # define SAL_DLLPUBLIC_EXPORT __attribute__ ((visibility("default"))) # define SAL_JNI_EXPORT __attribute__ ((visibility("default"))) # define SAL_DLLPUBLIC_IMPORT __attribute__ ((visibility("default"))) # define SAL_DLLPRIVATE __attribute__ ((visibility("hidden"))) # define SAL_DLLPUBLIC_TEMPLATE __attribute__ ((visibility("default"))) +# if defined __clang__ +# define SAL_DLLPUBLIC_RTTI __attribute__ ((visibility("default"))) +# else +# define SAL_DLLPUBLIC_RTTI +# endif # endif # else # define SAL_DLLPUBLIC_EXPORT @@ -272,6 +279,7 @@ typedef void * sal_Handle; # define SAL_DLLPUBLIC_IMPORT # define SAL_DLLPRIVATE # define SAL_DLLPUBLIC_TEMPLATE +# define SAL_DLLPUBLIC_RTTI # endif # define SAL_CALL # define SAL_CALL_ELLIPSE diff --git a/include/svl/undo.hxx b/include/svl/undo.hxx index 41fe58841163..92a9907db0f2 100644 --- a/include/svl/undo.hxx +++ b/include/svl/undo.hxx @@ -188,7 +188,7 @@ protected: namespace svl { - class SAL_NO_VTABLE IUndoManager + class SAL_NO_VTABLE SAL_DLLPUBLIC_RTTI IUndoManager { public: static bool const CurrentLevel = true; |