<html><body>
<p><font size="2" face="sans-serif">Hi</font><br>
<br>
<font size="2" face="sans-serif">Using clang 3.5 on ppc64le, I obtained the following warnings.</font><br>
<br>
<font size="2" face="sans-serif">1.</font><br>
<font size="2" face="sans-serif">/home/compteam/slave0/build_folder_omp/libiomp-src/runtime/src/kmp_error.c:124:23: warning: comparison of constant 16 with expression of type 'enum cons_type' is always true [-Wtautological-constant-out-of-range-compare]</font><br>
<font size="2" face="sans-serif">    if ( 0 < ct && ct <= cons_text_c_num ) {;</font><br>
<font size="2" face="sans-serif">                   ~~ ^  ~~~~~~~~~~~~~~~</font><br>
<br>
<font size="2" face="sans-serif">It looks like that there are no machines where const char * is more that 64-bit. The second check can be removed safely - maybe the author of this intended something different?</font><br>
<br>
<font size="2" face="sans-serif">2.</font><br>
<font size="2" face="sans-serif">/home/compteam/slave0/build_folder_omp/libiomp-src/runtime/src/kmp_runtime.c:270:58: warning: multiple unsequenced modifications to 'gtid' [-Wunsequenced]</font><br>
<font size="2" face="sans-serif">    if ( __kmp_env_checks == TRUE && !KMP_UBER_GTID(gtid = __kmp_gtid_from_thread( th )))</font><br>
<font size="2" face="sans-serif">                                                         ^</font><br>
<font size="2" face="sans-serif">/home/compteam/slave0/build_folder_omp/libiomp-src/runtime/src/kmp.h:958:25: note: expanded from macro 'KMP_UBER_GTID'</font><br>
<font size="2" face="sans-serif">        (__kmp_threads[(gtid)] == __kmp_root[(gtid)]->r.r_uber_thread)\</font><br>
<font size="2" face="sans-serif">                        ^</font><br>
<br>
<font size="2" face="sans-serif">gtid here is modified multiple times. We can just move the assignment out of the if and have only gtid as parameter of the macro.</font><br>
<br>
<br>
<font size="2" face="sans-serif">Below a patch that fixes these problems. Please let me know your thoughts on this.</font><br>
<br>
<font size="2" face="sans-serif">Thanks</font><br>
<br>
<font size="2" face="sans-serif">-- Carlo</font><br>
<br>
<br>
<br>
<br>
<font size="2" face="sans-serif">diff --git a/runtime/src/kmp_error.c b/runtime/src/kmp_error.c</font><br>
<font size="2" face="sans-serif">index b76c109..4274365 100644</font><br>
<font size="2" face="sans-serif">--- a/runtime/src/kmp_error.c</font><br>
<font size="2" face="sans-serif">+++ b/runtime/src/kmp_error.c</font><br>
<font size="2" face="sans-serif">@@ -121,7 +121,7 @@ __kmp_pragma(</font><br>
<font size="2" face="sans-serif">     kmp_str_buf_t buffer;</font><br>
<font size="2" face="sans-serif">     kmp_msg_t     prgm;</font><br>
<font size="2" face="sans-serif">     __kmp_str_buf_init( & buffer );</font><br>
<font size="2" face="sans-serif">-    if ( 0 < ct && ct <= cons_text_c_num ) {;</font><br>
<font size="2" face="sans-serif">+    if ( 0 < ct ) {</font><br>
<font size="2" face="sans-serif">         cons = cons_text_c[ ct ];</font><br>
<font size="2" face="sans-serif">     } else {</font><br>
<font size="2" face="sans-serif">         KMP_DEBUG_ASSERT( 0 );</font><br>
<font size="2" face="sans-serif">diff --git a/runtime/src/kmp_runtime.c b/runtime/src/kmp_runtime.c</font><br>
<font size="2" face="sans-serif">index 55b58ce..0a08993 100644</font><br>
<font size="2" face="sans-serif">--- a/runtime/src/kmp_runtime.c</font><br>
<font size="2" face="sans-serif">+++ b/runtime/src/kmp_runtime.c</font><br>
<font size="2" face="sans-serif">@@ -267,7 +267,8 @@ __kmp_check_stack_overlap( kmp_info_t *th )</font><br>
<font size="2" face="sans-serif">     }</font><br>
<br>
<font size="2" face="sans-serif">     /* No point in checking ubermaster threads since they use refinement and cannot overlap */</font><br>
<font size="2" face="sans-serif">-    if ( __kmp_env_checks == TRUE && !KMP_UBER_GTID(gtid = __kmp_gtid_from_thread( th )))</font><br>
<font size="2" face="sans-serif">+    gtid = __kmp_gtid_from_thread( th );</font><br>
<font size="2" face="sans-serif">+    if ( __kmp_env_checks == TRUE && !KMP_UBER_GTID(gtid))</font><br>
<font size="2" face="sans-serif">     {</font><br>
<font size="2" face="sans-serif">         KA_TRACE(10,("__kmp_check_stack_overlap: performing extensive checking\n"));</font><br>
<font size="2" face="sans-serif">         if ( stack_beg == NULL ) {</font></body></html>