## ---------------------------------------------------------------------
##
-## Copyright (C) 2012 - 2015 by the deal.II authors
+## Copyright (C) 2012 - 2016 by the deal.II authors
##
## This file is part of the deal.II library.
##
# DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
# DEAL_II_COMPILER_HAS_ATTRIBUTE_PRETTY_FUNCTION
# DEAL_II_COMPILER_HAS_ATTRIBUTE_DEPRECATED
+# DEAL_II_COMPILER_HAS_ATTRIBUTE_ALWAYS_INLINE
# DEAL_II_DEPRECATED
+# DEAL_II_ALWAYS_INLINE
# DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
# DEAL_II_COMPILER_HAS_FUSE_LD_GOLD
#
ENDIF()
+#
+# Do a similar check with the always_inline attribute on functions.
+#
+CHECK_CXX_SOURCE_COMPILES(
+ "
+ __attribute__((always_inline)) int fn () { return 0; }
+ int main () { return fn(); }
+ "
+ DEAL_II_COMPILER_HAS_ATTRIBUTE_ALWAYS_INLINE
+ )
+
+IF(DEAL_II_COMPILER_HAS_ATTRIBUTE_ALWAYS_INLINE)
+ SET(DEAL_II_ALWAYS_INLINE "__attribute__((always_inline))")
+ELSE()
+ SET(DEAL_II_ALWAYS_INLINE " ")
+ENDIF()
+
+
#
# GCC and Clang allow fine grained control of diagnostics via the "GCC
# diagnostic" pragma. Check whether the compiler supports the "push" and
// ---------------------------------------------------------------------
//
-// Copyright (C) 2012 - 2015 by the deal.II authors
+// Copyright (C) 2012 - 2016 by the deal.II authors
//
// This file is part of the deal.II library.
//
#cmakedefine DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
#cmakedefine __PRETTY_FUNCTION__ @__PRETTY_FUNCTION__@
#cmakedefine DEAL_II_DEPRECATED @DEAL_II_DEPRECATED@
+#cmakedefine DEAL_II_ALWAYS_INLINE @DEAL_II_ALWAYS_INLINE@
#cmakedefine DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA