# REQUIRES: target-x86_64
# XFAIL: system-windows

# RuntimeDyld can be used to link and load emitted code for both, MCJIT and Orc.
#
# RUN: %clang -g -S -emit-llvm --target=x86_64-unknown-unknown-elf \
# RUN:        -o %t.ll %p/Inputs/jitbp.cpp
#
# RUN: %lldb -b -o 'settings set plugin.jit-loader.gdb.enable on' -o 'b jitbp' \
# RUN:          -o 'run --jit-kind=mcjit %t.ll' lli | FileCheck %s
#
# RUN: %lldb -b -o 'settings set plugin.jit-loader.gdb.enable on' -o 'b jitbp' \
# RUN:          -o 'run --jit-linker=rtdyld %t.ll' lli | FileCheck %s

# CHECK: Breakpoint 1: no locations (pending).
# CHECK: (lldb) run {{.*}}
# CHECK: Process {{.*}} stopped
# CHECK: JIT(0x{{.*}})`jitbp() at jitbp.cpp:1:15
# CHECK: -> 1    int jitbp() { return 0; }
# CHECK:                       ^
# CHECK:    2    int main() { return jitbp(); }
# CHECK: Process {{.*}} launched: {{.*}}
