Index: packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/Makefile =================================================================== --- /dev/null +++ packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/Makefile @@ -0,0 +1,19 @@ +LEVEL = ../../../make + +CXX_SOURCES = main.cpp a.cpp + +CFLAGS_LIMIT = -c $(CXXFLAGS) +CFLAGS_NO_LIMIT = -c $(CXXFLAGS) + +all: a.out + +limit: main.o a.o + $(CXX) -fcxx-modules -fmodules -gmodules main.o a.o -o a.out + +main.o: main.cpp + $(CXX) $(CFLAGS_LIMIT) -fcxx-modules -fmodules -gmodules -c $(SRCDIR)/main.cpp -o main.o -fmodules-cache-path=$(CLANG_MODULE_CACHE_DIR) + +a.o: a.cpp + $(CXX) $(CFLAGS_NO_DEBUG) -fcxx-modules -fmodules -gmodules -c $(SRCDIR)/a.cpp -o a.o -fmodules-cache-path=$(CLANG_MODULE_CACHE_DIR) + +include $(LEVEL)/Makefile.rules Index: packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/TestBreakpointInMemberFuncWNonPrimitiveParams.py =================================================================== --- /dev/null +++ packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/TestBreakpointInMemberFuncWNonPrimitiveParams.py @@ -0,0 +1,18 @@ +import lldb +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + +class TestBreakpointInMemberFuncWNonPrimitiveParams(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + @skipUnlessDarwin + @add_test_categories(["gmodules"]) + def test_breakpint_in_member_func_w_non_primitie_params(self): + self.build() + + (self.target, self.process, _, bkpt) = lldbutil.run_to_source_breakpoint(self, '// break here', + lldb.SBFileSpec("main.cpp", False)) + + self.runCmd("b a.cpp:11"); Index: packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/a.h =================================================================== --- /dev/null +++ packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/a.h @@ -0,0 +1,7 @@ +struct A { + bool b(int x); +}; + +struct B { + bool member_func_a(A a); +}; Index: packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/a.cpp =================================================================== --- /dev/null +++ packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/a.cpp @@ -0,0 +1,10 @@ +#include "a.h" + +bool A::b(int x) { + if (x) + return true; + + return false; +} + +bool B::member_func_a(A a) { return a.b(10); }; Index: packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/main.cpp =================================================================== --- /dev/null +++ packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/main.cpp @@ -0,0 +1,15 @@ +#include "a.h" +#include + +bool foo() { + A a1; + B b1; + + return b1.member_func_a(a1); // break here +} + +int main() { + int x = 0; + + return foo(); +} Index: packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/module.modulemap =================================================================== --- /dev/null +++ packages/Python/lldbsuite/test/lang/cpp/breakpoint_in_member_func_w_non_primitive_params/module.modulemap @@ -0,0 +1,3 @@ +module A { + header "a.h" +} Index: source/Symbol/ClangASTContext.cpp =================================================================== --- source/Symbol/ClangASTContext.cpp +++ source/Symbol/ClangASTContext.cpp @@ -2234,7 +2234,6 @@ name && name[0] ? &ast->Idents.get(name) : nullptr, ClangUtil::GetQualType(param_type), nullptr, (clang::StorageClass)storage, nullptr); - decl_ctx->addDecl(decl); return decl; }