diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 3eb74ca59525..c2ed7e6506e5 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -300,6 +300,7 @@ def fno_exceptions : Flag<"-fno-exceptions">, Group; def fno_inline_functions : Flag<"-fno-inline-functions">, Group; def fno_inline : Flag<"-fno-inline">, Group; def fno_keep_inline_functions : Flag<"-fno-keep-inline-functions">, Group; +def fno_lax_vector_conversions : Flag<"-fno-lax-vector-conversions">, Group; def fno_math_errno : Flag<"-fno-math-errno">, Group; def fno_merge_all_constants : Flag<"-fno-merge-all-constants">, Group; def fno_ms_extensions : Flag<"-fno-ms-extensions">, Group; diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index bc521008cf7c..28a6a6900a23 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -1034,7 +1034,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls); Args.AddLastArg(CmdArgs, options::OPT_ffreestanding); Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions); - Args.AddLastArg(CmdArgs, options::OPT_flax_vector_conversions); + + // -flax-vector-conversions is default. + if (!Args.hasFlag(options::OPT_flax_vector_conversions, + options::OPT_fno_lax_vector_conversions)) + CmdArgs.push_back("-fno-lax-vector-conversions"); + Args.AddLastArg(CmdArgs, options::OPT_fno_caret_diagnostics); Args.AddLastArg(CmdArgs, options::OPT_fno_show_column); Args.AddLastArg(CmdArgs, options::OPT_fobjc_gc_only);