[Insight-developers] GCC 4.8.2 compiler warning

Johnson, Hans J hans-johnson at uiowa.edu
Wed Nov 27 09:48:56 EST 2013


Brad,

That does look wrong.

At line #148 should (i + 1 < _RegionType::ImageDimension) -> (i < _RegionType::ImageDimension – 1 )

At line #154, should the (++inCurrentIndex[i + 1];) be ( if( i < _RegionType::ImageDimension – 1 ) {++inCurrentIndex[i + 1];} )


Hans

From: Bradley Lowekamp <blowekamp at mail.nih.gov<mailto:blowekamp at mail.nih.gov>>
Date: Wednesday, November 27, 2013 at 6:46 AM
To: Hans Johnson <hans-johnson at uiowa.edu<mailto:hans-johnson at uiowa.edu>>
Cc: ITK <insight-developers at itk.org<mailto:insight-developers at itk.org>>
Subject: Re: GCC 4.8.2 compiler warning

There are two loops which look like this:

https://github.com/Kitware/ITK/blob/master/Modules/Core/Common/include/itkImageAlgorithm.hxx#L148

 for(unsignedinti=movingDirection;i+1<_RegionType::ImageDimension;++i)

The use of the +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.

Brad

On Nov 27, 2013, at 7:33 AM, "Johnson, Hans J" <hans-johnson at uiowa.edu<mailto:hans-johnson at uiowa.edu>> wrote:

Thanks Brad.


I too am beginning to think this compiler warnings are incorrect.

Hans


On 11/27/13, 6:31 AM, "Bradley Lowekamp" <blowekamp at mail.nih.gov<mailto:blowekamp at mail.nih.gov>> wrote:

Hans,

I have looked into this issue a couple times. It shows up on the Debian
sid (unstable) nightly build:
http://open.cdash.org/viewBuildError.php?type=1&buildid=3116766

The code in the ImageAlgorithm looks correct and no other system has
issues. Even VS debug which adds buffer over run check is OK.

Given that the error does not include line number, I figured it's deep in
the optimization phases of the compiler. I think the issue is with the
compiler.

That being said, you might be able to move a couple lines and statements
around to get rid of the warning. But I have not seen any issue with the
logic.

Brad

On Nov 26, 2013, at 8:41 PM, "Johnson, Hans J" <hans-johnson at uiowa.edu<mailto:hans-johnson at uiowa.edu>>
wrote:


I¹m getting the following warning on gcc 4.8.2:

In file included from
/tmp/src/ITK/Modules/Core/Common/include/itkContinuousIndex.h:22:0,
               from
/tmp/src/ITK/Modules/Core/Common/include/itkImageRegion.h:34,
               from
/tmp/src/ITK/Modules/Core/Common/include/itkImage.h:21,
               from
/tmp/src/ITK/Modules/Core/Common/include/itkImageSource.h:32,
               from

/tmp/src/ITK/Modules/Core/Mesh/include/itkTriangleMeshToBinaryImageFilter
.h
:21,
               from

/tmp/src/ITK/Modules/Core/Mesh/test/itkTriangleMeshToBinaryImageFilterTes
t3
.cxx:19:
/tmp/src/ITK/Modules/Core/Common/include/itkIndex.h: In static member
function Œstatic void itk::ImageAlgorithm::DispatchedCopy(const
InputImageType*, OutputImageType*, const typename
InputImageType::RegionType&, const typename
OutputImageType::RegionType&,
itk::ImageAlgorithm::TrueType) [with InputImageType =
itk::Image<unsigned
char, 3u>; OutputImageType = itk::Image<unsigned char, 3u>; typename
InputImageType::RegionType = itk::ImageRegion<3u>; typename
OutputImageType::RegionType = itk::ImageRegion<3u>;
itk::ImageAlgorithm::TrueType = std::tr1::integral_constant<bool,
true>]¹:
/tmp/src/ITK/Modules/Core/Common/include/itkIndex.h:226:19: warning:
array
subscript is above array bounds [-Warray-bounds]
 { return m_Index[dim]; }
                 ^
/tmp/src/ITK/Modules/Core/Common/include/itkIndex.h:226:19: warning:
array
subscript is above array bounds [-Warray-bounds]
/tmp/src/ITK/Modules/Core/Common/include/itkIndex.h:226:19: warning:
array
subscript is above array bounds [-Warray-bounds]
 { return m_Index[dim]; }
                 ^

It looks serious to me, but I don¹t know how to decipher it.


I¹m not going to be able to look at this anytime soon.

Hans









________________________________
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.  If you are not the intended
recipient, you are hereby notified that any retention, dissemination,
distribution, or copying of this communication is strictly prohibited.
Please reply to the sender that you have received the message in error,
then delete it.  Thank you.
________________________________




________________________________
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.  If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited.  Please reply to the sender that you have received the message in error, then delete it.  Thank you.
________________________________



________________________________
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.  If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited.  Please reply to the sender that you have received the message in error, then delete it.  Thank you.
________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-developers/attachments/20131127/6805dd11/attachment-0001.htm>


More information about the Insight-developers mailing list