> On Apr 7, 2015, at 3:29 PM, Alexey Denisov <[email protected]> wrote: > > Hi guys, > here is ‘intermediate’ patch, please consider this version as a draft, > it’s not finished yet and has some issues besides that. > I’m posting this to keep you updated and to get feedback earlier. > > Implementation details: > > Usual 'ObjCBoxedExpr' has only one 'SubExpr', but in case of > 'valueWithBytes:objCType:' it has two, it means that ObjCBoxedExpr has to be > extended > > I spent some time thinking about possible implementations and found at least > three: > > - 'PseudoObjectExpr': use pseudo object as a 'SubExpr' to mimic two > arguments, > very close but it doesn't work because CodeGen module emits code generation > for > every method parameter, though 'ObjCBoxedExpr' has only one 'SubExpr' > - 'ObjCBoxableExpr': was thinking to introduce new AST node, but, imho, it's > overkill > and node name is confusing, this option also was rejected > - 'ObjCBoxedExpr' with SubExprs: finally I decided to extend 'ObjCBoxedExpr' > to accept array of sub-expressions, instead of one expression
This seems like the right way to go. You can limit it to two if it makes the representation more efficient. I’ll take a look at the patch later. John. > Known issues: > > - documentation needs to be updated > - ASTReader/ASTWriter lack tests > - r-values aren't supported yet, need to add tests/implementation > > Next steps: > > - get feedback about current implementation > - fix known and newly discovered issues > > -- > AlexDenisov > Software Engineer, http://alexdenisov.github.io > > <objc_boxable.patch> _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
