Nate Begeman
f2911667d8
Write/Read new Language Options
...
llvm-svn: 74221
2009-06-25 23:01:11 +00:00
Nate Begeman
9d90579b6d
PCH support for OpenCL language options
...
llvm-svn: 74220
2009-06-25 22:57:40 +00:00
Nate Begeman
95f48a5d87
OpenCL 1.0 patch 2/N: Language options & file extension
...
llvm-svn: 74217
2009-06-25 22:43:10 +00:00
Fariborz Jahanian
a158e018d4
Test case for my last patch.
...
llvm-svn: 74216
2009-06-25 22:40:36 +00:00
Argyrios Kyrtzidis
02f3e84c5b
Check that index-test uses an up-to-date AST file.
...
llvm-svn: 74214
2009-06-25 22:15:12 +00:00
Douglas Gregor
ad3f2fcf43
Improved semantic analysis and AST respresentation for function
...
templates.
For example, this now type-checks (but does not instantiate the body
of deref<int>):
template<typename T> T& deref(T* t) { return *t; }
void test(int *ip) {
int &ir = deref(ip);
}
Specific changes/additions:
* Template argument deduction from a call to a function template.
* Instantiation of a function template specializations (just the
declarations) from the template arguments deduced from a call.
* FunctionTemplateDecls are stored directly in declaration contexts
and found via name lookup (all forms), rather than finding the
FunctionDecl and then realizing it is a template. This is
responsible for most of the churn, since some of the core
declaration matching and lookup code assumes that all functions are
FunctionDecls.
llvm-svn: 74213
2009-06-25 22:08:12 +00:00
Argyrios Kyrtzidis
bf61749b47
Add some comments and clean-up some leftover code.
...
llvm-svn: 74207
2009-06-25 21:54:50 +00:00
Fariborz Jahanian
41f792735f
Patch to diagnose and Mark use of implicit default assignment operator.
...
llvm-svn: 74205
2009-06-25 21:45:19 +00:00
Nate Begeman
0359e12208
OpenCL 1.0 Support, patch 1/N: upper case swizzle operator and hex element index.
...
llvm-svn: 74202
2009-06-25 21:06:09 +00:00
Argyrios Kyrtzidis
92772215af
Introduce tools/index-test.
...
This tool will be the test bed for indexing related operations. It basically reads PCH files passed by the command line and performs various operations.
Currently it can accept a file:line:column which resolves to a declaration/statement and displays some information about them.
llvm-svn: 74198
2009-06-25 18:22:52 +00:00
Argyrios Kyrtzidis
7c59162edd
Introduce the ResolveLocationInAST function which takes an ASTContext and a SourceLocation and it resolves it into a <Decl*, Stmt*> pair.
...
Decl* is the declaration associated with this source location and Stmt* is the statement/expression that the location points to.
If the location does not point to a statement node, Stmt* is null.
ResolveLocationInAST (along with converting a file:line:column triplet to a SourceLocation) will be useful for an IDE client and for clang's test suite.
llvm-svn: 74197
2009-06-25 18:22:41 +00:00
Argyrios Kyrtzidis
55c34113e4
Handle PCHReader::IgnorePCH, it gets returned for when the file does not exist.
...
llvm-svn: 74196
2009-06-25 18:22:30 +00:00
Argyrios Kyrtzidis
16eecc4245
Set the end range location of a FunctionDecl to the right paren.
...
llvm-svn: 74195
2009-06-25 18:22:24 +00:00
Argyrios Kyrtzidis
0e5ecbda69
Fix column checking for SourceManager::getLocation().
...
llvm-svn: 74194
2009-06-25 18:22:16 +00:00
Ted Kremenek
9ffbd9fb64
Remove declaration for unused and unimplemented static method.
...
llvm-svn: 74182
2009-06-25 17:25:49 +00:00
Anders Carlsson
7972b14007
Extra asserts never hurt anybody, right?
...
llvm-svn: 74177
2009-06-25 16:06:43 +00:00
Anders Carlsson
7d209570b6
Decltype needs to have a dependent type if the expr passed to it is type dependent. Fixes PR4444.
...
llvm-svn: 74175
2009-06-25 15:00:34 +00:00
Duncan Sands
323fc2a229
Explicit braces to avoid ambiguous ‘else’.
...
llvm-svn: 74171
2009-06-25 09:03:06 +00:00
Zhongxing Xu
c53b444d36
remove RegionKills GDM. Now UnknownVal is bound to regions explicitly.
...
llvm-svn: 74168
2009-06-25 05:52:16 +00:00
Zhongxing Xu
2d16073b50
Move element region retrieving logic into a separate function.
...
llvm-svn: 74166
2009-06-25 05:29:39 +00:00
Douglas Gregor
9b5f9cd2f7
Make sure install Clang headers when building clang-cc
...
llvm-svn: 74163
2009-06-25 05:07:31 +00:00
Douglas Gregor
d4daf75100
Add missing dependencies to the CMake build system
...
llvm-svn: 74162
2009-06-25 05:03:29 +00:00
Zhongxing Xu
e67ea5c784
Move all logic for retrieving ElementRegion binding into a separate method.
...
Revert to setting default value approach for handling struct initialization.
llvm-svn: 74160
2009-06-25 04:50:44 +00:00
Ted Kremenek
799bb6e178
Remove uses of std::ostream from libAnalysis.
...
llvm-svn: 74136
2009-06-24 23:06:47 +00:00
Ted Kremenek
35a63c680f
Remove unneeded #includes.
...
llvm-svn: 74131
2009-06-24 22:26:16 +00:00
Ted Kremenek
2c6a7b2776
Remove GRStateManager::GetSValAsScalarOrLoc()/GetSVal().
...
llvm-svn: 74128
2009-06-24 22:15:30 +00:00
Anders Carlsson
b7fe2d672a
We now support decltype (as far as I know :)
...
llvm-svn: 74127
2009-06-24 22:10:19 +00:00
Fariborz Jahanian
49796cc77a
Backed out my last patch which caused a clang-test breakage. Will
...
look at it later.
llvm-svn: 74126
2009-06-24 22:09:44 +00:00
Anders Carlsson
ad6bd35b46
C++ decltype support (N2343)
...
llvm-svn: 74118
2009-06-24 21:24:56 +00:00
Anders Carlsson
0d00e80b8e
Type::getDesugaredType needs to handle decltype types.
...
llvm-svn: 74115
2009-06-24 20:59:53 +00:00
Fariborz Jahanian
be19db0063
Added a missing else part to my previous patche(s).
...
llvm-svn: 74108
2009-06-24 19:24:38 +00:00
Ted Kremenek
6ea5dda489
Fix typo.
...
llvm-svn: 74107
2009-06-24 19:20:24 +00:00
Ted Kremenek
d2ece0703c
Reference the correct image...
...
llvm-svn: 74106
2009-06-24 19:19:18 +00:00
Ted Kremenek
ffd586aa64
Add scan-build screenshot for attribute 'nonnull' example.
...
llvm-svn: 74104
2009-06-24 19:17:54 +00:00
Ted Kremenek
6e7d59f0c6
Fix broken HTML tag.
...
llvm-svn: 74103
2009-06-24 19:12:56 +00:00
Ted Kremenek
b49fe2aff7
Remove reference to using 'clang' directly to analyze projects.
...
llvm-svn: 74102
2009-06-24 19:12:07 +00:00
Ted Kremenek
9f345e1cad
Tighten screenshot.
...
llvm-svn: 74100
2009-06-24 19:08:56 +00:00
Anders Carlsson
81df7b89de
Add a DecltypeType type.
...
llvm-svn: 74099
2009-06-24 19:06:50 +00:00
Ted Kremenek
550e701cf5
Replace 'clang --analyze' example for attribute cf_returns_retained with screenshots.
...
llvm-svn: 74098
2009-06-24 19:04:37 +00:00
Ted Kremenek
645c54ef11
Replace 'clang --analyze' example (in text) with screenshot from scan-build.
...
llvm-svn: 74095
2009-06-24 18:50:14 +00:00
Anders Carlsson
74948d0701
Parse the C++0x decltype specifier.
...
llvm-svn: 74086
2009-06-24 17:47:40 +00:00
Owen Anderson
4d9e93c420
Update for LLVM API changes.
...
llvm-svn: 74085
2009-06-24 17:37:55 +00:00
Chris Lattner
46be2e1557
fix the type of wchar_t for windows, PR4417
...
llvm-svn: 74083
2009-06-24 17:12:15 +00:00
Fariborz Jahanian
6e9e4f3436
Fix a clang crash caused by incorrect user code.
...
llvm-svn: 74080
2009-06-24 17:00:18 +00:00
Douglas Gregor
23061ded56
Implement matching of function templates, so that one can declare overloaded function templates. C++ [temp.over.link] paragraphs 4-8.
...
llvm-svn: 74079
2009-06-24 16:50:40 +00:00
Anders Carlsson
b50f45f9b2
Nested classes are now complete.
...
llvm-svn: 74052
2009-06-24 02:03:09 +00:00
Anders Carlsson
9e47af8b59
Add test for [class.local]p2.
...
llvm-svn: 74051
2009-06-24 02:00:28 +00:00
Zhongxing Xu
33420090ae
use a concrete type instead of a trait type to make code more readable.
...
llvm-svn: 74047
2009-06-24 01:12:41 +00:00
Zhongxing Xu
9ef415edf2
RegionStore: revert to the default value approach for array initialization.
...
llvm-svn: 74043
2009-06-24 00:56:31 +00:00
Douglas Gregor
17a7c1297a
Make sure that the template parameter lists get from the parser down to ActOnFunctionDeclarator for function template definitions
...
llvm-svn: 74040
2009-06-24 00:54:41 +00:00
Anders Carlsson
58b19d5310
class.nested.type is done.
...
llvm-svn: 74034
2009-06-24 00:32:04 +00:00
Anders Carlsson
829574edab
Add test for [class.nested.type]p1
...
llvm-svn: 74033
2009-06-24 00:30:37 +00:00
Anders Carlsson
d2e8adfc75
Support for [class.local]p4.
...
llvm-svn: 74030
2009-06-24 00:28:53 +00:00
Douglas Gregor
c1da0f0b9b
When declaring a function template, create a FunctionTemplateDecl node
...
and associate it with the FunctionDecl.
llvm-svn: 74028
2009-06-24 00:23:40 +00:00
Anders Carlsson
946b86d91a
[class.local] p1 and p3. Also, add back the xcodeproj file.
...
llvm-svn: 74027
2009-06-24 00:10:43 +00:00
Fariborz Jahanian
a83edb0cc1
Some changes to accomodate Doug's comment for
...
implicit copy constructor definition determination.
llvm-svn: 74025
2009-06-23 23:42:10 +00:00
Douglas Gregor
b52fabb2a8
Start propagating template parameter lists to the right places to
...
handle function templates. There's no actual code for function
templates yet, but at least we complain about typedef templates.
llvm-svn: 74021
2009-06-23 23:11:28 +00:00
Daniel Dunbar
349db7bbcd
Fix warning when building w/o asserts.
...
llvm-svn: 74020
2009-06-23 23:09:58 +00:00
Argyrios Kyrtzidis
33661d9f16
Introduce SourceManager::ísBeforeInTranslationUnit() which can compare 2 source locations and determine which one comes before the other, relative to the translation unit.
...
llvm-svn: 74014
2009-06-23 22:01:48 +00:00
Argyrios Kyrtzidis
25ee5db366
Move the command line source location parsing from clang-cc.cpp into "include/Frontend/CommandLineSourceLoc.h".
...
llvm-svn: 74012
2009-06-23 22:01:39 +00:00
Argyrios Kyrtzidis
9cab2967c4
Update CMakeLists.txt
...
llvm-svn: 74011
2009-06-23 22:01:29 +00:00
Ted Kremenek
4cf427a8ae
Fix build.
...
llvm-svn: 74009
2009-06-23 21:50:16 +00:00
Fariborz Jahanian
248c719a68
Patch fixes an obscure bug when 'used' attribute is applied to
...
variables in ObjC's Next runtime mode. Next runtime also implicitly applies
'used' attribute on some of its meta-data. This results in two
'llvm.used' arrays to be generated, and one of them is renamed to
'llvm.used1'.
llvm-svn: 74008
2009-06-23 21:47:46 +00:00
Douglas Gregor
4a75be24c9
Eliminate DeclPtrTy() arguments to ActOnDeclarator that are just a very, very weird way to pass "false". No functionality change
...
llvm-svn: 74007
2009-06-23 21:43:56 +00:00
Ted Kremenek
8cf2021012
Remove GRStateManager::getRegion/getSelfRegion().
...
llvm-svn: 74006
2009-06-23 21:37:46 +00:00
Ted Kremenek
7df5691d2d
Remove GRStateManager::BindLoc() and GRStateManager::Unbind().
...
llvm-svn: 73996
2009-06-23 20:38:51 +00:00
Ted Kremenek
59ee3f5079
Remove GRStateManager::BindDecl() and GRStateManager::BindDeclWithInit().
...
llvm-svn: 73995
2009-06-23 20:27:53 +00:00
Douglas Gregor
6127ca4561
Make sure that argument-dependent lookup looks into the global scope
...
when it should.
llvm-svn: 73992
2009-06-23 20:14:09 +00:00
Ted Kremenek
2d99f97c17
- Add MemRegion::getMemorySpace()
...
- Change implementation of MemRegion::hasStackStorage()/hasHeapStorage() to use
'getMemorySpace()'. This avoids a double traversal up the region hierarchy
and is simpler.
- Add MemRegion::hasHeapOrStackStorage() as a slightly more efficient
alternative to 'hasStackStorage() || hasHeapStorage()'.
llvm-svn: 73977
2009-06-23 18:17:08 +00:00
Douglas Gregor
e14d93c49e
Fix some TableGen-related dependencies for the Clang CMake build
...
llvm-svn: 73976
2009-06-23 18:15:28 +00:00
Ted Kremenek
404b132dc0
Move 'hasStackStorage()' and 'hasHeapStorage()' from MemRegionManager to MemRegion.
...
llvm-svn: 73973
2009-06-23 18:05:21 +00:00
Ted Kremenek
ae01dc73af
API cleanup: move more methods from GRStateManager to GRState.
...
llvm-svn: 73968
2009-06-23 17:55:07 +00:00
Ted Kremenek
d427c460ab
Remove old Xcode project. We can now automatically generate an Xcode project that compiles all of LLVM (not just Clang) using CMake.
...
llvm-svn: 73960
2009-06-23 17:14:59 +00:00
Ted Kremenek
d363f44c69
Update CMake file.
...
llvm-svn: 73958
2009-06-23 16:54:53 +00:00
Douglas Gregor
2b154f41f2
Add a test illustrating our current inability to properly cope with the point of instantation of a member function of a class template specialization
...
llvm-svn: 73956
2009-06-23 15:45:29 +00:00
Douglas Gregor
7ee2be46a6
New test for when the subexpressions within a typeid are potentially evaluated. We seem to be the only ones to get this right.
...
llvm-svn: 73955
2009-06-23 15:32:13 +00:00
Zhongxing Xu
7718ae4701
Move all factory methods from SVal to ValueManager. API cleanup!
...
llvm-svn: 73954
2009-06-23 09:02:15 +00:00
Zhongxing Xu
0808f70912
Split ValueManager method definitions into its own source file.
...
No functionality change.
llvm-svn: 73952
2009-06-23 06:22:22 +00:00
Zhongxing Xu
d09b5205ef
ValueManager::makeNonLoc -> ValueManager::makeIntVal
...
Clean up code with ValueManager.
llvm-svn: 73951
2009-06-23 06:13:19 +00:00
Zhongxing Xu
0442e962d9
If the init list is fewer than the struct fields, bind the rest fields to 0
...
explicitly. Make 0 value with the field type.
llvm-svn: 73949
2009-06-23 05:43:16 +00:00
Zhongxing Xu
b7cf95957d
Instead of setting the default value of the array region, bind the rest of the
...
array elements to 0 explicitly. Create 0 values with the element type.
llvm-svn: 73946
2009-06-23 05:23:38 +00:00
Chris Lattner
c183595534
Fix our check for "random whitespace between a \ and newline" to work
...
with dos style newlines. I have a trivial test for this:
// RUN: clang-cc %s -verify
#define test(x, y) \
x ## y
but I don't know how to get svn to not change newlines and testrunner
doesn't work with dos style newlines either, so "not worth it". :)
rdar://6994000
llvm-svn: 73945
2009-06-23 05:15:06 +00:00
Zhongxing Xu
cbfc7d6c2e
MemRegionManager: Migrate logic for getCodeTextRegion() over to using
...
trait-based MemRegion creation.
llvm-svn: 73941
2009-06-23 03:50:30 +00:00
Zhongxing Xu
1a195b264f
Remove duplicated methods.
...
llvm-svn: 73940
2009-06-23 02:51:21 +00:00
Zhongxing Xu
74fa0bc3de
add a fixme.
...
llvm-svn: 73939
2009-06-23 02:08:56 +00:00
Chris Lattner
4c8da96ea9
fix PR4423.
...
llvm-svn: 73938
2009-06-23 01:38:41 +00:00
Anders Carlsson
5947ddfb55
Check in a new template argument list builder that should work better for variadic templates.
...
llvm-svn: 73937
2009-06-23 01:26:57 +00:00
Chris Lattner
e2170edfbb
switch Warnings.cpp to use the diagnostics machinery to print diagnostics, not *fprintf*!
...
Among other things, this makes the warning about unknown warning options mappable.
For example:
$ clang t.c -Werror -Wfoo
error: unknown warning option '-Wfoo' [-Wunknown-warning-option]
For another thing, they are properly color coded now too :)
llvm-svn: 73936
2009-06-23 01:20:39 +00:00
Ted Kremenek
fb87e30815
MemRegions:
...
- Embed a reference to MemRegionManager objects in MemSpaceRegion objects
- Use this embedded reference for MemRegion objects to access ASTContext objects without external help
- Use this access to ASTContext to simplify 'isBoundable' (no ASTContext& argument required)
llvm-svn: 73935
2009-06-23 00:46:41 +00:00
Chris Lattner
2fe5b26414
__APPLE_CC__ should only be set when building for darwin targets.
...
llvm-svn: 73934
2009-06-23 00:43:21 +00:00
Argyrios Kyrtzidis
c035bf688a
Remove operator '<=' overload for SourceLocation.
...
llvm-svn: 73933
2009-06-23 00:42:21 +00:00
Argyrios Kyrtzidis
dfc5dca1e5
Don't use operator overload '<' for SourceLocation, it has not semantic meaning.
...
llvm-svn: 73932
2009-06-23 00:42:15 +00:00
Argyrios Kyrtzidis
0152c6cbca
In SourceManager::createFileID missed setting ContentCache's FirstFID in another place.
...
llvm-svn: 73931
2009-06-23 00:42:06 +00:00
Argyrios Kyrtzidis
53aeec3b14
Add a comment.
...
llvm-svn: 73930
2009-06-23 00:42:00 +00:00
Ted Kremenek
8bae300ade
MemRegionManager: Migrate logic for getAllocaRegion() over to using trait-based MemRegion creation.
...
llvm-svn: 73927
2009-06-23 00:15:41 +00:00
Ted Kremenek
2266640a7a
MemRegionManager: Migrate getObjCObjectRegion() and getTypedViewRegion() to use
...
the new trait-based construction of MemRegion objects.
llvm-svn: 73926
2009-06-23 00:04:09 +00:00
Douglas Gregor
412190b067
Some semantic tests for implicit instantiations
...
llvm-svn: 73924
2009-06-22 23:57:29 +00:00
Fariborz Jahanian
477d242a2e
patch to mark use of implicit copy constructors.
...
llvm-svn: 73922
2009-06-22 23:34:40 +00:00
Ted Kremenek
214cdfea84
Migrate factory methods for FieldRegion and ObjCIVarRegion creation to use the
...
new generalized region-construction code.
llvm-svn: 73921
2009-06-22 23:34:21 +00:00
Douglas Gregor
71a5718f2d
Robustify a bunch of C++-related declaration actions.
...
llvm-svn: 73918
2009-06-22 23:20:33 +00:00
Ted Kremenek
e5e8b0b09b
Refactor some of the logic in MemRegionManager for constructing regions using
...
member template functions and traits. The idea is to allow MemRegionManager to
construct subclasses of MemRegion that aren't declared in MemRegion.h (e.g.,
checker-specific regions).
llvm-svn: 73917
2009-06-22 23:13:13 +00:00
Douglas Gregor
77b50e1126
Implement implicit instantiation of the member functions of a class template
...
specialization. At present, all implicit instantiations occur at the
end of the translation unit.
llvm-svn: 73915
2009-06-22 23:06:13 +00:00
Chris Lattner
6589a2e1db
add a warning group for unavailable decls that mirrors the one for
...
deprecated decls.
llvm-svn: 73914
2009-06-22 23:04:45 +00:00
Douglas Gregor
0b6a6242ed
Rework the way we track which declarations are "used" during
...
compilation, and (hopefully) introduce RAII objects for changing the
"potentially evaluated" state at all of the necessary places within
Sema and Parser. Other changes:
- Set the unevaluated/potentially-evaluated context appropriately
during template instantiation.
- We now recognize three different states while parsing or
instantiating expressions: unevaluated, potentially evaluated, and
potentially potentially evaluated (for C++'s typeid).
- When we're in a potentially potentially-evaluated context, queue
up MarkDeclarationReferenced calls in a stack. For C++ typeid
expressions that are potentially evaluated, we will play back
these MarkDeclarationReferenced calls when we exit the
corresponding potentially potentially-evaluated context.
- Non-type template arguments are now parsed as constant
expressions, so they are not potentially-evaluated.
llvm-svn: 73899
2009-06-22 20:57:11 +00:00
Fariborz Jahanian
18eb69af79
Changes made per Doug's comments.
...
llvm-svn: 73897
2009-06-22 20:37:23 +00:00
Fariborz Jahanian
3a36343b88
Remove ImplicitMustBeDefined, use universal 'Used' flag
...
instead. Do the implicit default ctor checking in MarkDeclarationReferenced.
llvm-svn: 73888
2009-06-22 17:30:33 +00:00
Argyrios Kyrtzidis
49abd4d95b
Addressing Doug's suggestions:
...
-Added comment for FunctionDecl::EndRangeLoc
-Removed a redundant check from FunctionDecl::setBody
llvm-svn: 73886
2009-06-22 17:13:31 +00:00
Fariborz Jahanian
246219bc9f
Fixed text of a diagnostics.
...
llvm-svn: 73885
2009-06-22 16:33:37 +00:00
Zhongxing Xu
8077d7eb15
Allow CodeTextRegion to be cast to 'void *'.
...
llvm-svn: 73880
2009-06-22 08:36:10 +00:00
Fariborz Jahanian
99b57fb987
Renamed Protocol as TheProtocol so people can use clang header for
...
building obj-c++ clients. "Protocol" is a class name in Cocoa.h
llvm-svn: 73854
2009-06-21 18:26:03 +00:00
Zhongxing Xu
540c009fbe
Return UnknownVal for pointer arithmetic on struct fields.
...
llvm-svn: 73851
2009-06-21 13:24:24 +00:00
Fariborz Jahanian
1c9d5d956c
Made improvements in c++'s object model patch on Doug's review.
...
llvm-svn: 73833
2009-06-20 20:23:38 +00:00
Argyrios Kyrtzidis
69c2e0635a
Slight modification to column checking inside SourceManager::getLocation().
...
llvm-svn: 73826
2009-06-20 08:40:15 +00:00
Argyrios Kyrtzidis
3a08ec1662
Add the license part to the new source files.
...
llvm-svn: 73825
2009-06-20 08:27:14 +00:00
Argyrios Kyrtzidis
88f663c04d
Introduce SourceManager::getLocation() to get a source location out of a "file:line:column" triplet.
...
llvm-svn: 73823
2009-06-20 08:09:57 +00:00
Argyrios Kyrtzidis
1ead0b42db
Serialize FunctionDecl's EndRangeLoc out to the PCH file.
...
llvm-svn: 73822
2009-06-20 08:09:34 +00:00
Argyrios Kyrtzidis
a3aeb5a8f1
Introduce Decl::getSourceRange() which, like Stmt::getSourceRange(), represents the range that the declaration covers.
...
Add initial support for NamespaceDecl, VarDecl, and FunctionDecl:
-NamespaceDecl range is from name to '}'
-VarDecl is from name to possible init expression
-FunctionDecl is from name to last parameter name or to end of its function body.
llvm-svn: 73821
2009-06-20 08:09:14 +00:00
Argyrios Kyrtzidis
ef21d5d870
Add operator '<=' for comparing SourceLocations.
...
llvm-svn: 73820
2009-06-20 08:08:38 +00:00
Argyrios Kyrtzidis
ce3797527e
Introduce the ASTUnit class.
...
ASTUnit is a helper class to allow easy loading of an ASTContext from a PCH file. No users for now.
llvm-svn: 73819
2009-06-20 08:08:23 +00:00
Douglas Gregor
fec52635f0
Parsing and AST support for using declarations, from John Thompson!
...
llvm-svn: 73812
2009-06-20 00:51:54 +00:00
Douglas Gregor
6fa36b4246
Add -fblocks
...
llvm-svn: 73804
2009-06-20 00:29:46 +00:00
Fariborz Jahanian
e8918d52d1
Added writing and reading of the ConstQualAdded flag of
...
BlockDeclRefExpr to PCH.
llvm-svn: 73800
2009-06-20 00:02:26 +00:00
Douglas Gregor
c9c02ed8f4
Keep track of when declarations are "used" according to C and
...
C++. This logic is required to trigger implicit instantiation of
function templates and member functions of class templates, which will
be implemented separately.
This commit includes support for -Wunused-parameter, printing warnings
for named parameters that are not used within a function/Objective-C
method/block. Fixes <rdar://problem/6505209>.
llvm-svn: 73797
2009-06-19 23:52:42 +00:00
Fariborz Jahanian
3fd7310d70
Use QualType to represent block's implicit return type as
...
to not lose its 'const/volatile' qualifier.
llvm-svn: 73795
2009-06-19 23:37:08 +00:00
Fariborz Jahanian
423a81f259
Patch for implementation of C++'s object model. This is
...
work in progress.
llvm-svn: 73782
2009-06-19 19:55:27 +00:00
Ted Kremenek
c55f0cdaa0
Remove more GetSVal/GetLValue methods in GRExprEngine/GRState, instead
...
preferring to use their replacements in GRState. This further unifies the code
paths for such logic and leads to some code reduction.
llvm-svn: 73771
2009-06-19 17:10:32 +00:00
Argyrios Kyrtzidis
e55f6ff3de
Fix bug in the new PCHReader constructor. PP and Context should be initialized to 0.
...
llvm-svn: 73762
2009-06-19 07:55:35 +00:00
Argyrios Kyrtzidis
0ec73555a8
Tiny correction on the command-line source location parser.
...
llvm-svn: 73758
2009-06-19 06:32:46 +00:00
Zhongxing Xu
54fb536b5c
A further step of r73690: associate the cast-to type with the created symbol,
...
because the type of the symbol is used to create the default range. We need the
sign to be consistent.
llvm-svn: 73756
2009-06-19 06:00:32 +00:00
Zhongxing Xu
cc45762253
If the SymbolicRegion was cast to another type, use that type to create the
...
ElementRegion.
llvm-svn: 73754
2009-06-19 04:51:14 +00:00
Argyrios Kyrtzidis
366985d5eb
Make changes to PCHReader to allow reading a PCH file without having a pre-initialized Preprocessor.
...
-Introduce 'PCHReaderListener' which is an abstract interface for getting various information from the PCHReader.
-If PCHReader is constructed without a Preprocessor, it can still load the file and invoke the callbacks of PCHReaderListener.
-If PCHReader is constructed with an initialized Preprocessor, PCHValidator is used as a PCHReaderListener to validate the contents of the PCH file against the given Preprocessor.
llvm-svn: 73741
2009-06-19 00:03:23 +00:00
Ted Kremenek
095f1a9848
Move clients over from using GRStateManager::BindXXX and friends to
...
GRState->bindXXX and friends (and constify some arguments along the way).
llvm-svn: 73740
2009-06-18 23:58:37 +00:00
Ted Kremenek
4c6a367182
Remove GRStateManager& field from SimpleConstraintManager.
...
llvm-svn: 73735
2009-06-18 23:20:05 +00:00
Ted Kremenek
f9906843b7
libAnalysis:
...
- Remove the 'isFeasible' flag from all uses of 'Assume'.
- Remove the 'Assume' methods from GRStateManager. Now the only way to
create a new GRState with an assumption is to use the new 'assume' methods
in GRState.
llvm-svn: 73731
2009-06-18 22:57:13 +00:00
Douglas Gregor
1e09bf83c0
Some cleanups suggested by Chris
...
llvm-svn: 73713
2009-06-18 18:45:36 +00:00
Douglas Gregor
78bd61f661
Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>.
...
llvm-svn: 73702
2009-06-18 16:11:24 +00:00
Douglas Gregor
e1d15c80a3
Add some missing CMake dependencies
...
llvm-svn: 73700
2009-06-18 15:05:47 +00:00
Zhongxing Xu
b21175ccbe
Modify test case comments.
...
llvm-svn: 73691
2009-06-18 06:49:35 +00:00
Zhongxing Xu
cea6578078
When casting region, if we do not create an element region, record the cast-to
...
type.
When retrieving the region value, if we are going to create a symbol value, use
the cast-to type if possible.
llvm-svn: 73690
2009-06-18 06:29:10 +00:00
Chris Lattner
e7e659431c
Fix a crash that can occur when a #pragma handler eats to the end of the
...
line, and when the pragma is at the end of a file. In this case, the last
token consumed could pop the lexer, invalidating CurPPLexer. Thanks to
Peter Thoman for pointing it out.
llvm-svn: 73689
2009-06-18 05:55:53 +00:00
Zhongxing Xu
dd19e15fe2
More GRStateRef removal fix.
...
llvm-svn: 73674
2009-06-18 03:42:19 +00:00
Eli Friedman
c619d6fab5
Add a target triple to a couple of tests which depend on it. Reported
...
by Mark Cianciosa on cfe-dev.
llvm-svn: 73672
2009-06-18 02:04:19 +00:00
Ted Kremenek
6a667ab710
Remove GRStateRef.
...
llvm-svn: 73670
2009-06-18 01:33:24 +00:00
Ted Kremenek
d93c6e3fd6
Remove more dependencies on GRStateRef. As a consequence, we can now
...
pretty-print a GRState object anywhere it is referenced (instead of
needing a GRStateRef of a GRStateManager handy).
llvm-svn: 73669
2009-06-18 01:23:53 +00:00
Ted Kremenek
89a303caac
Remove another dependency on GRStateRef.
...
llvm-svn: 73667
2009-06-18 00:49:02 +00:00
Douglas Gregor
f187420feb
Diagnose class members that shadow a template parameter. Fixes
...
<rdar://problem/6952203>.
To do this, we actually remove a not-quite-correct optimization in the
C++ name lookup routines. We'll revisit this optimization for the
general case once more C++ is working.
llvm-svn: 73659
2009-06-17 23:37:01 +00:00
Douglas Gregor
4dd5b57ef4
Fix regression testing in Xcode, again
...
llvm-svn: 73658
2009-06-17 23:35:04 +00:00
Argyrios Kyrtzidis
9941a4d314
Fix some erroneous comments due to trigger-happy copy&paste.
...
No functionality change.
llvm-svn: 73657
2009-06-17 23:19:02 +00:00
Argyrios Kyrtzidis
7bcce49e04
Factor out some common code into Sema::EnterDeclaratorContext/ExitDeclaratorContext.
...
llvm-svn: 73655
2009-06-17 23:15:40 +00:00
Argyrios Kyrtzidis
3df1978270
Implement correct name lookup inside an initializer of a C++ class static data member.
...
Fixes "test/CXX/basic/basic.lookup/basic.lookup.unqual/p13.cpp" test case.
llvm-svn: 73652
2009-06-17 22:50:06 +00:00
Argyrios Kyrtzidis
c4b766bc65
Move CXXMethodDecl::OutOfLineDefinition into Decl::OutOfLine.
...
llvm-svn: 73651
2009-06-17 22:49:50 +00:00
Fariborz Jahanian
b1743254e7
Removed deadcode related to addition of constructor
...
decls to a class.
llvm-svn: 73650
2009-06-17 22:44:31 +00:00
Steve Naroff
fb4330f255
First step toward fixing <rdar://problem/6613046> refactor clang objc type representation.
...
Add a type (ObjCObjectPointerType) and remove a type (ObjCQualifiedIdType).
This large/tedious patch is just a first step. Next step is to remove ObjCQualifiedInterfaceType. After that, I will remove the magic TypedefType for 'id' (installed by Sema). This work will enable various simplifications throughout clang (when dealing with ObjC types).
No functionality change.
llvm-svn: 73649
2009-06-17 22:40:22 +00:00
Ted Kremenek
b35e2caab5
Remove more uses of GRStateRef.
...
llvm-svn: 73648
2009-06-17 22:28:13 +00:00
Ted Kremenek
d0d4cfc8e7
Class 'Environment' no longer should subclass llvm::FoldingSetNode.
...
Environment hasn't been uniqued in a FoldingSet for some time, so this
was just wasting a pointer in GRState.
llvm-svn: 73645
2009-06-17 22:06:03 +00:00
Ted Kremenek
609df30929
Start moving in the direction of removing GRStateRef. Now each
...
GRState object has a direct reference to its GRStateManager, making
the functionality of GRStateRef redunandant. This will lead to some
nice API cleanup and code shrinking across libAnalysis.
llvm-svn: 73644
2009-06-17 22:02:04 +00:00
Douglas Gregor
758a869b14
Support dependent extended vector types and template instantiation
...
thereof. Patch by Anders Johnsen!
llvm-svn: 73641
2009-06-17 21:51:59 +00:00
Daniel Dunbar
3f460e84d0
Testing improvements:
...
- Make python test runner force COLUMNS=0 to increase determinism.
- Substitute clang-cc as we do for clang.
- Improved detection of Ctrl-C.
- Honor CLANG and CLANGCC environment variables.
- Add proper command line arguments to TestRunner.py (see --help)
llvm-svn: 73640
2009-06-17 21:33:37 +00:00
Douglas Gregor
791505b5ea
Search path for 64-bit Ubuntu Linux, from Anders Johnsen
...
llvm-svn: 73637
2009-06-17 21:18:36 +00:00
Fariborz Jahanian
ccd44a5072
Added missing @endcode.
...
llvm-svn: 73629
2009-06-17 20:24:52 +00:00
Douglas Gregor
6b6bba4a20
Diagnose the use of attributes on namespace aliases, from Anis Ahmad
...
llvm-svn: 73626
2009-06-17 19:49:00 +00:00
Douglas Gregor
4bf38785b1
Make sure that .td and .def files get into the list of headers in a CMake build, for use in Xcode and Visual Studio
...
llvm-svn: 73623
2009-06-17 18:31:02 +00:00
Chris Lattner
a0e4dedf9e
link in targets
...
llvm-svn: 73619
2009-06-17 17:25:50 +00:00
Chris Lattner
d15131020d
Remove old #includes
...
llvm-svn: 73618
2009-06-17 17:23:16 +00:00
Douglas Gregor
d04acaad93
Use env properly in test/Driver/analyze.c
...
llvm-svn: 73609
2009-06-17 15:41:17 +00:00
Chris Lattner
94dfae248b
Update clang for the add ->add/fadd split. Likewise for sub and mul.
...
llvm-svn: 73604
2009-06-17 06:36:24 +00:00
Anders Carlsson
58a9b0eafe
Remove all non-const getters from TemplateArgumentList.
...
llvm-svn: 73589
2009-06-17 00:35:01 +00:00
Fariborz Jahanian
5b130a56fd
Place -Wreadonly-setter-attrs under -Wmost option group.
...
llvm-svn: 73585
2009-06-17 00:06:21 +00:00
Douglas Gregor
dca24385f3
If any tests fail, the test runner returns a status code of 1
...
llvm-svn: 73584
2009-06-16 23:40:23 +00:00
Douglas Gregor
ffbc629cd7
Make these driver tests do the right thing even when MACOSX_DEPLOYMENT_TARGET is set.
...
llvm-svn: 73583
2009-06-16 23:37:56 +00:00
Daniel Dunbar
10978e414c
Stub out printing of the thread model with -v.
...
- Turns out libstdcxx greps for this in configure.
llvm-svn: 73582
2009-06-16 23:32:58 +00:00
Daniel Dunbar
1b3ec3a000
Fake support for -print-multi-*
...
- I think we will eventually need to support this for realz, and some build
processes seem to depend on these options.
llvm-svn: 73581
2009-06-16 23:25:22 +00:00
Anders Carlsson
655908aaf7
Since integral template arguments can't have dependent types we don't need an extra pass to set the right APSInt bit width/signedness.
...
llvm-svn: 73580
2009-06-16 23:08:29 +00:00
Ted Kremenek
b538e7b64f
Add utility method GRStateRef::makeWithStore().
...
llvm-svn: 73576
2009-06-16 22:55:21 +00:00
Anders Carlsson
3a106e0b1c
Make DeduceNonTypeTemplateArgument take an APSInt instead of an APInt.
...
llvm-svn: 73574
2009-06-16 22:44:31 +00:00
Ted Kremenek
4533a55696
RegionStoreManager:
...
- Add "sections" to RegionStoreManager.cpp to delineate functionality.
- Add new function "CreateFieldsOnlyRegionStoreManager" that uses the new
RegionStoreFeatures class to use a reduced set of features from
RegionStoreManager (in this case, only field-sensitivity). This isn't
completely hooked up yet.
llvm-svn: 73572
2009-06-16 22:36:44 +00:00
Douglas Gregor
b4fd5b03c9
Make the clang executable target depend on clang-cc
...
llvm-svn: 73568
2009-06-16 22:26:26 +00:00
Douglas Gregor
71544dba9d
Don't warn about -Winvalid-pch or -Wno-invalid-pch. Since we don't
...
search for PCH files that correspond to header inclusions, this option
does not make sense. Fixes <rdar://problem/6970322>.
llvm-svn: 73563
2009-06-16 22:06:52 +00:00
Daniel Dunbar
2d5f363d6d
Fix typo in prev commit.
...
llvm-svn: 73556
2009-06-16 21:46:01 +00:00
Daniel Dunbar
79c459932b
Darwin/Driver: Also look at -arch command line options when finding the default
...
tool chain.
llvm-svn: 73555
2009-06-16 21:39:33 +00:00
Ted Kremenek
dc935e99e2
Add IOKit test cases for retain/release checker.
...
llvm-svn: 73549
2009-06-16 20:44:39 +00:00
Douglas Gregor
274a6b4f2d
Update Clang to include the InitializeAllTargets and
...
InitializeAllAsmPrinters LLVM headers. Also includes some minor fixes
for the CMake-based build with Xcode.
llvm-svn: 73544
2009-06-16 20:13:51 +00:00
Chris Lattner
392da9c56d
simplify .td file
...
llvm-svn: 73542
2009-06-16 20:04:21 +00:00
Fariborz Jahanian
4be3f263c7
Add -Wundeclared-selector to -Wmost options group.
...
llvm-svn: 73524
2009-06-16 18:20:59 +00:00
Devang Patel
9fc4341eec
It is possible that main input file does not have any symbol with debug info. To handle this edge case, always create main compile unit first.
...
This fixes PR 4228.
llvm-svn: 73520
2009-06-16 18:02:02 +00:00
Fariborz Jahanian
bada785729
Test case was left behind from my last patch.
...
llvm-svn: 73519
2009-06-16 17:57:28 +00:00
Ted Kremenek
50d131dea1
Update checker build.
...
llvm-svn: 73518
2009-06-16 17:45:57 +00:00
Chris Lattner
943658f00b
testcase for r72869, it turns out that it happens in Ruby.
...
llvm-svn: 73514
2009-06-16 17:39:02 +00:00
Chris Lattner
651a221cc2
follow-on to my patch: some targets (like sparc) do not
...
have target-specific builtins, and do not set the count.
Just default to 0 for these targets.
llvm-svn: 73510
2009-06-16 17:27:50 +00:00
Fariborz Jahanian
0571d9bbba
Implements -Wundeclared-selector for ObjC.
...
llvm-svn: 73495
2009-06-16 16:25:00 +00:00
Chris Lattner
2811a257f1
remove extraneous diff.
...
llvm-svn: 73494
2009-06-16 16:22:49 +00:00
Chris Lattner
4ef49c1d6e
my refactoring of builtins changed target-specific builtins to only be
...
registered when PCH wasn't being used. We should always install (in BuiltinInfo)
information about target-specific builtins, but we shouldn't register any builtin
identifier infos. This fixes the build of apps that use PCH and target specific
builtins together.
llvm-svn: 73492
2009-06-16 16:18:48 +00:00
Zhongxing Xu
838a0db0ba
Use canonical type for building ElementRegion. Otherwise ElementRegions cannot
...
be unique.
llvm-svn: 73482
2009-06-16 09:55:50 +00:00
Zhongxing Xu
e531f048f8
Do not invalidate unboundable regions in GRSimpleVals::EvalCall().
...
llvm-svn: 73474
2009-06-16 06:18:21 +00:00
Anders Carlsson
a42ab8f3d5
Handle temporaries in default arguments.
...
llvm-svn: 73462
2009-06-16 03:37:31 +00:00
Anders Carlsson
90036dc96a
Keep track of whether a type parameter type is a parameter pack.
...
llvm-svn: 73452
2009-06-16 00:30:48 +00:00
Steve Naroff
853308d89d
Add a comment to Sema::ActOnTranslationUnitScope().
...
llvm-svn: 73450
2009-06-16 00:20:10 +00:00
Chris Lattner
49ffbb73ce
accept and ignore -Wdiv-by-zero
...
llvm-svn: 73446
2009-06-15 23:45:43 +00:00
Ted Kremenek
96aa146d90
Fix: <rdar://problem/6945561> -[CIContext createCGLayerWithSize:info:] misinterpreted by clang scan-build
...
llvm-svn: 73415
2009-06-15 20:58:58 +00:00
Ted Kremenek
3092e9c5c2
Fix: <rdar://problem/6961230> add knowledge of IOKit functions to retain/release checker
...
llvm-svn: 73411
2009-06-15 20:36:07 +00:00