diff options
-rw-r--r-- | lib/VMCore/Verifier.cpp | 5 | ||||
-rw-r--r-- | test/CodeGen/Generic/2006-03-27-DebugInfoNULLDeclare.ll | 9 | ||||
-rw-r--r-- | test/DebugInfo/2009-01-15-dbg_declare.ll | 4 |
3 files changed, 8 insertions, 10 deletions
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp index 790a994..384aa3e 100644 --- a/lib/VMCore/Verifier.cpp +++ b/lib/VMCore/Verifier.cpp @@ -1332,6 +1332,11 @@ void Verifier::visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI) { switch (ID) { default: break; + case Intrinsic::dbg_declare: // llvm.dbg.declare + if (Constant *C = dyn_cast<Constant>(CI.getOperand(1))) + Assert1(C && !isa<ConstantPointerNull>(C), + "invalid llvm.dbg.declare intrinsic call", &CI); + break; case Intrinsic::memcpy: case Intrinsic::memmove: case Intrinsic::memset: diff --git a/test/CodeGen/Generic/2006-03-27-DebugInfoNULLDeclare.ll b/test/CodeGen/Generic/2006-03-27-DebugInfoNULLDeclare.ll deleted file mode 100644 index 2f2fb8b..0000000 --- a/test/CodeGen/Generic/2006-03-27-DebugInfoNULLDeclare.ll +++ /dev/null @@ -1,9 +0,0 @@ -; RUN: llvm-as < %s | llc - -declare void @llvm.dbg.declare({ }*, { }*) - -define void @foo() { - call void @llvm.dbg.declare( { }* null, { }* null ) - ret void -} - diff --git a/test/DebugInfo/2009-01-15-dbg_declare.ll b/test/DebugInfo/2009-01-15-dbg_declare.ll index 475949a..3f78d0d 100644 --- a/test/DebugInfo/2009-01-15-dbg_declare.ll +++ b/test/DebugInfo/2009-01-15-dbg_declare.ll @@ -8,7 +8,9 @@ declare void @llvm.dbg.declare({ }*, { }*) nounwind define i32 @isascii(i32 %_c) nounwind { entry: - call void @llvm.dbg.declare({ }* null, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable24 to { }*)) + %j = alloca i32 + %0 = bitcast i32* %j to { }* + call void @llvm.dbg.declare({ }* %0, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable24 to { }*)) unreachable } |