Skip to content

Commit 3712dbd

Browse files
authored
Handle fatalwarnings for specific warnings (not 'All') for visual studio with clang (#2529) (#2531)
1 parent a5990f6 commit 3712dbd

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

modules/vstudio/tests/vc2019/test_compile_settings.lua

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,3 +209,20 @@
209209
<AdditionalOptions>-Wno-disable %(AdditionalOptions)</AdditionalOptions>
210210
]]
211211
end
212+
213+
--
214+
-- Fatal specific warnings.
215+
--
216+
217+
function suite.fatalSpecificWarningsWithClang()
218+
fatalwarnings { "disable" }
219+
toolset "clang"
220+
prepare()
221+
test.capture [[
222+
<ClCompile>
223+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
224+
<WarningLevel>Level3</WarningLevel>
225+
<Optimization>Disabled</Optimization>
226+
<AdditionalOptions>-Werror=disable %(AdditionalOptions)</AdditionalOptions>
227+
]]
228+
end

modules/vstudio/vs2010_vcxproj.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2162,6 +2162,7 @@
21622162
table.insert(opts, 1, '/Zp' .. tostring(cfg.structmemberalign))
21632163
end
21642164
opts = table.join(opts, table.translate(cfg.disablewarnings, function(disable) return '-Wno-' .. disable end))
2165+
opts = table.join(opts, table.translate(p.filterFatalWarnings(cfg.fatalwarnings), function(disable) return '-Werror=' .. disable end))
21652166
end
21662167

21672168
if #opts > 0 then
@@ -3568,7 +3569,7 @@
35683569
function m.treatSpecificWarningsAsErrors(cfg, condition)
35693570
local filteredWarnings = p.filterFatalWarnings(cfg.fatalwarnings)
35703571

3571-
if #filteredWarnings > 0 then
3572+
if #filteredWarnings > 0 and cfg.toolset ~= "clang" then
35723573
local fatal = table.concat(filteredWarnings, ";")
35733574
fatal = fatal .. ";%%(TreatSpecificWarningsAsErrors)"
35743575
m.element('TreatSpecificWarningsAsErrors', condition, fatal)

0 commit comments

Comments
 (0)