Re: Compilation errors

From: Dan Bonachea (bonachea_at_cs_dot_berkeley_dot_edu)
Date: Mon Dec 27 2004 - 15:34:12 PST

  • Next message: Venelin Mitov: "(no subject)"
    Hi Venelin -
    
       This appears to be a bug in the Berkeley UPC translator. I've submitted a 
    bug on your behalf to the Berkeley UPC bug database and added it to our 
    regression test suite, and a developer should be looking into it shortly 
    (although probably not until after the holidays).
    
      Here's a temporary workaround - replace this line:
    
       printf("%d", cmp(P[0][0], P[0][1]));
    
      with:
    
       Point p1 = P[0][0];
       Point p2 = P[0][1];
       printf("%d", cmp(p1,p2));
    
    I've verified this works with the most recent snapshot version of Berkeley UPC 
    (2.1.0 beta).
    
    Apologies for the inconvenience..
    
    Dan
    
    PS - Please submit any future suspected compiler bugs directly to our bug 
    database (http://upc-bugs.lbl.gov/bugzilla). Anyone can create an account for 
    free - I've already created one for you (your info was mailed directly to you 
    under separate cover).
    
    At 06:59 AM 12/27/2004, Mitov wrote:
    >Hello I'm new to upc. And I have written most in C++(not C).
    >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?
    

  • Next message: Venelin Mitov: "(no subject)"