mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-24 06:30:19 +00:00
08e687e684
Verify that debug info intrinsic arguments are valid. (These checks will not recurse through the full debug info graph, so they don't need to be cordoned of in `DebugInfoVerifier`.) With those checks in place, changing the `DbgIntrinsicInst` accessors to downcast to `MDLocalVariable` and `MDExpression` is natural (added isa specializations in `Metadata.h` to support this). Added tests to `test/Verifier` for the new -verify checks, and fixed the debug info in all the in-tree tests. If you have out-of-tree testcases that have started to fail to -verify, hopefully the verify checks are helpful. The most likely problem is that the expression argument is `!{}` (instead of `!MDExpression()`). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232296 91177308-0d34-0410-b5e6-96231b3b80d8
20 lines
819 B
LLVM
20 lines
819 B
LLVM
; RUN: opt < %s -verify -S | FileCheck %s
|
|
|
|
; CHECK: DW_LANG_Mips_Assembler
|
|
|
|
define void @Foo(i32 %a, i32 %b) {
|
|
entry:
|
|
call void @llvm.dbg.declare(metadata i32* null, metadata !1, metadata !MDExpression())
|
|
ret void
|
|
}
|
|
!llvm.dbg.cu = !{!2}
|
|
!llvm.module.flags = !{!5}
|
|
!2 = !MDCompileUnit(language: DW_LANG_Mips_Assembler, producer: "clang version 3.3 ", isOptimized: false, emissionKind: 1, file: !4, enums: !3, retainedTypes: !3, subprograms: !3, globals: !3, imports: !3)
|
|
!3 = !{}
|
|
!0 = !MDLocation(line: 662302, column: 26, scope: !1)
|
|
!1 = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "foo")
|
|
!4 = !MDFile(filename: "scratch.cpp", directory: "/usr/local/google/home/blaikie/dev/scratch")
|
|
|
|
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
|
|
!5 = !{i32 1, !"Debug Info Version", i32 3}
|