Index: extern/libmv/libmv/tracking/esm_region_tracker.cc =================================================================== --- extern/libmv/libmv/tracking/esm_region_tracker.cc (revision 56701) +++ extern/libmv/libmv/tracking/esm_region_tracker.cc (working copy) @@ -32,7 +32,12 @@ #include "libmv/tracking/track_region.h" namespace libmv { - +/* Ugly but necessary fix for compilation on VS2012 +/* this file causes an Internal Compiler Error */ +// TODO: check regularly if ICE is fixed by MS! +#if (_MSC_VER >= 1700) +#pragma optimize("", off) +#endif // TODO(keir): Reduce duplication between here and the other region trackers. static bool RegionIsInBounds(const FloatImage &image1, double x, double y, Index: extern/libmv/libmv/tracking/lmicklt_region_tracker.cc =================================================================== --- extern/libmv/libmv/tracking/lmicklt_region_tracker.cc (revision 56701) +++ extern/libmv/libmv/tracking/lmicklt_region_tracker.cc (working copy) @@ -27,7 +27,12 @@ #include "libmv/numeric/numeric.h" namespace libmv { - +/* Ugly but necessary fix for compilation on VS2012 +/* this file causes an Internal Compiler Error */ +// TODO: check regularly if ICE is fixed by MS! +#if (_MSC_VER >= 1700) +#pragma optimize("", off) +#endif // TODO(keir): Reduce duplication between here and the other region trackers. static bool RegionIsInBounds(const FloatImage &image1, double x, double y,