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

// -w4

///////////////////////////////////////////////////////////////////////
// deprecated

-esym(765, WS_Reserve)
-esym(714, WS_Reserve)
-esym(759, WS_Reserve)

///////////////////////////////////////////////////////////////////////

-printf(3, VSL)
-printf(2, http_PrintfHeader)
-printf(2, VSB_printf)

-esym(759, VDI_AH_*)	// could be moved from header to module
-esym(765, VDI_AH_*)	// could be made static

-esym(755, vct_*)
-esym(759, vpf_*)
-esym(765, vpf_*)
-esym(714, vpf_*)
-esym(759, H_*)
-esym(765, H_*)
-esym(757, VSL_*)
-esym(765, VLU_*)
-esym(759, VLU_*)
-esym(714, VLU_*)
-esym(765, VSS_*)
-esym(759, VSS_*)
-esym(755, VSL_*)
-esym(765, VSL_*)
-esym(759, VSL_*)
-esym(765, CLI_*)
-esym(759, CLI_*)
-esym(755, CLI_*)

-esym(765, http_IsHdr)
-esym(759, http_IsHdr)
-esym(755, http_IsHdr)

// -"esym(793,significant characters in an external identifier)"

// XXX: I think this is a flexelint bug:
-esym(522, vbit_clr)

// Stuff used by compiled VCL
-esym(757, VRT_*)
-esym(759, VRT_*)
-esym(765, VRT_*)
-esym(714, VRT_*)
-esym(755, VRT_*)
-esym(765, vrt_magic_string_end)
-esym(759, vrt_magic_string_end)
-esym(768, vrt_ref::*)
-esym(768, vcf_return::name)
-esym(768, VCL_conf::*)
-esym(768, vdp::priv1)

// FLINT Bug20090910_838
-efunc(838, VRT_purge)

// Stuff in VMODs which is used through dl*(3) functions
-esym(754, Vmod_*_Func::*)
-esym(714, Vmod_*_Data)
-esym(765, Vmod_*_Data)

-esym(755, PAN_dump_once)		// global macro not referenced
-esym(755, PAN_dump_once_oneline)	// global macro not referenced
-esym(714, WS_Dump)	// Info 714: sym not referenced
-esym(759, WS_Dump)	// Info 759: header declaration could be moved to module
-esym(765, WS_Dump)	// Info 765: external could be static


//-sem (pthread_mutex_lock, thread_lock)
-sem (pthread_mutex_trylock, thread_lock)
-sem (VBE_DropRefLocked, thread_unlock)

-emacro(835, HCB_BIT_NODE)	// Info 835: A zero has been given as left argument to operator '<<'
-emacro(835, VBC_STATE_AVAIL)	// Info 835: A zero has been given as left argument to operator '<<'
-emacro(835, BANS_FLAG_REQ)	// Info 835: A zero has been given as left argument to operator '<<'
-emacro(835, HTTPH)	// Info 835: A zero has been given as left argument to operator '<<'
-emacro(835, HTTPH_R_PASS)	// Info 835: A zero has been given as left argument to operator '<<'
-emacro(835, SMP_SC_LOADED)	// Info 835: A zero has been given as left argument to operator '<<'
-emacro(835, SMP_SEG_MUSTLOAD)	// Info 835: A zero has been given as left argument to operator '<<'
-emacro(835, DELAYED_EFFECT)	// Info 835: A zero has been given as left argument to operator '<<'
-emacro(835, HDF_FILTER)	// Info 835: A zero has been given as left argument to operator '<<'
-emacro(835, O_LARGEFILE)	// Info 835: A zero has been given as left argument to operator '<<'

-emacro(845, HTTPH)	// Info 845: The left argument to operator '&&' is certain to be 0
-esym(773, PCRE2_DATE)	// Expression-like macro '___' not parenthesized

//////////////
// Macros defined differently in each VMOD
// -esym(767, VPFX)	// macro '___' was defined differently in another module
// -esym(767, VARGS)	// macro '___' was defined differently in another module
// -esym(767, VENUM)	// macro '___' was defined differently in another module
//////////////
-efunc(1791, pdiff)	// return last on line
//////////////
-efile(451, "symbol_kind.h")	// No include guard
-efile(451, "config.h")	// No include guard
//////////////
-sem(vca_thread_acct, thread_mono)
-sem(vca_epoll_thread, thread_mono)
-sem(vca_kqueue_thread, thread_mono)
-sem(vca_poll_thread, thread_mono)
-sem(vca_ports_thread, thread_mono)
-sem(exp_timer, thread_mono)
-sem(wrk_herdtimer_thread, thread_mono)
-sem(wrk_herder_thread, thread_mono)

//////////////
// 436 = Apparent preprocessor directive in invocation of macro '___'
-emacro(436, SLTM)

//////////////
+libh netinet/tcp.h
-elib(46)
+libh sys/queue.h
-elib(607)
//////////////

+libh mgt_event.h
-esym(522, mgt_ProcTitle)

-sem(VRT_AddDirector, custodial(3))
-sem(VCP_New, custodial(3))
-sem(vsmw_addseg, custodial(2))
-sem(BAN_Free, custodial(1))
-sem(EXP_Inject, custodial(1))
-sem(HSH_Insert, custodial(3))
-sem(WS_Init, custodial(2))
-sem(http_Setup, custodial(2))
-sem(vfp_esi_end, custodial(2))

-sem(vdi_dns_cache_list_add, custodial(3))

-e717	// do ... while(1) ...
-e850	// for loop index variable '___' whose type category is '___'
	// is modified in body of the for loop that began at '___'

-esym(765, vcc_ProcAction) // could be made static
-esym(759, vcc_ProcAction) // could be moved to module
-esym(714, vcc_ProcAction) // not ref.

-emacro(506, isnan, isfinite)	// constant value boolean
-emacro(736, isfinite)	// loss of precision
-emacro(774, HTTPH)	// always false
-emacro(527, ARGV_ERR)	// unreachable

-e788			// enum value not used in defaulted switch

// cache.h
-emacro(506, INCOMPL) // Constant value Boolean

-esym(525, __builtin_frame_address)	// Not defined
-esym(525, __builtin_return_address)	// Not defined

// cache_vcl.c
-esym(528, vcl_call_method)	// Not referenced
-esym(765, VCL_TEMP_*)
-esym(759, VCL_TEMP_*)

-e441	//  for clause irregularity: loop variable '___' not found in 2nd for expression

// cache_vpi.c
-esym(552, vpi_wrk_len)

// from libvinyl
--emacro((835),VBH_NOIDX)
--emacro((835),O_CLOEXEC)

// Deliberately exported, despite no in-tree users
-esym(759, EXP_Rearm)
-esym(765, EXP_Rearm)

// Review all below this line ///////////////////////////////////////////////

-e713	// 42 Loss of precision (___) (___ to ___)
-e840	// Use of nul character in a string literal (see: vcc_if.c)
-e663	// Suspicious array to pointer conversion
-e778   // Constant expression evaluates to 0 in operation '___'
-e736	// Loss of precision (___) (___ bits to ___ bits)
-e655	// bitwise compatible enums

// cache_session.c
-esym(528, ses_set_attr)	// Not referenced
// cache_vrt_var.c
-esym(528, beresp_filter_fixed) // Not referenced

-esym(714, Lck_DestroyClass)	// Not referenced
-esym(759, HTTP_IterHdrPack)	// Could be moved to module
-esym(759, ObjGetU32)		// Could be moved to module
-esym(759, Lck_DestroyClass)	// Could be moved to module
-esym(765, HTTP_IterHdrPack)	// Could be made static
-esym(765, ObjGetU32)		// Could be made static
-esym(765, Lck_DestroyClass)	// Could be made static
-esym(769, obj_attr::OA__MAX)	// Not referenced
