text: //===- IRBindings.h - Additional bindings for IR ----------------*- C++ -*-===//
  //
  //                     The LLVM Compiler Infrastructure
  //
  // This file is distributed under the University of Illinois Open Source
  // License. See LICENSE.TXT for details.
  //
  //===----------------------------------------------------------------------===//
  //
  // This file defines additional C bindings for the IR component.
  //
  //===----------------------------------------------------------------------===//
  
  #ifndef LLVM_BINDINGS_GO_LLVM_IRBINDINGS_H
  #define LLVM_BINDINGS_GO_LLVM_IRBINDINGS_H
  
  #include "llvm-c/Core.h"
  #include "llvm-c/DebugInfo.h"
  #ifdef __cplusplus
  #include "llvm/IR/Metadata.h"
  #include "llvm/Support/CBindingWrapping.h"
  #endif
  
  #include <stdint.h>
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  struct LLVMDebugLocMetadata{
      unsigned Line;
      unsigned Col;
      LLVMMetadataRef Scope;
      LLVMMetadataRef InlinedAt;
  };
  
  LLVMMetadataRef LLVMConstantAsMetadata(LLVMValueRef Val);
  
  LLVMMetadataRef LLVMMDString2(LLVMContextRef C, const char *Str, unsigned SLen);
  LLVMMetadataRef LLVMMDNode2(LLVMContextRef C, LLVMMetadataRef *MDs,
                              unsigned Count);
  
  void LLVMAddNamedMetadataOperand2(LLVMModuleRef M, const char *name,
                                    LLVMMetadataRef Val);
  void LLVMSetMetadata2(LLVMValueRef Inst, unsigned KindID, LLVMMetadataRef MD);
  
  void LLVMSetCurrentDebugLocation2(LLVMBuilderRef Bref, unsigned Line,
                                    unsigned Col, LLVMMetadataRef Scope,
                                    LLVMMetadataRef InlinedAt);
  
  struct LLVMDebugLocMetadata LLVMGetCurrentDebugLocation2(LLVMBuilderRef Bref);
  
  #ifdef __cplusplus
  }
  
  #endif
  
  #endif
  