# Check that we have an appropriate fallback for ${function.scope} in languages that
# don't implement this frame format variable (in this case Objective-C).
#
# RUN: split-file %s %t
# RUN: %clang_host -g -gdwarf %t/main.m -o %t.objc.out
# RUN: %lldb -x -b -s %t/commands.input %t.objc.out -o exit 2>&1 \
# RUN:       | FileCheck %s

#--- main.m

int func() {}
int bar() { func(); }

int main() { return bar(); }

#--- commands.input
settings set -f frame-format "custom-frame '${function.scope}'\n"
break set -n func

run
bt

# CHECK: bt
# CHECK-NOT: custom-frame
