]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Address Wundefined-var-template 14543/head
authorDaniel Arndt <arndtd@ornl.gov>
Wed, 7 Dec 2022 21:30:20 +0000 (16:30 -0500)
committerDaniel Arndt <arndtd@ornl.gov>
Wed, 7 Dec 2022 21:31:08 +0000 (16:31 -0500)
cmake/setup_compiler_flags_gnu.cmake
include/deal.II/fe/mapping_q1.h
include/deal.II/hp/mapping_collection.h
source/fe/mapping_q1.cc
source/hp/mapping_collection.cc

index 08e141fa1e05e6e5fa6cf92c103b3db403aa47bd..9c73ffdc9e093a7c521445709a00128cdc42e2ae 100644 (file)
@@ -126,12 +126,6 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
   #
   enable_if_supported(DEAL_II_CXX_FLAGS "-Wno-unsupported-friend")
 
-  #
-  # Disable a diagnostic that warns about potentially uninstantiated static
-  # members. This leads to a ton of false positives.
-  #
-  enable_if_supported(DEAL_II_CXX_FLAGS "-Wno-undefined-var-template")
-
   #
   # Clang versions prior to 3.6 emit a lot of false positives wrt
   # "-Wunused-function". Also suppress warnings for Xcode older than 6.3
index b9b86451b0c39ca265c4c216f29156ac6e817fdc..4d75d7404ecf52ed025820aadef7d05cb5aceeb9 100644 (file)
@@ -101,6 +101,9 @@ struct StaticMappingQ1
 
 /** @} */
 
+template <int dim, int spacedim>
+MappingQ<dim, spacedim> StaticMappingQ1<dim, spacedim>::mapping =
+  MappingQ1<dim, spacedim>{};
 
 DEAL_II_NAMESPACE_CLOSE
 
index b562df44052b830d9a3a8dc56831afb221a96fc6..650a54d29616184fa49aa2ca5a8b88713b2181d7 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <deal.II/fe/fe.h>
 #include <deal.II/fe/mapping.h>
+#include <deal.II/fe/mapping_q1.h>
 
 #include <deal.II/hp/collection.h>
 
@@ -172,6 +173,13 @@ namespace hp
       push_back(*p);
   }
 
+
+
+  template <int dim, int spacedim>
+  MappingCollection<dim, spacedim>
+    StaticMappingQ1<dim, spacedim>::mapping_collection =
+      MappingCollection<dim, spacedim>(MappingQ1<dim, spacedim>{});
+
 } // namespace hp
 
 
index 1f8aec3bdfb5535ea43233e873ddf89c02ef411b..4dfa0c185be12efc11d590c0e81c9136103938ce 100644 (file)
@@ -35,15 +35,6 @@ MappingQ1<dim, spacedim>::clone() const
   return std::make_unique<MappingQ1<dim, spacedim>>(*this);
 }
 
-//---------------------------------------------------------------------------
-
-
-template <int dim, int spacedim>
-MappingQ<dim, spacedim>
-  StaticMappingQ1<dim, spacedim>::mapping = MappingQ<dim, spacedim>(1);
-
-
-
 //--------------------------- Explicit instantiations -----------------------
 #include "mapping_q1.inst"
 
index 2d4c5b5de9b152e352a6ab7008c30bc05b482c38..2809aa903d5ba509500c2e09ed02d962caadc933 100644 (file)
@@ -53,34 +53,6 @@ namespace hp
       std::shared_ptr<const Mapping<dim, spacedim>>(new_mapping.clone()));
   }
 
-  //---------------------------------------------------------------------------
-
-
-  namespace
-  {
-    /**
-     * Create and return a reference to a static MappingQ1 object. We can't
-     * use the one in ::StaticMappingQ1 to initialize the static object below
-     * since we can't make sure that the constructor for that object is run
-     * before we want to use the object (when constructing mapping_collection
-     * below).  Therefore we create a helper function which returns a
-     * reference to a static object that will be constructed the first time
-     * this function is called.
-     */
-    template <int dim, int spacedim>
-    MappingQ<dim, spacedim> &
-    get_static_mapping_q1()
-    {
-      static MappingQ1<dim, spacedim> mapping;
-      return mapping;
-    }
-  } // namespace
-
-  template <int dim, int spacedim>
-  MappingCollection<dim, spacedim>
-    StaticMappingQ1<dim, spacedim>::mapping_collection =
-      MappingCollection<dim, spacedim>(get_static_mapping_q1<dim, spacedim>());
-
 } // namespace hp
 
 

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.