diff options
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 4 | ||||
-rw-r--r-- | clang/test/Driver/cl-options.c | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 690c07f4ae9..7167fcce562 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -4112,6 +4112,10 @@ void Clang::AddClangCLArgs(const ArgList &Args, ArgStringList &CmdArgs) const { if (Arg *A = Args.getLastArg(options::OPT_show_includes)) A->render(Args, CmdArgs); + // RTTI is currently not supported, so disable it by default. + if (!Args.hasArg(options::OPT_frtti, options::OPT_fno_rtti)) + CmdArgs.push_back("-fno-rtti"); + const Driver &D = getToolChain().getDriver(); Arg *MostGeneralArg = Args.getLastArg(options::OPT__SLASH_vmg); Arg *BestCaseArg = Args.getLastArg(options::OPT__SLASH_vmb); diff --git a/clang/test/Driver/cl-options.c b/clang/test/Driver/cl-options.c index 78a64f5ae18..17f0b0a544c 100644 --- a/clang/test/Driver/cl-options.c +++ b/clang/test/Driver/cl-options.c @@ -250,5 +250,11 @@ // We support -m32 and -m64. // RUN: %clang_cl /Zs /WX -m32 -m64 -- %s +// Use -fno-rtti by default. +// RUN: %clang_cl /c -### -- %s 2>&1 | FileCheck -check-prefix=NoRTTI %s +// NoRTTI: "-fno-rtti" +// RUN: %clang_cl /c /GR -### -- %s 2>&1 | FileCheck -check-prefix=RTTI %s +// RTTI-NOT: "-fno-rtti" + void f() { } |