// REQUIRES: x86-registered-target // RUN: %clang_cc1 %s -triple i386-apple-darwin10 -verify -fasm-blocks // Disabling gnu inline assembly should have no effect on this testcase // RUN: %clang_cc1 %s -triple i386-apple-darwin10 -verify -fasm-blocks -fno-gnu-inline-asm #define M __asm int 0x2c #define M2 int void t1(void) { M } void t2(void) { __asm int 2ch } void t3(void) { __asm M2 2ch } void t4(void) { __asm mov eax, fs:[10h] } void t5() { __asm { int 0x2c ; } asm comments are fun! }{ } __asm {} } int t6() { __asm int 3 ; } comments for single-line asm __asm {} __asm int 4 return 10; } void t7() { __asm { push ebx mov ebx, 07h pop ebx } } void t8() { __asm nop __asm nop __asm nop } void t9() { __asm nop __asm nop ; __asm nop } void t10() { __asm { mov eax, 0 __asm { mov eax, 1 { mov eax, 2 } } } } void t11() { do { __asm mov eax, 0 __asm { __asm mov edx, 1 } } while(0); } void t12() { __asm jmp label // expected-error {{use of undeclared label 'label'}} } void t13() { __asm m{o}v eax, ebx // expected-error {{unknown token in expression}} } void t14() { enum { A = 1, B }; __asm mov eax, offset A // expected-error {{offset operator cannot yet handle constants}} } int t_fail() { // expected-note {{to match this}} __asm __asm { // expected-error 3 {{expected}} expected-note {{to match this}}