This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/11414] New: [Regression 3.4] Segementation fault compiling csets.adb
- From: "danglin at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 2 Jul 2003 21:21:23 -0000
- Subject: [Bug middle-end/11414] New: [Regression 3.4] Segementation fault compiling csets.adb
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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