From 717e1eb9d2f3d4399f1793773b3c48397c728b43 Mon Sep 17 00:00:00 2001 From: AJR Date: Thu, 25 Aug 2016 00:12:03 -0400 Subject: [PATCH] Change warning flags for Clang build (nw) -Wno-missing-braces is unfortunately now necessary to avoid errors on almost every single use of the std::array initializer in devfind.h. (Apparently C++14 does make double braces optional for std::array initializers, but clang and GCC's -Wmissing-braces never took that into proper account, which is why GCC may still have it disabled by default.) Several other Clang-specific warnings have been undisabled; some might perhaps need to be locally reenabled if legacy 3rdparty code or sundry OSD includes happen to disagree with them. The only warning to require any code changes was -Wabsolute-value, which seems to have caught a minor render bug (and nothing more). --- scripts/genie.lua | 10 +--------- src/emu/render.cpp | 4 ++-- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/scripts/genie.lua b/scripts/genie.lua index 3f6455a5cf8..2488671cc2e 100644 --- a/scripts/genie.lua +++ b/scripts/genie.lua @@ -958,25 +958,17 @@ end buildoptions { "-Wno-cast-align", "-Wno-tautological-compare", - "-Wno-dynamic-class-memaccess", "-Wno-unused-value", - "-Wno-inline-new-delete", "-Wno-constant-logical-operand", - "-Wno-deprecated-register", + "-Wno-missing-braces", -- clang is not as permissive as GCC about std::array initialization "-fdiagnostics-show-note-include-stack", } if (version >= 30500) then buildoptions { - "-Wno-absolute-value", "-Wno-unknown-warning-option", "-Wno-extern-c-compat", } end - if (version >= 70000) then - buildoptions { - "-Wno-tautological-undefined-compare", - } - end else if (version < 40900) then print("GCC version 4.9 or later needed") diff --git a/src/emu/render.cpp b/src/emu/render.cpp index 51669bf5320..39018410c2b 100644 --- a/src/emu/render.cpp +++ b/src/emu/render.cpp @@ -1756,8 +1756,8 @@ void render_target::add_container_primitives(render_primitive_list &list, const cliprect.y1 = xform.yoffs + xform.yscale; sect_render_bounds(&cliprect, &m_bounds); - float root_xoffs = root_xform.xoffs + abs(root_xform.xscale - xform.xscale) * 0.5f; - float root_yoffs = root_xform.yoffs + abs(root_xform.yscale - xform.yscale) * 0.5f; + float root_xoffs = root_xform.xoffs + fabsf(root_xform.xscale - xform.xscale) * 0.5f; + float root_yoffs = root_xform.yoffs + fabsf(root_xform.yscale - xform.yscale) * 0.5f; render_bounds root_cliprect; root_cliprect.x0 = root_xoffs;