teemperor created this revision. teemperor added a reviewer: dvlahovski. We never delete the allocated RegisterContext objects, causing those tests to fail with enabled memory sanitizer.
https://reviews.llvm.org/D42347 Files: unittests/Process/minidump/MinidumpParserTest.cpp Index: unittests/Process/minidump/MinidumpParserTest.cpp =================================================================== --- unittests/Process/minidump/MinidumpParserTest.cpp +++ unittests/Process/minidump/MinidumpParserTest.cpp @@ -315,9 +315,10 @@ llvm::ArrayRef<uint8_t> registers(parser->GetThreadContext(thread)); ArchSpec arch = parser->GetArchitecture(); - RegisterInfoInterface *reg_interface = new RegisterContextLinux_i386(arch); + std::unique_ptr<RegisterInfoInterface> reg_interface( + new RegisterContextLinux_i386(arch)); lldb::DataBufferSP buf = - ConvertMinidumpContext_x86_32(registers, reg_interface); + ConvertMinidumpContext_x86_32(registers, reg_interface.get()); ASSERT_EQ(reg_interface->GetGPRSize(), buf->GetByteSize()); const RegisterInfo *reg_info = reg_interface->GetRegisterInfo(); @@ -357,9 +358,10 @@ llvm::ArrayRef<uint8_t> registers(parser->GetThreadContext(thread)); ArchSpec arch = parser->GetArchitecture(); - RegisterInfoInterface *reg_interface = new RegisterContextLinux_x86_64(arch); + std::unique_ptr<RegisterInfoInterface> reg_interface( + new RegisterContextLinux_x86_64(arch)); lldb::DataBufferSP buf = - ConvertMinidumpContext_x86_64(registers, reg_interface); + ConvertMinidumpContext_x86_64(registers, reg_interface.get()); ASSERT_EQ(reg_interface->GetGPRSize(), buf->GetByteSize()); const RegisterInfo *reg_info = reg_interface->GetRegisterInfo(); @@ -407,9 +409,10 @@ llvm::ArrayRef<uint8_t> registers(parser->GetThreadContextWow64(thread)); ArchSpec arch = parser->GetArchitecture(); - RegisterInfoInterface *reg_interface = new RegisterContextLinux_i386(arch); + std::unique_ptr<RegisterInfoInterface> reg_interface( + new RegisterContextLinux_i386(arch)); lldb::DataBufferSP buf = - ConvertMinidumpContext_x86_32(registers, reg_interface); + ConvertMinidumpContext_x86_32(registers, reg_interface.get()); ASSERT_EQ(reg_interface->GetGPRSize(), buf->GetByteSize()); const RegisterInfo *reg_info = reg_interface->GetRegisterInfo();
Index: unittests/Process/minidump/MinidumpParserTest.cpp =================================================================== --- unittests/Process/minidump/MinidumpParserTest.cpp +++ unittests/Process/minidump/MinidumpParserTest.cpp @@ -315,9 +315,10 @@ llvm::ArrayRef<uint8_t> registers(parser->GetThreadContext(thread)); ArchSpec arch = parser->GetArchitecture(); - RegisterInfoInterface *reg_interface = new RegisterContextLinux_i386(arch); + std::unique_ptr<RegisterInfoInterface> reg_interface( + new RegisterContextLinux_i386(arch)); lldb::DataBufferSP buf = - ConvertMinidumpContext_x86_32(registers, reg_interface); + ConvertMinidumpContext_x86_32(registers, reg_interface.get()); ASSERT_EQ(reg_interface->GetGPRSize(), buf->GetByteSize()); const RegisterInfo *reg_info = reg_interface->GetRegisterInfo(); @@ -357,9 +358,10 @@ llvm::ArrayRef<uint8_t> registers(parser->GetThreadContext(thread)); ArchSpec arch = parser->GetArchitecture(); - RegisterInfoInterface *reg_interface = new RegisterContextLinux_x86_64(arch); + std::unique_ptr<RegisterInfoInterface> reg_interface( + new RegisterContextLinux_x86_64(arch)); lldb::DataBufferSP buf = - ConvertMinidumpContext_x86_64(registers, reg_interface); + ConvertMinidumpContext_x86_64(registers, reg_interface.get()); ASSERT_EQ(reg_interface->GetGPRSize(), buf->GetByteSize()); const RegisterInfo *reg_info = reg_interface->GetRegisterInfo(); @@ -407,9 +409,10 @@ llvm::ArrayRef<uint8_t> registers(parser->GetThreadContextWow64(thread)); ArchSpec arch = parser->GetArchitecture(); - RegisterInfoInterface *reg_interface = new RegisterContextLinux_i386(arch); + std::unique_ptr<RegisterInfoInterface> reg_interface( + new RegisterContextLinux_i386(arch)); lldb::DataBufferSP buf = - ConvertMinidumpContext_x86_32(registers, reg_interface); + ConvertMinidumpContext_x86_32(registers, reg_interface.get()); ASSERT_EQ(reg_interface->GetGPRSize(), buf->GetByteSize()); const RegisterInfo *reg_info = reg_interface->GetRegisterInfo();
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits