forked from OSchip/llvm-project
Support -fno-delayed-template-parsing in clang-cl.exe
Summary: This change adds support for the -fno-delayed-template-parsing option in clang-cl.exe. This allows developers using clang-cl.exe to opt out of emulation of MSVC's non-conformant template instantiation implementation while continuing to use clang-cl.exe for its emulation of cl.exe command-line options. The default behavior of clang-cl.exe (-fdelayed-template-parsing) is unchanged. The MSVC Standard Library implementation uses clang-cl.exe with this switch in its tests to ensure that the library headers work on compilers with the conformant two-phase-lookup behavior. Reviewers: majnemer, cfe-commits, DaveBartolomeo Differential Revision: https://reviews.llvm.org/D22275 llvm-svn: 290990
This commit is contained in:
parent
b0d96f5375
commit
1b576eb0b3
|
@ -882,7 +882,7 @@ def fms_compatibility_version
|
|||
"(default))">;
|
||||
def fdelayed_template_parsing : Flag<["-"], "fdelayed-template-parsing">, Group<f_Group>,
|
||||
HelpText<"Parse templated function definitions at the end of the "
|
||||
"translation unit">, Flags<[CC1Option]>;
|
||||
"translation unit">, Flags<[CC1Option, CoreOption]>;
|
||||
def fms_memptr_rep_EQ : Joined<["-"], "fms-memptr-rep=">, Group<f_Group>, Flags<[CC1Option]>;
|
||||
def fmodules_cache_path : Joined<["-"], "fmodules-cache-path=">, Group<i_Group>,
|
||||
Flags<[DriverOption, CC1Option]>, MetaVarName<"<directory>">,
|
||||
|
@ -1031,7 +1031,8 @@ def fno_ms_extensions : Flag<["-"], "fno-ms-extensions">, Group<f_Group>,
|
|||
Flags<[CoreOption]>;
|
||||
def fno_ms_compatibility : Flag<["-"], "fno-ms-compatibility">, Group<f_Group>,
|
||||
Flags<[CoreOption]>;
|
||||
def fno_delayed_template_parsing : Flag<["-"], "fno-delayed-template-parsing">, Group<f_Group>;
|
||||
def fno_delayed_template_parsing : Flag<["-"], "fno-delayed-template-parsing">, Group<f_Group>,
|
||||
Flags<[DriverOption, CoreOption]>;
|
||||
def fno_objc_exceptions: Flag<["-"], "fno-objc-exceptions">, Group<f_Group>;
|
||||
def fno_objc_legacy_dispatch : Flag<["-"], "fno-objc-legacy-dispatch">, Group<f_Group>;
|
||||
def fno_objc_weak : Flag<["-"], "fno-objc-weak">, Group<f_Group>, Flags<[CC1Option]>;
|
||||
|
|
|
@ -295,6 +295,14 @@
|
|||
// RUN: %clang_cl -c -fno-strict-aliasing -### -- %s 2>&1 | FileCheck -check-prefix=NOSTRICT %s
|
||||
// NOSTRICT: "-relaxed-aliasing"
|
||||
|
||||
// We recognize -f[no-]delayed-template-parsing.
|
||||
// RUN: %clang_cl -c -### -- %s 2>&1 | FileCheck -check-prefix=DELAYEDDEFAULT %s
|
||||
// DELAYEDDEFAULT: "-fdelayed-template-parsing"
|
||||
// RUN: %clang_cl -c -fdelayed-template-parsing -### -- %s 2>&1 | FileCheck -check-prefix=DELAYEDON %s
|
||||
// DELAYEDON: "-fdelayed-template-parsing"
|
||||
// RUN: %clang_cl -c -fno-delayed-template-parsing -### -- %s 2>&1 | FileCheck -check-prefix=DELAYEDOFF %s
|
||||
// DELAYEDOFF-NOT: "-fdelayed-template-parsing"
|
||||
|
||||
// For some warning ids, we can map from MSVC warning to Clang warning.
|
||||
// RUN: %clang_cl -wd4005 -wd4100 -wd4910 -wd4996 -### -- %s 2>&1 | FileCheck -check-prefix=Wno %s
|
||||
// Wno: "-cc1"
|
||||
|
|
Loading…
Reference in New Issue