1 /* 2 * Copyright (c) 2025 Robert Clausecker <fuz@FreeBSD.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7 #define FUNCSTEM stdc_first_trailing_zero 8 #define MKREFFUNC(name, type) \ 9 static unsigned \ 10 name(type value) \ 11 { \ 12 type bit = 1; \ 13 unsigned pos = 1; \ 14 \ 15 value = ~value; \ 16 if (value == 0) \ 17 return (0); \ 18 \ 19 while ((bit & value) == 0) { \ 20 bit <<= 1; \ 21 pos++; \ 22 } \ 23 \ 24 return (pos); \ 25 } 26 27 #include "stdbit-test-framework.c" 28