1d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zakstemplate<typename _Tp>
2d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaksclass auto_ptr {
3d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaksprivate:
4d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks  _Tp* _M_ptr;
5d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zakspublic:
6d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks  auto_ptr(_Tp* __p = 0) throw() : _M_ptr(__p) { }
7d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks  ~auto_ptr() { delete _M_ptr; }
8d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks};
9d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks
10d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaksvoid cause_div_by_zero_in_header(int in) {
11d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks  int h = 0;
12d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks  h = in/h;
13d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks  h++;
14d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks}
15d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks
16d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaksvoid do_something (int in) {
17d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks  in++;
18d95b70175646829c26344d5f0bda1ec3009f2a5bAnna Zaks  in++;
1961dfd6f160f7501e140704990db9c449d29f8649Anna Zaks}
2061dfd6f160f7501e140704990db9c449d29f8649Anna Zaks
2161dfd6f160f7501e140704990db9c449d29f8649Anna Zaksvoid cause_div_by_zero_in_header2(int in) {
2261dfd6f160f7501e140704990db9c449d29f8649Anna Zaks  int h2 = 0;
2361dfd6f160f7501e140704990db9c449d29f8649Anna Zaks  h2 = in/h2;
2461dfd6f160f7501e140704990db9c449d29f8649Anna Zaks  h2++;
2561dfd6f160f7501e140704990db9c449d29f8649Anna Zaks}
2661dfd6f160f7501e140704990db9c449d29f8649Anna Zaks
2761dfd6f160f7501e140704990db9c449d29f8649Anna Zaks# define CALLS_BUGGY_FUNCTION2 cause_div_by_zero_in_header2(5);
2861dfd6f160f7501e140704990db9c449d29f8649Anna Zaks
2961dfd6f160f7501e140704990db9c449d29f8649Anna Zaksvoid cause_div_by_zero_in_header3(int in) {
3061dfd6f160f7501e140704990db9c449d29f8649Anna Zaks  int h3 = 0;
3161dfd6f160f7501e140704990db9c449d29f8649Anna Zaks  h3 = in/h3;
3261dfd6f160f7501e140704990db9c449d29f8649Anna Zaks  h3++;
3361dfd6f160f7501e140704990db9c449d29f8649Anna Zaks}
3461dfd6f160f7501e140704990db9c449d29f8649Anna Zaks
3561dfd6f160f7501e140704990db9c449d29f8649Anna Zaks# define CALLS_BUGGY_FUNCTION3 cause_div_by_zero_in_header3(5);
3661dfd6f160f7501e140704990db9c449d29f8649Anna Zaks
3761dfd6f160f7501e140704990db9c449d29f8649Anna Zaksvoid cause_div_by_zero_in_header4(int in) {
3861dfd6f160f7501e140704990db9c449d29f8649Anna Zaks  int h4 = 0;
3961dfd6f160f7501e140704990db9c449d29f8649Anna Zaks  h4 = in/h4;
4061dfd6f160f7501e140704990db9c449d29f8649Anna Zaks  h4++;
4161dfd6f160f7501e140704990db9c449d29f8649Anna Zaks}
4261dfd6f160f7501e140704990db9c449d29f8649Anna Zaks
4361dfd6f160f7501e140704990db9c449d29f8649Anna Zaks# define TAKE_CALL_AS_ARG(c) c;
44