Forked from
Core Modules / dune-common
4187 commits behind, 89 commits ahead of the upstream repository.
-
Steffen Müthing authored
The test for __cxa_demangle(), which is used by Dune::className() to demangle type names, doesn't work on my clang 3.6. Apparently, clang requires the user to include <typeinfo> before <cxxabi.h>. While classname.hh already does this, the build system tests don't, causing the feature to get disabled on clang. Fixed by adding the include to the build system tests. (cherry picked from commit 70f52c0d) Signed-off-by:
Steffen Müthing <muething@dune-project.org>
Steffen Müthing authoredThe test for __cxa_demangle(), which is used by Dune::className() to demangle type names, doesn't work on my clang 3.6. Apparently, clang requires the user to include <typeinfo> before <cxxabi.h>. While classname.hh already does this, the build system tests don't, causing the feature to get disabled on clang. Fixed by adding the include to the build system tests. (cherry picked from commit 70f52c0d) Signed-off-by:
Steffen Müthing <muething@dune-project.org>
DuneCxaDemangle.cmake 511 B
# Module that checks whether the compiler supports the
# abi::__cxa_demangle function required to
# make the type names returned by typeid() human-readable
#
# Sets the following variable:
# HAVE_CXA_DEMANGLE
#
# perform tests
include(CheckCXXSourceCompiles)
CHECK_CXX_SOURCE_COMPILES("#include <typeinfo>
#include <cxxabi.h>
int main(void){
int foobar = 0;
const char *foo = typeid(foobar).name();
int status;
char *demangled = abi::__cxa_demangle( foo, 0, 0, &status );
}" HAVE_CXA_DEMANGLE)