# UNSUPPORTED: system-windows

# Test the plugin.cplusplus.display.function-name-format setting
# when interoperating multiple languages.

# RUN: split-file %s %t
# RUN: %clang_host -x c -c -g %t/lib.c -o %t.clib.o
# RUN: %clangxx_host -c -g %t/lib.cpp -o %t.cxxlib.o
# RUN: %clang_host %t/main.m %t.cxxlib.o %t.clib.o -o %t.out
# RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 | FileCheck %s

#--- lib.c

void foo();

void func() {
  foo();
}

#--- lib.cpp

namespace ns {
struct Foo {
    void method() {}
};
}

extern "C" {
void foo() {
  ns::Foo{}.method();
}
}

#--- main.m

void func();

int main() {
  func();
}

#--- commands.input
settings set plugin.cplusplus.display.function-name-format "this affects C++ only"
settings set -f frame-format "custom-frame '${function.name-with-args}'\n"
break set -n method

run
bt

# CHECK: custom-frame 'this affects C++ only'
# CHECK: custom-frame 'this affects C++ only'
# CHECK: custom-frame 'func'
# CHECK: custom-frame 'main'
