| #ifndef STRESS1_COMMON_H |
| #define STRESS1_COMMON_H |
| |
| inline char function00(char x) { return x + x; } |
| inline short function00(short x) { return x + x; } |
| inline int function00(int x) { return x + x; } |
| |
| namespace N01 { struct S00; } |
| |
| namespace N00 { |
| struct S00 { |
| char c; |
| short s; |
| int i; |
| |
| S00(char x) : c(x) {} |
| S00(short x) : s(x) {} |
| S00(int x) : i(x) {} |
| |
| char method00(char x) { return x + x; } |
| short method00(short x) { return x + x; } |
| int method00(int x) { return x + x; } |
| |
| operator char() { return c; } |
| operator short() { return s; } |
| operator int() { return i; } |
| }; |
| struct S01 {}; |
| struct S02 {}; |
| template <typename T> struct S03 { |
| struct S00 : N00::S00 {}; |
| }; |
| template <int I, template <typename> class U> struct S03<U<int>[I]> |
| : U<int>::S00 { |
| S03(); |
| S03(int); |
| S03(short); |
| S03(char); |
| template <typename V = decltype(I)> S03(V); |
| }; |
| template <> struct S03<S03<int>[42]> : S00 {}; |
| } |
| |
| namespace N01 { |
| struct S00 : N00::S00 { |
| using N00::S00::S00; |
| }; |
| struct S01 {}; |
| struct S02 {}; |
| } |
| |
| using namespace N00; |
| |
| template <int I, template <typename> class U> template <typename V> S03<U<int>[I]>::S03(V x) : S00(x) {} |
| template <int I, template <typename> class U> S03<U<int>[I]>::S03() : S00(I) {} |
| template <int I, template <typename> class U> S03<U<int>[I]>::S03(char x) : S00(x) {} |
| template <int I, template <typename> class U> S03<U<int>[I]>::S03(short x) : S00(x) {} |
| template <int I, template <typename> class U> S03<U<int>[I]>::S03(int x) : S00(x) {} |
| |
| #pragma weak pragma_weak00 |
| #pragma weak pragma_weak01 |
| #pragma weak pragma_weak02 |
| #pragma weak pragma_weak03 |
| #pragma weak pragma_weak04 |
| #pragma weak pragma_weak05 |
| |
| extern "C" int pragma_weak00(); |
| extern "C" int pragma_weak01(); |
| extern "C" int pragma_weak02(); |
| extern "C" int pragma_weak03; |
| extern "C" int pragma_weak04; |
| extern "C" int pragma_weak05; |
| |
| #endif |