History log of /external/clang/lib/ARCMigrate/Transforms.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/lib/ARCMigrate/Transforms.cpp
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/ARCMigrate/Transforms.cpp
1f9a09d4e50c3e8e622292350823eef776b93e3d 11-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: fixes a bug when in NS_ENUM/NS_OPTIONS
migration, the typedef has annotations.
// rdar://15200602


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
57b1da1588a3f5785ad8bd5d9f2d795d685e1058 14-Sep-2013 Cameron Esfahani <dirty@apple.com> Clean up some Triple usage in clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
181e3ecc0907ae0103586a9f4db52241995a8267 13-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Cleanup handling of UniqueExternalLinkage.

This patch renames getLinkage to getLinkageInternal. Only code that
needs to handle UniqueExternalLinkage specially should call this.

Linkage, as defined in the c++ standard, is provided by
getFormalLinkage. It maps UniqueExternalLinkage to ExternalLinkage.

Most places in the compiler actually want isExternallyVisible, which
handles UniqueExternalLinkage as internal.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
531db82c6ecfb4772c6870731c06ad8718f1e0ce 07-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Add a hasExternalLinkage helper. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
20bcd4ead46e3764a5d1279845f8ed351f4d3984 04-Jan-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Allow removing an -autorelease of a variable initialized in the previous statement.

rdar://11074996

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
ea2224d7078c4d31ad32adbaba4bdc2d85a3d609 04-Jan-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Adds brackets in case statements that "contain" initialization of retaining
variable, thus emitting the "switch case is in protected scope" error.

rdar://12952016

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
55fc873017f10f6f566b182b70f6fc22aefa3464 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort all of Clang's files under 'lib', and fix up the broken headers
uncovered.

This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.

I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
9852f58f50b4fc20914fbce5b4454135a42343f4 01-Dec-2012 Benjamin Kramer <benny.kra@googlemail.com> Don't include Type.h in DeclarationName.h.

Recursively prune some includes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
accaf19bc1129c0273ec50dba52318e60bc29103 14-Nov-2012 Benjamin Kramer <benny.kra@googlemail.com> s/tranform/transform/

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
a8eaf008e92759142982f7b40720b2b2674bd663 23-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix undefined behavior: member function calls where 'this' is a null pointer.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
0a7dd788dbef975f35f273c7ab913f480f7edd60 21-Aug-2012 John McCall <rjmccall@apple.com> Screw around with ObjCRuntime some more, changing the
diagnostics for bad deployment targets and adding a few
more predicates. Includes a patch by Jonathan Schleifer
to enable ARC for ObjFW.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
471c8b49982d1132f30b0b0da27fef94fd6e4f67 04-Jul-2012 Benjamin Kramer <benny.kra@googlemail.com> Drop the ASTContext.h include from DeclFriend.h and DeclTemplate.h.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
684190b8dbe5258f4708ffbd816b8c5ee5b3502d 01-Jun-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Use CFBridgingRetain/CFBridgingRelease instead of __bridge_retained/__bridge_transfer
when migrating.

rdar://11569198

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
1b8fbd3601e009803565e74d2ec54abecb5cbf73 23-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Remove an unused -autorelease, without failing with error, for this
idiom that is used commonly in setters:

[backingValue autorelease];
backingValue = [newValue retain]; // in general a +1 assign

rdar://9914061

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
262bc18e32500558af7cb0afa205b34bd37bafed 30-Apr-2012 David Blaikie <dblaikie@gmail.com> Remove the ref/value inconsistency in filter_decl_iterator.

filter_decl_iterator had a weird mismatch where both op* and op-> returned T*
making it difficult to generalize this filtering behavior into a reusable
library of any kind.

This change errs on the side of value, making op-> return T* and op* return
T&.

(reviewed by Richard Smith)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
44b8e4652d8e20c1e6611b35803e47b4a013b6c2 17-Mar-2012 Jordy Rose <jediknil@belkadan.com> Kill cocoa::deriveNamingConvention and cocoa::followsFundamentalRule. They are now just simple wrappers around method families, and method decls can cache method family lookups. Also, no one is using them right now.

The one difference between ObjCMethodDecl::getMethodFamily and Selector::getMethodFamily is that the former will do some additional sanity checking, and since CoreFoundation types don't look like Objective-C objects, an otherwise interesting method will get a method family of OMF_None. Future clients that use method families should consider how they want to handle CF types.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
19ebac118fbdb6758d4e55be246d72945b8d21b1 16-Mar-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] The hard-coded list of weak-incompatible classes is no longer necessary.
rdar://10673816

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152879 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
2af504bf157cce51bdb4a9bab0e6d3b34f898f6e 16-Mar-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] iOS is always safe to use 'weak'. rdar://10950825

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
4e4d08403ca5cfd4d558fa2936215d3a4e5a528d 11-Mar-2012 David Blaikie <dblaikie@gmail.com> Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).

The member variable is always "LangOpts" and the member function is always "getLangOpts".

Reviewed by Chris Lattner

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
f4b88a45902af1802a1cb42ba48b1c474474f228 10-Mar-2012 John McCall <rjmccall@apple.com> Remove BlockDeclRefExpr and introduce a bit on DeclRefExpr to
track whether the referenced declaration comes from an enclosing
local context. I'm amenable to suggestions about the exact meaning
of this bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152491 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
2a2781805a6b55573d369e34c5dcfba307ce83e9 05-Mar-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt]
-Make sure we don't change to '__weak' a __block variable used as output.
-Make sure we don't apply __weak twice.

Fixes rdar://10520757&10521362

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
bbdfad581fa300fa0d162d968ec14de3c95fc760 26-Jan-2012 Fariborz Jahanian <fjahanian@apple.com> objc-arc: introduce -no-finalize-removal which in gc mode,
leaves "finalize' behind and in arc mode, does not
include it. This allows the migrated source to be compiled
in both gc and arc mode. // rdar://10532441


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
69bda4c027671df7163619f215209529eb236620 19-Jan-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> For Lexer's isAt[Start/End]OfMacroExpansion add an out parameter for the macro
start/end location.

It is commonly needed after calling the function; with this way we avoid
recalculating it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
7723fec9b45b7258c0eddf4cbfd0d335348f5edc 15-Dec-2011 Douglas Gregor <dgregor@apple.com> Keep track of all declarations of an Objective-C class (both forward
declarations and definitions) as ObjCInterfaceDecls within the same
redeclaration chain. This new representation matches what we do for
C/C++ variables/functions/classes/templates/etc., and makes it
possible to answer the query "where are all of the declarations of
this class?"



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
6da4274724f6bd0f24f0fbfd1af076cd14b14710 28-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Integrate GC __weak into property attributes even when we don't have
the implementation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
263d66718365aadc621c3feb9badedf46d787e0e 08-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] NSViewController does not support weak.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
a33849b368b0973e64ee9c49af4c080a59f99eb4 07-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Fix handling NSMakeCollectable inside an objc method.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
b0e1e121b32a9a04b39f1b77b3068bce2f3be05a 07-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] In GC, handle (assign) @properties.

-Move __strong/__weak added to a property type to the property attribute,
e.g. "@property (assign) __weak Foo *prop;" --> "@property (weak) Foo *prop;"

-Remove (assign) in a property so that it becomes strong-by-default in ARC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
12192cf50a96cb59a3039af044b7fa97f043101c 07-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] In GC, change '__weak' -> '__unsafe_unretained' when applied
to objects of classes that don't support ARC weak

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
f38fa73e605587abfa32ab6a39887cdebc0a320a 06-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Collect all the places where GC attributes __strong/__weak occur.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
b0d5db1b7cac1a0680877c17fe92c6d64cf1c730 06-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Refactor PropertiesRewriter to use MigrationContext.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
1fe4203ca05d0a3283efc8a2e8c01ecdf78fbf2e 05-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] In GC, error out when there is a call that returns a pointer to
GC managed non-objc object memory.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
e7ef8556f4ee3012a0479308c993af0fbee448df 04-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] For GC, cleanup and turn -finalize to -dealloc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
e0ac7454bae910ab3d67a92f6e2e5046d3bb8c1a 04-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] In GC, transform NSMakeCollectable to CFBridgingRelease.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
a64ccefdf0ea4e03ec88805d71b0af74950c7472 19-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Rename SourceLocation::getFileLocWithOffset -> getLocWithOffset.

It already works (and is useful with) macro locs as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
aec230d29835285777ecc467e268c83b33a2adde 01-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Fix test/ARCMT/remove-statements.m regression due to
Objective-C method buffering(rdar://10056942)

Turned out the same issue existed for C++ inline methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
18fd0c6915b45c4daafe18e3cd324c13306f913f 27-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] More automatic transformations and safety improvements; rdar://9615812 :

- Replace calling -zone with 'nil'. -zone is obsolete in ARC.
- Allow removing retain/release on a static global var.
- Fix assertion hit when scanning for name references outside a NSAutoreleasePool scope.
- Automatically add bridged casts for results of objc method calls and when calling CFRetain, for example:

NSString *s;
CFStringRef ref = [s string]; -> CFStringRef ref = (__bridge CFStringRef)([s string]);
ref = s.string; -> ref = (__bridge CFStringRef)(s.string);
ref = [NSString new]; -> ref = (__bridge_retained CFStringRef)([NSString new]);
ref = [s newString]; -> ref = (__bridge_retained CFStringRef)([s newString]);
ref = [[NSString alloc] init]; -> ref = (__bridge_retained CFStringRef)([[NSString alloc] init]);
ref = [[s string] retain]; -> ref = (__bridge_retained CFStringRef)([s string]);
ref = CFRetain(s); -> ref = (__bridge_retained CFTypeRef)(s);
ref = [s retain]; -> ref = (__bridge_retained CFStringRef)(s);

- Emit migrator error when trying to cast to CF type the result of autorelease/release:
for

CFStringRef f3() {
return (CFStringRef)[[[NSString alloc] init] autorelease];
}

emits:

t.m:12:10: error: [rewriter] it is not safe to cast to 'CFStringRef' the result of 'autorelease' message; a __bridge cast may result in a pointer to a destroyed object and a __bridge_retained may leak the object
return (CFStringRef)[[[NSString alloc] init] autorelease];
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
t.m:12:3: note: [rewriter] remove the cast and change return type of function to 'NSString *' to have the object automatically autoreleased
return (CFStringRef)[[[NSString alloc] init] autorelease];
^

- Before changing attributes to weak/unsafe_unretained, check if the backing ivar
is set to a +1 object, in which case use 'strong' instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
edc3dccece244a584f8ebdb81da6c962c08e79be 25-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Rename SourceManager::getInstantiationRange to getExpansionRange.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
5f9e272e632e951b1efe824cd16acb4d96077930 23-Jul-2011 Chris Lattner <sabre@nondot.org> remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
them into the clang namespace.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
fd10398c10ffdcbdeb1e3e299c74d70e689f503c 18-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] NSInvocation's [get/set]ReturnValue and [get/set]Argument are only safe
with __unsafe_unretained parameters. Emit error for strong/weak ones. rdar://9206226

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
2c18ca0575b60082f2a9f4563b4071071960d37c 15-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Don't remove retains/releases on a global variable, flag them with errors. rdar://9402555.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
433db06b614f26dc6829e86d6ff469e2cca7d4f9 14-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Convert terminology in the Lexer from 'instantiate' and variants to
'expand'. Also update the public API it provides to the new term, and
propagate that update to the various clients.

No functionality changed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
14c4b4405fdbb54445c2d2d6320ed4f9e2326696 13-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] For properties rewrite 'assign' -> 'weak or unsafe_unretained', 'retain' -> 'strong', and add
'weak or unsafe_unretained' when 'assign' is missing. rdar://9496219&9602589.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
5363e8df5d274cb32c0c47fd2df45aa02cf68dfe 13-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Also avoid 'weak' for forward references to objc classes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
86625b5650cdddc38c0b4cc1eb7fb460478c9d11 13-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Before applying '__weak' check whether the objc class is annotated with objc_arc_weak_reference_unavailable
or is in a list of classes not supporting 'weak'.

rdar://9489367.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
7a759606d93975866051f67104ae58446e55f404 07-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Move SourceManager::isAt[Start/End]OfMacroInstantiation functions to the Lexer, since they depend on it now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
7e5e5f4cc36fe50f46ad76dca7a266434c94f475 07-Jul-2011 John McCall <rjmccall@apple.com> In ARC, reclaim all return values of retainable type, not just those
where we have an immediate need of a retained value.

As an exception, don't do this when the call is made as the immediate
operand of a __bridge retain. This is more in the way of a workaround
than an actual guarantee, so it's acceptable to be brittle here.

rdar://problem/9504800



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
b73377eeb3eff76be134203aebb6068244b177f3 07-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Make the Preprocessor more memory efficient and improve macro instantiation diagnostics.

When a macro instantiation occurs, reserve a SLocEntry chunk with length the
full length of the macro definition source. Set the spelling location of this chunk
to point to the start of the macro definition and any tokens that are lexed directly
from the macro definition will get a location from this chunk with the appropriate offset.

For any tokens that come from argument expansion, '##' paste operator, etc. have their
instantiation location point at the appropriate place in the instantiated macro definition
(the argument identifier and the '##' token respectively).
This improves macro instantiation diagnostics:

Before:

t.c:5:9: error: invalid operands to binary expression ('struct S' and 'int')
int y = M(/);
^~~~
t.c:5:11: note: instantiated from:
int y = M(/);
^

After:

t.c:5:9: error: invalid operands to binary expression ('struct S' and 'int')
int y = M(/);
^~~~
t.c:3:20: note: instantiated from:
\#define M(op) (foo op 3);
~~~ ^ ~
t.c:5:11: note: instantiated from:
int y = M(/);
^

The memory savings for a candidate boost library that abuses the preprocessor are:

- 32% less SLocEntries (37M -> 25M)
- 30% reduction in PCH file size (900M -> 635M)
- 50% reduction in memory usage for the SLocEntry table (1.6G -> 800M)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
7707c75ff98e26aa939557e3bf80490556c00ae4 23-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Remove rewriteAllocCopyWithZone transformation; not needed anymore.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
fd3455a9ebecf67b9a1c46f0675697bf518e6b80 21-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Merge 'removeEmptyStatements' and 'removeDeallocMethod' passes to cut down on one compilation
pass and increase migration speed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
7196d06c2fb020a91a26e727be1871110b4a0dc9 21-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Break apart Transforms.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
8e2ce7fdf9e8033b77788662a9c3f61334eb5daf 21-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Always add '__bridge' cast when 'self' is cast to a C pointer. rdar://9644061

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133480 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
7acddacc921cd0b3f813443a8641eeddb82dfbd4 17-Jun-2011 John McCall <rjmccall@apple.com> Objective-C fast enumeration loop variables are not retained in ARC, but
they should still be officially __strong for the purposes of errors,
block capture, etc. Make a new bit on variables, isARCPseudoStrong(),
and set this for 'self' and these enumeration-loop variables. Change
the code that was looking for the old patterns to look for this bit,
and change IR generation to find this bit and treat the resulting
variable as __unsafe_unretained for the purposes of init/destroy in
the two places it can come up.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp
8f0e8d22960d56f8390f4971e2c0f2f0a0884602 16-Jun-2011 John McCall <rjmccall@apple.com> The ARC Migration Tool. All the credit goes to Argyrios and Fariborz
for this.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/ARCMigrate/Transforms.cpp