Commit Graph

11698 Commits

Author SHA1 Message Date
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