From be8a9c611e17d526792cb5b1b192726704b23a76 Mon Sep 17 00:00:00 2001
From: Nikolaj Bjorner <nbjorner@microsoft.com>
Date: Mon, 1 Oct 2018 19:49:18 -0700
Subject: [PATCH] incorporate #1854

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
---
 CMakeLists.txt            | 4 ++++
 src/util/memory_manager.h | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a086afd71..28cd9fa33 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -383,6 +383,10 @@ if (("${TARGET_ARCHITECTURE}" STREQUAL "x86_64") OR ("${TARGET_ARCHITECTURE}" ST
   if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang"))
     set(SSE_FLAGS "-mfpmath=sse" "-msse" "-msse2")
     # FIXME: Remove "x.." when CMP0054 is set to NEW
+  elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Intel")
+    set(SSE_FLAGS "-mfpmath=sse" "-msse" "-msse2")
+    # Intel's compiler requires linking with libiomp5 
+    list(APPEND Z3_DEPENDENT_LIBS "iomp5") 
   elseif ("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
     set(SSE_FLAGS "/arch:SSE2")
   else()
diff --git a/src/util/memory_manager.h b/src/util/memory_manager.h
index 5cb7dc467..fec7c12b4 100644
--- a/src/util/memory_manager.h
+++ b/src/util/memory_manager.h
@@ -27,7 +27,9 @@ Revision History:
 # define __has_builtin(x) 0
 #endif
 
-#ifdef __GNUC__
+#ifdef __INTEL_COMPILER
+# define ALLOC_ATTR __attribute__((malloc))
+#elif __GNUC__
 # if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 || __has_builtin(returns_nonnull)
 #  define GCC_RET_NON_NULL __attribute__((returns_nonnull))
 # else