mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
d0dc528032
DIFlagBlockByRefStruct is an unused DIFlag that originally was used by clang to express (Objective-)C block captures in debug info. For the last year Clang has been emitting complex DIExpressions to describe block captures instead, which makes all the code supporting this flag redundant. This patch removes the flag and all supporting "dead" code, so we can reuse the bit for something else in the future. Since this only affects debug info generated by Clang with the block extension this mostly affects Apple platforms and I don't have any bitcode compatibility concerns for removing this. The Verifier will reject debug info that uses the bit and thus degrade gracefully when LTO'ing older bitcode with a newer compiler. rdar://problem/44304813 Differential Revision: https://reviews.llvm.org/D67453 llvm-svn: 372272
20 lines
631 B
LLVM
20 lines
631 B
LLVM
; RUN: llvm-as -disable-output <%s 2>&1| FileCheck %s
|
|
|
|
; CHECK: DIBlockByRefStruct on DICompositeType is no longer supported
|
|
; CHECK: warning: ignoring invalid debug info
|
|
|
|
define void @foo() {
|
|
entry:
|
|
%s = alloca i32
|
|
call void @llvm.dbg.declare(metadata i32* %s, metadata !2, metadata !DIExpression()), !dbg !DILocation(scope: !1)
|
|
ret void
|
|
}
|
|
|
|
declare void @llvm.dbg.declare(metadata, metadata, metadata)
|
|
|
|
!llvm.module.flags = !{!0}
|
|
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
|
!1 = distinct !DISubprogram()
|
|
!2 = !DILocalVariable(scope: !1, type: !3)
|
|
!3 = !DICompositeType(tag: DW_TAG_structure_type, flags: DIFlagReservedBit4)
|