Fariborz Jahanian
464423dce4
Patch to generate meta-data for prtocol used
...
in @protocol expression.
llvm-svn: 68806
2009-04-10 18:47:34 +00:00
Daniel Dunbar
8b723e299c
Driver: CCC_ADD_ARGS could end up using dangling pointers.
...
llvm-svn: 68805
2009-04-10 18:32:59 +00:00
Ted Kremenek
a53274e5ba
Use getDeclName() instead of getIdentifier() (safe against null pointers)
...
llvm-svn: 68804
2009-04-10 18:25:37 +00:00
Chris Lattner
2916a482fb
add a new PP_MACRO_NAME hack so that I can test object-like macros.
...
llvm-svn: 68803
2009-04-10 18:22:18 +00:00
Ted Kremenek
ffe4ad6795
Move a few more NonLoc static functions to ValueManager.
...
llvm-svn: 68800
2009-04-10 18:11:44 +00:00
Ted Kremenek
f1f47a688d
Default initialize 'code' instance variable to NULL.
...
llvm-svn: 68799
2009-04-10 18:11:14 +00:00
Chris Lattner
2199f5b4e5
emit tokens, constify the Preprocessor passed down into PCH writer.
...
llvm-svn: 68798
2009-04-10 18:08:30 +00:00
Chris Lattner
baa52f47c1
emit function-like and object-like macros to the PCH file.
...
Note that we don't do anything useful with identifier infos yet
and don't emit the tokens that the macros are defined to.
llvm-svn: 68797
2009-04-10 18:00:12 +00:00
Douglas Gregor
df47d734c2
Add PCH sources to CMake build files
...
llvm-svn: 68794
2009-04-10 17:28:42 +00:00
Douglas Gregor
1e9bf3bad4
Various minor fixes to PCH reading and writing, with general
...
cleanup. Aside from a minor tweak to the PCH file format, no
functionality change.
llvm-svn: 68793
2009-04-10 17:25:41 +00:00
Chris Lattner
0910e3b92e
improve punctuation
...
llvm-svn: 68791
2009-04-10 17:16:57 +00:00
Chris Lattner
eeffaef7b9
Arrange for the preprocessor to be passed down into the PCH writer.
...
llvm-svn: 68790
2009-04-10 17:15:23 +00:00
Chris Lattner
5f122a644a
add PCH stuff to project
...
llvm-svn: 68789
2009-04-10 17:09:28 +00:00
Chris Lattner
feeb8f1316
use doug's new %S thing to make this work when run from different locations.
...
llvm-svn: 68788
2009-04-10 16:51:32 +00:00
Ted Kremenek
7318290ab9
Fix typo.
...
llvm-svn: 68782
2009-04-10 14:30:24 +00:00
Ted Kremenek
cda32a1e0c
Update analyzer build.
...
llvm-svn: 68781
2009-04-10 14:29:25 +00:00
Zhongxing Xu
1aced0c9d2
Add prototype for CodeTextRegion.
...
A CodeTextRegion wraps two kinds of data: FunctionDecl* or SymbolRef.
The latter comes from the symbolic function pointer that are generated from
function calls or input data.
llvm-svn: 68777
2009-04-10 08:45:10 +00:00
Zhongxing Xu
a720c8b1c9
update analyzer doc.
...
llvm-svn: 68773
2009-04-10 06:52:49 +00:00
Zhongxing Xu
dadf250598
Finally nuke loc::SymbolVal.
...
llvm-svn: 68771
2009-04-10 06:06:13 +00:00
Chris Lattner
bb72f77416
typos
...
llvm-svn: 68770
2009-04-10 05:54:56 +00:00
Anders Carlsson
b36338aa00
Use correct alignment and size for references in records as well.
...
llvm-svn: 68769
2009-04-10 05:31:15 +00:00
Ted Kremenek
86ee059a3a
Wording changes.
...
llvm-svn: 68766
2009-04-10 05:04:22 +00:00
Ted Kremenek
a9deb97190
Add blurb about attribute "analyzer_noreturn"
...
llvm-svn: 68765
2009-04-10 05:03:33 +00:00
Anders Carlsson
6ef4ea499f
Rename variables to avoid conflict.
...
llvm-svn: 68764
2009-04-10 04:59:59 +00:00
Anders Carlsson
43168129d0
Add Expr::EvaluateAsLValue which will (believe it or not) try to evaluate an Expr as an LValue.
...
llvm-svn: 68763
2009-04-10 04:54:13 +00:00
Anders Carlsson
0e6d2b3a70
Fix thinko noticed by Chris.
...
llvm-svn: 68762
2009-04-10 04:52:36 +00:00
Anders Carlsson
9b5038ed64
Use the same alignment for reference declarations as for pointer declarations.
...
llvm-svn: 68761
2009-04-10 04:47:03 +00:00
Chris Lattner
7671c45108
fix indentation
...
llvm-svn: 68760
2009-04-10 04:42:25 +00:00
Ted Kremenek
b3b2395520
Split failing test case from misc-ps.m to misc-ps-ranges.m (which tests
...
functionality specific to RangeConstraintManager).
llvm-svn: 68759
2009-04-10 04:02:38 +00:00
Douglas Gregor
a7f71a91c5
PCH serialization/deserialization of the source manager. With this
...
improvement, source locations read from the PCH file will properly
resolve to the source files that were used to build the PCH file
itself.
Once we have the preprocessor state stored in the PCH file, source
locations that refer to macro instantiations that occur in the PCH
file should have the appropriate instantiation information.
llvm-svn: 68758
2009-04-10 03:52:48 +00:00
Ted Kremenek
5054663daa
Fix: <rdar://problem/6776949> Branch condition evaluates to an uninitialized value (argc is guaranteed to be >= 1)
...
The analyzer now adds the precondition that the first argument of 'main' is > 0.
llvm-svn: 68757
2009-04-10 00:59:50 +00:00
Chris Lattner
6bc4aaa2eb
Make messages consistent.
...
llvm-svn: 68756
2009-04-10 00:37:08 +00:00
Chris Lattner
5286e774ee
reject codegen of __thread variables as unimplemented, rdar://6775265
...
llvm-svn: 68755
2009-04-10 00:35:59 +00:00
Ted Kremenek
40f4ee74fd
Implement attribute "analyzer_noreturn" (<rdar://problem/6777003>). This allows
...
clients of the analyzer to designate custom assertion routines as "noreturn"
functions from the analyzer's perspective but not the compiler's.
llvm-svn: 68746
2009-04-10 00:01:14 +00:00
Douglas Gregor
ef84c4b434
Implementation of pre-compiled headers (PCH) based on lazy
...
de-serialization of abstract syntax trees.
PCH support serializes the contents of the abstract syntax tree (AST)
to a bitstream. When the PCH file is read, declarations are serialized
as-needed. For example, a declaration of a variable "x" will be
deserialized only when its VarDecl can be found by a client, e.g.,
based on name lookup for "x" or traversing the entire contents of the
owner of "x".
This commit provides the framework for serialization and (lazy)
deserialization, along with support for variable and typedef
declarations (along with several kinds of types). More
declarations/types, along with important auxiliary structures (source
manager, preprocessor, etc.), will follow.
llvm-svn: 68732
2009-04-09 22:27:44 +00:00
Ted Kremenek
f2489ea043
- Move ownership of MemRegionManager into ValueManager.
...
- Pull SVal::GetConjuredSymbol() and friends into ValueManager. This greatly
simplifies the calling interface to clients.
llvm-svn: 68731
2009-04-09 22:22:44 +00:00
Anders Carlsson
39b2e130f0
Add @encode support for complex types.
...
llvm-svn: 68729
2009-04-09 21:55:45 +00:00
Douglas Gregor
bcced4ec31
Propagate the ASTContext to various AST traversal and lookup functions.
...
No functionality change (really).
llvm-svn: 68726
2009-04-09 21:40:53 +00:00
Eli Friedman
32e6e8ed3b
Add some FIXMEs for missing checks.
...
llvm-svn: 68725
2009-04-09 21:26:42 +00:00
Chris Lattner
c86ffc3583
document the x86 address space extension for GS.
...
llvm-svn: 68724
2009-04-09 19:58:15 +00:00
Ted Kremenek
11e13fae69
Fix grammar. Bold face feature points.
...
llvm-svn: 68720
2009-04-09 18:22:40 +00:00
Ted Kremenek
4adfee4ff7
More cleanup.
...
llvm-svn: 68719
2009-04-09 18:20:08 +00:00
Ted Kremenek
8918025272
More cleanups.
...
llvm-svn: 68718
2009-04-09 18:17:39 +00:00
Ted Kremenek
df0d9070b8
Add link from internals manual to PTH documentation.
...
llvm-svn: 68717
2009-04-09 18:08:18 +00:00
Ted Kremenek
6b27a811c6
Minor cleanups. Added a blurb about the advantages of fast PTH file generation.
...
llvm-svn: 68716
2009-04-09 18:03:21 +00:00
Douglas Gregor
9615ec20a2
Simple DeclContext's internal representation by always storing a
...
StoredDeclsMap, instead of using the it's-an-array-or-its-a-map
trick. I'll verify that performance isn't impacted later; for now, I
need the common representation.
llvm-svn: 68715
2009-04-09 17:29:08 +00:00
Ted Kremenek
f8cb51c20e
Remove SVal::MakeZero and replace it with ValueManager::makeZeroVal.
...
llvm-svn: 68711
2009-04-09 16:46:55 +00:00
Daniel Dunbar
b041085c17
Add more builtin definitions, including strcmp.
...
- PR3964.
llvm-svn: 68710
2009-04-09 16:42:50 +00:00
Ted Kremenek
aa4cfc2604
analyzer: Introduce a new class, ValueManager, that serves as an aggregate
...
"manager of symbolic values", wrapping BasicValueFactory, SymbolManager, and
MemRegionManager. While these individual managers nicely separate functionality
in the analyzer, constructing symbolic values can sometimes be cumbersome
because it requires using multiple managers at once. The goal of this class is
to create some factory methods to create SVals that require the use of these
different managers, thus (hopefully) simplifying the analyzer API for clients.
llvm-svn: 68709
2009-04-09 16:13:17 +00:00
Ted Kremenek
8cdc351ed3
Update analyzer build.
...
llvm-svn: 68707
2009-04-09 14:06:37 +00:00