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