aboutsummaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
2010-02-01In C++, an initializer on a variable doesn't necessarily mean it's the ↵Sebastian Redl
definition. With that in mind, rename getDefinition to getAnyInitializer (to distinguish it from getInit) and reimplement it in terms of isThisDeclarationADefinition. Update all code to use this new function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94999 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-31CIndex/USRs: Disable a bogus assert, we don't want CIndex to crash liberally. IDaniel Dunbar
have sent Ted a test case for this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94935 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-30CIndex: Fix clang_equalLocations for change to ptr_data field.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94930 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-30CIndex: Fix diagnostic callback to not return SourceLocations with a ↵Daniel Dunbar
reference to a temporary LangOptions object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94928 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-30CIndex: Fix ReportSerializedDiagnostics to honor the DiagnosticClient contractDaniel Dunbar
that diagnostics with a source location should occur inside {Begin,End}SourceFile. Note that code completion is currently passing in an invalid LangOptions object due to its implementation, I need to sort this out with Doug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94927 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-29Bring driver link order in CMake into alignment with the order in the Makefile.Chandler Carruth
This includes the fix in r94797 to reflect the new dependency of Sema on Analysis. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94806 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-29Fix linking problem on Linux.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94797 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-29Add an CXXBindReferenceExpr (not used just yet).Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94791 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-29Harden the CIndex implementation a bit, so that it does not assertDouglas Gregor
when given bad inputs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94769 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-29When printing diagnostics in c-index-test, also print source rangesDouglas Gregor
and fix-it information, so we can see everything in one place. Along the way, fix a few bugs with deserialization and query of diagnostics in CIndex. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94768 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-28Introduce serialization and deserialization of diagnostic informationDouglas Gregor
so that CIndex can report diagnostics through the normal mechanisms even when executing Clang in a separate process. This applies both when performing code completion and when using ASTs as an intermediary for clang_createTranslationUnitFromSourceFile(). The serialized format is not perfect at the moment, because it does not encapsulate macro-instantiation information. Instead, it maps all source locations back to the instantiation location. However, it does maintain source-range and fix-it information. To get perfect fidelity from the serialized format would require serializing a large chunk of the source manager; at present, it isn't clear if this code will live long enough for that to matter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94740 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-28Switch the remaining diagnostic printing in CIndex over to theDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94714 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-28Implement a diagnostics callback for the C interface to Clang, so thatDouglas Gregor
clients can format diagnostics as they wish rather than having to parse standard error. All of the important parts of the front end's diagnostics are exposed: text, severity, location, source ranges, and fix-its. The diagnostics callback is now available with clang_createTranslationUnitFromSource() and clang_createTranslationUnit(). As part of this change, CXSourceLocation and CXSourceRange got one pointer larger, since we need to hold on to the SourceManager and LangOptions structures in the source location. This is the minimum amount of information needed for the functions that operate on source locations and ranges (as implemented now). Previously we held on to the ASTContext, but the diagnostics callback can end up with source locations when there is no ASTContext (or preprocessor). Still to do: - Code completion needs to support the diagnostics callback, once we have the ability to (de-)serialize diagnostics. - Eliminate the "displayDiagnostics" argument to createIndex; we'll always pass diagnostics to the callback and let it deal with display. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94709 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-27Fix libCIndex.so's lookup of the clang executable on CMake out-of-tree builds.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94668 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Implement 'clang_getInclusions()' in CIndex. This API allows clients to ↵Ted Kremenek
walk the set of files included in a translation unit via the C API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94575 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Eliminate clang_getInstantiationLocationOffset(), and instead add anDouglas Gregor
offset parameter to clang_getInstantiationLocation(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94573 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Implement clang_annotateTokens(), which associates cursors with eachDouglas Gregor
of the tokens within a raw token stream. This does not even attempt to handle macros yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94561 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Add 'PostVisitTU' callback hook to 'perform_test_load()' to allow a special ↵Ted Kremenek
callback after the translation unit has been loaded (and streamed). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94557 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Allow the 'visitor' argument to 'perform_test_load()' to be NULL. TheTed Kremenek
utility of this change will be made clearer in a subsequent patch when perform_test_load()' does more than stream the AST. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94556 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Introduce a CIndex API for lexing the raw tokens within a given sourceDouglas Gregor
range. The token-annotation function does nothing, yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94551 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Introduce clang_getInstantiationLocationOffset(), which decomposes aDouglas Gregor
source location in file + offset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94497 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25Pull functions that translate from CXSourceLocation to SourceLocation (and ↵Ted Kremenek
back) to a separate header file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94462 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25Fix include guard.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94447 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25Loosen preconditions for clang_getCursorSpelling(), returning an emptyDouglas Gregor
string when given a cursor that does not have a name. Also, don't give silly names for statements and non-reference expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94426 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25Expect the impossibleDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94425 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25Visit the condition variables of while and for loops; also, visit theDouglas Gregor
condition even when we've visited the condition variable, so that we'll see implicit conversions there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94423 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25Split libAnalysis into two libraries: libAnalysis and libChecker.Ted Kremenek
(1) libAnalysis is a generic analysis library that can be used by Sema. It defines the CFG, basic dataflow analysis primitives, and inexpensive flow-sensitive analyses (e.g. LiveVariables). (2) libChecker contains the guts of the static analyzer, incuding the path-sensitive analysis engine and domain-specific checks. Now any clients that want to use the frontend to build their own tools don't need to link in the entire static analyzer. This change exposes various obvious cleanups that can be made to the layout of files and headers in libChecker. More changes pending. :) This change also exposed a layering violation between AnalysisContext and MemRegion. BlockInvocationContext shouldn't explicitly know about BlockDataRegions. For now I've removed the BlockDataRegion* from BlockInvocationContext (removing context-sensitivity; although this wasn't used yet). We need to have a better way to extend BlockInvocationContext (and any LocationContext) to add context-sensitivty. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94406 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25CIndex: Don't crash when visitor passes null child statements, and sprinkle someDaniel Dunbar
asserts in cursor construction functions to make this more obvious. Doug, please check. c-index-test would previously crash on this code: -- for(;;) {} -- Do we need a custom visit of the for statement to cover the variable declarations? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94391 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-24-fno-rtti is now the default.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94379 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23Rename getClangFullVendorVersion() to getClangFullVersion().Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94273 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23Teach the cursor visitor to recurse into the type information ofDouglas Gregor
explicit casts, sizeof, alignof, and compound literals. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94265 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23Extend clang_createTranslationUnitFromSourceFile() to support creatingDouglas Gregor
translation units that include unsaved files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94258 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22Add 'clang_getClangVersion()' function to CIndex. This exposes the full ↵Ted Kremenek
Clang version string through the CIndex API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94242 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22Yet more CIndex API cleanup:Douglas Gregor
- Added more routines to manipulate/compare source locations and ranges - Switched clang_getCursor() over to take a CXSourceLocation rather than file/line/column. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94226 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22Eliminate index-test; all of its tested functionality is now in c-index-test.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94211 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22Eliminate CIndex's dependency on the Clang Index library, since weDouglas Gregor
weren't actually using any of its facilities. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94210 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22Teach CIndex's cursor visitor to restrict its traversal to a specificDouglas Gregor
region of interest (if provided). Implement clang_getCursor() in terms of this traversal rather than using the Index library; the unified cursor visitor is more complete, and will be The Way Forward. Minor other tweaks needed to make this work: - Extend Preprocessor::getLocForEndOfToken() to accept an offset from the end, making it easy to move to the last character in the token (rather than just past the end of the token). - In Lexer::MeasureTokenLength(), the length of whitespace is zero. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94200 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22Visit if, switch statements properlyDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94126 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22Teach the cursor visitor to walk all of the C and Objective-CDouglas Gregor
declarations that have enough source information to make such a walk useful. This includes walking into variable initializers and enum constants, the types behind typedefs, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94124 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-21Teach the cursor visitor to walk statements and expressions, includingDouglas Gregor
a few important subkinds. Now we're cookin' with gas! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94116 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-21Teach the cursor visitor to walk into typeof types (both kinds). ThisDouglas Gregor
is hard to test now; tests will come when we can walk stataements and expressions properly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94099 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-21Teach the cursor visitor to walk into a variety of different TypeLocDouglas Gregor
kinds, so that we see referenced types, protocols, classes, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94085 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-21Introduce type references into the C API, capturing references toDouglas Gregor
typedefs only (for now). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94078 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-20Stash a CXXUnit pointer into each cursor. This allows us to simplifyDouglas Gregor
the interface to clang_visitChildren() by eliminating the CXTranslationUnit pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94051 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-20Eliminate the MakeCXCursor routines that require their callers to know too ↵Douglas Gregor
much about the cursor's storage git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94049 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-20Kill CXEntity and CXDecl. The first has never been used, while theDouglas Gregor
second has been wholly replaced by cursors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94039 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-20Kill some CXDecl-related APIs that have been superceded byDouglas Gregor
CXCursor-based APIs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94037 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-20Kill clang_loadDeclaration() and clang_loadTranslationUnit().Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94034 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-20Switch c-index-test from clang_loadDeclaration() andDouglas Gregor
clang_loadTranslationUnit() over to clang_visitChildren(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94031 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-20Switch the internals of clang_loadTranslationUnit() over to the newDouglas Gregor
cursor-based traversal, and eliminate TUVisitor. We're now down to one visitor for traversing the AST. Yay! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94025 91177308-0d34-0410-b5e6-96231b3b80d8