This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
invalid jumps into binding contour???
- To: gcc-bugs at gcc dot gnu dot org
- Subject: invalid jumps into binding contour???
- From: Denys Duchier <Denys dot Duchier at ps dot uni-sb dot de>
- Date: 24 May 2001 17:00:50 +0200
Can someone sched some light on this error message:
c++ -DHAVE_CONFIG_H -I/home/denys/Mozart/mozart/platform/emulator/libfd -I. -I/home/denys/Mozart/mozart/platform/emulator/libfd/.. -I.. -fno-exceptions -O3 -pipe -fstrict-aliasing -fomit-frame-pointer -fpic -c -o taskintervals.lo.o /home/denys/Mozart/mozart/platform/emulator/libfd/taskintervals.cc && mv taskintervals.lo.o taskintervals.lo
/home/denys/Mozart/mozart/platform/emulator/sort.hh: In function `OZ_Return
sched_cumulativeTI(OZ_Term**)':
/home/denys/Mozart/mozart/platform/emulator/sort.hh:120: jump to `nopush'
invalidly jumps into binding contour
/home/denys/Mozart/mozart/platform/emulator/sort.hh:122: jump to `nopush'
invalidly jumps into binding contour
The corresponding code is:
template <class T,Bool(*lt)(const T&,const T&)>
inline
void quicksort(T * x, int l, int r) {
QuickSortStack s;
s.push(l,r);
while (!s.isEmpty()) {
s.pop(l,r);
nopush:
if (r-l <= QuickSortCutoff)
continue;
sort_swap(x[(l+r)/2],x[r-1]);
sort_exchange<T,lt>(x[l],x[r-1]);
sort_exchange<T,lt>(x[l],x[r]);
sort_exchange<T,lt>(x[r-1],x[r]);
int i = partition<T,lt>(x, l+1, r-1);
if (i-l > r-i) {
s.push(l,i-1); l=i+1; goto nopush;
} else {
s.push(i+1,r); r=i-1; goto nopush;
}
}
}
Thanks in advance,
--
Dr. Denys Duchier Denys.Duchier@ps.uni-sb.de
Forschungsbereich Programmiersysteme (Programming Systems Lab)
Universitaet des Saarlandes, Geb. 45 http://www.ps.uni-sb.de/~duchier
Postfach 15 11 50 Phone: +49 681 302 5618
66041 Saarbruecken, Germany Fax: +49 681 302 5615