The PCH related failures are caused by this patch. The patch I posted earlier http://gcc.gnu.org/ml/gcc-patches/2012-09/msg01491.html solved another problem, but not this one.
The issue here is: when reading PCH data, the line_table is also read from PCH files. But the location_adhoc_data_map is not managed by GC, thus is not read in from PCH file (only a pointer is read in). To solve this problem, we'll need to move location_adhoc_data_map into GC. I'll have another patch to solve this problem. However, I still do not quite understand how muliple line_tables can co-exist. E.g. foo() is from a.H, bar() is from b.H. When bar() is inlined into foo(), both line_tables (a.H and b.H) should be used. But I didn't find in GCC how this is handled... Dehao On Fri, Sep 21, 2012 at 4:17 AM, Dehao Chen <de...@google.com> wrote: > Sorry for breaking these tests. > > This problem is very hard to reproduce. However, I had a patch to fix > another compile-time problem which may be related to this one. > http://gcc.gnu.org/ml/gcc-patches/2012-09/msg01491.html > > After applying the patch, the PCH related bugs are not showing any > more on my machines. > > Dehao > > On Thu, Sep 20, 2012 at 10:59 PM, Dehao Chen <de...@google.com> wrote: >> Hi, Paolo, >> >> I'll look into the ICE problems now. >> >> Thanks, >> Dehao >> >> On Thu, Sep 20, 2012 at 9:04 PM, Paolo Carlini <paolo.carl...@oracle.com> >> wrote: >>> Hi, >>> >>> >>> On 09/19/2012 09:59 PM, Dehao Chen wrote: >>>> >>>> This patch was commited as r191494. >>> >>> I'm afraid I can't help *much* with the debugging, but on my x86_64-linux >>> machine and a very straightforward configuration (--enable-languages=c++ >>> --disable-multilib) after r191494 I'm seeing the following libstdc++ >>> regressions. >>> >>> FAIL: 17_intro/headers/c++1998/all.cc (test for excess errors) >>> FAIL: 17_intro/headers/c++1998/all_c++200x_compatibility.cc (test for excess >>> errors) >>> FAIL: 17_intro/headers/c++1998/all_pedantic_errors.cc (test for excess >>> errors) >>> FAIL: 17_intro/headers/c++1998/stdc++.cc (test for excess errors) >>> FAIL: 17_intro/headers/c++1998/stdc++_multiple_inclusion.cc (test for excess >>> errors) >>> FAIL: 17_intro/headers/c++200x/stdc++.cc (test for excess errors) >>> FAIL: 17_intro/headers/c++200x/stdc++_multiple_inclusion.cc (test for excess >>> errors) >>> >>> are all ICEs like the below. Apparently PCHs are required, I can't reproduce >>> outside the testsuite, without the library PCHs. >>> >>> Does it make any sense to you? Please let me know if I can somehow help. >>> >>> Thanks, >>> Paolo. >>> >>> /////////////////// >>> >>> In file included from >>> /home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_ios.h:39:0, >>> from >>> /home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/ios:45, >>> from >>> /home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/istream:40, >>> from >>> /home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/sstream:39, >>> from >>> /home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/complex:47, >>> from >>> /home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/stdc++.h:67, >>> from >>> /home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/stdtr1c++.h:29, >>> from >>> /scratch/Gcc/svn-dirs/trunk/libstdc++-v3/include/precompiled/extc++.h:30: >>> /home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h: >>> In member function 'virtual std::ctype<char>::char_type >>> std::ctype<char>::do_widen(char) const': >>> /home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h:1077:7: >>> internal compiler error: Segmentation fault >>> do_widen(char __c) const >>> ^ >>> Please submit a full bug report, >>> with preprocessed source if appropriate. >>> See <http://gcc.gnu.org/bugs.html> for instructions. >>> >>>