1 // { dg-do assemble  }
2 // Copyright (C) 1999 Free Software Foundation, Inc.
3 // Contributed by Nathan Sidwell 15 Apr 1999 <nathan@acm.org>
4 
5 typedef __SIZE_TYPE__ size_t;
6 
7 struct X
8 {
9   int i;
10 
XX11   X():i(){}
newX12   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 
22 struct Y
23 {
24   int i;
25 
YY26   Y():i(){}
newY27   void *operator new(size_t) throw()
28   {
29     return 0; // ok
30   }
throwY31   void *operator new[](size_t) throw()
32   {
33     return 0; // ok
34   }
35 };
36 
main()37 int main()
38 {
39   Y *yp = new Y;
40 
41   return yp != 0;
42 }
43