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

# JITLink is the Orc-specific JIT linker implementation.
#
# RUN: %clang -g -S -emit-llvm -fPIC --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-linker=jitlink %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: {{.*}}
