On Fri, May 17, 2019 at 12:07 PM Thomas De Schampheleire <patrickdeping...@gmail.com> wrote: > > > > On Fri, May 17, 2019, 11:57 Richard Biener <richard.guent...@gmail.com> wrote: >> >> On Fri, May 17, 2019 at 9:42 AM Thomas De Schampheleire >> <patrickdeping...@gmail.com> wrote: >> > >> > Hi Richard, >> > >> > El jue., 16 may. 2019 a las 14:41, Richard Biener >> > (<richard.guent...@gmail.com>) escribió: >> > > >> > > On Thu, May 16, 2019 at 11:20 AM Thomas De Schampheleire >> > > <patrickdeping...@gmail.com> wrote: >> > > > >> > > > From: Thomas De Schampheleire <thomas.de_schamphele...@nokia.com> >> > > > >> > > > In addition to making -feliminate-unused-debug-symbols work for the >> > > > DWARF >> > > > format (see [1]), make this option the default. This behavior was the >> > > > case >> > > > before, e.g. under gcc 4.9.x. >> > > > [1] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=269925 >> > > >> > > I have tested this patch and it causes a few FAILs, eventually hinting >> > > at implementation issues: >> > > >> > > === g++ tests === >> > > >> > > >> > > Running target unix >> > > FAIL: g++.dg/debug/enum-2.C -gstabs -O2 scan-assembler JTI_MAX >> > > FAIL: g++.dg/debug/enum-2.C -gstabs -O3 scan-assembler JTI_MAX >> > > FAIL: g++.dg/debug/enum-2.C -gstabs+ -O2 scan-assembler JTI_MAX >> > > FAIL: g++.dg/debug/enum-2.C -gstabs+ -O3 scan-assembler JTI_MAX >> > > FAIL: g++.dg/debug/enum-2.C -gstabs+3 -O2 scan-assembler JTI_MAX >> > > FAIL: g++.dg/debug/enum-2.C -gstabs+3 -O3 scan-assembler JTI_MAX >> > > FAIL: g++.dg/debug/enum-2.C -gstabs3 -O2 scan-assembler JTI_MAX >> > > FAIL: g++.dg/debug/enum-2.C -gstabs3 -O3 scan-assembler JTI_MAX >> > > >> > > maybe expected (stabs....) >> > > >> > > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler >> > > field_head_or >> > > dy_defn_fld_head.*DW_AT_name >> > > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler >> > > field_head_or >> > > dy_defn_ptr_head.*DW_AT_name >> > > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler >> > > field_head_or >> > > dy_defn_ref_head.*DW_AT_name >> > > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler >> > > field_head_or >> > > dy_defn_var_head_fld.*DW_AT_name >> > > ... more ... >> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++14 scan-assembler >> > > gstruct_ >> > > head_ordy_defn_var_head.*DW_AT_name >> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++14 scan-assembler >> > > gstruct_ >> > > head_tmpl_defn_var_head<int>.*DW_AT_name >> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++17 scan-assembler >> > > gstruct_ >> > > head_ordy_defn_var_head.*DW_AT_name >> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++17 scan-assembler >> > > gstruct_ >> > > head_tmpl_defn_var_head<int>.*DW_AT_name >> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++98 scan-assembler >> > > gstruct_ >> > > head_ordy_defn_var_head.*DW_AT_name >> > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++98 >> > > scan-assembler gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name >> > > FAIL: g++.dg/debug/dwarf2/fesd-none.C -std=gnu++14 scan-assembler >> > > gstruct_head_ordy_defn_var_head.*DW_AT_name >> > > FAIL: g++.dg/debug/dwarf2/fesd-none.C -std=gnu++14 scan-assembler >> > > gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name >> > > ... more fesd-* testcases FAIL ... >> > > FAIL: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++17 >> > > scan-assembler-times DW_AT_[^\\n\\r]*linkage_name 7 >> > > FAIL: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++17 >> > > scan-assembler-times DW_AT_specification 6 >> > > FAIL: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++17 >> > > scan-assembler-times 0x3[^\\n\\r]* DW_AT_inline 6 >> > > >> > > C variants of the fesd-* testcases also FAIL. Those testcases are >> > > huge, a quick look didn't >> > > reveal whether those are expected FAILs or not. >> > >> > >> > I tried reproducing these failures, using 'make bootstrap && make >> > check', but I see many many test failures: >> > >> > === gcc Summary === >> > >> > # of expected passes 144268 >> > # of unexpected failures 113 >> > # of unexpected successes 28 >> > # of expected failures 593 >> > # of unresolved testcases 2 >> > # of unsupported tests 2279 >> > >> > === g++ Summary === >> > >> > # of expected passes 134673 >> > # of unexpected failures 137 >> > # of expected failures 527 >> > # of unsupported tests 5944 >> > >> > /home/tdescham/repo/contrib/gcc/host-x86_64-pc-linux-gnu/gcc/xgcc >> > version 10.0.0 20190516 (experimental) (GCC) >> > >> > >> > Is it expected that 'master' (gcc 10) has such failures? Should I test >> > on another branch, if so which? >> >> The guality ones are probably the most "disturbing", but yes, there >> are quite a number of FAILs, my last result shows >> >> === gcc Summary === >> >> # of expected passes 144773 >> # of unexpected failures 102 >> # of unexpected successes 28 >> # of expected failures 602 >> # of unresolved testcases 2 >> # of unsupported tests 2297 >> >> === g++ Summary === >> >> # of expected passes 134956 >> # of unexpected failures 1 >> # of expected failures 527 >> # of unsupported tests 5946 >> >> so esp. the C suite has quite a lot (guality, that is...) > > > Do you have any idea how this simple change could cause all these problems? > > I could imagine that tests checking specifically for debug symbols could > unexpectedly succeed or fail, but not how other tests could fail.
Those FAILs are not caused by the patch but are present unpatched. Well, all apart from the ones I quoted which scan debug info. > >> >> > And is there a way to run only specific tests, e.g. the ones that you >> > pointed out? >> >> Yes, from inside gcc/ (in the build tree) do >> >> make check-g++ RUNTESTFLAGS="debug.exp=enum-2.C" >> >> to run a single testcase. Omit the '=enum-2.C' to run all tests >> where debug.exp resides. For the dwarf testcases use >> dwarf2.exp in place of debug.exp. For the C testcases >> use the check-gcc make target. > > > Thanks, I will try that. > > Best regards > Thomas