Compilador C++ Intel®

Invitation to join the Intel® Software Development Tools 2015 Beta program

Hello Intel® C++ User Forum,

Try out the new Intel® Software Development Tools 2015 Beta and help make our product better. Registration is easy through the site. Additional information can be found at

Error using compilervars.csh or ippvars.csh - arch: Undefined variable.

Cross posting for the benefit of others. See original thread here:

A defect was reported with the Intel® Integrated Performance Primitives (IPP) 8.1 Initial release ippvars.csh file distributed for Linux* (found under: /opt/intel/composer_xe_2013_sp1/ipp).

Оптимизировали, оптимизировали, да не выоптимизировали!

Оптимизация? Конечно, каждый сталкивался с данной задачей при разработке своих, сколь-нибудь значительных, требующих определённых вычислений, приложений. При этом способов оптимизировать код существует огромное множество, и, как следствие, различных путей сделать это в автоматическом режиме с помощью опций компилятора. Вот здесь и возникает проблема – как выбрать то, что нужно нам и не запутаться?

errno set from openmp region?


Could you explain why errno is set for openmp region? I tried with icc 13 and 14:

#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <omp.h>

int main()
    errno = 0;

    #pragma omp parallel
        printf("\n I am thread %d", omp_get_thread_num());

    printf("\n Error Id: : %d ,  Descr: %s\n ", errno, strerror( errno ));

I get following output:

[OMP] icc does not understand array sections (completely)

According to the OpenMP spec one can specify array sections as

or [lower-bound:]
or [:length]
or [ : ]

However if one tries one except [:] the compiler complains about a missing "]" instead of detecting the number or variable used.

Is this known and going to be fixed?

How should "x = a[x]++" be compiled ?

It seems I either have forgotten how C works, or ICC has a very basic (and thus very serious bug).

When compiling   x = a[x]++;   ICC does not increment the array value, while GCC does (as it should).

I am using the latest ICC (14.0.2). This toy code shows this:

#include <stdio.h>

int main(void)


    int a[1] = {5}, i = 0;

    i = a[i]++;

    printf("%d %d\n", i, a[0]);

    return 0;


Assine o Compilador C++ Intel®