Import prebuilt clang toolchain for linux.
diff --git a/linux-x64/clang/include/llvm-c/DebugInfo.h b/linux-x64/clang/include/llvm-c/DebugInfo.h
new file mode 100644
index 0000000..a5e5653
--- /dev/null
+++ b/linux-x64/clang/include/llvm-c/DebugInfo.h
@@ -0,0 +1,234 @@
+//===------------ DebugInfo.h - LLVM C API Debug Info API -----------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+///
+/// This file declares the C API endpoints for generating DWARF Debug Info
+///
+/// Note: This interface is experimental. It is *NOT* stable, and may be
+/// changed without warning.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_C_DEBUGINFO_H
+#define LLVM_C_DEBUGINFO_H
+
+#include "llvm-c/Core.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Debug info flags.
+ */
+typedef enum {
+ LLVMDIFlagZero = 0,
+ LLVMDIFlagPrivate = 1,
+ LLVMDIFlagProtected = 2,
+ LLVMDIFlagPublic = 3,
+ LLVMDIFlagFwdDecl = 1 << 2,
+ LLVMDIFlagAppleBlock = 1 << 3,
+ LLVMDIFlagBlockByrefStruct = 1 << 4,
+ LLVMDIFlagVirtual = 1 << 5,
+ LLVMDIFlagArtificial = 1 << 6,
+ LLVMDIFlagExplicit = 1 << 7,
+ LLVMDIFlagPrototyped = 1 << 8,
+ LLVMDIFlagObjcClassComplete = 1 << 9,
+ LLVMDIFlagObjectPointer = 1 << 10,
+ LLVMDIFlagVector = 1 << 11,
+ LLVMDIFlagStaticMember = 1 << 12,
+ LLVMDIFlagLValueReference = 1 << 13,
+ LLVMDIFlagRValueReference = 1 << 14,
+ LLVMDIFlagReserved = 1 << 15,
+ LLVMDIFlagSingleInheritance = 1 << 16,
+ LLVMDIFlagMultipleInheritance = 2 << 16,
+ LLVMDIFlagVirtualInheritance = 3 << 16,
+ LLVMDIFlagIntroducedVirtual = 1 << 18,
+ LLVMDIFlagBitField = 1 << 19,
+ LLVMDIFlagNoReturn = 1 << 20,
+ LLVMDIFlagMainSubprogram = 1 << 21,
+ LLVMDIFlagTypePassByValue = 1 << 22,
+ LLVMDIFlagTypePassByReference = 1 << 23,
+ LLVMDIFlagIndirectVirtualBase = (1 << 2) | (1 << 5),
+ LLVMDIFlagAccessibility = LLVMDIFlagPrivate | LLVMDIFlagProtected |
+ LLVMDIFlagPublic,
+ LLVMDIFlagPtrToMemberRep = LLVMDIFlagSingleInheritance |
+ LLVMDIFlagMultipleInheritance |
+ LLVMDIFlagVirtualInheritance
+} LLVMDIFlags;
+
+/**
+ * Source languages known by DWARF.
+ */
+typedef enum {
+ LLVMDWARFSourceLanguageC89,
+ LLVMDWARFSourceLanguageC,
+ LLVMDWARFSourceLanguageAda83,
+ LLVMDWARFSourceLanguageC_plus_plus,
+ LLVMDWARFSourceLanguageCobol74,
+ LLVMDWARFSourceLanguageCobol85,
+ LLVMDWARFSourceLanguageFortran77,
+ LLVMDWARFSourceLanguageFortran90,
+ LLVMDWARFSourceLanguagePascal83,
+ LLVMDWARFSourceLanguageModula2,
+ // New in DWARF v3:
+ LLVMDWARFSourceLanguageJava,
+ LLVMDWARFSourceLanguageC99,
+ LLVMDWARFSourceLanguageAda95,
+ LLVMDWARFSourceLanguageFortran95,
+ LLVMDWARFSourceLanguagePLI,
+ LLVMDWARFSourceLanguageObjC,
+ LLVMDWARFSourceLanguageObjC_plus_plus,
+ LLVMDWARFSourceLanguageUPC,
+ LLVMDWARFSourceLanguageD,
+ // New in DWARF v4:
+ LLVMDWARFSourceLanguagePython,
+ // New in DWARF v5:
+ LLVMDWARFSourceLanguageOpenCL,
+ LLVMDWARFSourceLanguageGo,
+ LLVMDWARFSourceLanguageModula3,
+ LLVMDWARFSourceLanguageHaskell,
+ LLVMDWARFSourceLanguageC_plus_plus_03,
+ LLVMDWARFSourceLanguageC_plus_plus_11,
+ LLVMDWARFSourceLanguageOCaml,
+ LLVMDWARFSourceLanguageRust,
+ LLVMDWARFSourceLanguageC11,
+ LLVMDWARFSourceLanguageSwift,
+ LLVMDWARFSourceLanguageJulia,
+ LLVMDWARFSourceLanguageDylan,
+ LLVMDWARFSourceLanguageC_plus_plus_14,
+ LLVMDWARFSourceLanguageFortran03,
+ LLVMDWARFSourceLanguageFortran08,
+ LLVMDWARFSourceLanguageRenderScript,
+ LLVMDWARFSourceLanguageBLISS,
+ // Vendor extensions:
+ LLVMDWARFSourceLanguageMips_Assembler,
+ LLVMDWARFSourceLanguageGOOGLE_RenderScript,
+ LLVMDWARFSourceLanguageBORLAND_Delphi
+} LLVMDWARFSourceLanguage;
+
+/**
+ * The amount of debug information to emit.
+ */
+typedef enum {
+ LLVMDWARFEmissionNone = 0,
+ LLVMDWARFEmissionFull,
+ LLVMDWARFEmissionLineTablesOnly
+} LLVMDWARFEmissionKind;
+
+/**
+ * The current debug metadata version number.
+ */
+unsigned LLVMDebugMetadataVersion(void);
+
+/**
+ * The version of debug metadata that's present in the provided \c Module.
+ */
+unsigned LLVMGetModuleDebugMetadataVersion(LLVMModuleRef Module);
+
+/**
+ * Strip debug info in the module if it exists.
+ * To do this, we remove all calls to the debugger intrinsics and any named
+ * metadata for debugging. We also remove debug locations for instructions.
+ * Return true if module is modified.
+ */
+LLVMBool LLVMStripModuleDebugInfo(LLVMModuleRef Module);
+
+/**
+ * Construct a builder for a module, and do not allow for unresolved nodes
+ * attached to the module.
+ */
+LLVMDIBuilderRef LLVMCreateDIBuilderDisallowUnresolved(LLVMModuleRef M);
+
+/**
+ * Construct a builder for a module and collect unresolved nodes attached
+ * to the module in order to resolve cycles during a call to
+ * \c LLVMDIBuilderFinalize.
+ */
+LLVMDIBuilderRef LLVMCreateDIBuilder(LLVMModuleRef M);
+
+/**
+ * Deallocates the \c DIBuilder and everything it owns.
+ * @note You must call \c LLVMDIBuilderFinalize before this
+ */
+void LLVMDisposeDIBuilder(LLVMDIBuilderRef Builder);
+
+/**
+ * Construct any deferred debug info descriptors.
+ */
+void LLVMDIBuilderFinalize(LLVMDIBuilderRef Builder);
+
+/**
+ * A CompileUnit provides an anchor for all debugging
+ * information generated during this instance of compilation.
+ * \param Lang Source programming language, eg.
+ * \c LLVMDWARFSourceLanguageC99
+ * \param FileRef File info.
+ * \param Producer Identify the producer of debugging information
+ * and code. Usually this is a compiler
+ * version string.
+ * \param ProducerLen The length of the C string passed to \c Producer.
+ * \param isOptimized A boolean flag which indicates whether optimization
+ * is enabled or not.
+ * \param Flags This string lists command line options. This
+ * string is directly embedded in debug info
+ * output which may be used by a tool
+ * analyzing generated debugging information.
+ * \param FlagsLen The length of the C string passed to \c Flags.
+ * \param RuntimeVer This indicates runtime version for languages like
+ * Objective-C.
+ * \param SplitName The name of the file that we'll split debug info
+ * out into.
+ * \param SplitNameLen The length of the C string passed to \c SplitName.
+ * \param Kind The kind of debug information to generate.
+ * \param DWOId The DWOId if this is a split skeleton compile unit.
+ * \param SplitDebugInlining Whether to emit inline debug info.
+ * \param DebugInfoForProfiling Whether to emit extra debug info for
+ * profile collection.
+ */
+LLVMMetadataRef LLVMDIBuilderCreateCompileUnit(
+ LLVMDIBuilderRef Builder, LLVMDWARFSourceLanguage Lang,
+ LLVMMetadataRef FileRef, const char *Producer, size_t ProducerLen,
+ LLVMBool isOptimized, const char *Flags, size_t FlagsLen,
+ unsigned RuntimeVer, const char *SplitName, size_t SplitNameLen,
+ LLVMDWARFEmissionKind Kind, unsigned DWOId, LLVMBool SplitDebugInlining,
+ LLVMBool DebugInfoForProfiling);
+
+/**
+ * Create a file descriptor to hold debugging information for a file.
+ * \param Builder The \c DIBuilder.
+ * \param Filename File name.
+ * \param FilenameLen The length of the C string passed to \c Filename.
+ * \param Directory Directory.
+ * \param DirectoryLen The length of the C string passed to \c Directory.
+ */
+LLVMMetadataRef
+LLVMDIBuilderCreateFile(LLVMDIBuilderRef Builder, const char *Filename,
+ size_t FilenameLen, const char *Directory,
+ size_t DirectoryLen);
+
+/**
+ * Creates a new DebugLocation that describes a source location.
+ * \param Line The line in the source file.
+ * \param Column The column in the source file.
+ * \param Scope The scope in which the location resides.
+ * \param InlinedAt The scope where this location was inlined, if at all.
+ * (optional).
+ * \note If the item to which this location is attached cannot be
+ * attributed to a source line, pass 0 for the line and column.
+ */
+LLVMMetadataRef
+LLVMDIBuilderCreateDebugLocation(LLVMContextRef Ctx, unsigned Line,
+ unsigned Column, LLVMMetadataRef Scope,
+ LLVMMetadataRef InlinedAt);
+
+#ifdef __cplusplus
+} /* end extern "C" */
+#endif
+
+#endif