view gcc/testsuite/g++.old-deja/g++.bugs/900519_06.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do assemble  }
// g++ 1.37.1 bug 900519_06

// g++ allows the type given in an invocation of operator new to be a
// reference type.

// Since pointers to reference types are illegal, the required return type
// from such an invocation (of operator new) is illegal, and thus (it seems)
// the entire call to new should be treated as being illegal.

typedef int& int_ref;

void test (int n)
{
  new int&;		// { dg-error "3:new cannot be applied to a reference type" } missed
  new int_ref;		// { dg-error "3:new cannot be applied to a reference type" } missed
  new int&[n];		// { dg-error "" } missed
  new int_ref[n];	// { dg-error "3:new cannot be applied to a reference type" } missed
  new int&[3];		// { dg-error "" } missed
  new int_ref[3];	// { dg-error "3:new cannot be applied to a reference type" } missed
}

int main () { return 0; }