summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Driver/Tools.cpp4
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp1
2 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index f47a92b7c39..fc6773d21c5 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -4213,6 +4213,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
options::OPT_fno_assume_sane_operator_new))
CmdArgs.push_back("-fno-assume-sane-operator-new");
+ // -fno-sized-deallocation: disable sized delete.
+ if (Args.hasArg(options::OPT_fno_sized_deallocation))
+ CmdArgs.push_back("-fno-sized-deallocation");
+
// -fdefine-sized-deallocation: default implementation of sized delete as a
// weak definition.
if (Args.hasArg(options::OPT_fdefine_sized_deallocation))
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index edfee213994..4c1ac0a148a 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -1522,6 +1522,7 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK,
Opts.NoMathBuiltin = Args.hasArg(OPT_fno_math_builtin);
Opts.AssumeSaneOperatorNew = !Args.hasArg(OPT_fno_assume_sane_operator_new);
Opts.SizedDeallocation |= Args.hasArg(OPT_fsized_deallocation);
+ Opts.SizedDeallocation &= !Args.hasArg(OPT_fno_sized_deallocation);
Opts.DefineSizedDeallocation = Opts.SizedDeallocation &&
Args.hasArg(OPT_fdefine_sized_deallocation);
Opts.HeinousExtensions = Args.hasArg(OPT_fheinous_gnu_extensions);
OpenPOWER on IntegriCloud