This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Overlapping EH regions
- To: dave at hiauly1 dot hia dot nrc dot ca (John David Anglin)
- Subject: Re: Overlapping EH regions
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Thu, 26 Oct 2000 17:00:42 -0400 (EDT)
- Cc: gcc-bugs at gcc dot gnu dot org
> Here are the NOTE_INSN_EH_REGION_END notes for the relevant function
> from iostream.ii.00.rtl:
With a little more detective work, I find that the problem occurs in the
bbro pass. Hear are the eh regions after sched2:
;; Function iostream::iostream(streambuf *, ostream *)
(note 130 1392 138 886 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1554 370 457 905 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1555 467 596 913 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1557 686 1556 913 NOTE_INSN_EH_REGION_END -1347440721)
(note 1556 1557 773 924 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 929 1408 1106 924 NOTE_INSN_EH_REGION_END -1347440721)
(note 1106 929 1283 905 NOTE_INSN_EH_REGION_END -1347440721)
(note 1283 1106 287 886 NOTE_INSN_EH_REGION_END -1347440721)
(note 374 1409 381 898 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1558 388 443 898 NOTE_INSN_EH_REGION_END -1347440721)
(note 690 1415 697 917 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1559 704 759 917 NOTE_INSN_EH_REGION_END -1347440721)
(note 939 1421 946 930 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1560 1003 1099 930 NOTE_INSN_EH_REGION_END -1347440721)
(note 1116 1433 1123 941 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1561 1180 1276 941 NOTE_INSN_EH_REGION_END -1347440721)
(note 1293 1445 1300 952 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1356 1450 1359 952 NOTE_INSN_EH_REGION_END -1347440721)
Here are the regions after bbro:
;; Function iostream::iostream(streambuf *, ostream *)
(note 130 1392 138 886 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1293 1445 1300 952 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1356 1450 1359 952 NOTE_INSN_EH_REGION_END -1347440721)
(note 374 1409 381 898 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 929 1408 1106 924 NOTE_INSN_EH_REGION_END -1347440721)
(note 1106 929 1283 905 NOTE_INSN_EH_REGION_END -1347440721)
(note 1283 1106 287 886 NOTE_INSN_EH_REGION_END -1347440721)
(note 1554 370 457 905 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1116 1433 1123 941 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1555 467 596 913 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 690 1415 697 917 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1557 686 1556 913 NOTE_INSN_EH_REGION_END -1347440721)
(note 1556 1557 773 924 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 939 1421 946 930 NOTE_INSN_EH_REGION_BEG -1347440721)
(note 1558 388 443 898 NOTE_INSN_EH_REGION_END -1347440721)
(note 1559 704 759 917 NOTE_INSN_EH_REGION_END -1347440721)
(note 1560 1003 1099 930 NOTE_INSN_EH_REGION_END -1347440721)
(note 1561 1180 1276 941 NOTE_INSN_EH_REGION_END -1347440721)
As can be seen, the begin/end order has gotten messed up for 924 and 905.
This causes the abort in jump2.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)