On Thu, May 29, 2014 at 3:17 PM, Yufeng Zhang <yufeng.zh...@arm.com> wrote: > Hi Honza, > > I can confirm that with your commit r211045 the arm-none-linux-gnueabi{hf} > builds are OK now. Thanks for the fix.
Testsuite regressions like FAIL: g++.dg/ipa/devirt-21.C -std=gnu++1y (test for excess errors) Excess errors: src/gcc/gcc/testsuite/g++.dg/ipa/devirt-21.C:39:1: internal compiler error: in gimple_get_virt_method_for_vtable, at gimple-fold.c:3273 0x9ed491 record_target_from_binfo src/gcc/gcc/ipa-devirt.c:868 0x9ed574 record_target_from_binfo gcc/gcc/ipa-devirt.c:885 0x9edb09 possible_polymorphic_call_targets_1 gcc/gcc/ipa-devirt.c:932 0x9eff59 possible_polymorphic_call_targets(tree_node*, long, ipa_polymorphic_call_context, bool*, void**, int*) gcc/gcc/ipa-devirt.c:1744 0xa19724 possible_polymorphic_call_targets src/gcc/gcc/ipa-utils.h:121 0xa19724 walk_polymorphic_call_targets src/gcc/gcc/ipa.c:151 0xa19724 symtab_remove_unreachable_nodes(bool, _IO_FILE*) src/gcc/gcc/ipa.c:384 0xadc4d3 execute_todo src/gcc/gcc/passes.c:1843 Number of unexpected g++ failures now up to 127 on arm-linux-gnueabi(hf). regards Ramana > > Yufeng > > > On 05/28/14 22:56, Jan Hubicka wrote: >>> >>> Any update? >>> >>> I've managed to generate a simple test case from >>> libstdc++-v3/src/c++98/strstream.cc which reproduces the issue on >>> ARM that Ramana has reported previously: >>> >>> >>> template<class _CharT> struct char_traits; >>> >>> template<typename _CharT, typename _Traits> >>> class basic_ios >>> { >>> }; >>> >>> template<typename _CharT, typename _Traits = char_traits<_CharT> > >>> class basic_istream : virtual public basic_ios<_CharT, _Traits> >>> { >>> protected: >>> int _M_gcount; >>> virtual ~basic_istream() >>> { } >>> }; >>> >>> class istrstream : public basic_istream<char> >>> { >>> virtual ~istrstream(); >>> }; >>> >>> istrstream::~istrstream() >>> { >>> } >>> >>> ------------------ CUT ------------------ >>> >>> With an arm-none-linux-gnueabi gcc configured as: >>> >>> ./gcc/configure --target=arm-none-linux-gnueabi >>> --enable-gnu-indirect-function --enable-shared --with-arch=armv7-a >>> --with-fpu=vfpv3-d16 --with-float=softfp --with-arch=armv7-a >>> (irrelevant parts omitted) >>> >>> With the following command line options: >>> >>> -fdata-sections -O2 -fPIC -S ./test.cpp >>> >>> We'll see >>> >>> ./test.cpp:17:7: error: istrstream::_ZTV10istrstream.localalias.0 >>> causes a section type conflict with istrstream::_ZTV10istrstream >>> class istrstream : public basic_istream<char> >>> ^ >>> ./test.cpp:17:7: note: 'istrstream::_ZTV10istrstream' was declared here >> >> >> This seems to be same cause as on AIX - we do section for decl rather than >> original. The following patch seems to fix it. Does it allows bootstrap >> for you? (it doesn't for AIX. but that seems bug in output machinery) >> >> Index: varasm.c >> =================================================================== >> --- varasm.c (revision 210914) >> +++ varasm.c (working copy) >> @@ -1083,6 +1083,9 @@ >> { >> addr_space_t as = ADDR_SPACE_GENERIC; >> int reloc; >> + symtab_node *snode = symtab_get_node (decl); >> + if (snode) >> + decl = symtab_alias_ultimate_target (snode)->decl; >> >> if (TREE_TYPE (decl) != error_mark_node) >> as = TYPE_ADDR_SPACE (TREE_TYPE (decl)); >>> >>> >>> >>> Yufeng >> >> > >