# /* External variables to defeat constant folding. */ zero 0; one 1; i 0; ext_t() { extrn zero, one, i; i = zero; if (!(i++ == 0)) fail(__LINE__); i = one; if (!(i-- == 1)) fail(__LINE__); if (!(i == 0)) fail(__LINE__); i = zero; if (!(++i == 1)) fail(__LINE__); if (!(i == 1)) fail(__LINE__); i = one; if (!(--i == 0)) fail(__LINE__); if (!(i == 0)) fail(__LINE__); } int_t() { extrn zero, one; auto i; i = zero; if (!(i++ == 0)) fail(__LINE__); i = one; if (!(i-- == 1)) fail(__LINE__); if (!(i == 0)) fail(__LINE__); i = zero; if (!(++i == 1)) fail(__LINE__); if (!(i == 1)) fail(__LINE__); i = one; if (!(--i == 0)) fail(__LINE__); if (!(i == 0)) fail(__LINE__); } star_t() { extrn zero, one, i; auto p; p = &i; i = zero; if (!((*p)++ == 0)) fail(__LINE__); i = one; if (!((*p)-- == 1)) fail(__LINE__); if (!(i == 0)) fail(__LINE__); i = zero; if (!(++(*p) == 1)) fail(__LINE__); if (!(i == 1)) fail(__LINE__); i = one; if (!(--(*p) == 0)) fail(__LINE__); if (!(i == 0)) fail(__LINE__); } main() { ext_t(); int_t(); star_t(); finished(); return(0); }