aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.old-deja/g++.bugs/900519_09.C
blob: 71c42633450e37aba8a3a72c59b664e6953e6f94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// { dg-do assemble  }
// g++ 1.37.1 bug 900519_09

// g++ allows the allocation of const objects via operator new even when
// these uses of operator new do not include initializations.

// This is inconsistant within the restrictions placed on the construction
// of class, struct, and union types which have constant members.

// Since there is no completely valid way of initializing such objects
// after the invocation of new, these cases should all be illegal.

// keywords: operator new, initialization, const qualifier

struct struct_0 {
  int member;
};

typedef const int const_int;
typedef const struct struct_0 const_struct_0;

void test ()
{
  new const int;		// { dg-error "" } 
  new const_int;		// { dg-error "" } 
  new const struct_0;		// { dg-error "" } 
  new const_struct_0;		// { dg-error "" } 
}

int main () { return 0; }