xref: /llvm-project/lldb/test/Shell/Expr/TestAnonNamespaceParamFunc.cpp (revision 20c4e95b9c03a77c2e5ce5f354114752d380c591)
18056d92bSMichael Buch // Tests that we can evaluate functions that Clang
28056d92bSMichael Buch // classifies as having clang::Linkage::UniqueExternal
38056d92bSMichael Buch // linkage. In this case, a function whose argument
48056d92bSMichael Buch // is not legally usable outside this TU.
58056d92bSMichael Buch 
6*20c4e95bSVladislav Dzhidzhoev // XFAIL: target-windows
78d712b4eSMichael Buch 
88056d92bSMichael Buch // RUN: %build %s -o %t
98056d92bSMichael Buch // RUN: %lldb %t -o run -o "expression func(a)" -o exit | FileCheck %s
108056d92bSMichael Buch 
118056d92bSMichael Buch // CHECK: expression func(a)
128056d92bSMichael Buch // CHECK: (int) $0 = 15
138056d92bSMichael Buch 
148056d92bSMichael Buch namespace {
158056d92bSMichael Buch struct InAnon {};
168056d92bSMichael Buch } // namespace
178056d92bSMichael Buch 
188056d92bSMichael Buch int func(InAnon a) { return 15; }
198056d92bSMichael Buch 
208056d92bSMichael Buch int main() {
218056d92bSMichael Buch   InAnon a;
228056d92bSMichael Buch   __builtin_debugtrap();
238056d92bSMichael Buch   return func(a);
248056d92bSMichael Buch }
25