Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.old-deja/g++.law/operators32.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-do assemble } // GROUPS passed operators #include <iostream> // // ffrees space allocated for N-D array // template <class T> void ffree(long rows, T** array) { for( long i = 0; i < rows; i++ ) delete [] array[i]; // delete row delete [] array; // delete outer array } template <class T> T* allocate1d(long size, T*& array) { return array = new T[size]; } template <class T> T** allocate2d(long d1, long d2, T**& array) { if( allocate1d(d1, array) != 0 ) { for( long i = 0; i < d1; i++ ) { if( allocate1d(d2, array[i]) == 0 ) { ffree(i,array); return array; } } } return array; } int main() { long d1 = 3, d2 = 4; class foo { public: foo() {std::cout << "foo created" << std::endl; } ~foo() {std::cout << "foo deleted" << std::endl; } }; foo **f2; allocate2d(d1, d2, f2);// { dg-error "" "" { target { ! c++11 } } } ffree(d1, f2);// { dg-error "" "" { target { ! c++11 } } } }