John McCall
1848ea4fe3
Due to local reversions and re-patching, I accidentally had multiple copies
...
of the 'payload' in this header.
llvm-svn: 94109
2010-01-21 22:59:41 +00:00
Mike Stump
fcd6f94ba7
Improve unreachable code warnings for with respect to dead functional casts in C++.
...
llvm-svn: 94106
2010-01-21 22:12:18 +00:00
Douglas Gregor
6479fc4554
Teach the cursor visitor to walk into typeof types (both kinds). This
...
is hard to test now; tests will come when we can walk stataements and
expressions properly.
llvm-svn: 94099
2010-01-21 20:48:56 +00:00
Mike Stump
d12e495f17
Improve unreachable code warnings for with respect to c-style casts.
...
llvm-svn: 94094
2010-01-21 19:51:34 +00:00
Mike Stump
c18c403670
Improve unreachable code warnings for with respect to ? :.
...
llvm-svn: 94093
2010-01-21 19:44:04 +00:00
Ted Kremenek
819e873791
Allocate the 'Protocols' array in ObjCInterfaceType and
...
ObjCObjectPointerType using the allocator associated with ASTContext.
Not only does this fix a memory leak, but it also makes these arrays
BumpPtrAllocated (in the typical case).
llvm-svn: 94090
2010-01-21 19:22:34 +00:00
Benjamin Kramer
2067816b3a
Revert r94073, it fails in Release-Asserts builds.
...
llvm-svn: 94089
2010-01-21 18:14:21 +00:00
Fariborz Jahanian
e344e41fed
Fixes a comment.
...
llvm-svn: 94088
2010-01-21 17:39:43 +00:00
Fariborz Jahanian
da8ec2bc9e
Patch to implement rewriting of properties.
...
Fixes radar 7562952.
llvm-svn: 94087
2010-01-21 17:36:00 +00:00
Mike Stump
14781509fd
Improve unreachable code warnings for with respect to compound
...
assignments.
llvm-svn: 94086
2010-01-21 17:31:41 +00:00
Douglas Gregor
d182431968
Teach the cursor visitor to walk into a variety of different TypeLoc
...
kinds, so that we see referenced types, protocols, classes, etc.
llvm-svn: 94085
2010-01-21 17:29:07 +00:00
Mike Stump
cc3a853df7
Improve unreachable code warnings with respect to dead binary and
...
unary operators.
llvm-svn: 94084
2010-01-21 17:21:23 +00:00
Daniel Dunbar
9e406b4b60
Add a test for clang_rt support on Darwin. With appropriate massaging, this
...
checks that the runtime library can be linked and works for compiling on 10.6
for 10.{4,5,6} targets. Currently test is only for x86, and misses some
compiler-rt functions.
llvm-svn: 94083
2010-01-21 17:10:39 +00:00
Daniel Dunbar
0b9c603ee2
Tweak OptionalTests paths.
...
llvm-svn: 94082
2010-01-21 17:09:39 +00:00
Daniel Dunbar
ae928714df
Update to use llvm/utils/GetSourceVersion to detect version number, instead of
...
assuming SVN. This should be fixed to not necessarily be an integer.
llvm-svn: 94081
2010-01-21 16:56:47 +00:00
Daniel Dunbar
d723b01311
Add utils/OptionalTests, a dumping ground for additional (lit) tests which for
...
one reason or another don't belong in the regular test suite.
Inside is utils/OptionalTests/Extra which is specifically for tests that match
the layout of the regular tests.
llvm-svn: 94080
2010-01-21 16:55:39 +00:00
Anders Carlsson
f768db7775
Move the VTT related code into its own file, CGVTT.cpp
...
llvm-svn: 94079
2010-01-21 16:50:45 +00:00
Douglas Gregor
93f899509d
Introduce type references into the C API, capturing references to
...
typedefs only (for now).
llvm-svn: 94078
2010-01-21 16:28:34 +00:00
Douglas Gregor
ff59f676d0
Teach code-completion to deal with calls to functions without prototypes.
...
llvm-svn: 94076
2010-01-21 15:46:19 +00:00
Mike Stump
04c6851cd6
Speed up compilation by avoiding generating exceptional edges from
...
CallExprs as those edges help cause a n^2 explosion in the number of
destructor calls. Other consumers, such as static analysis, that
would like to have more a more complete CFG can select the inclusion
of those edges as CFG build time.
This also fixes up the two compilation users of CFGs to be tolerant of
having or not having those edges. All catch code is assumed be to
live if we didn't generate the exceptional edges for CallExprs.
llvm-svn: 94074
2010-01-21 15:20:48 +00:00
Benjamin Kramer
d2eba45be3
Match branch labels with the trailing colon so we don't accidentally match something else.
...
llvm-svn: 94073
2010-01-21 15:19:14 +00:00
Mike Stump
0c2ec779cf
Move some recent checking code into SemaChecking instead.
...
llvm-svn: 94067
2010-01-21 03:59:47 +00:00
Mike Stump
87f2f9b465
Avoid instantiating std::sort to save on compiler size.
...
llvm-svn: 94065
2010-01-21 03:43:13 +00:00
Mike Stump
7df27e7038
When checking for unreachable code, we can trivially avoid checking
...
for unreachable loops if all the blocks are already marked live by
this point.
llvm-svn: 94064
2010-01-21 03:07:51 +00:00
Mike Stump
02230ab7a6
When checking for unreachable blocks, we can trivially avoid extra
...
work, if we know we already marked all blocks as live.
llvm-svn: 94063
2010-01-21 02:55:37 +00:00
Mike Stump
6bf1c08e99
Add infrastructure to add base initializers and member initializers to
...
the CFG. WIP.
llvm-svn: 94062
2010-01-21 02:21:40 +00:00
Fariborz Jahanian
879cc735fc
Fixes comments.
...
llvm-svn: 94053
2010-01-21 00:08:17 +00:00
Fariborz Jahanian
e4951fdc4b
Also allow cast of block pointer type to
...
pointer to an any object. Another variation of
radar 7562285.
llvm-svn: 94052
2010-01-21 00:05:09 +00:00
Douglas Gregor
fed36b1aa1
Stash a CXXUnit pointer into each cursor. This allows us to simplify
...
the interface to clang_visitChildren() by eliminating the
CXTranslationUnit pointer.
llvm-svn: 94051
2010-01-20 23:57:43 +00:00
Devang Patel
3f4a77e082
A Decl->getName() is not unique. However, the debug info descriptors
...
are uniqued. The debug info descriptor describing record's context is
necessary to keep two Decl's descriptor unique if their name match.
There is more work to do to create descriptors for DeclContext.
As a temp. step use type's name in FwdDecl.
llvm-svn: 94050
2010-01-20 23:56:40 +00:00
Douglas Gregor
58552bcd65
Eliminate the MakeCXCursor routines that require their callers to know too much about the cursor's storage
...
llvm-svn: 94049
2010-01-20 23:34:41 +00:00
Fariborz Jahanian
4efdec0677
In objective-c++ land, a block pointer is another object pointer.
...
So, casting a generic object pointer ('id' or 'Class') to the
block pointer is allowed. Fixes radar 7562285.
llvm-svn: 94045
2010-01-20 22:54:38 +00:00
Douglas Gregor
c8e390c215
Yet more Doxygen-comment tweaking in the CIndex library.
...
llvm-svn: 94044
2010-01-20 22:45:41 +00:00
Douglas Gregor
802f12f719
Improve Doxygen documentation for the CIndex library, somewhat.
...
llvm-svn: 94042
2010-01-20 22:28:27 +00:00
John McCall
97c5a140c2
Change LLVM/clang #includes to use quotes, not angle-brackets. Just a think-o
...
prompted by the #include <iterator> above.
llvm-svn: 94040
2010-01-20 22:16:29 +00:00
Douglas Gregor
721e82edbc
Kill CXEntity and CXDecl. The first has never been used, while the
...
second has been wholly replaced by cursors.
llvm-svn: 94039
2010-01-20 22:14:22 +00:00
John McCall
401982f56c
First pass at collecting access-specifier information along inheritance paths.
...
Triggers lots of assertions about missing access information; fix them.
Will actually consume this information soon.
llvm-svn: 94038
2010-01-20 21:53:11 +00:00
Douglas Gregor
dd969c897e
Kill some CXDecl-related APIs that have been superceded by
...
CXCursor-based APIs.
llvm-svn: 94037
2010-01-20 21:45:58 +00:00
Douglas Gregor
2582af00d4
Kill CXStmt. It isn't being used anywhere, and has no future.
...
llvm-svn: 94036
2010-01-20 21:38:07 +00:00
Douglas Gregor
990b576ec8
Kill clang_loadDeclaration() and clang_loadTranslationUnit().
...
llvm-svn: 94034
2010-01-20 21:37:00 +00:00
Douglas Gregor
720d00553a
Switch c-index-test from clang_loadDeclaration() and
...
clang_loadTranslationUnit() over to clang_visitChildren().
llvm-svn: 94031
2010-01-20 21:32:04 +00:00
Douglas Gregor
befc4a1658
Switch the internals of clang_loadTranslationUnit() over to the new
...
cursor-based traversal, and eliminate TUVisitor. We're now down to one
visitor for traversing the AST. Yay!
llvm-svn: 94025
2010-01-20 21:13:59 +00:00
Daniel Dunbar
73118e6d82
Use sizeof() instead of hard-coding a size for WrittenBuiltinSpecs, eek!
...
llvm-svn: 94024
2010-01-20 21:13:31 +00:00
Douglas Gregor
71f3d94391
Introduce a new, cursor-based traversal function that visits the
...
children of a given cursor, regardless of what kind of cursor it
is. This is a generalization of clang_loadDeclaration and
clang_loadTranslationUnit that will also extent to statements,
expressions, etc.
As proof-of-concept, switched clang_loadDeclaration() from its own
visitor over to an instance of this traversal function internally.
llvm-svn: 94022
2010-01-20 20:59:29 +00:00
Fariborz Jahanian
4f8a57112f
Settled rule on warning on unimplemented property in
...
category implementation when some implementations
are missing in the primary class implementation.
(fixes radar 6505200).
llvm-svn: 94014
2010-01-20 19:36:21 +00:00
Chris Lattner
6a89c50e23
reduce redundant are's
...
llvm-svn: 94009
2010-01-20 17:53:58 +00:00
Fariborz Jahanian
b36606aa71
Improve performance of warning when not implementing a required
...
property of a protocol (my previous patch). No change in functionality.
(radar 7544809).
llvm-svn: 94005
2010-01-20 17:27:59 +00:00
Benjamin Kramer
9c22cc800f
Make some helper functions static.
...
llvm-svn: 94004
2010-01-20 16:21:40 +00:00
Benjamin Kramer
c1a62aa67d
Don't store a Twine temporary, it's unsafe.
...
llvm-svn: 94003
2010-01-20 16:18:11 +00:00
Duncan Sands
37fe3ee2e2
Fix html glitch. Pointed out by clwi (PR6090).
...
llvm-svn: 94000
2010-01-20 12:40:56 +00:00