Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Internal compiler error: segmentation violation signal raised

steve_o_
Beginner
565 Views

Hi 

 

 

Just doing a compile of my code using latest ifort 15 service pack 1, message says please report, so here it is

There was an error with mismatched parenthesis in a standard deviation calculation 

OS X 10.10 command line

 ifort rbm.f90  -i8 -openmp -I$MKLROOT/include/ilp64 -I$MKLROOT/include  $MKLROOT/lib/libmkl_blas95_ilp64.a $MKLROOT/lib/libmkl_intel_ilp64.a $MKLROOT/lib/libmkl_core.a $MKLROOT/lib/libmkl_intel_thread.a  -lpthread -lm -march=native -heap-arrays -O3 -WARN  -o rbm
rbm.f90(447): error #5276: Unbalanced parentheses
std         =  sqrt(sum((exp(logww - aa) - mean)**2)))/(batchSample - 1.0))
-----------------------------------------------------^
rbm.f90(447): error #5276: Unbalanced parentheses
std         =  sqrt(sum((exp(logww - aa) - mean)**2)))/(batchSample - 1.0))
-------------------------------------------------------------------------^
rbm.f90(447): error #5276: Unbalanced parentheses
std         =  sqrt(sum((exp(logww - aa) - mean)**2)))/(batchSample - 1.0))
--------------------------------------------------------------------------^
rbm.f90(447): error #5082: Syntax error, found ')' when expecting one of: <END-OF-STATEMENT> ;
std         =  sqrt(sum((exp(logww - aa) - mean)**2)))/(batchSample - 1.0))
-----------------------------------------------------^
rbm.f90(447): error #5082: Syntax error, found ')' when expecting one of: <END-OF-STATEMENT> ;
std         =  sqrt(sum((exp(logww - aa) - mean)**2)))/(batchSample - 1.0))
--------------------------------------------------------------------------^
rbm.f90(447): error #6410: This name has not been declared as an array or a function.   [SQRT]
std         =  sqrt(sum((exp(logww - aa) - mean)**2)))/(batchSample - 1.0))
---------------^
rbm.f90(447): error #6514: A substring must be of type CHARACTER.   [SQRT]
std         =  sqrt(sum((exp(logww - aa) - mean)**2)))/(batchSample - 1.0))
---------------^
rbm.f90: catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report.  Note: File and line given may not be explicit cause of this error.
compilation aborted for rbm.f90 (code 1)

 

 

0 Kudos
6 Replies
mecej4
Honored Contributor III
565 Views

Apart from the compiler's crashing, if there is an MKL include file that contributes to the crash with unbalanced parenthesis, it would help to know its name and location. If not, in addition to the line with the unbalanced parenthesis from your source code, it would be helpful to have the declarations of the variables involved in the offending line. This is because the line that you displayed contains aggregate functions such as SUM, and the happening of the crash may depend on which variables have been declared as arrays.

0 Kudos
Steven_L_Intel1
Employee
565 Views

Please attach a source file that triggers the error - thanks.

0 Kudos
Martyn_C_Intel
Employee
565 Views

A source file isn't needed, you can just compile the line of code as it stands. Or, if you're fussy, add declaration and end statements:

real, dimension(100) :: logww, aa, mean
std         =  sqrt(sum((exp(logww - aa) - mean)**2)))/(batchSample - 1.0))
end

By inspection, the source line has more right parentheses than left parentheses, and the compiler points this out before the internal error.

I agree that a simple syntax error should not cause an internal compiler error; nevertheless, that's a lot less serious than an internal compiler error for standard-conforming code. I am escalating this to the compiler developers to investigate, but with relatively low priority.

Thanks for the report.

0 Kudos
Martyn_C_Intel
Employee
565 Views

Turns out this issue had already deen reported. A fix is targeted for a future compiler.

0 Kudos
steve_o_
Beginner
565 Views

Thanks Martyn

Sorry for not posting the code, there was rather a lot and I was busy doing other stuff ;-)

I agree, it wasn't really causing a problem as I realised it originated from my typo, I mentioned it only because the error message asked me to - ~30 years ago I got a DOS C compiler error that asked me to phone a number, when I phoned and explained the circumstance they advised me to use a competitors compiler  (not intel by the way ;-)

thanks all

 

 

 

0 Kudos
Martyn_C_Intel
Employee
565 Views

This issue has been fixed in the version 16 compiler, released a few days ago as part of Intel Parallel Studio XE 2016. It's available from https://registrationcenter.intel.com with current support. The compiler no longer gives an internal error, although it still gives an error because of the unmatched parentheses, as you would expect.

0 Kudos
Reply