Lines Matching +full:non +full:- +full:negative
1 /* SPDX-License-Identifier: GPL-2.0 */
13 * - Avoid multiple evaluations of the arguments (so side-effects like
14 * "x++" happen only once) when non-constant.
15 * - Retain result as a constant expressions when called with only
18 * - Perform signed v unsigned type-checking (to generate compile
20 * - Unsigned char/short are always promoted to signed int and can be
22 * - Unsigned arguments can be compared against non-negative signed constants.
23 * - Comparison of a signed argument against an unsigned constant fails
34 /* True for a non-negative signed int constant */
36 (__builtin_choose_expr(__is_constexpr(x) && __is_signed(x), x, -1) >= 0)
56 __builtin_choose_expr(__is_constexpr((x) - (y)), \
75 __builtin_choose_expr(__is_constexpr((val) - (lo) + (hi)), \
81 * min - return minimum of two values of the same or compatible types
88 * max - return maximum of two values of the same or compatible types
95 * umin - return minimum of two non-negative values
104 * umax - return maximum of two non-negative values
112 * min3 - return minimum of three values
120 * max3 - return maximum of three values
128 * min_not_zero - return the minimum that is _not_ zero, unless both are zero
138 * clamp - return a value clamped to a given range with strict typechecking
156 * min_t - return minimum of two values, using the specified type
164 * max_t - return maximum of two values, using the specified type
173 * In the following legit use-case where the "array" passed is a simple pointer,
175 * --- 8< ---
179 * --- 8< ---
191 __unqual_scalar_typeof(__array[0]) __element = __array[--__len];\
192 while (__len--) \
197 * min_array - return minimum of values present in an array
206 * max_array - return maximum of values present in an array
215 * clamp_t - return a value clamped to a given range using a given type
227 * clamp_val - return a value clamped to a given range using val's type
241 return (val - start) < len; in in_range64()
246 return (val - start) < len; in in_range32()
250 * in_range - Determine if a value lies within a range.
266 * swap - swap values of @a and @b