2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / lto / pr45679-2_0.C
blobb88ad92f539e1ad9bae81d19c15596f741d0a5f6
1 // { dg-lto-do link }
2 // { dg-lto-options {{-O3 -Wno-multichar -Wno-return-type}} } 
3 // { dg-extra-ld-options "-flto -flto-partition=1to1 -r -nostdlib" }
5     extern "C" {
6   typedef struct {
7     union   {
8    }
9   __value;
10   }
11   __mbstate_t;
12   struct _IO_marker {
13   };
14   extern "C" {
15     }
16   };
17     namespace pov_base {
18   class IOBase {
19   };
20   }
21     namespace pov {
22   typedef double VECTOR[3];
23   enum {
24    X = 0,  Y = 1,  Z = 2,  T = 3 };
25   inline void Assign_Vector(VECTOR d, VECTOR s) {
26   }
27   typedef float BBOX_VAL;
28   typedef BBOX_VAL BBOX_VECT[3];
29   typedef struct Bounding_Box_Struct BBOX;
30   struct Bounding_Box_Struct {
31   };
32   inline void Make_BBox_from_min_max(BBOX& BBox, BBOX_VECT mins, BBOX_VECT maxs) {
33   }
34   typedef long long COUNTER;
35   inline double DBL_Counter(COUNTER x) {
36   }
37   struct Image_Struct {
38     union   {
39    }
40   data;
41   };
42   struct Density_file_Data_Struct {
43   union {
44  }
45   Vals;
46   };
47   struct Pigment_Struct {
48   union {
49  struct {
50  }
51  Brick;
52  struct {
53  }
54  Fractal;
55  struct {
56  }
57  Function;
58  }
59   Vals;
60   };
61   typedef enum shelltype {
62      PRE_SCENE_SHL = 0,    PRE_FRAME_SHL,    POST_FRAME_SHL,    POST_SCENE_SHL,    USER_ABORT_SHL,    FATAL_SHL,    MAX_SHL }
63   SHELLRET;
64   }
65     typedef void * POVMSContext;
66     struct POVMSData {
67   };
68      int POVMS_OpenContext (POVMSContext *contextrefptr);
69     namespace pov_base {
70   enum {
71    kFalseErr = 1,  kOutOfSyncErr = 2,  kNotNowErr = kOutOfSyncErr,  kQueueFullErr = 3 };
72   }
73     namespace pov_base {
74   class OTextStream {
75   };
76   }
77     enum {
78    kPOVMsgClass_RenderControl = 'Ctrl',  kPOVMsgClass_RenderOutput = 'Outp',  kPOVMsgClass_IniOptions = 'IniO',  kPOVMsgClass_Miscellaneous = 'Misc' };
79     namespace pov_base {
80   class PlatformBase {
81   };
82   }
83     class POVMS_Container {
84     template<class T> void Read(T& stream)   {
85     }
86   };
87     class POVMS_MessageReceiver {
88    private:   class HandlerOO   {
89     };
90    protected:   template<class T> class MemberHandlerOO : public HandlerOO   {
91     };
92     class FunctionHandlerOO : public HandlerOO   {
93     };
94     template<class T> void InstallFront(unsigned int hclass, unsigned int hid, T *cptr, typename MemberHandlerOO<T>::MemberHandlerPtr hptr)   {
95   }
96   };
97     namespace pov_base {
98   class TextStreamBuffer {
99   };
100   }
101     namespace pov_frontend {
102   using namespace pov_base;
103   class MessageOutput : public POVMS_MessageReceiver {
104   };
105   class DefaultPlatformBase : public PlatformBase {
106   };
107   }
108     using namespace pov;
109     namespace pov {
110   int pre_init_flag = 0;
111   }
112     POVMSContext POVMS_Render_Context = __null;
113     int main(int argc, char **argv) {
114   }
115     void povray_init() {
116      if (pre_init_flag == 0)    {
117         int err;
118         err = POVMS_OpenContext(&POVMS_Render_Context);
119      }
120   }