aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-02-24Add a note about an IRgen optimization opportunity.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65376 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24Fix PR3635 by handling ## magicallyChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65374 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24In C, when we see a function declaration within a local scope, exportDouglas Gregor
that declaration to global scope so that it can be found from other scopes. This allows us to diagnose redeclaration errors for external declarations across scopes. We also warn when name lookup finds such an out-of-scope declaration. This is part of <rdar://problem/6127293>; we'll also need to do the same thing for variables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65373 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24Prevent accidental copying of CodeGenFunction and CodeGenModule.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65372 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24Pass the CodeGenModule object to GenerateBlockFunction, instead of *this ↵Anders Carlsson
(which will call the copy constructor). Also, since we're creating a new CodeGenFunction object for each block function, we don't need to clear the BreakContinueStack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65371 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24Ensure that we can't break or continue out of a block.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65370 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24scan-build: Prune off any trailing '/' characters in the output directory path.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65368 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24Fix <rdar://problem/6611677>: Add basic transfer function support in the staticTed Kremenek
analyzer for array subscript expressions involving bases that are vectors. This solution is probably a hack: it gets the lvalue of the vector instead of an rvalue like all other types. This should be reviewed (big FIXME in GRExprEngine). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65366 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24Fix two @synchronized bugs found by inspection: the expression to sychronize ↵Daniel Dunbar
on should only be evaluated once, and it is evaluated outside the cleanup scope. Also, lift SyncEnter and SyncExit up in nervous anticipation of x86-64 zero cost EH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65362 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24PTH: Cache *un-cleaned* spellings for literals instead of cleaned spellings.Ted Kremenek
This allows the PTH file to stay 100% in fidelity with the source code and defines away some weird cosmetic bugs for operations such as '-E' where maintaining knowledge of the original literal representation is useful. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65361 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24Improve merging of function declarations. Specifically:Douglas Gregor
- When we are declaring a function in local scope, we can merge with a visible declaration from an outer scope if that declaration refers to an entity with linkage. This behavior now works in C++ and properly ignores entities without linkage. - Diagnose the use of "static" on a function declaration in local scope. - Diagnose the declaration of a static function after a non-static declaration of the same function. - Propagate the storage specifier to a function declaration from a prior declaration (PR3425) - Don't name-mangle "main" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65360 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24PTH: When emitting tokens for literals with cached spellings, change the tokenTed Kremenek
size to that of the *cleaned* spelling. This way 'getSpelling()' for literals in the Preprocessor just works and doesn't read beyond the bounds of the cached spelling buffer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65354 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Updated checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65350 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23ccc: Don't remove result files on error when -save-temps is present.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65349 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Move PTHStatCache within the anonymous namespace.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65348 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Tidy up 'ExecutionContinues' to distinguish between jumping to the end of a ↵Ted Kremenek
'method' or 'funciton'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Find 'clang' in 'bin' subdirectory instead of 'cbin'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65343 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Tidy up the path diagnostic generation logic in BugReporter and remove a ↵Ted Kremenek
case where an "Execution continues..." diagnostic could result in an empty message bubble. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65342 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23fix rdar://6611778, a redefinition of an interface was causing anChris Lattner
assertion when the ivars and method list was reset into the existing interface. To fix this, mark decls as invalid when they are redefined, and don't insert ivars/methods into invalid decls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65340 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Goodbye old-ccc; please use tools/ccc/ccc.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65335 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23We should not generate __weak write barrier on indirect referenceFariborz Jahanian
of a pointer to object; This patch does this odd behavior according to gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65334 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23- Generate error for protocol qualifiers on 'Class'.Steve Naroff
- Generate error for protocol qualifiers on non-ObjC types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65333 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Revert http://llvm.org/viewvc/llvm-project?view=rev&revision=65244.Steve Naroff
Remove support for "Class<P>". Will be making this an error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65332 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Add copy assignment operator, caught by doug.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65331 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Add more boilerplate logic to more accurately reason about autorelease pools.Ted Kremenek
This doesn't change the current functionality, but better codifies the autorelease pool stack itself. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65328 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Add low level support for generating invoke instead of calls.Daniel Dunbar
- No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65325 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Fix 80 col. violations.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65322 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Per Chris L.'s suggestion, use getAsFunctionType() instead of ↵Ted Kremenek
getDesguaredType(). Constify some pointers along the way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65321 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Remove isSuperExpr(), which ignores any casts on 'super'.Steve Naroff
I don't think casting super makes any sense (since it won't effect method lookup). Will discuss with other offline and decide what to do. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65317 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23A few small improvements to Evaluate for stuff I noted in FIXMEs.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65305 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23retain/release checker: For now don't track the retain count of NSWindow ↵Ted Kremenek
objects (opt for false negatives). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65304 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23More retain/release naming convention tests.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65303 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Remove typo.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65302 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23'[NSAutoreleasePool addObject:]' has an 'autorelease' effect, not a ↵Ted Kremenek
DoNothing effect. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65301 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Sema::ActOnInstanceMessage(): Tighen up the lookup rules for handling ↵Steve Naroff
messages to 'Class'. Also improve "super" handling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65300 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23Add test case for PR 2599.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65299 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22Minor cleanup, replace bool with qual_empty().Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65293 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22Contains the following (related to problems found while investigting ↵Steve Naroff
<rdar://problem/6497631> Message lookup is sometimes different than gcc's). - Implement instance/class overloading in ObjCContainerDecl (removing a FIXME). This involved hacking NamedDecl::declarationReplaces(), which took awhile to figure out (didn't realize replace was the default). - Changed Sema::ActOnInstanceMessage() to remove redundant warnings when dealing with protocols. For now, I've omitted the "protocol" term in the diagnostic. It simplifies the code flow and wan't always 100% accurate (e.g. "Foo<Prot>" looks in the class interface, not just the protocol). - Changed several test cases to jive with the above changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65292 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22Make sure to reset the DidCallStackSave variable before emitting a compound ↵Anders Carlsson
statement. Fixes PR3649. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65291 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22More objc gc work. Match gcc's treatment of ivar accessFariborz Jahanian
true a local pointer to objective-c object in generating write barriers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65290 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22Copy some clenaups from Eli to code that I copied. :-)Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65286 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22Cleanp code with some recent suggestions.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65285 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22A bit of Evaluate cleanup. Also, a full audit of what's missing that Eli Friedman
someone would reasonably expect Evaluate to handle for C/ObjC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65284 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22Update to checker-0.162 (fixed header issue in tar.bz2 package).Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65283 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22Reverted back to checker-0.161 because of a header issue.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65281 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22Updated checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65280 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22x86_64 ABI: Actually, we can always pass things we want to pass inDaniel Dunbar
memory using Indirect; this was a holdover from when CGCall wasn't as robust. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65278 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22ccc: Remove unknown host warning, it was breaking gcc's configure.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65276 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22Fix test to be legal on 64-bit systems.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65270 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22Fix regression in naming convention derivation: a method only follows the ↵Ted Kremenek
copy 'rule' if it doesn't already start with 'init', etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65269 91177308-0d34-0410-b5e6-96231b3b80d8