Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
23 Views

Intel 64 Compiler for IA-64 and x86-64

I'm trying to compile some software that compiles and works on the v10.0 Intel compiler for IA-64 but gives the following errorin the v11.0 Intel compiler for x86-64:


"error #547: nonstandard form for taking the address of a member function"

It compiles fine on both when:
"funcname(memfunc);" is changed to "funcname(&classname::memfunc);"

but again, the first syntax workswith v10.0 on the IA-64.

Is there some known issue related to this concerning the cross platform compilers or even from v10.0 to v11.0? Also, is there a quick fix to this when compiling that would save me from having to go through and update allinstances of this syntax?

0 Kudos
4 Replies
Highlighted
Employee
23 Views

it seems related to one of our bug fixes.
The fix is in 11.0 already, which update are you using?

The latest 11.0 is 11.0.075.

Jennifer
0 Kudos
Highlighted
Beginner
23 Views

If this helps, "icc -V" gives:

Intel C Intel 64 Compiler Professional for applications running on Intel 64, Version 11.0 Build 20090131 Package ID: l_cproc_p_11.0.081

Copyright (C) 1985-2009 Intel Corporation. All rights reserved.

0 Kudos
Highlighted
Employee
23 Views

It looks like we changed thisto be compatible with Gnu, since all versions of Gnu will also give an error on this nonstandard pointer to member function expression.

Since it is a discretionary error (you can tell this because we give a diagnostic number) you can easily downgrade this to a warning with -ww547 or disable it entirely with -wd547.

0 Kudos
Highlighted
Moderator
23 Views

11.0.075 is the update version for the Windows products. For Linux, the latest 11.0 update is 11.0.084.
So give it a try.

Also as JudyW noted, you can disable the warning.

Thanks,
Jennifer
0 Kudos