| Stephen Hines | 651f13c | 2014-04-23 16:59:28 -0700 | [diff] [blame] | 1 | // REQUIRES: x86-registered-target |
| Chad Rosier | bce9205 | 2013-01-22 21:39:58 +0000 | [diff] [blame] | 2 | // RUN: %clang_cc1 %s -triple i386-apple-darwin10 -verify -fasm-blocks |
| Eli Friedman | 3fedbe1 | 2011-09-30 01:13:51 +0000 | [diff] [blame] | 3 | |
| 4 | #define M __asm int 0x2c | ||||
| 5 | #define M2 int | ||||
| 6 | |||||
| Chad Rosier | c666cf4 | 2013-01-22 18:18:22 +0000 | [diff] [blame] | 7 | void t1(void) { M } |
| 8 | void t2(void) { __asm int 0x2c } | ||||
| 9 | void t3(void) { __asm M2 0x2c } | ||||
| 10 | void t4(void) { __asm mov eax, fs:[0x10] } | ||||
| Eli Friedman | 3fedbe1 | 2011-09-30 01:13:51 +0000 | [diff] [blame] | 11 | void t5() { |
| Chad Rosier | c666cf4 | 2013-01-22 18:18:22 +0000 | [diff] [blame] | 12 | __asm { |
| Eli Friedman | 3fedbe1 | 2011-09-30 01:13:51 +0000 | [diff] [blame] | 13 | int 0x2c ; } asm comments are fun! }{ |
| 14 | } | ||||
| Chad Rosier | c666cf4 | 2013-01-22 18:18:22 +0000 | [diff] [blame] | 15 | __asm {} |
| Eli Friedman | 3fedbe1 | 2011-09-30 01:13:51 +0000 | [diff] [blame] | 16 | } |
| 17 | int t6() { | ||||
| Chad Rosier | c666cf4 | 2013-01-22 18:18:22 +0000 | [diff] [blame] | 18 | __asm int 3 ; } comments for single-line asm |
| 19 | __asm {} | ||||
| Eli Friedman | 3fedbe1 | 2011-09-30 01:13:51 +0000 | [diff] [blame] | 20 | |
| Chad Rosier | c666cf4 | 2013-01-22 18:18:22 +0000 | [diff] [blame] | 21 | __asm int 4 |
| Eli Friedman | 3fedbe1 | 2011-09-30 01:13:51 +0000 | [diff] [blame] | 22 | return 10; |
| 23 | } | ||||
| Chad Rosier | 56d7f23 | 2012-08-24 21:42:51 +0000 | [diff] [blame] | 24 | void t7() { |
| Chad Rosier | c666cf4 | 2013-01-22 18:18:22 +0000 | [diff] [blame] | 25 | __asm { |
| Chad Rosier | a01eddb | 2012-06-12 19:03:42 +0000 | [diff] [blame] | 26 | push ebx |
| 27 | mov ebx, 0x07 | ||||
| 28 | pop ebx | ||||
| 29 | } | ||||
| 30 | } | ||||
| Chad Rosier | b3b26bf | 2012-06-12 20:30:26 +0000 | [diff] [blame] | 31 | void t8() { |
| Chad Rosier | c666cf4 | 2013-01-22 18:18:22 +0000 | [diff] [blame] | 32 | __asm nop __asm nop __asm nop |
| Chad Rosier | b3b26bf | 2012-06-12 20:30:26 +0000 | [diff] [blame] | 33 | } |
| 34 | void t9() { | ||||
| Chad Rosier | c666cf4 | 2013-01-22 18:18:22 +0000 | [diff] [blame] | 35 | __asm nop __asm nop ; __asm nop |
| Chad Rosier | b3b26bf | 2012-06-12 20:30:26 +0000 | [diff] [blame] | 36 | } |
| Chad Rosier | a01eddb | 2012-06-12 19:03:42 +0000 | [diff] [blame] | 37 | int t_fail() { // expected-note {{to match this}} |
| Chad Rosier | c666cf4 | 2013-01-22 18:18:22 +0000 | [diff] [blame] | 38 | __asm |
| 39 | __asm { // expected-error 3 {{expected}} expected-note {{to match this}} | ||||