|
@@ -675,6 +675,8 @@ static void LangOptsToArgs(const LangOptions &Opts, ToArgsList &Res) {
|
|
Res.push_back("-fno-operator-names");
|
|
Res.push_back("-fno-operator-names");
|
|
if (Opts.PascalStrings)
|
|
if (Opts.PascalStrings)
|
|
Res.push_back("-fpascal-strings");
|
|
Res.push_back("-fpascal-strings");
|
|
|
|
+ if (Opts.BoundsChecking > 0)
|
|
|
|
+ Res.push_back("-fbounds-checking=" + llvm::utostr(Opts.BoundsChecking));
|
|
if (Opts.CatchUndefined)
|
|
if (Opts.CatchUndefined)
|
|
Res.push_back("-fcatch-undefined-behavior");
|
|
Res.push_back("-fcatch-undefined-behavior");
|
|
if (Opts.AddressSanitizer)
|
|
if (Opts.AddressSanitizer)
|
|
@@ -1953,7 +1955,11 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK,
|
|
Opts.ObjCNonFragileABI2 = true;
|
|
Opts.ObjCNonFragileABI2 = true;
|
|
Opts.ObjCDefaultSynthProperties =
|
|
Opts.ObjCDefaultSynthProperties =
|
|
Args.hasArg(OPT_fobjc_default_synthesize_properties);
|
|
Args.hasArg(OPT_fobjc_default_synthesize_properties);
|
|
- Opts.CatchUndefined = Args.hasArg(OPT_fcatch_undefined_behavior);
|
|
|
|
|
|
+ Opts.BoundsChecking = 0;
|
|
|
|
+ if ((Opts.CatchUndefined = Args.hasArg(OPT_fcatch_undefined_behavior)))
|
|
|
|
+ Opts.BoundsChecking = 5;
|
|
|
|
+ Opts.BoundsChecking = Args.getLastArgIntValue(OPT_fbounds_checking_EQ,
|
|
|
|
+ Opts.BoundsChecking, Diags);
|
|
Opts.EmitAllDecls = Args.hasArg(OPT_femit_all_decls);
|
|
Opts.EmitAllDecls = Args.hasArg(OPT_femit_all_decls);
|
|
Opts.PackStruct = Args.getLastArgIntValue(OPT_fpack_struct_EQ, 0, Diags);
|
|
Opts.PackStruct = Args.getLastArgIntValue(OPT_fpack_struct_EQ, 0, Diags);
|
|
Opts.PICLevel = Args.getLastArgIntValue(OPT_pic_level, 0, Diags);
|
|
Opts.PICLevel = Args.getLastArgIntValue(OPT_pic_level, 0, Diags);
|