improve the APIs for creating struct and function types with no arguments/elements
[oota-llvm.git] / include / llvm / Support / Dwarf.h
index 21f49f66b6709a0c2e0a4f52f652272e882b638e..55838b8144bcf22781c83eed48196f76350a6ada 100644 (file)
@@ -2,24 +2,33 @@
 //
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by James M. Laskey and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
 //
 // This file contains constants used for implementing Dwarf debug support.  For
 // Details on the Dwarf 3 specfication see DWARF Debugging Information Format
 // V.3 reference manual http://dwarf.freestandards.org ,
-// 
+//
 //===----------------------------------------------------------------------===//
 
 #ifndef LLVM_SUPPORT_DWARF_H
 #define LLVM_SUPPORT_DWARF_H
 
-#include "llvm/System/IncludeFile.h"
-
 namespace llvm {
 
+//===----------------------------------------------------------------------===//
+// Debug info constants.
+
+enum {
+  LLVMDebugVersion = (7 << 16),         // Current version of debug information.
+  LLVMDebugVersion6 = (6 << 16),        // Constant for version 6.
+  LLVMDebugVersion5 = (5 << 16),        // Constant for version 5.
+  LLVMDebugVersion4 = (4 << 16),        // Constant for version 4.
+  LLVMDebugVersionMask = 0xffff0000     // Mask for version number.
+};
+
 namespace dwarf {
 
 //===----------------------------------------------------------------------===//
@@ -33,23 +42,23 @@ namespace dwarf {
 enum llvm_dwarf_constants {
   // llvm mock tags
   DW_TAG_invalid = ~0U,                 // Tag for invalid results.
-  
+
   DW_TAG_anchor = 0,                    // Tag for descriptor anchors.
   DW_TAG_auto_variable = 0x100,         // Tag for local (auto) variables.
   DW_TAG_arg_variable = 0x101,          // Tag for argument variables.
   DW_TAG_return_variable = 0x102,       // Tag for return variables.
-  
+
   DW_TAG_vector_type = 0x103,           // Tag for vector types.
-  
+
   DW_TAG_user_base = 0x1000,            // Recommended base for user tags.
-  
+
   DW_CIE_VERSION = 1,                   // Common frame information version.
   DW_CIE_ID       = 0xffffffff          // Common frame information mark.
 };
 
 enum dwarf_constants {
   DWARF_VERSION = 2,
-  
+
   // Tags
   DW_TAG_array_type = 0x01,
   DW_TAG_class_type = 0x02,
@@ -212,7 +221,15 @@ enum dwarf_constants {
   DW_AT_GNU_vector = 0x2107,
   DW_AT_lo_user = 0x2000,
   DW_AT_hi_user = 0x3fff,
+
+  // Apple extensions.
+  DW_AT_APPLE_optimized = 0x3fe1,
+  DW_AT_APPLE_flags = 0x3fe2,
+  DW_AT_APPLE_isa = 0x3fe3,
+  DW_AT_APPLE_block = 0x3fe4,
+  DW_AT_APPLE_major_runtime_vers = 0x3fe5,
+  DW_AT_APPLE_runtime_class = 0x3fe6,
+
   // Attribute form encodings
   DW_FORM_addr = 0x01,
   DW_FORM_block2 = 0x03,
@@ -342,7 +359,7 @@ enum dwarf_constants {
   DW_ACCESS_protected = 0x02,
   DW_ACCESS_private = 0x03,
 
-  // Visibility codes 
+  // Visibility codes
   DW_VIS_local = 0x01,
   DW_VIS_exported = 0x02,
   DW_VIS_qualified = 0x03,
@@ -351,7 +368,7 @@ enum dwarf_constants {
   DW_VIRTUALITY_none = 0x00,
   DW_VIRTUALITY_virtual = 0x01,
   DW_VIRTUALITY_pure_virtual = 0x02,
-  
+
   // Language names
   DW_LANG_C89 = 0x0001,
   DW_LANG_C = 0x0002,
@@ -374,7 +391,7 @@ enum dwarf_constants {
   DW_LANG_D = 0x0013,
   DW_LANG_lo_user = 0x8000,
   DW_LANG_hi_user = 0xffff,
-  
+
   // Identifier case codes
   DW_ID_case_sensitive = 0x00,
   DW_ID_up_case = 0x01,
@@ -394,7 +411,7 @@ enum dwarf_constants {
   DW_INL_declared_not_inlined = 0x02,
   DW_INL_declared_inlined = 0x03,
 
-  // Array ordering 
+  // Array ordering
   DW_ORD_row_major = 0x00,
   DW_ORD_col_major = 0x01,
 
@@ -550,7 +567,7 @@ const char *DiscriminantString(unsigned Discriminant);
 /// LNStandardString - Return the string for the specified line number standard.
 ///
 const char *LNStandardString(unsigned Standard);
+
 /// LNExtendedString - Return the string for the specified line number extended
 /// opcode encodings.
 const char *LNExtendedString(unsigned Encoding);
@@ -567,6 +584,4 @@ const char *CallFrameString(unsigned Encoding);
 
 } // End of namespace llvm
 
-FORCE_DEFINING_FILE_TO_BE_LINKED(SupportDwarf)
-
 #endif