1 // REQUIRES: x86-registered-target 2 // RUN: %clang_cc1 %s -triple i386-apple-darwin10 -verify -fasm-blocks 3 // Disabling gnu inline assembly should have no effect on this testcase 4 // RUN: %clang_cc1 %s -triple i386-apple-darwin10 -verify -fasm-blocks -fno-gnu-inline-asm 5 6 #define M __asm int 0x2c 7 #define M2 int 8 t1(void)9void t1(void) { M } t2(void)10void t2(void) { __asm int 0x2c } t3(void)11void t3(void) { __asm M2 0x2c } t4(void)12void t4(void) { __asm mov eax, fs:[0x10] } t5()13void t5() { 14 __asm { 15 int 0x2c ; } asm comments are fun! }{ 16 } 17 __asm {} 18 } 19 int t6() { 20 __asm int 3 ; } comments for single-line asm 21 __asm {} 22 23 __asm int 4 24 return 10; 25 } 26 void t7() { 27 __asm { 28 push ebx 29 mov ebx, 0x07 30 pop ebx 31 } 32 } 33 void t8() { 34 __asm nop __asm nop __asm nop 35 } 36 void t9() { 37 __asm nop __asm nop ; __asm nop 38 } 39 void t10() { 40 __asm { 41 mov eax, 0 42 __asm { 43 mov eax, 1 44 { 45 mov eax, 2 46 } 47 } 48 } 49 } 50 void t11() { 51 do { __asm mov eax, 0 __asm { __asm mov edx, 1 } } while(0); 52 } 53 void t12() { 54 __asm jmp label // expected-error {{use of undeclared label 'label'}} 55 } 56 void t13() { 57 __asm m{o}v eax, ebx // expected-error {{expected identifier}} expected-error {{use of undeclared label '{o}v eax, ebx'}} 58 } 59 60 int t_fail() { // expected-note {{to match this}} 61 __asm 62 __asm { // expected-error 3 {{expected}} expected-note {{to match this}} 63