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 通常尽量不生成未使用的标签,因此请随时将其报告为(小)错误