Page MenuHomePhabricator

MadCoder (Pierre Habouzit)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 7 2019, 11:21 PM (21 w, 3 d)

Recent Activity

Mon, Mar 23

MadCoder committed rG20d704a75ed5: [objc_direct] also go through implementations when looking for clashes (authored by MadCoder).
[objc_direct] also go through implementations when looking for clashes
Mon, Mar 23, 9:13 PM
MadCoder closed D76643: [objc_direct] also go through implementations when looking for clashes.
Mon, Mar 23, 9:13 PM · Restricted Project
MadCoder updated the diff for D76643: [objc_direct] also go through implementations when looking for clashes.
Mon, Mar 23, 3:48 PM · Restricted Project
MadCoder created D76643: [objc_direct] also go through implementations when looking for clashes.
Mon, Mar 23, 3:16 PM · Restricted Project

Feb 16 2020

MadCoder committed rG3adcc78a8071: [objc_direct] Small updates to help with adoption. (authored by MadCoder).
[objc_direct] Small updates to help with adoption.
Feb 16 2020, 4:57 PM
MadCoder closed D73755: [objc_direct] Small updates to help with adoption..
Feb 16 2020, 4:57 PM · Restricted Project

Feb 14 2020

MadCoder added inline comments to D73755: [objc_direct] Small updates to help with adoption..
Feb 14 2020, 2:20 PM · Restricted Project
MadCoder updated the diff for D73755: [objc_direct] Small updates to help with adoption..

@erik.pilkington review feedback

Feb 14 2020, 2:20 PM · Restricted Project
MadCoder added a comment to D73755: [objc_direct] Small updates to help with adoption..

@MadCoder Could there be a way to mark objc_direct methods as something like attribute((visibility("default"))) or __declspec(dllexport) to denote that a given method should be directly callable but still retain the metadata to be called through an objc_msgSend from an external dylib? Could that help to boost adoption?

Feb 14 2020, 1:34 PM · Restricted Project

Feb 10 2020

MadCoder updated the diff for D73755: [objc_direct] Small updates to help with adoption..
Add some errors when direct properties are marked @dynamic.
Feb 10 2020, 12:27 PM · Restricted Project
MadCoder updated the summary of D73755: [objc_direct] Small updates to help with adoption..
Feb 10 2020, 12:27 PM · Restricted Project

Jan 30 2020

MadCoder committed rG6eb969b7c5b5: [objc_direct] fix codegen for mismatched Decl/Impl return types (authored by MadCoder).
[objc_direct] fix codegen for mismatched Decl/Impl return types
Jan 30 2020, 6:23 PM
MadCoder committed rGc6cf3602e27b: Revert "[objc_direct] Small updates to help with adoption." (authored by MadCoder).
Revert "[objc_direct] Small updates to help with adoption."
Jan 30 2020, 6:23 PM
MadCoder committed rGbebb8e2596af: [objc_direct] Small updates to help with adoption. (authored by MadCoder).
[objc_direct] Small updates to help with adoption.
Jan 30 2020, 6:23 PM
MadCoder added a reverting change for rGbebb8e2596af: [objc_direct] Small updates to help with adoption.: rGc6cf3602e27b: Revert "[objc_direct] Small updates to help with adoption.".
Jan 30 2020, 6:23 PM
MadCoder closed D73208: [objc_direct] fix codegen for mismatched Decl/Impl return types.
Jan 30 2020, 6:23 PM · Restricted Project
MadCoder created D73755: [objc_direct] Small updates to help with adoption..
Jan 30 2020, 5:28 PM · Restricted Project
MadCoder updated the diff for D73208: [objc_direct] fix codegen for mismatched Decl/Impl return types.
Jan 30 2020, 5:18 PM · Restricted Project
MadCoder updated the diff for D73208: [objc_direct] fix codegen for mismatched Decl/Impl return types.

damn you tabs!

Jan 30 2020, 3:16 PM · Restricted Project
MadCoder updated the diff for D73208: [objc_direct] fix codegen for mismatched Decl/Impl return types.

@dexonsmith here, I still hook the same method but do it in a more LLVM-approved way ;)

Jan 30 2020, 3:16 PM · Restricted Project

Jan 23 2020

MadCoder committed rG52311d0483ee: [objc_direct] do not add direct properties to the serialization array (authored by MadCoder).
[objc_direct] do not add direct properties to the serialization array
Jan 23 2020, 11:02 PM
MadCoder closed D73219: [objc_direct] do not add direct properties to the serialization array.
Jan 23 2020, 11:01 PM · Restricted Project
MadCoder committed rG7596d3c50c4b: [objc_direct] Allow for direct messages be sent to `self` when it is a Class (authored by MadCoder).
[objc_direct] Allow for direct messages be sent to `self` when it is a Class
Jan 23 2020, 11:01 PM
MadCoder closed D72747: [objc_direct] Allow for direct messages be sent to `self` when it is a Class.
Jan 23 2020, 11:01 PM · Restricted Project
MadCoder added a comment to D73208: [objc_direct] fix codegen for mismatched Decl/Impl return types.

Why isn't a similar dance needed for non-direct methods?

because non direct methods do not need an llvm::Function to be synthesized at the call-site. direct methods do, and they form one with the type of the declaration they see. Then that same llvm::Function is used when you CodeGen the Implementation, so if there's a mismatch, sadness ensues because the LLVM IR verifier will notice the discrepancy between the declared return type of the function and the actual types coming out of the ret codepaths.

Regular obj-C methods use the _implementation_ types for the codegen (the declaration(s) aren't even consulted) and I want to stick at what obj-c does as much as I can.

(as a data point: If you use obj-C types with C functions, the type of the first declaration seen is used instead).

Okay, that makes sense to me.

Another solution would be to change IRGen for the implementation: if the declaration already exists (getFunction), do a bitcast + RAUW dance to fix it up (and update the DirectMethodDefinitions table). WDYT?

I didn't want to do that because that would mean that the type used for the implementation would depart from dynamic Objective-C methods, and it feels that it shouldn't. hence I took this option.

I think we're talking across each other. The idea is check the type when generating the implementation; if it's not correct, you fix it (need to update existing uses to bitcast). So the type used for the implementation would match dynamic methods.

Jan 23 2020, 10:21 PM · Restricted Project
MadCoder added a comment to D73208: [objc_direct] fix codegen for mismatched Decl/Impl return types.

Why isn't a similar dance needed for non-direct methods?

because non direct methods do not need an llvm::Function to be synthesized at the call-site. direct methods do, and they form one with the type of the declaration they see. Then that same llvm::Function is used when you CodeGen the Implementation, so if there's a mismatch, sadness ensues because the LLVM IR verifier will notice the discrepancy between the declared return type of the function and the actual types coming out of the ret codepaths.

Regular obj-C methods use the _implementation_ types for the codegen (the declaration(s) aren't even consulted) and I want to stick at what obj-c does as much as I can.

(as a data point: If you use obj-C types with C functions, the type of the first declaration seen is used instead).

Okay, that makes sense to me.

Another solution would be to change IRGen for the implementation: if the declaration already exists (getFunction), do a bitcast + RAUW dance to fix it up (and update the DirectMethodDefinitions table). WDYT?

Jan 23 2020, 10:46 AM · Restricted Project
MadCoder added inline comments to D73219: [objc_direct] do not add direct properties to the serialization array.
Jan 23 2020, 8:52 AM · Restricted Project

Jan 22 2020

MadCoder added a comment to D73208: [objc_direct] fix codegen for mismatched Decl/Impl return types.

Why isn't a similar dance needed for non-direct methods?

Jan 22 2020, 5:59 PM · Restricted Project
MadCoder created D73219: [objc_direct] do not add direct properties to the serialization array.
Jan 22 2020, 12:15 PM · Restricted Project
MadCoder created D73208: [objc_direct] fix codegen for mismatched Decl/Impl return types.
Jan 22 2020, 8:59 AM · Restricted Project
MadCoder updated the diff for D72747: [objc_direct] Allow for direct messages be sent to `self` when it is a Class.

with the test for real

Jan 22 2020, 8:50 AM · Restricted Project
MadCoder updated the diff for D72747: [objc_direct] Allow for direct messages be sent to `self` when it is a Class.

adding the non ARC test I forgot to add

Jan 22 2020, 8:41 AM · Restricted Project

Jan 21 2020

MadCoder updated the diff for D72747: [objc_direct] Allow for direct messages be sent to `self` when it is a Class.

fixed @ahatanak feedback

Jan 21 2020, 7:13 PM · Restricted Project

Jan 16 2020

MadCoder updated the diff for D72747: [objc_direct] Allow for direct messages be sent to `self` when it is a Class.

Added some more tests to make sure it works along inheritance chains as expected

Jan 16 2020, 11:31 PM · Restricted Project

Jan 14 2020

MadCoder created D72747: [objc_direct] Allow for direct messages be sent to `self` when it is a Class.
Jan 14 2020, 8:37 PM · Restricted Project
MadCoder committed rGd18fbfc09720: Relax the rules around objc_alloc and objc_alloc_init optimizations. (authored by MadCoder).
Relax the rules around objc_alloc and objc_alloc_init optimizations.
Jan 14 2020, 7:51 PM
MadCoder closed D71682: Relax the rules around objc_alloc and objc_alloc_init optimizations..
Jan 14 2020, 7:51 PM · Restricted Project
MadCoder added inline comments to D71682: Relax the rules around objc_alloc and objc_alloc_init optimizations..
Jan 14 2020, 8:59 AM · Restricted Project

Jan 11 2020

MadCoder accepted D72549: [TSan] Register threads created via pthread_create_from_mach_thread.
Jan 11 2020, 10:53 AM · Restricted Project, Restricted Project

Dec 20 2019

MadCoder committed rG42f9d0c0bee3: [objc_direct] Tigthen checks for direct methods (authored by MadCoder).
[objc_direct] Tigthen checks for direct methods
Dec 20 2019, 11:01 AM
MadCoder closed D71694: [objc_direct] Tigthen checks for direct methods.
Dec 20 2019, 11:01 AM · Restricted Project

Dec 19 2019

MadCoder updated the diff for D71694: [objc_direct] Tigthen checks for direct methods.

Removed the category from the direct method name mangling as discussed with @aprantl

Dec 19 2019, 5:04 PM · Restricted Project
MadCoder added inline comments to D71694: [objc_direct] Tigthen checks for direct methods.
Dec 19 2019, 2:11 PM · Restricted Project
MadCoder updated the diff for D71694: [objc_direct] Tigthen checks for direct methods.

I had forgotten to clang format and left some tabs here... some day I'll fix my vim config

Dec 19 2019, 1:32 PM · Restricted Project
MadCoder updated the diff for D71694: [objc_direct] Tigthen checks for direct methods.

Addressed @aprantl review feedback.

Dec 19 2019, 1:32 PM · Restricted Project
MadCoder added inline comments to D71694: [objc_direct] Tigthen checks for direct methods.
Dec 19 2019, 12:53 PM · Restricted Project
MadCoder added a reviewer for D71694: [objc_direct] Tigthen checks for direct methods: aprantl.
Dec 19 2019, 2:44 AM · Restricted Project
MadCoder updated subscribers of D71694: [objc_direct] Tigthen checks for direct methods.
Dec 19 2019, 2:39 AM · Restricted Project
MadCoder updated the diff for D71694: [objc_direct] Tigthen checks for direct methods.

Small update because I uploaded before the full completion of the test-suite and somehow it's sentient and punished me... (some diagnostics were too verbose and stuttering things with Sema::CheckObjCMethodOverrides).

Dec 19 2019, 2:35 AM · Restricted Project
MadCoder created D71694: [objc_direct] Tigthen checks for direct methods.
Dec 19 2019, 2:02 AM · Restricted Project

Dec 18 2019

MadCoder updated the summary of D71682: Relax the rules around objc_alloc and objc_alloc_init optimizations..
Dec 18 2019, 5:40 PM · Restricted Project
MadCoder updated the summary of D71682: Relax the rules around objc_alloc and objc_alloc_init optimizations..
Dec 18 2019, 5:40 PM · Restricted Project
MadCoder updated the summary of D71682: Relax the rules around objc_alloc and objc_alloc_init optimizations..
Dec 18 2019, 5:40 PM · Restricted Project
MadCoder updated the summary of D71682: Relax the rules around objc_alloc and objc_alloc_init optimizations..
Dec 18 2019, 5:31 PM · Restricted Project
MadCoder created D71682: Relax the rules around objc_alloc and objc_alloc_init optimizations..
Dec 18 2019, 5:31 PM · Restricted Project

Dec 16 2019

MadCoder added a reviewer for D71588: [objc_direct] fix uniquing when re-declaring a readwrite-direct property: liuliu.
Dec 16 2019, 10:25 PM · Restricted Project
MadCoder created D71588: [objc_direct] fix uniquing when re-declaring a readwrite-direct property.
Dec 16 2019, 10:25 PM · Restricted Project

Dec 12 2019

GitHub <noreply@github.com> committed rG73634fe4cd97: Merge pull request #439 from apple/eng/PR-57764169-direct-method-crash-20191106 (authored by MadCoder).
Merge pull request #439 from apple/eng/PR-57764169-direct-method-crash-20191106
Dec 12 2019, 3:55 PM
MadCoder committed rGc48855f9df26: Also synthesize _cmd and self for properties (authored by MadCoder).
Also synthesize _cmd and self for properties
Dec 12 2019, 3:55 PM
MadCoder committed rGa99f2cdebccc: [ObjC] Make sure that the implicit arguments for direct methods have been setup (authored by arphaman).
[ObjC] Make sure that the implicit arguments for direct methods have been setup
Dec 12 2019, 3:55 PM
GitHub <noreply@github.com> committed rG76b3d5a90e73: Merge pull request #432 from apple/eng/PR-57661767-crash-20191106 (authored by MadCoder).
Merge pull request #432 from apple/eng/PR-57661767-crash-20191106
Dec 12 2019, 3:55 PM
MadCoder committed rG11d47b3d553c: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)) (authored by MadCoder).
Implement __attribute__((objc_direct)), __attribute__((objc_direct_members))
Dec 12 2019, 3:52 PM

Dec 9 2019

MadCoder added a comment to D71091: Make sure that the implicit arguments for direct methods have been setup.

No problem! I have a custom patch that isn't as nice but get the job done. Let me know when you put new diff out and I can test it on our codebase again.

Dec 9 2019, 2:47 PM · Restricted Project
MadCoder added a comment to D71226: Also synthesize _cmd and self for properties.

It'd be nice if we didn't have to synthesize parameters for all declarations when we're just handling an @interface, but we can improve that in follow-ups.

Dec 9 2019, 2:01 PM · Restricted Project
MadCoder added a comment to D71226: Also synthesize _cmd and self for properties.

@liuliu that fixes your test case (which I reproduced in the CG test)

Dec 9 2019, 1:40 PM · Restricted Project
MadCoder created D71226: Also synthesize _cmd and self for properties.
Dec 9 2019, 1:40 PM · Restricted Project
MadCoder added a comment to D71091: Make sure that the implicit arguments for direct methods have been setup.

We don't use PCH :) I arc patched the latest diff, still have that crash. More strangely, I tried this latest diff on previously simplistic test case and it crashes now:

#import <Foundation/Foundation.h>

@interface SCTestMainEntity : NSObject

@property (nonatomic, readonly, direct) int date;

- (instancetype)initWithDate:(int)date;

@end

int main(void)
{
    SCTestMainEntity *entity = [[SCTestMainEntity alloc] initWithDate:10];
    printf("%d\n", entity.date);
    return 0;
}
Dec 9 2019, 12:34 PM · Restricted Project

Dec 6 2019

MadCoder added inline comments to D71091: Make sure that the implicit arguments for direct methods have been setup.
Dec 6 2019, 2:07 PM · Restricted Project
MadCoder updated the diff for D71091: Make sure that the implicit arguments for direct methods have been setup.

@liuliu I wouldn't be surprised this addresses your issues if snapchat is using PCH

Dec 6 2019, 2:06 PM · Restricted Project
MadCoder added inline comments to D71091: Make sure that the implicit arguments for direct methods have been setup.
Dec 6 2019, 1:39 PM · Restricted Project
MadCoder updated the diff for D71091: Make sure that the implicit arguments for direct methods have been setup.

woops a bogus hunk went in

Dec 6 2019, 1:39 PM · Restricted Project
MadCoder updated the diff for D71091: Make sure that the implicit arguments for direct methods have been setup.
Dec 6 2019, 1:21 PM · Restricted Project
MadCoder updated the summary of D71091: Make sure that the implicit arguments for direct methods have been setup.
Dec 6 2019, 1:21 PM · Restricted Project
MadCoder added inline comments to D71091: Make sure that the implicit arguments for direct methods have been setup.
Dec 6 2019, 12:26 PM · Restricted Project
MadCoder added a comment to D71091: Make sure that the implicit arguments for direct methods have been setup.

With this latest fix applied on top of b220662a45c8067a2ae485ae34c1138d93506df9, in our company's internal code, I still encounter the crash.

Showing All Messages
/Users/liuliu/Snapchat/Dev/phantom/3.	Libraries/Storage/DocObject/Implementations/SCSQLiteDocObjectContext/Tests/Generated/SCTestMainEntityChangeRequest.mm:338:25: LLVM IR generation of compound statement ('{}')
/Users/liuliu/Snapchat/Dev/phantom/0  clang-10                 0x000000010b9edf0c llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 60
1  clang-10                 0x000000010b9ee4c9 PrintStackTraceSignalHandler(void*) + 25
/Users/liuliu/Snapchat/Dev/phantom/2  clang-10                 0x000000010b9ec086 llvm::sys::RunSignalHandlers() + 118
3  clang-10                 0x000000010b9f1e6c SignalHandler(int) + 252
4  libsystem_platform.dylib 0x00007fff65d8eb5d _sigtramp + 29
5  libsystem_platform.dylib 0x00007ffee7e9b790 _sigtramp + 18446744071596723280
/Users/liuliu/Snapchat/Dev/phantom/6  clang-10                 0x000000010bfdff14 clang::CodeGen::CodeGenTypes::arrangeObjCMethodDeclaration(clang::ObjCMethodDecl const*) + 52
/Users/liuliu/Snapchat/Dev/phantom/7  clang-10                 0x000000010c1f6bcd (anonymous namespace)::CGObjCCommonMac::GenerateDirectMethod(clang::ObjCMethodDecl const*, clang::ObjCContainerDecl const*) + 285
/Users/liuliu/Snapchat/Dev/phantom/8  clang-10                 0x000000010c1f63e9 (anonymous namespace)::CGObjCCommonMac::EmitMessageSend(clang::CodeGen::CodeGenFunction&, clang::CodeGen::ReturnValueSlot, clang::QualType, clang::Selector, llvm::Value*, clang::QualType, bool, clang::CodeGen::CallArgList const&, clang::ObjCMethodDecl const*, clang::ObjCInterfaceDecl const*, (anonymous namespace)::ObjCCommonTypesHelper const&) + 1401
/Users/liuliu/Snapchat/Dev/phantom/9  clang-10                 0x000000010c205b14 (anonymous namespace)::CGObjCNonFragileABIMac::GenerateMessageSend(clang::CodeGen::CodeGenFunction&, clang::CodeGen::ReturnValueSlot, clang::QualType, clang::Selector, llvm::Value*, clang::CodeGen::CallArgList const&, clang::ObjCInterfaceDecl const*, clang::ObjCMethodDecl const*) + 644

It indeed won't crash any more in trivial examples. I need to have some other time to reduce my local example to a reasonable size.

Dec 6 2019, 11:47 AM · Restricted Project
MadCoder added a comment to D71091: Make sure that the implicit arguments for direct methods have been setup.

just added all the context this time (-W)

Dec 6 2019, 10:12 AM · Restricted Project
MadCoder updated the diff for D71091: Make sure that the implicit arguments for direct methods have been setup.
Dec 6 2019, 10:05 AM · Restricted Project

Dec 5 2019

MadCoder added a reviewer for D71091: Make sure that the implicit arguments for direct methods have been setup: jfb.
Dec 5 2019, 8:43 PM · Restricted Project
MadCoder updated the diff for D71091: Make sure that the implicit arguments for direct methods have been setup.
Dec 5 2019, 8:34 PM · Restricted Project
MadCoder added a comment to D71091: Make sure that the implicit arguments for direct methods have been setup.

oh hah, thanks :)

Dec 5 2019, 8:34 PM · Restricted Project
MadCoder updated the diff for D71091: Make sure that the implicit arguments for direct methods have been setup.

Fix the fact that the hashmap of direct method was indexed by Declarations instead of names (and depending on code ordering, the declaration used at codegen time may be the one from the @interface or from the @implementation leading to name collisions and llvm "helpfully" adding .1's everywhere

Dec 5 2019, 3:35 PM · Restricted Project
MadCoder updated the summary of D71091: Make sure that the implicit arguments for direct methods have been setup.
Dec 5 2019, 3:35 PM · Restricted Project
MadCoder added a comment to D71091: Make sure that the implicit arguments for direct methods have been setup.

hmm wait I have an old problem I had fixed creep up again :'(

Dec 5 2019, 2:35 PM · Restricted Project
MadCoder added a comment to D71091: Make sure that the implicit arguments for direct methods have been setup.

turns out that I had no codegen check for the call site and that one of the last iteration broke it trivially :'(

Dec 5 2019, 2:26 PM · Restricted Project
MadCoder created D71091: Make sure that the implicit arguments for direct methods have been setup.
Dec 5 2019, 2:26 PM · Restricted Project

Nov 21 2019

MadCoder accepted D70544: Debug info: Emit objc_direct methods as members of their containing class.
Nov 21 2019, 10:14 AM · Restricted Project, debug-info

Nov 17 2019

MadCoder updated the diff for D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).

Diff against previous is:

Nov 17 2019, 8:49 PM · Restricted Project
MadCoder added a comment to D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).

when running the full test-suite before sending the patch, and it broke tests because some loads are now ordered differently :(
yay.

Nov 17 2019, 8:32 PM · Restricted Project

Nov 14 2019

MadCoder added inline comments to D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).
Nov 14 2019, 2:36 PM · Restricted Project
MadCoder updated the diff for D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).

reverted the hunk about "direct methods" note.

Nov 14 2019, 2:36 PM · Restricted Project
MadCoder updated the diff for D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).

Updated for the new round of comments, with added tests and Sema checks errors for:

  • messaging super
  • messaging a nullable Class expression
Nov 14 2019, 11:20 AM · Restricted Project
MadCoder added inline comments to D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).
Nov 14 2019, 11:20 AM · Restricted Project

Nov 13 2019

MadCoder updated the diff for D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).

Implemented all the tests @rjmccall wanted (and then some)

Nov 13 2019, 11:29 PM · Restricted Project
MadCoder added inline comments to D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).
Nov 13 2019, 11:29 PM · Restricted Project
MadCoder added a comment to D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).

Is it intentional that the direct method names use the exact same symbol namespace (\01-[class message]) as "real" Objective-C methods? Could that be a problem? Should we use a slightly different naming scheme?

Nov 13 2019, 10:00 PM · Restricted Project
MadCoder updated the diff for D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).

Beefed up the tests, addressed the selfValue related issue.

Nov 13 2019, 2:05 PM · Restricted Project
MadCoder added inline comments to D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).
Nov 13 2019, 2:05 PM · Restricted Project
MadCoder added inline comments to D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).
Nov 13 2019, 1:28 AM · Restricted Project
MadCoder updated the diff for D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).

Updated clang/test/Misc/pragma-attribute-supported-attributes-list.test that I had forgotten.

Nov 13 2019, 1:28 AM · Restricted Project
MadCoder updated the diff for D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)).

Updated the patch to restrict objc_direct to methods and use objc_direct_members for containers, and several diagnostics improvements (especially in the vicinity of properties and the GNU runtime + tests).

Nov 13 2019, 1:18 AM · Restricted Project