aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/eh/weak1.C
blob: 3034e809ea7f7e371797f8821240731743186a4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// PR target/29487
// { dg-do run { xfail "hppa*-hp-hpux11.*" } }
// { dg-require-weak "" }
// { dg-additional-sources "weak1-a.cc" }
// { dg-options "-O2" }

extern __attribute__((weak)) 
void f() {
}

int main () {
  try {
    f();
    return 1;
  } catch (int i) {
    /* Although the implementation of f in this file does not throw
       any exceptions, it is weak, and may therefore be replaced at
       link time.  Therefore, the compiler must not optimize away this
       catch clause.  */
    if (i != 7)
      return 2;
  }
}