<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap:break-word; color:rgb(0,0,0); font-size:14px; font-family:Calibri,sans-serif">
<div>Brad,</div>
<div><br>
</div>
<div>That does look wrong.</div>
<div><br>
</div>
<div>At line #148 should (<span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">i</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)">
</span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">&#43;</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)">
</span><span class="mi" style="color:rgb(0,153,153); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">1</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)">
</span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">&lt;</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)">
</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">_RegionType</span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">::</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">ImageDimension)
 -&gt; (</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">i</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)">
</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">&lt;</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)">
</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">_RegionType</span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">::</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">ImageDimension
 – 1 </span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">)</span></div>
<div><br>
</div>
<div>At line #154, should the (<span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">&#43;&#43;</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">inCurrentIndex</span><span class="p" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">[</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">i</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">
</span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">&#43;</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">
</span><span class="mi" style="color:rgb(0,153,153); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">1</span><span class="p" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">];)
 be ( if( i &lt; </span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">_RegionType</span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">::</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">ImageDimension
 – 1 ) {</span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">&#43;&#43;</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">inCurrentIndex</span><span class="p" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">[</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">i</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">
</span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">&#43;</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">
</span><span class="mi" style="color:rgb(0,153,153); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">1</span><span class="p" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,255)">];</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">}
 )</span></div>
<div><br>
</div>
<div><br>
</div>
<div>Hans</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; border-bottom:medium none; border-left:medium none; padding-bottom:0in; padding-left:0in; padding-right:0in; border-top:#b5c4df 1pt solid; border-right:medium none; padding-top:3pt">
<span style="font-weight:bold">From: </span>Bradley Lowekamp &lt;<a href="mailto:blowekamp@mail.nih.gov">blowekamp@mail.nih.gov</a>&gt;<br>
<span style="font-weight:bold">Date: </span>Wednesday, November 27, 2013 at 6:46 AM<br>
<span style="font-weight:bold">To: </span>Hans Johnson &lt;<a href="mailto:hans-johnson@uiowa.edu">hans-johnson@uiowa.edu</a>&gt;<br>
<span style="font-weight:bold">Cc: </span>ITK &lt;<a href="mailto:insight-developers@itk.org">insight-developers@itk.org</a>&gt;<br>
<span style="font-weight:bold">Subject: </span>Re: GCC 4.8.2 compiler warning<br>
</div>
<div><br>
</div>
<div>
<div style="word-wrap:break-word">There are two loops which look like this:
<div><br>
</div>
<div><a href="https://github.com/Kitware/ITK/blob/master/Modules/Core/Common/include/itkImageAlgorithm.hxx#L148">https://github.com/Kitware/ITK/blob/master/Modules/Core/Common/include/itkImageAlgorithm.hxx#L148</a></div>
<div><br>
</div>
<div><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)">&nbsp;</span><span class="k" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">for</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="p" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">(</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="kt" style="color:rgb(68,85,136); font-weight:bold; font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">unsigned</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="kt" style="color:rgb(68,85,136); font-weight:bold; font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">int</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">i</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">=</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">movingDirection</span><span class="p" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">;</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">i</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">&#43;</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="mi" style="color:rgb(0,153,153); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">1</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">&lt;</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">_RegionType</span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">::</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">ImageDimension</span><span class="p" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">;</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="o" style="font-weight:bold; color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">&#43;&#43;</span><span class="n" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">i</span><span style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre; background-color:rgb(255,255,204)"></span><span class="p" style="color:rgb(51,51,51); font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; line-height:18px; white-space:pre">)</span></div>
<div><br>
</div>
<div>
<div>
<div>The use of the &#43;1 there with the loop control variable is a little odd, but it was done to avoid a -1, and signed/unsigned interaction. I'd be curious of changing that made this warning go away, in exchanged for the signed/unsigned comparison warning.</div>
<div><br>
</div>
<div>Brad</div>
<div><br>
</div>
<div>On Nov 27, 2013, at 7:33 AM, &quot;Johnson, Hans J&quot; &lt;<a href="mailto:hans-johnson@uiowa.edu">hans-johnson@uiowa.edu</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">Thanks Brad.<br>
<br>
<br>
I too am beginning to think this compiler warnings are incorrect.<br>
<br>
Hans<br>
<br>
<br>
On 11/27/13, 6:31 AM, &quot;Bradley Lowekamp&quot; &lt;<a href="mailto:blowekamp@mail.nih.gov">blowekamp@mail.nih.gov</a>&gt; wrote:<br>
<br>
<blockquote type="cite">Hans,<br>
<br>
I have looked into this issue a couple times. It shows up on the Debian<br>
sid (unstable) nightly build:<br>
<a href="http://open.cdash.org/viewBuildError.php?type=1&amp;buildid=3116766">http://open.cdash.org/viewBuildError.php?type=1&amp;buildid=3116766</a><br>
<br>
The code in the ImageAlgorithm looks correct and no other system has<br>
issues. Even VS debug which adds buffer over run check is OK.<br>
<br>
Given that the error does not include line number, I figured it's deep in<br>
the optimization phases of the compiler. I think the issue is with the<br>
compiler.<br>
<br>
That being said, you might be able to move a couple lines and statements<br>
around to get rid of the warning. But I have not seen any issue with the<br>
logic.<br>
<br>
Brad<br>
<br>
On Nov 26, 2013, at 8:41 PM, &quot;Johnson, Hans J&quot; &lt;<a href="mailto:hans-johnson@uiowa.edu">hans-johnson@uiowa.edu</a>&gt;<br>
wrote:<br>
<br>
<blockquote type="cite"><br>
I¹m getting the following warning on gcc 4.8.2:<br>
<br>
In file included from<br>
/tmp/src/ITK/Modules/Core/Common/include/itkContinuousIndex.h:22:0,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from<br>
/tmp/src/ITK/Modules/Core/Common/include/itkImageRegion.h:34,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from<br>
/tmp/src/ITK/Modules/Core/Common/include/itkImage.h:21,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from<br>
/tmp/src/ITK/Modules/Core/Common/include/itkImageSource.h:32,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from<br>
<br>
/tmp/src/ITK/Modules/Core/Mesh/include/itkTriangleMeshToBinaryImageFilter<br>
.h<br>
:21,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from<br>
<br>
/tmp/src/ITK/Modules/Core/Mesh/test/itkTriangleMeshToBinaryImageFilterTes<br>
t3<br>
.cxx:19:<br>
/tmp/src/ITK/Modules/Core/Common/include/itkIndex.h: In static member<br>
function Œstatic void itk::ImageAlgorithm::DispatchedCopy(const<br>
InputImageType*, OutputImageType*, const typename<br>
InputImageType::RegionType&amp;, const typename<br>
OutputImageType::RegionType&amp;,<br>
itk::ImageAlgorithm::TrueType) [with InputImageType =<br>
itk::Image&lt;unsigned<br>
char, 3u&gt;; OutputImageType = itk::Image&lt;unsigned char, 3u&gt;; typename<br>
InputImageType::RegionType = itk::ImageRegion&lt;3u&gt;; typename<br>
OutputImageType::RegionType = itk::ImageRegion&lt;3u&gt;;<br>
itk::ImageAlgorithm::TrueType = std::tr1::integral_constant&lt;bool,<br>
true&gt;]¹:<br>
/tmp/src/ITK/Modules/Core/Common/include/itkIndex.h:226:19: warning:<br>
array<br>
subscript is above array bounds [-Warray-bounds]<br>
&nbsp;{ return m_Index[dim]; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^<br>
/tmp/src/ITK/Modules/Core/Common/include/itkIndex.h:226:19: warning:<br>
array<br>
subscript is above array bounds [-Warray-bounds]<br>
/tmp/src/ITK/Modules/Core/Common/include/itkIndex.h:226:19: warning:<br>
array<br>
subscript is above array bounds [-Warray-bounds]<br>
&nbsp;{ return m_Index[dim]; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^<br>
<br>
It looks serious to me, but I don¹t know how to decipher it.<br>
<br>
<br>
I¹m not going to be able to look at this anytime soon.<br>
<br>
Hans<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
________________________________<br>
Notice: This UI Health Care e-mail (including attachments) is covered<br>
by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is<br>
confidential and may be legally privileged. &nbsp;If you are not the intended<br>
recipient, you are hereby notified that any retention, dissemination,<br>
distribution, or copying of this communication is strictly prohibited.<br>
Please reply to the sender that you have received the message in error,<br>
then delete it. &nbsp;Thank you.<br>
________________________________<br>
</blockquote>
<br>
</blockquote>
<br>
<br>
<br>
________________________________<br>
Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged. &nbsp;If you are not the intended recipient, you are hereby notified that any
 retention, dissemination, distribution, or copying of this communication is strictly prohibited. &nbsp;Please reply to the sender that you have received the message in error, then delete it. &nbsp;Thank you.<br>
________________________________<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</span><br>
<br>
<hr>
Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged.&nbsp; If you are not the intended recipient, you are hereby notified that any
 retention, dissemination, distribution, or copying of this communication is strictly prohibited.&nbsp; Please reply to the sender that you have received the message in error, then delete it.&nbsp; Thank you.
<hr>
</body>
</html>