1*c8dee2aaSAndroid Build Coastguard Workerworkgroup atomicUint wgCounterA; 2*c8dee2aaSAndroid Build Coastguard Workerworkgroup atomicUint wgCounterB; 3*c8dee2aaSAndroid Build Coastguard Worker 4*c8dee2aaSAndroid Build Coastguard Workerstruct S { 5*c8dee2aaSAndroid Build Coastguard Worker atomicUint memberAtomic; 6*c8dee2aaSAndroid Build Coastguard Worker}; 7*c8dee2aaSAndroid Build Coastguard Workerworkgroup S wgStructWithAtomicMember; 8*c8dee2aaSAndroid Build Coastguard Workerworkgroup atomicUint wgAtomicArray[2]; 9*c8dee2aaSAndroid Build Coastguard Workerworkgroup atomicUint wgAtomicArray2[2]; 10*c8dee2aaSAndroid Build Coastguard Workerworkgroup S wgStructWithAtomicMemberArray[2]; 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Workerstruct NestedS { 13*c8dee2aaSAndroid Build Coastguard Worker S nestedStructWithAtomicMember; 14*c8dee2aaSAndroid Build Coastguard Worker}; 15*c8dee2aaSAndroid Build Coastguard Workerworkgroup NestedS wgNestedStructWithAtomicMember; 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Workervoid main() { 18*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = 1; 19*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = atomicUint(1); 20*c8dee2aaSAndroid Build Coastguard Worker 21*c8dee2aaSAndroid Build Coastguard Worker +wgCounterA; 22*c8dee2aaSAndroid Build Coastguard Worker -wgCounterA; 23*c8dee2aaSAndroid Build Coastguard Worker !wgCounterA; 24*c8dee2aaSAndroid Build Coastguard Worker ~wgCounterA; 25*c8dee2aaSAndroid Build Coastguard Worker 26*c8dee2aaSAndroid Build Coastguard Worker wgCounterA++; 27*c8dee2aaSAndroid Build Coastguard Worker wgCounterA--; 28*c8dee2aaSAndroid Build Coastguard Worker ++wgCounterA; 29*c8dee2aaSAndroid Build Coastguard Worker --wgCounterA; 30*c8dee2aaSAndroid Build Coastguard Worker 31*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = -wgCounterA; 32*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = +wgCounterA; 33*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = wgCounterB; 34*c8dee2aaSAndroid Build Coastguard Worker wgCounterA += wgCounterB; 35*c8dee2aaSAndroid Build Coastguard Worker wgCounterA -= wgCounterB; 36*c8dee2aaSAndroid Build Coastguard Worker wgCounterA *= wgCounterB; 37*c8dee2aaSAndroid Build Coastguard Worker wgCounterA /= wgCounterB; 38*c8dee2aaSAndroid Build Coastguard Worker 39*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = wgCounterA + 1; 40*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = wgCounterA - 1; 41*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = wgCounterA * 1; 42*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = wgCounterA / 1; 43*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = wgCounterA + wgCounterB; 44*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = wgCounterA - wgCounterB; 45*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = wgCounterA * wgCounterB; 46*c8dee2aaSAndroid Build Coastguard Worker wgCounterA = wgCounterA / wgCounterB; 47*c8dee2aaSAndroid Build Coastguard Worker 48*c8dee2aaSAndroid Build Coastguard Worker wgCounterA == wgCounterB; 49*c8dee2aaSAndroid Build Coastguard Worker wgCounterA != wgCounterB; 50*c8dee2aaSAndroid Build Coastguard Worker wgCounterA < wgCounterB; 51*c8dee2aaSAndroid Build Coastguard Worker wgCounterA <= wgCounterB; 52*c8dee2aaSAndroid Build Coastguard Worker wgCounterA > wgCounterB; 53*c8dee2aaSAndroid Build Coastguard Worker wgCounterA >= wgCounterB; 54*c8dee2aaSAndroid Build Coastguard Worker wgCounterA && wgCounterB; 55*c8dee2aaSAndroid Build Coastguard Worker wgCounterA || wgCounterB; 56*c8dee2aaSAndroid Build Coastguard Worker wgCounterA & wgCounterB; 57*c8dee2aaSAndroid Build Coastguard Worker wgCounterA | wgCounterB; 58*c8dee2aaSAndroid Build Coastguard Worker 59*c8dee2aaSAndroid Build Coastguard Worker uint a = wgCounterA; 60*c8dee2aaSAndroid Build Coastguard Worker wgStructWithAtomicMember = S(1); 61*c8dee2aaSAndroid Build Coastguard Worker wgStructWithAtomicMember = S(atomicUint(1)); 62*c8dee2aaSAndroid Build Coastguard Worker wgStructWithAtomicMember = S(wgCounterA); 63*c8dee2aaSAndroid Build Coastguard Worker 64*c8dee2aaSAndroid Build Coastguard Worker wgAtomicArray[0] = wgCounterA; 65*c8dee2aaSAndroid Build Coastguard Worker wgAtomicArray[1] = wgCounterB; 66*c8dee2aaSAndroid Build Coastguard Worker wgAtomicArray = wgAtomicArray2; 67*c8dee2aaSAndroid Build Coastguard Worker wgAtomicArray = atomicUint[2](wgCounterA, wgCounterB); 68*c8dee2aaSAndroid Build Coastguard Worker 69*c8dee2aaSAndroid Build Coastguard Worker wgStructWithAtomicMemberArray[0] = wgStructWithAtomicMember; 70*c8dee2aaSAndroid Build Coastguard Worker wgStructWithAtomicMemberArray = S[2](wgStructWithAtomicMember, 71*c8dee2aaSAndroid Build Coastguard Worker wgStructWithAtomicMember); 72*c8dee2aaSAndroid Build Coastguard Worker wgNestedStructWithAtomicMember = NestedS(wgStructWithAtomicMember); 73*c8dee2aaSAndroid Build Coastguard Worker} 74*c8dee2aaSAndroid Build Coastguard Worker 75*c8dee2aaSAndroid Build Coastguard Worker/*%%* 76*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '=' cannot operate on 'atomicUint', 'int' 77*c8dee2aaSAndroid Build Coastguard Workercannot construct 'atomicUint' 78*c8dee2aaSAndroid Build Coastguard Worker'+' cannot operate on 'atomicUint' 79*c8dee2aaSAndroid Build Coastguard Worker'-' cannot operate on 'atomicUint' 80*c8dee2aaSAndroid Build Coastguard Worker'!' cannot operate on 'atomicUint' 81*c8dee2aaSAndroid Build Coastguard Worker'~' cannot operate on 'atomicUint' 82*c8dee2aaSAndroid Build Coastguard Worker'++' cannot operate on 'atomicUint' 83*c8dee2aaSAndroid Build Coastguard Worker'--' cannot operate on 'atomicUint' 84*c8dee2aaSAndroid Build Coastguard Worker'++' cannot operate on 'atomicUint' 85*c8dee2aaSAndroid Build Coastguard Worker'--' cannot operate on 'atomicUint' 86*c8dee2aaSAndroid Build Coastguard Worker'-' cannot operate on 'atomicUint' 87*c8dee2aaSAndroid Build Coastguard Worker'+' cannot operate on 'atomicUint' 88*c8dee2aaSAndroid Build Coastguard Workerassignments to opaque type 'atomicUint' are not permitted 89*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '+=' cannot operate on 'atomicUint', 'atomicUint' 90*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '-=' cannot operate on 'atomicUint', 'atomicUint' 91*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '*=' cannot operate on 'atomicUint', 'atomicUint' 92*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '/=' cannot operate on 'atomicUint', 'atomicUint' 93*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '+' cannot operate on 'atomicUint', 'int' 94*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '-' cannot operate on 'atomicUint', 'int' 95*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '*' cannot operate on 'atomicUint', 'int' 96*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '/' cannot operate on 'atomicUint', 'int' 97*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '+' cannot operate on 'atomicUint', 'atomicUint' 98*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '-' cannot operate on 'atomicUint', 'atomicUint' 99*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '*' cannot operate on 'atomicUint', 'atomicUint' 100*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '/' cannot operate on 'atomicUint', 'atomicUint' 101*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '==' cannot operate on 'atomicUint', 'atomicUint' 102*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '!=' cannot operate on 'atomicUint', 'atomicUint' 103*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '<' cannot operate on 'atomicUint', 'atomicUint' 104*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '<=' cannot operate on 'atomicUint', 'atomicUint' 105*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '>' cannot operate on 'atomicUint', 'atomicUint' 106*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '>=' cannot operate on 'atomicUint', 'atomicUint' 107*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '&&' cannot operate on 'atomicUint', 'atomicUint' 108*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '||' cannot operate on 'atomicUint', 'atomicUint' 109*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '&' cannot operate on 'atomicUint', 'atomicUint' 110*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '|' cannot operate on 'atomicUint', 'atomicUint' 111*c8dee2aaSAndroid Build Coastguard Workerexpected 'uint', but found 'atomicUint' 112*c8dee2aaSAndroid Build Coastguard Workerconstruction of struct type 'S' with atomic member is not allowed 113*c8dee2aaSAndroid Build Coastguard Workercannot construct 'atomicUint' 114*c8dee2aaSAndroid Build Coastguard Workerconstruction of struct type 'S' with atomic member is not allowed 115*c8dee2aaSAndroid Build Coastguard Workerconstruction of struct type 'S' with atomic member is not allowed 116*c8dee2aaSAndroid Build Coastguard Workerassignments to opaque type 'atomicUint' are not permitted 117*c8dee2aaSAndroid Build Coastguard Workerassignments to opaque type 'atomicUint' are not permitted 118*c8dee2aaSAndroid Build Coastguard Workerassignments to opaque type 'atomicUint[2]' are not permitted 119*c8dee2aaSAndroid Build Coastguard Workerconstruction of array type 'atomicUint[2]' with atomic member is not allowed 120*c8dee2aaSAndroid Build Coastguard Workerassignments to opaque type 'S' are not permitted 121*c8dee2aaSAndroid Build Coastguard Workerconstruction of array type 'S[2]' with atomic member is not allowed 122*c8dee2aaSAndroid Build Coastguard Workerconstruction of struct type 'NestedS' with atomic member is not allowed 123*c8dee2aaSAndroid Build Coastguard Worker*%%*/ 124