source: src/prelude/prelude.cf @ a2dbad10

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since a2dbad10 was 0895cba, checked in by Thierry Delisle <tdelisle@…>, 7 years ago

added missing short operators in the prelude

  • Property mode set to 100644
File size: 52.5 KB
RevLine 
[f1e012b]1//
[3848e0e]2// Copyright (C) Glen Ditchfield 1994, 1999
[f1e012b]3//
[f7f6785]4// prelude.cf -- Standard Cforall Preample for C99
[f1e012b]5//
[3848e0e]6// Author           : Glen Ditchfield
7// Created On       : Sat Nov 29 07:23:41 2014
[784deab]8// Last Modified By : Peter A. Buhr
[e5fccf4]9// Last Modified On : Wed Aug 30 07:56:07 2017
10// Update Count     : 93
[3848e0e]11//
12
[a6151ba]13# 2 "prelude.cf"  // needed for error messages from this file
[3848e0e]14
15// Section numbers from: http://plg.uwaterloo.ca/~cforall/refrat.pdf
16
[be9036d]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
[3848e0e]27// ------------------------------------------------------------
28//
29// Section 4.1 Primary Expressions
30//
31// ------------------------------------------------------------
32
[4cb935e]33//We have none
[3848e0e]34
35// ------------------------------------------------------------
36//
37// Section 4.2 Postfix Operators
38//
39// ------------------------------------------------------------
40
[469f709]41_Bool                   ?++( _Bool & ),                         ?++( volatile _Bool & );
42_Bool                   ?--( _Bool & ),                         ?--( volatile _Bool & );
43unsigned char           ?++( unsigned char & ),                 ?++( volatile unsigned char & );
[0895cba]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 & );
[469f709]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 * );
[3848e0e]90
91// ------------------------------------------------------------
92//
93// Section 4.3 Unary Operators
94//
95// ------------------------------------------------------------
96
[469f709]97_Bool                   ++?( _Bool & ),                         --?( _Bool & );
[0895cba]98signed short    ++?( signed short & ),                  --?( signed short & );
[469f709]99signed int              ++?( signed int & ),                    --?( signed int & );
[0895cba]100unsigned short          ++?( unsigned int & ),                  --?( unsigned int & );
101unsigned int            ++?( unsigned short & ),                --?( unsigned short & );
[469f709]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 * );
[3848e0e]127
[f1e012b]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 );
[f7f6785]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 );
[51b7345]147
[14f6bb39]148forall ( dtype DT ) int !?(                DT * );
149forall ( dtype DT ) int !?( const          DT * );
150forall ( dtype DT ) int !?(       volatile DT * );
[3848e0e]151forall ( dtype DT ) int !?( const volatile DT * );
152forall ( ftype FT ) int !?( FT * );
[51b7345]153
[3848e0e]154// ------------------------------------------------------------
155//
156// Section 4.5 Multiplicative Operators
157//
158// ------------------------------------------------------------
[51b7345]159
[f7f6785]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 );
[784deab]164unsigned long int       ?*?( unsigned long int, unsigned long int ),            ?/?( unsigned long int, unsigned long int ),    ?%?( unsigned long int, unsigned long int );
[f7f6785]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 );
[784deab]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 );
[f7f6785]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 );
[3848e0e]177
178// ------------------------------------------------------------
179//
180// Section 4.6 Additive Operators
181//
182// ------------------------------------------------------------
183
[f7f6785]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 );
[784deab]188unsigned long int       ?+?( unsigned long int, unsigned long int ),            ?-?( unsigned long int, unsigned long int );
[f7f6785]189signed long long int    ?+?( signed long long int, long long int  signed),      ?-?( signed long long int, signed long long int );
[784deab]190unsigned long long int  ?+?( unsigned long long int, unsigned long long int ),  ?-?( unsigned long long int, unsigned long long int );
[f7f6785]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
[0788b739]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 * );
[3848e0e]211
212// ------------------------------------------------------------
213//
214// Section 4.7 Bitwise Shift Operators
215//
216// ------------------------------------------------------------
217
[784deab]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 );
[3848e0e]225
226// ------------------------------------------------------------
227//
228// Section 4.8 Relational Operators
229//
230// ------------------------------------------------------------
231
[784deab]232signed int ?<?( _Bool, _Bool ),                                         ?<=?( _Bool, _Bool ),
233           ?>?( _Bool, _Bool ),                                         ?>=?( _Bool, _Bool );
[ff178ee]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 );
[784deab]238signed int ?<?( unsigned char, unsigned char ),                         ?<=?( unsigned char, unsigned char ),
239           ?>?( unsigned char, unsigned char ),                         ?>=?( unsigned char, unsigned char );
[ff178ee]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 );
[784deab]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 );
[f7f6785]262
[14f6bb39]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 * );
[f7f6785]266forall( dtype DT ) signed int ?<?(  const volatile DT *, const volatile DT * );
[14f6bb39]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 * );
[f7f6785]271forall( dtype DT ) signed int ?>?(  const volatile DT *, const volatile DT * );
[14f6bb39]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 * );
[f7f6785]276forall( dtype DT ) signed int ?<=?( const volatile DT *, const volatile DT * );
[14f6bb39]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 * );
[f7f6785]281forall( dtype DT ) signed int ?>=?( const volatile DT *, const volatile DT * );
[3848e0e]282
283// ------------------------------------------------------------
284//
285// Section 4.9 Equality Operators
286//
287// ------------------------------------------------------------
288
[4cb935e]289signed int ?==?( _Bool, _Bool ),                                                        ?!=?( _Bool, _Bool );
[ff178ee]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 );
[4cb935e]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 );
[784deab]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 );
[4cb935e]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 );
[784deab]306signed int ?==?( long double _Complex, long double _Complex ),          ?!=?( long double _Complex, long double _Complex );
[4cb935e]307signed int ?==?( zero_t, zero_t ),                                                      ?!=?( zero_t, zero_t );
308signed int ?==?( one_t, one_t ),                                                        ?!=?( one_t, one_t );
[f7f6785]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
[a2a77af]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 * );
[f7f6785]325
[0b150ec]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 * );
[3848e0e]334
335// ------------------------------------------------------------
336//
337// Section 4.10 Bitwise AND Operators
338//
339// ------------------------------------------------------------
[51b7345]340
[f7f6785]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 );
[784deab]346signed long long int    ?&?( signed long long int, signed long long int );
347unsigned long long int  ?&?( unsigned long long int, unsigned long long int );
[51b7345]348
[3848e0e]349// ------------------------------------------------------------
350//
351// Section 4.11 Bitwise XOR Operators
352//
353// ------------------------------------------------------------
[51b7345]354
[f7f6785]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 );
[784deab]360signed long long int    ?^?( signed long long int, signed long long int );
361unsigned long long int  ?^?( unsigned long long int, unsigned long long int );
[51b7345]362
[3848e0e]363// ------------------------------------------------------------
364//
365// Section 4.12 Bitwise OR Operators
366//
367// ------------------------------------------------------------
[51b7345]368
[f7f6785]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 );
[784deab]374signed long long int    ?|?( signed long long int, signed long long int );
375unsigned long long int  ?|?( unsigned long long int, unsigned long long int );
[51b7345]376
[3848e0e]377// ------------------------------------------------------------
378//
379// Section 4.16 Assignment Operator
380//
381// ------------------------------------------------------------
382
[469f709]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
[bf30ab3]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 );
[469f709]472
[5ccb10d]473forall( ftype FT ) FT *                 ?=?( FT *          &, zero_t );
474forall( ftype FT ) FT *                 ?=?( FT * volatile &, zero_t );
[469f709]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 );
560
561_Bool                   ?-=?( _Bool &, _Bool ),                                 ?-=?( volatile _Bool &, _Bool );
562char                    ?-=?( char &, char ),                                   ?-=?( volatile char &, char );
563char signed             ?-=?( char signed &, char signed ),                     ?-=?( volatile char signed &, char signed );
564char unsigned           ?-=?( char unsigned &, char unsigned ),                 ?-=?( volatile char unsigned &, char unsigned );
565int short               ?-=?( int short &, int short ),                         ?-=?( volatile int short &, int short );
566int short unsigned      ?-=?( int short unsigned &, int short unsigned ),       ?-=?( volatile int short unsigned &, int short unsigned );
567signed int              ?-=?( signed int &, signed int ),                       ?-=?( volatile signed int &, signed int );
568unsigned int            ?-=?( unsigned &, unsigned ),                           ?-=?( volatile unsigned &, unsigned );
569signed long int         ?-=?( signed long int &, signed long int ),             ?-=?( volatile signed long int &, signed long int );
570unsigned long int       ?-=?( unsigned long int &, unsigned long int ),         ?-=?( volatile unsigned long int &, unsigned long int );
571signed long long int    ?-=?( signed long long int &, signed long long int ),   ?-=?( volatile signed long long int &, signed long long int );
572unsigned long long int  ?-=?( unsigned long long int &, unsigned long long int ), ?-=?( volatile unsigned long long int &, unsigned long long int );
573
574_Bool                   ?<<=?( _Bool &, _Bool ),                                ?<<=?( volatile _Bool &, _Bool );
575char                    ?<<=?( char &, char ),                                  ?<<=?( volatile char &, char );
576char signed             ?<<=?( char signed &, char signed ),                    ?<<=?( volatile char signed &, char signed );
577char unsigned           ?<<=?( char unsigned &, char unsigned ),                ?<<=?( volatile char unsigned &, char unsigned );
578int short               ?<<=?( int short &, int short ),                        ?<<=?( volatile int short &, int short );
579int short unsigned      ?<<=?( int short unsigned &, int short unsigned ),      ?<<=?( volatile int short unsigned &, int short unsigned );
580signed int              ?<<=?( signed int &, signed int ),                      ?<<=?( volatile signed int &, signed int );
581unsigned int            ?<<=?( unsigned &, unsigned ),                          ?<<=?( volatile unsigned &, unsigned );
582signed long int         ?<<=?( signed long int &, signed long int ),            ?<<=?( volatile signed long int &, signed long int );
583unsigned long int       ?<<=?( unsigned long int &, unsigned long int ),        ?<<=?( volatile unsigned long int &, unsigned long int );
584signed long long int    ?<<=?( signed long long int &, signed long long int ),  ?<<=?( volatile signed long long int &, signed long long int );
585unsigned long long int  ?<<=?( unsigned long long int &, unsigned long long int ), ?<<=?( volatile unsigned long long int &, unsigned long long int );
586
587_Bool                   ?>>=?( _Bool &, _Bool ),                                ?>>=?( volatile _Bool &, _Bool );
588char                    ?>>=?( char &, char ),                                  ?>>=?( volatile char &, char );
589char signed             ?>>=?( char signed &, char signed ),                    ?>>=?( volatile char signed &, char signed );
590char unsigned           ?>>=?( char unsigned &, char unsigned ),                ?>>=?( volatile char unsigned &, char unsigned );
591int short               ?>>=?( int short &, int short ),                        ?>>=?( volatile int short &, int short );
592int short unsigned      ?>>=?( int short unsigned &, int short unsigned ),      ?>>=?( volatile int short unsigned &, int short unsigned );
593signed int              ?>>=?( signed int &, signed int ),                      ?>>=?( volatile signed int &, signed int );
594unsigned int            ?>>=?( unsigned &, unsigned ),                          ?>>=?( volatile unsigned &, unsigned );
595signed long int         ?>>=?( signed long int &, signed long int ),            ?>>=?( volatile signed long int &, signed long int );
596unsigned long int       ?>>=?( unsigned long int &, unsigned long int ),        ?>>=?( volatile unsigned long int &, unsigned long int );
597signed long long int    ?>>=?( signed long long int &, signed long long int ),  ?>>=?( volatile signed long long int &, signed long long int );
598unsigned long long int  ?>>=?( unsigned long long int &, unsigned long long int ), ?>>=?( volatile unsigned long long int &, unsigned long long int );
599
600_Bool                   ?&=?( _Bool &, _Bool ),                                 ?&=?( volatile _Bool &, _Bool );
601char                    ?&=?( char &, char ),                                   ?&=?( volatile char &, char );
602char signed             ?&=?( char signed &, char signed ),                     ?&=?( volatile char signed &, char signed );
603char unsigned           ?&=?( char unsigned &, char unsigned ),                 ?&=?( volatile char unsigned &, char unsigned );
604int short               ?&=?( int short &, int short ),                         ?&=?( volatile int short &, int short );
605int short unsigned      ?&=?( int short unsigned &, int short unsigned ),       ?&=?( volatile int short unsigned &, int short unsigned );
606signed int              ?&=?( signed int &, signed int ),                       ?&=?( volatile signed int &, signed int );
607unsigned int            ?&=?( unsigned &, unsigned ),                           ?&=?( volatile unsigned &, unsigned );
608signed long int         ?&=?( signed long int &, signed long int ),             ?&=?( volatile signed long int &, signed long int );
609unsigned long int       ?&=?( unsigned long int &, unsigned long int ),         ?&=?( volatile unsigned long int &, unsigned long int );
610signed long long int    ?&=?( signed long long int &, signed long long int ),   ?&=?( volatile signed long long int &, signed long long int );
611unsigned long long int  ?&=?( unsigned long long int &, unsigned long long int ), ?&=?( volatile unsigned long long int &, unsigned long long int );
612
613_Bool                   ?|=?( _Bool &, _Bool ),                                 ?|=?( volatile _Bool &, _Bool );
614char                    ?|=?( char &, char ),                                   ?|=?( volatile char &, char );
615char signed             ?|=?( char signed &, char signed ),                     ?|=?( volatile char signed &, char signed );
616char unsigned           ?|=?( char unsigned &, char unsigned ),                 ?|=?( volatile char unsigned &, char unsigned );
617int short               ?|=?( int short &, int short ),                         ?|=?( volatile int short &, int short );
618int short unsigned      ?|=?( int short unsigned &, int short unsigned ),       ?|=?( volatile int short unsigned &, int short unsigned );
619signed int              ?|=?( signed int &, signed int ),                       ?|=?( volatile signed int &, signed int );
620unsigned int            ?|=?( unsigned &, unsigned ),                           ?|=?( volatile unsigned &, unsigned );
621signed long int         ?|=?( signed long int &, signed long int ),             ?|=?( volatile signed long int &, signed long int );
622unsigned long int       ?|=?( unsigned long int &, unsigned long int ),         ?|=?( volatile unsigned long int &, unsigned long int );
623signed long long int    ?|=?( signed long long int &, signed long long int ),   ?|=?( volatile signed long long int &, signed long long int );
624unsigned long long int  ?|=?( unsigned long long int &, unsigned long long int ), ?|=?( volatile unsigned long long int &, unsigned long long int );
625
626_Bool                   ?^=?( _Bool &, _Bool ),                                 ?^=?( volatile _Bool &, _Bool );
627char                    ?^=?( char &, char ),                                   ?^=?( volatile char &, char );
628char signed             ?^=?( char signed &, char signed ),                     ?^=?( volatile char signed &, char signed );
629char unsigned           ?^=?( char unsigned &, char unsigned ),                 ?^=?( volatile char unsigned &, char unsigned );
630int short               ?^=?( int short &, int short ),                         ?^=?( volatile int short &, int short );
631int short unsigned      ?^=?( int short unsigned &, int short unsigned ),       ?^=?( volatile int short unsigned &, int short unsigned );
632signed int              ?^=?( signed int &, signed int ),                       ?^=?( volatile signed int &, signed int );
633unsigned int            ?^=?( unsigned &, unsigned ),                           ?^=?( volatile unsigned &, unsigned );
634signed long int         ?^=?( signed long int &, signed long int ),             ?^=?( volatile signed long int &, signed long int );
635unsigned long int       ?^=?( unsigned long int &, unsigned long int ),         ?^=?( volatile unsigned long int &, unsigned long int );
636signed long long int    ?^=?( signed long long int &, signed long long int ),   ?^=?( volatile signed long long int &, signed long long int );
637unsigned long long int  ?^=?( unsigned long long int &, unsigned long long int ), ?^=?( volatile unsigned long long int &, unsigned long long int );
638
639float                   ?=?(  float &, float ), ?=?(  volatile float &, float ),
640                        ?*=?( float &, float ), ?*=?( volatile float &, float ),
641                        ?/=?( float &, float ), ?/=?( volatile float &, float ),
642                        ?+=?( float &, float ), ?+=?( volatile float &, float ),
643                        ?-=?( float &, float ), ?-=?( volatile float &, float );
644
645double                  ?=?(  double &, double ), ?=?(  volatile double &, double ),
646                        ?*=?( double &, double ), ?*=?( volatile double &, double ),
647                        ?/=?( double &, double ), ?/=?( volatile double &, double ),
648                        ?+=?( double &, double ), ?+=?( volatile double &, double ),
649                        ?-=?( double &, double ), ?-=?( volatile double &, double );
650
651long double             ?=?(  long double &, long double ), ?=?(  volatile long double &, long double ),
652                        ?*=?( long double &, long double ), ?*=?( volatile long double &, long double ),
653                        ?/=?( 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
657float _Complex          ?=?(  float _Complex &, float _Complex ), ?=?(  volatile float _Complex &, float _Complex ),
658                        ?*=?( float _Complex &, float _Complex ), ?*=?( volatile float _Complex &, float _Complex ),
659                        ?/=?( 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
663double _Complex         ?=?(  double _Complex &, double _Complex ), ?=?(  volatile double _Complex &, double _Complex ),
664                        ?*=?( double _Complex &, double _Complex ), ?*=?( volatile double _Complex &, double _Complex ),
665                        ?/=?( 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
669long double _Complex    ?=?(  long double _Complex &, long double _Complex ), ?=?(  volatile long double _Complex &, long double _Complex ),
670                        ?*=?( long double _Complex &, long double _Complex ), ?*=?( volatile long double _Complex &, long double _Complex ),
671                        ?/=?( 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 );
[f1e012b]674
675
676
677
678
679// ------------------------------------------------------------
680//
681// Section ??? Constructors and Destructors
682//
683// ------------------------------------------------------------
684
685// default ctor
[469f709]686void    ?{}( _Bool & );
687void    ?{}( char & );
688void    ?{}( unsigned char & );
689void    ?{}( char signed & );
690void    ?{}( int short & );
691void    ?{}( int short unsigned & );
692void    ?{}( signed int & );
693void    ?{}( unsigned int & );
694void    ?{}( signed long int & );
695void    ?{}( unsigned long int & );
696void    ?{}( signed long long int & );
697void    ?{}( unsigned long long int & );
698void    ?{}( float & );
699void    ?{}( double & );
700void    ?{}( long double & );
701void    ?{}( float _Complex & );
702void    ?{}( double _Complex & );
703void    ?{}( long double _Complex & );
704void    ?{}( zero_t & );
705void    ?{}( one_t & );
[f1e012b]706
707// copy ctor
[469f709]708void    ?{}( _Bool &, _Bool );
709void    ?{}( char &, char );
710void    ?{}( unsigned char &, unsigned char );
711void    ?{}( char signed &, char signed );
712void    ?{}( int short &, int short );
713void    ?{}( int short unsigned &, int short unsigned );
714void    ?{}( signed int &, signed int);
715void    ?{}( unsigned int &, unsigned int);
716void    ?{}( signed long int &, signed long int);
717void    ?{}( unsigned long int &, unsigned long int);
718void    ?{}( signed long long int &, signed long long int);
719void    ?{}( unsigned long long int &, unsigned long long int);
720void    ?{}( float &, float);
721void    ?{}( double &, double);
722void    ?{}( long double &, long double);
723void    ?{}( float _Complex &, float _Complex);
724void    ?{}( double _Complex &, double _Complex);
725void    ?{}( long double _Complex &, long double _Complex);
726void    ?{}( zero_t &, zero_t );
727void    ?{}( one_t &, one_t );
[f1e012b]728
729// dtor
[469f709]730void    ^?{}( _Bool & );
731void    ^?{}( char & );
732void    ^?{}( char unsigned & );
733void    ^?{}( char signed & );
734void    ^?{}( int short & );
735void    ^?{}( int short unsigned & );
736void    ^?{}( signed int & );
737void    ^?{}( unsigned int & );
738void    ^?{}( signed long int & );
739void    ^?{}( unsigned long int & );
740void    ^?{}( signed long long int & );
741void    ^?{}( unsigned long long int & );
742void    ^?{}( float & );
743void    ^?{}( double & );
744void    ^?{}( long double & );
745void    ^?{}( float _Complex & );
746void    ^?{}( double _Complex & );
747void    ^?{}( long double _Complex & );
748void    ^?{}( zero_t & );
749void    ^?{}( one_t & );
[f1e012b]750
751// // default ctor
752// forall( dtype DT ) void       ?{}(                DT ** );
753// forall( dtype DT ) void       ?{}( const          DT ** );
754// forall( dtype DT ) void       ?{}(       volatile DT ** );
755// forall( dtype DT ) void       ?{}( const volatile DT ** );
756
757// // copy ctor
758// forall( dtype DT ) void       ?{}(                DT **, DT* );
759// forall( dtype DT ) void       ?{}( const          DT **, DT* );
760// forall( dtype DT ) void       ?{}(       volatile DT **, DT* );
761// forall( dtype DT ) void       ?{}( const volatile DT **, DT* );
762
763// // dtor
764// forall( dtype DT ) void      ^?{}(                DT ** );
765// forall( dtype DT ) void      ^?{}( const          DT ** );
766// forall( dtype DT ) void      ^?{}(       volatile DT ** );
767// forall( dtype DT ) void      ^?{}( const volatile DT ** );
768
769// copied from assignment section
770// copy constructors
[469f709]771forall( ftype FT ) void ?{}( FT *&, FT * );
772forall( ftype FT ) void ?{}( FT * volatile &, FT * );
773
774forall( dtype DT ) void ?{}(                 DT *          &,                   DT * );
775forall( dtype DT ) void ?{}( const           DT *          &,                   DT * );
776forall( dtype DT ) void ?{}( const           DT *          &, const             DT * );
777forall( dtype DT ) void ?{}(       volatile  DT *          &,                   DT * );
778forall( dtype DT ) void ?{}(       volatile  DT *          &,       volatile    DT * );
779
780forall( dtype DT ) void ?{}( const volatile  DT *          &,                   DT * );
781forall( dtype DT ) void ?{}( const volatile  DT *          &, const             DT * );
782forall( dtype DT ) void ?{}( const volatile  DT *          &,       volatile    DT * );
783forall( dtype DT ) void ?{}( const volatile  DT *          &, const volatile    DT * );
784
785forall( dtype DT ) void ?{}(                 DT *          &,                   void * );
786forall( dtype DT ) void ?{}( const           DT *          &,                   void * );
787forall( dtype DT ) void ?{}( const           DT *          &, const             void * );
788forall( dtype DT ) void ?{}(       volatile  DT *          &,                   void * );
789forall( dtype DT ) void ?{}(       volatile  DT *          &,       volatile    void * );
790
791forall( dtype DT ) void ?{}( const volatile  DT *          &,                   void * );
792forall( dtype DT ) void ?{}( const volatile  DT *          &, const             void * );
793forall( dtype DT ) void ?{}( const volatile  DT *          &,       volatile    void * );
794forall( dtype DT ) void ?{}( const volatile  DT *          &, const volatile    void * );
795
796forall( dtype DT ) void ?{}(                 void *          &,                 DT * );
797forall( dtype DT ) void ?{}( const           void *          &,                 DT * );
798forall( dtype DT ) void ?{}( const           void *          &, const           DT * );
799forall( dtype DT ) void ?{}(        volatile void *          &,                 DT * );
800forall( dtype DT ) void ?{}(        volatile void *          &,       volatile  DT * );
801forall( dtype DT ) void ?{}( const volatile void *           &,                 DT * );
802forall( dtype DT ) void ?{}( const volatile void *           &, const           DT * );
803forall( dtype DT ) void ?{}( const volatile void *           &,       volatile  DT * );
804forall( dtype DT ) void ?{}( const volatile void *           &, const volatile  DT * );
805
806void    ?{}(                void *          &,                void * );
807void    ?{}( const          void *          &,                void * );
808void    ?{}( const          void *          &, const          void * );
809void    ?{}(       volatile void *          &,                void * );
810void    ?{}(       volatile void *          &,       volatile void * );
811void    ?{}( const volatile void *          &,                void * );
812void    ?{}( const volatile void *          &, const          void * );
813void    ?{}( const volatile void *          &,       volatile void * );
814void    ?{}( const volatile void *          &, const volatile void * );
815
[bf30ab3]816//forall( dtype DT ) void ?{}(              DT *          &, zero_t );
817//forall( dtype DT ) void ?{}(              DT * volatile &, zero_t );
818forall( dtype DT ) void ?{}( const          DT *          &, zero_t );
819//forall( dtype DT ) void ?{}( volatile     DT *          &, zero_t );
820//forall( dtype DT ) void ?{}( volatile     DT * volatile &, zero_t );
821forall( dtype DT ) void ?{}( const volatile DT *          &, zero_t );
[469f709]822
[5ccb10d]823forall( ftype FT ) void ?{}( FT *          &, zero_t );
[f1e012b]824
825// default ctors
[469f709]826forall( ftype FT ) void ?{}( FT *          & );
[f1e012b]827
[469f709]828forall( dtype DT ) void ?{}(                 DT *          &);
829forall( dtype DT ) void ?{}( const           DT *          &);
830forall( dtype DT ) void ?{}(       volatile  DT *          &);
831forall( dtype DT ) void ?{}( const volatile  DT *          &);
[f1e012b]832
[469f709]833void    ?{}(                void *          &);
834void    ?{}( const          void *          &);
835void    ?{}(       volatile void *          &);
836void    ?{}( const volatile void *          &);
[f1e012b]837
838// dtors
[469f709]839forall( ftype FT ) void ^?{}( FT *         & );
[f1e012b]840
[469f709]841forall( dtype DT ) void ^?{}(                DT *          &);
842forall( dtype DT ) void ^?{}( const          DT *          &);
843forall( dtype DT ) void ^?{}(      volatile  DT *          &);
844forall( dtype DT ) void ^?{}( const volatile  DT *         &);
[f1e012b]845
[469f709]846void    ^?{}(               void *          &);
847void    ^?{}( const         void *          &);
848void    ^?{}(      volatile void *          &);
849void    ^?{}( const volatile void *         &);
[a6151ba]850
851// Local Variables: //
852// mode: c //
853// tab-width: 8 //
854// End: //
Note: See TracBrowser for help on using the repository browser.