diff --git a/clang/include/clang/Basic/DiagnosticParseKinds.td b/clang/include/clang/Basic/DiagnosticParseKinds.td index 4f8c42797792..055e79c258d3 100644 --- a/clang/include/clang/Basic/DiagnosticParseKinds.td +++ b/clang/include/clang/Basic/DiagnosticParseKinds.td @@ -18,9 +18,6 @@ def w_asm_qualifier_ignored : Warning<"ignored %0 qualifier on asm">, 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; - let CategoryName = "Parse Issue" in { def ext_empty_translation_unit : Extension< diff --git a/clang/lib/Parse/ParseStmt.cpp b/clang/lib/Parse/ParseStmt.cpp index 87c1d46f6c98..c4c558c3469d 100644 --- a/clang/lib/Parse/ParseStmt.cpp +++ b/clang/lib/Parse/ParseStmt.cpp @@ -1679,9 +1679,6 @@ StmtResult Parser::ParseReturnStatement() { /// 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 AsmToks; diff --git a/clang/test/Parser/MicrosoftExtensions.c b/clang/test/Parser/MicrosoftExtensions.c index 7703999d67ce..a96cd5c8f6d3 100644 --- a/clang/test/Parser/MicrosoftExtensions.c +++ b/clang/test/Parser/MicrosoftExtensions.c @@ -20,7 +20,7 @@ void * __ptr32 PtrToPtr32(const void *p) void __forceinline InterlockedBitTestAndSet (long *Base, long Bit) { - __asm { // expected-warning {{MS-style inline assembly is not supported}} + __asm { mov eax, Bit mov ecx, Base lock bts [ecx], eax diff --git a/clang/test/Parser/ms-inline-asm.c b/clang/test/Parser/ms-inline-asm.c index 280881a16646..c6db6020590e 100644 --- a/clang/test/Parser/ms-inline-asm.c +++ b/clang/test/Parser/ms-inline-asm.c @@ -3,36 +3,36 @@ #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}}