Chris Lattner
f3e58e2ebc
This patch continues parser-level implementation of designators:
...
1. It introduces new parser level abstractions for designators
that are used to communicate between parser and sema.
2. This fixes a FIXME where "identifier ':'" was considered to be
a designator even if it wasn't the first in a designator list.
3. In the "identifier ':'" case, it actually builds the designator
representation.
llvm-svn: 58205
2008-10-26 22:36:07 +00:00
Chris Lattner
0c02460038
minor cleanups
...
llvm-svn: 58203
2008-10-26 21:46:13 +00:00
Argyrios Kyrtzidis
22a3735398
Don't give a default argument to ASTContext::getFunctionType for the TypeQuals parameter, it causes subtle bugs where TypeQuals, while necessary, are omitted from the call.
...
-Remove the default argument.
-Update all call sites of ASTContext::getFunctionType.
llvm-svn: 58187
2008-10-26 16:43:14 +00:00
Zhongxing Xu
60de6c6c63
Remove loc::StringLiteralVal. Now we allocate regions for string literals in the Store.
...
llvm-svn: 58182
2008-10-26 02:27:21 +00:00
Zhongxing Xu
bf47dc85fe
Simplify ArrayToPointer conversion. Actually the only thing we need to do is to get the first element region. It is not necessary to care about the kind of the base array region.
...
llvm-svn: 58181
2008-10-26 02:23:57 +00:00
Oscar Fuentes
07d9f9a6ec
CMake: Builds and installs clang binary and libs (no docs yet). It
...
must be under the `tools' subdirectory of the LLVM *source* tree.
llvm-svn: 58180
2008-10-26 00:56:18 +00:00
Ted Kremenek
e69a1fa342
Do not crash when performing VisitLValue on union types.
...
This fixes PR 2948.
llvm-svn: 58148
2008-10-25 20:09:21 +00:00
Zhongxing Xu
195839dd53
Add a note file for SCA module. Is it the right place?
...
llvm-svn: 58140
2008-10-25 14:56:36 +00:00
Zhongxing Xu
0d2706f6b8
Add code for get the lvalue for string literals. Now we return a StringRegion
...
for StringLiteral lvalue evaluation, instead of directly returning a
loc::StringLiteralVal by the Environment.
llvm-svn: 58138
2008-10-25 14:18:57 +00:00
Zhongxing Xu
d1aac353e5
Add StringRegion to MemRegions.
...
llvm-svn: 58137
2008-10-25 14:13:41 +00:00
Zhongxing Xu
ad20b671fc
Now we can handle arrays.
...
llvm-svn: 58135
2008-10-25 10:26:46 +00:00
Argyrios Kyrtzidis
962c20e6f3
Add a quote from the standard about the type of 'this'.
...
llvm-svn: 58124
2008-10-24 22:28:18 +00:00
Argyrios Kyrtzidis
22c40fa285
-Add support for cv-qualifiers after function declarators.
...
-Add withConst/withVolatile/withRestrict methods to QualType class, that return the QualType plus the respective qualifier.
llvm-svn: 58120
2008-10-24 21:46:40 +00:00
Ted Kremenek
920406b5ca
Use "followsFundamentalRule" to determine if an instance method allocates memory.
...
llvm-svn: 58114
2008-10-24 21:22:44 +00:00
Ted Kremenek
01acb6284e
followsFundamentalRule() returns true if "alloc" or "new" appear at the beginning of the string, not anywhere within it.
...
llvm-svn: 58112
2008-10-24 21:18:08 +00:00
Ted Kremenek
8d8a14a3fc
Expand bubble size by 50%.
...
llvm-svn: 58111
2008-10-24 21:17:16 +00:00
Ted Kremenek
6e09d8f632
Implicit conversions from arrays can also be conversions to references (will add a test case shortly).
...
llvm-svn: 58110
2008-10-24 21:10:49 +00:00
Ted Kremenek
03466c2273
Issue warnings about owned objects returned from a method that does not match the established Cocoa naming conventions.
...
llvm-svn: 58108
2008-10-24 20:32:50 +00:00
Ted Kremenek
f3be44f191
Added method "getSelfRegion" to Store. This method returns the region associated with the "this" or "self" object (C++ and Objective-C respectively).
...
llvm-svn: 58107
2008-10-24 20:32:16 +00:00
Ted Kremenek
8921d930d4
Added region ObjCObjectRegion that represents an instance of an Objective-C object.
...
llvm-svn: 58106
2008-10-24 20:30:08 +00:00
Douglas Gregor
3dfef1f2a3
Move viewInheritance to CXXRecordDecl, and make sure it builds in Release mode, too
...
llvm-svn: 58105
2008-10-24 19:53:54 +00:00
Douglas Gregor
a8aa7a08b8
PR2942: FunctionDecls by typedef crash the C++ front-end
...
llvm-svn: 58100
2008-10-24 18:09:54 +00:00
Douglas Gregor
cea4e74340
Some cleanups for the ambiguous derived-to-base conversion checks
...
llvm-svn: 58096
2008-10-24 16:17:19 +00:00
Douglas Gregor
08d918a6c3
Semantic analysis for C++ reinterpret_cast and const_cast. Patch by Sebastian Redl.
...
llvm-svn: 58094
2008-10-24 15:36:09 +00:00
Zhongxing Xu
e834fc1249
The Decl of an array region can be VarDecl or FieldDecl. Handle this in RegionStoreManager::ArrayToPointer().
...
llvm-svn: 58086
2008-10-24 09:06:51 +00:00
Zhongxing Xu
729518be3a
Implement struct initialization. Make it into a recursive function. Also make
...
the array initialization code into a function.
llvm-svn: 58083
2008-10-24 08:42:28 +00:00
Daniel Dunbar
dec8a89d37
Don't crash on invalid source locations in
...
CGDebugInfo::getOrCreateCompileUnit.
llvm-svn: 58081
2008-10-24 08:38:36 +00:00
Daniel Dunbar
d7be95d60a
PR2919: __builtin_types_compatible_p strips CRV qualifiers.
...
llvm-svn: 58079
2008-10-24 08:07:57 +00:00
Zhongxing Xu
a14262862f
Add printing method to ElementRegion.
...
llvm-svn: 58077
2008-10-24 06:30:07 +00:00
Zhongxing Xu
1359e00f9c
Add printing method to RegionStoreManager.
...
llvm-svn: 58074
2008-10-24 06:01:33 +00:00
Zhongxing Xu
509bd9e30a
Add printing with llvm::raw_ostream methods to SVals.
...
llvm-svn: 58073
2008-10-24 06:00:12 +00:00
Douglas Gregor
39c16d445e
First non-embarrassing cut at checking for ambiguous derived-to-base
...
conversions.
Added PerformImplicitConversion, which follows an implicit conversion sequence
computed by TryCopyInitialization and actually performs the implicit
conversions, including the extra check for ambiguity mentioned above.
llvm-svn: 58071
2008-10-24 04:54:22 +00:00
Zhongxing Xu
c7796d347d
Fix 80-col violation.
...
llvm-svn: 58070
2008-10-24 04:33:15 +00:00
Zhongxing Xu
cebb741f68
Add a bunch of dummy methods to make RegionStoreManager non-virtual.
...
llvm-svn: 58061
2008-10-24 01:38:55 +00:00
Zhongxing Xu
a8d2cbe47f
Added getLValueElement() to RegionStore. Only handle constant array for now.
...
llvm-svn: 58058
2008-10-24 01:09:32 +00:00
Ted Kremenek
6779f893b9
Make the analyzer store (memory model) a command line option.
...
llvm-svn: 58056
2008-10-24 01:04:59 +00:00
Daniel Dunbar
607f67b16c
Map compilation units using FileEntry pointers instead of
...
FileIDs. This seems better conceptually and lets the SourceManager
handle details of mapping the location to a file ID.
- In practice, fixes an assert because this code wasn't using
getPhysicalLoc.
llvm-svn: 58055
2008-10-24 00:46:51 +00:00
Ted Kremenek
1507dbfbfc
Use llvm::errs() instead of cerr.
...
llvm-svn: 58054
2008-10-23 23:55:40 +00:00
Ted Kremenek
40fcc594b8
Convert InheritanceHierarchyWriter to use llvm::raw_ostream instead of std::ostream.
...
llvm-svn: 58053
2008-10-23 23:51:23 +00:00
Daniel Dunbar
340b5ddcf9
Fix regression in comparison of qualified id; == operator was being
...
created with LHS and RHS whose types didn't match.
llvm-svn: 58049
2008-10-23 23:30:52 +00:00
Douglas Gregor
9d6290baf1
Clean up and document the representation of C++ base classes
...
llvm-svn: 58040
2008-10-23 18:13:27 +00:00
Zhongxing Xu
9c4bc9dd33
Add an assertion to make our intention more clear.
...
llvm-svn: 58030
2008-10-23 04:19:25 +00:00
Douglas Gregor
01bef3c016
If NDEBUG is set, don't include any of the code for visualizing inheritance hierarchies
...
llvm-svn: 58029
2008-10-23 03:52:39 +00:00
Zhongxing Xu
b0a4875b42
Let StoreManager do different cast on arrays. BasicStore will just keep it intact.
...
llvm-svn: 58028
2008-10-23 03:10:39 +00:00
Ted Kremenek
cc3d18877a
Disable warning about potential leaks of returned values until we test it a little more (lots of noise).
...
llvm-svn: 58021
2008-10-23 01:56:15 +00:00
Douglas Gregor
5c407d9a9b
Add support for conversions from a pointer-to-derived to a
...
pointer-to-base. Also, add overload ranking for pointer conversions
(for both pointer-to-void and derived-to-base pointer conversions).
Note that we do not yet diagnose derived-to-base pointer conversion
errors that stem from ambiguous or inacessible base classes. These
aren't handled during overload resolution; rather, when the conversion
is actually used we go ahead and diagnose the error.
llvm-svn: 58017
2008-10-23 00:40:37 +00:00
Ted Kremenek
631ff239fc
Warn about potentially leaked objects that are returned from methods whose names do not follow the Cocoa Memory Management guidelines.
...
llvm-svn: 58012
2008-10-22 23:56:21 +00:00
Argyrios Kyrtzidis
1a527ea1e5
Restrict creation of OverloadedFunctionDecl only to C++ (it was getting used for invalid redeclarations on C).
...
llvm-svn: 58008
2008-10-22 23:08:24 +00:00
Steve Naroff
b0c653a649
Fix <rdar://problem/6311947> clang on xcode (regression): error: use of undeclared identifier 'expandedValue'.
...
Mea culpa: I introduced this regresson in the following 2 commits: r57529 (10/14), r57841 (10/20).
llvm-svn: 58007
2008-10-22 22:40:28 +00:00
Douglas Gregor
d8c7476bf3
Remove the GraphWriter-based version of the C++ class inheritance visualization, since it isn't being used and can't handle virtual bases properly
...
llvm-svn: 58002
2008-10-22 21:25:12 +00:00