Issue 141496
Summary Assertion `NumBits >= MIN_INT_BITS && "bitwidth too small"' failed when building Clang with Clang
Labels clang
Assignees
Reporter Flamefire
    We have a bootstrap script that builds Clang with the system compiler and then with the resulting binaries.
That fails on an AMD EPYC system (compiling with `-march=native`):
`llvm/lib/IR/Type.cpp:312: static llvm::IntegerType* llvm::IntegerType::get(llvm::LLVMContext&, unsigned int): Assertion NumBits >= MIN_INT_BITS && "bitwidth too small"' failed.`

Reproducer files are attached 

[reprod.tar.gz](https://github.com/user-attachments/files/20442695/reprod.tar.gz)

Stacktrace:
<details>
1. <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm-project-a66376b0dc3b2ea8a84fda26faca287980986f78/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp'.
4. Running pass 'X86 DAG->DAG Instruction Selection' on function '@_ZN5clang4ento10ExprEngine10inlineCallEPNS0_8WorkListERKNS0_9CallEventEPKNS_4DeclERNS0_11NodeBuilderEPNS0_12ExplodedNodeEN4llvm18IntrusiveRefCntPtrIKNS0_12ProgramStateEEE'
 #0 0x00000000023991ae llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x23991ae)
 #1 0x000000000239631b llvm::sys::RunSignalHandlers() (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x239631b)
 #2 0x00000000022dd4b8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007f51ac23e6f0 __restore_rt (/lib64/libc.so.6+0x3e6f0)
 #4 0x00007f51ac28b94c __pthread_kill_implementation (/lib64/libc.so.6+0x8b94c)
 #5 0x00007f51ac23e646 gsignal (/lib64/libc.so.6+0x3e646)
 #6 0x00007f51ac2287f3 abort (/lib64/libc.so.6+0x287f3)
 #7 0x00007f51ac22871b _nl_load_domain.cold (/lib64/libc.so.6+0x2871b)
 #8 0x00007f51ac237386 (/lib64/libc.so.6+0x37386)
 #9 0x0000000001e1b678 llvm::IntegerType::get(llvm::LLVMContext&, unsigned int) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x1e1b678)
#10 0x000000000197d5b9 llvm::EVT::getExtendedIntegerVT(llvm::LLVMContext&, unsigned int) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x197d5b9)
#11 0x0000000000f21be8 combineTruncate(llvm::SDNode*, llvm::SelectionDAG&, llvm::X86Subtarget const&) X86ISelLowering.cpp:0:0
#12 0x00000000035d3069 (anonymous namespace)::DAGCombiner::combine(llvm::SDNode*) DAGCombiner.cpp:0:0
#13 0x00000000035d4bbd (anonymous namespace)::DAGCombiner::Run(llvm::CombineLevel) DAGCombiner.cpp:0:0
#14 0x00000000035d7f1c llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::BatchAAResults*, llvm::CodeGenOptLevel) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x35d7f1c)
#15 0x000000000372e356 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x372e356)
#16 0x0000000003733aab llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x3733aab)
#17 0x000000000373552e llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x373552e)
#18 0x000000000371f8da llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x371f8da)
#19 0x00000000016a9656 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#20 0x0000000001da9f3d llvm::FPPassManager::runOnFunction(llvm::Function&) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x1da9f3d)
#21 0x0000000001daa351 llvm::FPPassManager::runOnModule(llvm::Module&) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x1daa351)
#22 0x0000000001daac7b llvm::legacy::PassManagerImpl::run(llvm::Module&) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x1daac7b)
#23 0x000000000264f61a 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*) (/de
v/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x264f61a)
#24 0x0000000002d51dfb clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x2d51dfb)
#25 0x0000000004c004dc clang::ParseAST(clang::Sema&, bool, bool) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x4c004dc)
#26 0x0000000003060371 clang::FrontendAction::Execute() (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x3060371)
#27 0x0000000002fe30ce clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x2fe30ce)
#28 0x000000000314a6c7 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x314a6c7)
#29 0x0000000000ce006c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0xce006c)
#30 0x0000000000cd6197 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#31 0x0000000002da1429 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#32 0x00000000022dd922 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x22dd922)
#33 0x0000000002da24f0 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#34 0x0000000002d5ef65 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x2d5ef65)
#35 0x0000000002d60072 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x2d60072)
#36 0x0000000002d6d434 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0x2d6d434)
#37 0x0000000000cdb6f7 clang_main(int, char**, llvm::ToolContext const&) (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0xcdb6f7)
#38 0x0000000000bd63e3 main (/dev/shm/s3248973-EasyBuild341570/Clang/21.0.0_20250221/GCCcore-13.3.0-CUDA-12.6.0/llvm.obj.1/bin/clang+++0xbd63e3)

</details>
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to