[PATCH] D66379: [bindings/go] Add ParseIR

Ayke via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 18 08:39:52 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL369210: [bindings/go] Add ParseIR (authored by aykevl, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D66379?vs=215743&id=215777#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66379/new/

https://reviews.llvm.org/D66379

Files:
  llvm/branches/release_80/bindings/go/llvm/irreader.go


Index: llvm/branches/release_80/bindings/go/llvm/irreader.go
===================================================================
--- llvm/branches/release_80/bindings/go/llvm/irreader.go
+++ llvm/branches/release_80/bindings/go/llvm/irreader.go
@@ -0,0 +1,37 @@
+//===- irreader.go - Bindings for irreader --------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines bindings for the irreader component.
+//
+//===----------------------------------------------------------------------===//
+
+package llvm
+
+/*
+#include "llvm-c/IRReader.h"
+#include <stdlib.h>
+*/
+import "C"
+
+import (
+	"errors"
+	"unsafe"
+)
+
+// ParseIR parses the textual IR given in the memory buffer and returns a new
+// LLVM module in this context.
+func (c *Context) ParseIR(buf MemoryBuffer) (Module, error) {
+	var m Module
+	var errmsg *C.char
+	if C.LLVMParseIRInContext(c.C, buf.C, &m.C, &errmsg) != 0 {
+		err := errors.New(C.GoString(errmsg))
+		C.free(unsafe.Pointer(errmsg))
+		return Module{}, err
+	}
+	return m, nil
+}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66379.215777.patch
Type: text/x-patch
Size: 1310 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190818/8c3f21eb/attachment.bin>


More information about the llvm-commits mailing list