FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
compiler_intel_oneapi.hpp
1// FEAT3: Finite Element Analysis Toolbox, Version 3
2// Copyright (C) 2010 by Stefan Turek & the FEAT group
3// FEAT3 is released under the GNU General Public License version 3,
4// see the file 'copyright.txt' in the top level directory for details.
5
6#pragma once
7
16#if !defined(FEAT_COMPILER) && defined(__INTEL_LLVM_COMPILER)
17
18// define FEAT_COMPILER_INTEL_ONEAPI macro
19#define FEAT_COMPILER_INTEL_ONEAPI __INTEL_LLVM_COMPILER
20
21// define compiler string
22#define FEAT_COMPILER __VERSION__
23
24// oneAPI compilers are based on clang, so use clang-style diagnostics
25
26#define FEAT_DISABLE_WARNINGS _Pragma("clang diagnostic push") \
27 _Pragma("clang diagnostic ignored \"-Wall\"") \
28 _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") \
29 _Pragma("clang diagnostic ignored \"-Wshadow\"") \
30 _Pragma("clang diagnostic ignored \"-Wunused-parameter\"") \
31 _Pragma("clang diagnostic ignored \"-Wdeprecated-builtins\"") \
32 _Pragma("clang diagnostic ignored \"-Wdeprecated-copy-with-user-provided-dtor\"")
33
34#define FEAT_RESTORE_WARNINGS _Pragma("clang diagnostic pop")
35
36#define FEAT_PRAGMA_IVDEP _Pragma("ivdep")
37
38// define the noinline specifier
39#define NOINLINE __attribute__((noinline))
40
41#define FORCE_INLINE inline __forceinline
42
43#endif // !defined(FEAT_COMPILER) && defined(__INTEL_LLVM_COMPILER)