[Prev][Next][Index]
Re: installation problem on rs6000
- From: "Beata Winnicka" <bfatyga@slab.cica.indiana.edu>
- Date: Mon, 6 Feb 95 16:07:18 -0500
- To: lxm@npac.syr.edu
- Subject: Re: installation problem on rs6000
- Cc: sage-bugs@cica.indiana.edu
>I'm trying to install the Sage++1.7 on rs6000 model 550.
>
>"make install" gives me:
> (...)
>Then I go to the demo array_decl, change the g++ to xlC (as advised
>by Prof Gannon)
>in the Makefile. Then "make" generates:
>---------------------------------------------------
> xlC -I../../../lib/include -I../../../h -g -c main.C
>"main.C", line 47.26: 1540-058: (S) Operand of "&" operator must be
>an lvalue.
>make: 1254-004 The error code from the last command is 1.
>
>Make Quitting.
Well, it looks like you have a very "picky" (i.e., strict) compiler.
Try replacing the code in
void declare_array(SgFile *f)
with the following code:
void declare_array(SgFile *f){
SgStatement *s = f->firstStatement();
SgStatement *mymain = f->mainProgram();
SgArrayType *ar_type = new SgArrayType(*SgTypeInt());
ar_type->addDimension(NULL);
SgValueExp * texp = new SgValueExp(2);
ar_type->addDimension(texp);
SgSymbol * xsymb =new SgVariableSymb("x", *ar_type , *mymain);
SgExpression *xref = new SgArrayRefExp(*xsymb);
xref->setLhs(*(ar_type->getDimList()));
SgExpression * one = new SgValueExp(1);
SgExpression * two = new SgValueExp(2);
SgExpression * three = new SgValueExp(3);
SgExpression * four2 = new SgValueExp(4);
SgExprListExp * ls = new SgExprListExp(*one);
ls->append(*two);
ls->append(*three);
ls->append(*four2);
SgExpression * in_ls = new SgInitListExp(*ls);
SgExpression & aexp = SgAssignOp(*xref, *in_ls);
SgExpression * as_ex = & aexp;
SgExpression * as_ex_ls = new SgExprListExp(*as_ex);
SgStatement * ar_in = new SgVarDeclStmt(*as_ex_ls,*SgTypeInt());
ar_in->setControlParent(*mymain);
s->insertStmtAfter(*ar_in);
}
Let me know if this compiles and works. Also, if you send me the
error message that your compiler generates for main.C in new_file
maybe I can fix that too. --Beata