xref: /openbsd-src/gnu/gcc/libstdc++-v3/docs/html/17_intro/BADNAMES (revision 404b540a9034ac75a6199ad1a32d1bbc7a0d4210)
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