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 9void t1(void) { M } 10void t2(void) { __asm int 0x2c } 11void t3(void) { __asm M2 0x2c } 12void t4(void) { __asm mov eax, fs:[0x10] } 13void t5() { 14 __asm { 15 int 0x2c ; } asm comments are fun! }{ 16 } 17 __asm {} 18} 19int t6() { 20 __asm int 3 ; } comments for single-line asm 21 __asm {} 22 23 __asm int 4 24 return 10; 25} 26void t7() { 27 __asm { 28 push ebx 29 mov ebx, 0x07 30 pop ebx 31 } 32} 33void t8() { 34 __asm nop __asm nop __asm nop 35} 36void t9() { 37 __asm nop __asm nop ; __asm nop 38} 39void t10() { 40 __asm { 41 mov eax, 0 42 __asm { 43 mov eax, 1 44 { 45 mov eax, 2 46 } 47 } 48 } 49} 50void t11() { 51 do { __asm mov eax, 0 __asm { __asm mov edx, 1 } } while(0); 52} 53void t12() { 54 __asm jmp label // expected-error {{use of undeclared label 'label'}} 55} 56void t13() { 57 __asm m{o}v eax, ebx // expected-error {{expected identifier}} expected-error {{use of undeclared label '{o}v eax, ebx'}} 58} 59 60int t_fail() { // expected-note {{to match this}} 61 __asm 62 __asm { // expected-error 3 {{expected}} expected-note {{to match this}} 63