1// { dg-do assemble  }
2// Copyright (C) 1999 Free Software Foundation, Inc.
3// Contributed by Nathan Sidwell 15 Apr 1999 <nathan@acm.org>
4
5typedef __SIZE_TYPE__ size_t;
6
7struct X
8{
9  int i;
10
11  X():i(){}
12  void *operator new(size_t)
13  {
14    return 0; // { dg-warning "" } cannot return NULL
15  }
16  void *operator new[](size_t)
17  {
18    return 0; // { dg-warning "" } cannot return NULL
19  }
20};
21
22struct Y
23{
24  int i;
25
26  Y():i(){}
27  void *operator new(size_t) throw()
28  {
29    return 0; // ok
30  }
31  void *operator new[](size_t) throw()
32  {
33    return 0; // ok
34  }
35};
36
37int main()
38{
39  Y *yp = new Y;
40
41  return yp != 0;
42}
43