]> granicus.if.org Git - clang/commit
[analyzer] Create one state for a range switch case instead of multiple.
authorDevin Coughlin <dcoughlin@apple.com>
Tue, 22 Sep 2015 20:31:19 +0000 (20:31 +0000)
committerDevin Coughlin <dcoughlin@apple.com>
Tue, 22 Sep 2015 20:31:19 +0000 (20:31 +0000)
commit8ef8ffcccf3af28d2dba8ce1d3ace2346538a697
treea055a7c18bf3613416f5ac4586aa94a24e0f6dc2
parent838cb5dcc14a6f1e5217110e314b520ee5f1cee5
[analyzer] Create one state for a range switch case instead of multiple.

This fixes PR16833, in which the analyzer was using large amounts of memory
for switch statements with large case ranges.

rdar://problem/14685772

A patch by Aleksei Sidorin!

Differential Revision: http://reviews.llvm.org/D5102

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@248318 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
lib/Analysis/CFG.cpp
lib/StaticAnalyzer/Core/ExprEngine.cpp
lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp
lib/StaticAnalyzer/Core/SimpleConstraintManager.h
test/Analysis/switch-case.c [new file with mode: 0644]