Oracle Studio 12.5 C compiler on a recent v2.0 nightly tarball points out
the following unreachable code:
"/shared/OMPI/openmpi-2.0-latest-solaris11-x86-ib-ss12u5/openmpi-v2.0.0-227-g917d293/opal/mca/base/mca_base_component_repository.c",
line 265: warning: statement not reached
"/shared/OMPI/openmpi-2.0-latest-solaris11-x86-ib-ss12u5/openmpi-v2.0.0-227-g917d293/opal/mca/btl/openib/btl_openib.c",
line 498: warning: statement not reached
"/shared/OMPI/openmpi-2.0-latest-solaris11-x86-ib-ss12u5/openmpi-v2.0.0-227-g917d293/opal/mca/btl/openib/connect/btl_openib_connect_udcm.c",
line 2735: warning: statement not reached
"/shared/OMPI/openmpi-2.0-latest-solaris11-x86-ib-ss12u5/openmpi-v2.0.0-227-g917d293/ompi/mca/io/romio314/romio/adio/common/ad_fstype.c",
line 306: warning: statement not reached
"/shared/OMPI/openmpi-2.0-latest-solaris11-x86-ib-ss12u5/openmpi-v2.0.0-227-g917d293/ompi/mca/io/romio314/romio/adio/common/ad_threaded_io.c",
line 31: warning: statement not reached
I will ignore the ROMIO ones, leaving 3 to diagnose.
1) opal/mca/base/mca_base_component_repository.c, line 265:
260 *framework_components = NULL;
261 #if OPAL_HAVE_DL_SUPPORT
262 return opal_hash_table_get_value_ptr
(&mca_base_component_repository, framework->framework_name,
263 strlen
(framework->framework_name), (void **) framework_components);
264 #endif
> 265 return OPAL_ERR_NOT_FOUND;
266 }
267
268 #if OPAL_HAVE_DL_SUPPORT
269 static void mca_base_component_repository_release_internal
(mca_base_component_repository_item_t *ri) {
270 int group_id;
The unreachable warning easily fixed with an '#else' clause as follows:
--- opal/mca/base/mca_base_component_repository.c~ Sat Aug 27 02:03:23
2016
+++ opal/mca/base/mca_base_component_repository.c Sat Aug 27 02:03:41
2016
@@ -261,8 +261,9 @@
#if OPAL_HAVE_DL_SUPPORT
return opal_hash_table_get_value_ptr (&mca_base_component_repository,
framework->framework_name,
strlen
(framework->framework_name), (void **) framework_components);
-#endif
+#else
return OPAL_ERR_NOT_FOUND;
+#endif
}
#if OPAL_HAVE_DL_SUPPORT
2) opal/mca/btl/openib/btl_openib.c line 498 is also due to a return right
after an #endif, and can also be fixed with an #else.
493 case IBV_LINK_LAYER_UNSPECIFIED:
494 default:
495 return MCA_BTL_OPENIB_TRANSPORT_UNKNOWN;
496 }
497 #endif
> 498 return MCA_BTL_OPENIB_TRANSPORT_IB;
499
500 case IBV_TRANSPORT_IWARP:
501 return MCA_BTL_OPENIB_TRANSPORT_IWARP;
502
503 case IBV_TRANSPORT_UNKNOWN:
3) opal/mca/btl/openib/connect/btl_openib_connect_udcm.c line 2735 looks
like debugging code (the "while(1)" on line 2734) that maybe was not
intended to be committed:
2730 IBV_QP_PORT | IBV_QP_ACCESS_FLAGS);
2731 if (ret) {
2732 BTL_ERROR(("Error modifying XRC recv QP[%x] to
IBV_QPS_INIT, errno says: %s [%d]",
2733 lcl_ep->xrc_recv_qp_num, strerror(ret), ret));
2734 while(1);
> 2735 return OPAL_ERROR;
2736 }
2737 #endif
2738
2739 memset(&attr, 0, sizeof(struct ibv_qp_attr));
2740 attr.qp_state = IBV_QPS_RTR;
-Paul
--
Paul H. Hargrove [email protected]
Computer Languages & Systems Software (CLaSS) Group
Computer Science Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900
_______________________________________________
devel mailing list
[email protected]
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel