This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/26774] New: Out of memory compiling 9-line Delta-reduced Linux kernel driver msp3400.c
- From: "flash at pobox dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Mar 2006 04:19:25 -0000
- Subject: [Bug c/26774] New: Out of memory compiling 9-line Delta-reduced Linux kernel driver msp3400.c
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The attached 9-line file causes a checking=all build of GCC 4.1.0 to exhaust
memory, on both Ubuntu Linux 5.04/2.6.10-6-386 and Mac OSX 10.4.5. It's a
Delta-reduced version of a preprocessed version of the Linux Kernel file
drivers/media/video/msp3400.c, which exhibited the same behavior. The original
compilation was being done by a test script outside the kernel tree, so the
compilation encountered errors; the preprocessed file is invalid C, as is the
Delta-reduced version.
My checking=all builds of GCC 4.0.1 (patched) and 4.02 each give a
segmentation fault. GCC 3.3.5 (Debian 1:3.3.5-8ubuntu2) gives up cleanly:
"confused by earlier errors, bailing out".
On the non-reduced preprocessed file, with my patched checking build of
4.0.1, I instead get the following, which seems like PR22028, which is
presumably fixed:
internal compiler error: tree check: expected class ?type?, have
?exceptional? (error_mark) in
gimplify_type_sizes, at gimplify.c:4368
Here's the session; I'll attached the preprocessed file and the
Delta-reduction. I used ulimit on Ubuntu to save time; fully exhausting memory
on OSX (where ulimit doesn't seem to work) with the unreduced file took half an
hour, but memory use gets above 50MB fairly quickly.
3> ulimit -m 50000 -v 50000
flash@traska scripts 20:11:53
4> /opt/gcc410-chk-all/bin/gcc -v
../cpp/bugfiles/GCC_bugfiles/error/122285_msp3400_min.i
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /opt/Gcc-4.1.0-dist/configure --enable-checking=all
--prefix=/opt/gcc410-chk-all --enable-languages=c,c++ --with-comment=PalmSource
checking=all build by Flash Sheridan 3/17/06
Thread model: posix
gcc version 4.1.0
/home/opt/gcc410-chk-all/bin/../libexec/gcc/i686-pc-linux-gnu/4.1.0/cc1
-fpreprocessed ../cpp/bugfiles/GCC_bugfiles/error/122285_msp3400_min.i -quiet
-dumpbase 122285_msp3400_min.i -mtune=pentiumpro -auxbase 122285_msp3400_min
-version -o /tmp/ccV7UEre.s
GNU C version 4.1.0 (i686-pc-linux-gnu)
compiled by GNU C version 3.3.5 (Debian 1:3.3.5-8ubuntu2).
GGC heuristics: --param ggc-min-expand=0 --param ggc-min-heapsize=0
Compiler executable checksum: a68040354320563d9f0f04c1edf3c815
../cpp/bugfiles/GCC_bugfiles/error/122285_msp3400_min.i:3: warning: ?struct
i2c_client? declared inside parameter list
../cpp/bugfiles/GCC_bugfiles/error/122285_msp3400_min.i:3: warning: its scope
is only this definition or declaration, which is probably not what you want
../cpp/bugfiles/GCC_bugfiles/error/122285_msp3400_min.i:4: error: field
?driver? has incomplete type
../cpp/bugfiles/GCC_bugfiles/error/122285_msp3400_min.i:6: error: two or more
data types in declaration specifiers
../cpp/bugfiles/GCC_bugfiles/error/122285_msp3400_min.i:6: warning: ?struct
i2c_client? declared inside parameter list
../cpp/bugfiles/GCC_bugfiles/error/122285_msp3400_min.i:8: warning:
initialization from incompatible pointer type
virtual memory exhausted: Cannot allocate memory
flash@traska scripts 20:14:31
---
PalmSource bug #122285
http://pobox.com/~flash
Quality Lead for Compilers and Debuggers
PalmSource, Inc. Tools Quality Management
--
Summary: Out of memory compiling 9-line Delta-reduced Linux
kernel driver msp3400.c
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: flash at pobox dot com
GCC host triplet: i686-pc-linux-gnu, powerpc-apple-darwin8.5.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26774