Identifier "simd" may be treated as reserved attribute keyword, resulting in compiler errors and "warning #2621: attribute "simd" does not apply here"

Reference Number: DPD200240885

Version: Intel® C++ Composer XE 2013 Update 2 (Intel® C++ Compiler XE 13.1.0)

Operating System: Windows* and Linux*

Problem Description:

If the word "simd" is used as an identifier in C/C++ code (for example, as a typename, or as a function parameter name), there is the chance that the compiler may treat this identifier as a reserved attribute keyword and you will then run into compilation errors. This issue should only result in compilation errors. Link-time or runtime problems are not expected. An example follows:

$ cat test-simd.cpp
void foo(float * simd);
$ icc -V -c test-simd.cpp
Intel(R) C Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 13.1.0.146 Build 20130121
Copyright (C) 1985-2013 Intel Corporation.  All rights reserved.

Edison Design Group C/C++ Front End, version 4.4.1 (Jan 23 2013 18:16:41)
Copyright 1988-2011 Edison Design Group, Inc.

test-simd.cpp(1): error: expected a ","
  void foo(float * simd);
                       ^

test-simd.cpp(1): warning #2621: attribute "simd" does not apply here
  void foo(float * simd);
                   ^

compilation aborted for test-simd.cpp (code 2)

Problem Resolution:

This issue is resolved in the Intel Composer XE 2013 update 3 compiler (13.1.1).

For more complete information about compiler optimizations, see our Optimization Notice.