View Issue Details

IDProjectCategoryView StatusLast Update
0025563CommunityOCCT:Modeling Algorithmspublic2015-01-13 09:08
ReporterIstvan Csanady Assigned ToIstvan Csanady  
PrioritynormalSeverityjust a question 
Status closedResolutionunable to reproduce 
Target Version6.9.0 
Summary0025563: ARM and AdvApp2Var_SysBase
DescriptionOn iOS (ARM64bit) the AdvApp2Var_ApproxF2var::mma2fnc_ function crashes for me, but only in release mode. I am just curious, whether you have met this problem on Android and ARM also, or is it clang/iOS specific? This is why the boolean operations crashed for me on iOS, but finally it turned out it crashes always, when I am running the approximation algorithms in release mode.
I will investigate this problem.
TagsNo tags attached.
Test case number

Activities

msv

2014-12-08 13:53

developer   ~0035131

Thank you for reporting this issue. Please provide all necessary data/procedures to reproduce it.

Istvan Csanady

2014-12-08 13:58

developer   ~0035132

Details are described here, files are also attached:
http://tracker.dev.opencascade.org/view.php?id=25435

Istvan Csanady

2014-12-08 14:06

developer   ~0035135

Additional info: it only crashes, when optimization level is >= O2. So this can be a clang bug. I will report it.

abv

2014-12-09 08:54

manager   ~0035182

Istvan, we have not experienced this problem on Android. Actually I am not sure this function gets called in our app (we do not use BOPs, but it may likely be called in context of data exchange operations we are using). I suggest you investigate this problem on your side; your fixes are welcome!

Istvan Csanady

2014-12-09 09:17

developer   ~0035184

It seems that it is a compiler bug. If I set the optimization to -O1 on only AdvApp2Var_ApproxF2var.cxx it works well. If the optimization is set to -O2, it crashes. I have reported it to the Clang team. I have not tried yet manually disable some of the O2 level optimizations, to figure out which one causes the problem, I might will. What is even more interesting, this problem exists on iOS simulator as well, which runs x86 binaries, so OS X can be also affected (if OCCT is compiled with Clang).

It is easy to give it a try, 4 lines of code:

#include <GeomConvert_ApproxSurface.hxx>
#include <Geom_SphericalSurface.hxx>

auto surface = new Geom_SphericalSurface(gp_Ax3(gp_Pnt(), gp_Dir(1.0,0.0,0.0)), 5.0);
auto bsplineSurface = GeomConvert_ApproxSurface(surface, 1e-4, GeomAbs_C1, GeomAbs_C1, 8, 8, 100, 1).Surface();

Istvan Csanady

2015-01-13 08:46

developer   ~0035982

I can not separate the issue, and Clang developers can not do anything about this until they don't have a separated source code. I think this can be closed.

Issue History

Date Modified Username Field Change
2014-12-08 13:38 Istvan Csanady New Issue
2014-12-08 13:38 Istvan Csanady Assigned To => msv
2014-12-08 13:53 msv Note Added: 0035131
2014-12-08 13:53 msv Assigned To msv => Istvan Csanady
2014-12-08 13:53 msv Status new => feedback
2014-12-08 13:58 Istvan Csanady Note Added: 0035132
2014-12-08 14:06 Istvan Csanady Note Added: 0035135
2014-12-09 08:54 abv Note Added: 0035182
2014-12-09 09:17 Istvan Csanady Note Added: 0035184
2015-01-13 08:46 Istvan Csanady Note Added: 0035982
2015-01-13 09:08 abv Status feedback => closed
2015-01-13 09:08 abv Resolution open => unable to reproduce