Add the mechanics for -fms-inline-asm. No easy way to test at this time.

llvm-svn: 160580
This commit is contained in:
Chad Rosier 2012-07-20 21:44:43 +00:00
parent 00586de436
commit 7a96c77824
3 changed files with 6 additions and 0 deletions

View File

@ -72,6 +72,8 @@ public:
unsigned EmitGcovArcs : 1; ///< Emit coverage data files, aka. GCDA. unsigned EmitGcovArcs : 1; ///< Emit coverage data files, aka. GCDA.
unsigned EmitGcovNotes : 1; ///< Emit coverage "notes" files, aka GCNO. unsigned EmitGcovNotes : 1; ///< Emit coverage "notes" files, aka GCNO.
unsigned EmitOpenCLArgMetadata : 1; /// Emit OpenCL kernel arg metadata. unsigned EmitOpenCLArgMetadata : 1; /// Emit OpenCL kernel arg metadata.
unsigned EmitMicrosoftInlineAsm : 1; ///< Enable emission of MS-style inline
///< assembly.
unsigned ForbidGuardVariables : 1; ///< Issue errors if C++ guard variables unsigned ForbidGuardVariables : 1; ///< Issue errors if C++ guard variables
///< are required ///< are required
unsigned FunctionSections : 1; ///< Set when -ffunction-sections is enabled unsigned FunctionSections : 1; ///< Set when -ffunction-sections is enabled
@ -201,6 +203,7 @@ public:
EmitGcovArcs = 0; EmitGcovArcs = 0;
EmitGcovNotes = 0; EmitGcovNotes = 0;
EmitOpenCLArgMetadata = 0; EmitOpenCLArgMetadata = 0;
EmitMicrosoftInlineAsm = 0;
ForbidGuardVariables = 0; ForbidGuardVariables = 0;
FunctionSections = 0; FunctionSections = 0;
HiddenWeakTemplateVTables = 0; HiddenWeakTemplateVTables = 0;

View File

@ -1684,4 +1684,6 @@ void CodeGenFunction::EmitAsmStmt(const AsmStmt &S) {
void CodeGenFunction::EmitMSAsmStmt(const MSAsmStmt &S) { void CodeGenFunction::EmitMSAsmStmt(const MSAsmStmt &S) {
// MS-style inline assembly is not fully supported, so sema emits a warning. // MS-style inline assembly is not fully supported, so sema emits a warning.
if (!CGM.getCodeGenOpts().EmitMicrosoftInlineAsm)
return;
} }

View File

@ -1261,6 +1261,7 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
Opts.EmitGcovArcs = Args.hasArg(OPT_femit_coverage_data); Opts.EmitGcovArcs = Args.hasArg(OPT_femit_coverage_data);
Opts.EmitGcovNotes = Args.hasArg(OPT_femit_coverage_notes); Opts.EmitGcovNotes = Args.hasArg(OPT_femit_coverage_notes);
Opts.EmitOpenCLArgMetadata = Args.hasArg(OPT_cl_kernel_arg_info); Opts.EmitOpenCLArgMetadata = Args.hasArg(OPT_cl_kernel_arg_info);
Opts.EmitMicrosoftInlineAsm = Args.hasArg(OPT_fms_inline_asm);
Opts.CoverageFile = Args.getLastArgValue(OPT_coverage_file); Opts.CoverageFile = Args.getLastArgValue(OPT_coverage_file);
Opts.DebugCompilationDir = Args.getLastArgValue(OPT_fdebug_compilation_dir); Opts.DebugCompilationDir = Args.getLastArgValue(OPT_fdebug_compilation_dir);
Opts.LinkBitcodeFile = Args.getLastArgValue(OPT_mlink_bitcode_file); Opts.LinkBitcodeFile = Args.getLastArgValue(OPT_mlink_bitcode_file);