aboutsummaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
2010-11-05Teach clang_getCursorReferenced() that aDouglas Gregor
CXXConstructorExpr/CXXTemporaryObjectExpr references the constructor it calls. Then, tweak clang_getCursor() to prefer such a call over a type reference to the type being called. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118297 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-05libclang: Enable requesting a larger stack for several libclang entry pointsDaniel Dunbar
using "safety" threads. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118278 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-05libclang: Add some support for running certain entry points in a "safety"Daniel Dunbar
thread, primarily to get a larger stack. - Yes, I feel dirty. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118274 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-05Fix 80-col violas.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118273 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-04Adjust return type of thread_runner.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118259 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-04c-index-test: Switch to using clang_executeOnThread instead of mucking aboutDaniel Dunbar
with system specific stuff. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118224 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-04libclang: Add clang_executeOnThread, for use in c-index-test (and only there,Daniel Dunbar
preferably). Good thing c-index-test is written in C!!!! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118223 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-03Implement -working-directory.Argyrios Kyrtzidis
When -working-directory is passed in command line, file paths are resolved relative to the specified directory. This helps both when using libclang (where we can't require the user to actually change the working directory) and to help reproduce test cases when the reproduction work comes along. --FileSystemOptions is introduced which controls how file system operations are performed (currently it just contains the working directory value if set). --FileSystemOptions are passed around to various interfaces that perform file operations. --Opening & reading the content of files should be done only through FileManager. This is useful in general since file operations will be abstracted in the future for the reproduction mechanism. FileSystemOptions is independent of FileManager so that we can have multiple translation units sharing the same FileManager but with different FileSystemOptions. Addresses rdar://8583824. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118203 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-03Added cursor visitor that takes a block as an argument. Tested compilingDavid Chisnall
libclang with both clang -fblocks and gcc (no blocks support). Only exposed in the header to compilers that do have blocks support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118170 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-03Improve source-location information for CXXConstructExpr nodes, byDouglas Gregor
ensuring that they cover all of their child nodes. There's still a clang_getCursor()-related issue with CXXFunctionalCastExprs with CXXConstructExprs as children (see FIXME in the test case); I'll look at that separately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118132 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-02Don't add Decls with an invalid location to DeclsInContainer.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118111 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-02Hack to workaround deficiency in ObjC ASTs. Functions and variables may be ↵Ted Kremenek
declared within an @implementation, but we have no way to record that information in the AST. This may cause CursorVisitor to miss these Decls when doing a AST walk. Fixes <rdar://problem/8595462>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118109 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-01Encapsulate within CXCursor the notion of whether a VarDecl* is the first ↵Ted Kremenek
Decl in a DeclGroup. We use this to recover some context that is currently not modeled directly in the AST. Currently VarDecl's cannot properly determine their source range because they have no context on whether or not they appear in a DeclGroup. For the meantime, this bandaid suffices in libclang since that is where the correct SourceRange is directly needed. Fixes <rdar://problem/8595749>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117973 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-01Do not compare invalid source locationsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117946 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-30Turns out that we may end up calling dladdr on GetExecutablePath, give it ↵Benjamin Kramer
external linkage to make sure the lookup works on all platforms. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117813 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-30This function doesn't need external linkage either.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117786 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-29Remove old CrashTracer cruft from CIndex.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117634 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-27Introduce libclang-level options for C++ precompiled preambles,Douglas Gregor
separating out chaining precompiled preambles from non-chaining ones. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117457 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-27Add an environment variable that allows us to turn off threading in c-index-testDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117449 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-22Teach clang_getCursorReferenced() and friends about BlockDeclRefExprs.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117167 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21Improve the implementation of libclang's token-annotation logic forDouglas Gregor
entities in the preprocessing record. Previously, we would only end up getting the first token of a preprocessing record annotated correctly. For example, given #include "foo.h" we would only get the '#' annotated as an inclusion directive; the 'include' and '"foo.h"' tokens would be given the general 'processing directive' annotation. Now, we get proper annotations for entities in the preprocessing record. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117001 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20Extend the preprocessing record and libclang with support forDouglas Gregor
inclusion directives, keeping track of every #include, #import, etc. in the translation unit. We keep track of the source location and kind of the inclusion, how the file name was spelled, and the underlying file to which the inclusion resolved. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116952 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20Call clang_disposeTokens() when we are done with the set of tokens.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116946 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-18Introduce code completion results for Objective-C methods, both whenDouglas Gregor
declaring methods and when sending messages to them, by bringing all of the selector into TypedCheck chunks in the completion result. This way, we can improve the sorting of these results to account for the full selector name rather than just the first chunk. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116746 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-18Do not use absolute path on the clang++ symlink.Oscar Fuentes
Based on a patch by Ryuta Suzuki! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116695 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-17Use a script for creating the clang++ executable.Oscar Fuentes
The previous method used the DESTDIR environment variable at configure time, but sometimes it is only available at install time. See PR8397. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116689 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-16Tweak scan-build to work with naked clang commands.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116651 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-15Add clang_getLocationForOffset() to libclang, for gives a source location ↵David Chisnall
from a character index into a file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116587 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-14Eliminate usage of ObjCSuperExpr used forFariborz Jahanian
'super' as receiver of property or a setter/getter methods. //rdar: //8525788 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116483 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-13Don't claim that things that are Objective-C keywords if preceded by an @ ↵David Chisnall
are keywords unless they are preceded by an @. For example, don't claim that end is a keyword in: unsigned end; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116439 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-13Call InitSections when assembling. This makes clang's output match that ofRafael Espindola
llvm-mc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116405 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-12This patch remove the Win32 XFAIL from remap-complete.cFrancois Pichet
The problem was that text files were open in text mode and Microsoft implementation of fread and write will try to do nasty line-feed conversion which make the line position no longer valid. The fix is to read and write files in binary mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116286 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-12When we load an ASTUnit from command-line arguments, hold on to theDouglas Gregor
diagnostics produced by the driver itself. Previously, we were allowing these to either be dropped or to slip through to stderr. Fixes <rdar://problem/7595339>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116285 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-11Eliminate CIndexer::getClangPath(), since libclang no longer dependsDouglas Gregor
on the presence of a 'clang' executable. Simplify CIndexer::getClangResourcesPath() a bit. Patch up the CMake makefiles to install headers into two locations in the build tree, for those silly cases where 'clang' will end up looking into the wrong build directory for headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116260 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-11Eliminate -fdiagnostics-binary and all of the infrastructure forDouglas Gregor
emitting diagnostics in a binary form to be consumed by libclang, since libclang no longer does any of its work out-of-process, making this code dead. Besides, this stuff never worked at 100% anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116250 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-11Eliminate clang_codeComplete(). libclang clients should be using theDouglas Gregor
faster, in-process, more-configurable clang_codeCompleteAt(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116245 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-11Switch c-index-test from clang_codeComplete() over toDouglas Gregor
clang_codeCompleteAt(). This uncovered a few issues with the latter: - ASTUnit wasn't saving/restoring diagnostic state appropriately between reparses and code completions. - "Overload" completions weren't being passed through to the client git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116241 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-11Eliminate clang_setUseExternalASTGeneration() from libclang. BetweenDouglas Gregor
improvements to the compiler and the introduction of crash recovery, it no longer makes sense to allow this mode. Moreover, this eliminates one use of the "clang" executable from within libclang; we'd like them all to go away. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116207 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-08Fix the mapping of vertical-space cursor kinds to produce a newline,Douglas Gregor
rather than a space. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116097 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-08libclang: Disable LLVM pretty stack trace functionality, which inadvertentlyDaniel Dunbar
sets up signal handlers it shouldn't when we are being used a shared library. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116084 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05Fix a marvelous chained AST writing bug, where we end up with theDouglas Gregor
following amusing sequence: - AST writing schedules writing a type X* that it had never seen before - AST writing starts writing another declaration, ends up deserializing X* from a prior AST file. Now we have two type IDs for the same type! - AST writer tries to write X*. It only has the lower-numbered ID from the the prior AST file, so references to the higher-numbered ID that was scheduled for writing go off into lalaland. To fix this, keep the higher-numbered ID so we end up writing the type twice. Since this issue occurs so rarely, and type records are generally rather small, I deemed this better than the alternative: to keep a separate mapping from the higher-numbered IDs to the lower-numbered IDs, which we would end up having to check whenever we want to deserialize any type. Fixes <rdar://problem/8511624>, I think. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115647 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02Introduce a new libclang function, clang_getCursorDisplayName(), whichDouglas Gregor
produces a simple "display" name that captures the arguments/parameters for a function, function template, class template, or class template specialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115428 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02Teach clang_getCursorType() about base specifiers and other referencesDouglas Gregor
to types. Also, teach clang_getTypeDeclaration() about template specializations, injected-class-names, and elaborated types. Fixes <rdar://problem/8506460>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115425 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02Don't add -fno-spell-checking in libclang if a spell-checking-related ↵Douglas Gregor
argument is already in the command-line arguments git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115420 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02Provide proper source location and range information for C++ baseDouglas Gregor
specifier cursors in libclang. FIXME -=2, fixes the rest of <rdar://problem/8274883>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115419 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01Teach clang_getCursorReferenced() about Objective-C property referenceDouglas Gregor
and protocol expressions. Fixes <rdar://problem/7833565>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115346 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01Extend libclang with an API that determines, given a C++ virtualDouglas Gregor
member function or an Objective-C method, which other member functions/methods it overrides. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115338 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30perform_code_completion(): fix type declaration for TU.Dawn Perchik
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115224 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30c-index-test: Run inside a separate thread iff we have pthread support, toDaniel Dunbar
ensure we at least get some minimal testing of running in a multithreaded environment (for example, having a reduced stack size). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115200 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30Updated scan-build:Tom Care
- Idempotent operations are on by default, to match --analyze in the driver. - Integrated stats calculation based on parsing warnings emitted with the -analyzer-stats flag. The new -stats flag enables this. - New -maxloop flag to pass down a maxloop value to the analyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115123 91177308-0d34-0410-b5e6-96231b3b80d8