diff --git a/src/analysis/PyramidGaussQuadrature.cpp b/src/analysis/PyramidGaussQuadrature.cpp
index 679f3ded5b85764bca43ed062f379d8171cd5c65..e85a74ac1af9ec6893d15f5489cd568891e0ca92 100644
--- a/src/analysis/PyramidGaussQuadrature.cpp
+++ b/src/analysis/PyramidGaussQuadrature.cpp
@@ -24,6 +24,11 @@ PyramidGaussQuadrature::_buildPointAndWeightLists(const size_t degree)
 
       const double w = (4. / 3) * unit_weight;
 
+      // gcc's bound checking are messed up due to the use of
+      // std::array and the following dynamic/general switch
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Warray-bounds"
+
       switch (id) {
       case 1: {
         Assert(value_list.size() == 1);
@@ -96,6 +101,8 @@ PyramidGaussQuadrature::_buildPointAndWeightLists(const size_t degree)
       }
         // LCOV_EXCL_STOP
       }
+
+#pragma GCC diagnostic pop
     }
   };
 
diff --git a/src/language/modules/SchemeModule.cpp b/src/language/modules/SchemeModule.cpp
index 010247fbeb41c869a437397a6cd2d5ff6b2fe5c6..5ad47feff49b54cb5f90d2d3d9ddd68641204fbe 100644
--- a/src/language/modules/SchemeModule.cpp
+++ b/src/language/modules/SchemeModule.cpp
@@ -43,7 +43,6 @@
 #include <scheme/OutflowBoundaryConditionDescriptor.hpp>
 #include <scheme/SymmetryBoundaryConditionDescriptor.hpp>
 #include <scheme/VariableBCDescriptor.hpp>
-#include <scheme/test_reconstruction.hpp>
 #include <utils/Socket.hpp>
 
 #include <memory>
@@ -692,29 +691,6 @@ SchemeModule::SchemeModule()
 
                                                    ));
 
-#warning REMOVE AFTER TESTS FINISHED
-  this->_addBuiltinFunction("test_reconstruction",
-                            std::function(
-
-                              [](const std::vector<std::shared_ptr<const DiscreteFunctionVariant>>&
-                                   discrete_function_variant_list) -> void {
-                                test_reconstruction(discrete_function_variant_list);
-                              }
-
-                              ));
-
-#warning REMOVE AFTER TESTS FINISHED
-  this->_addBuiltinFunction("test_reconstruction",
-                            std::function(
-
-                              [](const std::vector<std::shared_ptr<const DiscreteFunctionVariant>>&
-                                   discrete_function_variant_list,
-                                 uint64_t degree) -> void {
-                                test_reconstruction(discrete_function_variant_list, degree);
-                              }
-
-                              ));
-
   MathFunctionRegisterForVh{*this};
 }
 
diff --git a/src/scheme/CMakeLists.txt b/src/scheme/CMakeLists.txt
index a759fca6af69a2f2b3e1622adef687443f15f0d1..a52ac4e6cef03f415dce174df1afc8a2dcb8e99f 100644
--- a/src/scheme/CMakeLists.txt
+++ b/src/scheme/CMakeLists.txt
@@ -3,16 +3,14 @@
 add_library(
   PugsScheme
   AcousticSolver.cpp
-  HyperelasticSolver.cpp
   DiscreteFunctionIntegrator.cpp
   DiscreteFunctionInterpoler.cpp
   DiscreteFunctionUtils.cpp
   DiscreteFunctionVectorIntegrator.cpp
   DiscreteFunctionVectorInterpoler.cpp
   FluxingAdvectionSolver.cpp
+  HyperelasticSolver.cpp
   PolynomialReconstruction.cpp
-
-  test_reconstruction.cpp
 )
 
 target_link_libraries(
diff --git a/src/scheme/test_reconstruction.cpp b/src/scheme/test_reconstruction.cpp
deleted file mode 100644
index 629d1337ebca06a338dd7bf5bdd8417d2316250d..0000000000000000000000000000000000000000
--- a/src/scheme/test_reconstruction.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <scheme/test_reconstruction.hpp>
-
-#include <mesh/NamedBoundaryDescriptor.hpp>
-#include <scheme/IntegrationMethodType.hpp>
-#include <scheme/PolynomialReconstruction.hpp>
-#include <utils/Timer.hpp>
-
-void
-test_reconstruction(const std::vector<std::shared_ptr<const DiscreteFunctionVariant>>& discrete_function_variant_list,
-                    uint64_t degree)
-{
-  std::vector descriptor_list = {
-    PolynomialReconstructionDescriptor{IntegrationMethodType::boundary,
-                                       degree,
-                                       {std::make_shared<NamedBoundaryDescriptor>("XMIN"),
-                                        std::make_shared<NamedBoundaryDescriptor>("XMAX"),
-                                        std::make_shared<NamedBoundaryDescriptor>("YMIN"),
-                                        std::make_shared<NamedBoundaryDescriptor>("YMAX")}}};
-
-  for (auto&& descriptor : descriptor_list) {
-    const size_t nb_loops = 1;
-    std::cout << "** variable list at once (" << nb_loops << " times) using " << rang::fgB::yellow
-              << name(descriptor.integrationMethodType()) << rang::fg::reset << "\n";
-
-    PolynomialReconstruction reconstruction{descriptor};
-    Timer t;
-    for (size_t i = 0; i < nb_loops; ++i) {
-      auto res = reconstruction.build(discrete_function_variant_list);
-    }
-    t.pause();
-    std::cout << "t = " << t << '\n';
-  }
-
-  std::cout << "finished!\n";
-}
diff --git a/src/scheme/test_reconstruction.hpp b/src/scheme/test_reconstruction.hpp
deleted file mode 100644
index d2fc5bd031989eecdf4d837f566c137b3f874888..0000000000000000000000000000000000000000
--- a/src/scheme/test_reconstruction.hpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef TEST_RECONSTRUCTION_HPP
-#define TEST_RECONSTRUCTION_HPP
-
-#warning REMOVE AFTER TESTS FINISHED
-#include <mesh/MeshVariant.hpp>
-#include <scheme/DiscreteFunctionVariant.hpp>
-
-#include <vector>
-
-void test_reconstruction(
-  const std::vector<std::shared_ptr<const DiscreteFunctionVariant>>& discrete_function_variant_list,
-  uint64_t degree = 1);
-
-#endif   // TEST_RECONSTRUCTION_HPP