📄 uncaught2.c
字号:
// APPLE LOCAL file mainline 2006-02-24 4086777// { dg-do compile }// { dg-final { scan-assembler-not "__cxa_get_exception" } }// { dg-options "-fno-use-cxa-get-exception-ptr" }#include <exception>#include <cstdlib>struct Check { int obj1, obj2; bool state;};static Check const data[] = { { 0, 0, false }, // construct [0] { 1, 0, true }, // [1] = [0] { 0, 0, true }, // destruct [0] { 2, 1, true }, // [2] = [1] { 2, 2, true }, // destruct [2] { 3, 1, true }, // [3] = [1] { 3, 3, false }, // destruct [3] { 1, 1, false }, // destruct [1] { 9, 9, false } // end-of-data};static int pos = 0;static void test(int obj1, int obj2, bool state){ if (obj1 != data[pos].obj1) abort (); if (obj2 != data[pos].obj2) abort (); if (state != data[pos].state) abort (); pos++;}struct S { int id; S (); S (const S &); ~S ();};static int next_id = 0;S::S() : id (next_id++){ test (id, id, std::uncaught_exception ());}S::S(const S &x) : id (next_id++){ test (id, x.id, std::uncaught_exception ());}S::~S(){ test (id, id, std::uncaught_exception ());}extern void foo (S *);int main(){ try { try { S s0; throw s0; // s1 is the exception object } catch (S s2) { throw; } } catch (S s3) { } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -