2 // { dg-do compile { target { lto && c++11 } } }
3 // { dg-options "-fcompare-debug -fno-printf-return-value -flto -fno-use-linker-plugin -O3" }
4 // { dg-additional-options "-Wno-return-type" }
7 typedef __SIZE_TYPE__ size_t;
8 inline namespace __cxx11 { }
9 template<typename...> using __void_t = void;
11 class initializer_list {
12 typedef size_t size_type;
13 typedef const _E* iterator;
20 template<typename _Tp> struct __is_char { enum { __value = 1 }; };
23 template<bool, typename> struct __enable_if { };
24 template<typename _Tp> struct __enable_if<true, _Tp> { typedef _Tp __type; };
28 template<typename _Iterator, typename = __void_t<>> struct __iterator_traits { };
29 template<typename _Iterator> struct iterator_traits : public __iterator_traits<_Iterator> { };
30 template<typename _Tp> struct iterator_traits<_Tp*> { typedef _Tp& reference; };
33 using std::iterator_traits;
34 template<typename _Iterator, typename _Container> class __normal_iterator {
35 typedef iterator_traits<_Iterator> __traits_type;
37 typedef typename __traits_type::reference reference;
38 reference operator*() const noexcept { }
40 template<typename _IteratorL, typename _IteratorR, typename _Container>
41 inline bool operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept { return true; }
44 template<typename _CharT> struct char_traits;
45 template<typename> class allocator;
46 template<typename _Alloc> struct allocator_traits { };
47 template<typename _Tp> struct allocator_traits<allocator<_Tp>> {
48 using const_pointer = const _Tp*;
49 template<typename _Up> using rebind_alloc = allocator<_Up>;
53 template<typename _Alloc> struct __alloc_traits : std::allocator_traits<_Alloc> {
54 typedef std::allocator_traits<_Alloc> _Base_type;
55 template<typename _Tp> struct rebind {
56 typedef typename _Base_type::template rebind_alloc<_Tp> other;
62 template<typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_CharT> > class basic_string;
63 typedef basic_string<char> string;
65 template<typename _CharT> inline typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type
66 operator==(const basic_string<_CharT>& __lhs, const basic_string<_CharT>& __rhs) noexcept { }
67 template<typename _Tp, typename _Alloc> struct _Vector_base {
68 typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template rebind<_Tp>::other _Tp_alloc_type;
70 template<typename _Tp, typename _Alloc = std::allocator<_Tp> > class vector {
71 typedef _Vector_base<_Tp, _Alloc> _Base;
72 typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
73 typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits;
75 typedef typename _Alloc_traits::const_pointer const_pointer;
76 typedef __gnu_cxx::__normal_iterator<const_pointer, vector> const_iterator;
77 const_iterator end() const noexcept { }
82 std::vector<VwViewPlane*> mViewPlaneList;
83 VwViewPlane* FindViewPlane (const std::string& name);
84 const VwViewPlane* FindViewPlane (const std::string& name) const;
86 class VwAssimilatorStickyBox;
87 class VwViewer_2D final {
88 VwAssimilatorStickyBox* mp_stickyAssimilator;
90 void undrawStickyBox();
93 const std::string& GetName() const { }
95 struct VwAssimilator_2D {
96 virtual int DrawNext() = 0;
98 class VwAssimilator_2D_Geometry : public VwAssimilator_2D { };
99 class VwAssimilatorStickyBox final : public VwAssimilator_2D_Geometry { };
100 VwViewPlane* VwViewer::FindViewPlane (const std::string& name) {
101 VwViewPlane* p_result = __null;
102 std::vector<VwViewPlane*>::const_iterator it;
103 while (it != mViewPlaneList.end()) {
104 if ((*it) -> GetName() == name ) break;
108 const VwViewPlane* VwViewer::FindViewPlane (const std::string& name) const {
109 VwViewPlane* p_result = __null;
110 std::vector<VwViewPlane*>::const_iterator it;
111 while (it != mViewPlaneList.end()) {
112 if ((*it) -> GetName() == name ) break;
116 void VwViewer_2D::drawStickyBox() {
117 mp_stickyAssimilator->DrawNext();
119 void VwViewer_2D::undrawStickyBox() {
120 mp_stickyAssimilator->DrawNext();