Tag blocks with DW_AT_APPLE_block.

llvm-svn: 71784
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
index bc83b8f..c77a753 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
@@ -1811,6 +1811,13 @@
                                       DIDerivedType(Element.getGV()));
           Buffer.AddChild(ElemDie);
         }
+
+        // FIXME: We'd like an API to register additional attributes for the
+        // frontend to use while synthesizing, and then we'd use that api in
+        // clang instead of this.
+        if (Name == "__block_literal_generic")
+          AddUInt(&Buffer, DW_AT_APPLE_block, DW_FORM_flag, 1);
+
         unsigned RLang = CTy.getRunTimeLang();
         if (RLang) 
           AddUInt(&Buffer, DW_AT_APPLE_runtime_class, DW_FORM_data1, RLang);