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

Reply via email to