<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62725>62725</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Crash in LiveDebugValues with blockaddresses
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
aeubanks
</td>
</tr>
</table>
<pre>
```
$ cat /tmp/d.ll
; ModuleID = '/tmp/c.ll'
source_filename = "/tmp/b.ll"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
@global = private constant [2 x ptr] [ptr blockaddress(@foo, %bb3), ptr blockaddress(@foo, %bb1)]
define ptr @foo() !dbg !4 {
bb:
br label %bb3
bb1: ; preds = %bb3
call void @llvm.dbg.value(metadata i64 %phi, metadata !10, metadata !DIExpression()), !dbg !20
store i32 0, ptr null, align 4, !dbg !28
%getelementptr = getelementptr i32, ptr null, i64 %phi
store i32 0, ptr %getelementptr, align 4
br label %bb2
bb2: ; preds = %bb2, %bb1
%select = select i1 false, i1 false, i1 false
br i1 %select, label %bb3, label %bb2
bb3: ; preds = %bb2, %bb
%phi = phi i64 [ 0, %bb2 ], [ 1, %bb ]
br label %bb1
}
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare void @llvm.dbg.value(metadata, metadata, metadata) #0
attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3}
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !2, imports: !2, splitDebugInlining: false, nameTableKind: GNU)
!1 = !DIFile(filename: "cfgas_stringformatter.cpp", directory: ".")
!2 = !{}
!3 = !{i32 2, !"Debug Info Version", i32 3}
!4 = distinct !DISubprogram(name: "GetNumericFormat", linkageName: "f", scope: !6, file: !5, line: 980, type: !8, scopeLine: 984, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, declaration: !9, retainedNodes: !2)
!5 = !DIFile(filename: "../../third_party/pdfium/xfa/fgas/crt/cfgas_stringformatter.cpp", directory: ".")
!6 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "CFGAS_StringFormatter", file: !7, line: 25, size: 192, flags: DIFlagTypePassByReference | DIFlagNonTrivial, elements: !2, identifier: "_ZTS21CFGAS_StringFormatter")
!7 = !DIFile(filename: "../../third_party/pdfium/xfa/fgas/crt/cfgas_stringformatter.h", directory: ".")
!8 = distinct !DISubroutineType(types: !2)
!9 = !DISubprogram(name: "GetNumericFormat", linkageName: "f", scope: !6, file: !7, line: 77, type: !8, scopeLine: 77, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized)
!10 = !DILocalVariable(name: "index", arg: 2, scope: !11, file: !12, line: 263, type: !17)
!11 = distinct !DISubprogram(name: "operator[]", linkageName: "_ZNK6pdfium4spanIKwEixEm", scope: !13, file: !12, line: 263, type: !15, scopeLine: 263, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, declaration: !16, ret
ainedNodes: !2)
!12 = !DIFile(filename: "../../third_party/pdfium/third_party/base/span.h", directory: ".")
!13 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "span", scope: !14, file: !12, line: 179, size: 128, flags: DIFlagTypePassByValue | DIFlagNonTrivial, elements: !2, templateParams: !2, identifier: "_ZTSN6pdfium4spanIKwEE")
!14 = !DINamespace(name: "pdfium", scope: null)
!15 = distinct !DISubroutineType(types: !2)
!16 = !DISubprogram(name: "operator[]", linkageName: "_ZNK6pdfium4spanIKwEixEm", scope: !13, file: !12, line: 263, type: !15, scopeLine: 263, flags: DIFlagPublic | DIFlagPrototyped, spFlags: DISPFlagOptimized)
!17 = !DIDerivedType(tag: DW_TAG_typedef, name: "size_t", file: !18, line: 46, baseType: !19)
!18 = !DIFile(filename: "../../third_party/llvm-build/Release+Asserts/lib/clang/17/include/stddef.h", directory: ".")
!19 = !DIBasicType(name: "unsigned long", size: 64, encoding: DW_ATE_unsigned)
!20 = !DILocation(line: 0, scope: !11, inlinedAt: !21)
!21 = distinct !DILocation(line: 1011, column: 13, scope: !22)
!22 = distinct !DILexicalBlock(scope: !23, file: !5, line: 1011, column: 13)
!23 = distinct !DILexicalBlock(scope: !24, file: !5, line: 1010, column: 40)
!24 = distinct !DILexicalBlock(scope: !25, file: !5, line: 997, column: 66)
!25 = distinct !DILexicalBlock(scope: !26, file: !5, line: 996, column: 16)
!26 = distinct !DILexicalBlock(scope: !27, file: !5, line: 991, column: 9)
!27 = distinct !DILexicalBlock(scope: !4, file: !5, line: 990, column: 36)
!28 = !DILocation(line: 151, column: 41, scope: !29, inlinedAt: !35)
!29 = distinct !DISubprogram(name: "operator const wchar_t *", linkageName: "_ZNK5fxcrt10UnownedPtrIKwEcvPS1_Ev", scope: !31, file: !30, line: 151, type: !33, scopeLine: 151, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, declaration: !34, retainedNodes: !2)
!30 = !DIFile(filename: "../../third_party/pdfium/core/fxcrt/unowned_ptr.h", directory: ".")
!31 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "UnownedPtr", scope: !32, file: !30, line: 56, size: 64, flags: DIFlagTypePassByValue | DIFlagNonTrivial, elements: !2, templateParams: !2, identifier: "_ZTSN5fxcrt10UnownedPtrIKwEE")
!32 = !DINamespace(name: "fxcrt", scope: null)
!33 = distinct !DISubroutineType(types: !2)
!34 = !DISubprogram(name: "operator const wchar_t *", linkageName: "_ZNK5fxcrt10UnownedPtrIKwEcvPS1_Ev", scope: !31, file: !30, line: 151, type: !33, scopeLine: 151, flags: DIFlagPublic | DIFlagPrototyped, spFlags: DISPFlagOptimized)
!35 = distinct !DILocation(line: 265, column: 28, scope: !11, inlinedAt: !21)
$ ./build/rel/bin/llc -o /dev/null /tmp/d.ll
llc: ../../llvm/include/llvm/ADT/DenseMap.h:651: bool llvm::DenseMapBase<llvm::SmallDenseMap<LiveDebugValues::ValueIDNum, TransferTracker::LocationAndQuality>, LiveDebugValues::ValueIDNum, TransferTracker::LocationAndQuality, llvm::DenseMapInfo<ValueIDNum>, llvm::detail::DenseMapPa
ir<LiveDebugValues::ValueIDNum, TransferTracker::LocationAndQuality>>::LookupBucketFor(const LookupKeyT &, const BucketT *&) const [DerivedT = llvm::SmallDenseMap<LiveDebugValues::ValueIDNum, TransferTracker::LocationAndQuality>, KeyT = LiveDebugValues::ValueIDNum, ValueT = Transfe
rTracker::LocationAndQuality, KeyInfoT = llvm::DenseMapInfo<ValueIDNum>, BucketT = llvm::detail::DenseMapPair<LiveDebugValues::ValueIDNum, TransferTracker::LocationAndQuality>, LookupKeyT = LiveDebugValues::ValueIDNum]: Assertion `!KeyInfoT::isEqual(Val, EmptyKey) && !KeyInfoT::isE
qual(Val, TombstoneKey) && "Empty/Tombstone value shouldn't be inserted into map!"' failed.
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWttv2ziX_2uYFyKGRFqy_JAHX6IiaCebnXg6wLwYlETb3FCklqSSeP76BUnZukR10k53vvm-InAl6hyey-_caJlozfaC0hsQLUG0viK1OUh1Q2idEfGkrzJZHG9AHDR_wRoEC4CmMCcGApSasgIoLSacw-YZXsJfZFFzereGAK8hQLMzXT7hHKBZQ6plrXK63TFOBSlpQ43O1JmjRg21IWpPDSyIIZwcZW1O9PS6BHhBrys0CwBeYOQ-7G3Yv7VX8dR9XLPTxS6xTCFKrkViL-ITTzy9fgxR8kYBo1jFz8q-JvE2nl7X4knIF3HNmahfr_eibtlOfpkGey4zwh1npdgzMRTmUmhDhIEgWiL4CiujQLS2d5VRMOMyfyJFoajWACVgGuykBGgFAYqyDAM0tzfvU4aW0m7bVaigOyao4z6RJwDNIUBhke3tf1MIZsuGOssAPnFCmCnISUZ5o0h_YysPL-B3_bNRUyla6Mav3V1hTjiHz5IVVlHOn8tJke0nz4TXFKCkpIbYoIAsnlrO6sCs4edlgMIwGK6s725fK-ssJoW3u3Fmaz0KzgpoIxWFDCMYnBwuahubK0g42ws4HbAmZ1aAoj01lNOSCuN8jdewv8IwGu7amnJJh-HeHX2-gRRqYrHBCf0MnFAbZl2rNeU09znaXLIQ7gjX1Bk4dt2qzMJ2C0vSDbbB_cAk7ML0kpYdHZ1_bTYemHd5tPTe9SwQRGt3Fy1heF52q6PeDRtVZuuuTlaZtBa5YVLAhTFKWxWFtFGdkfwJCrlTlEIh9VHkUMhavDBRQF3RvObEkIxT-MI4V9TUSsCSllIdAUqEFNRGbZPNOSeKvp8m3UzoX9vUx0FXdWKMYlltqHaPvDdny5-oPBw6C4VnzfO6gS8EsyVAYdDSNlSl6zOTHSd73afFb_f16hdMGyZsYNoisJJlxTj9TTADUMKJ2NdkTy0-69-3Xxb3n7arbcVr7T9Cl-a2XbkgQ6ELCqb_qzKsZH_Swi4bVbuoVrUwrKRfqXI1Bi98ZNGSuaLzmQlHntacr2lW791DUZe62dsFrKKGMEGLzbGivQe-lfSWWFlJZXpLuuLMuN3vBGeCib19ek4823Q3FqGTMp_ufzsHlDXv5NP1XWqNRsmpVXshKN_tid5qo5jY76QqiTFUTfKqcl18BQumaG4s4J5-4tZbAagLWgdc3Fm3Fa9J3hAg5KyBd2In4cm1Xpalw91NpiN4P9ZZpeRekdKGYGvIJ2ru65IqlqfOjGZPzsQT2dP7lnDXPNG5rE5REA-iImpY3f08cbCb45k8OfN_OdP4wLJh7GLvLuVk_6CkkZavgGC2ahYXnK8I53pNda5YRgsPc9qyPj7Ym7Vt7syVHM_sl9tIRStY26j3OjkdfQkhpglXgMJ5NwbvZdGNwRbF6L0wmUwASt2HOTBVbCuizBGgtCp2rC4BSl93BKDUBpOdEZWxn38xtOJvZLvUzFCbTgAlhuybVN8sPm1zTrTeOqCa3Gi2XqWfFo_bR6dKelKlUaMD-6wLO3JBoNmf7i6coxGArRYPROvl8Ve6o4qKnHaQvpdio9gzI24gaJp8P-ELKgzbMaoaRbd_bB5R-G11W-_M_j7IDh8ELBlPVyVrw8QZsX4dbLnnrUF_S473wJ7N3k1xT_LNDP9GFnfStVOVg9bWL7YRfyWK2SreN5eJgr42lhDlAv2NVb6BdRsa6gVxjAeGWbs7moTfUWJlRRUxUvlj5jedv_3j_nPso2yqKyLuPr_cstfbcgSTEH-v9tEbXBqif17p9RGnqGkmsYsVuG2kP5zP_eWM2AkhtQB8OIGbrv1TSq4VPIb4mwGsh3g4m_eqLkouVt2vdjL-ropraFlxYugDUaR8vxbfDwP5duiyaYubzQFdkXyQxieA-r7w58TORtFfqp5Nt_zPyd864yzvQPuDlbbTJtdUsWc_iL8JY7cx3Q1jmP1Jt-btnOC7w8nKqctzm2-bjqHznhrJj2a3PSRdZzXjBUDpr5RTl9bLhdbUnhRQyllmG7c9-ACU2uqeMpHzunDZb4qC7j6e_50evCSa5Y2vOnrWwn3XWEAurUDUzdZ46k9AuSyac8r69-1ic7s9MfUODoMeaPzXOCenBuONjtlDEC0Wp9KLwt6eY91sZPMw8LvlktelK9c-kLvyBsccNLYzfWU54Usu8yeAkh73MDF6J4px-R1pY3X4krRhUR1KC_rSpkFP2tgx65K06OJpaT7rC4vjnrCxMndJ2OWj2Twe-LEvbOwIcUnY7LKwAWi9FEez75N1EbL5fIAY7tuVXMydMBooOg3fRPd8LJtw1JMy_4HZ0H8dDl_yA1Fby7O42Gei3WuuTBj8JuSLoMWDUbbb5M8Pj-H29nmk4-DhvIuDXqx70zsdB-M3Hach-udNjHj6odM6Dv7yrJhLZfuD8z5Aae3dv63Mx097eKzY_uCw2MI_Bvmw_fYhj-K3PehfODCOR_RwbMTo3bGxweby1IjHOsXHp0Y8_fjU-G-c2T9nlsSjrett-UVx1C-_KPn-Yab3xfcU2lQ-TYGKcnvHhBsPc3gtIUBpQZ8BSm189N_p-j04z62Qti7YubI3KjYLi_UGoHRNhaa_kGpyAHgRR-5lYCYlh44KLwBenEiWdiDFq_bBY0k4Pz0FePWFPVP3la_LPe2J3PXd-t4WoxXcKCL0jqqNIvmTSyeAFyfPLkTx3zXhzBwBvrXUP3FDG19vLLoTOwnwqrOjl9tSFrZC8z7XA_GeZuqn22z__FP5VFfLOn-iJpUKoMSnpF__TI8bCFAzENl1T7nxqWoHiGYdRMvTWchF9N-InVcSrz8Corvz1I0Q7-GPoPqZHi2MQ_veg_jssR7XONz_D0Db4O5g-QE3RWubmv406IaPOAAoPFnvyZm-_d_aNrjkq29zt2Vljp_p0b8vjIEdk0eYvLf7rBtZZtpIQYfsyG0KUHqmgO61JdQHWfNCADQzMKOQCasqLSATRsKSVP6dEEAzuCOM02Jy-rFF__cqV8UNLuZ4Tq7oTRgn03COUTK7OtyQmE5xFtJ8OpvlUxxjNI92JAqCHY5zUoRX7AYFCAdRGCGMkmA2SfAcJ7MEFzkKs1mMwDSgJWF84l5ISrW_YlrX9CZGMxRduZfD2v20BiFBX6B7aFWO1lfqpjmf7zWYBpxpo9tdDDOc3qwU0QfIxBBK-MLMofejD6qvasVvDsZUDmiUApTumTnU2SSXZVujncxKyf9xr9ZTp5AGKHUK_18AAAD__8GNiqk">