blob: 6ca6236113558a4abeaea4df05494c58985e8c96 [file] [log] [blame]
#include <cstdarg>
#include "vtr_util.h"
#include "vpr_error.h"
/* Date:June 15th, 2013
* Author: Daniel Chen
* Purpose: Used to throw any internal VPR error or architecture
* file error and output the appropriate file name,
* line number, and the error message. Does not return
* anything but throw an exception which will be caught
* main.c.
*/
void vpr_throw(enum e_vpr_error type,
const char* psz_file_name,
unsigned int line_num,
const char* psz_message,
...) {
// Make a variable argument list
va_list va_args;
// Initialize variable argument list
va_start(va_args, psz_message);
//Format the message
std::string msg = vtr::vstring_fmt(psz_message, va_args);
// Reset variable argument list
va_end(va_args);
throw VprError(type, msg, psz_file_name, line_num);
}
void vvpr_throw(enum e_vpr_error type,
const char* psz_file_name,
unsigned int line_num,
const char* psz_message,
va_list va_args) {
//Format the message
std::string msg = vtr::vstring_fmt(psz_message, va_args);
throw VprError(type, msg, psz_file_name, line_num);
}