P99
|
◆ P99_REF_DISCOUNT
Value:
p99_extension ({ \
P99_MACRO_VAR(p00_ref, (REF)); \
= (DELETE); \
/* ensure that the pointer is converted to the */ \
/* base type, and that the return can't be used as lvalue */ \
register __typeof__(*p00_ref)*const p00_r = p00_ref; \
if (p00_r && (atomic_fetch_sub_explicit(&p00_r->p99_cnt, 1, memory_order_acq_rel) == 1)) \
p00_d(p00_r); \
p00_r; \
})
|