aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2011-08-09Thread Safety: Added basic argument parsing for all new attributes.Caitlin Sadowski
This patch special cases the parser for thread safety attributes so that all attribute arguments are put in the argument list (instead of a special parameter) since arguments may not otherwise resolve correctly without two-token lookahead. This patch also adds checks to make sure that attribute arguments are lockable objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137130 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09Cleanup; no functionality change.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137126 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09Move the creation of the record type for the state of Objective-C fastDouglas Gregor
enumerations from the ASTContext into CodeGen, so that we don't need to serialize it to AST files. This appears to be the last of the low-hanging fruit for SpecialTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137124 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09Don't serialize the block descriptor or block extended descriptorDouglas Gregor
types to AST files; they're only used by debug info generation anyway, and shouldn't ever exist in the AST anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137122 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09Move the construction of the RecordDecl representing the runtimeDouglas Gregor
layout of a constant NSString from the ASTContext over to CodeGen, since this is solely CodeGen's responsibility. Eliminates one of the unnecessary "special" types that we serialize. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137121 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09Migrate the serialization of ASTContext's AutoDeduceTy andDouglas Gregor
AutoRRefDeductTy from the "special types" block to predefined types. The latter behaves better when loading multiple AST files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137120 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09Provide diag_iterator for iterating over the built-in diagnostic IDs/names ↵Ted Kremenek
in the internal table of DiagnosticIDs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137108 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09Make sure to canonicalize the argument type of a non-type templateDouglas Gregor
argument of enumeration type when checking template arguments. Fixes PR10579. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137101 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09Hand materialization of temporary expressions when emitting a scalarDouglas Gregor
expression. Fxies PR10592. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137086 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09Don't emit memcpy for copying fields of arrays of volatile elements.Fariborz Jahanian
Use the the path that generates a loop. This fixes bogus error that clang puts out. // rdar://9894548 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137080 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-08If no -miphoneos-version-min specified, see if we can set the default based onChad Rosier
-isysroot. rdar://9837120 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137075 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-08Fix another -Wuninitialized assertion failure (this one involving bit casts) ↵Ted Kremenek
resulting from the recent -Wuninitialized changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137068 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-08objective-c: diagnose protocol inconsistencies in following Fariborz Jahanian
situation. When a class explicitly or implicitly (through inheritance) "conformsTo" two protocols which conflict (have methods which conflict). This patch fixes the previous patch where warnings were coming out in non-deterministic order. This is 2nd part of // rdar://6191214. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137055 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-08Make sure FunctionDecls aren't considered during overload resolution if thereKaelyn Uhrain
are explicit template args. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137054 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-08Silence the category-replacing-class-method warning for +load: categoryDavid Chisnall
implementations of +load do not replace the class definition in a meaningful sense, they are run when the category loads, the +load method for class is run when the class is loaded. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137053 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-08Fix typo so we don't use the wrong function for ending ObjC++ catch blocks ↵David Chisnall
(GNU runtimes) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137052 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-08Improved efficiency by using iterator returned by erase, rather then restarting.Chad Rosier
Thanks to David Blaikie for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137051 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-08Fix comment (test commit)Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137039 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-07Avoid fallthrough-branching to an inactive cleanup even if it'sJohn McCall
otherwise required. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137029 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-07Add a __has_feature macro for generalized initializers, turned offSean Hunt
because we don't support them yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137027 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-06Do l-value conversion, etc., on a switch condition expression inJohn McCall
ActOnStartOfSwitchStmt (i.e. before binding up a full-expression) instead of ActOnFinishSwitchStmt. Among other things, this means that property l-values are properly converted inside the full-expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137014 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-06[analyzer] Start sketching out a new BugReporterVisitor that inspects ↵Ted Kremenek
branches and other expressions to generate interesting path events in diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137012 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-06Be sure to destroy the normal entry block of a cleanup that weJohn McCall
aren't actually going to make a normal cleanup for. Sometimes we optimistically create branches to such blocks for fixups, and then we resolve the fixup to somewhere within the cleanup's scope, and then the cleanup is actually not reachable for some reason. The process of resolving the fixup leaves us with switches whose default edge leads to the cleanup; we can replace that with unreachable, then (in many cases) turn the switch into an unconditional branch. Fixes PR10467. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137011 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-06Only look at decls after the current one when checking if it's the last ↵Benjamin Kramer
field in a record. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137009 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-06[analyzer] Simplify logic for ExprEngine::VisitUnaryExprOrTypeTraitExpr to ↵Ted Kremenek
avoid recursion to subexpression. This exposed bugs in the live variables analysis, and a latent analyzer bug in the SymbolReaper. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137006 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-06[analyzer] Change SymbolReaper to store region roots implied by the ↵Ted Kremenek
Environment, allowing it be queried when determining if symbols derived from regions are still live. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137005 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05KeychainAPI checker: Track SymbolMetadata instead of MemRegion in checker ↵Anna Zaks
state so that we could clear the state on evalDeadSymbols; also track the return value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137003 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05Revert 136984 and 136927.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136998 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05Perform array bounds checking in more situations and properly handle specialKaelyn Uhrain
case situations with the unary operators & and *. Also extend the array bounds checking to work with pointer arithmetic; the pointer arithemtic checking can be turned on using -Warray-bounds-pointer-arithmetic. The changes to where CheckArrayAccess gets called is based on some trial & error and a bunch of digging through source code and gdb backtraces in order to have the check performed under as many situations as possible (such as for variable initializers, arguments to function calls, and within conditional in addition to the simpler cases of the operands to binary and unary operator) while not being called--and triggering warnings--more than once for a given ArraySubscriptExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136997 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05Add workaround for built va list (and other builtins) so that running ↵Jonathan D. Turner
ReadAST multiple times does not immediately throw an error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136995 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05Add support for using anonymous bitfields (e.g., int : 0) to enforce alignment.Chad Rosier
This fixes cases where the anonymous bitfield is followed by a bitfield member. E.g., struct t4 { char foo; long : 0; char bar : 1; }; rdar://9859156 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136991 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05Wire up -import-module to run ReadAST for each module loaded.Jonathan D. Turner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136987 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05Let attribute((cdecl)) and company override -mrtd default calling convention.Roman Divacky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136971 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05Flesh out the -Warray-bounds detection of C89 tail-padded one-elementChandler Carruth
arrays. This now suppresses the warning only in the case of a one-element array as the last field in a struct where the array size is a literal '1' rather than any macro expansion or template parameter. This doesn't distinguish between the language standard in use to allow code which dates from C89 era to compile without the warning even in C99 and C++ builds. We could add a separate warning (under a different flag) with fixit hints to switch to a flexible array, but its not clear that this would be desirable. Much of the code using this idiom is striving for maximum portability. Tests were also fleshed out a bit, and the diagnostic itself tweaked to be more pretty w.r.t. single elment arrays. This is more ugly than I would like due to APInt's not being supported by the diagnostic rendering engine. A pseudo-patch for this was proposed by Nicola Gigante, but I reworked it both for several correctness issues and for code style. Sorry this was so long in coming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136965 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05Finally getting around to re-working this to more accurately white-listChandler Carruth
1-element character arrays which are serving as flexible arrays. This is the initial step, which is to restrict the 1-element array whitelist to arrays that are member declarations. I'll refine it from here based on the proposed patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136964 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05Fixed FieldDecl source range.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136963 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05KeychainAPI checker: Generate an error on double allocation. Pull out ↵Anna Zaks
getAsPointeeMemoryRegion so that it could be reused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136952 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05Extend memset/memcpy/memmove checking to include memcmpMatt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136950 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05The continue label in an ARC for-in loop should not involveJohn McCall
releasing the collection. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136949 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-05Have the typo correction in DiagnoseEmptyLookup properly handle templateKaelyn Uhrain
functions when performing function overload resolution. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136948 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-04objc rewriter: Fixes a rewriting of implicit casting of an integralFariborz Jahanian
argument to bool. // rdar://9899834 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136946 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-04More whitespace and naming fixup. No functionality change.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136944 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-04Fix a small bug where DiagnoseEmptyLookup would no longer print any messagesKaelyn Uhrain
when performing typo correction involving any overloaded template functions. The added test cases, while currently demontrating sub-optimal behavior, will not trigger any messages without the 1-line change to SemaExpr.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136943 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-04Specialize diag::warn_unused_call for the "warn_unused_result" attribute, soMatt Beaumont-Gay
it can be controlled with a distinct flag. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136941 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-04Fix assertion failure in -Wuninitialized involving no-op casts. Fixes PR 10577.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136939 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-04KeychainAPI checker: Track additional pair of SecKeychain APIs. Also, keep ↵Anna Zaks
exploring the transition on which a call to allocator function failed (to be able to find errors in examples like ErrorCodesFromDifferentAPISDoNotInterfere). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136930 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-04Whitespace.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136929 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-04objective-c: diagnose protocol inconsistencies in following Fariborz Jahanian
situation. When a class explicitly or implicitly (through inheritance) "conformsTo" two protocols which conflict (have methods which conflict). This is 2nd part of // rdar://6191214. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136927 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-04Add a new libclang API to return a CXCompletionString for an arbitraryDouglas Gregor
cursor, from Connor Wakamo! Addresses <rdar://problem/9087798>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136911 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-04Fix style and remove obviously redundant code.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136907 91177308-0d34-0410-b5e6-96231b3b80d8