[cfe-dev] Congratualtions! And some very minor bugs
Javier Múgica
javier_3 at runbox.com
Sat May 23 00:45:27 PDT 2015
Yesterday I successfully compiled my first project with Clang, on Windows. First I replaced cl with clang-cl; this was straight forward. Then I used clang and it took me quite a while to figure out how I could build the dll. Maybe I will write a short guide for that for those cominf from MSVS on the next days if I have time. So I congratulate you for writing a compiler which just works with almost no effort on my part and at the same time wish some docs existed, not only for that, but for almost everything; what you get under the "User's Manual" link is even less than with >clang -help.
Ohter than the unsigned char problem I reported in my previous message, Clang failed to compile some points of inline asembly, viz. code wthin and __asm{ } block:
1. It does not understand the "short" keyword after a jump instruction, e.g.:
jae short big_loop
It seems it thinks "short", or "short big_loop" is the name of the label. Since I have very, very few asembly code I just removed the "short"'s.
2. The following line
jmp main_loop ;if ecx[3] was 80 (80 is €)
causes it to interpret the >127 char as wrong UTF-8 input. I suppose if I changed the ; that introduces the comment into // the problem would disappear. I don't know because I just saved the file as UTF-8.
3. error: Unable to lookup field reference!
mov edi, [ebx].backPtr
^
The code is this:
void do_towrite_uint(Buffer_to *buf,uint x){
__asm{
mov ebx, buf
mov eax, x
mov edi, [ebx].backPtr
I suppose this is not a bug but intended unsupported feature. I don't know how I can fix this, so I just used the plain C version I have of that same function instead of the __asm{ } one.
An that's all.
More information about the cfe-dev
mailing list