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]

Re: Overlapping EH regions


> 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)

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