diff options
author | Chad Rosier <mcrosier@apple.com> | 2012-06-11 20:47:18 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2012-06-11 20:47:18 +0000 |
commit | 32503020a41687191e3b45418ebd338f4bc8ca78 (patch) | |
tree | 03c4773db02eaa6d906dbdf5b0bb380442d375e4 /clang/lib/StaticAnalyzer/Core/ExprEngine.cpp | |
parent | bddc916f2b58b56e4b7c1afc2be4e3438af0ffe6 (diff) | |
download | bcm5719-llvm-32503020a41687191e3b45418ebd338f4bc8ca78.tar.gz bcm5719-llvm-32503020a41687191e3b45418ebd338f4bc8ca78.zip |
Etch out the code path for MS-style inline assembly.
llvm-svn: 158325
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/ExprEngine.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Core/ExprEngine.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp index 6531265807c..a95f565b6c9 100644 --- a/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp +++ b/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp @@ -670,6 +670,12 @@ void ExprEngine::Visit(const Stmt *S, ExplodedNode *Pred, Bldr.addNodes(Dst); break; + case Stmt::MSAsmStmtClass: + Bldr.takeNodes(Pred); + VisitMSAsmStmt(cast<MSAsmStmt>(S), Pred, Dst); + Bldr.addNodes(Dst); + break; + case Stmt::BlockExprClass: Bldr.takeNodes(Pred); VisitBlockExpr(cast<BlockExpr>(S), Pred, Dst); @@ -1813,6 +1819,12 @@ void ExprEngine::VisitAsmStmt(const AsmStmt *A, ExplodedNode *Pred, Bldr.generateNode(A, Pred, state); } +void ExprEngine::VisitMSAsmStmt(const MSAsmStmt *A, ExplodedNode *Pred, + ExplodedNodeSet &Dst) { + StmtNodeBuilder Bldr(Pred, Dst, *currentBuilderContext); + Bldr.generateNode(A, Pred, Pred->getState()); +} + //===----------------------------------------------------------------------===// // Visualization. //===----------------------------------------------------------------------===// |