1 # test for stl beautifier, do op_regex_test < mangled-name.txt 2 # line go by couple mangled name then expected name after run, line 3 # starting by # and blank line are ignored. The test must output nothing if 4 # successfull 5 6 # before removing tests think it take time to write them. This is intended 7 # to be a coverage test of all pattern in stl.pat. 8 9 # g++ 2.95 stl mangled name 10 11 basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > 12 string 13 14 prefix_basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > 15 prefix_basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0>> 16 17 vector<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> >, allocator<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > > > 18 vector<string> 19 20 map<int, image_name, less<int>, allocator<image_name> > 21 map<int, image_name> 22 23 map<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> >, image_name, less<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > >, allocator<image_name> > 24 map<string, image_name> 25 26 multimap<int, long, less<int>, allocator<long> > 27 multimap<int, long> 28 29 prefix_multimap<int, long, less<int>, allocator<long> > 30 prefix_multimap<int, long, less<int>, allocator<long>> 31 32 map<int, long, compare, allocator<long> > 33 map<int, long, compare> 34 35 bitset<33, unsigned long> 36 bitset<33> 37 38 istream_iterator<char, @PTRDIFF_T_TYPE@> 39 istream_iterator<char> 40 41 ostream_iterator<char, @PTRDIFF_T_TYPE@> 42 ostream_iterator<char> 43 44 # shared between all supported gcc version 45 deque<int, allocator<int>, 0> 46 deque<int> 47 48 std::deque<int, std::allocator<int>, 0> 49 deque<int> 50 51 prefix_deque<int, allocator<int>, 0> 52 prefix_deque<int, allocator<int>, 0> 53 54 list<int, allocator<int> > 55 list<int> 56 57 list<op_bfd_symbol, allocator<op_bfd_symbol> > 58 list<op_bfd_symbol> 59 60 _List_iterator<int, int const &, int const *> 61 list<int>::const_iterator 62 63 _List_iterator<int, int &, int *> 64 list<int>::iterator 65 66 prefix_list<int, allocator<int> > 67 prefix_list<int, allocator<int>> 68 69 std::list<int, std::allocator<int> > 70 list<int> 71 72 queue<int, deque<int, allocator<int>, 0> > 73 queue<int> 74 75 prefix_queue<int, deque<int, allocator<int>, 0> > 76 prefix_queue<int, deque<int>> 77 78 std::queue<int, std::deque<int, allocator<int>, 0> > 79 queue<int> 80 81 # get ride of _Rb_tree typedef, these are also mapped by map/set but we can't 82 # distinguish a set<pair<int, int>>::iterator and a map<int, int>::iterator 83 # as they decay to an identical typedef so we don't try to be clever here. 84 _Rb_tree_iterator<T, T const &, T const *> 85 _Rb_tree<T>::const_iterator 86 87 _Rb_tree_iterator<T, T &, T *> 88 _Rb_tree<T>::iterator 89 90 # this run through special case pattern 91 _Rb_tree_iterator<pair<string const, image_name>, pair<string const, image_name> const &, pair<string const, image_name> const *> 92 _Rb_tree<pair<string const, image_name>>::const_iterator 93 94 _Rb_tree_iterator<pair<string const, image_name>, pair<string const, image_name> &, pair<string const, image_name> *> 95 _Rb_tree<pair<string const, image_name>>::iterator 96 97 _Rb_tree<int, int, _Identity<int>, less<int>, allocator<int> > 98 _Rb_tree<int, int, int> 99 100 _Rb_tree<string, pair<string const, int const>, _Select1st<pair<string const, int const>>, less<string>, allocator<int const>> 101 _Rb_tree<string, pair<string const, int const>, string const> 102 103 _Select1st<pair<int const, long> > 104 int const 105 106 _Select1st<pair<int const, long const> > 107 int const 108 109 _Select1st<pair<string const, split_sample_filename const>> 110 string const 111 112 _Identity<int> 113 int 114 115 # this test fail since pair<> is not recognized as a type 116 # _Select1st<pair<pair<symbol_entry const *, unsigned long long> const, sample_entry>> 117 # pair<symbol_entry const *, unsigned long long> const 118 119 # 2.95 map/multimap 120 _Rb_tree<int, pair<int const, long>, _Select1st<pair<int const, long> >, less<int>, allocator<long> > 121 _Rb_tree<int, pair<int const, long>, int const> 122 # 3.2 map/multimap 123 _Rb_tree<int, pair<int const, long>, _Select1st<pair<int const, long> >, less<int>, allocator<pair<int const, long> > > 124 _Rb_tree<int, pair<int const, long>, int const> 125 126 _List_base<string, allocator<string>> 127 _List_base<string> 128 129 # strictly speaking 3rd parameters is less<ContainerType::value_type> 130 priority_queue<int, vector<int, allocator<int> >, less<int> > 131 priority_queue<int> 132 133 prefix_priority_queue<int, vector<int, allocator<int> >, less<int> > 134 prefix_priority_queue<int, vector<int>, less<int>> 135 136 std::priority_queue<int, std::vector<int, std::allocator<int> >, std::less<int> > 137 priority_queue<int> 138 139 vector<int, allocator<int> > 140 vector<int> 141 142 vector<bool, allocator<bool> > 143 vector<bool> 144 145 vector<block1::block2, allocator<block1::block2> > 146 vector<block1::block2> 147 148 stack<int, deque<int, allocator<int>, 0> > 149 stack<int> 150 151 prefix_stack<int, deque<int, allocator<int>, 0> > 152 prefix_stack<int, deque<int>> 153 154 std::stack<int, std::deque<int, std::allocator<int>, 0> > 155 stack<int> 156 157 # test complex typename, we don't support more than one level of nesting 158 vector<list<int, allocator<int> >, allocator<list<int, allocator<int> > > > 159 vector<list<int>> 160 161 std::vector<std::list<int, std::allocator<int> >, std::allocator<list<int, std::allocator<int> > > > 162 vector<list<int>> 163 164 set<int, less<int>, allocator<int> > 165 set<int> 166 167 set<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> >, less<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > >, allocator<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > > > 168 set<string> 169 170 set<int, less_by_file_loc, allocator<int> > 171 set<int, less_by_file_loc> 172 173 prefix_set<int, less<int>, allocator<int> > 174 prefix_set<int, less<int>, allocator<int>> 175 176 prefix_set<int, less<int>, allocator<int> > 177 prefix_set<int, less<int>, allocator<int>> 178 179 multiset<int, less<int>, allocator<int> > 180 multiset<int> 181 182 # test than pointer and reference to pointer are handled 183 vector<int *, allocator<int *> > 184 vector<int *> 185 186 vector<unsigned int *, allocator<unsigned int *> > 187 vector<unsigned int *> 188 189 # algorithm, will work for 3.2 too. 190 int * find<int *, int>(int *, int *, int const &, random_access_iterator_tag) 191 int * find(int *, int *, int const &, random_access_iterator_tag) 192 char const * find_if<char const *, compare>(char const *, char const *, compare, random_access_iterator_tag) 193 char const * find_if(char const *, char const *, compare, random_access_iterator_tag) 194 195 # gcc 3.2 196 std::basic_string<char, std::char_traits<char>, std::allocator<char> > 197 string 198 199 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > 200 wstring 201 202 # __normal_iterator are treated a part 203 __gnu_cxx::__normal_iterator<char const*, string> 204 string::const_iterator 205 __gnu_cxx::__normal_iterator<char*, string> 206 string::iterator 207 __gnu_cxx::__normal_iterator<wchar_t*, wstring> 208 wstring::iterator 209 __gnu_cxx::__normal_iterator<wchar_t const*, wstring> 210 wstring::const_iterator 211 std::reverse_iterator<__gnu_cxx::__normal_iterator<char*, string>> 212 reverse_iterator<string::iterator> 213 214 __gnu_cxx::__normal_iterator<int const*, vector<int>> 215 vector<int>::const_iterator 216 __gnu_cxx::__normal_iterator<int*, vector<int>> 217 vector<int>::iterator 218 std::reverse_iterator<__gnu_cxx::__normal_iterator<int const*, vector<int>> 219 reverse_iterator<vector<int>::const_iterator 220 221 std::map<int, long, std::less<int>, std::allocator<std::pair<int const, long> > > 222 map<int, long> 223 224 std::multimap<int, long, std::less<int>, std::allocator<std::pair<int const, long> > > 225 multimap<int, long> 226 227 std::map<int, long, compare, std::allocator<std::pair<int const, long> > > 228 map<int, long, compare> 229 230 # parameter is size_t on x86 it's an unsigned 231 bitset<(@SIZE_T_TYPE@)33> 232 bitset<33> 233 234 # 3, 4, 5th params are ptrdiff_t it's an int on x86 235 std::iterator<std::input_iterator_tag, int, @PTRDIFF_T_TYPE@, @PTRDIFF_T_TYPE@*, @PTRDIFF_T_TYPE@&> 236 iterator<input_iterator_tag, int> 237 238 std::iterator<std::output_iterator_tag, int, @PTRDIFF_T_TYPE@, @PTRDIFF_T_TYPE@*, @PTRDIFF_T_TYPE@&> 239 iterator<output_iterator_tag, int> 240 241 std::iterator<std::forward_iterator_tag, int, @PTRDIFF_T_TYPE@, @PTRDIFF_T_TYPE@*, @PTRDIFF_T_TYPE@&> 242 iterator<forward_iterator_tag, int> 243 244 std::iterator<std::bidirectional_iterator_tag, int, @PTRDIFF_T_TYPE@, @PTRDIFF_T_TYPE@*, @PTRDIFF_T_TYPE@&> 245 iterator<bidirectional_iterator_tag, int> 246 247 std::iterator<std::random_iterator_tag, int, @PTRDIFF_T_TYPE@, @PTRDIFF_T_TYPE@*, @PTRDIFF_T_TYPE@&> 248 iterator<random_iterator_tag, int> 249 250 # 4th parms is ptrdiff_t 251 std::istream_iterator<long, char, std::char_traits<char>, @PTRDIFF_T_TYPE@> 252 istream_iterator<long> 253 254 std::ostream_iterator<long, char, std::char_traits<char>, @PTRDIFF_T_TYPE@> 255 ostream_iterator<long> 256 257 # simple enough, it's just <iosfwd> 258 std::basic_ios<int, std::char_traits<int> > 259 basic_ios<int> 260 261 std::basic_streambuf<int, std::char_traits<int> > 262 basic_streambuf<int> 263 264 std::basic_istream<int, std::char_traits<int> > 265 basic_istream<int> 266 267 std::basic_ostream<int, std::char_traits<int> > 268 basic_ostream<int> 269 270 std::basic_iostream<int, std::char_traits<int> > 271 basic_iostream<int> 272 273 std::basic_filebuf<int, std::char_traits<int> > 274 basic_filebuf<int> 275 276 std::basic_ifstream<int, std::char_traits<int> > 277 basic_ifstream<int> 278 279 std::basic_ofstream<int, std::char_traits<int> > 280 basic_ofstream<int> 281 282 std::basic_fstream<int, std::char_traits<int> > 283 basic_fstream<int> 284 285 std::istreambuf_iterator<long, std::char_traits<long> > 286 istreambuf_iterator<long> 287 288 std::ostreambuf_iterator<long, std::char_traits<long> > 289 ostreambuf_iterator<long> 290 291 std::basic_stringbuf<long, std::char_traits<long>, std::allocator<long> > 292 basic_stringbuf<long> 293 294 std::basic_istringstream<long, std::char_traits<long>, std::allocator<long> > 295 basic_istringstream<long> 296 297 std::basic_ostringstream<long, std::char_traits<long>, std::allocator<long> > 298 basic_ostringstream<long> 299 300 std::basic_stringstream<long, std::char_traits<long>, std::allocator<long> > 301 basic_stringstream<long> 302 303 # all the above intantiated with char and wchar_t fallback to standardised 304 # typedef except istreambuf_iterator and ostreambuf_iterator 305 306 std::basic_ios<char, std::char_traits<char> > 307 ios 308 std::basic_ios<wchar_t, std::char_traits<wchar_t> > 309 wios 310 311 std::basic_streambuf<char, std::char_traits<char> > 312 streambuf 313 std::basic_streambuf<wchar_t, std::char_traits<wchar_t> > 314 wstreambuf 315 316 std::basic_istream<char, std::char_traits<char> > 317 istream 318 std::basic_istream<wchar_t, std::char_traits<wchar_t> > 319 wistream 320 321 std::basic_ostream<char, std::char_traits<char> > 322 ostream 323 std::basic_ostream<wchar_t, std::char_traits<wchar_t> > 324 wostream 325 326 std::basic_iostream<char, std::char_traits<char> > 327 iostream 328 std::basic_iostream<wchar_t, std::char_traits<wchar_t> > 329 wiostream 330 331 std::basic_filebuf<char, std::char_traits<char> > 332 filebuf 333 std::basic_filebuf<wchar_t, std::char_traits<wchar_t> > 334 wfilebuf 335 336 std::basic_ifstream<char, std::char_traits<char> > 337 ifstream 338 std::basic_ifstream<wchar_t, std::char_traits<wchar_t> > 339 wifstream 340 341 std::basic_ofstream<char, std::char_traits<char> > 342 ofstream 343 std::basic_ofstream<wchar_t, std::char_traits<wchar_t> > 344 wofstream 345 346 std::basic_fstream<char, std::char_traits<char> > 347 fstream 348 std::basic_fstream<wchar_t, std::char_traits<wchar_t> > 349 wfstream 350 351 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> > 352 stringbuf 353 std::basic_stringbuf<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > 354 wstringbuf 355 356 std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> > 357 istringstream 358 std::basic_istringstream<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > 359 wistringstream 360 361 std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> > 362 ostringstream 363 std::basic_ostringstream<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > 364 wostringstream 365 366 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > 367 stringstream 368 std::basic_stringstream<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > 369 wstringstream 370 371 # these two are also in iosfw, namely 372 # typedef fpos<char_traits<char>::state_type> streampos; 373 # typedef fpos<char_traits<wchar_t>::state_type> wstreampos; 374 # but twice decay to fpos<__mbstate>, we choosed to translate to streampos 375 std::fpos<__mbstate_t> 376 streampos 377 378 # locale 379 std::num_put<char, std::ostreambuf_iterator<char> > 380 num_put<char> 381 std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t> > 382 num_put<wchar_t> 383 std::num_get<char, std::istreambuf_iterator<char> > 384 num_get<char> 385 std::num_get<wchar_t, std::istreambuf_iterator<wchar_t> > 386 num_get<wchar_t> 387 388 std::time_put<char, std::ostreambuf_iterator<char> > 389 time_put<char> 390 std::time_put<wchar_t, std::ostreambuf_iterator<wchar_t> > 391 time_put<wchar_t> 392 std::time_get<char, std::istreambuf_iterator<char> > 393 time_get<char> 394 std::time_get<wchar_t, std::istreambuf_iterator<wchar_t> > 395 time_get<wchar_t> 396 397 std::money_put<char, std::ostreambuf_iterator<char> > 398 money_put<char> 399 std::money_put<wchar_t, std::ostreambuf_iterator<wchar_t> > 400 money_put<wchar_t> 401 std::money_get<char, std::istreambuf_iterator<char> > 402 money_get<char> 403 std::money_get<wchar_t, std::istreambuf_iterator<wchar_t> > 404 money_get<wchar_t> 405 406 std::moneypunct<char, (bool)0> 407 moneypunct<char> 408 std::moneypunct<wchar_t, (bool)0> 409 moneypunct<wchar_t> 410 std::moneypunct_byname<char, (bool)0> 411 moneypunct_byname<char> 412 std::moneypunct_byname<wchar_t, (bool)0> 413 moneypunct_byname<wchar_t> 414 415 # algorithm 416 vector<string>::iterator find<vector<string>::iterator, string>(vector<string>::iterator, vector<string>::iterator, string const&, random_access_iterator_tag) 417 vector<string>::iterator find(vector<string>::iterator, vector<string>::iterator, string const&, random_access_iterator_tag) 418 419 string::iterator find<string::iterator, int>(string::iterator, string::iterator, int const&, random_access_iterator_tag) 420 string::iterator find(string::iterator, string::iterator, int const&, random_access_iterator_tag) 421 422 vector<int>::iterator find<vector<int>::iterator, int>(vector<int>::iterator, vector<int>::iterator, int const&, random_access_iterator_tag) 423 vector<int>::iterator find(vector<int>::iterator, vector<int>::iterator, int const&, random_access_iterator_tag) 424 425 char const * find<char const *, int>(char const *, char const *, int const &, random_access_iterator_tag) 426 char const * find(char const *, char const *, int const &, random_access_iterator_tag) 427 428 string::const_iterator find<string::const_iterator, int>(string::const_iterator, string::const_iterator, int const&, random_access_iterator_tag) 429 string::const_iterator find(string::const_iterator, string::const_iterator, int const&, random_access_iterator_tag) 430 431 string::const_iterator find_if<string::const_iterator, compare>(string::const_iterator, string::const_iterator, compare, random_access_iterator_tag) 432 string::const_iterator find_if(string::const_iterator, string::const_iterator, compare, random_access_iterator_tag) 433 434 vector<int>::iterator find_if<vector<int>::iterator, compare>(vector<int>::iterator, vector<int>::iterator, compare, random_access_iterator_tag) 435 vector<int>::iterator find_if(vector<int>::iterator, vector<int>::iterator, compare, random_access_iterator_tag) 436 437 ostream & operator<<<char, string_char_traits<char>, __default_alloc_template<true, 0>>(ostream &, string const &) 438 ostream & operator<<(ostream &, string const &) 439 440 istream & operator>><char, string_char_traits<char>, __default_alloc_template<true, 0>>(istream &, string &) 441 istream & operator>>(istream &, string &) 442 443 istream & getline<char, string_char_traits<char>, __default_alloc_template<true, 0>>(istream &, string &) 444 istream & getline(istream &, string &) 445 446 ostream& operator<< <char, char_traits<char>, allocator<char>>(ostream&, string const&) 447 ostream & operator<<(ostream &, string const &) 448 449 istream& operator>> <char, char_traits<char>, allocator<char>>(istream&, string&) 450 istream & operator>>(istream &, string &) 451 452 std::basic_ostream<char, std::char_traits<char> >::operator<<(long) 453 ostream::operator<<(long) 454