]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Make things compiler with gcc 3.4.0.
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Thu, 15 Jul 2010 17:21:56 +0000 (17:21 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Thu, 15 Jul 2010 17:21:56 +0000 (17:21 +0000)
git-svn-id: https://svn.dealii.org/trunk@21504 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/source/numerics/matrices.cc
deal.II/doc/news/changes.h

index 2331b64c39467305b5a18249a6f8b0c1ec60aa7b..5993e9513e4aae3ec09f7244bb589294bc52bbb6 100644 (file)
@@ -1704,11 +1704,16 @@ void MatrixCreator::create_laplace_matrix (const Mapping<dim, spacedim>       &m
   copy_data.cell_rhs.reinit (assembler_data.fe_collection.max_dofs_per_cell());
   copy_data.dof_indices.resize (assembler_data.fe_collection.max_dofs_per_cell());
 
+  void (*copy_local_to_global) (const internal::MatrixCreator::AssemblerData::CopyData &,
+                               SparseMatrix<double> *,
+                               Vector<double> *)
+    = &internal::MatrixCreator::
+    copy_local_to_global<SparseMatrix<double>, Vector<double> >;
+
   WorkStream::run (dof.begin_active(),
                   static_cast<typename DoFHandler<dim,spacedim>::active_cell_iterator>(dof.end()),
                   &internal::MatrixCreator::laplace_assembler<dim, spacedim, typename DoFHandler<dim,spacedim>::active_cell_iterator>,
-                  std_cxx1x::bind (&internal::MatrixCreator::
-                                   copy_local_to_global<SparseMatrix<double>, Vector<double> >,
+                  std_cxx1x::bind (copy_local_to_global,
                                    _1, &matrix, (Vector<double>*)0),
                   assembler_data,
                   copy_data);
@@ -1753,11 +1758,17 @@ void MatrixCreator::create_laplace_matrix (const Mapping<dim, spacedim>       &m
                         assembler_data.fe_collection.max_dofs_per_cell());
   copy_data.cell_rhs.reinit (assembler_data.fe_collection.max_dofs_per_cell());
   copy_data.dof_indices.resize (assembler_data.fe_collection.max_dofs_per_cell());
+
+  void (*copy_local_to_global) (const internal::MatrixCreator::AssemblerData::CopyData &,
+                               SparseMatrix<double> *,
+                               Vector<double> *)
+    = &internal::MatrixCreator::
+    copy_local_to_global<SparseMatrix<double>, Vector<double> >;
+
   WorkStream::run (dof.begin_active(),
                   static_cast<typename DoFHandler<dim,spacedim>::active_cell_iterator>(dof.end()),
                   &internal::MatrixCreator::laplace_assembler<dim, spacedim, typename DoFHandler<dim,spacedim>::active_cell_iterator>,
-                  std_cxx1x::bind (&internal::MatrixCreator::
-                                   copy_local_to_global<SparseMatrix<double>, Vector<double> >,
+                  std_cxx1x::bind (copy_local_to_global,
                                    _1, &matrix, &rhs_vector),
                   assembler_data,
                   copy_data);
@@ -1804,11 +1815,16 @@ void MatrixCreator::create_laplace_matrix (const hp::MappingCollection<dim,space
   copy_data.cell_rhs.reinit (assembler_data.fe_collection.max_dofs_per_cell());
   copy_data.dof_indices.resize (assembler_data.fe_collection.max_dofs_per_cell());
 
+  void (*copy_local_to_global) (const internal::MatrixCreator::AssemblerData::CopyData &,
+                               SparseMatrix<double> *,
+                               Vector<double> *)
+    = &internal::MatrixCreator::
+    copy_local_to_global<SparseMatrix<double>, Vector<double> >;
+
   WorkStream::run (dof.begin_active(),
                   static_cast<typename hp::DoFHandler<dim,spacedim>::active_cell_iterator>(dof.end()),
                   &internal::MatrixCreator::laplace_assembler<dim, spacedim, typename hp::DoFHandler<dim,spacedim>::active_cell_iterator>,
-                  std_cxx1x::bind (&internal::MatrixCreator::
-                                   copy_local_to_global<SparseMatrix<double>, Vector<double> >,
+                  std_cxx1x::bind (copy_local_to_global,
                                    _1, &matrix, (Vector<double>*)0),
                   assembler_data,
                   copy_data);
@@ -1854,11 +1870,16 @@ void MatrixCreator::create_laplace_matrix (const hp::MappingCollection<dim,space
   copy_data.cell_rhs.reinit (assembler_data.fe_collection.max_dofs_per_cell());
   copy_data.dof_indices.resize (assembler_data.fe_collection.max_dofs_per_cell());
 
+  void (*copy_local_to_global) (const internal::MatrixCreator::AssemblerData::CopyData &,
+                               SparseMatrix<double> *,
+                               Vector<double> *)
+    = &internal::MatrixCreator::
+    copy_local_to_global<SparseMatrix<double>, Vector<double> >;
+
   WorkStream::run (dof.begin_active(),
                   static_cast<typename hp::DoFHandler<dim,spacedim>::active_cell_iterator>(dof.end()),
                   &internal::MatrixCreator::laplace_assembler<dim, spacedim, typename hp::DoFHandler<dim,spacedim>::active_cell_iterator>,
-                  std_cxx1x::bind (&internal::MatrixCreator::
-                                   copy_local_to_global<SparseMatrix<double>, Vector<double> >,
+                  std_cxx1x::bind (copy_local_to_global,
                                    _1, &matrix, &rhs_vector),
                   assembler_data,
                   copy_data);
index a9ee782b6c5234d7f8b5fb475dcb5fd663cd42fb..22a1a6f448e7598e8036bac4f975aafd6bf812f9 100644 (file)
@@ -38,6 +38,15 @@ inconvenience this causes.
 <h3>General</h3>
 
 <ol>
+  <li>
+  <p>Fixed: GCC version 3.4.0 failed to compile the file
+  <code>deal.II/source/numerics/matrices.cc</code> with
+  an internal compiler error. This has
+  now been worked around.
+  <br>
+  (WB 2010/07/15)
+  </p>
+
   <li>
   <p>Fixed: A problem in the Makefiles caused error messages when
   building under CygWin.

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.