This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/11414] New: [Regression 3.4] Segementation fault compiling csets.adb


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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

           Summary: [Regression 3.4] Segementation fault compiling csets.adb
           Product: gcc
           Version: 3.4
            Status: UNCONFIRMED
          Severity: critical
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: danglin at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: hppa-unknown-linux-gnu
  GCC host triplet: hppa-unknown-linux-gnu
GCC target triplet: hppa-unknown-linux-gnu

stage2/xgcc -Bstage2/ -B/home/dave/opt/gnu/hppa-linux/bin/ -c -g -O2     
-gnatpg -gnata -I- -I. -Iada -I../../gcc/gcc/ada ../../gcc/gcc/ada/csets.adb -o
ada/csets.o
+===========================GNAT BUG DETECTED==============================+
| 3.4 20030521 (experimental) (hppa-unknown-linux-gnu) Segmentation fault  |
| Error detected at ../../gcc/gcc/ada/csets.adb:1092:17                    |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.            |
| Include the entire contents of this bug box in the report.               |
| Include the exact gcc or gnatmake command that you entered.              |
| Also include sources listed below in gnatchop format                     |
| (concatenated together with no headers between files).                   |
+==========================================================================+

See:
http://gcc.gnu.org/ml/gcc-patches/2003-05/msg01841.html

The problem has been tracked to the miscompilation of the file namet.adb
in stage2.  The error occurs because the label LABEL_NUSES count for
`label_ref 80' in the following instruction is corrupted either before
or during label replacement:

(jump_insn 66 65 70 4 0x40978750 (set (pc)
        (if_then_else (ne (reg:SI 105)
                (reg:SI 131))
            (label_ref 80)
            (pc))) 25 {*pa.md:1674} (nil)
    (expr_list:REG_EQUAL (if_then_else (ne (reg:SI 105)
                (const_int 112 [0x70]))
            (label_ref 80)
            (pc))
    (nil)))

The presence of the REG_EQUAL note causes the count for code_label 80
to be decrimented twice in a label replacement operation in load_mems.
Currently, LABEL_REFs in notes do not contribute to the LABEL_NUSES count
when notes are added and removed.

A possible fix has been posted here:
http://gcc.gnu.org/ml/gcc-patches/2003-07/msg00247.html


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]