AdvApp2Var_SysBase.cxx macrgfl_(..) abend in 64bit OS

When i run my application in 64bit OS, it will crash at the following place.

ioff became 63712799. It is OK in 32bit OS.

----------------------------
int macrgfl_(long int *iadfld,
long int *iadflf,
integer *iphase,
integer *iznuti)

{

......

/* CALCUL DE L'ADRESSE DE T */
mcrlocv_((long int)t, (long int *)&iadt);

/* CALCUL DE l"OFFSET */
ioff = (*iadfld - iadt) / 8;

/* MISE A OVERFLOW DE LA ZONE UTILISATEUR EN CAS DE VERSION PRODUCTION */
if (*iphase == 1 && novfl == 0) {
ienr = *iznuti / 8;
maoverf_(&ienr, &t[ioff + 1]);
}

/* MISE A JOUR DU FLAG DE DEBUT */
t[ioff] = -134744073.;

......

}
----------------------------

G.P. Sun

Markus Rhein's picture

I had a similar problem a few months ago.
See: http://www.opencascade.org/org/forum/thread_19966/

Probably there is also a bad type cast in your case.
You could try casting to size_t* instead of long int*.

Hope that helps.
Markus

Forum supervisor's picture

Hello, G.P. Sun,
a similar problem has already been reported before and registered with ID=OCC22293. We will try to fix the problem in future OCCT releases. You will be able to see later if the issue is resolved by checking the references to the specified ID in OCCT Release Notes. The analysis of this issue will take some time depending on our technical capability and availability of resources.
Regards.

Cauchy Ding's picture

When I use BRepOffsetAPI_MakeFilling to fill a surface using OCC 6.5.1, I often get the same crash at t[ioff] = -134744073. Hope OCC team can fix it a.s.a.p.

Thanks.