- Nov 21, 2008
-
-
Chris Lattner authored
llvm-svn: 59821
-
Douglas Gregor authored
llvm-svn: 59820
-
Douglas Gregor authored
llvm-svn: 59819
-
Douglas Gregor authored
Enable some more operator overloading tests, and don't look into an identifier for functions that might not have one llvm-svn: 59818
-
Sanjiv Gupta authored
llvm-svn: 59806
-
Chris Lattner authored
llvm-svn: 59805
-
Chris Lattner authored
strings. This allows us to have considerable flexibility in how these things are displayed and provides extra information that allows us to merge away diagnostics that are very similar. Diagnostic modifiers are a string of characters with the regex [-a-z]+ that occur between the % and digit. They may optionally have an argument that can parameterize them. For now, I've added two example modifiers. One is a very useful tool that allows you to factor commonality across diagnostics that need single words or phrases combined. Basically you can use %select{a|b|c}4 with with an integer argument that selects either a/b/c based on an integer value in the range [0..3). The second modifier is also an integer modifier, aimed to help English diagnostics handle plurality. "%s3" prints to 's' if integer argument #3 is not 1, otherwise it prints to nothing. I'm fully aware that 's' is an English concept and doesn't apply to all situations (mouse vs mice). However, this is very useful and we can add other crazy modifiers once we add support for polish! ;-) I converted a couple C++ diagnostics over to use this as an example, I'd appreciate it if others could merge the other likely candiates. If you have other modifiers that you want, lets talk on cfe-dev. llvm-svn: 59803
-
Chris Lattner authored
and fall through better. llvm-svn: 59799
-
Chris Lattner authored
the Diagnostic class. Since we can already only have one diagnostic in flight at a time, this shrinks DiagnosticInfo. This reduces DiagnosticInfo to being basically a rather crazy smart pointer to a DiagnosticInfo :) llvm-svn: 59798
-
Chris Lattner authored
in the DiagnosticInfo class. This requires marking them as taking a const DiagnosticInfo, which is bogus (they logically mutate DI), but works with the C++ type system. llvm-svn: 59797
-
Chris Lattner authored
llvm-svn: 59794
-
Douglas Gregor authored
llvm-svn: 59791
-
Douglas Gregor authored
llvm-svn: 59789
-
Chris Lattner authored
with a raw lexer instead of a PP lexer. This means that -verify doesn't scan #include'd headers for expected-error/warning strings, and it also means that it doesn't ignore them in #if 0. llvm-svn: 59774
-
Ted Kremenek authored
llvm-svn: 59773
-
Chris Lattner authored
llvm-svn: 59772
-
Chris Lattner authored
llvm-svn: 59771
-
Chris Lattner authored
llvm-svn: 59770
-
Ted Kremenek authored
- 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
-
Fariborz Jahanian authored
code gen. method. llvm-svn: 59767
-
Ted Kremenek authored
llvm-svn: 59765
-
Ted Kremenek authored
- Add check for returning an undefined value to a caller. llvm-svn: 59764
-
Ted Kremenek authored
llvm-svn: 59762
-
- Nov 20, 2008
-
-
Fariborz Jahanian authored
write-barriers. llvm-svn: 59748
-
Ted Kremenek authored
- Move PTHLexer::GetToken() to be inside PTHLexer.cpp. - When lexing in raw mode, null out identifiers. llvm-svn: 59744
-
Fariborz Jahanian authored
llvm-svn: 59743
-
Fariborz Jahanian authored
llvm-svn: 59740
-
Fariborz Jahanian authored
to static function. Added comments. llvm-svn: 59738
-
Ted Kremenek authored
llvm-svn: 59736
-
Douglas Gregor authored
llvm-svn: 59735
-
Ted Kremenek authored
- 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
-
Douglas Gregor authored
expression (smart_ptr->mem). llvm-svn: 59732
-
Ted Kremenek authored
llvm-svn: 59731
-
Ted Kremenek authored
Output 'ANALYZE' messages to standard error. This should address the intermixing of 'ANALYZE' and the other diagnostics the clang driver emits to standard error. llvm-svn: 59730
-
Douglas Gregor authored
llvm-svn: 59729
-
Daniel Dunbar authored
- This is fairly gross but although the code is conceptually the same, introducting the union causes gcc 4.2 on x86 (darwin, if that matters) to pessimize LexTokenInternal which is critical to our preprocessor performance. This speeds up -Eonly lexing of Cocoa.h by ~4.7% in my timings and reduces the code size of LexTokenInternal by 8.6%. llvm-svn: 59725
-
Ted Kremenek authored
Rewrote PTHLexer::Lex by digging through the sources of Lexer again. Now we can do basic macro expansion using the PTHLexer. llvm-svn: 59724
-
Ted Kremenek authored
(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
-
Ted Kremenek authored
Added virtual method 'IndirectLex' to PTHLexer. This will likely get removed in the future when we correctly handle #include processing. llvm-svn: 59722
-
Ted Kremenek authored
Preprocessor::isCurrentLexer() now takes a PreprocessorLexer* argument to match against CurPPLexer instead of CurLexer. llvm-svn: 59721
-