def warn_file_asm_volatile : Warning<
"meaningless 'volatile' on asm outside function">, CatInlineAsm;
-def warn_unsupported_msasm : Warning<
- "MS-style inline assembly is not supported">, InGroup<Microsoft>;
-
let CategoryName = "Parse Issue" in {
def ext_empty_translation_unit : Extension<
/// ms-asm-line '\n' ms-asm-instruction-block
///
StmtResult Parser::ParseMicrosoftAsmStatement(SourceLocation AsmLoc) {
- // MS-style inline assembly is not fully supported, so emit a warning.
- Diag(AsmLoc, diag::warn_unsupported_msasm);
-
SourceManager &SrcMgr = PP.getSourceManager();
SourceLocation EndLoc = AsmLoc;
SmallVector<Token, 4> AsmToks;
#define M __asm int 0x2c
#define M2 int
-void t1(void) { M } // expected-warning {{MS-style inline assembly is not supported}}
-void t2(void) { __asm int 0x2c } // expected-warning {{MS-style inline assembly is not supported}}
-void t3(void) { __asm M2 0x2c } // expected-warning {{MS-style inline assembly is not supported}}
-void t4(void) { __asm mov eax, fs:[0x10] } // expected-warning {{MS-style inline assembly is not supported}}
+void t1(void) { M }
+void t2(void) { __asm int 0x2c }
+void t3(void) { __asm M2 0x2c }
+void t4(void) { __asm mov eax, fs:[0x10] }
void t5() {
- __asm { // expected-warning {{MS-style inline assembly is not supported}}
+ __asm {
int 0x2c ; } asm comments are fun! }{
}
- __asm {} // expected-warning {{MS-style inline assembly is not supported}}
+ __asm {}
}
int t6() {
- __asm int 3 ; } comments for single-line asm // expected-warning {{MS-style inline assembly is not supported}}
- __asm {} // expected-warning {{MS-style inline assembly is not supported}}
+ __asm int 3 ; } comments for single-line asm
+ __asm {}
- __asm int 4 // expected-warning {{MS-style inline assembly is not supported}}
+ __asm int 4
return 10;
}
void t7() {
- __asm { // expected-warning {{MS-style inline assembly is not supported}}
+ __asm {
push ebx
mov ebx, 0x07
pop ebx
}
}
void t8() {
- __asm nop __asm nop __asm nop // expected-warning {{MS-style inline assembly is not supported}}
+ __asm nop __asm nop __asm nop
}
void t9() {
- __asm nop __asm nop ; __asm nop // expected-warning {{MS-style inline assembly is not supported}}
+ __asm nop __asm nop ; __asm nop
}
int t_fail() { // expected-note {{to match this}}
- __asm // expected-warning {{MS-style inline assembly is not supported}}
- __asm { // expected-warning {{MS-style inline assembly is not supported}} expected-error 3 {{expected}} expected-note {{to match this}}
+ __asm
+ __asm { // expected-error 3 {{expected}} expected-note {{to match this}}