source: src/prelude/prelude.cf @ d67cdb7

aaron-thesisarm-ehcleanup-dtorsdeferred_resndemanglerjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerresolv-newwith_gc
Last change on this file since d67cdb7 was d67cdb7, checked in by Peter A. Buhr <pabuhr@…>, 4 years ago

merge

  • Property mode set to 100644
File size: 52.7 KB
Line 
1//
2// Copyright (C) Glen Ditchfield 1994, 1999
3//
4// prelude.cf -- Standard Cforall Preample for C99
5//
6// Author           : Glen Ditchfield
7// Created On       : Sat Nov 29 07:23:41 2014
8// Last Modified By : Peter A. Buhr
9// Last Modified On : Mon Sep 25 18:12:15 2017
10// Update Count     : 95
11//
12
13# 2 "prelude.cf"  // needed for error messages from this file
14
15// Section numbers from: http://plg.uwaterloo.ca/~cforall/refrat.pdf
16
17// ------------------------------------------------------------
18//
19// Section 6.7.11 Trait Declarations
20// Note: the sized trait is used in declarations later in this
21// file, so it must be out of order.
22//
23// ------------------------------------------------------------
24
25trait sized(dtype T) {};
26
27// ------------------------------------------------------------
28//
29// Section 4.1 Primary Expressions
30//
31// ------------------------------------------------------------
32
33//We have none
34
35// ------------------------------------------------------------
36//
37// Section 4.2 Postfix Operators
38//
39// ------------------------------------------------------------
40
41_Bool                   ?++( _Bool & ),                         ?++( volatile _Bool & );
42_Bool                   ?--( _Bool & ),                         ?--( volatile _Bool & );
43unsigned char           ?++( unsigned char & ),                 ?++( volatile unsigned char & );
44signed short            ?++( signed short & ),                  ?++( volatile signed short & );
45signed short            ?--( signed short & ),                  ?--( volatile signed short & );
46unsigned short          ?++( unsigned short & ),                ?++( volatile unsigned short & );
47unsigned short          ?--( unsigned short & ),                ?--( volatile unsigned short & );
48signed int              ?++( signed int & ),                    ?++( volatile signed int & );
49signed int              ?--( signed int & ),                    ?--( volatile signed int & );
50unsigned int            ?++( unsigned int & ),                  ?++( volatile unsigned int & );
51unsigned int            ?--( unsigned int & ),                  ?--( volatile unsigned int & );
52signed long int         ?++( signed long int & ),               ?++( volatile signed long int & );
53signed long int         ?--( signed long int & ),               ?--( volatile signed long int & );
54unsigned long int       ?++( unsigned long int & ),             ?++( volatile unsigned long int & );
55unsigned long int       ?--( unsigned long int & ),             ?--( volatile unsigned long int & );
56signed long long int    ?++( signed long long int & ),          ?++( volatile signed long long int & );
57signed long long int    ?--( signed long long int & ),          ?--( volatile signed long long int & );
58unsigned long long int  ?++( unsigned long long int & ),        ?++( volatile unsigned long long int & );
59unsigned long long int  ?--( unsigned long long int & ),        ?--( volatile unsigned long long int & );
60float                   ?++( float & ),                         ?++( volatile float & );
61float                   ?--( float & ),                         ?--( volatile float & );
62double                  ?++( double & ),                        ?++( volatile double & );
63double                  ?--( double & ),                        ?--( volatile double & );
64long double             ?++( long double & ),                   ?++( volatile long double & );
65long double             ?--( long double & ),                   ?--( volatile long double & );
66float _Complex          ?++( float _Complex & ),                ?++( volatile float _Complex & );
67float _Complex          ?--( float _Complex & ),                ?--( volatile float _Complex & );
68double _Complex         ?++( double _Complex & ),               ?++( volatile double _Complex & );
69double _Complex         ?--( double _Complex & ),               ?--( volatile double _Complex & );
70long double _Complex    ?++( long double _Complex & ),          ?++( volatile long double _Complex & );
71long double _Complex    ?--( long double _Complex & ),          ?--( volatile long double _Complex & );
72
73forall( dtype T | sized(T) ) T *                         ?++(                T *& );
74forall( dtype T | sized(T) ) const T *           ?++( const          T *& );
75forall( dtype T | sized(T) ) volatile T *                ?++(       volatile T *& );
76forall( dtype T | sized(T) ) const volatile T *  ?++( const volatile T *& );
77forall( dtype T | sized(T) ) T *                         ?--(                T *& );
78forall( dtype T | sized(T) ) const T *           ?--( const          T *& );
79forall( dtype T | sized(T) ) volatile T *                ?--(       volatile T *& );
80forall( dtype T | sized(T) ) const volatile T *  ?--( const volatile T *& );
81
82forall( dtype T | sized(T) ) T &                 ?[?](                T *,          ptrdiff_t );
83forall( dtype T | sized(T) ) const T &   ?[?]( const          T *,          ptrdiff_t );
84forall( dtype T | sized(T) ) volatile T &        ?[?](       volatile T *,          ptrdiff_t );
85forall( dtype T | sized(T) ) const volatile T & ?[?]( const volatile T *,           ptrdiff_t );
86forall( dtype T | sized(T) ) T &                 ?[?](          ptrdiff_t,                T * );
87forall( dtype T | sized(T) ) const T &   ?[?](          ptrdiff_t, const          T * );
88forall( dtype T | sized(T) ) volatile T &        ?[?](          ptrdiff_t,       volatile T * );
89forall( dtype T | sized(T) ) const volatile T & ?[?](           ptrdiff_t, const volatile T * );
90
91// ------------------------------------------------------------
92//
93// Section 4.3 Unary Operators
94//
95// ------------------------------------------------------------
96
97_Bool                   ++?( _Bool & ),                         --?( _Bool & );
98signed short    ++?( signed short & ),                  --?( signed short & );
99signed int              ++?( signed int & ),                    --?( signed int & );
100unsigned short          ++?( unsigned int & ),                  --?( unsigned int & );
101unsigned int            ++?( unsigned short & ),                --?( unsigned short & );
102signed long int         ++?( signed long int & ),               --?( signed long int & );
103unsigned long int       ++?( unsigned long int & ),             --?( unsigned long int & );
104signed long long int    ++?( signed long long int & ),          --?( signed long long int & );
105unsigned long long int  ++?( unsigned long long int & ),        --?( unsigned long long int & );
106float                   ++?( float & ),                         --?( float & );
107double                  ++?( double & ),                        --?( double & );
108long double             ++?( long double & ),                   --?( long double & );
109float _Complex          ++?( float _Complex & ),                --?( float _Complex & );
110double _Complex         ++?( double _Complex & ),               --?( double _Complex & );
111long double _Complex    ++?( long double _Complex & ),          --?( long double _Complex & );
112
113forall( dtype T | sized(T) ) T *                         ++?(                T *& );
114forall( dtype T | sized(T) ) const T *           ++?( const          T *& );
115forall( dtype T | sized(T) ) volatile T *                ++?(       volatile T *& );
116forall( dtype T | sized(T) ) const volatile T *  ++?( const volatile T *& );
117forall( dtype T | sized(T) ) T *                         --?(                T *& );
118forall( dtype T | sized(T) ) const T *           --?( const          T *& );
119forall( dtype T | sized(T) ) volatile T *                --?(       volatile T *& );
120forall( dtype T | sized(T) ) const volatile T *  --?( const volatile T *& );
121
122forall( dtype T | sized(T) ) T &                 *?(                 T * );
123forall( dtype T | sized(T) ) const T &           *?( const           T * );
124forall( dtype T | sized(T) ) volatile T &        *?(       volatile  T * );
125forall( dtype T | sized(T) ) const volatile T & *?( const volatile  T * );
126forall( ftype FT ) FT &          *?( FT * );
127
128_Bool                   +?( _Bool ),                    -?( _Bool ),                    ~?( _Bool );
129signed int              +?( signed int ),               -?( signed int ),               ~?( signed int );
130unsigned int            +?( unsigned int ),             -?( unsigned int ),             ~?( unsigned int );
131signed long int         +?( signed long int ),          -?( signed long int ),          ~?( signed long int );
132unsigned long int       +?( unsigned long int ),        -?( unsigned long int ),        ~?( unsigned long int );
133signed long long int    +?( signed long long int ),     -?( signed long long int ),     ~?( signed long long int );
134unsigned long long int  +?( unsigned long long int ),   -?( unsigned long long int ),   ~?( unsigned long long int );
135float                   +?( float ),                    -?( float );
136double                  +?( double ),                   -?( double );
137long double             +?( long double ),              -?( long double );
138float _Complex          +?( float _Complex ),           -?( float _Complex );
139double _Complex         +?( double _Complex ),          -?( double _Complex );
140long double _Complex    +?( long double _Complex ),     -?( long double _Complex );
141
142signed int      !?( signed int ),               !?( unsigned int ),
143                !?( long int ),                 !?( unsigned long int ),
144                !?( long long int ),            !?( unsigned long long int ),
145                !?( float ),                    !?( double ),                   !?( long double ),
146                !?( float _Complex ),           !?( double _Complex ),          !?( long double _Complex );
147
148forall ( dtype DT ) int !?(                DT * );
149forall ( dtype DT ) int !?( const          DT * );
150forall ( dtype DT ) int !?(       volatile DT * );
151forall ( dtype DT ) int !?( const volatile DT * );
152forall ( ftype FT ) int !?( FT * );
153
154// ------------------------------------------------------------
155//
156// Section 4.5 Multiplicative Operators
157//
158// ------------------------------------------------------------
159
160_Bool                   ?*?( _Bool, _Bool ),                                    ?/?( _Bool, _Bool ),                            ?%?( _Bool, _Bool );
161signed int              ?*?( signed int, signed int ),                          ?/?( signed int, signed int ),                  ?%?( signed int, signed int );
162unsigned int            ?*?( unsigned int, unsigned int ),                      ?/?( unsigned int, unsigned int ),              ?%?( unsigned int, unsigned int );
163signed long int         ?*?( signed long int, signed long int ),                ?/?( signed long int, signed long int ),        ?%?( signed long int, signed long int );
164unsigned long int       ?*?( unsigned long int, unsigned long int ),            ?/?( unsigned long int, unsigned long int ),    ?%?( unsigned long int, unsigned long int );
165signed long long int    ?*?( signed long long int, signed long long int ),      ?/?( signed long long int, signed long long int ), ?%?( signed long long int, signed long long int );
166unsigned long long int  ?*?( unsigned long long int, unsigned long long int ),  ?/?( unsigned long long int, unsigned long long int ), ?%?( unsigned long long int, unsigned long long int );
167float                   ?*?( float, float ),                                    ?/?( float, float );
168double                  ?*?( double, double ),                                  ?/?( double, double );
169long double             ?*?( long double, long double ),                        ?/?( long double, long double );
170// gcc does not support _Imaginary
171//float _Imaginary      ?*?( float _Imaginary, float _Imaginary),               ?/?( float _Imaginary, float _Imaginary );
172//double _Imaginary     ?*?( double _Imaginary, double _Imaginary),             ?/?( double _Imaginary, double _Imaginary );
173//long double _Imaginary        ?*?( long double _Imaginary, long double _Imaginary),   ?/?( long double _Imaginary, long double _Imaginary );
174float _Complex          ?*?( float _Complex, float _Complex ),                  ?/?( float _Complex, float _Complex );
175double _Complex         ?*?( double _Complex, double _Complex ),                ?/?( double _Complex, double _Complex );
176long double _Complex    ?*?( long double _Complex, long double _Complex ),      ?/?( long double _Complex, long double _Complex );
177
178// ------------------------------------------------------------
179//
180// Section 4.6 Additive Operators
181//
182// ------------------------------------------------------------
183
184_Bool                   ?+?( _Bool, _Bool ),                                    ?-?( _Bool, _Bool );
185signed int              ?+?( signed int, signed int ),                          ?-?( signed int, signed int );
186unsigned int            ?+?( unsigned int, unsigned int ),                      ?-?( unsigned int, unsigned int );
187signed long int         ?+?( signed long int, signed long int ),                ?-?( signed long int, signed long int );
188unsigned long int       ?+?( unsigned long int, unsigned long int ),            ?-?( unsigned long int, unsigned long int );
189signed long long int    ?+?( signed long long int, long long int  signed),      ?-?( signed long long int, signed long long int );
190unsigned long long int  ?+?( unsigned long long int, unsigned long long int ),  ?-?( unsigned long long int, unsigned long long int );
191float                   ?+?( float, float ),                                    ?-?( float, float );
192double                  ?+?( double, double ),                                  ?-?( double, double );
193long double             ?+?( long double, long double ),                        ?-?( long double, long double );
194float _Complex          ?+?( float _Complex, float _Complex ),                  ?-?( float _Complex, float _Complex );
195double _Complex         ?+?( double _Complex, double _Complex ),                ?-?( double _Complex, double _Complex );
196long double _Complex    ?+?( long double _Complex, long double _Complex ),      ?-?( long double _Complex, long double _Complex );
197
198forall( dtype T | sized(T) ) T *                        ?+?(                T *,          ptrdiff_t );
199forall( dtype T | sized(T) ) T *                        ?+?(          ptrdiff_t,                T * );
200forall( dtype T | sized(T) ) const T *          ?+?( const          T *,          ptrdiff_t );
201forall( dtype T | sized(T) ) const T *          ?+?(          ptrdiff_t, const          T * );
202forall( dtype T | sized(T) ) volatile T *               ?+?(       volatile T *,          ptrdiff_t );
203forall( dtype T | sized(T) ) volatile T *               ?+?(          ptrdiff_t,       volatile T * );
204forall( dtype T | sized(T) ) const volatile T * ?+?( const volatile T *,          ptrdiff_t );
205forall( dtype T | sized(T) ) const volatile T * ?+?(          ptrdiff_t, const volatile T * );
206forall( dtype T | sized(T) ) T *                        ?-?(                T *,          ptrdiff_t );
207forall( dtype T | sized(T) ) const T *          ?-?( const          T *,          ptrdiff_t );
208forall( dtype T | sized(T) ) volatile T *               ?-?(       volatile T *,          ptrdiff_t );
209forall( dtype T | sized(T) ) const volatile T * ?-?( const volatile T *,          ptrdiff_t );
210forall( dtype T | sized(T) ) ptrdiff_t          ?-?( const volatile T *, const volatile T * );
211
212// ------------------------------------------------------------
213//
214// Section 4.7 Bitwise Shift Operators
215//
216// ------------------------------------------------------------
217
218_Bool                   ?<<?( _Bool, _Bool ),                                   ?>>?( _Bool, _Bool );
219signed int              ?<<?( signed int, signed int ),                         ?>>?( signed int, signed int );
220unsigned int            ?<<?( unsigned int, unsigned int ),                     ?>>?( unsigned int, unsigned int );
221signed long int         ?<<?( signed long int, signed long int ),               ?>>?( signed long int, signed long int );
222unsigned long int       ?<<?( unsigned long int, unsigned long int ),           ?>>?( unsigned long int, unsigned long int );
223signed long long int    ?<<?( signed long long int, signed long long int ),     ?>>?( signed long long int, signed long long int );
224unsigned long long int  ?<<?( unsigned long long int, unsigned long long int ), ?>>?( unsigned long long int, unsigned long long int );
225
226// ------------------------------------------------------------
227//
228// Section 4.8 Relational Operators
229//
230// ------------------------------------------------------------
231
232signed int ?<?( _Bool, _Bool ),                                         ?<=?( _Bool, _Bool ),
233           ?>?( _Bool, _Bool ),                                         ?>=?( _Bool, _Bool );
234signed int ?<?( char, char ),                           ?<=?( char, char ),
235           ?>?( char, char ),                           ?>=?( char, char );
236signed int ?<?( signed char, signed char ),                             ?<=?( signed char, signed char ),
237           ?>?( signed char, signed char ),                             ?>=?( signed char, signed char );
238signed int ?<?( unsigned char, unsigned char ),                         ?<=?( unsigned char, unsigned char ),
239           ?>?( unsigned char, unsigned char ),                         ?>=?( unsigned char, unsigned char );
240signed int ?<?( signed short, signed short ),                           ?<=?( signed short, signed short ),
241           ?>?( signed short, signed short ),                           ?>=?( signed short, signed short );
242signed int ?<?( unsigned short, unsigned short ),                       ?<=?( unsigned short, unsigned short ),
243           ?>?( unsigned short, unsigned short ),                               ?>=?( unsigned short, unsigned short );
244signed int ?<?( signed int, signed int ),                               ?<=?( signed int, signed int ),
245           ?>?( signed int, signed int ),                               ?>=?( signed int, signed int );
246signed int ?<?( unsigned int, unsigned int ),                           ?<=?( unsigned int, unsigned int ),
247           ?>?( unsigned int, unsigned int ),                           ?>=?( unsigned int, unsigned int );
248signed int ?<?( signed long int, signed long int ),                     ?<=?( signed long int, signed long int ),
249           ?>?( signed long int, signed long int ),                     ?>=?( signed long int, signed long int );
250signed int ?<?( unsigned long int, unsigned long int ),                 ?<=?( unsigned long int, unsigned long int ),
251           ?>?( unsigned long int, unsigned long int ),                 ?>=?( unsigned long int, unsigned long int );
252signed int ?<?( signed long long int, signed long long int ),           ?<=?( signed long long int, signed long long int ),
253           ?>?( signed long long int, signed long long int ),           ?>=?( signed long long int, signed long long int );
254signed int ?<?( unsigned long long int, unsigned long long int ),       ?<=?( unsigned long long int, unsigned long long int ),
255           ?>?( unsigned long long int, unsigned long long int ),       ?>=?( unsigned long long int, unsigned long long int );
256signed int ?<?( float, float ),                                         ?<=?( float, float ),
257           ?>?( float, float ),                                         ?>=?( float, float );
258signed int ?<?( double, double ),                                       ?<=?( double, double ),
259           ?>?( double, double ),                                       ?>=?( double, double );
260signed int ?<?( long double, long double ),                             ?<=?( long double, long double ),
261           ?>?( long double, long double ),                             ?>=?( long double, long double );
262
263forall( dtype DT ) signed int ?<?(                 DT *,                DT * );
264forall( dtype DT ) signed int ?<?(  const          DT *, const          DT * );
265forall( dtype DT ) signed int ?<?(        volatile DT *,       volatile DT * );
266forall( dtype DT ) signed int ?<?(  const volatile DT *, const volatile DT * );
267
268forall( dtype DT ) signed int ?>?(                 DT *,                DT * );
269forall( dtype DT ) signed int ?>?(  const          DT *, const          DT * );
270forall( dtype DT ) signed int ?>?(        volatile DT *,       volatile DT * );
271forall( dtype DT ) signed int ?>?(  const volatile DT *, const volatile DT * );
272
273forall( dtype DT ) signed int ?<=?(                 DT *,                DT * );
274forall( dtype DT ) signed int ?<=?(  const          DT *, const          DT * );
275forall( dtype DT ) signed int ?<=?(        volatile DT *,       volatile DT * );
276forall( dtype DT ) signed int ?<=?( const volatile DT *, const volatile DT * );
277
278forall( dtype DT ) signed int ?>=?(                 DT *,                DT * );
279forall( dtype DT ) signed int ?>=?(  const          DT *, const          DT * );
280forall( dtype DT ) signed int ?>=?(        volatile DT *,       volatile DT * );
281forall( dtype DT ) signed int ?>=?( const volatile DT *, const volatile DT * );
282
283// ------------------------------------------------------------
284//
285// Section 4.9 Equality Operators
286//
287// ------------------------------------------------------------
288
289signed int ?==?( _Bool, _Bool ),                                                        ?!=?( _Bool, _Bool );
290signed int ?==?( char, char ),                                                          ?!=?( char, char );
291signed int ?==?( signed char, signed char ),                            ?!=?( signed char, signed char );
292signed int ?==?( unsigned char, unsigned char ),                        ?!=?( unsigned char, unsigned char );
293signed int ?==?( signed short, signed short ),                          ?!=?( signed short, signed short );
294signed int ?==?( unsigned short, unsigned short ),                      ?!=?( unsigned short, unsigned short );
295signed int ?==?( signed int, signed int ),                                      ?!=?( signed int, signed int );
296signed int ?==?( unsigned int, unsigned int ),                                  ?!=?( unsigned int, unsigned int );
297signed int ?==?( signed long int, signed long int ),                            ?!=?( signed long int, signed long int );
298signed int ?==?( unsigned long int, unsigned long int ),                        ?!=?( unsigned long int, unsigned long int );
299signed int ?==?( signed long long int, long long int  signed),          ?!=?( signed long long int, signed long long int );
300signed int ?==?( unsigned long long int, unsigned long long int ),      ?!=?( unsigned long long int, unsigned long long int );
301signed int ?==?( float, float ),                                                        ?!=?( float, float );
302signed int ?==?( double, double ),                                                      ?!=?( double, double );
303signed int ?==?( long double, long double ),                                    ?!=?( long double, long double );
304signed int ?==?( float _Complex, float _Complex ),                              ?!=?( float _Complex, float _Complex );
305signed int ?==?( double _Complex, double _Complex ),                            ?!=?( double _Complex, double _Complex );
306signed int ?==?( long double _Complex, long double _Complex ),          ?!=?( long double _Complex, long double _Complex );
307signed int ?==?( zero_t, zero_t ),                                                      ?!=?( zero_t, zero_t );
308signed int ?==?( one_t, one_t ),                                                        ?!=?( one_t, one_t );
309
310forall( dtype DT ) signed int ?==?(                DT *,                DT * );
311forall( dtype DT ) signed int ?==?( const          DT *, const          DT * );
312forall( dtype DT ) signed int ?==?(       volatile DT *,       volatile DT * );
313forall( dtype DT ) signed int ?==?( const volatile DT *, const volatile DT * );
314forall( ftype FT ) signed int ?==?( FT *, FT * );
315forall( dtype DT ) signed int ?!=?(                DT *,                DT * );
316forall( dtype DT ) signed int ?!=?( const          DT *, const          DT * );
317forall( dtype DT ) signed int ?!=?(       volatile DT *,       volatile DT * );
318forall( dtype DT ) signed int ?!=?( const volatile DT *, const volatile DT * );
319forall( ftype FT ) signed int ?!=?( FT *, FT * );
320
321// forall( dtype DT ) signed int ?==?( const volatile DT   *, const volatile void * );
322// forall( dtype DT ) signed int ?==?( const volatile void *, const volatile DT * );
323// forall( dtype DT ) signed int ?!=?( const volatile DT   *, const volatile void * );
324// forall( dtype DT ) signed int ?!=?( const volatile void *, const volatile DT * );
325
326// forall( dtype DT ) signed int ?==?( const volatile DT *, zero_t );
327// forall( dtype DT ) signed int ?==?( zero_t, const volatile DT * );
328// forall( ftype FT ) signed int ?==?( FT *, zero_t );
329// forall( ftype FT ) signed int ?==?( zero_t, FT * );
330// forall( dtype DT ) signed int ?!=?( const volatile DT *, zero_t );
331// forall( dtype DT ) signed int ?!=?( zero_t, const volatile DT * );
332// forall( ftype FT ) signed int ?!=?( FT *, zero_t );
333// forall( ftype FT ) signed int ?!=?( zero_t, FT * );
334
335// ------------------------------------------------------------
336//
337// Section 4.10 Bitwise AND Operators
338//
339// ------------------------------------------------------------
340
341_Bool                   ?&?( _Bool, _Bool );
342signed int              ?&?( signed int, signed int );
343unsigned int            ?&?( unsigned int, unsigned int );
344signed long int         ?&?( signed long int, signed long int );
345unsigned long int       ?&?( unsigned long int, unsigned long int );
346signed long long int    ?&?( signed long long int, signed long long int );
347unsigned long long int  ?&?( unsigned long long int, unsigned long long int );
348
349// ------------------------------------------------------------
350//
351// Section 4.11 Bitwise XOR Operators
352//
353// ------------------------------------------------------------
354
355_Bool                   ?^?( _Bool, _Bool );
356signed int              ?^?( signed int, signed int );
357unsigned int            ?^?( unsigned int, unsigned int );
358signed long int         ?^?( signed long int, signed long int );
359unsigned long int       ?^?( unsigned long int, unsigned long int );
360signed long long int    ?^?( signed long long int, signed long long int );
361unsigned long long int  ?^?( unsigned long long int, unsigned long long int );
362
363// ------------------------------------------------------------
364//
365// Section 4.12 Bitwise OR Operators
366//
367// ------------------------------------------------------------
368
369_Bool                   ?|?( _Bool, _Bool );
370signed int              ?|?( signed int, signed int );
371unsigned int            ?|?( unsigned int, unsigned int );
372signed long int         ?|?( signed long int, signed long int );
373unsigned long int       ?|?( unsigned long int, unsigned long int );
374signed long long int    ?|?( signed long long int, signed long long int );
375unsigned long long int  ?|?( unsigned long long int, unsigned long long int );
376
377// ------------------------------------------------------------
378//
379// Section 4.16 Assignment Operator
380//
381// ------------------------------------------------------------
382
383forall( ftype FT ) FT *                 ?=?( FT *&, FT * );
384forall( ftype FT ) FT *                 ?=?( FT * volatile &, FT * );
385
386forall( dtype DT ) DT *                 ?=?(                 DT *          &,                   DT * );
387forall( dtype DT ) DT *                 ?=?(                 DT * volatile &,                   DT * );
388forall( dtype DT ) const DT *           ?=?( const           DT *          &,                   DT * );
389forall( dtype DT ) const DT *           ?=?( const           DT * volatile &,                   DT * );
390forall( dtype DT ) const DT *           ?=?( const           DT *          &, const             DT * );
391forall( dtype DT ) const DT *           ?=?( const           DT * volatile &, const             DT * );
392forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          &,                   DT * );
393forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile &,                   DT * );
394forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          &,       volatile    DT * );
395forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile &,       volatile    DT * );
396
397forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &,                   DT * );
398forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &,                   DT * );
399forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &, const             DT * );
400forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &, const             DT * );
401forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &,       volatile    DT * );
402forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &,       volatile    DT * );
403forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &, const volatile    DT * );
404forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &, const volatile    DT * );
405
406forall( dtype DT ) DT *                 ?=?(                 DT *          &,                   void * );
407forall( dtype DT ) DT *                 ?=?(                 DT * volatile &,                   void * );
408forall( dtype DT ) const DT *           ?=?( const           DT *          &,                   void * );
409forall( dtype DT ) const DT *           ?=?( const           DT * volatile &,                   void * );
410forall( dtype DT ) const DT *           ?=?( const           DT *          &, const             void * );
411forall( dtype DT ) const DT *           ?=?( const           DT * volatile &, const             void * );
412forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          &,                   void * );
413forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile &,                   void * );
414forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          &,       volatile    void * );
415forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile &,       volatile    void * );
416
417forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &,                   void * );
418forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &,                   void * );
419forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &, const             void * );
420forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &, const             void * );
421forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &,       volatile    void * );
422forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &,       volatile    void * );
423forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &, const volatile    void * );
424forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &, const volatile    void * );
425
426forall( dtype DT ) void *                ?=?(                void *          &,                 DT * );
427forall( dtype DT ) void *                ?=?(                void * volatile &,                 DT * );
428forall( dtype DT ) const void *          ?=?( const          void *          &,                 DT * );
429forall( dtype DT ) const void *          ?=?( const          void * volatile &,                 DT * );
430forall( dtype DT ) const void *          ?=?( const          void *          &, const           DT * );
431forall( dtype DT ) const void *          ?=?( const          void * volatile &, const           DT * );
432forall( dtype DT ) volatile void *       ?=?(       volatile void *          &,                 DT * );
433forall( dtype DT ) volatile void *       ?=?(       volatile void * volatile &,                 DT * );
434forall( dtype DT ) volatile void *       ?=?(       volatile void *          &,       volatile  DT * );
435forall( dtype DT ) volatile void *       ?=?(       volatile void * volatile &,       volatile  DT * );
436forall( dtype DT ) const volatile void * ?=?( const volatile void *          &,                 DT * );
437forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &,                 DT * );
438forall( dtype DT ) const volatile void * ?=?( const volatile void *          &, const           DT * );
439forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &, const           DT * );
440forall( dtype DT ) const volatile void * ?=?( const volatile void *          &,       volatile  DT * );
441forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &,       volatile  DT * );
442forall( dtype DT ) const volatile void * ?=?( const volatile void *          &, const volatile  DT * );
443forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &, const volatile  DT * );
444
445void *                  ?=?(                void *          &,                void * );
446void *                  ?=?(                void * volatile &,                void * );
447const void *            ?=?( const          void *          &,                void * );
448const void *            ?=?( const          void * volatile &,                void * );
449const void *            ?=?( const          void *          &, const          void * );
450const void *            ?=?( const          void * volatile &, const          void * );
451volatile void *         ?=?(       volatile void *          &,                void * );
452volatile void *         ?=?(       volatile void * volatile &,                void * );
453volatile void *         ?=?(       volatile void *          &,       volatile void * );
454volatile void *         ?=?(       volatile void * volatile &,       volatile void * );
455const volatile void *   ?=?( const volatile void *          &,                void * );
456const volatile void *   ?=?( const volatile void * volatile &,                void * );
457const volatile void *   ?=?( const volatile void *          &, const          void * );
458const volatile void *   ?=?( const volatile void * volatile &, const          void * );
459const volatile void *   ?=?( const volatile void *          &,       volatile void * );
460const volatile void *   ?=?( const volatile void * volatile &,       volatile void * );
461const volatile void *   ?=?( const volatile void *          &, const volatile void * );
462const volatile void *   ?=?( const volatile void * volatile &, const volatile void * );
463
464//forall( dtype DT ) DT *                       ?=?(                DT *          &, zero_t );
465//forall( dtype DT ) DT *                       ?=?(                DT * volatile &, zero_t );
466forall( dtype DT ) const DT *           ?=?( const          DT *          &, zero_t );
467forall( dtype DT ) const DT *           ?=?( const          DT * volatile &, zero_t );
468//forall( dtype DT ) volatile DT *      ?=?( volatile       DT *          &, zero_t );
469//forall( dtype DT ) volatile DT *      ?=?( volatile       DT * volatile &, zero_t );
470forall( dtype DT ) const volatile DT *  ?=?( const volatile DT *          &, zero_t );
471forall( dtype DT ) const volatile DT *  ?=?( const volatile DT * volatile &, zero_t );
472
473forall( ftype FT ) FT *                 ?=?( FT *          &, zero_t );
474forall( ftype FT ) FT *                 ?=?( FT * volatile &, zero_t );
475
476forall( dtype T | sized(T) ) T *                        ?+=?(                T *          &, ptrdiff_t );
477forall( dtype T | sized(T) ) T *                        ?+=?(                T * volatile &, ptrdiff_t );
478forall( dtype T | sized(T) ) const T *          ?+=?( const          T *          &, ptrdiff_t );
479forall( dtype T | sized(T) ) const T *          ?+=?( const          T * volatile &, ptrdiff_t );
480forall( dtype T | sized(T) ) volatile T *               ?+=?(       volatile T *          &, ptrdiff_t );
481forall( dtype T | sized(T) ) volatile T *               ?+=?(       volatile T * volatile &, ptrdiff_t );
482forall( dtype T | sized(T) ) const volatile T * ?+=?( const volatile T *          &, ptrdiff_t );
483forall( dtype T | sized(T) ) const volatile T * ?+=?( const volatile T * volatile &, ptrdiff_t );
484forall( dtype T | sized(T) ) T *                        ?-=?(                T *          &, ptrdiff_t );
485forall( dtype T | sized(T) ) T *                        ?-=?(                T * volatile &, ptrdiff_t );
486forall( dtype T | sized(T) ) const T *          ?-=?( const          T *          &, ptrdiff_t );
487forall( dtype T | sized(T) ) const T *          ?-=?( const          T * volatile &, ptrdiff_t );
488forall( dtype T | sized(T) ) volatile T *               ?-=?(       volatile T *          &, ptrdiff_t );
489forall( dtype T | sized(T) ) volatile T *               ?-=?(       volatile T * volatile &, ptrdiff_t );
490forall( dtype T | sized(T) ) const volatile T * ?-=?( const volatile T *          &, ptrdiff_t );
491forall( dtype T | sized(T) ) const volatile T * ?-=?( const volatile T * volatile &, ptrdiff_t );
492
493_Bool                   ?=?( _Bool &, _Bool ),                                  ?=?( volatile _Bool &, _Bool );
494char                    ?=?( char &, char ),                                    ?=?( volatile char &, char );
495char signed             ?=?( char signed &, char signed ),                      ?=?( volatile char signed &, char signed );
496char unsigned           ?=?( char unsigned &, char unsigned ),                  ?=?( volatile char unsigned &, char unsigned );
497int short               ?=?( int short &, int short ),                          ?=?( volatile int short &, int short );
498int short unsigned      ?=?( int short unsigned &, int short unsigned ),        ?=?( volatile int short unsigned &, int short unsigned );
499signed int              ?=?( signed int &, signed int ),                        ?=?( volatile signed int &, signed int );
500unsigned int            ?=?( unsigned &, unsigned ),                            ?=?( volatile unsigned &, unsigned );
501signed long int         ?=?( signed long int &, signed long int ),              ?=?( volatile signed long int &, signed long int );
502unsigned long int       ?=?( unsigned long int &, unsigned long int ),          ?=?( volatile unsigned long int &, unsigned long int );
503signed long long int    ?=?( signed long long int &, signed long long int ),    ?=?( volatile signed long long int &, signed long long int );
504unsigned long long int  ?=?( unsigned long long int &, unsigned long long int ), ?=?( volatile unsigned long long int &, unsigned long long int );
505zero_t          ?=?( zero_t &, zero_t );
506one_t                   ?=?( one_t &, one_t );
507
508
509_Bool                   ?*=?( _Bool &, _Bool ),                                 ?*=?( volatile _Bool &, _Bool );
510char                    ?*=?( char &, char ),                                   ?*=?( volatile char &, char );
511char signed             ?*=?( char signed &, char signed ),                     ?*=?( volatile char signed &, char signed );
512char unsigned           ?*=?( char unsigned &, char unsigned ),                 ?*=?( volatile char unsigned &, char unsigned );
513int short               ?*=?( int short &, int short ),                         ?*=?( volatile int short &, int short );
514int short unsigned      ?*=?( int short unsigned &, int short unsigned ),       ?*=?( volatile int short unsigned &, int short unsigned );
515signed int              ?*=?( signed int &, signed int ),                       ?*=?( volatile signed int &, signed int );
516unsigned int            ?*=?( unsigned &, unsigned ),                           ?*=?( volatile unsigned &, unsigned );
517signed long int         ?*=?( signed long int &, signed long int ),             ?*=?( volatile signed long int &, signed long int );
518unsigned long int       ?*=?( unsigned long int &, unsigned long int ),         ?*=?( volatile unsigned long int &, unsigned long int );
519signed long long int    ?*=?( signed long long int &, signed long long int ),   ?*=?( volatile signed long long int &, signed long long int );
520unsigned long long int  ?*=?( unsigned long long int &, unsigned long long int ), ?*=?( volatile unsigned long long int &, unsigned long long int );
521
522_Bool                   ?/=?( _Bool &, _Bool ),                                 ?/=?( volatile _Bool &, _Bool );
523char                    ?/=?( char &, char ),                                   ?/=?( volatile char &, char );
524char signed             ?/=?( char signed &, char signed ),                     ?/=?( volatile char signed &, char signed );
525char unsigned           ?/=?( char unsigned &, char unsigned ),                 ?/=?( volatile char unsigned &, char unsigned );
526int short               ?/=?( int short &, int short ),                         ?/=?( volatile int short &, int short );
527int short unsigned      ?/=?( int short unsigned &, int short unsigned ),       ?/=?( volatile int short unsigned &, int short unsigned );
528signed int              ?/=?( signed int &, signed int ),                       ?/=?( volatile signed int &, signed int );
529unsigned int            ?/=?( unsigned &, unsigned ),                           ?/=?( volatile unsigned &, unsigned );
530signed long int         ?/=?( signed long int &, signed long int ),             ?/=?( volatile signed long int &, signed long int );
531unsigned long int       ?/=?( unsigned long int &, unsigned long int ),         ?/=?( volatile unsigned long int &, unsigned long int );
532signed long long int    ?/=?( signed long long int &, signed long long int ),   ?/=?( volatile signed long long int &, signed long long int );
533unsigned long long int  ?/=?( unsigned long long int &, unsigned long long int ), ?/=?( volatile unsigned long long int &, unsigned long long int );
534
535_Bool                   ?%=?( _Bool &, _Bool ),                                 ?%=?( volatile _Bool &, _Bool );
536char                    ?%=?( char &, char ),                                   ?%=?( volatile char &, char );
537char signed             ?%=?( char signed &, char signed ),                     ?%=?( volatile char signed &, char signed );
538char unsigned           ?%=?( char unsigned &, char unsigned ),                 ?%=?( volatile char unsigned &, char unsigned );
539int short               ?%=?( int short &, int short ),                         ?%=?( volatile int short &, int short );
540int short unsigned      ?%=?( int short unsigned &, int short unsigned ),       ?%=?( volatile int short unsigned &, int short unsigned );
541signed int              ?%=?( signed int &, signed int ),                       ?%=?( volatile signed int &, signed int );
542unsigned int            ?%=?( unsigned &, unsigned ),                           ?%=?( volatile unsigned &, unsigned );
543signed long int         ?%=?( signed long int &, signed long int ),             ?%=?( volatile signed long int &, signed long int );
544unsigned long int       ?%=?( unsigned long int &, unsigned long int ),         ?%=?( volatile unsigned long int &, unsigned long int );
545signed long long int    ?%=?( signed long long int &, signed long long int ),   ?%=?( volatile signed long long int &, signed long long int );
546unsigned long long int  ?%=?( unsigned long long int &, unsigned long long int ), ?%=?( volatile unsigned long long int &, unsigned long long int );
547
548_Bool                   ?+=?( _Bool &, _Bool ),                                 ?+=?( volatile _Bool &, _Bool );
549char                    ?+=?( char &, char ),                                   ?+=?( volatile char &, char );
550char signed             ?+=?( char signed &, char signed ),                     ?+=?( volatile char signed &, char signed );
551char unsigned           ?+=?( char unsigned &, char unsigned ),                 ?+=?( volatile char unsigned &, char unsigned );
552int short               ?+=?( int short &, int short ),                         ?+=?( volatile int short &, int short );
553int short unsigned      ?+=?( int short unsigned &, int short unsigned ),       ?+=?( volatile int short unsigned &, int short unsigned );
554signed int              ?+=?( signed int &, signed int ),                       ?+=?( volatile signed int &, signed int );
555unsigned int            ?+=?( unsigned &, unsigned ),                           ?+=?( volatile unsigned &, unsigned );
556signed long int         ?+=?( signed long int &, signed long int ),             ?+=?( volatile signed long int &, signed long int );
557unsigned long int       ?+=?( unsigned long int &, unsigned long int ),         ?+=?( volatile unsigned long int &, unsigned long int );
558signed long long int    ?+=?( signed long long int &, signed long long int ),   ?+=?( volatile signed long long int &, signed long long int );
559unsigned long long int  ?+=?( unsigned long long int &, unsigned long long int ), ?+=?( volatile unsigned long long int &, unsigned long long int );
560signed int128           ?+=?( signed int128 &, signed int128 ),                 ?+=?( volatile signed int128 &, signed int128 );
561unsigned int128         ?+=?( unsigned int128 &, unsigned int128 ),             ?+=?( volatile unsigned int128 &, unsigned int128 );
562
563_Bool                   ?-=?( _Bool &, _Bool ),                                 ?-=?( volatile _Bool &, _Bool );
564char                    ?-=?( char &, char ),                                   ?-=?( volatile char &, char );
565char signed             ?-=?( char signed &, char signed ),                     ?-=?( volatile char signed &, char signed );
566char unsigned           ?-=?( char unsigned &, char unsigned ),                 ?-=?( volatile char unsigned &, char unsigned );
567int short               ?-=?( int short &, int short ),                         ?-=?( volatile int short &, int short );
568int short unsigned      ?-=?( int short unsigned &, int short unsigned ),       ?-=?( volatile int short unsigned &, int short unsigned );
569signed int              ?-=?( signed int &, signed int ),                       ?-=?( volatile signed int &, signed int );
570unsigned int            ?-=?( unsigned &, unsigned ),                           ?-=?( volatile unsigned &, unsigned );
571signed long int         ?-=?( signed long int &, signed long int ),             ?-=?( volatile signed long int &, signed long int );
572unsigned long int       ?-=?( unsigned long int &, unsigned long int ),         ?-=?( volatile unsigned long int &, unsigned long int );
573signed long long int    ?-=?( signed long long int &, signed long long int ),   ?-=?( volatile signed long long int &, signed long long int );
574unsigned long long int  ?-=?( unsigned long long int &, unsigned long long int ), ?-=?( volatile unsigned long long int &, unsigned long long int );
575
576_Bool                   ?<<=?( _Bool &, _Bool ),                                ?<<=?( volatile _Bool &, _Bool );
577char                    ?<<=?( char &, char ),                                  ?<<=?( volatile char &, char );
578char signed             ?<<=?( char signed &, char signed ),                    ?<<=?( volatile char signed &, char signed );
579char unsigned           ?<<=?( char unsigned &, char unsigned ),                ?<<=?( volatile char unsigned &, char unsigned );
580int short               ?<<=?( int short &, int short ),                        ?<<=?( volatile int short &, int short );
581int short unsigned      ?<<=?( int short unsigned &, int short unsigned ),      ?<<=?( volatile int short unsigned &, int short unsigned );
582signed int              ?<<=?( signed int &, signed int ),                      ?<<=?( volatile signed int &, signed int );
583unsigned int            ?<<=?( unsigned &, unsigned ),                          ?<<=?( volatile unsigned &, unsigned );
584signed long int         ?<<=?( signed long int &, signed long int ),            ?<<=?( volatile signed long int &, signed long int );
585unsigned long int       ?<<=?( unsigned long int &, unsigned long int ),        ?<<=?( volatile unsigned long int &, unsigned long int );
586signed long long int    ?<<=?( signed long long int &, signed long long int ),  ?<<=?( volatile signed long long int &, signed long long int );
587unsigned long long int  ?<<=?( unsigned long long int &, unsigned long long int ), ?<<=?( volatile unsigned long long int &, unsigned long long int );
588
589_Bool                   ?>>=?( _Bool &, _Bool ),                                ?>>=?( volatile _Bool &, _Bool );
590char                    ?>>=?( char &, char ),                                  ?>>=?( volatile char &, char );
591char signed             ?>>=?( char signed &, char signed ),                    ?>>=?( volatile char signed &, char signed );
592char unsigned           ?>>=?( char unsigned &, char unsigned ),                ?>>=?( volatile char unsigned &, char unsigned );
593int short               ?>>=?( int short &, int short ),                        ?>>=?( volatile int short &, int short );
594int short unsigned      ?>>=?( int short unsigned &, int short unsigned ),      ?>>=?( volatile int short unsigned &, int short unsigned );
595signed int              ?>>=?( signed int &, signed int ),                      ?>>=?( volatile signed int &, signed int );
596unsigned int            ?>>=?( unsigned &, unsigned ),                          ?>>=?( volatile unsigned &, unsigned );
597signed long int         ?>>=?( signed long int &, signed long int ),            ?>>=?( volatile signed long int &, signed long int );
598unsigned long int       ?>>=?( unsigned long int &, unsigned long int ),        ?>>=?( volatile unsigned long int &, unsigned long int );
599signed long long int    ?>>=?( signed long long int &, signed long long int ),  ?>>=?( volatile signed long long int &, signed long long int );
600unsigned long long int  ?>>=?( unsigned long long int &, unsigned long long int ), ?>>=?( volatile unsigned long long int &, unsigned long long int );
601
602_Bool                   ?&=?( _Bool &, _Bool ),                                 ?&=?( volatile _Bool &, _Bool );
603char                    ?&=?( char &, char ),                                   ?&=?( volatile char &, char );
604char signed             ?&=?( char signed &, char signed ),                     ?&=?( volatile char signed &, char signed );
605char unsigned           ?&=?( char unsigned &, char unsigned ),                 ?&=?( volatile char unsigned &, char unsigned );
606int short               ?&=?( int short &, int short ),                         ?&=?( volatile int short &, int short );
607int short unsigned      ?&=?( int short unsigned &, int short unsigned ),       ?&=?( volatile int short unsigned &, int short unsigned );
608signed int              ?&=?( signed int &, signed int ),                       ?&=?( volatile signed int &, signed int );
609unsigned int            ?&=?( unsigned &, unsigned ),                           ?&=?( volatile unsigned &, unsigned );
610signed long int         ?&=?( signed long int &, signed long int ),             ?&=?( volatile signed long int &, signed long int );
611unsigned long int       ?&=?( unsigned long int &, unsigned long int ),         ?&=?( volatile unsigned long int &, unsigned long int );
612signed long long int    ?&=?( signed long long int &, signed long long int ),   ?&=?( volatile signed long long int &, signed long long int );
613unsigned long long int  ?&=?( unsigned long long int &, unsigned long long int ), ?&=?( volatile unsigned long long int &, unsigned long long int );
614
615_Bool                   ?|=?( _Bool &, _Bool ),                                 ?|=?( volatile _Bool &, _Bool );
616char                    ?|=?( char &, char ),                                   ?|=?( volatile char &, char );
617char signed             ?|=?( char signed &, char signed ),                     ?|=?( volatile char signed &, char signed );
618char unsigned           ?|=?( char unsigned &, char unsigned ),                 ?|=?( volatile char unsigned &, char unsigned );
619int short               ?|=?( int short &, int short ),                         ?|=?( volatile int short &, int short );
620int short unsigned      ?|=?( int short unsigned &, int short unsigned ),       ?|=?( volatile int short unsigned &, int short unsigned );
621signed int              ?|=?( signed int &, signed int ),                       ?|=?( volatile signed int &, signed int );
622unsigned int            ?|=?( unsigned &, unsigned ),                           ?|=?( volatile unsigned &, unsigned );
623signed long int         ?|=?( signed long int &, signed long int ),             ?|=?( volatile signed long int &, signed long int );
624unsigned long int       ?|=?( unsigned long int &, unsigned long int ),         ?|=?( volatile unsigned long int &, unsigned long int );
625signed long long int    ?|=?( signed long long int &, signed long long int ),   ?|=?( volatile signed long long int &, signed long long int );
626unsigned long long int  ?|=?( unsigned long long int &, unsigned long long int ), ?|=?( volatile unsigned long long int &, unsigned long long int );
627
628_Bool                   ?^=?( _Bool &, _Bool ),                                 ?^=?( volatile _Bool &, _Bool );
629char                    ?^=?( char &, char ),                                   ?^=?( volatile char &, char );
630char signed             ?^=?( char signed &, char signed ),                     ?^=?( volatile char signed &, char signed );
631char unsigned           ?^=?( char unsigned &, char unsigned ),                 ?^=?( volatile char unsigned &, char unsigned );
632int short               ?^=?( int short &, int short ),                         ?^=?( volatile int short &, int short );
633int short unsigned      ?^=?( int short unsigned &, int short unsigned ),       ?^=?( volatile int short unsigned &, int short unsigned );
634signed int              ?^=?( signed int &, signed int ),                       ?^=?( volatile signed int &, signed int );
635unsigned int            ?^=?( unsigned &, unsigned ),                           ?^=?( volatile unsigned &, unsigned );
636signed long int         ?^=?( signed long int &, signed long int ),             ?^=?( volatile signed long int &, signed long int );
637unsigned long int       ?^=?( unsigned long int &, unsigned long int ),         ?^=?( volatile unsigned long int &, unsigned long int );
638signed long long int    ?^=?( signed long long int &, signed long long int ),   ?^=?( volatile signed long long int &, signed long long int );
639unsigned long long int  ?^=?( unsigned long long int &, unsigned long long int ), ?^=?( volatile unsigned long long int &, unsigned long long int );
640
641float                   ?=?(  float &, float ), ?=?(  volatile float &, float ),
642                        ?*=?( float &, float ), ?*=?( volatile float &, float ),
643                        ?/=?( float &, float ), ?/=?( volatile float &, float ),
644                        ?+=?( float &, float ), ?+=?( volatile float &, float ),
645                        ?-=?( float &, float ), ?-=?( volatile float &, float );
646
647double                  ?=?(  double &, double ), ?=?(  volatile double &, double ),
648                        ?*=?( double &, double ), ?*=?( volatile double &, double ),
649                        ?/=?( double &, double ), ?/=?( volatile double &, double ),
650                        ?+=?( double &, double ), ?+=?( volatile double &, double ),
651                        ?-=?( double &, double ), ?-=?( volatile double &, double );
652
653long double             ?=?(  long double &, long double ), ?=?(  volatile long double &, long double ),
654                        ?*=?( long double &, long double ), ?*=?( volatile long double &, long double ),
655                        ?/=?( long double &, long double ), ?/=?( volatile long double &, long double ),
656                        ?+=?( long double &, long double ), ?+=?( volatile long double &, long double ),
657                        ?-=?( long double &, long double ), ?-=?( volatile long double &, long double );
658
659float _Complex          ?=?(  float _Complex &, float _Complex ), ?=?(  volatile float _Complex &, float _Complex ),
660                        ?*=?( float _Complex &, float _Complex ), ?*=?( volatile float _Complex &, float _Complex ),
661                        ?/=?( float _Complex &, float _Complex ), ?/=?( volatile float _Complex &, float _Complex ),
662                        ?+=?( float _Complex &, float _Complex ), ?+=?( volatile float _Complex &, float _Complex ),
663                        ?-=?( float _Complex &, float _Complex ), ?-=?( volatile float _Complex &, float _Complex );
664
665double _Complex         ?=?(  double _Complex &, double _Complex ), ?=?(  volatile double _Complex &, double _Complex ),
666                        ?*=?( double _Complex &, double _Complex ), ?*=?( volatile double _Complex &, double _Complex ),
667                        ?/=?( double _Complex &, double _Complex ), ?/=?( volatile double _Complex &, double _Complex ),
668                        ?+=?( double _Complex &, double _Complex ), ?+=?( volatile double _Complex &, double _Complex ),
669                        ?-=?( double _Complex &, double _Complex ), ?-=?( volatile double _Complex &, double _Complex );
670
671long double _Complex    ?=?(  long double _Complex &, long double _Complex ), ?=?(  volatile long double _Complex &, long double _Complex ),
672                        ?*=?( long double _Complex &, long double _Complex ), ?*=?( volatile long double _Complex &, long double _Complex ),
673                        ?/=?( long double _Complex &, long double _Complex ), ?/=?( volatile long double _Complex &, long double _Complex ),
674                        ?+=?( long double _Complex &, long double _Complex ), ?+=?( volatile long double _Complex &, long double _Complex ),
675                        ?-=?( long double _Complex &, long double _Complex ), ?-=?( volatile long double _Complex &, long double _Complex );
676
677
678
679
680
681// ------------------------------------------------------------
682//
683// Section ??? Constructors and Destructors
684//
685// ------------------------------------------------------------
686
687// default ctor
688void    ?{}( _Bool & );
689void    ?{}( char & );
690void    ?{}( unsigned char & );
691void    ?{}( char signed & );
692void    ?{}( int short & );
693void    ?{}( int short unsigned & );
694void    ?{}( signed int & );
695void    ?{}( unsigned int & );
696void    ?{}( signed long int & );
697void    ?{}( unsigned long int & );
698void    ?{}( signed long long int & );
699void    ?{}( unsigned long long int & );
700void    ?{}( float & );
701void    ?{}( double & );
702void    ?{}( long double & );
703void    ?{}( float _Complex & );
704void    ?{}( double _Complex & );
705void    ?{}( long double _Complex & );
706void    ?{}( zero_t & );
707void    ?{}( one_t & );
708
709// copy ctor
710void    ?{}( _Bool &, _Bool );
711void    ?{}( char &, char );
712void    ?{}( unsigned char &, unsigned char );
713void    ?{}( char signed &, char signed );
714void    ?{}( int short &, int short );
715void    ?{}( int short unsigned &, int short unsigned );
716void    ?{}( signed int &, signed int);
717void    ?{}( unsigned int &, unsigned int);
718void    ?{}( signed long int &, signed long int);
719void    ?{}( unsigned long int &, unsigned long int);
720void    ?{}( signed long long int &, signed long long int);
721void    ?{}( unsigned long long int &, unsigned long long int);
722void    ?{}( float &, float);
723void    ?{}( double &, double);
724void    ?{}( long double &, long double);
725void    ?{}( float _Complex &, float _Complex);
726void    ?{}( double _Complex &, double _Complex);
727void    ?{}( long double _Complex &, long double _Complex);
728void    ?{}( zero_t &, zero_t );
729void    ?{}( one_t &, one_t );
730
731// dtor
732void    ^?{}( _Bool & );
733void    ^?{}( char & );
734void    ^?{}( char unsigned & );
735void    ^?{}( char signed & );
736void    ^?{}( int short & );
737void    ^?{}( int short unsigned & );
738void    ^?{}( signed int & );
739void    ^?{}( unsigned int & );
740void    ^?{}( signed long int & );
741void    ^?{}( unsigned long int & );
742void    ^?{}( signed long long int & );
743void    ^?{}( unsigned long long int & );
744void    ^?{}( float & );
745void    ^?{}( double & );
746void    ^?{}( long double & );
747void    ^?{}( float _Complex & );
748void    ^?{}( double _Complex & );
749void    ^?{}( long double _Complex & );
750void    ^?{}( zero_t & );
751void    ^?{}( one_t & );
752
753// // default ctor
754// forall( dtype DT ) void       ?{}(                DT ** );
755// forall( dtype DT ) void       ?{}( const          DT ** );
756// forall( dtype DT ) void       ?{}(       volatile DT ** );
757// forall( dtype DT ) void       ?{}( const volatile DT ** );
758
759// // copy ctor
760// forall( dtype DT ) void       ?{}(                DT **, DT* );
761// forall( dtype DT ) void       ?{}( const          DT **, DT* );
762// forall( dtype DT ) void       ?{}(       volatile DT **, DT* );
763// forall( dtype DT ) void       ?{}( const volatile DT **, DT* );
764
765// // dtor
766// forall( dtype DT ) void      ^?{}(                DT ** );
767// forall( dtype DT ) void      ^?{}( const          DT ** );
768// forall( dtype DT ) void      ^?{}(       volatile DT ** );
769// forall( dtype DT ) void      ^?{}( const volatile DT ** );
770
771// copied from assignment section
772// copy constructors
773forall( ftype FT ) void ?{}( FT *&, FT * );
774forall( ftype FT ) void ?{}( FT * volatile &, FT * );
775
776forall( dtype DT ) void ?{}(                 DT *          &,                   DT * );
777forall( dtype DT ) void ?{}( const           DT *          &,                   DT * );
778forall( dtype DT ) void ?{}( const           DT *          &, const             DT * );
779forall( dtype DT ) void ?{}(       volatile  DT *          &,                   DT * );
780forall( dtype DT ) void ?{}(       volatile  DT *          &,       volatile    DT * );
781
782forall( dtype DT ) void ?{}( const volatile  DT *          &,                   DT * );
783forall( dtype DT ) void ?{}( const volatile  DT *          &, const             DT * );
784forall( dtype DT ) void ?{}( const volatile  DT *          &,       volatile    DT * );
785forall( dtype DT ) void ?{}( const volatile  DT *          &, const volatile    DT * );
786
787forall( dtype DT ) void ?{}(                 DT *          &,                   void * );
788forall( dtype DT ) void ?{}( const           DT *          &,                   void * );
789forall( dtype DT ) void ?{}( const           DT *          &, const             void * );
790forall( dtype DT ) void ?{}(       volatile  DT *          &,                   void * );
791forall( dtype DT ) void ?{}(       volatile  DT *          &,       volatile    void * );
792
793forall( dtype DT ) void ?{}( const volatile  DT *          &,                   void * );
794forall( dtype DT ) void ?{}( const volatile  DT *          &, const             void * );
795forall( dtype DT ) void ?{}( const volatile  DT *          &,       volatile    void * );
796forall( dtype DT ) void ?{}( const volatile  DT *          &, const volatile    void * );
797
798forall( dtype DT ) void ?{}(                 void *          &,                 DT * );
799forall( dtype DT ) void ?{}( const           void *          &,                 DT * );
800forall( dtype DT ) void ?{}( const           void *          &, const           DT * );
801forall( dtype DT ) void ?{}(        volatile void *          &,                 DT * );
802forall( dtype DT ) void ?{}(        volatile void *          &,       volatile  DT * );
803forall( dtype DT ) void ?{}( const volatile void *           &,                 DT * );
804forall( dtype DT ) void ?{}( const volatile void *           &, const           DT * );
805forall( dtype DT ) void ?{}( const volatile void *           &,       volatile  DT * );
806forall( dtype DT ) void ?{}( const volatile void *           &, const volatile  DT * );
807
808void    ?{}(                void *          &,                void * );
809void    ?{}( const          void *          &,                void * );
810void    ?{}( const          void *          &, const          void * );
811void    ?{}(       volatile void *          &,                void * );
812void    ?{}(       volatile void *          &,       volatile void * );
813void    ?{}( const volatile void *          &,                void * );
814void    ?{}( const volatile void *          &, const          void * );
815void    ?{}( const volatile void *          &,       volatile void * );
816void    ?{}( const volatile void *          &, const volatile void * );
817
818//forall( dtype DT ) void ?{}(              DT *          &, zero_t );
819//forall( dtype DT ) void ?{}(              DT * volatile &, zero_t );
820forall( dtype DT ) void ?{}( const          DT *          &, zero_t );
821//forall( dtype DT ) void ?{}( volatile     DT *          &, zero_t );
822//forall( dtype DT ) void ?{}( volatile     DT * volatile &, zero_t );
823forall( dtype DT ) void ?{}( const volatile DT *          &, zero_t );
824
825forall( ftype FT ) void ?{}( FT *          &, zero_t );
826
827// default ctors
828forall( ftype FT ) void ?{}( FT *          & );
829
830forall( dtype DT ) void ?{}(                 DT *          &);
831forall( dtype DT ) void ?{}( const           DT *          &);
832forall( dtype DT ) void ?{}(       volatile  DT *          &);
833forall( dtype DT ) void ?{}( const volatile  DT *          &);
834
835void    ?{}(                void *          &);
836void    ?{}( const          void *          &);
837void    ?{}(       volatile void *          &);
838void    ?{}( const volatile void *          &);
839
840// dtors
841forall( ftype FT ) void ^?{}( FT *         & );
842
843forall( dtype DT ) void ^?{}(                DT *          &);
844forall( dtype DT ) void ^?{}( const          DT *          &);
845forall( dtype DT ) void ^?{}(      volatile  DT *          &);
846forall( dtype DT ) void ^?{}( const volatile  DT *         &);
847
848void    ^?{}(               void *          &);
849void    ^?{}( const         void *          &);
850void    ^?{}(      volatile void *          &);
851void    ^?{}( const volatile void *         &);
852
853// Local Variables: //
854// mode: c //
855// tab-width: 8 //
856// End: //
Note: See TracBrowser for help on using the repository browser.