我正在尝试从sourceforge
编译dapl-myrinet-12-0.12我得到了
/root/dapl-myrinet-12-0.12/dapl/udapl/../common/dapl_ep_modify.c:584: erreur:
suggest parentheses around operand of ‘!’ or change ‘&’ to ‘&&’ or ‘!’ to ‘~’
这是“有问题”的一行:
if (ep_param->recv_evd_handle != NULL &&
(DAPL_BAD_HANDLE (ep_param->recv_evd_handle, DAPL_MAGIC_EVD) ||
! ((DAPL_EVD *)ep_param->recv_evd_handle)->evd_flags & DAT_EVD_DTO_FLAG))
任何想法如何修复它?
答案 0 :(得分:0)
与错误建议一样,代码在条件的最后部分错过了几个括号(更正的条件在此处展开以突出显示匹配的括号):
if (
ep_param->recv_evd_handle != NULL &&
(
DAPL_BAD_HANDLE (ep_param->recv_evd_handle, DAPL_MAGIC_EVD) ||
!(
((DAPL_EVD *)ep_param->recv_evd_handle)->evd_flags & DAT_EVD_DTO_FLAG
)
)
)
您也可以使用-Wno-parentheses
开关禁用GCC(如果它是您使用的编译器)的此检查。无论如何,你应该向程序的维护者报告,以便修改他的代码。