I have been trying to compile some Llvm code that I generate, and I am running into a problem assembling my ll code. Here is a snippet of the code I am trying to compile: %loc0 = alloca i32 call void @llvm.dbg.declare( { }* bitcast(i32* %loc0 to { }*), { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1 to { }*) ) I get an error from the second line of code: Invalid reference to global Just to try to get the code to compile, I replaced the reference to %loc0 with null: %loc0 = alloca i32 call void @llvm.dbg.declare( { }* bitcast(i32* null to { }*), { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1 to { }*) ) This code compiles fine, but obviously will not give the end result I want. My current solution is to introduce a temporary variable like this: %loc0 = alloca i32 %loc0_void = bitcast i32* %loc0 to { }* call void @llvm.dbg.declare( { }* %loc0_void, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1 to { }*) ) I would prefer to make the first code snippet work (to avoid adding temporary variables and cluttering up the ll code). But my workaround is alright for now. I am wondering why my first code snippet doesn't compile properly. Am I doing something incorrect? Or is this possibly and LLVM bug of some kind? Thanks a lot, Dave Cope -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080404/d2ab2fc9/attachment.html>