aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-01-08Remove debugging variable I forgot to remove in my last commit.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61910 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Cache the "spellings" of string, character, and numeric literals in the PTHTed Kremenek
file. For Cocoa.h, this enlarges the PTH file by 310K (4%). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61909 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Refactor CacheTokens to use a PTHWriter class that creates and manages most ↵Ted Kremenek
of the PTH generation data structures. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61902 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Objc's compatibility-alias semantics and codeFariborz Jahanian
gen issue fix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Update some doxygen comments to be more rich. Remove ↵Ted Kremenek
StoreManager::GetRegionSVal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61894 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Refactor MemRegionManager instance variable into parent class. No ↵Ted Kremenek
functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61888 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Fix PR clang/3291Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61886 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Fix printing of member references to avoid displaying implicitly-generated ↵Douglas Gregor
member references, e.g., for anonymous struct/unions or implicit 'this' in member functions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61885 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Don't ICE when messaging on 'super' receiver when classFariborz Jahanian
of category implementation is undeclared. Issue error instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61882 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Another nasty code gen. bug with trivial fix. Calling classFariborz Jahanian
method on 'super' receiver in a category implementation. Other simpler cases were working by accident. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61880 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Finished semantic analysis of anonymous unions in C++.Douglas Gregor
Duplicate-member checking within classes is still a little messy, and anonymous unions are still completely broken in C. We'll need to unify the handling of fields in C and C++ to make this code applicable in both languages. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61878 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07ccc: Make proper synthetic arguments in places we have to constructDaniel Dunbar
"fake" options, allowing Tools to be oblivious to whether an argument is real or synthetic. This kills off DerivedArg & a number of FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61871 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07ccc: Change Command to take list of strings for argv instead of ArgDaniel Dunbar
instances; this just complicated things and doesn't seem to provide any benefit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61869 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07ObjC AST cleanups/simplifications (phase 1).Steve Naroff
Add ObjCContainerDecl class and have ObjCInterfaceDecl/ObjCCategoryDecl/ObjCProtocolDecl inherit from it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61866 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Use DeclContext::getLookupContext wherever necessary to ensure that we look ↵Douglas Gregor
through transparent contexts git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61861 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Test case for anonymous unions in C++Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61860 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07When determining whether a variable is a file-scoped variable, checkDouglas Gregor
out its lookup context (to see through linkage specifications). Addresses <rdar://problem/6477142>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61848 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07ccc: Extend ArgList to support indexing into a synthetic arg arrayDaniel Dunbar
(for killing off DerivedArg). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61846 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07ccc: Refactor so that all accesses to actual input strings go throughDaniel Dunbar
the ArgList. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61844 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Update checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61843 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Initial implementation of anonymous unions (and, as a GNU extension,Douglas Gregor
structures and classes) in C++. Covers name lookup and the synthesis and member access for the unnamed objects/fields associated with anonymous unions. Some C++ semantic checks are still missing (anonymous unions can't have function members, static data members, etc.), and there is no support for anonymous structs or unions in C. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61840 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07This commit reflects changes to the retain/release checker motivated by myTed Kremenek
recent discussions with Thomas Clement and Ken Ferry concerning the "fundamental rule" for Cocoa memory management (http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/Tasks/MemoryManagementRules.html). Here is the revised behavior of the checker concerning tracking retain/release counts for objects returned from message expressions involving instance methods: 1) Track the returned object if the return type of the message expression is id<..>, id, or a pointer to *any* object that subclasses NSObject. Such objects are assumed to have a retain count. Previously the checker only tracked objects when the receiver of the message expression was part of the standard Cocoa API (i.e., had class names prefixed with 'NS'). This should significantly expand the amount of checking performed. 2) Consider the object owned if the selector of the message expression contains "alloc", "new", or "copy". Previously we also considered "create", but this doesn't follow from the fundamental rule (discussions with the Cocoa folks confirms this). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61837 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07ccc (old): Pass -arch through to assembler if given.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61833 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Allow Objective-C entities to be declared within a transparent contextDouglas Gregor
nested in the translation unit. This fixes <rdar://problem/6476070>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61832 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06SourceManager: Implement "lazy" creation of MemBuffers for source files.Ted Kremenek
- Big Idea: Source files are now mmaped when ContentCache::getBuffer() is first called. While this doesn't change the functionality when lexing regular source files, it can result in source files not being paged in when using PTH. - Performance change: - No observable difference (-fsyntax-only/-Eonly) on Cocoa.h when doing regular source lexing. - No observable time difference (-fsyntax-only/-Eonly) on Cocoa.h when using PTH. We do observe, however, a reduction of 279K in memory mapped source code (3% reduction). The majority of pages from Cocoa.h (and friends) are still being pulled in, however, because any literal will cause Preprocessor::getSpelling() to be called (causing the source for the file to get pulled in). The next possible optimization is to cache literal strings in the PTH file to avoid the need for the original header sources entirely. - Right now there is a preprocessor directive to toggle between "lazy" and "eager" creation of MemBuffers. This is not permanent, and is there in the short term to just test additional optimizations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61827 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Remove redunant (and incorrect) call to SourceManager::PrintStats(). This ↵Ted Kremenek
would be called after a SourceManager was 'cleared', so it printed bogus results. Moreover, these stats are already printed earlier in the code path. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61825 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Another tweak to handle the MS extensions (<rdar://problem/5956221>).Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61821 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Add whitespace to silence the following warning in a Release build: warning: ↵Ted Kremenek
suggest a space before ';' or explicit braces around empty body in 'while' statement git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61820 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Return UnknownVal in RegionStoreManager::getSizeInElements() for unsupported ↵Ted Kremenek
regions. This silences a warning when compiling Release-Asserts builds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61818 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Couple of code gen. fixes in ObjC's colection-statement. HardFariborz Jahanian
to track down, easy to fix. This is on going. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61817 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Fix <rdar://problem/5956221> clang ObjC rewriter: Microsoft-specific ↵Steve Naroff
__fastcall keyword unrecognized. This fix is C++ specific. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61816 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Fix a typo.Cedric Venet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61815 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06- Various comment typo fixes in Sema.hChris Lattner
- Simplify ParseDeclCXX to use early exit on error instead of nesting. - Change ParseDeclCXX to using the 'skip on error' form of ExpectAndConsume. - If we don't see the ; in a using directive, still call the action, for hopefully better error recovery. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61801 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06it is ok to insert empty source ranges into diagnostics, declare variable in ↵Chris Lattner
an if. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61800 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06simplify some code using 'continue' and the new 'isInIdentifierNamespace' ↵Chris Lattner
predicate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61799 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Minor tweaks to the transparent declcontext patchDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61798 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06add a helper method.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61797 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06rename MaybeParseCXXScopeSpecifier -> ParseOptionalCXXScopeSpecifier and Chris Lattner
MaybeParseTypeSpecifier -> ParseOptionalTypeSpecifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61796 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06minor code cleanups, reduce indentation since 'if' block can't fall through.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61795 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06ccc: Remove ValueArg::setValue, this is no longer used.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61794 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06ccc: Track last actual argument instance for each option & changeDaniel Dunbar
driver to lookup this way instead of manually scanning arguments in multiple places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61793 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06document annotation tokens.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61792 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Make Token::setLength assert that the token is not an annotation token.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61791 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Oops. Un-publicify SrcMgr::ContentCache::Buffer.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61790 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Add QualifiedDeclRefExpr, which retains additional source-locationDouglas Gregor
information for declarations that were referenced via a qualified-id, e.g., N::C::value. We keep track of the location of the start of the nested-name-specifier. Note that the difference between QualifiedDeclRefExpr and DeclRefExpr does have an effect on the semantics of function calls in two ways: 1) The use of a qualified-id instead of an unqualified-id suppresses argument-dependent lookup 2) If the name refers to a virtual function, the qualified-id version will call the function determined statically while the unqualified-id version will call the function determined dynamically (by looking up the appropriate function in the vtable). Neither of these features is implemented yet, but we do print out qualified names for QualifiedDeclRefExprs as part of the AST printing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06rename tok::annot_qualtypename -> tok::annot_typename, which is bothChris Lattner
shorter and more accurate. The type name might not be qualified. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61788 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06add TypeTraits.h to the Xcode projectChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61787 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06use getBuffer() to fix compile error. Ted, please review.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61786 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06ccc: Use dummy InputOption and UnknownOption classes instead ofDaniel Dunbar
InputArg and UnknownArg. - Every argument now always corresponds to some option, which simplifies other code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61783 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-06Misc changes to SourceManager::ContentCache:Ted Kremenek
- 'Buffer' is now private and must be accessed via 'getBuffer()'. This paves the way for lazily mapping in source files on demand. - Added 'getSize()' (which gets the size of the content without necessarily accessing the MemBuffer) and 'getSizeBytesMapped()'. - Modifed SourceManager to use these new methods. This reduces the number of places that actually access the MemBuffer object for a file to those that actually look at the character data. These changes result in no performance change for -fsyntax-only on Cocoa.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61782 91177308-0d34-0410-b5e6-96231b3b80d8