diff options
author | Brad King <brad.king@kitware.com> | 2019-07-30 15:05:04 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-07-30 15:17:28 (GMT) |
commit | f9b7c660d700ffa2166b80333bfd89f96fbfb186 (patch) | |
tree | 55dd5035668a38c969160dcd55b5b9cb5648152c /Source/cmVisualStudio10TargetGenerator.cxx | |
parent | f43a7d76c737c5bb9b903a2b1be5186c081ec21e (diff) | |
download | CMake-f9b7c660d700ffa2166b80333bfd89f96fbfb186.zip CMake-f9b7c660d700ffa2166b80333bfd89f96fbfb186.tar.gz CMake-f9b7c660d700ffa2166b80333bfd89f96fbfb186.tar.bz2 |
VS: Fix mapping of `-Qspectre-` flag
The mapping for this flag was added by commit 43aa632f57 (VS: Populate
`-Qspectre-` flag table entry for v142, 2019-01-24, v3.14.0-rc1~74^2~7).
However, it did not do anything because the special logic added by
commit bb60ed6e72 (VS: Add flag table entry for -Qspectre, 2018-10-08,
v3.13.0-rc1~4^2) to move the `SpectreMitigation` element from
`ClCompile` to the top level only handled the presence of the setting
and not its value. Extend the special logic to carry the value too.
Fixes: #19535
Diffstat (limited to 'Source/cmVisualStudio10TargetGenerator.cxx')
-rw-r--r-- | Source/cmVisualStudio10TargetGenerator.cxx | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 8c6ba4e..7d25713 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1229,8 +1229,11 @@ void cmVisualStudio10TargetGenerator::WriteMSToolConfigurationValues( if (this->IPOEnabledConfigurations.count(config) > 0) { e1.Element("WholeProgramOptimization", "true"); } - if (this->SpectreMitigationConfigurations.count(config) > 0) { - e1.Element("SpectreMitigation", "Spectre"); + { + auto s = this->SpectreMitigation.find(config); + if (s != this->SpectreMitigation.end()) { + e1.Element("SpectreMitigation", s->second); + } } } @@ -2760,8 +2763,8 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions( } } - if (clOptions.HasFlag("SpectreMitigation")) { - this->SpectreMitigationConfigurations.insert(configName); + if (const char* s = clOptions.GetFlag("SpectreMitigation")) { + this->SpectreMitigation[configName] = s; clOptions.RemoveFlag("SpectreMitigation"); } |