1 2This is the list of names "reserved to the implementation" that 3have been claimed by certain compilers and system headers of interest, 4and should not be used in the library. It will grow, of course. 5We generally are interested in names that are not all-caps, except 6for those like "_T" 7 8For Solarix: 9_B 10_C 11_L 12_N 13_P 14_S 15_U 16_X 17_E1 18.. 19_E24 20 21Irix adds: 22_A 23_G 24 25MS adds: 26_T 27 28BSD adds: 29__used 30__unused 31__inline 32_Complex 33__istype 34__maskrune 35__tolower 36__toupper 37__wchar_t 38__wint_t 39_res 40_res_ext 41__tg_* 42 43For GCC: 44 45 [Note that this list is out of date. It applies to the old 46 name-mangling; in G++ 3.0 and higher a different name-mangling is 47 used. In addition, many of the bugs relating to G++ interpreting 48 these names as operators have been fixed.] 49 50 The full set of __* identifiers (combined from gcc/cp/lex.c and 51 gcc/cplus-dem.c) that are either old or new, but are definitely 52 recognized by the demangler, is: 53 54__aa 55__aad 56__ad 57__addr 58__adv 59__aer 60__als 61__alshift 62__amd 63__ami 64__aml 65__amu 66__aor 67__apl 68__array 69__ars 70__arshift 71__as 72__bit_and 73__bit_ior 74__bit_not 75__bit_xor 76__call 77__cl 78__cm 79__cn 80__co 81__component 82__compound 83__cond 84__convert 85__delete 86__dl 87__dv 88__eq 89__er 90__ge 91__gt 92__indirect 93__le 94__ls 95__lt 96__max 97__md 98__method_call 99__mi 100__min 101__minus 102__ml 103__mm 104__mn 105__mult 106__mx 107__ne 108__negate 109__new 110__nop 111__nt 112__nw 113__oo 114__op 115__or 116__pl 117__plus 118__postdecrement 119__postincrement 120__pp 121__pt 122__rf 123__rm 124__rs 125__sz 126__trunc_div 127__trunc_mod 128__truth_andif 129__truth_not 130__truth_orif 131__vc 132__vd 133__vn 134 135SGI badnames: 136__builtin_alloca 137__builtin_fsqrt 138__builtin_sqrt 139__builtin_fabs 140__builtin_dabs 141__builtin_cast_f2i 142__builtin_cast_i2f 143__builtin_cast_d2ll 144__builtin_cast_ll2d 145__builtin_copy_dhi2i 146__builtin_copy_i2dhi 147__builtin_copy_dlo2i 148__builtin_copy_i2dlo 149__add_and_fetch 150__sub_and_fetch 151__or_and_fetch 152__xor_and_fetch 153__and_and_fetch 154__nand_and_fetch 155__mpy_and_fetch 156__min_and_fetch 157__max_and_fetch 158__fetch_and_add 159__fetch_and_sub 160__fetch_and_or 161__fetch_and_xor 162__fetch_and_and 163__fetch_and_nand 164__fetch_and_mpy 165__fetch_and_min 166__fetch_and_max 167__lock_test_and_set 168__lock_release 169__lock_acquire 170__compare_and_swap 171__synchronize 172__high_multiply 173__unix 174__sgi 175__linux__ 176__i386__ 177__i486__ 178__cplusplus 179__embedded_cplusplus 180// long double conversion members mangled as __opr 181// http://gcc.gnu.org/ml/libstdc++/1999-q4/msg00060.html 182_opr 183