[Openmp-commits] [PATCH] D102676: [OpenMP] libomp: move warnings to after library initialization

Andrey Churbanov via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Tue May 18 02:30:55 PDT 2021


AndreyChurbanov created this revision.
AndreyChurbanov added reviewers: hbae, jlpeyton, tlwilmar, Nawrin.
AndreyChurbanov added a project: OpenMP.
Herald added subscribers: guansong, yaxunl.
AndreyChurbanov requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added subscribers: openmp-commits, sstefan1.

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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D102676

Files:
  openmp/runtime/src/kmp_ftn_entry.h
  openmp/runtime/test/api/omp_deprecated.c


Index: openmp/runtime/test/api/omp_deprecated.c
===================================================================
--- /dev/null
+++ openmp/runtime/test/api/omp_deprecated.c
@@ -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
Index: openmp/runtime/src/kmp_ftn_entry.h
===================================================================
--- openmp/runtime/src/kmp_ftn_entry.h
+++ openmp/runtime/src/kmp_ftn_entry.h
@@ -595,13 +595,13 @@
 }
 
 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 @@
 }
 
 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
 }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D102676.346079.patch
Type: text/x-patch
Size: 1911 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20210518/55672058/attachment.bin>


More information about the Openmp-commits mailing list