// -*- Mode: C -*- // // Copyright (C) Glen Ditchfield 1994, 1999 // // prelude.cf -- Standard Cforall Preample // // Author : Glen Ditchfield // Created On : Sat Nov 29 07:23:41 2014 // Last Modified By : Peter A. Buhr // Last Modified On : Wed Jan 7 17:42:15 2015 // Update Count : 28 // // Following line added from stddef.h by build typedef long int ptrdiff_t; // Section numbers from: http://plg.uwaterloo.ca/~cforall/refrat.pdf // ------------------------------------------------------------ // // Section 4.1 Primary Expressions // // ------------------------------------------------------------ const int 0, 1; forall ( dtype DT ) const DT * const 0; forall ( ftype FT ) FT * const 0; // ------------------------------------------------------------ // // Section 4.2 Postfix Operators // // ------------------------------------------------------------ int ?++( int * ), ?--( int * ); unsigned ?++( unsigned * ), ?--( unsigned * ); long ?++( long * ), ?--( long * ); long unsigned ?++( long unsigned * ), ?--( long unsigned * ); float ?++( float * ), ?--( float * ); double ?++( double * ), ?--( double * ); long double ?++( long double * ), ?--( long double * ); forall( type T ) T * ?++( T ** ); forall( type T ) T * ?--( T ** ); forall( type T ) const T * ?++( const T ** ); forall( type T ) const T * ?--( const T ** ); forall( type T ) volatile T * ?++( volatile T ** ); forall( type T ) volatile T * ?--( volatile T ** ); forall( type T ) const volatile T * ?++( const volatile T ** ); forall( type T ) const volatile T * ?--( const volatile T ** ); forall( type T ) lvalue T ?[?]( T *, ptrdiff_t ); forall( type T ) const lvalue T ?[?]( const T *, ptrdiff_t ); forall( type T ) volatile lvalue T ?[?]( volatile T *, ptrdiff_t ); forall( type T ) const volatile lvalue T ?[?]( const volatile T *, ptrdiff_t ); forall( type T ) lvalue T ?[?]( ptrdiff_t, T * ); forall( type T ) const lvalue T ?[?]( ptrdiff_t, const T * ); forall( type T ) volatile lvalue T ?[?]( ptrdiff_t, volatile T * ); forall( type T ) const volatile lvalue T ?[?]( ptrdiff_t, const volatile T * ); // ------------------------------------------------------------ // // Section 4.3 Unary Operators // // ------------------------------------------------------------ int ++?( int * ), --?( int * ); unsigned ++?( unsigned * ), --?( unsigned * ); long ++?( long * ), --?( long * ); long unsigned ++?( long unsigned * ), --?( long unsigned * ); float ++?( float * ), --?( float * ); double ++?( double * ), --?( double * ); long double ++?( long double * ), --?( long double * ); forall( type T ) T * ++?( T ** ); forall( type T ) T * --?( T ** ); forall( type T ) const T * ++?( const T ** ); forall( type T ) const T * --?( const T ** ); forall( type T ) volatile T * ++?( volatile T ** ); forall( type T ) volatile T * --?( volatile T ** ); forall( type T ) const volatile T * ++?( const volatile T ** ); forall( type T ) const volatile T * --?( const volatile T ** ); forall( type T ) lvalue T *?( T * ); forall( type T ) const lvalue T *?( const T * ); forall( type T ) volatile lvalue T *?( volatile T * ); forall( type T ) const volatile lvalue T *?( const volatile T * ); forall( ftype FT ) lvalue FT *?( FT * ); int +?( int ), -?( int ), ~?( int ); unsigned +?( unsigned ), -?( unsigned ), ~?( unsigned ); unsigned long +?( unsigned long ), -?( unsigned long ), ~?( unsigned long ); long +?( long ), -?( long ), ~?( long ); float +?( float ), -?( float ); double +?( double ), -?( double ); long double +?( long double ), -?( long double ); int !?( int ), !?( unsigned ), !?( long ), !?( unsigned long ), !?( float ), !?( double ); forall ( dtype DT ) int !?( const volatile DT * ); forall ( ftype FT ) int !?( FT * ); // ------------------------------------------------------------ // // Section 4.5 Multiplicative Operators // // ------------------------------------------------------------ int ?*?( int, int ), ?/?( int, int ), ?%?( int, int ); unsigned ?*?( unsigned, unsigned ), ?/?( unsigned, unsigned ), ?%?( unsigned, unsigned ); unsigned long ?*?( unsigned long, unsigned long ), ?/?( unsigned long, unsigned long ), ?%?( unsigned long, unsigned long ); long ?*?( long, long ), ?/?( long, long ), ?%?( long, long ); float ?*?( float, float ), ?/?( float, float ); double ?*?( double, double ), ?/?( double, double ); long double ?*?( long double, long double ), ?/?( long double, long double ); // ------------------------------------------------------------ // // Section 4.6 Additive Operators // // ------------------------------------------------------------ int ?+?( int, int ), ?-?( int, int ); long ?+?( long, long ), ?-?( long, long ); unsigned ?+?( unsigned, unsigned ), ?-?( unsigned, unsigned ); long unsigned ?+?( long unsigned, long unsigned ), ?-?( long unsigned, long unsigned ); float ?+?( float, float ), ?-?( float, float ); double ?+?( double, double ), ?-?( double, double ); long double ?+?( long double, long double ), ?-?( long double, long double ); forall( type T ) T * ?+?( T *, ptrdiff_t ); forall( type T ) T * ?+?( ptrdiff_t, T * ); forall( type T ) T * ?-?( T *, ptrdiff_t ); forall( type T ) const T * ?+?( const T *, ptrdiff_t ); forall( type T ) const T * ?+?( ptrdiff_t, const T * ); forall( type T ) const T * ?-?( const T *, ptrdiff_t ); forall( type T ) volatile T * ?+?( volatile T *, ptrdiff_t ); forall( type T ) volatile T * ?+?( ptrdiff_t, volatile T * ); forall( type T ) volatile T * ?-?( volatile T *, ptrdiff_t ); forall( type T ) const volatile T * ?+?( const volatile T *, ptrdiff_t ); forall( type T ) const volatile T * ?+?( ptrdiff_t, const volatile T * ); forall( type T ) const volatile T * ?-?( const volatile T *, ptrdiff_t ); forall( type T ) ptrdiff_t ?-?( const volatile T *, const volatile T * ); // ------------------------------------------------------------ // // Section 4.7 Bitwise Shift Operators // // ------------------------------------------------------------ int ?<>?( int, int ); long ?<>?( long, long ); unsigned ?<>?( unsigned, unsigned ); long unsigned ?<>?( long unsigned, long unsigned ); // ------------------------------------------------------------ // // Section 4.8 Relational Operators // // ------------------------------------------------------------ int ??( int, int ), ?>=?( int, int ); int ??( long, long ), ?>=?( long, long ); int ??( unsigned, unsigned ), ?>=?( unsigned, unsigned ); int ??( unsigned long, unsigned long ), ?>=?( unsigned long, unsigned long ); int ??( float, float ), ?>=?( float, float ); int ??( double, double ), ?>=?( double, double ); int ??( long double, long double ), ?>=?( long double, long double ); forall( dtype DT ) int ??( const volatile DT *, const volatile DT * ); forall( dtype DT ) int ?<=?( const volatile DT *, const volatile DT * ); forall( dtype DT ) int ?>=?( const volatile DT *, const volatile DT * ); // ------------------------------------------------------------ // // Section 4.9 Equality Operators // // ------------------------------------------------------------ int ?==?( int, int ), ?!=?( int, int ); int ?==?( long, long ), ?!=?( long, long ); int ?==?( unsigned, unsigned ), ?!=?( unsigned, unsigned ); int ?==?( unsigned long, unsigned long ), ?!=?( unsigned long, unsigned long ); int ?==?( float, float ), ?!=?( float, float ); int ?==?( double, double ), ?!=?( double, double ); int ?==?( long double, long double ), ?!=?( long double, long double ); forall( dtype DT ) int ?==?( DT *, DT * ); forall( dtype DT ) int ?!=?( DT *, DT * ); forall( dtype DT ) int ?==?( const DT *, const DT * ); forall( dtype DT ) int ?!=?( const DT *, const DT * ); forall( dtype DT ) int ?==?( volatile DT *, volatile DT * ); forall( dtype DT ) int ?!=?( volatile DT *, volatile DT * ); forall( dtype DT ) int ?==?( const volatile DT *, const volatile DT * ); forall( dtype DT ) int ?!=?( const volatile DT *, const volatile DT * ); forall( ftype FT ) int ?==?( FT *, FT * ); forall( ftype FT ) int ?!=?( FT *, FT * ); forall( dtype DT ) int ?==?( const volatile DT *, const volatile void * ); forall( dtype DT ) int ?!=?( const volatile DT *, const volatile void * ); forall( dtype DT ) int ?==?( const volatile void *, const volatile DT * ); forall( dtype DT ) int ?!=?( const volatile void *, const volatile DT * ); forall( dtype DT ) int ?==?( const volatile DT *, forall( dtype DT2 )const DT2 * ); forall( dtype DT ) int ?!=?( const volatile DT *, forall( dtype DT2 )const DT2 * ); forall( dtype DT ) int ?==?( forall( dtype DT2 )const DT2 *, const volatile DT * ); forall( dtype DT ) int ?!=?( forall( dtype DT2 )const DT2 *, const volatile DT * ); forall( ftype FT ) int ?==?( FT *, forall( ftype FT2 )FT2 * ); forall( ftype FT ) int ?!=?( FT *, forall( ftype FT2 )FT2 * ); forall( ftype FT ) int ?==?( forall( ftype FT2 )FT2 *, FT * ); forall( ftype FT ) int ?!=?( forall( ftype FT2 )FT2 *, FT * ); // ------------------------------------------------------------ // // Section 4.10 Bitwise AND Operators // // ------------------------------------------------------------ int ?&?( int, int ); long ?&?( long, long ); unsigned ?&?( unsigned, unsigned ); unsigned long ?&?( unsigned long, unsigned long ); // ------------------------------------------------------------ // // Section 4.11 Bitwise XOR Operators // // ------------------------------------------------------------ int ?^?( int, int ); long ?^?( long, long ); unsigned ?^?( unsigned, unsigned ); unsigned long ?^?( unsigned long, unsigned long ); // ------------------------------------------------------------ // // Section 4.12 Bitwise OR Operators // // ------------------------------------------------------------ int ?|?( int, int ); long ?|?( long, long ); unsigned ?|?( unsigned, unsigned ); unsigned long ?|?( unsigned long, unsigned long ); // ------------------------------------------------------------ // // Section 4.16 Assignment Operator // // ------------------------------------------------------------ forall( ftype FT ) FT * ?=?( FT **, FT * ); forall( ftype FT ) FT * ?=?( FT * volatile *, FT * ); forall( dtype DT ) DT * ?=?( DT * *, DT * ); forall( dtype DT ) DT * ?=?( DT * volatile *, DT * ); forall( dtype DT ) const DT * ?=?( const DT * *, DT * ); forall( dtype DT ) const DT * ?=?( const DT * volatile *, DT * ); forall( dtype DT ) const DT * ?=?( const DT * *, const DT * ); forall( dtype DT ) const DT * ?=?( const DT * volatile *, const DT * ); forall( dtype DT ) volatile DT * ?=?( volatile DT * *, DT * ); forall( dtype DT ) volatile DT * ?=?( volatile DT * volatile *, DT * ); forall( dtype DT ) volatile DT * ?=?( volatile DT * *, volatile DT * ); forall( dtype DT ) volatile DT * ?=?( volatile DT * volatile *, volatile DT * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * *, DT * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * volatile *, DT * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * *, const DT * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * volatile *, const DT * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * *, volatile DT * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * volatile *, volatile DT * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * *, const volatile DT * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * volatile *, const volatile DT * ); forall( dtype DT ) DT * ?=?( DT * *, void * ); forall( dtype DT ) DT * ?=?( DT * volatile *, void * ); forall( dtype DT ) const DT * ?=?( const DT * *, void * ); forall( dtype DT ) const DT * ?=?( const DT * volatile *, void * ); forall( dtype DT ) const DT * ?=?( const DT * *, const void * ); forall( dtype DT ) const DT * ?=?( const DT * volatile *, const void * ); forall( dtype DT ) volatile DT * ?=?( volatile DT * *, void * ); forall( dtype DT ) volatile DT * ?=?( volatile DT * volatile *, void * ); forall( dtype DT ) volatile DT * ?=?( volatile DT * *, volatile void * ); forall( dtype DT ) volatile DT * ?=?( volatile DT * volatile *, volatile void * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * *, void * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * volatile *, void * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * *, const void * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * volatile *, const void * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * *, volatile void * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * volatile *, volatile void * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * *, const volatile void * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * volatile *, const volatile void * ); forall( dtype DT ) void * ?=?( void * *, DT * ); forall( dtype DT ) void * ?=?( void * volatile *, DT * ); forall( dtype DT ) const void * ?=?( const void * *, DT * ); forall( dtype DT ) const void * ?=?( const void * volatile *, DT * ); forall( dtype DT ) const void * ?=?( const void * *, const DT * ); forall( dtype DT ) const void * ?=?( const void * volatile *, const DT * ); forall( dtype DT ) volatile void * ?=?( volatile void * *, DT * ); forall( dtype DT ) volatile void * ?=?( volatile void * volatile *, DT * ); forall( dtype DT ) volatile void * ?=?( volatile void * *, volatile DT * ); forall( dtype DT ) volatile void * ?=?( volatile void * volatile *, volatile DT * ); forall( dtype DT ) const volatile void * ?=?( const volatile void * *, DT * ); forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *, DT * ); forall( dtype DT ) const volatile void * ?=?( const volatile void * *, const DT * ); forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *, const DT * ); forall( dtype DT ) const volatile void * ?=?( const volatile void * *, volatile DT * ); forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *, volatile DT * ); forall( dtype DT ) const volatile void * ?=?( const volatile void * *, const volatile DT * ); forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *, const volatile DT * ); void * ?=?( void * *, void * ); void * ?=?( void * volatile *, void * ); const void * ?=?( const void * *, void * ); const void * ?=?( const void * volatile *, void * ); const void * ?=?( const void * *, const void * ); const void * ?=?( const void * volatile *, const void * ); volatile void * ?=?( volatile void * *, void * ); volatile void * ?=?( volatile void * volatile *, void * ); volatile void * ?=?( volatile void * *, volatile void * ); volatile void * ?=?( volatile void * volatile *, volatile void * ); const volatile void * ?=?( const volatile void * *, void * ); const volatile void * ?=?( const volatile void * volatile *, void * ); const volatile void * ?=?( const volatile void * *, const void * ); const volatile void * ?=?( const volatile void * volatile *, const void * ); const volatile void * ?=?( const volatile void * *, volatile void * ); const volatile void * ?=?( const volatile void * volatile *, volatile void * ); const volatile void * ?=?( const volatile void * *, const volatile void * ); const volatile void * ?=?( const volatile void * volatile *, const volatile void * ); forall( dtype DT ) DT * ?=?( DT * *, forall( dtype DT2 ) const DT2 * ); forall( dtype DT ) DT * ?=?( DT * volatile *, forall( dtype DT2 ) const DT2 * ); forall( dtype DT ) const DT * ?=?( const DT * *, forall( dtype DT2 ) const DT2 * ); forall( dtype DT ) const DT * ?=?( const DT * volatile *, forall( dtype DT2 ) const DT2 * ); forall( dtype DT ) volatile DT * ?=?( volatile DT * *, forall( dtype DT2 ) const DT2 * ); forall( dtype DT ) volatile DT * ?=?( volatile DT * volatile *, forall( dtype DT2 ) const DT2 * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * *, forall( dtype DT2 ) const DT2 * ); forall( dtype DT ) const volatile DT * ?=?( const volatile DT * volatile *, forall( dtype DT2 ) const DT2 * ); forall( ftype FT ) FT * ?=?( FT * *, forall( ftype FT2 ) FT2 * ); forall( ftype FT ) FT * ?=?( FT * volatile *, forall( ftype FT2 ) FT2 * ); forall( type T ) T * ?+=?( T * *, ptrdiff_t ); forall( type T ) T * ?+=?( T * volatile *, ptrdiff_t ); forall( type T ) T * ?-=?( T * *, ptrdiff_t ); forall( type T ) T * ?-=?( T * volatile *, ptrdiff_t ); forall( type T ) const T * ?+=?( const T * *, ptrdiff_t ); forall( type T ) const T * ?+=?( const T * volatile *, ptrdiff_t ); forall( type T ) const T * ?-=?( const T * *, ptrdiff_t ); forall( type T ) const T * ?-=?( const T * volatile *, ptrdiff_t ); forall( type T ) volatile T * ?+=?( volatile T * *, ptrdiff_t ); forall( type T ) volatile T * ?+=?( volatile T * volatile *, ptrdiff_t ); forall( type T ) volatile T * ?-=?( volatile T * *, ptrdiff_t ); forall( type T ) volatile T * ?-=?( volatile T * volatile *, ptrdiff_t ); forall( type T ) const volatile T * ?+=?( const volatile T * *, ptrdiff_t ); forall( type T ) const volatile T * ?+=?( const volatile T * volatile *, ptrdiff_t ); forall( type T ) const volatile T * ?-=?( const volatile T * *, ptrdiff_t ); forall( type T ) const volatile T * ?-=?( const volatile T * volatile *, ptrdiff_t ); _Bool ?=?( _Bool *, _Bool ), ?=?( volatile _Bool *, _Bool ); char ?=?( char *, char ), ?=?( volatile char *, char ); signed char ?=?( signed char *, signed char ), ?=?( volatile signed char *, signed char ); unsigned char ?=?( unsigned char *, unsigned char ), ?=?( volatile unsigned char *, unsigned char ); short ?=?( short *, short ), ?=?( volatile short *, short ); unsigned short ?=?( unsigned short *, unsigned short ), ?=?( volatile unsigned short *, unsigned short ); int ?=?( int *, int ), ?=?( volatile int *, int ); unsigned ?=?( unsigned *, unsigned ), ?=?( volatile unsigned *, unsigned ); long ?=?( long *, long ), ?=?( volatile long *, long ); unsigned long ?=?( unsigned long *, unsigned long ), ?=?( volatile unsigned long *, unsigned long ); long long ?=?( long long *, long long ), ?=?( volatile long long *, long long ); unsigned long long ?=?( unsigned long long *, unsigned long long ), ?=?( volatile unsigned long long *, unsigned long long ); _Bool ?*=?( _Bool *, _Bool ), ?*=?( volatile _Bool *, _Bool ); char ?*=?( char *, char ), ?*=?( volatile char *, char ); signed char ?*=?( signed char *, signed char ), ?*=?( volatile signed char *, signed char ); unsigned char ?*=?( unsigned char *, unsigned char ), ?*=?( volatile unsigned char *, unsigned char ); short ?*=?( short *, short ), ?*=?( volatile short *, short ); unsigned short ?*=?( unsigned short *, unsigned short ), ?*=?( volatile unsigned short *, unsigned short ); int ?*=?( int *, int ), ?*=?( volatile int *, int ); unsigned ?*=?( unsigned *, unsigned ), ?*=?( volatile unsigned *, unsigned ); long ?*=?( long *, long ), ?*=?( volatile long *, long ); unsigned long ?*=?( unsigned long *, unsigned long ), ?*=?( volatile unsigned long *, unsigned long ); long long ?*=?( long long *, long long ), ?*=?( volatile long long *, long long ); unsigned long long ?*=?( unsigned long long *, unsigned long long ), ?*=?( volatile unsigned long long *, unsigned long long ); _Bool ?/=?( _Bool *, _Bool ), ?/=?( volatile _Bool *, _Bool ); char ?/=?( char *, char ), ?/=?( volatile char *, char ); signed char ?/=?( signed char *, signed char ), ?/=?( volatile signed char *, signed char ); unsigned char ?/=?( unsigned char *, unsigned char ), ?/=?( volatile unsigned char *, unsigned char ); short ?/=?( short *, short ), ?/=?( volatile short *, short ); unsigned short ?/=?( unsigned short *, unsigned short ), ?/=?( volatile unsigned short *, unsigned short ); int ?/=?( int *, int ), ?/=?( volatile int *, int ); unsigned ?/=?( unsigned *, unsigned ), ?/=?( volatile unsigned *, unsigned ); long ?/=?( long *, long ), ?/=?( volatile long *, long ); unsigned long ?/=?( unsigned long *, unsigned long ), ?/=?( volatile unsigned long *, unsigned long ); long long ?/=?( long long *, long long ), ?/=?( volatile long long *, long long ); unsigned long long ?/=?( unsigned long long *, unsigned long long ), ?/=?( volatile unsigned long long *, unsigned long long ); _Bool ?%=?( _Bool *, _Bool ), ?%=?( volatile _Bool *, _Bool ); char ?%=?( char *, char ), ?%=?( volatile char *, char ); signed char ?%=?( signed char *, signed char ), ?%=?( volatile signed char *, signed char ); unsigned char ?%=?( unsigned char *, unsigned char ), ?%=?( volatile unsigned char *, unsigned char ); short ?%=?( short *, short ), ?%=?( volatile short *, short ); unsigned short ?%=?( unsigned short *, unsigned short ), ?%=?( volatile unsigned short *, unsigned short ); int ?%=?( int *, int ), ?%=?( volatile int *, int ); unsigned ?%=?( unsigned *, unsigned ), ?%=?( volatile unsigned *, unsigned ); long ?%=?( long *, long ), ?%=?( volatile long *, long ); unsigned long ?%=?( unsigned long *, unsigned long ), ?%=?( volatile unsigned long *, unsigned long ); long long ?%=?( long long *, long long ), ?%=?( volatile long long *, long long ); unsigned long long ?%=?( unsigned long long *, unsigned long long ), ?%=?( volatile unsigned long long *, unsigned long long ); _Bool ?+=?( _Bool *, _Bool ), ?+=?( volatile _Bool *, _Bool ); char ?+=?( char *, char ), ?+=?( volatile char *, char ); signed char ?+=?( signed char *, signed char ), ?+=?( volatile signed char *, signed char ); unsigned char ?+=?( unsigned char *, unsigned char ), ?+=?( volatile unsigned char *, unsigned char ); short ?+=?( short *, short ), ?+=?( volatile short *, short ); unsigned short ?+=?( unsigned short *, unsigned short ), ?+=?( volatile unsigned short *, unsigned short ); int ?+=?( int *, int ), ?+=?( volatile int *, int ); unsigned ?+=?( unsigned *, unsigned ), ?+=?( volatile unsigned *, unsigned ); long ?+=?( long *, long ), ?+=?( volatile long *, long ); unsigned long ?+=?( unsigned long *, unsigned long ), ?+=?( volatile unsigned long *, unsigned long ); long long ?+=?( long long *, long long ), ?+=?( volatile long long *, long long ); unsigned long long ?+=?( unsigned long long *, unsigned long long ), ?+=?( volatile unsigned long long *, unsigned long long ); _Bool ?-=?( _Bool *, _Bool ), ?-=?( volatile _Bool *, _Bool ); char ?-=?( char *, char ), ?-=?( volatile char *, char ); signed char ?-=?( signed char *, signed char ), ?-=?( volatile signed char *, signed char ); unsigned char ?-=?( unsigned char *, unsigned char ), ?-=?( volatile unsigned char *, unsigned char ); short ?-=?( short *, short ), ?-=?( volatile short *, short ); unsigned short ?-=?( unsigned short *, unsigned short ), ?-=?( volatile unsigned short *, unsigned short ); int ?-=?( int *, int ), ?-=?( volatile int *, int ); unsigned ?-=?( unsigned *, unsigned ), ?-=?( volatile unsigned *, unsigned ); long ?-=?( long *, long ), ?-=?( volatile long *, long ); unsigned long ?-=?( unsigned long *, unsigned long ), ?-=?( volatile unsigned long *, unsigned long ); long long ?-=?( long long *, long long ), ?-=?( volatile long long *, long long ); unsigned long long ?-=?( unsigned long long *, unsigned long long ), ?-=?( volatile unsigned long long *, unsigned long long ); _Bool ?<<=?( _Bool *, _Bool ), ?<<=?( volatile _Bool *, _Bool ); char ?<<=?( char *, char ), ?<<=?( volatile char *, char ); signed char ?<<=?( signed char *, signed char ), ?<<=?( volatile signed char *, signed char ); unsigned char ?<<=?( unsigned char *, unsigned char ), ?<<=?( volatile unsigned char *, unsigned char ); short ?<<=?( short *, short ), ?<<=?( volatile short *, short ); unsigned short ?<<=?( unsigned short *, unsigned short ), ?<<=?( volatile unsigned short *, unsigned short ); int ?<<=?( int *, int ), ?<<=?( volatile int *, int ); unsigned ?<<=?( unsigned *, unsigned ), ?<<=?( volatile unsigned *, unsigned ); long ?<<=?( long *, long ), ?<<=?( volatile long *, long ); unsigned long ?<<=?( unsigned long *, unsigned long ), ?<<=?( volatile unsigned long *, unsigned long ); long long ?<<=?( long long *, long long ), ?<<=?( volatile long long *, long long ); unsigned long long ?<<=?( unsigned long long *, unsigned long long ), ?<<=?( volatile unsigned long long *, unsigned long long ); _Bool ?>>=?( _Bool *, _Bool ), ?>>=?( volatile _Bool *, _Bool ); char ?>>=?( char *, char ), ?>>=?( volatile char *, char ); signed char ?>>=?( signed char *, signed char ), ?>>=?( volatile signed char *, signed char ); unsigned char ?>>=?( unsigned char *, unsigned char ), ?>>=?( volatile unsigned char *, unsigned char ); short ?>>=?( short *, short ), ?>>=?( volatile short *, short ); unsigned short ?>>=?( unsigned short *, unsigned short ), ?>>=?( volatile unsigned short *, unsigned short ); int ?>>=?( int *, int ), ?>>=?( volatile int *, int ); unsigned ?>>=?( unsigned *, unsigned ), ?>>=?( volatile unsigned *, unsigned ); long ?>>=?( long *, long ), ?>>=?( volatile long *, long ); unsigned long ?>>=?( unsigned long *, unsigned long ), ?>>=?( volatile unsigned long *, unsigned long ); long long ?>>=?( long long *, long long ), ?>>=?( volatile long long *, long long ); unsigned long long ?>>=?( unsigned long long *, unsigned long long ), ?>>=?( volatile unsigned long long *, unsigned long long ); _Bool ?&=?( _Bool *, _Bool ), ?&=?( volatile _Bool *, _Bool ); char ?&=?( char *, char ), ?&=?( volatile char *, char ); signed char ?&=?( signed char *, signed char ), ?&=?( volatile signed char *, signed char ); unsigned char ?&=?( unsigned char *, unsigned char ), ?&=?( volatile unsigned char *, unsigned char ); short ?&=?( short *, short ), ?&=?( volatile short *, short ); unsigned short ?&=?( unsigned short *, unsigned short ), ?&=?( volatile unsigned short *, unsigned short ); int ?&=?( int *, int ), ?&=?( volatile int *, int ); unsigned ?&=?( unsigned *, unsigned ), ?&=?( volatile unsigned *, unsigned ); long ?&=?( long *, long ), ?&=?( volatile long *, long ); unsigned long ?&=?( unsigned long *, unsigned long ), ?&=?( volatile unsigned long *, unsigned long ); long long ?&=?( long long *, long long ), ?&=?( volatile long long *, long long ); unsigned long long ?&=?( unsigned long long *, unsigned long long ), ?&=?( volatile unsigned long long *, unsigned long long ); _Bool ?|=?( _Bool *, _Bool ), ?|=?( volatile _Bool *, _Bool ); char ?|=?( char *, char ), ?|=?( volatile char *, char ); signed char ?|=?( signed char *, signed char ), ?|=?( volatile signed char *, signed char ); unsigned char ?|=?( unsigned char *, unsigned char ), ?|=?( volatile unsigned char *, unsigned char ); short ?|=?( short *, short ), ?|=?( volatile short *, short ); unsigned short ?|=?( unsigned short *, unsigned short ), ?|=?( volatile unsigned short *, unsigned short ); int ?|=?( int *, int ), ?|=?( volatile int *, int ); unsigned ?|=?( unsigned *, unsigned ), ?|=?( volatile unsigned *, unsigned ); long ?|=?( long *, long ), ?|=?( volatile long *, long ); unsigned long ?|=?( unsigned long *, unsigned long ), ?|=?( volatile unsigned long *, unsigned long ); long long ?|=?( long long *, long long ), ?|=?( volatile long long *, long long ); unsigned long long ?|=?( unsigned long long *, unsigned long long ), ?|=?( volatile unsigned long long *, unsigned long long ); _Bool ?^=?( _Bool *, _Bool ), ?^=?( volatile _Bool *, _Bool ); char ?^=?( char *, char ), ?^=?( volatile char *, char ); signed char ?^=?( signed char *, signed char ), ?^=?( volatile signed char *, signed char ); unsigned char ?^=?( unsigned char *, unsigned char ), ?^=?( volatile unsigned char *, unsigned char ); short ?^=?( short *, short ), ?^=?( volatile short *, short ); unsigned short ?^=?( unsigned short *, unsigned short ), ?^=?( volatile unsigned short *, unsigned short ); int ?^=?( int *, int ), ?^=?( volatile int *, int ); unsigned ?^=?( unsigned *, unsigned ), ?^=?( volatile unsigned *, unsigned ); long ?^=?( long *, long ), ?^=?( volatile long *, long ); unsigned long ?^=?( unsigned long *, unsigned long ), ?^=?( volatile unsigned long *, unsigned long ); long long ?^=?( long long *, long long ), ?^=?( volatile long long *, long long ); unsigned long long ?^=?( unsigned long long *, unsigned long long ), ?^=?( volatile unsigned long long *, unsigned long long ); float ?=?( float *, float ), ?=?( volatile float *, float ), ?*=?( float *, float ), ?*=?( volatile float *, float ), ?/=?( float *, float ), ?/=?( volatile float *, float ), ?+=?( float *, float ), ?+=?( volatile float *, float ), ?-=?( float *, float ), ?-=?( volatile float *, float ); double ?=?( double *, double ), ?=?( volatile double *, double ), ?*=?( double *, double ), ?*=?( volatile double *, double ), ?/=?( double *, double ), ?/=?( volatile double *, double ), ?+=?( double *, double ), ?+=?( volatile double *, double ), ?-=?( double *, double ), ?-=?( volatile double *, double ); long double ?=?( long double *, long double ), ?=?( volatile long double *, long double ), ?*=?( long double *, long double ), ?*=?( volatile long double *, long double ), ?/=?( long double *, long double ), ?/=?( volatile long double *, long double ), ?+=?( long double *, long double ), ?+=?( volatile long double *, long double ), ?-=?( long double *, long double ), ?-=?( volatile long double *, long double );