Ted Kremenek
e6a12a97d4
Move uninitialized variable checking back under -Wuninitialized-experimental. It is clear from user feedback that this warning is not quite ready.
...
llvm-svn: 125007
2011-02-07 17:38:38 +00:00
Ted Kremenek
436cc8ffe7
Reenable -Wuninitialized warning for captured block variables.
...
llvm-svn: 124782
2011-02-03 06:51:50 +00:00
Ted Kremenek
b3dbe28e31
Based on user feedback, swap -Wuninitialized diagnostics to have the warning refer to the bad use, and the note to the variable declaration.
...
llvm-svn: 124758
2011-02-02 23:35:53 +00:00
Ted Kremenek
ba357296e7
Enhance -Wuninitialized to better reason about || and &&, tracking dual dataflow facts and properly merging them.
...
Fixes PR 9076.
llvm-svn: 124666
2011-02-01 17:43:18 +00:00
Ted Kremenek
1be4a59a11
Teach -Wuninitialized about indirect goto. Fixes PR 9071.
...
llvm-svn: 124394
2011-01-27 18:51:39 +00:00
Ted Kremenek
93a313869f
Teach -Wuninitialized not to assert when analyzing
...
blocks that reference captured variables.
llvm-svn: 124348
2011-01-27 02:29:34 +00:00
Ted Kremenek
e543be3531
Merge -Wuninitialized-experimental into -Wuninitialized.
...
llvm-svn: 124279
2011-01-26 04:49:48 +00:00
Ted Kremenek
33ddd9692d
Tweak -Wuninitialized-experimental to not emit
...
a warning for uses of an uninitialized variable
when the use is a void cast, e.g. (void) x.
llvm-svn: 124278
2011-01-26 04:49:43 +00:00
Ted Kremenek
bcf848f70a
Teach -Wuninitialized-experimental to also warn
...
about uninitialized variables captured by blocks.
llvm-svn: 124213
2011-01-25 19:13:48 +00:00
Ted Kremenek
8f01420d9d
Teach -Wuninitialized-experimental about sizeof().
...
llvm-svn: 124076
2011-01-23 17:53:04 +00:00
Ted Kremenek
33d4b5eb66
Provide -Wuninitialized-experimental fixits
...
for floats, and also check if 'nil' is declared
when suggesting it for initializing ObjC pointers.
llvm-svn: 124004
2011-01-21 22:49:49 +00:00
Ted Kremenek
2959fdd087
Add basic fixits for -Wuninitialized-experimental
...
to suggest initializations for pointer and
ObjC pointer types.
llvm-svn: 123995
2011-01-21 19:41:46 +00:00
Ted Kremenek
39fa056342
Enhance -Wuninitialized-experimental diagnostics
...
to issue the warning at an uninitialized variable's
declaration, but to issue notes at possible
uninitialized uses (which could be multiple).
llvm-svn: 123994
2011-01-21 19:41:41 +00:00
Ted Kremenek
b82ddd6ada
Add rudimentary path-sensitivity to UnintializedValuesV2
...
analysis for short-circuited operations. For branch written like "if (x && y)",
we maintain two sets of dataflow values for the outgoing
branches. This suppresses some common false positives
for -Wuninitialized-experimental.
This change introduces some assertion failures
when running on the LLVM codebase. WIP.
llvm-svn: 123923
2011-01-20 17:37:17 +00:00
Ted Kremenek
b63931eef6
Teach UninitializedValuesV2 to implicitly reason about C++
...
references by monitoring whether an access to
a variable is solely to compute it's lvalue or
to do an lvalue-to-rvalue conversion (i.e., a load).
llvm-svn: 123777
2011-01-18 21:18:58 +00:00
Ted Kremenek
c8d55da05a
Correctly enable test/Sema/unit-variables.c,
...
thus identifying a minor logical flaw in
UninitializedValuesV2.cpp.
llvm-svn: 123734
2011-01-18 05:00:42 +00:00
Ted Kremenek
cab479f0ee
Teach UninitializedValuesV2 about "int x = x" and
...
also properly handle confluence of loops.
llvm-svn: 123733
2011-01-18 04:53:25 +00:00
Ted Kremenek
b749a6d62a
Add initial prototype for implementation of
...
-Wuninitialized based on CFG dataflow analysis. WIP.
llvm-svn: 123512
2011-01-15 02:58:47 +00:00