bridge: set debug info version

Otherwise some LLVM tools (e.g. llvm-as) will warn on our IR.

Change-Id: I746dcb054fa94426eb4f4fa1a39ee69b870b8e70
Reviewed-on: https://go-review.googlesource.com/c/141179
Reviewed-by: Than McIntosh <thanm@google.com>
diff --git a/bridge/go-llvm-dibuildhelper.cpp b/bridge/go-llvm-dibuildhelper.cpp
index aa83d7e..00f64b2 100644
--- a/bridge/go-llvm-dibuildhelper.cpp
+++ b/bridge/go-llvm-dibuildhelper.cpp
@@ -23,6 +23,7 @@
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/IR/Function.h"
 #include "llvm/IR/Instructions.h"
+#include "llvm/IR/Module.h"
 #include "llvm/Support/FileSystem.h"
 
 DIBuildHelper::DIBuildHelper(llvm::Module *module,
@@ -52,6 +53,10 @@
                                     "llvm-goc", isOptimized,
                                     compileFlags, runtimeVersion);
   pushDIScope(moduleScope_);
+
+  module_->addModuleFlag(llvm::Module::Warning, "Debug Info Version",
+                         llvm::DEBUG_METADATA_VERSION);
+  module_->addModuleFlag(llvm::Module::Warning, "Dwarf Version", 4);
 }
 
 void DIBuildHelper::finalize()
diff --git a/unittests/BackendCore/BackendDebugEmit.cpp b/unittests/BackendCore/BackendDebugEmit.cpp
index face485..327bc5f 100644
--- a/unittests/BackendCore/BackendDebugEmit.cpp
+++ b/unittests/BackendCore/BackendDebugEmit.cpp
@@ -34,8 +34,8 @@
       entry:
         %x = alloca i32
         store i32 0, i32* %x
-        call void @llvm.dbg.declare(metadata i32* %x, metadata !3,
-                                    metadata !DIExpression()), !dbg !10
+        call void @llvm.dbg.declare(metadata i32* %x, metadata !5,
+                                    metadata !DIExpression()), !dbg !12
         ret void
       }
   )RAW_RESULT";
@@ -67,8 +67,8 @@
   const char *exp = R"RAW_RESULT(
     define void @foo(i8* nest %nest.0, { i64, i64, i64 }* byval %p0) #0 {
     entry:
-      call void @llvm.dbg.declare(metadata { i64, i64, i64 }* %p0, metadata !3,
-                                  metadata !DIExpression()), !dbg !16
+      call void @llvm.dbg.declare(metadata { i64, i64, i64 }* %p0, metadata !5,
+                                  metadata !DIExpression()), !dbg !18
       ret void
     }
   )RAW_RESULT";
@@ -171,10 +171,10 @@
   h.mkLocal("x", bu32t);
 
   const char *exp = R"RAW_RESULT(
-    define void @foo(i8* nest %nest.0) #0 !dbg !3 {
+    define void @foo(i8* nest %nest.0) #0 !dbg !5 {
     entry:
       %x = alloca i32
-      ret void, !dbg !8
+      ret void, !dbg !10
     }
   )RAW_RESULT";