Hi! When -gcolumn-info was added back in February, it was too late in the release cycle to make it the default, but I think now is the good time to do it for GCC8.
Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2017-10-23 Jakub Jelinek <ja...@redhat.com> * common.opt (gcolumn-info): Enable by default. * doc/invoke.texi (gcolumn-info): Document new default. * lib/scanasm.exp (dg-function-on-line): Accept optional column info. * gcc.dg/debug/dwarf2/pr53948.c: Likewise. * g++.dg/debug/dwarf2/pr77363.C: Likewise. * gcc.dg/debug/dwarf2/asm-line1.c: Add -gno-column-info to dg-options. * gcc.dg/debug/dwarf2/discriminator.c: Likewise. * g++.dg/debug/dwarf2/typedef6.C: Likewise. --- gcc/common.opt.jj 2017-10-20 16:02:58.000000000 +0200 +++ gcc/common.opt 2017-10-20 16:54:04.522033739 +0200 @@ -2873,7 +2873,7 @@ Common Driver JoinedOrMissing Negative(g Generate debug information in COFF format. gcolumn-info -Common Driver Var(debug_column_info,1) Init(0) +Common Driver Var(debug_column_info,1) Init(1) Record DW_AT_decl_column and DW_AT_call_column in DWARF. gdwarf --- gcc/doc/invoke.texi.jj 2017-10-20 16:22:07.000000000 +0200 +++ gcc/doc/invoke.texi 2017-10-20 16:54:32.940684888 +0200 @@ -7064,7 +7064,7 @@ Allow using extensions of later DWARF st @opindex gno-column-info Emit location column information into DWARF debugging information, rather than just file and line. -This option is disabled by default. +This option is enabled by default. @item -gz@r{[}=@var{type}@r{]} @opindex gz --- gcc/testsuite/lib/scanasm.exp.jj 2017-10-17 17:58:16.000000000 +0200 +++ gcc/testsuite/lib/scanasm.exp 2017-10-21 11:52:49.955774302 +0200 @@ -484,16 +484,16 @@ proc dg-function-on-line { args } { } if { [istarget hppa*-*-*] } { - set pattern [format {\t;[^:]+:%d\n(\t[^\t]+\n)+%s:\n\t.PROC} \ + set pattern [format {\t;[^:]+:%d(:[0-9]+)?\n(\t[^\t]+\n)+%s:\n\t.PROC} \ $line $symbol] } elseif { [istarget mips*-*-*] } { - set pattern [format {\t\.loc [0-9]+ %d 0( [^\n]*)?\n(\t.cfi_startproc[^\t]*\n)*\t\.set\t(no)?mips16\n\t(\.set\t(no)?micromips\n\t)?\.ent\t%s\n\t\.type\t%s, @function\n%s:\n} \ + set pattern [format {\t\.loc [0-9]+ %d [0-9]+( [^\n]*)?\n(\t.cfi_startproc[^\t]*\n)*\t\.set\t(no)?mips16\n\t(\.set\t(no)?micromips\n\t)?\.ent\t%s\n\t\.type\t%s, @function\n%s:\n} \ $line $symbol $symbol $symbol] } elseif { [istarget microblaze*-*-*] } { - set pattern [format {:%d\n\$.*:\n\t\.ent\t%s\n\t\.type\t%s, @function\n%s:\n} \ + set pattern [format {:%d(:[0-9]+)?\n\$.*:\n\t\.ent\t%s\n\t\.type\t%s, @function\n%s:\n} \ $line $symbol $symbol $symbol] } else { - set pattern [format {%s:[^\t]*(\t.(fnstart|frame|mask|file)[^\t]*)*\t[^:]+:%d\n} \ + set pattern [format {%s:[^\t]*(\t.(fnstart|frame|mask|file)[^\t]*)*\t[^:]+:%d(:[0-9]+)?\n} \ $symbol $line] } --- gcc/testsuite/gcc.dg/debug/dwarf2/asm-line1.c.jj 2014-09-25 15:02:24.000000000 +0200 +++ gcc/testsuite/gcc.dg/debug/dwarf2/asm-line1.c 2017-10-21 11:46:24.655510428 +0200 @@ -1,6 +1,6 @@ /* PR debug/50983 */ /* { dg-do compile { target *-*-gnu* } } */ -/* { dg-options "-O0 -gdwarf" } */ +/* { dg-options "-O0 -gdwarf -gno-column-info" } */ /* { dg-final { scan-assembler "is_stmt 1" } } */ int i; --- gcc/testsuite/gcc.dg/debug/dwarf2/discriminator.c.jj 2014-09-25 15:02:24.000000000 +0200 +++ gcc/testsuite/gcc.dg/debug/dwarf2/discriminator.c 2017-10-21 11:47:22.029804496 +0200 @@ -1,7 +1,7 @@ /* HAVE_AS_DWARF2_DEBUG_LINE macro needs to be defined to pass the unittest. However, dg cannot access it, so we restrict to GNU targets. */ /* { dg-do compile { target *-*-gnu* } } */ -/* { dg-options "-O0 -gdwarf" } */ +/* { dg-options "-O0 -gdwarf -gno-column-info" } */ /* { dg-final { scan-assembler "loc \[0-9] 11 \[0-9]( is_stmt \[0-9])?\n" } } */ /* { dg-final { scan-assembler "loc \[0-9] 11 \[0-9]( is_stmt \[0-9])? discriminator 2\n" } } */ /* { dg-final { scan-assembler "loc \[0-9] 11 \[0-9]( is_stmt \[0-9])? discriminator 1\n" } } */ --- gcc/testsuite/gcc.dg/debug/dwarf2/pr53948.c.jj 2014-09-25 15:02:24.000000000 +0200 +++ gcc/testsuite/gcc.dg/debug/dwarf2/pr53948.c 2017-10-21 11:48:14.555158962 +0200 @@ -1,7 +1,7 @@ /* Test that we have line information for the line with local variable initializations. */ /* { dg-options "-O0 -gdwarf -dA" } */ -/* { dg-final { scan-assembler ".loc 1 8 0|\[#/!\]\[ \t\]+line 8" } } */ +/* { dg-final { scan-assembler ".loc 1 8 \[0-9\]|\[#/!\]\[ \t\]+line 8" } } */ int f (register int a, register int b) { --- gcc/testsuite/g++.dg/debug/dwarf2/typedef6.C.jj 2015-07-09 19:47:10.000000000 +0200 +++ gcc/testsuite/g++.dg/debug/dwarf2/typedef6.C 2017-10-21 11:56:44.744888754 +0200 @@ -1,5 +1,5 @@ // Origin PR debug/ -// { dg-options "-gdwarf-2 -dA" } +// { dg-options "-gdwarf-2 -dA -gno-column-info" } class C { public: --- gcc/testsuite/g++.dg/debug/dwarf2/pr77363.C.jj 2016-08-31 18:28:39.000000000 +0200 +++ gcc/testsuite/g++.dg/debug/dwarf2/pr77363.C 2017-10-21 11:58:50.921338051 +0200 @@ -1,9 +1,9 @@ // PR debug/77363 // { dg-options "-gdwarf-2 -dA -fno-merge-debug-strings" } -// { dg-final { scan-assembler "DIE \\(\[^\n\r\]*\\) DW_TAG_typedef\[^\n\r\]*\[\n\r]*\[^\n\r\]*type2\[^\n\r\]* DW_AT_name\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_file\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_line\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_type" } } -// { dg-final { scan-assembler "DIE \\(\[^\n\r\]*\\) DW_TAG_typedef\[^\n\r\]*\[\n\r]*\[^\n\r\]*type3\[^\n\r\]* DW_AT_name\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_file\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_line\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_type" } } -// { dg-final { scan-assembler "DIE \\(\[^\n\r\]*\\) DW_TAG_typedef\[^\n\r\]*\[\n\r]*\[^\n\r\]*type4\[^\n\r\]* DW_AT_name\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_file\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_line\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_type" } } -// { dg-final { scan-assembler "DIE \\(\[^\n\r\]*\\) DW_TAG_typedef\[^\n\r\]*\[\n\r]*\[^\n\r\]*type5\[^\n\r\]* DW_AT_name\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_file\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_line\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_type" } } +// { dg-final { scan-assembler "DIE \\(\[^\n\r\]*\\) DW_TAG_typedef\[^\n\r\]*\[\n\r]*\[^\n\r\]*type2\[^\n\r\]* DW_AT_name\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_file\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_line\[^\n\r\]*\[\n\r]*(\[^\n\r\]* DW_AT_decl_column\[^\n\r\]*\[\n\r]*)?\[^\n\r\]* DW_AT_type" } } +// { dg-final { scan-assembler "DIE \\(\[^\n\r\]*\\) DW_TAG_typedef\[^\n\r\]*\[\n\r]*\[^\n\r\]*type3\[^\n\r\]* DW_AT_name\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_file\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_line\[^\n\r\]*\[\n\r]*(\[^\n\r\]* DW_AT_decl_column\[^\n\r\]*\[\n\r]*)?\[^\n\r\]* DW_AT_type" } } +// { dg-final { scan-assembler "DIE \\(\[^\n\r\]*\\) DW_TAG_typedef\[^\n\r\]*\[\n\r]*\[^\n\r\]*type4\[^\n\r\]* DW_AT_name\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_file\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_line\[^\n\r\]*\[\n\r]*(\[^\n\r\]* DW_AT_decl_column\[^\n\r\]*\[\n\r]*)?\[^\n\r\]* DW_AT_type" } } +// { dg-final { scan-assembler "DIE \\(\[^\n\r\]*\\) DW_TAG_typedef\[^\n\r\]*\[\n\r]*\[^\n\r\]*type5\[^\n\r\]* DW_AT_name\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_file\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_line\[^\n\r\]*\[\n\r]*(\[^\n\r\]* DW_AT_decl_column\[^\n\r\]*\[\n\r]*)?\[^\n\r\]* DW_AT_type" } } typedef unsigned short type1; typedef unsigned char type2; Jakub