Open jiacai-wang opened 1 year ago
I'm trying to test the performance between if-else and switch-case. So I wrote a demo with 10000 switch-case and another with 10000 if-else-if. clang++ compiles way faster than g++ for switch-case, but it crashes for 10000 if-else-if program. g++ can compile both fine with very slow speed.
clang version 10.0.0-4ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/9
Candidate multilib: .;@m64
Selected multilib: .;@m64
"/usr/lib/llvm-10/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name case.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -fno-rounding-math -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -dwarf-column-info -fno-split-dwarf-inlining -debugger-tuning=gdb -v -resource-dir /usr/lib/llvm-10/lib/clang/10.0.0 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward -internal-isystem /usr/local/include -internal-isystem /usr/lib/llvm-10/lib/clang/10.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/wjc/code/cpp_playground/misc -ferror-limit 19 -fmessage-length 0 -fgnuc-version=4.2.1 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -faddrsig -o /tmp/case-72a63f.o -x c++ case.cpp
clang -cc1 version 10.0.0 based upon LLVM 10.0.0 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/include"
ignoring duplicate directory "/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9"
#include "..." search starts here:
#include <...> search starts here:
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward
/usr/local/include
/usr/lib/llvm-10/lib/clang/10.0.0/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
In file included from case.cpp:22:
./if.inc:26663:9: warning: stack nearly exhausted; compilation time may suffer, and crashes due to stack overflow are likely [-Wstack-exhausted]
printf("%d\n", 8888);
^
Stack dump:
0. Program arguments: /usr/lib/llvm-10/bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name case.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -fno-rounding-math -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -dwarf-column-info -fno-split-dwarf-inlining -debugger-tuning=gdb -v -resource-dir /usr/lib/llvm-10/lib/clang/10.0.0 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward -internal-isystem /usr/local/include -internal-isystem /usr/lib/llvm-10/lib/clang/10.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/wjc/code/cpp_playground/misc -ferror-limit 19 -fmessage-length 0 -fgnuc-version=4.2.1 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -faddrsig -o /tmp/case-72a63f.o -x c++ case.cpp
1. ./if.inc:27440:28: current parser token ')'
2. case.cpp:12:12: parsing function body 'main'
3. case.cpp:12:12: in compound statement ('{}')
4. ./if.inc:27439:26: in compound statement ('{}')
#0 0x00007f76250574ff llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/lib/x86_64-linux-gnu/libLLVM-10.so.1+0x9814ff)
#1 0x00007f76250557b0 llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-10.so.1+0x97f7b0)
#2 0x00007f7625057ac5 (/lib/x86_64-linux-gnu/libLLVM-10.so.1+0x981ac5)
#3 0x00007f762b826420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x00007f7624fc9a89 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&) (/lib/x86_64-linux-gnu/libLLVM-10.so.1+0x8f3a89)
#5 0x00007f7629681c88 clang::ASTContext::getPointerType(clang::QualType) const (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x917c88)
#6 0x00007f762968698f clang::ASTContext::getArrayDecayedType(clang::QualType) const (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x91c98f)
#7 0x00007f7629e3ba81 clang::Sema::PerformImplicitConversion(clang::Expr*, clang::QualType, clang::StandardConversionSequence const&, clang::Sema::AssignmentAction, clang::Sema::CheckedConversionKind) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x10d1a81)
#8 0x00007f7629e3b076 clang::Sema::PerformImplicitConversion(clang::Expr*, clang::QualType, clang::ImplicitConversionSequence const&, clang::Sema::AssignmentAction, clang::Sema::CheckedConversionKind) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x10d1076)
#9 0x00007f7629eae674 clang::InitializationSequence::Perform(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>, clang::QualType*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1144674)
#10 0x00007f7629eb9425 clang::Sema::PerformCopyInitialization(clang::InitializedEntity const&, clang::SourceLocation, clang::ActionResult<clang::Expr*, true>, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x114f425)
#11 0x00007f7629dc073d clang::Sema::GatherArgumentsForCall(clang::SourceLocation, clang::FunctionDecl*, clang::FunctionProtoType const*, unsigned int, llvm::ArrayRef<clang::Expr*>, llvm::SmallVectorImpl<clang::Expr*>&, clang::Sema::VariadicCallType, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x105673d)
#12 0x00007f7629dbe9f2 clang::Sema::ConvertArgumentsForCall(clang::CallExpr*, clang::Expr*, clang::FunctionDecl*, clang::FunctionProtoType const*, llvm::ArrayRef<clang::Expr*>, clang::SourceLocation, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x10549f2)
#13 0x00007f7629dc201b clang::Sema::BuildResolvedCallExpr(clang::Expr*, clang::NamedDecl*, clang::SourceLocation, llvm::ArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, clang::CallExpr::ADLCallKind) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x105801b)
#14 0x00007f7629fabaea (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1241aea)
#15 0x00007f7629fab18c clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x124118c)
#16 0x00007f7629dabe79 clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1041e79)
#17 0x00007f7629dc1388 clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1057388)
#18 0x00007f76295fd1ad clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8931ad)
#19 0x00007f76295ff4da clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8954da)
#20 0x00007f76295fae89 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x890e89)
#21 0x00007f76295fadc9 clang::Parser::ParseExpression(clang::Parser::TypeCastState) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x890dc9)
#22 0x00007f7629649a1c clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8dfa1c)
#23 0x00007f76296484f7 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de4f7)
#24 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#25 0x00007f762964f760 clang::Parser::ParseCompoundStatementBody(bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e5760)
#26 0x00007f76296485d5 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de5d5)
#27 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#28 0x00007f762964b2ea clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e12ea)
#29 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#30 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#31 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#32 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#33 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#34 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#35 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#36 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#37 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#38 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#39 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#40 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#41 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#42 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#43 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#44 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#45 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#46 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#47 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#48 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#49 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#50 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#51 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#52 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#53 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#54 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#55 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#56 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#57 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#58 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#59 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#60 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#61 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#62 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#63 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#64 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#65 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#66 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#67 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#68 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#69 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#70 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#71 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#72 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#73 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#74 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#75 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#76 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#77 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#78 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#79 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#80 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#81 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#82 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#83 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#84 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#85 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#86 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#87 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#88 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#89 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#90 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#91 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#92 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#93 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#94 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#95 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#96 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#97 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#98 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#99 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#100 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#101 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#102 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#103 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#104 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#105 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#106 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#107 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#108 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#109 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#110 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#111 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#112 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#113 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#114 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#115 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#116 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#117 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#118 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#119 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#120 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#121 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#122 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#123 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#124 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#125 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#126 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#127 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#128 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#129 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#130 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#131 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#132 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#133 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#134 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#135 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#136 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#137 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#138 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#139 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#140 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#141 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#142 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#143 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#144 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#145 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#146 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#147 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#148 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#149 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#150 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#151 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#152 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#153 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#154 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#155 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#156 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#157 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#158 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#159 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#160 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#161 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#162 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#163 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#164 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#165 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#166 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#167 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#168 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#169 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#170 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#171 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#172 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#173 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#174 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#175 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#176 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#177 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#178 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#179 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#180 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#181 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#182 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#183 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#184 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#185 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#186 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#187 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#188 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#189 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#190 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#191 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#192 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#193 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#194 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#195 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#196 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#197 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#198 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#199 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#200 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#201 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#202 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#203 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#204 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#205 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#206 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#207 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#208 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#209 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#210 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#211 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#212 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#213 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#214 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#215 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#216 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#217 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#218 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#219 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#220 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#221 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#222 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#223 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#224 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#225 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#226 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#227 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#228 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#229 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#230 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#231 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#232 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#233 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#234 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#235 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#236 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#237 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#238 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#239 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#240 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#241 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#242 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#243 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#244 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#245 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#246 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#247 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#248 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#249 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#250 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#251 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#252 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
#253 0x00007f762964b59e clang::Parser::ParseIfStatement(clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8e159e)
#254 0x00007f762964875a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de75a)
#255 0x00007f762964802b clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x8de02b)
clang: error: unable to execute command: Segmentation fault
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 10.0.0-4ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg: PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/case-826cb4.cpp
clang: note: diagnostic msg: /tmp/case-826cb4.sh
clang: note: diagnostic msg:
********************
@llvm/issue-subscribers-clang-frontend
Author: jiacai_wang (jiacai-wang)
clang-10 is very old at this point. Can you please provide a minimal reproducer via godbolt using clang-17 and clang trunk with assertions: https://godbolt.org/
clang-10 is very old at this point. Can you please provide a minimal reproducer via godbolt using clang-17 and clang trunk with assertions: https://godbolt.org/
clang17 also crash https://godbolt.org/z/ooPe1K3s3
I can't get a stack trace on godbolt but locally w/ a debugger it looks like it is running out of stack space just churning through the else if statements.
CC @AaronBallman
I can't get a stack trace on godbolt but locally w/ a debugger it looks like it is running out of stack space just churning through the else if statements.
CC @AaronBallman
Yup -- recursive descent parsing running out of stack space (we issue a warning about it before we get to the point of crashing). The way we usually handle that is to try to refactor to get tail call elimination where possible, but I don't think that's viable in this case. Reducing stack size will help increase the depth we can reach, but a true fix for this may be a significant amount of effort.
error message
./if.inc:26663:9: warning: stack nearly exhausted; compilation time may suffer, and crashes due to stack overflow are likely [-Wstack-exhausted] printf("%d\n", 8888); clang: error: unable to execute command: Segmentation fault clang: error: clang frontend command failed due to signal (use -v to see invocation) clang version 10.0.0-4ubuntu1
how to reproduce:
multi-if-else.cpp
a 'gen.sh' script to generate if.inc
./gen.sh > if.inc; clang++ multi-if-else.cpp
and it crashes.