358 ));
359 const DecoratorSet ref_strength_decorators = decorators & ON_DECORATOR_MASK;
360 STATIC_ASSERT(ref_strength_decorators == 0 || ( // make sure ref strength decorators are disjoint if set
361 (ref_strength_decorators ^ ON_STRONG_OOP_REF) == 0 ||
362 (ref_strength_decorators ^ ON_WEAK_OOP_REF) == 0 ||
363 (ref_strength_decorators ^ ON_PHANTOM_OOP_REF) == 0 ||
364 (ref_strength_decorators ^ ON_UNKNOWN_OOP_REF) == 0
365 ));
366 const DecoratorSet memory_ordering_decorators = decorators & MO_DECORATOR_MASK;
367 STATIC_ASSERT(memory_ordering_decorators == 0 || ( // make sure memory ordering decorators are disjoint if set
368 (memory_ordering_decorators ^ MO_UNORDERED) == 0 ||
369 (memory_ordering_decorators ^ MO_VOLATILE) == 0 ||
370 (memory_ordering_decorators ^ MO_RELAXED) == 0 ||
371 (memory_ordering_decorators ^ MO_ACQUIRE) == 0 ||
372 (memory_ordering_decorators ^ MO_RELEASE) == 0 ||
373 (memory_ordering_decorators ^ MO_SEQ_CST) == 0
374 ));
375 const DecoratorSet location_decorators = decorators & IN_DECORATOR_MASK;
376 STATIC_ASSERT(location_decorators == 0 || ( // make sure location decorators are disjoint if set
377 (location_decorators ^ IN_NATIVE) == 0 ||
378 (location_decorators ^ IN_HEAP) == 0 ||
379 (location_decorators ^ (IN_NATIVE | IN_CONCURRENT_ROOT)) == 0
380 ));
381 }
382
383 #endif // SHARE_OOPS_ACCESS_HPP
|
358 ));
359 const DecoratorSet ref_strength_decorators = decorators & ON_DECORATOR_MASK;
360 STATIC_ASSERT(ref_strength_decorators == 0 || ( // make sure ref strength decorators are disjoint if set
361 (ref_strength_decorators ^ ON_STRONG_OOP_REF) == 0 ||
362 (ref_strength_decorators ^ ON_WEAK_OOP_REF) == 0 ||
363 (ref_strength_decorators ^ ON_PHANTOM_OOP_REF) == 0 ||
364 (ref_strength_decorators ^ ON_UNKNOWN_OOP_REF) == 0
365 ));
366 const DecoratorSet memory_ordering_decorators = decorators & MO_DECORATOR_MASK;
367 STATIC_ASSERT(memory_ordering_decorators == 0 || ( // make sure memory ordering decorators are disjoint if set
368 (memory_ordering_decorators ^ MO_UNORDERED) == 0 ||
369 (memory_ordering_decorators ^ MO_VOLATILE) == 0 ||
370 (memory_ordering_decorators ^ MO_RELAXED) == 0 ||
371 (memory_ordering_decorators ^ MO_ACQUIRE) == 0 ||
372 (memory_ordering_decorators ^ MO_RELEASE) == 0 ||
373 (memory_ordering_decorators ^ MO_SEQ_CST) == 0
374 ));
375 const DecoratorSet location_decorators = decorators & IN_DECORATOR_MASK;
376 STATIC_ASSERT(location_decorators == 0 || ( // make sure location decorators are disjoint if set
377 (location_decorators ^ IN_NATIVE) == 0 ||
378 (location_decorators ^ IN_HEAP) == 0
379 ));
380 }
381
382 #endif // SHARE_OOPS_ACCESS_HPP
|