Ted Kremenek
f514592197
Fix warning when compiling with optimizations:
...
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
2009-07-11 00:21:48 +00:00
Ted Kremenek
156700fd14
This test passes with RegionStoreManager.
...
llvm-svn: 75318
2009-07-11 00:07:06 +00:00
Ted Kremenek
74a7b9188a
This test now passes with RegionStoreManager.
...
llvm-svn: 75316
2009-07-11 00:03:23 +00:00
Anders Carlsson
9890fb5bf6
Remove some unused code from an experiment that I didn't like.
...
llvm-svn: 75315
2009-07-10 23:48:10 +00:00
Steve Naroff
7cae42b07a
This patch includes a conceptually simple, but very intrusive/pervasive change.
...
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
2009-07-10 23:34:53 +00:00
Ted Kremenek
94575aacc1
Restructure RegionStoreManager::getSizeInElements() to use a switch statement
...
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
2009-07-10 22:30:06 +00:00
Eli Friedman
fd9b1094b8
Fix silly mistake I made applying patch to fix test.
...
llvm-svn: 75303
2009-07-10 22:27:56 +00:00
Ted Kremenek
e057d4e5a9
Rename test file.
...
llvm-svn: 75297
2009-07-10 21:48:43 +00:00
Ted Kremenek
3fcf628b40
RegionStoreManager also passes this test file.
...
llvm-svn: 75296
2009-07-10 21:48:10 +00:00
Ted Kremenek
488495e491
RegionStoreManager now correctly passes this test file.
...
llvm-svn: 75295
2009-07-10 21:45:10 +00:00
Ted Kremenek
6cb2a34e3c
Test case in test/Analysis/xfail_regionstore_wine_crash.c no longer fails, so
...
move this case to 'test/Analysis/misc-ps.m' to test with both BasicStoreManager
and RegionStoreManager.
llvm-svn: 75294
2009-07-10 21:43:30 +00:00
Anders Carlsson
7ca3f6feea
Fix type of 'this' and add a decltype test.
...
llvm-svn: 75291
2009-07-10 21:35:09 +00:00
Ted Kremenek
bf73ad47a8
Revert r75281 and simply remove the assertion in NewCastRegion that
...
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
2009-07-10 21:24:45 +00:00
Ted Kremenek
6c94771a0b
Fix crash in StoreManager::NewCastRegion regarding handling casts to void*,
...
void**, void***, etc. Such casts should just pass the region through.
llvm-svn: 75281
2009-07-10 21:11:16 +00:00
Eli Friedman
837f574ee9
Use /usr/bin/env trick to find python. Patch by Krister Walfridsson.
...
llvm-svn: 75271
2009-07-10 20:15:12 +00:00
Fariborz Jahanian
3554b5a37c
Patch to build list of inherited virtual base classes
...
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
2009-07-10 20:13:23 +00:00
Eli Friedman
7d369cd2a6
Misc fixes to fix tests on OpenBSD, per email to cfe-commits. Patches
...
by Jonathan Gray and Krister Walfridsson.
llvm-svn: 75268
2009-07-10 20:10:06 +00:00
Anders Carlsson
ea1cfb415b
Fix a problem that Eli noticed, and that Doug helped me fix.
...
llvm-svn: 75265
2009-07-10 19:20:26 +00:00
Ted Kremenek
da98f732cb
Rename potentially ambiguous member template 'getRegion' to 'getSubRegion' to hopefully resolve template lookup ambiguities on some compilers.
...
llvm-svn: 75253
2009-07-10 16:51:45 +00:00
Chris Lattner
53ea7db5e3
linkify
...
llvm-svn: 75225
2009-07-10 05:07:59 +00:00
Argyrios Kyrtzidis
bff082aec9
Add documentation for the Index library to clang's web page.
...
llvm-svn: 75222
2009-07-10 03:41:36 +00:00
Argyrios Kyrtzidis
6dd7181ed4
Simplify a bit by using functions instead of checking enum values. No functionality change.
...
llvm-svn: 75221
2009-07-10 03:41:26 +00:00
Ted Kremenek
f66557978e
Switch BasicStoreManager to use the new CastRegion implementation by default,
...
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
2009-07-10 00:41:58 +00:00
Fariborz Jahanian
5582f231f2
don't crash if class is using itself as its super class.
...
llvm-svn: 75178
2009-07-09 22:08:26 +00:00
Anders Carlsson
cf1441ab20
Fix another decltype crash.
...
llvm-svn: 75175
2009-07-09 22:00:53 +00:00
Fariborz Jahanian
341583c3ac
Sema check on out of order object initialization of
...
class object's base and members under -Wreorder flag.
llvm-svn: 75168
2009-07-09 19:59:47 +00:00
Anders Carlsson
17973e684d
Use getDeclName in DefineImplicitOverloadedAssign as well.
...
llvm-svn: 75152
2009-07-09 17:47:25 +00:00
Douglas Gregor
b05ce0f395
Another little test for C++ [over.over]
...
llvm-svn: 75151
2009-07-09 17:44:05 +00:00
Anders Carlsson
52b9180587
Pass the DeclName to the diagnostic builder so that member names will be quoted correctly.
...
llvm-svn: 75150
2009-07-09 17:37:12 +00:00
Ted Kremenek
7127801201
Update checker build.
...
llvm-svn: 75147
2009-07-09 17:20:25 +00:00
Douglas Gregor
6b6ba8bad8
Add test for C++ [over.over.]p1, the contexts in which one can take the address of an overloaded function.
...
llvm-svn: 75146
2009-07-09 17:16:51 +00:00
Zhongxing Xu
1796772267
Remove dead code.
...
llvm-svn: 75127
2009-07-09 09:17:11 +00:00
Anders Carlsson
03f89b1828
Store the isAddressOfOperand in the UnresolvedDeclRefExpr, so that we can pass it when instantiating the expr. Fixes another member pointer bug.
...
llvm-svn: 75075
2009-07-09 00:05:08 +00:00
Douglas Gregor
b257e4fff8
Implement the simple form of overload resolution used when taking the
...
address of an overloaded function (which may involve both functions
and function templates).
llvm-svn: 75069
2009-07-08 23:33:52 +00:00
Ted Kremenek
8ee3dd7cc5
Fix: <rdar://problem/7034511> ValueManager::makeIntVal(uint64_t X, QualType T) should return a 'Loc' when 'T' is a pointer
...
llvm-svn: 75062
2009-07-08 22:42:46 +00:00
Anders Carlsson
0b675f5ad5
It's not allowed to form member pointers to members that have reference type. Add a test for this and the rest of [dcl.mptr]p3.
...
llvm-svn: 75054
2009-07-08 21:45:58 +00:00
Douglas Gregor
79ca34de78
Bump the PCH version number
...
llvm-svn: 75049
2009-07-08 21:07:44 +00:00
Douglas Gregor
9b14658713
Implement template argument deduction when taking the address of a
...
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
2009-07-08 20:55:45 +00:00
Owen Anderson
c9673d5bae
Update for IRBuilder API change.
...
llvm-svn: 75041
2009-07-08 20:52:20 +00:00
Owen Anderson
c10c8d3e2b
Update for LLVM API change.
...
llvm-svn: 75028
2009-07-08 19:05:04 +00:00
Anders Carlsson
5b2095ce16
Implement code generation of ChooseExpr for aggregate types.
...
llvm-svn: 75021
2009-07-08 18:33:14 +00:00
Fariborz Jahanian
8e0d04249d
Patch adds test to my previous patch for assigning to
...
gc'able structs in the Next runtime and adds missing
PCH info.
llvm-svn: 75014
2009-07-08 16:37:44 +00:00
Chris Lattner
26670dcba1
fix PR4513, a build problem with VC++, patch by James Abbatiello!
...
llvm-svn: 75013
2009-07-08 16:24:37 +00:00
Duncan Sands
9cb27e9c08
Correct FreeBSD target info, fixing PR4514.
...
Patch by Roman Divacky.
llvm-svn: 75003
2009-07-08 13:55:08 +00:00
Douglas Gregor
be759256b9
Fix a corner case with argument-dependent lookup and overloaded function sets.
...
llvm-svn: 74999
2009-07-08 10:57:20 +00:00
Douglas Gregor
ed3c80eb75
Update the C++ status table to better reflect our support for function overloading
...
llvm-svn: 74997
2009-07-08 10:03:09 +00:00
Douglas Gregor
197e5f7bb7
Improve argument-dependent lookup to find associated classes and
...
namespaces based on the template arguments of a class template
specialization type.
llvm-svn: 74993
2009-07-08 07:51:57 +00:00
Argyrios Kyrtzidis
d8ffadcd82
Initialize the ConstantArraySizeAsWritten field of PrintingPolicy class.
...
It contained garbage since the constructor didn't initialize it and caused test/Sema/array-constraint.c to randomly fail.
llvm-svn: 74989
2009-07-08 02:17:42 +00:00
Owen Anderson
9f211fb4fa
Update for LLVM API change.
...
llvm-svn: 74986
2009-07-08 01:29:18 +00:00
Fariborz Jahanian
5f21d2f69a
Implemented memmove_collectable API for Next runtime
...
when struct variables with GC'able members are copied into.
Will provide a test case later.
llvm-svn: 74984
2009-07-08 01:18:33 +00:00