- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here I attach the small test program which reproduce bug (or not bug??)
Draft explanation:
When I allocate dynamic array MAT(NN,NN) I can do, for example, "MAT=MAT*1.3" with array of any size.
When array is the field in the structure, operation "STRUC%MAT=STRUC%MAT*1.3" give me segfault if array size larger than stacksize.
That's strange behavior I've got on IA32.
I've checked on IA64 with EFC and didn't find such effect. Array size might be much larger than stack size and it works normaly.
Also it works normaly with LF95 in IA32, and SGI and SUN compilers on MIPS and SPARC.
So, I guess it shouldn't be such behavior.
To avoid any possible optimization effects I compiled example even with:
ifort -o test -O0 test.f90
Should I add some more options to avoid it? Or it is just a bag?
Draft explanation:
When I allocate dynamic array MAT(NN,NN) I can do, for example, "MAT=MAT*1.3" with array of any size.
When array is the field in the structure, operation "STRUC%MAT=STRUC%MAT*1.3" give me segfault if array size larger than stacksize.
That's strange behavior I've got on IA32.
I've checked on IA64 with EFC and didn't find such effect. Array size might be much larger than stack size and it works normaly.
Also it works normaly with LF95 in IA32, and SGI and SUN compilers on MIPS and SPARC.
So, I guess it shouldn't be such behavior.
To avoid any possible optimization effects I compiled example even with:
ifort -o test -O0 test.f90
Should I add some more options to avoid it? Or it is just a bag?
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It's not a bug, but it is a missed optimization opportunity, and one we are already looking at.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page