aboutsummaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
2010-03-19Visit preprocessing elements (macro instantiations and macroDouglas Gregor
definitions) as part of the translation unit, so that normal visitation, token-annotation, and cursor-at retrieval all see preprocessing elements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98907 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Try to appease MSVC's standard libraryDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98878 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Try to appease MSVCDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98875 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Explicitly link macro instantiations to macro definitions in theDouglas Gregor
preprocessing record. Use that link with clang_getCursorReferenced() and clang_getCursorDefinition() to match instantiations of a macro to the definition of the macro. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98842 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Expose macro definitions as CIndex cursors. These can still only beDouglas Gregor
generated by clang_annotateTokens(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98837 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Introduce the notion of a "preprocessing record", which keeps track ofDouglas Gregor
the macro definitions and macro instantiations that are found during preprocessing. Preprocessing records are *not* generated by default; rather, we provide a PPCallbacks subclass that hooks into the existing callback mechanism to record this activity. The only client of preprocessing records is CIndex, which keeps track of macro definitions and instantations so that they can be exposed via cursors. At present, only token annotation uses these facilities, and only for macro instantiations; both will change in the near future. However, with this change, token annotation properly annotates macro instantiations that do not produce any tokens and instantiations of macros that are later undef'd, improving our consistency. Preprocessing directives that are not macro definitions are still handled by clang_annotateTokens() via re-lexing, so that we don't have to track every preprocessing directive in the preprocessing record. Performance impact of preprocessing records is still TBD, although it is limited to CIndex and therefore out of the path of the main compiler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98836 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18More token-annotation experimentation, preprocessing the annotatedDouglas Gregor
token sequence to detect macro instantiations (that produce at least token). WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98826 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Experimental stab at using relexing to identify preprocessorDouglas Gregor
directives while annotating tokens in CIndex. This functionality should probably be factored out of this routine, but we're not there yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98786 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16Audit all callers of SourceManager::getBufferData(); fix the one thatDouglas Gregor
needs better error recovery. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98667 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16Let SourceManager::getBufferData return StringRef instead of a pair of two ↵Benjamin Kramer
const char*. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98630 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16Give SourceManager a Diagnostic object with which to report errors,Douglas Gregor
and start simplifying the interfaces in SourceManager that can fail. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98594 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15Introduce a new BufferResult class to act as the return type ofDouglas Gregor
SourceManager's getBuffer() (and similar) operations. This abstract can be used to force callers to cope with errors in getBuffer(), such as missing files and changed files. Fix a bunch of callers to use the new interface. Add some very basic checks for file consistency (file size, modification time) into ContentCache::getBuffer(), although these checks don't help much until we've updated the main callers (e.g., SourceManager::getSpelling()). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98585 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15Rename clang_constructUSR_ObjCategory to clang_constructUSR_ObjCCategory.Ted Kremenek
(there was a missing 'C'). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98554 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14Fix thinko and enable clang build on mingw again (hopefully)Anton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98492 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13Revert 98439. There is a bad race condition in sys::Path::makeUnique on win32.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98452 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13Make getTemporaryPath a static member of CIndexer and use it to replace ↵Benjamin Kramer
tmpnam calls. This fixes linker warnings on linux. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98439 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13Implement several CIndex functions for constructing USRs from C-strings ↵Ted Kremenek
instead of AST elements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98421 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12Allow users to set CPPFLAGS and CXXFLAGS on the make command line.Jeffrey Yasskin
Tested: make CPPFLAGS=-m64 CXXFLAGS=-m64 -j8 && (cd tools/clang;make test) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98399 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-08Implement clang_isUnexposed(), a predicate function to simplify filtering outTed Kremenek
unexposed AST elements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97985 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-08Don't enable static analysis support for C++ by default. Users areTed Kremenek
accidentally using it without realizing that it is nowhere close to being generally usable and are reporting crashes that we already know about. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97960 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-08Mark variable as constKovarththanan Rajaratnam
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97951 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-08Extend ObjCMessageExpr for class method sends with the source locationDouglas Gregor
of the class name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97943 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-08Keep track of type source information in the return type of anDouglas Gregor
Objective-C method declaration, e.g., for - (Foo *)myMethod; we now have TypeSourceInfo for the Foo*. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97942 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-07disable these dirs which rely on dynamic linking on mingw/cygwinChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97892 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-05Check if 'Unit' is NULL before trying to iterate over the diagnostics.Ted Kremenek
This obviates a null dereference that can occur when 'NumErrors' is not zero. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97849 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-05Add clang version to crashtracer string.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97848 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-05A little hack to identify unwanted concurrency in CIndexDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97831 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-04c-index-test's printing of linkage was completely broken, as was theDouglas Gregor
test of this functionality. The API worked great, though! :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97736 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03Add '-test-print-linkage-source' option to c-index-testTed Kremenek
to test clang_getCursorLinkage() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97648 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03Export clang_getCursorLinkage().Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97647 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03Add clang_getCursorLinkage(), which returns theTed Kremenek
underlying linkage for the entity referred to by a CXCursor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97646 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02Pass -m32 and -m64 to the static analyzer when using scan-build. Now we canCharles Davis
use scan-build with Wine, for example. Ted, I hope this is OK. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97566 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27When given unsaved files in clang_createTranslationUnitFromSourceFile,Douglas Gregor
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.). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97296 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Frontend: Pull CodeGenAction out more, and eliminate CreateBackendConsumer.Daniel Dunbar
This is the way I would like to move the frontend function towards -- distinct pieces of functionality should be exposed only via FrontendAction implementations which have clean and relatively-stable APIs. This also isolates the surface area in clang which depends on LLVM CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97110 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Driver: Use TextDiagnosticPrinter instead of a custom one.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97102 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23Fix bogus diagnostic format string.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96978 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-22Rework the CIndex API for displaying diagnostics. Instead of printingDouglas Gregor
the diagnostics to a FILE*, return a CXString containing the formatted diagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96823 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-21Remove unused includes.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96760 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-21Attempt to fix the MSVC9 failure with c-indext-test, where the CIndex DLLDouglas Gregor
and the c-index-test executable end up getting different copies of stderr, causing non-deterministic ordering of output. Fixed by flushing the file after printing a diagnostic (only on Windows). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96754 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-19Simplify the CIndex fix-it API, now that we have half-open CXSourceRanges.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96685 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Teach ASTUnit to keep track of temporary files, then delete them whenDouglas Gregor
the ASTUnit itself is destroyed. Fixes <rdar://problem/7649385>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96628 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Re-apply my diagnostics-capture patch for CIndex, with some tweaks toDouglas Gregor
try to address the msvc failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96624 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Revert "Sort visitor methods so we can easily tell what's implemented."Ted Kremenek
This reverts commit 4383e04c75731f8695b8355783f9966ac56b0926. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96622 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Revert "Tidy up order of switch statement. No functionality change."Ted Kremenek
This reverts commit 95575005fc6409df98e6e079caf324308f62171b. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96620 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Revert my CIndex diagnostic changes (r96603, 96606, 96607), which wereDouglas Gregor
breaking the msvc9 builder for unknown reasons. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96618 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Introduce debugging/testing hook clang_enableStackTraces() intoDouglas Gregor
CIndex, so that c-index-test to use it to call lvm::sys::PrintStackTraceOnErrorSignal(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96607 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Resurrect the displayDiagnostics parameter to clang_createIndex(), andDouglas Gregor
display captured diagnostics when we can't return an invalid CXTranslationUnit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96606 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Introduce CIndex API functions for displaying a diagnostic, with someDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96603 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Tidy up order of switch statement. No functionality change.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96602 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Sort visitor methods so we can easily tell what's implemented.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96600 91177308-0d34-0410-b5e6-96231b3b80d8