packages feed

llvm-party-12.1.0: src/LLVM/Internal/FFI/ValueC.cpp

#define __STDC_LIMIT_MACROS
#include "llvm-c/Core.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Value.h"
#include "llvm/IR/Argument.h"
#include "LLVM/Internal/FFI/Value.h"

using namespace llvm;

extern "C" {

LLVMValueSubclassId LLVM_Hs_GetValueSubclassId(LLVMValueRef v) {
	switch(unwrap(v)->getValueID()) {
#define VALUE_SUBCLASS_ID_CASE(class) case Value::class ## Val: return LLVM ## class ## SubclassId;
LLVM_HS_FOR_EACH_VALUE_SUBCLASS(VALUE_SUBCLASS_ID_CASE)
#undef VALUE_SUBCLASS_ID_CASE
	default: break;
	}
	return LLVMValueSubclassId(0);
}

LLVMValueRef LLVM_Hs_CreateArgument(
	LLVMTypeRef t,
	const char *name
) {
	return wrap(new Argument(unwrap(t), name));
}

}