On Linux/ia32, revision 147436 failed to compile 483.xalancbmk in SPEC
CPU 2006:

gnu-33:pts/4[38]> /export/gnu/import/rrs/147454/usr/bin/gcc -m32 -c -o
DocumentImpl.o -DSPEC_CPU -DNDEBUG  -DAPP_NO_THREADS -DXALAN_INMEM_MSG_LOADER
-I. -Ixercesc -Ixercesc/dom -Ixercesc/dom/impl -Ixercesc/sax
-Ixercesc/util/MsgLoaders/InMemory -Ixercesc/util/Transcoders/Iconv
-Ixalanc/include -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C
-DPROJ_SAX2 -DPROJ_DOM -DPROJ_VALIDATORS -DXML_USE_NATIVE_TRANSCODER
-DXML_USE_INMEM_MESSAGELOADER  -O3 -msse2 -mfpmath=sse -ffast-math
-funroll-loops     -DSPEC_CPU_LINUX     DocumentImpl.cpp 
In file included from ./xercesc/util/RefHashTableOf.hpp:373,
                 from xercesc/dom/DocumentImpl.hpp:78,
                 from DocumentImpl.cpp:65:
./xercesc/util/RefHashTableOf.c: In member function ‘void
xercesc_2_5::RefHashTableOf<TVal>::put(void*, TVal*) [with TVal = void]’:
DocumentImpl.cpp:833:   instantiated from here
./xercesc/util/RefHashTableOf.c:460: warning: deleting ‘void*’ is undefined
./xercesc/util/RefHashTableOf.c: In member function ‘void
xercesc_2_5::RefHashTableOf<TVal>::removeAll() [with TVal = void]’:
./xercesc/util/RefHashTableOf.c:226:   instantiated from
‘xercesc_2_5::RefHashTableOf<TVal>::~RefHashTableOf() [with TVal = void]’
DocumentImpl.cpp:186:   instantiated from here
./xercesc/util/RefHashTableOf.c:281: warning: deleting ‘void*’ is undefined
./xercesc/util/RefHashTableOf.c: In member function ‘void
xercesc_2_5::RefHashTableOf<TVal>::removeBucketElem(const void*, unsigned int&)
[with TVal = void]’:
./xercesc/util/RefHashTableOf.c:260:   instantiated from ‘void
xercesc_2_5::RefHashTableOf<TVal>::removeKey(const void*) [with TVal = void]’
DocumentImpl.cpp:831:   instantiated from here
./xercesc/util/RefHashTableOf.c:596: warning: deleting ‘void*’ is undefined
DocumentImpl.cpp: In static member function ‘static
xercesc_2_5::TreeWalkerImpl*
xercesc_2_5::DocumentImpl::createTreeWalker(xercesc_2_5::DOM_Node, long
unsigned int, xercesc_2_5::DOM_NodeFilter*, bool,
xercesc_2_5::MemoryManager*)’:
DocumentImpl.cpp:389: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
gnu-33:pts/4[39]> 

It doesn't happen with preprocessed file. Valgrind reports:

In file included from ./xercesc/util/RefHashTableOf.hpp:373,
                 from xercesc/dom/DocumentImpl.hpp:78,
                 from DocumentImpl.cpp:65:
./xercesc/util/RefHashTableOf.c: In member function ‘void
xercesc_2_5::RefHashTableOf<TVal>::put(void*, TVal*) [with TVal = void]’:
DocumentImpl.cpp:833:   instantiated from here
./xercesc/util/RefHashTableOf.c:460: warning: deleting ‘void*’ is undefined
./xercesc/util/RefHashTableOf.c: In member function ‘void
xercesc_2_5::RefHashTableOf<TVal>::removeAll() [with TVal = void]’:
./xercesc/util/RefHashTableOf.c:226:   instantiated from
‘xercesc_2_5::RefHashTableOf<TVal>::~RefHashTableOf() [with TVal = void]’
DocumentImpl.cpp:186:   instantiated from here
./xercesc/util/RefHashTableOf.c:281: warning: deleting ‘void*’ is undefined
./xercesc/util/RefHashTableOf.c: In member function ‘void
xercesc_2_5::RefHashTableOf<TVal>::removeBucketElem(const void*, unsigned int&)
[with TVal = void]’:
./xercesc/util/RefHashTableOf.c:260:   instantiated from ‘void
xercesc_2_5::RefHashTableOf<TVal>::removeKey(const void*) [with TVal = void]’
DocumentImpl.cpp:831:   instantiated from here
./xercesc/util/RefHashTableOf.c:596: warning: deleting ‘void*’ is undefined
==23451== Invalid read of size 2
==23451==    at 0xD94DF4: simple_cst_equal (tree.c:5079)
==23451==    by 0xE3A33A: check_stmt (ipa-pure-const.c:445)
==23451==    by 0xE3A737: analyze_function (ipa-pure-const.c:512)
==23451==    by 0xE3BD22: local_pure_const (ipa-pure-const.c:925)
==23451==    by 0xA93F9E: execute_one_pass (passes.c:1283)
==23451==    by 0xA941E5: execute_pass_list (passes.c:1332)
==23451==    by 0xA94203: execute_pass_list (passes.c:1333)
==23451==    by 0xC0743C: tree_rest_of_compilation (tree-optimize.c:394)
==23451==    by 0xE2AFC3: cgraph_expand_function (cgraphunit.c:1095)
==23451==    by 0xE2B173: cgraph_expand_all_functions (cgraphunit.c:1154)
==23451==    by 0xE2B71D: cgraph_optimize (cgraphunit.c:1377)
==23451==    by 0x5C430D: cp_write_global_declarations (decl2.c:3635)
==23451==  Address 0xb5fc300 is not stack'd, malloc'd or (recently) free'd
DocumentImpl.cpp: In static member function ‘static
xercesc_2_5::TreeWalkerImpl*
xercesc_2_5::DocumentImpl::createTreeWalker(xercesc_2_5::DOM_Node, long
unsigned int, xercesc_2_5::DOM_NodeFilter*, bool,
xercesc_2_5::MemoryManager*)’:
DocumentImpl.cpp:389: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.


-- 
           Summary: [4.5 Regression]  Memory leak in revision 147436
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl dot tools at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40147

Reply via email to