<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
span.EmailStyle20
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle21
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body link="#0563C1" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">I agree that playing with pragmas is neither nice nor beautiful. On the other hand compiler warnings don't seem like things which need to be suppressed easily.
<o:p></o:p></p>
<p class="MsoNormal">My point is if we've got a warning on expected behaviour, this needs to be processed (and explained) explicitly, not suppressed globally somewhere by a single line.
<o:p></o:p></p>
<p class="MsoNormal">The suggested fix below is not beautiful, but noticeable to explain that
<span lang="EN-US">‘</span>something is wrong here, but we expect this<span lang="EN-US">’</span>.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">#if __GNUC__ > 10<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"> // Disable 'stringop-overflow' warning
<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"> // due to expected buffer overflow.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">#pragma GCC diagnostic push<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">#pragma GCC diagnostic ignored "-Wstringop-overflow"<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">#endif<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"> memset(up, 0, sz + 1); // Buffer-overwrite (within guard)<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">#if __GNUC__ > 10<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">#pragma GCC diagnostic pop<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">#endif<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">Roma</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span lang="EN-US" style="mso-fareast-language:#1000">From:</span></b><span lang="EN-US" style="mso-fareast-language:#1000"> Magnus Ihse Bursie <magnus.ihse.bursie@oracle.com>
<br>
<b>Sent:</b> Monday, September 19, 2022 4:07 PM<br>
<b>To:</b> Roma Marchenko <rmarchenko@azul.com>; build-dev@openjdk.org<br>
<b>Subject:</b> Re: Questions about JDK-8275008 fix<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>On 2022-09-18 12:15, Roma Marchenko wrote:<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">Hello,</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal">There was <span lang="EN-US">P4 </span>JDK-8275008 <span lang="EN-US">
(<a href="https://bugs.openjdk.org/browse/JDK-8275008">https://bugs.openjdk.org/browse/JDK-8275008</a>)</span> about GKC 11 warning 'stringop-overflow' in gtest::Guarded Memory.<o:p></o:p></p>
<p class="MsoNormal">It was fixed globally by disabling this warning for all openjdk
<span lang="EN-US">g</span>test<span lang="EN-US">s</span>, although in fact the only test required this fix. Moreover, this wasn't a bug, because the test really does 'buffer overflow' to check memory guards then.
<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">I realize that it's just a test, not a product, but anyway '-Wstringop-overflow' is not '-Wundef', and I don't think that disabling 'stringop-overflow' for all the tests is a good idea. Again, as far as I see, there are no other tests
occurring this warning. Is it better to disable the warning locally in the test <span lang="EN-US">
on upstream </span>and add a comment describing expected behaviour regarding buffer overflow?<o:p></o:p></p>
</blockquote>
<p>Unfortunately, there is currently no really nice way to disable a warning for a single test. In that case, you'd have to resort to pragmas.<o:p></o:p></p>
<p>This is a known limitation in the build system that I hope to be able to address in not a too far-off future.<o:p></o:p></p>
<p>/Magnus<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">Roman</span><o:p></o:p></p>
</blockquote>
</div>
</body>
</html>