aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-11-22remove a sneaky version of Diag hiding in PreprocessorLexer.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59858 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-22Use tryEvaluate for constant exprs.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59857 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-22Change the Lexer::Diag method to not magically silence warnings,Chris Lattner
force the caller to check instead. This eliminates the need (and the risk!) of weird null DiagnosticBuilder's floating around. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59856 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-22Teach tentative parsing to handle block pointers (rdar://6394309)Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59853 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-22fit in 80 colsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59851 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-22reverting this because it breaks some blocks cases, I'll send doug a testcaseTed Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59850 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-22Split the DiagnosticInfo class into two disjoint classes:Chris Lattner
one for building up the diagnostic that is in flight (DiagnosticBuilder) and one for pulling structured information out of the diagnostic when formatting and presenting it. There is no functionality change with this patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59849 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-22Fix predicate: we're not in caching mode if CurPPLexer == 0, not CurLexer == 0.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59848 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21In PTHLexer::DiscardToEndOfLine() use Lex() instead of AdvanceToken(). This ↵Ted Kremenek
handles transitions in the preprocessor state. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59845 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Reenable the default lexer.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59843 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21When creating the raw tokens for PTHLexer, make sure the token representing ↵Ted Kremenek
the file to include is checked for being an identifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59842 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21When creating raw tokens for the PTHLexer specially handle angled strings ↵Ted Kremenek
for #include directives. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59840 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Fixed bugzilla bug# 3095 related to code gen. for @synchronized.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59838 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Implementation of new and delete parsing and sema.Sebastian Redl
This version uses VLAs to represent arrays. I'll try an alternative way next, but I want this safe first. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59835 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21rearrange some fields.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59832 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21merge some simple call diagnostics.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59831 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21print a type in a diagnostic.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59829 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Fields of ivars of struct types are considered ivarsFariborz Jahanian
themselves for gc API generation purposes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59828 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Don't turn off blocks in C++Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59827 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21reapply the (corrected) patch to use the new llvm intrinsics for ↵Chris Lattner
memcpy/memmove etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59824 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Allow redeclaration of typedefs in C++Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59822 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21temporarily revert Sangiv's patch.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59821 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Tiny fix to the parsing of linkage-specificationsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59820 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Fix overloading of non-static member functions that differ in their ↵Douglas Gregor
cv-qualifiers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59819 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Enable some more operator overloading tests, and don't look into an ↵Douglas Gregor
identifier for functions that might not have one git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59818 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21mem[cpy,set,move] intrinsics are now overloaded.Sanjiv Gupta
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59806 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21merge 3 more diagnostics into 1.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59805 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Add the concept of "modifiers" to the clang diagnostic format Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59803 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Change CheckIncrementDecrementOperand to test for common cases firstChris Lattner
and fall through better. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59799 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21move the diagnostic location and ID out of DiagnosticInfo and store it inChris Lattner
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 :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59798 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21move diagnostic insertion methods to be free methods instead ofChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59797 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21testcase for PR3096Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59794 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Cleanup memory management in overloading of operator->, slightlyDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59791 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Don't print canonical types in overloading-related diagnosticsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59789 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Change -verify mode to find the "expected-error" and "expected-warning" stringsChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59774 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Add comment to IsFileLexer, clean up indentation, and tighten how it's written.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59773 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21remove expected-error from #if 0 section of code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59772 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21disable expected-errors in #if parts of the test.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59771 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21split into two tests.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59770 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21PTHLexer:Ted Kremenek
- 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59768 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Consolidated @try and @synchronize into a singleFariborz Jahanian
code gen. method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59767 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Add checker test case: warn about returning an uninitialized value to the ↵Ted Kremenek
caller. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59765 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21- Clean up transfer function logic for 'return' statements.Ted Kremenek
- Add check for returning an undefined value to a caller. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59764 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21Enable test file for 'region store' in addition to basic store.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59762 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-20Support generation of objc_assign_ivar for ivarFariborz Jahanian
write-barriers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59748 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-20PTHLexer:Ted Kremenek
- Move PTHLexer::GetToken() to be inside PTHLexer.cpp. - When lexing in raw mode, null out identifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59744 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-20__weak ivar need not warn.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59743 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-20Introducing objc_assign_ivar to clang.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59740 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-20Added a test case for __weak field decls. Change SetVarDeclObjCAttributeFariborz Jahanian
to static function. Added comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59738 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-20Handle another case where we should use PTHLexer as an alternative to the ↵Ted Kremenek
normal Lexer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59736 91177308-0d34-0410-b5e6-96231b3b80d8