| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 81346
|
|
|
|
| |
llvm-svn: 79460
|
|
|
|
|
|
|
| |
- Please accept my sincere apologies for the gratuitous elimination of code
duplication, manual string length counting, unnecessary strlen calls, etc.
llvm-svn: 79448
|
|
|
|
| |
llvm-svn: 79444
|
|
|
|
| |
llvm-svn: 79236
|
|
|
|
|
|
|
|
| |
in the HTMLRewriter.
This fixes PR 4602.
llvm-svn: 76647
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows it to accurately measure tokens, so that we get:
t.cpp:8:13: error: unknown type name 'X'
static foo::X P;
~~~~~^
instead of the woefully inferior:
t.cpp:8:13: error: unknown type name 'X'
static foo::X P;
~~~~ ^
Most of this is just plumbing to push the reference around.
llvm-svn: 69099
|
|
|
|
|
|
| |
file in rewrite macros.
llvm-svn: 66961
|
|
|
|
|
|
| |
specific point sizes.
llvm-svn: 66523
|
|
|
|
|
|
| |
Make bubble number decoration look more like circles than ovals.
llvm-svn: 65921
|
|
|
|
| |
llvm-svn: 65903
|
|
|
|
|
|
| |
PathDiagnosticPiece::Kind.
llvm-svn: 65891
|
|
|
|
|
|
| |
'control-flow' diagnostics.
llvm-svn: 65877
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
know how to recover from an error, we can attach a hint to the
diagnostic that states how to modify the code, which can be one of:
- Insert some new code (a text string) at a particular source
location
- Remove the code within a given range
- Replace the code within a given range with some new code (a text
string)
Right now, we use these hints to annotate diagnostic information. For
example, if one uses the '>>' in a template argument in C++98, as in
this code:
template<int I> class B { };
B<1000 >> 2> *b1;
we'll warn that the behavior will change in C++0x. The fix is to
insert parenthese, so we use code insertion annotations to illustrate
where the parentheses go:
test.cpp:10:10: warning: use of right-shift operator ('>>') in template
argument will require parentheses in C++0x
B<1000 >> 2> *b1;
^
( )
Use of these annotations is partially implemented for HTML
diagnostics, but it's not (yet) producing valid HTML, which may be
related to PR2386, so it has been #if 0'd out.
In this future, we could consider hooking this mechanism up to the
rewriter to actually try to fix these problems during compilation (or,
after a compilation whose only errors have fixes). For now, however, I
suggest that we use these code modification hints whenever we can, so
that we get better diagnostics now and will have better coverage when
we find better ways to use this information.
This also fixes PR3410 by placing the complaint about missing tokens
just after the previous token (rather than at the location of the next
token).
llvm-svn: 65570
|
|
|
|
| |
llvm-svn: 65374
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
makes -emit-html do nice things for code like:
#define FOO(X) y
int FOO(4
);
highlighting the FOO instance as well as the ) on the next line properly.
llvm-svn: 64710
|
|
|
|
|
|
|
| |
instantiation, which highlights the arguments of a function like macro
as well as its identifier.
llvm-svn: 64607
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
wine sources. This was happening because HighlightMacros was
calling EnterMainFile multiple times on the same preprocessor
object and getting an assert due to the new #line stuff (the
file in question was bison output with #line directives).
The fix for this is to not reenter the file. Instead,
relex the tokens in raw mode, swizzle them a bit and repreprocess
the token stream. An added bonus of this is that rewrite macros
will now hilight the macro definition as well as its uses. Woo.
llvm-svn: 64480
|
|
|
|
|
|
|
|
| |
only insert spaces between tokens if the code had them or if they
are actually required to avoid pasting. This reuses the same
logic as -E mode.
llvm-svn: 64421
|
|
|
|
| |
llvm-svn: 63097
|
|
|
|
|
|
|
|
|
|
| |
ground work for implementing #line, and fixes the "out of macro ID's"
problem.
There is nothing particularly tricky about the code, other than the
very performance sensitive SourceManager::getFileID() method.
llvm-svn: 62978
|
|
|
|
|
|
| |
no longer such thing as a non-canonical FileID.
llvm-svn: 62499
|
|
|
|
|
|
| |
entire file.
llvm-svn: 62414
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"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
|
|
|
|
|
|
| |
"logical" location, refer to the "instantiation" location.
llvm-svn: 62316
|
|
|
|
|
|
|
|
|
|
|
| |
using LexRawToken, create one and use LexFromRawLexer. This avoids
twiddling the RawLexer flag around and simplifies some code (even
speeding raw lexing up a tiny bit).
This change also improves the token paster to use a Lexer on the stack
instead of new/deleting it.
llvm-svn: 57393
|
|
|
|
|
|
|
| |
"Here is a patch what replaces std::ostream with llvm::raw_ostream. This patch
covers the AST library, but ignores Analysis lib."
llvm-svn: 56185
|
|
|
|
|
|
| |
"This minor patch adds markup of string literals with a red colour."
llvm-svn: 55589
|
|
|
|
| |
llvm-svn: 54854
|
|
|
|
| |
llvm-svn: 53492
|
|
|
|
|
|
|
|
| |
bug. Patch by Jean-Daniel Dupas!
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-July/002166.html
llvm-svn: 53184
|
|
|
|
| |
llvm-svn: 49975
|
|
|
|
| |
llvm-svn: 49896
|
|
|
|
|
|
| |
depends on the column number of the start of the tab.
llvm-svn: 49891
|
|
|
|
| |
llvm-svn: 49888
|
|
|
|
| |
llvm-svn: 49886
|
|
|
|
|
|
| |
macro expansions.
llvm-svn: 49877
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dstor.
clang.cpp: InitializePreprocessor now makes a copy of the contents of PredefinesBuffer and
passes it to the preprocessor object.
clang.cpp: DriverPreprocessorFactory now calls "InitializePreprocessor" instead of this being done in main().
html::HighlightMacros() now takes a PreprocessorFactory, allowing it to conjure up a new
Preprocessor to highlight macros.
class HTMLDiagnostics now takes a PreprocessorFactory* that it can use for html::HighlightMacros().
Updated clients of HTMLDiagnostics to use this new interface.
llvm-svn: 49875
|
|
|
|
| |
llvm-svn: 49871
|
|
|
|
| |
llvm-svn: 49870
|
|
|
|
|
|
|
|
|
|
| |
expanding its definition. This is a pure CSS solution.
Tested on IE7, Firefox 3b4, and Safari 3.1.
Patch by Cedric Venet!
llvm-svn: 49865
|
|
|
|
|
|
| |
but we want some javascript or something toggle their display.
llvm-svn: 49836
|
|
|
|
|
|
| |
preprocessor directives.
llvm-svn: 49828
|
|
|
|
|
|
| |
correctly handle multi-line comments.
llvm-svn: 49827
|
|
|
|
|
|
| |
yet, but it will soon...
llvm-svn: 49825
|
|
|
|
| |
llvm-svn: 49816
|
|
|
|
|
|
|
|
| |
with the Lexer. This is cheaper and gives us some advantages. For now we start
highlighting preprocessor directives (which need improvement), and disable
comments. Comments to be restored later.
llvm-svn: 49815
|
|
|
|
| |
llvm-svn: 49781
|
|
|
|
|
|
| |
colors.
llvm-svn: 49780
|
|
|
|
|
|
|
|
|
| |
allowing us to use a cheaper means to highlight keywords and making
it so that comments won't foul up macro expansions.
Start highlighting macro expansions.
llvm-svn: 49779
|