compil error
- Posted by PtitChaud Sep 13, 2010
- 1153 views
hello,
I run euphoria 4 (r3379) on windows Vista.
i've tried to compil my euphoria project and obtained this error :
eugrid.c(6849): Error! E1014: Left operand must be an 'lvalue' eugrid.c(6851): Error! E1014: Left operand must be an 'lvalue'
the interested lines of eugrid.c are
int _44EGW_LoadData(int _id_65739, int _data_65740, int _insert_position_65741) { int _grid_65742; int _rows_65743; int _inserted_at_65744; int _EGW_GetGridID_inlined_EGW_GetGridID_at_23_65747 = 0; int _36024 = 0; int _36023 = 0; int _36022; int _36021 = 0; int _36020 = 0; int _36019 = 0; int _36018 = 0; int _36017 = 0; int _36016 = 0; int _36015 = 0; int _36014 = 0; int _36013 = 0; int _36012 = 0; int _36011; int _36010 = 0; int _36009 = 0; int _36008 = 0; int _36007 = 0; int _36006 = 0; int _36005 = 0; int _36004 = 0; int _36003 = 0; int _36002; int _36001 = 0; int _36000 = 0; int _35999 = 0; int _35998 = 0; int _35997 = 0; int _35996 = 0; int _35995 = 0; int _35994 = 0; int _35992 = 0; int _35991 = 0; int _35990 = 0; int _35989 = 0; int _35988 = 0; int _35987 = 0; int _35986 = 0; int _35984 = 0; int _35983 = 0; int _35981 = 0; int _35980 = 0; int _35979 = 0; int _35978 = 0; int _35976 = 0; int _35975; int _35974 = 0; int _35973 = 0; int _35972 = 0; int _35971; int _35970 = 0; int _0, _1, _2; /** rows = 0*/ _rows_65743 = 0; /** inserted_at=-1*/ _inserted_at_65744 = -1; /** rows = length(data)*/ if (IS_SEQUENCE(_data_65740)) 0 = SEQ_PTR(_data_65740)->length; else 0 = 1; /** grid = EGW_GetGridID (id)*/ /** return ( find(id, GridID) )*/ _grid_65742 = find_from(_id_65739, _44GridID_64085, 1);
eugrid.c come from eugrid.e and the translation error come from EGW_LoadData function :
-- EGW_LoadData: Load table dataset --*------------------------------------------------------* global function EGW_LoadData ( integer id, sequence data, integer insert_position ) integer grid, rows, inserted_at rows = 0 inserted_at=-1 -- get number of rows to insert rows = length(data) -- get grid id grid = EGW_GetGridID (id)
To resolve this translation error, i've deleted the code line :
rows = 0
I obtained a good eugrid.c source file and the euc process went to the linking step...hum strange. I decided to make a test with the assignment statement and wrote this small program :
function test1length(sequence data) integer l l = 0 l = length(data) return l end function sequence a integer b a ="ceci est un test sur la longueur d'une chaine de caractères" b = test1length(a) printf(1,"longueur de a:[%d]\r\n",{b}) if getc(0) then end if
the execution of the interpreted version is OK. So i tried to compile the program and i obtained this error :
D:\Euphoria\dev\ose\trunck\exw>euc -wat -keep test_length_compil.exw The instruction at 0x004865d7 referenced memory at 0x00000000. The memory could not be read. Exception fielded by 0x00566030 EAX=0x00000000 EBX=0x00000000 ECX=0x00000000 EDX=0x000000d0 ESI=0x00000060 EDI=0x00000012 EBP=0x0006f228 ESP=0x0006edfc EIP=0x004865d7 EFL=0x00010216 CS =0x0000001b SS =0x00000023 DS =0x00000023 ES =0x00000023 FS =0x0000003b GS =0x00000000 Stack dump (SS:ESP) 0x00000000 0x00000000 0x00000000 0x00000001 0x0006f228 0x00000012 0x00000060 0x0000001b 0x00000000 0x00000000 0x0048b39e 0x00000000 0x00000000 0x00000000 0x00146488 0x00146488 0x00000000 0x00000000 0x00000000 0x00000008 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
Is it a problem from my computer ? or VISTA ? or Euphoria version ? or the DEP proctection (set only for windows programs and windows services) ? or the installation of Euphoria version ?