From a64ea7589ca011edd41ad9a3468d091cd093430c Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Sun, 14 Aug 2022 11:20:26 +0200
Subject: [PATCH] Add missing includes for compilation with clang-14 and g++-12

---
 src/analysis/CMakeLists.txt            | 7 +++++++
 src/language/modules/BuiltinModule.hpp | 1 +
 src/language/utils/ASTNodeDataType.hpp | 3 ++-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/analysis/CMakeLists.txt b/src/analysis/CMakeLists.txt
index 3cbded76d..b675ea696 100644
--- a/src/analysis/CMakeLists.txt
+++ b/src/analysis/CMakeLists.txt
@@ -11,3 +11,10 @@ add_library(
   TensorialGaussLobattoQuadrature.cpp
   TetrahedronGaussQuadrature.cpp
   TriangleGaussQuadrature.cpp)
+
+if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+  if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12.0.0") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "13.0.0"))
+    # Deactivated since it produces false positive warning in this file only ...
+    set_source_files_properties(PyramidGaussQuadrature.cpp PROPERTIES COMPILE_FLAGS "-Wno-array-bounds")
+  endif()
+endif()
diff --git a/src/language/modules/BuiltinModule.hpp b/src/language/modules/BuiltinModule.hpp
index 33afb27d7..e15dda297 100644
--- a/src/language/modules/BuiltinModule.hpp
+++ b/src/language/modules/BuiltinModule.hpp
@@ -6,6 +6,7 @@
 
 #include <utils/Exceptions.hpp>
 
+#include <functional>
 #include <sstream>
 
 class IBuiltinFunctionEmbedder;
diff --git a/src/language/utils/ASTNodeDataType.hpp b/src/language/utils/ASTNodeDataType.hpp
index b7cc48fef..4ef3a80c1 100644
--- a/src/language/utils/ASTNodeDataType.hpp
+++ b/src/language/utils/ASTNodeDataType.hpp
@@ -3,6 +3,7 @@
 
 #include <utils/PugsAssert.hpp>
 
+#include <array>
 #include <limits>
 #include <memory>
 #include <string>
@@ -119,7 +120,7 @@ class ASTNodeDataType
   }
 
   ASTNodeDataType& operator=(const ASTNodeDataType&) = default;
-  ASTNodeDataType& operator=(ASTNodeDataType&&) = default;
+  ASTNodeDataType& operator=(ASTNodeDataType&&)      = default;
 
   template <DataType data_type>
   [[nodiscard]] static ASTNodeDataType
-- 
GitLab