Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

Wrong number of actual arguments to intrinsic function

steveo225
Beginner
640 Views

During the most recent compile, I received the following warning repeatedly:

warning #980: worng number of actual arguments to intrinsic function "mangled function name"

I have been unable to find any support or documentation on this warning. It seems to occur on source code with streams (such as cout, ifstream, etc.), and occurs most often on lines with a std::endl.

Has this occured for anyone else, and are there any measures to eliminate this warning from occuring besides simply ignoring it?

Thanks

0 Kudos
14 Replies
JenniferJ
Moderator
640 Views
could you paste the line of code that this warning is refering to?
0 Kudos
steveo225
Beginner
640 Views
ProductionLine.cc(171): col. 92)warning #980: wrong number of actual arguments to intrinsic function "_ZNSolsEPFRSoS_E"

Line 171 is as follows:
std::cerr << "Production Line running. Must stop PL " << name << " in order to cleanup!!!" << std::endl;

The column in question is the last < before std::endl; (so you don't have to count yourelf).

Also, we have seen this on other lines that referenced ifstreams, such as:
ifstream input(filename);

We are using the v9.1.043 version of the compiler. We have tried v10, however, there are problems building due to commercial software we are using that is not yet supported.

Thanks for your help
0 Kudos
JenniferJ
Moderator
640 Views

I'm not able to duplicate this problem with a simple test or a atl-mfc project.

Could you submit this to PremierSupport so we can work on getting a testcase? if you could provide one, it would be really great.

Thanks!

0 Kudos
steveo225
Beginner
640 Views
We are not able to duplicate the problem always either. The problem happens for only 3 of our developers (myself not included). We think it make have something to do with environment settings because we all use the same makefiles and icc version. That is why we were hoping to get some information on the particular warning message, since we are having trouble duplicating the problem for other engineers. One thing that is of note, we link with some of the gcc libraries rather than the intel versions due to Oracle. I suppose this warning can just be added to the list we ignore, but we were hoping to fix it if we could. Thanks for your help.
0 Kudos
JenniferJ
Moderator
640 Views
It could be OS related. what OS do you use and kernel/gcc/glibc versions?
0 Kudos
steveo225
Beginner
640 Views

OS: RedHat Linux AS 4.5

Kernel: 2.6.9-55.EL

gcc: 3.2.3-47.3

glibc:2.3.4-2.25

Thanks for your support

0 Kudos
John_O_Intel
Employee
640 Views

Hi,

We had 1 customer report this with the 9.1 compiler, but we weren't able to reproduce. If you can create a testcase and submit it to https://premier.intel.com we will investigate this. If possible, can you ask the 3 developers that see this problem to create a preprocessed file (icc -P file.cpp, creates file.i) and see if the problem reproduces on the machine that had the problem, and on your system ?

Regards,

_|ohnO

0 Kudos
steveo225
Beginner
640 Views
We have actually attempted to create a test case already with no success. The system that is being built is quite large and trying to duplicate the build environment has been difficult. If we are able to duplicate this problem in a test driver, I will gladly pass it on to the premier support. For the time being, we just added a -wd980 to the build string to ignore the warning. Thanks for all your time. I will post any updates as we have them.
0 Kudos
steveo225
Beginner
640 Views

We were finally able to produce this problem under a controlled situation. I was not able to access the premier site for some reason, so I hope this post is still being reveiwed.

PATH=/opt/intel/cc/9.1.043/bin:/usr/bin
LD_LIBRARY_PATH=

RedHat Linux 4.5 (kernel 2.6) Itanium2
gcc-3.4.6-8
glibc-2.3.4-2.36
Build: icpc -O2 -ip test.cc -o test

#include
using namespace std;
int main() {
cout << "Hello" << endl;
}

Thanks for your support

0 Kudos
Dale_S_Intel
Employee
640 Views
Thanks for the simple test case. I was able to reproduce the problem on an Itanium system with the 9.1 compiler. You can disable this type of warning with the -wd980.

This appears to have been fixed in 10.0 and more recent compilers. If you continue to see this problem with recent compilers, please let us know.

Thanks!

Dale
0 Kudos
Oren
Beginner
640 Views
could you paste the line of code that this warning is refering to?

I get this when instantiating:

#define PAUSE() do {cerr << "PAUSED" << endl; std::cin.get(); } while (0)

which should match the first overloaded get() function listed here

http://www.cppreference.com/wiki/io/get

Oren
0 Kudos
pbkenned1
Employee
640 Views
Quoting - Oren

I get this when instantiating:

#define PAUSE() do {cerr << "PAUSED" << endl; std::cin.get(); } while (0)

which should match the first overloaded get() function listed here

http://www.cppreference.com/wiki/io/get

Oren
This does not appear to be a problem with either v10.1 or v11 Intel C++ (I tested with 10.1.030 and 11.0.072)

C:C++>cat wng_intrin.cpp
#include
using namespace std;
#define PAUSE() do {cerr << "PAUSED" << endl; std::cin.get(); } while (0)
int main(void)
{
PAUSE();
return 0;
}

C:C++>icl wng_intrin.cpp
Intel C++ Compiler Professional for applications running on IA-32, Version 11.0 Build 20090131 Package ID: w_cproc_p_11.0.072
Copyright (C) 1985-2009 Intel Corporation. All rights reserved.

wng_intrin.cpp
Microsoft Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.

-out:wng_intrin.exe
wng_intrin.obj

C:C++>wng_intrin.exe
PAUSED
^C
C:C++>


0 Kudos
Oren
Beginner
640 Views
Quoting - pbkenned
This does not appear to be a problem with either v10.1 or v11 Intel C++ (I tested with 10.1.030 and 11.0.072)

C:C++>cat wng_intrin.cpp
#include
using namespace std;
#define PAUSE() do {cerr << "PAUSED" << endl; std::cin.get(); } while (0)
int main(void)
{
PAUSE();
return 0;
}

C:C++>icl wng_intrin.cpp
Intel C++ Compiler Professional for applications running on IA-32, Version 11.0 Build 20090131 Package ID: w_cproc_p_11.0.072
Copyright (C) 1985-2009 Intel Corporation. All rights reserved.

wng_intrin.cpp
Microsoft Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.

-out:wng_intrin.exe
wng_intrin.obj

C:C++>wng_intrin.exe
PAUSED
^C
C:C++>



Thanks for trying it. I don't know why I get that warning, but it does not appear to have any ill effects.

I will try to come up with a test case. . .

Oren
0 Kudos
Mark_S_Intel1
Employee
640 Views
This issue has been resolved in icc 11.0 with build date 3/14/2009 or higher. More details at http://software.intel.com/en-us/articles/diagnostic-980-wrong-number-of-actual-arguments-to-intrinsic-function/

0 Kudos
Reply