Ted Kremenek
68d2368064
Include stdint.h instead of stdio.h.
...
llvm-svn: 52578
2008-06-21 17:20:55 +00:00
Ted Kremenek
22cf89d9cd
Test the dead-store checker using both -warn-dead-stores and -checker-simple.
...
llvm-svn: 52568
2008-06-20 23:14:52 +00:00
Ted Kremenek
34a691734e
Modified the dead stores checker to...
...
1) Check if a dead store appears as a subexpression. For such cases, we emit
a verbose diagnostic so that users aren't confused. This addresses:
<rdar://problem/5968508> checker gives misleading report for dead store in loop
2) Don't emit a dead store warning when assigning a null value to a pointer.
This is a common form of defensive programming. We may wish to make
this an option to the the checker one day.
This addresses the feature request in the following email:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-June/001978.html
llvm-svn: 52555
2008-06-20 21:45:25 +00:00
Ted Kremenek
46c82ab994
Introduce initial transfer function support for __imag__ and __real__. We don't
...
have complex RValues yet, so this logic is only fully implemented when __imag__
and __real__ are used on non-complex types.
llvm-svn: 52501
2008-06-19 17:55:38 +00:00
Ted Kremenek
f3c8650502
Move test case "uninit-msg-expr.m" from Analysis-Apple to Analysis (now works on all platforms).
...
llvm-svn: 52362
2008-06-16 21:15:29 +00:00
Ted Kremenek
2eed4d7a25
Moved test case NoReturn.m from Analysis-Apple to Analysis (now works on all platforms).
...
llvm-svn: 52359
2008-06-16 21:05:04 +00:00
Ted Kremenek
bbe6111cc3
Move NSString.m test case from Analysis-Apple to Analysis. The test case now works on all platforms.
...
llvm-svn: 52354
2008-06-16 20:37:30 +00:00
Ted Kremenek
ccafce3d4c
Update test case to use -pedantic (makes the test case more clear).
...
llvm-svn: 52349
2008-06-16 19:53:46 +00:00
Ted Kremenek
5935a17daf
Fix misspelling of "svelte".
...
llvm-svn: 52348
2008-06-16 19:51:41 +00:00
Ted Kremenek
951bc67096
Move Analysis-Apple/CFString.c to Analysis (the test case now works on all platforms).
...
llvm-svn: 52346
2008-06-16 19:35:31 +00:00
Ted Kremenek
107f13971f
Move CFDateGC.m test case from Analysis-Apple to Analysis (it now runs on all platforms).
...
llvm-svn: 52344
2008-06-16 18:46:17 +00:00
Ted Kremenek
7056bb1f21
Moved CFDate.m from test/Analysis-Apple to test/Analysis, and added the necessary declarations from Foundation.h to CFDate.m so that the test case can be exercised on all platforms.
...
llvm-svn: 52343
2008-06-16 18:34:22 +00:00
Ted Kremenek
91f035cda7
Improve dead stores diagnostics to include the variable name.
...
llvm-svn: 51395
2008-05-21 22:59:16 +00:00
Ted Kremenek
b120ff1b95
Fixed bug in the transfer function for dereferences: the loaded value from EvalLoad should bind to the UnaryOperator*, not its subexpression.
...
Added test case to exercise this fix when checking for uses of uninitialized values.
Patch by Zhongxing Xu!
llvm-svn: 51377
2008-05-21 15:48:33 +00:00
Ted Kremenek
f15cd14a3d
Emit dead store warnings for ++ and -- operators.
...
llvm-svn: 50679
2008-05-05 23:12:21 +00:00
Ted Kremenek
db04a9e967
When reporting branch conditions that evaluate to an uninitialized value,
...
highlight the most nested subexpression that appears most responsible (giving
the user better diagnostic feedback).
Updated test cases to illustrate this feature.
Implements: <rdar://problem/5880443>
llvm-svn: 50647
2008-05-05 15:56:53 +00:00
Ted Kremenek
772d9f0aae
Added test case for the static analyzer.
...
llvm-svn: 50467
2008-04-30 04:40:48 +00:00
Ted Kremenek
10bad41159
Added test case to test null dereference checking with lval::ArrayOffset.
...
llvm-svn: 50454
2008-04-29 23:25:09 +00:00
Ted Kremenek
6e06f91085
Added uninitialized-values (path-sensitive) test case as a regression test
...
for the fix in r50178 (http://llvm.org/viewvc/llvm-project?rev=50178&view=rev ).
This fix was for <rdar://problem/5881148>.
llvm-svn: 50220
2008-04-24 18:28:14 +00:00
Ted Kremenek
c79c0591d6
Added lval type (and tracking) for StringLiterals.
...
llvm-svn: 50109
2008-04-22 21:39:21 +00:00
Ted Kremenek
eccf3e5821
Added "nonlval::LValAsInteger" to represent abstract LVals casted to integers, allowing us to track lvals when they are casted back to pointers.
...
llvm-svn: 50108
2008-04-22 21:10:18 +00:00
Ted Kremenek
6fdd3b35dc
Added null dereference test involving arrays.
...
llvm-svn: 50084
2008-04-22 04:56:55 +00:00
Ted Kremenek
efa92f1dfc
Added missing expected-warning.
...
llvm-svn: 50073
2008-04-21 23:45:26 +00:00
Ted Kremenek
503924bb9c
Added null dereference test case looking for null dereferences involving MemberExpr.
...
llvm-svn: 50072
2008-04-21 23:44:17 +00:00
Ted Kremenek
15d8f4cc27
Added test case illustrating the use of '&'.
...
llvm-svn: 49735
2008-04-15 18:37:29 +00:00
Ted Kremenek
16a8a3be41
Added test case to dead stores checker.
...
llvm-svn: 49647
2008-04-14 15:56:17 +00:00
Ted Kremenek
4a78c3ae11
Refactored all logic to run the GRSimpleVals and CFRef checker into a common
...
code path in the clang driver.
Renamed options --grsimple to -checker-simple and -check-cfref to -checker-cfref.
llvm-svn: 49500
2008-04-10 22:16:52 +00:00
Ted Kremenek
018ba60f8e
Added path-sensitive null dereference test case.
...
llvm-svn: 49095
2008-04-02 16:54:39 +00:00
Ted Kremenek
f646774f32
Added path-sensitive check for return statements that return the address
...
of a stack variable. This is the path-sensitive version of a check that
is already done during semantic analysis.
llvm-svn: 48980
2008-03-31 15:02:58 +00:00
Ted Kremenek
fb475ec504
Changed merge operation for uninitialized values analysis to "intersect" (previous union).
...
The effect is that if a variable is uninitialized along a branch (but initialized along another), at merge points it is considered uninitialized. Previously we had the opposite behavior. The new behavior is more conservative, and more in line with gcc's behavior.
llvm-svn: 48689
2008-03-22 20:11:00 +00:00
Ted Kremenek
c6a8352820
Convert tabs to spaces.
...
llvm-svn: 48539
2008-03-19 07:31:52 +00:00
Anders Carlsson
801c5c7467
GCC has an extension where the left hand side of the ? : operator can be omitted. Handle this in a few more places.
...
llvm-svn: 44462
2007-11-30 19:04:31 +00:00
Bill Wendling
8da1db4f34
The checking for the delimiters of expected error/warning messages was
...
looking only for { and } instead of {{ and }}. Changed it to check for
this explicitly.
llvm-svn: 44326
2007-11-26 08:26:20 +00:00
Ted Kremenek
0d20033c6a
Added more test cases for uninitialized values checker.
...
llvm-svn: 44307
2007-11-24 23:06:58 +00:00
Ted Kremenek
2e04d73d83
Fixed bogus culling of uninitialized-values "taint" propagation during assignments.
...
We accidentally were throttling the propagation of uninitialized state across
assignments (e.g. x = y). Thanks to Anders Carlsson for spotting this problem.
Added test cases to test suite to provide regression testing for the
uninitialized values analysis.
llvm-svn: 44306
2007-11-24 20:07:36 +00:00
Ted Kremenek
33407b3338
Moved dead-stores test cast to a new test suite subdirectory: Analysis.
...
llvm-svn: 44305
2007-11-24 19:49:35 +00:00