nathanchance wrote: I see a crash from an unreachable statement while building the Linux kernel with debug info enabled after this change. A trivial reproducer from `cvise`:
```c struct { int num_counters; long value[] __attribute__((__counted_by__(num_counters))); } agent_send_response_port_num; ``` ``` $ clang -g -c -o /dev/null agent.i type should have been unwrapped! UNREACHABLE executed at /mnt/nvme/tmp/cvise.DVoC71ctTu/src/clang/lib/CodeGen/CGDebugInfo.cpp:3681! 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: clang -g -c -o /dev/null agent.i 1. <eof> parser at end of file #0 0x0000564a42c9f028 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x534c028) #1 0x0000564a42c9cc6e llvm::sys::RunSignalHandlers() (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x5349c6e) #2 0x0000564a42c1f526 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0 #3 0x00007f91646c5770 (/usr/lib/libc.so.6+0x3c770) #4 0x00007f916471632c (/usr/lib/libc.so.6+0x8d32c) #5 0x00007f91646c56c8 raise (/usr/lib/libc.so.6+0x3c6c8) #6 0x00007f91646ad4b8 abort (/usr/lib/libc.so.6+0x244b8) #7 0x0000564a42c2522f (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x52d222f) #8 0x0000564a42f3ccf1 (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x55e9cf1) #9 0x0000564a42f2aeab clang::CodeGen::CGDebugInfo::getOrCreateType(clang::QualType, llvm::DIFile*) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x55d7eab) #10 0x0000564a42f31090 clang::CodeGen::CGDebugInfo::createFieldType(llvm::StringRef, clang::QualType, clang::SourceLocation, clang::AccessSpecifier, unsigned long, unsigned int, llvm::DIFile*, llvm::DIScope*, clang::RecordDecl const*, llvm::MDTupleTypedArrayWrapper<llvm::DINode>) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x55de090) #11 0x0000564a42f31dd2 clang::CodeGen::CGDebugInfo::CollectRecordNormalField(clang::FieldDecl const*, unsigned long, llvm::DIFile*, llvm::SmallVectorImpl<llvm::Metadata*>&, llvm::DIType*, clang::RecordDecl const*) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x55dedd2) #12 0x0000564a42f322f8 clang::CodeGen::CGDebugInfo::CollectRecordFields(clang::RecordDecl const*, llvm::DIFile*, llvm::SmallVectorImpl<llvm::Metadata*>&, llvm::DICompositeType*) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x55df2f8) #13 0x0000564a42f3765d clang::CodeGen::CGDebugInfo::CreateTypeDefinition(clang::RecordType const*) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x55e465d) #14 0x0000564a42f37b3d clang::CodeGen::CGDebugInfo::CreateType(clang::RecordType const*) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x55e4b3d) #15 0x0000564a42f3ca03 clang::CodeGen::CGDebugInfo::CreateTypeNode(clang::QualType, llvm::DIFile*) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x55e9a03) #16 0x0000564a42f2aeab clang::CodeGen::CGDebugInfo::getOrCreateType(clang::QualType, llvm::DIFile*) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x55d7eab) #17 0x0000564a42f475b4 clang::CodeGen::CGDebugInfo::EmitGlobalVariable(llvm::GlobalVariable*, clang::VarDecl const*) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x55f45b4) #18 0x0000564a42ea15fd clang::CodeGen::CodeGenModule::EmitGlobalVarDefinition(clang::VarDecl const*, bool) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x554e5fd) #19 0x0000564a42ea2f30 clang::CodeGen::CodeGenModule::EmitTentativeDefinition(clang::VarDecl const*) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x554ff30) #20 0x0000564a44895bd8 clang::Sema::ActOnEndOfTranslationUnit() (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x6f42bd8) #21 0x0000564a4474bf8e clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x6df8f8e) #22 0x0000564a447468be clang::ParseAST(clang::Sema&, bool, bool) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x6df38be) #23 0x0000564a438624af clang::FrontendAction::Execute() (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x5f0f4af) #24 0x0000564a437d6efd clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x5e83efd) #25 0x0000564a43929a58 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x5fd6a58) #26 0x0000564a40e6688f cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x351388f) #27 0x0000564a40e63019 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0 #28 0x0000564a4365bd49 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) Job.cpp:0:0 #29 0x0000564a42c1f2a6 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x52cc2a6) #30 0x0000564a4365b442 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/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x5d08442) #31 0x0000564a43619fb3 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x5cc6fb3) #32 0x0000564a4361a267 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x5cc7267) #33 0x0000564a43637229 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x5ce4229) #34 0x0000564a40e626c9 clang_main(int, char**, llvm::ToolContext const&) (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x350f6c9) #35 0x0000564a40e722b7 main (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x351f2b7) #36 0x00007f91646aecd0 (/usr/lib/libc.so.6+0x25cd0) #37 0x00007f91646aed8a __libc_start_main (/usr/lib/libc.so.6+0x25d8a) #38 0x0000564a40e60a25 _start (/home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin/clang-19+0x350da25) clang: error: clang frontend command failed with exit code 134 (use -v to see invocation) ClangBuiltLinux clang version 19.0.0git (https://github.com/llvm/llvm-project 3eb9ff30959a670559bcba03d149d4c51bf7c9c9) Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /home/nathan/Dev/tmp/cvise.DVoC71ctTu/install/llvm-bad/bin clang: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs. ``` ``` # bad: [75dfa58ea93aa93b97534906778cb3dd24ba841a] [RemoveDIs][NFC] Rename DPMarker->DbgMarker (#85931) # good: [e2fa90fa0a4b7950dd0d7fae6933e89c075d0af0] [lldb/API] Add missing `eBroadcastBitSymbolsChanged` to SBTarget (NFC) (#85883) git bisect start '75dfa58ea93aa93b97534906778cb3dd24ba841a' 'e2fa90fa0a4b7950dd0d7fae6933e89c075d0af0' # bad: [197f3ecf92b91ad1626307a17edf0761f2e4136b] [flang][OpenMP] lower simple array reductions (#84958) git bisect bad 197f3ecf92b91ad1626307a17edf0761f2e4136b # bad: [27df1b23e07009b1450ebb2072abac97e2958b07] [SLPVectorizer] Use TargetFolder (#85800) git bisect bad 27df1b23e07009b1450ebb2072abac97e2958b07 # good: [f375aff594d97fc9f6cf2cffb502882833c15cdd] [RISCV] Add the CSR names from Smrnmi. (#83370) git bisect good f375aff594d97fc9f6cf2cffb502882833c15cdd # bad: [d7e28cd82bd3141093f96f7ce2e7b36f1b115fad] MIPS: Support -m(no-)unaligned-access for r6 (#85174) git bisect bad d7e28cd82bd3141093f96f7ce2e7b36f1b115fad # bad: [4a026b5092d77426b70ab299447af4dbd5a012d9] [AMDGCN] Use ZExt when handling indices in insertment element (#85718) git bisect bad 4a026b5092d77426b70ab299447af4dbd5a012d9 # bad: [3eb9ff30959a670559bcba03d149d4c51bf7c9c9] Turn 'counted_by' into a type attribute and parse it into 'CountAttributedType' (#78000) git bisect bad 3eb9ff30959a670559bcba03d149d4c51bf7c9c9 # good: [b2082a98175b0e5356f23bf21d3dc5b76edea390] Revert "[clang-format][NFC] Delete 100+ redundant #include lines in .cpp files" git bisect good b2082a98175b0e5356f23bf21d3dc5b76edea390 # first bad commit: [3eb9ff30959a670559bcba03d149d4c51bf7c9c9] Turn 'counted_by' into a type attribute and parse it into 'CountAttributedType' (#78000) ``` https://github.com/llvm/llvm-project/pull/78000 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits