{{fbdoc item="title" value="Compiler Option: -z"}}----
Sets miscellaneous or experimental compiler options.

{{fbdoc item="syntax"}}##
	**-z** < //value// >
##
{{fbdoc item="param"}}
	##//value//##
		Miscellaneous compiler option.

{{fbdoc item="desc"}}
	The ##-z## compiler option sets miscellaneous, obscure, temporary, or experimental options used by the developers.  There is no guarantee that these options will be supported in future versions of the compiler.
	
	{{fbdoc item="subsect" value="-z gosub-setjmp"}}
		Specifies that the ##setjmp##/##longjmp## implementation of ##[[KeyPgGosub|Gosub]]## should be used even when the GAS backend is used.  By default, ##[[KeyPgGosub|Gosub]]## will be supported in //[[CompilerOptgen|-gen gas]]// using ##CALL##/##RET## assembly instructions and in //[[CompilerOptgen|-gen gcc]]// using ##setjmp##/##longjmp## C runtime functions.
		
	{{fbdoc item="subsect" value="-z valist-as-ptr"}}
		Specifies that the implementation of ##[[KeyPgCvaList|cva_list]]## variable argument lists and macros for variadic procedures should use a normal pointer type if the target supports it.  By default, ##[[KeyPgCvaList|cva_list]]## data types are mapped to gcc's ##""__builtin_va_list""## data type when using //[[CompilerOptgen|-gen gcc]]//.
		
	{{fbdoc item="subsect" value="-z no-thiscall"}}
		Instructs fbc to ignore ##[[KeyPgThiscall|__thiscall]]## directives in source files.
		
	{{fbdoc item="subsect" value="-z no-fastcall"}}
		Instructs fbc to ignore ##[[KeyPgFastcall|__fastcall]]## directives in source files.
		
	{{fbdoc item="subsect" value="-z fbrt"}}
		Instructs fbc to link with the ##libfbrt[mt].a## library instead of the ##libfb[mt].a## library rather than having to copy or move files around or have multiple development directories.
		
	{{fbdoc item="subsect" value="-z nocmdline"}}
		Instructs fbc to ignore all ##[[KeyPgPpcmdline|cmdline]]## directives in source file and take control from the real compiler command line only.
		
	{{fbdoc item="subsect" value="-z retinflts"}}
		Instructs fbc to enable returning some structures (types) in floating point registers.
		
	{{fbdoc item="subsect" value="-z nobuiltins"}}
		Instructs fbc to disable all builtin declarations and definitions except those that are strictly necessary to initialize the compiler to a working state when it can begin to parse user code.  The user code must then supply all of the required declarations and definitions needed by fbc internals to allow compilation of user code to succeed.  Note well that using this option requires knowledge of the internal workings of the compiler.  For experimentation and development this allows declaring and defining nearly all fbc builtins in fb user code.  The actual user code declarations required will depend on the contents of the user code to be compiled.  fbc is expected to throw an error if the required supporting declarations or definitions have not been made before they are required by fbc itself while parsing the user source code (fbc may also crash instead).
		
	{{fbdoc item="subsect" value="-z optabstract"}}
		Instructs fbc not to emit unused pure abstract types.

{{fbdoc item="ver"}}
	- Since fbc 1.20.0: ##optabstract## compiler option
	- Since fbc 1.20.0: ##nobuiltins## compiler option
	- Since fbc 1.10.0: ##retinflts## compiler option
	- Since fbc 1.10.0: ##no-fastcall## compiler option.
	- Since fbc 1.09.0: ##nocmdline## compiler option
	- Since fbc 1.09.0: ##fbrt## compiler option.
	- Since fbc 1.09.0: ##no-thiscall## compiler option.
	- Since fbc 1.08.1: ##valist-as-ptr## compiler option.
	- Since fbc 0.20.0: ##gosub-setjmp## compiler option.

{{fbdoc item="see"}}
	- [[CompilerCmdLine|Using the Command Line]]

{{fbdoc item="back" value="CatPgCompOpt|Compiler Options"}}