Commit Graph

899 Commits

Author SHA1 Message Date
Douglas Gregor c58d05bcf9 Make CXCursor's data opaque.
llvm-svn: 93561
2010-01-15 21:56:13 +00:00
Ted Kremenek 87553c42c0 Add CXCursor.[h,cpp]. These files will centralize the logic for creating/probing CXCursors.
llvm-svn: 93547
2010-01-15 20:35:54 +00:00
Ted Kremenek 8433d1da5e Add USR generation for enums.
llvm-svn: 93543
2010-01-15 20:04:31 +00:00
Douglas Gregor 082c3e69eb Add -cursor-at=file:line:column command line option to c-index-test,
to directly check the results of clang_getCursor(). Also, start
migrating some index-test tests over to c-index test [*] and some
grep-using tests over to FileCheck.

llvm-svn: 93537
2010-01-15 19:40:17 +00:00
Ted Kremenek 63b15c3af7 getLocationFromCursor: If a cursor is a reference and has a referringDecl, using the referringDecl for the location.
llvm-svn: 93520
2010-01-15 18:24:18 +00:00
Ted Kremenek e34cbde383 Switch return site to use clang_getNullCursor().
llvm-svn: 93405
2010-01-14 01:51:23 +00:00
Ted Kremenek e1b5525510 Further tweak USR generation by shorting names and distinguish between namespaces and functions.
llvm-svn: 93404
2010-01-14 01:50:21 +00:00
Ted Kremenek d5c6eafe09 Reorganize CIndex.cpp into clearer sections of functions, and add a utility function 'MakeCXCursor' to centralize the logic for creating CXCursor objects.
llvm-svn: 93359
2010-01-13 21:46:36 +00:00
Ted Kremenek e14e372b67 Add 'referringDecl' field to CXCursor to prepare the way to better model declaration references from other delcarations.
llvm-svn: 93343
2010-01-13 19:59:20 +00:00
Ted Kremenek 95ae5e16b9 Add extra null check in clang_disposeString().
llvm-svn: 93328
2010-01-13 18:45:36 +00:00
Daniel Dunbar 4f2bc55d4e cc1: Factor out CompilerInstance::ExecuteAction which has the majority of the
clang -cc1 logic for running an action against a set of options.
 - This should make it easier to build tools that have a clang -cc1 like
   interface, but aren't actually part of clang -cc1.

llvm-svn: 93282
2010-01-13 00:48:06 +00:00
Daniel Dunbar 7d38d4da61 cc1: Lift creation of the FrontendAction higher.
llvm-svn: 93281
2010-01-13 00:47:51 +00:00
Ted Kremenek 78668fdcfb Move definitions for visitor methods in CDeclVisitor out-of-line.
llvm-svn: 93276
2010-01-13 00:22:49 +00:00
Ted Kremenek 1351b09b04 Make method definitions in TUVisitor out-of-line, making it easy to tell what visitor methods are defined.
Generalize TUVisitor to take a general "root" and "iterator" callback; this is prep. work to merging TUVisitor and CDeclVisitor.

llvm-svn: 93275
2010-01-13 00:13:47 +00:00
Ted Kremenek 58a6a8ec62 Add USR printing modes to c-index-test.
llvm-svn: 93269
2010-01-12 23:34:26 +00:00
Ted Kremenek a188cbbf29 Make clang_getDeclUSR() visible.
llvm-svn: 93268
2010-01-12 23:34:05 +00:00
Ted Kremenek cb674f9492 Rename clang_getUSR() -> clang_getDeclUSR(). For now we take a CXDecl instead of a CXEntity.
Enhance USR generation a bit with support for records.

llvm-svn: 93267
2010-01-12 23:33:42 +00:00
Ted Kremenek 55e3e83b07 Further tweaking of USR generation. WIP.
llvm-svn: 93250
2010-01-12 19:35:53 +00:00
Ted Kremenek 73eccd2c10 Make 'CXTranslationUnitIterator' an argument to perform_test_load(),
perform_test_load_tu(), and perform_test_load_source().

llvm-svn: 93248
2010-01-12 18:53:15 +00:00
Benjamin Kramer 59617be4a5 Remove trailing semicolons and silence MSVC warning about C linkage.
warning C4190: 'GetEntity' has C-linkage specified, but returns UDT
'clang::idx::Entity' which is incompatible with C

llvm-svn: 93237
2010-01-12 11:32:40 +00:00
Daniel Dunbar abd3686f49 Remove duplicate class name, MSVC doesn't like this.
llvm-svn: 93225
2010-01-12 02:34:07 +00:00
Ted Kremenek 5631d2d1a1 Add a boilerplate implementation for clang_getUSR(). WIP.
llvm-svn: 93223
2010-01-12 02:07:58 +00:00
Ted Kremenek 87be3617e3 Change clang_getUSR() to return a CXString instead of a 'const char *'.
llvm-svn: 93213
2010-01-12 00:38:53 +00:00
Ted Kremenek 46157971e9 Make createCXString() a static member function of class CIndex.
llvm-svn: 93212
2010-01-12 00:36:38 +00:00
Ted Kremenek e5f86be138 CIndex:
- Remove unused (and unimplemented) clang_getDeclarationName().
- Remove unused (and unimplemented) clang_getEntity().
- Add clang_getEntityFromDecl(): maps from a CXDecl to a CXEntity)
- Add clang_getDeclaration(): maps from a (CXEntity, CXTranslationUnit) to a CXDecl).

llvm-svn: 93209
2010-01-11 23:56:39 +00:00
Douglas Gregor 504a6ae83e Improve code completion by introducing patterns for the various C and
C++ grammatical constructs that show up in top-level (namespace-level)
declarations, member declarations, template declarations, statements,
expressions, conditions, etc. For example, we now provide a pattern
for

  static_cast<type>(expr)

when we can have an expression, or

  using namespace identifier;

when we can have a using directive.

Also, improves the results of code completion at the beginning of a
top-level declaration. Previously, we would see value names (function
names, global variables, etc.); now we see types, namespace names,
etc., but no values.

llvm-svn: 93134
2010-01-10 23:08:15 +00:00
Ted Kremenek ea903067e1 For now, add back clang_getDeclSource().
llvm-svn: 93003
2010-01-08 17:11:32 +00:00
Ted Kremenek 32b79317a2 More crashtracer enhancements to CIndex. When "popping" a crashtracer string
restore to the one most recently created.

llvm-svn: 92959
2010-01-07 23:13:53 +00:00
Ted Kremenek 7a5ede2ff0 Tidy up crashtracer logic in CIndex.
llvm-svn: 92955
2010-01-07 22:49:05 +00:00
Ted Kremenek b58514e613 Add FileCheck prefix to another location in the output of c-index-test.
llvm-svn: 92890
2010-01-07 01:17:12 +00:00
Ted Kremenek 2a43fd58ee Change clang_getDeclExtent() to have the endpoint point to the last character in the last token.
llvm-svn: 92869
2010-01-06 23:43:31 +00:00
Daniel Dunbar 4ff42d6500 Add _clang_getDeclExtent to export list.
llvm-svn: 92825
2010-01-06 05:41:00 +00:00
Ted Kremenek 991eb3f6c0 Add enhanced crash reporter breadcrumbs for clang_createTranslationUnitFromSourceFile().
llvm-svn: 92820
2010-01-06 03:42:32 +00:00
Ted Kremenek e50486bbca Remove unused variables.
llvm-svn: 92804
2010-01-05 23:22:20 +00:00
Ted Kremenek bde648030b Remove deprecated function 'clang_getDeclSource()'. Use 'clang_getDeclFile()' instead.
llvm-svn: 92803
2010-01-05 23:21:30 +00:00
Ted Kremenek a44d99c934 Add C API hook 'clang_getDeclExtent()', which returns the source extent of a declaration. This implements <rdar://problem/7280072>.
llvm-svn: 92802
2010-01-05 23:18:49 +00:00
Ted Kremenek 9cd9f6d861 Split (mostly nonexistent) USR code out from the main CIndex logic.
llvm-svn: 92789
2010-01-05 22:06:45 +00:00
Ted Kremenek 902292d7ac Add back #include of 'cstdio' to hopefully unbreak the build on Linux.
llvm-svn: 92765
2010-01-05 20:55:39 +00:00
Ted Kremenek 0ec2cca8f2 Split code in CIndex.cpp into multiple source files, and remove some unnecessary #includes.
llvm-svn: 92756
2010-01-05 19:32:54 +00:00
Douglas Gregor 51af7f628c Turn on code-completion for macros within CIndex
llvm-svn: 92500
2010-01-04 19:45:17 +00:00
Daniel Dunbar b2138e5529 Driver: Use "g++" as generic gcc name when running in C++ mode, for platforms
that lack real tool definitions.

llvm-svn: 92164
2009-12-25 20:21:23 +00:00
Kovarththanan Rajaratnam 55e74a1a6a Remove RewriteBlocks. It has been superseded by RewriteObjC
llvm-svn: 92014
2009-12-23 18:03:34 +00:00
Ted Kremenek c0895eb730 Add c++-analyzer symlink (which is used by scan-build)
llvm-svn: 91937
2009-12-22 23:00:32 +00:00
Douglas Gregor b3fa919c2d Extend code-completion results with the type of each result
llvm-svn: 91702
2009-12-18 18:53:37 +00:00
Douglas Gregor f72b6ac87f Change clang_codeComplete API to return the results in a structure on
the heap, so that clients are not forced to copy the results during
the initial iteration. A separate clang_disposeCodeCompleteResults
function frees the returned results.

llvm-svn: 91690
2009-12-18 16:20:58 +00:00
Chandler Carruth 65ce1b7c61 Test for errors during fread() inside c-index-test and handle them
appropriately. This also silences some pedantic GCC warnings.

llvm-svn: 91596
2009-12-17 09:18:43 +00:00
Ted Kremenek 22a8a4bfb9 Compute the right extension for preprocessed Objective-C++ files.
llvm-svn: 91547
2009-12-16 18:32:41 +00:00
Daniel Dunbar 282c9b9cc1 Fix pretty stack traces.
llvm-svn: 91537
2009-12-16 11:47:38 +00:00
Ted Kremenek dca6816d6a Add logic for computing preprocessor file extensions for C++ files.
llvm-svn: 91505
2009-12-16 05:02:47 +00:00
Ted Kremenek f65a0c6768 scan-build/ccc-analyzer: start analyzing C++ FTW.
llvm-svn: 91398
2009-12-15 02:35:54 +00:00