Discussion:
[Insight-developers] regression errors with visual studio 2013
Simon Alexander
2013-11-22 19:23:26 UTC
Permalink
At Bradleys' suggestion I'm forwarding this to the list in general, I still
haven't had a chance to look more deeply:

Not that my local branch is just a few trivial changes to HEAD to allow
compilation with VS12, adding missing header includes. The runs should
show up in Experimental from SIMON-LAP



I reran all tests on my local branch last night that you should be able to
see on the dashboard.

Debug has 7 timeout failures (expected for Debug?)

Release mode has 110 failures, all segfaults

These seem to maybe be related to copy ctor on itk::Vector types and the
optimizer (VS12, 64 bit)

e.g.


code that looks like this:

typedef typename TOutputImage::SpacingType SpacingType;
const SpacingType spacing = outputImage->GetSpacing();

leads to a segfault as soon as spacing is accessed (in Release mode, not
Debug)


but

typedef typename TOutputImage::SpacingType SpacingType;
const SpacingType &spacing = outputImage->GetSpacing();


is fine (note the reference, as is returned by GetSpacing)


I haven't had a chance to chase it down further than that yet.
Simon Alexander
2013-11-22 20:43:56 UTC
Permalink
Bradley,

I suspect a optimizer issue too, as Debug mode doesn't have the same issues.

The only caveat is that VS12 implements more of the c++2011 standard than
VS11 did, so it's plausible that there is something subtle going on there
with the changes in defaul ctors ( or move semantics?)

I am not familiar enough with the ITK (or vnl) codebase *or* the new
standard to know if this is likely.

I will look into the issues when I have time, but your plan sounds sensible
to me.
Simon,
Thanks for this detailed info on the failing tests.
I am leaning to only setting a goal for ITK 4.5 for ITK to compile with
VS12 and not all the test passing. As this compiler is barely 1 month old,
I am not certain those are not bug in the compiler. It'd be suppressed if
there is a real issue with that code. So I am hoping that the first patch
for the compiler would fix it...is that reasonable?
But please if you find some concrete fixes please push the upstream!
Thanks,
Brad
At Bradleys' suggestion I'm forwarding this to the list in general, I
Not that my local branch is just a few trivial changes to HEAD to allow
compilation with VS12, adding missing header includes. The runs should
show up in Experimental from SIMON-LAP
I reran all tests on my local branch last night that you should be able to
see on the dashboard.
Debug has 7 timeout failures (expected for Debug?)
Release mode has 110 failures, all segfaults
These seem to maybe be related to copy ctor on itk::Vector types and the
optimizer (VS12, 64 bit)
e.g.
typedef typename TOutputImage::SpacingType SpacingType;
const SpacingType spacing = outputImage->GetSpacing();
leads to a segfault as soon as spacing is accessed (in Release mode, not
Debug)
but
typedef typename TOutputImage::SpacingType SpacingType;
const SpacingType &spacing = outputImage->GetSpacing();
is fine (note the reference, as is returned by GetSpacing)
I haven't had a chance to chase it down further than that yet.
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
http://kitware.com/products/protraining.php
http://www.itk.org/Wiki/ITK_FAQ
http://www.itk.org/mailman/listinfo/insight-developers
Loading...