# guard

Enables the control flow protection mechanism.

## Syntax

Linux: | None

macOS: | None

Windows: | /guard:keyword

## Arguments

keyword | Specifies the the control flow protection mechanism. Possible values are:
cf[-] | Tells the compiler to analyze control flow of valid targets for indirect calls and to insert code to verify the targets at runtime. To explicitly disable this option, specify /guard:cf-.

## Default

OFF | The control flow protection mechanism is disabled.

## Description

This option enables the control flow protection mechanism. It tells the compiler to analyze control flow of valid targets for indirect calls and inserts a call to a checking routine before each indirect call to verify the target of the given indirect call.

The /guard:cf option must be passed to both the compiler and linker.

Code compiled using /guard:cf can be linked to libraries and object files that are not compiled using the option.

This option has been added for Microsoft compatibility. It uses the Microsoft implementation.

## IDE Equivalent

Visual Studio: Code Generation > Control Flow Guard

Eclipse: None

Xcode: None

## Alternate Options

None

Parent topic: Code Generation Options