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_count_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 unsigned count = 0; \ 13*2fb8cbc6SRobert Clausecker \ 14*2fb8cbc6SRobert Clausecker while (value != 0) { \ 15*2fb8cbc6SRobert Clausecker count += value & 1; \ 16*2fb8cbc6SRobert Clausecker value >>= 1; \ 17*2fb8cbc6SRobert Clausecker } \ 18*2fb8cbc6SRobert Clausecker \ 19*2fb8cbc6SRobert Clausecker return (count); \ 20*2fb8cbc6SRobert Clausecker } 21*2fb8cbc6SRobert Clausecker 22*2fb8cbc6SRobert Clausecker #include "stdbit-test-framework.c" 23