AbbasSabra created this revision. Herald added subscribers: steakhal, ASDenysPetrov, martong, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, szepet, baloghadamsoftware, xazax.hun. AbbasSabra requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D102280 Files: clang/lib/StaticAnalyzer/Core/CoreEngine.cpp clang/test/Analysis/misc-ms-leave.cpp Index: clang/test/Analysis/misc-ms-leave.cpp =================================================================== --- /dev/null +++ clang/test/Analysis/misc-ms-leave.cpp @@ -0,0 +1,17 @@ +// RUN: %clang_analyze_cc1 -analyzer-checker=core -triple x86_64-pc-windows-msvc19.11.0 -fms-extensions -verify %s + +void test() { + int *p = 0; + int x = *p; // expected-warning {{Dereference of null pointer (loaded from variable 'p')}} +} + +int filter(); + +void try_except_leave() { + __try { + __leave; + } __except (filter()) { + } + int *p = 0; + int x = *p; // expected-warning {{Dereference of null pointer (loaded from variable 'p')}} +} Index: clang/lib/StaticAnalyzer/Core/CoreEngine.cpp =================================================================== --- clang/lib/StaticAnalyzer/Core/CoreEngine.cpp +++ clang/lib/StaticAnalyzer/Core/CoreEngine.cpp @@ -349,6 +349,7 @@ HandleBranch(cast<ForStmt>(Term)->getCond(), Term, B, Pred); return; + case Stmt::SEHLeaveStmtClass: case Stmt::ContinueStmtClass: case Stmt::BreakStmtClass: case Stmt::GotoStmtClass:
Index: clang/test/Analysis/misc-ms-leave.cpp =================================================================== --- /dev/null +++ clang/test/Analysis/misc-ms-leave.cpp @@ -0,0 +1,17 @@ +// RUN: %clang_analyze_cc1 -analyzer-checker=core -triple x86_64-pc-windows-msvc19.11.0 -fms-extensions -verify %s + +void test() { + int *p = 0; + int x = *p; // expected-warning {{Dereference of null pointer (loaded from variable 'p')}} +} + +int filter(); + +void try_except_leave() { + __try { + __leave; + } __except (filter()) { + } + int *p = 0; + int x = *p; // expected-warning {{Dereference of null pointer (loaded from variable 'p')}} +} Index: clang/lib/StaticAnalyzer/Core/CoreEngine.cpp =================================================================== --- clang/lib/StaticAnalyzer/Core/CoreEngine.cpp +++ clang/lib/StaticAnalyzer/Core/CoreEngine.cpp @@ -349,6 +349,7 @@ HandleBranch(cast<ForStmt>(Term)->getCond(), Term, B, Pred); return; + case Stmt::SEHLeaveStmtClass: case Stmt::ContinueStmtClass: case Stmt::BreakStmtClass: case Stmt::GotoStmtClass:
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits