1class HasFriends { 2 friend void friend_1(HasFriends); 3 friend void friend_2(HasFriends); 4 void private_thing(); 5}; 6 7struct HasNontrivialDefaultConstructor { 8 HasNontrivialDefaultConstructor() = default; 9 HasNontrivialDefaultConstructor(int n = 0); 10 11 // Ensure this class is not POD but is still trivially-copyable. 12 // This is necessary to exercise the second static_assert below, 13 // because GCC's spec for __has_trivial_constructor is absurd. 14 int m; 15private: 16 int n; 17}; 18 19static_assert(!__is_trivial(HasNontrivialDefaultConstructor), ""); 20static_assert(!__has_trivial_constructor(HasNontrivialDefaultConstructor), ""); 21 22void *operator new[](__SIZE_TYPE__); 23 24extern int mergeUsedFlag; 25inline int getMergeUsedFlag() { return mergeUsedFlag; } 26