A Rose Problem: SgNode::get_numberOfTraversalSuccessors(): Assertion 'False' Failed

问题

1
2
3
4
5
6
Internal error(!): called tree traversal mechanism for illegal object:
static: SgNode
dynamic:  SgNode
Aborting ...
my_program: Cxx_GrammarTreeTraversalSuccessorContainer.C:42: virtual
size_t SgNode::get_numberOfTraversalSuccessors(): Assertion `false' failed.

解决方法

这种错误一般是由于语法树具有环路造成的。造成环路的原因一般是因为一个astnode被多次使用,解决方法是利用deepcopy在多次使用的地方克隆。