1// { dg-options "-x c" } 2// { dg-do compile } 3 4// Copyright (C) 2008, 2009 Free Software Foundation, Inc. 5// 6// This file is part of the GNU ISO C++ Library. This library is free 7// software; you can redistribute it and/or modify it under the 8// terms of the GNU General Public License as published by the 9// Free Software Foundation; either version 3, or (at your option) 10// any later version. 11// 12// This library is distributed in the hope that it will be useful, 13// but WITHOUT ANY WARRANTY; without even the implied warranty of 14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15// GNU General Public License for more details. 16// 17// You should have received a copy of the GNU General Public License along 18// with this library; see the file COPYING3. If not see 19// <http://www.gnu.org/licenses/>. 20 21#include <stdatomic.h> 22 23void test01() 24{ 25 typedef memory_order t_01; 26 memory_order t_02 __attribute__((unused)) = memory_order_relaxed; 27 memory_order t_03 __attribute__((unused)) = memory_order_acquire; 28 memory_order t_04 __attribute__((unused)) = memory_order_release; 29 memory_order t_05 __attribute__((unused)) = memory_order_acq_rel; 30 memory_order t_06 __attribute__((unused)) = memory_order_seq_cst; 31 32 typedef atomic_flag t_07; 33 34 // atomics for builtins types 35 typedef atomic_bool t_08; 36 typedef atomic_char t_09; 37 typedef atomic_schar t_10; 38 typedef atomic_uchar t_11; 39 typedef atomic_short t_12; 40 typedef atomic_ushort t_13; 41 typedef atomic_int t_14; 42 typedef atomic_uint t_15; 43 typedef atomic_long t_16; 44 typedef atomic_ulong t_17; 45 typedef atomic_llong t_18; 46 typedef atomic_ullong t_19; 47 typedef atomic_wchar_t t_20; 48 typedef atomic_char16_t t_21; 49 typedef atomic_char32_t t_22; 50 51 // atomics for standard typedefs 52 typedef atomic_int_least8_t t_23; 53 typedef atomic_uint_least8_t t_24; 54 typedef atomic_int_least16_t t_25; 55 typedef atomic_uint_least16_t t_26; 56 typedef atomic_int_least32_t t_27; 57 typedef atomic_uint_least32_t t_28; 58 typedef atomic_int_least64_t t_29; 59 typedef atomic_uint_least64_t t_30; 60 typedef atomic_int_fast8_t t_31; 61 typedef atomic_uint_fast8_t t_32; 62 typedef atomic_int_fast16_t t_33; 63 typedef atomic_uint_fast16_t t_34; 64 typedef atomic_int_fast32_t t_35; 65 typedef atomic_uint_fast32_t t_36; 66 typedef atomic_int_fast64_t t_37; 67 typedef atomic_uint_fast64_t t_38; 68 typedef atomic_intptr_t t_39; 69 typedef atomic_uintptr_t t_40; 70 typedef atomic_size_t t_41; 71 typedef atomic_ssize_t t_42; 72 typedef atomic_ptrdiff_t t_43; 73 typedef atomic_intmax_t t_44; 74 typedef atomic_uintmax_t t_45; 75 76 typedef atomic_address t_46; 77} 78