| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
|  | 
llvm-svn: 75327
 | 
| | 
| 
| 
| 
| 
| 
|  | 
MemRegion kinds. This allows the compiler to identify what MemRegions we don't
handle for pointer arithmetic.
llvm-svn: 75326
 | 
| | 
| 
| 
|  | 
llvm-svn: 75325
 | 
| | 
| 
| 
|  | 
llvm-svn: 75324
 | 
| | 
| 
| 
| 
| 
|  | 
have an initializer. Also, move some tests around to match the C++0x draft better.
llvm-svn: 75322
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
warning: ‘OPT’ may be used uninitialized in this function
Now OPT is initialized to NULL. I'm not certain if this is the correct fix;
others please review.
llvm-svn: 75321
 | 
| | 
| 
| 
|  | 
llvm-svn: 75318
 | 
| | 
| 
| 
|  | 
llvm-svn: 75316
 | 
| | 
| 
| 
|  | 
llvm-svn: 75315
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The idea is to segregate Objective-C "object" pointers from general C pointers (utilizing the recently added ObjCObjectPointerType). The fun starts in Sema::GetTypeForDeclarator(), where "SomeInterface *" is now represented by a single AST node (rather than a PointerType whose Pointee is an ObjCInterfaceType). Since a significant amount of code assumed ObjC object pointers where based on C pointers/structs, this patch is very tedious. It should also explain why it is hard to accomplish this in smaller, self-contained patches.
This patch does most of the "heavy lifting" related to moving from PointerType->ObjCObjectPointerType. It doesn't include all potential "cleanups". The good news is additional cleanups can be done later (some are noted in the code). This patch is so large that I didn't want to include any changes that are purely aesthetic.
By making the ObjC types truly built-in, they are much easier to work with (and require fewer "hacks"). For example, there is no need for ASTContext::isObjCIdStructType() or ASTContext::isObjCClassStructType()! We believe this change (and the follow-up cleanups) will pay dividends over time. 
Given the amount of code change, I do expect some fallout from this change (though it does pass all of the clang tests). If you notice any problems, please let us know asap! Thanks.
llvm-svn: 75314
 | 
| | 
| 
| 
| 
| 
| 
|  | 
over the types of MemRegions. This allows the compiler to warn us which regions
are not handled, and also is a little faster.
llvm-svn: 75304
 | 
| | 
| 
| 
|  | 
llvm-svn: 75303
 | 
| | 
| 
| 
|  | 
llvm-svn: 75297
 | 
| | 
| 
| 
|  | 
llvm-svn: 75296
 | 
| | 
| 
| 
|  | 
llvm-svn: 75295
 | 
| | 
| 
| 
| 
| 
| 
|  | 
move this case to 'test/Analysis/misc-ps.m' to test with both BasicStoreManager
and RegionStoreManager.
llvm-svn: 75294
 | 
| | 
| 
| 
|  | 
llvm-svn: 75291
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
CodeTextRegions can only be casted to FunctionPointer or BlockPointerTypes. This
simply isn't true. We can handle bogus operations on CodeTextRegions (e.g, an
array access) elsewhere.
llvm-svn: 75285
 | 
| | 
| 
| 
| 
| 
|  | 
void**, void***, etc.  Such casts should just pass the region through.
llvm-svn: 75281
 | 
| | 
| 
| 
|  | 
llvm-svn: 75271
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
in their order of construction for each class and use it 
to to check on propery order of base class construction 
under -Wreorder option.
llvm-svn: 75270
 | 
| | 
| 
| 
| 
| 
|  | 
by Jonathan Gray and Krister Walfridsson.
llvm-svn: 75268
 | 
| | 
| 
| 
|  | 
llvm-svn: 75265
 | 
| | 
| 
| 
| 
| 
|  | 
to hopefully resolve template lookup ambiguities on some compilers.
llvm-svn: 75253
 | 
| | 
| 
| 
|  | 
llvm-svn: 75225
 | 
| | 
| 
| 
|  | 
llvm-svn: 75222
 | 
| | 
| 
| 
| 
| 
|  | 
functionality change.
llvm-svn: 75221
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
and replace the 'clang-cc' option '-analyzer-store=basic-new-cast' with
'-analyzer-store=basic-old-cast'. We'll keep the old CastRegion implementation
around for a little while for regression testing.
llvm-svn: 75209
 | 
| | 
| 
| 
|  | 
llvm-svn: 75178
 | 
| | 
| 
| 
|  | 
llvm-svn: 75175
 | 
| | 
| 
| 
| 
| 
|  | 
class object's base and members under -Wreorder flag.
llvm-svn: 75168
 | 
| | 
| 
| 
|  | 
llvm-svn: 75152
 | 
| | 
| 
| 
|  | 
llvm-svn: 75151
 | 
| | 
| 
| 
| 
| 
|  | 
quoted correctly.
llvm-svn: 75150
 | 
| | 
| 
| 
|  | 
llvm-svn: 75147
 | 
| | 
| 
| 
| 
| 
|  | 
address of an overloaded function.
llvm-svn: 75146
 | 
| | 
| 
| 
|  | 
llvm-svn: 75127
 | 
| | 
| 
| 
| 
| 
|  | 
pass it when instantiating the expr. Fixes another member pointer bug.
llvm-svn: 75075
 | 
| | 
| 
| 
| 
| 
| 
|  | 
address of an overloaded function (which may involve both functions
and function templates). 
llvm-svn: 75069
 | 
| | 
| 
| 
| 
| 
|  | 
T) should return a 'Loc' when 'T' is a pointer
llvm-svn: 75062
 | 
| | 
| 
| 
| 
| 
|  | 
type. Add a test for this and the rest of [dcl.mptr]p3.
llvm-svn: 75054
 | 
| | 
| 
| 
|  | 
llvm-svn: 75049
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
function template. Most of the change here is in factoring out the
common bits used for template argument deduction from a function call
and when taking the address of a function template.
llvm-svn: 75044
 | 
| | 
| 
| 
|  | 
llvm-svn: 75041
 | 
| | 
| 
| 
|  | 
llvm-svn: 75028
 | 
| | 
| 
| 
|  | 
llvm-svn: 75021
 | 
| | 
| 
| 
| 
| 
| 
|  | 
gc'able structs in the Next runtime and adds missing
PCH info.
llvm-svn: 75014
 | 
| | 
| 
| 
|  | 
llvm-svn: 75013
 | 
| | 
| 
| 
| 
| 
|  | 
Patch by Roman Divacky.
llvm-svn: 75003
 | 
| | 
| 
| 
|  | 
llvm-svn: 74999
 |