From: Matthias Maier Date: Sat, 10 Aug 2013 07:47:53 +0000 (+0000) Subject: Workaround for an issue with gcc-4.1 and an explicit destructor call X-Git-Tag: v8.1.0~1102 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0c48161896883a8533a4dbfc03e1287a6edca695;p=dealii.git Workaround for an issue with gcc-4.1 and an explicit destructor call (aka I don't want to give up yet and fully revert the change ;-) ) git-svn-id: https://svn.dealii.org/trunk@30272 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/source/fe/fe_values.cc b/deal.II/source/fe/fe_values.cc index 9b63f27839..a94336f669 100644 --- a/deal.II/source/fe/fe_values.cc +++ b/deal.II/source/fe/fe_values.cc @@ -1641,7 +1641,10 @@ namespace internal scalars.resize (n_scalars); for (unsigned int component=0; component ScalarView; + scalars[component].ScalarView::~ScalarView (); + new (&scalars[component]) dealii::FEValuesViews::Scalar(fe_values, component); @@ -1660,7 +1663,10 @@ namespace internal vectors.resize (n_vectors); for (unsigned int component=0; component VectorView; + vectors[component].VectorView::~VectorView (); + new (&vectors[component]) dealii::FEValuesViews::Vector(fe_values, component); @@ -1675,7 +1681,9 @@ namespace internal symmetric_second_order_tensors.resize(n_symmetric_second_order_tensors); for (unsigned int component = 0; component < n_symmetric_second_order_tensors; ++component) { - symmetric_second_order_tensors[component].~SymmetricTensor(); + // Use a typedef here to work around an issue with gcc-4.1: + typedef dealii::FEValuesViews::SymmetricTensor<2, dim, spacedim> SymmetricTensorView; + symmetric_second_order_tensors[component].SymmetricTensorView::~SymmetricTensorView(); new (&symmetric_second_order_tensors[component]) dealii::FEValuesViews::SymmetricTensor<2, dim, spacedim > (fe_values, @@ -1692,7 +1700,9 @@ namespace internal second_order_tensors.resize(n_second_order_tensors); for (unsigned int component = 0; component < n_second_order_tensors; ++component) { - second_order_tensors[component].~Tensor(); + // Use a typedef here to work around an issue with gcc-4.1: + typedef dealii::FEValuesViews::Tensor<2, dim, spacedim> TensorView; + second_order_tensors[component].TensorView::~TensorView(); new (&second_order_tensors[component]) dealii::FEValuesViews::Tensor<2, dim, spacedim > (fe_values,