Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C++ (Circle)
CIRCT
Clean
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
Go
Haskell
HLSL
Hook
Hylo
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Nim
Objective-C
Objective-C++
OCaml
OpenCL C
Pascal
Pony
Python
Racket
Ruby
Rust
Snowball
Scala
Solidity
Spice
Swift
LLVM TableGen
Toit
TypeScript Native
V
Vala
Visual Basic
Zig
Javascript
GIMPLE
c source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
6502 cc65 2.17
6502 cc65 2.18
6502 cc65 2.19
6502 cc65 trunk
ARM GCC 10.2.0 (linux)
ARM GCC 10.2.1 (none)
ARM GCC 10.3.0 (linux)
ARM GCC 10.3.1 (2021.07 none)
ARM GCC 10.3.1 (2021.10 none)
ARM GCC 10.5.0
ARM GCC 11.1.0 (linux)
ARM GCC 11.2.0 (linux)
ARM GCC 11.2.1 (none)
ARM GCC 11.3.0 (linux)
ARM GCC 11.4.0
ARM GCC 12.1.0 (linux)
ARM GCC 12.2.0 (linux)
ARM GCC 12.3.0
ARM GCC 13.1.0 (linux)
ARM GCC 13.2.0
ARM GCC 13.2.0 (unknown-eabi)
ARM GCC 4.5.4 (linux)
ARM GCC 4.6.4 (linux)
ARM GCC 5.4 (linux)
ARM GCC 5.4.1 (none)
ARM GCC 6.3.0 (linux)
ARM GCC 6.4.0 (linux)
ARM GCC 7.2.1 (none)
ARM GCC 7.3.0 (linux)
ARM GCC 7.5.0 (linux)
ARM GCC 8.2.0 (WinCE)
ARM GCC 8.2.0 (linux)
ARM GCC 8.3.1 (none)
ARM GCC 8.5.0 (linux)
ARM GCC 9.2.1 (none)
ARM GCC 9.3.0 (linux)
ARM GCC trunk (linux)
ARM msvc v19.0 (WINE)
ARM msvc v19.10 (WINE)
ARM msvc v19.14 (WINE)
ARM64 GCC 10.2.0
ARM64 GCC 10.3.0
ARM64 GCC 10.4.0
ARM64 GCC 10.5.0
ARM64 GCC 11.1.0
ARM64 GCC 11.2.0
ARM64 GCC 11.3.0
ARM64 GCC 11.4.0
ARM64 GCC 12.1.0
ARM64 GCC 12.2.0
ARM64 GCC 12.3.0
ARM64 GCC 13.1.0
ARM64 GCC 13.2.0
ARM64 GCC 5.4
ARM64 GCC 6.3
ARM64 GCC 6.4.0
ARM64 GCC 7.3.0
ARM64 GCC 7.5.0
ARM64 GCC 8.2.0
ARM64 GCC 8.5.0
ARM64 GCC 9.3.0
ARM64 GCC 9.4.0
ARM64 GCC 9.5.0
ARM64 GCC trunk
ARM64 Morello GCC 10.1.0 Alpha 1
ARM64 Morello GCC 10.1.2 Alpha 2
ARM64 msvc v19.14 (WINE)
AVR gcc 10.3.0
AVR gcc 11.1.0
AVR gcc 12.1.0
AVR gcc 12.2.0
AVR gcc 12.3.0
AVR gcc 13.1.0
AVR gcc 13.2.0
AVR gcc 4.5.4
AVR gcc 4.6.4
AVR gcc 5.4.0
AVR gcc 9.2.0
AVR gcc 9.3.0
Arduino Mega (1.8.9)
Arduino Uno (1.8.9)
BPF clang (trunk)
BPF clang 13.0.0
BPF clang 14.0.0
BPF clang 15.0.0
BPF clang 16.0.0
BPF clang 17.0.1
BPF clang 18.1.0
BPF gcc 13.1.0
BPF gcc 13.2.0
BPF gcc trunk
Chibicc 2020-12-07
FRC 2019
FRC 2020
FRC 2023
K1C gcc 7.4
K1C gcc 7.5
KVX ACB 4.1.0 (GCC 7.5.0)
KVX ACB 4.1.0-cd1 (GCC 7.5.0)
KVX ACB 4.10.0 (GCC 10.3.1)
KVX ACB 4.11.1 (GCC 10.3.1)
KVX ACB 4.12.0 (GCC 11.3.0)
KVX ACB 4.2.0 (GCC 7.5.0)
KVX ACB 4.3.0 (GCC 7.5.0)
KVX ACB 4.4.0 (GCC 7.5.0)
KVX ACB 4.6.0 (GCC 9.4.1)
KVX ACB 4.8.0 (GCC 9.4.1)
KVX ACB 4.9.0 (GCC 9.4.1)
LC3 (trunk)
M68K clang (trunk)
M68K gcc 13.1.0
M68K gcc 13.2.0
MRISC32 gcc (trunk)
MSP430 gcc 12.1.0
MSP430 gcc 12.2.0
MSP430 gcc 12.3.0
MSP430 gcc 13.1.0
MSP430 gcc 13.2.0
MSP430 gcc 4.5.3
MSP430 gcc 5.3.0
MSP430 gcc 6.2.1
MinGW clang 14.0.3
MinGW clang 14.0.6
MinGW clang 15.0.7
MinGW clang 16.0.0
MinGW clang 16.0.2
MinGW gcc 11.3.0
MinGW gcc 12.1.0
MinGW gcc 12.2.0
MinGW gcc 13.1.0
POWER64 gcc 11.2.0
POWER64 gcc 12.1.0
POWER64 gcc 12.2.0
POWER64 gcc 12.3.0
POWER64 gcc 13.1.0
POWER64 gcc 13.2.0
POWER64 gcc trunk
RISC-V (32-bits) gcc (trunk)
RISC-V (32-bits) gcc 10.2.0
RISC-V (32-bits) gcc 10.3.0
RISC-V (32-bits) gcc 11.2.0
RISC-V (32-bits) gcc 11.3.0
RISC-V (32-bits) gcc 11.4.0
RISC-V (32-bits) gcc 12.1.0
RISC-V (32-bits) gcc 12.2.0
RISC-V (32-bits) gcc 12.3.0
RISC-V (32-bits) gcc 13.1.0
RISC-V (32-bits) gcc 13.2.0
RISC-V (32-bits) gcc 8.2.0
RISC-V (32-bits) gcc 8.5.0
RISC-V (32-bits) gcc 9.4.0
RISC-V (64-bits) gcc (trunk)
RISC-V (64-bits) gcc 10.2.0
RISC-V (64-bits) gcc 10.3.0
RISC-V (64-bits) gcc 11.2.0
RISC-V (64-bits) gcc 11.3.0
RISC-V (64-bits) gcc 11.4.0
RISC-V (64-bits) gcc 12.1.0
RISC-V (64-bits) gcc 12.2.0
RISC-V (64-bits) gcc 12.3.0
RISC-V (64-bits) gcc 13.1.0
RISC-V (64-bits) gcc 13.2.0
RISC-V (64-bits) gcc 8.2.0
RISC-V (64-bits) gcc 8.5.0
RISC-V (64-bits) gcc 9.4.0
RISC-V rv32gc clang (trunk)
RISC-V rv32gc clang 10.0.0
RISC-V rv32gc clang 10.0.1
RISC-V rv32gc clang 11.0.0
RISC-V rv32gc clang 11.0.1
RISC-V rv32gc clang 12.0.0
RISC-V rv32gc clang 12.0.1
RISC-V rv32gc clang 13.0.0
RISC-V rv32gc clang 13.0.1
RISC-V rv32gc clang 14.0.0
RISC-V rv32gc clang 15.0.0
RISC-V rv32gc clang 16.0.0
RISC-V rv32gc clang 17.0.1
RISC-V rv32gc clang 18.1.0
RISC-V rv32gc clang 9.0.0
RISC-V rv32gc clang 9.0.1
RISC-V rv64gc clang (trunk)
RISC-V rv64gc clang 10.0.0
RISC-V rv64gc clang 10.0.1
RISC-V rv64gc clang 11.0.0
RISC-V rv64gc clang 11.0.1
RISC-V rv64gc clang 12.0.0
RISC-V rv64gc clang 12.0.1
RISC-V rv64gc clang 13.0.0
RISC-V rv64gc clang 13.0.1
RISC-V rv64gc clang 14.0.0
RISC-V rv64gc clang 15.0.0
RISC-V rv64gc clang 16.0.0
RISC-V rv64gc clang 17.0.1
RISC-V rv64gc clang 18.1.0
RISC-V rv64gc clang 9.0.0
RISC-V rv64gc clang 9.0.1
Raspbian Buster
Raspbian Stretch
SDCC 4.0.0
SDCC 4.1.0
SDCC 4.2.0
SDCC 4.3.0
SPARC LEON gcc 12.2.0
SPARC LEON gcc 12.3.0
SPARC LEON gcc 13.1.0
SPARC LEON gcc 13.2.0
SPARC gcc 12.2.0
SPARC gcc 12.3.0
SPARC gcc 13.1.0
SPARC gcc 13.2.0
SPARC64 gcc 12.2.0
SPARC64 gcc 12.3.0
SPARC64 gcc 13.1.0
SPARC64 gcc 13.2.0
TCC (trunk)
TCC 0.9.27
TI C6x gcc 12.2.0
TI C6x gcc 12.3.0
TI C6x gcc 13.1.0
TI C6x gcc 13.2.0
TI CL430 21.6.1
VAX gcc NetBSDELF 10.4.0
VAX gcc NetBSDELF 10.5.0 (Nov 15 03:50:22 2023)
WebAssembly clang (trunk)
Xtensa ESP32 gcc 11.2.0 (2022r1)
Xtensa ESP32 gcc 12.2.0 (20230208)
Xtensa ESP32 gcc 8.2.0 (2019r2)
Xtensa ESP32 gcc 8.2.0 (2020r1)
Xtensa ESP32 gcc 8.2.0 (2020r2)
Xtensa ESP32 gcc 8.4.0 (2020r3)
Xtensa ESP32 gcc 8.4.0 (2021r1)
Xtensa ESP32 gcc 8.4.0 (2021r2)
Xtensa ESP32-S2 gcc 11.2.0 (2022r1)
Xtensa ESP32-S2 gcc 12.2.0 (20230208)
Xtensa ESP32-S2 gcc 8.2.0 (2019r2)
Xtensa ESP32-S2 gcc 8.2.0 (2020r1)
Xtensa ESP32-S2 gcc 8.2.0 (2020r2)
Xtensa ESP32-S2 gcc 8.4.0 (2020r3)
Xtensa ESP32-S2 gcc 8.4.0 (2021r1)
Xtensa ESP32-S2 gcc 8.4.0 (2021r2)
Xtensa ESP32-S3 gcc 11.2.0 (2022r1)
Xtensa ESP32-S3 gcc 12.2.0 (20230208)
Xtensa ESP32-S3 gcc 8.4.0 (2020r3)
Xtensa ESP32-S3 gcc 8.4.0 (2021r1)
Xtensa ESP32-S3 gcc 8.4.0 (2021r2)
arm64 msvc v19.28 VS16.9
arm64 msvc v19.29 VS16.10
arm64 msvc v19.29 VS16.11
arm64 msvc v19.30
arm64 msvc v19.31
arm64 msvc v19.32
arm64 msvc v19.33
arm64 msvc v19.34
arm64 msvc v19.35
arm64 msvc v19.36
arm64 msvc v19.37
arm64 msvc v19.38
arm64 msvc v19.latest
armv7-a clang (trunk)
armv7-a clang 10.0.0
armv7-a clang 10.0.1
armv7-a clang 11.0.0
armv7-a clang 11.0.1
armv7-a clang 12.0.0
armv7-a clang 12.0.1
armv7-a clang 13.0.0
armv7-a clang 13.0.1
armv7-a clang 14.0.0
armv7-a clang 15.0.0
armv7-a clang 16.0.0
armv7-a clang 17.0.1
armv7-a clang 18.1.0
armv7-a clang 9.0.0
armv7-a clang 9.0.1
armv8-a clang (all architectural features, trunk)
armv8-a clang (trunk)
armv8-a clang 10.0.0
armv8-a clang 10.0.1
armv8-a clang 11.0.0
armv8-a clang 11.0.1
armv8-a clang 12.0.0
armv8-a clang 12.0.1
armv8-a clang 13.0.0
armv8-a clang 13.0.1
armv8-a clang 14.0.0
armv8-a clang 15.0.0
armv8-a clang 16.0.0
armv8-a clang 17.0.1
armv8-a clang 18.1.0
armv8-a clang 9.0.0
armv8-a clang 9.0.1
clang 12 for DPU (rel 2023.2.0)
cproc-master
llvm-mos commander X16
llvm-mos commodore 64
llvm-mos mega65
llvm-mos nes-cnrom
llvm-mos nes-mmc1
llvm-mos nes-mmc3
llvm-mos nes-nrom
llvm-mos osi-c1p
loongarch64 gcc 12.2.0
loongarch64 gcc 12.3.0
loongarch64 gcc 13.1.0
loongarch64 gcc 13.2.0
mips (el) gcc 12.1.0
mips (el) gcc 12.2.0
mips (el) gcc 12.3.0
mips (el) gcc 13.1.0
mips (el) gcc 13.2.0
mips (el) gcc 4.9.4
mips (el) gcc 5.4
mips (el) gcc 5.5.0
mips (el) gcc 9.5.0
mips clang 13.0.0
mips clang 14.0.0
mips clang 15.0.0
mips clang 16.0.0
mips clang 17.0.1
mips clang 18.1.0
mips gcc 11.2.0
mips gcc 12.1.0
mips gcc 12.2.0
mips gcc 12.3.0
mips gcc 13.1.0
mips gcc 13.2.0
mips gcc 4.9.4
mips gcc 5.4
mips gcc 5.5.0
mips gcc 9.3.0 (codescape)
mips gcc 9.5.0
mips64 (el) gcc 12.1.0
mips64 (el) gcc 12.2.0
mips64 (el) gcc 12.3.0
mips64 (el) gcc 13.1.0
mips64 (el) gcc 13.2.0
mips64 (el) gcc 4.9.4
mips64 (el) gcc 5.4.0
mips64 (el) gcc 5.5.0
mips64 (el) gcc 9.5.0
mips64 clang 13.0.0
mips64 clang 14.0.0
mips64 clang 15.0.0
mips64 clang 16.0.0
mips64 clang 17.0.1
mips64 clang 18.1.0
mips64 gcc 11.2.0
mips64 gcc 12.1.0
mips64 gcc 12.2.0
mips64 gcc 12.3.0
mips64 gcc 13.1.0
mips64 gcc 13.2.0
mips64 gcc 4.9.4
mips64 gcc 5.4
mips64 gcc 5.5.0
mips64 gcc 9.5.0
mips64el clang 13.0.0
mips64el clang 14.0.0
mips64el clang 15.0.0
mips64el clang 16.0.0
mips64el clang 17.0.1
mips64el clang 18.1.0
mipsel clang 13.0.0
mipsel clang 14.0.0
mipsel clang 15.0.0
mipsel clang 16.0.0
mipsel clang 17.0.1
mipsel clang 18.1.0
movfuscator (trunk)
nanoMIPS gcc 6.3.0
power gcc 11.2.0
power gcc 12.1.0
power gcc 12.2.0
power gcc 12.3.0
power gcc 13.1.0
power gcc 13.2.0
power gcc 4.8.5
power64 AT12.0 (gcc8)
power64 AT13.0 (gcc9)
power64le AT12.0 (gcc8)
power64le AT13.0 (gcc9)
power64le clang (trunk)
power64le gcc 11.2.0
power64le gcc 12.1.0
power64le gcc 12.2.0
power64le gcc 12.3.0
power64le gcc 13.1.0
power64le gcc 13.2.0
power64le gcc 6.3.0
power64le gcc trunk
powerpc64 clang (trunk)
ppci 0.5.5
s390x gcc 11.2.0
s390x gcc 12.1.0
s390x gcc 12.2.0
s390x gcc 12.3.0
s390x gcc 13.1.0
s390x gcc 13.2.0
sh gcc 12.2.0
sh gcc 12.3.0
sh gcc 13.1.0
sh gcc 13.2.0
sh gcc 4.9.4
sh gcc 9.5.0
vast (trunk)
x64 msvc v19.0 (WINE)
x64 msvc v19.10 (WINE)
x64 msvc v19.14
x64 msvc v19.14 (WINE)
x64 msvc v19.15
x64 msvc v19.16
x64 msvc v19.20
x64 msvc v19.21
x64 msvc v19.22
x64 msvc v19.23
x64 msvc v19.24
x64 msvc v19.25
x64 msvc v19.26
x64 msvc v19.27
x64 msvc v19.28
x64 msvc v19.28 VS16.9
x64 msvc v19.29 VS16.10
x64 msvc v19.29 VS16.11
x64 msvc v19.30
x64 msvc v19.31
x64 msvc v19.32
x64 msvc v19.33
x64 msvc v19.34
x64 msvc v19.35
x64 msvc v19.36
x64 msvc v19.37
x64 msvc v19.38
x64 msvc v19.latest
x86 CompCert 3.10
x86 CompCert 3.11
x86 CompCert 3.12
x86 CompCert 3.9
x86 gcc 1.27
x86 msvc v19.0 (WINE)
x86 msvc v19.10 (WINE)
x86 msvc v19.14
x86 msvc v19.14 (WINE)
x86 msvc v19.15
x86 msvc v19.16
x86 msvc v19.20
x86 msvc v19.21
x86 msvc v19.22
x86 msvc v19.23
x86 msvc v19.24
x86 msvc v19.25
x86 msvc v19.26
x86 msvc v19.27
x86 msvc v19.28
x86 msvc v19.28 VS16.9
x86 msvc v19.29 VS16.10
x86 msvc v19.29 VS16.11
x86 msvc v19.30
x86 msvc v19.31
x86 msvc v19.32
x86 msvc v19.33
x86 msvc v19.34
x86 msvc v19.35
x86 msvc v19.36
x86 msvc v19.37
x86 msvc v19.38
x86 msvc v19.latest
x86 tendra (trunk)
x86-64 clang (assertions trunk)
x86-64 clang (thephd.dev)
x86-64 clang (trunk)
x86-64 clang (widberg)
x86-64 clang 10.0.0
x86-64 clang 10.0.1
x86-64 clang 11.0.0
x86-64 clang 11.0.1
x86-64 clang 12.0.0
x86-64 clang 12.0.1
x86-64 clang 13.0.0
x86-64 clang 13.0.1
x86-64 clang 14.0.0
x86-64 clang 15.0.0
x86-64 clang 16.0.0
x86-64 clang 17.0.1
x86-64 clang 18.1.0
x86-64 clang 3.0.0
x86-64 clang 3.1
x86-64 clang 3.2
x86-64 clang 3.3
x86-64 clang 3.4.1
x86-64 clang 3.5
x86-64 clang 3.5.1
x86-64 clang 3.5.2
x86-64 clang 3.6
x86-64 clang 3.7
x86-64 clang 3.7.1
x86-64 clang 3.8
x86-64 clang 3.8.1
x86-64 clang 3.9.0
x86-64 clang 3.9.1
x86-64 clang 4.0.0
x86-64 clang 4.0.1
x86-64 clang 5.0.0
x86-64 clang 5.0.1
x86-64 clang 5.0.2
x86-64 clang 6.0.0
x86-64 clang 6.0.1
x86-64 clang 7.0.0
x86-64 clang 7.0.1
x86-64 clang 7.1.0
x86-64 clang 8.0.0
x86-64 clang 8.0.1
x86-64 clang 9.0.0
x86-64 clang 9.0.1
x86-64 gcc (trunk)
x86-64 gcc 10.1
x86-64 gcc 10.2
x86-64 gcc 10.3
x86-64 gcc 10.4
x86-64 gcc 10.5
x86-64 gcc 11.1
x86-64 gcc 11.2
x86-64 gcc 11.3
x86-64 gcc 11.4
x86-64 gcc 12.1
x86-64 gcc 12.2
x86-64 gcc 12.3
x86-64 gcc 13.1
x86-64 gcc 13.2
x86-64 gcc 4.1.2
x86-64 gcc 4.4.7
x86-64 gcc 4.5.3
x86-64 gcc 4.6.4
x86-64 gcc 4.7.1
x86-64 gcc 4.7.2
x86-64 gcc 4.7.3
x86-64 gcc 4.7.4
x86-64 gcc 4.8.1
x86-64 gcc 4.8.2
x86-64 gcc 4.8.3
x86-64 gcc 4.8.4
x86-64 gcc 4.8.5
x86-64 gcc 4.9.0
x86-64 gcc 4.9.1
x86-64 gcc 4.9.2
x86-64 gcc 4.9.3
x86-64 gcc 4.9.4
x86-64 gcc 5.1
x86-64 gcc 5.2
x86-64 gcc 5.3
x86-64 gcc 5.4
x86-64 gcc 6.1
x86-64 gcc 6.2
x86-64 gcc 6.3
x86-64 gcc 7.1
x86-64 gcc 7.2
x86-64 gcc 7.3
x86-64 gcc 7.4
x86-64 gcc 7.5
x86-64 gcc 8.1
x86-64 gcc 8.2
x86-64 gcc 8.3
x86-64 gcc 8.4
x86-64 gcc 8.5
x86-64 gcc 9.1
x86-64 gcc 9.2
x86-64 gcc 9.3
x86-64 gcc 9.4
x86-64 gcc 9.5
x86-64 icc 13.0.1
x86-64 icc 16.0.3
x86-64 icc 17.0.0
x86-64 icc 18.0.0
x86-64 icc 19.0.0
x86-64 icc 19.0.1
x86-64 icc 2021.1.2
x86-64 icc 2021.10.0
x86-64 icc 2021.2.0
x86-64 icc 2021.3.0
x86-64 icc 2021.4.0
x86-64 icc 2021.5.0
x86-64 icc 2021.6.0
x86-64 icc 2021.7.0
x86-64 icc 2021.7.1
x86-64 icc 2021.8.0
x86-64 icc 2021.9.0
x86-64 icx (latest)
x86-64 icx 2021.1.2
x86-64 icx 2021.2.0
x86-64 icx 2021.3.0
x86-64 icx 2021.4.0
x86-64 icx 2022.0.0
x86-64 icx 2022.1.0
x86-64 icx 2022.2.0
x86-64 icx 2022.2.1
x86-64 icx 2023.0.0
x86-64 icx 2023.1.0
x86-64 icx 2024.0.0
x86_64 CompCert 3.10
x86_64 CompCert 3.11
x86_64 CompCert 3.12
x86_64 CompCert 3.9
z88dk 2.2
zig cc 0.10.0
zig cc 0.11.0
zig cc 0.12.0
zig cc 0.6.0
zig cc 0.7.0
zig cc 0.7.1
zig cc 0.8.0
zig cc 0.9.0
zig cc trunk
Options
Source code
#include <stdint.h> #include <stddef.h> #pragma clang diagnostic ignored "-Wparentheses-equality" #pragma clang diagnostic ignored "-Wincompatible-library-redeclaration" #pragma GCC diagnostic ignored "-Wbuiltin-declaration-mismatch" #pragma clang diagnostic ignored "-Wunused-value" typedef struct _AL5slice0 _AL5slice0; typedef const uint8_t *_AL7uint8_t1; typedef struct _AL5slice6 _AL5slice6; typedef uint8_t *_AL7uint8_t7; typedef struct _AL6Result10 _AL6Result10; typedef void *_AL4void11; typedef struct _AL6Option18 _AL6Option18; typedef struct _AL3dyn19 _AL3dyn19; typedef const void *_AL4void20; typedef void (*_AL021)(); typedef const _AL021 *_AL022; typedef struct _AL13SliceIterator23 _AL13SliceIterator23; typedef _AL13SliceIterator23 *_AL13SliceIterator24; typedef const int32_t *_AL7int32_t27; typedef struct _AL6Option31 _AL6Option31; typedef struct _AL14RangeInclusive34 _AL14RangeInclusive34; typedef _AL14RangeInclusive34 *_AL14RangeInclusive35; typedef const void *_AL4void42; typedef struct _AL045 _AL045; typedef _AL045 *_AL046; typedef struct _AL050 _AL050; typedef struct _AL6Option51 _AL6Option51; typedef void *_AL4void52; typedef struct _AL9PanicInfo53 _AL9PanicInfo53; typedef const _AL9PanicInfo53 *_AL9PanicInfo54; typedef void (*_AL055)(_AL4void52, _AL9PanicInfo54); typedef struct _AL056 _AL056; typedef struct _AL5slice57 _AL5slice57; typedef const _AL3dyn19 *_AL3dyn58; typedef const _AL6Result10 *_AL6Result62; typedef const _AL5slice0 *_AL5slice70; typedef struct _AL9RangeFrom74 _AL9RangeFrom74; typedef struct _AL14FilterIterator82 _AL14FilterIterator82; typedef struct _AL11MapIterator96 _AL11MapIterator96; typedef _AL11MapIterator96 *_AL11MapIterator97; typedef _AL14FilterIterator82 *_AL14FilterIterator108; typedef const _AL6Option31 *_AL6Option123; typedef struct _AL7uint8_t127 _AL7uint8_t127; typedef _AL7uint8_t127 *_AL7uint8_t128; typedef const _AL6Option51 *_AL6Option141; typedef _Bool *_AL5_Bool145; typedef struct _AL3dyn184 _AL3dyn184; typedef _AL3dyn19 *_AL3dyn187; typedef _AL3dyn184 *_AL3dyn188; typedef _AL5slice0 *_AL5slice189; typedef void *_AL4void190; typedef struct _AL3dyn202 _AL3dyn202; typedef _AL3dyn202 *_AL3dyn205; typedef _AL6Result10 *_AL6Result207; typedef _AL021 *_AL0211; typedef _AL6Result10 (*_AL0219)(_AL4void20, _AL4void11); typedef _AL6Option31 *_AL6Option222; typedef _AL6Option51 *_AL6Option267; typedef struct _AL3dyn273 _AL3dyn273; typedef _AL3dyn273 *_AL3dyn278; typedef void (*_AL0296)(); typedef _AL9PanicInfo53 *_AL9PanicInfo297; struct _AL3dyn19 { _AL4void20 _AL0209; _AL022 _AL0210; }; struct _AL11MapIterator96 { _AL14FilterIterator108 _AL0253; }; struct _AL056 { _AL4void52 _0; _AL055 _1; }; struct _AL050 { _AL021 __data[1]; }; struct _AL6Option31 { _Bool _AL0194; uint64_t _AL0195; }; struct _AL9RangeFrom74 { size_t _AL0223; }; struct _AL5slice57 { _AL3dyn58 _AL0181; size_t _AL0182; }; struct _AL13SliceIterator23 { _AL5slice57 _AL0192; }; struct _AL3dyn202 { _AL3dyn19 __data[1]; }; struct _AL045 { uint64_t _AL0212; }; struct _AL14FilterIterator82 { _AL14RangeInclusive35 _AL0226; _AL045 _AL0227; }; struct _AL7uint8_t127 { uint8_t __data[128]; }; struct _AL5slice0 { _AL7uint8_t1 _AL0181; size_t _AL0182; }; struct _AL9PanicInfo53 { _AL5slice0 _AL0279; int32_t _AL0280; int32_t _AL0281; _AL5slice57 _AL0282; }; struct _AL6Option51 { _Bool _AL0194; _AL056 _AL0195; }; struct _AL6Option18 { _Bool _AL0194; _AL3dyn19 _AL0195; }; struct _AL14RangeInclusive34 { uint64_t _AL0198; uint64_t _AL0199; _Bool _AL0200; }; struct _AL3dyn273 { _AL3dyn19 __data[7]; }; struct _AL3dyn184 { _AL3dyn19 __data[2]; }; struct _AL5slice6 { _AL7uint8_t7 _AL0181; size_t _AL0182; }; struct _AL6Result10 { _Bool _AL0221; }; __attribute__((always_inline)) inline static _AL5slice0 _AL8from_raw2(_AL7uint8_t1 _AL03, size_t _AL04); _Noreturn __attribute__((cold)) __attribute__((noinline)) static void _AL16unwrap_panic_err5(); __attribute__((always_inline)) inline static size_t _AL3len8(_AL5slice6 _AL09); static _AL6Result10 _AL10write_char12(_AL4void11 _AL013, uint8_t _AL014); __attribute__((always_inline)) inline static _AL7uint8_t7 _AL11slice_index15(_AL5slice6 _AL016, size_t _AL017); __attribute__((always_inline)) inline static _AL6Option18 _AL4next25(_AL13SliceIterator24 _AL026); inline static _AL6Result10 _AL3fmt28(_AL7int32_t27 _AL029, _AL4void11 _AL030); __attribute__((always_inline)) inline static _AL6Option31 _AL4none32(); __attribute__((always_inline)) inline static _AL3dyn19 _AL13uninitialized33(); __attribute__((always_inline)) inline static _AL6Option31 _AL4next36(_AL14RangeInclusive35 _AL037); _Noreturn __attribute__((cold)) __attribute__((noinline)) static void _AL12unwrap_panic38(); __attribute__((always_inline)) inline static _AL6Option18 _AL4none39(); inline static void _AL10unwrap_err40(_AL6Result10 _AL041); __attribute__((always_inline)) inline static _AL3dyn19 _AL7dyn_new43(_AL4void42 _AL044); static _Bool _AL047(_AL046 _AL048, uint64_t _AL049); static _AL050 _AL6VTABLE292; static __thread _AL6Option51 _AL10PANIC_HOOK164; static _AL6Result10 _AL9write_fmt59(_AL5slice57 _AL060, _AL4void11 _AL061); __attribute__((always_inline)) inline static _Bool _AL6is_err63(_AL6Result62 _AL064); __attribute__((always_inline)) inline static uint64_t _AL6unwrap65(_AL6Option31 _AL066); static uint64_t _AL9iter_plus67(uint64_t _AL068, uint64_t _AL069); static _AL050 _AL6VTABLE336; static _AL6Result10 _AL3fmt71(_AL5slice70 _AL072, _AL4void11 _AL073); __attribute__((always_inline)) inline static _AL5slice6 _AL17slice_range_index75(_AL5slice6 _AL076, _AL9RangeFrom74 _AL077); static __thread _Bool _AL9PANICKING149; static _AL050 _AL6VTABLE250; __attribute__((always_inline)) inline static _AL9RangeFrom74 _AL3new78(size_t _AL079); static _AL6Option31 _AL3map80(_AL6Option31 _AL081); static _AL14FilterIterator82 _AL6filter83(_AL14RangeInclusive35 _AL084, _AL045 _AL085); __attribute__((always_inline)) inline static _AL6Option31 _AL4some86(uint64_t _AL087); static _AL6Result10 _AL3fmt88(_AL4void42 _AL089, _AL4void11 _AL090); static _AL6Result10 _AL14format_integer91(int32_t _AL092, uint16_t _AL093, size_t _AL094, _AL4void11 _AL095); static uint64_t _AL6reduce98(_AL11MapIterator97 _AL099, uint64_t _AL0100); __attribute__((always_inline)) inline static _AL4void20 _AL8dyn_data101(_AL3dyn19 _AL0102); static uint64_t _AL0103(uint64_t _AL0104); uint64_t sum_of_mod_n(uint64_t _AL0105, uint64_t _AL0106); __attribute__((always_inline)) inline static _AL5slice57 _AL8from_raw107(_AL3dyn58 _AL03, size_t _AL04); static _AL11MapIterator96 _AL3map109(_AL14FilterIterator108 _AL0110); inline static uint32_t _AL12widening_abs111(int32_t _AL0112); static _AL3dyn19 _AL10format_arg113(_AL4void42 _AL0114); __attribute__((always_inline)) inline static _AL7uint8_t1 _AL11slice_index115(_AL5slice0 _AL016, size_t _AL017); static _AL6Option31 _AL4next116(_AL14FilterIterator108 _AL0117); __attribute__((always_inline)) inline static _Bool _AL5is_ok118(_AL6Result62 _AL0119); __attribute__((always_inline)) inline static _AL3dyn19 _AL7dyn_new120(_AL5slice70 _AL044); static uint64_t _AL3sum121(_AL11MapIterator97 _AL0122); __attribute__((always_inline)) inline static _Bool _AL7is_some124(_AL6Option123 _AL0125); __attribute__((always_inline)) inline static _AL6Result10 _AL2ok126(); __attribute__((always_inline)) inline static _AL5slice6 _AL12as_slice_mut129(_AL7uint8_t128 _AL0130); __attribute__((always_inline)) inline static _AL5slice0 _AL18slice_const_coerce131(_AL5slice6 _AL0132); __attribute__((always_inline)) inline static _AL021 _AL16dyn_vtable_index133(_AL3dyn19 _AL0134, size_t _AL0135); ptrdiff_t write(int32_t _AL0136, _AL4void20 _AL0137, size_t _AL0138); __attribute__((constructor)) static void _AL0139(); __attribute__((always_inline)) inline static uint64_t _AL13uninitialized140(); __attribute__((always_inline)) inline static _Bool _AL7is_some142(_AL6Option141 _AL0125); inline static void _AL6unwrap143(_AL6Result10 _AL0144); static void _AL4swap146(_AL5_Bool145 _AL0147, _AL5_Bool145 _AL0148); __attribute__((always_inline)) inline static _AL6Result10 _AL3err149(); __attribute__((always_inline)) inline static _AL056 _AL6unwrap150(_AL6Option51 _AL066); static _Bool _AL7replace151(_AL5_Bool145 _AL0152, _Bool _AL0153); __attribute__((always_inline)) inline static size_t _AL3len154(_AL5slice57 _AL09); __attribute__((always_inline)) inline static _AL5slice6 _AL8from_raw155(_AL7uint8_t7 _AL03, size_t _AL04); __attribute__((always_inline)) inline static size_t _AL3len156(_AL5slice0 _AL09); static _AL6Result10 _AL19print_panic_message157(_AL9PanicInfo54 _AL0158); __attribute__((always_inline)) inline static _AL13SliceIterator23 _AL4iter159(_AL5slice57 _AL0160); static _AL3dyn19 _AL10format_arg161(_AL5slice70 _AL0114); _Noreturn __attribute__((cold)) __attribute__((noinline)) static void _AL15unwrap_panic_ok162(); __attribute__((always_inline)) inline static _AL3dyn19 _AL7dyn_new163(_AL7int32_t27 _AL044); _Noreturn void abort(); __attribute__((always_inline)) inline static _AL6Option18 _AL4some164(_AL3dyn19 _AL087); static void _AL3new165(); static _AL3dyn19 _AL10format_arg166(_AL7int32_t27 _AL0114); __attribute__((always_inline)) inline static _AL14RangeInclusive34 _AL3new167(uint64_t _AL0168, uint64_t _AL0169); _Noreturn __attribute__((cold)) __attribute__((noinline)) static void _AL10panic_impl170(_AL5slice0 _AL0171, int32_t _AL0172, int32_t _AL0173, _AL5slice57 _AL0174); static _AL6Result10 _AL9write_str175(_AL4void11 _AL0176, _AL5slice0 _AL0177); static _AL6Option31 _AL4next178(_AL11MapIterator97 _AL0179); __attribute__((always_inline)) inline static _AL5slice0 _AL8from_raw2(_AL7uint8_t1 _AL03, size_t _AL04){ _AL5slice0 _AL0180; _AL0180._AL0181=_AL03; _AL0180._AL0182=_AL04; return _AL0180; } _Noreturn __attribute__((cold)) __attribute__((noinline)) static void _AL16unwrap_panic_err5(){ _AL5slice0 _AL0183; _AL3dyn184 _AL0185; _AL3dyn184 _AL0186; _AL10panic_impl170(_AL8from_raw2((const uint8_t*)"./sysroot/std/result.alu", ((size_t)24ULL)), ((int32_t)424ULL), ((int32_t)13ULL), _AL8from_raw107((&(*__extension__({ _AL0186=__extension__({ _AL0185.__data[((size_t)0ULL)]=_AL10format_arg161(__extension__({ _AL0183=_AL8from_raw2((const uint8_t*)"unwrap on an err value: ", ((size_t)24ULL)); (&_AL0183); })); _AL0185.__data[((size_t)1ULL)]=_AL10format_arg113(((_AL4void190)0ULL)); _AL0185; }); (&_AL0186); })).__data[((size_t)0ULL)]), ((size_t)2ULL))); } __attribute__((always_inline)) inline static size_t _AL3len8(_AL5slice6 _AL09){ return _AL09._AL0182; } static _AL6Result10 _AL10write_char12(_AL4void11 _AL013, uint8_t _AL014){ return _AL9write_str175(_AL013, _AL18slice_const_coerce131(_AL8from_raw155((&_AL014), ((size_t)1ULL)))); } __attribute__((always_inline)) inline static _AL7uint8_t7 _AL11slice_index15(_AL5slice6 _AL016, size_t _AL017){ return (_AL016._AL0181+_AL017); } __attribute__((always_inline)) inline static _AL6Option18 _AL4next25(_AL13SliceIterator24 _AL026){ _AL6Option18 _AL0191; return ((_AL3len154((*_AL026)._AL0192)>((size_t)0ULL))?__extension__({ _AL0191=_AL4some164((*(*_AL026)._AL0192._AL0181)); (*_AL026)._AL0192._AL0181=((*_AL026)._AL0192._AL0181+((ptrdiff_t)1ULL)); (*_AL026)._AL0192._AL0182-=((size_t)1ULL); _AL0191; }):_AL4none39()); } inline static _AL6Result10 _AL3fmt28(_AL7int32_t27 _AL029, _AL4void11 _AL030){ return _AL14format_integer91((*_AL029), ((uint16_t)10ULL), ((size_t)0ULL), _AL030); } __attribute__((always_inline)) inline static _AL6Option31 _AL4none32(){ _AL6Option31 _AL0193; _AL0193._AL0194=0; _AL0193._AL0195=_AL13uninitialized140(); return _AL0193; } __attribute__((always_inline)) inline static _AL3dyn19 _AL13uninitialized33(){ _AL3dyn19 _AL0196; return _AL0196; } __attribute__((always_inline)) inline static _AL6Option31 _AL4next36(_AL14RangeInclusive35 _AL037){ uint64_t _AL0197; return ((((*_AL037)._AL0198<=(*_AL037)._AL0199)&&(!(*_AL037)._AL0200))?__extension__({ _AL0197=(*_AL037)._AL0198; if (((*_AL037)._AL0198==(*_AL037)._AL0199)) { (*_AL037)._AL0200=1; ; } else { (*_AL037)._AL0198+=((uint64_t)1ULL); ; }; _AL4some86(_AL0197); }):_AL4none32()); } _Noreturn __attribute__((cold)) __attribute__((noinline)) static void _AL12unwrap_panic38(){ _AL5slice0 _AL0201; _AL3dyn202 _AL0203; _AL3dyn202 _AL0204; _AL10panic_impl170(_AL8from_raw2((const uint8_t*)"./sysroot/std/option.alu", ((size_t)24ULL)), ((int32_t)506ULL), ((int32_t)9ULL), _AL8from_raw107((&(*__extension__({ _AL0204=__extension__({ _AL0203.__data[((size_t)0ULL)]=_AL10format_arg161(__extension__({ _AL0201=_AL8from_raw2((const uint8_t*)"called `Option::unwrap()` on a `None` value", ((size_t)43ULL)); (&_AL0201); })); _AL0203; }); (&_AL0204); })).__data[((size_t)0ULL)]), ((size_t)1ULL))); } __attribute__((always_inline)) inline static _AL6Option18 _AL4none39(){ _AL6Option18 _AL0206; _AL0206._AL0194=0; _AL0206._AL0195=_AL13uninitialized33(); return _AL0206; } inline static void _AL10unwrap_err40(_AL6Result10 _AL041){ if (_AL6is_err63((&_AL041))) { ; } else { _AL15unwrap_panic_ok162(); }; return ; } __attribute__((always_inline)) inline static _AL3dyn19 _AL7dyn_new43(_AL4void42 _AL044){ _AL3dyn19 _AL0208; _AL0208._AL0209=((_AL4void20)_AL044); _AL0208._AL0210=(&_AL6VTABLE292.__data[((size_t)0ULL)]); return _AL0208; } static _Bool _AL047(_AL046 _AL048, uint64_t _AL049){ return ((_AL049%(*_AL048)._AL0212)==((uint64_t)0ULL)); } static _AL6Result10 _AL9write_fmt59(_AL5slice57 _AL060, _AL4void11 _AL061){ _AL13SliceIterator23 _AL0213; _AL6Option18 _AL0214; _AL3dyn19 _AL0215; _AL3dyn19 _AL0216; _AL6Result10 _AL0217; _AL0213=_AL4iter159(_AL060); _AL0218: ; _AL0214=_AL4next25((&_AL0213)); if (_AL0214._AL0194) { _AL0215=_AL0214._AL0195; _AL0217=__extension__({ _AL0216=_AL0215; ((_AL0219)_AL16dyn_vtable_index133(_AL0216, ((size_t)0ULL)))(_AL8dyn_data101(_AL0216), _AL061); }); if (_AL5is_ok118((&_AL0217))) { _AL6unwrap143(_AL0217); } else { return __extension__({ _AL10unwrap_err40(_AL0217); _AL3err149(); }); }; ;; } else { goto _AL0220; }; goto _AL0218; _AL0220: ; ; return _AL2ok126(); } __attribute__((always_inline)) inline static _Bool _AL6is_err63(_AL6Result62 _AL064){ return (!(*_AL064)._AL0221); } __attribute__((always_inline)) inline static uint64_t _AL6unwrap65(_AL6Option31 _AL066){ return __extension__({ if ((!_AL7is_some124((&_AL066)))) { _AL12unwrap_panic38(); }; _AL066._AL0195; }); } static uint64_t _AL9iter_plus67(uint64_t _AL068, uint64_t _AL069){ return (_AL068+_AL069); } static _AL6Result10 _AL3fmt71(_AL5slice70 _AL072, _AL4void11 _AL073){ return _AL9write_str175(_AL073, (*_AL072)); } __attribute__((always_inline)) inline static _AL5slice6 _AL17slice_range_index75(_AL5slice6 _AL076, _AL9RangeFrom74 _AL077){ return _AL8from_raw155((_AL076._AL0181+_AL077._AL0223), (_AL3len8(_AL076)-_AL077._AL0223)); } __attribute__((always_inline)) inline static _AL9RangeFrom74 _AL3new78(size_t _AL079){ _AL9RangeFrom74 _AL0224; _AL0224._AL0223=_AL079; return _AL0224; } static _AL6Option31 _AL3map80(_AL6Option31 _AL081){ return (_AL7is_some124((&_AL081))?_AL4some86(_AL0103(_AL6unwrap65(_AL081))):_AL4none32()); } static _AL14FilterIterator82 _AL6filter83(_AL14RangeInclusive35 _AL084, _AL045 _AL085){ _AL14FilterIterator82 _AL0225; _AL0225._AL0226=_AL084; _AL0225._AL0227=_AL085; return _AL0225; } __attribute__((always_inline)) inline static _AL6Option31 _AL4some86(uint64_t _AL087){ _AL6Option31 _AL0228; _AL0228._AL0194=1; _AL0228._AL0195=_AL087; return _AL0228; } static _AL6Result10 _AL3fmt88(_AL4void42 _AL089, _AL4void11 _AL090){ return _AL9write_str175(_AL090, _AL8from_raw2((const uint8_t*)"error occurred during formatting", ((size_t)32ULL))); } static _AL6Result10 _AL14format_integer91(int32_t _AL092, uint16_t _AL093, size_t _AL094, _AL4void11 _AL095){ _AL5slice0 _AL0229; _AL3dyn202 _AL0230; _AL3dyn202 _AL0231; _AL7uint8_t127 _AL0232; _AL5slice6 _AL0233; _AL6Result10 _AL0234; uint32_t _AL0235; size_t _AL0236; _AL6Result10 _AL0237; _AL6Result10 _AL0238; if ((!((_AL093>=((uint16_t)2ULL))&&(_AL093<=((uint16_t)36ULL))))) { _AL10panic_impl170(_AL8from_raw2((const uint8_t*)"./sysroot/std/fmt.alu", ((size_t)21ULL)), ((int32_t)281ULL), ((int32_t)9ULL), _AL8from_raw107((&(*__extension__({ _AL0231=__extension__({ _AL0230.__data[((size_t)0ULL)]=_AL10format_arg161(__extension__({ _AL0229=_AL8from_raw2((const uint8_t*)"assertion failed", ((size_t)16ULL)); (&_AL0229); })); _AL0230; }); (&_AL0231); })).__data[((size_t)0ULL)]), ((size_t)1ULL))); }; _AL0233=_AL12as_slice_mut129((&_AL0232)); if ((_AL092<((int32_t)0ULL))) { _AL0234=_AL10write_char12(_AL095, ((uint8_t)45ULL)); if (_AL5is_ok118((&_AL0234))) { _AL6unwrap143(_AL0234); } else { return __extension__({ _AL10unwrap_err40(_AL0234); _AL3err149(); }); }; ; }; _AL0235=_AL12widening_abs111(_AL092); _AL0236=((size_t)0ULL); _AL0239: ; (*_AL11slice_index15(_AL0233, ((_AL3len8(_AL0233)-_AL0236)-((size_t)1ULL))))=(*_AL11slice_index115(_AL8from_raw2((const uint8_t*)"0123456789abcdefghijklmnopqrstuvwxyz", ((size_t)36ULL)), ((size_t)(_AL0235%((uint32_t)_AL093))))); _AL0235/=((uint32_t)_AL093); if ((_AL0235==((uint32_t)0ULL))) { _AL0240: ; if (((_AL0236+((size_t)1ULL))<_AL094)) { _AL0237=_AL10write_char12(_AL095, ((uint8_t)48ULL)); if (_AL5is_ok118((&_AL0237))) { _AL6unwrap143(_AL0237); } else { return __extension__({ _AL10unwrap_err40(_AL0237); _AL3err149(); }); }; _AL094-=((size_t)1ULL); ; } else { goto _AL0241; }; goto _AL0240; _AL0241: ; _AL0238=_AL9write_str175(_AL095, _AL18slice_const_coerce131(_AL17slice_range_index75(_AL0233, _AL3new78(((_AL3len8(_AL0233)-_AL0236)-((size_t)1ULL)))))); if (_AL5is_ok118((&_AL0238))) { _AL6unwrap143(_AL0238); } else { return __extension__({ _AL10unwrap_err40(_AL0238); _AL3err149(); }); }; goto _AL0242;; }; _AL0236+=((size_t)1ULL); goto _AL0239; _AL0242: ; return _AL2ok126(); } static uint64_t _AL6reduce98(_AL11MapIterator97 _AL099, uint64_t _AL0100){ _AL6Option31 _AL0243; _AL0244: ; _AL0243=_AL4next178(_AL099); if ((!_AL7is_some124((&_AL0243)))) { goto _AL0245; }; _AL0100=_AL9iter_plus67(_AL0100, _AL6unwrap65(_AL0243)); goto _AL0244; _AL0245: ; return _AL0100; } __attribute__((always_inline)) inline static _AL4void20 _AL8dyn_data101(_AL3dyn19 _AL0102){ return _AL0102._AL0209; } static uint64_t _AL0103(uint64_t _AL0104){ return (_AL0104*_AL0104); } uint64_t sum_of_mod_n(uint64_t _AL0105, uint64_t _AL0106){ _AL14RangeInclusive34 _AL0246; _AL045 _AL0247; _AL14FilterIterator82 _AL0248; _AL11MapIterator96 _AL0249; _AL14FilterIterator108 _AL0250; return _AL3sum121(__extension__({ _AL0249=__extension__({ _AL0250=__extension__({ _AL0248=_AL6filter83(__extension__({ _AL0246=_AL3new167(((uint64_t)1ULL), _AL0105); (&_AL0246); }), __extension__({ _AL0247._AL0212=_AL0106; _AL0247; })); (&_AL0248); }); _AL3map109(_AL0250); }); (&_AL0249); })); } __attribute__((always_inline)) inline static _AL5slice57 _AL8from_raw107(_AL3dyn58 _AL03, size_t _AL04){ _AL5slice57 _AL0251; _AL0251._AL0181=_AL03; _AL0251._AL0182=_AL04; return _AL0251; } static _AL11MapIterator96 _AL3map109(_AL14FilterIterator108 _AL0110){ _AL11MapIterator96 _AL0252; _AL0252._AL0253=_AL0110; return _AL0252; } inline static uint32_t _AL12widening_abs111(int32_t _AL0112){ return ((_AL0112<((int32_t)0ULL))?(((uint32_t)(~_AL0112))+((uint32_t)1ULL)):((uint32_t)_AL0112)); } static _AL3dyn19 _AL10format_arg113(_AL4void42 _AL0114){ return _AL7dyn_new43(_AL0114); } __attribute__((always_inline)) inline static _AL7uint8_t1 _AL11slice_index115(_AL5slice0 _AL016, size_t _AL017){ return (_AL016._AL0181+_AL017); } static _AL6Option31 _AL4next116(_AL14FilterIterator108 _AL0117){ _AL6Option31 _AL0254; uint64_t _AL0255; _AL0256: ; _AL0255=__extension__({ _AL0254=_AL4next36((*_AL0117)._AL0226); __extension__({ if ((!_AL7is_some124((&_AL0254)))) { return _AL4none32(); }; _AL6unwrap65(_AL0254); }); }); if (_AL047((&(*_AL0117)._AL0227), _AL0255)) { return _AL4some86(_AL0255); }; goto _AL0256; _AL0257: ; __builtin_unreachable(); } __attribute__((always_inline)) inline static _Bool _AL5is_ok118(_AL6Result62 _AL0119){ return (*_AL0119)._AL0221; } __attribute__((always_inline)) inline static _AL3dyn19 _AL7dyn_new120(_AL5slice70 _AL044){ _AL3dyn19 _AL0258; _AL0258._AL0209=((_AL4void20)_AL044); _AL0258._AL0210=(&_AL6VTABLE250.__data[((size_t)0ULL)]); return _AL0258; } static uint64_t _AL3sum121(_AL11MapIterator97 _AL0122){ _AL11MapIterator97 _AL0259; uint64_t _AL0260; return __extension__({ _AL0259=_AL0122; _AL0260=((uint64_t)((int32_t)0ULL)); _AL6reduce98(_AL0259, _AL0260); }); } __attribute__((always_inline)) inline static _Bool _AL7is_some124(_AL6Option123 _AL0125){ return (*_AL0125)._AL0194; } __attribute__((always_inline)) inline static _AL6Result10 _AL2ok126(){ _AL6Result10 _AL0261; _AL0261._AL0221=1; return _AL0261; } __attribute__((always_inline)) inline static _AL5slice6 _AL12as_slice_mut129(_AL7uint8_t128 _AL0130){ return _AL8from_raw155((&(*_AL0130).__data[((size_t)0ULL)]), ((size_t)128ULL)); } __attribute__((always_inline)) inline static _AL5slice0 _AL18slice_const_coerce131(_AL5slice6 _AL0132){ return _AL8from_raw2(_AL0132._AL0181, _AL3len8(_AL0132)); } __attribute__((always_inline)) inline static _AL021 _AL16dyn_vtable_index133(_AL3dyn19 _AL0134, size_t _AL0135){ return (*(_AL0134._AL0210+_AL0135)); } __attribute__((constructor)) static void _AL0139(){ _AL050 _AL0262; _AL050 _AL0263; _AL050 _AL0264; _AL6VTABLE336=__extension__({ _AL0262.__data[((size_t)0ULL)]=((_AL021)_AL3fmt28); _AL0262; }); _AL6VTABLE292=__extension__({ _AL0263.__data[((size_t)0ULL)]=((_AL021)_AL3fmt88); _AL0263; }); _AL6VTABLE250=__extension__({ _AL0264.__data[((size_t)0ULL)]=((_AL021)_AL3fmt71); _AL0264; }); return ; } __attribute__((always_inline)) inline static uint64_t _AL13uninitialized140(){ uint64_t _AL0196; return _AL0196; } __attribute__((always_inline)) inline static _Bool _AL7is_some142(_AL6Option141 _AL0125){ return (*_AL0125)._AL0194; } inline static void _AL6unwrap143(_AL6Result10 _AL0144){ if (_AL5is_ok118((&_AL0144))) { ; } else { _AL16unwrap_panic_err5(); }; return ; } static void _AL4swap146(_AL5_Bool145 _AL0147, _AL5_Bool145 _AL0148){ _Bool _AL0265; _AL0265=(*_AL0147); (*_AL0147)=(*_AL0148); (*_AL0148)=_AL0265; return ; } __attribute__((always_inline)) inline static _AL6Result10 _AL3err149(){ _AL6Result10 _AL0266; _AL0266._AL0221=0; return _AL0266; } __attribute__((always_inline)) inline static _AL056 _AL6unwrap150(_AL6Option51 _AL066){ return __extension__({ if ((!_AL7is_some142((&_AL066)))) { _AL12unwrap_panic38(); }; _AL066._AL0195; }); } static _Bool _AL7replace151(_AL5_Bool145 _AL0152, _Bool _AL0153){ _AL4swap146(_AL0152, (&_AL0153)); return _AL0153; } __attribute__((always_inline)) inline static size_t _AL3len154(_AL5slice57 _AL09){ return _AL09._AL0182; } __attribute__((always_inline)) inline static _AL5slice6 _AL8from_raw155(_AL7uint8_t7 _AL03, size_t _AL04){ _AL5slice6 _AL0268; _AL0268._AL0181=_AL03; _AL0268._AL0182=_AL04; return _AL0268; } __attribute__((always_inline)) inline static size_t _AL3len156(_AL5slice0 _AL09){ return _AL09._AL0182; } static _AL6Result10 _AL19print_panic_message157(_AL9PanicInfo54 _AL0158){ _AL5slice0 _AL0269; _AL5slice0 _AL0270; _AL5slice0 _AL0271; _AL5slice0 _AL0272; _AL3dyn273 _AL0274; _AL3dyn273 _AL0275; _AL6Result10 _AL0276; _AL6Result10 _AL0277; _AL0276=_AL9write_fmt59(_AL8from_raw107((&(*__extension__({ _AL0275=__extension__({ _AL0274.__data[((size_t)0ULL)]=_AL10format_arg161(__extension__({ _AL0269=_AL8from_raw2((const uint8_t*)"panic at ", ((size_t)9ULL)); (&_AL0269); })); _AL0274.__data[((size_t)1ULL)]=_AL10format_arg161((&(*_AL0158)._AL0279)); _AL0274.__data[((size_t)2ULL)]=_AL10format_arg161(__extension__({ _AL0270=_AL8from_raw2((const uint8_t*)":", ((size_t)1ULL)); (&_AL0270); })); _AL0274.__data[((size_t)3ULL)]=_AL10format_arg166((&(*_AL0158)._AL0280)); _AL0274.__data[((size_t)4ULL)]=_AL10format_arg161(__extension__({ _AL0271=_AL8from_raw2((const uint8_t*)":", ((size_t)1ULL)); (&_AL0271); })); _AL0274.__data[((size_t)5ULL)]=_AL10format_arg166((&(*_AL0158)._AL0281)); _AL0274.__data[((size_t)6ULL)]=_AL10format_arg161(__extension__({ _AL0272=_AL8from_raw2((const uint8_t*)": ", ((size_t)2ULL)); (&_AL0272); })); _AL0274; }); (&_AL0275); })).__data[((size_t)0ULL)]), ((size_t)7ULL)), ((_AL4void11)0ULL)); if (_AL5is_ok118((&_AL0276))) { _AL6unwrap143(_AL0276); } else { return __extension__({ _AL10unwrap_err40(_AL0276); _AL3err149(); }); }; _AL9write_fmt59((*_AL0158)._AL0282, ((_AL4void11)0ULL)); _AL0277=_AL10write_char12(((_AL4void11)0ULL), ((uint8_t)10ULL)); if (_AL5is_ok118((&_AL0277))) { _AL6unwrap143(_AL0277); } else { return __extension__({ _AL10unwrap_err40(_AL0277); _AL3err149(); }); }; return _AL2ok126(); } __attribute__((always_inline)) inline static _AL13SliceIterator23 _AL4iter159(_AL5slice57 _AL0160){ _AL13SliceIterator23 _AL0283; _AL0283._AL0192=_AL0160; return _AL0283; } static _AL3dyn19 _AL10format_arg161(_AL5slice70 _AL0114){ return _AL7dyn_new120(_AL0114); } _Noreturn __attribute__((cold)) __attribute__((noinline)) static void _AL15unwrap_panic_ok162(){ _AL5slice0 _AL0284; _AL3dyn202 _AL0285; _AL3dyn202 _AL0286; _AL10panic_impl170(_AL8from_raw2((const uint8_t*)"./sysroot/std/result.alu", ((size_t)24ULL)), ((int32_t)436ULL), ((int32_t)13ULL), _AL8from_raw107((&(*__extension__({ _AL0286=__extension__({ _AL0285.__data[((size_t)0ULL)]=_AL10format_arg161(__extension__({ _AL0284=_AL8from_raw2((const uint8_t*)"unwrap on an ok value", ((size_t)21ULL)); (&_AL0284); })); _AL0285; }); (&_AL0286); })).__data[((size_t)0ULL)]), ((size_t)1ULL))); } __attribute__((always_inline)) inline static _AL3dyn19 _AL7dyn_new163(_AL7int32_t27 _AL044){ _AL3dyn19 _AL0287; _AL0287._AL0209=((_AL4void20)_AL044); _AL0287._AL0210=(&_AL6VTABLE336.__data[((size_t)0ULL)]); return _AL0287; } __attribute__((always_inline)) inline static _AL6Option18 _AL4some164(_AL3dyn19 _AL087){ _AL6Option18 _AL0288; _AL0288._AL0194=1; _AL0288._AL0195=_AL087; return _AL0288; } static void _AL3new165(){ return ; } static _AL3dyn19 _AL10format_arg166(_AL7int32_t27 _AL0114){ return _AL7dyn_new163(_AL0114); } __attribute__((always_inline)) inline static _AL14RangeInclusive34 _AL3new167(uint64_t _AL0168, uint64_t _AL0169){ _AL14RangeInclusive34 _AL0289; _AL0289._AL0198=_AL0168; _AL0289._AL0199=_AL0169; _AL0289._AL0200=0; return _AL0289; } _Noreturn __attribute__((cold)) __attribute__((noinline)) static void _AL10panic_impl170(_AL5slice0 _AL0171, int32_t _AL0172, int32_t _AL0173, _AL5slice57 _AL0174){ _AL9PanicInfo53 _AL0290; _AL9PanicInfo53 _AL0291; _AL056 _AL0292; _AL4void52 _AL0293; _AL055 _AL0294; _AL6Result10 _AL0295; if (_AL7replace151((&_AL9PANICKING149), 1)) { __builtin_trap(); }; _AL0291=__extension__({ _AL0290._AL0279=_AL0171; _AL0290._AL0280=_AL0172; _AL0290._AL0281=_AL0173; _AL0290._AL0282=_AL0174; _AL0290; }); if (_AL7is_some142((&_AL10PANIC_HOOK164))) { _AL0292=_AL6unwrap150(_AL10PANIC_HOOK164); _AL0293=_AL0292._0; _AL0294=_AL0292._1; _AL0294(_AL0293, (&_AL0291)); ; }; _AL0295=_AL19print_panic_message157((&_AL0291)); abort(); } static _AL6Result10 _AL9write_str175(_AL4void11 _AL0176, _AL5slice0 _AL0177){ return ((write(((int32_t)2LL), ((_AL4void20)(&(*_AL11slice_index115(_AL0177, ((size_t)0ULL))))), _AL3len156(_AL0177))<((ptrdiff_t)0ULL))?__extension__({ _AL3new165(); _AL3err149(); }):_AL2ok126()); } static _AL6Option31 _AL4next178(_AL11MapIterator97 _AL0179){ _AL6Option31 _AL0298; return __extension__({ _AL0298=_AL4next116((*_AL0179)._AL0253); _AL3map80(_AL0298); }); }
Become a Patron
Sponsor on GitHub
Donate via PayPal
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
About the author
Statistics
Changelog
Version tree