Compiler Option: -z

Sets miscellaneous or experimental compiler options.

Syntax
	-z < value >

Parameters
	value
		Miscellaneous compiler option.

Description
	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.

	-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.

	-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.

	-z no-thiscall
		Instructs fbc to ignore KeyPgThiscall__Thiscall directives in source files.

	-z no-fastcall
		Instructs fbc to ignore KeyPgFastcall__Fastcall directives in source files.

	-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.

	-z nocmdline
		Instructs fbc to ignore all KeyPgPpcmdlineCmdline directives in source file and 
		take control from the real compiler command line only.

	-z retinflts
		Instructs fbc to enable returning some structures (types) in floating 
		point registers.

	-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).

	-z optabstract
		Instructs fbc not to emit unused pure abstract types.

Version
	* 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.

See also
	* CompilerCmdLineUsing the Command Line

