option. MS-style inline asm can now be enabled by either -fasm-blocks or
-fms-extensions.
rdar://
12808010
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169445
91177308-0d34-0410-b5e6-
96231b3b80d8
Opts.MicrosoftExt
= Args.hasArg(OPT_fms_extensions) || Args.hasArg(OPT_fms_compatibility);
Opts.MicrosoftMode = Args.hasArg(OPT_fms_compatibility);
- Opts.AsmBlocks = Args.hasArg(OPT_fasm_blocks);
+ Opts.AsmBlocks = Args.hasArg(OPT_fasm_blocks) || Args.hasArg(OPT_fms_extensions);
Opts.MSCVersion = Args.getLastArgIntValue(OPT_fmsc_version, 0, Diags);
Opts.Borland = Args.hasArg(OPT_fborland_extensions);
Opts.WritableStrings = Args.hasArg(OPT_fwritable_strings);
return((void * __ptr32) (unsigned __int32) (ULONG_PTR)p );
}
+void __forceinline InterlockedBitTestAndSet (long *Base, long Bit)
+{
+ __asm { // expected-warning {{MS-style inline assembly is not supported}}
+ mov eax, Bit
+ mov ecx, Base
+ lock bts [ecx], eax
+ setc al
+ };
+}
_inline int foo99() { return 99; }
void test_ms_alignof_alias() {