• Home
  • History
  • Annotate
  • only in /external/clang/test/ARCMT/
History log of /external/clang/test/ARCMT/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ef8225444452a1486bd721f3285301fe84643b00 21-Jul-2014 Stephen Hines <srhines@google.com> Update Clang for rebase to r212749.

This also fixes a small issue with arm_neon.h not being generated always.

Includes a cherry-pick of:
r213450 - fixes mac-specific header issue
r213126 - removes a default -Bsymbolic on Android

Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
bjcmt-arc-cf-annotations.m
bjcmt-arc-cf-annotations.m.result
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
C-check-warn-nsalloc.m
nputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h
nputs/Module.framework/Headers/Buried/Treasure.h
nputs/Module.framework/Headers/Module.h
nputs/Module.framework/Headers/NotInModule.h
nputs/Module.framework/Headers/Sub.h
nputs/Module.framework/Headers/Sub2.h
nputs/Module.framework/Module
nputs/Module.framework/PrivateHeaders/ModulePrivate.h
nputs/module.map
igrate-on-pch-and-module.m
bjcmt-instancetype-unnecessary-diff.m
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
C-check-warn-nsalloc.m
C-check.m
C-no-arc-runtime.m
C-no-arc-runtime.m.result
C-no-finalize-removal.m
C-no-finalize-removal.m.result
C.m
C.m.result
pi.m
pi.m.result
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
tautorelease-2.m
tautorelease-2.m.result
tautorelease-3.m
tautorelease-3.m.result
tautorelease-check.m
tautorelease.m
tautorelease.m.result
utoreleases.m
utoreleases.m.result
heck-with-pch.m
hecking-in-arc.m
hecking.m
xx-checking.mm
xx-rewrite.mm
xx-rewrite.mm.result
ealloc.m
ealloc.m.result
esignated-init-in-header/designated-init-in-header.m
esignated-init-in-header/file1.m.in
esignated-init-in-header/file2.m.in
esignated-init-in-header/file2.m.in.result
esignated-init-in-header/header1.h
esignated-init-in-header/header1.h.result
nit.m
nit.m.result
igrate-plist-output.m
igrate-space-in-path.m
igrate-with-pch.m
igrate.m
o-canceling-bridge-to-bridge-cast.m
onobjc-to-objc-cast-2.m
onobjc-to-objc-cast.m
onobjc-to-objc-cast.m.result
bjcmt-arc-cf-annotations.m
bjcmt-arc-cf-annotations.m.result
bjcmt-atomic-property.m.result
bjcmt-deprecated-category.m
bjcmt-deprecated-category.m.result
bjcmt-designated-initializer.m
bjcmt-designated-initializer.m.result
bjcmt-instancetype-2.m.result
bjcmt-ns-nonatomic-iosonly.m.result
bjcmt-property-availability.m.result
bjcmt-property.m
bjcmt-property.m.result
bjcmt-protocol-conformance.m
bjcmt-protocol-conformance.m.result
rotected-scope.m
rotected-scope.m.result
hitelisted/header1.h
hitelisted/header1.h.result
hitelisted/objcmt-with-whitelist-impl.m
hitelisted/objcmt-with-whitelist-impl.m.result
hitelisted/objcmt-with-whitelist.m
93d4b8cbc7d55fcd3326747d07c7a65f42e02d93 14-Nov-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: This patch sets access property
attributes on 'readonly' properties. // rdar://15460787


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194718 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-atomic-property.m.result
bjcmt-ns-nonatomic-iosonly.m.result
bjcmt-property.m.result
2c050f6a68c4f871d26be63f8d598f1b64a8e16f 14-Nov-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Introduce "objcmt-white-list-dir-path=" option.

This options accepts a path to a directory, collects the filenames of the files
it contains, and the migrator will only modify files with the same filename.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194710 91177308-0d34-0410-b5e6-96231b3b80d8
hitelisted/Inputs/header1.h
hitelisted/header1.h
hitelisted/header1.h.result
hitelisted/header2.h
hitelisted/header2.h.result
hitelisted/objcmt-with-whitelist.m
5d2a20671954f55f765b96375e8bcd38367cb3ba 13-Nov-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Place use of NS_NONATOMIC_IOSONLY
on inferred property attribute under
-objcmt-ns-nonatomic-iosonly option.
// rdar://15442742


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194532 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-nonatomic-iosonly.m
bjcmt-ns-nonatomic-iosonly.m.result
1ab853d934daefee1806872a2d4a5f0fe0ff1939 12-Nov-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Another alternative to
"atomic" or "nonatomic" for properties is
NS_NONATOMIC_IOSONLY. Use it if available.
// rdar://15442742


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194503 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-nonatomic-iosonly.m
bjcmt-ns-nonatomic-iosonly.m.result
246e2f65dcdb47a2a07b6d0f8f6f338954e24c45 11-Nov-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. More testing of instancetype migration in
method implementations. // rdar://15438505


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194402 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype.m
bjcmt-instancetype.m.result
78e39b0b69ee5af1d9691f3143de15cb37b8ad55 08-Nov-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Fixes an obscure bug where
NS_RETURNS_INNER_POINTER ends up unintentionally
on the @property under -objcmt-migrate-all
// rdar://15396636


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194233 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-migrate-all.m
bjcmt-migrate-all.m.result
cd569f2788ece55b9f790b6900164e2b2d5d966c 05-Nov-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Please annotation of properties with
NS_RETURNS_INNER_POINTER under -objcmt-returns-innerpointer-property
flag (off by default), as older compilers do not support such annotations.
// rdar://15396636


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194100 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-returns-inner-pointer.m
bjcmt-ns-returns-inner-pointer.m.result
257ddb2b4721e71749174ddaf03c6692df9dd346 01-Nov-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. When inferring readwrite property,
do not remove the setter if its availability differs
from availability of the getter (which is now turned into
a property). Otherwise, synthesized setter will
inherit availability of the property (which is incorrect).
// rdar://15300059


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193837 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-atomic-property.m.result
bjcmt-property-availability.m
bjcmt-property-availability.m.result
bjcmt-property.m.result
5eeefe6cfd4c31fe6af0f1abfe4e78f294faa982 31-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Change naming hueristic for
deprecated categories, fixes a typo reported by
Jordan.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193759 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-deprecated-category.m
bjcmt-deprecated-category.m.result
6d754e9a9d6591e8fc5eedc144cc70a7e539ba6f 31-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: annotate all protocols/methods in
a category with NSxxxDeprecated name with deprecated
annotation. // rdar://15337661


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193726 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-deprecated-category.m
bjcmt-deprecated-category.m.result
f98f12f5f565a914d8996d881f53253f95a2db00 18-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. In infering NS_ENUM/NS_OPTIONS
macros, prefer the typedef immediately following the
enum declaration to the one preceeding it.
// rdar://15200915


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192927 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
b5b3f816d3c2543e11fb4f0b235041beafd81a1e 17-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Remove blank lines
when inferring property from setter/getter
methods. // rdar://15200949


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192853 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
bjcmt-atomic-property.m.result
bjcmt-property.m.result
b81765f59f0c99da3b4e934686bfc118b91aded0 16-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Don't add 'assign' for
inferred properties when type is scalar and
assumed to be 'assign. // rdar://15231241


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192841 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
624b367920405ac5ad5814eee41eb423c368a2c6 16-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. 'atomic' is the default attribute.
Don't add it to inferred property. // rdar://14988132



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192834 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-atomic-property.m.result
803ccc9071a7120b20490ba0f2ca2ed7d9e96c45 16-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Use 'assign' for 'delegate'
properties. // rdar://15231860



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192826 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
bjcmt-atomic-property.m.result
bjcmt-property.m.result
b3c71facc346f70fe4958f766ab55bd537229195 15-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Support for more possibility of
migration to NS_ENUM/NS_OPTIONS macros; when
typedef'ed to NSInteger/NSUInteger preceeds well
before of the enum declaration. // rdar://15201056


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192645 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
d2dab64a438b7b8d57f8a10883e107d2bc0988ed 11-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. also support migration to
NS_ENUM/NS_OPTIONS macros when typedef declaration
precedes enum declaration. // rdar://15200915


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192506 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
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
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
9afabf6020a4a34377311f1cd758675e06464b59 11-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. When migrating to NS_ENUM/NS_OPTIONS,
don't leave a blank line behind replacing the typedef
decl. // rdar://15200949


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192407 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m.result
9fcbd5e55a8029a0ca8a5d64457278ec716a8705 10-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: For 'default' and 'shared' family of
methods, infer their self's type as their result type.
// rdar://15145218


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192377 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype-2.m
bjcmt-instancetype-2.m.result
39ebb02cb0bd342ced56de6d19aa9992aa0371b8 09-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Introduce a new objcmt-atomic-property option
and use it to infer all properties as 'atomic'.
// rdar://14988132


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192317 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-atomic-property.m
bjcmt-atomic-property.m.result
9fe529f15723018a2fecdcc35611210f92ed2b82 09-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Introduce a new print policy for
suppression of strong lifetime qualifiers when
inferring property. // rdar://15082812


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192305 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m.result
372877ef93f7bdfa5f4e48a82922450610c7052f 08-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Add support for inferring
properties of function pointer type.
// rdar://15082812


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192237 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
2d9f38a47c86cd462ee8fa82210f27a8f9e0d2b7 08-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migration. Add support for inferring
properties of block pointer types. Also, remove
strong lifetime attribute from property type
in this migration. This is wip.
// rdar://15082818


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192226 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
aa58f15d824096639ec2c5dcab903cbdfe0e14b4 07-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: A typical implementation of
'default' methods in Foundation does not
infer 'instancetype' for methods' result type.
// rdar://15145218


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192129 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype-2.m.result
b8941a15b6b5477a81c189614d0129070ac099f1 03-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Add individual options and
enable them for distinct feature migration.
// rdar://15003157


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191863 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m
bjcmt-arc-cf-annotations.m.result
bjcmt-instancetype-2.m
bjcmt-instancetype-2.m.result
bjcmt-instancetype.m
bjcmt-instancetype.m.result
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
bjcmt-ns-returns-inner-pointer.m
bjcmt-ns-returns-inner-pointer.m.result
bjcmt-protocol-conformance.m
bjcmt-protocol-conformance.m.result
081099d302b79d1746c7a39da14e3265971eb718 02-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Starting distiguising different
migrations under their own option.
wip and // rdar://15003157


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191855 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m
bjcmt-arc-cf-annotations.m.result
bjcmt-instancetype-2.m
bjcmt-instancetype-2.m.result
bjcmt-instancetype.m
bjcmt-instancetype.m.result
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
bjcmt-ns-returns-inner-pointer.m
bjcmt-ns-returns-inner-pointer.m.result
bjcmt-property.m
bjcmt-property.m.result
bjcmt-protocol-conformance.m
bjcmt-protocol-conformance.m.result
9fd802448d463777ed87d56a196b84da1ccdeaa5 28-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Infer property from getters only
if property name is a valid identifier in the underlying
language. // rdar://15044184


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191584 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
14f9889b9b88f73a891688d7732bf01a127d9e7c 27-Sep-2013 Rafael Espindola <rafael.espindola@gmail.com> Replace -fobjc-default-synthesize-properties with disable-objc-default-synthesize-properties.

We want the modern behavior most of the time, so inverting the option simplifies
the driver and the tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191551 91177308-0d34-0410-b5e6-96231b3b80d8
hecking-in-arc.m
igrate-with-pch.m
igrate.m
bjcmt-instancetype-2.m
bjcmt-instancetype-2.m.result
bjcmt-instancetype.m
bjcmt-instancetype.m.result
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
bjcmt-ns-returns-inner-pointer.m
bjcmt-ns-returns-inner-pointer.m.result
bjcmt-property.m
bjcmt-property.m.result
bjcmt-protocol-conformance.m
bjcmt-protocol-conformance.m.result
f1ebccd82bbef0547fe1a8d14d2e74e7570be8ab 27-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Donlt annotate NS_RETURNS_INNER_POINTER
on class methods, as it makes no sense. // rdar://15069200


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191468 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-returns-inner-pointer.m
bjcmt-ns-returns-inner-pointer.m.result
0d4e06872de210a9f9ed89781ba606ea22fb61b8 26-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: function pointer is not an
inner pointer for annotation to
objc_returns_inner_pointer purposes.
// rdar://15044991


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191465 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-returns-inner-pointer.m.result
641649faa2a96dc5a2bbfcb9447b680fbedff962 25-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Don't suggest @property for
methods which look like getters but belong to
known family of methods. // rdar://15044058


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191347 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
bffd89b0b008132550c9a892a745fc1a7932dae4 24-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: provide space between the property
keyword and the rest on suggested property. // rdar://15069044



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191335 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
bjcmt-property.m.result
3226abfb83cc9bcb88b7bb1417ce9a8398ffb320 24-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Another test for my last patch.
// rdar://15044991


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191334 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-returns-inner-pointer.m
bjcmt-ns-returns-inner-pointer.m.result
f85f5e4769730e06590d969ad3cbff879d8006f6 24-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: iDOn't mangle names when
NS_RETURNS_INNER_POINTER annotation is suggested on
a property. // rdar://15044991


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191332 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-returns-inner-pointer.m
bjcmt-ns-returns-inner-pointer.m.result
635fe065866d0171ac89a94f9f14ed2254de0388 24-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. When migrating to property declaration
use Cocoa's naming convention for properties of ObjC
object type. // rdar://15045005


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191240 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m.result
ff89d06413ff79fb2314b9196fa2508e244159fc 23-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Infer NS_OPTIONS when if there is at
least one hex enumerator, all others are also
hex enumerator (0 enumerator is excepted).
// rdar://15044304


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191222 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
a346eb1188419d3f1698092edfbd66890b74163c 18-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: For consistency, also infer
'instancetype' for known family of methods
with related result type; such as 'init'
methods. // rdar://14987948


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190956 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
bjcmt-instancetype.m.result
f9d38c08bc77da4ebd67fdc7cb4f42da671f7d2b 18-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Infer property in the presense
of methods annotated with attributes.
// rdar://14987909


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190947 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
bb2405f293c79732748282538198e1d2d0f1b459 18-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. infer NS_OPTIONS correctly in the
presense of parenthesized enumerator initializers.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190901 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
641645f00c22e1f55794537a43646214402e99a1 17-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Ignore migrating 'deprecated'
entities. // rdar://14989365


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190890 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
bjcmt-instancetype-2.m
bjcmt-instancetype-2.m.result
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
bjcmt-property.m
bjcmt-property.m.result
89ac7412ea3137f22065985c562a3050130e6ca0 17-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Don't infer a property from isXXX method
of retainable object (readonly or otherwise).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190881 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m.result
dce3ce3686eed399b465742b1e2388915b438e05 17-Sep-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Don't try to handle files that are already ARC'ified, this is not possible currently.

rdar://14461559

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190880 91177308-0d34-0410-b5e6-96231b3b80d8
nputs/test1.m.in
nputs/test1.m.in.result
igrate-with-pch.m
igrate.m
ith-arc-mode-check.m
ith-arc-mode-migrate.m
ith-arc-mode-migrate.m.result
9c4759149c80464ca26dcc90c756f439e6640684 17-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Infer property in categories
declared as getter with or without setter method.
// rdar://15010020


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190878 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
bdb5468d36ed64013a0bb12c0ded7f980880be2f 12-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migration. NS_RETURNS_NOT_RETAINED is the default for
unknown methods which return Cocoa objects. No need to annotate
such methods.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190555 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
e80501ba640fae189d5f944b025a0079ec3c579f 11-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Modify inferred property name
such that it does not lower case the staring property
name if getter name (after "get" prefix) starts with
two upper case letters.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190539 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
a81f102bd396fd1da61b47337a2389f352baf539 11-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. methods which look like a getter and
start with "get" are inferreed as a readonly properties.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190532 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
fe4f670935b07eb18d80200e292e08bfe523e417 10-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: rename inferred isXXX property,
with a suitable 'getter' attribute.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190420 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
c72b4b396a9b87cf9cdb9958308d82fd32bdb846 10-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Do not infer NS_RETURNS_INNER_POINTER
annotation on methods which return typedef of pointer to
an incomplete struct type.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190372 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-returns-inner-pointer.m
bjcmt-ns-returns-inner-pointer.m.result
8451a458d65879bb594ee879353658723feda0ee 07-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: When inferring a property,
preserve getter's attribute. Also, do not attach
an inferred NS_RETURNS_INNER_POINTER to the inferred
property (it is illegal).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190223 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
7fd8fb3a513330c9e754a6eec162170d5a979859 06-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: tighten the rules for when
inferring NS_RETURNS_RETAINED, etc., return annotations.
Do not infer if these annotations are implicit
from the naming convention. Also add inference for
NS_CONSUMES_SELF annotation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190106 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
4afe57965e19d9c9ba8070ac9901ed8a20e20fce 05-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: start introducing NS_XXX annotations
to Method/functions returning ObjC objects. wip.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190005 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
5f7ac67c84e7b9a04fa4c5065e384f928c8f812f 04-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Cannot use bridging annotations for
ObjectiveC methods. Apply specific annotations for them
instead as determined by the static analyzer.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189892 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
bjcmt-ns-returns-inner-pointer.m.result
8a6ad2a21dcb654db25cf66408466d2e7a93e09c 31-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: If we find a method that returns a C pointer
of some sort (but not an object, block pointer or CF pointers),
and is not annotated with the objc_returns_inner_pointer attribute,
we should suggest NS_RETURNS_INNER_POINTER annotation for these methods.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189707 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-returns-inner-pointer.m
bjcmt-ns-returns-inner-pointer.m.result
c9820ebfeff30598ebd7369c5daf5bde10df934b 30-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: infer NS_ENUM even when user
specified NSUInteger as the followup typedef.
With this change, NS_OPTIONS is only inferred
based on looking up how enumerators are speficied
(if they her hexadecimal, power of 2, or have
bitwise constant expressions).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189682 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
ad162e912db93be9494ba3ebc12994e51e0b0db2 30-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: User of hexadecimal enumerator
should infer migration to NS_OPTIONS.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189628 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
5b98aba1d74184923da32016c3abbc20e9a7686d 29-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. This patch infers readonly properties for no-parameter
instance methods returning non-void. This will be quite noisy. So, it is
placed under a new migrator flag -objcmt-migrate-readonly-property.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189537 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
3c6e5ce3776eaddaf4bcdf5da6c00ec4e6829d83 28-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: In suggesting 'instancetype' use clang's
hasRelatedResultType() as it knows of methods which have
related result type by default. Such methods do not need
a redundant 'instancetype'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189520 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
bjcmt-instancetype-2.m.result
bjcmt-instancetype.m.result
c0d1b6aee0046ef5ca87e82dae889589b69dd232 28-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> For methods where clang automatically infers instancetype from the selector
(e.g., all -init* methods), no need to suggest "instancetype" because it
is redundant.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189514 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
bjcmt-instancetype-2.m.result
bjcmt-instancetype.m.result
a7f6a94c1bae840c51351cd37cc247ae75f8e649 28-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Do not add explicit cf annotation for
cf functions which are CF_IMPLICIT_BRIDGING_ENABLED.
Add cf annotation to those not CF_IMPLICIT_BRIDGING_ENABLED
to reduce bridge casts.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189409 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
2450b82b7d110ac1a11ffde3be90b8255767381d 27-Aug-2013 Roman Divacky <rdivacky@freebsd.org> Make the information about disabled ARCMT/Rewriter/StaticAnalyzer available
to lit and use this info to disable Analysis/FixIt/Rewriter/Analysis tests
when those are not compiled into clang.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189395 91177308-0d34-0410-b5e6-96231b3b80d8
it.local.cfg
b78b664213aae4282bee33e421ed03fdec36eb3a 23-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: builtin ObjectiveC types are not
audited types.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189072 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m
bjcmt-arc-cf-annotations.m.result
d173d7885b6e7b40f2342cbc5aaaaef9c3e6c33b 22-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Provide ARC annotations for
CF methods too.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189041 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
a178593335e12761d4362eab0eff0c12ad081635 21-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectibeC migrator. Annotate cf_consumed arguments,
as reported by static analyer API with CF_CONSUMED.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188922 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
8677ccd659c5f997ae9c4758f8e9aac2ae7f4a14 21-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: until we have beter understanding of
setter/getter implementations, migrate them to
nonatomic properties.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188914 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m.result
dead50d347e9517d80f007a93df6295f66aa0f00 21-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: make sure audited pragams are
dumped for last declarations in the current TU. wip.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188838 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m
bjcmt-arc-cf-annotations.m.result
e89bad5fbd3746be1b4b0d4461a66791baaea3db 20-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: More tweaking of heuristics
for an audited cf function to not include those
which are annotated by user.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188823 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m.result
a46c6c3baa0bb24987b44ac7a5543fa60e8b639e 20-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: More tweaking of heuristics
for an audited cf function and addition of
a test case.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188816 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m
bjcmt-arc-cf-annotations.m.result
8836e365e8e293685a291d5f5783473bfb93dc2e 16-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjetiveC migrator: fix the test in my last patch
to define real CF_RETURNS_RETAINED/CF_NO_RETURNS_RETAINED
pairs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188497 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m
bjcmt-arc-cf-annotations.m.result
269cca13cdafab34073158476de0391d1839ecd3 15-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Start annotating CF functions
with CF_RETURNS_RETAINED/CF_RETURNS_NOT_RETAINED as
appropriate.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188493 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-arc-cf-annotations.m
bjcmt-arc-cf-annotations.m.result
e1f1ff66bf4e9507bb534244a5a5d0c950316a2f 15-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> Add another test to my last patch (NS_OPTION vs. NS_ENUM)
ObjectiveC migration.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188480 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
0b5941c2a6ce99f0dc0dc8b64024eeabbbb6db1d 15-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: In deciding NS_OPTION over
NS_ENUM, at least one power of 2 enumerator
must be greater than two.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188470 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
086d565d2d3b8e72f95492d3a2cefd09e1718f2a 13-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Fixes a crash and makes couple
of harmless changes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188303 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype-2.m
bjcmt-instancetype-2.m.result
24016765c905a02c9df94ef0b8a50c5e74fff5c2 09-Aug-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] When handling unbridged casts, handle the body of BlockDecl separately because ParentMap does not record
Stmt parent nodes inside a BlockDecl.

Fixes rdar://14686900

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188101 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
1197c6586a401bac20ca843f409916a215fd14df 08-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: tighten rule about when to
migrate to @property with getter name starting with
'is'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188013 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
a9226496cd394efe36f1a774cf58e5a7f3eefd64 08-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migration: Handle another special case of
setter/getter methods which can be migrated to
a @property.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188005 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
fa45cb3bf95a10d6c3b1ab55d60dae28e8a57cf4 06-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migration: tweak setting of lifetime attribute
on @property migration. Don't set unsafe_unretained
on non-object properties. Set 'retain' on strong
properties. Makecertain properties with specific
names unsafe_unretained as well.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187810 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
8d3794e06a63578093bd71c3c2520bd01e6197a3 02-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Add another family of factory
methods which can be migrated to instancetype.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187672 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype-2.m
bjcmt-instancetype-2.m.result
f647b69147c6e640bbccf501783fafc495bbefb2 02-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Fixes public buildbot failures,
in my previous patch which was reverted in r187657


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187661 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype-2.m
bjcmt-instancetype-2.m.result
bjcmt-instancetype.m.result
6803dbe1ec26539395951b75acbe595ad3e8cc8e 02-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> revert patch I added in r187655. It still breaks public
buildbot.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187657 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype-2.m
bjcmt-instancetype-2.m.result
bjcmt-instancetype.m.result
906c7f78ee9026c1dc40e062667341f1dd194959 02-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migration. Check-in patch reverted in r187634.
Also removed check for "NS" prefix for class name.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187655 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype-2.m
bjcmt-instancetype-2.m.result
bjcmt-instancetype.m.result
cd683986e991f0e60afd6bc6f336cfc1fd844193 02-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Revert "ObjectiveC migrator. Migrate to instancetype return type for mehods with certain prefix selector matching their class names' suffix."

This reverts commit r187626.

It is breaking the bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187634 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype-2.m.result
bjcmt-instancetype.m.result
59944677b0576c19a08db92a6b45619077a00baa 02-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Migrate to instancetype return type
for mehods with certain prefix selector matching their class names'
suffix.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187626 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype-2.m.result
bjcmt-instancetype.m.result
65f1a4c931bc17e51c751a5e9c6a71a9e52d5b8c 24-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> Objective-C migrator: some cleanup.
Expose static type of init/alloc/retain with
instance type as well. Ad-hoc cases are coming
next.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187068 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype.m.result
5e151c507d7a939a10499ca6a4482b9d6dbfed99 24-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migration: Method candidates for
migrating to instancetype can have implicit 'id'
type too.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187062 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype.m
bjcmt-instancetype.m.result
211b4a2b2260ba5a3150f2b8d47f569e9773b1d3 24-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migration: more migration to
instancetype of NSDictionary methods.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187008 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype.m.result
26cf046ff3a2d24ff3e2c3757599976b644a06da 24-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: start migrating to
instancetype methods.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187004 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-instancetype.m
bjcmt-instancetype.m.result
34cb2a3ed535eebed87d1118e89d006eb324e156 23-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migration. Better handle migration to conforming
protocols by ignoring cases where all protocol properties
and methods are optional.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186895 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-protocol-conformance.m
bjcmt-protocol-conformance.m.result
e3069e231eeeafeaef6078bc585c82dc6a1830e2 22-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> Objective-C migration: Use NS_OPTIONS when enumerators
have shift/bitwise operators or are power of 2.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186856 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
0474cfdba79f8a89016fbcdc4f7d8aabe00f9456 22-Jul-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Only disable ARC in the second compilation if there were actually ARC errors in the checking phase.

rdar://14490204

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186850 91177308-0d34-0410-b5e6-96231b3b80d8
hecking-in-arc.m
faae53d1cec325140a548c8e9ff647b7edb43702 19-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Another use case of enum
declaration which can be migrated to NS_ENUM.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186716 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
d0c5b8a8cb88dc9f323c1e4cccd9ba794d2263ad 19-Jul-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] After checking is successful disable auto-synthesize to avoid "@synthesize of 'weak' property is only
allowed in ARC" errors.

rdar://14461559

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186709 91177308-0d34-0410-b5e6-96231b3b80d8
hecking-in-arc.m
72685630b693c0ba6050875128ff6bb18107ba2f 19-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> Fixes an ObjC migrator crash when last decl
in file is an enum.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186700 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
9f9e54390c255587b009d912007b139432ab7bdc 19-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: add support to migrate to
NS_OPTIONS.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186641 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
44b41b12a44d74341fe7d241bfdf57847b728a62 19-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Remove semicolon after the typedef
declaration when converting to NS_ENUM. This required
some code refactoring.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186619 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m.result
bbbb0fe4f466d3163fcbf0a64ebf0f5868833efb 18-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migration. migration to NS_ENUM/SN_OPTION
- wip.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186604 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-ns-macros.m
bjcmt-ns-macros.m.result
e8280188f7245e479418a716c3959f66b48ef64a 17-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: When adding conforming protocol,
only add outer-most conforming protocols as adding
others are redundant.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186473 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-protocol-conformance.m
bjcmt-protocol-conformance.m.result
8d8bfb3e52567b86add4bfa931023f2e2a291499 16-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. If a class implements a protocol's
properties, then class conforms to that protocol.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186460 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-protocol-conformance.m
bjcmt-protocol-conformance.m.result
e91b1b98f2359816dbaab4b5af70e02a242b730c 16-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migration: complete migrating class
declaration to include list of protocols class
conforms to.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186443 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-protocol-conformance.m
bjcmt-protocol-conformance.m.result
07b1bbe648a21b8cdbc073fb6a409422c49921bb 10-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjC migrator: Improve on hueristics.
migrate to 'copy attribute if Object
class implements NSCopying otherwise
assume implied 'strong'. Remove
lifetime qualifier on property as it has
moved to property's attribute. Added TODO
comment for future work by poking into
setter implementation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186037 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
e16a4755989ae3e4cf15c8b1ed265a546bf1b8bd 10-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> objc migrator: More refinment of property
attributes in migration. Specialli use of
'copy' attribute for retainable object types.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185985 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m.result
d412999a3da6387dbfaf00f7647132082e94310e 09-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjC migrator: Add -objcmt-migrate-property to do property
migration. Also, fixes an old bug where older migration
flags were not being checked for properly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185948 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
631435fbc44c77e828f673d3e05c093dffc1a127 09-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjC migration: more test for migration to
properties.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185884 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
2a4ebcfe8b5920ca35924359135f3c5ddca7b171 09-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjC migration: Skip over setter/getter with attributes
for now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185879 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
1921b58a2aba4f5073d6634d476356b6a4ff8815 08-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> [Objective-C migrator] replace candidate user setter/getter with
their equivalent property declaration. wip.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185873 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-property.m
bjcmt-property.m.result
96e7813f08c6adf1d8657b0da86741b54e850fd7 04-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Add 'not' to commands that are expected to fail.

This is at least good documentation, but also opens the possibility of
using pipefail.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185652 91177308-0d34-0410-b5e6-96231b3b80d8
erify.m
f75ece4a7e77583d9ac8172e3e44e0131a4061f4 24-Jun-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt/driver] For the -ccc-arcmt-* flags, claim them when -fno-objc-arc is passed to avoid the
"argument unused during compilation" warning.

rdar://14240566

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184776 91177308-0d34-0410-b5e6-96231b3b80d8
river-migrate.m
f4d02398936c0fdc9fe981348519fbc323f24ad0 01-May-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> Point diagnostics that complain about a use of a selector in an objc message, to the selector location.

Previously it would point to the left bracket or the receiver, which can be particularly
problematic if the receiver is a block literal and we end up point the diagnostic far away
for the selector that is complaining about.

rdar://13620447

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180833 91177308-0d34-0410-b5e6-96231b3b80d8
heck-with-serialized-diag.m
igrate-plist-output.m
ecc271fefd51d825df81d78549b60037f67f0224 06-Apr-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Fix a mishandled conversion to objc directory literal.

rdar://13181413

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178942 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-subscripting-literals.m
bjcmt-subscripting-literals.m.result
33ace0669393acb84c24a7ff7a80e8759777b3e8 14-Feb-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Make sure the function has an associated parameter for the argument
before checking for its attributes.

rdar://13192395

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175184 91177308-0d34-0410-b5e6-96231b3b80d8
onobjc-to-objc-cast-2.m
ed351e6bad7314664385ee948ccec22c94ed326e 05-Feb-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Make sure the objc migrators work fine when used with a PCH.

rdar://13140508

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174386 91177308-0d34-0410-b5e6-96231b3b80d8
heck-with-pch.m
igrate-with-pch.m
bjcmt-with-pch.m
bjcmt-with-pch.m.result
bde67cfdf05f7c569661e7a490b0b0811ac1ec56 28-Jan-2013 Douglas Gregor <dgregor@apple.com> Undo my re-wording of the "ARC forbids Objective-C objects in ..."
error. Jordan is right.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173713 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
4581d45405f07374770366be8644d52733985833 28-Jan-2013 Douglas Gregor <dgregor@apple.com> Forbid the use of objects in unions in Objective-C++ ARC. Fixes
<rdar://problem/13098104>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173708 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
a44b97004298a4eb7c270009ea4cb12aad49c543 17-Jan-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Rewrite a NSDictionary dictionaryWithObjects:forKeys: to a dictionary literal
if we can see the elements of the arrays.

for example:

NSDictionary *dict = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1", @"2", nil] forKeys:[NSArray arrayWithObjects:@"A", @"B", nil]];

-->

NSDictionary *dict = @{ @"A" : @"1", @"B" : @"2" };

rdar://12428166

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172679 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-subscripting-literals-in-arc.m
bjcmt-subscripting-literals-in-arc.m.result
bjcmt-subscripting-literals.m
bjcmt-subscripting-literals.m.result
4ce831cba3ae3030674fd9d90f8a69f7b3938d63 08-Jan-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Follow-up for r171484; make sure when adding brackets enclosing case statements,
that the case does not "contain" a declaration that is referenced "outside" of it,
otherwise we will emit un-compilable code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171828 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
rotected-scope.m
rotected-scope.m.result
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
utoreleases.m
utoreleases.m.result
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
hecking.m
rotected-scope.m
rotected-scope.m.result
af1c08f216cf1ed541d9f502f6c8944d5fd4320c 04-Jan-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Don't error if an autoreleased variable is returned after the -autorelease.

rdar://12952025

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171482 91177308-0d34-0410-b5e6-96231b3b80d8
utoreleases.m
utoreleases.m.result
5d2faa41bc63a2a29535ae3dbbc99daabf14ea2f 03-Jan-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Rewrite uses of Block_copy/Block_release macros.

c = Block_copy(b);
Block_release(c);
---->
c = [b copy];
<removed>

rdar://9408211

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171454 91177308-0d34-0410-b5e6-96231b3b80d8
ommon.h
lock_copy_release.m
lock_copy_release.m.result
266dba3661928d26f043560b169bea87578aa917 19-Oct-2012 Andy Gibbs <andyg1001@hotmail.co.uk> Change VerifyDiagnosticConsumer so that it *must* contain at least one "expected-*" directive. As a result, for test-cases that are not expected to generate any diagnostics, an additional directive "expected-no-diagnostics" has been implemented which can then be included in such test-cases. This new directive may not be used in conjunction with any other "expected-*" directive.

This change was initially proposed as a solution to the problem highlighted by check-in r164677, i.e. that -verify will not cause a test-case failure where the compile command does not actually reference the file.

Patch reviewed by David Blaikie.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166281 91177308-0d34-0410-b5e6-96231b3b80d8
erify.m
6f5a2ec123ffebfb27f74a024ec3dccd65be5e83 14-Sep-2012 Fariborz Jahanian <fjahanian@apple.com> objective-C arc: remove -Warc-abi in its entirety.
// rdar://10554025


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163917 91177308-0d34-0410-b5e6-96231b3b80d8
xx-checking.mm
7c304f56eecbd03db7d222a05dfcd593750d50d3 10-Aug-2012 Jordan Rose <jordan_rose@apple.com> Update VerifyDiagnosticConsumer to only get directives during parsing.

The old behavior was to re-scan any files (like modules) where we may have
directives but won't actually be parsing during the -verify invocation.
Now, we keep the old behavior in Debug builds as a sanity check (though
modules are a known entity), and expect all legitimate directives to come
from comments seen by the preprocessor.

This also affects the ARC migration tool, which captures diagnostics in
order to filter some out. This change adds an explicit cleanup to
CaptureDiagnosticsConsumer in order to let its sub-consumer handle the
real end of diagnostics.

This was originally split into four patches, but the tests do not run
cleanly without all four, so I've combined them into one commit.

Patches by Andy Gibbs, with slight modifications from me.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161650 91177308-0d34-0410-b5e6-96231b3b80d8
erify.m
1b0a13e91088f6818016464ffb23616ced820cbc 30-Jul-2012 Fariborz Jahanian <fjahanian@apple.com> objective-c arc: ARC IRGen correctly assumes result
type of generated call to super dealloc is 'void'
and asserts if user's dealloc is not of 'void type.
This rule must be enforced in clang front-end (with a
fixit) if this is not the case, instead of asserting in CodeGen.
// rdar://11987838


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160993 91177308-0d34-0410-b5e6-96231b3b80d8
eleases-driver.m
eleases-driver.m.result
eleases.m
eleases.m.result
607f587a8cdf590f947a0248df8f18082eac8229 27-Jul-2012 Fariborz Jahanian <fjahanian@apple.com> revert r160839 for now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160895 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
o-canceling-bridge-to-bridge-cast.m
onobjc-to-objc-cast-2.m
304efd5962eaca7179f43846fff1880a5e5e873c 27-Jul-2012 Fariborz Jahanian <fjahanian@apple.com> objc-arc: When objects with known CF semantics are assigned to
retainable types in arc, only suggest CFBridgingRelease/
CFBridgingRetain and not the confusing __bridge casts.
// rdar://11923822


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160839 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
o-canceling-bridge-to-bridge-cast.m
onobjc-to-objc-cast-2.m
381767fcfe2fdf53727099d95b23b0c9e6a9aa6c 20-Jul-2012 Nico Weber <nicolasweber@gmx.de> Let Expr::HasSideEffects() return false for NULL, bool literals, this, and nullptr.

Fixes PR13413, -Wunused-private-field now warns on unused fields initialized to NULL.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160541 91177308-0d34-0410-b5e6-96231b3b80d8
xx-rewrite.mm.result
1838703fea568b394407b83d1055b4c7f52fb105 06-Jul-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Check for classes that accept 'objectForKey:' (or the other selectors
that the migrator handles) but return their instances as 'id', resulting
in the compiler resolving 'objectForKey:' as the method from NSDictionary.

When checking if we can convert to subscripting syntax, check whether
the receiver is a result of a class method from a hardcoded list of
such classes. In such a case return the specific class as the interface
of the receiver.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159788 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-subscripting-literals.m
bjcmt-subscripting-literals.m.result
c2abbe0b98ec21c0c0e844c20d037639ef284664 05-Jul-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Allow migrating to subscripting syntax for other classes
(apart from NSDictionary/NSArray) that implement objectForKey:/objectAtIndex/etc.
and the subscripting methods as well.

Part of rdar://11734969

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159783 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-subscripting-literals.m
bjcmt-subscripting-literals.m.result
a1eec4bd198b96ef40a7c15cd0e131ca94511ad8 04-Jul-2012 Fariborz Jahanian <fjahanian@apple.com> objective-c: Refactor parse/sema portion of
objective-c's fast enumeration statement,
for more work to come.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159689 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
8b9fcd7cd1f92e67655899d00fbaeb125c5a0d88 20-Jun-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Have the modern objc migration warning change from:

[NSNumber numberWithDouble:cppb];
warning: converting to boxing syntax requires a cast

to something like:

[NSNumber numberWithDouble:cppb];
warning: converting to boxing syntax requires casting 'bool' to 'double'

This is way better to fully understand the warning.
rdar://11705106

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158783 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-boxing.m
bjcmt-boxing.m.result
ffe76ddfe23002434a30e3e02475c870ed2d6e40 20-Jun-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] When migrating to ARC disable -Werror so as to only block migration
for "hard" ARC errors, not warnings.

rdar://11691437

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158781 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
12b732a86cc2320dd6bc8fd7ef027b619c554f7e 19-Jun-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] When checking whether the subscripting methods are declared use
ObjCInterfaceDec::lookupInstanceMethod to make sure we check categories as well
and update related tests.

rdar://11695288

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158697 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-subscripting-literals-in-arc.m
bjcmt-subscripting-literals-in-arc.m.result
bjcmt-subscripting-literals.m
bjcmt-subscripting-literals.m.result
76a5245d7fb558625453ebe2281ee0bc9c93c245 07-Jun-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] At an unbridged cast error, if we're returning a load-of-ivar from a +0 method,
automatically insert a __bridge cast.

radar://11560638

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158127 91177308-0d34-0410-b5e6-96231b3b80d8
onobjc-to-objc-cast-2.m
onobjc-to-objc-cast.m
onobjc-to-objc-cast.m.result
6b4db9b329c6964955153292e21de0a342354437 07-Jun-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] When in ARC mode, also convert "[[.. alloc] init]" messages to literals,
since the change from +1 to +0 will be handled fine by ARC.

rdar://11606358

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158114 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-subscripting-literals-in-arc.m
bjcmt-subscripting-literals-in-arc.m.result
1ea6744b3da4b052acb7ed67e717cd70df5b5977 05-Jun-2012 Fariborz Jahanian <fjahanian@apple.com> objective-c: merge deprecated/unavailable attributes to
the overriding deprecated/unavailable method.
// rdar://11475360


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158022 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
cacf718381dda1b23efedf3deb02170186095cc0 04-Jun-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Don't migrate to subscripting syntax if the required methods have not
been declared on NSArray/NSDictionary.

rdar://11581975

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157951 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-subscripting-unavailable.m
bjcmt-subscripting-unavailable.m.result
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
ommon.h
utoreleases.m.result
onobjc-to-objc-cast.m.result
811ee0ed128403617e7944d370c71c822ce5a93d 24-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Add test case for r157395.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157404 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-boxing.m
bjcmt-boxing.m.result
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
ommon.h
utoreleases.m
utoreleases.m.result
hecking.m
ispatch.m
ispatch.m.result
2bddd43bd87efedc308094e80af3917ef2c9a0d4 22-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Don't add redundant parentheses when migrating subscripting of an ivar.

rdar://11501256

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157227 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-subscripting-literals.m
bjcmt-subscripting-literals.m.result
5a42a0292ad4d11ccf0ae9d06f6c15c3c811adfd 21-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Revert r156999 "Remove the "it is not safe to remove an unused 'autorelease' message" ARC
migration error".

Per feedback from John this is useful to have in general.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157198 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
b6a1b10a8d9e0405b7a0d12273623c7f4d23f7d9 17-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Remove the "it is not safe to remove an unused 'autorelease' message" ARC
migration error.

This is more trouble that it is worth; autoreleasing a value without holding on it
is a valid use-case, we should not "punish" correct code for the minority of
broken/fragile programs that depend on the behavior of -autorelease.

rdar://9914061

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156999 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
0773659881064e7773a63eabc26a4d90293e2f04 16-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Accept char arrays for rewriting to @() syntax.

Part of rdar://11438360

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156880 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-boxing.m
bjcmt-boxing.m.result
7fe103cdcc00a675aac04a11975dc078aba47db5 16-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Rewrite messages to NSString's stringWithUTF8String:/stringWithCString:
to use the @() boxing syntax.

It will also rewrite uses of stringWithCString:encoding: where the encoding that is
used is NSASCIIStringEncoding or NSUTF8StringEncoding.

rdar://11438360

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156868 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-boxing.m
bjcmt-boxing.m.result
0d578a6f873697309e6dd027352fa0716e29986f 15-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Rewrite [NSNumber numberWith*] messages to the new @() boxing syntax.

There are some caveats:
-If an implicit cast (e.g. int -> float for numberWithFloat:) was required, the message
will not get rewritten
-If the message was with numberWithInteger:/numberWithUnsignedInteger:, which are very
commonly used, be more liberal and allow the boxing syntax if the underlying type has
same signedness and will not lose precision.

Part of rdar://11438360

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156844 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-boxing.m
bjcmt-boxing.m.result
bjcmt-numeric-literals.m.result
20119a87fbb7719c161d81fc5f721f1ee6ed7e66 15-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] When rewriting to subscripting syntax, make sure we put
the receiver in parentheses when necessary.

Part of rdar://11438360

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156789 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-subscripting-literals.m
bjcmt-subscripting-literals.m.result
055b395294d190a432e9d87bb665634636a1418a 15-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] When rewriting to array/dictionary literals, add an explicit
cast to 'id' for any argument that requires it.

Part of rdar://11438360.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156782 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-numeric-literals.m
bjcmt-numeric-literals.m.result
bjcmt-subscripting-literals.m
bjcmt-subscripting-literals.m.result
d76e1cd8276f377c602b8370c7a61dfa7c34c764 31-Mar-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] When fixing the "unassigned init call" ARC error, make sure
to do a nil check for the result of the call.

rdar://10950973

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153793 91177308-0d34-0410-b5e6-96231b3b80d8
nit.m
nit.m.result
0fd4a6869e9a12999af24b8df7a0275a0e6c18be 29-Mar-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Fix a bug where a property in a class extension, that did not exist
in the interface, got its attribute rewritten twice, resulting in
'weakweak' or 'strongstrong'.

rdar://11047179

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153621 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
3739b32a01b9778176757425e62252c288b85383 20-Mar-2012 Ted Kremenek <kremenek@apple.com> Don't include FixIts with a null replacement range. Fixes <rdar://problem/11040133>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153122 91177308-0d34-0410-b5e6-96231b3b80d8
heck-with-serialized-diag.m
b82019b2b442400e075b03921a1bb04fa23a5458 06-Mar-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [objcmt] Add a triple to test/ARCMT/objcmt-subscripting-literals.m

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152151 91177308-0d34-0410-b5e6-96231b3b80d8
bjcmt-subscripting-literals.m
bjcmt-subscripting-literals.m.result
30660a898545416f0fea2d717f16f75640001e38 06-Mar-2012 Ted Kremenek <kremenek@apple.com> Add new code migrator support for migrating existing Objective-C code to use
the new Objective-C NSArray/NSDictionary/NSNumber literal syntax.

This introduces a new library, libEdit, which provides a new way to support
migration of code that improves on the original ARC migrator. We now believe
that most of its functionality can be refactored into the existing libraries,
and thus this new library may shortly disappear.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152141 91177308-0d34-0410-b5e6-96231b3b80d8
ispatch.m
ispatch.m.result
river-migrate.m
igrate-emit-errors.m
igrate-plist-output.m
igrate-space-in-path.m
igrate.m
bjcmt-numeric-literals.m
bjcmt-numeric-literals.m.result
bjcmt-subscripting-literals.m
bjcmt-subscripting-literals.m.result
ith-arc-mode-migrate.m
ith-arc-mode-migrate.m.result
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
ewrite-block-var.m
ewrite-block-var.m.result
63787f0343ab3546a5346a833e2f7485779f17e2 25-Feb-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] GC migrator: don't try to remove redundant __strong, it does
more harm than good.

Fixes rdar://10522805&10521433

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151424 91177308-0d34-0410-b5e6-96231b3b80d8
C-no-arc-runtime.m
C-no-arc-runtime.m.result
C-no-finalize-removal.m
C-no-finalize-removal.m.result
C.m
C.m.result
d6cf912e1e33167452f328d15b98a790c58c03c0 10-Feb-2012 Ted Kremenek <kremenek@apple.com> Revert r145999. This turned out to be a bad idea. Unfortunately, 'id' is used so profusely
in many APIs and large codebases that this made the deprecated warning trigger happy to
the point of not being useful.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150223 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
52b6236427e7b608eadaac2bf8f5a24dd16a1130 01-Feb-2012 Fariborz Jahanian <fjahanian@apple.com> Look for declaration of CFBridgingRetain/CFBridgingRetain before
changing the diagnostic. Also use correct spelling for both.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149554 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
o-canceling-bridge-to-bridge-cast.m
onobjc-to-objc-cast-2.m
7eb82f0d094d7180e7dee4fdea6a276c5febf81b 01-Feb-2012 Fariborz Jahanian <fjahanian@apple.com> objc-arc: In various diagnostics mention
CFBridgingRetain/CFBridgingRelease calls instead
of __bridge_retained/__bridge_transfer casts as preferred
way of moving cf objects to arc land. // rdar://10207950


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149449 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
o-canceling-bridge-to-bridge-cast.m
onobjc-to-objc-cast-2.m
9c7aed308aa701e0ba573c04ebe8d17a4c1486c4 31-Jan-2012 Fariborz Jahanian <fjahanian@apple.com> arc migrator: twik previous patch to exclude user provided
explicit type cast. // rdar://10521744


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149437 91177308-0d34-0410-b5e6-96231b3b80d8
o-canceling-bridge-to-bridge-cast.m
2908ffbc5f54323f150405fa2b06f50788ae55c7 31-Jan-2012 Fariborz Jahanian <fjahanian@apple.com> arc migrator: Do not attempt to migrate to bridge casts which
cancel out each other. Leave it alone so users can take a look
(unmigrated code forces error diagnostic). // rdar://10521744


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149435 91177308-0d34-0410-b5e6-96231b3b80d8
o-canceling-bridge-to-bridge-cast.m
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
C-no-finalize-removal.m
C-no-finalize-removal.m.result
b5c6babd3d8e0233b8ea5a4eb1e2700e30c0d396 25-Jan-2012 Fariborz Jahanian <fjahanian@apple.com> arc migrator: Provide infrastructure to add options
specific to migrator. Use its first option to
warn migrating from GC to arc when
NSAllocateCollectable/NSReallocateCollectable is used.
// rdar://10532541


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148887 91177308-0d34-0410-b5e6-96231b3b80d8
C-check-warn-nsalloc.m
2f72ec9fc4d3c127b5c77e13346eb640deae396a 21-Jan-2012 Fariborz Jahanian <fjahanian@apple.com> arg migrator: change all "assign" of object properties
to "strong" when migrating from GC. // rdar://10532449


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148607 91177308-0d34-0410-b5e6-96231b3b80d8
C-no-arc-runtime.m.result
C.m
C.m.result
9ec60dfe771ff28a84889dced6f8fd3748d3d55e 20-Jan-2012 Sebastian Pop <spop@codeaurora.org> rename -ccc-host-triple into -target

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148582 91177308-0d34-0410-b5e6-96231b3b80d8
river-migrate.m
86f960143c73f573919255c4465de71f85793c2e 20-Jan-2012 Fariborz Jahanian <fjahanian@apple.com> arc migrator: replace "retain" attribute with "strong"
which have same semantics in mrr as well as arr.
// rdar://10688312


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148559 91177308-0d34-0410-b5e6-96231b3b80d8
C-no-arc-runtime.m.result
C.m.result
ssign-prop-with-arc-runtime.m.result
eleases-driver.m.result
eleases.m.result
emove-dealloc-method.m.result
emove-dealloc-zerouts.m.result
etains.m.result
31cbe684302a5ccb001fa2131c0e4aeaa372f5c0 13-Jan-2012 Eli Friedman <eli.friedman@gmail.com> Revert r148138; it's causing test failures.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148141 91177308-0d34-0410-b5e6-96231b3b80d8
river-migrate.m
edd4f3c39101912605c2a1868dd2be71aa218798 13-Jan-2012 Sebastian Pop <spop@codeaurora.org> rename -ccc-host-triple into -target

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148138 91177308-0d34-0410-b5e6-96231b3b80d8
river-migrate.m
d8b4216c82d6ab1f8f2fb49c052aaea263027d7b 12-Jan-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] The migrator tests for the buildbot in http://lab.llvm.org:8011/builders/clang-native-mingw32-win7/
are messed up, XFAIL does not help. Waiting until DISABLE is supported..

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148012 91177308-0d34-0410-b5e6-96231b3b80d8
C-check.m
C-no-arc-runtime.m
C-no-arc-runtime.m.result
C.m
C.m.result
pi.m
pi.m.result
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
tautorelease-2.m
tautorelease-2.m.result
tautorelease-3.m
tautorelease-3.m.result
tautorelease-check.m
tautorelease.m
tautorelease.m.result
utoreleases.m
utoreleases.m.result
hecking.m
xx-checking.mm
xx-rewrite.mm
xx-rewrite.mm.result
ealloc.m
ealloc.m.result
nit.m
nit.m.result
igrate-plist-output.m
igrate-space-in-path.m
igrate.m
onobjc-to-objc-cast-2.m
onobjc-to-objc-cast.m
onobjc-to-objc-cast.m.result
510037b4c28f1a6a78660f93299d2db25676f68b 10-Jan-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] XFAIL on mingw.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147830 91177308-0d34-0410-b5e6-96231b3b80d8
C-check.m
C-no-arc-runtime.m
C-no-arc-runtime.m.result
C.m
C.m.result
pi.m
pi.m.result
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
tautorelease-2.m
tautorelease-2.m.result
tautorelease-3.m
tautorelease-3.m.result
tautorelease-check.m
tautorelease.m
tautorelease.m.result
utoreleases.m
utoreleases.m.result
hecking.m
xx-checking.mm
xx-rewrite.mm
xx-rewrite.mm.result
ealloc.m
ealloc.m.result
nit.m
nit.m.result
igrate-plist-output.m
igrate-space-in-path.m
igrate.m
onobjc-to-objc-cast-2.m
onobjc-to-objc-cast.m
onobjc-to-objc-cast.m.result
b004a494375ecac178d956edeae42ac680e8d34e 07-Jan-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Disable tests in mingw, no idea why they are failing there.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147713 91177308-0d34-0410-b5e6-96231b3b80d8
C-check.m
C-no-arc-runtime.m
C-no-arc-runtime.m.result
C.m
C.m.result
pi.m
pi.m.result
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
tautorelease-2.m
tautorelease-2.m.result
tautorelease-3.m
tautorelease-3.m.result
tautorelease-check.m
tautorelease.m
tautorelease.m.result
utoreleases.m
utoreleases.m.result
hecking.m
xx-checking.mm
xx-rewrite.mm
xx-rewrite.mm.result
ealloc.m
ealloc.m.result
nit.m
nit.m.result
igrate-plist-output.m
igrate-space-in-path.m
igrate.m
onobjc-to-objc-cast-2.m
onobjc-to-objc-cast.m
onobjc-to-objc-cast.m.result
2fe9b7fb07dff15dd15dd8755a9a9e6de0fe46fc 15-Dec-2011 Richard Trieu <rtrieu@google.com> Modify how the -verify flag works. Currently, the verification string and
diagnostic message are compared. If either is a substring of the other, then
no error is given. This gives rise to an unexpected case:

// expect-error{{candidate function has different number of parameters}}

will match the following error messages from Clang:

candidate function has different number of parameters (expected 1 but has 2)
candidate function has different number of parameters

It will also match these other error messages:

candidate function
function has different number of parameters
number of parameters

This patch will change so that the verification string must be a substring of
the diagnostic message before accepting. Also, all the failing tests from this
change have been corrected. Some stats from this cleanup:

87 - removed extra spaces around verification strings
70 - wording updates to diagnostics
40 - extra leading or trailing characters (typos, unmatched parens or quotes)
35 - diagnostic level was included (error:, warning:, or note:)
18 - flag name put in the warning (-Wprotocol)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146619 91177308-0d34-0410-b5e6-96231b3b80d8
onobjc-to-objc-cast-2.m
48977874cb351f452102f8c15528eb1d8c7387e6 09-Dec-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Un-XFAIL a test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146210 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
29f2787b6da552018a7716f18f5bd8f67bd6edb5 07-Dec-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Make changes to SDiagsWriter to make it work in combination with the ARC migrator:

-Allow it to be used with multiple BeginSourceFile/EndSourceFile calls; for this introduce
a "finish" callback method in the DiagnosticConsumer. SDiagsWriter finishes up the serialization
file inside this method.
-Make it independent of any particular DiagnosticsEngine; make it use the SourceManager of the
Diagnostic object.
-Ignore null source ranges.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146020 91177308-0d34-0410-b5e6-96231b3b80d8
heck-with-serialized-diag.m
b76a97e91dc4bea0b6b3da06c84e02f50cd351d3 07-Dec-2011 Fariborz Jahanian <fjahanian@apple.com> objc: issue deprecated/unavailable diagnostic when
methods with these attributes are sent to receivers
of 'id' type too. // rdar://10459930


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145999 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
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
C-no-arc-runtime.m
C-no-arc-runtime.m.result
6d7d16d45c1d601483e46a77bd2fa1d199219721 28-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Don't add __weak if there is already a GC __weak and make sure to clear
__weak from a readonly property.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145210 91177308-0d34-0410-b5e6-96231b3b80d8
C.m
C.m.result
8b08eb34565a644d3345b1bfee3542a8f4a6c300 09-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Take into account that all properties are strong-by-default now and fix the test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144146 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
af9b5e9f3eede62347835d8dedd44df86cbcc308 08-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Now that readonly properties are strong-by-default, do not add redundant 'strong'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144136 91177308-0d34-0410-b5e6-96231b3b80d8
C.m
C.m.result
ssign-prop-with-arc-runtime.m.result
f21a92d35953adb038ffbe37cd1a4083e0df0ec0 08-Nov-2011 Fariborz Jahanian <fjahanian@apple.com> objc-arc: 'readonly' property of retainable object
type is strong by default too. // rdar://10410903


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144118 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
ae7c25dab5ed7c8fc05462c8daf48e7d0945d364 08-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Now that properties are strong by default, avoid adding redundant '(strong)'
property attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144078 91177308-0d34-0410-b5e6-96231b3b80d8
C.m
C.m.result
7cfd7fe020144afe61ffe4de6c43c10340c415a7 08-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] When we already removed a __weak, don't try to change it to __unsafe_unretained
later on, or we will end up with a redundant '__unsafe_unretained'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144059 91177308-0d34-0410-b5e6-96231b3b80d8
C-no-arc-runtime.m
C-no-arc-runtime.m.result
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
C.m
C.m.result
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
C.m
C.m.result
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
C.m
C.m.result
280b4ada965f89607684446e826d830f0b8a7864 06-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] In GC, error for __strong/__weak on non-objc pointers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143887 91177308-0d34-0410-b5e6-96231b3b80d8
C-check.m
C.h
17ac3197941b9f135424dfe3900577a04407c5c2 06-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] In GC, clear redundant __strong's.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143886 91177308-0d34-0410-b5e6-96231b3b80d8
C.h
C.m
C.m.result
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
C-check.m
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
C.m
C.m.result
81eecde879712729712966b60c0cb1540b41293b 04-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] In GC, error for use of CFMakeCollectable because it will leak the
object that it receives in ARC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143700 91177308-0d34-0410-b5e6-96231b3b80d8
C-check.m
0d579b6a3f555c0e37e84e517c81eb9244fef099 04-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> In C++ keep unavailable function calls in the AST, like in C/ObjC.

This allows the migrator to visit and fix them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143699 91177308-0d34-0410-b5e6-96231b3b80d8
C.m
C.m.result
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
ommon.h
C.m
C.m.result
afdc21ad774eff6ed6c464e3f2dff9e26ed3d0b0 20-Oct-2011 Ted Kremenek <kremenek@apple.com> Further refine the diagnostic categories for ARC diagnostics. Addresses <rdar://problem/10245086>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142571 91177308-0d34-0410-b5e6-96231b3b80d8
igrate-plist-output.m
44679012052b0d57f26a3aa141004687cb71a551 18-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Rewrite attributes in extensions as well. rdar://9992142

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142407 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
01b2b9bb154d69cc695717876e903329f6f0973c 18-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] In ARC default for properties is 'strong' so just remove a 'retain' if possible,
instead of changing it to 'strong'. rdar://9984862.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142304 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
eleases-driver.m.result
eleases.m.result
emove-dealloc-method.m.result
emove-dealloc-zerouts.m.result
etains.m.result
5acb0c98b363400f6ade0ae7250f0102224e806b 17-Oct-2011 John McCall <rjmccall@apple.com> Teach the ARC compiler to not require __bridge casts when
passing/receiving CF objects at +0 to/from Objective-C methods
or audited C functions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142219 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
onobjc-to-objc-cast-2.m
8ed7bec1b1cee54587e6883fb7c4dbb7c7a13def 08-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Try fixing windows bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141462 91177308-0d34-0410-b5e6-96231b3b80d8
river-migrate.m
228971738f80de6f02aee0d6f8018f5209cf7c9c 08-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Ignore linking errors when doing ARC migration, rdar://10247606

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141434 91177308-0d34-0410-b5e6-96231b3b80d8
river-migrate.m
d1e40d5389a4382cbebc97d54792f41ee0414af4 02-Oct-2011 John McCall <rjmccall@apple.com> Make -fobjc-nonfragile-abi the -cc1 default, since it's the
increasingly prevailing case to the point that new features
like ARC don't even support the fragile ABI anymore.

This required a little bit of reshuffling with exceptions
because a check was assuming that ObjCNonFragileABI was
only being set in ObjC mode, and that's actually a bit
obnoxious to do.

Most, though, it involved a perl script to translate a ton
of test cases.

Mostly no functionality change for driver users, although
there are corner cases with disabling language-specific
exceptions that we should handle more correctly now.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140957 91177308-0d34-0410-b5e6-96231b3b80d8
pi.m
pi.m.result
ssign-prop-no-arc-runtime.m
ssign-prop-no-arc-runtime.m.result
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
tautorelease-2.m
tautorelease-2.m.result
tautorelease-3.m
tautorelease-3.m.result
tautorelease-check.m
tautorelease.m
tautorelease.m.result
utoreleases.m
utoreleases.m.result
heck-api.m
hecking.m
xx-checking.mm
xx-rewrite.mm
xx-rewrite.mm.result
ealloc.m
ealloc.m.result
nit.m
nit.m.result
igrate-emit-errors.m
igrate-plist-output.m
igrate-space-in-path.m
igrate.m
onobjc-to-objc-cast-2.m
onobjc-to-objc-cast.m
onobjc-to-objc-cast.m.result
eleases-driver.m
eleases-driver.m.result
eleases.m
eleases.m.result
emove-dealloc-method.m
emove-dealloc-method.m.result
emove-dealloc-zerouts.m
emove-dealloc-zerouts.m.result
emove-statements.m
emove-statements.m.result
etains.m
etains.m.result
ewrite-block-var.m
ewrite-block-var.m.result
afe-arc-assign.m
afe-arc-assign.m.result
ith-arc-mode-check.m
ith-arc-mode-migrate.m
ith-arc-mode-migrate.m.result
ith-arc-mode-modify.m
ith-arc-mode-modify.m.result
4532b5553db699d5bed250454f9a45e0f66f4bf8 14-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Use __bridge_retained when passing an objc object to a CF parameter
annotated with cf_consumed attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139709 91177308-0d34-0410-b5e6-96231b3b80d8
ommon.h
onobjc-to-objc-cast.m
onobjc-to-objc-cast.m.result
0e2ca014bdf92b405f7c02f2d37532f4c9b9b663 07-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Try fixing the windows buildbot.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139262 91177308-0d34-0410-b5e6-96231b3b80d8
igrate-space-in-path.m
ith space/test.h
ith space/test.h.result
ith space/test1.m.in
ith space/test1.m.in.result
ith space/test2.m.in
ith space/test2.m.in.result
6015969a51a500701f0acf15f3aa9d4010de4aa2 07-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Remove xfail on test for windows, Takumi reported that it passes mingw and msvc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139223 91177308-0d34-0410-b5e6-96231b3b80d8
igrate-space-in-path.m
1494a4fd7e7aab73b02818662a56d4907dee0247 01-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Clear out temporary dirs in the tests or we may get failures because of leftovers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138971 91177308-0d34-0410-b5e6-96231b3b80d8
igrate.m
ith-arc-mode-migrate.m
ith-arc-mode-migrate.m.result
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
xx-rewrite.mm
emove-statements.m
140ab234c23f392d5422691c5de1ee3c15026def 31-Aug-2011 Fariborz Jahanian <fjahanian@apple.com> objective-c - This patch buffers method implementations
and does the Sema on their body after the entire
class/category @implementation is seen. This change allows messaging
of forward private methods, as well as, access to
synthesized ivars of properties with foward synthesize
declarations; among others. In effect, this patch removes
several restrictions placed on objective-c due to in-place
semantics processing of methods.
This is part of // rdar://8843851.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138865 91177308-0d34-0410-b5e6-96231b3b80d8
emove-statements.m
72e4d0c0bffd48eb76dabffbc044ee6f19dad6f8 27-Aug-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Xfail the test for windows.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138696 91177308-0d34-0410-b5e6-96231b3b80d8
igrate-space-in-path.m
d37c67b8f26ffe31e7f7292f26ab39cee78151d8 27-Aug-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Add a test case for r138671 and improve the loop.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138674 91177308-0d34-0410-b5e6-96231b3b80d8
igrate-space-in-path.m
94a9016a6b92cfebdb0b7d4dcad930248f1f301a 10-Aug-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] When checking whether properties needs to be strong or not, take into account
that assigning result of -retain means it should be strong. rdar://9931757.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137252 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
7898005b35f8ee5c639e1247ce56b63004b86b03 02-Aug-2011 Fariborz Jahanian <fjahanian@apple.com> objective-c: reverse patch for // rdar://9818354



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136658 91177308-0d34-0410-b5e6-96231b3b80d8
emove-dealloc-zerouts.m
emove-dealloc-zerouts.m.result
6fa8f86b8188c6d3c4d6616122a71ccd72a0c78a 27-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Revert r135382, there's a different approach in r135764. rdar://9821111.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136209 91177308-0d34-0410-b5e6-96231b3b80d8
sdata.m
sdata.m.result
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
ommon.h
pi.m
pi.m.result
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
tautorelease.m
tautorelease.m.result
onobjc-to-objc-cast-2.m
onobjc-to-objc-cast.m
onobjc-to-objc-cast.m.result
eleases.m
eleases.m.result
527eec86ce96695a7198073e574bf4a184848d24 22-Jul-2011 Fariborz Jahanian <fjahanian@apple.com> objective-c: Any use of @synthesize or @dynamic lexically after a method (or C function) implementation
will be rejected with a compilation error in ARC mode, and a compiler warning otherwise.
This may cause breakage in non-arc (and arc) tests which don't expect warning/error. Feel free
to fix the tests, or reverse the patch, if I am unavailable. // rdar://9818354 - WIP


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135740 91177308-0d34-0410-b5e6-96231b3b80d8
emove-dealloc-zerouts.m
emove-dealloc-zerouts.m.result
7ee2049278b98d42709380054eb83f4952af1200 19-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Add some additional driver flags to optionally emit or save the pre-migration ARC errors.

-arcmt-migrate-emit-errors : Emits the pre-migration ARC errors but it doesn't affect anything else
-arcmt-migrate-report-output : Writes out the pre-migration ARC errors to the provided plist file

rdar://9791454

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135491 91177308-0d34-0410-b5e6-96231b3b80d8
igrate-emit-errors.m
igrate-plist-output.m
05fdf9bc3f5089db291484e4ad9880aa432db9f4 18-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] When a NSData's 'bytes' family of methods are used on a local var,
add __attribute__((objc_precise_lifetime)) to make sure that the object
(and its data) will not get released before the var goes out-of-scope.

rdar://9206226

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135382 91177308-0d34-0410-b5e6-96231b3b80d8
sdata.m
sdata.m.result
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
heck-api.m
82a921a1a4811f2d6411bcafcb2b7d59a4dd9080 16-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] It's not safe to remove the -release on "[[someivar delegate] release];" since it's very likely
that, after migration, the object that was passed to 'setDelegate:' will not be properly retained, e.g:

-whatever {
id x = [[MyDoHicky alloc] init];
[someivar setDelegate: x]; // x won't get retained in ARC.
}
-dealloc {
[[someivar delegate] release]; // give migration error here.
}

rdar://8858009

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135327 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
1aa60ff0ad1fb5bcb3042670dfdd7d5a8359d922 16-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Rewrite to "foo = nil;" not "foo = 0;", as suggested by Jordy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135309 91177308-0d34-0410-b5e6-96231b3b80d8
eleases.m
eleases.m.result
f55a869ba4c651943715d13d9b9c50a2e752a6ac 15-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] For:

id x = ...
@try {
...
} @finally {
[x release];
}

Migrator will drop the release. It's better to change it to "x = 0" in a @finally to avoid leak when exception is thrown.

rdar://9398256

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135301 91177308-0d34-0410-b5e6-96231b3b80d8
eleases.m
eleases.m.result
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
hecking.m
2cd5366ff52b4592776ee4db27012d16fb995c62 15-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Allow -retain of an __unsafe_unretained receiver if the result gets used.
Keep the error if the result is unused. rdar://9552694.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135209 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
e0e40768cc8c4b2a9093dac3d777e0d362cb7a88 14-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Emit an error for unused -autorelease messages.

An unused autorelease is badness. If we remove it the receiver
will likely die immediately while previously it was kept alive
by the autorelease pool. This is bad practice in general, so leave it
and emit an error to force the user to restructure his code.

rdar://9599884

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135193 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
xx-rewrite.mm
emove-statements.m
etains.m
a944b123e49790e4cb0a8f4d6ee3a65e185127aa 14-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Make sure migrating to ARC works even if '-fobjc-arc' is included in command-line flags. rdar://9567824

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135115 91177308-0d34-0410-b5e6-96231b3b80d8
ith-arc-mode-check.m
ith-arc-mode-migrate.m
ith-arc-mode-migrate.m.result
ith-arc-mode-modify.m
ith-arc-mode-modify.m.result
968860904a65619899c9f38673c8236a81240d93 13-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Add weak/unsafe_unretained for "@property (readonly)" when we are @synthesizing it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135067 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
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
ssign-prop-no-arc-runtime.m.result
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
eleases-driver.m.result
eleases.m.result
emove-dealloc-method.m.result
emove-dealloc-zerouts.m.result
etains.m.result
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
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
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
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
f96e904783dc28b2b3fa4dcbb6dbdb40ca26aa8d 12-Jul-2011 Douglas Gregor <dgregor@apple.com> In ARC mode, consider Objective-C lifetime types (object pointers and
block pointers) that don't have any qualification to be POD types. We
were previously considering them to be non-POD types, because this was
convenient in C++ for is_pod-like traits. However, we now end up
inferring lifetime in such cases (template arguments infer __strong),
so it is not necessary.

Moreover, we want rvalues of object type (which have their lifetime
stripped) to be PODs to allow, e.g., va_arg(arglist, id) to function
properly. Fixes <rdar://problem/9758798>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134993 91177308-0d34-0410-b5e6-96231b3b80d8
xx-checking.mm
a5ca112ced1c0856187fe6717d36ce614f20d4a6 11-Jul-2011 NAKAMURA Takumi <geek4civic@gmail.com> Tweak two tests with MSYS-bash tolerant.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134899 91177308-0d34-0410-b5e6-96231b3b80d8
river-migrate.m
b8775eb0c913a9628b69635fcb15feb7e9d25ece 09-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Remove test/ARCMT/with-working-dir.m which fails at windows hosts and is not that useful
in the first place. http://llvm.org/PR10312.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134845 91177308-0d34-0410-b5e6-96231b3b80d8
ith-working-dir.m
ith-working-dir.m.result
69325d5b7cfecf1b3128745efc33612aedf1b8b4 09-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Introduce new '-ccc-arcmt-migrate <path>' ARC migration driver option.

This is a new mode of migration, where we avoid modifying the original files but
we emit temporary files instead.

<path> will be used to keep migration process metadata. Currently the temporary files
that are produced are put in the system's temp directory but we can put them
in the <path> if is necessary.

Also introduce new ARC migration functions in libclang whose only purpose,
currently, is to accept <path> and provide pairs of original file/transformed file
to map from the originals to the files after transformations are applied.

Finally introduce the c-arcmt-test utility that exercises the new libclang functions,
update arcmt-test, and add tests for the whole process.

rdar://9735086.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134844 91177308-0d34-0410-b5e6-96231b3b80d8
nputs/test.h
nputs/test.h.result
nputs/test1.m.in
nputs/test1.m.in.result
nputs/test2.m.in
nputs/test2.m.in.result
river-migrate.m
igrate.m
9f084a3166b684573ba49df28fc5792bc37d92e1 06-Jul-2011 John McCall <rjmccall@apple.com> Change the driver's logic about Objective-C runtimes: abstract out a
structure to hold inferred information, then propagate each invididual
bit down to -cc1. Separate the bits of "supports weak" and "has a native
ARC runtime"; make the latter a CodeGenOption.

The tool chain is still driving this decision, because it's the place that
has the required deployment target information on Darwin, but at least it's
better-factored now.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134453 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-prop-no-arc-runtime.m
ssign-prop-no-arc-runtime.m.result
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
ewrite-block-var.m
ewrite-block-var.m.result
0a85183be6930571f3af8e5a976d24c3f95e5b25 02-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [ARC] When casting from a pointer to an objective-c object with known ownership, if the
cast type has no ownership specified, implicitly "transfer" the ownership of the cast'ed type
to the cast type:

id x;
(NSString**)&x; // Casting as (__strong NSString**).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134275 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
cf79eba65b327acad1cbb5b35b26fa751f6d7132 24-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Add test for rdar://9601437.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133807 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
b8b0313e84700b5c6d597b3be4de41c97b7550f1 24-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Rename objc_lifetime -> objc_ownership, and modify diagnostics to talk about 'ownership', not 'lifetime'.

rdar://9477613.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133779 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
b1094a0621c3bf91141f7cd9684ca80b357ae61e 23-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Fully migrate ObjC++ classes, rdar://9660007.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133763 91177308-0d34-0410-b5e6-96231b3b80d8
xx-rewrite.mm
xx-rewrite.mm.result
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
ommon.h
lloc-with-zone-check.m
lloc-with-zone.m
lloc-with-zone.m.result
7bf952e60114bbe54b25c4fe7379e7db097695e7 22-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Make -Warc-unsafe-retained-assign an error when migrating. rdar://8939557

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133627 91177308-0d34-0410-b5e6-96231b3b80d8
hecking.m
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
onobjc-to-objc-cast.m
onobjc-to-objc-cast.m.result
e665d6929e11796620ff799bc0186ebd747bfc76 18-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Fix the ARC migrator. -arcmt-modify requires running before the initialization of SourceManager
because it is going to modify the input file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133323 91177308-0d34-0410-b5e6-96231b3b80d8
lloc-with-zone-check.m
tautorelease-check.m
hecking.m
xx-checking.mm
onobjc-to-objc-cast-2.m
eleases-driver.m
eleases-driver.m.result
22b2bc8403f9106c057b10bbbf1cac9f179a2bb6 16-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Fix test for MSVC build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133183 91177308-0d34-0410-b5e6-96231b3b80d8
ith-working-dir.m
ith-working-dir.m.result
952105343c34a5ce5e740c7518710f7af1e368ec 16-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Fix the test when running in Lion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133167 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-prop-no-arc-runtime.m
ssign-prop-no-arc-runtime.m.result
16f971fc485f08547230d54d9f74d5b3866214e5 16-Jun-2011 John McCall <rjmccall@apple.com> Give arcmt-test an explicit triple for this test.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133165 91177308-0d34-0410-b5e6-96231b3b80d8
ith-working-dir.m
ith-working-dir.m.result
d0ba7fca71c3e1279dbf2ced8d1ba66eae37cbaf 16-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Fix tests in non-darwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133140 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
ewrite-block-var.m
ewrite-block-var.m.result
eaed19e241359fb37da0269a64311e57cd53b83c 16-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [arcmt] Make arcmt-test accept cc1 options to make it more portable and hopefully fix MSVC failures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133119 91177308-0d34-0410-b5e6-96231b3b80d8
lloc-with-zone.m
lloc-with-zone.m.result
ssign-prop-no-arc-runtime.m
ssign-prop-no-arc-runtime.m.result
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
tautorelease-2.m
tautorelease-2.m.result
tautorelease-3.m
tautorelease-3.m.result
tautorelease.m
tautorelease.m.result
utoreleases.m
utoreleases.m.result
xx-checking.mm
ealloc.m
ealloc.m.result
nit.m
nit.m.result
onobjc-to-objc-cast.m
onobjc-to-objc-cast.m.result
eleases.m
eleases.m.result
emove-dealloc-method.m
emove-dealloc-method.m.result
emove-dealloc-zerouts.m
emove-dealloc-zerouts.m.result
emove-statements.m
emove-statements.m.result
etains.m
etains.m.result
ewrite-block-var.m
ewrite-block-var.m.result
afe-arc-assign.m
afe-arc-assign.m.result
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
ommon.h
lloc-with-zone-check.m
lloc-with-zone.m
lloc-with-zone.m.result
ssign-prop-no-arc-runtime.m
ssign-prop-no-arc-runtime.m.result
ssign-prop-with-arc-runtime.m
ssign-prop-with-arc-runtime.m.result
tautorelease-2.m
tautorelease-2.m.result
tautorelease-3.m
tautorelease-3.m.result
tautorelease-check.m
tautorelease.m
tautorelease.m.result
utoreleases.m
utoreleases.m.result
hecking.m
xx-checking.mm
ealloc.m
ealloc.m.result
nit.m
nit.m.result
onobjc-to-objc-cast-2.m
onobjc-to-objc-cast.m
onobjc-to-objc-cast.m.result
eleases.m
eleases.m.result
emove-dealloc-method.m
emove-dealloc-method.m.result
emove-dealloc-zerouts.m
emove-dealloc-zerouts.m.result
emove-statements.m
emove-statements.m.result
etains.m
etains.m.result
ewrite-block-var.m
ewrite-block-var.m.result
afe-arc-assign.m
afe-arc-assign.m.result
ith-working-dir.m
ith-working-dir.m.result