29.07.2013, 18:43, "Yang Chen"<[email protected]>:
Hi Konstantin,
I start traveling today and won't have constant internet access until
Thursday. I will investigate it soon. Thanks!
- Yang
On 7/29/13 6:13 AM, Konstantin Tokarev wrote:
29.07.2013, 12:42, "Konstantin Tokarev"<[email protected]>:
Hi all,
A couple of times I got clang_delta running infinitely with 100% CPU load. It
would be great if there was some pre-defined or adpative time limit for it.
Attached test case for clang_delta hanging.
Attached reduced test case.
We have infinite recursion on operator<< here:
operator<<
CXXMethodDecl 0x3417b00<clang_delta_hang.cpp:8:3, col:35> operator<< 'class
basic_ostream<char, int> (_Bool)'
`-ParmVarDecl 0x3417a40<col:30, col:35> '_Bool'
gdb trace:
0x00000000006d332d in
clang::RecursiveASTVisitor<RNFStatementVisitor>::getDerived (this=0x166a470) at
/usr/local/include/clang/AST/RecursiveASTVisitor.h:143
143 Derived&getDerived() { return *static_cast<Derived*>(this); }
(gdb) bt
#0 0x00000000006d332d in
clang::RecursiveASTVisitor<RNFStatementVisitor>::getDerived (this=0x166a470) at
/usr/local/include/clang/AST/RecursiveASTVisitor.h:143
#1 0x00000000006ef68d in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromImplicitCastExpr
(this=0x166a470, S=0x1685500) at /usr/local/include/clang/AST/StmtNodes.inc:393
#2 0x00000000006d98af in
clang::RecursiveASTVisitor<RNFStatementVisitor>::TraverseImplicitCastExpr
(this=0x166a470, S=0x1685500) at
/usr/local/include/clang/AST/RecursiveASTVisitor.h:1993
#3 0x0000000000684e9e in
clang::RecursiveASTVisitor<RNFStatementVisitor>::TraverseStmt (this=0x166a470,
S=0x1685500) at /usr/local/include/clang/AST/StmtNodes.inc:393
#4 0x00000000006d991a in
clang::RecursiveASTVisitor<RNFStatementVisitor>::TraverseImplicitCastExpr
(this=0x166a470, S=0x1685518) at
/usr/local/include/clang/AST/RecursiveASTVisitor.h:1993
#5 0x0000000000684e9e in
clang::RecursiveASTVisitor<RNFStatementVisitor>::TraverseStmt (this=0x166a470,
S=0x1685518) at /usr/local/include/clang/AST/StmtNodes.inc:393
#6 0x000000000068148c in RNFStatementVisitor::VisitCallExpr (this=0x166a470,
CallE=0x1685570) at RemoveNestedFunction.cpp:142
#7 0x00000000006eff7a in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCallExpr
(this=0x166a470, S=0x1685570) at /usr/local/include/clang/AST/StmtNodes.inc:299
#8 0x00000000006f0007 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCXXOperatorCallExpr
(this=0x166a470, S=0x1685570) at /usr/local/include/clang/AST/StmtNodes.inc:315
#9 0x00000000006f9f76 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverseNode
(this=0x166a470, S=0x1685570, EnqueueChildren=@0x7ffffffeb30f: true) at
/usr/local/include/clang/AST/StmtNodes.inc:315
#10 0x00000000006d3511 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverse (this=0x166a470,
S=0x1685678) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:453
#11 0x0000000000683615 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::TraverseStmt (this=0x166a470,
S=0x1685678) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:541
#12 0x000000000068148c in RNFStatementVisitor::VisitCallExpr (this=0x166a470,
CallE=0x1685820) at RemoveNestedFunction.cpp:142
#13 0x00000000006eff7a in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCallExpr
(this=0x166a470, S=0x1685820) at /usr/local/include/clang/AST/StmtNodes.inc:299
#14 0x00000000006f0007 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCXXOperatorCallExpr
(this=0x166a470, S=0x1685820) at /usr/local/include/clang/AST/StmtNodes.inc:315
#15 0x00000000006f9f76 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverseNode
(this=0x166a470, S=0x1685820, EnqueueChildren=@0x7ffffffedf9f: true) at
/usr/local/include/clang/AST/StmtNodes.inc:315
#16 0x00000000006d3511 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverse (this=0x166a470,
S=0x1685820) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:453
#17 0x0000000000683615 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::TraverseStmt (this=0x166a470,
S=0x1685820) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:541
#18 0x000000000068148c in RNFStatementVisitor::VisitCallExpr (this=0x166a470,
CallE=0x1685928) at RemoveNestedFunction.cpp:142
#19 0x00000000006eff7a in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCallExpr
(this=0x166a470, S=0x1685928) at /usr/local/include/clang/AST/StmtNodes.inc:299
#20 0x00000000006f0007 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCXXOperatorCallExpr
(this=0x166a470, S=0x1685928) at /usr/local/include/clang/AST/StmtNodes.inc:315
#21 0x00000000006f9f76 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverseNode
(this=0x166a470, S=0x1685928, EnqueueChildren=@0x7fffffff0c2f: true) at
/usr/local/include/clang/AST/StmtNodes.inc:315
#22 0x00000000006d3511 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverse (this=0x166a470,
S=0x1685928) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:453
#23 0x0000000000683615 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::TraverseStmt (this=0x166a470,
S=0x1685928) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:541
#24 0x000000000068148c in RNFStatementVisitor::VisitCallExpr (this=0x166a470,
CallE=0x1685ad0) at RemoveNestedFunction.cpp:142
#25 0x00000000006eff7a in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCallExpr
(this=0x166a470, S=0x1685ad0) at /usr/local/include/clang/AST/StmtNodes.inc:299
#26 0x00000000006f0007 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCXXOperatorCallExpr
(this=0x166a470, S=0x1685ad0) at /usr/local/include/clang/AST/StmtNodes.inc:315
#27 0x00000000006f9f76 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverseNode
(this=0x166a470, S=0x1685ad0, EnqueueChildren=@0x7fffffff38bf: true) at
/usr/local/include/clang/AST/StmtNodes.inc:315
#28 0x00000000006d3511 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverse (this=0x166a470,
S=0x1685d90) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:453
#29 0x0000000000683615 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::TraverseStmt (this=0x166a470,
S=0x1685d90) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:541
#30 0x000000000068148c in RNFStatementVisitor::VisitCallExpr (this=0x166a470,
CallE=0x1685e98) at RemoveNestedFunction.cpp:142
#31 0x00000000006eff7a in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCallExpr
(this=0x166a470, S=0x1685e98) at /usr/local/include/clang/AST/StmtNodes.inc:299
#32 0x00000000006f0007 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCXXOperatorCallExpr
(this=0x166a470, S=0x1685e98) at /usr/local/include/clang/AST/StmtNodes.inc:315
#33 0x00000000006f9f76 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverseNode
(this=0x166a470, S=0x1685e98, EnqueueChildren=@0x7fffffff654f: true) at
/usr/local/include/clang/AST/StmtNodes.inc:315
#34 0x00000000006d3511 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverse (this=0x166a470,
S=0x16860c8) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:453
#35 0x0000000000683615 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::TraverseStmt (this=0x166a470,
S=0x16860c8) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:541
#36 0x000000000068148c in RNFStatementVisitor::VisitCallExpr (this=0x166a470,
CallE=0x1686218) at RemoveNestedFunction.cpp:142
#37 0x00000000006eff7a in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCallExpr
(this=0x166a470, S=0x1686218) at /usr/local/include/clang/AST/StmtNodes.inc:299
#38 0x00000000006f0007 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::WalkUpFromCXXOperatorCallExpr
(this=0x166a470, S=0x1686218) at /usr/local/include/clang/AST/StmtNodes.inc:315
#39 0x00000000006f9f76 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverseNode
(this=0x166a470, S=0x1686218, EnqueueChildren=@0x7fffffff91df: true) at
/usr/local/include/clang/AST/StmtNodes.inc:315
#40 0x00000000006d3511 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::dataTraverse (this=0x166a470,
S=0x1686888) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:453
#41 0x0000000000683615 in
clang::RecursiveASTVisitor<RNFStatementVisitor>::TraverseStmt (this=0x166a470,
S=0x1686888) at /usr/local/include/clang/AST/RecursiveASTVisitor.h:541
#42 0x000000000068148c in RNFStatementVisitor::VisitCallExpr (this=0x166a470,
CallE=0x16869b0) at RemoveNestedFunction.cpp:142