Douglas Gregor
be2d8c6096
Basic plumbing for generating a precompiled preamble for an
...
ASTUnit/CXTranslationUnit. We can't actually use this preamble yet,
however.
llvm-svn: 109202
2010-07-23 00:33:23 +00:00
Douglas Gregor
99d2cf4838
Introduce a new C API function, clang_parseTranslationUnit(), which
...
will eventually replace
clang_createTranslationUnitFromSourceFile(). The only addition in
clang_parseTranslationUnit() is a set of flags that can control how
the translation unit is loaded. More interesting flags will be coming.
llvm-svn: 109027
2010-07-21 18:52:53 +00:00
Douglas Gregor
aa21cc401b
Introduce a new libclang API, clang_reparseTranslationUnit(), which
...
reparses an already-parsed translation unit. At the moment it's just a
convenience function, but we hope to use it for performance
optimizations.
llvm-svn: 108756
2010-07-19 21:46:24 +00:00
Ted Kremenek
c62ab8d064
Add CXType support for querying the return type of Objective-C methods. This is done by
...
adding a clang_getCursorResultType() function (which complements clang_getResultType()).
llvm-svn: 106473
2010-06-21 20:48:56 +00:00
Ted Kremenek
c150887fef
Add CXType support for FunctionNoProto and FunctionProto types. This includes adding a new
...
function, clang_getResultType(), which returns the result type of the function type.
llvm-svn: 106459
2010-06-21 20:15:39 +00:00
Daniel Dunbar
e6c1daa8fd
Makefile: Switch Clang Makefiles to always include the top-level Clang Makefile.
...
- This eliminates most dependencies on how Clang is installed relative to LLVM.
llvm-svn: 105637
2010-06-08 20:34:18 +00:00
Ted Kremenek
31729162bc
Remove clang_isFromMainFile(). It doesn't work correctly with CXDiagnostics, and we shouldn't
...
have an API around that cannot be implemented correctly yet.
llvm-svn: 104849
2010-05-27 16:57:42 +00:00
Douglas Gregor
a2db793ff0
Introduce priorities into the code-completion results.
...
llvm-svn: 104751
2010-05-26 22:00:08 +00:00
Ted Kremenek
76a434840a
Add libclang function 'clang_isFromMainFile()' (which just wraps SourceManager::isFromMainFile()).
...
llvm-svn: 104208
2010-05-20 02:59:19 +00:00
Ted Kremenek
08de5c1418
Move CXCursor_FirstDecl definition later to make the results more readable in the debugger.
...
llvm-svn: 104171
2010-05-19 21:51:10 +00:00
Ted Kremenek
84d2bd759f
Remove clang_isDeclarationADefinition() since its functionality is already provided by clang_isCursorDefinition().
...
llvm-svn: 104138
2010-05-19 18:36:55 +00:00
Ted Kremenek
26bde774df
Add clang support for IBOutletCollection.
...
llvm-svn: 104135
2010-05-19 17:38:06 +00:00
Ted Kremenek
a10f12829f
Add function 'clang_isTagDeclDefinition()' to allow clients of libclang to distinguish between
...
forward declarations and definitions of structs/classes/enums.
llvm-svn: 104075
2010-05-18 22:32:15 +00:00
Ted Kremenek
9cfe9e6a4a
Add libclang function 'clang_CXXMethod_isStatic' to query of a C++ method
...
is declared static.
llvm-svn: 103963
2010-05-17 20:06:56 +00:00
Ted Kremenek
6bca984b54
Add CXType and an initial set of supporting functions to libclang. This exposes details of
...
Clang's representation of the C type system to clients. It is nowhere near complete, and will
be expanded on demand.
llvm-svn: 103809
2010-05-14 21:29:26 +00:00
Ted Kremenek
b80cba5d7d
Add CXCursor support for LinkageSpecDecl (e.g., 'extern "C"').
...
llvm-svn: 103224
2010-05-07 01:04:29 +00:00
Ted Kremenek
bd67fb208d
Add CXCursor support for C++ namespaces.
...
llvm-svn: 103211
2010-05-06 23:38:21 +00:00
Daniel Dunbar
9f84c7b600
Move include installation steps to better location, inside each include dir instead of at the top-level.
...
Also, don't set NO_INSTALL=1 for c-index-test.
llvm-svn: 102724
2010-04-30 17:59:38 +00:00
Ted Kremenek
ee457516e6
Make CXLanguage_Invalid the first enum value (with '0' as its value) in CXLanguageKind.
...
llvm-svn: 101287
2010-04-14 20:58:32 +00:00
Ted Kremenek
225b8e39f1
Add cursor kind for C++ methods.
...
llvm-svn: 101193
2010-04-13 23:39:06 +00:00
Ted Kremenek
4ed2925b91
Add 'clang_getCursorLanguage' to return the "language" of the AST element (e.g., distinguish between C and Objective-C language features). Currently this only returns results for declarations.
...
llvm-svn: 101070
2010-04-12 21:22:16 +00:00
Ted Kremenek
de24a940a7
Update doxygen comments about lifetime requirements of CXUnsaveFile data arguments.
...
llvm-svn: 101054
2010-04-12 18:47:26 +00:00
Ted Kremenek
33b9a42f41
Add CIndex support for blocks.
...
llvm-svn: 100989
2010-04-11 21:47:37 +00:00
Ted Kremenek
e184ac5a66
Make the CIndex API more resilient to being used on invalid code.
...
llvm-svn: 98981
2010-03-19 20:39:03 +00:00
Douglas Gregor
06d6d32762
Expose macro definitions as CIndex cursors. These can still only be
...
generated by clang_annotateTokens().
llvm-svn: 98837
2010-03-18 18:04:21 +00:00
Douglas Gregor
02ded2a56c
More token-annotation experimentation, preprocessing the annotated
...
token sequence to detect macro instantiations (that produce at least
token). WIP.
llvm-svn: 98826
2010-03-18 15:23:44 +00:00
Douglas Gregor
92a524fd47
Experimental stab at using relexing to identify preprocessor
...
directives while annotating tokens in CIndex. This functionality
should probably be factored out of this routine, but we're not there
yet.
llvm-svn: 98786
2010-03-18 00:42:48 +00:00
Ted Kremenek
bc1a67bee3
Rename clang_constructUSR_ObjCategory to clang_constructUSR_ObjCCategory.
...
(there was a missing 'C').
llvm-svn: 98554
2010-03-15 17:38:58 +00:00
Ted Kremenek
d071c6019a
Implement several CIndex functions for constructing USRs from C-strings instead of AST elements.
...
llvm-svn: 98421
2010-03-13 02:50:34 +00:00
Ted Kremenek
ff9021b675
Implement clang_isUnexposed(), a predicate function to simplify filtering out
...
unexposed AST elements.
llvm-svn: 97985
2010-03-08 21:17:29 +00:00
Ted Kremenek
fb4961dfd0
Add clang_getCursorLinkage(), which returns the
...
underlying linkage for the entity referred to by a
CXCursor.
llvm-svn: 97646
2010-03-03 06:36:57 +00:00
Douglas Gregor
89a56c561f
When given unsaved files in clang_createTranslationUnitFromSourceFile,
...
copy the source buffers provided rather than referencing them
directly, so that the caller can free those buffers immediately after
calling clang_createTranslationUnitFromSourceFile(). Otherwise, we
risk hitting those buffers later (when building source ranges, forming
diagnostics, etc.).
llvm-svn: 97296
2010-02-27 01:32:48 +00:00
Douglas Gregor
d770f73fac
Rework the CIndex API for displaying diagnostics. Instead of printing
...
the diagnostics to a FILE*, return a CXString containing the formatted
diagnostic.
llvm-svn: 96823
2010-02-22 23:17:23 +00:00
Douglas Gregor
836ec94c8e
Simplify the CIndex fix-it API, now that we have half-open CXSourceRanges.
...
llvm-svn: 96685
2010-02-19 18:16:06 +00:00
Douglas Gregor
1e21cc7d19
Re-apply my diagnostics-capture patch for CIndex, with some tweaks to
...
try to address the msvc failures.
llvm-svn: 96624
2010-02-18 23:07:20 +00:00
Douglas Gregor
9773e3d077
Revert my CIndex diagnostic changes (r96603, 96606, 96607), which were
...
breaking the msvc9 builder for unknown reasons.
llvm-svn: 96618
2010-02-18 22:27:07 +00:00
Douglas Gregor
81d53769b5
Introduce debugging/testing hook clang_enableStackTraces() into
...
CIndex, so that c-index-test to use it to call
lvm::sys::PrintStackTraceOnErrorSignal().
llvm-svn: 96607
2010-02-18 20:22:25 +00:00
Douglas Gregor
707cf72cb8
Resurrect the displayDiagnostics parameter to clang_createIndex(), and
...
display captured diagnostics when we can't return an invalid
CXTranslationUnit.
llvm-svn: 96606
2010-02-18 20:11:31 +00:00
Douglas Gregor
06dcf0375b
Introduce CIndex API functions for displaying a diagnostic, with some
...
knobs to control formatting. Eventually, I'd like to merge the
implementation of this code with the TextDiagnosticPrinter, so that
it's easy for CIndex clients to produce beautiful diagnostics like the
clang compiler does.
Use this new function to display diagnostics within c-index-test.
llvm-svn: 96603
2010-02-18 19:08:21 +00:00
Douglas Gregor
33cdd81064
Rework how CIndex handles diagnostics. Rather than using a callback,
...
we attach diagnostics to translation units and code-completion
results, so they can be queried at any time.
To facilitate this, the new StoredDiagnostic class stores a diagnostic
in a serializable/deserializable form, and ASTUnit knows how to
capture diagnostics in this stored form. CIndex's CXDiagnostic is a
thin wrapper around StoredDiagnostic, providing a C interface to
stored or de-serialized diagnostics.
I've XFAIL'd one test case temporarily, because currently we end up
storing diagnostics in an ASTUnit that's never returned to the user
(because it contains errors). I'll introduce a temporary fix for this
soon; the real fix will be to allow us to return and query invalid ASTs.
llvm-svn: 96592
2010-02-18 18:08:43 +00:00
Ted Kremenek
bff31437ef
Start adding cursor kinds for attributes, with first exposing
...
IBActionAttr and IBOutletAttr respectively.
llvm-svn: 96563
2010-02-18 03:09:07 +00:00
Daniel Dunbar
4053faef8e
Fix comment.
...
llvm-svn: 96468
2010-02-17 08:07:44 +00:00
Ted Kremenek
f602f96e60
Convert clang_getCompletionChunkText() to return a CXString.
...
llvm-svn: 96439
2010-02-17 01:42:24 +00:00
Ted Kremenek
29004673f7
Change clang_getCursorKindSpelling() to return a CXString
...
instead of a 'const char *'.
llvm-svn: 96425
2010-02-17 00:41:32 +00:00
Ted Kremenek
c560b6835e
Change clang_getFileName() to return a 'CXString' instead of 'const char *'.
...
llvm-svn: 96424
2010-02-17 00:41:20 +00:00
Daniel Dunbar
02968e53cf
CIndex: Switch CXSourceRange to proper half-open intervals.
...
- Doug, please review.
llvm-svn: 96162
2010-02-14 10:02:57 +00:00
Ted Kremenek
a3e657064b
Make the following functions thread-safe but having them return an std::string that is reconstructed
...
every time they are called:
getClangRevision()
getClangFullRepositoryVersion()
getClangFullVersion()
llvm-svn: 96033
2010-02-12 22:54:40 +00:00
Douglas Gregor
4b8fd6d3d3
Clean up the CIndex interface to diagnostic ranges. Thanks, Daniel!
...
llvm-svn: 95602
2010-02-08 23:11:56 +00:00
Douglas Gregor
408bb74ae6
Note that a CXIndex cannot be destroyed until after all of its translation units have been destroyed
...
llvm-svn: 95598
2010-02-08 23:03:06 +00:00
Douglas Gregor
ba965fb2a7
Switch the remaining diagnostic printing in CIndex over to the
...
diagnostic callback mechanism, so all diagnostics now go through that
callback. Also, eliminate the displayDiagnostics flag to
clang_createIndex(), since it is no longer necessary: the client
determines whether to display diagnostics or not.
llvm-svn: 94714
2010-01-28 00:56:43 +00:00