Fix MSVC build (#978)
* Allocate buffer on heap memory * Fix Pragma definition for MSVC * Fix uninitiliazed variable * Loop counter cannot be non-negative for MSVC
This commit is contained in:
parent
fc49a5ec6b
commit
3e56e6e590
@ -274,8 +274,8 @@ hypre_IJMatrixReadBinary( const char *prefixname,
|
|||||||
HYPRE_Int one = 1;
|
HYPRE_Int one = 1;
|
||||||
HYPRE_Int myid;
|
HYPRE_Int myid;
|
||||||
char filename[1024], msg[1024];
|
char filename[1024], msg[1024];
|
||||||
HYPRE_BigInt ilower, iupper, jlower, jupper;
|
HYPRE_BigInt i, ilower, iupper, jlower, jupper;
|
||||||
size_t i, count;
|
size_t count;
|
||||||
hypre_uint64 header[11];
|
hypre_uint64 header[11];
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
|
|||||||
@ -64,7 +64,7 @@ hypre_FSAISolve( void *fsai_vdata,
|
|||||||
}
|
}
|
||||||
|
|
||||||
iter = 0;
|
iter = 0;
|
||||||
rel_resnorm = 1.0;
|
rel_resnorm = resnorm = 1.0;
|
||||||
|
|
||||||
if (my_id == 0 && print_level > 1)
|
if (my_id == 0 && print_level > 1)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -357,11 +357,13 @@ typedef struct
|
|||||||
|
|
||||||
#ifdef HYPRE_USING_OPENMP
|
#ifdef HYPRE_USING_OPENMP
|
||||||
#define HYPRE_BOX_REDUCTION
|
#define HYPRE_BOX_REDUCTION
|
||||||
|
#ifndef Pragma
|
||||||
#if defined(WIN32) && defined(_MSC_VER)
|
#if defined(WIN32) && defined(_MSC_VER)
|
||||||
#define Pragma(x) __pragma(HYPRE_XSTR(x))
|
#define Pragma(x) __pragma(x)
|
||||||
#else
|
#else
|
||||||
#define Pragma(x) _Pragma(HYPRE_XSTR(x))
|
#define Pragma(x) _Pragma(HYPRE_XSTR(x))
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#define OMPRB1 Pragma(omp parallel for private(HYPRE_REDBLACK_PRIVATE) HYPRE_BOX_REDUCTION HYPRE_SMP_SCHEDULE)
|
#define OMPRB1 Pragma(omp parallel for private(HYPRE_REDBLACK_PRIVATE) HYPRE_BOX_REDUCTION HYPRE_SMP_SCHEDULE)
|
||||||
#else
|
#else
|
||||||
#define OMPRB1
|
#define OMPRB1
|
||||||
|
|||||||
@ -2355,7 +2355,7 @@ hypre__J = hypre__thread; i1 = i2 = 0; \
|
|||||||
#define HYPRE_BOX_REDUCTION
|
#define HYPRE_BOX_REDUCTION
|
||||||
#define HYPRE_OMP_CLAUSE
|
#define HYPRE_OMP_CLAUSE
|
||||||
#if defined(WIN32) && defined(_MSC_VER)
|
#if defined(WIN32) && defined(_MSC_VER)
|
||||||
#define Pragma(x) __pragma(HYPRE_XSTR(x))
|
#define Pragma(x) __pragma(x)
|
||||||
#else
|
#else
|
||||||
#define Pragma(x) _Pragma(HYPRE_XSTR(x))
|
#define Pragma(x) _Pragma(HYPRE_XSTR(x))
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
#define HYPRE_BOX_REDUCTION
|
#define HYPRE_BOX_REDUCTION
|
||||||
#define HYPRE_OMP_CLAUSE
|
#define HYPRE_OMP_CLAUSE
|
||||||
#if defined(WIN32) && defined(_MSC_VER)
|
#if defined(WIN32) && defined(_MSC_VER)
|
||||||
#define Pragma(x) __pragma(HYPRE_XSTR(x))
|
#define Pragma(x) __pragma(x)
|
||||||
#else
|
#else
|
||||||
#define Pragma(x) _Pragma(HYPRE_XSTR(x))
|
#define Pragma(x) _Pragma(HYPRE_XSTR(x))
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -14,7 +14,8 @@ hypre_Error hypre__global_error = {0, 0, NULL, 0, 0};
|
|||||||
* Process the error raised on the given line of the given source file
|
* Process the error raised on the given line of the given source file
|
||||||
*--------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
void hypre_error_handler(const char *filename, HYPRE_Int line, HYPRE_Int ierr, const char *msg)
|
void
|
||||||
|
hypre_error_handler(const char *filename, HYPRE_Int line, HYPRE_Int ierr, const char *msg)
|
||||||
{
|
{
|
||||||
/* Copy global struct into a short name and copy changes back before exiting */
|
/* Copy global struct into a short name and copy changes back before exiting */
|
||||||
hypre_Error err = hypre__global_error;
|
hypre_Error err = hypre__global_error;
|
||||||
@ -27,8 +28,8 @@ void hypre_error_handler(const char *filename, HYPRE_Int line, HYPRE_Int ierr, c
|
|||||||
/* Error format strings without and with a message */
|
/* Error format strings without and with a message */
|
||||||
const char fmt_wo[] = "hypre error in file \"%s\", line %d, error code = %d\n";
|
const char fmt_wo[] = "hypre error in file \"%s\", line %d, error code = %d\n";
|
||||||
const char fmt_wm[] = "hypre error in file \"%s\", line %d, error code = %d - %s\n";
|
const char fmt_wm[] = "hypre error in file \"%s\", line %d, error code = %d - %s\n";
|
||||||
|
char *buffer;
|
||||||
HYPRE_Int bufsz = 0;
|
HYPRE_Int bufsz;
|
||||||
|
|
||||||
/* Print error message to local buffer first */
|
/* Print error message to local buffer first */
|
||||||
|
|
||||||
@ -42,7 +43,7 @@ void hypre_error_handler(const char *filename, HYPRE_Int line, HYPRE_Int ierr, c
|
|||||||
}
|
}
|
||||||
|
|
||||||
bufsz += 1;
|
bufsz += 1;
|
||||||
char buffer[bufsz];
|
buffer = hypre_TAlloc(char, bufsz, HYPRE_MEMORY_HOST);
|
||||||
|
|
||||||
if (msg)
|
if (msg)
|
||||||
{
|
{
|
||||||
@ -54,7 +55,6 @@ void hypre_error_handler(const char *filename, HYPRE_Int line, HYPRE_Int ierr, c
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Now print buffer to either memory or stderr */
|
/* Now print buffer to either memory or stderr */
|
||||||
|
|
||||||
if (err.print_to_memory)
|
if (err.print_to_memory)
|
||||||
{
|
{
|
||||||
HYPRE_Int msg_sz = err.msg_sz; /* Store msg_sz for snprintf below */
|
HYPRE_Int msg_sz = err.msg_sz; /* Store msg_sz for snprintf below */
|
||||||
@ -74,6 +74,8 @@ void hypre_error_handler(const char *filename, HYPRE_Int line, HYPRE_Int ierr, c
|
|||||||
hypre_fprintf(stderr, "%s", buffer);
|
hypre_fprintf(stderr, "%s", buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Free buffer */
|
||||||
|
hypre_TFree(buffer, HYPRE_MEMORY_HOST);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
hypre__global_error = err;
|
hypre__global_error = err;
|
||||||
@ -82,7 +84,8 @@ void hypre_error_handler(const char *filename, HYPRE_Int line, HYPRE_Int ierr, c
|
|||||||
/*--------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------
|
||||||
*--------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
HYPRE_Int HYPRE_GetError(void)
|
HYPRE_Int
|
||||||
|
HYPRE_GetError(void)
|
||||||
{
|
{
|
||||||
return hypre_error_flag;
|
return hypre_error_flag;
|
||||||
}
|
}
|
||||||
@ -90,7 +93,8 @@ HYPRE_Int HYPRE_GetError(void)
|
|||||||
/*--------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------
|
||||||
*--------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
HYPRE_Int HYPRE_CheckError(HYPRE_Int ierr, HYPRE_Int hypre_error_code)
|
HYPRE_Int
|
||||||
|
HYPRE_CheckError(HYPRE_Int ierr, HYPRE_Int hypre_error_code)
|
||||||
{
|
{
|
||||||
return ierr & hypre_error_code;
|
return ierr & hypre_error_code;
|
||||||
}
|
}
|
||||||
@ -98,7 +102,8 @@ HYPRE_Int HYPRE_CheckError(HYPRE_Int ierr, HYPRE_Int hypre_error_code)
|
|||||||
/*--------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------
|
||||||
*--------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
void HYPRE_DescribeError(HYPRE_Int ierr, char *msg)
|
void
|
||||||
|
HYPRE_DescribeError(HYPRE_Int ierr, char *msg)
|
||||||
{
|
{
|
||||||
if (ierr == 0)
|
if (ierr == 0)
|
||||||
{
|
{
|
||||||
@ -129,7 +134,8 @@ void HYPRE_DescribeError(HYPRE_Int ierr, char *msg)
|
|||||||
/*--------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------
|
||||||
*--------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
HYPRE_Int HYPRE_GetErrorArg(void)
|
HYPRE_Int
|
||||||
|
HYPRE_GetErrorArg(void)
|
||||||
{
|
{
|
||||||
return (hypre_error_flag >> 3 & 31);
|
return (hypre_error_flag >> 3 & 31);
|
||||||
}
|
}
|
||||||
@ -137,7 +143,8 @@ HYPRE_Int HYPRE_GetErrorArg(void)
|
|||||||
/*--------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------
|
||||||
*--------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
HYPRE_Int HYPRE_ClearAllErrors(void)
|
HYPRE_Int
|
||||||
|
HYPRE_ClearAllErrors(void)
|
||||||
{
|
{
|
||||||
hypre_error_flag = 0;
|
hypre_error_flag = 0;
|
||||||
return (hypre_error_flag != 0);
|
return (hypre_error_flag != 0);
|
||||||
@ -146,7 +153,8 @@ HYPRE_Int HYPRE_ClearAllErrors(void)
|
|||||||
/*--------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------
|
||||||
*--------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
HYPRE_Int HYPRE_ClearError(HYPRE_Int hypre_error_code)
|
HYPRE_Int
|
||||||
|
HYPRE_ClearError(HYPRE_Int hypre_error_code)
|
||||||
{
|
{
|
||||||
hypre_error_flag &= ~hypre_error_code;
|
hypre_error_flag &= ~hypre_error_code;
|
||||||
return (hypre_error_flag & hypre_error_code);
|
return (hypre_error_flag & hypre_error_code);
|
||||||
@ -155,7 +163,8 @@ HYPRE_Int HYPRE_ClearError(HYPRE_Int hypre_error_code)
|
|||||||
/*--------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------
|
||||||
*--------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
HYPRE_Int HYPRE_SetPrintErrorMode(HYPRE_Int mode)
|
HYPRE_Int
|
||||||
|
HYPRE_SetPrintErrorMode(HYPRE_Int mode)
|
||||||
{
|
{
|
||||||
hypre__global_error.print_to_memory = mode;
|
hypre__global_error.print_to_memory = mode;
|
||||||
return hypre_error_flag;
|
return hypre_error_flag;
|
||||||
@ -164,7 +173,8 @@ HYPRE_Int HYPRE_SetPrintErrorMode(HYPRE_Int mode)
|
|||||||
/*--------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------
|
||||||
*--------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
HYPRE_Int HYPRE_GetErrorMessages(char **buffer, HYPRE_Int *bufsz)
|
HYPRE_Int
|
||||||
|
HYPRE_GetErrorMessages(char **buffer, HYPRE_Int *bufsz)
|
||||||
{
|
{
|
||||||
hypre_Error err = hypre__global_error;
|
hypre_Error err = hypre__global_error;
|
||||||
|
|
||||||
@ -183,7 +193,8 @@ HYPRE_Int HYPRE_GetErrorMessages(char **buffer, HYPRE_Int *bufsz)
|
|||||||
/*--------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------
|
||||||
*--------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
HYPRE_Int HYPRE_PrintErrorMessages(MPI_Comm comm)
|
HYPRE_Int
|
||||||
|
HYPRE_PrintErrorMessages(MPI_Comm comm)
|
||||||
{
|
{
|
||||||
hypre_Error err = hypre__global_error;
|
hypre_Error err = hypre__global_error;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user