]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
PR78465 Remove runtime tests for <atomic> macros
authorJonathan Wakely <jwakely@redhat.com>
Mon, 12 Dec 2016 16:36:25 +0000 (16:36 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Mon, 12 Dec 2016 16:36:25 +0000 (16:36 +0000)
PR libstdc++/78465
* testsuite/29_atomics/headers/atomic/macros.cc: Replace runtime tests
with preprocessor conditions.

From-SVN: r243564

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc

index c967a8f6a025fa7be9267fb95954f9f4f96c5628..c08ce926139fde29bd8c2cea9fa9dec8e39b8d8d 100644 (file)
@@ -1,3 +1,12 @@
+2016-12-12  Jonathan Wakely  <jwakely@redhat.com>
+
+       Backport from mainline
+       2016-11-22  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/78465
+       * testsuite/29_atomics/headers/atomic/macros.cc: Replace runtime tests
+       with preprocessor conditions.
+
 2016-12-12  Jonathan Wakely  <jwakely@redhat.com>
 
        Backport from mainline
index d26b4679a0e098c809aec9d32aafec88a0cfd117..b14dfa894e92b01053b4e2f9174ff34de78c69e2 100644 (file)
@@ -1,5 +1,5 @@
 // { dg-options "-std=gnu++11" }
-// { dg-do compile }
+// { dg-do preprocess }
 
 // Copyright (C) 2008-2015 Free Software Foundation, Inc.
 //
 
 #ifndef ATOMIC_BOOL_LOCK_FREE 
 # error "ATOMIC_BOOL_LOCK_FREE must be a macro"
+#elif ATOMIC_BOOL_LOCK_FREE != 1 && ATOMIC_BOOL_LOCK_FREE != 2
+# error "ATOMIC_BOOL_LOCK_FREE must be 1 or 2"
 #endif
 
 #ifndef ATOMIC_CHAR_LOCK_FREE 
 # error "ATOMIC_CHAR_LOCK_FREE must be a macro"
+#elif ATOMIC_CHAR_LOCK_FREE != 1 && ATOMIC_CHAR_LOCK_FREE != 2
+# error "ATOMIC_CHAR_LOCK_FREE must be 1 or 2"
 #endif
 
 #ifndef ATOMIC_CHAR16_T_LOCK_FREE 
 # error "ATOMIC_CHAR16_T_LOCK_FREE must be a macro"
+#elif ATOMIC_CHAR16_T_LOCK_FREE != 1 && ATOMIC_CHAR16_T_LOCK_FREE != 2
 #endif
 
 #ifndef ATOMIC_CHAR32_T_LOCK_FREE 
 # error "ATOMIC_CHAR32_T_LOCK_FREE must be a macro"
+#elif ATOMIC_CHAR32_T_LOCK_FREE != 1 && ATOMIC_CHAR32_T_LOCK_FREE != 2
+# error "ATOMIC_CHAR32_T_LOCK_FREE must be 1 or 2"
 #endif
 
 #ifndef ATOMIC_WCHAR_T_LOCK_FREE 
 # error "ATOMIC_WCHAR_T_LOCK_FREE must be a macro"
+#elif ATOMIC_WCHAR_T_LOCK_FREE != 1 && ATOMIC_WCHAR_T_LOCK_FREE != 2
+# error "ATOMIC_WCHAR_T_LOCK_FREE must be 1 or 2"
 #endif
 
 #ifndef ATOMIC_SHORT_LOCK_FREE 
 # error "ATOMIC_SHORT_LOCK_FREE must be a macro"
+#elif ATOMIC_SHORT_LOCK_FREE != 1 && ATOMIC_SHORT_LOCK_FREE != 2
+# error "ATOMIC_SHORT_LOCK_FREE must be 1 or 2"
 #endif
 
 #ifndef ATOMIC_INT_LOCK_FREE 
 # error "ATOMIC_INT_LOCK_FREE must be a macro"
+#elif ATOMIC_INT_LOCK_FREE != 1 && ATOMIC_INT_LOCK_FREE != 2
+# error "ATOMIC_INT_LOCK_FREE must be 1 or 2"
 #endif
 
 #ifndef ATOMIC_LONG_LOCK_FREE 
 # error "ATOMIC_LONG_LOCK_FREE must be a macro"
+#elif ATOMIC_LONG_LOCK_FREE != 1 && ATOMIC_LONG_LOCK_FREE != 2
+# error "ATOMIC_LONG_LOCK_FREE must be 1 or 2"
 #endif
 
 #ifndef ATOMIC_LLONG_LOCK_FREE 
 # error "ATOMIC_LLONG_LOCK_FREE must be a macro"
+#elif ATOMIC_LLONG_LOCK_FREE != 1 && ATOMIC_LLONG_LOCK_FREE != 2
+# error "ATOMIC_LLONG_LOCK_FREE must be 1 or 2"
 #endif
 
 #ifndef ATOMIC_POINTER_LOCK_FREE 
 # error "ATOMIC_POINTER_LOCK_FREE must be a macro"
+#elif ATOMIC_POINTER_LOCK_FREE != 1 && ATOMIC_POINTER_LOCK_FREE != 2
+# error "ATOMIC_POINTER_LOCK_FREE must be 1 or 2"
 #endif
 
 #ifndef ATOMIC_FLAG_INIT
 #ifndef ATOMIC_VAR_INIT
     #error "ATOMIC_VAR_INIT_must_be_a_macro"
 #endif
-
-
-extern void abort(void);
-
-int main ()
-{
-#if (ATOMIC_BOOL_LOCK_FREE != 1 && ATOMIC_BOOL_LOCK_FREE != 2)
-   abort ();
-#endif
-
-#if (ATOMIC_CHAR_LOCK_FREE != 1 && ATOMIC_CHAR_LOCK_FREE != 2)
-   abort ();
-#endif
-
-#if (ATOMIC_CHAR16_T_LOCK_FREE != 1 && ATOMIC_CHAR16_T_LOCK_FREE != 2)
-   abort ();
-#endif
-
-#if (ATOMIC_CHAR32_T_LOCK_FREE != 1 && ATOMIC_CHAR32_T_LOCK_FREE != 2)
-   abort ();
-#endif
-
-#if (ATOMIC_WCHAR_T_LOCK_FREE != 1 && ATOMIC_WCHAR_T_LOCK_FREE != 2)
-   abort ();
-#endif
-
-#if (ATOMIC_SHORT_LOCK_FREE != 1 && ATOMIC_SHORT_LOCK_FREE != 2)
-   abort ();
-#endif
-
-#if (ATOMIC_INT_LOCK_FREE != 1 && ATOMIC_INT_LOCK_FREE != 2)
-   abort ();
-#endif
-
-#if (ATOMIC_LONG_LOCK_FREE != 1 && ATOMIC_LONG_LOCK_FREE != 2)
-   abort ();
-#endif
-
-#if (ATOMIC_LLONG_LOCK_FREE != 1 && ATOMIC_LLONG_LOCK_FREE != 2)
-   abort ();
-#endif
-
-#if (ATOMIC_POINTER_LOCK_FREE != 1 && ATOMIC_POINTER_LOCK_FREE != 2)
-   abort ();
-#endif
-}