2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / lto / pr84805_2.C
bloba1c1a6a890154e057298dfbbec9408ff957062bb
1 template < typename a, a b > struct c { static constexpr a d = b; };
2 typedef c< bool, false > e;
3 struct f : e {};
4 struct t : f {};
5 template < typename > struct g : e {};
6 namespace __gnu_cxx {
7 enum _Lock_policy { h, i, j } const k = j;
9 namespace std {
10 using __gnu_cxx::_Lock_policy;
11 using __gnu_cxx::k;
12 template < _Lock_policy = k > class _Sp_counted_base;
13 template < typename, _Lock_policy = k > class __shared_ptr;
14 template < _Lock_policy > class __shared_count { _Sp_counted_base<> *_M_pi; };
15 template < typename a, _Lock_policy, bool = g< a >::d, bool = t::d >
16 class __shared_ptr_access {};
17 template < typename a, _Lock_policy l >
18 class __shared_ptr : __shared_ptr_access< a, l > {
19   using m = a;
20   m *_M_ptr;
21   __shared_count< l > _M_refcount;
23 template < typename a > class n : __shared_ptr< a > {};
24 } namespace rtl {
25 class OString {
26   struct o *pData;
28 } using rtl::OString;
29 namespace rtl {
30 class OUString {
31   struct p *pData;
33 } using rtl::OUString;
34 struct q {
35   unsigned short m_value;
37 namespace tools {
38 template < typename r > class SvRef { r *pObj; };
39 } class SvRefBase {
40   unsigned nRefCount : 31;
41   unsigned bNoDelete : 1;
43 protected:
44   virtual ~SvRefBase();
46 class SotObject : virtual SvRefBase {
47   unsigned short nOwnerLockCount;
48   bool bInClose;
50 class ErrCode {
51   unsigned m_value;
53 class SvStream;
54 class BaseStorage;
55 class SotStorage : virtual SotObject {
56   BaseStorage *m_pOwnStg;
57   SvStream *m_pStorStm;
58   ErrCode m_nError;
59   OUString m_aName;
60   bool m_bIsRoot;
61   bool m_bDelStm;
62   OString m_aKey;
63   int m_nVersion;
65 class ScDocument;
66 class ScAddress {
67   int nRow;
68   short nCol;
69   short nTab;
71 enum XclBiff {};
72 enum XclOutput {};
73 class SfxMedium;
74 class ScEditEngineDefaulter;
75 class ScHeaderEditEngine;
76 class EditEngine;
77 class ScExtDocOptions;
78 class XclFontPropSetHelper;
79 class XclChPropSetHelper;
80 class XclTracer;
81 struct RootData;
82 struct XclRootData {
83   XclBiff meBiff;
84   XclOutput meOutput;
85   SfxMedium &mrMedium;
86   tools::SvRef< SotStorage > mxRootStrg;
87   ScDocument &mrDoc;
88   OUString maDocUrl;
89   OUString maBasePath;
90   OUString maUserName;
91   OUString maDefPassword;
92   unsigned short meTextEnc;
93   q meSysLang;
94   q meDocLang;
95   q meUILang;
96   short mnDefApiScript;
97   ScAddress maScMaxPos;
98   ScAddress maXclMaxPos;
99   ScAddress maMaxPos;
100   std::n< ScEditEngineDefaulter > mxEditEngine;
101   std::n< ScHeaderEditEngine > mxHFEditEngine;
102   std::n< EditEngine > mxDrawEditEng;
103   std::n< XclFontPropSetHelper > mxFontPropSetHlp;
104   std::n< XclChPropSetHelper > mxChPropSetHlp;
105   std::n< ScExtDocOptions > mxExtDocOpt;
106   std::n< XclTracer > mxTracer;
107   std::n< RootData > mxRD;
108   virtual ~XclRootData();
110 class XclRoot {
111   virtual ~XclRoot();
112   XclRootData &mrData;
114 enum BiffTyp {};
115 class SharedFormulaBuffer;
116 class ExtNameBuff;
117 class ExtSheetBuffer;
118 class ExcelToSc;
119 class XclImpColRowSettings;
120 class XclImpRoot;
121 struct RootData {
122   BiffTyp eDateiTyp;
123   ExtSheetBuffer *pExtSheetBuff;
124   SharedFormulaBuffer *pShrfmlaBuff;
125   ExtNameBuff *pExtNameBuff;
126   ExcelToSc *pFmlaConverter;
127   XclImpColRowSettings *pColRowBuff;
128   XclImpRoot *s;
130 XclRootData::~XclRootData() {}
131 XclRoot::~XclRoot() {}