OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.old-deja/] [g++.other/] [delete4.C] - Blame information for rev 414

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 149 jeremybenn
// { dg-do assemble  }
2
 
3
// Copyright (C) 1999 Free Software Foundation, Inc.
4
// Contributed by Nathan Sidwell 15 Apr 1999 
5
 
6
// delete (void *)e and delete[] (void *)e result in undefined behavior
7
// [expr.delete/3]. Check we warn about them
8
// operator new functions can only return NULL, if their exceptions
9
// specification is `throw()'. All other cases must return a non-null pointer
10
// [expr.new/13].
11
 
12
typedef __SIZE_TYPE__ size_t;
13
 
14
void *operator new(size_t)
15
{
16
  return 0; // { dg-error "" } cannot return NULL
17
}
18
void *operator new[](size_t)
19
{
20
  return 0; // { dg-error "" } cannot return NULL
21
}
22
 
23
struct X
24
{
25
  void *operator new(size_t)
26
  {
27
    return 0; // { dg-error "" } cannot return NULL
28
  }
29
  void *operator new[](size_t)
30
  {
31
    return 0; // { dg-error "" } cannot return NULL
32
  }
33
};
34
 
35
struct Y
36
{
37
  void *operator new(size_t) throw()
38
  {
39
    return 0; // ok
40
  }
41
  void *operator new[](size_t) throw()
42
  {
43
    return 0; // ok
44
  }
45
};
46
 
47
void fn(double *d, void *v)
48
{
49
  delete d;   // ok
50
  delete v;   // { dg-warning "" } deleting void
51
  delete[] d; // ok
52
  delete[] v; // { dg-warning "" } deleting void
53
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.