Index: libcfa/prelude/Makefile.am
===================================================================
--- libcfa/prelude/Makefile.am	(revision fa761c2aa9a4a9b1a22e28f45f380ba9d9ad36c0)
+++ libcfa/prelude/Makefile.am	(revision be3f163306e87aeb232bf497922012355b5762df)
@@ -11,6 +11,6 @@
 ## Created On       : Sun May 31 08:54:01 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Thu Jan 13 17:06:27 2022
-## Update Count     : 215
+## Last Modified On : Wed Nov  1 21:09:25 2023
+## Update Count     : 221
 ###############################################################################
 
@@ -21,7 +21,7 @@
 # put into lib for now
 cfalibdir = ${CFA_LIBDIR}
-cfalib_DATA = gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c defines.hfa
+cfalib_DATA = gcc-builtins.cfa builtins.cfa extras.cfa prelude.cfa bootloader.c defines.hfa
 
-EXTRA_DIST = bootloader.cf builtins.c builtins.def extras.c extras.regx extras.regx2 prelude-gen.cc prototypes.awk prototypes.c prototypes.sed sync-builtins.cf
+EXTRA_DIST = bootloader.cfa builtins.c builtins.def extras.c extras.regx extras.regx2 prelude-gen.cc prototypes.awk prototypes.c prototypes.sed sync-builtins.cfa
 
 CC = @LOCAL_CFACC@
@@ -36,5 +36,5 @@
 
 # create extra forward types/declarations to reduce inclusion of library files
-extras.cf : ${srcdir}/extras.regx ${srcdir}/extras.c
+extras.cfa : ${srcdir}/extras.regx ${srcdir}/extras.c
 	@echo '# 2 "${@}"  // needed for error messages from this file' > ${@}
 	${AM_V_GEN}gcc ${AM_CFLAGS} -E ${srcdir}/extras.c | grep -f ${srcdir}/extras.regx >> ${@}
@@ -42,9 +42,9 @@
 
 # create forward declarations for gcc builtins
-gcc-builtins.cf : gcc-builtins.c ${srcdir}/prototypes.sed
+gcc-builtins.cfa : gcc-builtins.c ${srcdir}/prototypes.sed
 	@echo '# 2 "${@}"  // needed for error messages from this file' > ${@}
 	${AM_V_GEN}gcc -I${srcdir} -E -P $< | sed -r -f ${srcdir}/prototypes.sed >> ${@}
 
-gcc-builtins.c : ${srcdir}/builtins.def ${srcdir}/prototypes.awk ${srcdir}/sync-builtins.cf ${srcdir}/prototypes.c
+gcc-builtins.c : ${srcdir}/builtins.def ${srcdir}/prototypes.awk ${srcdir}/sync-builtins.cfa ${srcdir}/prototypes.c
 	${AM_V_GEN}gcc -I${srcdir} -E ${srcdir}/prototypes.c | awk -f ${srcdir}/prototypes.awk > ${@}
 
@@ -59,22 +59,22 @@
 
 # create forward declarations for cfa builtins
-builtins.cf : builtins.c @LOCAL_CFACC@
+builtins.cfa : builtins.c @LOCAL_CFACC@
 	${AM_V_GEN}gcc ${AM_CFLAGS} -E ${<} -o ${@} -MD -MP -MF $(DEPDIR)/builtins.Po -D__cforall
-	${AM_V_at}sed -i 's/builtins.o/builtins.cf/g' $(DEPDIR)/builtins.Po
+	${AM_V_at}sed -i 's/builtins.o/builtins.cfa/g' $(DEPDIR)/builtins.Po
 
 include $(DEPDIR)/builtins.Po
 
-bootloader.c : ${srcdir}/bootloader.cf prelude.cfa extras.cf gcc-builtins.cf builtins.cf @CFACPP@
-	${AM_V_GEN}@CFACPP@ --prelude-dir=${builddir} -tpm ${srcdir}/bootloader.cf ${@}  # use src/cfa-cpp as not in lib until after install
+bootloader.c : ${srcdir}/bootloader.cfa prelude.cfa extras.cfa gcc-builtins.cfa builtins.cfa @CFACPP@
+	${AM_V_GEN}@CFACPP@ --prelude-dir=${builddir} -tpm ${srcdir}/bootloader.cfa ${@}  # use src/cfa-cpp as not in lib until after install
 
 maintainer-clean-local :
 	rm -rf $(DEPDIR)
 
-MOSTLYCLEANFILES = bootloader.c builtins.cf extras.cf gcc-builtins.c gcc-builtins.cf prelude.cfa
+MOSTLYCLEANFILES = bootloader.c builtins.cfa extras.cfa gcc-builtins.c gcc-builtins.cfa prelude.cfa
 DISTCLEANFILES = $(DEPDIR)/builtins.Po
 MAINTAINERCLEANFILES = ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}}
 
 if ENABLE_DISTCC
-distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ defines.hfa gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh
+distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ defines.hfa gcc-builtins.cfa builtins.cfa extras.cfa prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh
 	${AM_V_GEN}$(srcdir)/../../tools/build/push2dist.sh @CFADIR_HASH@ @DIST_BWLIMIT@
 	@echo "Dummy file to track distribution to remote hosts" > ${@}
Index: bcfa/prelude/bootloader.cf
===================================================================
--- libcfa/prelude/bootloader.cf	(revision fa761c2aa9a4a9b1a22e28f45f380ba9d9ad36c0)
+++ 	(revision )
@@ -1,14 +1,0 @@
-extern "C" { static inline int invoke_main( int argc, char * argv[], char * envp[]); }
-int cfa_args_argc;
-char ** cfa_args_argv;
-char ** cfa_args_envp;
-__attribute__((weak)) extern int cfa_main_returned;
-
-int main( int argc, char * argv[], char * envp[] ) {
-	cfa_args_argc = argc;
-	cfa_args_argv = argv;
-	cfa_args_envp = envp;
-	int ret = invoke_main(argc, argv, envp);
-	if( &cfa_main_returned ) cfa_main_returned = 1;
-	return ret;
-}
Index: libcfa/prelude/bootloader.cfa
===================================================================
--- libcfa/prelude/bootloader.cfa	(revision be3f163306e87aeb232bf497922012355b5762df)
+++ libcfa/prelude/bootloader.cfa	(revision be3f163306e87aeb232bf497922012355b5762df)
@@ -0,0 +1,14 @@
+extern "C" { static inline int invoke_main( int argc, char * argv[], char * envp[]); }
+int cfa_args_argc;
+char ** cfa_args_argv;
+char ** cfa_args_envp;
+__attribute__((weak)) extern int cfa_main_returned;
+
+int main( int argc, char * argv[], char * envp[] ) {
+	cfa_args_argc = argc;
+	cfa_args_argv = argv;
+	cfa_args_envp = envp;
+	int ret = invoke_main(argc, argv, envp);
+	if( &cfa_main_returned ) cfa_main_returned = 1;
+	return ret;
+}
Index: bcfa/prelude/prelude.old.cf
===================================================================
--- libcfa/prelude/prelude.old.cf	(revision fa761c2aa9a4a9b1a22e28f45f380ba9d9ad36c0)
+++ 	(revision )
@@ -1,783 +1,0 @@
-//
-// Copyright (C) Glen Ditchfield 1994, 1999
-//
-// prelude.cf -- Standard Cforall Preample for C99
-//
-// Author           : Glen Ditchfield
-// Created On       : Sat Nov 29 07:23:41 2014
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Apr 22 13:21:47 2018
-// Update Count     : 103
-//
-
-# 2 "prelude.cf"  // needed for error messages from this file
-
-// Section numbers from: http://plg.uwaterloo.ca/~cforall/refrat.pdf
-
-// ------------------------------------------------------------
-//
-// Section 6.7.11 Trait Declarations
-// Note: the sized trait is used in declarations later in this
-// file, so it must be out of order.
-//
-// ------------------------------------------------------------
-
-trait sized(T &) {};
-
-// ------------------------------------------------------------
-//
-// Section 4.1 Primary Expressions
-//
-// ------------------------------------------------------------
-
-//We have none
-
-// ------------------------------------------------------------
-//
-// Section 4.2 Postfix Operators
-//
-// ------------------------------------------------------------
-
-signed short		?++( signed short & ),			?++( volatile signed short & );
-signed short		?--( signed short & ),			?--( volatile signed short & );
-unsigned short		?++( unsigned short & ),		?++( volatile unsigned short & );
-unsigned short		?--( unsigned short & ),		?--( volatile unsigned short & );
-signed int		?++( signed int & ),			?++( volatile signed int & );
-signed int		?--( signed int & ),			?--( volatile signed int & );
-unsigned int		?++( unsigned int & ),			?++( volatile unsigned int & );
-unsigned int		?--( unsigned int & ),			?--( volatile unsigned int & );
-signed long int		?++( signed long int & ),		?++( volatile signed long int & );
-signed long int		?--( signed long int & ),		?--( volatile signed long int & );
-unsigned long int	?++( unsigned long int & ),		?++( volatile unsigned long int & );
-unsigned long int	?--( unsigned long int & ),		?--( volatile unsigned long int & );
-signed long long int	?++( signed long long int & ),		?++( volatile signed long long int & );
-signed long long int	?--( signed long long int & ),		?--( volatile signed long long int & );
-unsigned long long int	?++( unsigned long long int & ),	?++( volatile unsigned long long int & );
-unsigned long long int	?--( unsigned long long int & ),	?--( volatile unsigned long long int & );
-float			?++( float & ),				?++( volatile float & );
-float			?--( float & ),				?--( volatile float & );
-double			?++( double & ),			?++( volatile double & );
-double			?--( double & ),			?--( volatile double & );
-long double		?++( long double & ),			?++( volatile long double & );
-long double		?--( long double & ),			?--( volatile long double & );
-float _Complex		?++( float _Complex & ),		?++( volatile float _Complex & );
-float _Complex		?--( float _Complex & ),		?--( volatile float _Complex & );
-double _Complex		?++( double _Complex & ),		?++( volatile double _Complex & );
-double _Complex		?--( double _Complex & ),		?--( volatile double _Complex & );
-long double _Complex	?++( long double _Complex & ),		?++( volatile long double _Complex & );
-long double _Complex	?--( long double _Complex & ),		?--( volatile long double _Complex & );
-
-forall( T & | sized(T) ) T *			 ?++(		     T *& );
-forall( T & | sized(T) ) const T *		 ?++( const	     T *& );
-forall( T & | sized(T) ) volatile T *		 ?++(	    volatile T *& );
-forall( T & | sized(T) ) const volatile T *	 ?++( const volatile T *& );
-forall( T & | sized(T) ) T *			 ?--(		     T *& );
-forall( T & | sized(T) ) const T *		 ?--( const	     T *& );
-forall( T & | sized(T) ) volatile T *		 ?--(	    volatile T *& );
-forall( T & | sized(T) ) const volatile T *	 ?--( const volatile T *& );
-
-forall( T & | sized(T) ) T &		 ?[?](		      T *,	    ptrdiff_t );
-forall( T & | sized(T) ) const T &	 ?[?]( const	      T *,	    ptrdiff_t );
-forall( T & | sized(T) ) volatile T &	 ?[?](       volatile T *,	    ptrdiff_t );
-forall( T & | sized(T) ) const volatile T & ?[?]( const volatile T *,	    ptrdiff_t );
-forall( T & | sized(T) ) T &		 ?[?](		ptrdiff_t,		  T * );
-forall( T & | sized(T) ) const T &	 ?[?](		ptrdiff_t, const	  T * );
-forall( T & | sized(T) ) volatile T &	 ?[?](		ptrdiff_t,	 volatile T * );
-forall( T & | sized(T) ) const volatile T & ?[?](		ptrdiff_t, const volatile T * );
-
-// ------------------------------------------------------------
-//
-// Section 4.3 Unary Operators
-//
-// ------------------------------------------------------------
-
-signed short	++?( signed short & ),			--?( signed short & );
-signed int		++?( signed int & ),			--?( signed int & );
-unsigned short		++?( unsigned int & ),			--?( unsigned int & );
-unsigned int		++?( unsigned short & ),		--?( unsigned short & );
-signed long int		++?( signed long int & ),		--?( signed long int & );
-unsigned long int	++?( unsigned long int & ),		--?( unsigned long int & );
-signed long long int	++?( signed long long int & ),		--?( signed long long int & );
-unsigned long long int	++?( unsigned long long int & ),	--?( unsigned long long int & );
-float			++?( float & ),				--?( float & );
-double			++?( double & ),			--?( double & );
-long double		++?( long double & ),			--?( long double & );
-float _Complex		++?( float _Complex & ),		--?( float _Complex & );
-double _Complex		++?( double _Complex & ),		--?( double _Complex & );
-long double _Complex	++?( long double _Complex & ),		--?( long double _Complex & );
-
-forall( T & | sized(T) ) T *			 ++?(		     T *& );
-forall( T & | sized(T) ) const T *		 ++?( const	     T *& );
-forall( T & | sized(T) ) volatile T *		 ++?(	    volatile T *& );
-forall( T & | sized(T) ) const volatile T *	 ++?( const volatile T *& );
-forall( T & | sized(T) ) T *			 --?(		     T *& );
-forall( T & | sized(T) ) const T *		 --?( const	     T *& );
-forall( T & | sized(T) ) volatile T *		 --?(	    volatile T *& );
-forall( T & | sized(T) ) const volatile T *	 --?( const volatile T *& );
-
-forall( T & | sized(T) ) T &		 *?(		     T * );
-forall( T & | sized(T) ) const T &		 *?( const	     T * );
-forall( T & | sized(T) ) volatile T &	 *?(       volatile  T * );
-forall( T & | sized(T) ) const volatile T & *?( const volatile  T * );
-forall( ftype FT ) FT &		 *?( FT * );
-
-_Bool			+?( _Bool ),			-?( _Bool );
-signed int		+?( signed int ),		-?( signed int ),		~?( signed int );
-unsigned int		+?( unsigned int ),		-?( unsigned int ),		~?( unsigned int );
-signed long int		+?( signed long int ),		-?( signed long int ),		~?( signed long int );
-unsigned long int	+?( unsigned long int ),	-?( unsigned long int ),	~?( unsigned long int );
-signed long long int	+?( signed long long int ),	-?( signed long long int ),	~?( signed long long int );
-unsigned long long int	+?( unsigned long long int ),	-?( unsigned long long int ),	~?( unsigned long long int );
-float			+?( float ),			-?( float );
-double			+?( double ),			-?( double );
-long double		+?( long double ),		-?( long double );
-float _Complex		+?( float _Complex ),		-?( float _Complex );
-double _Complex		+?( double _Complex ),		-?( double _Complex );
-long double _Complex	+?( long double _Complex ),	-?( long double _Complex );
-
-signed int	!?( signed int ),		!?( unsigned int ),
-		!?( long int ),			!?( unsigned long int ),
-		!?( long long int ),		!?( unsigned long long int ),
-		!?( float ),			!?( double ),			!?( long double ),
-		!?( float _Complex ),		!?( double _Complex ),		!?( long double _Complex );
-
-forall( DT & ) int !?(                DT * );
-forall( DT & ) int !?( const          DT * );
-forall( DT & ) int !?(       volatile DT * );
-forall( DT & ) int !?( const volatile DT * );
-forall( ftype FT ) int !?( FT * );
-
-// ------------------------------------------------------------
-//
-// Section 4.5 Multiplicative Operators
-//
-// ------------------------------------------------------------
-
-signed int		?*?( signed int, signed int ),				?/?( signed int, signed int ),			?%?( signed int, signed int );
-unsigned int		?*?( unsigned int, unsigned int ),			?/?( unsigned int, unsigned int ),		?%?( unsigned int, unsigned int );
-signed long int		?*?( signed long int, signed long int ),		?/?( signed long int, signed long int ),	?%?( signed long int, signed long int );
-unsigned long int	?*?( unsigned long int, unsigned long int ),		?/?( unsigned long int, unsigned long int ),	?%?( unsigned long int, unsigned 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, signed 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, unsigned long long int );
-float			?*?( float, float ),					?/?( float, float );
-double			?*?( double, double ),					?/?( double, double );
-long double		?*?( long double, long double ),			?/?( long double, long double );
-// gcc does not support _Imaginary
-//float _Imaginary	?*?( float _Imaginary, float _Imaginary),		?/?( float _Imaginary, float _Imaginary );
-//double _Imaginary	?*?( double _Imaginary, double _Imaginary),		?/?( double _Imaginary, double _Imaginary );
-//long double _Imaginary	?*?( long double _Imaginary, long double _Imaginary),	?/?( long double _Imaginary, long double _Imaginary );
-float _Complex		?*?( float _Complex, float _Complex ),			?/?( float _Complex, float _Complex );
-double _Complex		?*?( double _Complex, double _Complex ),		?/?( double _Complex, double _Complex );
-long double _Complex	?*?( long double _Complex, long double _Complex ),	?/?( long double _Complex, long double _Complex );
-
-// ------------------------------------------------------------
-//
-// Section 4.6 Additive Operators
-//
-// ------------------------------------------------------------
-
-_Bool			?+?( _Bool, _Bool ),					?-?( _Bool, _Bool );
-signed int		?+?( signed int, signed int ),				?-?( signed int, signed int );
-unsigned int		?+?( unsigned int, unsigned int ),			?-?( unsigned int, unsigned int );
-signed long int		?+?( signed long int, signed long int ),		?-?( signed long int, signed long int );
-unsigned long int	?+?( unsigned long int, unsigned long int ),		?-?( unsigned long int, unsigned long int );
-signed long long int	?+?( signed long long int, long long int  signed),	?-?( signed long long int, signed long long int );
-unsigned long long int	?+?( unsigned long long int, unsigned long long int ),	?-?( unsigned long long int, unsigned long long int );
-float			?+?( float, float ),					?-?( float, float );
-double			?+?( double, double ),					?-?( double, double );
-long double		?+?( long double, long double ),			?-?( long double, long double );
-float _Complex		?+?( float _Complex, float _Complex ),			?-?( float _Complex, float _Complex );
-double _Complex		?+?( double _Complex, double _Complex ),		?-?( double _Complex, double _Complex );
-long double _Complex	?+?( long double _Complex, long double _Complex ),	?-?( long double _Complex, long double _Complex );
-
-forall( T & | sized(T) ) T *		?+?(		    T *,	  ptrdiff_t );
-forall( T & | sized(T) ) T *		?+?(	      ptrdiff_t,		T * );
-forall( T & | sized(T) ) const T *		?+?( const	    T *,	  ptrdiff_t );
-forall( T & | sized(T) ) const T *		?+?(	      ptrdiff_t, const		T * );
-forall( T & | sized(T) ) volatile T *	?+?(	   volatile T *,	  ptrdiff_t );
-forall( T & | sized(T) ) volatile T *	?+?(	      ptrdiff_t,       volatile T * );
-forall( T & | sized(T) ) const volatile T *	?+?( const volatile T *,	  ptrdiff_t );
-forall( T & | sized(T) ) const volatile T *	?+?(	      ptrdiff_t, const volatile T * );
-forall( T & | sized(T) ) T *		?-?(		    T *,	  ptrdiff_t );
-forall( T & | sized(T) ) const T *		?-?( const	    T *,	  ptrdiff_t );
-forall( T & | sized(T) ) volatile T *	?-?(	   volatile T *,	  ptrdiff_t );
-forall( T & | sized(T) ) const volatile T *	?-?( const volatile T *,	  ptrdiff_t );
-forall( T & | sized(T) ) ptrdiff_t		?-?( const volatile T *, const volatile T * );
-
-// ------------------------------------------------------------
-//
-// Section 4.7 Bitwise Shift Operators
-//
-// ------------------------------------------------------------
-
-signed int		?<<?( signed int, signed int ),				?>>?( signed int, signed int );
-unsigned int		?<<?( unsigned int, unsigned int ),			?>>?( unsigned int, unsigned int );
-signed long int		?<<?( signed long int, signed long int ),		?>>?( signed long int, signed long int );
-unsigned long int	?<<?( unsigned long int, unsigned long int ),		?>>?( unsigned long int, unsigned long int );
-signed long long int	?<<?( signed long long int, signed long long int ),	?>>?( signed long long int, signed long long int );
-unsigned long long int	?<<?( unsigned long long int, unsigned long long int ),	?>>?( unsigned long long int, unsigned long long int );
-
-// ------------------------------------------------------------
-//
-// Section 4.8 Relational Operators
-//
-// ------------------------------------------------------------
-
-signed int ?<?( _Bool, _Bool ),						?<=?( _Bool, _Bool ),
-	   ?>?( _Bool, _Bool ),						?>=?( _Bool, _Bool );
-signed int ?<?( char, char ),						?<=?( char, char ),
-	   ?>?( char, char ),						?>=?( char, char );
-signed int ?<?( signed char, signed char ),				?<=?( signed char, signed char ),
-	   ?>?( signed char, signed char ),				?>=?( signed char, signed char );
-signed int ?<?( unsigned char, unsigned char ),				?<=?( unsigned char, unsigned char ),
-	   ?>?( unsigned char, unsigned char ),				?>=?( unsigned char, unsigned char );
-signed int ?<?( signed short, signed short ),				?<=?( signed short, signed short ),
-	   ?>?( signed short, signed short ),				?>=?( signed short, signed short );
-signed int ?<?( unsigned short, unsigned short ),			?<=?( unsigned short, unsigned short ),
-	   ?>?( unsigned short, unsigned short ),			?>=?( unsigned short, unsigned short );
-signed int ?<?( signed int, signed int ),				?<=?( signed int, signed int ),
-	   ?>?( signed int, signed int ),				?>=?( signed int, signed int );
-signed int ?<?( unsigned int, unsigned int ),				?<=?( unsigned int, unsigned int ),
-	   ?>?( unsigned int, unsigned int ),				?>=?( unsigned int, unsigned int );
-signed int ?<?( signed long int, signed long int ),			?<=?( signed long int, signed long int ),
-	   ?>?( signed long int, signed long int ),			?>=?( signed long int, signed long int );
-signed int ?<?( unsigned long int, unsigned long int ),			?<=?( unsigned long int, unsigned long int ),
-	   ?>?( unsigned long int, unsigned long int ),			?>=?( unsigned long int, unsigned long int );
-signed 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 ),		?>=?( signed long long int, signed long long int );
-signed 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 ),	?>=?( unsigned long long int, unsigned long long int );
-signed int ?<?( float, float ),						?<=?( float, float ),
-	   ?>?( float, float ),						?>=?( float, float );
-signed int ?<?( double, double ),					?<=?( double, double ),
-	   ?>?( double, double ),					?>=?( double, double );
-signed int ?<?( long double, long double ),				?<=?( long double, long double ),
-	   ?>?( long double, long double ),				?>=?( long double, long double );
-
-forall( DT & ) signed int ?<?(                 DT *,                DT * );
-forall( DT & ) signed int ?<?(  const          DT *, const          DT * );
-forall( DT & ) signed int ?<?(        volatile DT *,       volatile DT * );
-forall( DT & ) signed int ?<?(  const volatile DT *, const volatile DT * );
-
-forall( DT & ) signed int ?>?(                 DT *,                DT * );
-forall( DT & ) signed int ?>?(  const          DT *, const          DT * );
-forall( DT & ) signed int ?>?(        volatile DT *,       volatile DT * );
-forall( DT & ) signed int ?>?(  const volatile DT *, const volatile DT * );
-
-forall( DT & ) signed int ?<=?(                 DT *,                DT * );
-forall( DT & ) signed int ?<=?(  const          DT *, const          DT * );
-forall( DT & ) signed int ?<=?(        volatile DT *,       volatile DT * );
-forall( DT & ) signed int ?<=?( const volatile DT *, const volatile DT * );
-
-forall( DT & ) signed int ?>=?(                 DT *,                DT * );
-forall( DT & ) signed int ?>=?(  const          DT *, const          DT * );
-forall( DT & ) signed int ?>=?(        volatile DT *,       volatile DT * );
-forall( DT & ) signed int ?>=?( const volatile DT *, const volatile DT * );
-
-// ------------------------------------------------------------
-//
-// Section 4.9 Equality Operators
-//
-// ------------------------------------------------------------
-
-signed int ?==?( _Bool, _Bool ),							?!=?( _Bool, _Bool );
-signed int ?==?( char, char ),								?!=?( char, char );
-signed int ?==?( signed char, signed char ),				?!=?( signed char, signed char );
-signed int ?==?( unsigned char, unsigned char ),			?!=?( unsigned char, unsigned char );
-signed int ?==?( signed short, signed short ),				?!=?( signed short, signed short );
-signed int ?==?( unsigned short, unsigned short ),			?!=?( unsigned short, unsigned short );
-signed int ?==?( signed int, signed int ),					?!=?( signed int, signed int );
-signed int ?==?( unsigned int, unsigned int ),					?!=?( unsigned int, unsigned int );
-signed int ?==?( signed long int, signed long int ),				?!=?( signed long int, signed long int );
-signed int ?==?( unsigned long int, unsigned long int ),			?!=?( unsigned long int, unsigned long int );
-signed int ?==?( signed long long int, long long int  signed),		?!=?( signed long long int, signed long long int );
-signed int ?==?( unsigned long long int, unsigned long long int ),	?!=?( unsigned long long int, unsigned long long int );
-signed int ?==?( float, float ),							?!=?( float, float );
-signed int ?==?( double, double ),							?!=?( double, double );
-signed int ?==?( long double, long double ),					?!=?( long double, long double );
-signed int ?==?( float _Complex, float _Complex ),				?!=?( float _Complex, float _Complex );
-signed int ?==?( double _Complex, double _Complex ),				?!=?( double _Complex, double _Complex );
-signed int ?==?( long double _Complex, long double _Complex ),		?!=?( long double _Complex, long double _Complex );
-signed int ?==?( zero_t, zero_t ),							?!=?( zero_t, zero_t );
-signed int ?==?( one_t, one_t ),							?!=?( one_t, one_t );
-
-forall( DT & ) signed int ?==?(		   DT *,		DT * );
-forall( DT & ) signed int ?==?( const	   DT *, const		DT * );
-forall( DT & ) signed int ?==?(       volatile DT *,       volatile DT * );
-forall( DT & ) signed int ?==?( const volatile DT *, const volatile DT * );
-forall( ftype FT ) signed int ?==?( FT *, FT * );
-forall( DT & ) signed int ?!=?(		   DT *,		DT * );
-forall( DT & ) signed int ?!=?( const	   DT *, const		DT * );
-forall( DT & ) signed int ?!=?(       volatile DT *,       volatile DT * );
-forall( DT & ) signed int ?!=?( const volatile DT *, const volatile DT * );
-forall( ftype FT ) signed int ?!=?( FT *, FT * );
-
-// forall( dtype DT ) signed int ?==?( const volatile DT   *, const volatile void * );
-// forall( dtype DT ) signed int ?==?( const volatile void *, const volatile DT * );
-// forall( dtype DT ) signed int ?!=?( const volatile DT   *, const volatile void * );
-// forall( dtype DT ) signed int ?!=?( const volatile void *, const volatile DT * );
-
-// forall( dtype DT ) signed int ?==?( const volatile DT *, zero_t );
-// forall( dtype DT ) signed int ?==?( zero_t, const volatile DT * );
-// forall( ftype FT ) signed int ?==?( FT *, zero_t );
-// forall( ftype FT ) signed int ?==?( zero_t, FT * );
-// forall( dtype DT ) signed int ?!=?( const volatile DT *, zero_t );
-// forall( dtype DT ) signed int ?!=?( zero_t, const volatile DT * );
-// forall( ftype FT ) signed int ?!=?( FT *, zero_t );
-// forall( ftype FT ) signed int ?!=?( zero_t, FT * );
-
-// ------------------------------------------------------------
-//
-// Section 4.10 Bitwise AND Operators
-//
-// ------------------------------------------------------------
-
-_Bool			?&?( _Bool, _Bool );
-signed int		?&?( signed int, signed int );
-unsigned int		?&?( unsigned int, unsigned int );
-signed long int		?&?( signed long int, signed long int );
-unsigned long int	?&?( unsigned long int, unsigned long int );
-signed long long int	?&?( signed long long int, signed long long int );
-unsigned long long int	?&?( unsigned long long int, unsigned long long int );
-
-// ------------------------------------------------------------
-//
-// Section 4.11 Bitwise XOR Operators
-//
-// ------------------------------------------------------------
-
-_Bool			?^?( _Bool, _Bool );
-signed int		?^?( signed int, signed int );
-unsigned int		?^?( unsigned int, unsigned int );
-signed long int		?^?( signed long int, signed long int );
-unsigned long int	?^?( unsigned long int, unsigned long int );
-signed long long int	?^?( signed long long int, signed long long int );
-unsigned long long int	?^?( unsigned long long int, unsigned long long int );
-
-// ------------------------------------------------------------
-//
-// Section 4.12 Bitwise OR Operators
-//
-// ------------------------------------------------------------
-
-_Bool			?|?( _Bool, _Bool );
-signed int		?|?( signed int, signed int );
-unsigned int		?|?( unsigned int, unsigned int );
-signed long int		?|?( signed long int, signed long int );
-unsigned long int	?|?( unsigned long int, unsigned long int );
-signed long long int	?|?( signed long long int, signed long long int );
-unsigned long long int	?|?( unsigned long long int, unsigned long long int );
-
-// ------------------------------------------------------------
-//
-// Section 4.16 Assignment Operator
-//
-// ------------------------------------------------------------
-
-forall( ftype FT ) FT *			?=?( FT *&, FT * );
-forall( ftyep FT ) FT *			?=?( FT * volatile &, FT * );
-
-forall( DT & ) DT *			?=?(		     DT *	   &,			DT * );
-forall( DT & ) DT *			?=?(		     DT * volatile &,			DT * );
-forall( DT & ) const DT *		?=?( const	     DT *	   &,			DT * );
-forall( DT & ) const DT *		?=?( const	     DT * volatile &,			DT * );
-forall( DT & ) const DT *		?=?( const	     DT *	   &, const		DT * );
-forall( DT & ) const DT *		?=?( const	     DT * volatile &, const		DT * );
-forall( DT & ) volatile DT *	?=?(	   volatile  DT *	   &,			DT * );
-forall( DT & ) volatile DT *	?=?(	   volatile  DT * volatile &,			DT * );
-forall( DT & ) volatile DT *	?=?(	   volatile  DT *	   &,	    volatile	DT * );
-forall( DT & ) volatile DT *	?=?(	   volatile  DT * volatile &,	    volatile	DT * );
-
-forall( DT & ) const volatile DT *	?=?( const volatile  DT *	   &,			DT * );
-forall( DT & ) const volatile DT *  ?=?( const volatile  DT * volatile &,			DT * );
-forall( DT & ) const volatile DT *  ?=?( const volatile  DT *	   &, const		DT * );
-forall( DT & ) const volatile DT *  ?=?( const volatile  DT * volatile &, const		DT * );
-forall( DT & ) const volatile DT *  ?=?( const volatile  DT *	   &,	    volatile	DT * );
-forall( DT & ) const volatile DT *  ?=?( const volatile  DT * volatile &,	    volatile	DT * );
-forall( DT & ) const volatile DT *  ?=?( const volatile  DT *	   &, const volatile	DT * );
-forall( DT & ) const volatile DT *  ?=?( const volatile  DT * volatile &, const volatile	DT * );
-
-forall( DT & ) void *		 ?=?(		     void *	     &,			DT * );
-forall( DT & ) void *		 ?=?(		     void * volatile &,			DT * );
-forall( DT & ) const void *		 ?=?( const	     void *	     &,			DT * );
-forall( DT & ) const void *		 ?=?( const	     void * volatile &,			DT * );
-forall( DT & ) const void *		 ?=?( const	     void *	     &, const		DT * );
-forall( DT & ) const void *		 ?=?( const	     void * volatile &, const		DT * );
-forall( DT & ) volatile void *	 ?=?(	    volatile void *	     &,			DT * );
-forall( DT & ) volatile void *	 ?=?(	    volatile void * volatile &,			DT * );
-forall( DT & ) volatile void *	 ?=?(	    volatile void *	     &,	      volatile	DT * );
-forall( DT & ) volatile void *	 ?=?(	    volatile void * volatile &,	      volatile	DT * );
-forall( DT & ) const volatile void * ?=?( const volatile void *	     &,			DT * );
-forall( DT & ) const volatile void * ?=?( const volatile void * volatile &,			DT * );
-forall( DT & ) const volatile void * ?=?( const volatile void *	     &, const		DT * );
-forall( DT & ) const volatile void * ?=?( const volatile void * volatile &, const		DT * );
-forall( DT & ) const volatile void * ?=?( const volatile void *	     &,	      volatile	DT * );
-forall( DT & ) const volatile void * ?=?( const volatile void * volatile &,	      volatile	DT * );
-forall( DT & ) const volatile void * ?=?( const volatile void *	     &, const volatile	DT * );
-forall( DT & ) const volatile void * ?=?( const volatile void * volatile &, const volatile	DT * );
-
-//forall( dtype DT ) DT *			?=?(		    DT *	  &, zero_t );
-//forall( dtype DT ) DT *			?=?(		    DT * volatile &, zero_t );
-forall( DT & ) const DT *		?=?( const	    DT *	  &, zero_t );
-forall( DT & ) const DT *		?=?( const	    DT * volatile &, zero_t );
-//forall( dtype DT ) volatile DT *	?=?( volatile	    DT *	  &, zero_t );
-//forall( dtype DT ) volatile DT *	?=?( volatile	    DT * volatile &, zero_t );
-forall( DT & ) const volatile DT *	?=?( const volatile DT *	  &, zero_t );
-forall( DT & ) const volatile DT *	?=?( const volatile DT * volatile &, zero_t );
-
-forall( ftype FT ) FT *			?=?( FT *	   &, zero_t );
-forall( ftype FT ) FT *			?=?( FT * volatile &, zero_t );
-
-forall( T & | sized(T) ) T *		?+=?(		     T *	  &, ptrdiff_t );
-forall( T & | sized(T) ) T *		?+=?(		     T * volatile &, ptrdiff_t );
-forall( T & | sized(T) ) const T *		?+=?( const	     T *	  &, ptrdiff_t );
-forall( T & | sized(T) ) const T *		?+=?( const	     T * volatile &, ptrdiff_t );
-forall( T & | sized(T) ) volatile T *	?+=?(	    volatile T *	  &, ptrdiff_t );
-forall( T & | sized(T) ) volatile T *	?+=?(	    volatile T * volatile &, ptrdiff_t );
-forall( T & | sized(T) ) const volatile T *	?+=?( const volatile T *	  &, ptrdiff_t );
-forall( T & | sized(T) ) const volatile T *	?+=?( const volatile T * volatile &, ptrdiff_t );
-forall( T & | sized(T) ) T *		?-=?(		     T *	  &, ptrdiff_t );
-forall( T & | sized(T) ) T *		?-=?(		     T * volatile &, ptrdiff_t );
-forall( T & | sized(T) ) const T *		?-=?( const	     T *	  &, ptrdiff_t );
-forall( T & | sized(T) ) const T *		?-=?( const	     T * volatile &, ptrdiff_t );
-forall( T & | sized(T) ) volatile T *	?-=?(	    volatile T *	  &, ptrdiff_t );
-forall( T & | sized(T) ) volatile T *	?-=?(	    volatile T * volatile &, ptrdiff_t );
-forall( T & | sized(T) ) const volatile T *	?-=?( const volatile T *	  &, ptrdiff_t );
-forall( T & | sized(T) ) const volatile T *	?-=?( const volatile T * volatile &, ptrdiff_t );
-
-_Bool			?=?( _Bool &, _Bool ),					?=?( volatile _Bool &, _Bool );
-char			?=?( char &, char ),					?=?( volatile char &, char );
-char signed		?=?( char signed &, char signed ),			?=?( volatile char signed &, char signed );
-char unsigned		?=?( char unsigned &, char unsigned ),			?=?( volatile char unsigned &, char unsigned );
-int short		?=?( int short &, int short ),				?=?( volatile int short &, int short );
-int short unsigned	?=?( int short unsigned &, int short unsigned ),	?=?( volatile int short unsigned &, int short unsigned );
-signed int		?=?( signed int &, signed int ),			?=?( volatile signed int &, signed int );
-unsigned int		?=?( unsigned &, unsigned ),				?=?( volatile unsigned &, unsigned );
-signed long int		?=?( signed long int &, signed long int ),		?=?( volatile signed long int &, signed long int );
-unsigned long int	?=?( unsigned long int &, unsigned long int ),		?=?( volatile unsigned long int &, unsigned long int );
-signed long long int	?=?( signed long long int &, signed long long int ),	?=?( volatile signed long long int &, signed long long int );
-unsigned long long int	?=?( unsigned long long int &, unsigned long long int ), ?=?( volatile unsigned long long int &, unsigned long long int );
-zero_t			?=?( zero_t &, zero_t );
-one_t			?=?( one_t &, one_t );
-
-
-char			?*=?( char &, char ),					?*=?( volatile char &, char );
-char signed		?*=?( char signed &, char signed ),			?*=?( volatile char signed &, char signed );
-char unsigned		?*=?( char unsigned &, char unsigned ),			?*=?( volatile char unsigned &, char unsigned );
-int short		?*=?( int short &, int short ),				?*=?( volatile int short &, int short );
-int short unsigned	?*=?( int short unsigned &, int short unsigned ),	?*=?( volatile int short unsigned &, int short unsigned );
-signed int		?*=?( signed int &, signed int ),			?*=?( volatile signed int &, signed int );
-unsigned int		?*=?( unsigned &, unsigned ),				?*=?( volatile unsigned &, unsigned );
-signed long int		?*=?( signed long int &, signed long int ),		?*=?( volatile signed long int &, signed long int );
-unsigned long int	?*=?( unsigned long int &, unsigned long int ),		?*=?( volatile unsigned long int &, unsigned long int );
-signed long long int	?*=?( signed long long int &, signed long long int ),	?*=?( volatile signed long long int &, signed long long int );
-unsigned long long int	?*=?( unsigned long long int &, unsigned long long int ), ?*=?( volatile unsigned long long int &, unsigned long long int );
-
-_Bool			?/=?( _Bool &, _Bool ),					?/=?( volatile _Bool &, _Bool );
-char			?/=?( char &, char ),					?/=?( volatile char &, char );
-char signed		?/=?( char signed &, char signed ),			?/=?( volatile char signed &, char signed );
-char unsigned		?/=?( char unsigned &, char unsigned ),			?/=?( volatile char unsigned &, char unsigned );
-int short		?/=?( int short &, int short ),				?/=?( volatile int short &, int short );
-int short unsigned	?/=?( int short unsigned &, int short unsigned ),	?/=?( volatile int short unsigned &, int short unsigned );
-signed int		?/=?( signed int &, signed int ),			?/=?( volatile signed int &, signed int );
-unsigned int		?/=?( unsigned &, unsigned ),				?/=?( volatile unsigned &, unsigned );
-signed long int		?/=?( signed long int &, signed long int ),		?/=?( volatile signed long int &, signed long int );
-unsigned long int	?/=?( unsigned long int &, unsigned long int ),		?/=?( volatile unsigned long int &, unsigned long int );
-signed long long int	?/=?( signed long long int &, signed long long int ),	?/=?( volatile signed long long int &, signed long long int );
-unsigned long long int	?/=?( unsigned long long int &, unsigned long long int ), ?/=?( volatile unsigned long long int &, unsigned long long int );
-
-_Bool			?%=?( _Bool &, _Bool ),					?%=?( volatile _Bool &, _Bool );
-char			?%=?( char &, char ),					?%=?( volatile char &, char );
-char signed		?%=?( char signed &, char signed ),			?%=?( volatile char signed &, char signed );
-char unsigned		?%=?( char unsigned &, char unsigned ),			?%=?( volatile char unsigned &, char unsigned );
-int short		?%=?( int short &, int short ),				?%=?( volatile int short &, int short );
-int short unsigned	?%=?( int short unsigned &, int short unsigned ),	?%=?( volatile int short unsigned &, int short unsigned );
-signed int		?%=?( signed int &, signed int ),			?%=?( volatile signed int &, signed int );
-unsigned int		?%=?( unsigned &, unsigned ),				?%=?( volatile unsigned &, unsigned );
-signed long int		?%=?( signed long int &, signed long int ),		?%=?( volatile signed long int &, signed long int );
-unsigned long int	?%=?( unsigned long int &, unsigned long int ),		?%=?( volatile unsigned long int &, unsigned long int );
-signed long long int	?%=?( signed long long int &, signed long long int ),	?%=?( volatile signed long long int &, signed long long int );
-unsigned long long int	?%=?( unsigned long long int &, unsigned long long int ), ?%=?( volatile unsigned long long int &, unsigned long long int );
-
-_Bool			?+=?( _Bool &, _Bool ),					?+=?( volatile _Bool &, _Bool );
-char			?+=?( char &, char ),					?+=?( volatile char &, char );
-char signed		?+=?( char signed &, char signed ),			?+=?( volatile char signed &, char signed );
-char unsigned		?+=?( char unsigned &, char unsigned ),			?+=?( volatile char unsigned &, char unsigned );
-int short		?+=?( int short &, int short ),				?+=?( volatile int short &, int short );
-int short unsigned	?+=?( int short unsigned &, int short unsigned ),	?+=?( volatile int short unsigned &, int short unsigned );
-signed int		?+=?( signed int &, signed int ),			?+=?( volatile signed int &, signed int );
-unsigned int		?+=?( unsigned &, unsigned ),				?+=?( volatile unsigned &, unsigned );
-signed long int		?+=?( signed long int &, signed long int ),		?+=?( volatile signed long int &, signed long int );
-unsigned long int	?+=?( unsigned long int &, unsigned long int ),		?+=?( volatile unsigned long int &, unsigned long int );
-signed long long int	?+=?( signed long long int &, signed long long int ),	?+=?( volatile signed long long int &, signed long long int );
-unsigned long long int	?+=?( unsigned long long int &, unsigned long long int ), ?+=?( volatile unsigned long long int &, unsigned long long int );
-//signed int128		?+=?( signed int128 &, signed int128 ),			?+=?( volatile signed int128 &, signed int128 );
-//unsigned int128		?+=?( unsigned int128 &, unsigned int128 ),		?+=?( volatile unsigned int128 &, unsigned int128 );
-
-_Bool			?-=?( _Bool &, _Bool ),					?-=?( volatile _Bool &, _Bool );
-char			?-=?( char &, char ),					?-=?( volatile char &, char );
-char signed		?-=?( char signed &, char signed ),			?-=?( volatile char signed &, char signed );
-char unsigned		?-=?( char unsigned &, char unsigned ),			?-=?( volatile char unsigned &, char unsigned );
-int short		?-=?( int short &, int short ),				?-=?( volatile int short &, int short );
-int short unsigned	?-=?( int short unsigned &, int short unsigned ),	?-=?( volatile int short unsigned &, int short unsigned );
-signed int		?-=?( signed int &, signed int ),			?-=?( volatile signed int &, signed int );
-unsigned int		?-=?( unsigned &, unsigned ),				?-=?( volatile unsigned &, unsigned );
-signed long int		?-=?( signed long int &, signed long int ),		?-=?( volatile signed long int &, signed long int );
-unsigned long int	?-=?( unsigned long int &, unsigned long int ),		?-=?( volatile unsigned long int &, unsigned long int );
-signed long long int	?-=?( signed long long int &, signed long long int ),	?-=?( volatile signed long long int &, signed long long int );
-unsigned long long int	?-=?( unsigned long long int &, unsigned long long int ), ?-=?( volatile unsigned long long int &, unsigned long long int );
-
-char			?<<=?( char &, char ),					?<<=?( volatile char &, char );
-char signed		?<<=?( char signed &, char signed ),			?<<=?( volatile char signed &, char signed );
-char unsigned		?<<=?( char unsigned &, char unsigned ),		?<<=?( volatile char unsigned &, char unsigned );
-int short		?<<=?( int short &, int short ),			?<<=?( volatile int short &, int short );
-int short unsigned	?<<=?( int short unsigned &, int short unsigned ),	?<<=?( volatile int short unsigned &, int short unsigned );
-signed int		?<<=?( signed int &, signed int ),			?<<=?( volatile signed int &, signed int );
-unsigned int		?<<=?( unsigned &, unsigned ),				?<<=?( volatile unsigned &, unsigned );
-signed long int		?<<=?( signed long int &, signed long int ),		?<<=?( volatile signed long int &, signed long int );
-unsigned long int	?<<=?( unsigned long int &, unsigned long int ),	?<<=?( volatile unsigned long int &, unsigned long int );
-signed long long int	?<<=?( signed long long int &, signed long long int ),	?<<=?( volatile signed long long int &, signed long long int );
-unsigned long long int	?<<=?( unsigned long long int &, unsigned long long int ), ?<<=?( volatile unsigned long long int &, unsigned long long int );
-
-char			?>>=?( char &, char ),					?>>=?( volatile char &, char );
-char signed		?>>=?( char signed &, char signed ),			?>>=?( volatile char signed &, char signed );
-char unsigned		?>>=?( char unsigned &, char unsigned ),		?>>=?( volatile char unsigned &, char unsigned );
-int short		?>>=?( int short &, int short ),			?>>=?( volatile int short &, int short );
-int short unsigned	?>>=?( int short unsigned &, int short unsigned ),	?>>=?( volatile int short unsigned &, int short unsigned );
-signed int		?>>=?( signed int &, signed int ),			?>>=?( volatile signed int &, signed int );
-unsigned int		?>>=?( unsigned &, unsigned ),				?>>=?( volatile unsigned &, unsigned );
-signed long int		?>>=?( signed long int &, signed long int ),		?>>=?( volatile signed long int &, signed long int );
-unsigned long int	?>>=?( unsigned long int &, unsigned long int ),	?>>=?( volatile unsigned long int &, unsigned long int );
-signed long long int	?>>=?( signed long long int &, signed long long int ),	?>>=?( volatile signed long long int &, signed long long int );
-unsigned long long int	?>>=?( unsigned long long int &, unsigned long long int ), ?>>=?( volatile unsigned long long int &, unsigned long long int );
-
-_Bool			?&=?( _Bool &, _Bool ),					?&=?( volatile _Bool &, _Bool );
-char			?&=?( char &, char ),					?&=?( volatile char &, char );
-char signed		?&=?( char signed &, char signed ),			?&=?( volatile char signed &, char signed );
-char unsigned		?&=?( char unsigned &, char unsigned ),			?&=?( volatile char unsigned &, char unsigned );
-int short		?&=?( int short &, int short ),				?&=?( volatile int short &, int short );
-int short unsigned	?&=?( int short unsigned &, int short unsigned ),	?&=?( volatile int short unsigned &, int short unsigned );
-signed int		?&=?( signed int &, signed int ),			?&=?( volatile signed int &, signed int );
-unsigned int		?&=?( unsigned &, unsigned ),				?&=?( volatile unsigned &, unsigned );
-signed long int		?&=?( signed long int &, signed long int ),		?&=?( volatile signed long int &, signed long int );
-unsigned long int	?&=?( unsigned long int &, unsigned long int ),		?&=?( volatile unsigned long int &, unsigned long int );
-signed long long int	?&=?( signed long long int &, signed long long int ),	?&=?( volatile signed long long int &, signed long long int );
-unsigned long long int	?&=?( unsigned long long int &, unsigned long long int ), ?&=?( volatile unsigned long long int &, unsigned long long int );
-
-_Bool			?|=?( _Bool &, _Bool ),					?|=?( volatile _Bool &, _Bool );
-char			?|=?( char &, char ),					?|=?( volatile char &, char );
-char signed		?|=?( char signed &, char signed ),			?|=?( volatile char signed &, char signed );
-char unsigned		?|=?( char unsigned &, char unsigned ),			?|=?( volatile char unsigned &, char unsigned );
-int short		?|=?( int short &, int short ),				?|=?( volatile int short &, int short );
-int short unsigned	?|=?( int short unsigned &, int short unsigned ),	?|=?( volatile int short unsigned &, int short unsigned );
-signed int		?|=?( signed int &, signed int ),			?|=?( volatile signed int &, signed int );
-unsigned int		?|=?( unsigned &, unsigned ),				?|=?( volatile unsigned &, unsigned );
-signed long int		?|=?( signed long int &, signed long int ),		?|=?( volatile signed long int &, signed long int );
-unsigned long int	?|=?( unsigned long int &, unsigned long int ),		?|=?( volatile unsigned long int &, unsigned long int );
-signed long long int	?|=?( signed long long int &, signed long long int ),	?|=?( volatile signed long long int &, signed long long int );
-unsigned long long int	?|=?( unsigned long long int &, unsigned long long int ), ?|=?( volatile unsigned long long int &, unsigned long long int );
-
-_Bool			?^=?( _Bool &, _Bool ),					?^=?( volatile _Bool &, _Bool );
-char			?^=?( char &, char ),					?^=?( volatile char &, char );
-char signed		?^=?( char signed &, char signed ),			?^=?( volatile char signed &, char signed );
-char unsigned		?^=?( char unsigned &, char unsigned ),			?^=?( volatile char unsigned &, char unsigned );
-int short		?^=?( int short &, int short ),				?^=?( volatile int short &, int short );
-int short unsigned	?^=?( int short unsigned &, int short unsigned ),	?^=?( volatile int short unsigned &, int short unsigned );
-signed int		?^=?( signed int &, signed int ),			?^=?( volatile signed int &, signed int );
-unsigned int		?^=?( unsigned &, unsigned ),				?^=?( volatile unsigned &, unsigned );
-signed long int		?^=?( signed long int &, signed long int ),		?^=?( volatile signed long int &, signed long int );
-unsigned long int	?^=?( unsigned long int &, unsigned long int ),		?^=?( volatile unsigned long int &, unsigned long int );
-signed long long int	?^=?( signed long long int &, signed long long int ),	?^=?( volatile signed long long int &, signed long long int );
-unsigned long long int	?^=?( unsigned long long int &, unsigned long long int ), ?^=?( volatile unsigned long long int &, unsigned long long int );
-
-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 );
-
-float _Complex		?=?(  float _Complex &, float _Complex ), ?=?(  volatile float _Complex &, float _Complex ),
-			?*=?( float _Complex &, float _Complex ), ?*=?( volatile float _Complex &, float _Complex ),
-			?/=?( float _Complex &, float _Complex ), ?/=?( volatile float _Complex &, float _Complex ),
-			?+=?( float _Complex &, float _Complex ), ?+=?( volatile float _Complex &, float _Complex ),
-			?-=?( float _Complex &, float _Complex ), ?-=?( volatile float _Complex &, float _Complex );
-
-double _Complex		?=?(  double _Complex &, double _Complex ), ?=?(  volatile double _Complex &, double _Complex ),
-			?*=?( double _Complex &, double _Complex ), ?*=?( volatile double _Complex &, double _Complex ),
-			?/=?( double _Complex &, double _Complex ), ?/=?( volatile double _Complex &, double _Complex ),
-			?+=?( double _Complex &, double _Complex ), ?+=?( volatile double _Complex &, double _Complex ),
-			?-=?( double _Complex &, double _Complex ), ?-=?( volatile double _Complex &, double _Complex );
-
-long double _Complex	?=?(  long double _Complex &, long double _Complex ), ?=?(  volatile long double _Complex &, long double _Complex ),
-			?*=?( long double _Complex &, long double _Complex ), ?*=?( volatile long double _Complex &, long double _Complex ),
-			?/=?( long double _Complex &, long double _Complex ), ?/=?( volatile long double _Complex &, long double _Complex ),
-			?+=?( long double _Complex &, long double _Complex ), ?+=?( volatile long double _Complex &, long double _Complex ),
-			?-=?( long double _Complex &, long double _Complex ), ?-=?( volatile long double _Complex &, long double _Complex );
-
-
-// ------------------------------------------------------------
-//
-// Section ??? Constructors and Destructors
-//
-// ------------------------------------------------------------
-
-// default ctor
-void	?{}( _Bool & );
-void	?{}( char & );
-void	?{}( unsigned char & );
-void	?{}( char signed & );
-void	?{}( int short & );
-void	?{}( int short unsigned & );
-void	?{}( signed int & );
-void	?{}( unsigned int & );
-void	?{}( signed long int & );
-void	?{}( unsigned long int & );
-void	?{}( signed long long int & );
-void	?{}( unsigned long long int & );
-void	?{}( float & );
-void	?{}( double & );
-void	?{}( long double & );
-void	?{}( float _Complex & );
-void	?{}( double _Complex & );
-void	?{}( long double _Complex & );
-void	?{}( zero_t & );
-void	?{}( one_t & );
-
-// copy ctor
-void	?{}( _Bool &, _Bool );
-void	?{}( char &, char );
-void	?{}( unsigned char &, unsigned char );
-void	?{}( char signed &, char signed );
-void	?{}( int short &, int short );
-void	?{}( int short unsigned &, int short unsigned );
-void	?{}( signed int &, signed int);
-void	?{}( unsigned int &, unsigned int);
-void	?{}( signed long int &, signed long int);
-void	?{}( unsigned long int &, unsigned long int);
-void	?{}( signed long long int &, signed long long int);
-void	?{}( unsigned long long int &, unsigned long long int);
-void	?{}( float &, float);
-void	?{}( double &, double);
-void	?{}( long double &, long double);
-void	?{}( float _Complex &, float _Complex);
-void	?{}( double _Complex &, double _Complex);
-void	?{}( long double _Complex &, long double _Complex);
-void	?{}( zero_t &, zero_t );
-void	?{}( one_t &, one_t );
-
-// dtor
-void	^?{}( _Bool & );
-void	^?{}( char & );
-void	^?{}( char unsigned & );
-void	^?{}( char signed & );
-void	^?{}( int short & );
-void	^?{}( int short unsigned & );
-void	^?{}( signed int & );
-void	^?{}( unsigned int & );
-void	^?{}( signed long int & );
-void	^?{}( unsigned long int & );
-void	^?{}( signed long long int & );
-void	^?{}( unsigned long long int & );
-void	^?{}( float & );
-void	^?{}( double & );
-void	^?{}( long double & );
-void	^?{}( float _Complex & );
-void	^?{}( double _Complex & );
-void	^?{}( long double _Complex & );
-void	^?{}( zero_t & );
-void	^?{}( one_t & );
-
-// // default ctor
-// forall( dtype DT ) void	 ?{}(		     DT ** );
-// forall( dtype DT ) void	 ?{}( const	     DT ** );
-// forall( dtype DT ) void	 ?{}(	    volatile DT ** );
-// forall( dtype DT ) void	 ?{}( const volatile DT ** );
-
-// // copy ctor
-// forall( dtype DT ) void	 ?{}(		     DT **, DT* );
-// forall( dtype DT ) void	 ?{}( const	     DT **, DT* );
-// forall( dtype DT ) void	 ?{}(	    volatile DT **, DT* );
-// forall( dtype DT ) void	 ?{}( const volatile DT **, DT* );
-
-// // dtor
-// forall( dtype DT ) void	^?{}(		     DT ** );
-// forall( dtype DT ) void	^?{}( const	     DT ** );
-// forall( dtype DT ) void	^?{}(	    volatile DT ** );
-// forall( dtype DT ) void	^?{}( const volatile DT ** );
-
-// copied from assignment section
-// copy constructors
-forall( ftype FT ) void ?{}( FT *&, FT * );
-forall( ftype FT ) void ?{}( FT * volatile &, FT * );
-
-forall( DT & ) void ?{}(		     DT *	   &,			DT * );
-forall( DT & ) void ?{}( const	     DT *	   &,			DT * );
-forall( DT & ) void ?{}( const	     DT *	   &, const		DT * );
-forall( DT & ) void ?{}(	   volatile  DT *	   &,			DT * );
-forall( DT & ) void ?{}(	   volatile  DT *	   &,	    volatile	DT * );
-forall( DT & ) void ?{}( const volatile  DT *	   &,			DT * );
-forall( DT & ) void ?{}( const volatile  DT *	   &, const		DT * );
-forall( DT & ) void ?{}( const volatile  DT *	   &,	    volatile	DT * );
-forall( DT & ) void ?{}( const volatile  DT *	   &, const volatile	DT * );
-
-forall( DT & ) void ?{}(		     void *	     &,			DT * );
-forall( DT & ) void ?{}( const	     void *	     &,			DT * );
-forall( DT & ) void ?{}( const	     void *	     &, const		DT * );
-forall( DT & ) void ?{}(	    volatile void *	     &,			DT * );
-forall( DT & ) void ?{}(	    volatile void *	     &,	      volatile	DT * );
-forall( DT & ) void ?{}( const volatile void *	     &,			DT * );
-forall( DT & ) void ?{}( const volatile void *	     &, const		DT * );
-forall( DT & ) void ?{}( const volatile void *	     &,	      volatile	DT * );
-forall( DT & ) void ?{}( const volatile void *	     &, const volatile	DT * );
-
-//forall( dtype DT ) void ?{}(		    DT *	  &, zero_t );
-//forall( dtype DT ) void ?{}(		    DT * volatile &, zero_t );
-forall( DT & ) void ?{}( const	    DT *	  &, zero_t );
-//forall( dtype DT ) void ?{}( volatile	    DT *	  &, zero_t );
-//forall( dtype DT ) void ?{}( volatile	    DT * volatile &, zero_t );
-forall( DT & ) void ?{}( const volatile DT *	  &, zero_t );
-
-forall( ftype FT ) void	?{}( FT *	   &, zero_t );
-
-// default ctors
-forall( ftype FT ) void	?{}( FT *	   & );
-
-forall( DT & ) void	?{}(		     DT *	   &);
-forall( DT & ) void	?{}( const	     DT *	   &);
-forall( DT & ) void	?{}(	   volatile  DT *	   &);
-forall( DT & ) void ?{}( const volatile  DT *	   &);
-
-void 	?{}(		    void *	    &);
-void 	?{}( const	    void *	    &);
-void 	?{}(	   volatile void *	    &);
-void 	?{}( const volatile void *	    &);
-
-// dtors
-forall( ftype FT ) void	^?{}( FT *	   & );
-
-forall( DT & ) void	^?{}(		     DT *	   &);
-forall( DT & ) void	^?{}( const	     DT *	   &);
-forall( DT & ) void	^?{}(	   volatile  DT *	   &);
-forall( DT & ) void ^?{}( const volatile  DT *	   &);
-
-void ^?{}(		    void *	    &);
-void ^?{}( const	    void *	    &);
-void ^?{}(	   volatile void *	    &);
-void ^?{}( const   volatile void *	    &);
-
-// Local Variables: //
-// mode: c //
-// tab-width: 8 //
-// End: //
Index: libcfa/prelude/prelude.old.cfa
===================================================================
--- libcfa/prelude/prelude.old.cfa	(revision be3f163306e87aeb232bf497922012355b5762df)
+++ libcfa/prelude/prelude.old.cfa	(revision be3f163306e87aeb232bf497922012355b5762df)
@@ -0,0 +1,783 @@
+//
+// Copyright (C) Glen Ditchfield 1994, 1999
+//
+// prelude.cf -- Standard Cforall Preample for C99
+//
+// Author           : Glen Ditchfield
+// Created On       : Sat Nov 29 07:23:41 2014
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sun Apr 22 13:21:47 2018
+// Update Count     : 103
+//
+
+# 2 "prelude.cf"  // needed for error messages from this file
+
+// Section numbers from: http://plg.uwaterloo.ca/~cforall/refrat.pdf
+
+// ------------------------------------------------------------
+//
+// Section 6.7.11 Trait Declarations
+// Note: the sized trait is used in declarations later in this
+// file, so it must be out of order.
+//
+// ------------------------------------------------------------
+
+trait sized(T &) {};
+
+// ------------------------------------------------------------
+//
+// Section 4.1 Primary Expressions
+//
+// ------------------------------------------------------------
+
+//We have none
+
+// ------------------------------------------------------------
+//
+// Section 4.2 Postfix Operators
+//
+// ------------------------------------------------------------
+
+signed short		?++( signed short & ),			?++( volatile signed short & );
+signed short		?--( signed short & ),			?--( volatile signed short & );
+unsigned short		?++( unsigned short & ),		?++( volatile unsigned short & );
+unsigned short		?--( unsigned short & ),		?--( volatile unsigned short & );
+signed int		?++( signed int & ),			?++( volatile signed int & );
+signed int		?--( signed int & ),			?--( volatile signed int & );
+unsigned int		?++( unsigned int & ),			?++( volatile unsigned int & );
+unsigned int		?--( unsigned int & ),			?--( volatile unsigned int & );
+signed long int		?++( signed long int & ),		?++( volatile signed long int & );
+signed long int		?--( signed long int & ),		?--( volatile signed long int & );
+unsigned long int	?++( unsigned long int & ),		?++( volatile unsigned long int & );
+unsigned long int	?--( unsigned long int & ),		?--( volatile unsigned long int & );
+signed long long int	?++( signed long long int & ),		?++( volatile signed long long int & );
+signed long long int	?--( signed long long int & ),		?--( volatile signed long long int & );
+unsigned long long int	?++( unsigned long long int & ),	?++( volatile unsigned long long int & );
+unsigned long long int	?--( unsigned long long int & ),	?--( volatile unsigned long long int & );
+float			?++( float & ),				?++( volatile float & );
+float			?--( float & ),				?--( volatile float & );
+double			?++( double & ),			?++( volatile double & );
+double			?--( double & ),			?--( volatile double & );
+long double		?++( long double & ),			?++( volatile long double & );
+long double		?--( long double & ),			?--( volatile long double & );
+float _Complex		?++( float _Complex & ),		?++( volatile float _Complex & );
+float _Complex		?--( float _Complex & ),		?--( volatile float _Complex & );
+double _Complex		?++( double _Complex & ),		?++( volatile double _Complex & );
+double _Complex		?--( double _Complex & ),		?--( volatile double _Complex & );
+long double _Complex	?++( long double _Complex & ),		?++( volatile long double _Complex & );
+long double _Complex	?--( long double _Complex & ),		?--( volatile long double _Complex & );
+
+forall( T & | sized(T) ) T *			 ?++(		     T *& );
+forall( T & | sized(T) ) const T *		 ?++( const	     T *& );
+forall( T & | sized(T) ) volatile T *		 ?++(	    volatile T *& );
+forall( T & | sized(T) ) const volatile T *	 ?++( const volatile T *& );
+forall( T & | sized(T) ) T *			 ?--(		     T *& );
+forall( T & | sized(T) ) const T *		 ?--( const	     T *& );
+forall( T & | sized(T) ) volatile T *		 ?--(	    volatile T *& );
+forall( T & | sized(T) ) const volatile T *	 ?--( const volatile T *& );
+
+forall( T & | sized(T) ) T &		 ?[?](		      T *,	    ptrdiff_t );
+forall( T & | sized(T) ) const T &	 ?[?]( const	      T *,	    ptrdiff_t );
+forall( T & | sized(T) ) volatile T &	 ?[?](       volatile T *,	    ptrdiff_t );
+forall( T & | sized(T) ) const volatile T & ?[?]( const volatile T *,	    ptrdiff_t );
+forall( T & | sized(T) ) T &		 ?[?](		ptrdiff_t,		  T * );
+forall( T & | sized(T) ) const T &	 ?[?](		ptrdiff_t, const	  T * );
+forall( T & | sized(T) ) volatile T &	 ?[?](		ptrdiff_t,	 volatile T * );
+forall( T & | sized(T) ) const volatile T & ?[?](		ptrdiff_t, const volatile T * );
+
+// ------------------------------------------------------------
+//
+// Section 4.3 Unary Operators
+//
+// ------------------------------------------------------------
+
+signed short	++?( signed short & ),			--?( signed short & );
+signed int		++?( signed int & ),			--?( signed int & );
+unsigned short		++?( unsigned int & ),			--?( unsigned int & );
+unsigned int		++?( unsigned short & ),		--?( unsigned short & );
+signed long int		++?( signed long int & ),		--?( signed long int & );
+unsigned long int	++?( unsigned long int & ),		--?( unsigned long int & );
+signed long long int	++?( signed long long int & ),		--?( signed long long int & );
+unsigned long long int	++?( unsigned long long int & ),	--?( unsigned long long int & );
+float			++?( float & ),				--?( float & );
+double			++?( double & ),			--?( double & );
+long double		++?( long double & ),			--?( long double & );
+float _Complex		++?( float _Complex & ),		--?( float _Complex & );
+double _Complex		++?( double _Complex & ),		--?( double _Complex & );
+long double _Complex	++?( long double _Complex & ),		--?( long double _Complex & );
+
+forall( T & | sized(T) ) T *			 ++?(		     T *& );
+forall( T & | sized(T) ) const T *		 ++?( const	     T *& );
+forall( T & | sized(T) ) volatile T *		 ++?(	    volatile T *& );
+forall( T & | sized(T) ) const volatile T *	 ++?( const volatile T *& );
+forall( T & | sized(T) ) T *			 --?(		     T *& );
+forall( T & | sized(T) ) const T *		 --?( const	     T *& );
+forall( T & | sized(T) ) volatile T *		 --?(	    volatile T *& );
+forall( T & | sized(T) ) const volatile T *	 --?( const volatile T *& );
+
+forall( T & | sized(T) ) T &		 *?(		     T * );
+forall( T & | sized(T) ) const T &		 *?( const	     T * );
+forall( T & | sized(T) ) volatile T &	 *?(       volatile  T * );
+forall( T & | sized(T) ) const volatile T & *?( const volatile  T * );
+forall( ftype FT ) FT &		 *?( FT * );
+
+_Bool			+?( _Bool ),			-?( _Bool );
+signed int		+?( signed int ),		-?( signed int ),		~?( signed int );
+unsigned int		+?( unsigned int ),		-?( unsigned int ),		~?( unsigned int );
+signed long int		+?( signed long int ),		-?( signed long int ),		~?( signed long int );
+unsigned long int	+?( unsigned long int ),	-?( unsigned long int ),	~?( unsigned long int );
+signed long long int	+?( signed long long int ),	-?( signed long long int ),	~?( signed long long int );
+unsigned long long int	+?( unsigned long long int ),	-?( unsigned long long int ),	~?( unsigned long long int );
+float			+?( float ),			-?( float );
+double			+?( double ),			-?( double );
+long double		+?( long double ),		-?( long double );
+float _Complex		+?( float _Complex ),		-?( float _Complex );
+double _Complex		+?( double _Complex ),		-?( double _Complex );
+long double _Complex	+?( long double _Complex ),	-?( long double _Complex );
+
+signed int	!?( signed int ),		!?( unsigned int ),
+		!?( long int ),			!?( unsigned long int ),
+		!?( long long int ),		!?( unsigned long long int ),
+		!?( float ),			!?( double ),			!?( long double ),
+		!?( float _Complex ),		!?( double _Complex ),		!?( long double _Complex );
+
+forall( DT & ) int !?(                DT * );
+forall( DT & ) int !?( const          DT * );
+forall( DT & ) int !?(       volatile DT * );
+forall( DT & ) int !?( const volatile DT * );
+forall( ftype FT ) int !?( FT * );
+
+// ------------------------------------------------------------
+//
+// Section 4.5 Multiplicative Operators
+//
+// ------------------------------------------------------------
+
+signed int		?*?( signed int, signed int ),				?/?( signed int, signed int ),			?%?( signed int, signed int );
+unsigned int		?*?( unsigned int, unsigned int ),			?/?( unsigned int, unsigned int ),		?%?( unsigned int, unsigned int );
+signed long int		?*?( signed long int, signed long int ),		?/?( signed long int, signed long int ),	?%?( signed long int, signed long int );
+unsigned long int	?*?( unsigned long int, unsigned long int ),		?/?( unsigned long int, unsigned long int ),	?%?( unsigned long int, unsigned 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, signed 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, unsigned long long int );
+float			?*?( float, float ),					?/?( float, float );
+double			?*?( double, double ),					?/?( double, double );
+long double		?*?( long double, long double ),			?/?( long double, long double );
+// gcc does not support _Imaginary
+//float _Imaginary	?*?( float _Imaginary, float _Imaginary),		?/?( float _Imaginary, float _Imaginary );
+//double _Imaginary	?*?( double _Imaginary, double _Imaginary),		?/?( double _Imaginary, double _Imaginary );
+//long double _Imaginary	?*?( long double _Imaginary, long double _Imaginary),	?/?( long double _Imaginary, long double _Imaginary );
+float _Complex		?*?( float _Complex, float _Complex ),			?/?( float _Complex, float _Complex );
+double _Complex		?*?( double _Complex, double _Complex ),		?/?( double _Complex, double _Complex );
+long double _Complex	?*?( long double _Complex, long double _Complex ),	?/?( long double _Complex, long double _Complex );
+
+// ------------------------------------------------------------
+//
+// Section 4.6 Additive Operators
+//
+// ------------------------------------------------------------
+
+_Bool			?+?( _Bool, _Bool ),					?-?( _Bool, _Bool );
+signed int		?+?( signed int, signed int ),				?-?( signed int, signed int );
+unsigned int		?+?( unsigned int, unsigned int ),			?-?( unsigned int, unsigned int );
+signed long int		?+?( signed long int, signed long int ),		?-?( signed long int, signed long int );
+unsigned long int	?+?( unsigned long int, unsigned long int ),		?-?( unsigned long int, unsigned long int );
+signed long long int	?+?( signed long long int, long long int  signed),	?-?( signed long long int, signed long long int );
+unsigned long long int	?+?( unsigned long long int, unsigned long long int ),	?-?( unsigned long long int, unsigned long long int );
+float			?+?( float, float ),					?-?( float, float );
+double			?+?( double, double ),					?-?( double, double );
+long double		?+?( long double, long double ),			?-?( long double, long double );
+float _Complex		?+?( float _Complex, float _Complex ),			?-?( float _Complex, float _Complex );
+double _Complex		?+?( double _Complex, double _Complex ),		?-?( double _Complex, double _Complex );
+long double _Complex	?+?( long double _Complex, long double _Complex ),	?-?( long double _Complex, long double _Complex );
+
+forall( T & | sized(T) ) T *		?+?(		    T *,	  ptrdiff_t );
+forall( T & | sized(T) ) T *		?+?(	      ptrdiff_t,		T * );
+forall( T & | sized(T) ) const T *		?+?( const	    T *,	  ptrdiff_t );
+forall( T & | sized(T) ) const T *		?+?(	      ptrdiff_t, const		T * );
+forall( T & | sized(T) ) volatile T *	?+?(	   volatile T *,	  ptrdiff_t );
+forall( T & | sized(T) ) volatile T *	?+?(	      ptrdiff_t,       volatile T * );
+forall( T & | sized(T) ) const volatile T *	?+?( const volatile T *,	  ptrdiff_t );
+forall( T & | sized(T) ) const volatile T *	?+?(	      ptrdiff_t, const volatile T * );
+forall( T & | sized(T) ) T *		?-?(		    T *,	  ptrdiff_t );
+forall( T & | sized(T) ) const T *		?-?( const	    T *,	  ptrdiff_t );
+forall( T & | sized(T) ) volatile T *	?-?(	   volatile T *,	  ptrdiff_t );
+forall( T & | sized(T) ) const volatile T *	?-?( const volatile T *,	  ptrdiff_t );
+forall( T & | sized(T) ) ptrdiff_t		?-?( const volatile T *, const volatile T * );
+
+// ------------------------------------------------------------
+//
+// Section 4.7 Bitwise Shift Operators
+//
+// ------------------------------------------------------------
+
+signed int		?<<?( signed int, signed int ),				?>>?( signed int, signed int );
+unsigned int		?<<?( unsigned int, unsigned int ),			?>>?( unsigned int, unsigned int );
+signed long int		?<<?( signed long int, signed long int ),		?>>?( signed long int, signed long int );
+unsigned long int	?<<?( unsigned long int, unsigned long int ),		?>>?( unsigned long int, unsigned long int );
+signed long long int	?<<?( signed long long int, signed long long int ),	?>>?( signed long long int, signed long long int );
+unsigned long long int	?<<?( unsigned long long int, unsigned long long int ),	?>>?( unsigned long long int, unsigned long long int );
+
+// ------------------------------------------------------------
+//
+// Section 4.8 Relational Operators
+//
+// ------------------------------------------------------------
+
+signed int ?<?( _Bool, _Bool ),						?<=?( _Bool, _Bool ),
+	   ?>?( _Bool, _Bool ),						?>=?( _Bool, _Bool );
+signed int ?<?( char, char ),						?<=?( char, char ),
+	   ?>?( char, char ),						?>=?( char, char );
+signed int ?<?( signed char, signed char ),				?<=?( signed char, signed char ),
+	   ?>?( signed char, signed char ),				?>=?( signed char, signed char );
+signed int ?<?( unsigned char, unsigned char ),				?<=?( unsigned char, unsigned char ),
+	   ?>?( unsigned char, unsigned char ),				?>=?( unsigned char, unsigned char );
+signed int ?<?( signed short, signed short ),				?<=?( signed short, signed short ),
+	   ?>?( signed short, signed short ),				?>=?( signed short, signed short );
+signed int ?<?( unsigned short, unsigned short ),			?<=?( unsigned short, unsigned short ),
+	   ?>?( unsigned short, unsigned short ),			?>=?( unsigned short, unsigned short );
+signed int ?<?( signed int, signed int ),				?<=?( signed int, signed int ),
+	   ?>?( signed int, signed int ),				?>=?( signed int, signed int );
+signed int ?<?( unsigned int, unsigned int ),				?<=?( unsigned int, unsigned int ),
+	   ?>?( unsigned int, unsigned int ),				?>=?( unsigned int, unsigned int );
+signed int ?<?( signed long int, signed long int ),			?<=?( signed long int, signed long int ),
+	   ?>?( signed long int, signed long int ),			?>=?( signed long int, signed long int );
+signed int ?<?( unsigned long int, unsigned long int ),			?<=?( unsigned long int, unsigned long int ),
+	   ?>?( unsigned long int, unsigned long int ),			?>=?( unsigned long int, unsigned long int );
+signed 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 ),		?>=?( signed long long int, signed long long int );
+signed 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 ),	?>=?( unsigned long long int, unsigned long long int );
+signed int ?<?( float, float ),						?<=?( float, float ),
+	   ?>?( float, float ),						?>=?( float, float );
+signed int ?<?( double, double ),					?<=?( double, double ),
+	   ?>?( double, double ),					?>=?( double, double );
+signed int ?<?( long double, long double ),				?<=?( long double, long double ),
+	   ?>?( long double, long double ),				?>=?( long double, long double );
+
+forall( DT & ) signed int ?<?(                 DT *,                DT * );
+forall( DT & ) signed int ?<?(  const          DT *, const          DT * );
+forall( DT & ) signed int ?<?(        volatile DT *,       volatile DT * );
+forall( DT & ) signed int ?<?(  const volatile DT *, const volatile DT * );
+
+forall( DT & ) signed int ?>?(                 DT *,                DT * );
+forall( DT & ) signed int ?>?(  const          DT *, const          DT * );
+forall( DT & ) signed int ?>?(        volatile DT *,       volatile DT * );
+forall( DT & ) signed int ?>?(  const volatile DT *, const volatile DT * );
+
+forall( DT & ) signed int ?<=?(                 DT *,                DT * );
+forall( DT & ) signed int ?<=?(  const          DT *, const          DT * );
+forall( DT & ) signed int ?<=?(        volatile DT *,       volatile DT * );
+forall( DT & ) signed int ?<=?( const volatile DT *, const volatile DT * );
+
+forall( DT & ) signed int ?>=?(                 DT *,                DT * );
+forall( DT & ) signed int ?>=?(  const          DT *, const          DT * );
+forall( DT & ) signed int ?>=?(        volatile DT *,       volatile DT * );
+forall( DT & ) signed int ?>=?( const volatile DT *, const volatile DT * );
+
+// ------------------------------------------------------------
+//
+// Section 4.9 Equality Operators
+//
+// ------------------------------------------------------------
+
+signed int ?==?( _Bool, _Bool ),							?!=?( _Bool, _Bool );
+signed int ?==?( char, char ),								?!=?( char, char );
+signed int ?==?( signed char, signed char ),				?!=?( signed char, signed char );
+signed int ?==?( unsigned char, unsigned char ),			?!=?( unsigned char, unsigned char );
+signed int ?==?( signed short, signed short ),				?!=?( signed short, signed short );
+signed int ?==?( unsigned short, unsigned short ),			?!=?( unsigned short, unsigned short );
+signed int ?==?( signed int, signed int ),					?!=?( signed int, signed int );
+signed int ?==?( unsigned int, unsigned int ),					?!=?( unsigned int, unsigned int );
+signed int ?==?( signed long int, signed long int ),				?!=?( signed long int, signed long int );
+signed int ?==?( unsigned long int, unsigned long int ),			?!=?( unsigned long int, unsigned long int );
+signed int ?==?( signed long long int, long long int  signed),		?!=?( signed long long int, signed long long int );
+signed int ?==?( unsigned long long int, unsigned long long int ),	?!=?( unsigned long long int, unsigned long long int );
+signed int ?==?( float, float ),							?!=?( float, float );
+signed int ?==?( double, double ),							?!=?( double, double );
+signed int ?==?( long double, long double ),					?!=?( long double, long double );
+signed int ?==?( float _Complex, float _Complex ),				?!=?( float _Complex, float _Complex );
+signed int ?==?( double _Complex, double _Complex ),				?!=?( double _Complex, double _Complex );
+signed int ?==?( long double _Complex, long double _Complex ),		?!=?( long double _Complex, long double _Complex );
+signed int ?==?( zero_t, zero_t ),							?!=?( zero_t, zero_t );
+signed int ?==?( one_t, one_t ),							?!=?( one_t, one_t );
+
+forall( DT & ) signed int ?==?(		   DT *,		DT * );
+forall( DT & ) signed int ?==?( const	   DT *, const		DT * );
+forall( DT & ) signed int ?==?(       volatile DT *,       volatile DT * );
+forall( DT & ) signed int ?==?( const volatile DT *, const volatile DT * );
+forall( ftype FT ) signed int ?==?( FT *, FT * );
+forall( DT & ) signed int ?!=?(		   DT *,		DT * );
+forall( DT & ) signed int ?!=?( const	   DT *, const		DT * );
+forall( DT & ) signed int ?!=?(       volatile DT *,       volatile DT * );
+forall( DT & ) signed int ?!=?( const volatile DT *, const volatile DT * );
+forall( ftype FT ) signed int ?!=?( FT *, FT * );
+
+// forall( dtype DT ) signed int ?==?( const volatile DT   *, const volatile void * );
+// forall( dtype DT ) signed int ?==?( const volatile void *, const volatile DT * );
+// forall( dtype DT ) signed int ?!=?( const volatile DT   *, const volatile void * );
+// forall( dtype DT ) signed int ?!=?( const volatile void *, const volatile DT * );
+
+// forall( dtype DT ) signed int ?==?( const volatile DT *, zero_t );
+// forall( dtype DT ) signed int ?==?( zero_t, const volatile DT * );
+// forall( ftype FT ) signed int ?==?( FT *, zero_t );
+// forall( ftype FT ) signed int ?==?( zero_t, FT * );
+// forall( dtype DT ) signed int ?!=?( const volatile DT *, zero_t );
+// forall( dtype DT ) signed int ?!=?( zero_t, const volatile DT * );
+// forall( ftype FT ) signed int ?!=?( FT *, zero_t );
+// forall( ftype FT ) signed int ?!=?( zero_t, FT * );
+
+// ------------------------------------------------------------
+//
+// Section 4.10 Bitwise AND Operators
+//
+// ------------------------------------------------------------
+
+_Bool			?&?( _Bool, _Bool );
+signed int		?&?( signed int, signed int );
+unsigned int		?&?( unsigned int, unsigned int );
+signed long int		?&?( signed long int, signed long int );
+unsigned long int	?&?( unsigned long int, unsigned long int );
+signed long long int	?&?( signed long long int, signed long long int );
+unsigned long long int	?&?( unsigned long long int, unsigned long long int );
+
+// ------------------------------------------------------------
+//
+// Section 4.11 Bitwise XOR Operators
+//
+// ------------------------------------------------------------
+
+_Bool			?^?( _Bool, _Bool );
+signed int		?^?( signed int, signed int );
+unsigned int		?^?( unsigned int, unsigned int );
+signed long int		?^?( signed long int, signed long int );
+unsigned long int	?^?( unsigned long int, unsigned long int );
+signed long long int	?^?( signed long long int, signed long long int );
+unsigned long long int	?^?( unsigned long long int, unsigned long long int );
+
+// ------------------------------------------------------------
+//
+// Section 4.12 Bitwise OR Operators
+//
+// ------------------------------------------------------------
+
+_Bool			?|?( _Bool, _Bool );
+signed int		?|?( signed int, signed int );
+unsigned int		?|?( unsigned int, unsigned int );
+signed long int		?|?( signed long int, signed long int );
+unsigned long int	?|?( unsigned long int, unsigned long int );
+signed long long int	?|?( signed long long int, signed long long int );
+unsigned long long int	?|?( unsigned long long int, unsigned long long int );
+
+// ------------------------------------------------------------
+//
+// Section 4.16 Assignment Operator
+//
+// ------------------------------------------------------------
+
+forall( ftype FT ) FT *			?=?( FT *&, FT * );
+forall( ftyep FT ) FT *			?=?( FT * volatile &, FT * );
+
+forall( DT & ) DT *			?=?(		     DT *	   &,			DT * );
+forall( DT & ) DT *			?=?(		     DT * volatile &,			DT * );
+forall( DT & ) const DT *		?=?( const	     DT *	   &,			DT * );
+forall( DT & ) const DT *		?=?( const	     DT * volatile &,			DT * );
+forall( DT & ) const DT *		?=?( const	     DT *	   &, const		DT * );
+forall( DT & ) const DT *		?=?( const	     DT * volatile &, const		DT * );
+forall( DT & ) volatile DT *	?=?(	   volatile  DT *	   &,			DT * );
+forall( DT & ) volatile DT *	?=?(	   volatile  DT * volatile &,			DT * );
+forall( DT & ) volatile DT *	?=?(	   volatile  DT *	   &,	    volatile	DT * );
+forall( DT & ) volatile DT *	?=?(	   volatile  DT * volatile &,	    volatile	DT * );
+
+forall( DT & ) const volatile DT *	?=?( const volatile  DT *	   &,			DT * );
+forall( DT & ) const volatile DT *  ?=?( const volatile  DT * volatile &,			DT * );
+forall( DT & ) const volatile DT *  ?=?( const volatile  DT *	   &, const		DT * );
+forall( DT & ) const volatile DT *  ?=?( const volatile  DT * volatile &, const		DT * );
+forall( DT & ) const volatile DT *  ?=?( const volatile  DT *	   &,	    volatile	DT * );
+forall( DT & ) const volatile DT *  ?=?( const volatile  DT * volatile &,	    volatile	DT * );
+forall( DT & ) const volatile DT *  ?=?( const volatile  DT *	   &, const volatile	DT * );
+forall( DT & ) const volatile DT *  ?=?( const volatile  DT * volatile &, const volatile	DT * );
+
+forall( DT & ) void *		 ?=?(		     void *	     &,			DT * );
+forall( DT & ) void *		 ?=?(		     void * volatile &,			DT * );
+forall( DT & ) const void *		 ?=?( const	     void *	     &,			DT * );
+forall( DT & ) const void *		 ?=?( const	     void * volatile &,			DT * );
+forall( DT & ) const void *		 ?=?( const	     void *	     &, const		DT * );
+forall( DT & ) const void *		 ?=?( const	     void * volatile &, const		DT * );
+forall( DT & ) volatile void *	 ?=?(	    volatile void *	     &,			DT * );
+forall( DT & ) volatile void *	 ?=?(	    volatile void * volatile &,			DT * );
+forall( DT & ) volatile void *	 ?=?(	    volatile void *	     &,	      volatile	DT * );
+forall( DT & ) volatile void *	 ?=?(	    volatile void * volatile &,	      volatile	DT * );
+forall( DT & ) const volatile void * ?=?( const volatile void *	     &,			DT * );
+forall( DT & ) const volatile void * ?=?( const volatile void * volatile &,			DT * );
+forall( DT & ) const volatile void * ?=?( const volatile void *	     &, const		DT * );
+forall( DT & ) const volatile void * ?=?( const volatile void * volatile &, const		DT * );
+forall( DT & ) const volatile void * ?=?( const volatile void *	     &,	      volatile	DT * );
+forall( DT & ) const volatile void * ?=?( const volatile void * volatile &,	      volatile	DT * );
+forall( DT & ) const volatile void * ?=?( const volatile void *	     &, const volatile	DT * );
+forall( DT & ) const volatile void * ?=?( const volatile void * volatile &, const volatile	DT * );
+
+//forall( dtype DT ) DT *			?=?(		    DT *	  &, zero_t );
+//forall( dtype DT ) DT *			?=?(		    DT * volatile &, zero_t );
+forall( DT & ) const DT *		?=?( const	    DT *	  &, zero_t );
+forall( DT & ) const DT *		?=?( const	    DT * volatile &, zero_t );
+//forall( dtype DT ) volatile DT *	?=?( volatile	    DT *	  &, zero_t );
+//forall( dtype DT ) volatile DT *	?=?( volatile	    DT * volatile &, zero_t );
+forall( DT & ) const volatile DT *	?=?( const volatile DT *	  &, zero_t );
+forall( DT & ) const volatile DT *	?=?( const volatile DT * volatile &, zero_t );
+
+forall( ftype FT ) FT *			?=?( FT *	   &, zero_t );
+forall( ftype FT ) FT *			?=?( FT * volatile &, zero_t );
+
+forall( T & | sized(T) ) T *		?+=?(		     T *	  &, ptrdiff_t );
+forall( T & | sized(T) ) T *		?+=?(		     T * volatile &, ptrdiff_t );
+forall( T & | sized(T) ) const T *		?+=?( const	     T *	  &, ptrdiff_t );
+forall( T & | sized(T) ) const T *		?+=?( const	     T * volatile &, ptrdiff_t );
+forall( T & | sized(T) ) volatile T *	?+=?(	    volatile T *	  &, ptrdiff_t );
+forall( T & | sized(T) ) volatile T *	?+=?(	    volatile T * volatile &, ptrdiff_t );
+forall( T & | sized(T) ) const volatile T *	?+=?( const volatile T *	  &, ptrdiff_t );
+forall( T & | sized(T) ) const volatile T *	?+=?( const volatile T * volatile &, ptrdiff_t );
+forall( T & | sized(T) ) T *		?-=?(		     T *	  &, ptrdiff_t );
+forall( T & | sized(T) ) T *		?-=?(		     T * volatile &, ptrdiff_t );
+forall( T & | sized(T) ) const T *		?-=?( const	     T *	  &, ptrdiff_t );
+forall( T & | sized(T) ) const T *		?-=?( const	     T * volatile &, ptrdiff_t );
+forall( T & | sized(T) ) volatile T *	?-=?(	    volatile T *	  &, ptrdiff_t );
+forall( T & | sized(T) ) volatile T *	?-=?(	    volatile T * volatile &, ptrdiff_t );
+forall( T & | sized(T) ) const volatile T *	?-=?( const volatile T *	  &, ptrdiff_t );
+forall( T & | sized(T) ) const volatile T *	?-=?( const volatile T * volatile &, ptrdiff_t );
+
+_Bool			?=?( _Bool &, _Bool ),					?=?( volatile _Bool &, _Bool );
+char			?=?( char &, char ),					?=?( volatile char &, char );
+char signed		?=?( char signed &, char signed ),			?=?( volatile char signed &, char signed );
+char unsigned		?=?( char unsigned &, char unsigned ),			?=?( volatile char unsigned &, char unsigned );
+int short		?=?( int short &, int short ),				?=?( volatile int short &, int short );
+int short unsigned	?=?( int short unsigned &, int short unsigned ),	?=?( volatile int short unsigned &, int short unsigned );
+signed int		?=?( signed int &, signed int ),			?=?( volatile signed int &, signed int );
+unsigned int		?=?( unsigned &, unsigned ),				?=?( volatile unsigned &, unsigned );
+signed long int		?=?( signed long int &, signed long int ),		?=?( volatile signed long int &, signed long int );
+unsigned long int	?=?( unsigned long int &, unsigned long int ),		?=?( volatile unsigned long int &, unsigned long int );
+signed long long int	?=?( signed long long int &, signed long long int ),	?=?( volatile signed long long int &, signed long long int );
+unsigned long long int	?=?( unsigned long long int &, unsigned long long int ), ?=?( volatile unsigned long long int &, unsigned long long int );
+zero_t			?=?( zero_t &, zero_t );
+one_t			?=?( one_t &, one_t );
+
+
+char			?*=?( char &, char ),					?*=?( volatile char &, char );
+char signed		?*=?( char signed &, char signed ),			?*=?( volatile char signed &, char signed );
+char unsigned		?*=?( char unsigned &, char unsigned ),			?*=?( volatile char unsigned &, char unsigned );
+int short		?*=?( int short &, int short ),				?*=?( volatile int short &, int short );
+int short unsigned	?*=?( int short unsigned &, int short unsigned ),	?*=?( volatile int short unsigned &, int short unsigned );
+signed int		?*=?( signed int &, signed int ),			?*=?( volatile signed int &, signed int );
+unsigned int		?*=?( unsigned &, unsigned ),				?*=?( volatile unsigned &, unsigned );
+signed long int		?*=?( signed long int &, signed long int ),		?*=?( volatile signed long int &, signed long int );
+unsigned long int	?*=?( unsigned long int &, unsigned long int ),		?*=?( volatile unsigned long int &, unsigned long int );
+signed long long int	?*=?( signed long long int &, signed long long int ),	?*=?( volatile signed long long int &, signed long long int );
+unsigned long long int	?*=?( unsigned long long int &, unsigned long long int ), ?*=?( volatile unsigned long long int &, unsigned long long int );
+
+_Bool			?/=?( _Bool &, _Bool ),					?/=?( volatile _Bool &, _Bool );
+char			?/=?( char &, char ),					?/=?( volatile char &, char );
+char signed		?/=?( char signed &, char signed ),			?/=?( volatile char signed &, char signed );
+char unsigned		?/=?( char unsigned &, char unsigned ),			?/=?( volatile char unsigned &, char unsigned );
+int short		?/=?( int short &, int short ),				?/=?( volatile int short &, int short );
+int short unsigned	?/=?( int short unsigned &, int short unsigned ),	?/=?( volatile int short unsigned &, int short unsigned );
+signed int		?/=?( signed int &, signed int ),			?/=?( volatile signed int &, signed int );
+unsigned int		?/=?( unsigned &, unsigned ),				?/=?( volatile unsigned &, unsigned );
+signed long int		?/=?( signed long int &, signed long int ),		?/=?( volatile signed long int &, signed long int );
+unsigned long int	?/=?( unsigned long int &, unsigned long int ),		?/=?( volatile unsigned long int &, unsigned long int );
+signed long long int	?/=?( signed long long int &, signed long long int ),	?/=?( volatile signed long long int &, signed long long int );
+unsigned long long int	?/=?( unsigned long long int &, unsigned long long int ), ?/=?( volatile unsigned long long int &, unsigned long long int );
+
+_Bool			?%=?( _Bool &, _Bool ),					?%=?( volatile _Bool &, _Bool );
+char			?%=?( char &, char ),					?%=?( volatile char &, char );
+char signed		?%=?( char signed &, char signed ),			?%=?( volatile char signed &, char signed );
+char unsigned		?%=?( char unsigned &, char unsigned ),			?%=?( volatile char unsigned &, char unsigned );
+int short		?%=?( int short &, int short ),				?%=?( volatile int short &, int short );
+int short unsigned	?%=?( int short unsigned &, int short unsigned ),	?%=?( volatile int short unsigned &, int short unsigned );
+signed int		?%=?( signed int &, signed int ),			?%=?( volatile signed int &, signed int );
+unsigned int		?%=?( unsigned &, unsigned ),				?%=?( volatile unsigned &, unsigned );
+signed long int		?%=?( signed long int &, signed long int ),		?%=?( volatile signed long int &, signed long int );
+unsigned long int	?%=?( unsigned long int &, unsigned long int ),		?%=?( volatile unsigned long int &, unsigned long int );
+signed long long int	?%=?( signed long long int &, signed long long int ),	?%=?( volatile signed long long int &, signed long long int );
+unsigned long long int	?%=?( unsigned long long int &, unsigned long long int ), ?%=?( volatile unsigned long long int &, unsigned long long int );
+
+_Bool			?+=?( _Bool &, _Bool ),					?+=?( volatile _Bool &, _Bool );
+char			?+=?( char &, char ),					?+=?( volatile char &, char );
+char signed		?+=?( char signed &, char signed ),			?+=?( volatile char signed &, char signed );
+char unsigned		?+=?( char unsigned &, char unsigned ),			?+=?( volatile char unsigned &, char unsigned );
+int short		?+=?( int short &, int short ),				?+=?( volatile int short &, int short );
+int short unsigned	?+=?( int short unsigned &, int short unsigned ),	?+=?( volatile int short unsigned &, int short unsigned );
+signed int		?+=?( signed int &, signed int ),			?+=?( volatile signed int &, signed int );
+unsigned int		?+=?( unsigned &, unsigned ),				?+=?( volatile unsigned &, unsigned );
+signed long int		?+=?( signed long int &, signed long int ),		?+=?( volatile signed long int &, signed long int );
+unsigned long int	?+=?( unsigned long int &, unsigned long int ),		?+=?( volatile unsigned long int &, unsigned long int );
+signed long long int	?+=?( signed long long int &, signed long long int ),	?+=?( volatile signed long long int &, signed long long int );
+unsigned long long int	?+=?( unsigned long long int &, unsigned long long int ), ?+=?( volatile unsigned long long int &, unsigned long long int );
+//signed int128		?+=?( signed int128 &, signed int128 ),			?+=?( volatile signed int128 &, signed int128 );
+//unsigned int128		?+=?( unsigned int128 &, unsigned int128 ),		?+=?( volatile unsigned int128 &, unsigned int128 );
+
+_Bool			?-=?( _Bool &, _Bool ),					?-=?( volatile _Bool &, _Bool );
+char			?-=?( char &, char ),					?-=?( volatile char &, char );
+char signed		?-=?( char signed &, char signed ),			?-=?( volatile char signed &, char signed );
+char unsigned		?-=?( char unsigned &, char unsigned ),			?-=?( volatile char unsigned &, char unsigned );
+int short		?-=?( int short &, int short ),				?-=?( volatile int short &, int short );
+int short unsigned	?-=?( int short unsigned &, int short unsigned ),	?-=?( volatile int short unsigned &, int short unsigned );
+signed int		?-=?( signed int &, signed int ),			?-=?( volatile signed int &, signed int );
+unsigned int		?-=?( unsigned &, unsigned ),				?-=?( volatile unsigned &, unsigned );
+signed long int		?-=?( signed long int &, signed long int ),		?-=?( volatile signed long int &, signed long int );
+unsigned long int	?-=?( unsigned long int &, unsigned long int ),		?-=?( volatile unsigned long int &, unsigned long int );
+signed long long int	?-=?( signed long long int &, signed long long int ),	?-=?( volatile signed long long int &, signed long long int );
+unsigned long long int	?-=?( unsigned long long int &, unsigned long long int ), ?-=?( volatile unsigned long long int &, unsigned long long int );
+
+char			?<<=?( char &, char ),					?<<=?( volatile char &, char );
+char signed		?<<=?( char signed &, char signed ),			?<<=?( volatile char signed &, char signed );
+char unsigned		?<<=?( char unsigned &, char unsigned ),		?<<=?( volatile char unsigned &, char unsigned );
+int short		?<<=?( int short &, int short ),			?<<=?( volatile int short &, int short );
+int short unsigned	?<<=?( int short unsigned &, int short unsigned ),	?<<=?( volatile int short unsigned &, int short unsigned );
+signed int		?<<=?( signed int &, signed int ),			?<<=?( volatile signed int &, signed int );
+unsigned int		?<<=?( unsigned &, unsigned ),				?<<=?( volatile unsigned &, unsigned );
+signed long int		?<<=?( signed long int &, signed long int ),		?<<=?( volatile signed long int &, signed long int );
+unsigned long int	?<<=?( unsigned long int &, unsigned long int ),	?<<=?( volatile unsigned long int &, unsigned long int );
+signed long long int	?<<=?( signed long long int &, signed long long int ),	?<<=?( volatile signed long long int &, signed long long int );
+unsigned long long int	?<<=?( unsigned long long int &, unsigned long long int ), ?<<=?( volatile unsigned long long int &, unsigned long long int );
+
+char			?>>=?( char &, char ),					?>>=?( volatile char &, char );
+char signed		?>>=?( char signed &, char signed ),			?>>=?( volatile char signed &, char signed );
+char unsigned		?>>=?( char unsigned &, char unsigned ),		?>>=?( volatile char unsigned &, char unsigned );
+int short		?>>=?( int short &, int short ),			?>>=?( volatile int short &, int short );
+int short unsigned	?>>=?( int short unsigned &, int short unsigned ),	?>>=?( volatile int short unsigned &, int short unsigned );
+signed int		?>>=?( signed int &, signed int ),			?>>=?( volatile signed int &, signed int );
+unsigned int		?>>=?( unsigned &, unsigned ),				?>>=?( volatile unsigned &, unsigned );
+signed long int		?>>=?( signed long int &, signed long int ),		?>>=?( volatile signed long int &, signed long int );
+unsigned long int	?>>=?( unsigned long int &, unsigned long int ),	?>>=?( volatile unsigned long int &, unsigned long int );
+signed long long int	?>>=?( signed long long int &, signed long long int ),	?>>=?( volatile signed long long int &, signed long long int );
+unsigned long long int	?>>=?( unsigned long long int &, unsigned long long int ), ?>>=?( volatile unsigned long long int &, unsigned long long int );
+
+_Bool			?&=?( _Bool &, _Bool ),					?&=?( volatile _Bool &, _Bool );
+char			?&=?( char &, char ),					?&=?( volatile char &, char );
+char signed		?&=?( char signed &, char signed ),			?&=?( volatile char signed &, char signed );
+char unsigned		?&=?( char unsigned &, char unsigned ),			?&=?( volatile char unsigned &, char unsigned );
+int short		?&=?( int short &, int short ),				?&=?( volatile int short &, int short );
+int short unsigned	?&=?( int short unsigned &, int short unsigned ),	?&=?( volatile int short unsigned &, int short unsigned );
+signed int		?&=?( signed int &, signed int ),			?&=?( volatile signed int &, signed int );
+unsigned int		?&=?( unsigned &, unsigned ),				?&=?( volatile unsigned &, unsigned );
+signed long int		?&=?( signed long int &, signed long int ),		?&=?( volatile signed long int &, signed long int );
+unsigned long int	?&=?( unsigned long int &, unsigned long int ),		?&=?( volatile unsigned long int &, unsigned long int );
+signed long long int	?&=?( signed long long int &, signed long long int ),	?&=?( volatile signed long long int &, signed long long int );
+unsigned long long int	?&=?( unsigned long long int &, unsigned long long int ), ?&=?( volatile unsigned long long int &, unsigned long long int );
+
+_Bool			?|=?( _Bool &, _Bool ),					?|=?( volatile _Bool &, _Bool );
+char			?|=?( char &, char ),					?|=?( volatile char &, char );
+char signed		?|=?( char signed &, char signed ),			?|=?( volatile char signed &, char signed );
+char unsigned		?|=?( char unsigned &, char unsigned ),			?|=?( volatile char unsigned &, char unsigned );
+int short		?|=?( int short &, int short ),				?|=?( volatile int short &, int short );
+int short unsigned	?|=?( int short unsigned &, int short unsigned ),	?|=?( volatile int short unsigned &, int short unsigned );
+signed int		?|=?( signed int &, signed int ),			?|=?( volatile signed int &, signed int );
+unsigned int		?|=?( unsigned &, unsigned ),				?|=?( volatile unsigned &, unsigned );
+signed long int		?|=?( signed long int &, signed long int ),		?|=?( volatile signed long int &, signed long int );
+unsigned long int	?|=?( unsigned long int &, unsigned long int ),		?|=?( volatile unsigned long int &, unsigned long int );
+signed long long int	?|=?( signed long long int &, signed long long int ),	?|=?( volatile signed long long int &, signed long long int );
+unsigned long long int	?|=?( unsigned long long int &, unsigned long long int ), ?|=?( volatile unsigned long long int &, unsigned long long int );
+
+_Bool			?^=?( _Bool &, _Bool ),					?^=?( volatile _Bool &, _Bool );
+char			?^=?( char &, char ),					?^=?( volatile char &, char );
+char signed		?^=?( char signed &, char signed ),			?^=?( volatile char signed &, char signed );
+char unsigned		?^=?( char unsigned &, char unsigned ),			?^=?( volatile char unsigned &, char unsigned );
+int short		?^=?( int short &, int short ),				?^=?( volatile int short &, int short );
+int short unsigned	?^=?( int short unsigned &, int short unsigned ),	?^=?( volatile int short unsigned &, int short unsigned );
+signed int		?^=?( signed int &, signed int ),			?^=?( volatile signed int &, signed int );
+unsigned int		?^=?( unsigned &, unsigned ),				?^=?( volatile unsigned &, unsigned );
+signed long int		?^=?( signed long int &, signed long int ),		?^=?( volatile signed long int &, signed long int );
+unsigned long int	?^=?( unsigned long int &, unsigned long int ),		?^=?( volatile unsigned long int &, unsigned long int );
+signed long long int	?^=?( signed long long int &, signed long long int ),	?^=?( volatile signed long long int &, signed long long int );
+unsigned long long int	?^=?( unsigned long long int &, unsigned long long int ), ?^=?( volatile unsigned long long int &, unsigned long long int );
+
+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 );
+
+float _Complex		?=?(  float _Complex &, float _Complex ), ?=?(  volatile float _Complex &, float _Complex ),
+			?*=?( float _Complex &, float _Complex ), ?*=?( volatile float _Complex &, float _Complex ),
+			?/=?( float _Complex &, float _Complex ), ?/=?( volatile float _Complex &, float _Complex ),
+			?+=?( float _Complex &, float _Complex ), ?+=?( volatile float _Complex &, float _Complex ),
+			?-=?( float _Complex &, float _Complex ), ?-=?( volatile float _Complex &, float _Complex );
+
+double _Complex		?=?(  double _Complex &, double _Complex ), ?=?(  volatile double _Complex &, double _Complex ),
+			?*=?( double _Complex &, double _Complex ), ?*=?( volatile double _Complex &, double _Complex ),
+			?/=?( double _Complex &, double _Complex ), ?/=?( volatile double _Complex &, double _Complex ),
+			?+=?( double _Complex &, double _Complex ), ?+=?( volatile double _Complex &, double _Complex ),
+			?-=?( double _Complex &, double _Complex ), ?-=?( volatile double _Complex &, double _Complex );
+
+long double _Complex	?=?(  long double _Complex &, long double _Complex ), ?=?(  volatile long double _Complex &, long double _Complex ),
+			?*=?( long double _Complex &, long double _Complex ), ?*=?( volatile long double _Complex &, long double _Complex ),
+			?/=?( long double _Complex &, long double _Complex ), ?/=?( volatile long double _Complex &, long double _Complex ),
+			?+=?( long double _Complex &, long double _Complex ), ?+=?( volatile long double _Complex &, long double _Complex ),
+			?-=?( long double _Complex &, long double _Complex ), ?-=?( volatile long double _Complex &, long double _Complex );
+
+
+// ------------------------------------------------------------
+//
+// Section ??? Constructors and Destructors
+//
+// ------------------------------------------------------------
+
+// default ctor
+void	?{}( _Bool & );
+void	?{}( char & );
+void	?{}( unsigned char & );
+void	?{}( char signed & );
+void	?{}( int short & );
+void	?{}( int short unsigned & );
+void	?{}( signed int & );
+void	?{}( unsigned int & );
+void	?{}( signed long int & );
+void	?{}( unsigned long int & );
+void	?{}( signed long long int & );
+void	?{}( unsigned long long int & );
+void	?{}( float & );
+void	?{}( double & );
+void	?{}( long double & );
+void	?{}( float _Complex & );
+void	?{}( double _Complex & );
+void	?{}( long double _Complex & );
+void	?{}( zero_t & );
+void	?{}( one_t & );
+
+// copy ctor
+void	?{}( _Bool &, _Bool );
+void	?{}( char &, char );
+void	?{}( unsigned char &, unsigned char );
+void	?{}( char signed &, char signed );
+void	?{}( int short &, int short );
+void	?{}( int short unsigned &, int short unsigned );
+void	?{}( signed int &, signed int);
+void	?{}( unsigned int &, unsigned int);
+void	?{}( signed long int &, signed long int);
+void	?{}( unsigned long int &, unsigned long int);
+void	?{}( signed long long int &, signed long long int);
+void	?{}( unsigned long long int &, unsigned long long int);
+void	?{}( float &, float);
+void	?{}( double &, double);
+void	?{}( long double &, long double);
+void	?{}( float _Complex &, float _Complex);
+void	?{}( double _Complex &, double _Complex);
+void	?{}( long double _Complex &, long double _Complex);
+void	?{}( zero_t &, zero_t );
+void	?{}( one_t &, one_t );
+
+// dtor
+void	^?{}( _Bool & );
+void	^?{}( char & );
+void	^?{}( char unsigned & );
+void	^?{}( char signed & );
+void	^?{}( int short & );
+void	^?{}( int short unsigned & );
+void	^?{}( signed int & );
+void	^?{}( unsigned int & );
+void	^?{}( signed long int & );
+void	^?{}( unsigned long int & );
+void	^?{}( signed long long int & );
+void	^?{}( unsigned long long int & );
+void	^?{}( float & );
+void	^?{}( double & );
+void	^?{}( long double & );
+void	^?{}( float _Complex & );
+void	^?{}( double _Complex & );
+void	^?{}( long double _Complex & );
+void	^?{}( zero_t & );
+void	^?{}( one_t & );
+
+// // default ctor
+// forall( dtype DT ) void	 ?{}(		     DT ** );
+// forall( dtype DT ) void	 ?{}( const	     DT ** );
+// forall( dtype DT ) void	 ?{}(	    volatile DT ** );
+// forall( dtype DT ) void	 ?{}( const volatile DT ** );
+
+// // copy ctor
+// forall( dtype DT ) void	 ?{}(		     DT **, DT* );
+// forall( dtype DT ) void	 ?{}( const	     DT **, DT* );
+// forall( dtype DT ) void	 ?{}(	    volatile DT **, DT* );
+// forall( dtype DT ) void	 ?{}( const volatile DT **, DT* );
+
+// // dtor
+// forall( dtype DT ) void	^?{}(		     DT ** );
+// forall( dtype DT ) void	^?{}( const	     DT ** );
+// forall( dtype DT ) void	^?{}(	    volatile DT ** );
+// forall( dtype DT ) void	^?{}( const volatile DT ** );
+
+// copied from assignment section
+// copy constructors
+forall( ftype FT ) void ?{}( FT *&, FT * );
+forall( ftype FT ) void ?{}( FT * volatile &, FT * );
+
+forall( DT & ) void ?{}(		     DT *	   &,			DT * );
+forall( DT & ) void ?{}( const	     DT *	   &,			DT * );
+forall( DT & ) void ?{}( const	     DT *	   &, const		DT * );
+forall( DT & ) void ?{}(	   volatile  DT *	   &,			DT * );
+forall( DT & ) void ?{}(	   volatile  DT *	   &,	    volatile	DT * );
+forall( DT & ) void ?{}( const volatile  DT *	   &,			DT * );
+forall( DT & ) void ?{}( const volatile  DT *	   &, const		DT * );
+forall( DT & ) void ?{}( const volatile  DT *	   &,	    volatile	DT * );
+forall( DT & ) void ?{}( const volatile  DT *	   &, const volatile	DT * );
+
+forall( DT & ) void ?{}(		     void *	     &,			DT * );
+forall( DT & ) void ?{}( const	     void *	     &,			DT * );
+forall( DT & ) void ?{}( const	     void *	     &, const		DT * );
+forall( DT & ) void ?{}(	    volatile void *	     &,			DT * );
+forall( DT & ) void ?{}(	    volatile void *	     &,	      volatile	DT * );
+forall( DT & ) void ?{}( const volatile void *	     &,			DT * );
+forall( DT & ) void ?{}( const volatile void *	     &, const		DT * );
+forall( DT & ) void ?{}( const volatile void *	     &,	      volatile	DT * );
+forall( DT & ) void ?{}( const volatile void *	     &, const volatile	DT * );
+
+//forall( dtype DT ) void ?{}(		    DT *	  &, zero_t );
+//forall( dtype DT ) void ?{}(		    DT * volatile &, zero_t );
+forall( DT & ) void ?{}( const	    DT *	  &, zero_t );
+//forall( dtype DT ) void ?{}( volatile	    DT *	  &, zero_t );
+//forall( dtype DT ) void ?{}( volatile	    DT * volatile &, zero_t );
+forall( DT & ) void ?{}( const volatile DT *	  &, zero_t );
+
+forall( ftype FT ) void	?{}( FT *	   &, zero_t );
+
+// default ctors
+forall( ftype FT ) void	?{}( FT *	   & );
+
+forall( DT & ) void	?{}(		     DT *	   &);
+forall( DT & ) void	?{}( const	     DT *	   &);
+forall( DT & ) void	?{}(	   volatile  DT *	   &);
+forall( DT & ) void ?{}( const volatile  DT *	   &);
+
+void 	?{}(		    void *	    &);
+void 	?{}( const	    void *	    &);
+void 	?{}(	   volatile void *	    &);
+void 	?{}( const volatile void *	    &);
+
+// dtors
+forall( ftype FT ) void	^?{}( FT *	   & );
+
+forall( DT & ) void	^?{}(		     DT *	   &);
+forall( DT & ) void	^?{}( const	     DT *	   &);
+forall( DT & ) void	^?{}(	   volatile  DT *	   &);
+forall( DT & ) void ^?{}( const volatile  DT *	   &);
+
+void ^?{}(		    void *	    &);
+void ^?{}( const	    void *	    &);
+void ^?{}(	   volatile void *	    &);
+void ^?{}( const   volatile void *	    &);
+
+// Local Variables: //
+// mode: c //
+// tab-width: 8 //
+// End: //
Index: libcfa/prelude/prototypes.awk
===================================================================
--- libcfa/prelude/prototypes.awk	(revision fa761c2aa9a4a9b1a22e28f45f380ba9d9ad36c0)
+++ libcfa/prelude/prototypes.awk	(revision be3f163306e87aeb232bf497922012355b5762df)
@@ -10,6 +10,6 @@
 # Created On       : Sat May 16 07:57:37 2015
 # Last Modified By : Peter A. Buhr
-# Last Modified On : Sat Feb  8 09:46:58 2020
-# Update Count     : 36
+# Last Modified On : Wed Nov  1 20:44:04 2023
+# Update Count     : 37
 #
 
@@ -150,5 +150,5 @@
 	# extras
 	printf( "\n#include \"builtins.def\"\n\n" );
-	printf( "\n#include \"sync-builtins.cf\"\n\n" );
+	printf( "\n#include \"sync-builtins.cfa\"\n\n" );
 	printf( "extern const char *__PRETTY_FUNCTION__;\n" );
 	printf( "float _Complex __builtin_complex( float, float );\n" );
Index: bcfa/prelude/sync-builtins.cf
===================================================================
--- libcfa/prelude/sync-builtins.cf	(revision fa761c2aa9a4a9b1a22e28f45f380ba9d9ad36c0)
+++ 	(revision )
@@ -1,631 +1,0 @@
-char __sync_fetch_and_add(volatile char *, char,...);
-signed char __sync_fetch_and_add(volatile signed char *, signed char,...);
-unsigned char __sync_fetch_and_add(volatile unsigned char *, unsigned char,...);
-signed short __sync_fetch_and_add(volatile signed short *, signed short,...);
-unsigned short __sync_fetch_and_add(volatile unsigned short *, unsigned short,...);
-signed int __sync_fetch_and_add(volatile signed int *, signed int,...);
-unsigned int __sync_fetch_and_add(volatile unsigned int *, unsigned int,...);
-signed long int __sync_fetch_and_add(volatile signed long int *, signed long int,...);
-unsigned long int __sync_fetch_and_add(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_fetch_and_add(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_fetch_and_add(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_fetch_and_add(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_fetch_and_add(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-char __sync_fetch_and_sub(volatile char *, char,...);
-signed char __sync_fetch_and_sub(volatile signed char *, signed char,...);
-unsigned char __sync_fetch_and_sub(volatile unsigned char *, unsigned char,...);
-signed short __sync_fetch_and_sub(volatile signed short *, signed short,...);
-unsigned short __sync_fetch_and_sub(volatile unsigned short *, unsigned short,...);
-signed int __sync_fetch_and_sub(volatile signed int *, signed int,...);
-unsigned int __sync_fetch_and_sub(volatile unsigned int *, unsigned int,...);
-signed long int __sync_fetch_and_sub(volatile signed long int *, signed long int,...);
-unsigned long int __sync_fetch_and_sub(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_fetch_and_sub(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_fetch_and_sub(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_fetch_and_sub(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_fetch_and_sub(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-char __sync_fetch_and_or(volatile char *, char,...);
-signed char __sync_fetch_and_or(volatile signed char *, signed char,...);
-unsigned char __sync_fetch_and_or(volatile unsigned char *, unsigned char,...);
-signed short __sync_fetch_and_or(volatile signed short *, signed short,...);
-unsigned short __sync_fetch_and_or(volatile unsigned short *, unsigned short,...);
-signed int __sync_fetch_and_or(volatile signed int *, signed int,...);
-unsigned int __sync_fetch_and_or(volatile unsigned int *, unsigned int,...);
-signed long int __sync_fetch_and_or(volatile signed long int *, signed long int,...);
-unsigned long int __sync_fetch_and_or(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_fetch_and_or(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_fetch_and_or(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_fetch_and_or(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_fetch_and_or(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-char __sync_fetch_and_and(volatile char *, char,...);
-signed char __sync_fetch_and_and(volatile signed char *, signed char,...);
-unsigned char __sync_fetch_and_and(volatile unsigned char *, unsigned char,...);
-signed short __sync_fetch_and_and(volatile signed short *, signed short,...);
-unsigned short __sync_fetch_and_and(volatile unsigned short *, unsigned short,...);
-signed int __sync_fetch_and_and(volatile signed int *, signed int,...);
-unsigned int __sync_fetch_and_and(volatile unsigned int *, unsigned int,...);
-signed long int __sync_fetch_and_and(volatile signed long int *, signed long int,...);
-unsigned long int __sync_fetch_and_and(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_fetch_and_and(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_fetch_and_and(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_fetch_and_and(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_fetch_and_and(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-char __sync_fetch_and_xor(volatile char *, char,...);
-signed char __sync_fetch_and_xor(volatile signed char *, signed char,...);
-unsigned char __sync_fetch_and_xor(volatile unsigned char *, unsigned char,...);
-signed short __sync_fetch_and_xor(volatile signed short *, signed short,...);
-unsigned short __sync_fetch_and_xor(volatile unsigned short *, unsigned short,...);
-signed int __sync_fetch_and_xor(volatile signed int *, signed int,...);
-unsigned int __sync_fetch_and_xor(volatile unsigned int *, unsigned int,...);
-signed long int __sync_fetch_and_xor(volatile signed long int *, signed long int,...);
-unsigned long int __sync_fetch_and_xor(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_fetch_and_xor(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_fetch_and_xor(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_fetch_and_xor(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_fetch_and_xor(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-char __sync_fetch_and_nand(volatile char *, char,...);
-signed char __sync_fetch_and_nand(volatile signed char *, signed char,...);
-unsigned char __sync_fetch_and_nand(volatile unsigned char *, unsigned char,...);
-signed short __sync_fetch_and_nand(volatile signed short *, signed short,...);
-unsigned short __sync_fetch_and_nand(volatile unsigned short *, unsigned short,...);
-signed int __sync_fetch_and_nand(volatile signed int *, signed int,...);
-unsigned int __sync_fetch_and_nand(volatile unsigned int *, unsigned int,...);
-signed long int __sync_fetch_and_nand(volatile signed long int *, signed long int,...);
-unsigned long int __sync_fetch_and_nand(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_fetch_and_nand(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_fetch_and_nand(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_fetch_and_nand(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_fetch_and_nand(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-char __sync_add_and_fetch(volatile char *, char,...);
-signed char __sync_add_and_fetch(volatile signed char *, signed char,...);
-unsigned char __sync_add_and_fetch(volatile unsigned char *, unsigned char,...);
-signed short __sync_add_and_fetch(volatile signed short *, signed short,...);
-unsigned short __sync_add_and_fetch(volatile unsigned short *, unsigned short,...);
-signed int __sync_add_and_fetch(volatile signed int *, signed int,...);
-signed int __sync_add_and_fetch(volatile signed int *, signed int,...);
-signed long int __sync_add_and_fetch(volatile signed long int *, signed long int,...);
-unsigned long int __sync_add_and_fetch(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_add_and_fetch(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_add_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_add_and_fetch(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_add_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-char __sync_sub_and_fetch(volatile char *, char,...);
-signed char __sync_sub_and_fetch(volatile signed char *, signed char,...);
-unsigned char __sync_sub_and_fetch(volatile unsigned char *, unsigned char,...);
-signed short __sync_sub_and_fetch(volatile signed short *, signed short,...);
-unsigned short __sync_sub_and_fetch(volatile unsigned short *, unsigned short,...);
-signed int __sync_sub_and_fetch(volatile signed int *, signed int,...);
-unsigned int __sync_sub_and_fetch(volatile unsigned int *, unsigned int,...);
-signed long int __sync_sub_and_fetch(volatile signed long int *, signed long int,...);
-unsigned long int __sync_sub_and_fetch(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_sub_and_fetch(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_sub_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_sub_and_fetch(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_sub_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-char __sync_or_and_fetch(volatile char *, char,...);
-signed char __sync_or_and_fetch(volatile signed char *, signed char,...);
-unsigned char __sync_or_and_fetch(volatile unsigned char *, unsigned char,...);
-signed short __sync_or_and_fetch(volatile signed short *, signed short,...);
-unsigned short __sync_or_and_fetch(volatile unsigned short *, unsigned short,...);
-signed int __sync_or_and_fetch(volatile signed int *, signed int,...);
-unsigned int __sync_or_and_fetch(volatile unsigned int *, unsigned int,...);
-signed long int __sync_or_and_fetch(volatile signed long int *, signed long int,...);
-unsigned long int __sync_or_and_fetch(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_or_and_fetch(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_or_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_or_and_fetch(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_or_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-char __sync_and_and_fetch(volatile char *, char,...);
-signed char __sync_and_and_fetch(volatile signed char *, signed char,...);
-unsigned char __sync_and_and_fetch(volatile unsigned char *, unsigned char,...);
-signed short __sync_and_and_fetch(volatile signed short *, signed short,...);
-unsigned short __sync_and_and_fetch(volatile unsigned short *, unsigned short,...);
-signed int __sync_and_and_fetch(volatile signed int *, signed int,...);
-unsigned int __sync_and_and_fetch(volatile unsigned int *, unsigned int,...);
-signed long int __sync_and_and_fetch(volatile signed long int *, signed long int,...);
-unsigned long int __sync_and_and_fetch(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_and_and_fetch(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_and_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_and_and_fetch(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_and_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-char __sync_xor_and_fetch(volatile char *, char,...);
-signed char __sync_xor_and_fetch(volatile signed char *, signed char,...);
-unsigned char __sync_xor_and_fetch(volatile unsigned char *, unsigned char,...);
-signed short __sync_xor_and_fetch(volatile signed short *, signed short,...);
-unsigned short __sync_xor_and_fetch(volatile unsigned short *, unsigned short,...);
-signed int __sync_xor_and_fetch(volatile signed int *, signed int,...);
-unsigned int __sync_xor_and_fetch(volatile unsigned int *, unsigned int,...);
-signed long int __sync_xor_and_fetch(volatile signed long int *, signed long int,...);
-unsigned long int __sync_xor_and_fetch(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_xor_and_fetch(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_xor_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_xor_and_fetch(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_xor_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-char __sync_nand_and_fetch(volatile char *, char,...);
-signed char __sync_nand_and_fetch(volatile signed char *, signed char,...);
-unsigned char __sync_nand_and_fetch(volatile unsigned char *, unsigned char,...);
-signed short __sync_nand_and_fetch(volatile signed short *, signed short,...);
-unsigned short __sync_nand_and_fetch(volatile unsigned short *, unsigned short,...);
-signed int __sync_nand_and_fetch(volatile signed int *, signed int,...);
-unsigned int __sync_nand_and_fetch(volatile unsigned int *, unsigned int,...);
-signed long int __sync_nand_and_fetch(volatile signed long int *, signed long int,...);
-unsigned long int __sync_nand_and_fetch(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_nand_and_fetch(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_nand_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_nand_and_fetch(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_nand_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-_Bool __sync_bool_compare_and_swap(volatile char *, char, char,...);
-_Bool __sync_bool_compare_and_swap(volatile signed char *, signed char, signed char,...);
-_Bool __sync_bool_compare_and_swap(volatile unsigned char *, unsigned char, unsigned char,...);
-_Bool __sync_bool_compare_and_swap(volatile short *, signed short, signed short,...);
-_Bool __sync_bool_compare_and_swap(volatile short *, unsigned short, unsigned short,...);
-_Bool __sync_bool_compare_and_swap(volatile signed int *, signed int, signed int,...);
-_Bool __sync_bool_compare_and_swap(volatile unsigned int *, unsigned int, unsigned int,...);
-_Bool __sync_bool_compare_and_swap(volatile signed long int *, signed long int, signed long int,...);
-_Bool __sync_bool_compare_and_swap(volatile unsigned long int *, unsigned long int, unsigned long int,...);
-_Bool __sync_bool_compare_and_swap(volatile signed long long int *, signed long long int, signed long long int,...);
-_Bool __sync_bool_compare_and_swap(volatile unsigned long long int *, unsigned long long int, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-_Bool __sync_bool_compare_and_swap(volatile signed __int128 *, signed __int128, signed __int128,...);
-_Bool __sync_bool_compare_and_swap(volatile unsigned __int128 *, unsigned __int128, unsigned __int128,...);
-#endif
-// for all pointer types
-forall(T &) _Bool __sync_bool_compare_and_swap(T * volatile *, T *, T*, ...);
-
-char __sync_val_compare_and_swap(volatile char *, char, char,...);
-signed char __sync_val_compare_and_swap(volatile signed char *, signed char, signed char,...);
-unsigned char __sync_val_compare_and_swap(volatile unsigned char *, unsigned char, unsigned char,...);
-signed short __sync_val_compare_and_swap(volatile signed short *, signed short, signed short,...);
-unsigned short __sync_val_compare_and_swap(volatile unsigned short *, unsigned short, unsigned short,...);
-signed int __sync_val_compare_and_swap(volatile signed int *, signed int, signed int,...);
-unsigned int __sync_val_compare_and_swap(volatile unsigned int *, unsigned int, unsigned int,...);
-signed long int __sync_val_compare_and_swap(volatile signed long int *, signed long int, signed long int,...);
-unsigned long int __sync_val_compare_and_swap(volatile unsigned long int *, unsigned long int, unsigned long int,...);
-signed long long int __sync_val_compare_and_swap(volatile signed long long int *, signed long long int, signed long long int,...);
-unsigned long long int __sync_val_compare_and_swap(volatile unsigned long long int *, unsigned long long int, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_val_compare_and_swap(volatile signed __int128 *, signed __int128, signed __int128,...);
-unsigned __int128 __sync_val_compare_and_swap(volatile unsigned __int128 *, unsigned __int128, unsigned __int128,...);
-#endif
-// for all pointer types
-forall(T &) T * __sync_val_compare_and_swap(T * volatile *, T *, T*,...);
-
-char __sync_lock_test_and_set(volatile char *, char,...);
-signed char __sync_lock_test_and_set(volatile signed char *, signed char,...);
-unsigned char __sync_lock_test_and_set(volatile unsigned char *, unsigned char,...);
-signed short __sync_lock_test_and_set(volatile signed short *, signed short,...);
-unsigned short __sync_lock_test_and_set(volatile unsigned short *, unsigned short,...);
-signed int __sync_lock_test_and_set(volatile signed int *, signed int,...);
-unsigned int __sync_lock_test_and_set(volatile unsigned int *, unsigned int,...);
-signed long int __sync_lock_test_and_set(volatile signed long int *, signed long int,...);
-unsigned long int __sync_lock_test_and_set(volatile unsigned long int *, unsigned long int,...);
-signed long long int __sync_lock_test_and_set(volatile signed long long int *, signed long long int,...);
-unsigned long long int __sync_lock_test_and_set(volatile unsigned long long int *, unsigned long long int,...);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __sync_lock_test_and_set(volatile signed __int128 *, signed __int128,...);
-unsigned __int128 __sync_lock_test_and_set(volatile unsigned __int128 *, unsigned __int128,...);
-#endif
-
-void __sync_lock_release(volatile char *,...);
-void __sync_lock_release(volatile signed char *,...);
-void __sync_lock_release(volatile unsigned char *,...);
-void __sync_lock_release(volatile signed short *,...);
-void __sync_lock_release(volatile unsigned short *,...);
-void __sync_lock_release(volatile signed int *,...);
-void __sync_lock_release(volatile unsigned int *,...);
-void __sync_lock_release(volatile signed long int *,...);
-void __sync_lock_release(volatile unsigned long int *,...);
-void __sync_lock_release(volatile signed long long int *,...);
-void __sync_lock_release(volatile unsigned long long int *,...);
-#if defined(__SIZEOF_INT128__)
-void __sync_lock_release(volatile signed __int128 *,...);
-void __sync_lock_release(volatile unsigned __int128 *,...);
-#endif
-
-void __sync_synchronize();
-
-
-
-
-_Bool __atomic_test_and_set(volatile _Bool *, int);
-_Bool __atomic_test_and_set(volatile char *, int);
-_Bool __atomic_test_and_set(volatile signed char *, int);
-_Bool __atomic_test_and_set(volatile unsigned char *, int);
-_Bool __atomic_test_and_set(volatile signed short *, int);
-_Bool __atomic_test_and_set(volatile unsigned short *, int);
-_Bool __atomic_test_and_set(volatile signed int *, int);
-_Bool __atomic_test_and_set(volatile unsigned int *, int);
-_Bool __atomic_test_and_set(volatile signed long int *, int);
-_Bool __atomic_test_and_set(volatile unsigned long int *, int);
-_Bool __atomic_test_and_set(volatile signed long long int *, int);
-_Bool __atomic_test_and_set(volatile unsigned long long int *, int);
-#if defined(__SIZEOF_INT128__)
-_Bool __atomic_test_and_set(volatile signed __int128 *, int);
-_Bool __atomic_test_and_set(volatile unsigned __int128 *, int);
-#endif
-
-void __atomic_clear(volatile _Bool *, int);
-void __atomic_clear(volatile char *, int);
-void __atomic_clear(volatile signed char *, int);
-void __atomic_clear(volatile unsigned char *, int);
-void __atomic_clear(volatile signed short *, int);
-void __atomic_clear(volatile unsigned short *, int);
-void __atomic_clear(volatile signed int *, int);
-void __atomic_clear(volatile unsigned int *, int);
-void __atomic_clear(volatile signed long int *, int);
-void __atomic_clear(volatile unsigned long int *, int);
-void __atomic_clear(volatile signed long long int *, int);
-void __atomic_clear(volatile unsigned long long int *, int);
-#if defined(__SIZEOF_INT128__)
-void __atomic_clear(volatile signed __int128 *, int);
-void __atomic_clear(volatile unsigned __int128 *, int);
-#endif
-
-_Bool __atomic_exchange_n(volatile _Bool *, _Bool, int);
-void __atomic_exchange(volatile _Bool *, _Bool *, _Bool *, int);
-char __atomic_exchange_n(volatile char *, char, int);
-void __atomic_exchange(volatile char *, char *, char *, int);
-signed char __atomic_exchange_n(volatile signed char *, signed char, int);
-void __atomic_exchange(volatile signed char *, signed char *, signed char *, int);
-unsigned char __atomic_exchange_n(volatile unsigned char *, unsigned char, int);
-void __atomic_exchange(volatile unsigned char *, unsigned char *, unsigned char *, int);
-signed short __atomic_exchange_n(volatile signed short *, signed short, int);
-void __atomic_exchange(volatile signed short *, signed short *, signed short *, int);
-unsigned short __atomic_exchange_n(volatile unsigned short *, unsigned short, int);
-void __atomic_exchange(volatile unsigned short *, unsigned short *, unsigned short *, int);
-signed int __atomic_exchange_n(volatile signed int *, signed int, int);
-void __atomic_exchange(volatile signed int *, signed int *, signed int *, int);
-unsigned int __atomic_exchange_n(volatile unsigned int *, unsigned int, int);
-void __atomic_exchange(volatile unsigned int *, unsigned int *, unsigned int *, int);
-signed long int __atomic_exchange_n(volatile signed long int *, signed long int, int);
-void __atomic_exchange(volatile signed long int *, signed long int *, signed long int *, int);
-unsigned long int __atomic_exchange_n(volatile unsigned long int *, unsigned long int, int);
-void __atomic_exchange(volatile unsigned long int *, unsigned long int *, unsigned long int *, int);
-signed long long int __atomic_exchange_n(volatile signed long long int *, signed long long int, int);
-void __atomic_exchange(volatile signed long long int *, signed long long int *, signed long long int *, int);
-unsigned long long int __atomic_exchange_n(volatile unsigned long long int *, unsigned long long int, int);
-void __atomic_exchange(volatile unsigned long long int *, unsigned long long int *, unsigned long long int *, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_exchange_n(volatile signed __int128 *, signed __int128, int);
-void __atomic_exchange(volatile signed __int128 *, signed __int128 *, signed __int128 *, int);
-unsigned __int128 __atomic_exchange_n(volatile unsigned __int128 *, unsigned __int128, int);
-void __atomic_exchange(volatile unsigned __int128 *, unsigned __int128 *, unsigned __int128 *, int);
-#endif
-// for all pointer types
-forall(T &) T * __atomic_exchange_n(T * volatile *, T *, int);
-forall(T &) void __atomic_exchange(T * volatile *, T **, T **, int);
-
-_Bool __atomic_load_n(const volatile _Bool *, int);
-void __atomic_load(const volatile _Bool *, _Bool *, int);
-char __atomic_load_n(const volatile char *, int);
-void __atomic_load(const volatile char *, char *, int);
-signed char __atomic_load_n(const volatile signed char *, int);
-void __atomic_load(const volatile signed char *, signed char *, int);
-unsigned char __atomic_load_n(const volatile unsigned char *, int);
-void __atomic_load(const volatile unsigned char *, unsigned char *, int);
-signed short __atomic_load_n(const volatile signed short *, int);
-void __atomic_load(const volatile signed short *, signed short *, int);
-unsigned short __atomic_load_n(const volatile unsigned short *, int);
-void __atomic_load(const volatile unsigned short *, unsigned short *, int);
-signed int __atomic_load_n(const volatile signed int *, int);
-void __atomic_load(const volatile signed int *, signed int *, int);
-unsigned int __atomic_load_n(const volatile unsigned int *, int);
-void __atomic_load(const volatile unsigned int *, unsigned int *, int);
-signed long int __atomic_load_n(const volatile signed long int *, int);
-void __atomic_load(const volatile signed long int *, signed long int *, int);
-unsigned long int __atomic_load_n(const volatile unsigned long int *, int);
-void __atomic_load(const volatile unsigned long int *, unsigned long int *, int);
-signed long long int __atomic_load_n(const volatile signed long long int *, int);
-void __atomic_load(const volatile signed long long int *, signed long long int *, int);
-unsigned long long int __atomic_load_n(const volatile unsigned long long int *, int);
-void __atomic_load(const volatile unsigned long long int *, unsigned long long int *, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_load_n(const volatile signed __int128 *, int);
-void __atomic_load(const volatile signed __int128 *, signed __int128 *, int);
-unsigned __int128 __atomic_load_n(const volatile unsigned __int128 *, int);
-void __atomic_load(const volatile unsigned __int128 *, unsigned __int128 *, int);
-#endif
-// for all pointer types
-forall(T &) T * __atomic_load_n(T * const volatile *, int);
-forall(T &) void __atomic_load(T * const volatile *, T **, int);
-
-_Bool __atomic_compare_exchange_n(volatile char *, char *, char, _Bool, int, int);
-_Bool __atomic_compare_exchange  (volatile char *, char *, char *, _Bool, int, int);
-_Bool __atomic_compare_exchange_n(volatile signed char *, signed char *, signed char, _Bool, int, int);
-_Bool __atomic_compare_exchange  (volatile signed char *, signed char *, signed char *, _Bool, int, int);
-_Bool __atomic_compare_exchange_n(volatile unsigned char *, unsigned char *, unsigned char, _Bool, int, int);
-_Bool __atomic_compare_exchange  (volatile unsigned char *, unsigned char *, unsigned char *, _Bool, int, int);
-_Bool __atomic_compare_exchange_n(volatile signed short *, signed short *, signed short, _Bool, int, int);
-_Bool __atomic_compare_exchange  (volatile signed short *, signed short *, signed short *, _Bool, int, int);
-_Bool __atomic_compare_exchange_n(volatile unsigned short *, unsigned short *, unsigned short, _Bool, int, int);
-_Bool __atomic_compare_exchange  (volatile unsigned short *, unsigned short *, unsigned short *, _Bool, int, int);
-_Bool __atomic_compare_exchange_n(volatile signed int *, signed int *, signed int, _Bool, int, int);
-_Bool __atomic_compare_exchange  (volatile signed int *, signed int *, signed int *, _Bool, int, int);
-_Bool __atomic_compare_exchange_n(volatile unsigned int *, unsigned int *, unsigned int, _Bool, int, int);
-_Bool __atomic_compare_exchange  (volatile unsigned int *, unsigned int *, unsigned int *, _Bool, int, int);
-_Bool __atomic_compare_exchange_n(volatile signed long int *, signed long int *, signed long int, _Bool, int, int);
-_Bool __atomic_compare_exchange  (volatile signed long int *, signed long int *, signed long int *, _Bool, int, int);
-_Bool __atomic_compare_exchange_n(volatile unsigned long int *, unsigned long int *, unsigned long int, _Bool, int, int);
-_Bool __atomic_compare_exchange  (volatile unsigned long int *, unsigned long int *, unsigned long int *, _Bool, int, int);
-_Bool __atomic_compare_exchange_n(volatile signed long long int *, signed long long int *, signed long long int, _Bool, int, int);
-_Bool __atomic_compare_exchange  (volatile signed long long int *, signed long long int *, signed long long int *, _Bool, int, int);
-_Bool __atomic_compare_exchange_n(volatile unsigned long long int *, unsigned long long int *, unsigned long long int, _Bool, int, int);
-_Bool __atomic_compare_exchange  (volatile unsigned long long int *, unsigned long long int *, unsigned long long int *, _Bool, int, int);
-#if defined(__SIZEOF_INT128__)
-_Bool __atomic_compare_exchange_n (volatile signed __int128 *, signed __int128 *, signed __int128, _Bool, int, int);
-_Bool __atomic_compare_exchange   (volatile signed __int128 *, signed __int128 *, signed __int128 *, _Bool, int, int);
-_Bool __atomic_compare_exchange_n (volatile unsigned __int128 *, unsigned __int128 *, unsigned __int128, _Bool, int, int);
-_Bool __atomic_compare_exchange   (volatile unsigned __int128 *, unsigned __int128 *, unsigned __int128 *, _Bool, int, int);
-#endif
-// for all pointer types
-forall(T &) _Bool __atomic_compare_exchange_n (T * volatile *, T **, T*, _Bool, int, int);
-forall(T &) _Bool __atomic_compare_exchange   (T * volatile *, T **, T**, _Bool, int, int);
-
-void __atomic_store_n(volatile _Bool *, _Bool, int);
-void __atomic_store(volatile _Bool *, _Bool *, int);
-void __atomic_store_n(volatile char *, char, int);
-void __atomic_store(volatile char *, char *, int);
-void __atomic_store_n(volatile signed char *, signed char, int);
-void __atomic_store(volatile signed char *, signed char *, int);
-void __atomic_store_n(volatile unsigned char *, unsigned char, int);
-void __atomic_store(volatile unsigned char *, unsigned char *, int);
-void __atomic_store_n(volatile signed short *, signed short, int);
-void __atomic_store(volatile signed short *, signed short *, int);
-void __atomic_store_n(volatile unsigned short *, unsigned short, int);
-void __atomic_store(volatile unsigned short *, unsigned short *, int);
-void __atomic_store_n(volatile signed int *, signed int, int);
-void __atomic_store(volatile signed int *, signed int *, int);
-void __atomic_store_n(volatile unsigned int *, unsigned int, int);
-void __atomic_store(volatile unsigned int *, unsigned int *, int);
-void __atomic_store_n(volatile signed long int *, signed long int, int);
-void __atomic_store(volatile signed long int *, signed long int *, int);
-void __atomic_store_n(volatile unsigned long int *, unsigned long int, int);
-void __atomic_store(volatile unsigned long int *, unsigned long int *, int);
-void __atomic_store_n(volatile signed long long int *, signed long long int, int);
-void __atomic_store(volatile signed long long int *, signed long long int *, int);
-void __atomic_store_n(volatile unsigned long long int *, unsigned long long int, int);
-void __atomic_store(volatile unsigned long long int *, unsigned long long int *, int);
-#if defined(__SIZEOF_INT128__)
-void __atomic_store_n(volatile signed __int128 *, signed __int128, int);
-void __atomic_store(volatile signed __int128 *, signed __int128 *, int);
-void __atomic_store_n(volatile unsigned __int128 *, unsigned __int128, int);
-void __atomic_store(volatile unsigned __int128 *, unsigned __int128 *, int);
-#endif
-// for all pointer types
-forall(T &) void __atomic_store_n(T * volatile *, T *, int);
-forall(T &) void __atomic_store(T * volatile *, T **, int);
-
-char __atomic_add_fetch  (volatile char *, char, int);
-signed char __atomic_add_fetch  (volatile signed char *, signed char, int);
-unsigned char __atomic_add_fetch  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_add_fetch  (volatile signed short *, signed short, int);
-unsigned short __atomic_add_fetch  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_add_fetch  (volatile signed int *, signed int, int);
-unsigned int __atomic_add_fetch  (volatile unsigned int *, unsigned int, int);
-signed long int __atomic_add_fetch  (volatile signed long int *, signed long int, int);
-unsigned long int __atomic_add_fetch  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_add_fetch  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_add_fetch  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_add_fetch   (volatile signed __int128 *, signed __int128, int);
-unsigned __int128 __atomic_add_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
-#endif
-
-char __atomic_sub_fetch  (volatile char *, char, int);
-signed char __atomic_sub_fetch  (volatile signed char *, signed char, int);
-unsigned char __atomic_sub_fetch  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_sub_fetch  (volatile signed short *, signed short, int);
-unsigned short __atomic_sub_fetch  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_sub_fetch  (volatile signed int *, signed int, int);
-unsigned int __atomic_sub_fetch  (volatile unsigned int *, unsigned int, int);
-signed long long int __atomic_sub_fetch  (volatile signed long int *, signed long int, int);
-unsigned long long int __atomic_sub_fetch  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_sub_fetch  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_sub_fetch  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_sub_fetch   (volatile signed __int128 *, signed __int128, int);
-unsigned __int128 __atomic_sub_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
-#endif
-
-char __atomic_and_fetch  (volatile char *, char, int);
-signed char __atomic_and_fetch  (volatile signed char *, signed char, int);
-unsigned char __atomic_and_fetch  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_and_fetch  (volatile signed short *, signed short, int);
-unsigned short __atomic_and_fetch  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_and_fetch  (volatile signed int *, signed int, int);
-unsigned int __atomic_and_fetch  (volatile unsigned int *, unsigned int, int);
-signed long int __atomic_and_fetch  (volatile signed long int *, signed long int, int);
-unsigned long int __atomic_and_fetch  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_and_fetch  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_and_fetch  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_and_fetch   (volatile signed __int128 *, signed __int128, int);
-unsigned __int128 __atomic_and_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
-#endif
-
-char __atomic_nand_fetch  (volatile char *, char, int);
-signed char __atomic_nand_fetch  (volatile signed char *, signed char, int);
-unsigned char __atomic_nand_fetch  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_nand_fetch  (volatile signed short *, signed short, int);
-unsigned short __atomic_nand_fetch  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_nand_fetch  (volatile signed int *, signed int, int);
-unsigned int __atomic_nand_fetch  (volatile unsigned int *, unsigned int, int);
-signed long int __atomic_nand_fetch  (volatile signed long int *, signed long int, int);
-unsigned long int __atomic_nand_fetch  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_nand_fetch  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_nand_fetch  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_nand_fetch   (volatile signed __int128 *, signed __int128, int);
-unsigned __int128 __atomic_nand_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
-#endif
-
-char __atomic_xor_fetch  (volatile char *, char, int);
-signed char __atomic_xor_fetch  (volatile signed char *, signed char, int);
-unsigned char __atomic_xor_fetch  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_xor_fetch  (volatile signed short *, signed short, int);
-unsigned short __atomic_xor_fetch  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_xor_fetch  (volatile signed int *, signed int, int);
-unsigned int __atomic_xor_fetch  (volatile unsigned int *, unsigned int, int);
-signed long int __atomic_xor_fetch  (volatile signed long int *, signed long int, int);
-unsigned long int __atomic_xor_fetch  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_xor_fetch  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_xor_fetch  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_xor_fetch   (volatile signed __int128 *, signed __int128, int);
-unsigned __int128 __atomic_xor_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
-#endif
-
-char __atomic_or_fetch  (volatile char *, char, int);
-signed char __atomic_or_fetch  (volatile signed char *, signed char, int);
-unsigned char __atomic_or_fetch  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_or_fetch  (volatile signed short *, signed short, int);
-unsigned short __atomic_or_fetch  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_or_fetch  (volatile signed int *, signed int, int);
-unsigned int __atomic_or_fetch  (volatile unsigned int *, unsigned int, int);
-signed long int __atomic_or_fetch  (volatile signed long int *, signed long int, int);
-unsigned long int __atomic_or_fetch  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_or_fetch  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_or_fetch  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_or_fetch   (volatile signed __int128 *, signed __int128, int);
-unsigned __int128 __atomic_or_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
-#endif
-
-char __atomic_fetch_add  (volatile char *, char, int);
-signed char __atomic_fetch_add  (volatile signed char *, signed char, int);
-unsigned char __atomic_fetch_add  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_fetch_add  (volatile signed short *, signed short, int);
-unsigned short __atomic_fetch_add  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_fetch_add  (volatile signed int *, signed int, int);
-unsigned int __atomic_fetch_add  (volatile unsigned int *, unsigned int, int);
-signed long int __atomic_fetch_add  (volatile signed long int *, signed long int, int);
-unsigned long int __atomic_fetch_add  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_fetch_add  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_fetch_add  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_fetch_add   (volatile signed __int128 *, signed __int128, int);
-unsigned __int128 __atomic_fetch_add   (volatile unsigned __int128 *, unsigned __int128, int);
-#endif
-
-char __atomic_fetch_sub  (volatile char *, char, int);
-signed char __atomic_fetch_sub  (volatile signed char *, signed char, int);
-unsigned char __atomic_fetch_sub  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_fetch_sub  (volatile signed short *, signed short, int);
-unsigned short __atomic_fetch_sub  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_fetch_sub  (volatile signed int *, signed int, int);
-unsigned int __atomic_fetch_sub  (volatile unsigned int *, unsigned int, int);
-signed long int __atomic_fetch_sub  (volatile signed long int *, signed long int, int);
-unsigned long int __atomic_fetch_sub  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_fetch_sub  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_fetch_sub  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_fetch_sub   (volatile signed  __int128 *, signed __int128, int);
-unsigned __int128 __atomic_fetch_sub   (volatile unsigned  __int128 *, unsigned __int128, int);
-#endif
-
-char __atomic_fetch_and  (volatile char *, char, int);
-signed char __atomic_fetch_and  (volatile signed char *, signed char, int);
-unsigned char __atomic_fetch_and  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_fetch_and  (volatile signed short *, signed short, int);
-unsigned short __atomic_fetch_and  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_fetch_and  (volatile signed int *, signed int, int);
-unsigned int __atomic_fetch_and  (volatile unsigned int *, unsigned int, int);
-signed long int __atomic_fetch_and  (volatile signed long int *, signed long int, int);
-unsigned long int __atomic_fetch_and  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_fetch_and  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_fetch_and  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_fetch_and   (volatile signed __int128 *, signed __int128, int);
-unsigned __int128 __atomic_fetch_and   (volatile unsigned __int128 *, unsigned __int128, int);
-#endif
-
-char __atomic_fetch_nand  (volatile char *, char, int);
-signed char __atomic_fetch_nand  (volatile signed char *, signed char, int);
-unsigned char __atomic_fetch_nand  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_fetch_nand  (volatile signed short *, signed short, int);
-unsigned short __atomic_fetch_nand  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_fetch_nand  (volatile signed int *, signed int, int);
-unsigned int __atomic_fetch_nand  (volatile unsigned int *, unsigned int, int);
-signed long int __atomic_fetch_nand  (volatile signed long int *, signed long int, int);
-unsigned long int __atomic_fetch_nand  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_fetch_nand  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_fetch_nand  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_fetch_nand   (volatile signed __int128 *, signed __int128, int);
-unsigned __int128 __atomic_fetch_nand   (volatile unsigned __int128 *, unsigned __int128, int);
-#endif
-
-char __atomic_fetch_xor  (volatile char *, char, int);
-signed char __atomic_fetch_xor  (volatile signed char *, signed char, int);
-unsigned char __atomic_fetch_xor  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_fetch_xor  (volatile signed short *, signed short, int);
-unsigned short __atomic_fetch_xor  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_fetch_xor  (volatile signed int *, signed int, int);
-unsigned int __atomic_fetch_xor  (volatile unsigned int *, unsigned int, int);
-signed long int __atomic_fetch_xor  (volatile signed long int *, signed long int, int);
-unsigned long int __atomic_fetch_xor  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_fetch_xor  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_fetch_xor  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_fetch_xor   (volatile signed __int128 *, signed __int128, int);
-unsigned __int128 __atomic_fetch_xor   (volatile unsigned __int128 *, unsigned __int128, int);
-#endif
-
-char __atomic_fetch_or  (volatile char *, char, int);
-signed char __atomic_fetch_or  (volatile signed char *, signed char, int);
-unsigned char __atomic_fetch_or  (volatile unsigned char *, unsigned char, int);
-signed short __atomic_fetch_or  (volatile signed short *, signed short, int);
-unsigned short __atomic_fetch_or  (volatile unsigned short *, unsigned short, int);
-signed int __atomic_fetch_or  (volatile signed int *, signed int, int);
-unsigned int __atomic_fetch_or  (volatile unsigned int *, unsigned int, int);
-signed long int __atomic_fetch_or  (volatile signed long int *, signed long int, int);
-unsigned long int __atomic_fetch_or  (volatile unsigned long int *, unsigned long int, int);
-signed long long int __atomic_fetch_or  (volatile signed long long int *, signed long long int, int);
-unsigned long long int __atomic_fetch_or  (volatile unsigned long long int *, unsigned long long int, int);
-#if defined(__SIZEOF_INT128__)
-signed __int128 __atomic_fetch_or   (volatile signed __int128 *, signed __int128, int);
-unsigned __int128 __atomic_fetch_or   (volatile unsigned __int128 *, unsigned __int128, int);
-#endif
-
-_Bool __atomic_always_lock_free(unsigned long, const volatile void *);
-_Bool __atomic_is_lock_free(unsigned long, const volatile void *);
-
-void __atomic_thread_fence (int);
-void __atomic_signal_fence (int);
-void __atomic_feraiseexcept(int);
Index: libcfa/prelude/sync-builtins.cfa
===================================================================
--- libcfa/prelude/sync-builtins.cfa	(revision be3f163306e87aeb232bf497922012355b5762df)
+++ libcfa/prelude/sync-builtins.cfa	(revision be3f163306e87aeb232bf497922012355b5762df)
@@ -0,0 +1,631 @@
+char __sync_fetch_and_add(volatile char *, char,...);
+signed char __sync_fetch_and_add(volatile signed char *, signed char,...);
+unsigned char __sync_fetch_and_add(volatile unsigned char *, unsigned char,...);
+signed short __sync_fetch_and_add(volatile signed short *, signed short,...);
+unsigned short __sync_fetch_and_add(volatile unsigned short *, unsigned short,...);
+signed int __sync_fetch_and_add(volatile signed int *, signed int,...);
+unsigned int __sync_fetch_and_add(volatile unsigned int *, unsigned int,...);
+signed long int __sync_fetch_and_add(volatile signed long int *, signed long int,...);
+unsigned long int __sync_fetch_and_add(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_fetch_and_add(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_fetch_and_add(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_fetch_and_add(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_fetch_and_add(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+char __sync_fetch_and_sub(volatile char *, char,...);
+signed char __sync_fetch_and_sub(volatile signed char *, signed char,...);
+unsigned char __sync_fetch_and_sub(volatile unsigned char *, unsigned char,...);
+signed short __sync_fetch_and_sub(volatile signed short *, signed short,...);
+unsigned short __sync_fetch_and_sub(volatile unsigned short *, unsigned short,...);
+signed int __sync_fetch_and_sub(volatile signed int *, signed int,...);
+unsigned int __sync_fetch_and_sub(volatile unsigned int *, unsigned int,...);
+signed long int __sync_fetch_and_sub(volatile signed long int *, signed long int,...);
+unsigned long int __sync_fetch_and_sub(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_fetch_and_sub(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_fetch_and_sub(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_fetch_and_sub(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_fetch_and_sub(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+char __sync_fetch_and_or(volatile char *, char,...);
+signed char __sync_fetch_and_or(volatile signed char *, signed char,...);
+unsigned char __sync_fetch_and_or(volatile unsigned char *, unsigned char,...);
+signed short __sync_fetch_and_or(volatile signed short *, signed short,...);
+unsigned short __sync_fetch_and_or(volatile unsigned short *, unsigned short,...);
+signed int __sync_fetch_and_or(volatile signed int *, signed int,...);
+unsigned int __sync_fetch_and_or(volatile unsigned int *, unsigned int,...);
+signed long int __sync_fetch_and_or(volatile signed long int *, signed long int,...);
+unsigned long int __sync_fetch_and_or(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_fetch_and_or(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_fetch_and_or(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_fetch_and_or(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_fetch_and_or(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+char __sync_fetch_and_and(volatile char *, char,...);
+signed char __sync_fetch_and_and(volatile signed char *, signed char,...);
+unsigned char __sync_fetch_and_and(volatile unsigned char *, unsigned char,...);
+signed short __sync_fetch_and_and(volatile signed short *, signed short,...);
+unsigned short __sync_fetch_and_and(volatile unsigned short *, unsigned short,...);
+signed int __sync_fetch_and_and(volatile signed int *, signed int,...);
+unsigned int __sync_fetch_and_and(volatile unsigned int *, unsigned int,...);
+signed long int __sync_fetch_and_and(volatile signed long int *, signed long int,...);
+unsigned long int __sync_fetch_and_and(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_fetch_and_and(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_fetch_and_and(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_fetch_and_and(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_fetch_and_and(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+char __sync_fetch_and_xor(volatile char *, char,...);
+signed char __sync_fetch_and_xor(volatile signed char *, signed char,...);
+unsigned char __sync_fetch_and_xor(volatile unsigned char *, unsigned char,...);
+signed short __sync_fetch_and_xor(volatile signed short *, signed short,...);
+unsigned short __sync_fetch_and_xor(volatile unsigned short *, unsigned short,...);
+signed int __sync_fetch_and_xor(volatile signed int *, signed int,...);
+unsigned int __sync_fetch_and_xor(volatile unsigned int *, unsigned int,...);
+signed long int __sync_fetch_and_xor(volatile signed long int *, signed long int,...);
+unsigned long int __sync_fetch_and_xor(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_fetch_and_xor(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_fetch_and_xor(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_fetch_and_xor(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_fetch_and_xor(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+char __sync_fetch_and_nand(volatile char *, char,...);
+signed char __sync_fetch_and_nand(volatile signed char *, signed char,...);
+unsigned char __sync_fetch_and_nand(volatile unsigned char *, unsigned char,...);
+signed short __sync_fetch_and_nand(volatile signed short *, signed short,...);
+unsigned short __sync_fetch_and_nand(volatile unsigned short *, unsigned short,...);
+signed int __sync_fetch_and_nand(volatile signed int *, signed int,...);
+unsigned int __sync_fetch_and_nand(volatile unsigned int *, unsigned int,...);
+signed long int __sync_fetch_and_nand(volatile signed long int *, signed long int,...);
+unsigned long int __sync_fetch_and_nand(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_fetch_and_nand(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_fetch_and_nand(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_fetch_and_nand(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_fetch_and_nand(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+char __sync_add_and_fetch(volatile char *, char,...);
+signed char __sync_add_and_fetch(volatile signed char *, signed char,...);
+unsigned char __sync_add_and_fetch(volatile unsigned char *, unsigned char,...);
+signed short __sync_add_and_fetch(volatile signed short *, signed short,...);
+unsigned short __sync_add_and_fetch(volatile unsigned short *, unsigned short,...);
+signed int __sync_add_and_fetch(volatile signed int *, signed int,...);
+signed int __sync_add_and_fetch(volatile signed int *, signed int,...);
+signed long int __sync_add_and_fetch(volatile signed long int *, signed long int,...);
+unsigned long int __sync_add_and_fetch(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_add_and_fetch(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_add_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_add_and_fetch(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_add_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+char __sync_sub_and_fetch(volatile char *, char,...);
+signed char __sync_sub_and_fetch(volatile signed char *, signed char,...);
+unsigned char __sync_sub_and_fetch(volatile unsigned char *, unsigned char,...);
+signed short __sync_sub_and_fetch(volatile signed short *, signed short,...);
+unsigned short __sync_sub_and_fetch(volatile unsigned short *, unsigned short,...);
+signed int __sync_sub_and_fetch(volatile signed int *, signed int,...);
+unsigned int __sync_sub_and_fetch(volatile unsigned int *, unsigned int,...);
+signed long int __sync_sub_and_fetch(volatile signed long int *, signed long int,...);
+unsigned long int __sync_sub_and_fetch(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_sub_and_fetch(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_sub_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_sub_and_fetch(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_sub_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+char __sync_or_and_fetch(volatile char *, char,...);
+signed char __sync_or_and_fetch(volatile signed char *, signed char,...);
+unsigned char __sync_or_and_fetch(volatile unsigned char *, unsigned char,...);
+signed short __sync_or_and_fetch(volatile signed short *, signed short,...);
+unsigned short __sync_or_and_fetch(volatile unsigned short *, unsigned short,...);
+signed int __sync_or_and_fetch(volatile signed int *, signed int,...);
+unsigned int __sync_or_and_fetch(volatile unsigned int *, unsigned int,...);
+signed long int __sync_or_and_fetch(volatile signed long int *, signed long int,...);
+unsigned long int __sync_or_and_fetch(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_or_and_fetch(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_or_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_or_and_fetch(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_or_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+char __sync_and_and_fetch(volatile char *, char,...);
+signed char __sync_and_and_fetch(volatile signed char *, signed char,...);
+unsigned char __sync_and_and_fetch(volatile unsigned char *, unsigned char,...);
+signed short __sync_and_and_fetch(volatile signed short *, signed short,...);
+unsigned short __sync_and_and_fetch(volatile unsigned short *, unsigned short,...);
+signed int __sync_and_and_fetch(volatile signed int *, signed int,...);
+unsigned int __sync_and_and_fetch(volatile unsigned int *, unsigned int,...);
+signed long int __sync_and_and_fetch(volatile signed long int *, signed long int,...);
+unsigned long int __sync_and_and_fetch(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_and_and_fetch(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_and_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_and_and_fetch(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_and_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+char __sync_xor_and_fetch(volatile char *, char,...);
+signed char __sync_xor_and_fetch(volatile signed char *, signed char,...);
+unsigned char __sync_xor_and_fetch(volatile unsigned char *, unsigned char,...);
+signed short __sync_xor_and_fetch(volatile signed short *, signed short,...);
+unsigned short __sync_xor_and_fetch(volatile unsigned short *, unsigned short,...);
+signed int __sync_xor_and_fetch(volatile signed int *, signed int,...);
+unsigned int __sync_xor_and_fetch(volatile unsigned int *, unsigned int,...);
+signed long int __sync_xor_and_fetch(volatile signed long int *, signed long int,...);
+unsigned long int __sync_xor_and_fetch(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_xor_and_fetch(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_xor_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_xor_and_fetch(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_xor_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+char __sync_nand_and_fetch(volatile char *, char,...);
+signed char __sync_nand_and_fetch(volatile signed char *, signed char,...);
+unsigned char __sync_nand_and_fetch(volatile unsigned char *, unsigned char,...);
+signed short __sync_nand_and_fetch(volatile signed short *, signed short,...);
+unsigned short __sync_nand_and_fetch(volatile unsigned short *, unsigned short,...);
+signed int __sync_nand_and_fetch(volatile signed int *, signed int,...);
+unsigned int __sync_nand_and_fetch(volatile unsigned int *, unsigned int,...);
+signed long int __sync_nand_and_fetch(volatile signed long int *, signed long int,...);
+unsigned long int __sync_nand_and_fetch(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_nand_and_fetch(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_nand_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_nand_and_fetch(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_nand_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+_Bool __sync_bool_compare_and_swap(volatile char *, char, char,...);
+_Bool __sync_bool_compare_and_swap(volatile signed char *, signed char, signed char,...);
+_Bool __sync_bool_compare_and_swap(volatile unsigned char *, unsigned char, unsigned char,...);
+_Bool __sync_bool_compare_and_swap(volatile short *, signed short, signed short,...);
+_Bool __sync_bool_compare_and_swap(volatile short *, unsigned short, unsigned short,...);
+_Bool __sync_bool_compare_and_swap(volatile signed int *, signed int, signed int,...);
+_Bool __sync_bool_compare_and_swap(volatile unsigned int *, unsigned int, unsigned int,...);
+_Bool __sync_bool_compare_and_swap(volatile signed long int *, signed long int, signed long int,...);
+_Bool __sync_bool_compare_and_swap(volatile unsigned long int *, unsigned long int, unsigned long int,...);
+_Bool __sync_bool_compare_and_swap(volatile signed long long int *, signed long long int, signed long long int,...);
+_Bool __sync_bool_compare_and_swap(volatile unsigned long long int *, unsigned long long int, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+_Bool __sync_bool_compare_and_swap(volatile signed __int128 *, signed __int128, signed __int128,...);
+_Bool __sync_bool_compare_and_swap(volatile unsigned __int128 *, unsigned __int128, unsigned __int128,...);
+#endif
+// for all pointer types
+forall(T &) _Bool __sync_bool_compare_and_swap(T * volatile *, T *, T*, ...);
+
+char __sync_val_compare_and_swap(volatile char *, char, char,...);
+signed char __sync_val_compare_and_swap(volatile signed char *, signed char, signed char,...);
+unsigned char __sync_val_compare_and_swap(volatile unsigned char *, unsigned char, unsigned char,...);
+signed short __sync_val_compare_and_swap(volatile signed short *, signed short, signed short,...);
+unsigned short __sync_val_compare_and_swap(volatile unsigned short *, unsigned short, unsigned short,...);
+signed int __sync_val_compare_and_swap(volatile signed int *, signed int, signed int,...);
+unsigned int __sync_val_compare_and_swap(volatile unsigned int *, unsigned int, unsigned int,...);
+signed long int __sync_val_compare_and_swap(volatile signed long int *, signed long int, signed long int,...);
+unsigned long int __sync_val_compare_and_swap(volatile unsigned long int *, unsigned long int, unsigned long int,...);
+signed long long int __sync_val_compare_and_swap(volatile signed long long int *, signed long long int, signed long long int,...);
+unsigned long long int __sync_val_compare_and_swap(volatile unsigned long long int *, unsigned long long int, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_val_compare_and_swap(volatile signed __int128 *, signed __int128, signed __int128,...);
+unsigned __int128 __sync_val_compare_and_swap(volatile unsigned __int128 *, unsigned __int128, unsigned __int128,...);
+#endif
+// for all pointer types
+forall(T &) T * __sync_val_compare_and_swap(T * volatile *, T *, T*,...);
+
+char __sync_lock_test_and_set(volatile char *, char,...);
+signed char __sync_lock_test_and_set(volatile signed char *, signed char,...);
+unsigned char __sync_lock_test_and_set(volatile unsigned char *, unsigned char,...);
+signed short __sync_lock_test_and_set(volatile signed short *, signed short,...);
+unsigned short __sync_lock_test_and_set(volatile unsigned short *, unsigned short,...);
+signed int __sync_lock_test_and_set(volatile signed int *, signed int,...);
+unsigned int __sync_lock_test_and_set(volatile unsigned int *, unsigned int,...);
+signed long int __sync_lock_test_and_set(volatile signed long int *, signed long int,...);
+unsigned long int __sync_lock_test_and_set(volatile unsigned long int *, unsigned long int,...);
+signed long long int __sync_lock_test_and_set(volatile signed long long int *, signed long long int,...);
+unsigned long long int __sync_lock_test_and_set(volatile unsigned long long int *, unsigned long long int,...);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __sync_lock_test_and_set(volatile signed __int128 *, signed __int128,...);
+unsigned __int128 __sync_lock_test_and_set(volatile unsigned __int128 *, unsigned __int128,...);
+#endif
+
+void __sync_lock_release(volatile char *,...);
+void __sync_lock_release(volatile signed char *,...);
+void __sync_lock_release(volatile unsigned char *,...);
+void __sync_lock_release(volatile signed short *,...);
+void __sync_lock_release(volatile unsigned short *,...);
+void __sync_lock_release(volatile signed int *,...);
+void __sync_lock_release(volatile unsigned int *,...);
+void __sync_lock_release(volatile signed long int *,...);
+void __sync_lock_release(volatile unsigned long int *,...);
+void __sync_lock_release(volatile signed long long int *,...);
+void __sync_lock_release(volatile unsigned long long int *,...);
+#if defined(__SIZEOF_INT128__)
+void __sync_lock_release(volatile signed __int128 *,...);
+void __sync_lock_release(volatile unsigned __int128 *,...);
+#endif
+
+void __sync_synchronize();
+
+
+
+
+_Bool __atomic_test_and_set(volatile _Bool *, int);
+_Bool __atomic_test_and_set(volatile char *, int);
+_Bool __atomic_test_and_set(volatile signed char *, int);
+_Bool __atomic_test_and_set(volatile unsigned char *, int);
+_Bool __atomic_test_and_set(volatile signed short *, int);
+_Bool __atomic_test_and_set(volatile unsigned short *, int);
+_Bool __atomic_test_and_set(volatile signed int *, int);
+_Bool __atomic_test_and_set(volatile unsigned int *, int);
+_Bool __atomic_test_and_set(volatile signed long int *, int);
+_Bool __atomic_test_and_set(volatile unsigned long int *, int);
+_Bool __atomic_test_and_set(volatile signed long long int *, int);
+_Bool __atomic_test_and_set(volatile unsigned long long int *, int);
+#if defined(__SIZEOF_INT128__)
+_Bool __atomic_test_and_set(volatile signed __int128 *, int);
+_Bool __atomic_test_and_set(volatile unsigned __int128 *, int);
+#endif
+
+void __atomic_clear(volatile _Bool *, int);
+void __atomic_clear(volatile char *, int);
+void __atomic_clear(volatile signed char *, int);
+void __atomic_clear(volatile unsigned char *, int);
+void __atomic_clear(volatile signed short *, int);
+void __atomic_clear(volatile unsigned short *, int);
+void __atomic_clear(volatile signed int *, int);
+void __atomic_clear(volatile unsigned int *, int);
+void __atomic_clear(volatile signed long int *, int);
+void __atomic_clear(volatile unsigned long int *, int);
+void __atomic_clear(volatile signed long long int *, int);
+void __atomic_clear(volatile unsigned long long int *, int);
+#if defined(__SIZEOF_INT128__)
+void __atomic_clear(volatile signed __int128 *, int);
+void __atomic_clear(volatile unsigned __int128 *, int);
+#endif
+
+_Bool __atomic_exchange_n(volatile _Bool *, _Bool, int);
+void __atomic_exchange(volatile _Bool *, _Bool *, _Bool *, int);
+char __atomic_exchange_n(volatile char *, char, int);
+void __atomic_exchange(volatile char *, char *, char *, int);
+signed char __atomic_exchange_n(volatile signed char *, signed char, int);
+void __atomic_exchange(volatile signed char *, signed char *, signed char *, int);
+unsigned char __atomic_exchange_n(volatile unsigned char *, unsigned char, int);
+void __atomic_exchange(volatile unsigned char *, unsigned char *, unsigned char *, int);
+signed short __atomic_exchange_n(volatile signed short *, signed short, int);
+void __atomic_exchange(volatile signed short *, signed short *, signed short *, int);
+unsigned short __atomic_exchange_n(volatile unsigned short *, unsigned short, int);
+void __atomic_exchange(volatile unsigned short *, unsigned short *, unsigned short *, int);
+signed int __atomic_exchange_n(volatile signed int *, signed int, int);
+void __atomic_exchange(volatile signed int *, signed int *, signed int *, int);
+unsigned int __atomic_exchange_n(volatile unsigned int *, unsigned int, int);
+void __atomic_exchange(volatile unsigned int *, unsigned int *, unsigned int *, int);
+signed long int __atomic_exchange_n(volatile signed long int *, signed long int, int);
+void __atomic_exchange(volatile signed long int *, signed long int *, signed long int *, int);
+unsigned long int __atomic_exchange_n(volatile unsigned long int *, unsigned long int, int);
+void __atomic_exchange(volatile unsigned long int *, unsigned long int *, unsigned long int *, int);
+signed long long int __atomic_exchange_n(volatile signed long long int *, signed long long int, int);
+void __atomic_exchange(volatile signed long long int *, signed long long int *, signed long long int *, int);
+unsigned long long int __atomic_exchange_n(volatile unsigned long long int *, unsigned long long int, int);
+void __atomic_exchange(volatile unsigned long long int *, unsigned long long int *, unsigned long long int *, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_exchange_n(volatile signed __int128 *, signed __int128, int);
+void __atomic_exchange(volatile signed __int128 *, signed __int128 *, signed __int128 *, int);
+unsigned __int128 __atomic_exchange_n(volatile unsigned __int128 *, unsigned __int128, int);
+void __atomic_exchange(volatile unsigned __int128 *, unsigned __int128 *, unsigned __int128 *, int);
+#endif
+// for all pointer types
+forall(T &) T * __atomic_exchange_n(T * volatile *, T *, int);
+forall(T &) void __atomic_exchange(T * volatile *, T **, T **, int);
+
+_Bool __atomic_load_n(const volatile _Bool *, int);
+void __atomic_load(const volatile _Bool *, _Bool *, int);
+char __atomic_load_n(const volatile char *, int);
+void __atomic_load(const volatile char *, char *, int);
+signed char __atomic_load_n(const volatile signed char *, int);
+void __atomic_load(const volatile signed char *, signed char *, int);
+unsigned char __atomic_load_n(const volatile unsigned char *, int);
+void __atomic_load(const volatile unsigned char *, unsigned char *, int);
+signed short __atomic_load_n(const volatile signed short *, int);
+void __atomic_load(const volatile signed short *, signed short *, int);
+unsigned short __atomic_load_n(const volatile unsigned short *, int);
+void __atomic_load(const volatile unsigned short *, unsigned short *, int);
+signed int __atomic_load_n(const volatile signed int *, int);
+void __atomic_load(const volatile signed int *, signed int *, int);
+unsigned int __atomic_load_n(const volatile unsigned int *, int);
+void __atomic_load(const volatile unsigned int *, unsigned int *, int);
+signed long int __atomic_load_n(const volatile signed long int *, int);
+void __atomic_load(const volatile signed long int *, signed long int *, int);
+unsigned long int __atomic_load_n(const volatile unsigned long int *, int);
+void __atomic_load(const volatile unsigned long int *, unsigned long int *, int);
+signed long long int __atomic_load_n(const volatile signed long long int *, int);
+void __atomic_load(const volatile signed long long int *, signed long long int *, int);
+unsigned long long int __atomic_load_n(const volatile unsigned long long int *, int);
+void __atomic_load(const volatile unsigned long long int *, unsigned long long int *, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_load_n(const volatile signed __int128 *, int);
+void __atomic_load(const volatile signed __int128 *, signed __int128 *, int);
+unsigned __int128 __atomic_load_n(const volatile unsigned __int128 *, int);
+void __atomic_load(const volatile unsigned __int128 *, unsigned __int128 *, int);
+#endif
+// for all pointer types
+forall(T &) T * __atomic_load_n(T * const volatile *, int);
+forall(T &) void __atomic_load(T * const volatile *, T **, int);
+
+_Bool __atomic_compare_exchange_n(volatile char *, char *, char, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile char *, char *, char *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile signed char *, signed char *, signed char, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile signed char *, signed char *, signed char *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile unsigned char *, unsigned char *, unsigned char, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile unsigned char *, unsigned char *, unsigned char *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile signed short *, signed short *, signed short, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile signed short *, signed short *, signed short *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile unsigned short *, unsigned short *, unsigned short, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile unsigned short *, unsigned short *, unsigned short *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile signed int *, signed int *, signed int, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile signed int *, signed int *, signed int *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile unsigned int *, unsigned int *, unsigned int, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile unsigned int *, unsigned int *, unsigned int *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile signed long int *, signed long int *, signed long int, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile signed long int *, signed long int *, signed long int *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile unsigned long int *, unsigned long int *, unsigned long int, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile unsigned long int *, unsigned long int *, unsigned long int *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile signed long long int *, signed long long int *, signed long long int, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile signed long long int *, signed long long int *, signed long long int *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n(volatile unsigned long long int *, unsigned long long int *, unsigned long long int, _Bool, int, int);
+_Bool __atomic_compare_exchange  (volatile unsigned long long int *, unsigned long long int *, unsigned long long int *, _Bool, int, int);
+#if defined(__SIZEOF_INT128__)
+_Bool __atomic_compare_exchange_n (volatile signed __int128 *, signed __int128 *, signed __int128, _Bool, int, int);
+_Bool __atomic_compare_exchange   (volatile signed __int128 *, signed __int128 *, signed __int128 *, _Bool, int, int);
+_Bool __atomic_compare_exchange_n (volatile unsigned __int128 *, unsigned __int128 *, unsigned __int128, _Bool, int, int);
+_Bool __atomic_compare_exchange   (volatile unsigned __int128 *, unsigned __int128 *, unsigned __int128 *, _Bool, int, int);
+#endif
+// for all pointer types
+forall(T &) _Bool __atomic_compare_exchange_n (T * volatile *, T **, T*, _Bool, int, int);
+forall(T &) _Bool __atomic_compare_exchange   (T * volatile *, T **, T**, _Bool, int, int);
+
+void __atomic_store_n(volatile _Bool *, _Bool, int);
+void __atomic_store(volatile _Bool *, _Bool *, int);
+void __atomic_store_n(volatile char *, char, int);
+void __atomic_store(volatile char *, char *, int);
+void __atomic_store_n(volatile signed char *, signed char, int);
+void __atomic_store(volatile signed char *, signed char *, int);
+void __atomic_store_n(volatile unsigned char *, unsigned char, int);
+void __atomic_store(volatile unsigned char *, unsigned char *, int);
+void __atomic_store_n(volatile signed short *, signed short, int);
+void __atomic_store(volatile signed short *, signed short *, int);
+void __atomic_store_n(volatile unsigned short *, unsigned short, int);
+void __atomic_store(volatile unsigned short *, unsigned short *, int);
+void __atomic_store_n(volatile signed int *, signed int, int);
+void __atomic_store(volatile signed int *, signed int *, int);
+void __atomic_store_n(volatile unsigned int *, unsigned int, int);
+void __atomic_store(volatile unsigned int *, unsigned int *, int);
+void __atomic_store_n(volatile signed long int *, signed long int, int);
+void __atomic_store(volatile signed long int *, signed long int *, int);
+void __atomic_store_n(volatile unsigned long int *, unsigned long int, int);
+void __atomic_store(volatile unsigned long int *, unsigned long int *, int);
+void __atomic_store_n(volatile signed long long int *, signed long long int, int);
+void __atomic_store(volatile signed long long int *, signed long long int *, int);
+void __atomic_store_n(volatile unsigned long long int *, unsigned long long int, int);
+void __atomic_store(volatile unsigned long long int *, unsigned long long int *, int);
+#if defined(__SIZEOF_INT128__)
+void __atomic_store_n(volatile signed __int128 *, signed __int128, int);
+void __atomic_store(volatile signed __int128 *, signed __int128 *, int);
+void __atomic_store_n(volatile unsigned __int128 *, unsigned __int128, int);
+void __atomic_store(volatile unsigned __int128 *, unsigned __int128 *, int);
+#endif
+// for all pointer types
+forall(T &) void __atomic_store_n(T * volatile *, T *, int);
+forall(T &) void __atomic_store(T * volatile *, T **, int);
+
+char __atomic_add_fetch  (volatile char *, char, int);
+signed char __atomic_add_fetch  (volatile signed char *, signed char, int);
+unsigned char __atomic_add_fetch  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_add_fetch  (volatile signed short *, signed short, int);
+unsigned short __atomic_add_fetch  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_add_fetch  (volatile signed int *, signed int, int);
+unsigned int __atomic_add_fetch  (volatile unsigned int *, unsigned int, int);
+signed long int __atomic_add_fetch  (volatile signed long int *, signed long int, int);
+unsigned long int __atomic_add_fetch  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_add_fetch  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_add_fetch  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_add_fetch   (volatile signed __int128 *, signed __int128, int);
+unsigned __int128 __atomic_add_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
+#endif
+
+char __atomic_sub_fetch  (volatile char *, char, int);
+signed char __atomic_sub_fetch  (volatile signed char *, signed char, int);
+unsigned char __atomic_sub_fetch  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_sub_fetch  (volatile signed short *, signed short, int);
+unsigned short __atomic_sub_fetch  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_sub_fetch  (volatile signed int *, signed int, int);
+unsigned int __atomic_sub_fetch  (volatile unsigned int *, unsigned int, int);
+signed long long int __atomic_sub_fetch  (volatile signed long int *, signed long int, int);
+unsigned long long int __atomic_sub_fetch  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_sub_fetch  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_sub_fetch  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_sub_fetch   (volatile signed __int128 *, signed __int128, int);
+unsigned __int128 __atomic_sub_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
+#endif
+
+char __atomic_and_fetch  (volatile char *, char, int);
+signed char __atomic_and_fetch  (volatile signed char *, signed char, int);
+unsigned char __atomic_and_fetch  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_and_fetch  (volatile signed short *, signed short, int);
+unsigned short __atomic_and_fetch  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_and_fetch  (volatile signed int *, signed int, int);
+unsigned int __atomic_and_fetch  (volatile unsigned int *, unsigned int, int);
+signed long int __atomic_and_fetch  (volatile signed long int *, signed long int, int);
+unsigned long int __atomic_and_fetch  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_and_fetch  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_and_fetch  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_and_fetch   (volatile signed __int128 *, signed __int128, int);
+unsigned __int128 __atomic_and_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
+#endif
+
+char __atomic_nand_fetch  (volatile char *, char, int);
+signed char __atomic_nand_fetch  (volatile signed char *, signed char, int);
+unsigned char __atomic_nand_fetch  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_nand_fetch  (volatile signed short *, signed short, int);
+unsigned short __atomic_nand_fetch  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_nand_fetch  (volatile signed int *, signed int, int);
+unsigned int __atomic_nand_fetch  (volatile unsigned int *, unsigned int, int);
+signed long int __atomic_nand_fetch  (volatile signed long int *, signed long int, int);
+unsigned long int __atomic_nand_fetch  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_nand_fetch  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_nand_fetch  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_nand_fetch   (volatile signed __int128 *, signed __int128, int);
+unsigned __int128 __atomic_nand_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
+#endif
+
+char __atomic_xor_fetch  (volatile char *, char, int);
+signed char __atomic_xor_fetch  (volatile signed char *, signed char, int);
+unsigned char __atomic_xor_fetch  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_xor_fetch  (volatile signed short *, signed short, int);
+unsigned short __atomic_xor_fetch  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_xor_fetch  (volatile signed int *, signed int, int);
+unsigned int __atomic_xor_fetch  (volatile unsigned int *, unsigned int, int);
+signed long int __atomic_xor_fetch  (volatile signed long int *, signed long int, int);
+unsigned long int __atomic_xor_fetch  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_xor_fetch  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_xor_fetch  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_xor_fetch   (volatile signed __int128 *, signed __int128, int);
+unsigned __int128 __atomic_xor_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
+#endif
+
+char __atomic_or_fetch  (volatile char *, char, int);
+signed char __atomic_or_fetch  (volatile signed char *, signed char, int);
+unsigned char __atomic_or_fetch  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_or_fetch  (volatile signed short *, signed short, int);
+unsigned short __atomic_or_fetch  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_or_fetch  (volatile signed int *, signed int, int);
+unsigned int __atomic_or_fetch  (volatile unsigned int *, unsigned int, int);
+signed long int __atomic_or_fetch  (volatile signed long int *, signed long int, int);
+unsigned long int __atomic_or_fetch  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_or_fetch  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_or_fetch  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_or_fetch   (volatile signed __int128 *, signed __int128, int);
+unsigned __int128 __atomic_or_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
+#endif
+
+char __atomic_fetch_add  (volatile char *, char, int);
+signed char __atomic_fetch_add  (volatile signed char *, signed char, int);
+unsigned char __atomic_fetch_add  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_fetch_add  (volatile signed short *, signed short, int);
+unsigned short __atomic_fetch_add  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_fetch_add  (volatile signed int *, signed int, int);
+unsigned int __atomic_fetch_add  (volatile unsigned int *, unsigned int, int);
+signed long int __atomic_fetch_add  (volatile signed long int *, signed long int, int);
+unsigned long int __atomic_fetch_add  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_fetch_add  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_fetch_add  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_fetch_add   (volatile signed __int128 *, signed __int128, int);
+unsigned __int128 __atomic_fetch_add   (volatile unsigned __int128 *, unsigned __int128, int);
+#endif
+
+char __atomic_fetch_sub  (volatile char *, char, int);
+signed char __atomic_fetch_sub  (volatile signed char *, signed char, int);
+unsigned char __atomic_fetch_sub  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_fetch_sub  (volatile signed short *, signed short, int);
+unsigned short __atomic_fetch_sub  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_fetch_sub  (volatile signed int *, signed int, int);
+unsigned int __atomic_fetch_sub  (volatile unsigned int *, unsigned int, int);
+signed long int __atomic_fetch_sub  (volatile signed long int *, signed long int, int);
+unsigned long int __atomic_fetch_sub  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_fetch_sub  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_fetch_sub  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_fetch_sub   (volatile signed  __int128 *, signed __int128, int);
+unsigned __int128 __atomic_fetch_sub   (volatile unsigned  __int128 *, unsigned __int128, int);
+#endif
+
+char __atomic_fetch_and  (volatile char *, char, int);
+signed char __atomic_fetch_and  (volatile signed char *, signed char, int);
+unsigned char __atomic_fetch_and  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_fetch_and  (volatile signed short *, signed short, int);
+unsigned short __atomic_fetch_and  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_fetch_and  (volatile signed int *, signed int, int);
+unsigned int __atomic_fetch_and  (volatile unsigned int *, unsigned int, int);
+signed long int __atomic_fetch_and  (volatile signed long int *, signed long int, int);
+unsigned long int __atomic_fetch_and  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_fetch_and  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_fetch_and  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_fetch_and   (volatile signed __int128 *, signed __int128, int);
+unsigned __int128 __atomic_fetch_and   (volatile unsigned __int128 *, unsigned __int128, int);
+#endif
+
+char __atomic_fetch_nand  (volatile char *, char, int);
+signed char __atomic_fetch_nand  (volatile signed char *, signed char, int);
+unsigned char __atomic_fetch_nand  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_fetch_nand  (volatile signed short *, signed short, int);
+unsigned short __atomic_fetch_nand  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_fetch_nand  (volatile signed int *, signed int, int);
+unsigned int __atomic_fetch_nand  (volatile unsigned int *, unsigned int, int);
+signed long int __atomic_fetch_nand  (volatile signed long int *, signed long int, int);
+unsigned long int __atomic_fetch_nand  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_fetch_nand  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_fetch_nand  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_fetch_nand   (volatile signed __int128 *, signed __int128, int);
+unsigned __int128 __atomic_fetch_nand   (volatile unsigned __int128 *, unsigned __int128, int);
+#endif
+
+char __atomic_fetch_xor  (volatile char *, char, int);
+signed char __atomic_fetch_xor  (volatile signed char *, signed char, int);
+unsigned char __atomic_fetch_xor  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_fetch_xor  (volatile signed short *, signed short, int);
+unsigned short __atomic_fetch_xor  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_fetch_xor  (volatile signed int *, signed int, int);
+unsigned int __atomic_fetch_xor  (volatile unsigned int *, unsigned int, int);
+signed long int __atomic_fetch_xor  (volatile signed long int *, signed long int, int);
+unsigned long int __atomic_fetch_xor  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_fetch_xor  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_fetch_xor  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_fetch_xor   (volatile signed __int128 *, signed __int128, int);
+unsigned __int128 __atomic_fetch_xor   (volatile unsigned __int128 *, unsigned __int128, int);
+#endif
+
+char __atomic_fetch_or  (volatile char *, char, int);
+signed char __atomic_fetch_or  (volatile signed char *, signed char, int);
+unsigned char __atomic_fetch_or  (volatile unsigned char *, unsigned char, int);
+signed short __atomic_fetch_or  (volatile signed short *, signed short, int);
+unsigned short __atomic_fetch_or  (volatile unsigned short *, unsigned short, int);
+signed int __atomic_fetch_or  (volatile signed int *, signed int, int);
+unsigned int __atomic_fetch_or  (volatile unsigned int *, unsigned int, int);
+signed long int __atomic_fetch_or  (volatile signed long int *, signed long int, int);
+unsigned long int __atomic_fetch_or  (volatile unsigned long int *, unsigned long int, int);
+signed long long int __atomic_fetch_or  (volatile signed long long int *, signed long long int, int);
+unsigned long long int __atomic_fetch_or  (volatile unsigned long long int *, unsigned long long int, int);
+#if defined(__SIZEOF_INT128__)
+signed __int128 __atomic_fetch_or   (volatile signed __int128 *, signed __int128, int);
+unsigned __int128 __atomic_fetch_or   (volatile unsigned __int128 *, unsigned __int128, int);
+#endif
+
+_Bool __atomic_always_lock_free(unsigned long, const volatile void *);
+_Bool __atomic_is_lock_free(unsigned long, const volatile void *);
+
+void __atomic_thread_fence (int);
+void __atomic_signal_fence (int);
+void __atomic_feraiseexcept(int);
Index: libcfa/src/Makefile.am
===================================================================
--- libcfa/src/Makefile.am	(revision fa761c2aa9a4a9b1a22e28f45f380ba9d9ad36c0)
+++ libcfa/src/Makefile.am	(revision be3f163306e87aeb232bf497922012355b5762df)
@@ -11,6 +11,6 @@
 ## Created On       : Sun May 31 08:54:01 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Mon Sep 18 17:06:56 2023
-## Update Count     : 264
+## Last Modified On : Wed Nov  1 19:03:42 2023
+## Update Count     : 266
 ###############################################################################
 
@@ -195,5 +195,5 @@
 if ENABLE_DISTCC
 
-../prelude/distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ ../prelude/defines.hfa ../prelude/gcc-builtins.cf ../prelude/builtins.cf ../prelude/extras.cf ../prelude/prelude.cfa ../prelude/bootloader.c $(srcdir)/../../tools/build/push2dist.sh
+../prelude/distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ ../prelude/defines.hfa ../prelude/gcc-builtins.cfa ../prelude/builtins.cfa ../prelude/extras.cfa ../prelude/prelude.cfa ../prelude/bootloader.c $(srcdir)/../../tools/build/push2dist.sh
 	@+make -C ../prelude distribution
 
@@ -202,8 +202,8 @@
 endif ENABLE_DISTCC
 
-prelude.o : prelude.cfa extras.cf gcc-builtins.cf builtins.cf @LOCAL_CFACC@ @CFACPP@
+prelude.o : prelude.cfa extras.cfa gcc-builtins.cfa builtins.cfa @LOCAL_CFACC@ @CFACPP@
 	${AM_V_GEN}$(CFACOMPILE) -quiet -XCFA,-l ${<} -c -fvisibility=default -o ${@}
 
-prelude.lo: prelude.cfa extras.cf gcc-builtins.cf builtins.cf @LOCAL_CFACC@ @CFACPP@
+prelude.lo: prelude.cfa extras.cfa gcc-builtins.cfa builtins.cfa @LOCAL_CFACC@ @CFACPP@
 	${AM_V_GEN}$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \
 	$(CFACOMPILE) -quiet -XCFA,-l ${<} -c -fvisibility=default -o ${@}
Index: src/main.cc
===================================================================
--- src/main.cc	(revision fa761c2aa9a4a9b1a22e28f45f380ba9d9ad36c0)
+++ src/main.cc	(revision be3f163306e87aeb232bf497922012355b5762df)
@@ -10,6 +10,6 @@
 // Created On       : Fri May 15 23:12:02 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Sep 28 22:28:45 2023
-// Update Count     : 687
+// Last Modified On : Wed Nov  1 21:12:58 2023
+// Update Count     : 690
 //
 
@@ -289,10 +289,10 @@
 
 			// Read to gcc builtins, if not generating the cfa library
-			FILE * gcc_builtins = fopen( (PreludeDirector + "/gcc-builtins.cf").c_str(), "r" );
+			FILE * gcc_builtins = fopen( (PreludeDirector + "/gcc-builtins.cfa").c_str(), "r" );
 			assertf( gcc_builtins, "cannot open gcc-builtins.cf\n" );
 			parse( gcc_builtins, ast::Linkage::Compiler );
 
 			// read the extra prelude in, if not generating the cfa library
-			FILE * extras = fopen( (PreludeDirector + "/extras.cf").c_str(), "r" );
+			FILE * extras = fopen( (PreludeDirector + "/extras.cfa").c_str(), "r" );
 			assertf( extras, "cannot open extras.cf\n" );
 			parse( extras, ast::Linkage::BuiltinC );
@@ -305,5 +305,5 @@
 
 				// Read to cfa builtins, if not generating the cfa library
-				FILE * builtins = fopen( (PreludeDirector + "/builtins.cf").c_str(), "r" );
+				FILE * builtins = fopen( (PreludeDirector + "/builtins.cfa").c_str(), "r" );
 				assertf( builtins, "cannot open builtins.cf\n" );
 				parse( builtins, ast::Linkage::BuiltinCFA );
@@ -431,6 +431,5 @@
 		PASS( "Code Gen", CodeGen::generate, transUnit, *output, !genproto, prettycodegenp, true, linemarks, false );
 
-		CodeGen::FixMain::fix( transUnit, *output,
-				(PreludeDirector + "/bootloader.c").c_str() );
+		CodeGen::FixMain::fix( transUnit, *output, (PreludeDirector + "/bootloader.c").c_str() );
 		if ( output != &cout ) {
 			delete output;
