Hi Akira, > My concern is that the patch changes the encoding of @encode(id<NSObject>) on > Darwin, which I think isn’t what you are trying to fix. If you compile the > following code with command “clang -cc1 -triple x86_64-apple-macosx”, the > type encoding changes after applying the patch. > > const char *foo() { > return @encode(id<NSObject>); > } > > It seems like you can fix your problem without affecting Darwin by passing an > extra argument to getObjCEncodingForType, just like > CGObjCCommonMac::GetMethodVarType does.
Ah, thanks- I understand now. Yes, this change seems a lot safer, and I verified that it passes my test. I've attached my new patch file, and I've also attached the test again. Please let me know if this works for you or if you think it needs any additional work. --David
CGObjCGNU.cpp.patch
Description: CGObjCGNU.cpp.patch
ivar-type-encoding.m
Description: ivar-type-encoding.m
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits