mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
9f52f307c2
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()`). llvm-svn: 232296
17 lines
501 B
LLVM
17 lines
501 B
LLVM
; RUN: not llvm-as -disable-output <%s 2>&1 | FileCheck %s
|
|
; CHECK: invalid llvm.dbg.value intrinsic expression
|
|
; CHECK-NEXT: call void @llvm.dbg.value({{.*}})
|
|
; CHECK-NEXT: !""
|
|
|
|
define void @foo(i32 %a) {
|
|
entry:
|
|
%s = alloca i32
|
|
call void @llvm.dbg.value(metadata i32* %s, i64 0, metadata !MDLocalVariable(tag: DW_TAG_arg_variable), metadata !"")
|
|
ret void
|
|
}
|
|
|
|
declare void @llvm.dbg.value(metadata, i64, metadata, metadata)
|
|
|
|
!llvm.module.flags = !{!0}
|
|
!0 = !{i32 2, !"Debug Info Version", i32 3}
|