Closed Bug 499801 Opened 15 years ago Closed 15 years ago

ICE compiling <iostream> and <iterator> with GCC 4.5

Categories

(Developer Infrastructure :: Source Code Analysis, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: pedro.lamarao, Assigned: taras.mozilla)

References

Details

Attachments

(3 files)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.1b4) Gecko/20090427 Fedora/3.5-0.20.beta4.fc11 Firefox/3.5b4
Build Identifier: 

GCC 4.5 with Dehydra triggers an ICE compiling <iostream> and <iterator>; the error message suggests both files trigger the same ICE.

Reproducible: Always

Steps to Reproduce:
1. Compile one of the pre-processed source files.

Actual Results:  
Internal compiler error.

Expected Results:  
Successful compilation.

Using an empty script for smoke testing.

[psilva@joana dehydra-gcc]$ g++-4.5 -v
Using built-in specs.
Target: i586-redhat-linux
Configured with: ../trunk/configure --prefix=/opt/gcc-4.5 --enable-bootstrap --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++ --with-ppl --with-cloog --with-tune=generic --with-arch=i586 --build=i586-redhat-linux
Thread model: posix
gcc version 4.5.0 20090622 (experimental) (GCC) 


[psilva@joana mozilla-central]$ hg log -l 1 js
changeset:   29445:f443daaa6923
user:        Vladimir Vukicevic <vladimir@pobox.com>
date:        Wed Jun 17 13:50:03 2009 -0700
summary:     b=403345; dtrace probes get wrong function name, filename, and line number info when native methods are involved; r=brendan


[psilva@joana dehydra-gcc]$ hg log -l 1
changeset:   464:4c0cbd1eb8f9
tag:         tip
user:        Taras Glek <tglek@mozilla.com>
date:        Mon Jun 22 14:14:30 2009 -0700
summary:     Bug 499742: Add some support for TYPEOF and don't crash on USING_DECL
g++-4.5 -O0 -g3 -Wall -c -fmessage-length=0 -save-temps -fplugin=/home/psilva/Projetos/Mozilla/dehydra-gcc/gcc_dehydra.so -fplugin-arg-gcc_dehydra-=/home/psilva/Projetos/Mozilla/sandbox/dehydra.js -osrc/iterator.o ../src/iterator.cpp
*** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.
Event			Plugins
PLUGIN_FINISH_TYPE	gcc_dehydra 
PLUGIN_FINISH_UNIT	gcc_dehydra 
PLUGIN_CXX_CP_PRE_GENERICIZE	gcc_dehydra 
PLUGIN_FINISH	gcc_dehydra 
PLUGIN_EVENT_LAST	gcc_dehydra 
In file included from /opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/bits/stl_iterator.h:64:0,
                 from /opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/iterator:64,
                 from ../src/iterator.cpp:1:
/opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/bits/cpp_type_traits.h: In instantiation of ‘std::__is_char<_CharT2>’:
/opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/bits/stream_iterator.h:209:1:   instantiated from here
/opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/bits/cpp_type_traits.h:346:5: internal compiler error: in finish_member_declaration, at cp/semantics.c:2379
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
g++-4.5 -O0 -g3 -Wall -c -fmessage-length=0 -save-temps -fplugin=/home/psilva/Projetos/Mozilla/dehydra-gcc/gcc_dehydra.so -fplugin-arg-gcc_dehydra-=/home/psilva/Projetos/Mozilla/sandbox/dehydra.js -osrc/iostream.o ../src/iostream.cpp
*** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.
Event			Plugins
PLUGIN_FINISH_TYPE	gcc_dehydra 
PLUGIN_FINISH_UNIT	gcc_dehydra 
PLUGIN_CXX_CP_PRE_GENERICIZE	gcc_dehydra 
PLUGIN_FINISH	gcc_dehydra 
PLUGIN_EVENT_LAST	gcc_dehydra 
In file included from /opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/bits/stl_algobase.h:63:0,
                 from /opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/bits/char_traits.h:41,
                 from /opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/ios:41,
                 from /opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/ostream:40,
                 from /opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/iostream:40,
                 from ../src/iostream.cpp:1:
/opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/bits/cpp_type_traits.h: In instantiation of ‘std::__is_char<_CharT2>’:
/opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/iostream:74:1:   instantiated from here
/opt/gcc-4.5/lib/gcc/i586-redhat-linux/4.5.0/../../../../include/c++/4.5.0/bits/cpp_type_traits.h:346:5: internal compiler error: in finish_member_declaration, at cp/semantics.c:2379
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
Attached patch workaroundSplinter Review
I *think* this is a case of dehydra needlessly triggering a gcc bug. This is a workaround. Let me know how it works out for you

Also for simple testcases like this it's sufficient to say that "including <iterator> causes ICE" don't need the .ii files in that case.
Blocks: 437502
Confirmed.
With this patch, I can compile and run the dumptypes.js script, from the "Using Dehydra" page, the following standard headers:

#include <algorithm>
#include <deque>
#include <exception>
#include <functional>
#include <iostream>
#include <iterator>
#include <list>
#include <map>
#include <memory>
#include <stdexcept>
#include <string>
#include <utility>
#include <vector>

either stand alone or all together in a translation unit.

I'll try to add these tests to the test suite.
pushed

http://hg.mozilla.org/users/tglek_mozilla.com/dehydra-gcc/rev/0d532b057c34
Status: UNCONFIRMED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Assignee: nobody → tglek
Product: Core → Firefox Build System
Product: Firefox Build System → Developer Infrastructure
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: