{{fbdoc item="title" value="__FUNCTION__"}}----
Intrinsic define (macro string) set by the compiler

{{fbdoc item="syntax"}}##
	""__FUNCTION__""
##
{{fbdoc item="desc"}}
	Substituted with the quoted name of the current function block where used.
	
	Its normal use is to report wrong values in debugging.
	
	If ##**""__FUNCTION__""**## is used at the module level, the function name given will be ##"""__FB_MAINPROC__"""## for the main module, or ##"""__FB_MODLEVELPROC__"""## for a different module.

{{fbdoc item="ex"}}
{{fbdoc item="filename" value="examples/manual/defines/function.bas"}}%%(freebasic)
Dim a As Integer

'...

If a < 0 Then '' this shouldn't happen
	Print "Error: a = " & a & " in " & __FILE__ & " (" & __FUNCTION__ & ") line " & __LINE__
End If
%%

%%
Error: a = -32767 in test.bas (__FB_MAINPROC__) line 47
%%

{{fbdoc item="diff"}}
	- Did not exist in QB

{{fbdoc item="see"}}
	- ##[[KeyPgDdfile|__FILE__]]##
	- ##[[KeyPgDdfunctionnq|__FUNCTION_NQ__]]##
	- ##[[KeyPgDdline|__LINE__]]##

{{fbdoc item="back" value="CatPgDddefines|Intrinsic Defines"}}
