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  <ja...@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
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 
21284 (AG Nuernberg)

Reply via email to