OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [eh/] [cond1.C] - Blame information for rev 693

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 693 jeremybenn
// PR c++/7050
2
// { dg-do run }
3
 
4
extern "C" void abort(void);
5
 
6
#define CI(stmt) try { stmt; abort(); } catch (int) { }
7
 
8
struct has_destructor
9
{
10
    ~has_destructor() { }
11
};
12
 
13
struct no_destructor
14
{
15
};
16
 
17
int PI(int& i) { return i++; }
18
 
19
int main(int argc, char *argv[])
20
{
21
    (argc+1 ? has_destructor() : throw 0);
22
    CI((argc+1 ? throw 0 : has_destructor()));
23
    CI((0 ? has_destructor() : throw 0));
24
    CI((1 ? throw 0 : has_destructor()));
25
    (0 ? throw 0 : has_destructor());
26
    (1 ? has_destructor() : throw 0);
27
 
28
    (argc+1 ? no_destructor() : throw 0);
29
    CI((argc+1 ? throw 0 : no_destructor()));
30
    CI((0 ? no_destructor() : throw 0));
31
    CI((1 ? throw 0 : no_destructor()));
32
    (0 ? throw 0 : no_destructor());
33
    (1 ? no_destructor() : throw 0);
34
 
35
    int i = 1;
36
    CI(throw PI(i));
37
    if (i != 2) abort();
38
 
39
    (1 ? 0 : throw PI(i));
40
    if (i != 2) abort();
41
 
42
    CI(0 ? 0 : throw PI(i));
43
    if (i != 3) abort();
44
 
45
    CI(0 ? has_destructor() : throw PI(i));
46
    if (i != 4) abort();
47
    (argc+1 ? has_destructor() : throw PI(i));
48
    if (i != 4) abort();
49
 
50
    i = 1;
51
    CI(throw i++);
52
    if (i != 2) abort();
53
 
54
    (1 ? 0 : throw i++);
55
    if (i != 2) abort();
56
 
57
    CI(0 ? 0 : throw i++);
58
    if (i != 3) abort();
59
 
60
    CI(0 ? has_destructor() : throw i++);
61
    if (i != 4) abort();
62
    (argc+1 ? has_destructor() : throw i++);
63
    if (i != 4) abort();
64
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.