Attachment 'atomicproto.patch'

Download

   1 	fortran
   2 	* types.def (BT_ATOMIC_PTR, BT_CONST_ATOMIC_PTR): New
   3 	primitive data types for volatile atomic pointers.
   4 	(BT_FN_VOID_APTR): Renamed from BT_FN_VOID_VPTR.
   5 	(BT_FN_VOID_VPTR_INT, BT_FN_BOOL_VPTR_INT,
   6 	BT_FN_BOOL_SIZE_CONST_VPTR): Renamed to APTR variant.
   7 	(BT_FN_I{1,2,4,8,16}_CONST_APTR_INT): New.
   8 	(BT_FN_I{1,2,4,8,16}_APTR_I{1,2,4,8,16}_INT): New.
   9 	(BT_FN_VOID_APTR_I{1,2,4,8,16}_INT): New.
  10 	(BT_FN_VOID_SIZE_VPTR_PTR_INT, BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT,
  11 	BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, 
  12 	BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT): Renamed to APTR
  13 	variant.
  14 
  15 	gcc
  16 	* builtin-types.def (BT_ATOMIC_PTR, BT_CONST_ATOMIC_PTR): New
  17 	primitive data types for volatile atomic pointers.
  18 	(BT_FN_VOID_APTR): Renamed from BT_FN_VOID_VPTR.
  19 	(BT_FN_VOID_VPTR_INT, BT_FN_BOOL_VPTR_INT,
  20 	BT_FN_BOOL_SIZE_CONST_VPTR): Renamed to APTR variant.
  21 	(BT_FN_I{1,2,4,8,16}_CONST_APTR_INT): New.
  22 	(BT_FN_I{1,2,4,8,16}_APTR_I{1,2,4,8,16}_INT): New.
  23 	(BT_FN_VOID_APTR_I{1,2,4,8,16}_INT): New.
  24 	(BT_FN_VOID_SIZE_VPTR_PTR_INT, BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT,
  25 	BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, 
  26 	BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT): Renamed to APTR
  27 	variant.
  28 	* sync-builtins.def: Change all __atomic builtins to use the APTR
  29 	atomic pointer variant for the first parameter instead of VPTR..
  30 
  31         doc
  32 	* extend.texi: Add atomic pointer note to __atomic built-ins.
  33 
  34 Index: gcc/fortran/types.def
  35 ===================================================================
  36 *** gcc/fortran/types.def	(revision 202628)
  37 --- gcc/fortran/types.def	(working copy)
  38 *************** DEF_PRIMITIVE_TYPE (BT_CONST_VOLATILE_PT
  39 *** 74,79 ****
  40 --- 74,87 ----
  41   		    build_pointer_type
  42   		     (build_qualified_type (void_type_node,
  43   					  TYPE_QUAL_VOLATILE|TYPE_QUAL_CONST)))
  44 + DEF_PRIMITIVE_TYPE (BT_ATOMIC_PTR,
  45 +                     build_pointer_type
  46 +                      (build_qualified_type (void_type_node,
  47 +                                           TYPE_QUAL_VOLATILE|TYPE_QUAL_ATOMIC)))
  48 + DEF_PRIMITIVE_TYPE (BT_CONST_ATOMIC_PTR,
  49 +                     build_pointer_type
  50 +                      (build_qualified_type (void_type_node,
  51 +                           TYPE_QUAL_VOLATILE|TYPE_QUAL_CONST|TYPE_QUAL_ATOMIC)))
  52   DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG)
  53   DEF_POINTER_TYPE (BT_PTR_ULONGLONG, BT_ULONGLONG)
  54   DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR)
  55 *************** DEF_FUNCTION_TYPE_2 (BT_FN_I8_CONST_VPTR
  56 *** 113,122 ****
  57   		     BT_INT)
  58   DEF_FUNCTION_TYPE_2 (BT_FN_I16_CONST_VPTR_INT, BT_I16, BT_CONST_VOLATILE_PTR,
  59   		     BT_INT)
  60 ! DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_INT, BT_VOID, BT_VOLATILE_PTR, BT_INT)
  61 ! DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_VPTR_INT, BT_BOOL, BT_VOLATILE_PTR, BT_INT)
  62 ! DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_SIZE_CONST_VPTR, BT_BOOL, BT_SIZE,
  63 ! 		     BT_CONST_VOLATILE_PTR)
  64   
  65   
  66   DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR)
  67 --- 121,140 ----
  68   		     BT_INT)
  69   DEF_FUNCTION_TYPE_2 (BT_FN_I16_CONST_VPTR_INT, BT_I16, BT_CONST_VOLATILE_PTR,
  70   		     BT_INT)
  71 ! DEF_FUNCTION_TYPE_2 (BT_FN_I1_CONST_APTR_INT, BT_I1, BT_CONST_ATOMIC_PTR, 
  72 !                      BT_INT)
  73 ! DEF_FUNCTION_TYPE_2 (BT_FN_I2_CONST_APTR_INT, BT_I2, BT_CONST_ATOMIC_PTR,
  74 !                      BT_INT)
  75 ! DEF_FUNCTION_TYPE_2 (BT_FN_I4_CONST_APTR_INT, BT_I4, BT_CONST_ATOMIC_PTR,
  76 !                      BT_INT)
  77 ! DEF_FUNCTION_TYPE_2 (BT_FN_I8_CONST_APTR_INT, BT_I8, BT_CONST_ATOMIC_PTR,
  78 !                      BT_INT)
  79 ! DEF_FUNCTION_TYPE_2 (BT_FN_I16_CONST_APTR_INT, BT_I16, BT_CONST_ATOMIC_PTR,
  80 !                      BT_INT)
  81 ! DEF_FUNCTION_TYPE_2 (BT_FN_VOID_APTR_INT, BT_VOID, BT_ATOMIC_PTR, BT_INT)
  82 ! DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_APTR_INT, BT_BOOL, BT_ATOMIC_PTR, BT_INT)
  83 ! DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_SIZE_CONST_APTR, BT_BOOL, BT_SIZE,
  84 ! 		     BT_CONST_ATOMIC_PTR)
  85   
  86   
  87   DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR)
  88 *************** DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_IN
  89 *** 144,169 ****
  90   DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_INT, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_INT)
  91   DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_INT, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_INT)
  92   DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_INT, BT_I16, BT_VOLATILE_PTR, BT_I16, BT_INT)
  93   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I1_INT, BT_VOID, BT_VOLATILE_PTR, BT_I1, BT_INT)
  94   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I2_INT, BT_VOID, BT_VOLATILE_PTR, BT_I2, BT_INT)
  95   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I4_INT, BT_VOID, BT_VOLATILE_PTR, BT_I4, BT_INT)
  96   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I8_INT, BT_VOID, BT_VOLATILE_PTR, BT_I8, BT_INT)
  97   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I16_INT, BT_VOID, BT_VOLATILE_PTR, BT_I16, BT_INT)
  98   
  99   DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT,
 100                        BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
 101   DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
 102   		     BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
 103 ! DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_VPTR_PTR_INT, BT_VOID, BT_SIZE,
 104 ! 		     BT_VOLATILE_PTR, BT_PTR, BT_INT)
 105 ! DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_VOID, BT_SIZE,
 106 ! 		     BT_CONST_VOLATILE_PTR, BT_PTR, BT_INT)
 107   
 108   DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
 109                        BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
 110   		     BT_PTR_LONG, BT_PTR_LONG)
 111 ! DEF_FUNCTION_TYPE_5 (BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, BT_VOID, BT_SIZE,
 112 ! 		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT)
 113   
 114   DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
 115                        BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
 116 --- 162,197 ----
 117   DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_INT, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_INT)
 118   DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_INT, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_INT)
 119   DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_INT, BT_I16, BT_VOLATILE_PTR, BT_I16, BT_INT)
 120 + DEF_FUNCTION_TYPE_3 (BT_FN_I1_APTR_I1_INT, BT_I1, BT_ATOMIC_PTR, BT_I1, BT_INT)
 121 + DEF_FUNCTION_TYPE_3 (BT_FN_I2_APTR_I2_INT, BT_I2, BT_ATOMIC_PTR, BT_I2, BT_INT)
 122 + DEF_FUNCTION_TYPE_3 (BT_FN_I4_APTR_I4_INT, BT_I4, BT_ATOMIC_PTR, BT_I4, BT_INT)
 123 + DEF_FUNCTION_TYPE_3 (BT_FN_I8_APTR_I8_INT, BT_I8, BT_ATOMIC_PTR, BT_I8, BT_INT)
 124 + DEF_FUNCTION_TYPE_3 (BT_FN_I16_APTR_I16_INT, BT_I16, BT_ATOMIC_PTR, BT_I16, BT_INT)
 125   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I1_INT, BT_VOID, BT_VOLATILE_PTR, BT_I1, BT_INT)
 126   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I2_INT, BT_VOID, BT_VOLATILE_PTR, BT_I2, BT_INT)
 127   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I4_INT, BT_VOID, BT_VOLATILE_PTR, BT_I4, BT_INT)
 128   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I8_INT, BT_VOID, BT_VOLATILE_PTR, BT_I8, BT_INT)
 129   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I16_INT, BT_VOID, BT_VOLATILE_PTR, BT_I16, BT_INT)
 130 + DEF_FUNCTION_TYPE_3 (BT_FN_VOID_APTR_I1_INT, BT_VOID, BT_ATOMIC_PTR, BT_I1, BT_INT)
 131 + DEF_FUNCTION_TYPE_3 (BT_FN_VOID_APTR_I2_INT, BT_VOID, BT_ATOMIC_PTR, BT_I2, BT_INT)
 132 + DEF_FUNCTION_TYPE_3 (BT_FN_VOID_APTR_I4_INT, BT_VOID, BT_ATOMIC_PTR, BT_I4, BT_INT)
 133 + DEF_FUNCTION_TYPE_3 (BT_FN_VOID_APTR_I8_INT, BT_VOID, BT_ATOMIC_PTR, BT_I8, BT_INT)
 134 + DEF_FUNCTION_TYPE_3 (BT_FN_VOID_APTR_I16_INT, BT_VOID, BT_ATOMIC_PTR, BT_I16, BT_INT)
 135   
 136   DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT,
 137                        BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
 138   DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
 139   		     BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
 140 ! DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_APTR_PTR_INT, BT_VOID, BT_SIZE,
 141 ! 		     BT_ATOMIC_PTR, BT_PTR, BT_INT)
 142 ! DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_CONST_APTR_PTR_INT, BT_VOID, BT_SIZE,
 143 ! 		     BT_CONST_ATOMIC_PTR, BT_PTR, BT_INT)
 144   
 145   DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
 146                        BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
 147   		     BT_PTR_LONG, BT_PTR_LONG)
 148 ! DEF_FUNCTION_TYPE_5 (BT_FN_VOID_SIZE_APTR_PTR_PTR_INT, BT_VOID, BT_SIZE,
 149 ! 		     BT_ATOMIC_PTR, BT_PTR, BT_PTR, BT_INT)
 150   
 151   DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
 152                        BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
 153 *************** DEF_FUNCTION_TYPE_6 (BT_FN_VOID_OMPFN_PT
 154 *** 174,196 ****
 155   DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
 156   		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
 157   		     BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
 158 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT, 
 159 ! 		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_BOOL, BT_INT,
 160   		     BT_INT)
 161 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT, 
 162 ! 		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_BOOL, BT_INT,
 163   		     BT_INT)
 164 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT, 
 165 ! 		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_BOOL, BT_INT,
 166   		     BT_INT)
 167 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT, 
 168 ! 		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_BOOL, BT_INT,
 169   		     BT_INT)
 170 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT, 
 171 ! 		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_BOOL, BT_INT,
 172   		     BT_INT)
 173 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT, BT_BOOL, BT_SIZE,
 174 ! 		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT, BT_INT)
 175   
 176   DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
 177                        BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
 178 --- 202,224 ----
 179   DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
 180   		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
 181   		     BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
 182 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_APTR_PTR_I1_BOOL_INT_INT, 
 183 ! 		     BT_BOOL, BT_ATOMIC_PTR, BT_PTR, BT_I1, BT_BOOL, BT_INT,
 184   		     BT_INT)
 185 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_APTR_PTR_I2_BOOL_INT_INT, 
 186 ! 		     BT_BOOL, BT_ATOMIC_PTR, BT_PTR, BT_I2, BT_BOOL, BT_INT,
 187   		     BT_INT)
 188 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_APTR_PTR_I4_BOOL_INT_INT, 
 189 ! 		     BT_BOOL, BT_ATOMIC_PTR, BT_PTR, BT_I4, BT_BOOL, BT_INT,
 190   		     BT_INT)
 191 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_APTR_PTR_I8_BOOL_INT_INT, 
 192 ! 		     BT_BOOL, BT_ATOMIC_PTR, BT_PTR, BT_I8, BT_BOOL, BT_INT,
 193   		     BT_INT)
 194 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_APTR_PTR_I16_BOOL_INT_INT, 
 195 ! 		     BT_BOOL, BT_ATOMIC_PTR, BT_PTR, BT_I16, BT_BOOL, BT_INT,
 196   		     BT_INT)
 197 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_SIZE_APTR_PTR_PTR_INT_INT, BT_BOOL, BT_SIZE,
 198 ! 		     BT_ATOMIC_PTR, BT_PTR, BT_PTR, BT_INT, BT_INT)
 199   
 200   DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
 201                        BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
 202 Index: gcc/builtin-types.def
 203 ===================================================================
 204 *** gcc/builtin-types.def	(revision 202628)
 205 --- gcc/builtin-types.def	(working copy)
 206 *************** DEF_PRIMITIVE_TYPE (BT_CONST_VOLATILE_PT
 207 *** 99,104 ****
 208 --- 99,112 ----
 209   		    build_pointer_type
 210   		     (build_qualified_type (void_type_node,
 211   					  TYPE_QUAL_VOLATILE|TYPE_QUAL_CONST)))
 212 + DEF_PRIMITIVE_TYPE (BT_ATOMIC_PTR,
 213 + 		    build_pointer_type
 214 + 		     (build_qualified_type (void_type_node,
 215 + 					  TYPE_QUAL_VOLATILE|TYPE_QUAL_ATOMIC)))
 216 + DEF_PRIMITIVE_TYPE (BT_CONST_ATOMIC_PTR,
 217 + 		    build_pointer_type
 218 + 		     (build_qualified_type (void_type_node,
 219 + 			  TYPE_QUAL_VOLATILE|TYPE_QUAL_CONST|TYPE_QUAL_ATOMIC)))
 220   DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
 221   DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
 222   DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
 223 *************** DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLO
 224 *** 223,228 ****
 225 --- 231,237 ----
 226   DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64)
 227   DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128)
 228   DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
 229 + DEF_FUNCTION_TYPE_1 (BT_FN_VOID_APTR, BT_VOID, BT_ATOMIC_PTR)
 230   DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR)
 231   DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT)
 232   DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_ULONG, BT_ULONG, BT_ULONG)
 233 *************** DEF_FUNCTION_TYPE_2 (BT_FN_I8_CONST_VPTR
 234 *** 337,346 ****
 235   		     BT_INT)
 236   DEF_FUNCTION_TYPE_2 (BT_FN_I16_CONST_VPTR_INT, BT_I16, BT_CONST_VOLATILE_PTR,
 237   		     BT_INT)
 238 ! DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_INT, BT_VOID, BT_VOLATILE_PTR, BT_INT)
 239 ! DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_VPTR_INT, BT_BOOL, BT_VOLATILE_PTR, BT_INT)
 240 ! DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_SIZE_CONST_VPTR, BT_BOOL, BT_SIZE,
 241 ! 		     BT_CONST_VOLATILE_PTR)
 242   
 243   DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR)
 244   
 245 --- 346,365 ----
 246   		     BT_INT)
 247   DEF_FUNCTION_TYPE_2 (BT_FN_I16_CONST_VPTR_INT, BT_I16, BT_CONST_VOLATILE_PTR,
 248   		     BT_INT)
 249 ! DEF_FUNCTION_TYPE_2 (BT_FN_I1_CONST_APTR_INT, BT_I1, BT_CONST_ATOMIC_PTR,
 250 ! 		     BT_INT)
 251 ! DEF_FUNCTION_TYPE_2 (BT_FN_I2_CONST_APTR_INT, BT_I2, BT_CONST_ATOMIC_PTR,
 252 ! 		     BT_INT)
 253 ! DEF_FUNCTION_TYPE_2 (BT_FN_I4_CONST_APTR_INT, BT_I4, BT_CONST_ATOMIC_PTR,
 254 ! 		     BT_INT)
 255 ! DEF_FUNCTION_TYPE_2 (BT_FN_I8_CONST_APTR_INT, BT_I8, BT_CONST_ATOMIC_PTR,
 256 ! 		     BT_INT)
 257 ! DEF_FUNCTION_TYPE_2 (BT_FN_I16_CONST_APTR_INT, BT_I16, BT_CONST_ATOMIC_PTR,
 258 ! 		     BT_INT)
 259 ! DEF_FUNCTION_TYPE_2 (BT_FN_VOID_APTR_INT, BT_VOID, BT_ATOMIC_PTR, BT_INT)
 260 ! DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_APTR_INT, BT_BOOL, BT_ATOMIC_PTR, BT_INT)
 261 ! DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_SIZE_CONST_APTR, BT_BOOL, BT_SIZE,
 262 ! 		     BT_CONST_ATOMIC_PTR)
 263   
 264   DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR)
 265   
 266 *************** DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_IN
 267 *** 420,430 ****
 268 --- 439,460 ----
 269   DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_INT, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_INT)
 270   DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_INT, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_INT)
 271   DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_INT, BT_I16, BT_VOLATILE_PTR, BT_I16, BT_INT)
 272 + DEF_FUNCTION_TYPE_3 (BT_FN_I1_APTR_I1_INT, BT_I1, BT_ATOMIC_PTR, BT_I1, BT_INT)
 273 + DEF_FUNCTION_TYPE_3 (BT_FN_I2_APTR_I2_INT, BT_I2, BT_ATOMIC_PTR, BT_I2, BT_INT)
 274 + DEF_FUNCTION_TYPE_3 (BT_FN_I4_APTR_I4_INT, BT_I4, BT_ATOMIC_PTR, BT_I4, BT_INT)
 275 + DEF_FUNCTION_TYPE_3 (BT_FN_I8_APTR_I8_INT, BT_I8, BT_ATOMIC_PTR, BT_I8, BT_INT)
 276 + DEF_FUNCTION_TYPE_3 (BT_FN_I16_APTR_I16_INT, BT_I16, BT_ATOMIC_PTR, BT_I16, BT_INT)
 277   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I1_INT, BT_VOID, BT_VOLATILE_PTR, BT_I1, BT_INT)
 278   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I2_INT, BT_VOID, BT_VOLATILE_PTR, BT_I2, BT_INT)
 279   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I4_INT, BT_VOID, BT_VOLATILE_PTR, BT_I4, BT_INT)
 280   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I8_INT, BT_VOID, BT_VOLATILE_PTR, BT_I8, BT_INT)
 281   DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I16_INT, BT_VOID, BT_VOLATILE_PTR, BT_I16, BT_INT)
 282 + DEF_FUNCTION_TYPE_3 (BT_FN_VOID_APTR_I1_INT, BT_VOID, BT_ATOMIC_PTR, BT_I1, BT_INT)
 283 + DEF_FUNCTION_TYPE_3 (BT_FN_VOID_APTR_I2_INT, BT_VOID, BT_ATOMIC_PTR, BT_I2, BT_INT)
 284 + DEF_FUNCTION_TYPE_3 (BT_FN_VOID_APTR_I4_INT, BT_VOID, BT_ATOMIC_PTR, BT_I4, BT_INT)
 285 + DEF_FUNCTION_TYPE_3 (BT_FN_VOID_APTR_I8_INT, BT_VOID, BT_ATOMIC_PTR, BT_I8, BT_INT)
 286 + DEF_FUNCTION_TYPE_3 (BT_FN_VOID_APTR_I16_INT, BT_VOID, BT_ATOMIC_PTR, BT_I16, BT_INT)
 287 + 
 288   
 289   DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
 290   		     BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
 291 *************** DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PT
 292 *** 444,453 ****
 293   		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
 294   DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
 295   		     BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
 296 ! DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_VPTR_PTR_INT, BT_VOID, BT_SIZE,
 297 ! 		     BT_VOLATILE_PTR, BT_PTR, BT_INT)
 298 ! DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_VOID, BT_SIZE,
 299 ! 		     BT_CONST_VOLATILE_PTR, BT_PTR, BT_INT)
 300   
 301   DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
 302   		     BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
 303 --- 474,483 ----
 304   		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
 305   DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
 306   		     BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
 307 ! DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_APTR_PTR_INT, BT_VOID, BT_SIZE,
 308 ! 		     BT_ATOMIC_PTR, BT_PTR, BT_INT)
 309 ! DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_CONST_APTR_PTR_INT, BT_VOID, BT_SIZE,
 310 ! 		     BT_CONST_ATOMIC_PTR, BT_PTR, BT_INT)
 311   
 312   DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
 313   		     BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
 314 *************** DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_IN
 315 *** 455,462 ****
 316   DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
 317   		     BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
 318   		     BT_PTR_LONG, BT_PTR_LONG)
 319 ! DEF_FUNCTION_TYPE_5 (BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, BT_VOID, BT_SIZE,
 320 ! 		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT)
 321   DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I1_INT_INT,
 322   		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_INT, BT_INT)
 323   DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I2_INT_INT,
 324 --- 485,492 ----
 325   DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
 326   		     BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
 327   		     BT_PTR_LONG, BT_PTR_LONG)
 328 ! DEF_FUNCTION_TYPE_5 (BT_FN_VOID_SIZE_APTR_PTR_PTR_INT, BT_VOID, BT_SIZE,
 329 ! 		     BT_ATOMIC_PTR, BT_PTR, BT_PTR, BT_INT)
 330   DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I1_INT_INT,
 331   		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_INT, BT_INT)
 332   DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I2_INT_INT,
 333 *************** DEF_FUNCTION_TYPE_6 (BT_FN_VOID_OMPFN_PT
 334 *** 480,502 ****
 335   DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
 336   		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
 337   		     BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
 338 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT, 
 339 ! 		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_BOOL, BT_INT,
 340   		     BT_INT)
 341 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT, 
 342 ! 		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_BOOL, BT_INT,
 343   		     BT_INT)
 344 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT, 
 345 ! 		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_BOOL, BT_INT,
 346   		     BT_INT)
 347 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT, 
 348 ! 		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_BOOL, BT_INT,
 349   		     BT_INT)
 350 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT, 
 351 ! 		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_BOOL, BT_INT,
 352   		     BT_INT)
 353 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT, BT_BOOL, BT_SIZE,
 354 ! 		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT, BT_INT)
 355   
 356   
 357   DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
 358 --- 510,532 ----
 359   DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
 360   		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
 361   		     BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
 362 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_APTR_PTR_I1_BOOL_INT_INT, 
 363 ! 		     BT_BOOL, BT_ATOMIC_PTR, BT_PTR, BT_I1, BT_BOOL, BT_INT,
 364   		     BT_INT)
 365 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_APTR_PTR_I2_BOOL_INT_INT, 
 366 ! 		     BT_BOOL, BT_ATOMIC_PTR, BT_PTR, BT_I2, BT_BOOL, BT_INT,
 367   		     BT_INT)
 368 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_APTR_PTR_I4_BOOL_INT_INT, 
 369 ! 		     BT_BOOL, BT_ATOMIC_PTR, BT_PTR, BT_I4, BT_BOOL, BT_INT,
 370   		     BT_INT)
 371 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_APTR_PTR_I8_BOOL_INT_INT, 
 372 ! 		     BT_BOOL, BT_ATOMIC_PTR, BT_PTR, BT_I8, BT_BOOL, BT_INT,
 373   		     BT_INT)
 374 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_APTR_PTR_I16_BOOL_INT_INT, 
 375 ! 		     BT_BOOL, BT_ATOMIC_PTR, BT_PTR, BT_I16, BT_BOOL, BT_INT,
 376   		     BT_INT)
 377 ! DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_SIZE_APTR_PTR_PTR_INT_INT, BT_BOOL, BT_SIZE,
 378 ! 		     BT_ATOMIC_PTR, BT_PTR, BT_PTR, BT_INT, BT_INT)
 379   
 380   
 381   DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
 382 Index: gcc/sync-builtins.def
 383 ===================================================================
 384 *** gcc/sync-builtins.def	(revision 202628)
 385 --- gcc/sync-builtins.def	(working copy)
 386 *************** DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SYNCHRON
 387 *** 260,567 ****
 388   /* __sync* builtins for the C++ memory model.  */
 389   
 390   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_TEST_AND_SET, "__atomic_test_and_set",
 391 ! 		  BT_FN_BOOL_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
 392   
 393 ! DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_CLEAR, "__atomic_clear", BT_FN_VOID_VPTR_INT,
 394   		  ATTR_NOTHROW_LEAF_LIST)
 395   
 396   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE,
 397   		  "__atomic_exchange",
 398 ! 		  BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST)
 399   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_N,
 400   		  "__atomic_exchange_n",
 401   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 402   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_1,
 403   		  "__atomic_exchange_1",
 404 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 405   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_2,
 406   		  "__atomic_exchange_2",
 407 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 408   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_4,
 409   		  "__atomic_exchange_4",
 410 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 411   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_8,
 412   		  "__atomic_exchange_8",
 413 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 414   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_16,
 415   		  "__atomic_exchange_16",
 416 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 417   
 418   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD,
 419   		  "__atomic_load",
 420 ! 		  BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST)
 421   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_N,
 422   		  "__atomic_load_n",
 423   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 424   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_1,
 425   		  "__atomic_load_1",
 426 ! 		  BT_FN_I1_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
 427   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_2,
 428   		  "__atomic_load_2",
 429 ! 		  BT_FN_I2_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
 430   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_4,
 431   		  "__atomic_load_4",
 432 ! 		  BT_FN_I4_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
 433   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_8,
 434   		  "__atomic_load_8",
 435 ! 		  BT_FN_I8_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
 436   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_16,
 437   		  "__atomic_load_16",
 438 ! 		  BT_FN_I16_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
 439   
 440   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE,
 441   		  "__atomic_compare_exchange",
 442 ! 		  BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT,
 443   		  ATTR_NOTHROW_LEAF_LIST)
 444   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_N,
 445   		  "__atomic_compare_exchange_n",
 446   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 447   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_1,
 448   		  "__atomic_compare_exchange_1",
 449 ! 		  BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
 450   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_2,
 451   		  "__atomic_compare_exchange_2",
 452 ! 		  BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
 453   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_4,
 454   		  "__atomic_compare_exchange_4",
 455 ! 		  BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
 456   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_8,
 457   		  "__atomic_compare_exchange_8",
 458 ! 		  BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
 459   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_16,
 460   		  "__atomic_compare_exchange_16",
 461 ! 		  BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
 462   
 463   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE,
 464   		  "__atomic_store",
 465 ! 		  BT_FN_VOID_SIZE_VPTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST)
 466   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_N,
 467   		  "__atomic_store_n",
 468   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 469   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_1,
 470   		  "__atomic_store_1",
 471 ! 		  BT_FN_VOID_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 472   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_2,
 473   		  "__atomic_store_2",
 474 ! 		  BT_FN_VOID_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 475   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_4,
 476   		  "__atomic_store_4",
 477 ! 		  BT_FN_VOID_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 478   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_8,
 479   		  "__atomic_store_8",
 480 ! 		  BT_FN_VOID_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 481   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_16,
 482   		  "__atomic_store_16",
 483 ! 		  BT_FN_VOID_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 484   
 485   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_N,
 486   		  "__atomic_add_fetch",
 487   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 488   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_1,
 489   		  "__atomic_add_fetch_1",
 490 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 491   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_2,
 492   		  "__atomic_add_fetch_2",
 493 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 494   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_4,
 495   		  "__atomic_add_fetch_4",
 496 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 497   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_8,
 498   		  "__atomic_add_fetch_8",
 499 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 500   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_16,
 501   		  "__atomic_add_fetch_16",
 502 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 503   
 504   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_N,
 505   		  "__atomic_sub_fetch",
 506   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 507   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_1,
 508   		  "__atomic_sub_fetch_1",
 509 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 510   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_2,
 511   		  "__atomic_sub_fetch_2",
 512 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 513   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_4,
 514   		  "__atomic_sub_fetch_4",
 515 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 516   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_8,
 517   		  "__atomic_sub_fetch_8",
 518 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 519   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_16,
 520   		  "__atomic_sub_fetch_16",
 521 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 522   
 523   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_N,
 524   		  "__atomic_and_fetch",
 525   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 526   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_1,
 527   		  "__atomic_and_fetch_1",
 528 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 529   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_2,
 530   		  "__atomic_and_fetch_2",
 531 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 532   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_4,
 533   		  "__atomic_and_fetch_4",
 534 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 535   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_8,
 536   		  "__atomic_and_fetch_8",
 537 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 538   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_16,
 539   		  "__atomic_and_fetch_16",
 540 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 541   
 542   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_N,
 543   		  "__atomic_nand_fetch",
 544   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 545   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_1,
 546   		  "__atomic_nand_fetch_1",
 547 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 548   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_2,
 549   		  "__atomic_nand_fetch_2",
 550 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 551   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_4,
 552   		  "__atomic_nand_fetch_4",
 553 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 554   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_8,
 555   		  "__atomic_nand_fetch_8",
 556 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 557   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_16,
 558   		  "__atomic_nand_fetch_16",
 559 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 560   
 561   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_N,
 562   		  "__atomic_xor_fetch",
 563   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 564   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_1,
 565   		  "__atomic_xor_fetch_1",
 566 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 567   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_2,
 568   		  "__atomic_xor_fetch_2",
 569 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 570   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_4,
 571   		  "__atomic_xor_fetch_4",
 572 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 573   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_8,
 574   		  "__atomic_xor_fetch_8",
 575 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 576   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_16,
 577   		  "__atomic_xor_fetch_16",
 578 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 579   
 580   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_N,
 581   		  "__atomic_or_fetch",
 582   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 583   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_1,
 584   		  "__atomic_or_fetch_1",
 585 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 586   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_2,
 587   		  "__atomic_or_fetch_2",
 588 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 589   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_4,
 590   		  "__atomic_or_fetch_4",
 591 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 592   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_8,
 593   		  "__atomic_or_fetch_8",
 594 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 595   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_16,
 596   		  "__atomic_or_fetch_16",
 597 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 598   
 599   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_N,
 600   		  "__atomic_fetch_add",
 601   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 602   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_1,
 603   		  "__atomic_fetch_add_1",
 604 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 605   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_2,
 606   		  "__atomic_fetch_add_2",
 607 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 608   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_4,
 609   		  "__atomic_fetch_add_4",
 610 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 611   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_8,
 612   		  "__atomic_fetch_add_8",
 613 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 614   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_16,
 615   		  "__atomic_fetch_add_16",
 616 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 617   
 618   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_N,
 619   		  "__atomic_fetch_sub",
 620   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 621   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_1,
 622   		  "__atomic_fetch_sub_1",
 623 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 624   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_2,
 625   		  "__atomic_fetch_sub_2",
 626 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 627   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_4,
 628   		  "__atomic_fetch_sub_4",
 629 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 630   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_8,
 631   		  "__atomic_fetch_sub_8",
 632 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 633   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_16,
 634   		  "__atomic_fetch_sub_16",
 635 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 636   
 637   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_N,
 638   		  "__atomic_fetch_and",
 639   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 640   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_1,
 641   		  "__atomic_fetch_and_1",
 642 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 643   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_2,
 644   		  "__atomic_fetch_and_2",
 645 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 646   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_4,
 647   		  "__atomic_fetch_and_4",
 648 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 649   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_8,
 650   		  "__atomic_fetch_and_8",
 651 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 652   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_16,
 653   		  "__atomic_fetch_and_16",
 654 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 655   
 656   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_N,
 657   		  "__atomic_fetch_nand",
 658   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 659   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_1,
 660   		  "__atomic_fetch_nand_1",
 661 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 662   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_2,
 663   		  "__atomic_fetch_nand_2",
 664 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 665   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_4,
 666   		  "__atomic_fetch_nand_4",
 667 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 668   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_8,
 669   		  "__atomic_fetch_nand_8",
 670 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 671   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_16,
 672   		  "__atomic_fetch_nand_16",
 673 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 674   
 675   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_N,
 676   		  "__atomic_fetch_xor",
 677   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 678   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_1,
 679   		  "__atomic_fetch_xor_1",
 680 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 681   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_2,
 682   		  "__atomic_fetch_xor_2",
 683 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 684   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_4,
 685   		  "__atomic_fetch_xor_4",
 686 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 687   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_8,
 688   		  "__atomic_fetch_xor_8",
 689 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 690   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_16,
 691   		  "__atomic_fetch_xor_16",
 692 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 693   
 694   
 695   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_N,
 696 --- 260,567 ----
 697   /* __sync* builtins for the C++ memory model.  */
 698   
 699   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_TEST_AND_SET, "__atomic_test_and_set",
 700 ! 		  BT_FN_BOOL_APTR_INT, ATTR_NOTHROW_LEAF_LIST)
 701   
 702 ! DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_CLEAR, "__atomic_clear", BT_FN_VOID_APTR_INT,
 703   		  ATTR_NOTHROW_LEAF_LIST)
 704   
 705   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE,
 706   		  "__atomic_exchange",
 707 ! 		  BT_FN_VOID_SIZE_APTR_PTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST)
 708   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_N,
 709   		  "__atomic_exchange_n",
 710   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 711   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_1,
 712   		  "__atomic_exchange_1",
 713 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 714   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_2,
 715   		  "__atomic_exchange_2",
 716 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 717   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_4,
 718   		  "__atomic_exchange_4",
 719 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 720   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_8,
 721   		  "__atomic_exchange_8",
 722 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 723   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_16,
 724   		  "__atomic_exchange_16",
 725 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 726   
 727   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD,
 728   		  "__atomic_load",
 729 ! 		  BT_FN_VOID_SIZE_CONST_APTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST)
 730   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_N,
 731   		  "__atomic_load_n",
 732   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 733   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_1,
 734   		  "__atomic_load_1",
 735 ! 		  BT_FN_I1_CONST_APTR_INT, ATTR_NOTHROW_LEAF_LIST)
 736   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_2,
 737   		  "__atomic_load_2",
 738 ! 		  BT_FN_I2_CONST_APTR_INT, ATTR_NOTHROW_LEAF_LIST)
 739   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_4,
 740   		  "__atomic_load_4",
 741 ! 		  BT_FN_I4_CONST_APTR_INT, ATTR_NOTHROW_LEAF_LIST)
 742   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_8,
 743   		  "__atomic_load_8",
 744 ! 		  BT_FN_I8_CONST_APTR_INT, ATTR_NOTHROW_LEAF_LIST)
 745   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_16,
 746   		  "__atomic_load_16",
 747 ! 		  BT_FN_I16_CONST_APTR_INT, ATTR_NOTHROW_LEAF_LIST)
 748   
 749   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE,
 750   		  "__atomic_compare_exchange",
 751 ! 		  BT_FN_BOOL_SIZE_APTR_PTR_PTR_INT_INT,
 752   		  ATTR_NOTHROW_LEAF_LIST)
 753   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_N,
 754   		  "__atomic_compare_exchange_n",
 755   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 756   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_1,
 757   		  "__atomic_compare_exchange_1",
 758 ! 		  BT_FN_BOOL_APTR_PTR_I1_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
 759   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_2,
 760   		  "__atomic_compare_exchange_2",
 761 ! 		  BT_FN_BOOL_APTR_PTR_I2_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
 762   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_4,
 763   		  "__atomic_compare_exchange_4",
 764 ! 		  BT_FN_BOOL_APTR_PTR_I4_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
 765   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_8,
 766   		  "__atomic_compare_exchange_8",
 767 ! 		  BT_FN_BOOL_APTR_PTR_I8_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
 768   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_16,
 769   		  "__atomic_compare_exchange_16",
 770 ! 		  BT_FN_BOOL_APTR_PTR_I16_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
 771   
 772   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE,
 773   		  "__atomic_store",
 774 ! 		  BT_FN_VOID_SIZE_APTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST)
 775   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_N,
 776   		  "__atomic_store_n",
 777   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 778   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_1,
 779   		  "__atomic_store_1",
 780 ! 		  BT_FN_VOID_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 781   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_2,
 782   		  "__atomic_store_2",
 783 ! 		  BT_FN_VOID_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 784   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_4,
 785   		  "__atomic_store_4",
 786 ! 		  BT_FN_VOID_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 787   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_8,
 788   		  "__atomic_store_8",
 789 ! 		  BT_FN_VOID_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 790   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_16,
 791   		  "__atomic_store_16",
 792 ! 		  BT_FN_VOID_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 793   
 794   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_N,
 795   		  "__atomic_add_fetch",
 796   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 797   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_1,
 798   		  "__atomic_add_fetch_1",
 799 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 800   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_2,
 801   		  "__atomic_add_fetch_2",
 802 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 803   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_4,
 804   		  "__atomic_add_fetch_4",
 805 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 806   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_8,
 807   		  "__atomic_add_fetch_8",
 808 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 809   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_16,
 810   		  "__atomic_add_fetch_16",
 811 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 812   
 813   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_N,
 814   		  "__atomic_sub_fetch",
 815   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 816   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_1,
 817   		  "__atomic_sub_fetch_1",
 818 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 819   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_2,
 820   		  "__atomic_sub_fetch_2",
 821 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 822   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_4,
 823   		  "__atomic_sub_fetch_4",
 824 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 825   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_8,
 826   		  "__atomic_sub_fetch_8",
 827 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 828   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_16,
 829   		  "__atomic_sub_fetch_16",
 830 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 831   
 832   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_N,
 833   		  "__atomic_and_fetch",
 834   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 835   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_1,
 836   		  "__atomic_and_fetch_1",
 837 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 838   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_2,
 839   		  "__atomic_and_fetch_2",
 840 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 841   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_4,
 842   		  "__atomic_and_fetch_4",
 843 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 844   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_8,
 845   		  "__atomic_and_fetch_8",
 846 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 847   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_16,
 848   		  "__atomic_and_fetch_16",
 849 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 850   
 851   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_N,
 852   		  "__atomic_nand_fetch",
 853   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 854   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_1,
 855   		  "__atomic_nand_fetch_1",
 856 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 857   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_2,
 858   		  "__atomic_nand_fetch_2",
 859 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 860   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_4,
 861   		  "__atomic_nand_fetch_4",
 862 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 863   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_8,
 864   		  "__atomic_nand_fetch_8",
 865 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 866   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_16,
 867   		  "__atomic_nand_fetch_16",
 868 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 869   
 870   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_N,
 871   		  "__atomic_xor_fetch",
 872   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 873   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_1,
 874   		  "__atomic_xor_fetch_1",
 875 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 876   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_2,
 877   		  "__atomic_xor_fetch_2",
 878 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 879   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_4,
 880   		  "__atomic_xor_fetch_4",
 881 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 882   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_8,
 883   		  "__atomic_xor_fetch_8",
 884 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 885   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_16,
 886   		  "__atomic_xor_fetch_16",
 887 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 888   
 889   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_N,
 890   		  "__atomic_or_fetch",
 891   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 892   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_1,
 893   		  "__atomic_or_fetch_1",
 894 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 895   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_2,
 896   		  "__atomic_or_fetch_2",
 897 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 898   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_4,
 899   		  "__atomic_or_fetch_4",
 900 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 901   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_8,
 902   		  "__atomic_or_fetch_8",
 903 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 904   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_16,
 905   		  "__atomic_or_fetch_16",
 906 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 907   
 908   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_N,
 909   		  "__atomic_fetch_add",
 910   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 911   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_1,
 912   		  "__atomic_fetch_add_1",
 913 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 914   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_2,
 915   		  "__atomic_fetch_add_2",
 916 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 917   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_4,
 918   		  "__atomic_fetch_add_4",
 919 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 920   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_8,
 921   		  "__atomic_fetch_add_8",
 922 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 923   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_16,
 924   		  "__atomic_fetch_add_16",
 925 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 926   
 927   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_N,
 928   		  "__atomic_fetch_sub",
 929   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 930   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_1,
 931   		  "__atomic_fetch_sub_1",
 932 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 933   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_2,
 934   		  "__atomic_fetch_sub_2",
 935 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 936   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_4,
 937   		  "__atomic_fetch_sub_4",
 938 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 939   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_8,
 940   		  "__atomic_fetch_sub_8",
 941 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 942   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_16,
 943   		  "__atomic_fetch_sub_16",
 944 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 945   
 946   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_N,
 947   		  "__atomic_fetch_and",
 948   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 949   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_1,
 950   		  "__atomic_fetch_and_1",
 951 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 952   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_2,
 953   		  "__atomic_fetch_and_2",
 954 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 955   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_4,
 956   		  "__atomic_fetch_and_4",
 957 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 958   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_8,
 959   		  "__atomic_fetch_and_8",
 960 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 961   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_16,
 962   		  "__atomic_fetch_and_16",
 963 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 964   
 965   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_N,
 966   		  "__atomic_fetch_nand",
 967   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 968   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_1,
 969   		  "__atomic_fetch_nand_1",
 970 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 971   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_2,
 972   		  "__atomic_fetch_nand_2",
 973 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 974   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_4,
 975   		  "__atomic_fetch_nand_4",
 976 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 977   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_8,
 978   		  "__atomic_fetch_nand_8",
 979 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 980   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_16,
 981   		  "__atomic_fetch_nand_16",
 982 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
 983   
 984   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_N,
 985   		  "__atomic_fetch_xor",
 986   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
 987   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_1,
 988   		  "__atomic_fetch_xor_1",
 989 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
 990   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_2,
 991   		  "__atomic_fetch_xor_2",
 992 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
 993   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_4,
 994   		  "__atomic_fetch_xor_4",
 995 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
 996   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_8,
 997   		  "__atomic_fetch_xor_8",
 998 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
 999   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_16,
1000   		  "__atomic_fetch_xor_16",
1001 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
1002   
1003   
1004   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_N,
1005 *************** DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_
1006 *** 569,595 ****
1007   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
1008   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_1,
1009   		  "__atomic_fetch_or_1",
1010 ! 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
1011   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_2,
1012   		  "__atomic_fetch_or_2",
1013 ! 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
1014   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_4,
1015   		  "__atomic_fetch_or_4",
1016 ! 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
1017   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_8,
1018   		  "__atomic_fetch_or_8",
1019 ! 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
1020   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_16,
1021   		  "__atomic_fetch_or_16",
1022 ! 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
1023   
1024   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ALWAYS_LOCK_FREE,
1025   		  "__atomic_always_lock_free",
1026 ! 		  BT_FN_BOOL_SIZE_CONST_VPTR, ATTR_CONST_NOTHROW_LEAF_LIST)
1027   
1028   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_IS_LOCK_FREE,
1029   		  "__atomic_is_lock_free",
1030 ! 		  BT_FN_BOOL_SIZE_CONST_VPTR, ATTR_CONST_NOTHROW_LEAF_LIST)
1031   
1032   
1033   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_THREAD_FENCE,
1034 --- 569,595 ----
1035   		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
1036   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_1,
1037   		  "__atomic_fetch_or_1",
1038 ! 		  BT_FN_I1_APTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
1039   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_2,
1040   		  "__atomic_fetch_or_2",
1041 ! 		  BT_FN_I2_APTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
1042   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_4,
1043   		  "__atomic_fetch_or_4",
1044 ! 		  BT_FN_I4_APTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
1045   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_8,
1046   		  "__atomic_fetch_or_8",
1047 ! 		  BT_FN_I8_APTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
1048   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_16,
1049   		  "__atomic_fetch_or_16",
1050 ! 		  BT_FN_I16_APTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
1051   
1052   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ALWAYS_LOCK_FREE,
1053   		  "__atomic_always_lock_free",
1054 ! 		  BT_FN_BOOL_SIZE_CONST_APTR, ATTR_CONST_NOTHROW_LEAF_LIST)
1055   
1056   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_IS_LOCK_FREE,
1057   		  "__atomic_is_lock_free",
1058 ! 		  BT_FN_BOOL_SIZE_CONST_APTR, ATTR_CONST_NOTHROW_LEAF_LIST)
1059   
1060   
1061   DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_THREAD_FENCE,
1062 Index: gcc/doc/extend.texi
1063 ===================================================================
1064 *** gcc/doc/extend.texi	(revision 202628)
1065 --- gcc/doc/extend.texi	(working copy)
1066 *************** reserved for the memory model.  The rema
1067 *** 7320,7325 ****
1068 --- 7320,7334 ----
1069   for future use and should be 0.  Use of the predefined atomic values
1070   ensures proper usage.
1071   
1072 + All __atomic built-in functions expect the first parameter to be a type with
1073 + the atomic attribute set.  It is OK on most targets to continue using the
1074 + non-atomic version for backward compatability. The only time there will be a
1075 + compatability issues is if the atomic implementation for a target overrides 
1076 + the alignment of the atomic type in order to implement lock free routines.
1077 + This facility did not exist before GCC 4.9, so there are no compatibility
1078 + issues up until then.  Targets with such requirements would have had
1079 + non-function atomic lockfree operations up until this facility became available.
1080 + 
1081   @deftypefn {Built-in Function} @var{type} __atomic_load_n (@var{type} *ptr, int memmodel)
1082   This built-in function implements an atomic load operation.  It returns the
1083   contents of @code{*@var{ptr}}.

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2013-09-26 22:28:39, 3.3 KB) [[attachment:C11atomic1.patch]]
  • [get | view] (2013-09-26 22:29:03, 10.1 KB) [[attachment:C11atomic2.patch]]
  • [get | view] (2013-09-26 22:29:32, 23.8 KB) [[attachment:C11atomic3.patch]]
  • [get | view] (2013-09-26 22:30:03, 11.1 KB) [[attachment:C11atomic4.patch]]
  • [get | view] (2013-09-26 22:30:34, 13.8 KB) [[attachment:C11atomic5.patch]]
  • [get | view] (2013-09-26 22:31:14, 0.6 KB) [[attachment:C11atomic6.patch]]
  • [get | view] (2013-09-26 22:31:49, 8.6 KB) [[attachment:C11stdatomic.patch]]
  • [get | view] (2013-09-30 15:02:51, 47.7 KB) [[attachment:atomicproto.patch]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.