Option OPT (Delphi)

From RAD Studio
Jump to: navigation, search

Go Up to Delphi Compiler Directives (List) Index


Type

Switch

Syntax

{$PUSHOPT} or {$POPOPT}

Scope

Local



Remarks

These Delphi compiler directives save and restore the current set of options and warning configurations.

{$PUSHOPT}

{$PUSHOPT} allows you to save all, or a selected subset, of compiler options before including any files that might alter multiple compiler settings or warning configurations.

{$POPOPT}

{$POPOPT} restores compiler options and warnings by removing the most recent set from the stack.

Unbalanced Directives Warnings

In case of a mismatch in the directives' usage, it will issue the following warning:

W1078 {$POPOPT} with no matching {$PUSHOPT} in %s

If at $POPOPT there is more $POPOPT than $PUSHPOPT in a file, this warning will be displayed:

W1079 Previous {$PUSHOPT} on line %ld not restored

The same warning will be produced at the end of the source file (and include file) if there are more $PUSHOPT than $POPOPT in a file.

Eligible Options List

Not all options and settings are eligible for these new directives. Here is the list of the options considered:

Directives Short Forms
{$ALIGN ON/OFF/1/2/4/8/16} {$A+} {$A-} {$A1} {$A2} {$A4} {$A8} {$A16}
{$BOOLEVAL ON/OFF} {$B+} {$B-}
{$ASSERTIONS ON/OFF} {$C+} {$C-}
{$ASSERTIONS ON/OFF} {$C+} {$C-}
{$DEBUGINFO ON/OFF/0/1/2} {$D0} {$D1} {$D2}
{$OLDOBJWARN} {$E+} {$E-}
{$IMPOTEDDATA ON/OFF} {$G+} {$G-}
{$LONGSTRINGS ON/OFF} {$H+} {$H-}
{$IOCHECKS ON/OFF} {$I+} {$I-}
{$WRITEABLECONST ON/OFF} {$J+} {$J-}
{$LOCALSYMBOLS ON/OFF} {$L+} {$L-}
{$TYPEINFO ON/OFF} {$M+} {$M-}
{$OPTIMIZATION ON/OFF} {$O+} {$O-}
{$OPENSTRINGS ON/OFF} {$P+} {$P-}
{$OVERFLOWCHECKS ON/OFF} {$Q+} {$Q-}
{$RANGECHECKS ON/OFF} {$R+} {$R-}
{$STACKCHECKS ON/OFF} {$S+} {$S-}
{$TYPEDADDRESS ON/OFF} {$T+} {$T-}
{$SAFEDIVIDE ON/OFF} {$U+} {$U-}
{$VARSTRINGCHECKS ON/OFF} {$V+} {$V-}
{$STACKFRAMES ON/OFF} {$W+} {$W-}
{$EXTENDEDSYNTAX ON/OFF} {$X+} {$X-}
{$REFERENCEINFO ON/OFF} {$Y+} {$Y-}
{$DEFINITIONINFO ON/OFF} {$YD}
{$MINENUMSIZE 1/2/4} {$Z+} {$Z-} {$Z1} {$Z2} {$Z4}
{$AUTOBOX ON/OFF}
{$FINITEFLOATT ON/OFF}
{$HINTS ON/OFF}
{$IMPLICITBUILD ON/OFF}
{$REALCOMPATIBILITY ON/OFF}
{$UNSAFECODE ON/OFF}
{$METHODINFO ON/OFF}
{$NATIVE_CPP_INTERFACES ON/OFF}
{$SCOPEDENUMS ON/OFF}
{$POINTERMATH ON/OFF}
{$COMPATIBLELITERALS ON/OFF}
{$HIGHCHARUNICODE ON/OFF}
{$OLDTYPELAYOUT ON/OFF}
{$WEAKLINKRTTI ON/OFF}
{$STRONGLINKTYPES ON/OFF}
{$EXCESSPRECISION ON/OFF}
{$EXTENDEDCOMPATIBILITY ON/OFF}
{$ZEROBASEDSTRINGS ON/OFF}
{$LEGACYIFEND ON/OFF}
{$WARN (<ident>|ALL) ON/OFF/DEFAULT/ERROR}
{$CODEALIGN 0/1/2/4/8/16}
{$MAXPAGESIZE <intconst>}
{$DESIGNONLY [ON/OFF]}
{$RUNONLY [ON/OFF]}
{$VARPROPSETTER [ON/OFF]}
{$DUPLICATEENABLE [ON/OFF]}
{$RTTI (EXPLICIT|INHERIT) {(METHOD|FIELD|PROPERTY)(<set const expr: TRttiVisibility>)}
{$INLINE ON/OFF/AUTO}
{$WARNINGS ON/OFF/ERROR}
{$TEXTBLOCK ( NATIVE/CR/LF/CRLF ) [ LANGUAGE ]}