Skip to content

Commit

Permalink
Add documentation for indirect branch tracking flags
Browse files Browse the repository at this point in the history
  • Loading branch information
straight-shoota committed Nov 7, 2024
1 parent d220a95 commit c8a0c9b
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions docs/syntax_and_semantics/compile_time_flags.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,9 @@ Crystal program.
| `without_openssl` | Build without OpenSSL support
| `without_zlib` | Build without Zlib support

### Compiler features
### Language features

These flags enable or disable compiler features when building a Crystal program.
These flags enable or disable language features when building a Crystal program.

| Flag name | Description |
|-----------|-------------|
Expand All @@ -158,6 +158,15 @@ These flags enable or disable compiler features when building a Crystal program.
| `preview_win32_delay_load` | Delay-load all DLLs on Windows; experimental |
| `strict_multi_assign` | Enable strict semantics for [one-to-many assignment](assignment.md#one-to-many-assignment). Introduced in 1.3.0 ([#11145](https://github.com/crystal-lang/crystal/pull/11145), [#11545](https://github.com/crystal-lang/crystal/pull/11545))

### Codegen features

These flags enable or disable codegen features when building a Crystal program.

| Flag name | Description |
|-----------|-------------|
| `cf-protection=branch`, `cf-protection=return`, `cf-protection=full` | Indirect branch tracking for x86 and x86_64. Implicitly set on OpenBSD. Introduced in 1.15.0.
| `branch-protection=bti` | Indirect branch tracking for aarch64. Implicitly set on OpenBSD. Introduced in 1.15.0.

### Compiler build features

These flags enable or disable features when building the Crystal compiler.
Expand Down

0 comments on commit c8a0c9b

Please sign in to comment.