diff mbox series

Fix PR87451 some more

Message ID 20190204095521.GF2135@tucnak
State New
Headers show
Series Fix PR87451 some more | expand

Commit Message

Jakub Jelinek Feb. 4, 2019, 9:55 a.m. UTC
On Fri, Feb 01, 2019 at 09:06:16AM +0100, Richard Biener wrote:
> Tested by Steve, committed.

This actually fixed it for aarch64 which uses // as ASM_COMMENT_START, but
not e.g. for arm which uses @ as ASM_COMMENT_START.
grep -h define[[:blank:]]ASM_COMMENT_START *.h config/*/* | sed 's/START[[:blank:]]*/START /' | sort -u
#define ASM_COMMENT_START " #"
#define ASM_COMMENT_START " ; "
#define ASM_COMMENT_START " ;"
#define ASM_COMMENT_START "!"
#define ASM_COMMENT_START "!#"
#define ASM_COMMENT_START "# "
#define ASM_COMMENT_START "#"
#define ASM_COMMENT_START "##"
#define ASM_COMMENT_START "/ "
#define ASM_COMMENT_START "/"
#define ASM_COMMENT_START "//"
#define ASM_COMMENT_START ";"
#define ASM_COMMENT_START ";#"
#define ASM_COMMENT_START "@"
#define ASM_COMMENT_START "|"
#define ASM_COMMENT_START "\t//"
shows many other comments starts, in particular @, ; and | was missing in
there, plus some ASM_COMMENT_START end with a space and that means not one,
but two spaces after the comment start char - dwarf2asm.c typically emits
fprintf (asm_out_file, "\t%s ", ASM_COMMENT_START); or similar.

This patch adds those @, ; and | characters to the comment start set and
allows more than one space after it.
Tested on x86_64-linux, ok for trunk?

2019-02-04  Jakub Jelinek  <jakub@redhat.com>

	* gcc.dg/debug/dwarf2/inline5.c: Handle also @, ; or | comment
	characters or extra spaces after the comment character.



	Jakub

Comments

Richard Biener Feb. 4, 2019, 9:56 a.m. UTC | #1
On Mon, 4 Feb 2019, Jakub Jelinek wrote:

> On Fri, Feb 01, 2019 at 09:06:16AM +0100, Richard Biener wrote:
> > Tested by Steve, committed.
> 
> This actually fixed it for aarch64 which uses // as ASM_COMMENT_START, but
> not e.g. for arm which uses @ as ASM_COMMENT_START.
> grep -h define[[:blank:]]ASM_COMMENT_START *.h config/*/* | sed 's/START[[:blank:]]*/START /' | sort -u
> #define ASM_COMMENT_START " #"
> #define ASM_COMMENT_START " ; "
> #define ASM_COMMENT_START " ;"
> #define ASM_COMMENT_START "!"
> #define ASM_COMMENT_START "!#"
> #define ASM_COMMENT_START "# "
> #define ASM_COMMENT_START "#"
> #define ASM_COMMENT_START "##"
> #define ASM_COMMENT_START "/ "
> #define ASM_COMMENT_START "/"
> #define ASM_COMMENT_START "//"
> #define ASM_COMMENT_START ";"
> #define ASM_COMMENT_START ";#"
> #define ASM_COMMENT_START "@"
> #define ASM_COMMENT_START "|"
> #define ASM_COMMENT_START "\t//"
> shows many other comments starts, in particular @, ; and | was missing in
> there, plus some ASM_COMMENT_START end with a space and that means not one,
> but two spaces after the comment start char - dwarf2asm.c typically emits
> fprintf (asm_out_file, "\t%s ", ASM_COMMENT_START); or similar.
> 
> This patch adds those @, ; and | characters to the comment start set and
> allows more than one space after it.
> Tested on x86_64-linux, ok for trunk?

OK.

Richard.

> 2019-02-04  Jakub Jelinek  <jakub@redhat.com>
> 
> 	* gcc.dg/debug/dwarf2/inline5.c: Handle also @, ; or | comment
> 	characters or extra spaces after the comment character.
> 
> --- gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c.jj	2019-02-01 23:52:23.619042785 +0100
> +++ gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c	2019-02-04 10:18:56.123814522 +0100
> @@ -4,13 +4,13 @@
>  /* { dg-options "-O -gdwarf -dA" } */
>  /* { dg-do compile } */
>  /* { dg-final { scan-assembler-times "DW_TAG_inlined_subroutine" 2 } } */
> -/* { dg-final { scan-assembler-times "DW_TAG_lexical_block\\)\[^#/!\]*\[#/!\]+ DW_AT_abstract_origin" 2 } } */
> -/* { dg-final { scan-assembler-times "DW_TAG_lexical_block\\)\[^#/!\]*\[#/!\]+ \\(DIE \\(0x\[0-9a-f\]*\\) DW_TAG_variable" 1 } } */
> +/* { dg-final { scan-assembler-times "DW_TAG_lexical_block\\)\[^#/!@;\\|\]*\[#/!@;\\|\]+ +DW_AT_abstract_origin" 2 } } */
> +/* { dg-final { scan-assembler-times "DW_TAG_lexical_block\\)\[^#/!@;\\|\]*\[#/!@;\\|\]+ +\\(DIE \\(0x\[0-9a-f\]*\\) DW_TAG_variable" 1 } } */
>  /* We do not know which is output first so look for both invalid abstract
>     origins on the lexical blocks (knowing that the abstract instance has
>     no attribute following the DW_TAG_lexical_block.  */
> -/* { dg-final { scan-assembler-not "\\(DIE \\(0x(\[0-9a-f\]*)\\) DW_TAG_lexical_block\\)\[^#/!\]*\[#/!\]+ \[^(\].*DW_TAG_lexical_block\\)\[^#/!x\]*x\\1\[^#/!\]*\[#/!\] DW_AT_abstract_origin" } } */
> -/* { dg-final { scan-assembler-not "DW_TAG_lexical_block\\)\[^#/!x\]*x(\[0-9a-f\]*)\[^#/!\]*\[#/!\]+ DW_AT_abstract_origin.*\\(DIE \\(0x\\1\\) DW_TAG_lexical_block\\)\[^#/!\]*\[#/!\]+ DW_AT" } } */
> +/* { dg-final { scan-assembler-not "\\(DIE \\(0x(\[0-9a-f\]*)\\) DW_TAG_lexical_block\\)\[^#/!@;\\|\]*\[#/!@;\\|\]+ +\[^(\].*DW_TAG_lexical_block\\)\[^#/!@;\\|x\]*x\\1\[^#/!@;\\|\]*\[#/!@;\\|\] +DW_AT_abstract_origin" } } */
> +/* { dg-final { scan-assembler-not "DW_TAG_lexical_block\\)\[^#/!@;\\|x\]*x(\[0-9a-f\]*)\[^#/!@;\\|\]*\[#/!@;\\|\]+ +DW_AT_abstract_origin.*\\(DIE \\(0x\\1\\) DW_TAG_lexical_block\\)\[^#/!@;\\|\]*\[#/!@;\\|\]+ +DW_AT" } } */
>  
>  int foo (int i)
>  {
> 
> 
> 	Jakub
> 
>
diff mbox series

Patch

--- gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c.jj	2019-02-01 23:52:23.619042785 +0100
+++ gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c	2019-02-04 10:18:56.123814522 +0100
@@ -4,13 +4,13 @@ 
 /* { dg-options "-O -gdwarf -dA" } */
 /* { dg-do compile } */
 /* { dg-final { scan-assembler-times "DW_TAG_inlined_subroutine" 2 } } */
-/* { dg-final { scan-assembler-times "DW_TAG_lexical_block\\)\[^#/!\]*\[#/!\]+ DW_AT_abstract_origin" 2 } } */
-/* { dg-final { scan-assembler-times "DW_TAG_lexical_block\\)\[^#/!\]*\[#/!\]+ \\(DIE \\(0x\[0-9a-f\]*\\) DW_TAG_variable" 1 } } */
+/* { dg-final { scan-assembler-times "DW_TAG_lexical_block\\)\[^#/!@;\\|\]*\[#/!@;\\|\]+ +DW_AT_abstract_origin" 2 } } */
+/* { dg-final { scan-assembler-times "DW_TAG_lexical_block\\)\[^#/!@;\\|\]*\[#/!@;\\|\]+ +\\(DIE \\(0x\[0-9a-f\]*\\) DW_TAG_variable" 1 } } */
 /* We do not know which is output first so look for both invalid abstract
    origins on the lexical blocks (knowing that the abstract instance has
    no attribute following the DW_TAG_lexical_block.  */
-/* { dg-final { scan-assembler-not "\\(DIE \\(0x(\[0-9a-f\]*)\\) DW_TAG_lexical_block\\)\[^#/!\]*\[#/!\]+ \[^(\].*DW_TAG_lexical_block\\)\[^#/!x\]*x\\1\[^#/!\]*\[#/!\] DW_AT_abstract_origin" } } */
-/* { dg-final { scan-assembler-not "DW_TAG_lexical_block\\)\[^#/!x\]*x(\[0-9a-f\]*)\[^#/!\]*\[#/!\]+ DW_AT_abstract_origin.*\\(DIE \\(0x\\1\\) DW_TAG_lexical_block\\)\[^#/!\]*\[#/!\]+ DW_AT" } } */
+/* { dg-final { scan-assembler-not "\\(DIE \\(0x(\[0-9a-f\]*)\\) DW_TAG_lexical_block\\)\[^#/!@;\\|\]*\[#/!@;\\|\]+ +\[^(\].*DW_TAG_lexical_block\\)\[^#/!@;\\|x\]*x\\1\[^#/!@;\\|\]*\[#/!@;\\|\] +DW_AT_abstract_origin" } } */
+/* { dg-final { scan-assembler-not "DW_TAG_lexical_block\\)\[^#/!@;\\|x\]*x(\[0-9a-f\]*)\[^#/!@;\\|\]*\[#/!@;\\|\]+ +DW_AT_abstract_origin.*\\(DIE \\(0x\\1\\) DW_TAG_lexical_block\\)\[^#/!@;\\|\]*\[#/!@;\\|\]+ +DW_AT" } } */
 
 int foo (int i)
 {