This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
g++ uses infinite memory with unusual 'new' statement
- From: Paul Dubuc <pdubuc at cas dot org>
- To: gcc-help <gcc-help at gcc dot gnu dot org>, gcc-bugs at gcc dot gnu dot org
- Date: Tue, 05 Aug 2003 17:40:22 -0400
- Subject: g++ uses infinite memory with unusual 'new' statement
- Newsgroups: gnu.g++.help, gnu.g++.bug, gnu.gcc.help
- Organization: Chemical Abstracts Service (CAS)
This bug is simlar to #11282 in the GCC Bugzilla database, but It may have a
different cause. The following program causes g++ 3.3 to loop (with no error or
warning messages) using up all virtual memory.
int
main()
{
int i = 16;
char* heap_area = new char [i]();
}
Is line 5 valid C++ with the parens? I've never see new called this way, but it
compiled fine with g++ 2.95.3. If the parens are valid, what do they mean?
With g++ 3.2.3 I get the following error:
z.cc: In function `int main()':
z.cc:5: variable-sized object of type `char[i]' may not be initialized
With 3.3 the code compiles fine when the parens are removed from line 5 or if a
literal constant is used in place of 'i'.
--
Paul M. Dubuc