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
6 #define M __asm int 0x2c
10 void t2(void) { __asm
int 2ch
}
11 void t3(void) { __asm M2
2ch
}
12 void t4(void) { __asm mov eax
, fs
:[10h
] }
15 int 0x2c ; } asm comments are fun
! }{
20 __asm
int 3 ; } comments
for single
-line
asm
34 __asm nop __asm nop __asm nop
37 __asm nop __asm nop
; __asm nop
51 do { __asm mov eax
, 0 __asm
{ __asm mov edx
, 1 } } while(0);
54 __asm jmp label
// expected-error {{use of undeclared label 'label'}}
57 __asm m
{o
}v eax
, ebx
// expected-error {{unknown token in expression}}
62 __asm mov eax
, offset A
// expected-error {{offset operator cannot yet handle constants}}
67 unsigned bf1
:1; // expected-note {{bit-field is declared here}}
68 unsigned bf2
:1; // expected-note {{bit-field is declared here}}
72 mov eax
, s
.bf1
// expected-error {{an inline asm block cannot have an operand which is a bit-field}}
73 mov s
.bf2
, eax
// expected-error {{an inline asm block cannot have an operand which is a bit-field}}
77 int t_fail(void) { // expected-note {{to match this}}
79 __asm
{ // expected-error 3 {{expected}} expected-note {{to match this}}