aboutsummaryrefslogtreecommitdiff
path: root/m4/gcc_bug_80431.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/gcc_bug_80431.m4')
-rw-r--r--m4/gcc_bug_80431.m464
1 files changed, 0 insertions, 64 deletions
diff --git a/m4/gcc_bug_80431.m4 b/m4/gcc_bug_80431.m4
deleted file mode 100644
index e42f01956..000000000
--- a/m4/gcc_bug_80431.m4
+++ /dev/null
@@ -1,64 +0,0 @@
-# Ensure that this bug is not present in the C++ toolchain we are using.
-#
-# URL for bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431
-#
-# The test program is from that issue, with only a slight modification
-# to set an exit status instead of printing strings.
-AC_DEFUN([ENSURE_NO_GCC_BUG_80431],
-[
- AC_MSG_CHECKING([that GCC bug 80431 is fixed])
- AC_LANG_PUSH(C++)
- AC_RUN_IFELSE(
- [AC_LANG_PROGRAM(
- [[
- #include <cstdio>
-
- static bool a = true;
- static bool b = true;
-
- struct Options { };
-
- struct Option
- {
- Option(Options * options)
- {
- a = false;
- }
-
- ~Option()
- {
- b = false;
- }
- };
-
- struct MyOptions : Options { };
-
- struct MyOptions2 : virtual MyOptions
- {
- Option foo{this};
- };
- ]],
- [[
- {
- MyOptions2 opts;
- }
- return (a << 1) | b;
- ]])],
- [status_80431=0],
- [status_80431=$?],
- [
- # Assume we're bug-free when cross-compiling
- ])
- AC_LANG_POP(C++)
- AS_CASE([$status_80431],
- [0],[
- AC_MSG_RESULT(yes)
- ],
- [2],[
- AC_MSG_RESULT(no)
- AC_MSG_ERROR(Cannot build Nix with C++ compiler with this bug)
- ],
- [
- AC_MSG_RESULT(unexpected result $status_80431: not expected failure with bug, ignoring)
- ])
-])