I am unclear if this is a compiler issue or a coding problem. The error
message is not informative....
sdcc: SDCCopt.c:707: convilong: Assertion `0' failed.
Caught signal 6: SIGABRT
make: *** [obj_brione/timetable.o] Error 1
Here is the version of sdcc I'm using, although this problem has shown
up in multiple releases...
sdcc -v
SDCC : mcs51 2.9.7 #5718 (Feb 26 2010) (UNIX)
The relevant code is:
struct timetable {
struct timetable_timestamp *timestamps;
const int size;
unsigned int * const ptr;
};
rtimer_clock_t
timetable_timediff(struct timetable *t,
const char *id1, const char *id2)
{
int i;
int t1, t2;
t1 = t2 = t->size;
for(i = *t->ptr - 1; i >= 0; --i) {
if(t->timestamps[i].id == id1) {
t1 = i;
break;
}
}
for(i = i - 1; i >= 0; --i) {
if(t->timestamps[i].id == id2) {
t2 = i;
break;
}
}
if(t1 != t->size && t2 != t->size) {
return t->timestamps[t1].time - t->timestamps[t2].time;
}
return 0;
}
Problem can be resolved by changing int i; to char type.
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user