about summary refs log tree commit diff homepage
path: root/test
diff options
context:
space:
mode:
authorJulian Büning <julian.buening@rwth-aachen.de>2020-09-04 22:04:57 +0200
committerMartinNowack <2443641+MartinNowack@users.noreply.github.com>2020-10-12 11:19:24 +0100
commit9c445a83bc03ca4a0335e98704feee44183831a6 (patch)
tree868034bc5ed0406a6bced20f30340146ca079b50 /test
parente94d9c6268cb75ff317a42e26f33c419e6686b5d (diff)
downloadklee-9c445a83bc03ca4a0335e98704feee44183831a6.tar.gz
Exception handling only for LLVM >= 8.0.0
Diffstat (limited to 'test')
-rw-r--r--test/CXX/symex/libc++/can_catch_test.cpp1
-rw-r--r--test/CXX/symex/libc++/catch_recover.cpp1
-rw-r--r--test/CXX/symex/libc++/catch_with_adjusted_exception_pointer.cpp1
-rw-r--r--test/CXX/symex/libc++/exception.cpp1
-rw-r--r--test/CXX/symex/libc++/exception_inheritance.cpp1
-rw-r--r--test/CXX/symex/libc++/general_catch.cpp1
-rw-r--r--test/CXX/symex/libc++/landingpad.cpp1
-rw-r--r--test/CXX/symex/libc++/multi_throw.cpp1
-rw-r--r--test/CXX/symex/libc++/multi_unwind.cpp1
-rw-r--r--test/CXX/symex/libc++/nested.cpp1
-rw-r--r--test/CXX/symex/libc++/nested_fail.cpp1
-rw-r--r--test/CXX/symex/libc++/rethrow.cpp1
-rw-r--r--test/CXX/symex/libc++/simple_exception.cpp1
-rw-r--r--test/CXX/symex/libc++/simple_exception_fail.cpp1
-rw-r--r--test/CXX/symex/libc++/symbolic_exception.cpp1
-rw-r--r--test/CXX/symex/libc++/throw_specifiers.cpp1
-rw-r--r--test/CXX/symex/libc++/throwing_exception_destructor.cpp1
-rw-r--r--test/CXX/symex/libc++/uncaught_exception.cpp1
-rw-r--r--test/lit.cfg4
-rw-r--r--test/lit.site.cfg.in1
20 files changed, 23 insertions, 0 deletions
diff --git a/test/CXX/symex/libc++/can_catch_test.cpp b/test/CXX/symex/libc++/can_catch_test.cpp
index 9d3a2d23..c70d14a2 100644
--- a/test/CXX/symex/libc++/can_catch_test.cpp
+++ b/test/CXX/symex/libc++/can_catch_test.cpp
@@ -1,5 +1,6 @@
 // REQUIRES: uclibc
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -std=c++11 -c -I "%libcxx_include" -g -nostdinc++ -o %t.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --exit-on-error --libcxx --libc=uclibc %t.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/catch_recover.cpp b/test/CXX/symex/libc++/catch_recover.cpp
index 44362b25..c77bea91 100644
--- a/test/CXX/symex/libc++/catch_recover.cpp
+++ b/test/CXX/symex/libc++/catch_recover.cpp
@@ -1,6 +1,7 @@
 // REQUIRES: not-msan
 // Disabling msan because it times out on CI
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/catch_with_adjusted_exception_pointer.cpp b/test/CXX/symex/libc++/catch_with_adjusted_exception_pointer.cpp
index bfb69be4..e3bf08ad 100644
--- a/test/CXX/symex/libc++/catch_with_adjusted_exception_pointer.cpp
+++ b/test/CXX/symex/libc++/catch_with_adjusted_exception_pointer.cpp
@@ -1,5 +1,6 @@
 // REQUIRES: uclibc
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -std=c++11 -c -I "%libcxx_include" -g -nostdinc++ -o %t.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --exit-on-error --libcxx --libc=uclibc %t.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/exception.cpp b/test/CXX/symex/libc++/exception.cpp
index b46d474e..4d6805f6 100644
--- a/test/CXX/symex/libc++/exception.cpp
+++ b/test/CXX/symex/libc++/exception.cpp
@@ -1,6 +1,7 @@
 // REQUIRES: not-msan
 // Disabling msan because it times out on CI
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/exception_inheritance.cpp b/test/CXX/symex/libc++/exception_inheritance.cpp
index 4e42fbb7..ca207eb4 100644
--- a/test/CXX/symex/libc++/exception_inheritance.cpp
+++ b/test/CXX/symex/libc++/exception_inheritance.cpp
@@ -1,5 +1,6 @@
 // REQUIRES: uclibc
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -std=c++11 -c -I "%libcxx_include" -g -nostdinc++ -o %t.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --exit-on-error --libcxx --libc=uclibc %t.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/general_catch.cpp b/test/CXX/symex/libc++/general_catch.cpp
index ee7f9983..c544f7a3 100644
--- a/test/CXX/symex/libc++/general_catch.cpp
+++ b/test/CXX/symex/libc++/general_catch.cpp
@@ -1,6 +1,7 @@
 // REQUIRES: not-msan
 // Disabling msan because it times out on CI
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/landingpad.cpp b/test/CXX/symex/libc++/landingpad.cpp
index 21e55536..13dd6bc4 100644
--- a/test/CXX/symex/libc++/landingpad.cpp
+++ b/test/CXX/symex/libc++/landingpad.cpp
@@ -3,6 +3,7 @@
 // Based on: https://gcc.gnu.org/wiki/Dwarf2EHNewbiesHowto
 // REQUIRES: uclibc
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -std=c++11 -c -I "%libcxx_include" -g -nostdinc++ -o %t.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --exit-on-error --libcxx --libc=uclibc  %t.bc | FileCheck %s
diff --git a/test/CXX/symex/libc++/multi_throw.cpp b/test/CXX/symex/libc++/multi_throw.cpp
index be07bc17..52e8d9b9 100644
--- a/test/CXX/symex/libc++/multi_throw.cpp
+++ b/test/CXX/symex/libc++/multi_throw.cpp
@@ -1,6 +1,7 @@
 // REQUIRES: not-msan
 // Disabling msan because it times out on CI
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/multi_unwind.cpp b/test/CXX/symex/libc++/multi_unwind.cpp
index 98bae1dc..cf29422c 100644
--- a/test/CXX/symex/libc++/multi_unwind.cpp
+++ b/test/CXX/symex/libc++/multi_unwind.cpp
@@ -1,6 +1,7 @@
 // REQUIRES: not-msan
 // Disabling msan because it times out on CI
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/nested.cpp b/test/CXX/symex/libc++/nested.cpp
index b85d6759..21222642 100644
--- a/test/CXX/symex/libc++/nested.cpp
+++ b/test/CXX/symex/libc++/nested.cpp
@@ -1,6 +1,7 @@
 // REQUIRES: not-msan
 // Disabling msan because it times out on CI
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --exit-on-error --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/nested_fail.cpp b/test/CXX/symex/libc++/nested_fail.cpp
index 919434f1..d0b8ca09 100644
--- a/test/CXX/symex/libc++/nested_fail.cpp
+++ b/test/CXX/symex/libc++/nested_fail.cpp
@@ -1,6 +1,7 @@
 // REQUIRES: not-msan
 // Disabling msan because it times out on CI
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/rethrow.cpp b/test/CXX/symex/libc++/rethrow.cpp
index d6a0954d..149fe693 100644
--- a/test/CXX/symex/libc++/rethrow.cpp
+++ b/test/CXX/symex/libc++/rethrow.cpp
@@ -1,5 +1,6 @@
 // REQUIRES: uclibc
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -std=c++11 -c -I "%libcxx_include" -g -nostdinc++ -o %t.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --exit-on-error --libcxx --libc=uclibc %t.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/simple_exception.cpp b/test/CXX/symex/libc++/simple_exception.cpp
index af002253..4d7d2c92 100644
--- a/test/CXX/symex/libc++/simple_exception.cpp
+++ b/test/CXX/symex/libc++/simple_exception.cpp
@@ -1,6 +1,7 @@
 // REQUIRES: not-msan
 // Disabling msan because it times out on CI
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/simple_exception_fail.cpp b/test/CXX/symex/libc++/simple_exception_fail.cpp
index d4a30b25..bda2cd33 100644
--- a/test/CXX/symex/libc++/simple_exception_fail.cpp
+++ b/test/CXX/symex/libc++/simple_exception_fail.cpp
@@ -1,6 +1,7 @@
 // REQUIRES: not-msan
 // Disabling msan because it times out on CI
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/symbolic_exception.cpp b/test/CXX/symex/libc++/symbolic_exception.cpp
index 49d432a8..3f29fa04 100644
--- a/test/CXX/symex/libc++/symbolic_exception.cpp
+++ b/test/CXX/symex/libc++/symbolic_exception.cpp
@@ -1,6 +1,7 @@
 // REQUIRES: not-msan
 // Disabling msan because it times out on CI
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s
diff --git a/test/CXX/symex/libc++/throw_specifiers.cpp b/test/CXX/symex/libc++/throw_specifiers.cpp
index 5a7955fb..96195cd4 100644
--- a/test/CXX/symex/libc++/throw_specifiers.cpp
+++ b/test/CXX/symex/libc++/throw_specifiers.cpp
@@ -2,6 +2,7 @@
 // throw specifications on functions
 // REQUIRES: uclibc
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -std=c++11 -c -I "%libcxx_include" -g -nostdinc++ -o %t.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libcxx --libc=uclibc  %t.bc | FileCheck %s
diff --git a/test/CXX/symex/libc++/throwing_exception_destructor.cpp b/test/CXX/symex/libc++/throwing_exception_destructor.cpp
index d24a15b0..02d7cdb9 100644
--- a/test/CXX/symex/libc++/throwing_exception_destructor.cpp
+++ b/test/CXX/symex/libc++/throwing_exception_destructor.cpp
@@ -1,6 +1,7 @@
 // Testcase for proper handling of exception destructors that throw.
 // REQUIRES: uclibc
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm -O0 -std=c++11 -c -I "%libcxx_include" -g -nostdinc++ -o %t.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libcxx --libc=uclibc --exit-on-error  %t.bc
diff --git a/test/CXX/symex/libc++/uncaught_exception.cpp b/test/CXX/symex/libc++/uncaught_exception.cpp
index 4e8f90f5..3cb54bc3 100644
--- a/test/CXX/symex/libc++/uncaught_exception.cpp
+++ b/test/CXX/symex/libc++/uncaught_exception.cpp
@@ -1,6 +1,7 @@
 // REQUIRES: not-msan
 // Disabling msan because it times out on CI
 // REQUIRES: libcxx
+// REQUIRES: eh-cxx
 // RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s
diff --git a/test/lit.cfg b/test/lit.cfg
index c1003e70..1bfc16e9 100644
--- a/test/lit.cfg
+++ b/test/lit.cfg
@@ -200,6 +200,10 @@ if config.enable_posix_runtime:
 if config.enable_libcxx:
   config.available_features.add('libcxx')
 
+# C++ Exception Handling feature
+if config.enable_eh_cxx:
+  config.available_features.add('eh-cxx')
+
 # Target operating system features
 supported_targets = ['linux', 'darwin', 'freebsd']
 for target in supported_targets:
diff --git a/test/lit.site.cfg.in b/test/lit.site.cfg.in
index 99c82bb8..5f2415d6 100644
--- a/test/lit.site.cfg.in
+++ b/test/lit.site.cfg.in
@@ -32,6 +32,7 @@ if @LLVM_VERSION_MAJOR@ >= 5:
 config.enable_uclibc = True if @SUPPORT_KLEE_UCLIBC@ == 1 else False
 config.enable_posix_runtime = True if @ENABLE_POSIX_RUNTIME@ == 1 else False
 config.enable_libcxx = True if @SUPPORT_KLEE_LIBCXX@ == 1 else False
+config.enable_eh_cxx = True if @SUPPORT_KLEE_EH_CXX@ == 1 else False
 config.have_selinux = True if @HAVE_SELINUX@ == 1 else False
 config.enable_stp = True if @ENABLE_STP@ == 1 else False
 config.enable_z3 = True if @ENABLE_Z3@ == 1 else False