From 9c445a83bc03ca4a0335e98704feee44183831a6 Mon Sep 17 00:00:00 2001 From: Julian Büning Date: Fri, 4 Sep 2020 22:04:57 +0200 Subject: Exception handling only for LLVM >= 8.0.0 --- test/CXX/symex/libc++/can_catch_test.cpp | 1 + test/CXX/symex/libc++/catch_recover.cpp | 1 + test/CXX/symex/libc++/catch_with_adjusted_exception_pointer.cpp | 1 + test/CXX/symex/libc++/exception.cpp | 1 + test/CXX/symex/libc++/exception_inheritance.cpp | 1 + test/CXX/symex/libc++/general_catch.cpp | 1 + test/CXX/symex/libc++/landingpad.cpp | 1 + test/CXX/symex/libc++/multi_throw.cpp | 1 + test/CXX/symex/libc++/multi_unwind.cpp | 1 + test/CXX/symex/libc++/nested.cpp | 1 + test/CXX/symex/libc++/nested_fail.cpp | 1 + test/CXX/symex/libc++/rethrow.cpp | 1 + test/CXX/symex/libc++/simple_exception.cpp | 1 + test/CXX/symex/libc++/simple_exception_fail.cpp | 1 + test/CXX/symex/libc++/symbolic_exception.cpp | 1 + test/CXX/symex/libc++/throw_specifiers.cpp | 1 + test/CXX/symex/libc++/throwing_exception_destructor.cpp | 1 + test/CXX/symex/libc++/uncaught_exception.cpp | 1 + test/lit.cfg | 4 ++++ test/lit.site.cfg.in | 1 + 20 files changed, 23 insertions(+) (limited to 'test') 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 -- cgit 1.4.1