From: Venelin Mitov (vmitov_at_gmail_dot_com)
Date: Sun Dec 26 2004 - 19:55:51 PST
Here is a simplified sample of a program I'm writing: //file: sample.c #include <upc_relaxed.h> #include <stdio.h> #define N 20 typedef struct{ int X, Y; }Point; shared[N/THREADS] Point P[2][N]; int cmp(Point p, Point q){ return p.X < q.X || p.X == q.X && p.Y < q.Y ? -1 : p.X == q.X && p.Y == q.Y ? 0 : 1; } int main() { Point p, q; if(MYTHREAD == 0){ printf("%d", cmp(P[0][0], P[0][1])); } return 0; } I'm trying to compile it using the following command: upcc -T 5 sample.c -o sampleupc And I receive the following error: Error during remote HTTP translation: upcc: error during UPC-to-C translation (sgiupc stage): ### Compiler Error in file sample.i during UPC Lowering phase: ### If I replace the printf line in main() with this one : printf("%d", cmp(P[0][0], P[0][0])); //only P[0][1] is changed to P[0][0] I receive another error : Error during remote HTTP translation: upcc: error during UPC-to-C translation (whirl2c stage): ### Assertion failure at line 1618 of ../../be/whirl2c/wn2c.cxx: ### Compiler Error in file sample.i during WHIRL To C phase: ### Expected non-null types in WN2C_based_lvalue() I cannot anderstand the reason for such kind of errors. Can anyone help me?