diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 4a2d71a04877..4ab159b4146a 100644 --- a/configure.ac +++ b/configure.ac @@ -6438,6 +6438,27 @@ CXXFLAGS=$save_CXXFLAGS AC_LANG_POP([C++]) AC_SUBST([HAVE_CPP_GUARANTEED_COPY_ELISION]) +HAVE_CXX_CWG1579_FIX= +AC_MSG_CHECKING([whether $CXX has a fix for CWG1579]) +AC_LANG_PUSH([C++]) +save_CXXFLAGS=$CXXFLAGS +CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11" +AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + #include <memory> + struct S1 {}; + struct S2: S1 {}; + std::unique_ptr<S1> f() { + std::unique_ptr<S2> s2(new S2); + return s2; + } + ])], [ + AC_DEFINE([HAVE_CXX_CWG1579_FIX],[1]) + AC_MSG_RESULT([yes]) + ], [AC_MSG_RESULT([no])]) +CXXFLAGS=$save_CXXFLAGS +AC_LANG_POP([C++]) +AC_SUBST([HAVE_CXX_CWG1579_FIX]) + dnl =================================================================== dnl system stl sanity tests dnl =================================================================== |