| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
and fall through better.
llvm-svn: 59799
|
| |
|
|
| |
llvm-svn: 59791
|
| |
|
|
| |
llvm-svn: 59789
|
| |
|
|
|
|
| |
- Move out logic for handling the end-of-file to LexEndOfFile (to match the Lexer) class. The logic now mirrors the Lexer class more, which allows us to pass most of the Preprocessor test cases.
llvm-svn: 59768
|
| |
|
|
|
|
| |
code gen. method.
llvm-svn: 59767
|
| |
|
|
|
|
| |
- Add check for returning an undefined value to a caller.
llvm-svn: 59764
|
| |
|
|
|
|
| |
write-barriers.
llvm-svn: 59748
|
| |
|
|
|
|
|
| |
- Move PTHLexer::GetToken() to be inside PTHLexer.cpp.
- When lexing in raw mode, null out identifiers.
llvm-svn: 59744
|
| |
|
|
| |
llvm-svn: 59743
|
| |
|
|
| |
llvm-svn: 59740
|
| |
|
|
|
|
| |
to static function. Added comments.
llvm-svn: 59738
|
| |
|
|
|
|
| |
normal Lexer.
llvm-svn: 59736
|
| |
|
|
|
|
|
|
|
|
| |
- Rename 'CurToken' and 'LastToken' to 'CurTokenIdx' and 'LastTokenIdx'
respectively.
- Add helper methods GetToken(), AdvanceToken(), AtLastToken() to abstract away
details of the token stream. This also allows us to easily replace their
implementation later.
llvm-svn: 59733
|
| |
|
|
|
|
| |
expression (smart_ptr->mem).
llvm-svn: 59732
|
| |
|
|
| |
llvm-svn: 59731
|
| |
|
|
| |
llvm-svn: 59729
|
| |
|
|
|
|
| |
can do basic macro expansion using the PTHLexer.
llvm-svn: 59724
|
| |
|
|
|
|
|
|
|
|
| |
(temporary hack) to test the PTHLexer is that whenever we would create a Lexer
object we instead raw lex a memory buffer first and then use the PTHLexer. This
logic exists only to driver the PTHLexer and will be removed/changed in the
future. Note that the regular path using normal Lexer objects is what is used by
default.
llvm-svn: 59723
|
| |
|
|
| |
llvm-svn: 59716
|
| |
|
|
| |
llvm-svn: 59714
|
| |
|
|
| |
llvm-svn: 59713
|
| |
|
|
| |
llvm-svn: 59712
|
| |
|
|
|
|
|
|
|
|
|
| |
of doing the lookup_decl, the hash lookup is cheap. Also,
typeid doesn't happen enough in real world code to worry about
it.
I'd like to eventually get rid of KnownFunctionIDs from Sema
also, but today is not that day.
llvm-svn: 59711
|
| |
|
|
|
|
|
| |
looking up the "std" identifier is trivial. Just do it, particularly
since this is only done if the namespace hasn't already been looked up.
llvm-svn: 59710
|
| |
|
|
|
|
| |
used in one cold place.
llvm-svn: 59709
|
| |
|
|
|
|
|
| |
just check for it when needed. It doesn't incur real cost
in any hot paths.
llvm-svn: 59708
|
| |
|
|
|
|
|
| |
from Sebastian to enforce that a literal string is passed in,
and use this to avoid having to call strlen on it.
llvm-svn: 59706
|
| |
|
|
| |
llvm-svn: 59695
|
| |
|
|
|
|
|
| |
a Lexer*. This means it will either return the current (normal) file Lexer or a
PTHLexer.
llvm-svn: 59694
|
| |
|
|
|
|
|
| |
information. A diff of the -E output for Cocoa.h shows that there is no change
in output.
llvm-svn: 59693
|
| |
|
|
|
|
| |
of Lexer* (narrower interface).
llvm-svn: 59691
|
| |
|
|
|
|
|
|
| |
LexingRawMode in the ctor of PreprocessorLexer.
- PTHLexer: Use "LastToken" instead of "NumToken"
llvm-svn: 59690
|
| |
|
|
|
|
| |
PTHLexer::DiscardToEndOfLine().
llvm-svn: 59687
|
| |
|
|
|
|
|
| |
diagnostics on use of __weak attribute on fields,
Early support for read/write barriers for objc fields.
llvm-svn: 59682
|
| |
|
|
|
|
|
|
|
|
| |
being called to be converted to a reference-to-function,
pointer-to-function, or reference-to-pointer-to-function. This is done
through "surrogate" candidate functions that model the conversions
from the object to the function (reference/pointer) and the
conversions in the arguments.
llvm-svn: 59674
|
| |
|
|
|
|
| |
an intermediate step to having getCurrentLexer() return a PreprocessorLexer* instead of a Lexer*.
llvm-svn: 59672
|
| |
|
|
|
|
| |
Use PTHLexer::isNextPPTokenLParen() when using the PTHLexer.
llvm-svn: 59671
|
| |
|
|
| |
llvm-svn: 59670
|
| |
|
|
| |
llvm-svn: 59668
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Add variants of IsNonPragmaNonMacroLexer to accept an IncludeMacroStack entry
(simplifies some uses).
- Use IsNonPragmaNonMacroLexer in Preprocessor::LookupFile.
- Add 'FileID' to PreprocessorLexer, and have Preprocessor query this fileid
when looking up the FileEntry for a file
Performance testing of -Eonly on Cocoa.h shows no performance regression because
of this patch.
llvm-svn: 59666
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
with function call syntax, e.g.,
Functor f;
f(x, y);
This is the easy part of handling calls to objects of class type
(C++ [over.call.object]). The hard part (coping with conversions from
f to function pointer or reference types) will come later. Nobody uses
that stuff anyway, right? :)
llvm-svn: 59663
|
| |
|
|
| |
llvm-svn: 59661
|
| |
|
|
|
|
| |
Patch contributed by Jay Foad!
llvm-svn: 59656
|
| |
|
|
|
|
| |
objects as __strong when attribute unspecified.
llvm-svn: 59654
|
| |
|
|
| |
llvm-svn: 59651
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
struct A {
struct B;
};
struct A::B {
void m() {} // Assertion failed: getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."
};
Introduce DeclContext::getLexicalParent which may be different from DeclContext::getParent when nested-names are involved, e.g:
namespace A {
struct S;
}
struct A::S {}; // getParent() == namespace 'A'
// getLexicalParent() == translation unit
llvm-svn: 59650
|
| |
|
|
| |
llvm-svn: 59647
|
| |
|
|
|
|
| |
the other way around.
llvm-svn: 59646
|
| |
|
|
| |
llvm-svn: 59645
|
| |
|
|
|
|
|
|
|
| |
built-in operator candidates. Test overloading of '&' and ','.
In C++, a comma expression is an lvalue if its right-hand
subexpression is an lvalue. Update Expr::isLvalue accordingly.
llvm-svn: 59643
|