mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
3302570b39
Summary: The C-API supports consuming errors, converting an error to a string error message, and querying an error's type. Other LLVM C APIs that wish to use llvm::Error can supply error-type-id checkers and custom error-to-structured-type converters for any custom errors they provide. Reviewers: bogner, zturner, labath, dblaikie Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D50716 llvm-svn: 339802
66 lines
2.2 KiB
C
66 lines
2.2 KiB
C
/*===------- llvm-c/Error.h - llvm::Error class C Interface -------*- 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 the C interface to LLVM's Error class. *|
|
|
|* *|
|
|
\*===----------------------------------------------------------------------===*/
|
|
|
|
#ifndef LLVM_C_ERROR_H
|
|
#define LLVM_C_ERROR_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* Opaque reference to an error instance. Null serves as the 'success' value.
|
|
*/
|
|
typedef struct LLVMOpaqueError *LLVMErrorRef;
|
|
|
|
/**
|
|
* Error type identifier.
|
|
*/
|
|
typedef const void *LLVMErrorTypeId;
|
|
|
|
/**
|
|
* Returns the type id for the given error instance, which must be a failure
|
|
* value (i.e. non-null).
|
|
*/
|
|
LLVMErrorTypeId LLVMGetErrorTypeId(LLVMErrorRef Err);
|
|
|
|
/**
|
|
* Dispose of the given error without handling it. This operation consumes the
|
|
* error, and the given LLVMErrorRef value is not usable once this call returns.
|
|
* Note: This method *only* needs to be called if the error is not being passed
|
|
* to some other consuming operation, e.g. LLVMGetErrorMessage.
|
|
*/
|
|
void LLVMConsumeError(LLVMErrorRef Err);
|
|
|
|
/**
|
|
* Returns the given string's error message. This operation consumes the error,
|
|
* and the given LLVMErrorRef value is not usable once this call returns.
|
|
*/
|
|
char *LLVMGetErrorMessage(LLVMErrorRef Err);
|
|
|
|
/**
|
|
* Dispose of the given error message.
|
|
*/
|
|
void LLVMDisposeErrorMessage(char *ErrMsg);
|
|
|
|
/**
|
|
* Returns the type id for llvm StringError.
|
|
*/
|
|
LLVMErrorTypeId LLVMGetStringErrorTypeId();
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|