__careful_clamp
#define clamp(val, lo, hi) __careful_clamp(auto, val, lo, hi)
#define clamp_t(type, val, lo, hi) __careful_clamp(type, val, lo, hi)
#define clamp_val(val, lo, hi) __careful_clamp(typeof(val), val, lo, hi)