Mail Archives: djgpp/1996/01/28/19:26:18
The following short fragment of code causes GCC 2.6.3 (as supplied with
DJGPP V2 beta3) to "Abort!" with the following command line:
gcc test.c -c -O
Any type of -O causes this (-O, -O1, -O2, etc...)
Here's the code:
typedef struct {
int x,y;
} Screen_Point;
void test_abort (Screen_Point pt1, Screen_Point pt2) {
Screen_Point temp;
if(pt1.x==32767 || pt2.x==32767) return;
if (pt1.y > pt2.y) {
temp = pt1;
pt1 = pt2;
pt2 = temp;
}
}
That's the smallest fragment of code I've found that reproduces this bug.
Which brings me to my point... is this a bug in the compiler? It seems to
work on GCC 2.6.3 on SunOS 4.1, but not on DJGPP. Could it be something
to do with code generation strategies specifically for 386 code?
If this is a bug, please consider it reported (!). Otherwise, can anyone
suggest what might be wrong with this code which could have caused it?
TIA,
- Andy
| Andrew Molyneux Internet: molyneua AT cs DOT man DOT ac DOT uk
| University of Manchester Tel : (+44)161-485-3291
| REAL programmers write a=b!=4?b%2?c:d:e without even
| thinking about it :-)
- Raw text -