Hans,

That formatting was horrible, but I think I under stand your question..

Consider the loop at 148, for ImageDimension = 3:

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

This will iterate over with i = {0,1}, since 2+1 !< 3.

Therefore:

++inCurrentIndex[i + 1]

is maxed index at 2, which is in bounds.


As I said, I believe the code is correct. Its  just seems to be confusing to 
humans and compilers...

Brad




On Nov 27, 2013, at 9:48 AM, "Johnson, Hans J" <[email protected]> wrote:

> 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 <[email protected]>
> Date: Wednesday, November 27, 2013 at 6:46 AM
> To: Hans Johnson <[email protected]>
> Cc: ITK <[email protected]>
> 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" <[email protected]> wrote:
> 
>> Thanks Brad.
>> 
>> 
>> I too am beginning to think this compiler warnings are incorrect.
>> 
>> Hans
>> 
>> 
>> On 11/27/13, 6:31 AM, "Bradley Lowekamp" <[email protected]> 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" <[email protected]>
>>> 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.

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-developers

Reply via email to