]> granicus.if.org Git - llvm/commitdiff
[LLVM-C] Add bindings to create enumerators
authorRobert Widmann <devteam.codafi@gmail.com>
Sun, 17 Feb 2019 21:25:47 +0000 (21:25 +0000)
committerRobert Widmann <devteam.codafi@gmail.com>
Sun, 17 Feb 2019 21:25:47 +0000 (21:25 +0000)
Summary: The C API don't have the bindings to create enumerators, needed to create an enumeration.

Reviewers: whitequark, CodaFi, harlanhaskins, deadalnix

Reviewed By: whitequark, CodaFi, harlanhaskins

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58323

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@354237 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm-c/DebugInfo.h
lib/IR/DebugInfo.cpp

index f840ce9055707946f013d5859ff9448e52454a7a..b4c9b6578490e3c64b676c2a0f70ad9b50fabded 100644 (file)
@@ -478,6 +478,19 @@ LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Builder,
                                   unsigned NumParameterTypes,
                                   LLVMDIFlags Flags);
 
+/**
+ * Create debugging information entry for an enumerator.
+ * @param Builder        The DIBuilder.
+ * @param Name           Enumerator name.
+ * @param NameLen        Length of enumerator name.
+ * @param Value          Enumerator value.
+ * @param IsUnsigned     True if the value is unsigned.
+ */
+LLVMMetadataRef LLVMDIBuilderCreateEnumerator(LLVMDIBuilderRef Builder,
+                                              const char *Name, size_t NameLen,
+                                              int64_t Value,
+                                              LLVMBool IsUnsigned);
+
 /**
  * Create debugging information entry for an enumeration.
  * \param Builder        The DIBuilder.
index 435685d42619cbde0b112165ca71e666c2c88bfa..a9d91214a802030bd99cc0fa3a5807d9b9b33e4c 100644 (file)
@@ -899,6 +899,14 @@ LLVMMetadataRef LLVMDILocationGetScope(LLVMMetadataRef Location) {
   return wrap(unwrapDI<DILocation>(Location)->getScope());
 }
 
+LLVMMetadataRef LLVMDIBuilderCreateEnumerator(LLVMDIBuilderRef Builder,
+                                              const char *Name, size_t NameLen,
+                                              int64_t Value,
+                                              LLVMBool IsUnsigned) {
+  return wrap(unwrap(Builder)->createEnumerator({Name, NameLen}, Value,
+                                                IsUnsigned != 0));
+}
+
 LLVMMetadataRef LLVMDIBuilderCreateEnumerationType(
   LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
   size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,