llvm-project

Форк
0
/
noexception3.pass.cpp 
37 строк · 950.0 Байт
1
//===----------------------------------------------------------------------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8

9
// UNSUPPORTED: c++03
10
// REQUIRES: no-exceptions
11

12
#include <cxxabi.h>
13
#include <exception>
14
#include <cassert>
15
#include <stdlib.h>
16

17
// namespace __cxxabiv1 {
18
//      void __cxa_rethrow_primary_exception(void* thrown_object);
19
// }
20

21
unsigned gCounter = 0;
22

23
void my_terminate() { exit(0); }
24

25
int main ()
26
{
27
    // should not call std::terminate()
28
    __cxxabiv1::__cxa_rethrow_primary_exception(nullptr);
29

30
    std::set_terminate(my_terminate);
31

32
    // should call std::terminate()
33
    __cxxabiv1::__cxa_rethrow_primary_exception((void*) &gCounter);
34
    assert(false);
35

36
    return 0;
37
}
38

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.