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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits