implemented Setup.hs to build boehm cpp libs and install them;
[hs-boehmgc.git] / gc-7.2 / libatomic_ops / tests / list_atomic.c
diff --git a/gc-7.2/libatomic_ops/tests/list_atomic.c b/gc-7.2/libatomic_ops/tests/list_atomic.c
new file mode 100644 (file)
index 0000000..a71a4af
--- /dev/null
@@ -0,0 +1,545 @@
+#include "atomic_ops.h" 
+/*
+ * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
+ *
+ * This file is covered by the GNU general public license, version 2.
+ * see doc/COPYING for details.
+ */
+
+/* This generates a compilable program.  But it is really meant to be   */
+/* be used only with cc -E, to inspect the expensions generated by      */
+/* primitives.                                                          */
+
+/* The result will not link or run.                                     */
+
+void list_atomic(void)
+{
+  AO_T val, newval = 0, oldval = 0;
+  AO_TS_T ts;
+  long incr = 0;
+
+# if defined(AO_HAVE_nop)
+    "AO_nop(): ";
+    AO_nop();
+# else
+    "No AO_nop";
+# endif
+# if defined(AO_HAVE_load)
+    "AO_load(&val):";
+    AO_load(&val);
+# else
+    "No AO_load";
+# endif
+# if defined(AO_HAVE_store)
+    "AO_store(&val, newval):";
+    AO_store(&val, newval);
+# else
+    "No AO_store";
+# endif
+# if defined(AO_HAVE_test_and_set)
+    "AO_test_and_set(&ts):";
+    AO_test_and_set(&ts);
+# else
+    "No AO_test_and_set";
+# endif
+# if defined(AO_HAVE_fetch_and_add1)
+    "AO_fetch_and_add1(&val):";
+    AO_fetch_and_add1(&val);
+# else
+    "No AO_fetch_and_add1";
+# endif
+# if defined(AO_HAVE_fetch_and_sub1)
+    "AO_fetch_and_sub1(&val):";
+    AO_fetch_and_sub1(&val);
+# else
+    "No AO_fetch_and_sub1";
+# endif
+# if defined(AO_HAVE_fetch_and_add)
+    "AO_fetch_and_add(&val, incr):";
+    AO_fetch_and_add(&val, incr);
+# else
+    "No AO_fetch_and_add";
+# endif
+# if defined(AO_HAVE_compare_and_swap)
+    "AO_compare_and_swap(&val, oldval, newval):";
+    AO_compare_and_swap(&val, oldval, newval);
+# else
+    "No AO_compare_and_swap";
+# endif
+}
+/*
+ * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
+ *
+ * This file is covered by the GNU general public license, version 2.
+ * see doc/COPYING for details.
+ */
+
+/* This generates a compilable program.  But it is really meant to be   */
+/* be used only with cc -E, to inspect the expensions generated by      */
+/* primitives.                                                          */
+
+/* The result will not link or run.                                     */
+
+void list_atomic_release(void)
+{
+  AO_T val, newval = 0, oldval = 0;
+  AO_TS_T ts;
+  long incr = 0;
+
+# if defined(AO_HAVE_nop_release)
+    "AO_nop_release(): ";
+    AO_nop_release();
+# else
+    "No AO_nop_release";
+# endif
+# if defined(AO_HAVE_load_release)
+    "AO_load_release(&val):";
+    AO_load_release(&val);
+# else
+    "No AO_load_release";
+# endif
+# if defined(AO_HAVE_store_release)
+    "AO_store_release(&val, newval):";
+    AO_store_release(&val, newval);
+# else
+    "No AO_store_release";
+# endif
+# if defined(AO_HAVE_test_and_set_release)
+    "AO_test_and_set_release(&ts):";
+    AO_test_and_set_release(&ts);
+# else
+    "No AO_test_and_set_release";
+# endif
+# if defined(AO_HAVE_fetch_and_add1_release)
+    "AO_fetch_and_add1_release(&val):";
+    AO_fetch_and_add1_release(&val);
+# else
+    "No AO_fetch_and_add1_release";
+# endif
+# if defined(AO_HAVE_fetch_and_sub1_release)
+    "AO_fetch_and_sub1_release(&val):";
+    AO_fetch_and_sub1_release(&val);
+# else
+    "No AO_fetch_and_sub1_release";
+# endif
+# if defined(AO_HAVE_fetch_and_add_release)
+    "AO_fetch_and_add_release(&val, incr):";
+    AO_fetch_and_add_release(&val, incr);
+# else
+    "No AO_fetch_and_add_release";
+# endif
+# if defined(AO_HAVE_compare_and_swap_release)
+    "AO_compare_and_swap_release(&val, oldval, newval):";
+    AO_compare_and_swap_release(&val, oldval, newval);
+# else
+    "No AO_compare_and_swap_release";
+# endif
+}
+/*
+ * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
+ *
+ * This file is covered by the GNU general public license, version 2.
+ * see doc/COPYING for details.
+ */
+
+/* This generates a compilable program.  But it is really meant to be   */
+/* be used only with cc -E, to inspect the expensions generated by      */
+/* primitives.                                                          */
+
+/* The result will not link or run.                                     */
+
+void list_atomic_acquire(void)
+{
+  AO_T val, newval = 0, oldval = 0;
+  AO_TS_T ts;
+  long incr = 0;
+
+# if defined(AO_HAVE_nop_acquire)
+    "AO_nop_acquire(): ";
+    AO_nop_acquire();
+# else
+    "No AO_nop_acquire";
+# endif
+# if defined(AO_HAVE_load_acquire)
+    "AO_load_acquire(&val):";
+    AO_load_acquire(&val);
+# else
+    "No AO_load_acquire";
+# endif
+# if defined(AO_HAVE_store_acquire)
+    "AO_store_acquire(&val, newval):";
+    AO_store_acquire(&val, newval);
+# else
+    "No AO_store_acquire";
+# endif
+# if defined(AO_HAVE_test_and_set_acquire)
+    "AO_test_and_set_acquire(&ts):";
+    AO_test_and_set_acquire(&ts);
+# else
+    "No AO_test_and_set_acquire";
+# endif
+# if defined(AO_HAVE_fetch_and_add1_acquire)
+    "AO_fetch_and_add1_acquire(&val):";
+    AO_fetch_and_add1_acquire(&val);
+# else
+    "No AO_fetch_and_add1_acquire";
+# endif
+# if defined(AO_HAVE_fetch_and_sub1_acquire)
+    "AO_fetch_and_sub1_acquire(&val):";
+    AO_fetch_and_sub1_acquire(&val);
+# else
+    "No AO_fetch_and_sub1_acquire";
+# endif
+# if defined(AO_HAVE_fetch_and_add_acquire)
+    "AO_fetch_and_add_acquire(&val, incr):";
+    AO_fetch_and_add_acquire(&val, incr);
+# else
+    "No AO_fetch_and_add_acquire";
+# endif
+# if defined(AO_HAVE_compare_and_swap_acquire)
+    "AO_compare_and_swap_acquire(&val, oldval, newval):";
+    AO_compare_and_swap_acquire(&val, oldval, newval);
+# else
+    "No AO_compare_and_swap_acquire";
+# endif
+}
+/*
+ * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
+ *
+ * This file is covered by the GNU general public license, version 2.
+ * see doc/COPYING for details.
+ */
+
+/* This generates a compilable program.  But it is really meant to be   */
+/* be used only with cc -E, to inspect the expensions generated by      */
+/* primitives.                                                          */
+
+/* The result will not link or run.                                     */
+
+void list_atomic_read(void)
+{
+  AO_T val, newval = 0, oldval = 0;
+  AO_TS_T ts;
+  long incr = 0;
+
+# if defined(AO_HAVE_nop_read)
+    "AO_nop_read(): ";
+    AO_nop_read();
+# else
+    "No AO_nop_read";
+# endif
+# if defined(AO_HAVE_load_read)
+    "AO_load_read(&val):";
+    AO_load_read(&val);
+# else
+    "No AO_load_read";
+# endif
+# if defined(AO_HAVE_store_read)
+    "AO_store_read(&val, newval):";
+    AO_store_read(&val, newval);
+# else
+    "No AO_store_read";
+# endif
+# if defined(AO_HAVE_test_and_set_read)
+    "AO_test_and_set_read(&ts):";
+    AO_test_and_set_read(&ts);
+# else
+    "No AO_test_and_set_read";
+# endif
+# if defined(AO_HAVE_fetch_and_add1_read)
+    "AO_fetch_and_add1_read(&val):";
+    AO_fetch_and_add1_read(&val);
+# else
+    "No AO_fetch_and_add1_read";
+# endif
+# if defined(AO_HAVE_fetch_and_sub1_read)
+    "AO_fetch_and_sub1_read(&val):";
+    AO_fetch_and_sub1_read(&val);
+# else
+    "No AO_fetch_and_sub1_read";
+# endif
+# if defined(AO_HAVE_fetch_and_add_read)
+    "AO_fetch_and_add_read(&val, incr):";
+    AO_fetch_and_add_read(&val, incr);
+# else
+    "No AO_fetch_and_add_read";
+# endif
+# if defined(AO_HAVE_compare_and_swap_read)
+    "AO_compare_and_swap_read(&val, oldval, newval):";
+    AO_compare_and_swap_read(&val, oldval, newval);
+# else
+    "No AO_compare_and_swap_read";
+# endif
+}
+/*
+ * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
+ *
+ * This file is covered by the GNU general public license, version 2.
+ * see doc/COPYING for details.
+ */
+
+/* This generates a compilable program.  But it is really meant to be   */
+/* be used only with cc -E, to inspect the expensions generated by      */
+/* primitives.                                                          */
+
+/* The result will not link or run.                                     */
+
+void list_atomic_write(void)
+{
+  AO_T val, newval = 0, oldval = 0;
+  AO_TS_T ts;
+  long incr = 0;
+
+# if defined(AO_HAVE_nop_write)
+    "AO_nop_write(): ";
+    AO_nop_write();
+# else
+    "No AO_nop_write";
+# endif
+# if defined(AO_HAVE_load_write)
+    "AO_load_write(&val):";
+    AO_load_write(&val);
+# else
+    "No AO_load_write";
+# endif
+# if defined(AO_HAVE_store_write)
+    "AO_store_write(&val, newval):";
+    AO_store_write(&val, newval);
+# else
+    "No AO_store_write";
+# endif
+# if defined(AO_HAVE_test_and_set_write)
+    "AO_test_and_set_write(&ts):";
+    AO_test_and_set_write(&ts);
+# else
+    "No AO_test_and_set_write";
+# endif
+# if defined(AO_HAVE_fetch_and_add1_write)
+    "AO_fetch_and_add1_write(&val):";
+    AO_fetch_and_add1_write(&val);
+# else
+    "No AO_fetch_and_add1_write";
+# endif
+# if defined(AO_HAVE_fetch_and_sub1_write)
+    "AO_fetch_and_sub1_write(&val):";
+    AO_fetch_and_sub1_write(&val);
+# else
+    "No AO_fetch_and_sub1_write";
+# endif
+# if defined(AO_HAVE_fetch_and_add_write)
+    "AO_fetch_and_add_write(&val, incr):";
+    AO_fetch_and_add_write(&val, incr);
+# else
+    "No AO_fetch_and_add_write";
+# endif
+# if defined(AO_HAVE_compare_and_swap_write)
+    "AO_compare_and_swap_write(&val, oldval, newval):";
+    AO_compare_and_swap_write(&val, oldval, newval);
+# else
+    "No AO_compare_and_swap_write";
+# endif
+}
+/*
+ * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
+ *
+ * This file is covered by the GNU general public license, version 2.
+ * see doc/COPYING for details.
+ */
+
+/* This generates a compilable program.  But it is really meant to be   */
+/* be used only with cc -E, to inspect the expensions generated by      */
+/* primitives.                                                          */
+
+/* The result will not link or run.                                     */
+
+void list_atomic_full(void)
+{
+  AO_T val, newval = 0, oldval = 0;
+  AO_TS_T ts;
+  long incr = 0;
+
+# if defined(AO_HAVE_nop_full)
+    "AO_nop_full(): ";
+    AO_nop_full();
+# else
+    "No AO_nop_full";
+# endif
+# if defined(AO_HAVE_load_full)
+    "AO_load_full(&val):";
+    AO_load_full(&val);
+# else
+    "No AO_load_full";
+# endif
+# if defined(AO_HAVE_store_full)
+    "AO_store_full(&val, newval):";
+    AO_store_full(&val, newval);
+# else
+    "No AO_store_full";
+# endif
+# if defined(AO_HAVE_test_and_set_full)
+    "AO_test_and_set_full(&ts):";
+    AO_test_and_set_full(&ts);
+# else
+    "No AO_test_and_set_full";
+# endif
+# if defined(AO_HAVE_fetch_and_add1_full)
+    "AO_fetch_and_add1_full(&val):";
+    AO_fetch_and_add1_full(&val);
+# else
+    "No AO_fetch_and_add1_full";
+# endif
+# if defined(AO_HAVE_fetch_and_sub1_full)
+    "AO_fetch_and_sub1_full(&val):";
+    AO_fetch_and_sub1_full(&val);
+# else
+    "No AO_fetch_and_sub1_full";
+# endif
+# if defined(AO_HAVE_fetch_and_add_full)
+    "AO_fetch_and_add_full(&val, incr):";
+    AO_fetch_and_add_full(&val, incr);
+# else
+    "No AO_fetch_and_add_full";
+# endif
+# if defined(AO_HAVE_compare_and_swap_full)
+    "AO_compare_and_swap_full(&val, oldval, newval):";
+    AO_compare_and_swap_full(&val, oldval, newval);
+# else
+    "No AO_compare_and_swap_full";
+# endif
+}
+/*
+ * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
+ *
+ * This file is covered by the GNU general public license, version 2.
+ * see doc/COPYING for details.
+ */
+
+/* This generates a compilable program.  But it is really meant to be   */
+/* be used only with cc -E, to inspect the expensions generated by      */
+/* primitives.                                                          */
+
+/* The result will not link or run.                                     */
+
+void list_atomic_release_write(void)
+{
+  AO_T val, newval = 0, oldval = 0;
+  AO_TS_T ts;
+  long incr = 0;
+
+# if defined(AO_HAVE_nop_release_write)
+    "AO_nop_release_write(): ";
+    AO_nop_release_write();
+# else
+    "No AO_nop_release_write";
+# endif
+# if defined(AO_HAVE_load_release_write)
+    "AO_load_release_write(&val):";
+    AO_load_release_write(&val);
+# else
+    "No AO_load_release_write";
+# endif
+# if defined(AO_HAVE_store_release_write)
+    "AO_store_release_write(&val, newval):";
+    AO_store_release_write(&val, newval);
+# else
+    "No AO_store_release_write";
+# endif
+# if defined(AO_HAVE_test_and_set_release_write)
+    "AO_test_and_set_release_write(&ts):";
+    AO_test_and_set_release_write(&ts);
+# else
+    "No AO_test_and_set_release_write";
+# endif
+# if defined(AO_HAVE_fetch_and_add1_release_write)
+    "AO_fetch_and_add1_release_write(&val):";
+    AO_fetch_and_add1_release_write(&val);
+# else
+    "No AO_fetch_and_add1_release_write";
+# endif
+# if defined(AO_HAVE_fetch_and_sub1_release_write)
+    "AO_fetch_and_sub1_release_write(&val):";
+    AO_fetch_and_sub1_release_write(&val);
+# else
+    "No AO_fetch_and_sub1_release_write";
+# endif
+# if defined(AO_HAVE_fetch_and_add_release_write)
+    "AO_fetch_and_add_release_write(&val, incr):";
+    AO_fetch_and_add_release_write(&val, incr);
+# else
+    "No AO_fetch_and_add_release_write";
+# endif
+# if defined(AO_HAVE_compare_and_swap_release_write)
+    "AO_compare_and_swap_release_write(&val, oldval, newval):";
+    AO_compare_and_swap_release_write(&val, oldval, newval);
+# else
+    "No AO_compare_and_swap_release_write";
+# endif
+}
+/*
+ * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
+ *
+ * This file is covered by the GNU general public license, version 2.
+ * see doc/COPYING for details.
+ */
+
+/* This generates a compilable program.  But it is really meant to be   */
+/* be used only with cc -E, to inspect the expensions generated by      */
+/* primitives.                                                          */
+
+/* The result will not link or run.                                     */
+
+void list_atomic_acquire_read(void)
+{
+  AO_T val, newval = 0, oldval = 0;
+  AO_TS_T ts;
+  long incr = 0;
+
+# if defined(AO_HAVE_nop_acquire_read)
+    "AO_nop_acquire_read(): ";
+    AO_nop_acquire_read();
+# else
+    "No AO_nop_acquire_read";
+# endif
+# if defined(AO_HAVE_load_acquire_read)
+    "AO_load_acquire_read(&val):";
+    AO_load_acquire_read(&val);
+# else
+    "No AO_load_acquire_read";
+# endif
+# if defined(AO_HAVE_store_acquire_read)
+    "AO_store_acquire_read(&val, newval):";
+    AO_store_acquire_read(&val, newval);
+# else
+    "No AO_store_acquire_read";
+# endif
+# if defined(AO_HAVE_test_and_set_acquire_read)
+    "AO_test_and_set_acquire_read(&ts):";
+    AO_test_and_set_acquire_read(&ts);
+# else
+    "No AO_test_and_set_acquire_read";
+# endif
+# if defined(AO_HAVE_fetch_and_add1_acquire_read)
+    "AO_fetch_and_add1_acquire_read(&val):";
+    AO_fetch_and_add1_acquire_read(&val);
+# else
+    "No AO_fetch_and_add1_acquire_read";
+# endif
+# if defined(AO_HAVE_fetch_and_sub1_acquire_read)
+    "AO_fetch_and_sub1_acquire_read(&val):";
+    AO_fetch_and_sub1_acquire_read(&val);
+# else
+    "No AO_fetch_and_sub1_acquire_read";
+# endif
+# if defined(AO_HAVE_fetch_and_add_acquire_read)
+    "AO_fetch_and_add_acquire_read(&val, incr):";
+    AO_fetch_and_add_acquire_read(&val, incr);
+# else
+    "No AO_fetch_and_add_acquire_read";
+# endif
+# if defined(AO_HAVE_compare_and_swap_acquire_read)
+    "AO_compare_and_swap_acquire_read(&val, oldval, newval):";
+    AO_compare_and_swap_acquire_read(&val, oldval, newval);
+# else
+    "No AO_compare_and_swap_acquire_read";
+# endif
+}