Skip to content

Commit 9955360

Browse files
authored
doc: internal IR representation of undefcheck and foreigncall (#41780)
Previously we had an inclusive range that expressed one too many elements. Fixes #41636
1 parent 8364a4c commit 9955360

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

doc/src/devdocs/ast.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,10 @@ These symbols appear in the `head` field of [`Expr`](@ref)s in lowered form.
438438

439439
Yields the caught exception inside a `catch` block, as returned by `jl_current_exception()`.
440440

441+
* `undefcheck`
442+
443+
Temporary node inserted by the compiler and will be processed in `type_lift_pass!`.
444+
441445
* `enter`
442446

443447
Enters an exception handler (`setjmp`). `args[1]` is the label of the catch block to jump to on
@@ -507,11 +511,11 @@ These symbols appear in the `head` field of [`Expr`](@ref)s in lowered form.
507511

508512
The calling convention for the call.
509513

510-
* `args[6:6+length(args[3])]` : arguments
514+
* `args[6:5+length(args[3])]` : arguments
511515

512516
The values for all the arguments (with types of each given in args[3]).
513517

514-
* `args[6+(length(args[3])+1):end]` : gc-roots
518+
* `args[6+length(args[3])+1:end]` : gc-roots
515519

516520
The additional objects that may need to be gc-rooted for the duration of the call.
517521
See [Working with LLVM](@ref Working-with-LLVM) for where these are derived from and how they get handled.

0 commit comments

Comments
 (0)