| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 113125
|
|
|
|
|
|
|
| |
#pragma without requiring it to be in the "clang" namespace, from
Louis Gerbarg!
llvm-svn: 112484
|
|
|
|
| |
llvm-svn: 112392
|
|
|
|
|
|
| |
Patch by Francois Pichet!
llvm-svn: 112391
|
|
|
|
|
|
|
| |
CrashRecovery since it avoids sending a signal which may be intercepted by the
debugger.
llvm-svn: 111449
|
|
|
|
|
|
| |
those crash paths.
llvm-svn: 111311
|
|
|
|
| |
llvm-svn: 111234
|
|
|
|
| |
llvm-svn: 109727
|
|
|
|
| |
llvm-svn: 109725
|
|
|
|
|
|
|
|
| |
__debug overflow_stack'.
- For testing crash reporting stuff... you'd think I could just use some C++
code but Doug keeps fixing stuff!
llvm-svn: 109587
|
|
|
|
|
|
|
|
|
|
|
| |
IdentifierInfos.
When loading the PCH, IdentifierInfos that are associated with pragmas cause declarations that use these identifiers to be deserialized (e.g. the "clang" pragma causes the "clang" namespace to be loaded).
We can avoid this if we just use StringRefs for the pragmas.
As a bonus, since we don't have to create and pass IdentifierInfos, the pragma interfaces get a bit more simplified.
llvm-svn: 108237
|
|
|
|
| |
llvm-svn: 106950
|
|
|
|
| |
llvm-svn: 105830
|
|
|
|
|
|
| |
recovery for those that need it.
llvm-svn: 98689
|
|
|
|
|
|
| |
returns a StringRef. Use it to simplify some repetitive code.
llvm-svn: 97322
|
|
|
|
|
|
|
| |
is #included with "foo.h" style syntax instead of framework syntax.
It produced too much noise.
llvm-svn: 94120
|
|
|
|
|
|
| |
nicer than passing around two const char*'s.
llvm-svn: 93094
|
|
|
|
|
|
|
| |
import other headers within the same framework with the full
framework path, not with a relative include.
llvm-svn: 93083
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
| |
llvm-svn: 75431
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
the file at the point of the pragma. This allows clang to know that all
sourcelocations after the pragma are in a system header.
llvm-svn: 73376
|
|
|
|
| |
llvm-svn: 71572
|
|
|
|
|
|
|
|
|
| |
will let us test for multiple different warning modes in the same
file in regression tests.
This implements rdar://2362963, a 10-year old feature request :)
llvm-svn: 69560
|
|
|
|
|
|
|
|
|
|
| |
support it. I don't know what evaluation method we use for complex
arithmetic, so I don't know whether/if we should warn about use of
CX_LIMITED_RANGE.
This concludes my planned hacking on STDC pragmas, flame away :)
llvm-svn: 69556
|
|
|
|
| |
llvm-svn: 69554
|
|
|
|
| |
llvm-svn: 69551
|
|
|
|
| |
llvm-svn: 69550
|
|
|
|
| |
llvm-svn: 69547
|
|
|
|
|
|
|
| |
Warning to properly report that it is an import/include_next instead of
claiming it is a #include.
llvm-svn: 69023
|
|
|
|
| |
llvm-svn: 67081
|
|
|
|
|
|
|
| |
\0's to created tokens instead of making all clients do it. No functionality
change.
llvm-svn: 66373
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now instead of just tracking the expansion history, also track the full
range of the macro that got replaced. For object-like macros, this doesn't
change anything. For _Pragma and function-like macros, this means we track
the locations of the ')'.
This is required for PR3579 because apparently GCC uses the line of the ')'
of a function-like macro as the location to expand __LINE__ to.
llvm-svn: 64601
|
|
|
|
|
|
| |
redundant #includes. Patch by Anders Johnsen!
llvm-svn: 63271
|
|
|
|
|
|
|
|
|
| |
.def file for each library. This means that adding a diagnostic
to sema doesn't require all the other libraries to be rebuilt.
Patch by Anders Johnsen!
llvm-svn: 63111
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Token now has a class of kinds for "literals", which include
numeric constants, strings, etc. These tokens can optionally have
a pointer to the start of the token in the lexer buffer. This
makes it faster to get spelling and do other gymnastics, because we
don't have to go through source locations.
This change is performance neutral, but will make other changes
more feasible down the road.
llvm-svn: 63028
|
|
|
|
|
|
|
| |
SourceLocation. This requires making some cleanups to token pasting
and _Pragma expansion.
llvm-svn: 62490
|
|
|
|
|
|
|
|
|
|
|
| |
method. This lets us clean up the interface and make it more obvious that
this method is *really really* _Pragma specific.
Note that _Pragma handling uglifies the Lexer in the critical path. It would
be very interesting to consider making _Pragma remapping be a new special
lexer class of its own.
llvm-svn: 62425
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"FileID" a concept that is now enforced by the compiler's type checker
instead of yet-another-random-unsigned floating around.
This is an important distinction from the "FileID" currently tracked by
SourceLocation. *That* FileID may refer to the start of a file or to a
chunk within it. The new FileID *only* refers to the file (and its
#include stack and eventually #line data), it cannot refer to a chunk.
FileID is a completely opaque datatype to all clients, only SourceManager
is allowed to poke and prod it.
llvm-svn: 62407
|
|
|
|
| |
llvm-svn: 62334
|
|
|
|
|
|
| |
notifying PPCallbacks about it.
llvm-svn: 62333
|
|
|
|
|
|
|
|
|
|
| |
documented here:
http://msdn.microsoft.com/en-us/library/7f0aews7(VS.80).aspx
This is according to my understanding reading the docs, I don't know if it
really agrees fully with what VC++ allows.
llvm-svn: 62317
|
|
|
|
|
|
|
| |
information. A diff of the -E output for Cocoa.h shows that there is no change
in output.
llvm-svn: 59693
|
|
|
|
|
|
| |
an intermediate step to having getCurrentLexer() return a PreprocessorLexer* instead of a Lexer*.
llvm-svn: 59672
|
|
|
|
| |
llvm-svn: 59668
|
|
|
|
| |
llvm-svn: 59512
|
|
|
|
|
|
| |
methods.
llvm-svn: 59511
|
|
|
|
| |
llvm-svn: 59482
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 57065
|