| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
preprocessor logic if C++ exceptions are enabled.
llvm-svn: 90378
|
| |
|
|
| |
llvm-svn: 90376
|
| |
|
|
| |
llvm-svn: 90368
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 90080
|
| |
|
|
| |
llvm-svn: 90044
|
| |
|
|
| |
llvm-svn: 90040
|
| |
|
|
|
|
| |
btw, I believe that isMicrosoftInteger can go away; it's not read anywhere
llvm-svn: 90036
|
| |
|
|
|
|
| |
Amine Khaldi!
llvm-svn: 88797
|
| |
|
|
| |
llvm-svn: 88732
|
| |
|
|
| |
llvm-svn: 87087
|
| |
|
|
|
|
| |
Also, always give errors on a token-cache PTH failure.
llvm-svn: 86939
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
should probably always own the header search object, but I'm not sure...
llvm-svn: 86882
|
| |
|
|
| |
llvm-svn: 86760
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 86105
|
| |
|
|
| |
llvm-svn: 86076
|
| |
|
|
| |
llvm-svn: 85834
|
| |
|
|
| |
llvm-svn: 85589
|
| |
|
|
| |
llvm-svn: 85087
|
| |
|
|
| |
llvm-svn: 84436
|
| |
|
|
| |
llvm-svn: 84375
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
length of comment tokens. Patch by Abramo Bagnara!
llvm-svn: 84100
|
| |
|
|
|
|
|
| |
to add a flag noting the presence of a Microsoft extension suffix (i8,
i16, i32, i64). Patch by John Thompson.
llvm-svn: 83591
|
| |
|
|
| |
llvm-svn: 83582
|
| |
|
|
|
|
|
|
|
|
|
| |
-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
|
| |
|
|
|
|
|
| |
real work is performed within Sema. Addresses Chris's comments, but
still retains the heavyweight list-of-multimaps data structure.
llvm-svn: 82459
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Replace strcpy with memcpy while at it.
llvm-svn: 82043
|
| |
|
|
| |
llvm-svn: 81346
|
| |
|
|
|
|
|
| |
Added -fconstant-string-class= option.
Added __has_feature() test for non-fragile ABI.
llvm-svn: 80591
|
| |
|
|
| |
llvm-svn: 79854
|
| |
|
|
| |
llvm-svn: 79824
|
| |
|
|
| |
llvm-svn: 79211
|
| |
|
|
| |
llvm-svn: 77420
|
| |
|
|
|
|
| |
cached token position is at the end
llvm-svn: 77159
|
| |
|
|
| |
llvm-svn: 75832
|
| |
|
|
| |
llvm-svn: 75627
|
| |
|
|
|
|
| |
an incremental patch
llvm-svn: 75622
|
| |
|
|
| |
llvm-svn: 75517
|
| |
|
|
| |
llvm-svn: 75431
|
| |
|
|
|
|
| |
dynamically initialized. Patch by Ryan Flynn!
llvm-svn: 74919
|
| |
|
|
| |
llvm-svn: 74894
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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
|