Cython 生成的 'bad:' 标签是什么?
What is this 'bad:' label generated by Cython?
在对我的 Cython 源代码文件进行 cython 化处理时,我可以看到关于 Cython 生成的名为 'bad:' 的标签的十几个警告,例如:
read_input.cpp:30037:3: warning: label ‘bad’ defined but not used [-Wunused-label]
C++生成的函数是这样的:
static PyObject* __pyx_convert__to_py_struct__VehicleCaps(struct VehicleCaps s) {
PyObject* res;
PyObject* member;
res = __Pyx_PyDict_NewPresized(0); if (unlikely(!res)) return NULL;
return res;
bad:
Py_XDECREF(member);
Py_DECREF(res);
return NULL;
}
'bad:' 标签在那里,我不明白为什么 Cython 会生成这个未使用的标签并显示警告。
我真的修复了这些警告吗?或者让它们保持原状是安全的?
它用于 goto bad
如果函数出现故障,但看起来不会有任何故障,因此未被使用。
这不是问题,您可以忽略它。但 Cython 通常尽量不生成未使用的标签,因此请随时将其报告为(小)错误
在对我的 Cython 源代码文件进行 cython 化处理时,我可以看到关于 Cython 生成的名为 'bad:' 的标签的十几个警告,例如:
read_input.cpp:30037:3: warning: label ‘bad’ defined but not used [-Wunused-label]
C++生成的函数是这样的:
static PyObject* __pyx_convert__to_py_struct__VehicleCaps(struct VehicleCaps s) {
PyObject* res;
PyObject* member;
res = __Pyx_PyDict_NewPresized(0); if (unlikely(!res)) return NULL;
return res;
bad:
Py_XDECREF(member);
Py_DECREF(res);
return NULL;
}
'bad:' 标签在那里,我不明白为什么 Cython 会生成这个未使用的标签并显示警告。
我真的修复了这些警告吗?或者让它们保持原状是安全的?
它用于 goto bad
如果函数出现故障,但看起来不会有任何故障,因此未被使用。
这不是问题,您可以忽略它。但 Cython 通常尽量不生成未使用的标签,因此请随时将其报告为(小)错误