From fd613e1abd50ab9b4d41fcb79732e2ebc216a8c1 Mon Sep 17 00:00:00 2001
From: Christoph Gersbacher <gersbach@dune-project.org>
Date: Wed, 6 Feb 2013 18:00:58 +0000
Subject: [PATCH] Fix segmentation fault in matrix interface check.

[[Imported from SVN: r7104]]
---
 dune/common/test/checkmatrixinterface.hh | 16 ++++++++--------
 dune/common/test/fmatrixtest.cc          |  2 +-
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/dune/common/test/checkmatrixinterface.hh b/dune/common/test/checkmatrixinterface.hh
index 6964358a0..5968044c2 100644
--- a/dune/common/test/checkmatrixinterface.hh
+++ b/dune/common/test/checkmatrixinterface.hh
@@ -164,7 +164,7 @@ namespace CheckMatrixInterface
 
     static void checkSolve ( const Matrix &matrix )
     {
-      typename Traits::domain_type x;
+      typename Traits::domain_type x = Traits::domain( matrix );
       const typename Traits::range_type b = Traits::range( matrix );
       matrix.solve( x, b );
     }
@@ -267,16 +267,16 @@ namespace CheckMatrixInterface
       typename Traits::value_type alpha( 1 );
 
       matrix.mv( domain, range );
-      matrix.mtv( domain, range );
+      matrix.mtv( range, domain );
       matrix.umv( domain, range );
-      matrix.umtv( domain, range );
-      matrix.umhv( domain, range );
+      matrix.umtv( range, domain );
+      matrix.umhv( range, domain );
       matrix.mmv( domain, range );
-      matrix.mmtv( domain, range );
-      matrix.mmhv( domain, range );
+      matrix.mmtv( range, domain );
+      matrix.mmhv( range, domain );
       matrix.usmv( alpha, domain, range );
-      matrix.usmtv( alpha, domain, range );
-      matrix.usmhv( alpha, domain, range );
+      matrix.usmtv( alpha, range, domain );
+      matrix.usmhv( alpha, range, domain );
     }
 
     // check iterator methods
diff --git a/dune/common/test/fmatrixtest.cc b/dune/common/test/fmatrixtest.cc
index 144b68161..d4bd2d028 100644
--- a/dune/common/test/fmatrixtest.cc
+++ b/dune/common/test/fmatrixtest.cc
@@ -572,7 +572,7 @@ void test_interface()
   typedef CheckMatrixInterface::UseFieldVector< K, rows, cols > Traits;
   typedef Dune::FieldMatrix< K, rows, cols > FMatrix;
 
-  FMatrix m;
+  FMatrix m( 1 );
   checkMatrixInterface< FMatrix >( m );
   checkMatrixInterface< FMatrix, Traits >( m );
 }
-- 
GitLab