Intel® C++ Compiler

C++11 class member initialization for strings


I am having an issue, I really can't find an answer to. With the following code, I get a segmentation fault. But only for -O2 / -O3. -O0 and -O1 are fine.

The fault does occur with the C++11 initialization of the string member additionalMessage = ""; If this is not pre-set, it works just fine.

When I replace the member with char*, the code works as expected.

Linker error using c++ Compiler 16 for windows

I am upgrading the c++ compiler from version 15 to 16 (on windows 7) using visual studio 2010 IDE

The compilation passes ok but i get many linker error on the same issue

Following are a couple of errors from the long list of similar errors :

Error    290    error LNK2005: "class F64vec8 __cdecl andnot(class F64vec8 const &,class F64vec8 const &)" (?andnot@@YA?AVF64vec8@@AEBV1@0@Z) already defined in sys.lib(c_run_graph.obj)    D:\VsProjects\VS4-Ver1.8x64\src\evpcon\svp.lib(cRawDataFilterSliceMgr.obj)

Why does compiler generate VGATHER instructions?

Working with the Intel compiler (icc (ICC) 15.0.3 20150407), I have a simple loop for which the compiler is generating what looks like terrible code.

The loop is a trivial calculation over a contiguous range of indices of some float arrays:

    for (i=Nwin+Ngap; i<N-Nwin-Ngap; i++) {
        w_avg[i] = avgscale2*(slidingsum[i+Ngap+1]+slidingsum[i-Ngap-Nwin]);

The assembler output shows a completely reasonable piece of scalar code for the short vector case:

Consistency with long double


I am working on a C++ program which is heavy on number crunching. After an update of the program that has nothing to do with floating points (I have added non floating point members to some classes), I realized that there was a slight change in the floating point results of the program. The difference is very small (a small drift starting from 1ulp), but it is there.

I've tracked the difference in between the 2 versions of the program, until I found the culprit : a routine that was using the type "long double". When changed to "double", the difference went away.

Visual Studio 2015 Update 1 Intel Compiler XE 15 attributes

The posted answer fixed one of the issues I saw after Visual Studio 2015 Update 1.  However, I still get the following errors.  I have only added a representative error but they all have the same condition the is triggering the failure. Is there any work around available?

Programs installed in the compiler's ia32 directory are not 32-bit

Some of the programs in the ia32 directory installed with recent
compiler versions are 64-bit programs, presumably by accident.

For example:

  % source /opt/intel/compilers_and_libraries_2016.1.150/linux/bin/compilervars.csh ia32
  % cd /opt/intel/compilers_and_libraries_2016.1.150/linux/bin/ia32
  % file ifort

    ifort: ELF 32-bit LSB executable, Intel 80386, ...

  % file icc produces
    icc: ELF 64-bit LSB executable, x86-64, ...

OpenMP Static Linking - Intel Compiler 15 Update 4 and xCode 5.02


We have a project which we use OpenMP.

The code is built successfully yet it won't run on the target (Same System, OS X 10.9), it would say file is missing.
We couldn't find a way to link it statically.
We looked at the documentation here:

Which links here:

openmp compilation errors

I try compiling my code as follows, using icc v 15.0.1.

icc  -std=gnu99 -openmp -c foo.c

but I get these errors

 error: "k" can only appear on one data scope attribute clause in an OpenMP pragma (except firstprivate and lastprivate)
  #pragma omp parallel for 

error: "X1" can only appear on one data scope attribute clause in an OpenMP pragma (except firstprivate and lastprivate)
  #pragma omp parallel for 


compilation errors


Using icc v 15.0.1, I get the errors listed below when compiling the following nested for loops. gcc does not complain. What flags

should be used to "ignore" the errors, or recommend changes to the sources?




#pragma omp parallel for
  for ( size_t K = 0; K < Nseg; ++K ) {
#pragma omp parallel for
    for ( size_t X = 0; X < numDet; ++X ) {
#pragma omp parallel for
      for ( size_t n = 0; n < intN[k][X]; ++n ) {



Compile time errors are as follows:

MSPDB110.DLL/MSPDB120.DLL not found, 32-bit command window

I have noticed an issue with the Windows Intel C++ compiler. The Start menu shortcut Compiler 16.0 Update 1 for IA-32 Visual Studio 2013 environment for targeting IA-32 launches C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\lang\INTEL16\compilers_and_libraries_2016.1.139\windows\bin\ipsxe-comp-vars.bat" ia32 vs2013". In the command window that opens, ifort /Zi works fine, but icl /Zi fails, complaining that the required MSPDB110.DLL is not available.

Intel® C++ Compiler abonnieren