// Copyright (c) 2010-2017 Varnish Software AS
// SPDX-License-Identifier: BSD-2-Clause
// See LICENSE file for full text of license

-passes=3

-ffc			// No automatic custody

-printf(2, VSB_printf)

///////////////////////////////////////////////////////////////////////
// miniobj

// -emacro(755, CAST_OBJ)		// glob macro not ref
-emacro(779, REPLACE)		// string constant !=
-emacro(774, REPLACE)		// if(bool) always true
-emacro(506, REPLACE)		// const bool

///////////////////////////////////////////////////////////////////////
// VMB
-emacro(755, VMB)		// glob macro not ref
-emacro(755, VRMB)		// glob macro not ref
-emacro(755, VWMB)		// glob macro not ref

///////////////////////////////////////////////////////////////////////
// System library/POSIX related
///////////////////////////////////////////////////////////////////////

// Fix strchr() semtics, it can only return NULL if arg2 != 0
-sem(strchr, 1p, type(1), 2n == 0 ? (@p < 1p) : (@p < 1p || @p == 0 ))

+typename(844)
-etype(844, struct pthread *)
-sem(pthread_create, custodial(4))
-emacro(413, offsetof)  // likely null pointer
-emacro(736, isnan)  // loss of prec.

+libh(/usr/include/curses.h)
-elib(659)		// no tokens after struct def.
-elib(123)		// macro def. with arg at, (just warn)

+libh(/usr/include/libunwind.h)
-elib(849)

-emacro(702, WEXITSTATUS)	// signed shift right

-e825	// control flows into case/default without -fallthrough comment
