/* Check that MAX_EXPR and MIN_EXPR are working properly.  */

#define MAX(X, Y) ((X) > (Y) ? (X) : (Y))
#define MIN(X, Y) ((X) < (Y) ? (X) : (Y))

extern void abort(void);

int main() {
    int ll_bitsize, ll_bitpos;
    int rl_bitsize, rl_bitpos;
    int end_bit;

    ll_bitpos = 32;
    ll_bitsize = 32;
    rl_bitpos = 0;
    rl_bitsize = 32;

    end_bit = MAX(ll_bitpos + ll_bitsize, rl_bitpos + rl_bitsize);
    if (end_bit != 64)
        abort();
    end_bit = MAX(rl_bitpos + rl_bitsize, ll_bitpos + ll_bitsize);
    if (end_bit != 64)
        abort();
    end_bit = MIN(ll_bitpos + ll_bitsize, rl_bitpos + rl_bitsize);
    if (end_bit != 32)
        abort();
    end_bit = MIN(rl_bitpos + rl_bitsize, ll_bitpos + ll_bitsize);
    if (end_bit != 32)
        abort();
    return 0;
}
