Hi Richard,

You can find the closest thing to that, clang's source-level blocks translator, in RewriteObjC.cpp.

As Jordan points out, the main compilation path in clang doesn't use source-level translation.

The aforementioned rewrite facility was developed in order to target Objective-C code to MSVC back before clang itself was viable on Windows.

Alp.



On 14/05/2014 01:40, Richard Catlin wrote:
For example, the Block Implementation Specification says

^ { printf("hello world\n"); }

is translated to

struct __block_literal_1 {
void *isa;
int flags;
int reserved;
void (*invoke)(struct __block_literal_1 *);
struct __block_descriptor_1 *descriptor;
};
void __block_invoke_1(struct __block_literal_1 *_block) {
printf("hello world\n");
}
static struct __block_descriptor_1 {
unsigned long int reserved;
unsigned long int Block_size;
} __block_descriptor_1 = { 0, sizeof(struct __block_literal_1), __block_invoke_1 };

struct __block_literal_1 _block_literal = {
&_NSConcreteStackBlock,
(1<<29), <uninitialized>,
__block_invoke_1,
&__block_descriptor_1
};

Thanks for any help.
Richard Catlin



_______________________________________________
cfe-users mailing list
cfe-users@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users

--
http://www.nuanti.com
the browser experts

_______________________________________________
cfe-users mailing list
cfe-users@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users

Reply via email to