https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98325

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:0b34dbc0a24864b1674bff7a92fa3cf0f1cbcea1

commit r11-7109-g0b34dbc0a24864b1674bff7a92fa3cf0f1cbcea1
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Feb 4 23:42:09 2021 +0100

    testsuite: Fix up pr25376.c on powerpc64-linux and array-quals-1.c on
powerpc-linux [PR98325]

    The following patch fixes the pr25376.c testcase on powerpc64-linux
    and array-quals-1.c on powerpc-linux.
    Previously it failed like:
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?a1\$
(found a1) has section ^\\\\.(const|rodata|srodata)|\\\\[RO\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?b1\$
(found b1) has section ^\\\\.(const|rodata|srodata)|\\\\[RO\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?c1\$
(found c1) has section ^\\\\.(const|rodata|srodata)|\\\\[RO\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?d1\$
(found d1) has section ^\\\\.(const|rodata|srodata)|\\\\[RO\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?p\$
(found p) has section ^\\\\.(const|rodata|srodata)|\\\\[RW\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?p1\$
(found p1) has section ^\\\\.(const|rodata|srodata)|\\\\[RW\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?q\$
(found q) has section ^\\\\.(const|rodata|srodata)|\\\\[RW\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?q1\$
(found q1) has section ^\\\\.(const|rodata|srodata)|\\\\[RW\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?r\$
(found r) has section ^\\\\.(const|rodata|srodata)|\\\\[RW\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?r1\$
(found r1) has section ^\\\\.(const|rodata|srodata)|\\\\[RW\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?s\$
(found s) has section ^\\\\.(const|rodata|srodata)|\\\\[RW\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?s1\$
(found s1) has section ^\\\\.(const|rodata|srodata)|\\\\[RW\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?t\$
(found t) has section ^\\\\.(const|rodata|srodata)|\\\\[RW\\\\] (found .sdata)
    FAIL: gcc.dg/array-quals-1.c scan-assembler-symbol-section symbol ^_?t1\$
(found t1) has section ^\\\\.(const|rodata|srodata)|\\\\[RW\\\\] (found .sdata)
    FAIL: gcc.dg/pr25376.c scan-assembler-symbol-section symbol simple\$ (found
.L.simple) has section
^\\\\.?my_named_section|simple\\\\[DS\\\\]|^\\\\"\\\\.opd\\\\" (found .opd)
    FAIL: gcc.dg/pr25376.c scan-assembler-symbol-section symbol simple\$ (found
simple) has section
^\\\\.?my_named_section|simple\\\\[DS\\\\]|^\\\\"\\\\.opd\\\\" (found .opd)

    The problem with pr25376.c testcase are the ELFv1 function descriptors,
            .section        my_named_section,"ax",@progbits
            .align 2
            .globl simple
            .section        ".opd","aw"
            .align 3
    simple:
            .quad   .L.simple,.TOC.@tocbase,0
            .previous
            .type   simple, @function
    .L.simple:

    so the simple symbol is found in the .opd section rather than in the
    my_named_section the test attempts to verify for that symbol.
    This patch deals it with two changes, the last two hunks in scanasm.exp
    teach it about the behavior of .previous directive and the first hunk
    for powerpc if symbol is in .opd section will try section in which the
    .L.symbol label is instead.

    The array-quals-1.c test fails because on powerpc-linux the symbols
    are emitted into .sdata section rather than one of the expected ones.

    2021-02-04  Jakub Jelinek  <ja...@redhat.com>

            PR testsuite/98325
            * lib/scanasm.exp (dg-scan-symbol-section): For powerpc*-*-*
targets if
            $section is .opd, look at .L.$symbol_name's section.
            (parse_section_section_of_symbols): Handle .previous directive.
            * gcc.dg/array-quals-1.c: Allow .sdata section.

Reply via email to