Skip to content

llvm/lib/IR/DataLayout.cpp:756: unsigned int llvm::DataLayout::getIndexTypeSizeInBits(Type *) const: Assertion `Ty->isPtrOrPtrVectorTy() && "This should only be called with a pointer or pointer vector type"' failed. #134792

Closed as duplicate of#134523
@stbergmann

Description

@stbergmann

Given test.c

int main(int argc, char ** argv) {
  int b = argv[0] == argv[1];
  int n = 6;
  int a[n];
  a[0] = argv[0][0];
  a[5] = 0;
}

and invocation

clang -fsanitize=address -fsanitize=undefined -c -g -O2 test.c

this recently started to fail for me with LLVM trunk (towards LLVM 21):

With ecd4c08 "[Verifier] Require that dbg.declare variable is a ptr (#134355)" it started to fail with

location of #dbg_declare must be a pointer
#dbg_declare(i64 %18, !26, !DIExpression(), !38)
i64 %18
fatal error: error in backend: Broken module found, compilation aborted!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /home/sberg/llvm/test/inst/bin/clang -fsanitize=address -fsanitize=undefined -c -g -O2 /home/sberg/lo/core/test.c
1.	<eof> parser at end of file
2.	Code generation
 #0 0x00007fc4d839b428 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/sberg/llvm/test/llvm-project/llvm/lib/Support/Unix/Signals.inc:804:13
 #1 0x00007fc4d83992d0 llvm::sys::RunSignalHandlers() /home/sberg/llvm/test/llvm-project/llvm/lib/Support/Signals.cpp:106:18
 #2 0x00007fc4d82d2317 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /home/sberg/llvm/test/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:73:5
 #3 0x00007fc4d82d22af llvm::CrashRecoveryContext::HandleExit(int) /home/sberg/llvm/test/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:446:3
 #4 0x00007fc4d8396067 llvm::sys::Process::Exit(int, bool) /home/sberg/llvm/test/llvm-project/llvm/lib/Support/Process.cpp:117:5
 #5 0x00000000004138f6 (/home/sberg/llvm/test/inst/bin/clang+0x4138f6)
 #6 0x00007fc4d82e5c79 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_data() const /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h:233:28
 #7 0x00007fc4d82e5c79 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_is_local() const /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h:274:6
 #8 0x00007fc4d82e5c79 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_dispose() /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h:292:7
 #9 0x00007fc4d82e5c79 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::~basic_string() /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h:817:9
#10 0x00007fc4d82e5c79 llvm::report_fatal_error(llvm::Twine const&, bool) /home/sberg/llvm/test/llvm-project/llvm/lib/Support/ErrorHandling.cpp:105:5
#11 0x00007fc4d82e5b66 (/home/sberg/llvm/test/inst/bin/../lib/libLLVMSupport.so.21.0git+0xe5b66)
#12 0x00007fc4d88d9023 (/home/sberg/llvm/test/inst/bin/../lib/libLLVMCore.so.21.0git+0x2d9023)
#13 0x00007fc4d883895a llvm::FPPassManager::doFinalization(llvm::Module&) /home/sberg/llvm/test/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1470:13
#14 0x00007fc4d883280d (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/sberg/llvm/test/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1557:13
#15 0x00007fc4d883280d llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/sberg/llvm/test/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:539:44
#16 0x00007fc4dc71ae36 (anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline(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>>&) /home/sberg/llvm/test/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1245:9
#17 0x00007fc4dc71ae36 (anonymous namespace)::EmitAssemblyHelper::emitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /home/sberg/llvm/test/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1268:3
#18 0x00007fc4dc71ae36 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/sberg/llvm/test/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1433:13
#19 0x00007fc4dca854d0 std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>::~unique_ptr() /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/unique_ptr.h:398:6
#20 0x00007fc4dca854d0 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home/sberg/llvm/test/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:315:3
#21 0x00007fc4d6057d29 __gnu_cxx::__normal_iterator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>*, std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>>::__normal_iterator(std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>* const&) /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_iterator.h:1059:20
#22 0x00007fc4d6057d29 std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>::begin() /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_vector.h:999:16
#23 0x00007fc4d6057d29 void clang::finalize<std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>>(std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>&, clang::Sema const&) /home/sberg/llvm/test/llvm-project/clang/include/clang/Sema/TemplateInstCallback.h:54:16
#24 0x00007fc4d6057d29 clang::ParseAST(clang::Sema&, bool, bool) /home/sberg/llvm/test/llvm-project/clang/lib/Parse/ParseAST.cpp:191:3
#25 0x00007fc4dad43b66 clang::FrontendAction::Execute() /home/sberg/llvm/test/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1030:10
#26 0x00007fc4dacb0a0d llvm::Error::getPtr() const /home/sberg/llvm/test/llvm-project/llvm/include/llvm/Support/Error.h:278:42
#27 0x00007fc4dacb0a0d llvm::Error::operator bool() /home/sberg/llvm/test/llvm-project/llvm/include/llvm/Support/Error.h:241:16
#28 0x00007fc4dacb0a0d clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/sberg/llvm/test/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1055:23
#29 0x00007fc4def0905b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/sberg/llvm/test/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:300:25
#30 0x00000000004132bc cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/sberg/llvm/test/llvm-project/clang/tools/driver/cc1_main.cpp:294:15
#31 0x000000000040f64b ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /home/sberg/llvm/test/llvm-project/clang/tools/driver/driver.cpp:218:12
#32 0x00007fc4da8ae409 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_0::operator()() const /home/sberg/llvm/test/llvm-project/clang/lib/Driver/Job.cpp:435:30
#33 0x00007fc4da8ae409 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::$_0>(long) /home/sberg/llvm/test/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#34 0x00007fc4d82d224e llvm::function_ref<void ()>::operator()() const (/home/sberg/llvm/test/inst/bin/../lib/libLLVMSupport.so.21.0git+0xd224e)
#35 0x00007fc4d82d224e llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /home/sberg/llvm/test/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:426:3
#36 0x00007fc4da8ad683 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const /home/sberg/llvm/test/llvm-project/clang/lib/Driver/Job.cpp:435:7
#37 0x00007fc4da86ff3c clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const /home/sberg/llvm/test/llvm-project/clang/lib/Driver/Compilation.cpp:196:15
#38 0x00007fc4da870157 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const /home/sberg/llvm/test/llvm-project/clang/lib/Driver/Compilation.cpp:251:13
#39 0x00007fc4da88d3c8 llvm::SmallVectorBase<unsigned int>::empty() const /home/sberg/llvm/test/llvm-project/llvm/include/llvm/ADT/SmallVector.h:81:46
#40 0x00007fc4da88d3c8 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) /home/sberg/llvm/test/llvm-project/clang/lib/Driver/Driver.cpp:2223:23
#41 0x000000000040ef64 clang_main(int, char**, llvm::ToolContext const&) /home/sberg/llvm/test/llvm-project/clang/tools/driver/driver.cpp:402:21
#42 0x000000000041d7c7 main /home/sberg/llvm/test/build/tools/clang/tools/driver/clang-driver.cpp:17:10
#43 0x00007fc4d7c105f5 __libc_start_call_main (/lib64/libc.so.6+0x35f5)
#44 0x00007fc4d7c106a8 __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x36a8)
#45 0x000000000040d1c5 _start (/home/sberg/llvm/test/inst/bin/clang+0x40d1c5)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 21.0.0git ([email protected]:llvm/llvm-project.git ecd4c0857b69e2c3f592d805bafde8e9f6a19005)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/sberg/llvm/test/inst/bin
Build config: +assertions
clang: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/test-ce5006.c
clang: note: diagnostic msg: /tmp/test-ce5006.sh
clang: note: diagnostic msg: 

********************

(where /tmp/test-ce5006.sh is

# Crash reproducer for clang version 21.0.0git ([email protected]:llvm/llvm-project.git ecd4c0857b69e2c3f592d805bafde8e9f6a19005)
# Driver args: "-fsanitize=address" "-fsanitize=undefined" "-c" "-g" "-O2" "/home/sberg/lo/core/test.c"
# Original command:  "/home/sberg/llvm/test/inst/bin/clang-21" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-obj" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "test.c" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-mframe-pointer=none" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-debug-info-kind=constructor" "-dwarf-version=5" "-debugger-tuning=gdb" "-fdebug-compilation-dir=/home/sberg/lo/core" "-fcoverage-compilation-dir=/home/sberg/lo/core" "-resource-dir" "/home/sberg/llvm/test/inst/lib/clang/21" "-internal-isystem" "/home/sberg/llvm/test/inst/lib/clang/21/include" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/lib/gcc/x86_64-redhat-linux/15/../../../../x86_64-redhat-linux/include" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-O2" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fskip-odr-check-in-gmf" "-fcolor-diagnostics" "-vectorize-loops" "-vectorize-slp" "-fsanitize=address,alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound" "-fsanitize-recover=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,vla-bound" "-fsanitize-merge=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound" "-fno-sanitize-memory-param-retval" "-fsanitize-address-use-after-scope" "-fsanitize-address-globals-dead-stripping" "-fno-assume-sane-operator-new" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" "test.o" "-x" "c" "/home/sberg/lo/core/test.c"
 "/home/sberg/llvm/test/inst/bin/clang-21" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-obj" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "test.c" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-mframe-pointer=none" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-debug-info-kind=constructor" "-dwarf-version=5" "-debugger-tuning=gdb" "-fdebug-compilation-dir=/home/sberg/lo/core" "-fcoverage-compilation-dir=/home/sberg/lo/core" "-O2" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fskip-odr-check-in-gmf" "-fcolor-diagnostics" "-vectorize-loops" "-vectorize-slp" "-fsanitize=address,alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound" "-fsanitize-recover=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,vla-bound" "-fsanitize-merge=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound" "-fno-sanitize-memory-param-retval" "-fsanitize-address-use-after-scope" "-fsanitize-address-globals-dead-stripping" "-fno-assume-sane-operator-new" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-x" "c" "test-ce5006.c"

).

Then, with 7d4ea77 "[SDAG] Use index type size for offset accumulation" the failure changed slightly to a failed assertion,

location of #dbg_declare must be a pointer
#dbg_declare(i64 %18, !26, !DIExpression(), !38)
i64 %18
clang: /home/sberg/llvm/test/llvm-project/llvm/lib/IR/DataLayout.cpp:756: unsigned int llvm::DataLayout::getIndexTypeSizeInBits(Type *) const: Assertion `Ty->isPtrOrPtrVectorTy() && "This should only be called with a pointer or pointer vector type"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /home/sberg/llvm/test/inst/bin/clang -fsanitize=address -fsanitize=undefined -c -g -O2 /home/sberg/lo/core/test.c
1.	<eof> parser at end of file
2.	Code generation
3.	Running pass 'Function Pass Manager' on module '/home/sberg/lo/core/test.c'.
4.	Running pass 'X86 DAG->DAG Instruction Selection' on function '@main'
 #0 0x00007f123279b428 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/sberg/llvm/test/llvm-project/llvm/lib/Support/Unix/Signals.inc:804:13
 #1 0x00007f12327992d0 llvm::sys::RunSignalHandlers() /home/sberg/llvm/test/llvm-project/llvm/lib/Support/Signals.cpp:106:18
 #2 0x00007f12326d2506 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /home/sberg/llvm/test/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:73:5
 #3 0x00007f12326d2506 CrashRecoverySignalHandler(int) /home/sberg/llvm/test/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:390:51
 #4 0x00007f1232026df0 __restore_rt (/lib64/libc.so.6+0x19df0)
 #5 0x00007f123208027c __pthread_kill_implementation (/lib64/libc.so.6+0x7327c)
 #6 0x00007f1232026cbe gsignal (/lib64/libc.so.6+0x19cbe)
 #7 0x00007f123200e6d6 abort (/lib64/libc.so.6+0x16d6)
 #8 0x00007f123200e639 __assert_perror_fail (/lib64/libc.so.6+0x1639)
 #9 0x00007f1232b6c316 llvm::Type::isPointerTy() const /home/sberg/llvm/test/llvm-project/llvm/include/llvm/IR/Type.h:264:49
#10 0x00007f1232b6c316 llvm::Type::isPtrOrPtrVectorTy() const /home/sberg/llvm/test/llvm-project/llvm/include/llvm/IR/Type.h:267:61
#11 0x00007f1232b6c316 llvm::DataLayout::getIndexTypeSizeInBits(llvm::Type*) const /home/sberg/llvm/test/llvm-project/llvm/lib/IR/DataLayout.cpp:755:3
#12 0x00007f1231cfb5c4 llvm::APInt::APInt(unsigned int, unsigned long, bool, bool) /home/sberg/llvm/test/llvm-project/llvm/include/llvm/ADT/APInt.h:113:9
#13 0x00007f1231cfb5c4 processDbgDeclare(llvm::FunctionLoweringInfo&, llvm::Value const*, llvm::DIExpression*, llvm::DILocalVariable*, llvm::DebugLoc) /home/sberg/llvm/test/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1567:9
#14 0x00007f1231ce92c5 llvm::TrackingMDRef::untrack() /home/sberg/llvm/test/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:89:9
#15 0x00007f1231ce92c5 llvm::TrackingMDRef::~TrackingMDRef() /home/sberg/llvm/test/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:55:22
#16 0x00007f1231ce92c5 llvm::TypedTrackingMDRef<llvm::MDNode>::~TypedTrackingMDRef() /home/sberg/llvm/test/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:106:26
#17 0x00007f1231ce92c5 llvm::DebugLoc::~DebugLoc() /home/sberg/llvm/test/llvm-project/llvm/include/llvm/IR/DebugLoc.h:33:9
#18 0x00007f1231ce92c5 processSingleLocVars(llvm::FunctionLoweringInfo&, llvm::FunctionVarLocs const*) /home/sberg/llvm/test/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1622:5
#19 0x00007f1231ce92c5 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/sberg/llvm/test/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1690:5
#20 0x00007f1231ce7a22 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/sberg/llvm/test/inst/bin/../lib/../lib/libLLVMSelectionDAG.so.21.0git+0x2e7a22)
#21 0x00007f1231ce50f0 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) /home/sberg/llvm/test/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:374:20
#22 0x00007f123634e1bf llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/sberg/llvm/test/inst/bin/../lib/libLLVMCodeGen.so.21.0git+0x34e1bf)
#23 0x00007f1232c31fd5 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/sberg/llvm/test/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1406:27
#24 0x00007f1232c38852 llvm::FPPassManager::runOnModule(llvm::Module&) /home/sberg/llvm/test/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1452:13
#25 0x00007f1232c326ff (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) (/home/sberg/llvm/test/inst/bin/../lib/libLLVMCore.so.21.0git+0x2326ff)
#26 0x00007f1232c326ff llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/sberg/llvm/test/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:539:44
#27 0x00007f1236b1ae36 (anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline(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>>&) /home/sberg/llvm/test/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1245:9
#28 0x00007f1236b1ae36 (anonymous namespace)::EmitAssemblyHelper::emitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /home/sberg/llvm/test/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1268:3
#29 0x00007f1236b1ae36 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/sberg/llvm/test/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1433:13
#30 0x00007f1236e854d0 std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>::~unique_ptr() /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/unique_ptr.h:398:6
#31 0x00007f1236e854d0 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home/sberg/llvm/test/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:315:3
#32 0x00007f12304d9d29 __gnu_cxx::__normal_iterator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>*, std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>>::__normal_iterator(std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>* const&) /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_iterator.h:1059:20
#33 0x00007f12304d9d29 std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>::begin() /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_vector.h:999:16
#34 0x00007f12304d9d29 void clang::finalize<std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>>(std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>&, clang::Sema const&) /home/sberg/llvm/test/llvm-project/clang/include/clang/Sema/TemplateInstCallback.h:54:16
#35 0x00007f12304d9d29 clang::ParseAST(clang::Sema&, bool, bool) /home/sberg/llvm/test/llvm-project/clang/lib/Parse/ParseAST.cpp:191:3
#36 0x00007f1235143b66 clang::FrontendAction::Execute() /home/sberg/llvm/test/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1030:10
#37 0x00007f12350b0a0d llvm::Error::getPtr() const /home/sberg/llvm/test/llvm-project/llvm/include/llvm/Support/Error.h:278:42
#38 0x00007f12350b0a0d llvm::Error::operator bool() /home/sberg/llvm/test/llvm-project/llvm/include/llvm/Support/Error.h:241:16
#39 0x00007f12350b0a0d clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/sberg/llvm/test/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1055:23
#40 0x00007f12393e705b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/sberg/llvm/test/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:300:25
#41 0x00000000004132bc cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/sberg/llvm/test/llvm-project/clang/tools/driver/cc1_main.cpp:294:15
#42 0x000000000040f64b ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /home/sberg/llvm/test/llvm-project/clang/tools/driver/driver.cpp:218:12
#43 0x00007f1234cae409 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_0::operator()() const /home/sberg/llvm/test/llvm-project/clang/lib/Driver/Job.cpp:435:30
#44 0x00007f1234cae409 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::$_0>(long) /home/sberg/llvm/test/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#45 0x00007f12326d224e llvm::function_ref<void ()>::operator()() const (/home/sberg/llvm/test/inst/bin/../lib/libLLVMSupport.so.21.0git+0xd224e)
#46 0x00007f12326d224e llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /home/sberg/llvm/test/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:426:3
#47 0x00007f1234cad683 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const /home/sberg/llvm/test/llvm-project/clang/lib/Driver/Job.cpp:435:7
#48 0x00007f1234c6ff3c clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const /home/sberg/llvm/test/llvm-project/clang/lib/Driver/Compilation.cpp:196:15
#49 0x00007f1234c70157 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const /home/sberg/llvm/test/llvm-project/clang/lib/Driver/Compilation.cpp:251:13
#50 0x00007f1234c8d3c8 llvm::SmallVectorBase<unsigned int>::empty() const /home/sberg/llvm/test/llvm-project/llvm/include/llvm/ADT/SmallVector.h:81:46
#51 0x00007f1234c8d3c8 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) /home/sberg/llvm/test/llvm-project/clang/lib/Driver/Driver.cpp:2223:23
#52 0x000000000040ef64 clang_main(int, char**, llvm::ToolContext const&) /home/sberg/llvm/test/llvm-project/clang/tools/driver/driver.cpp:402:21
#53 0x000000000041d7c7 main /home/sberg/llvm/test/build/tools/clang/tools/driver/clang-driver.cpp:17:10
#54 0x00007f12320105f5 __libc_start_call_main (/lib64/libc.so.6+0x35f5)
#55 0x00007f12320106a8 __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x36a8)
#56 0x000000000040d1c5 _start (/home/sberg/llvm/test/inst/bin/clang+0x40d1c5)
clang: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 21.0.0git ([email protected]:llvm/llvm-project.git 7d4ea771c4817bdb042ebc6a2aa35f877785edcf)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/sberg/llvm/test/inst/bin
Build config: +assertions
clang: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/test-9df3ae.c
clang: note: diagnostic msg: /tmp/test-9df3ae.sh
clang: note: diagnostic msg: 

********************

(where /tmp/test-9df3ae.sh is

# Crash reproducer for clang version 21.0.0git ([email protected]:llvm/llvm-project.git 7d4ea771c4817bdb042ebc6a2aa35f877785edcf)
# Driver args: "-fsanitize=address" "-fsanitize=undefined" "-c" "-g" "-O2" "/home/sberg/lo/core/test.c"
# Original command:  "/home/sberg/llvm/test/inst/bin/clang-21" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-obj" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "test.c" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-mframe-pointer=none" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-debug-info-kind=constructor" "-dwarf-version=5" "-debugger-tuning=gdb" "-fdebug-compilation-dir=/home/sberg/lo/core" "-fcoverage-compilation-dir=/home/sberg/lo/core" "-resource-dir" "/home/sberg/llvm/test/inst/lib/clang/21" "-internal-isystem" "/home/sberg/llvm/test/inst/lib/clang/21/include" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/lib/gcc/x86_64-redhat-linux/15/../../../../x86_64-redhat-linux/include" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-O2" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fskip-odr-check-in-gmf" "-fcolor-diagnostics" "-vectorize-loops" "-vectorize-slp" "-fsanitize=address,alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound" "-fsanitize-recover=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,vla-bound" "-fsanitize-merge=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound" "-fno-sanitize-memory-param-retval" "-fsanitize-address-use-after-scope" "-fsanitize-address-globals-dead-stripping" "-fno-assume-sane-operator-new" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" "test.o" "-x" "c" "/home/sberg/lo/core/test.c"
 "/home/sberg/llvm/test/inst/bin/clang-21" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-obj" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "test.c" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-mframe-pointer=none" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-debug-info-kind=constructor" "-dwarf-version=5" "-debugger-tuning=gdb" "-fdebug-compilation-dir=/home/sberg/lo/core" "-fcoverage-compilation-dir=/home/sberg/lo/core" "-O2" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fskip-odr-check-in-gmf" "-fcolor-diagnostics" "-vectorize-loops" "-vectorize-slp" "-fsanitize=address,alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound" "-fsanitize-recover=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,vla-bound" "-fsanitize-merge=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound" "-fno-sanitize-memory-param-retval" "-fsanitize-address-use-after-scope" "-fsanitize-address-globals-dead-stripping" "-fno-assume-sane-operator-new" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-x" "c" "test-9df3ae.c"

).

Metadata

Metadata

Assignees

No one assigned

    Labels

    crashPrefer [crash-on-valid] or [crash-on-invalid]debuginfoduplicateResolved as duplicate

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions