| Issue |
208381
|
| Summary |
[clang] Recent problem with asan-enabled builds
|
| Labels |
clang:codegen
|
| Assignees |
|
| Reporter |
tbaederr
|
```console
$ touch foo.cpp
$ bin/clang++ foo.cpp
=================================================================
==721913==ERROR: AddressSanitizer: new-delete-type-mismatch on 0x7ba4565eba20 in thread T0:
object passed to delete has wrong type:
size of the allocated type: 56 bytes;
size of the deallocated type: 48 bytes.
#0 0x0000003f3286 in operator delete(void*, unsigned long) (/home/tbaeder/code/llvm-project/build/bin/clang-22+0x3f3286) (BuildId: 264ed5f0ac5c8ef1fbd6f9d4fc3331e6364215dd)
#1 0x7f44d14ea89e in std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>::operator()(llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>*) const /usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/unique_ptr.h:92:2
#2 0x7f44d14e4ffa in std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>::~unique_ptr() /usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/unique_ptr.h:398:4
#3 0x7f44d1539e64 in void std::_Destroy<std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>>(std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>*) /usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_construct.h:166:19
#4 0x7f44d1539dc2 in void std::_Destroy<std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>*>(std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>*, std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>*) /usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_construct.h:226:4
#5 0x7f44d1539c87 in void std::_Destroy<std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>*, std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>>(std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>*, std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>*, std::allocator<std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>>&) /usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/alloc_traits.h:1045:7
#6 0x7f44d1539c87 in std::__cxx1998::vector<std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>, std::allocator<std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>>>::~vector() /usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_vector.h:802:2
#7 0x7f44d1539be8 in std::__debug::vector<std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>, std::allocator<std::unique_ptr<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>, std::default_delete<llvm::detail::PassConcept<llvm::Module, llvm::AnalysisManager<llvm::Module>>>>>>::~vector() /usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/debug/vector:260:25
#8 0x7f44d14dd344 in llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::~PassManager() /home/tbaeder/code/llvm-project/llvm/include/llvm/IR/PassManager.h:258:41
#9 0x7f44d148b553 in (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&, clang::BackendConsumer*) /home/tbaeder/code/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1226:1
#10 0x7f44d1472317 in (anonymous namespace)::EmitAssemblyHelper::emitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /home/tbaeder/code/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1363:3
#11 0x7f44d146e9a7 in clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /home/tbaeder/code/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1540:13
#12 0x7f44d2dbba3b in clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home/tbaeder/code/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:322:3
#13 0x7f44c86d585d in clang::ParseAST(clang::Sema&, bool, bool) /home/tbaeder/code/llvm-project/clang/lib/Parse/ParseAST.cpp:183:13
#14 0x7f44d7162634 in clang::ASTFrontendAction::ExecuteAction() /home/tbaeder/code/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1464:3
#15 0x7f44d2dcb485 in clang::CodeGenAction::ExecuteAction() /home/tbaeder/code/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1166:30
#16 0x7f44d7160b2f in clang::FrontendAction::Execute() /home/tbaeder/code/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1344:3
#17 0x7f44d6e12da5 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/tbaeder/code/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1033:33
#18 0x7f44d75f7242 in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/tbaeder/code/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:319:25
#19 0x000000427a0b in cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/tbaeder/code/llvm-project/clang/tools/driver/cc1_main.cpp:296:13
#20 0x0000003f81af in ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) /home/tbaeder/code/llvm-project/clang/tools/driver/driver.cpp:229:12
#21 0x0000003f4e2f in clang_main(int, char**, llvm::ToolContext const&) /home/tbaeder/code/llvm-project/clang/tools/driver/driver.cpp:277:12
#22 0x0000004d0a46 in main /home/tbaeder/code/llvm-project/build/tools/clang/tools/driver/clang-driver.cpp:17:10
#23 0x7f44576105b4 in __libc_start_call_main (/lib64/libc.so.6+0x35b4) (BuildId: 88c03969b4319fc0140734fe863825ec4a1cdb0d)
#24 0x7f4457610667 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x3667) (BuildId: 88c03969b4319fc0140734fe863825ec4a1cdb0d)
#25 0x000000308334 in _start (/home/tbaeder/code/llvm-project/build/bin/clang-22+0x308334) (BuildId: 264ed5f0ac5c8ef1fbd6f9d4fc3331e6364215dd)
0x7ba4565eba20 is located 0 bytes inside of 56-byte region [0x7ba4565eba20,0x7ba4565eba58)
allocated by thread T0 here:
#0 0x0000003f2681 in operator new(unsigned long) (/home/tbaeder/code/llvm-project/build/bin/clang-22+0x3f2681) (BuildId: 264ed5f0ac5c8ef1fbd6f9d4fc3331e6364215dd)
#1 0x7f44d14dc89f in std::enable_if<!std::is_same_v<llvm::VerifierPass, llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>>, void>::type llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::addPass<llvm::VerifierPass>(llvm::VerifierPass&&) /home/tbaeder/code/llvm-project/llvm/include/llvm/IR/PassManager.h:226:9
#2 0x7f44d1487e7f in (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&, clang::BackendConsumer*) /home/tbaeder/code/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1016:9
#3 0x7f44d1472317 in (anonymous namespace)::EmitAssemblyHelper::emitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /home/tbaeder/code/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1363:3
#4 0x7f44d146e9a7 in clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /home/tbaeder/code/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1540:13
#5 0x7f44d2dbba3b in clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home/tbaeder/code/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:322:3
#6 0x7f44c86d585d in clang::ParseAST(clang::Sema&, bool, bool) /home/tbaeder/code/llvm-project/clang/lib/Parse/ParseAST.cpp:183:13
#7 0x7f44d7162634 in clang::ASTFrontendAction::ExecuteAction() /home/tbaeder/code/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1464:3
#8 0x7f44d2dcb485 in clang::CodeGenAction::ExecuteAction() /home/tbaeder/code/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1166:30
#9 0x7f44d7160b2f in clang::FrontendAction::Execute() /home/tbaeder/code/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1344:3
#10 0x7f44d6e12da5 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/tbaeder/code/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1033:33
#11 0x7f44d75f7242 in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/tbaeder/code/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:319:25
#12 0x000000427a0b in cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/tbaeder/code/llvm-project/clang/tools/driver/cc1_main.cpp:296:13
#13 0x0000003f81af in ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) /home/tbaeder/code/llvm-project/clang/tools/driver/driver.cpp:229:12
#14 0x0000003f4e2f in clang_main(int, char**, llvm::ToolContext const&) /home/tbaeder/code/llvm-project/clang/tools/driver/driver.cpp:277:12
#15 0x0000004d0a46 in main /home/tbaeder/code/llvm-project/build/tools/clang/tools/driver/clang-driver.cpp:17:10
#16 0x7f44576105b4 in __libc_start_call_main (/lib64/libc.so.6+0x35b4) (BuildId: 88c03969b4319fc0140734fe863825ec4a1cdb0d)
#17 0x7f4457610667 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x3667) (BuildId: 88c03969b4319fc0140734fe863825ec4a1cdb0d)
#18 0x000000308334 in _start (/home/tbaeder/code/llvm-project/build/bin/clang-22+0x308334) (BuildId: 264ed5f0ac5c8ef1fbd6f9d4fc3331e6364215dd)
SUMMARY: AddressSanitizer: new-delete-type-mismatch (/home/tbaeder/code/llvm-project/build/bin/clang-22+0x3f3286) (BuildId: 264ed5f0ac5c8ef1fbd6f9d4fc3331e6364215dd) in operator delete(void*, unsigned long)
==721913==HINT: if you don't care about these errors you may set ASAN_OPTIONS=new_delete_type_mismatch=0
==721913==ABORTING
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs