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