http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57451

            Bug ID: 57451
           Summary: Incorrect debug ranges emitted for
                    -freorder-blocks-and-partition -g
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tejohnson at google dot com

Created attachment 30214
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30214&action=edit
pr49115.C

While fixing problems with -freorder-blocks-and-partition, I found that the
debug ranges being emitted for split functions with -g are incorrect and
leading to assembler errors. I've attached a simple reproducer
(gcc/testsuite/g++.dg/torture/pr49115.C). To reproduce:

$ g++ pr49115.C -O2 -o pr49115 -fprofile-generate
$ pr49115
$ g++ pr49115.C -O2 -o pr49115 -fprofile-use -g -freorder-blocks-and-partition

/tmp/ccStx78Y.s: Assembler messages:
/tmp/ccStx78Y.s:325: Error: can't resolve `.text.unlikely' {.text.unlikely
section} - `.LBB14' {.text.startup section}

The problem is hidden if the last compile step is changed to drop either -g or
-freorder-blocks-and-partition, or by adding -gdwarf-2 (which doesn't trigger
debug_range support).

Reply via email to