|
@@ -0,0 +1,34 @@
|
|
|
+{ %NORUN }
|
|
|
+
|
|
|
+program tatomic8;
|
|
|
+
|
|
|
+{$mode objfpc}
|
|
|
+
|
|
|
+procedure AvoidHint(aArg: array of Boolean);
|
|
|
+begin
|
|
|
+end;
|
|
|
+
|
|
|
+var
|
|
|
+ l: LongInt;
|
|
|
+ b: Boolean;
|
|
|
+ bb: ByteBool;
|
|
|
+ wb: WordBool;
|
|
|
+ lb: LongBool;
|
|
|
+ qb: QWordBool;
|
|
|
+ b8: Boolean8;
|
|
|
+ b16: Boolean16;
|
|
|
+ b32: Boolean32;
|
|
|
+ b64: Boolean64;
|
|
|
+begin
|
|
|
+ l := 0;
|
|
|
+ AtomicCmpExchange(l, 42, 84, b);
|
|
|
+ AtomicCmpExchange(l, 42, 84, bb);
|
|
|
+ AtomicCmpExchange(l, 42, 84, wb);
|
|
|
+ AtomicCmpExchange(l, 42, 84, lb);
|
|
|
+ AtomicCmpExchange(l, 42, 84, qb);
|
|
|
+ AtomicCmpExchange(l, 42, 84, b8);
|
|
|
+ AtomicCmpExchange(l, 42, 84, b16);
|
|
|
+ AtomicCmpExchange(l, 42, 84, b32);
|
|
|
+ AtomicCmpExchange(l, 42, 84, b64);
|
|
|
+ AvoidHint([b, bb, wb, lb, qb, b8, b16, b32, b64]);
|
|
|
+end.
|