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