11.3Srillig/*	$NetBSD: gcc_builtin_overflow.c,v 1.3 2023/07/07 19:45:22 rillig Exp $	*/
21.1Srillig# 3 "gcc_builtin_overflow.c"
31.1Srillig
41.1Srillig/*
51.1Srillig * Some GCC builtin functions return bool, and in lint's strict bool mode,
61.1Srillig * that makes a difference.
71.1Srillig *
81.1Srillig * https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html
91.1Srillig */
101.1Srillig
111.3Srillig/* lint1-extra-flags: -T -X 351 */
121.1Srillig
131.1Srilligvoid
141.1Srilligis_overflow(void)
151.1Srillig{
161.1Srillig	int sum;
171.1Srillig
181.1Srillig	if (__builtin_add_overflow(1, 2, &sum))
191.1Srillig		return;
201.1Srillig
211.2Srillig	if (__builtin_add_overflow_p(1, 2, 12345))
221.2Srillig		return;
231.2Srillig
241.1Srillig	/* expect+1: error: controlling expression must be bool, not 'int' [333] */
251.2Srillig	if (__builtin_other(1, 2, 12345))
261.1Srillig		return;
271.1Srillig}
28