On Wed, Dec 18, 2013 at 12:49 PM, Charles Davis <[email protected]> wrote: > > On Dec 18, 2013, at 9:23 AM, Aaron Ballman wrote: > >> Author: aaronballman >> Date: Wed Dec 18 10:23:37 2013 >> New Revision: 197584 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=197584&view=rev >> Log: >> Implement the MSABI and SysVABI calling conventions for Objective-C method >> declarations. This appears to be an omission from r189644. > It was intentional.
Then there's no need for these attributes to have an AST node because they're not actually used anywhere, aside from here. > I didn't think anyone would want or need to use any calling convention with > an Objective-C method other than the default. I'm a bit surprised by that as well, truth be told. But since every other calling convention is represented, omitting these two smells like a bug. > And I still don't understand why you'd want to use a different calling > convention. The methods are always called indirectly, by the objc_msgSend() > family (at least, on NeXT-style runtimes), and the IMP function pointer > typedef that it uses has the default calling convention. Any time the message > for that method gets sent, the method implementation will get called with the > wrong convention. Unless there's some way to communicate the correct calling > convention back to the runtime, I think we should go back to disallowing > calling convention attributes on Objective-C methods. This is definitely something worth exploring. I don't know enough about Obj-C to have much of an opinion. If we do remove calling conventions from Obj-C methods, be sure to set ASTNode = 0 for each of the CC attributes. :-) ~Aaron _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
