summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex
Commit message (Collapse)AuthorAgeFilesLines
...
* Add 'has_feature(cxx_exceptions)' to allow code to determine via ↵Ted Kremenek2009-12-031-0/+3
| | | | | | preprocessor logic if C++ exceptions are enabled. llvm-svn: 90378
* Rename has_feature(rtti) to has_feature(cxx_rtti) for clarity.Ted Kremenek2009-12-031-3/+3
| | | | llvm-svn: 90376
* Add "has_feature" support for C++ RTTI.Ted Kremenek2009-12-031-0/+3
| | | | llvm-svn: 90368
* Extend the source manager with the ability to override the contents ofDouglas Gregor2009-12-022-23/+68
| | | | | | | | | | files with the contents of an arbitrary memory buffer. Use this new functionality to drastically clean up the way in which we handle file truncation for code-completion: all of the truncation/completion logic is now encapsulated in the preprocessor where it belongs (<rdar://problem/7434737>). llvm-svn: 90300
* pass the reason for failure up from MemoryBuffer and report itChris Lattner2009-12-012-4/+7
| | | | | | | | | | | | in diagnostics when we fail to open a file. This allows us to report things like: $ clang test.c -I. test.c:2:10: fatal error: error opening file './foo.h': Permission denied #include "foo.h" ^ llvm-svn: 90276
* Fix PR5633 by making the preprocessor handle the case where we canChris Lattner2009-11-303-11/+22
| | | | | | | | | | stat a file but where mmaping it fails. In this case, we emit an error like: t.c:1:10: fatal error: error opening file '../../foo.h' instead of "cannot find file". llvm-svn: 90110
* remove stall commentNuno Lopes2009-11-291-2/+1
| | | | llvm-svn: 90080
* Remove remaining VISIBILITY_HIDDEN from anonymous namespaces.Benjamin Kramer2009-11-281-8/+7
| | | | llvm-svn: 90044
* Cleanup llvm/Support/Compiler.h include in header filesKovarththanan Rajaratnam2009-11-281-0/+1
| | | | llvm-svn: 90040
* cleanup parsing of MS integer suffixes a little. this fixes PR5616Nuno Lopes2009-11-281-27/+15
| | | | | | btw, I believe that isMicrosoftInteger can go away; it's not read anywhere llvm-svn: 90036
* Move DISABLE_INLINE to the front of the decl so MSVC can parse it. Patch by ↵Benjamin Kramer2009-11-141-4/+4
| | | | | | Amine Khaldi! llvm-svn: 88797
* Add static version of Preprocessor::getSpelling.Daniel Dunbar2009-11-141-2/+12
| | | | llvm-svn: 88732
* Wherein the TargetInfo argument to Preprocessor is made 'const' and propogated.Daniel Dunbar2009-11-132-2/+2
| | | | llvm-svn: 87087
* Switch PTHManager to using diagnostics for most errors.Daniel Dunbar2009-11-121-24/+15
| | | | | | Also, always give errors on a token-cache PTH failure. llvm-svn: 86939
* Remove an overly-eager assertion when replacing tokens with anDouglas Gregor2009-11-121-2/+0
| | | | | | | | | | | annotation token, because some of the tokens we're annotating might not be in the set of cached tokens (we could have consumed them unconditionally). Also, move the tentative parsing from ParseTemplateTemplateArgument into the one caller that needs it, improving recovery. llvm-svn: 86904
* Allow Preprocessor to take ownership of the HeaderSearch object. I think it ↵Daniel Dunbar2009-11-111-1/+7
| | | | | | should probably always own the header search object, but I'm not sure... llvm-svn: 86882
* Add Diagnostic::Report method for reporting diagnostics without a location.Daniel Dunbar2009-11-101-5/+4
| | | | llvm-svn: 86760
* Make LookUpIdentifierInfo const. This makes the Identifiers table mutable and isDaniel Dunbar2009-11-051-1/+1
| | | | | | | | | a little fuzzy, but conceptually it's just uniquing the identifier. Chris, please review. I debated splitting into const/non-const versions where the const one propogated constness to the resulting IdentifierInfo*. llvm-svn: 86106
* StringRefize Preprocessor::getIdentifierInfo.Daniel Dunbar2009-11-051-2/+2
| | | | llvm-svn: 86105
* Kill PreprocessorFactory, which was both morally repugnant and totally unused.Daniel Dunbar2009-11-041-2/+0
| | | | llvm-svn: 86076
* Added __has_include and __has_include_next.John Thompson2009-11-021-2/+129
| | | | llvm-svn: 85834
* Re-arranged some internal functions for coming __has_include changes.John Thompson2009-10-302-62/+70
| | | | llvm-svn: 85589
* Update location of DataTypes.h to reflect move in LLVM with r85086.Chandler Carruth2009-10-261-1/+1
| | | | llvm-svn: 85087
* Move clients to use IdentifierInfo::getNameStart() instead of getName()Daniel Dunbar2009-10-184-12/+4
| | | | llvm-svn: 84436
* Switch to llvm::HashString.Daniel Dunbar2009-10-171-3/+4
| | | | llvm-svn: 84375
* Add support for a chain of stat caches in the FileManager, rather thanDouglas Gregor2009-10-162-2/+3
| | | | | | | | | only supporting a single stat cache. The immediate benefit of this change is that we can now generate a PCH/AST file when including another PCH file; in the future, the chain of stat caches will likely be useful with multiple levels of PCH files. llvm-svn: 84263
* Teach Lexer::MeasureTokenLength to be able to measure theChris Lattner2009-10-141-0/+1
| | | | | | length of comment tokens. Patch by Abramo Bagnara! llvm-svn: 84100
* This fixes support for complex literals, reworked to avoid a goto, andMike Stump2009-10-081-24/+44
| | | | | | | to add a flag noting the presence of a Microsoft extension suffix (i8, i16, i32, i64). Patch by John Thompson. llvm-svn: 83591
* Installation of Clang libraries and headers, from Axel Naumann!Douglas Gregor2009-10-081-3/+0
| | | | llvm-svn: 83582
* Replace the -code-completion-dump option with Douglas Gregor2009-09-222-17/+21
| | | | | | | | | | | -code-completion-at=filename:line:column which performs code completion at the specified location by truncating the file at that position and enabling code completion. This approach makes it possible to run multiple tests from a single test file, and gives a more natural command-line interface. llvm-svn: 82571
* Refactor and simplify the CodeCompleteConsumer, so that all of theDouglas Gregor2009-09-211-12/+13
| | | | | | | real work is performed within Sema. Addresses Chris's comments, but still retains the heavyweight list-of-multimaps data structure. llvm-svn: 82459
* Initial implementation of a code-completion interface in Clang. InDouglas Gregor2009-09-172-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | essence, code completion is triggered by a magic "code completion" token produced by the lexer [*], which the parser recognizes at certain points in the grammar. The parser then calls into the Action object with the appropriate CodeCompletionXXX action. Sema implements the CodeCompletionXXX callbacks by performing minimal translation, then forwarding them to a CodeCompletionConsumer subclass, which uses the results of semantic analysis to provide code-completion results. At present, only a single, "printing" code completion consumer is available, for regression testing and debugging. However, the design is meant to permit other code-completion consumers. This initial commit contains two code-completion actions: one for member access, e.g., "x." or "p->", and one for nested-name-specifiers, e.g., "std::". More code-completion actions will follow, along with improved gathering of code-completion results for the various contexts. [*] In the current -code-completion-dump testing/debugging mode, the file is truncated at the completion point and EOF is translated into "code completion". llvm-svn: 82166
* PR4991: Properly remove trailing newline from __TIMESTAMP__.Benjamin Kramer2009-09-161-3/+3
| | | | | | Replace strcpy with memcpy while at it. llvm-svn: 82043
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-0919-991/+991
| | | | llvm-svn: 81346
* Updated GNU runtime non-fragile ABI.David Chisnall2009-08-311-0/+3
| | | | | | | Added -fconstant-string-class= option. Added __has_feature() test for non-fragile ABI. llvm-svn: 80591
* Replace cerr with errs().Benjamin Kramer2009-08-232-30/+30
| | | | llvm-svn: 79854
* Don't install Clang libraries.Douglas Gregor2009-08-231-0/+3
| | | | llvm-svn: 79824
* Update lexer to work with the new APFloat string parsing.Erick Tryzelaar2009-08-161-2/+6
| | | | llvm-svn: 79211
* CharLiteralParser::IsMultiChar was sometimes uninitialized.Daniel Dunbar2009-07-291-1/+2
| | | | llvm-svn: 77420
* fix segfault (because of erasing after the vector boundaries) when the ↵Nuno Lopes2009-07-261-1/+2
| | | | | | cached token position is at the end llvm-svn: 77159
* Lexically order files in CMakeLists.txt files.Ted Kremenek2009-07-151-2/+2
| | | | llvm-svn: 75832
* Fix the buildAlisdair Meredith2009-07-141-2/+6
| | | | llvm-svn: 75627
* Basic support for C++0x unicode types. Support for literals will follow in ↵Alisdair Meredith2009-07-141-1/+3
| | | | | | an incremental patch llvm-svn: 75622
* There is no need to value initialize this array.Daniel Dunbar2009-07-131-1/+1
| | | | llvm-svn: 75517
* add push/pop semantics for diagnostics. Patch by Louis Gerbarg!Chris Lattner2009-07-121-8/+36
| | | | llvm-svn: 75431
* Convert the CharInfo table to be statically initialized, instead of ↵Chris Lattner2009-07-071-15/+86
| | | | | | dynamically initialized. Patch by Ryan Flynn! llvm-svn: 74919
* fix an out-of-date comment.Chris Lattner2009-07-071-5/+3
| | | | llvm-svn: 74894
* Add support for retrieving the Doxygen comment associated with a givenDouglas Gregor2009-07-023-1/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | declaration in the AST. The new ASTContext::getCommentForDecl function searches for a comment that is attached to the given declaration, and returns that comment, which may be composed of several comment blocks. Comments are always available in an AST. However, to avoid harming performance, we don't actually parse the comments. Rather, we keep the source ranges of all of the comments within a large, sorted vector, then lazily extract comments via a binary search in that vector only when needed (which never occurs in a "normal" compile). Comments are written to a precompiled header/AST file as a blob of source ranges. That blob is only lazily loaded when one requests a comment for a declaration (this never occurs in a "normal" compile). The indexer testbed now supports comment extraction. When the -point-at location points to a declaration with a Doxygen-style comment, the indexer testbed prints the associated comment block(s). See test/Index/comments.c for an example. Some notes: - We don't actually attempt to parse the comment blocks themselves, beyond identifying them as Doxygen comment blocks to associate them with a declaration. - We won't find comment blocks that aren't adjacent to the declaration, because we start our search based on the location of the declaration. - We don't go through the necessary hops to find, for example, whether some redeclaration of a declaration has comments when our current declaration does not. Similarly, we don't attempt to associate a \param Foo marker in a function body comment with the parameter named Foo (although that is certainly possible). - Verification of my "no performance impact" claims is still "to be done". llvm-svn: 74704
* Fix our check for "random whitespace between a \ and newline" to workChris Lattner2009-06-231-2/+3
| | | | | | | | | | | | | | | with dos style newlines. I have a trivial test for this: // RUN: clang-cc %s -verify #define test(x, y) \ x ## y but I don't know how to get svn to not change newlines and testrunner doesn't work with dos style newlines either, so "not worth it". :) rdar://6994000 llvm-svn: 73945
* Fix a crash that can occur when a #pragma handler eats to the end of theChris Lattner2009-06-181-1/+1
| | | | | | | | line, and when the pragma is at the end of a file. In this case, the last token consumed could pop the lexer, invalidating CurPPLexer. Thanks to Peter Thoman for pointing it out. llvm-svn: 73689
OpenPOWER on IntegriCloud