Index: openmp/trunk/runtime/src/kmp.h =================================================================== --- openmp/trunk/runtime/src/kmp.h +++ openmp/trunk/runtime/src/kmp.h @@ -3036,7 +3036,7 @@ extern void __kmp_exit_thread(int exit_status); extern void __kmp_abort(char const *format, ...); extern void __kmp_abort_thread(void); -extern void __kmp_abort_process(void); +KMP_NORETURN extern void __kmp_abort_process(void); extern void __kmp_warn(char const *format, ...); extern void __kmp_set_num_threads(int new_nth, int gtid); Index: openmp/trunk/runtime/src/kmp_affinity.h =================================================================== --- openmp/trunk/runtime/src/kmp_affinity.h +++ openmp/trunk/runtime/src/kmp_affinity.h @@ -64,8 +64,7 @@ } int error = errno; if (abort_on_error) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(FatalSysError), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(FatalSysError), KMP_ERR(error), __kmp_msg_null); } return error; } @@ -79,8 +78,7 @@ } int error = errno; if (abort_on_error) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(FatalSysError), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(FatalSysError), KMP_ERR(error), __kmp_msg_null); } return error; } @@ -307,8 +305,7 @@ } int error = errno; if (abort_on_error) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(FatalSysError), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(FatalSysError), KMP_ERR(error), __kmp_msg_null); } return error; } @@ -322,8 +319,7 @@ } int error = errno; if (abort_on_error) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(FatalSysError), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(FatalSysError), KMP_ERR(error), __kmp_msg_null); } return error; } @@ -438,8 +434,8 @@ if (__kmp_SetThreadGroupAffinity(GetCurrentThread(), &ga, NULL) == 0) { DWORD error = GetLastError(); if (abort_on_error) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetThreadAffMask), - KMP_ERR(error), __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetThreadAffMask), KMP_ERR(error), + __kmp_msg_null); } return error; } @@ -447,8 +443,8 @@ if (!SetThreadAffinityMask(GetCurrentThread(), *mask)) { DWORD error = GetLastError(); if (abort_on_error) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetThreadAffMask), - KMP_ERR(error), __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetThreadAffMask), KMP_ERR(error), + __kmp_msg_null); } return error; } @@ -463,9 +459,8 @@ if (__kmp_GetThreadGroupAffinity(GetCurrentThread(), &ga) == 0) { DWORD error = GetLastError(); if (abort_on_error) { - __kmp_msg(kmp_ms_fatal, - KMP_MSG(FunctionError, "GetThreadGroupAffinity()"), - KMP_ERR(error), __kmp_msg_null); + __kmp_fatal(KMP_MSG(FunctionError, "GetThreadGroupAffinity()"), + KMP_ERR(error), __kmp_msg_null); } return error; } @@ -479,9 +474,8 @@ if (!GetProcessAffinityMask(GetCurrentProcess(), &newMask, &sysMask)) { DWORD error = GetLastError(); if (abort_on_error) { - __kmp_msg(kmp_ms_fatal, - KMP_MSG(FunctionError, "GetProcessAffinityMask()"), - KMP_ERR(error), __kmp_msg_null); + __kmp_fatal(KMP_MSG(FunctionError, "GetProcessAffinityMask()"), + KMP_ERR(error), __kmp_msg_null); } return error; } @@ -489,9 +483,8 @@ if (!retval) { DWORD error = GetLastError(); if (abort_on_error) { - __kmp_msg(kmp_ms_fatal, - KMP_MSG(FunctionError, "SetThreadAffinityMask()"), - KMP_ERR(error), __kmp_msg_null); + __kmp_fatal(KMP_MSG(FunctionError, "SetThreadAffinityMask()"), + KMP_ERR(error), __kmp_msg_null); } return error; } @@ -499,9 +492,8 @@ if (!newMask) { DWORD error = GetLastError(); if (abort_on_error) { - __kmp_msg(kmp_ms_fatal, - KMP_MSG(FunctionError, "SetThreadAffinityMask()"), - KMP_ERR(error), __kmp_msg_null); + __kmp_fatal(KMP_MSG(FunctionError, "SetThreadAffinityMask()"), + KMP_ERR(error), __kmp_msg_null); } } *mask = retval; Index: openmp/trunk/runtime/src/kmp_affinity.cpp =================================================================== --- openmp/trunk/runtime/src/kmp_affinity.cpp +++ openmp/trunk/runtime/src/kmp_affinity.cpp @@ -1892,7 +1892,7 @@ continue; } unsigned level; - if (KMP_SSCANF(buf, "node_%d id", &level) == 1) { + if (KMP_SSCANF(buf, "node_%u id", &level) == 1) { CHECK_LINE; char *p = strchr(buf + sizeof(s4) - 1, ':'); unsigned val; @@ -4038,12 +4038,11 @@ if (f == NULL) { int code = errno; if (__kmp_cpuinfo_file != NULL) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantOpenFileForReading, filename), - KMP_ERR(code), KMP_HNT(NameComesFrom_CPUINFO_FILE), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantOpenFileForReading, filename), KMP_ERR(code), + KMP_HNT(NameComesFrom_CPUINFO_FILE), __kmp_msg_null); } else { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantOpenFileForReading, filename), - KMP_ERR(code), __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantOpenFileForReading, filename), KMP_ERR(code), + __kmp_msg_null); } } int line = 0; Index: openmp/trunk/runtime/src/kmp_debug.cpp =================================================================== --- openmp/trunk/runtime/src/kmp_debug.cpp +++ openmp/trunk/runtime/src/kmp_debug.cpp @@ -74,8 +74,8 @@ #endif // USE_ASSERT_SEG #endif - __kmp_msg(kmp_ms_fatal, KMP_MSG(AssertionFailure, file, line), - KMP_HNT(SubmitBugReport), __kmp_msg_null); + __kmp_fatal(KMP_MSG(AssertionFailure, file, line), KMP_HNT(SubmitBugReport), + __kmp_msg_null); return 0; Index: openmp/trunk/runtime/src/kmp_dispatch.cpp =================================================================== --- openmp/trunk/runtime/src/kmp_dispatch.cpp +++ openmp/trunk/runtime/src/kmp_dispatch.cpp @@ -1137,11 +1137,10 @@ break; default: { - __kmp_msg(kmp_ms_fatal, // Severity - KMP_MSG(UnknownSchedTypeDetected), // Primary message - KMP_HNT(GetNewerLibrary), // Hint - __kmp_msg_null // Variadic argument list terminator - ); + __kmp_fatal(KMP_MSG(UnknownSchedTypeDetected), // Primary message + KMP_HNT(GetNewerLibrary), // Hint + __kmp_msg_null // Variadic argument list terminator + ); } break; } // switch pr->schedule = schedule; @@ -2287,11 +2286,10 @@ break; default: { status = 0; // to avoid complaints on uninitialized variable use - __kmp_msg(kmp_ms_fatal, // Severity - KMP_MSG(UnknownSchedTypeDetected), // Primary message - KMP_HNT(GetNewerLibrary), // Hint - __kmp_msg_null // Variadic argument list terminator - ); + __kmp_fatal(KMP_MSG(UnknownSchedTypeDetected), // Primary message + KMP_HNT(GetNewerLibrary), // Hint + __kmp_msg_null // Variadic argument list terminator + ); } break; } // switch } // if tc == 0; Index: openmp/trunk/runtime/src/kmp_environment.cpp =================================================================== --- openmp/trunk/runtime/src/kmp_environment.cpp +++ openmp/trunk/runtime/src/kmp_environment.cpp @@ -109,8 +109,7 @@ if (!rc) { DWORD error = GetLastError(); if (error != ERROR_ENVVAR_NOT_FOUND) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantGetEnvVar, name), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantGetEnvVar, name), KMP_ERR(error), __kmp_msg_null); }; // if // Variable is not found, it's ok, just continue. } else { @@ -127,8 +126,8 @@ if (error != ERROR_SUCCESS) { // Unexpected error. The variable should be in the environment, // and buffer should be large enough. - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantGetEnvVar, name), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantGetEnvVar, name), KMP_ERR(error), + __kmp_msg_null); KMP_INTERNAL_FREE((void *)result); result = NULL; }; // if @@ -163,8 +162,7 @@ if (rc == 0) { DWORD error = GetLastError(); if (error != ERROR_ENVVAR_NOT_FOUND) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantGetEnvVar, name), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantGetEnvVar, name), KMP_ERR(error), __kmp_msg_null); }; // if return 0; }; // if @@ -185,8 +183,8 @@ // more than ~2.5 GB of memory, entire system feels bad. Sometimes // application is killed (by OS?), sometimes system stops // responding... But this error message never appears. --ln - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetEnvVar, name), - KMP_HNT(NotEnoughMemory), __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetEnvVar, name), KMP_HNT(NotEnoughMemory), + __kmp_msg_null); }; // if #elif KMP_OS_WINDOWS BOOL rc; @@ -198,15 +196,13 @@ }; // if DWORD error = GetLastError(); if (error != ERROR_ENVVAR_NOT_FOUND) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantGetEnvVar, name), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantGetEnvVar, name), KMP_ERR(error), __kmp_msg_null); }; // if }; // if rc = SetEnvironmentVariable(name, value); if (!rc) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetEnvVar, name), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetEnvVar, name), KMP_ERR(error), __kmp_msg_null); }; // if #else #error Unknown or unsupported OS. @@ -222,8 +218,7 @@ BOOL rc = SetEnvironmentVariable(name, NULL); if (!rc) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetEnvVar, name), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetEnvVar, name), KMP_ERR(error), __kmp_msg_null); }; // if #else #error Unknown or unsupported OS. @@ -453,8 +448,8 @@ char *mem = GetEnvironmentStrings(); if (mem == NULL) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantGetEnvironment), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantGetEnvironment), KMP_ERR(error), + __kmp_msg_null); }; // if ___kmp_env_blk_parse_windows(block, mem); FreeEnvironmentStrings(mem); Index: openmp/trunk/runtime/src/kmp_error.cpp =================================================================== --- openmp/trunk/runtime/src/kmp_error.cpp +++ openmp/trunk/runtime/src/kmp_error.cpp @@ -113,7 +113,7 @@ ident_t const *ident // Construct ident. ) { char const *construct = __kmp_pragma(ct, ident); - __kmp_msg(kmp_ms_fatal, __kmp_msg_format(id, construct), __kmp_msg_null); + __kmp_fatal(__kmp_msg_format(id, construct), __kmp_msg_null); KMP_INTERNAL_FREE(CCAST(char *, construct)); } @@ -124,8 +124,7 @@ ) { char const *construct1 = __kmp_pragma(ct, ident); char const *construct2 = __kmp_pragma(cons->type, cons->ident); - __kmp_msg(kmp_ms_fatal, __kmp_msg_format(id, construct1, construct2), - __kmp_msg_null); + __kmp_fatal(__kmp_msg_format(id, construct1, construct2), __kmp_msg_null); KMP_INTERNAL_FREE(CCAST(char *, construct1)); KMP_INTERNAL_FREE(CCAST(char *, construct2)); } Index: openmp/trunk/runtime/src/kmp_i18n.h =================================================================== --- openmp/trunk/runtime/src/kmp_i18n.h +++ openmp/trunk/runtime/src/kmp_i18n.h @@ -142,17 +142,17 @@ // mandatory. Any number of system errors and hints may be specified. Argument // list must be finished with __kmp_msg_null. void __kmp_msg(kmp_msg_severity_t severity, kmp_msg_t message, ...); +KMP_NORETURN void __kmp_fatal(kmp_msg_t message, ...); // Helper macros to make calls shorter in simple cases. #define KMP_INFORM(...) \ __kmp_msg(kmp_ms_inform, KMP_MSG(__VA_ARGS__), __kmp_msg_null) #define KMP_WARNING(...) \ __kmp_msg(kmp_ms_warning, KMP_MSG(__VA_ARGS__), __kmp_msg_null) -#define KMP_FATAL(...) \ - __kmp_msg(kmp_ms_fatal, KMP_MSG(__VA_ARGS__), __kmp_msg_null) +#define KMP_FATAL(...) __kmp_fatal(KMP_MSG(__VA_ARGS__), __kmp_msg_null) #define KMP_SYSFAIL(func, error) \ - __kmp_msg(kmp_ms_fatal, KMP_MSG(FunctionError, func), KMP_SYSERRCODE(error), \ - __kmp_msg_null) + __kmp_fatal(KMP_MSG(FunctionError, func), KMP_SYSERRCODE(error), \ + __kmp_msg_null) // Check error, if not zero, generate fatal error message. #define KMP_CHECK_SYSFAIL(func, error) \ Index: openmp/trunk/runtime/src/kmp_i18n.cpp =================================================================== --- openmp/trunk/runtime/src/kmp_i18n.cpp +++ openmp/trunk/runtime/src/kmp_i18n.cpp @@ -850,17 +850,18 @@ __kmp_printf("%s", buffer.str); __kmp_str_buf_free(&buffer); - if (severity == kmp_ms_fatal) { -#if KMP_OS_WINDOWS - __kmp_thread_sleep( - 500); /* Delay to give message a chance to appear before reaping */ -#endif - __kmp_abort_process(); - }; // if - // __kmp_release_bootstrap_lock( & lock ); // GEH - this lock causing tests // to hang on OS X*. } // __kmp_msg +void __kmp_fatal(kmp_msg_t message, ...) { + __kmp_msg(kmp_ms_fatal, message, __kmp_msg_null); +#if KMP_OS_WINDOWS + // Delay to give message a chance to appear before reaping + __kmp_thread_sleep(500); +#endif + __kmp_abort_process(); +} // __kmp_fatal + // end of file // Index: openmp/trunk/runtime/src/kmp_itt.inl =================================================================== --- openmp/trunk/runtime/src/kmp_itt.inl +++ openmp/trunk/runtime/src/kmp_itt.inl @@ -154,8 +154,9 @@ } else { // Region domain exists for this location // Check if team size was changed. Then create new region domain for this // location - int frm = (loc->reserved_2 & 0x0000FFFF) - 1; - if (__kmp_itt_region_team_size[frm] != team_size) { + unsigned int frm = (loc->reserved_2 & 0x0000FFFF) - 1; + if ((frm < KMP_MAX_FRAME_DOMAINS) && + (__kmp_itt_region_team_size[frm] != team_size)) { const char *buff = NULL; kmp_str_loc_t str_loc = __kmp_str_loc_init(loc->psource, 1); buff = __kmp_str_format("%s$omp$parallel:%d@%s:%d:%d", str_loc.func, @@ -231,8 +232,9 @@ } else { // Region domain exists for this location // Check if team size was changed. Then create new region domain for this // location - int frm = (loc->reserved_2 & 0x0000FFFF) - 1; - if (__kmp_itt_region_team_size[frm] != team_size) { + unsigned int frm = (loc->reserved_2 & 0x0000FFFF) - 1; + if ((frm < KMP_MAX_FRAME_DOMAINS) && + (__kmp_itt_region_team_size[frm] != team_size)) { const char *buff = NULL; kmp_str_loc_t str_loc = __kmp_str_loc_init(loc->psource, 1); buff = __kmp_str_format("%s$omp$parallel:%d@%s:%d:%d", str_loc.func, @@ -443,7 +445,7 @@ } ident_t *loc = __kmp_thread_from_gtid(gtid)->th.th_ident; if (loc && loc->reserved_2) { - int frm = (loc->reserved_2 & 0x0000FFFF) - 1; + unsigned int frm = (loc->reserved_2 & 0x0000FFFF) - 1; if (frm < KMP_MAX_FRAME_DOMAINS) { KMP_ITT_DEBUG_LOCK(); __itt_frame_end_v3(__kmp_itt_region_domains[frm], NULL); Index: openmp/trunk/runtime/src/kmp_os.h =================================================================== --- openmp/trunk/runtime/src/kmp_os.h +++ openmp/trunk/runtime/src/kmp_os.h @@ -294,6 +294,15 @@ #define KMP_ALIGN(bytes) __declspec(align(bytes)) #endif +// Define attribute that indicates a function does not return +#if __cplusplus >= 201103L +#define KMP_NORETURN [[noreturn]] +#elif KMP_OS_WINDOWS +#define KMP_NORETURN __declspec(noreturn) +#else +#define KMP_NORETURN __attribute__((noreturn)) +#endif + /* General purpose fence types for memory operations */ enum kmp_mem_fence_type { kmp_no_fence, /* No memory fence */ Index: openmp/trunk/runtime/src/kmp_runtime.cpp =================================================================== --- openmp/trunk/runtime/src/kmp_runtime.cpp +++ openmp/trunk/runtime/src/kmp_runtime.cpp @@ -309,8 +309,8 @@ (size_t)TCR_PTR(f_th->th.th_info.ds.ds_stacksize), "th_%d stack (overlapped)", __kmp_gtid_from_thread(f_th)); - __kmp_msg(kmp_ms_fatal, KMP_MSG(StackOverlap), - KMP_HNT(ChangeStackLimit), __kmp_msg_null); + __kmp_fatal(KMP_MSG(StackOverlap), KMP_HNT(ChangeStackLimit), + __kmp_msg_null); } } } @@ -3665,12 +3665,12 @@ /* see if there are too many threads */ if (__kmp_all_nth >= capacity && !__kmp_expand_threads(1, 1)) { if (__kmp_tp_cached) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantRegisterNewThread), - KMP_HNT(Set_ALL_THREADPRIVATE, __kmp_tp_capacity), - KMP_HNT(PossibleSystemLimitOnThreads), __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantRegisterNewThread), + KMP_HNT(Set_ALL_THREADPRIVATE, __kmp_tp_capacity), + KMP_HNT(PossibleSystemLimitOnThreads), __kmp_msg_null); } else { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantRegisterNewThread), - KMP_HNT(SystemLimitOnThreads), __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantRegisterNewThread), KMP_HNT(SystemLimitOnThreads), + __kmp_msg_null); } }; // if @@ -4474,8 +4474,8 @@ status = __kmp_get_system_affinity(old_mask, TRUE); int error = errno; if (status != 0) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(ChangeThreadAffMaskError), - KMP_ERR(error), __kmp_msg_null); + __kmp_fatal(KMP_MSG(ChangeThreadAffMaskError), KMP_ERR(error), + __kmp_msg_null); } } __kmp_set_system_affinity(__kmp_affin_fullMask, TRUE); @@ -6319,9 +6319,8 @@ char *duplicate_ok = __kmp_env_get("KMP_DUPLICATE_LIB_OK"); if (!__kmp_str_match_true(duplicate_ok)) { // That's not allowed. Issue fatal error. - __kmp_msg(kmp_ms_fatal, - KMP_MSG(DuplicateLibrary, KMP_LIBRARY_FILE, file_name), - KMP_HNT(DuplicateLibrary), __kmp_msg_null); + __kmp_fatal(KMP_MSG(DuplicateLibrary, KMP_LIBRARY_FILE, file_name), + KMP_HNT(DuplicateLibrary), __kmp_msg_null); }; // if KMP_INTERNAL_FREE(duplicate_ok); __kmp_duplicate_library_ok = 1; @@ -6626,8 +6625,8 @@ library. For dynamic library, we already have _fini and DllMain. */ int rc = atexit(__kmp_internal_end_atexit); if (rc != 0) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(FunctionError, "atexit()"), KMP_ERR(rc), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(FunctionError, "atexit()"), KMP_ERR(rc), + __kmp_msg_null); }; // if } #endif Index: openmp/trunk/runtime/src/z_Linux_util.cpp =================================================================== --- openmp/trunk/runtime/src/z_Linux_util.cpp +++ openmp/trunk/runtime/src/z_Linux_util.cpp @@ -433,8 +433,8 @@ KA_TRACE(10, ("__kmp_terminate_thread: kill (%d)\n", gtid)); status = pthread_cancel(th->th.th_info.ds.ds_thread); if (status != 0 && status != ESRCH) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantTerminateWorkerThread), KMP_ERR(status), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantTerminateWorkerThread), KMP_ERR(status), + __kmp_msg_null); }; // if #endif __kmp_yield(TRUE); @@ -808,13 +808,11 @@ #ifdef KMP_THREAD_ATTR status = pthread_attr_init(&thread_attr); if (status != 0) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantInitThreadAttrs), KMP_ERR(status), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantInitThreadAttrs), KMP_ERR(status), __kmp_msg_null); }; // if status = pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_JOINABLE); if (status != 0) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetWorkerState), KMP_ERR(status), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetWorkerState), KMP_ERR(status), __kmp_msg_null); }; // if /* Set stack size for this thread now. @@ -846,8 +844,8 @@ }; // if #endif /* KMP_BACKUP_STKSIZE */ if (status != 0) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetWorkerStackSize, stack_size), - KMP_ERR(status), KMP_HNT(ChangeWorkerStackSize), __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetWorkerStackSize, stack_size), KMP_ERR(status), + KMP_HNT(ChangeWorkerStackSize), __kmp_msg_null); }; // if #endif /* _POSIX_THREAD_ATTR_STACKSIZE */ @@ -858,19 +856,17 @@ if (status != 0 || !handle) { // ??? Why do we check handle?? #ifdef _POSIX_THREAD_ATTR_STACKSIZE if (status == EINVAL) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetWorkerStackSize, stack_size), - KMP_ERR(status), KMP_HNT(IncreaseWorkerStackSize), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetWorkerStackSize, stack_size), KMP_ERR(status), + KMP_HNT(IncreaseWorkerStackSize), __kmp_msg_null); }; if (status == ENOMEM) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetWorkerStackSize, stack_size), - KMP_ERR(status), KMP_HNT(DecreaseWorkerStackSize), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetWorkerStackSize, stack_size), KMP_ERR(status), + KMP_HNT(DecreaseWorkerStackSize), __kmp_msg_null); }; #endif /* _POSIX_THREAD_ATTR_STACKSIZE */ if (status == EAGAIN) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(NoResourcesForWorkerThread), - KMP_ERR(status), KMP_HNT(Decrease_NUM_THREADS), __kmp_msg_null); + __kmp_fatal(KMP_MSG(NoResourcesForWorkerThread), KMP_ERR(status), + KMP_HNT(Decrease_NUM_THREADS), __kmp_msg_null); }; // if KMP_SYSFAIL("pthread_create", status); }; // if @@ -931,13 +927,11 @@ } status = pthread_attr_init(&thread_attr); if (status != 0) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantInitThreadAttrs), KMP_ERR(status), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantInitThreadAttrs), KMP_ERR(status), __kmp_msg_null); }; // if status = pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_JOINABLE); if (status != 0) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetMonitorState), KMP_ERR(status), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetMonitorState), KMP_ERR(status), __kmp_msg_null); }; // if #ifdef _POSIX_THREAD_ATTR_STACKSIZE @@ -991,20 +985,19 @@ __kmp_monitor_stksize *= 2; goto retry; } - __kmp_msg( - kmp_ms_fatal, KMP_MSG(CantSetMonitorStackSize, __kmp_monitor_stksize), - KMP_ERR(status), KMP_HNT(IncreaseMonitorStackSize), __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetMonitorStackSize, __kmp_monitor_stksize), + KMP_ERR(status), KMP_HNT(IncreaseMonitorStackSize), + __kmp_msg_null); }; // if if (status == ENOMEM) { - __kmp_msg( - kmp_ms_fatal, KMP_MSG(CantSetMonitorStackSize, __kmp_monitor_stksize), - KMP_ERR(status), KMP_HNT(DecreaseMonitorStackSize), __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetMonitorStackSize, __kmp_monitor_stksize), + KMP_ERR(status), KMP_HNT(DecreaseMonitorStackSize), + __kmp_msg_null); }; // if #endif /* _POSIX_THREAD_ATTR_STACKSIZE */ if (status == EAGAIN) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(NoResourcesForMonitorThread), - KMP_ERR(status), KMP_HNT(DecreaseNumberOfThreadsInUse), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(NoResourcesForMonitorThread), KMP_ERR(status), + KMP_HNT(DecreaseNumberOfThreadsInUse), __kmp_msg_null); }; // if KMP_SYSFAIL("pthread_create", status); }; // if @@ -1076,8 +1069,7 @@ KA_TRACE(10, ("__kmp_reap_monitor: try to join with monitor\n")); status = pthread_join(th->th.th_info.ds.ds_thread, &exit_val); if (exit_val != th) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(ReapMonitorError), KMP_ERR(status), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(ReapMonitorError), KMP_ERR(status), __kmp_msg_null); } th->th.th_info.ds.ds_tid = KMP_GTID_DNE; @@ -1104,8 +1096,7 @@ #ifdef KMP_DEBUG /* Don't expose these to the user until we understand when they trigger */ if (status != 0) { - __kmp_msg(kmp_ms_fatal, KMP_MSG(ReapWorkerError), KMP_ERR(status), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(ReapWorkerError), KMP_ERR(status), __kmp_msg_null); } if (exit_val != th) { KA_TRACE(10, ("__kmp_reap_worker: worker T#%d did not reap properly, " Index: openmp/trunk/runtime/src/z_Windows_NT_util.cpp =================================================================== --- openmp/trunk/runtime/src/z_Windows_NT_util.cpp +++ openmp/trunk/runtime/src/z_Windows_NT_util.cpp @@ -848,9 +848,8 @@ status = QueryPerformanceFrequency(&freq); if (!status) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, - KMP_MSG(FunctionError, "QueryPerformanceFrequency()"), - KMP_ERR(error), __kmp_msg_null); + __kmp_fatal(KMP_MSG(FunctionError, "QueryPerformanceFrequency()"), + KMP_ERR(error), __kmp_msg_null); } else { __kmp_win32_tick = ((double)1.0) / (double)freq.QuadPart; @@ -966,8 +965,7 @@ status = SetThreadPriority(monitor, THREAD_PRIORITY_HIGHEST); if (!status) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetThreadPriority), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetThreadPriority), KMP_ERR(error), __kmp_msg_null); } /* register us as monitor */ @@ -1008,8 +1006,7 @@ status = SetThreadPriority(monitor, THREAD_PRIORITY_NORMAL); if (!status) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetThreadPriority), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetThreadPriority), KMP_ERR(error), __kmp_msg_null); } if (__kmp_global.g.g_abort != 0) { @@ -1109,8 +1106,7 @@ if (handle == 0) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantCreateThread), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantCreateThread), KMP_ERR(error), __kmp_msg_null); } else { th->th.th_info.ds.ds_thread = handle; } @@ -1147,8 +1143,7 @@ __kmp_monitor_ev = CreateEvent(NULL, TRUE, FALSE, NULL); if (__kmp_monitor_ev == NULL) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantCreateEvent), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantCreateEvent), KMP_ERR(error), __kmp_msg_null); }; // if #if USE_ITT_BUILD __kmp_itt_system_object_created(__kmp_monitor_ev, "Event"); @@ -1177,8 +1172,7 @@ STACK_SIZE_PARAM_IS_A_RESERVATION, &idThread); if (handle == 0) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantCreateThread), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantCreateThread), KMP_ERR(error), __kmp_msg_null); } else th->th.th_info.ds.ds_thread = handle; @@ -1200,8 +1194,8 @@ rc = GetExitCodeThread(th->th.th_info.ds.ds_thread, exit_val); if (rc == 0) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(FunctionError, "GetExitCodeThread()"), - KMP_ERR(error), __kmp_msg_null); + __kmp_fatal(KMP_MSG(FunctionError, "GetExitCodeThread()"), KMP_ERR(error), + __kmp_msg_null); }; // if return (*exit_val == STILL_ACTIVE); } @@ -1299,8 +1293,7 @@ status = SetEvent(__kmp_monitor_ev); if (status == FALSE) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantSetEvent), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantSetEvent), KMP_ERR(error), __kmp_msg_null); } KA_TRACE(10, ("__kmp_reap_monitor: reaping thread (%d)\n", th->th.th_info.ds.ds_gtid)); @@ -1338,8 +1331,8 @@ sig_func_t old = signal(signum, handler); if (old == SIG_ERR) { int error = errno; - __kmp_msg(kmp_ms_fatal, KMP_MSG(FunctionError, "signal"), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(FunctionError, "signal"), KMP_ERR(error), + __kmp_msg_null); }; // if return old; } @@ -1418,8 +1411,8 @@ status = SleepEx((DWORD)millis, FALSE); if (status) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(FunctionError, "SleepEx()"), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(FunctionError, "SleepEx()"), KMP_ERR(error), + __kmp_msg_null); } } @@ -1453,8 +1446,7 @@ rc = CloseHandle(tHandle); if (!rc) { DWORD error = GetLastError(); - __kmp_msg(kmp_ms_fatal, KMP_MSG(CantCloseHandle), KMP_ERR(error), - __kmp_msg_null); + __kmp_fatal(KMP_MSG(CantCloseHandle), KMP_ERR(error), __kmp_msg_null); } }