当我尝试使用 Vivado HLS 进行 sythnise 时,同一行出现以下错误:
严重警告:[SYNCHK 200-43 ] pcd_triangulation/pcd_triangulation.cpp:156:使用或分配非静态指针“current.0.i.reg2mem”(此指针可能引用不同的内存位置)。
严重警告:[SYNCHK 200-11] pcd_triangulation/pcd_triangulation.cpp:156:常量“开始”具有不可综合的类型“lass.triangle.2.28.31 = type { [3 x �lass.triangle.2.28.3 ... '(可能的原因:指向指针或全局指针的指针)。
严重警告:[SYNCHK 200-11] pcd_triangulation/pcd_triangulation.cpp:156:常量“开始”具有不可合成的类型“^lass.triangle.2.28.31 = type { [3 x �lass.triangle.2.28.3.. .' (可能的原因:结构变量无法分解,因为(1)不支持的类型转换;(2)内存复制操作;(3)结构中使用的函数指针;(4)不支持的指针比较)。
严重警告:[SYNCHK 200-42] pcd_triangulation/pcd_triangulation.cpp:156:不支持指针比较。
代码是 C++。所以这是给出上述警告的代码:
if(start->child[0]==NULL && start->child[1]==NULL && start->child[2]==NULL)
start
是指向类 ( ) 的全局指针,triangle *start
并且child[i]
是指向类 (member)( ) 中的同一类的数组triangle *child[3]
。
class triangle {
public:
triangle *child[3];
...
}
triangle *start;
inline triangle *mylocate(int p) {
if (start->child[0] == NULL && start->child[1] == NULL &&
start->child[2] == NULL) {
return start;
...
}
}
谁能帮我解决这些问题?