Browse Source

Canonicalize the representation of empty an expression in DIGlobalVariableExpression

This change simplifies code that has to deal with
DIGlobalVariableExpression and mirrors how we treat DIExpressions in
debug info intrinsics. Before this change there were two ways of
representing empty expressions on globals, a nullptr and an empty
!DIExpression().

If someone needs to upgrade out-of-tree testcases:
  perl -pi -e 's/(!DIGlobalVariableExpression\(var: ![0-9]*)\)/\1, expr: !DIExpression())/g' <MYTEST.ll>
will catch 95%.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312144 91177308-0d34-0410-b5e6-96231b3b80d8
Adrian Prantl 8 years ago
parent
commit
69e607f200
100 changed files with 287 additions and 281 deletions
  1. 1 1
      include/llvm/IR/DebugInfoMetadata.h
  2. 1 1
      lib/AsmParser/LLParser.cpp
  3. 13 9
      lib/Bitcode/Reader/MetadataLoader.cpp
  4. 2 0
      lib/IR/DIBuilder.cpp
  5. 1 1
      test/Bitcode/DIGlobalVariableExpression.ll
  6. 2 2
      test/Bitcode/DIGlobalVariableExpression2.ll
  7. 1 1
      test/CodeGen/AArch64/arm64-2011-03-17-AsmPrinterCrash.ll
  8. 1 1
      test/CodeGen/ARM/2010-06-25-Thumb2ITInvalidIterator.ll
  9. 5 5
      test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll
  10. 2 2
      test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll
  11. 4 4
      test/CodeGen/ARM/coalesce-dbgvalue.ll
  12. 1 1
      test/CodeGen/ARM/no-cfi.ll
  13. 1 1
      test/CodeGen/BPF/dwarfdump.ll
  14. 2 2
      test/CodeGen/NVPTX/generic-to-nvvm-ir.ll
  15. 115 115
      test/CodeGen/PowerPC/pr17168.ll
  16. 1 1
      test/CodeGen/PowerPC/pr24546.ll
  17. 1 1
      test/CodeGen/WebAssembly/dbgvalue.ll
  18. 1 1
      test/CodeGen/X86/2010-05-26-DotDebugLoc.ll
  19. 1 1
      test/CodeGen/X86/dwarf-headers.ll
  20. 1 1
      test/CodeGen/X86/fp128-g.ll
  21. 2 2
      test/CodeGen/X86/fpstack-debuginstr-kill.ll
  22. 1 1
      test/CodeGen/X86/machine-outliner-debuginfo.ll
  23. 1 1
      test/CodeGen/X86/misched-code-difference-with-debug.ll
  24. 1 1
      test/CodeGen/X86/null-streamer.ll
  25. 1 1
      test/DebugInfo/AArch64/big-endian.ll
  26. 1 1
      test/DebugInfo/AArch64/bitfields.ll
  27. 2 2
      test/DebugInfo/AArch64/frameindices.ll
  28. 2 2
      test/DebugInfo/AMDGPU/variable-locations.ll
  29. 1 1
      test/DebugInfo/ARM/big-endian-bitfield.ll
  30. 1 1
      test/DebugInfo/ARM/bitfield.ll
  31. 2 2
      test/DebugInfo/ARM/multiple-constant-uses-drops-dbgloc.ll
  32. 1 1
      test/DebugInfo/ARM/tls.ll
  33. 1 1
      test/DebugInfo/COFF/anonymous-struct.ll
  34. 1 1
      test/DebugInfo/COFF/array-odr-violation.ll
  35. 1 1
      test/DebugInfo/COFF/big-type.ll
  36. 3 3
      test/DebugInfo/COFF/bitfields.ll
  37. 1 1
      test/DebugInfo/COFF/enum.ll
  38. 1 1
      test/DebugInfo/COFF/global-dllimport.ll
  39. 2 2
      test/DebugInfo/COFF/globals-discarded.ll
  40. 4 4
      test/DebugInfo/COFF/globals.ll
  41. 1 1
      test/DebugInfo/COFF/inheritance.ll
  42. 1 1
      test/DebugInfo/COFF/inlining-files.ll
  43. 1 1
      test/DebugInfo/COFF/inlining-header.ll
  44. 1 1
      test/DebugInfo/COFF/inlining-levels.ll
  45. 2 2
      test/DebugInfo/COFF/int8-char-type.ll
  46. 1 1
      test/DebugInfo/COFF/long-type-name.ll
  47. 1 1
      test/DebugInfo/COFF/nested-types.ll
  48. 1 1
      test/DebugInfo/COFF/register-variables.ll
  49. 1 1
      test/DebugInfo/COFF/scopes.ll
  50. 4 4
      test/DebugInfo/COFF/types-array-advanced.ll
  51. 1 1
      test/DebugInfo/COFF/types-nested-class.ll
  52. 10 10
      test/DebugInfo/COFF/types-ptr-to-member.ll
  53. 1 1
      test/DebugInfo/COFF/udts.ll
  54. 1 1
      test/DebugInfo/COFF/virtual-method-kinds.ll
  55. 2 2
      test/DebugInfo/COFF/vtable-optzn-array.ll
  56. 1 1
      test/DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll
  57. 1 1
      test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll
  58. 1 1
      test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll
  59. 12 12
      test/DebugInfo/Generic/accel-table-hash-collisions.ll
  60. 2 2
      test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll
  61. 2 2
      test/DebugInfo/Generic/cross-cu-linkonce.ll
  62. 1 1
      test/DebugInfo/Generic/dbg-at-specficiation.ll
  63. 1 1
      test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll
  64. 3 3
      test/DebugInfo/Generic/dwarf-public-names.ll
  65. 1 1
      test/DebugInfo/Generic/enum.ll
  66. 1 1
      test/DebugInfo/Generic/global-sra-array.ll
  67. 1 1
      test/DebugInfo/Generic/global-sra-struct.ll
  68. 1 1
      test/DebugInfo/Generic/global.ll
  69. 2 2
      test/DebugInfo/Generic/gvn.ll
  70. 2 2
      test/DebugInfo/Generic/member-pointers.ll
  71. 2 2
      test/DebugInfo/Generic/namespace.ll
  72. 1 1
      test/DebugInfo/Generic/recursive_inlining.ll
  73. 1 1
      test/DebugInfo/Generic/template-recursive-void.ll
  74. 1 1
      test/DebugInfo/Generic/tu-member-pointer.ll
  75. 1 1
      test/DebugInfo/Generic/typedef.ll
  76. 6 6
      test/DebugInfo/MIR/X86/live-debug-values-spill.mir
  77. 1 1
      test/DebugInfo/MIR/X86/live-debug-values.mir
  78. 1 1
      test/DebugInfo/MIR/X86/mlicm-hoist.mir
  79. 1 1
      test/DebugInfo/Mips/InlinedFnLocalVar.ll
  80. 1 1
      test/DebugInfo/Mips/dwarfdump-tls.ll
  81. 1 1
      test/DebugInfo/Mips/tls.ll
  82. 1 1
      test/DebugInfo/PowerPC/tls-fission.ll
  83. 1 1
      test/DebugInfo/PowerPC/tls.ll
  84. 1 1
      test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll
  85. 1 1
      test/DebugInfo/X86/DIModuleContext.ll
  86. 1 1
      test/DebugInfo/X86/DW_AT_calling-convention.ll
  87. 1 1
      test/DebugInfo/X86/DW_AT_specification.ll
  88. 2 2
      test/DebugInfo/X86/DW_TAG_friend.ll
  89. 2 2
      test/DebugInfo/X86/FrameIndexExprs.ll
  90. 1 1
      test/DebugInfo/X86/InlinedFnLocalVar.ll
  91. 1 1
      test/DebugInfo/X86/PR26148.ll
  92. 1 1
      test/DebugInfo/X86/align_c11.ll
  93. 2 2
      test/DebugInfo/X86/align_cpp11.ll
  94. 1 1
      test/DebugInfo/X86/align_objc.ll
  95. 1 1
      test/DebugInfo/X86/arange-and-stub.ll
  96. 1 1
      test/DebugInfo/X86/arange.ll
  97. 1 1
      test/DebugInfo/X86/atomic-c11-dwarf-4.ll
  98. 1 1
      test/DebugInfo/X86/atomic-c11-dwarf-5.ll
  99. 1 1
      test/DebugInfo/X86/bitfields-dwarf4.ll
  100. 1 1
      test/DebugInfo/X86/bitfields.ll

+ 1 - 1
include/llvm/IR/DebugInfoMetadata.h

@@ -2630,7 +2630,7 @@ public:
   Metadata *getRawExpression() const { return getOperand(1); }
   Metadata *getRawExpression() const { return getOperand(1); }
 
 
   DIExpression *getExpression() const {
   DIExpression *getExpression() const {
-    return cast_or_null<DIExpression>(getRawExpression());
+    return cast<DIExpression>(getRawExpression());
   }
   }
 
 
   static bool classof(const Metadata *MD) {
   static bool classof(const Metadata *MD) {

+ 1 - 1
lib/AsmParser/LLParser.cpp

@@ -4383,7 +4383,7 @@ bool LLParser::ParseDIGlobalVariableExpression(MDNode *&Result,
                                                bool IsDistinct) {
                                                bool IsDistinct) {
 #define VISIT_MD_FIELDS(OPTIONAL, REQUIRED)                                    \
 #define VISIT_MD_FIELDS(OPTIONAL, REQUIRED)                                    \
   REQUIRED(var, MDField, );                                                    \
   REQUIRED(var, MDField, );                                                    \
-  OPTIONAL(expr, MDField, );
+  REQUIRED(expr, MDField, );
   PARSE_MD_FIELDS();
   PARSE_MD_FIELDS();
 #undef VISIT_MD_FIELDS
 #undef VISIT_MD_FIELDS
 
 

+ 13 - 9
lib/Bitcode/Reader/MetadataLoader.cpp

@@ -497,8 +497,8 @@ class MetadataLoader::MetadataLoaderImpl {
           for (unsigned I = 0; I < GVs->getNumOperands(); I++)
           for (unsigned I = 0; I < GVs->getNumOperands(); I++)
             if (auto *GV =
             if (auto *GV =
                     dyn_cast_or_null<DIGlobalVariable>(GVs->getOperand(I))) {
                     dyn_cast_or_null<DIGlobalVariable>(GVs->getOperand(I))) {
-              auto *DGVE =
-                  DIGlobalVariableExpression::getDistinct(Context, GV, nullptr);
+              auto *DGVE = DIGlobalVariableExpression::getDistinct(
+                  Context, GV, DIExpression::get(Context, {}));
               GVs->replaceOperandWith(I, DGVE);
               GVs->replaceOperandWith(I, DGVE);
             }
             }
       }
       }
@@ -510,8 +510,8 @@ class MetadataLoader::MetadataLoaderImpl {
       GV.eraseMetadata(LLVMContext::MD_dbg);
       GV.eraseMetadata(LLVMContext::MD_dbg);
       for (auto *MD : MDs)
       for (auto *MD : MDs)
         if (auto *DGV = dyn_cast_or_null<DIGlobalVariable>(MD)) {
         if (auto *DGV = dyn_cast_or_null<DIGlobalVariable>(MD)) {
-          auto *DGVE =
-              DIGlobalVariableExpression::getDistinct(Context, DGV, nullptr);
+          auto *DGVE = DIGlobalVariableExpression::getDistinct(
+              Context, DGV, DIExpression::get(Context, {}));
           GV.addMetadata(LLVMContext::MD_dbg, *DGVE);
           GV.addMetadata(LLVMContext::MD_dbg, *DGVE);
         } else
         } else
           GV.addMetadata(LLVMContext::MD_dbg, *MD);
           GV.addMetadata(LLVMContext::MD_dbg, *MD);
@@ -1585,7 +1585,8 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
 
 
       DIGlobalVariableExpression *DGVE = nullptr;
       DIGlobalVariableExpression *DGVE = nullptr;
       if (Attach || Expr)
       if (Attach || Expr)
-        DGVE = DIGlobalVariableExpression::getDistinct(Context, DGV, Expr);
+        DGVE = DIGlobalVariableExpression::getDistinct(
+            Context, DGV, Expr ? Expr : DIExpression::get(Context, {}));
       if (Attach)
       if (Attach)
         Attach->addDebugInfo(DGVE);
         Attach->addDebugInfo(DGVE);
 
 
@@ -1648,10 +1649,13 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
       return error("Invalid record");
       return error("Invalid record");
 
 
     IsDistinct = Record[0];
     IsDistinct = Record[0];
-    MetadataList.assignValue(GET_OR_DISTINCT(DIGlobalVariableExpression,
-                                             (Context, getMDOrNull(Record[1]),
-                                              getMDOrNull(Record[2]))),
-                             NextMetadataNo);
+    Metadata *Expr = getMDOrNull(Record[2]);
+    if (!Expr)
+      Expr = DIExpression::get(Context, {});
+    MetadataList.assignValue(
+        GET_OR_DISTINCT(DIGlobalVariableExpression,
+                        (Context, getMDOrNull(Record[1]), Expr)),
+        NextMetadataNo);
     NextMetadataNo++;
     NextMetadataNo++;
     break;
     break;
   }
   }

+ 2 - 0
lib/IR/DIBuilder.cpp

@@ -595,6 +595,8 @@ DIGlobalVariableExpression *DIBuilder::createGlobalVariableExpression(
       VMContext, cast_or_null<DIScope>(Context), Name, LinkageName, F,
       VMContext, cast_or_null<DIScope>(Context), Name, LinkageName, F,
       LineNumber, Ty, isLocalToUnit, true, cast_or_null<DIDerivedType>(Decl),
       LineNumber, Ty, isLocalToUnit, true, cast_or_null<DIDerivedType>(Decl),
       AlignInBits);
       AlignInBits);
+  if (!Expr)
+    Expr = createExpression();
   auto *N = DIGlobalVariableExpression::get(VMContext, GV, Expr);
   auto *N = DIGlobalVariableExpression::get(VMContext, GV, Expr);
   AllGVs.push_back(N);
   AllGVs.push_back(N);
   return N;
   return N;

+ 1 - 1
test/Bitcode/DIGlobalVariableExpression.ll

@@ -13,7 +13,7 @@
 ; CHECK: ![[HVAR:[0-9]+]] = distinct !DIGlobalVariable(name: "h",
 ; CHECK: ![[HVAR:[0-9]+]] = distinct !DIGlobalVariable(name: "h",
 ; CHECK: ![[IMPORTS]] = !{![[CIMPORT:[0-9]+]]}
 ; CHECK: ![[IMPORTS]] = !{![[CIMPORT:[0-9]+]]}
 ; CHECK: ![[CIMPORT]] = !DIImportedEntity({{.*}}entity: ![[HVAR]]
 ; CHECK: ![[CIMPORT]] = !DIImportedEntity({{.*}}entity: ![[HVAR]]
-; CHECK: ![[H]] = {{.*}}!DIGlobalVariableExpression(var: ![[HVAR]])
+; CHECK: ![[H]] = {{.*}}!DIGlobalVariableExpression(var: ![[HVAR]], expr: !DIExpression())
 
 
 @g = common global i32 0, align 4, !dbg !0
 @g = common global i32 0, align 4, !dbg !0
 @h = common global i32 0, align 4, !dbg !11
 @h = common global i32 0, align 4, !dbg !11

+ 2 - 2
test/Bitcode/DIGlobalVariableExpression2.ll

@@ -1,10 +1,10 @@
 ; RUN: llvm-dis -o - %s.bc | FileCheck %s
 ; RUN: llvm-dis -o - %s.bc | FileCheck %s
 
 
 ; CHECK: @g = common global i32 0, align 4, !dbg ![[G:[0-9]+]]
 ; CHECK: @g = common global i32 0, align 4, !dbg ![[G:[0-9]+]]
-; CHECK-DAG: ![[G]] = distinct !DIGlobalVariableExpression(var: ![[GVAR:[0-9]+]])
+; CHECK-DAG: ![[G]] = distinct !DIGlobalVariableExpression(var: ![[GVAR:[0-9]+]], expr: !DIExpression())
 ; CHECK-DAG: distinct !DICompileUnit({{.*}}, globals: ![[GLOBS:[0-9]+]]
 ; CHECK-DAG: distinct !DICompileUnit({{.*}}, globals: ![[GLOBS:[0-9]+]]
 ; CHECK-DAG: ![[GLOBS]] = !{![[GEXPR:[0-9]+]]}
 ; CHECK-DAG: ![[GLOBS]] = !{![[GEXPR:[0-9]+]]}
-; CHECK-DAG: ![[GEXPR]] = distinct !DIGlobalVariableExpression(var: ![[GVAR]])
+; CHECK-DAG: ![[GEXPR]] = distinct !DIGlobalVariableExpression(var: ![[GVAR]], expr: !DIExpression())
 ; CHECK-DAG: ![[GVAR]] = !DIGlobalVariable(name: "g",
 ; CHECK-DAG: ![[GVAR]] = !DIGlobalVariable(name: "g",
 
 
 ; Test the bitcode upgrade for DIGlobalVariable -> DIGlobalVariableExpression.
 ; Test the bitcode upgrade for DIGlobalVariable -> DIGlobalVariableExpression.

+ 1 - 1
test/CodeGen/AArch64/arm64-2011-03-17-AsmPrinterCrash.ll

@@ -31,7 +31,7 @@ attributes #1 = { nounwind readnone }
 !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.0 (http://llvm.org/git/clang.git git:/git/puzzlebox/clang.git/ c4d1aea01c4444eb81bdbf391f1be309127c3cf1)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, globals: !2)
 !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.0 (http://llvm.org/git/clang.git git:/git/puzzlebox/clang.git/ c4d1aea01c4444eb81bdbf391f1be309127c3cf1)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, globals: !2)
 !1 = !DIFile(filename: "print.i", directory: "/Volumes/Ebi/echeng/radars/r9146594")
 !1 = !DIFile(filename: "print.i", directory: "/Volumes/Ebi/echeng/radars/r9146594")
 !2 = !{!3}
 !2 = !{!3}
-!3 = !DIGlobalVariableExpression(var: !4)
+!3 = !DIGlobalVariableExpression(var: !4, expr: !DIExpression())
 !4 = !DIGlobalVariable(name: "vsplive", scope: !5, file: !1, line: 617, type: !8, isLocal: true, isDefinition: true)
 !4 = !DIGlobalVariable(name: "vsplive", scope: !5, file: !1, line: 617, type: !8, isLocal: true, isDefinition: true)
 !5 = distinct !DISubprogram(name: "drt_vsprintf", scope: !1, file: !1, line: 616, type: !6, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0)
 !5 = distinct !DISubprogram(name: "drt_vsprintf", scope: !1, file: !1, line: 616, type: !6, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0)
 !6 = !DISubroutineType(types: !7)
 !6 = !DISubroutineType(types: !7)

+ 1 - 1
test/CodeGen/ARM/2010-06-25-Thumb2ITInvalidIterator.ll

@@ -56,7 +56,7 @@ attributes #2 = { nounwind readnone }
 !llvm.dbg.cu = !{!4}
 !llvm.dbg.cu = !{!4}
 !llvm.module.flags = !{!6, !7}
 !llvm.module.flags = !{!6, !7}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "length", linkageName: "length", scope: !2, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "length", linkageName: "length", scope: !2, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "t.c", directory: "/private/tmp")
 !2 = !DIFile(filename: "t.c", directory: "/private/tmp")
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)

+ 5 - 5
test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll

@@ -83,17 +83,17 @@ attributes #1 = { nounwind readnone }
 !llvm.dbg.cu = !{!12}
 !llvm.dbg.cu = !{!12}
 !llvm.module.flags = !{!15}
 !llvm.module.flags = !{!15}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x1", scope: !2, file: !2, line: 3, type: !3, isLocal: true, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x1", scope: !2, file: !2, line: 3, type: !3, isLocal: true, isDefinition: true)
 !2 = !DIFile(filename: "foo.c", directory: "/tmp/")
 !2 = !DIFile(filename: "foo.c", directory: "/tmp/")
 !3 = !DIBasicType(name: "_Bool", size: 8, align: 8, encoding: DW_ATE_boolean)
 !3 = !DIBasicType(name: "_Bool", size: 8, align: 8, encoding: DW_ATE_boolean)
-!4 = !DIGlobalVariableExpression(var: !5)
+!4 = !DIGlobalVariableExpression(var: !5, expr: !DIExpression())
 !5 = !DIGlobalVariable(name: "x2", scope: !2, file: !2, line: 6, type: !3, isLocal: true, isDefinition: true)
 !5 = !DIGlobalVariable(name: "x2", scope: !2, file: !2, line: 6, type: !3, isLocal: true, isDefinition: true)
-!6 = !DIGlobalVariableExpression(var: !7)
+!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "x3", scope: !2, file: !2, line: 9, type: !3, isLocal: true, isDefinition: true)
 !7 = !DIGlobalVariable(name: "x3", scope: !2, file: !2, line: 9, type: !3, isLocal: true, isDefinition: true)
-!8 = !DIGlobalVariableExpression(var: !9)
+!8 = !DIGlobalVariableExpression(var: !9, expr: !DIExpression())
 !9 = !DIGlobalVariable(name: "x4", scope: !2, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true)
 !9 = !DIGlobalVariable(name: "x4", scope: !2, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true)
-!10 = !DIGlobalVariableExpression(var: !11)
+!10 = !DIGlobalVariableExpression(var: !11, expr: !DIExpression())
 !11 = !DIGlobalVariable(name: "x5", scope: !2, file: !2, line: 15, type: !3, isLocal: false, isDefinition: true)
 !11 = !DIGlobalVariable(name: "x5", scope: !2, file: !2, line: 15, type: !3, isLocal: false, isDefinition: true)
 !12 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2369.8)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !13, retainedTypes: !13, globals: !14, imports: !13)
 !12 = distinct !DICompileUnit(language: DW_LANG_C89, file: !2, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2369.8)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !13, retainedTypes: !13, globals: !14, imports: !13)
 !13 = !{}
 !13 = !{}

+ 2 - 2
test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll

@@ -80,13 +80,13 @@ attributes #1 = { nounwind readnone }
 !llvm.dbg.cu = !{!2}
 !llvm.dbg.cu = !{!2}
 !llvm.module.flags = !{!9}
 !llvm.module.flags = !{!9}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x1", scope: !2, file: !3, line: 4, type: !8, isLocal: true, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x1", scope: !2, file: !3, line: 4, type: !8, isLocal: true, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !3 = !DIFile(filename: "ss3.c", directory: "/private/tmp")
 !3 = !DIFile(filename: "ss3.c", directory: "/private/tmp")
 !4 = !{}
 !4 = !{}
 !5 = !{!0, !6}
 !5 = !{!0, !6}
-!6 = !DIGlobalVariableExpression(var: !7)
+!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "x2", scope: !2, file: !3, line: 7, type: !8, isLocal: true, isDefinition: true)
 !7 = !DIGlobalVariable(name: "x2", scope: !2, file: !3, line: 7, type: !8, isLocal: true, isDefinition: true)
 !8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !9 = !{i32 1, !"Debug Info Version", i32 3}
 !9 = !{i32 1, !"Debug Info Version", i32 3}

+ 4 - 4
test/CodeGen/ARM/coalesce-dbgvalue.ll

@@ -80,16 +80,16 @@ attributes #3 = { nounwind }
 !llvm.dbg.cu = !{!11}
 !llvm.dbg.cu = !{!11}
 !llvm.module.flags = !{!14}
 !llvm.module.flags = !{!14}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "c", scope: null, file: !2, line: 3, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "c", scope: null, file: !2, line: 3, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "pr16110.c", directory: "/d/b")
 !2 = !DIFile(filename: "pr16110.c", directory: "/d/b")
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
-!4 = !DIGlobalVariableExpression(var: !5)
+!4 = !DIGlobalVariableExpression(var: !5, expr: !DIExpression())
 !5 = !DIGlobalVariable(name: "b", scope: null, file: !2, line: 2, type: !3, isLocal: false, isDefinition: true)
 !5 = !DIGlobalVariable(name: "b", scope: null, file: !2, line: 2, type: !3, isLocal: false, isDefinition: true)
-!6 = !DIGlobalVariableExpression(var: !7)
+!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 1, type: !8, isLocal: false, isDefinition: true)
 !7 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 1, type: !8, isLocal: false, isDefinition: true)
 !8 = !DIBasicType(name: "long long int", size: 64, align: 32, encoding: DW_ATE_signed)
 !8 = !DIBasicType(name: "long long int", size: 64, align: 32, encoding: DW_ATE_signed)
-!9 = !DIGlobalVariableExpression(var: !10)
+!9 = !DIGlobalVariableExpression(var: !10, expr: !DIExpression())
 !10 = !DIGlobalVariable(name: "d", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !10 = !DIGlobalVariable(name: "d", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !11 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 3.4 (trunk 182024) (llvm/trunk 182023)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !12, retainedTypes: !12, globals: !13, imports: !12)
 !11 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 3.4 (trunk 182024) (llvm/trunk 182023)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !12, retainedTypes: !12, globals: !13, imports: !12)
 !12 = !{}
 !12 = !{}

+ 1 - 1
test/CodeGen/ARM/no-cfi.ll

@@ -11,7 +11,7 @@ target triple = "armv4t--linux"
 !llvm.dbg.cu = !{!2}
 !llvm.dbg.cu = !{!2}
 !llvm.module.flags = !{!7, !8, !9, !10}
 !llvm.module.flags = !{!7, !8, !9, !10}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = distinct !DIGlobalVariable(name: "f", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !1 = distinct !DIGlobalVariable(name: "f", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 (trunk 290216)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 (trunk 290216)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "test2.c", directory: "/tmp")
 !3 = !DIFile(filename: "test2.c", directory: "/tmp")

+ 1 - 1
test/CodeGen/BPF/dwarfdump.ll

@@ -30,7 +30,7 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!13, !14}
 !llvm.module.flags = !{!13, !14}
 !llvm.ident = !{!15}
 !llvm.ident = !{!15}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "myvar_c", scope: !2, file: !3, line: 3, type: !6, isLocal: true, isDefinition: true)
 !1 = !DIGlobalVariable(name: "myvar_c", scope: !2, file: !3, line: 3, type: !6, isLocal: true, isDefinition: true)
 !2 = distinct !DISubprogram(name: "testprog", scope: !3, file: !3, line: 1, type: !4, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !7, variables: !10)
 !2 = distinct !DISubprogram(name: "testprog", scope: !3, file: !3, line: 1, type: !4, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !7, variables: !10)
 !3 = !DIFile(filename: "testprog.c", directory: "/w/llvm/bld")
 !3 = !DIFile(filename: "testprog.c", directory: "/w/llvm/bld")

+ 2 - 2
test/CodeGen/NVPTX/generic-to-nvvm-ir.ll

@@ -42,9 +42,9 @@ declare void @extfunc(i8 signext)
 !3 = !{!4}
 !3 = !{!4}
 ; Find list of global variables and make sure it's the one used by DICompileUnit
 ; Find list of global variables and make sure it's the one used by DICompileUnit
 ; CHECK: [[GLOBALSNODE]] = !{[[GVNODE:![0-9]+]]}
 ; CHECK: [[GLOBALSNODE]] = !{[[GVNODE:![0-9]+]]}
-!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "static_var", scope: !0, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true))
+!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "static_var", scope: !0, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true), expr: !DIExpression())
 ; Debug info must also be updated to reflect new address space.
 ; Debug info must also be updated to reflect new address space.
-; CHECK: [[GVNODE]] = !DIGlobalVariableExpression(var: [[GVVAR:.*]])
+; CHECK: [[GVNODE]] = !DIGlobalVariableExpression(var: [[GVVAR:.*]], expr: !DIExpression())
 ; CHECK: [[GVVAR]] = !DIGlobalVariable(name: "static_var"
 ; CHECK: [[GVVAR]] = !DIGlobalVariable(name: "static_var"
 ; CHECK-SAME: scope: [[CUNODE]]
 ; CHECK-SAME: scope: [[CUNODE]]
 ; CHECK-SAME: type: [[TYPENODE:![0-9]+]]
 ; CHECK-SAME: type: [[TYPENODE:![0-9]+]]

+ 115 - 115
test/CodeGen/PowerPC/pr17168.ll

@@ -57,7 +57,7 @@ attributes #1 = { nounwind readnone }
 !llvm.dbg.cu = !{!7}
 !llvm.dbg.cu = !{!7}
 !llvm.module.flags = !{!261, !262}
 !llvm.module.flags = !{!261, !262}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "grid_points", scope: null, file: !2, line: 28, type: !3, isLocal: true, isDefinition: true)
 !1 = !DIGlobalVariable(name: "grid_points", scope: null, file: !2, line: 28, type: !3, isLocal: true, isDefinition: true)
 !2 = !DIFile(filename: "./header.h", directory: "/home/hfinkel/src/NPB2.3-omp-C/BT")
 !2 = !DIFile(filename: "./header.h", directory: "/home/hfinkel/src/NPB2.3-omp-C/BT")
 !3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 96, align: 32, elements: !5)
 !3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 96, align: 32, elements: !5)
@@ -68,255 +68,255 @@ attributes #1 = { nounwind readnone }
 !8 = !DIFile(filename: "bt.c", directory: "/home/hfinkel/src/NPB2.3-omp-C/BT")
 !8 = !DIFile(filename: "bt.c", directory: "/home/hfinkel/src/NPB2.3-omp-C/BT")
 !9 = !{}
 !9 = !{}
 !10 = !{!0, !11, !14, !20, !22, !24, !26, !28, !30, !32, !34, !36, !38, !40, !42, !44, !46, !48, !50, !52, !54, !56, !58, !60, !62, !64, !66, !68, !70, !72, !74, !76, !78, !80, !82, !84, !86, !88, !93, !97, !99, !101, !103, !105, !107, !109, !114, !116, !118, !120, !122, !124, !126, !128, !130, !132, !134, !136, !138, !140, !142, !144, !146, !148, !150, !152, !154, !156, !158, !160, !162, !164, !166, !168, !170, !172, !174, !176, !178, !180, !182, !184, !186, !188, !190, !192, !194, !196, !198, !200, !202, !204, !206, !208, !210, !212, !214, !216, !218, !220, !222, !224, !226, !228, !230, !232, !236, !241, !243, !247, !249, !253, !255, !257, !259}
 !10 = !{!0, !11, !14, !20, !22, !24, !26, !28, !30, !32, !34, !36, !38, !40, !42, !44, !46, !48, !50, !52, !54, !56, !58, !60, !62, !64, !66, !68, !70, !72, !74, !76, !78, !80, !82, !84, !86, !88, !93, !97, !99, !101, !103, !105, !107, !109, !114, !116, !118, !120, !122, !124, !126, !128, !130, !132, !134, !136, !138, !140, !142, !144, !146, !148, !150, !152, !154, !156, !158, !160, !162, !164, !166, !168, !170, !172, !174, !176, !178, !180, !182, !184, !186, !188, !190, !192, !194, !196, !198, !200, !202, !204, !206, !208, !210, !212, !214, !216, !218, !220, !222, !224, !226, !228, !230, !232, !236, !241, !243, !247, !249, !253, !255, !257, !259}
-!11 = !DIGlobalVariableExpression(var: !12)
+!11 = !DIGlobalVariableExpression(var: !12, expr: !DIExpression())
 !12 = !DIGlobalVariable(name: "dt", scope: null, file: !2, line: 35, type: !13, isLocal: true, isDefinition: true)
 !12 = !DIGlobalVariable(name: "dt", scope: null, file: !2, line: 35, type: !13, isLocal: true, isDefinition: true)
 !13 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float)
 !13 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float)
-!14 = !DIGlobalVariableExpression(var: !15)
+!14 = !DIGlobalVariableExpression(var: !15, expr: !DIExpression())
 !15 = !DIGlobalVariable(name: "rhs", scope: null, file: !2, line: 68, type: !16, isLocal: true, isDefinition: true)
 !15 = !DIGlobalVariable(name: "rhs", scope: null, file: !2, line: 68, type: !16, isLocal: true, isDefinition: true)
 !16 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 1385839040, align: 64, elements: !17)
 !16 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 1385839040, align: 64, elements: !17)
 !17 = !{!18, !18, !18, !19}
 !17 = !{!18, !18, !18, !19}
 !18 = !DISubrange(count: 163)
 !18 = !DISubrange(count: 163)
 !19 = !DISubrange(count: 5)
 !19 = !DISubrange(count: 5)
-!20 = !DIGlobalVariableExpression(var: !21)
+!20 = !DIGlobalVariableExpression(var: !21, expr: !DIExpression())
 !21 = !DIGlobalVariable(name: "zzcon5", scope: null, file: !2, line: 42, type: !13, isLocal: true, isDefinition: true)
 !21 = !DIGlobalVariable(name: "zzcon5", scope: null, file: !2, line: 42, type: !13, isLocal: true, isDefinition: true)
-!22 = !DIGlobalVariableExpression(var: !23)
+!22 = !DIGlobalVariableExpression(var: !23, expr: !DIExpression())
 !23 = !DIGlobalVariable(name: "zzcon4", scope: null, file: !2, line: 42, type: !13, isLocal: true, isDefinition: true)
 !23 = !DIGlobalVariable(name: "zzcon4", scope: null, file: !2, line: 42, type: !13, isLocal: true, isDefinition: true)
-!24 = !DIGlobalVariableExpression(var: !25)
+!24 = !DIGlobalVariableExpression(var: !25, expr: !DIExpression())
 !25 = !DIGlobalVariable(name: "zzcon3", scope: null, file: !2, line: 42, type: !13, isLocal: true, isDefinition: true)
 !25 = !DIGlobalVariable(name: "zzcon3", scope: null, file: !2, line: 42, type: !13, isLocal: true, isDefinition: true)
-!26 = !DIGlobalVariableExpression(var: !27)
+!26 = !DIGlobalVariableExpression(var: !27, expr: !DIExpression())
 !27 = !DIGlobalVariable(name: "dz5tz1", scope: null, file: !2, line: 43, type: !13, isLocal: true, isDefinition: true)
 !27 = !DIGlobalVariable(name: "dz5tz1", scope: null, file: !2, line: 43, type: !13, isLocal: true, isDefinition: true)
-!28 = !DIGlobalVariableExpression(var: !29)
+!28 = !DIGlobalVariableExpression(var: !29, expr: !DIExpression())
 !29 = !DIGlobalVariable(name: "dz4tz1", scope: null, file: !2, line: 43, type: !13, isLocal: true, isDefinition: true)
 !29 = !DIGlobalVariable(name: "dz4tz1", scope: null, file: !2, line: 43, type: !13, isLocal: true, isDefinition: true)
-!30 = !DIGlobalVariableExpression(var: !31)
+!30 = !DIGlobalVariableExpression(var: !31, expr: !DIExpression())
 !31 = !DIGlobalVariable(name: "dz3tz1", scope: null, file: !2, line: 43, type: !13, isLocal: true, isDefinition: true)
 !31 = !DIGlobalVariable(name: "dz3tz1", scope: null, file: !2, line: 43, type: !13, isLocal: true, isDefinition: true)
-!32 = !DIGlobalVariableExpression(var: !33)
+!32 = !DIGlobalVariableExpression(var: !33, expr: !DIExpression())
 !33 = !DIGlobalVariable(name: "zzcon2", scope: null, file: !2, line: 42, type: !13, isLocal: true, isDefinition: true)
 !33 = !DIGlobalVariable(name: "zzcon2", scope: null, file: !2, line: 42, type: !13, isLocal: true, isDefinition: true)
-!34 = !DIGlobalVariableExpression(var: !35)
+!34 = !DIGlobalVariableExpression(var: !35, expr: !DIExpression())
 !35 = !DIGlobalVariable(name: "dz2tz1", scope: null, file: !2, line: 43, type: !13, isLocal: true, isDefinition: true)
 !35 = !DIGlobalVariable(name: "dz2tz1", scope: null, file: !2, line: 43, type: !13, isLocal: true, isDefinition: true)
-!36 = !DIGlobalVariableExpression(var: !37)
+!36 = !DIGlobalVariableExpression(var: !37, expr: !DIExpression())
 !37 = !DIGlobalVariable(name: "tz2", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
 !37 = !DIGlobalVariable(name: "tz2", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
-!38 = !DIGlobalVariableExpression(var: !39)
+!38 = !DIGlobalVariableExpression(var: !39, expr: !DIExpression())
 !39 = !DIGlobalVariable(name: "dz1tz1", scope: null, file: !2, line: 43, type: !13, isLocal: true, isDefinition: true)
 !39 = !DIGlobalVariable(name: "dz1tz1", scope: null, file: !2, line: 43, type: !13, isLocal: true, isDefinition: true)
-!40 = !DIGlobalVariableExpression(var: !41)
+!40 = !DIGlobalVariableExpression(var: !41, expr: !DIExpression())
 !41 = !DIGlobalVariable(name: "yycon5", scope: null, file: !2, line: 40, type: !13, isLocal: true, isDefinition: true)
 !41 = !DIGlobalVariable(name: "yycon5", scope: null, file: !2, line: 40, type: !13, isLocal: true, isDefinition: true)
-!42 = !DIGlobalVariableExpression(var: !43)
+!42 = !DIGlobalVariableExpression(var: !43, expr: !DIExpression())
 !43 = !DIGlobalVariable(name: "yycon4", scope: null, file: !2, line: 40, type: !13, isLocal: true, isDefinition: true)
 !43 = !DIGlobalVariable(name: "yycon4", scope: null, file: !2, line: 40, type: !13, isLocal: true, isDefinition: true)
-!44 = !DIGlobalVariableExpression(var: !45)
+!44 = !DIGlobalVariableExpression(var: !45, expr: !DIExpression())
 !45 = !DIGlobalVariable(name: "yycon3", scope: null, file: !2, line: 40, type: !13, isLocal: true, isDefinition: true)
 !45 = !DIGlobalVariable(name: "yycon3", scope: null, file: !2, line: 40, type: !13, isLocal: true, isDefinition: true)
-!46 = !DIGlobalVariableExpression(var: !47)
+!46 = !DIGlobalVariableExpression(var: !47, expr: !DIExpression())
 !47 = !DIGlobalVariable(name: "dy5ty1", scope: null, file: !2, line: 41, type: !13, isLocal: true, isDefinition: true)
 !47 = !DIGlobalVariable(name: "dy5ty1", scope: null, file: !2, line: 41, type: !13, isLocal: true, isDefinition: true)
-!48 = !DIGlobalVariableExpression(var: !49)
+!48 = !DIGlobalVariableExpression(var: !49, expr: !DIExpression())
 !49 = !DIGlobalVariable(name: "dy4ty1", scope: null, file: !2, line: 41, type: !13, isLocal: true, isDefinition: true)
 !49 = !DIGlobalVariable(name: "dy4ty1", scope: null, file: !2, line: 41, type: !13, isLocal: true, isDefinition: true)
-!50 = !DIGlobalVariableExpression(var: !51)
+!50 = !DIGlobalVariableExpression(var: !51, expr: !DIExpression())
 !51 = !DIGlobalVariable(name: "dy3ty1", scope: null, file: !2, line: 41, type: !13, isLocal: true, isDefinition: true)
 !51 = !DIGlobalVariable(name: "dy3ty1", scope: null, file: !2, line: 41, type: !13, isLocal: true, isDefinition: true)
-!52 = !DIGlobalVariableExpression(var: !53)
+!52 = !DIGlobalVariableExpression(var: !53, expr: !DIExpression())
 !53 = !DIGlobalVariable(name: "yycon2", scope: null, file: !2, line: 40, type: !13, isLocal: true, isDefinition: true)
 !53 = !DIGlobalVariable(name: "yycon2", scope: null, file: !2, line: 40, type: !13, isLocal: true, isDefinition: true)
-!54 = !DIGlobalVariableExpression(var: !55)
+!54 = !DIGlobalVariableExpression(var: !55, expr: !DIExpression())
 !55 = !DIGlobalVariable(name: "dy2ty1", scope: null, file: !2, line: 41, type: !13, isLocal: true, isDefinition: true)
 !55 = !DIGlobalVariable(name: "dy2ty1", scope: null, file: !2, line: 41, type: !13, isLocal: true, isDefinition: true)
-!56 = !DIGlobalVariableExpression(var: !57)
+!56 = !DIGlobalVariableExpression(var: !57, expr: !DIExpression())
 !57 = !DIGlobalVariable(name: "ty2", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
 !57 = !DIGlobalVariable(name: "ty2", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
-!58 = !DIGlobalVariableExpression(var: !59)
+!58 = !DIGlobalVariableExpression(var: !59, expr: !DIExpression())
 !59 = !DIGlobalVariable(name: "dy1ty1", scope: null, file: !2, line: 41, type: !13, isLocal: true, isDefinition: true)
 !59 = !DIGlobalVariable(name: "dy1ty1", scope: null, file: !2, line: 41, type: !13, isLocal: true, isDefinition: true)
-!60 = !DIGlobalVariableExpression(var: !61)
+!60 = !DIGlobalVariableExpression(var: !61, expr: !DIExpression())
 !61 = !DIGlobalVariable(name: "dssp", scope: null, file: !2, line: 35, type: !13, isLocal: true, isDefinition: true)
 !61 = !DIGlobalVariable(name: "dssp", scope: null, file: !2, line: 35, type: !13, isLocal: true, isDefinition: true)
-!62 = !DIGlobalVariableExpression(var: !63)
+!62 = !DIGlobalVariableExpression(var: !63, expr: !DIExpression())
 !63 = !DIGlobalVariable(name: "c1", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
 !63 = !DIGlobalVariable(name: "c1", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
-!64 = !DIGlobalVariableExpression(var: !65)
+!64 = !DIGlobalVariableExpression(var: !65, expr: !DIExpression())
 !65 = !DIGlobalVariable(name: "xxcon5", scope: null, file: !2, line: 38, type: !13, isLocal: true, isDefinition: true)
 !65 = !DIGlobalVariable(name: "xxcon5", scope: null, file: !2, line: 38, type: !13, isLocal: true, isDefinition: true)
-!66 = !DIGlobalVariableExpression(var: !67)
+!66 = !DIGlobalVariableExpression(var: !67, expr: !DIExpression())
 !67 = !DIGlobalVariable(name: "xxcon4", scope: null, file: !2, line: 38, type: !13, isLocal: true, isDefinition: true)
 !67 = !DIGlobalVariable(name: "xxcon4", scope: null, file: !2, line: 38, type: !13, isLocal: true, isDefinition: true)
-!68 = !DIGlobalVariableExpression(var: !69)
+!68 = !DIGlobalVariableExpression(var: !69, expr: !DIExpression())
 !69 = !DIGlobalVariable(name: "xxcon3", scope: null, file: !2, line: 38, type: !13, isLocal: true, isDefinition: true)
 !69 = !DIGlobalVariable(name: "xxcon3", scope: null, file: !2, line: 38, type: !13, isLocal: true, isDefinition: true)
-!70 = !DIGlobalVariableExpression(var: !71)
+!70 = !DIGlobalVariableExpression(var: !71, expr: !DIExpression())
 !71 = !DIGlobalVariable(name: "dx5tx1", scope: null, file: !2, line: 39, type: !13, isLocal: true, isDefinition: true)
 !71 = !DIGlobalVariable(name: "dx5tx1", scope: null, file: !2, line: 39, type: !13, isLocal: true, isDefinition: true)
-!72 = !DIGlobalVariableExpression(var: !73)
+!72 = !DIGlobalVariableExpression(var: !73, expr: !DIExpression())
 !73 = !DIGlobalVariable(name: "dx4tx1", scope: null, file: !2, line: 39, type: !13, isLocal: true, isDefinition: true)
 !73 = !DIGlobalVariable(name: "dx4tx1", scope: null, file: !2, line: 39, type: !13, isLocal: true, isDefinition: true)
-!74 = !DIGlobalVariableExpression(var: !75)
+!74 = !DIGlobalVariableExpression(var: !75, expr: !DIExpression())
 !75 = !DIGlobalVariable(name: "dx3tx1", scope: null, file: !2, line: 39, type: !13, isLocal: true, isDefinition: true)
 !75 = !DIGlobalVariable(name: "dx3tx1", scope: null, file: !2, line: 39, type: !13, isLocal: true, isDefinition: true)
-!76 = !DIGlobalVariableExpression(var: !77)
+!76 = !DIGlobalVariableExpression(var: !77, expr: !DIExpression())
 !77 = !DIGlobalVariable(name: "c2", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
 !77 = !DIGlobalVariable(name: "c2", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
-!78 = !DIGlobalVariableExpression(var: !79)
+!78 = !DIGlobalVariableExpression(var: !79, expr: !DIExpression())
 !79 = !DIGlobalVariable(name: "con43", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
 !79 = !DIGlobalVariable(name: "con43", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
-!80 = !DIGlobalVariableExpression(var: !81)
+!80 = !DIGlobalVariableExpression(var: !81, expr: !DIExpression())
 !81 = !DIGlobalVariable(name: "xxcon2", scope: null, file: !2, line: 38, type: !13, isLocal: true, isDefinition: true)
 !81 = !DIGlobalVariable(name: "xxcon2", scope: null, file: !2, line: 38, type: !13, isLocal: true, isDefinition: true)
-!82 = !DIGlobalVariableExpression(var: !83)
+!82 = !DIGlobalVariableExpression(var: !83, expr: !DIExpression())
 !83 = !DIGlobalVariable(name: "dx2tx1", scope: null, file: !2, line: 39, type: !13, isLocal: true, isDefinition: true)
 !83 = !DIGlobalVariable(name: "dx2tx1", scope: null, file: !2, line: 39, type: !13, isLocal: true, isDefinition: true)
-!84 = !DIGlobalVariableExpression(var: !85)
+!84 = !DIGlobalVariableExpression(var: !85, expr: !DIExpression())
 !85 = !DIGlobalVariable(name: "tx2", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
 !85 = !DIGlobalVariable(name: "tx2", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
-!86 = !DIGlobalVariableExpression(var: !87)
+!86 = !DIGlobalVariableExpression(var: !87, expr: !DIExpression())
 !87 = !DIGlobalVariable(name: "dx1tx1", scope: null, file: !2, line: 39, type: !13, isLocal: true, isDefinition: true)
 !87 = !DIGlobalVariable(name: "dx1tx1", scope: null, file: !2, line: 39, type: !13, isLocal: true, isDefinition: true)
-!88 = !DIGlobalVariableExpression(var: !89)
+!88 = !DIGlobalVariableExpression(var: !89, expr: !DIExpression())
 !89 = !DIGlobalVariable(name: "forcing", scope: null, file: !2, line: 66, type: !90, isLocal: true, isDefinition: true)
 !89 = !DIGlobalVariable(name: "forcing", scope: null, file: !2, line: 66, type: !90, isLocal: true, isDefinition: true)
 !90 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 1663006848, align: 64, elements: !91)
 !90 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 1663006848, align: 64, elements: !91)
 !91 = !{!18, !18, !18, !92}
 !91 = !{!18, !18, !18, !92}
 !92 = !DISubrange(count: 6)
 !92 = !DISubrange(count: 6)
-!93 = !DIGlobalVariableExpression(var: !94)
+!93 = !DIGlobalVariableExpression(var: !94, expr: !DIExpression())
 !94 = !DIGlobalVariable(name: "qs", scope: null, file: !2, line: 63, type: !95, isLocal: true, isDefinition: true)
 !94 = !DIGlobalVariable(name: "qs", scope: null, file: !2, line: 63, type: !95, isLocal: true, isDefinition: true)
 !95 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 277167808, align: 64, elements: !96)
 !95 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 277167808, align: 64, elements: !96)
 !96 = !{!18, !18, !18}
 !96 = !{!18, !18, !18}
-!97 = !DIGlobalVariableExpression(var: !98)
+!97 = !DIGlobalVariableExpression(var: !98, expr: !DIExpression())
 !98 = !DIGlobalVariable(name: "square", scope: null, file: !2, line: 65, type: !95, isLocal: true, isDefinition: true)
 !98 = !DIGlobalVariable(name: "square", scope: null, file: !2, line: 65, type: !95, isLocal: true, isDefinition: true)
-!99 = !DIGlobalVariableExpression(var: !100)
+!99 = !DIGlobalVariableExpression(var: !100, expr: !DIExpression())
 !100 = !DIGlobalVariable(name: "ws", scope: null, file: !2, line: 62, type: !95, isLocal: true, isDefinition: true)
 !100 = !DIGlobalVariable(name: "ws", scope: null, file: !2, line: 62, type: !95, isLocal: true, isDefinition: true)
-!101 = !DIGlobalVariableExpression(var: !102)
+!101 = !DIGlobalVariableExpression(var: !102, expr: !DIExpression())
 !102 = !DIGlobalVariable(name: "vs", scope: null, file: !2, line: 61, type: !95, isLocal: true, isDefinition: true)
 !102 = !DIGlobalVariable(name: "vs", scope: null, file: !2, line: 61, type: !95, isLocal: true, isDefinition: true)
-!103 = !DIGlobalVariableExpression(var: !104)
+!103 = !DIGlobalVariableExpression(var: !104, expr: !DIExpression())
 !104 = !DIGlobalVariable(name: "us", scope: null, file: !2, line: 60, type: !95, isLocal: true, isDefinition: true)
 !104 = !DIGlobalVariable(name: "us", scope: null, file: !2, line: 60, type: !95, isLocal: true, isDefinition: true)
-!105 = !DIGlobalVariableExpression(var: !106)
+!105 = !DIGlobalVariableExpression(var: !106, expr: !DIExpression())
 !106 = !DIGlobalVariable(name: "rho_i", scope: null, file: !2, line: 64, type: !95, isLocal: true, isDefinition: true)
 !106 = !DIGlobalVariable(name: "rho_i", scope: null, file: !2, line: 64, type: !95, isLocal: true, isDefinition: true)
-!107 = !DIGlobalVariableExpression(var: !108)
+!107 = !DIGlobalVariableExpression(var: !108, expr: !DIExpression())
 !108 = !DIGlobalVariable(name: "u", scope: null, file: !2, line: 67, type: !16, isLocal: true, isDefinition: true)
 !108 = !DIGlobalVariable(name: "u", scope: null, file: !2, line: 67, type: !16, isLocal: true, isDefinition: true)
-!109 = !DIGlobalVariableExpression(var: !110)
+!109 = !DIGlobalVariableExpression(var: !110, expr: !DIExpression())
 !110 = !DIGlobalVariable(name: "ce", scope: null, file: !2, line: 36, type: !111, isLocal: true, isDefinition: true)
 !110 = !DIGlobalVariable(name: "ce", scope: null, file: !2, line: 36, type: !111, isLocal: true, isDefinition: true)
 !111 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 4160, align: 64, elements: !112)
 !111 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 4160, align: 64, elements: !112)
 !112 = !{!19, !113}
 !112 = !{!19, !113}
 !113 = !DISubrange(count: 13)
 !113 = !DISubrange(count: 13)
-!114 = !DIGlobalVariableExpression(var: !115)
+!114 = !DIGlobalVariableExpression(var: !115, expr: !DIExpression())
 !115 = !DIGlobalVariable(name: "dnzm1", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
 !115 = !DIGlobalVariable(name: "dnzm1", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
-!116 = !DIGlobalVariableExpression(var: !117)
+!116 = !DIGlobalVariableExpression(var: !117, expr: !DIExpression())
 !117 = !DIGlobalVariable(name: "dnym1", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
 !117 = !DIGlobalVariable(name: "dnym1", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
-!118 = !DIGlobalVariableExpression(var: !119)
+!118 = !DIGlobalVariableExpression(var: !119, expr: !DIExpression())
 !119 = !DIGlobalVariable(name: "dnxm1", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
 !119 = !DIGlobalVariable(name: "dnxm1", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
-!120 = !DIGlobalVariableExpression(var: !121)
+!120 = !DIGlobalVariableExpression(var: !121, expr: !DIExpression())
 !121 = !DIGlobalVariable(name: "zzcon1", scope: null, file: !2, line: 42, type: !13, isLocal: true, isDefinition: true)
 !121 = !DIGlobalVariable(name: "zzcon1", scope: null, file: !2, line: 42, type: !13, isLocal: true, isDefinition: true)
-!122 = !DIGlobalVariableExpression(var: !123)
+!122 = !DIGlobalVariableExpression(var: !123, expr: !DIExpression())
 !123 = !DIGlobalVariable(name: "yycon1", scope: null, file: !2, line: 40, type: !13, isLocal: true, isDefinition: true)
 !123 = !DIGlobalVariable(name: "yycon1", scope: null, file: !2, line: 40, type: !13, isLocal: true, isDefinition: true)
-!124 = !DIGlobalVariableExpression(var: !125)
+!124 = !DIGlobalVariableExpression(var: !125, expr: !DIExpression())
 !125 = !DIGlobalVariable(name: "xxcon1", scope: null, file: !2, line: 38, type: !13, isLocal: true, isDefinition: true)
 !125 = !DIGlobalVariable(name: "xxcon1", scope: null, file: !2, line: 38, type: !13, isLocal: true, isDefinition: true)
-!126 = !DIGlobalVariableExpression(var: !127)
+!126 = !DIGlobalVariableExpression(var: !127, expr: !DIExpression())
 !127 = !DIGlobalVariable(name: "con16", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
 !127 = !DIGlobalVariable(name: "con16", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
-!128 = !DIGlobalVariableExpression(var: !129)
+!128 = !DIGlobalVariableExpression(var: !129, expr: !DIExpression())
 !129 = !DIGlobalVariable(name: "c2iv", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
 !129 = !DIGlobalVariable(name: "c2iv", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
-!130 = !DIGlobalVariableExpression(var: !131)
+!130 = !DIGlobalVariableExpression(var: !131, expr: !DIExpression())
 !131 = !DIGlobalVariable(name: "c3c4tz3", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
 !131 = !DIGlobalVariable(name: "c3c4tz3", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
-!132 = !DIGlobalVariableExpression(var: !133)
+!132 = !DIGlobalVariableExpression(var: !133, expr: !DIExpression())
 !133 = !DIGlobalVariable(name: "c3c4ty3", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
 !133 = !DIGlobalVariable(name: "c3c4ty3", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
-!134 = !DIGlobalVariableExpression(var: !135)
+!134 = !DIGlobalVariableExpression(var: !135, expr: !DIExpression())
 !135 = !DIGlobalVariable(name: "c3c4tx3", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
 !135 = !DIGlobalVariable(name: "c3c4tx3", scope: null, file: !2, line: 48, type: !13, isLocal: true, isDefinition: true)
-!136 = !DIGlobalVariableExpression(var: !137)
+!136 = !DIGlobalVariableExpression(var: !137, expr: !DIExpression())
 !137 = !DIGlobalVariable(name: "comz6", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
 !137 = !DIGlobalVariable(name: "comz6", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
-!138 = !DIGlobalVariableExpression(var: !139)
+!138 = !DIGlobalVariableExpression(var: !139, expr: !DIExpression())
 !139 = !DIGlobalVariable(name: "comz5", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
 !139 = !DIGlobalVariable(name: "comz5", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
-!140 = !DIGlobalVariableExpression(var: !141)
+!140 = !DIGlobalVariableExpression(var: !141, expr: !DIExpression())
 !141 = !DIGlobalVariable(name: "comz4", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
 !141 = !DIGlobalVariable(name: "comz4", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
-!142 = !DIGlobalVariableExpression(var: !143)
+!142 = !DIGlobalVariableExpression(var: !143, expr: !DIExpression())
 !143 = !DIGlobalVariable(name: "comz1", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
 !143 = !DIGlobalVariable(name: "comz1", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
-!144 = !DIGlobalVariableExpression(var: !145)
+!144 = !DIGlobalVariableExpression(var: !145, expr: !DIExpression())
 !145 = !DIGlobalVariable(name: "dtdssp", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
 !145 = !DIGlobalVariable(name: "dtdssp", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
-!146 = !DIGlobalVariableExpression(var: !147)
+!146 = !DIGlobalVariableExpression(var: !147, expr: !DIExpression())
 !147 = !DIGlobalVariable(name: "c2dttz1", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
 !147 = !DIGlobalVariable(name: "c2dttz1", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
-!148 = !DIGlobalVariableExpression(var: !149)
+!148 = !DIGlobalVariableExpression(var: !149, expr: !DIExpression())
 !149 = !DIGlobalVariable(name: "c2dtty1", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
 !149 = !DIGlobalVariable(name: "c2dtty1", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
-!150 = !DIGlobalVariableExpression(var: !151)
+!150 = !DIGlobalVariableExpression(var: !151, expr: !DIExpression())
 !151 = !DIGlobalVariable(name: "c2dttx1", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
 !151 = !DIGlobalVariable(name: "c2dttx1", scope: null, file: !2, line: 47, type: !13, isLocal: true, isDefinition: true)
-!152 = !DIGlobalVariableExpression(var: !153)
+!152 = !DIGlobalVariableExpression(var: !153, expr: !DIExpression())
 !153 = !DIGlobalVariable(name: "dttz2", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
 !153 = !DIGlobalVariable(name: "dttz2", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
-!154 = !DIGlobalVariableExpression(var: !155)
+!154 = !DIGlobalVariableExpression(var: !155, expr: !DIExpression())
 !155 = !DIGlobalVariable(name: "dttz1", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
 !155 = !DIGlobalVariable(name: "dttz1", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
-!156 = !DIGlobalVariableExpression(var: !157)
+!156 = !DIGlobalVariableExpression(var: !157, expr: !DIExpression())
 !157 = !DIGlobalVariable(name: "dtty2", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
 !157 = !DIGlobalVariable(name: "dtty2", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
-!158 = !DIGlobalVariableExpression(var: !159)
+!158 = !DIGlobalVariableExpression(var: !159, expr: !DIExpression())
 !159 = !DIGlobalVariable(name: "dtty1", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
 !159 = !DIGlobalVariable(name: "dtty1", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
-!160 = !DIGlobalVariableExpression(var: !161)
+!160 = !DIGlobalVariableExpression(var: !161, expr: !DIExpression())
 !161 = !DIGlobalVariable(name: "dttx2", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
 !161 = !DIGlobalVariable(name: "dttx2", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
-!162 = !DIGlobalVariableExpression(var: !163)
+!162 = !DIGlobalVariableExpression(var: !163, expr: !DIExpression())
 !163 = !DIGlobalVariable(name: "dttx1", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
 !163 = !DIGlobalVariable(name: "dttx1", scope: null, file: !2, line: 46, type: !13, isLocal: true, isDefinition: true)
-!164 = !DIGlobalVariableExpression(var: !165)
+!164 = !DIGlobalVariableExpression(var: !165, expr: !DIExpression())
 !165 = !DIGlobalVariable(name: "c5dssp", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
 !165 = !DIGlobalVariable(name: "c5dssp", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
-!166 = !DIGlobalVariableExpression(var: !167)
+!166 = !DIGlobalVariableExpression(var: !167, expr: !DIExpression())
 !167 = !DIGlobalVariable(name: "c4dssp", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
 !167 = !DIGlobalVariable(name: "c4dssp", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
-!168 = !DIGlobalVariableExpression(var: !169)
+!168 = !DIGlobalVariableExpression(var: !169, expr: !DIExpression())
 !169 = !DIGlobalVariable(name: "dzmax", scope: null, file: !2, line: 37, type: !13, isLocal: true, isDefinition: true)
 !169 = !DIGlobalVariable(name: "dzmax", scope: null, file: !2, line: 37, type: !13, isLocal: true, isDefinition: true)
-!170 = !DIGlobalVariableExpression(var: !171)
+!170 = !DIGlobalVariableExpression(var: !171, expr: !DIExpression())
 !171 = !DIGlobalVariable(name: "dymax", scope: null, file: !2, line: 37, type: !13, isLocal: true, isDefinition: true)
 !171 = !DIGlobalVariable(name: "dymax", scope: null, file: !2, line: 37, type: !13, isLocal: true, isDefinition: true)
-!172 = !DIGlobalVariableExpression(var: !173)
+!172 = !DIGlobalVariableExpression(var: !173, expr: !DIExpression())
 !173 = !DIGlobalVariable(name: "dxmax", scope: null, file: !2, line: 37, type: !13, isLocal: true, isDefinition: true)
 !173 = !DIGlobalVariable(name: "dxmax", scope: null, file: !2, line: 37, type: !13, isLocal: true, isDefinition: true)
-!174 = !DIGlobalVariableExpression(var: !175)
+!174 = !DIGlobalVariableExpression(var: !175, expr: !DIExpression())
 !175 = !DIGlobalVariable(name: "dz5", scope: null, file: !2, line: 34, type: !13, isLocal: true, isDefinition: true)
 !175 = !DIGlobalVariable(name: "dz5", scope: null, file: !2, line: 34, type: !13, isLocal: true, isDefinition: true)
-!176 = !DIGlobalVariableExpression(var: !177)
+!176 = !DIGlobalVariableExpression(var: !177, expr: !DIExpression())
 !177 = !DIGlobalVariable(name: "dz4", scope: null, file: !2, line: 34, type: !13, isLocal: true, isDefinition: true)
 !177 = !DIGlobalVariable(name: "dz4", scope: null, file: !2, line: 34, type: !13, isLocal: true, isDefinition: true)
-!178 = !DIGlobalVariableExpression(var: !179)
+!178 = !DIGlobalVariableExpression(var: !179, expr: !DIExpression())
 !179 = !DIGlobalVariable(name: "dz3", scope: null, file: !2, line: 34, type: !13, isLocal: true, isDefinition: true)
 !179 = !DIGlobalVariable(name: "dz3", scope: null, file: !2, line: 34, type: !13, isLocal: true, isDefinition: true)
-!180 = !DIGlobalVariableExpression(var: !181)
+!180 = !DIGlobalVariableExpression(var: !181, expr: !DIExpression())
 !181 = !DIGlobalVariable(name: "dz2", scope: null, file: !2, line: 34, type: !13, isLocal: true, isDefinition: true)
 !181 = !DIGlobalVariable(name: "dz2", scope: null, file: !2, line: 34, type: !13, isLocal: true, isDefinition: true)
-!182 = !DIGlobalVariableExpression(var: !183)
+!182 = !DIGlobalVariableExpression(var: !183, expr: !DIExpression())
 !183 = !DIGlobalVariable(name: "dz1", scope: null, file: !2, line: 34, type: !13, isLocal: true, isDefinition: true)
 !183 = !DIGlobalVariable(name: "dz1", scope: null, file: !2, line: 34, type: !13, isLocal: true, isDefinition: true)
-!184 = !DIGlobalVariableExpression(var: !185)
+!184 = !DIGlobalVariableExpression(var: !185, expr: !DIExpression())
 !185 = !DIGlobalVariable(name: "dy5", scope: null, file: !2, line: 33, type: !13, isLocal: true, isDefinition: true)
 !185 = !DIGlobalVariable(name: "dy5", scope: null, file: !2, line: 33, type: !13, isLocal: true, isDefinition: true)
-!186 = !DIGlobalVariableExpression(var: !187)
+!186 = !DIGlobalVariableExpression(var: !187, expr: !DIExpression())
 !187 = !DIGlobalVariable(name: "dy4", scope: null, file: !2, line: 33, type: !13, isLocal: true, isDefinition: true)
 !187 = !DIGlobalVariable(name: "dy4", scope: null, file: !2, line: 33, type: !13, isLocal: true, isDefinition: true)
-!188 = !DIGlobalVariableExpression(var: !189)
+!188 = !DIGlobalVariableExpression(var: !189, expr: !DIExpression())
 !189 = !DIGlobalVariable(name: "dy3", scope: null, file: !2, line: 33, type: !13, isLocal: true, isDefinition: true)
 !189 = !DIGlobalVariable(name: "dy3", scope: null, file: !2, line: 33, type: !13, isLocal: true, isDefinition: true)
-!190 = !DIGlobalVariableExpression(var: !191)
+!190 = !DIGlobalVariableExpression(var: !191, expr: !DIExpression())
 !191 = !DIGlobalVariable(name: "dy2", scope: null, file: !2, line: 33, type: !13, isLocal: true, isDefinition: true)
 !191 = !DIGlobalVariable(name: "dy2", scope: null, file: !2, line: 33, type: !13, isLocal: true, isDefinition: true)
-!192 = !DIGlobalVariableExpression(var: !193)
+!192 = !DIGlobalVariableExpression(var: !193, expr: !DIExpression())
 !193 = !DIGlobalVariable(name: "dy1", scope: null, file: !2, line: 33, type: !13, isLocal: true, isDefinition: true)
 !193 = !DIGlobalVariable(name: "dy1", scope: null, file: !2, line: 33, type: !13, isLocal: true, isDefinition: true)
-!194 = !DIGlobalVariableExpression(var: !195)
+!194 = !DIGlobalVariableExpression(var: !195, expr: !DIExpression())
 !195 = !DIGlobalVariable(name: "dx5", scope: null, file: !2, line: 32, type: !13, isLocal: true, isDefinition: true)
 !195 = !DIGlobalVariable(name: "dx5", scope: null, file: !2, line: 32, type: !13, isLocal: true, isDefinition: true)
-!196 = !DIGlobalVariableExpression(var: !197)
+!196 = !DIGlobalVariableExpression(var: !197, expr: !DIExpression())
 !197 = !DIGlobalVariable(name: "dx4", scope: null, file: !2, line: 32, type: !13, isLocal: true, isDefinition: true)
 !197 = !DIGlobalVariable(name: "dx4", scope: null, file: !2, line: 32, type: !13, isLocal: true, isDefinition: true)
-!198 = !DIGlobalVariableExpression(var: !199)
+!198 = !DIGlobalVariableExpression(var: !199, expr: !DIExpression())
 !199 = !DIGlobalVariable(name: "dx3", scope: null, file: !2, line: 32, type: !13, isLocal: true, isDefinition: true)
 !199 = !DIGlobalVariable(name: "dx3", scope: null, file: !2, line: 32, type: !13, isLocal: true, isDefinition: true)
-!200 = !DIGlobalVariableExpression(var: !201)
+!200 = !DIGlobalVariableExpression(var: !201, expr: !DIExpression())
 !201 = !DIGlobalVariable(name: "dx2", scope: null, file: !2, line: 32, type: !13, isLocal: true, isDefinition: true)
 !201 = !DIGlobalVariable(name: "dx2", scope: null, file: !2, line: 32, type: !13, isLocal: true, isDefinition: true)
-!202 = !DIGlobalVariableExpression(var: !203)
+!202 = !DIGlobalVariableExpression(var: !203, expr: !DIExpression())
 !203 = !DIGlobalVariable(name: "dx1", scope: null, file: !2, line: 32, type: !13, isLocal: true, isDefinition: true)
 !203 = !DIGlobalVariable(name: "dx1", scope: null, file: !2, line: 32, type: !13, isLocal: true, isDefinition: true)
-!204 = !DIGlobalVariableExpression(var: !205)
+!204 = !DIGlobalVariableExpression(var: !205, expr: !DIExpression())
 !205 = !DIGlobalVariable(name: "tz3", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
 !205 = !DIGlobalVariable(name: "tz3", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
-!206 = !DIGlobalVariableExpression(var: !207)
+!206 = !DIGlobalVariableExpression(var: !207, expr: !DIExpression())
 !207 = !DIGlobalVariable(name: "tz1", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
 !207 = !DIGlobalVariable(name: "tz1", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
-!208 = !DIGlobalVariableExpression(var: !209)
+!208 = !DIGlobalVariableExpression(var: !209, expr: !DIExpression())
 !209 = !DIGlobalVariable(name: "ty3", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
 !209 = !DIGlobalVariable(name: "ty3", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
-!210 = !DIGlobalVariableExpression(var: !211)
+!210 = !DIGlobalVariableExpression(var: !211, expr: !DIExpression())
 !211 = !DIGlobalVariable(name: "ty1", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
 !211 = !DIGlobalVariable(name: "ty1", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
-!212 = !DIGlobalVariableExpression(var: !213)
+!212 = !DIGlobalVariableExpression(var: !213, expr: !DIExpression())
 !213 = !DIGlobalVariable(name: "tx3", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
 !213 = !DIGlobalVariable(name: "tx3", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
-!214 = !DIGlobalVariableExpression(var: !215)
+!214 = !DIGlobalVariableExpression(var: !215, expr: !DIExpression())
 !215 = !DIGlobalVariable(name: "tx1", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
 !215 = !DIGlobalVariable(name: "tx1", scope: null, file: !2, line: 31, type: !13, isLocal: true, isDefinition: true)
-!216 = !DIGlobalVariableExpression(var: !217)
+!216 = !DIGlobalVariableExpression(var: !217, expr: !DIExpression())
 !217 = !DIGlobalVariable(name: "conz1", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
 !217 = !DIGlobalVariable(name: "conz1", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
-!218 = !DIGlobalVariableExpression(var: !219)
+!218 = !DIGlobalVariableExpression(var: !219, expr: !DIExpression())
 !219 = !DIGlobalVariable(name: "c1345", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
 !219 = !DIGlobalVariable(name: "c1345", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
-!220 = !DIGlobalVariableExpression(var: !221)
+!220 = !DIGlobalVariableExpression(var: !221, expr: !DIExpression())
 !221 = !DIGlobalVariable(name: "c3c4", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
 !221 = !DIGlobalVariable(name: "c3c4", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
-!222 = !DIGlobalVariableExpression(var: !223)
+!222 = !DIGlobalVariableExpression(var: !223, expr: !DIExpression())
 !223 = !DIGlobalVariable(name: "c1c5", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
 !223 = !DIGlobalVariable(name: "c1c5", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
-!224 = !DIGlobalVariableExpression(var: !225)
+!224 = !DIGlobalVariableExpression(var: !225, expr: !DIExpression())
 !225 = !DIGlobalVariable(name: "c1c2", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
 !225 = !DIGlobalVariable(name: "c1c2", scope: null, file: !2, line: 44, type: !13, isLocal: true, isDefinition: true)
-!226 = !DIGlobalVariableExpression(var: !227)
+!226 = !DIGlobalVariableExpression(var: !227, expr: !DIExpression())
 !227 = !DIGlobalVariable(name: "c5", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
 !227 = !DIGlobalVariable(name: "c5", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
-!228 = !DIGlobalVariableExpression(var: !229)
+!228 = !DIGlobalVariableExpression(var: !229, expr: !DIExpression())
 !229 = !DIGlobalVariable(name: "c4", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
 !229 = !DIGlobalVariable(name: "c4", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
-!230 = !DIGlobalVariableExpression(var: !231)
+!230 = !DIGlobalVariableExpression(var: !231, expr: !DIExpression())
 !231 = !DIGlobalVariable(name: "c3", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
 !231 = !DIGlobalVariable(name: "c3", scope: null, file: !2, line: 45, type: !13, isLocal: true, isDefinition: true)
-!232 = !DIGlobalVariableExpression(var: !233)
+!232 = !DIGlobalVariableExpression(var: !233, expr: !DIExpression())
 !233 = !DIGlobalVariable(name: "lhs", scope: null, file: !2, line: 69, type: !234, isLocal: true, isDefinition: true)
 !233 = !DIGlobalVariable(name: "lhs", scope: null, file: !2, line: 69, type: !234, isLocal: true, isDefinition: true)
 !234 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 20787585600, align: 64, elements: !235)
 !234 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 20787585600, align: 64, elements: !235)
 !235 = !{!18, !18, !18, !6, !19, !19}
 !235 = !{!18, !18, !18, !6, !19, !19}
-!236 = !DIGlobalVariableExpression(var: !237)
+!236 = !DIGlobalVariableExpression(var: !237, expr: !DIExpression())
 !237 = !DIGlobalVariable(name: "q", scope: null, file: !2, line: 73, type: !238, isLocal: true, isDefinition: true)
 !237 = !DIGlobalVariable(name: "q", scope: null, file: !2, line: 73, type: !238, isLocal: true, isDefinition: true)
 !238 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 10368, align: 64, elements: !239)
 !238 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 10368, align: 64, elements: !239)
 !239 = !{!240}
 !239 = !{!240}
 !240 = !DISubrange(count: 162)
 !240 = !DISubrange(count: 162)
-!241 = !DIGlobalVariableExpression(var: !242)
+!241 = !DIGlobalVariableExpression(var: !242, expr: !DIExpression())
 !242 = !DIGlobalVariable(name: "cuf", scope: null, file: !2, line: 72, type: !238, isLocal: true, isDefinition: true)
 !242 = !DIGlobalVariable(name: "cuf", scope: null, file: !2, line: 72, type: !238, isLocal: true, isDefinition: true)
-!243 = !DIGlobalVariableExpression(var: !244)
+!243 = !DIGlobalVariableExpression(var: !244, expr: !DIExpression())
 !244 = !DIGlobalVariable(name: "buf", scope: null, file: !2, line: 75, type: !245, isLocal: true, isDefinition: true)
 !244 = !DIGlobalVariable(name: "buf", scope: null, file: !2, line: 75, type: !245, isLocal: true, isDefinition: true)
 !245 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 51840, align: 64, elements: !246)
 !245 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 51840, align: 64, elements: !246)
 !246 = !{!240, !19}
 !246 = !{!240, !19}
-!247 = !DIGlobalVariableExpression(var: !248)
+!247 = !DIGlobalVariableExpression(var: !248, expr: !DIExpression())
 !248 = !DIGlobalVariable(name: "ue", scope: null, file: !2, line: 74, type: !245, isLocal: true, isDefinition: true)
 !248 = !DIGlobalVariable(name: "ue", scope: null, file: !2, line: 74, type: !245, isLocal: true, isDefinition: true)
-!249 = !DIGlobalVariableExpression(var: !250)
+!249 = !DIGlobalVariableExpression(var: !250, expr: !DIExpression())
 !250 = !DIGlobalVariable(name: "njac", scope: null, file: !2, line: 86, type: !251, isLocal: true, isDefinition: true)
 !250 = !DIGlobalVariable(name: "njac", scope: null, file: !2, line: 86, type: !251, isLocal: true, isDefinition: true)
 !251 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 6886684800, align: 64, elements: !252)
 !251 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 6886684800, align: 64, elements: !252)
 !252 = !{!18, !18, !240, !19, !19}
 !252 = !{!18, !18, !240, !19, !19}
-!253 = !DIGlobalVariableExpression(var: !254)
+!253 = !DIGlobalVariableExpression(var: !254, expr: !DIExpression())
 !254 = !DIGlobalVariable(name: "fjac", scope: null, file: !2, line: 84, type: !251, isLocal: true, isDefinition: true)
 !254 = !DIGlobalVariable(name: "fjac", scope: null, file: !2, line: 84, type: !251, isLocal: true, isDefinition: true)
-!255 = !DIGlobalVariableExpression(var: !256)
+!255 = !DIGlobalVariableExpression(var: !256, expr: !DIExpression())
 !256 = !DIGlobalVariable(name: "tmp3", scope: null, file: !2, line: 88, type: !13, isLocal: true, isDefinition: true)
 !256 = !DIGlobalVariable(name: "tmp3", scope: null, file: !2, line: 88, type: !13, isLocal: true, isDefinition: true)
-!257 = !DIGlobalVariableExpression(var: !258)
+!257 = !DIGlobalVariableExpression(var: !258, expr: !DIExpression())
 !258 = !DIGlobalVariable(name: "tmp2", scope: null, file: !2, line: 88, type: !13, isLocal: true, isDefinition: true)
 !258 = !DIGlobalVariable(name: "tmp2", scope: null, file: !2, line: 88, type: !13, isLocal: true, isDefinition: true)
-!259 = !DIGlobalVariableExpression(var: !260)
+!259 = !DIGlobalVariableExpression(var: !260, expr: !DIExpression())
 !260 = !DIGlobalVariable(name: "tmp1", scope: null, file: !2, line: 88, type: !13, isLocal: true, isDefinition: true)
 !260 = !DIGlobalVariable(name: "tmp1", scope: null, file: !2, line: 88, type: !13, isLocal: true, isDefinition: true)
 !261 = !{i32 2, !"Dwarf Version", i32 4}
 !261 = !{i32 2, !"Dwarf Version", i32 4}
 !262 = !{i32 1, !"Debug Info Version", i32 3}
 !262 = !{i32 1, !"Debug Info Version", i32 3}

+ 1 - 1
test/CodeGen/PowerPC/pr24546.ll

@@ -79,7 +79,7 @@ attributes #3 = { nounwind }
 !21 = !{!22}
 !21 = !{!22}
 !22 = !DILocalVariable(name: "power", arg: 1, scope: !18, file: !1, line: 1, type: !9)
 !22 = !DILocalVariable(name: "power", arg: 1, scope: !18, file: !1, line: 1, type: !9)
 !23 = !{!24}
 !23 = !{!24}
-!24 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "powers", scope: !18, file: !1, line: 3, type: !25, isLocal: true, isDefinition: true))
+!24 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "powers", scope: !18, file: !1, line: 3, type: !25, isLocal: true, isDefinition: true), expr: !DIExpression())
 !25 = !DICompositeType(tag: DW_TAG_array_type, baseType: !26, size: 1472, align: 64, elements: !27)
 !25 = !DICompositeType(tag: DW_TAG_array_type, baseType: !26, size: 1472, align: 64, elements: !27)
 !26 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !4)
 !26 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !4)
 !27 = !{!28}
 !27 = !{!28}

+ 1 - 1
test/CodeGen/WebAssembly/dbgvalue.ll

@@ -45,7 +45,7 @@ attributes #0 = { nounwind readnone }
 !1 = !DIFile(filename: "crash.c", directory: "wasm/tests")
 !1 = !DIFile(filename: "crash.c", directory: "wasm/tests")
 !2 = !{}
 !2 = !{}
 !3 = !{!4}
 !3 = !{!4}
-!4 = !DIGlobalVariableExpression(var: !5)
+!4 = !DIGlobalVariableExpression(var: !5, expr: !DIExpression())
 !5 = !DIGlobalVariable(name: "key", scope: !0, file: !1, line: 7, type: !6, isLocal: false, isDefinition: true)
 !5 = !DIGlobalVariable(name: "key", scope: !0, file: !1, line: 7, type: !6, isLocal: false, isDefinition: true)
 !6 = !DICompositeType(tag: DW_TAG_array_type, baseType: !7, size: 120, align: 8, elements: !10)
 !6 = !DICompositeType(tag: DW_TAG_array_type, baseType: !7, size: 120, align: 8, elements: !10)
 !7 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint8_t", file: !8, line: 185, baseType: !9)
 !7 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint8_t", file: !8, line: 185, baseType: !9)

+ 1 - 1
test/CodeGen/X86/2010-05-26-DotDebugLoc.ll

@@ -35,7 +35,7 @@ attributes #1 = { nounwind readnone }
 !1 = !DIFile(filename: "foo.c", directory: "/tmp/")
 !1 = !DIFile(filename: "foo.c", directory: "/tmp/")
 !2 = !{}
 !2 = !{}
 !3 = !{!4}
 !3 = !{!4}
-!4 = !DIGlobalVariableExpression(var: !5)
+!4 = !DIGlobalVariableExpression(var: !5, expr: !DIExpression())
 !5 = !DIGlobalVariable(name: "ret", scope: !1, file: !1, line: 7, type: !6, isLocal: false, isDefinition: true)
 !5 = !DIGlobalVariable(name: "ret", scope: !1, file: !1, line: 7, type: !6, isLocal: false, isDefinition: true)
 !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !7 = !{i32 1, !"Debug Info Version", i32 3}
 !7 = !{i32 1, !"Debug Info Version", i32 3}

+ 1 - 1
test/CodeGen/X86/dwarf-headers.ll

@@ -94,7 +94,7 @@ target triple = "x86_64-unknown-linux-gnu"
 !llvm.module.flags = !{!10, !11}
 !llvm.module.flags = !{!10, !11}
 !llvm.ident = !{!12}
 !llvm.ident = !{!12}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = distinct !DIGlobalVariable(name: "s", scope: !2, file: !3, line: 5, type: !6, isLocal: false, isDefinition: true)
 !1 = distinct !DIGlobalVariable(name: "s", scope: !2, file: !3, line: 5, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 5.0.0 (trunk 295942)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 5.0.0 (trunk 295942)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "/home/probinson/projects/scratch")
 !3 = !DIFile(filename: "t.cpp", directory: "/home/probinson/projects/scratch")

+ 1 - 1
test/CodeGen/X86/fp128-g.ll

@@ -118,7 +118,7 @@ attributes #2 = { nounwind readnone }
 !llvm.module.flags = !{!8, !9, !10}
 !llvm.module.flags = !{!8, !9, !10}
 !llvm.ident = !{!11}
 !llvm.ident = !{!11}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "ld_ptr", scope: !2, file: !3, line: 17, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "ld_ptr", scope: !2, file: !3, line: 17, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 (trunk 281495)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 (trunk 281495)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "fp128-g.c", directory: "/disk5/chh/Debug/ld.loop")
 !3 = !DIFile(filename: "fp128-g.c", directory: "/disk5/chh/Debug/ld.loop")

+ 2 - 2
test/CodeGen/X86/fpstack-debuginstr-kill.ll

@@ -49,14 +49,14 @@ attributes #0 = { nounwind readnone }
 !llvm.dbg.cu = !{!10}
 !llvm.dbg.cu = !{!10}
 !llvm.module.flags = !{!14, !15}
 !llvm.module.flags = !{!14, !15}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "g1", scope: null, file: !2, line: 5, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "g1", scope: null, file: !2, line: 5, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "f1.cpp", directory: "x87stackifier")
 !2 = !DIFile(filename: "f1.cpp", directory: "x87stackifier")
 !3 = !DIDerivedType(tag: DW_TAG_typedef, name: "fpu_extended", file: !2, line: 3, baseType: !4)
 !3 = !DIDerivedType(tag: DW_TAG_typedef, name: "fpu_extended", file: !2, line: 3, baseType: !4)
 !4 = !DIDerivedType(tag: DW_TAG_typedef, name: "fpu_register", file: !2, line: 2, baseType: !5)
 !4 = !DIDerivedType(tag: DW_TAG_typedef, name: "fpu_register", file: !2, line: 2, baseType: !5)
 !5 = !DIDerivedType(tag: DW_TAG_typedef, name: "uae_f64", file: !2, line: 1, baseType: !6)
 !5 = !DIDerivedType(tag: DW_TAG_typedef, name: "uae_f64", file: !2, line: 1, baseType: !6)
 !6 = !DIBasicType(name: "long double", size: 128, align: 128, encoding: DW_ATE_float)
 !6 = !DIBasicType(name: "long double", size: 128, align: 128, encoding: DW_ATE_float)
-!7 = !DIGlobalVariableExpression(var: !8)
+!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression())
 !8 = !DIGlobalVariable(name: "g2", scope: null, file: !2, line: 6, type: !9, isLocal: false, isDefinition: true)
 !8 = !DIGlobalVariable(name: "g2", scope: null, file: !2, line: 6, type: !9, isLocal: false, isDefinition: true)
 !9 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !9 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !10 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !11, producer: "clang version 3.6.0 (http://llvm.org/git/clang 8444ae7cfeaefae031f8fedf0d1435ca3b14d90b) (http://llvm.org/git/llvm 886f0101a7d176543b831f5efb74c03427244a55)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !12, retainedTypes: !12, globals: !13, imports: !12)
 !10 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !11, producer: "clang version 3.6.0 (http://llvm.org/git/clang 8444ae7cfeaefae031f8fedf0d1435ca3b14d90b) (http://llvm.org/git/llvm 886f0101a7d176543b831f5efb74c03427244a55)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !12, retainedTypes: !12, globals: !13, imports: !12)

+ 1 - 1
test/CodeGen/X86/machine-outliner-debuginfo.ll

@@ -48,7 +48,7 @@ attributes #0 = { noredzone nounwind ssp uwtable "no-frame-pointer-elim"="true"
 !llvm.module.flags = !{!7, !8, !9}
 !llvm.module.flags = !{!7, !8, !9}
 !llvm.ident = !{!10}
 !llvm.ident = !{!10}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = distinct !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 2, type: !6, isLocal: false, isDefinition: true)
 !1 = distinct !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 2, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 5.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 5.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "debug-test.c", directory: "dir")
 !3 = !DIFile(filename: "debug-test.c", directory: "dir")

+ 1 - 1
test/CodeGen/X86/misched-code-difference-with-debug.ll

@@ -67,7 +67,7 @@ attributes #0 = { nounwind readnone }
 !llvm.dbg.cu = !{!4}
 !llvm.dbg.cu = !{!4}
 !llvm.module.flags = !{!15, !16}
 !llvm.module.flags = !{!15, !16}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "argc", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "argc", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "test.cpp", directory: "")
 !2 = !DIFile(filename: "test.cpp", directory: "")
 !3 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
 !3 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)

+ 1 - 1
test/CodeGen/X86/null-streamer.ll

@@ -20,7 +20,7 @@ define void @f1() {
 !1 = !DIFile(filename: "file.c", directory: "")
 !1 = !DIFile(filename: "file.c", directory: "")
 !2 = !{}
 !2 = !{}
 !3 = !{!4}
 !3 = !{!4}
-!4 = !DIGlobalVariableExpression(var: !5)
+!4 = !DIGlobalVariableExpression(var: !5, expr: !DIExpression())
 !5 = !DIGlobalVariable(name: "i", linkageName: "_ZL1i", scope: null, file: !1, line: 1, type: !6, isLocal: true, isDefinition: true)
 !5 = !DIGlobalVariable(name: "i", linkageName: "_ZL1i", scope: null, file: !1, line: 1, type: !6, isLocal: true, isDefinition: true)
 !6 = !DIBasicType(size: 32, align: 32, encoding: DW_ATE_signed)
 !6 = !DIBasicType(size: 32, align: 32, encoding: DW_ATE_signed)
 !7 = !{i32 2, !"Dwarf Version", i32 3}
 !7 = !{i32 2, !"Dwarf Version", i32 3}

+ 1 - 1
test/DebugInfo/AArch64/big-endian.ll

@@ -10,7 +10,7 @@ target triple = "aarch64_be--none-eabi"
 !llvm.module.flags = !{!8, !9}
 !llvm.module.flags = !{!8, !9}
 !llvm.ident = !{!10}
 !llvm.ident = !{!10}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "<stdin>", directory: "/work/validation")
 !2 = !DIFile(filename: "<stdin>", directory: "/work/validation")
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)

+ 1 - 1
test/DebugInfo/AArch64/bitfields.ll

@@ -55,7 +55,7 @@ target triple = "aarch64_be--linux-gnu"
 !llvm.module.flags = !{!13, !14, !15}
 !llvm.module.flags = !{!13, !14, !15}
 !llvm.ident = !{!16}
 !llvm.ident = !{!16}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "b", scope: !2, file: !3, line: 8, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "b", scope: !2, file: !3, line: 8, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.7.0 (trunk 240548) (llvm/trunk 240554)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.7.0 (trunk 240548) (llvm/trunk 240554)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !3 = !DIFile(filename: "bitfields.c", directory: "/")
 !3 = !DIFile(filename: "bitfields.c", directory: "/")

+ 2 - 2
test/DebugInfo/AArch64/frameindices.ll

@@ -160,11 +160,11 @@ attributes #4 = { builtin }
 !llvm.module.flags = !{!29, !30}
 !llvm.module.flags = !{!29, !30}
 !llvm.ident = !{!31}
 !llvm.ident = !{!31}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "test.cpp", directory: "")
 !2 = !DIFile(filename: "test.cpp", directory: "")
 !3 = !DIBasicType(name: "long int", size: 64, align: 64, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "long int", size: 64, align: 64, encoding: DW_ATE_signed)
-!4 = !DIGlobalVariableExpression(var: !5)
+!4 = !DIGlobalVariableExpression(var: !5, expr: !DIExpression())
 !5 = !DIGlobalVariable(name: "b", scope: null, file: !2, line: 7, type: !6, isLocal: false, isDefinition: true)
 !5 = !DIGlobalVariable(name: "b", scope: null, file: !2, line: 7, type: !6, isLocal: false, isDefinition: true)
 !6 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !7, size: 64, align: 64)
 !6 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !7, size: 64, align: 64)
 !7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)

+ 2 - 2
test/DebugInfo/AMDGPU/variable-locations.ll

@@ -74,13 +74,13 @@ entry:
 !llvm.module.flags = !{!10, !11}
 !llvm.module.flags = !{!10, !11}
 !llvm.ident = !{!12}
 !llvm.ident = !{!12}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = distinct !DIGlobalVariable(name: "GlobA", scope: !2, file: !3, line: 1, type: !8, isLocal: false, isDefinition: true)
 !1 = distinct !DIGlobalVariable(name: "GlobA", scope: !2, file: !3, line: 1, type: !8, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 5.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 5.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "variable-locations.cl", directory: "/some/random/directory")
 !3 = !DIFile(filename: "variable-locations.cl", directory: "/some/random/directory")
 !4 = !{}
 !4 = !{}
 !5 = !{!0, !6}
 !5 = !{!0, !6}
-!6 = !DIGlobalVariableExpression(var: !7)
+!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = distinct !DIGlobalVariable(name: "GlobB", scope: !2, file: !3, line: 2, type: !8, isLocal: false, isDefinition: true)
 !7 = distinct !DIGlobalVariable(name: "GlobB", scope: !2, file: !3, line: 2, type: !8, isLocal: false, isDefinition: true)
 !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
 !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
 !9 = !{i32 2, i32 0}
 !9 = !{i32 2, i32 0}

+ 1 - 1
test/DebugInfo/ARM/big-endian-bitfield.ll

@@ -19,7 +19,7 @@ target datalayout = "E-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
 !llvm.module.flags = !{!13, !14, !15}
 !llvm.module.flags = !{!13, !14, !15}
 !llvm.ident = !{!16}
 !llvm.ident = !{!16}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "s", scope: !2, file: !3, line: 6, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "s", scope: !2, file: !3, line: 6, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 267633)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 267633)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "bitfield.c", directory: "/Volumes/Data/llvm")
 !3 = !DIFile(filename: "bitfield.c", directory: "/Volumes/Data/llvm")

+ 1 - 1
test/DebugInfo/ARM/bitfield.ll

@@ -27,7 +27,7 @@ target triple = "thumbv7-apple-ios"
 !llvm.module.flags = !{!12, !13, !14, !15, !16}
 !llvm.module.flags = !{!12, !13, !14, !15, !16}
 !llvm.ident = !{!17}
 !llvm.ident = !{!17}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "a", scope: !2, file: !3, line: 5, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "a", scope: !2, file: !3, line: 5, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.7.0 (trunk 240548) (llvm/trunk 240554)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.7.0 (trunk 240548) (llvm/trunk 240554)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !3 = !DIFile(filename: "test.i", directory: "/")
 !3 = !DIFile(filename: "test.i", directory: "/")

+ 2 - 2
test/DebugInfo/ARM/multiple-constant-uses-drops-dbgloc.ll

@@ -33,12 +33,12 @@ attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"=
 !llvm.module.flags = !{!8, !9, !10, !11}
 !llvm.module.flags = !{!8, !9, !10, !11}
 !llvm.ident = !{!12}
 !llvm.ident = !{!12}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "ch", scope: !2, file: !3, line: 1, type: !4, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "ch", scope: !2, file: !3, line: 1, type: !4, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug)
 !3 = !DIFile(filename: "test.c", directory: "/home/user/clang/build")
 !3 = !DIFile(filename: "test.c", directory: "/home/user/clang/build")
 !4 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_unsigned_char)
 !4 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_unsigned_char)
-!5 = !DIGlobalVariableExpression(var: !6)
+!5 = !DIGlobalVariableExpression(var: !6, expr: !DIExpression())
 !6 = !DIGlobalVariable(name: "b", scope: !2, file: !3, line: 2, type: !7, isLocal: false, isDefinition: true)
 !6 = !DIGlobalVariable(name: "b", scope: !2, file: !3, line: 2, type: !7, isLocal: false, isDefinition: true)
 !7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !8 = !{i32 2, !"Dwarf Version", i32 4}
 !8 = !{i32 2, !"Dwarf Version", i32 4}

+ 1 - 1
test/DebugInfo/ARM/tls.ll

@@ -23,7 +23,7 @@ source_filename = "test/DebugInfo/ARM/tls.ll"
 ; TODO: Add expected output for -emulated-tls tests.
 ; TODO: Add expected output for -emulated-tls tests.
 ; EMU-NOT: .long x(tlsldo)
 ; EMU-NOT: .long x(tlsldo)
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "tls.c", directory: "/tmp")
 !2 = !DIFile(filename: "tls.c", directory: "/tmp")
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)

+ 1 - 1
test/DebugInfo/COFF/anonymous-struct.ll

@@ -43,7 +43,7 @@ target triple = "i686-pc-windows-msvc18.0.0"
 !llvm.module.flags = !{!15, !16}
 !llvm.module.flags = !{!15, !16}
 !llvm.ident = !{!17}
 !llvm.ident = !{!17}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "s", scope: !2, file: !6, line: 5, type: !7, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "s", scope: !2, file: !6, line: 5, type: !7, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 274261) (llvm/trunk 274262)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 274261) (llvm/trunk 274262)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "-", directory: "/usr/local/google/home/majnemer/llvm/src")
 !3 = !DIFile(filename: "-", directory: "/usr/local/google/home/majnemer/llvm/src")

+ 1 - 1
test/DebugInfo/COFF/array-odr-violation.ll

@@ -67,7 +67,7 @@ attributes #1 = { nounwind readnone }
 !llvm.ident = !{!13, !13}
 !llvm.ident = !{!13, !13}
 !llvm.module.flags = !{!18, !19, !20}
 !llvm.module.flags = !{!18, !19, !20}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = distinct !DIGlobalVariable(name: "a", linkageName: "\01?a@@3TYYSTYPE@@A", scope: !2, file: !3, line: 2, type: !6, isLocal: false, isDefinition: true)
 !1 = distinct !DIGlobalVariable(name: "a", linkageName: "\01?a@@3TYYSTYPE@@A", scope: !2, file: !3, line: 2, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 5.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 5.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "a.cpp", directory: "C:\5Csrc\5Cllvm-project\5Cbuild", checksumkind: CSK_MD5, checksum: "c0005139aa3df153c30d8c6953390a4b")
 !3 = !DIFile(filename: "a.cpp", directory: "C:\5Csrc\5Cllvm-project\5Cbuild", checksumkind: CSK_MD5, checksum: "c0005139aa3df153c30d8c6953390a4b")

+ 1 - 1
test/DebugInfo/COFF/big-type.ll

@@ -63,7 +63,7 @@ target triple = "x86_64-pc-windows-msvc19.0.23918"
 !llvm.module.flags = !{!5705, !5706, !5707}
 !llvm.module.flags = !{!5705, !5706, !5707}
 !llvm.ident = !{!5708}
 !llvm.ident = !{!5708}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", linkageName: "\01?x@@3W4BigThing@@A", scope: !2, file: !3, line: 5698, type: !5, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", linkageName: "\01?x@@3W4BigThing@@A", scope: !2, file: !3, line: 5698, type: !5, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 273198) (llvm/trunk 273223)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5704)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 273198) (llvm/trunk 273223)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5704)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild_x86")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild_x86")

+ 3 - 3
test/DebugInfo/COFF/bitfields.ll

@@ -190,13 +190,13 @@ target triple = "x86_64-pc-windows-msvc18.0.0"
 !llvm.module.flags = !{!36, !37, !38}
 !llvm.module.flags = !{!36, !37, !38}
 !llvm.ident = !{!39}
 !llvm.ident = !{!39}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "s0", scope: !2, file: !8, line: 7, type: !33, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "s0", scope: !2, file: !8, line: 7, type: !33, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 273812) (llvm/trunk 273843)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 273812) (llvm/trunk 273843)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "-", directory: "/usr/local/google/home/majnemer/llvm/src")
 !3 = !DIFile(filename: "-", directory: "/usr/local/google/home/majnemer/llvm/src")
 !4 = !{}
 !4 = !{}
 !5 = !{!0, !6, !28}
 !5 = !{!0, !6, !28}
-!6 = distinct !DIGlobalVariableExpression(var: !7)
+!6 = distinct !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "s1", scope: !2, file: !8, line: 18, type: !9, isLocal: false, isDefinition: true)
 !7 = !DIGlobalVariable(name: "s1", scope: !2, file: !8, line: 18, type: !9, isLocal: false, isDefinition: true)
 !8 = !DIFile(filename: "<stdin>", directory: "/usr/local/google/home/majnemer/llvm/src")
 !8 = !DIFile(filename: "<stdin>", directory: "/usr/local/google/home/majnemer/llvm/src")
 !9 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S1", file: !8, line: 10, size: 128, elements: !10)
 !9 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S1", file: !8, line: 10, size: 128, elements: !10)
@@ -218,7 +218,7 @@ target triple = "x86_64-pc-windows-msvc18.0.0"
 !25 = !DIDerivedType(tag: DW_TAG_member, name: "s", scope: !22, file: !8, line: 16, baseType: !26, size: 16, offset: 8)
 !25 = !DIDerivedType(tag: DW_TAG_member, name: "s", scope: !22, file: !8, line: 16, baseType: !26, size: 16, offset: 8)
 !26 = !DIBasicType(name: "short", size: 16, encoding: DW_ATE_signed)
 !26 = !DIBasicType(name: "short", size: 16, encoding: DW_ATE_signed)
 !27 = !DIDerivedType(tag: DW_TAG_member, name: "u", scope: !9, file: !8, line: 17, baseType: !26, size: 3, offset: 112, flags: DIFlagBitField, extraData: i64 112)
 !27 = !DIDerivedType(tag: DW_TAG_member, name: "u", scope: !9, file: !8, line: 17, baseType: !26, size: 3, offset: 112, flags: DIFlagBitField, extraData: i64 112)
-!28 = distinct !DIGlobalVariableExpression(var: !29)
+!28 = distinct !DIGlobalVariableExpression(var: !29, expr: !DIExpression())
 !29 = !DIGlobalVariable(name: "s2", scope: !2, file: !8, line: 24, type: !30, isLocal: false, isDefinition: true)
 !29 = !DIGlobalVariable(name: "s2", scope: !2, file: !8, line: 24, type: !30, isLocal: false, isDefinition: true)
 !30 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S2", file: !8, line: 21, size: 32, elements: !31)
 !30 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S2", file: !8, line: 21, size: 32, elements: !31)
 !31 = !{!32}
 !31 = !{!32}

+ 1 - 1
test/DebugInfo/COFF/enum.ll

@@ -34,7 +34,7 @@ target triple = "i686-pc-windows-msvc18.0.0"
 !llvm.module.flags = !{!11, !12}
 !llvm.module.flags = !{!11, !12}
 !llvm.ident = !{!13}
 !llvm.ident = !{!13}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "e", linkageName: "\01?e@@3W4E@@A", scope: !2, file: !6, line: 2, type: !5, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "e", linkageName: "\01?e@@3W4E@@A", scope: !2, file: !6, line: 2, type: !5, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 272790) (llvm/trunk 272813)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !10)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 272790) (llvm/trunk 272813)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !10)
 !3 = !DIFile(filename: "-", directory: "/")
 !3 = !DIFile(filename: "-", directory: "/")

+ 1 - 1
test/DebugInfo/COFF/global-dllimport.ll

@@ -12,7 +12,7 @@ target triple = "i686-pc-windows-msvc"
 !llvm.module.flags = !{!14, !15}
 !llvm.module.flags = !{!14, !15}
 !llvm.ident = !{!16}
 !llvm.ident = !{!16}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "id", linkageName: "\01?id@?$numpunct@D@@0HA", scope: !2, file: !6, line: 4, type: !7, isLocal: false, isDefinition: true, declaration: !8)
 !1 = !DIGlobalVariable(name: "id", linkageName: "\01?id@?$numpunct@D@@0HA", scope: !2, file: !6, line: 4, type: !7, isLocal: false, isDefinition: true, declaration: !8)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 272628) (llvm/trunk 272566)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 272628) (llvm/trunk 272566)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "/usr/local/google/home/majnemer/Downloads/<stdin>", directory: "/usr/local/google/home/majnemer/llvm/src")
 !3 = !DIFile(filename: "/usr/local/google/home/majnemer/Downloads/<stdin>", directory: "/usr/local/google/home/majnemer/llvm/src")

+ 2 - 2
test/DebugInfo/COFF/globals-discarded.ll

@@ -21,13 +21,13 @@ target triple = "x86_64-pc-windows-msvc19.0.0"
 !llvm.module.flags = !{!9, !10, !11}
 !llvm.module.flags = !{!9, !10, !11}
 !llvm.ident = !{!12}
 !llvm.ident = !{!12}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 4, type: !8, isLocal: true, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 4, type: !8, isLocal: true, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 272215) (llvm/trunk 272226)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 272215) (llvm/trunk 272226)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5)
 !3 = !DIFile(filename: "t.c", directory: "foo")
 !3 = !DIFile(filename: "t.c", directory: "foo")
 !4 = !{}
 !4 = !{}
 !5 = !{!6, !0}
 !5 = !{!6, !0}
-!6 = distinct !DIGlobalVariableExpression(var: !7)
+!6 = distinct !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "_OptionsStorage", scope: !2, file: !3, line: 3, type: !8, isLocal: true, isDefinition: true)
 !7 = !DIGlobalVariable(name: "_OptionsStorage", scope: !2, file: !3, line: 3, type: !8, isLocal: true, isDefinition: true)
 !8 = !DIBasicType(name: "unsigned int", size: 32, align: 32, encoding: DW_ATE_unsigned)
 !8 = !DIBasicType(name: "unsigned int", size: 32, align: 32, encoding: DW_ATE_unsigned)
 !9 = !{i32 2, !"CodeView", i32 1}
 !9 = !{i32 2, !"CodeView", i32 1}

+ 4 - 4
test/DebugInfo/COFF/globals.ll

@@ -163,13 +163,13 @@ $"\01?comdat@?$A@X@@2HB" = comdat any
 !llvm.module.flags = !{!20, !21, !22}
 !llvm.module.flags = !{!20, !21, !22}
 !llvm.ident = !{!23}
 !llvm.ident = !{!23}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "first", linkageName: "\01?first@@3HA", scope: !2, file: !3, line: 1, type: !9, isLocal: true, isDefinition: true)
 !1 = !DIGlobalVariable(name: "first", linkageName: "\01?first@@3HA", scope: !2, file: !3, line: 1, type: !9, isLocal: true, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 271937)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 271937)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !4 = !{}
 !4 = !{}
 !5 = !{!0, !6, !15, !18}
 !5 = !{!0, !6, !15, !18}
-!6 = distinct !DIGlobalVariableExpression(var: !7)
+!6 = distinct !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "comdat", linkageName: "\01?comdat@?$A@X@@2HB", scope: !2, file: !3, line: 2, type: !8, isLocal: false, isDefinition: true, declaration: !10)
 !7 = !DIGlobalVariable(name: "comdat", linkageName: "\01?comdat@?$A@X@@2HB", scope: !2, file: !3, line: 2, type: !8, isLocal: false, isDefinition: true, declaration: !10)
 !8 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !9)
 !8 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !9)
 !9 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !9 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
@@ -178,10 +178,10 @@ $"\01?comdat@?$A@X@@2HB" = comdat any
 !12 = !{!10}
 !12 = !{!10}
 !13 = !{!14}
 !13 = !{!14}
 !14 = !DITemplateTypeParameter(name: "T", type: null)
 !14 = !DITemplateTypeParameter(name: "T", type: null)
-!15 = distinct !DIGlobalVariableExpression(var: !16)
+!15 = distinct !DIGlobalVariableExpression(var: !16, expr: !DIExpression())
 !16 = !DIGlobalVariable(name: "middle", linkageName: "\01?middle@@3PEBHEB", scope: !2, file: !3, line: 3, type: !17, isLocal: false, isDefinition: true)
 !16 = !DIGlobalVariable(name: "middle", linkageName: "\01?middle@@3PEBHEB", scope: !2, file: !3, line: 3, type: !17, isLocal: false, isDefinition: true)
 !17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8, size: 64, align: 64)
 !17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8, size: 64, align: 64)
-!18 = distinct !DIGlobalVariableExpression(var: !19)
+!18 = distinct !DIGlobalVariableExpression(var: !19, expr: !DIExpression())
 !19 = !DIGlobalVariable(name: "last", linkageName: "\01?last@@3HA", scope: !2, file: !3, line: 4, type: !9, isLocal: false, isDefinition: true)
 !19 = !DIGlobalVariable(name: "last", linkageName: "\01?last@@3HA", scope: !2, file: !3, line: 4, type: !9, isLocal: false, isDefinition: true)
 !20 = !{i32 2, !"CodeView", i32 1}
 !20 = !{i32 2, !"CodeView", i32 1}
 !21 = !{i32 2, !"Debug Info Version", i32 3}
 !21 = !{i32 2, !"Debug Info Version", i32 3}

+ 1 - 1
test/DebugInfo/COFF/inheritance.ll

@@ -93,7 +93,7 @@ attributes #0 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-
 !llvm.module.flags = !{!32, !33, !34}
 !llvm.module.flags = !{!32, !33, !34}
 !llvm.ident = !{!35}
 !llvm.ident = !{!35}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "d", linkageName: "\01?d@@3UD@@A", scope: !2, file: !6, line: 8, type: !7, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "d", linkageName: "\01?d@@3UD@@A", scope: !2, file: !6, line: 8, type: !7, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 95626d54d6db7e13087089396a80ebaccc4ffe7c) (http://llvm.org/git/llvm.git 374b6e2fa0b230d13c0fb9ee7af69b2146bfad8a)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 95626d54d6db7e13087089396a80ebaccc4ffe7c) (http://llvm.org/git/llvm.git 374b6e2fa0b230d13c0fb9ee7af69b2146bfad8a)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")

+ 1 - 1
test/DebugInfo/COFF/inlining-files.ll

@@ -77,7 +77,7 @@ attributes #0 = { norecurse nounwind uwtable "disable-tail-calls"="false" "less-
 !llvm.module.flags = !{!8, !9, !10}
 !llvm.module.flags = !{!8, !9, !10}
 !llvm.ident = !{!11}
 !llvm.ident = !{!11}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 ", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 ", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")

+ 1 - 1
test/DebugInfo/COFF/inlining-header.ll

@@ -135,7 +135,7 @@ attributes #0 = { norecurse nounwind uwtable "disable-tail-calls"="false" "less-
 !llvm.module.flags = !{!8, !9, !10}
 !llvm.module.flags = !{!8, !9, !10}
 !llvm.ident = !{!11}
 !llvm.ident = !{!11}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", linkageName: "\01?x@@3HC", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", linkageName: "\01?x@@3HC", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 275430) (llvm/trunk 275433)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 275430) (llvm/trunk 275433)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")

+ 1 - 1
test/DebugInfo/COFF/inlining-levels.ll

@@ -59,7 +59,7 @@ attributes #0 = { norecurse nounwind uwtable "disable-tail-calls"="false" "less-
 !llvm.module.flags = !{!8, !9, !10}
 !llvm.module.flags = !{!8, !9, !10}
 !llvm.ident = !{!11}
 !llvm.ident = !{!11}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", linkageName: "\01?x@@3HC", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", linkageName: "\01?x@@3HC", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 ", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 ", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")

+ 2 - 2
test/DebugInfo/COFF/int8-char-type.ll

@@ -32,13 +32,13 @@ target triple = "x86_64-pc-windows-msvc19.0.24210"
 !llvm.module.flags = !{!13, !14, !15}
 !llvm.module.flags = !{!13, !14, !15}
 !llvm.ident = !{!16}
 !llvm.ident = !{!16}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", scope: !2, file: !8, line: 4, type: !11, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", scope: !2, file: !8, line: 4, type: !11, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "-", directory: "C:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "-", directory: "C:\5Csrc\5Cllvm\5Cbuild")
 !4 = !{}
 !4 = !{}
 !5 = !{!0, !6}
 !5 = !{!0, !6}
-!6 = distinct !DIGlobalVariableExpression(var: !7)
+!6 = distinct !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "y", scope: !2, file: !8, line: 5, type: !9, isLocal: false, isDefinition: true)
 !7 = !DIGlobalVariable(name: "y", scope: !2, file: !8, line: 5, type: !9, isLocal: false, isDefinition: true)
 !8 = !DIFile(filename: "<stdin>", directory: "C:\5Csrc\5Cllvm\5Cbuild")
 !8 = !DIFile(filename: "<stdin>", directory: "C:\5Csrc\5Cllvm\5Cbuild")
 !9 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint8_t", file: !8, line: 3, baseType: !10)
 !9 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint8_t", file: !8, line: 3, baseType: !10)

+ 1 - 1
test/DebugInfo/COFF/long-type-name.ll

@@ -28,7 +28,7 @@ target triple = "x86_64-pc-windows-msvc"
 !llvm.module.flags = !{!8, !9}
 !llvm.module.flags = !{!8, !9}
 !llvm.ident = !{!10}
 !llvm.ident = !{!10}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "f", linkageName: "\01?f@@3UFoo@@A", scope: !2, file: !6, line: 1, type: !7, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "f", linkageName: "\01?f@@3UFoo@@A", scope: !2, file: !6, line: 1, type: !7, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 4.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 4.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "<stdin>", directory: "C:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "<stdin>", directory: "C:\5Csrc\5Cllvm\5Cbuild")

+ 1 - 1
test/DebugInfo/COFF/nested-types.ll

@@ -23,7 +23,7 @@ target triple = "x86_64-pc-windows-msvc19.0.24215"
 !llvm.module.flags = !{!17, !18, !19, !20}
 !llvm.module.flags = !{!17, !18, !19, !20}
 !llvm.ident = !{!21}
 !llvm.ident = !{!21}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = distinct !DIGlobalVariable(name: "f", linkageName: "\01?f@@3UHasNested@@A", scope: !2, file: !3, line: 7, type: !6, isLocal: false, isDefinition: true)
 !1 = distinct !DIGlobalVariable(name: "f", linkageName: "\01?f@@3UHasNested@@A", scope: !2, file: !3, line: 7, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 6.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !16)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 6.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !16)
 !3 = !DIFile(filename: "t.cpp", directory: "C:\5Csrc\5Cllvm-project\5Cbuild", checksumkind: CSK_MD5, checksum: "40c412b85e2b27acb30eef53983b1da4")
 !3 = !DIFile(filename: "t.cpp", directory: "C:\5Csrc\5Cllvm-project\5Cbuild", checksumkind: CSK_MD5, checksum: "40c412b85e2b27acb30eef53983b1da4")

+ 1 - 1
test/DebugInfo/COFF/register-variables.ll

@@ -240,7 +240,7 @@ attributes #3 = { nounwind }
 !llvm.module.flags = !{!8, !9, !10}
 !llvm.module.flags = !{!8, !9, !10}
 !llvm.ident = !{!11}
 !llvm.ident = !{!11}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 260617) (llvm/trunk 260619)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 260617) (llvm/trunk 260619)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")

+ 1 - 1
test/DebugInfo/COFF/scopes.ll

@@ -108,7 +108,7 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!16, !17, !18}
 !llvm.module.flags = !{!16, !17, !18}
 !llvm.ident = !{!19}
 !llvm.ident = !{!19}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "g", linkageName: "\01?g@bar@foo@@3UGlobalRecord@12@A", scope: !2, file: !3, line: 12, type: !5, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "g", linkageName: "\01?g@bar@foo@@3UGlobalRecord@12@A", scope: !2, file: !3, line: 12, type: !5, isLocal: false, isDefinition: true)
 !2 = !DINamespace(name: "bar", scope: !4)
 !2 = !DINamespace(name: "bar", scope: !4)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")

+ 4 - 4
test/DebugInfo/COFF/types-array-advanced.ll

@@ -213,13 +213,13 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!32, !33}
 !llvm.module.flags = !{!32, !33}
 !llvm.ident = !{!34}
 !llvm.ident = !{!34}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "multi_dim_arr", linkageName: "\01?multi_dim_arr@@3PAY146DA", scope: !2, file: !3, line: 1, type: !26, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "multi_dim_arr", linkageName: "\01?multi_dim_arr@@3PAY146DA", scope: !2, file: !3, line: 1, type: !26, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 273874)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 273874)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "/")
 !3 = !DIFile(filename: "t.cpp", directory: "/")
 !4 = !{}
 !4 = !{}
 !5 = !{!0, !6, !16, !18}
 !5 = !{!0, !6, !16, !18}
-!6 = distinct !DIGlobalVariableExpression(var: !7)
+!6 = distinct !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "p_incomplete_struct_arr", linkageName: "\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A", scope: !2, file: !3, line: 3, type: !8, isLocal: false, isDefinition: true)
 !7 = !DIGlobalVariable(name: "p_incomplete_struct_arr", linkageName: "\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A", scope: !2, file: !3, line: 3, type: !8, isLocal: false, isDefinition: true)
 !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !9, size: 32, align: 32)
 !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !9, size: 32, align: 32)
 !9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !10, elements: !14)
 !9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !10, elements: !14)
@@ -229,9 +229,9 @@ attributes #1 = { nounwind readnone }
 !13 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !13 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !14 = !{!15}
 !14 = !{!15}
 !15 = !DISubrange(count: 3)
 !15 = !DISubrange(count: 3)
-!16 = distinct !DIGlobalVariableExpression(var: !17)
+!16 = distinct !DIGlobalVariableExpression(var: !17, expr: !DIExpression())
 !17 = !DIGlobalVariable(name: "incomplete_struct_arr", linkageName: "\01?incomplete_struct_arr@@3PAUincomplete_struct@@A", scope: !2, file: !3, line: 6, type: !9, isLocal: false, isDefinition: true)
 !17 = !DIGlobalVariable(name: "incomplete_struct_arr", linkageName: "\01?incomplete_struct_arr@@3PAUincomplete_struct@@A", scope: !2, file: !3, line: 6, type: !9, isLocal: false, isDefinition: true)
-!18 = distinct !DIGlobalVariableExpression(var: !19)
+!18 = distinct !DIGlobalVariableExpression(var: !19, expr: !DIExpression())
 !19 = !DIGlobalVariable(name: "typedef_arr", linkageName: "\01?typedef_arr@@3SDHD", scope: !2, file: !3, line: 14, type: !20, isLocal: false, isDefinition: true)
 !19 = !DIGlobalVariable(name: "typedef_arr", linkageName: "\01?typedef_arr@@3SDHD", scope: !2, file: !3, line: 14, type: !20, isLocal: false, isDefinition: true)
 !20 = !DICompositeType(tag: DW_TAG_array_type, baseType: !21, size: 128, align: 32, elements: !24)
 !20 = !DICompositeType(tag: DW_TAG_array_type, baseType: !21, size: 128, align: 32, elements: !24)
 !21 = !DIDerivedType(tag: DW_TAG_typedef, name: "T_INT", file: !3, line: 13, baseType: !22)
 !21 = !DIDerivedType(tag: DW_TAG_typedef, name: "T_INT", file: !3, line: 13, baseType: !22)

+ 1 - 1
test/DebugInfo/COFF/types-nested-class.ll

@@ -85,7 +85,7 @@ target triple = "i686-pc-windows-msvc19.0.23918"
 !llvm.module.flags = !{!9, !10}
 !llvm.module.flags = !{!9, !10}
 !llvm.ident = !{!11}
 !llvm.ident = !{!11}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "a", linkageName: "\01?a@@3UA@@A", scope: !2, file: !3, line: 3, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "a", linkageName: "\01?a@@3UA@@A", scope: !2, file: !3, line: 3, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "hello.cpp", directory: "D:\5Csrc\5Chello")
 !3 = !DIFile(filename: "hello.cpp", directory: "D:\5Csrc\5Chello")

+ 10 - 10
test/DebugInfo/COFF/types-ptr-to-member.ll

@@ -199,13 +199,13 @@ target triple = "x86_64-pc-windows-msvc19.0.23918"
 !llvm.module.flags = !{!66, !67, !68}
 !llvm.module.flags = !{!66, !67, !68}
 !llvm.ident = !{!69}
 !llvm.ident = !{!69}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "pmd_a", linkageName: "\01?pmd_a@@3PEQA@@HEQ1@", scope: !2, file: !3, line: 6, type: !65, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "pmd_a", linkageName: "\01?pmd_a@@3PEQA@@HEQ1@", scope: !2, file: !3, line: 6, type: !65, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 273036) (llvm/trunk 273053)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 273036) (llvm/trunk 273053)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !4 = !{}
 !4 = !{}
 !5 = !{!0, !6, !21, !25, !29, !35, !41, !47, !53, !58}
 !5 = !{!0, !6, !21, !25, !29, !35, !41, !47, !53, !58}
-!6 = distinct !DIGlobalVariableExpression(var: !7)
+!6 = distinct !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "pmd_b", linkageName: "\01?pmd_b@@3PEQC@@HEQ1@", scope: !2, file: !3, line: 7, type: !8, isLocal: false, isDefinition: true)
 !7 = !DIGlobalVariable(name: "pmd_b", linkageName: "\01?pmd_b@@3PEQC@@HEQ1@", scope: !2, file: !3, line: 7, type: !8, isLocal: false, isDefinition: true)
 !8 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !9, size: 32, flags: DIFlagMultipleInheritance, extraData: !10)
 !8 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !9, size: 32, flags: DIFlagMultipleInheritance, extraData: !10)
 !9 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !9 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
@@ -220,44 +220,44 @@ target triple = "x86_64-pc-windows-msvc19.0.23918"
 !18 = !{!19}
 !18 = !{!19}
 !19 = !DIDerivedType(tag: DW_TAG_member, name: "b", scope: !17, file: !3, line: 2, baseType: !9, size: 32, align: 32)
 !19 = !DIDerivedType(tag: DW_TAG_member, name: "b", scope: !17, file: !3, line: 2, baseType: !9, size: 32, align: 32)
 !20 = !DIDerivedType(tag: DW_TAG_member, name: "c", scope: !10, file: !3, line: 3, baseType: !9, size: 32, align: 32, offset: 64)
 !20 = !DIDerivedType(tag: DW_TAG_member, name: "c", scope: !10, file: !3, line: 3, baseType: !9, size: 32, align: 32, offset: 64)
-!21 = distinct !DIGlobalVariableExpression(var: !22)
+!21 = distinct !DIGlobalVariableExpression(var: !22, expr: !DIExpression())
 !22 = !DIGlobalVariable(name: "pmd_c", linkageName: "\01?pmd_c@@3PEQD@@HEQ1@", scope: !2, file: !3, line: 8, type: !23, isLocal: false, isDefinition: true)
 !22 = !DIGlobalVariable(name: "pmd_c", linkageName: "\01?pmd_c@@3PEQD@@HEQ1@", scope: !2, file: !3, line: 8, type: !23, isLocal: false, isDefinition: true)
 !23 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !9, size: 64, flags: DIFlagVirtualInheritance, extraData: !24)
 !23 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !9, size: 64, flags: DIFlagVirtualInheritance, extraData: !24)
 !24 = !DICompositeType(tag: DW_TAG_structure_type, name: "D", file: !3, line: 4, size: 256, align: 64, flags: DIFlagFwdDecl, identifier: ".?AUD@@")
 !24 = !DICompositeType(tag: DW_TAG_structure_type, name: "D", file: !3, line: 4, size: 256, align: 64, flags: DIFlagFwdDecl, identifier: ".?AUD@@")
-!25 = distinct !DIGlobalVariableExpression(var: !26)
+!25 = distinct !DIGlobalVariableExpression(var: !26, expr: !DIExpression())
 !26 = !DIGlobalVariable(name: "pmd_d", linkageName: "\01?pmd_d@@3PEQE@@HEQ1@", scope: !2, file: !3, line: 9, type: !27, isLocal: false, isDefinition: true)
 !26 = !DIGlobalVariable(name: "pmd_d", linkageName: "\01?pmd_d@@3PEQE@@HEQ1@", scope: !2, file: !3, line: 9, type: !27, isLocal: false, isDefinition: true)
 !27 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !9, size: 96, extraData: !28)
 !27 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !9, size: 96, extraData: !28)
 !28 = !DICompositeType(tag: DW_TAG_structure_type, name: "E", file: !3, line: 5, flags: DIFlagFwdDecl, identifier: ".?AUE@@")
 !28 = !DICompositeType(tag: DW_TAG_structure_type, name: "E", file: !3, line: 5, flags: DIFlagFwdDecl, identifier: ".?AUE@@")
-!29 = distinct !DIGlobalVariableExpression(var: !30)
+!29 = distinct !DIGlobalVariableExpression(var: !30, expr: !DIExpression())
 !30 = !DIGlobalVariable(name: "pmf_a", linkageName: "\01?pmf_a@@3P8A@@EAAXXZEQ1@", scope: !2, file: !3, line: 10, type: !31, isLocal: false, isDefinition: true)
 !30 = !DIGlobalVariable(name: "pmf_a", linkageName: "\01?pmf_a@@3P8A@@EAAXXZEQ1@", scope: !2, file: !3, line: 10, type: !31, isLocal: false, isDefinition: true)
 !31 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !32, size: 64, flags: DIFlagSingleInheritance, extraData: !13)
 !31 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !32, size: 64, flags: DIFlagSingleInheritance, extraData: !13)
 !32 = !DISubroutineType(types: !33)
 !32 = !DISubroutineType(types: !33)
 !33 = !{null, !34}
 !33 = !{null, !34}
 !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !13, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
 !34 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !13, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
-!35 = distinct !DIGlobalVariableExpression(var: !36)
+!35 = distinct !DIGlobalVariableExpression(var: !36, expr: !DIExpression())
 !36 = !DIGlobalVariable(name: "pmf_b", linkageName: "\01?pmf_b@@3P8C@@EAAXXZEQ1@", scope: !2, file: !3, line: 11, type: !37, isLocal: false, isDefinition: true)
 !36 = !DIGlobalVariable(name: "pmf_b", linkageName: "\01?pmf_b@@3P8C@@EAAXXZEQ1@", scope: !2, file: !3, line: 11, type: !37, isLocal: false, isDefinition: true)
 !37 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !38, size: 128, flags: DIFlagMultipleInheritance, extraData: !10)
 !37 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !38, size: 128, flags: DIFlagMultipleInheritance, extraData: !10)
 !38 = !DISubroutineType(types: !39)
 !38 = !DISubroutineType(types: !39)
 !39 = !{null, !40}
 !39 = !{null, !40}
 !40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !10, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
 !40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !10, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
-!41 = distinct !DIGlobalVariableExpression(var: !42)
+!41 = distinct !DIGlobalVariableExpression(var: !42, expr: !DIExpression())
 !42 = !DIGlobalVariable(name: "pmf_c", linkageName: "\01?pmf_c@@3P8D@@EAAXXZEQ1@", scope: !2, file: !3, line: 12, type: !43, isLocal: false, isDefinition: true)
 !42 = !DIGlobalVariable(name: "pmf_c", linkageName: "\01?pmf_c@@3P8D@@EAAXXZEQ1@", scope: !2, file: !3, line: 12, type: !43, isLocal: false, isDefinition: true)
 !43 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !44, size: 128, flags: DIFlagVirtualInheritance, extraData: !24)
 !43 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !44, size: 128, flags: DIFlagVirtualInheritance, extraData: !24)
 !44 = !DISubroutineType(types: !45)
 !44 = !DISubroutineType(types: !45)
 !45 = !{null, !46}
 !45 = !{null, !46}
 !46 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !24, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
 !46 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !24, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
-!47 = distinct !DIGlobalVariableExpression(var: !48)
+!47 = distinct !DIGlobalVariableExpression(var: !48, expr: !DIExpression())
 !48 = !DIGlobalVariable(name: "pmf_d", linkageName: "\01?pmf_d@@3P8E@@EAAXXZEQ1@", scope: !2, file: !3, line: 13, type: !49, isLocal: false, isDefinition: true)
 !48 = !DIGlobalVariable(name: "pmf_d", linkageName: "\01?pmf_d@@3P8E@@EAAXXZEQ1@", scope: !2, file: !3, line: 13, type: !49, isLocal: false, isDefinition: true)
 !49 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !50, size: 192, extraData: !28)
 !49 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !50, size: 192, extraData: !28)
 !50 = !DISubroutineType(types: !51)
 !50 = !DISubroutineType(types: !51)
 !51 = !{null, !52}
 !51 = !{null, !52}
 !52 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !28, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
 !52 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !28, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
-!53 = distinct !DIGlobalVariableExpression(var: !54)
+!53 = distinct !DIGlobalVariableExpression(var: !54, expr: !DIExpression())
 !54 = !DIGlobalVariable(name: "ppmd", linkageName: "\01?ppmd@@3PEAPEQIncomplete@@HEA", scope: !2, file: !3, line: 15, type: !55, isLocal: false, isDefinition: true)
 !54 = !DIGlobalVariable(name: "ppmd", linkageName: "\01?ppmd@@3PEAPEQIncomplete@@HEA", scope: !2, file: !3, line: 15, type: !55, isLocal: false, isDefinition: true)
 !55 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !56, size: 64, align: 64)
 !55 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !56, size: 64, align: 64)
 !56 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !9, extraData: !57)
 !56 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !9, extraData: !57)
 !57 = !DICompositeType(tag: DW_TAG_structure_type, name: "Incomplete", file: !3, line: 14, flags: DIFlagFwdDecl, identifier: ".?AUIncomplete@@")
 !57 = !DICompositeType(tag: DW_TAG_structure_type, name: "Incomplete", file: !3, line: 14, flags: DIFlagFwdDecl, identifier: ".?AUIncomplete@@")
-!58 = distinct !DIGlobalVariableExpression(var: !59)
+!58 = distinct !DIGlobalVariableExpression(var: !59, expr: !DIExpression())
 !59 = !DIGlobalVariable(name: "ppmf", linkageName: "\01?ppmf@@3PEAP8Incomplete@@EAAXXZEA", scope: !2, file: !3, line: 16, type: !60, isLocal: false, isDefinition: true)
 !59 = !DIGlobalVariable(name: "ppmf", linkageName: "\01?ppmf@@3PEAP8Incomplete@@EAAXXZEA", scope: !2, file: !3, line: 16, type: !60, isLocal: false, isDefinition: true)
 !60 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !61, size: 64, align: 64)
 !60 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !61, size: 64, align: 64)
 !61 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !62, extraData: !57)
 !61 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !62, extraData: !57)

+ 1 - 1
test/DebugInfo/COFF/udts.ll

@@ -94,7 +94,7 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!11, !12, !13}
 !llvm.module.flags = !{!11, !12, !13}
 !llvm.ident = !{!14}
 !llvm.ident = !{!14}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "u", linkageName: "\01?u@@3UU@@A", scope: !2, file: !3, line: 13, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "u", linkageName: "\01?u@@3UU@@A", scope: !2, file: !3, line: 13, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")

+ 1 - 1
test/DebugInfo/COFF/virtual-method-kinds.ll

@@ -234,7 +234,7 @@ attributes #6 = { nounwind }
 !llvm.module.flags = !{!36, !37, !38}
 !llvm.module.flags = !{!36, !37, !38}
 !llvm.ident = !{!39}
 !llvm.ident = !{!39}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "p", linkageName: "\01?p@@3PEAUC@@EA", scope: !2, file: !3, line: 13, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "p", linkageName: "\01?p@@3PEAUC@@EA", scope: !2, file: !3, line: 13, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")

+ 2 - 2
test/DebugInfo/COFF/vtable-optzn-array.ll

@@ -97,13 +97,13 @@ attributes #3 = { nounwind readnone }
 !llvm.module.flags = !{!24, !25}
 !llvm.module.flags = !{!24, !25}
 !llvm.ident = !{!26}
 !llvm.ident = !{!26}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "force_fwd_decl", linkageName: "\01?force_fwd_decl@@3UGetFwdDecl@@A", scope: !2, file: !8, line: 5, type: !21, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "force_fwd_decl", linkageName: "\01?force_fwd_decl@@3UGetFwdDecl@@A", scope: !2, file: !8, line: 5, type: !21, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 4.0.0 (trunk 281056) (llvm/trunk 281051)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 4.0.0 (trunk 281056) (llvm/trunk 281051)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "<stdin>", directory: "C:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "<stdin>", directory: "C:\5Csrc\5Cllvm\5Cbuild")
 !4 = !{}
 !4 = !{}
 !5 = !{!0, !6}
 !5 = !{!0, !6}
-!6 = distinct !DIGlobalVariableExpression(var: !7)
+!6 = distinct !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "require_complete", linkageName: "\01?require_complete@@3UUseCompleteType@@A", scope: !2, file: !8, line: 15, type: !9, isLocal: false, isDefinition: true)
 !7 = !DIGlobalVariable(name: "require_complete", linkageName: "\01?require_complete@@3UUseCompleteType@@A", scope: !2, file: !8, line: 15, type: !9, isLocal: false, isDefinition: true)
 !8 = !DIFile(filename: "t.cpp", directory: "C:\5Csrc\5Cllvm\5Cbuild")
 !8 = !DIFile(filename: "t.cpp", directory: "C:\5Csrc\5Cllvm\5Cbuild")
 !9 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "UseCompleteType", file: !8, line: 10, size: 64, align: 64, elements: !10, identifier: ".?AUUseCompleteType@@")
 !9 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "UseCompleteType", file: !8, line: 10, size: 64, align: 64, elements: !10, identifier: ".?AUUseCompleteType@@")

+ 1 - 1
test/DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll

@@ -18,7 +18,7 @@ attributes #0 = { nounwind readnone ssp uwtable }
 !1 = !DIFile(filename: "fb.c", directory: "/private/tmp")
 !1 = !DIFile(filename: "fb.c", directory: "/private/tmp")
 !2 = !{}
 !2 = !{}
 !3 = !{!4}
 !3 = !{!4}
-!4 = !DIGlobalVariableExpression(var: !5)
+!4 = !DIGlobalVariableExpression(var: !5, expr: !DIExpression())
 !5 = !DIGlobalVariable(name: "bar", scope: !6, file: !1, line: 2, type: !9, isLocal: true, isDefinition: true)
 !5 = !DIGlobalVariable(name: "bar", scope: !6, file: !1, line: 2, type: !9, isLocal: true, isDefinition: true)
 !6 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !7, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !0)
 !6 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !7, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !0)
 !7 = !DISubroutineType(types: !8)
 !7 = !DISubroutineType(types: !8)

+ 1 - 1
test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll

@@ -6,7 +6,7 @@ source_filename = "test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll"
 !llvm.dbg.cu = !{!4}
 !llvm.dbg.cu = !{!4}
 !llvm.module.flags = !{!7}
 !llvm.module.flags = !{!7}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 2, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 2, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "g.c", directory: "/private/tmp")
 !2 = !DIFile(filename: "g.c", directory: "/private/tmp")
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)

+ 1 - 1
test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll

@@ -32,7 +32,7 @@ attributes #1 = { nounwind ssp }
 !llvm.dbg.cu = !{!4}
 !llvm.dbg.cu = !{!4}
 !llvm.module.flags = !{!7}
 !llvm.module.flags = !{!7}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "i", scope: !2, file: !2, line: 5, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "i", scope: !2, file: !2, line: 5, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "bar.c", directory: "/tmp/")
 !2 = !DIFile(filename: "bar.c", directory: "/tmp/")
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)

+ 12 - 12
test/DebugInfo/Generic/accel-table-hash-collisions.ll

@@ -69,34 +69,34 @@ source_filename = "test/DebugInfo/Generic/accel-table-hash-collisions.ll"
 !llvm.module.flags = !{!29, !30, !31}
 !llvm.module.flags = !{!29, !30, !31}
 !llvm.ident = !{!32}
 !llvm.ident = !{!32}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "ForceTopDown", scope: !2, file: !3, line: 1, type: !8, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "ForceTopDown", scope: !2, file: !3, line: 1, type: !8, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.7.0 (trunk 231548) (llvm/trunk 231547)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.7.0 (trunk 231548) (llvm/trunk 231547)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !3 = !DIFile(filename: "hash-collisions.c", directory: "/tmp")
 !3 = !DIFile(filename: "hash-collisions.c", directory: "/tmp")
 !4 = !{}
 !4 = !{}
 !5 = !{!0, !6, !9, !11, !13, !15, !17, !19, !21, !23, !25, !27}
 !5 = !{!0, !6, !9, !11, !13, !15, !17, !19, !21, !23, !25, !27}
-!6 = !DIGlobalVariableExpression(var: !7)
+!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "_ZNSt3__116allocator_traitsINS_9allocatorINS_11__tree_nodeINS_12__value_typeIPN4llvm10BasicBlockEPNS4_10RegionNodeEEEPvEEEEE11__constructIS9_JNS_4pairIS6_S8_EEEEEvNS_17integral_constantIbLb1EEERSC_PT_DpOT0_", scope: !2, file: !3, line: 2, type: !8, isLocal: false, isDefinition: true)
 !7 = !DIGlobalVariable(name: "_ZNSt3__116allocator_traitsINS_9allocatorINS_11__tree_nodeINS_12__value_typeIPN4llvm10BasicBlockEPNS4_10RegionNodeEEEPvEEEEE11__constructIS9_JNS_4pairIS6_S8_EEEEEvNS_17integral_constantIbLb1EEERSC_PT_DpOT0_", scope: !2, file: !3, line: 2, type: !8, isLocal: false, isDefinition: true)
 !8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
-!9 = !DIGlobalVariableExpression(var: !10)
+!9 = !DIGlobalVariableExpression(var: !10, expr: !DIExpression())
 !10 = !DIGlobalVariable(name: "_ZN5clang23DataRecursiveASTVisitorIN12_GLOBAL__N_124UnusedBackingIvarCheckerEE26TraverseCUDAKernelCallExprEPNS_18CUDAKernelCallExprE", scope: !2, file: !3, line: 3, type: !8, isLocal: false, isDefinition: true)
 !10 = !DIGlobalVariable(name: "_ZN5clang23DataRecursiveASTVisitorIN12_GLOBAL__N_124UnusedBackingIvarCheckerEE26TraverseCUDAKernelCallExprEPNS_18CUDAKernelCallExprE", scope: !2, file: !3, line: 3, type: !8, isLocal: false, isDefinition: true)
-!11 = !DIGlobalVariableExpression(var: !12)
+!11 = !DIGlobalVariableExpression(var: !12, expr: !DIExpression())
 !12 = !DIGlobalVariable(name: "_ZN4llvm16DenseMapIteratorIPNS_10MDLocationENS_6detail13DenseSetEmptyENS_10MDNodeInfoIS1_EENS3_12DenseSetPairIS2_EELb0EE23AdvancePastEmptyBucketsEv", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
 !12 = !DIGlobalVariable(name: "_ZN4llvm16DenseMapIteratorIPNS_10MDLocationENS_6detail13DenseSetEmptyENS_10MDNodeInfoIS1_EENS3_12DenseSetPairIS2_EELb0EE23AdvancePastEmptyBucketsEv", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
-!13 = !DIGlobalVariableExpression(var: !14)
+!13 = !DIGlobalVariableExpression(var: !14, expr: !DIExpression())
 !14 = !DIGlobalVariable(name: "_ZNK4llvm12LivePhysRegs5printERNS_11raw_ostreamE", scope: !2, file: !3, line: 5, type: !8, isLocal: false, isDefinition: true)
 !14 = !DIGlobalVariable(name: "_ZNK4llvm12LivePhysRegs5printERNS_11raw_ostreamE", scope: !2, file: !3, line: 5, type: !8, isLocal: false, isDefinition: true)
-!15 = !DIGlobalVariableExpression(var: !16)
+!15 = !DIGlobalVariableExpression(var: !16, expr: !DIExpression())
 !16 = !DIGlobalVariable(name: "_ZN4llvm15ScalarEvolution14getSignedRangeEPKNS_4SCEVE", scope: !2, file: !3, line: 6, type: !8, isLocal: false, isDefinition: true)
 !16 = !DIGlobalVariable(name: "_ZN4llvm15ScalarEvolution14getSignedRangeEPKNS_4SCEVE", scope: !2, file: !3, line: 6, type: !8, isLocal: false, isDefinition: true)
-!17 = !DIGlobalVariableExpression(var: !18)
+!17 = !DIGlobalVariableExpression(var: !18, expr: !DIExpression())
 !18 = !DIGlobalVariable(name: "k1", scope: !2, file: !3, line: 7, type: !8, isLocal: false, isDefinition: true)
 !18 = !DIGlobalVariable(name: "k1", scope: !2, file: !3, line: 7, type: !8, isLocal: false, isDefinition: true)
-!19 = !DIGlobalVariableExpression(var: !20)
+!19 = !DIGlobalVariableExpression(var: !20, expr: !DIExpression())
 !20 = !DIGlobalVariable(name: "is", scope: !2, file: !3, line: 8, type: !8, isLocal: false, isDefinition: true)
 !20 = !DIGlobalVariable(name: "is", scope: !2, file: !3, line: 8, type: !8, isLocal: false, isDefinition: true)
-!21 = !DIGlobalVariableExpression(var: !22)
+!21 = !DIGlobalVariableExpression(var: !22, expr: !DIExpression())
 !22 = !DIGlobalVariable(name: "setStmt", scope: !2, file: !3, line: 9, type: !8, isLocal: false, isDefinition: true)
 !22 = !DIGlobalVariable(name: "setStmt", scope: !2, file: !3, line: 9, type: !8, isLocal: false, isDefinition: true)
-!23 = !DIGlobalVariableExpression(var: !24)
+!23 = !DIGlobalVariableExpression(var: !24, expr: !DIExpression())
 !24 = !DIGlobalVariable(name: "_ZN4llvm5TwineC1Ei", scope: !2, file: !3, line: 10, type: !8, isLocal: false, isDefinition: true)
 !24 = !DIGlobalVariable(name: "_ZN4llvm5TwineC1Ei", scope: !2, file: !3, line: 10, type: !8, isLocal: false, isDefinition: true)
-!25 = !DIGlobalVariableExpression(var: !26)
+!25 = !DIGlobalVariableExpression(var: !26, expr: !DIExpression())
 !26 = !DIGlobalVariable(name: "_ZNK5clang12OverrideAttr5cloneERNS_10ASTContextE", scope: !2, file: !3, line: 11, type: !8, isLocal: false, isDefinition: true)
 !26 = !DIGlobalVariable(name: "_ZNK5clang12OverrideAttr5cloneERNS_10ASTContextE", scope: !2, file: !3, line: 11, type: !8, isLocal: false, isDefinition: true)
-!27 = !DIGlobalVariableExpression(var: !28)
+!27 = !DIGlobalVariableExpression(var: !28, expr: !DIExpression())
 !28 = !DIGlobalVariable(name: "_ZN4llvm22MachineModuleInfoMachOD2Ev", scope: !2, file: !3, line: 12, type: !8, isLocal: false, isDefinition: true)
 !28 = !DIGlobalVariable(name: "_ZN4llvm22MachineModuleInfoMachOD2Ev", scope: !2, file: !3, line: 12, type: !8, isLocal: false, isDefinition: true)
 !29 = !{i32 2, !"Dwarf Version", i32 2}
 !29 = !{i32 2, !"Dwarf Version", i32 2}
 !30 = !{i32 2, !"Debug Info Version", i32 3}
 !30 = !{i32 2, !"Debug Info Version", i32 3}

+ 2 - 2
test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll

@@ -62,14 +62,14 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!15, !16}
 !llvm.module.flags = !{!15, !16}
 !llvm.ident = !{!17, !17}
 !llvm.ident = !{!17, !17}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "a.cpp", directory: "/tmp/dbginfo")
 !2 = !DIFile(filename: "a.cpp", directory: "/tmp/dbginfo")
 !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64, align: 64)
 !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64, align: 64)
 !4 = !DISubroutineType(types: !5)
 !4 = !DISubroutineType(types: !5)
 !5 = !{!6, !6}
 !5 = !{!6, !6}
 !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
-!7 = !DIGlobalVariableExpression(var: !8)
+!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression())
 !8 = !DIGlobalVariable(name: "y", scope: null, file: !9, line: 4, type: !3, isLocal: false, isDefinition: true)
 !8 = !DIGlobalVariable(name: "y", scope: null, file: !9, line: 4, type: !3, isLocal: false, isDefinition: true)
 !9 = !DIFile(filename: "b.cpp", directory: "/tmp/dbginfo")
 !9 = !DIFile(filename: "b.cpp", directory: "/tmp/dbginfo")
 !10 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !9, producer: "clang version 3.5.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !11, retainedTypes: !11, globals: !12, imports: !11)
 !10 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !9, producer: "clang version 3.5.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !11, retainedTypes: !11, globals: !12, imports: !11)

+ 2 - 2
test/DebugInfo/Generic/cross-cu-linkonce.ll

@@ -50,14 +50,14 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!16, !17}
 !llvm.module.flags = !{!16, !17}
 !llvm.ident = !{!18, !18}
 !llvm.ident = !{!18, !18}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "func.h", directory: "/tmp/dbginfo")
 !2 = !DIFile(filename: "func.h", directory: "/tmp/dbginfo")
 !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64, align: 64)
 !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64, align: 64)
 !4 = !DISubroutineType(types: !5)
 !4 = !DISubroutineType(types: !5)
 !5 = !{!6, !6}
 !5 = !{!6, !6}
 !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
-!7 = !DIGlobalVariableExpression(var: !8)
+!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression())
 !8 = !DIGlobalVariable(name: "y", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !8 = !DIGlobalVariable(name: "y", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !9 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !10, producer: "clang version 3.5.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !11, retainedTypes: !11, globals: !12, imports: !11)
 !9 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !10, producer: "clang version 3.5.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !11, retainedTypes: !11, globals: !12, imports: !11)
 !10 = !DIFile(filename: "a.cpp", directory: "/tmp/dbginfo")
 !10 = !DIFile(filename: "a.cpp", directory: "/tmp/dbginfo")

+ 1 - 1
test/DebugInfo/Generic/dbg-at-specficiation.ll

@@ -10,7 +10,7 @@ source_filename = "test/DebugInfo/Generic/dbg-at-specficiation.ll"
 !llvm.dbg.cu = !{!7}
 !llvm.dbg.cu = !{!7}
 !llvm.module.flags = !{!10}
 !llvm.module.flags = !{!10}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "x.c", directory: "/private/tmp")
 !2 = !DIFile(filename: "x.c", directory: "/private/tmp")
 !3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 320, align: 32, elements: !5)
 !3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 320, align: 32, elements: !5)

+ 1 - 1
test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll

@@ -26,7 +26,7 @@ source_filename = "test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll
 !llvm.module.flags = !{!11, !12}
 !llvm.module.flags = !{!11, !12}
 !llvm.ident = !{!13}
 !llvm.ident = !{!13}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "y", scope: !2, file: !3, line: 7, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "y", scope: !2, file: !3, line: 7, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.7.0 (http://llvm.org/git/clang.git 247b30a043eb8f39ea3708e7e995089da0a6b00f) (http://llvm.org/git/llvm.git 6ecc7365a89c771fd229bdd9ffcc178684ea1aa5)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.7.0 (http://llvm.org/git/clang.git 247b30a043eb8f39ea3708e7e995089da0a6b00f) (http://llvm.org/git/llvm.git 6ecc7365a89c771fd229bdd9ffcc178684ea1aa5)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !3 = !DIFile(filename: "minimal.c", directory: "/tmp")
 !3 = !DIFile(filename: "minimal.c", directory: "/tmp")

+ 3 - 3
test/DebugInfo/Generic/dwarf-public-names.ll

@@ -97,7 +97,7 @@ attributes #1 = { nounwind readnone }
 !llvm.dbg.cu = !{!20}
 !llvm.dbg.cu = !{!20}
 !llvm.module.flags = !{!22}
 !llvm.module.flags = !{!22}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "static_member_variable", linkageName: "_ZN1C22static_member_variableE", scope: !2, file: !3, line: 7, type: !6, isLocal: false, isDefinition: true, declaration: !5)
 !1 = !DIGlobalVariable(name: "static_member_variable", linkageName: "_ZN1C22static_member_variableE", scope: !2, file: !3, line: 7, type: !6, isLocal: false, isDefinition: true, declaration: !5)
 !2 = !DICompositeType(tag: DW_TAG_structure_type, name: "C", file: !3, line: 1, size: 8, align: 8, elements: !4)
 !2 = !DICompositeType(tag: DW_TAG_structure_type, name: "C", file: !3, line: 1, size: 8, align: 8, elements: !4)
 !3 = !DIFile(filename: "dwarf-public-names.cpp", directory: "/usr2/kparzysz/s.hex/t")
 !3 = !DIFile(filename: "dwarf-public-names.cpp", directory: "/usr2/kparzysz/s.hex/t")
@@ -112,9 +112,9 @@ attributes #1 = { nounwind readnone }
 !12 = !DISubprogram(name: "static_member_function", linkageName: "_ZN1C22static_member_functionEv", scope: !2, file: !3, line: 3, type: !13, isLocal: false, isDefinition: false, scopeLine: 3, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, variables: !11)
 !12 = !DISubprogram(name: "static_member_function", linkageName: "_ZN1C22static_member_functionEv", scope: !2, file: !3, line: 3, type: !13, isLocal: false, isDefinition: false, scopeLine: 3, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, variables: !11)
 !13 = !DISubroutineType(types: !14)
 !13 = !DISubroutineType(types: !14)
 !14 = !{!6}
 !14 = !{!6}
-!15 = !DIGlobalVariableExpression(var: !16)
+!15 = !DIGlobalVariableExpression(var: !16, expr: !DIExpression())
 !16 = !DIGlobalVariable(name: "global_variable", scope: null, file: !3, line: 17, type: !2, isLocal: false, isDefinition: true) ; previously: invalid DW_TAG_base_type
 !16 = !DIGlobalVariable(name: "global_variable", scope: null, file: !3, line: 17, type: !2, isLocal: false, isDefinition: true) ; previously: invalid DW_TAG_base_type
-!17 = !DIGlobalVariableExpression(var: !18)
+!17 = !DIGlobalVariableExpression(var: !18, expr: !DIExpression())
 !18 = !DIGlobalVariable(name: "global_namespace_variable", linkageName: "_ZN2ns25global_namespace_variableE", scope: !19, file: !3, line: 27, type: !6, isLocal: false, isDefinition: true)
 !18 = !DIGlobalVariable(name: "global_namespace_variable", linkageName: "_ZN2ns25global_namespace_variableE", scope: !19, file: !3, line: 27, type: !6, isLocal: false, isDefinition: true)
 !19 = !DINamespace(name: "ns", scope: null)
 !19 = !DINamespace(name: "ns", scope: null)
 !20 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.3 (http://llvm.org/git/clang.git a09cd8103a6a719cb2628cdf0c91682250a17bd2) (http://llvm.org/git/llvm.git 47d03cec0afca0c01ae42b82916d1d731716cd20)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !11, retainedTypes: !11, globals: !21, imports: !11) ; previously: invalid DW_TAG_base_type
 !20 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.3 (http://llvm.org/git/clang.git a09cd8103a6a719cb2628cdf0c91682250a17bd2) (http://llvm.org/git/llvm.git 47d03cec0afca0c01ae42b82916d1d731716cd20)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !11, retainedTypes: !11, globals: !21, imports: !11) ; previously: invalid DW_TAG_base_type

+ 1 - 1
test/DebugInfo/Generic/enum.ll

@@ -55,7 +55,7 @@ attributes #1 = { nounwind readnone }
 !llvm.dbg.cu = !{!8}
 !llvm.dbg.cu = !{!8}
 !llvm.module.flags = !{!15, !16}
 !llvm.module.flags = !{!15, !16}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "enum.cpp", directory: "/tmp")
 !2 = !DIFile(filename: "enum.cpp", directory: "/tmp")
 !3 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "e1", file: !2, line: 1, size: 64, align: 64, elements: !4)
 !3 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "e1", file: !2, line: 1, size: 64, align: 64, elements: !4)

+ 1 - 1
test/DebugInfo/Generic/global-sra-array.ll

@@ -78,7 +78,7 @@ attributes #2 = { optsize }
 !llvm.module.flags = !{!15, !16, !17, !18}
 !llvm.module.flags = !{!15, !16, !17, !18}
 !llvm.ident = !{!19}
 !llvm.ident = !{!19}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = distinct !DIGlobalVariable(name: "array", scope: !2, file: !3, line: 1, type: !6, isLocal: true, isDefinition: true)
 !1 = distinct !DIGlobalVariable(name: "array", scope: !2, file: !3, line: 1, type: !6, isLocal: true, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 6.0.0 (trunk 309960) (llvm/trunk 309961)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 6.0.0 (trunk 309960) (llvm/trunk 309961)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "test.c", directory: "/")
 !3 = !DIFile(filename: "test.c", directory: "/")

+ 1 - 1
test/DebugInfo/Generic/global-sra-struct.ll

@@ -80,7 +80,7 @@ attributes #2 = { optsize }
 !llvm.module.flags = !{!12, !13, !14, !15}
 !llvm.module.flags = !{!12, !13, !14, !15}
 !llvm.ident = !{!16}
 !llvm.ident = !{!16}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = distinct !DIGlobalVariable(name: "static_struct", scope: !2, file: !3, line: 4, type: !6, isLocal: true, isDefinition: true)
 !1 = distinct !DIGlobalVariable(name: "static_struct", scope: !2, file: !3, line: 4, type: !6, isLocal: true, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 6.0.0 (trunk 309852) (llvm/trunk 309850)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 6.0.0 (trunk 309852) (llvm/trunk 309850)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "test.c", directory: "/")
 !3 = !DIFile(filename: "test.c", directory: "/")

+ 1 - 1
test/DebugInfo/Generic/global.ll

@@ -32,7 +32,7 @@ attributes #0 = { nounwind readnone uwtable "less-precise-fpmad"="false" "no-fra
 !1 = !DIFile(filename: "global.cpp", directory: "/tmp")
 !1 = !DIFile(filename: "global.cpp", directory: "/tmp")
 !2 = !{}
 !2 = !{}
 !3 = !{!4}
 !3 = !{!4}
-!4 = !DIGlobalVariableExpression(var: !5)
+!4 = !DIGlobalVariableExpression(var: !5, expr: !DIExpression())
 !5 = !DIGlobalVariable(name: "i", linkageName: "_ZL1i", scope: null, file: !1, line: 1, type: !6, isLocal: true, isDefinition: true)
 !5 = !DIGlobalVariable(name: "i", linkageName: "_ZL1i", scope: null, file: !1, line: 1, type: !6, isLocal: true, isDefinition: true)
 !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !7 = !{i32 2, !"Dwarf Version", i32 3}
 !7 = !{i32 2, !"Dwarf Version", i32 3}

+ 2 - 2
test/DebugInfo/Generic/gvn.ll

@@ -67,13 +67,13 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!9, !10}
 !llvm.module.flags = !{!9, !10}
 !llvm.ident = !{!11}
 !llvm.ident = !{!11}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "a", scope: !2, file: !3, line: 1, type: !8, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "a", scope: !2, file: !3, line: 1, type: !8, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.8.0 (trunk 245562) (llvm/trunk 245569)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.8.0 (trunk 245562) (llvm/trunk 245569)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "test.c", directory: "/")
 !3 = !DIFile(filename: "test.c", directory: "/")
 !4 = !{}
 !4 = !{}
 !5 = !{!0, !6}
 !5 = !{!0, !6}
-!6 = !DIGlobalVariableExpression(var: !7)
+!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = !DIGlobalVariable(name: "b", scope: !2, file: !3, line: 1, type: !8, isLocal: false, isDefinition: true)
 !7 = !DIGlobalVariable(name: "b", scope: !2, file: !3, line: 1, type: !8, isLocal: false, isDefinition: true)
 !8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !9 = !{i32 2, !"Dwarf Version", i32 2}
 !9 = !{i32 2, !"Dwarf Version", i32 2}

+ 2 - 2
test/DebugInfo/Generic/member-pointers.ll

@@ -25,14 +25,14 @@ source_filename = "test/DebugInfo/Generic/member-pointers.ll"
 !llvm.dbg.cu = !{!13}
 !llvm.dbg.cu = !{!13}
 !llvm.module.flags = !{!15}
 !llvm.module.flags = !{!15}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "simple.cpp", directory: "/home/blaikie/Development/scratch")
 !2 = !DIFile(filename: "simple.cpp", directory: "/home/blaikie/Development/scratch")
 !3 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !4, extraData: !5)
 !3 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !4, extraData: !5)
 !4 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !4 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !5 = !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !2, line: 1, size: 8, align: 8, elements: !6)
 !5 = !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !2, line: 1, size: 8, align: 8, elements: !6)
 !6 = !{}
 !6 = !{}
-!7 = !DIGlobalVariableExpression(var: !8)
+!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression())
 !8 = !DIGlobalVariable(name: "y", scope: null, file: !2, line: 5, type: !9, isLocal: false, isDefinition: true)
 !8 = !DIGlobalVariable(name: "y", scope: null, file: !2, line: 5, type: !9, isLocal: false, isDefinition: true)
 !9 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !10, extraData: !5)
 !9 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !10, extraData: !5)
 !10 = !DISubroutineType(types: !11)
 !10 = !DISubroutineType(types: !11)

+ 2 - 2
test/DebugInfo/Generic/namespace.ll

@@ -361,5 +361,5 @@ attributes #1 = { nounwind readnone }
 !73 = !DILocation(line: 47, column: 21, scope: !26)
 !73 = !DILocation(line: 47, column: 21, scope: !26)
 !74 = !DILocation(line: 0, scope: !75)
 !74 = !DILocation(line: 0, scope: !75)
 !75 = !DILexicalBlockFile(discriminator: 0, file: !5, scope: !27)
 !75 = !DILexicalBlockFile(discriminator: 0, file: !5, scope: !27)
-!131 = !DIGlobalVariableExpression(var: !31)
-!132 = !DIGlobalVariableExpression(var: !32)
+!131 = !DIGlobalVariableExpression(var: !31, expr: !DIExpression())
+!132 = !DIGlobalVariableExpression(var: !32, expr: !DIExpression())

+ 1 - 1
test/DebugInfo/Generic/recursive_inlining.ll

@@ -201,7 +201,7 @@ attributes #3 = { nounwind }
 !llvm.module.flags = !{!17, !18}
 !llvm.module.flags = !{!17, !18}
 !llvm.ident = !{!19}
 !llvm.ident = !{!19}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 13, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 13, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "recursive_inlining.cpp", directory: "/usr/local/google/home/blaikie/dev/scratch/missing_concrete_variable_on_darwin/reduce")
 !2 = !DIFile(filename: "recursive_inlining.cpp", directory: "/usr/local/google/home/blaikie/dev/scratch/missing_concrete_variable_on_darwin/reduce")
 !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64, align: 64)
 !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64, align: 64)

+ 1 - 1
test/DebugInfo/Generic/template-recursive-void.ll

@@ -27,7 +27,7 @@ source_filename = "test/DebugInfo/Generic/template-recursive-void.ll"
 !llvm.dbg.cu = !{!29}
 !llvm.dbg.cu = !{!29}
 !llvm.module.flags = !{!32, !33}
 !llvm.module.flags = !{!32, !33}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "filters", scope: null, file: !2, line: 10, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "filters", scope: null, file: !2, line: 10, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "debug-info-template-recursive.cpp", directory: "/usr/local/google/home/echristo/tmp")
 !2 = !DIFile(filename: "debug-info-template-recursive.cpp", directory: "/usr/local/google/home/echristo/tmp")
 !3 = !DICompositeType(tag: DW_TAG_class_type, name: "bar", file: !2, line: 9, size: 8, align: 8, elements: !4)
 !3 = !DICompositeType(tag: DW_TAG_class_type, name: "bar", file: !2, line: 9, size: 8, align: 8, elements: !4)

+ 1 - 1
test/DebugInfo/Generic/tu-member-pointer.ll

@@ -18,7 +18,7 @@ source_filename = "test/DebugInfo/Generic/tu-member-pointer.ll"
 !llvm.dbg.cu = !{!6}
 !llvm.dbg.cu = !{!6}
 !llvm.module.flags = !{!10, !11}
 !llvm.module.flags = !{!10, !11}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", scope: null, file: !2, line: 4, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "foo.cpp", directory: ".")
 !2 = !DIFile(filename: "foo.cpp", directory: ".")
 !3 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !4, extraData: !5)
 !3 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !4, extraData: !5)

+ 1 - 1
test/DebugInfo/Generic/typedef.ll

@@ -20,7 +20,7 @@ source_filename = "test/DebugInfo/Generic/typedef.ll"
 !llvm.module.flags = !{!8, !9}
 !llvm.module.flags = !{!8, !9}
 !llvm.ident = !{!10}
 !llvm.ident = !{!10}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "y", scope: null, file: !2, line: 2, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "y", scope: null, file: !2, line: 2, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "typedef.cpp", directory: "/tmp/dbginfo")
 !2 = !DIFile(filename: "typedef.cpp", directory: "/tmp/dbginfo")
 !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64, align: 64)
 !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64, align: 64)

+ 6 - 6
test/DebugInfo/MIR/X86/live-debug-values-spill.mir

@@ -206,22 +206,22 @@
   !llvm.module.flags = !{!17, !18}
   !llvm.module.flags = !{!17, !18}
   !llvm.ident = !{!19}
   !llvm.ident = !{!19}
   
   
-  !0 = !DIGlobalVariableExpression(var: !1)
+  !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
   !1 = distinct !DIGlobalVariable(name: "glob0", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
   !1 = distinct !DIGlobalVariable(name: "glob0", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
   !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 5.0.0 (trunk 292962)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
   !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 5.0.0 (trunk 292962)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
   !3 = !DIFile(filename: "spill1.c", directory: "/home/test")
   !3 = !DIFile(filename: "spill1.c", directory: "/home/test")
   !4 = !{}
   !4 = !{}
   !5 = !{!0, !6, !9, !11, !13, !15}
   !5 = !{!0, !6, !9, !11, !13, !15}
-  !6 = !DIGlobalVariableExpression(var: !7)
+  !6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
   !7 = distinct !DIGlobalVariable(name: "glob1", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
   !7 = distinct !DIGlobalVariable(name: "glob1", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
   !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
   !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
-  !9 = !DIGlobalVariableExpression(var: !10)
+  !9 = !DIGlobalVariableExpression(var: !10, expr: !DIExpression())
   !10 = distinct !DIGlobalVariable(name: "glob2", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
   !10 = distinct !DIGlobalVariable(name: "glob2", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
-  !11 = !DIGlobalVariableExpression(var: !12)
+  !11 = !DIGlobalVariableExpression(var: !12, expr: !DIExpression())
   !12 = distinct !DIGlobalVariable(name: "glob3", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
   !12 = distinct !DIGlobalVariable(name: "glob3", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
-  !13 = !DIGlobalVariableExpression(var: !14)
+  !13 = !DIGlobalVariableExpression(var: !14, expr: !DIExpression())
   !14 = distinct !DIGlobalVariable(name: "glob4", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
   !14 = distinct !DIGlobalVariable(name: "glob4", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
-  !15 = !DIGlobalVariableExpression(var: !16)
+  !15 = !DIGlobalVariableExpression(var: !16, expr: !DIExpression())
   !16 = distinct !DIGlobalVariable(name: "glob5", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
   !16 = distinct !DIGlobalVariable(name: "glob5", scope: !2, file: !3, line: 4, type: !8, isLocal: false, isDefinition: true)
   !17 = !{i32 2, !"Dwarf Version", i32 4}
   !17 = !{i32 2, !"Dwarf Version", i32 4}
   !18 = !{i32 2, !"Debug Info Version", i32 3}
   !18 = !{i32 2, !"Debug Info Version", i32 3}

+ 1 - 1
test/DebugInfo/MIR/X86/live-debug-values.mir

@@ -123,7 +123,7 @@
   !13 = !DILocalVariable(name: "argv", arg: 2, scope: !4, file: !1, line: 6, type: !8)
   !13 = !DILocalVariable(name: "argv", arg: 2, scope: !4, file: !1, line: 6, type: !8)
   !14 = !DILocalVariable(name: "n", scope: !4, file: !1, line: 7, type: !7)
   !14 = !DILocalVariable(name: "n", scope: !4, file: !1, line: 7, type: !7)
   !15 = !{!16}
   !15 = !{!16}
-  !16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "m", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true))
+  !16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "m", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true), expr: !DIExpression())
   !17 = !{i32 2, !"Dwarf Version", i32 4}
   !17 = !{i32 2, !"Dwarf Version", i32 4}
   !18 = !{i32 2, !"Debug Info Version", i32 3}
   !18 = !{i32 2, !"Debug Info Version", i32 3}
   !19 = !{!"clang version 3.8.0 (trunk 253049)"}
   !19 = !{!"clang version 3.8.0 (trunk 253049)"}

+ 1 - 1
test/DebugInfo/MIR/X86/mlicm-hoist.mir

@@ -55,7 +55,7 @@
   !llvm.module.flags = !{!6, !7}
   !llvm.module.flags = !{!6, !7}
   !llvm.ident = !{!8}
   !llvm.ident = !{!8}
 
 
-  !0 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true))
+  !0 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true), expr: !DIExpression())
   !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 4.0.0 ", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4)
   !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 4.0.0 ", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4)
   !2 = !DIFile(filename: "t.c", directory: "/home/test")
   !2 = !DIFile(filename: "t.c", directory: "/home/test")
   !3 = !{}
   !3 = !{}

+ 1 - 1
test/DebugInfo/Mips/InlinedFnLocalVar.ll

@@ -32,7 +32,7 @@ attributes #1 = { nounwind ssp }
 !llvm.dbg.cu = !{!4}
 !llvm.dbg.cu = !{!4}
 !llvm.module.flags = !{!7}
 !llvm.module.flags = !{!7}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "i", scope: !2, file: !2, line: 5, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "i", scope: !2, file: !2, line: 5, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "bar.c", directory: "/tmp/")
 !2 = !DIFile(filename: "bar.c", directory: "/tmp/")
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)

+ 1 - 1
test/DebugInfo/Mips/dwarfdump-tls.ll

@@ -10,7 +10,7 @@
 !llvm.dbg.cu = !{!2}
 !llvm.dbg.cu = !{!2}
 !llvm.module.flags = !{!7, !8}
 !llvm.module.flags = !{!7, !8}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = distinct !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !1 = distinct !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "tls.c", directory: "/tmp")
 !3 = !DIFile(filename: "tls.c", directory: "/tmp")

+ 1 - 1
test/DebugInfo/Mips/tls.ll

@@ -10,7 +10,7 @@
 !llvm.module.flags = !{!7, !8}
 !llvm.module.flags = !{!7, !8}
 !llvm.ident = !{!9}
 !llvm.ident = !{!9}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = distinct !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !1 = distinct !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "tls.c", directory: "/tmp")
 !3 = !DIFile(filename: "tls.c", directory: "/tmp")

+ 1 - 1
test/DebugInfo/PowerPC/tls-fission.ll

@@ -23,7 +23,7 @@ source_filename = "test/DebugInfo/PowerPC/tls-fission.ll"
 !llvm.dbg.cu = !{!4}
 !llvm.dbg.cu = !{!4}
 !llvm.module.flags = !{!7, !8}
 !llvm.module.flags = !{!7, !8}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "tls", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "tls", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "tls.cpp", directory: "/tmp")
 !2 = !DIFile(filename: "tls.cpp", directory: "/tmp")
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)

+ 1 - 1
test/DebugInfo/PowerPC/tls.ll

@@ -19,7 +19,7 @@ source_filename = "test/DebugInfo/PowerPC/tls.ll"
 !llvm.dbg.cu = !{!4}
 !llvm.dbg.cu = !{!4}
 !llvm.module.flags = !{!7, !8}
 !llvm.module.flags = !{!7, !8}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "tls", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "tls", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "tls.cpp", directory: "/tmp")
 !2 = !DIFile(filename: "tls.cpp", directory: "/tmp")
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)

+ 1 - 1
test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll

@@ -26,7 +26,7 @@ attributes #1 = { nounwind readnone }
 !llvm.dbg.cu = !{!4}
 !llvm.dbg.cu = !{!4}
 !llvm.module.flags = !{!7}
 !llvm.module.flags = !{!7}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "GLB", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "GLB", scope: null, file: !2, line: 1, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "test.c", directory: "/work/llvm/vanilla/test/DebugInfo")
 !2 = !DIFile(filename: "test.c", directory: "/work/llvm/vanilla/test/DebugInfo")
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)

+ 1 - 1
test/DebugInfo/X86/DIModuleContext.ll

@@ -17,7 +17,7 @@ target triple = "x86_64-apple-macosx"
 !llvm.dbg.cu = !{!2}
 !llvm.dbg.cu = !{!2}
 !llvm.module.flags = !{!11, !12}
 !llvm.module.flags = !{!11, !12}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "s", scope: !2, file: !3, line: 2, type: !9, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "s", scope: !2, file: !3, line: 2, type: !9, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5, imports: !6)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5, imports: !6)
 !3 = !DIFile(filename: "test.c", directory: "/")
 !3 = !DIFile(filename: "test.c", directory: "/")

+ 1 - 1
test/DebugInfo/X86/DW_AT_calling-convention.ll

@@ -63,7 +63,7 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!10, !11}
 !llvm.module.flags = !{!10, !11}
 !llvm.ident = !{!12}
 !llvm.ident = !{!12}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "fptr", linkageName: "\01?fptr@@3P6IHHH@ZA", scope: !2, file: !3, line: 2, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "fptr", linkageName: "\01?fptr@@3P6IHHH@ZA", scope: !2, file: !3, line: 2, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 272067)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.9.0 (trunk 272067)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
 !3 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")

+ 1 - 1
test/DebugInfo/X86/DW_AT_specification.ll

@@ -21,7 +21,7 @@ entry:
 !llvm.dbg.cu = !{!8}
 !llvm.dbg.cu = !{!8}
 !llvm.module.flags = !{!16}
 !llvm.module.flags = !{!16}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 5, type: !14, isLocal: true, isDefinition: true)
 !1 = !DIGlobalVariable(name: "x", scope: !2, file: !3, line: 5, type: !14, isLocal: true, isDefinition: true)
 !2 = distinct !DISubprogram(name: "bar", linkageName: "_ZN3foo3barEv", scope: null, file: !3, line: 4, type: !4, isLocal: false, isDefinition: true, scopeLine: 4, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !8, declaration: !11)
 !2 = distinct !DISubprogram(name: "bar", linkageName: "_ZN3foo3barEv", scope: null, file: !3, line: 4, type: !4, isLocal: false, isDefinition: true, scopeLine: 4, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !8, declaration: !11)
 !3 = !DIFile(filename: "nsNativeAppSupportBase.ii", directory: "/Users/espindola/mozilla-central/obj-x86_64-apple-darwin11.2.0/toolkit/library")
 !3 = !DIFile(filename: "nsNativeAppSupportBase.ii", directory: "/Users/espindola/mozilla-central/obj-x86_64-apple-darwin11.2.0/toolkit/library")

+ 2 - 2
test/DebugInfo/X86/DW_TAG_friend.ll

@@ -19,7 +19,7 @@ source_filename = "test/DebugInfo/X86/DW_TAG_friend.ll"
 !llvm.dbg.cu = !{!21}
 !llvm.dbg.cu = !{!21}
 !llvm.module.flags = !{!24}
 !llvm.module.flags = !{!24}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 10, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "a", scope: null, file: !2, line: 10, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "foo.cpp", directory: "/Users/echristo/tmp")
 !2 = !DIFile(filename: "foo.cpp", directory: "/Users/echristo/tmp")
 !3 = !DICompositeType(tag: DW_TAG_class_type, name: "A", file: !2, line: 1, size: 32, align: 32, elements: !4)
 !3 = !DICompositeType(tag: DW_TAG_class_type, name: "A", file: !2, line: 1, size: 32, align: 32, elements: !4)
@@ -30,7 +30,7 @@ source_filename = "test/DebugInfo/X86/DW_TAG_friend.ll"
 !8 = !DISubroutineType(types: !9)
 !8 = !DISubroutineType(types: !9)
 !9 = !{null, !10}
 !9 = !{null, !10}
 !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !3, size: 64, align: 64, flags: DIFlagArtificial)
 !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !3, size: 64, align: 64, flags: DIFlagArtificial)
-!11 = !DIGlobalVariableExpression(var: !12)
+!11 = !DIGlobalVariableExpression(var: !12, expr: !DIExpression())
 !12 = !DIGlobalVariable(name: "b", scope: null, file: !2, line: 11, type: !13, isLocal: false, isDefinition: true)
 !12 = !DIGlobalVariable(name: "b", scope: null, file: !2, line: 11, type: !13, isLocal: false, isDefinition: true)
 !13 = !DICompositeType(tag: DW_TAG_class_type, name: "B", file: !2, line: 5, size: 32, align: 32, elements: !14)
 !13 = !DICompositeType(tag: DW_TAG_class_type, name: "B", file: !2, line: 5, size: 32, align: 32, elements: !14)
 !14 = !{!15, !16, !20}
 !14 = !{!15, !16, !20}

+ 2 - 2
test/DebugInfo/X86/FrameIndexExprs.ll

@@ -46,13 +46,13 @@ attributes #0 = { nounwind readnone }
 !llvm.dbg.cu = !{!2}
 !llvm.dbg.cu = !{!2}
 !llvm.module.flags = !{!9, !10, !11}
 !llvm.module.flags = !{!9, !10, !11}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = distinct !DIGlobalVariable(name: "f", scope: !2, file: !3, line: 8, type: !8, isLocal: false, isDefinition: true)
 !1 = distinct !DIGlobalVariable(name: "f", scope: !2, file: !3, line: 8, type: !8, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "PR31381.c", directory: "/")
 !3 = !DIFile(filename: "PR31381.c", directory: "/")
 !4 = !{}
 !4 = !{}
 !5 = !{!0, !6}
 !5 = !{!0, !6}
-!6 = !DIGlobalVariableExpression(var: !7)
+!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
 !7 = distinct !DIGlobalVariable(name: "h", scope: !2, file: !3, line: 8, type: !8, isLocal: false, isDefinition: true)
 !7 = distinct !DIGlobalVariable(name: "h", scope: !2, file: !3, line: 8, type: !8, isLocal: false, isDefinition: true)
 !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
 !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
 !9 = !{i32 2, !"Dwarf Version", i32 4}
 !9 = !{i32 2, !"Dwarf Version", i32 4}

+ 1 - 1
test/DebugInfo/X86/InlinedFnLocalVar.ll

@@ -32,7 +32,7 @@ attributes #1 = { nounwind ssp }
 !llvm.dbg.cu = !{!4}
 !llvm.dbg.cu = !{!4}
 !llvm.module.flags = !{!7}
 !llvm.module.flags = !{!7}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "i", scope: !2, file: !2, line: 5, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "i", scope: !2, file: !2, line: 5, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "bar.c", directory: "/tmp/")
 !2 = !DIFile(filename: "bar.c", directory: "/tmp/")
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
 !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)

+ 1 - 1
test/DebugInfo/X86/PR26148.ll

@@ -66,7 +66,7 @@ attributes #1 = { "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf
 !llvm.module.flags = !{!12, !13, !14}
 !llvm.module.flags = !{!12, !13, !14}
 !llvm.ident = !{!15}
 !llvm.ident = !{!15}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "a", scope: !2, file: !3, line: 4, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "a", scope: !2, file: !3, line: 4, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (https://github.com/llvm-mirror/clang 8f258397c5afd7a708bd95770c718e81d08fb11a) (https://github.com/llvm-mirror/llvm 18481855bdfa1b4a424f81be8525db002671348d)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (https://github.com/llvm-mirror/clang 8f258397c5afd7a708bd95770c718e81d08fb11a) (https://github.com/llvm-mirror/llvm 18481855bdfa1b4a424f81be8525db002671348d)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "small.c", directory: "/Users/kfischer/Projects/clangbug")
 !3 = !DIFile(filename: "small.c", directory: "/Users/kfischer/Projects/clangbug")

+ 1 - 1
test/DebugInfo/X86/align_c11.ll

@@ -56,7 +56,7 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!14, !15}
 !llvm.module.flags = !{!14, !15}
 !llvm.ident = !{!16}
 !llvm.ident = !{!16}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "d", scope: !2, file: !3, line: 7, type: !6, isLocal: false, isDefinition: true, align: 16384)
 !1 = !DIGlobalVariable(name: "d", scope: !2, file: !3, line: 7, type: !6, isLocal: false, isDefinition: true, align: 16384)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 9ce5220b821054019059c2ac4a9b132c7723832d) (http://llvm.org/git/llvm.git 9a6298be89ce0359b151c0a37af2776a12c69e85)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 9ce5220b821054019059c2ac4a9b132c7723832d) (http://llvm.org/git/llvm.git 9a6298be89ce0359b151c0a37af2776a12c69e85)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "test.c", directory: "/tmp")
 !3 = !DIFile(filename: "test.c", directory: "/tmp")

+ 2 - 2
test/DebugInfo/X86/align_cpp11.ll

@@ -118,7 +118,7 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!21, !22}
 !llvm.module.flags = !{!21, !22}
 !llvm.ident = !{!23}
 !llvm.ident = !{!23}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "c0", scope: !2, file: !6, line: 19, type: !19, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "c0", scope: !2, file: !6, line: 19, type: !19, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 9ce5220b821054019059c2ac4a9b132c7723832d) (http://llvm.org/git/llvm.git 9a6298be89ce0359b151c0a37af2776a12c69e85)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !11)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 9ce5220b821054019059c2ac4a9b132c7723832d) (http://llvm.org/git/llvm.git 9a6298be89ce0359b151c0a37af2776a12c69e85)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !11)
 !3 = !DIFile(filename: "test.cpp", directory: "/tmp")
 !3 = !DIFile(filename: "test.cpp", directory: "/tmp")
@@ -130,7 +130,7 @@ attributes #1 = { nounwind readnone }
 !9 = !DIEnumerator(name: "B", value: 1)
 !9 = !DIEnumerator(name: "B", value: 1)
 !10 = !DIEnumerator(name: "C", value: 2)
 !10 = !DIEnumerator(name: "C", value: 2)
 !11 = !{!0, !12}
 !11 = !{!0, !12}
-!12 = distinct !DIGlobalVariableExpression(var: !13)
+!12 = distinct !DIGlobalVariableExpression(var: !13, expr: !DIExpression())
 !13 = !DIGlobalVariable(name: "s", scope: !2, file: !6, line: 21, type: !14, isLocal: false, isDefinition: true, align: 16384)
 !13 = !DIGlobalVariable(name: "s", scope: !2, file: !6, line: 21, type: !14, isLocal: false, isDefinition: true, align: 16384)
 !14 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !6, line: 1, size: 2048, elements: !15, identifier: "_ZTS1S")
 !14 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !6, line: 1, size: 2048, elements: !15, identifier: "_ZTS1S")
 !15 = !{!16, !18}
 !15 = !{!16, !18}

+ 1 - 1
test/DebugInfo/X86/align_objc.ll

@@ -68,7 +68,7 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!11, !12}
 !llvm.module.flags = !{!11, !12}
 !llvm.ident = !{!13}
 !llvm.ident = !{!13}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "s0", scope: !2, file: !3, line: 10, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "s0", scope: !2, file: !3, line: 10, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_ObjC, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 9ce5220b821054019059c2ac4a9b132c7723832d) (http://llvm.org/git/llvm.git 9a6298be89ce0359b151c0a37af2776a12c69e85)", isOptimized: false, runtimeVersion: 1, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_ObjC, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 9ce5220b821054019059c2ac4a9b132c7723832d) (http://llvm.org/git/llvm.git 9a6298be89ce0359b151c0a37af2776a12c69e85)", isOptimized: false, runtimeVersion: 1, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "test.m", directory: "/tmp")
 !3 = !DIFile(filename: "test.m", directory: "/tmp")

+ 1 - 1
test/DebugInfo/X86/arange-and-stub.ll

@@ -33,7 +33,7 @@ lpad:                                             ; preds = %0
 !llvm.dbg.cu = !{!2}
 !llvm.dbg.cu = !{!2}
 !llvm.module.flags = !{!15, !16}
 !llvm.module.flags = !{!15, !16}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "zed", scope: !2, file: !6, line: 6, type: !7, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "zed", scope: !2, file: !6, line: 6, type: !7, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.7.0 (trunk 234308) (llvm/trunk 234310)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 3.7.0 (trunk 234308) (llvm/trunk 234310)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !3 = !DIFile(filename: "/Users/espindola/llvm/<stdin>", directory: "/Users/espindola/llvm/build")
 !3 = !DIFile(filename: "/Users/espindola/llvm/<stdin>", directory: "/Users/espindola/llvm/build")

+ 1 - 1
test/DebugInfo/X86/arange.ll

@@ -31,7 +31,7 @@ source_filename = "test/DebugInfo/X86/arange.ll"
 !llvm.module.flags = !{!12, !13}
 !llvm.module.flags = !{!12, !13}
 !llvm.ident = !{!14}
 !llvm.ident = !{!14}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "f", scope: null, file: !2, line: 6, type: !3, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "f", scope: null, file: !2, line: 6, type: !3, isLocal: false, isDefinition: true)
 !2 = !DIFile(filename: "simple.cpp", directory: "/tmp/dbginfo")
 !2 = !DIFile(filename: "simple.cpp", directory: "/tmp/dbginfo")
 !3 = !DICompositeType(tag: DW_TAG_structure_type, name: "foo<&i>", file: !2, line: 3, size: 8, align: 8, elements: !4, templateParams: !5, identifier: "_ZTS3fooIXadL_Z1iEEE")
 !3 = !DICompositeType(tag: DW_TAG_structure_type, name: "foo<&i>", file: !2, line: 3, size: 8, align: 8, elements: !4, templateParams: !5, identifier: "_ZTS3fooIXadL_Z1iEEE")

+ 1 - 1
test/DebugInfo/X86/atomic-c11-dwarf-4.ll

@@ -22,7 +22,7 @@ target triple = "x86_64-unknown-linux-gnu"
 !llvm.module.flags = !{!9, !10}
 !llvm.module.flags = !{!9, !10}
 !llvm.ident = !{!11}
 !llvm.ident = !{!11}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "i", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "i", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git cd238117e3a8a57271a82d0bb03d6df6ad8f073e) (http://llvm.org/git/llvm.git 9fd063832c1541aad3907cd60ac344d36997905f)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git cd238117e3a8a57271a82d0bb03d6df6ad8f073e) (http://llvm.org/git/llvm.git 9fd063832c1541aad3907cd60ac344d36997905f)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "atomic.c", directory: "/tmp")
 !3 = !DIFile(filename: "atomic.c", directory: "/tmp")

+ 1 - 1
test/DebugInfo/X86/atomic-c11-dwarf-5.ll

@@ -23,7 +23,7 @@ target triple = "x86_64-unknown-linux-gnu"
 !llvm.module.flags = !{!9, !10}
 !llvm.module.flags = !{!9, !10}
 !llvm.ident = !{!11}
 !llvm.ident = !{!11}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "i", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "i", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git cd238117e3a8a57271a82d0bb03d6df6ad8f073e) (http://llvm.org/git/llvm.git 9fd063832c1541aad3907cd60ac344d36997905f)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git cd238117e3a8a57271a82d0bb03d6df6ad8f073e) (http://llvm.org/git/llvm.git 9fd063832c1541aad3907cd60ac344d36997905f)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "atomic.c", directory: "/tmp")
 !3 = !DIFile(filename: "atomic.c", directory: "/tmp")

+ 1 - 1
test/DebugInfo/X86/bitfields-dwarf4.ll

@@ -27,7 +27,7 @@ target triple = "x86_64-apple-macosx"
 !llvm.module.flags = !{!15, !16, !17}
 !llvm.module.flags = !{!15, !16, !17}
 !llvm.ident = !{!18}
 !llvm.ident = !{!18}
 
 
-!0 = distinct !DIGlobalVariableExpression(var: !1)
+!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "s", scope: !2, file: !3, line: 8, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "s", scope: !2, file: !3, line: 8, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 267633)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.9.0 (trunk 267633)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
 !3 = !DIFile(filename: "bitfield.c", directory: "/Volumes/Data/llvm")
 !3 = !DIFile(filename: "bitfield.c", directory: "/Volumes/Data/llvm")

+ 1 - 1
test/DebugInfo/X86/bitfields.ll

@@ -55,7 +55,7 @@ target triple = "x86_64-apple-macosx"
 !llvm.module.flags = !{!13, !14, !15}
 !llvm.module.flags = !{!13, !14, !15}
 !llvm.ident = !{!16}
 !llvm.ident = !{!16}
 
 
-!0 = !DIGlobalVariableExpression(var: !1)
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
 !1 = !DIGlobalVariable(name: "b", scope: !2, file: !3, line: 8, type: !6, isLocal: false, isDefinition: true)
 !1 = !DIGlobalVariable(name: "b", scope: !2, file: !3, line: 8, type: !6, isLocal: false, isDefinition: true)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.7.0 (trunk 240548) (llvm/trunk 240554)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.7.0 (trunk 240548) (llvm/trunk 240554)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
 !3 = !DIFile(filename: "bitfields.c", directory: "/")
 !3 = !DIFile(filename: "bitfields.c", directory: "/")

Some files were not shown because too many files changed in this diff