File: test16031.d

package info (click to toggle)
gcc-arm-none-eabi 15%3A12.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 959,712 kB
  • sloc: cpp: 3,275,382; ansic: 2,061,766; ada: 840,956; f90: 208,513; makefile: 76,132; asm: 73,433; xml: 50,448; exp: 34,146; sh: 32,436; objc: 15,637; fortran: 14,012; python: 11,991; pascal: 6,787; awk: 4,779; perl: 3,054; yacc: 338; ml: 285; lex: 201; haskell: 122
file content (33 lines) | stat: -rw-r--r-- 672 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// REQUIRED_ARGS: -fPIC -lib
// PERMUTE_ARGS:
// DISABLED: win32 win64
extern void throwing();

void foo()
{
    // create plenty of symbols, so that the catch references get a high symbol index
    static int a0, a1, a2, a3, a4, a5, a6, a7, a8, a9,
        b0, b1, b2, b3, b4, b5, b6, b7, b8, b9,
        c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,
        d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;
    try
    {
        throwing();
    }
    catch (Exception)
    {
    }
}

void bar()
{
    try
    {
        throwing();
    }
    // symbol index for DW.ref._D9Exception7__ClassZ
    // gets reused for another object and is out of bounds
    catch (Exception)
    {
    }
}