aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2010-03-19Diagnose conversion of 'Class' to/from objective-c Fariborz Jahanian
object pointer types. Fixes radar 7634850. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98970 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Make the preprocessing record a PPCallbacks subclass itself,Douglas Gregor
eliminating the extra PopulatePreprocessingRecord object. This will become useful once we start writing the preprocessing record to precompiled headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98966 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Optionally store a PreprocessingRecord in the preprocessor itself, andDouglas Gregor
tie its creation to a CC1 flag -detailed-preprocessing-record. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98963 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Try to improve computation of the main file name for debugDouglas Gregor
information, to address recent gdb failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98959 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Pretty-print anonymous types using their kind and presumed location.John McCall
Fixes PR6643. Patch by Mike M! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98946 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Remember the "found declaration" for an overload candidate, which is theJohn McCall
entity (if applicable) which was actually looked up. If a candidate was found via a using declaration, this is the UsingShadowDecl; otherwise, if the candidate is template specialization, this is the template; otherwise, this is the function. The point of this exercise is that "found declarations" are the entities we do access control for, not their underlying declarations. Broadly speaking, this patch fixes access control for using declarations. There is a *lot* of redundant code calling into the overload-resolution APIs; we really ought to clean that up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98945 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Fix a longstanding (but previously unknown) bug in the lazyDouglas Gregor
deserialization of precompiled headers, where the deserialization of the source location entry for a buffer (e.g., macro instantiation scratch space) would overwrite a one-element FileID cache in the source manager. When tickled at the wrong time, we would return the wrong decomposed source location and eventually cause c-index-test to crash. Found by dumb luck. It's amazing this hasn't shown up before. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98940 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18When elevating access along an inheritance path, initialize the computedJohn McCall
access to the (elevated) access of the accessed declaration, if applicable, rather than plunking that access onto the end after we've calculated the inheritance access. Also, being a friend of a derived class gives you public access to its members (subject to later modification by further inheritance); it does not simply ignore a single location of restricted inheritance. Also, when computing the best unprivileged path to a subobject, preserve the information that the worst path might be AS_none (forbidden) rather than a minimum of AS_private. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98899 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18For debug information, get the main file name from the source managerDouglas Gregor
rather than from the -main-file-name flag, since the source manager has proper path information. Fixes <rdar://problem/7769538>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98898 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Make PredefinedExpr::ComputeName() more robust to incorrectTed Kremenek
code when we are printing the name of an Objective-C method whose class has not been declared. Fixes <rdar://problem/7495713>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98874 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Add bounds check in PCHReader. when reading source file entry recordTed Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98873 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Some cleanup, change diagnostic when assigning toFariborz Jahanian
a property which is not lvalue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98848 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Explicitly link macro instantiations to macro definitions in theDouglas Gregor
preprocessing record. Use that link with clang_getCursorReferenced() and clang_getCursorDefinition() to match instantiations of a macro to the definition of the macro. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98842 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Introduce the notion of a "preprocessing record", which keeps track ofDouglas Gregor
the macro definitions and macro instantiations that are found during preprocessing. Preprocessing records are *not* generated by default; rather, we provide a PPCallbacks subclass that hooks into the existing callback mechanism to record this activity. The only client of preprocessing records is CIndex, which keeps track of macro definitions and instantations so that they can be exposed via cursors. At present, only token annotation uses these facilities, and only for macro instantiations; both will change in the near future. However, with this change, token annotation properly annotates macro instantiations that do not produce any tokens and instantiations of macros that are later undef'd, improving our consistency. Preprocessing directives that are not macro definitions are still handled by clang_annotateTokens() via re-lexing, so that we don't have to track every preprocessing directive in the preprocessing record. Performance impact of preprocessing records is still TBD, although it is limited to CIndex and therefore out of the path of the main compiler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98836 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Replace some SmallVectors with arrays.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98833 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18from code inspection, we were treating placement news with one argument asJohn McCall
non-placement news when selecting the corresponding operator delete; this is fixed. Access and ambiguity control for calls to operator new and delete. Also AFAICT git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98818 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Make some typedefs privateKovarththanan Rajaratnam
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98817 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Rename variable to indicate what it is being used forKovarththanan Rajaratnam
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98816 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Redeclaration lookups for parameter names should be flagged as redeclaration ↵John McCall
lookups so they don't trigger diagnostics like (say) access control. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98806 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Refactor argument checking in CallAndMessageChecker to be the sameTed Kremenek
for both CallExprs and ObjCMessageExprs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98800 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18When dumping vtables, also dump the thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98799 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Detect pass-by-value arguments that are structs that containTed Kremenek
uninitialized data. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98796 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Tweak dead stores checker to not emit a warning when initializationTed Kremenek
a scalar variable with a scalar parameter. This is a form of defensive programming. If the variable is unused, it will be caused by -Wunused-variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98795 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Simplify code (and remove 'dyn_cast') by using ↵Ted Kremenek
ObjCProperyDecl::findPropertyDecl(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98794 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Turn several PCH reader assertions into compiler errors, thus makingTed Kremenek
the PCHReader more robust to corrupt or invalid PCH files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98788 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17More work on thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98765 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Implement non-dependent friend functions and classes.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98764 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17ActOnTagDefinitionError is supposed to 'unwind' ActOnTagStartDefinition, notJohn McCall
ActOnStartCXXMemberDeclaration. We haven't started the field collector on this class yet, so don't stop it. Fixes a crash in the VS buildbot and a memory error on all the others. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98760 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Remove warning about shadowing a built-in; built-ins aren't actuallyDouglas Gregor
considered to be a part of the translation unit unless they're named in a way that brings them into existence. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98729 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Entering the main source file in the preprocessor can fail if theDouglas Gregor
source file has been changed. Handle that failure more gracefully. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98727 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Check the inode in addition to size and modification time to determineDouglas Gregor
whether a file has changed since it was originally read. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98726 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Use a simple diagnostic (file modified) when we detect that a file hasDouglas Gregor
changed, rather than trying to point out how it changed. The "why" doesn't matter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98725 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Simplify error path using OwningPtrKovarththanan Rajaratnam
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98722 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Simplify ProcessWarningOptions since it can't failKovarththanan Rajaratnam
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98721 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Issue a proper diagnostic if we couldn't open dump fileKovarththanan Rajaratnam
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98719 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Grant nested classes the access privileges of their enclosing classes.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98710 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Correctly mangle dependent TypenameType.Rafael Espindola
Fixes PR6625. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98707 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Mark CXXThisRegion in the current or parent stack frame context as live so thatZhongxing Xu
their bindings are not removed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98705 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Make -faccess-control and -fno-access-control driver options.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98703 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Clean up after ourselves when there's an error parsing the base clause.John McCall
Fixes the crash-on-invalid in PR6629. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98698 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17Don't "take" the file manager and source manager whenDouglas Gregor
ASTUnit::LoadFromCompilerInvocation() fails to create target information. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98697 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17objective-c patch to provide type safty when blocks are passing orFariborz Jahanian
returning objc objects. There will be a corresponding objective-c++ patch soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98696 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16Issue error when a byref array is accessed in a blockFariborz Jahanian
literal. Fixes radar 7760213. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98693 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16Remove unused variableDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98691 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16Teach SourceManager's content cache to keep track of whether itsDouglas Gregor
buffer was invalid when it was created, and use that bit to always set the "Invalid" flag according to whether the buffer is invalid. This ensures that all accesses to an invalid buffer are marked invalid, improving recovery. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98690 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16Audit all Preprocessor::getSpelling() callers, improving failureDouglas Gregor
recovery for those that need it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98689 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16Implement -Wshadow. Based on a patch by Mike M.!John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98684 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16Perform access control for the implicit calls to base and member destructorsJohn McCall
that occur in constructors (on the unwind path). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98681 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16Update get*LineNumber() and get*ColumnNumber() functions to pass theDouglas Gregor
Invalid bit through; there are no safety-critical callers of these functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98674 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16Audit all callers of SourceManager::getCharacterData(); update some ofDouglas Gregor
them to recover more gracefully on failure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98672 91177308-0d34-0410-b5e6-96231b3b80d8