Chris Lattner
7928125470
update documentation
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48074 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 02:27:26 +00:00
Chris Lattner
6cfe7594a4
rename some MacroExpander-related ivars to TokenLexer.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48073 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 02:26:03 +00:00
Chris Lattner
5d75de0f82
Rename MacroExpander.cpp/h -> TokenLexer.cpp/h
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48072 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 02:22:57 +00:00
Chris Lattner
1543e9c692
rename the MacroExpander class to TokenLexer. It handles both
...
token streams and macro lexing, so a more generic name is useful.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48071 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 02:18:51 +00:00
Chris Lattner
8d89643803
rename MacroTokens -> Tokens. When this is a token stream, there is no macro
...
involved.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48070 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 02:07:49 +00:00
Nate Begeman
d28329222a
fix clang xcode build
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48069 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 01:55:39 +00:00
Chris Lattner
141e71fec6
split preprocesor directive handling out of Preprocessor.cpp into Directives.cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48068 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 01:54:53 +00:00
Chris Lattner
177b1c72a0
secondary targets are gone, simplify this.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48067 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 01:36:43 +00:00
Chris Lattner
6fd9fa1555
simplify triple processing code now that there can be only one arch specified.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48066 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 01:35:13 +00:00
Chris Lattner
0ec8242580
be more quiet when building headers.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48065 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 01:29:23 +00:00
Chris Lattner
9c4bea1fa7
add some comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48053 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-08 09:00:55 +00:00
Chris Lattner
cd4fc42896
make float format handling more regular.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48052 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-08 08:59:43 +00:00
Chris Lattner
9e9b6dc3fd
simplify all the type info accessors in TargeTInfo to return scalars,
...
which is simpler to use and provide.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48051 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-08 08:52:55 +00:00
Chris Lattner
f72a44330b
Fix a fixme by allowing pointers in different address spaces to have
...
different widths. Start simplifying TargetInfo accessor methods.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48050 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-08 08:34:58 +00:00
Chris Lattner
0eaed12e63
eliminate the TargetInfoImpl stuff, simplifying the target implementations.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48049 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-08 08:24:01 +00:00
Chris Lattner
3901611839
eliminate ComputeWCharInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48048 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-08 08:07:34 +00:00
Ted Kremenek
dfbc9579d7
Increased worklist limit for GRSimpleVals.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48037 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-07 22:59:32 +00:00
Ted Kremenek
ffe0f43806
Added --trim-path-graph to the driver to trim paths from the ExplodedGraph
...
that are not related to error nodes.
Fixed bug where we did not detect some NULL dereferences.
Added "ExplodedGraph::Trim" to trim all nodes that cannot transitively reach
a set of provided nodes.
Fixed subtle bug in ExplodedNodeImpl where we could create predecessor
iterators that included the mangled "sink" bit. The better fix is to integrate
this bit into the void* for the wrapped State, not the NodeGroups representing
a node's predecessors and successors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48036 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-07 22:58:01 +00:00
Ted Kremenek
e97ca065c9
Improved graph visualization of ExplodedGraphs to include source line and column
...
information.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48031 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-07 20:57:30 +00:00
Ted Kremenek
240f1f00dd
Renamed ValueManager to BasicValueFactory.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48025 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-07 20:13:31 +00:00
Nate Begeman
b6789ca9ca
Add new test
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48018 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-07 20:04:49 +00:00
Nate Begeman
440b456709
Add fastcall/stdcall attribute support
...
Generate CallingConv::Fast when fastcall attribute is present
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48017 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-07 20:04:22 +00:00
Ted Kremenek
4d839b4949
Refined divide-by-zero checking to distinguish between must and may
...
divide-by-zero errors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48013 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-07 19:04:53 +00:00
Ted Kremenek
aa8f976111
Patch by Nuno Lopes:
...
Added more comments for code processing attribute "format".
Added more checks for corner cases, test cases, and warnings.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48011 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-07 18:43:49 +00:00
Gabor Greif
843e934ba8
fix typos
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47995 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-06 10:40:09 +00:00
Ted Kremenek
5617fae541
Fixed mismatched deallocation in GRBlockCounter::Factory::~Factory.
...
Reported by Zhongxing Xu!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47991 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-06 08:09:22 +00:00
Chris Lattner
2a625bcfa2
remove two obsolete tests, not sure why my previous commit didn't commit the removal.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47986 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-06 05:47:17 +00:00
Ted Kremenek
2fff37ecce
Added boilerplate to execute the CF reference count checker (which isn't yet implemented).
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47982 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-06 00:08:09 +00:00
Ted Kremenek
cb0ab296dd
Added "CheckerState" field to ValueState.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47979 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 23:32:23 +00:00
Ted Kremenek
55aea31ee3
Added transfer function support for __builtin_expect.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47971 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 22:59:42 +00:00
Ted Kremenek
5dc7f8b2d6
Small bug fix when handling CallExprs that generate sink nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47970 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 22:49:16 +00:00
Steve Naroff
f34729ae75
Update vcproj files.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47967 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 22:16:33 +00:00
Ted Kremenek
4bf38da038
Fixed bug that could case unwanted bifurcation of states when evaluating calls.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47964 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 21:15:02 +00:00
Ted Kremenek
1aa9a58822
Fixed bogus assumption mistakenly introduced in r47955.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47958 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 19:26:46 +00:00
Ted Kremenek
596f0a1e54
Fixed a horribly insidious bit-masking bug in the implementation of
...
ExplodedNode that would occasionally result in heap corruption.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47956 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 19:08:55 +00:00
Ted Kremenek
8ecfc85b9b
Minor cleanups (mainly indentation).
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47955 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 19:08:15 +00:00
Chris Lattner
98be4943e8
remove the source location arguments to various target query methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47954 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 18:54:05 +00:00
Chris Lattner
631bf6c325
add analysis source files to project.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47953 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 18:22:36 +00:00
Chris Lattner
48b32440f7
Add the various pathsensitive headers to the project.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47952 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 18:20:02 +00:00
Chris Lattner
1b653432f0
ProgramEdge.h doesn't exist anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47951 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 18:18:31 +00:00
Ted Kremenek
ea45bb2d3b
Reverted patch 47926 for ProgramPoint.h because it is currently buggy. May add back (fixed) later.
...
Updated CFGStmtVisitor to be in accord with rr47913: CallExprs are no longer (automatically) block-level expressions in the CFG.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47935 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 05:05:04 +00:00
Chris Lattner
42e6737f2e
Remove the first layer of support for "portability" warnings. This is
...
theoretically useful, but not useful in practice. It adds a bunch of
complexity, and not much value. It's best to nuke it. One big advantage
is that it means the target interfaces will soon lose their SLoc arguments
and target queries can never emit diagnostics anymore (yay). Removing this
also simplifies some of the core preprocessor which should make it slightly
faster.
Ted, I didn't simplify TripleProcessor, which can now have at most one
triple, and can probably just be removed. Please poke at it when you have
time.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47930 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 01:18:20 +00:00
Ted Kremenek
424f671554
Added support for ProgramPoints to represent ExplodedNodes in another
...
ExplodedGraph. This allows us to build "layered" ExplodedGraphs where one
simulation is layered on another.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47926 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 00:59:43 +00:00
Chris Lattner
544f043d76
move this into the right file.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47925 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 00:53:34 +00:00
Ted Kremenek
330dddd194
Plug-in transfer function "EvalCall" now takes as an argument the current
...
GRStmtNodeBuilder and is now responsible for adding its own nodes to the graph.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47923 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 00:33:14 +00:00
Ted Kremenek
e5f4dcb6bd
Cleaned up typedefs involving StateTy so that we always use "StateTy*" instead of StateTy.
...
This is conceptually much cleaner, as it shows that the state is always a pointer.
It also makes it easier to marshall these values around across the internal APIs
of the path-sensitive engine.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47921 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 00:11:33 +00:00
Ted Kremenek
f116bd654b
Make GRStmtNodeBuilder only depend on StateTy, and not the type definition
...
of the entire checker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47920 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-04 23:50:00 +00:00
Ted Kremenek
5c684c4be0
Moved implementation of GRExprEngine::Nodify into GRStmtNodeBuilder. This will
...
allow us to pass the builder to plug-in transfer functions and allow those
functions to create intermediate nodes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47919 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-04 23:39:43 +00:00
Ted Kremenek
f6f5ef4aaa
Moved GRExprEngine::NodeSet out of GRExprEngine and made it a standalone class: ExplodedNodeSet.
...
Made GRExprEngine::NodeSet a typedef of ExplodedNodeSet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47914 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-04 23:13:06 +00:00
Ted Kremenek
243ee47dab
CallExprs are now no longer block-level expressions in the CFG by construction.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47913 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-04 22:29:40 +00:00