Use 32-bit data directives for DW_FORM_data4 format data, even on
targets with 64-bit addresses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42434 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp
index 0261a00..faebaac 100644
--- a/lib/CodeGen/DwarfWriter.cpp
+++ b/lib/CodeGen/DwarfWriter.cpp
@@ -870,18 +870,20 @@
   
   /// EmitReference - Emit a reference to a label.
   ///
-  void EmitReference(DWLabel Label, bool IsPCRelative = false) const {
-    EmitReference(Label.Tag, Label.Number, IsPCRelative);
+  void EmitReference(DWLabel Label, bool IsPCRelative = false,
+                     bool Force32Bit = false) const {
+    EmitReference(Label.Tag, Label.Number, IsPCRelative, Force32Bit);
   }
   void EmitReference(const char *Tag, unsigned Number,
-                     bool IsPCRelative = false) const {
-    PrintRelDirective();
+                     bool IsPCRelative = false, bool Force32Bit = false) const {
+    PrintRelDirective(Force32Bit);
     PrintLabelName(Tag, Number);
     
     if (IsPCRelative) O << "-" << TAI->getPCSymbol();
   }
-  void EmitReference(const std::string &Name, bool IsPCRelative = false) const {
-    PrintRelDirective();
+  void EmitReference(const std::string &Name, bool IsPCRelative = false,
+                     bool Force32Bit = false) const {
+    PrintRelDirective(Force32Bit);
     
     O << Name;
     
@@ -3479,7 +3481,7 @@
 /// EmitValue - Emit label value.
 ///
 void DIEDwarfLabel::EmitValue(DwarfDebug &DD, unsigned Form) {
-  DD.EmitReference(Label);
+  DD.EmitReference(Label, false, Form == DW_FORM_data4);
 }
 
 /// SizeOf - Determine size of label value in bytes.
@@ -3493,7 +3495,7 @@
 /// EmitValue - Emit label value.
 ///
 void DIEObjectLabel::EmitValue(DwarfDebug &DD, unsigned Form) {
-  DD.EmitReference(Label);
+  DD.EmitReference(Label, false, Form == DW_FORM_data4);
 }
 
 /// SizeOf - Determine size of label value in bytes.