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

Reply via email to