mirror of
https://github.com/intel/llvm.git
synced 2026-01-25 10:55:58 +08:00
[OpenMP] libomp: move warnings to after library initialization
Warnings on deprecated api cannot be suppressed if the library is not initialized. With this change it is possible to set KMP_WARNINGS=false to suppress the warnings. Differential Revision: https://reviews.llvm.org/D102676
This commit is contained in:
@@ -595,13 +595,13 @@ int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_NUM_PROCS)(void) {
|
||||
}
|
||||
|
||||
void FTN_STDCALL KMP_EXPAND_NAME(FTN_SET_NESTED)(int KMP_DEREF flag) {
|
||||
KMP_INFORM(APIDeprecated, "omp_set_nested", "omp_set_max_active_levels");
|
||||
#ifdef KMP_STUB
|
||||
__kmps_set_nested(KMP_DEREF flag);
|
||||
#else
|
||||
kmp_info_t *thread;
|
||||
/* For the thread-private internal controls implementation */
|
||||
thread = __kmp_entry_thread();
|
||||
KMP_INFORM(APIDeprecated, "omp_set_nested", "omp_set_max_active_levels");
|
||||
__kmp_save_internal_controls(thread);
|
||||
// Somewhat arbitrarily decide where to get a value for max_active_levels
|
||||
int max_active_levels = get__max_active_levels(thread);
|
||||
@@ -612,12 +612,12 @@ void FTN_STDCALL KMP_EXPAND_NAME(FTN_SET_NESTED)(int KMP_DEREF flag) {
|
||||
}
|
||||
|
||||
int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_NESTED)(void) {
|
||||
KMP_INFORM(APIDeprecated, "omp_get_nested", "omp_get_max_active_levels");
|
||||
#ifdef KMP_STUB
|
||||
return __kmps_get_nested();
|
||||
#else
|
||||
kmp_info_t *thread;
|
||||
thread = __kmp_entry_thread();
|
||||
KMP_INFORM(APIDeprecated, "omp_get_nested", "omp_get_max_active_levels");
|
||||
return get__max_active_levels(thread) > 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
18
openmp/runtime/test/api/omp_deprecated.c
Normal file
18
openmp/runtime/test/api/omp_deprecated.c
Normal file
@@ -0,0 +1,18 @@
|
||||
// RUN: %libomp-compile && env KMP_WARNINGS=false %libomp-run 2>&1 | FileCheck %s
|
||||
// The test checks that KMP_WARNINGS=false suppresses library warnings
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <omp.h>
|
||||
int main(int argc, char** argv) {
|
||||
omp_set_nested(1);
|
||||
if (!omp_get_nested()) {
|
||||
printf("error: omp_set_nested(1) failed\n");
|
||||
return 1;
|
||||
}
|
||||
printf("passed\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// CHECK-NOT: omp_set_nested routine deprecated
|
||||
// CHECK-NOT: omp_get_nested routine deprecated
|
||||
Reference in New Issue
Block a user