2 // { dg-lto-options {{-O2 -fPIC -shared -flto}} }
4 template < typename _Tp, _Tp __v > struct integral_constant {
5 static constexpr _Tp value = __v;
7 typedef integral_constant< bool, false > false_type;
8 struct __is_void_helper : false_type {};
9 struct is_void : __is_void_helper {};
10 template < typename > struct is_array : false_type {};
12 enum _Lock_policy { _S_single, _S_mutex, _S_atomic };
13 const _Lock_policy __default_lock_policy = _S_atomic;
15 using __gnu_cxx::_Lock_policy;
16 using __gnu_cxx::__default_lock_policy;
17 template < _Lock_policy = __default_lock_policy > class _Sp_counted_base;
18 template < typename, _Lock_policy = __default_lock_policy > class __shared_ptr;
19 template < _Lock_policy > class __shared_count { _Sp_counted_base<> *_M_pi; };
20 template < typename _Tp, _Lock_policy, bool = is_array< _Tp >::value,
21 bool = is_void::value >
22 class __shared_ptr_access {};
23 template < typename _Tp, _Lock_policy _Lp >
24 class __shared_ptr : __shared_ptr_access< _Tp, _Lp > {
25 using element_type = _Tp;
27 __shared_count< _Lp > _M_refcount;
29 template < typename _Tp > class shared_ptr : __shared_ptr< _Tp > {};
30 } typedef struct _rtl_String rtl_String;
31 typedef struct _rtl_uString rtl_uString;
41 } using rtl::OUString;
43 template < typename T > class SvRef {
47 unsigned nRefCount : 31;
48 unsigned bNoDelete : 1;
59 unsigned short m_value;
61 typedef strong_int LanguageType;
62 class SotObject : virtual SvRefBase {
63 unsigned short nOwnerLockCount;
67 class SotStorage : virtual SotObject {
68 BaseStorage *m_pOwnStg;
86 class SharedFormulaBuffer;
90 class XclImpColRowSettings;
93 ExtSheetBuffer *pExtSheetBuff;
94 SharedFormulaBuffer *pShrfmlaBuff;
95 ExtNameBuff *pExtNameBuff;
96 ExcelToSc *pFmlaConverter;
97 XclImpColRowSettings *pColRowBuff;
99 class ScEditEngineDefaulter;
100 class ScHeaderEditEngine;
102 class ScExtDocOptions;
103 class XclFontPropSetHelper;
104 class XclChPropSetHelper;
106 struct XclRootData { // { dg-lto-warning "8: type 'struct XclRootData' violates the C\\+\\+ One Definition Rule" }
107 typedef std::shared_ptr< ScEditEngineDefaulter > ScEEDefaulterRef;
108 typedef std::shared_ptr< ScHeaderEditEngine > ScHeaderEERef;
109 typedef std::shared_ptr< EditEngine > EditEngineRef;
110 typedef std::shared_ptr< XclFontPropSetHelper > XclFontPropSetHlpRef;
111 typedef std::shared_ptr< XclChPropSetHelper > XclChPropSetHlpRef;
112 typedef std::shared_ptr< ScExtDocOptions > ScExtDocOptRef;
113 typedef std::shared_ptr< XclTracer > XclTracerRef;
114 typedef std::shared_ptr< RootData > RootDataRef;
118 tools::SvRef< SotStorage > mxRootStrg;
123 OUString maDefPassword;
124 unsigned short meTextEnc;
125 LanguageType meSysLang;
126 LanguageType meDocLang;
127 LanguageType meUILang;
128 short mnDefApiScript;
129 ScAddress maScMaxPos;
130 ScAddress maXclMaxPos;
132 ScEEDefaulterRef mxEditEngine;
133 ScHeaderEERef mxHFEditEngine;
134 EditEngineRef mxDrawEditEng;
135 XclFontPropSetHlpRef mxFontPropSetHlp;
136 XclChPropSetHlpRef mxChPropSetHlp;
137 ScExtDocOptRef mxExtDocOpt;
138 XclTracerRef mxTracer;
140 virtual ~XclRootData();
142 class XclRoot { // { dg-lto-warning "7: type 'struct XclRoot' violates the C\\+\\+ One Definition Rule" }
147 class XclImpRoot : XclRoot {}; // { dg-lto-warning "7: type 'struct XclImpRoot' violates the C\\+\\+ One Definition Rule" }
148 class XclImpColRowSettings : XclImpRoot {};
149 void lcl_ExportExcelBiff() {
150 XclRootData aExpData();