Merge -r 127928:132243 from trunk
[official-gcc.git] / libstdc++-v3 / doc / html / 17_intro / BADNAMES
bloba904704ee39f90d4876dcaa0e7d5ec0e2d279d95
2 This is the list of names "reserved to the implementation" that
3 have been claimed by certain compilers and system headers of interest,
4 and should not be used in the library.  It will grow, of course.
5 We generally are interested in names that are not all-caps, except
6 for those like "_T"
8 For Solarix:
9 _B
17 _E1
19 _E24
21 Irix adds:
25 MS adds:
28 BSD 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_*
43 For GCC:
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.]
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:
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
135 SGI 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