You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by Martin Sebor <se...@roguewave.com> on 2005/12/15 00:23:49 UTC

icl /D problem (was Re: Solution generartion script for Intel 9.0 compiler)

Anton Pevtsov wrote:
[...]
> 3) The Intel Compiler doesn't allow the '*' symbol in defines in the
> compiler command line. For example, when you passes to the compiler
> something like /D "FUN=strchr((char*)0,0)" the compiler just crashes. I
> changed the configure.wsf script and fun_present_check.cpp to avoid
> passing '*'. These changes don't affect the MSVC version.

I had no problem specifying /DFUN="strchr((char*)0,0)" on the command
line. The compiler only complained when I had a space between /D and
the argument (see below). Since that's an incompatibility between cl
and icl I'll open an issue with Intel. Other than that, we should be
okay as long as we avoid the space (icl doesn't even document that
the space is allowed).

Martin


$    cat t.cpp \
   && icl /DFUN="strchr((char*)0,0)" t.cpp \
   && icl /D FUN="strchr((char*)0,0)" t.cpp
#include <string.h>

int main ()
{
     FUN;
}


Intel(R) C++ Compiler for 32-bit applications, Version 9.0    Build 
20051020Z Package ID: W_CC_C_9.0.025
Copyright (C) 1985-2005 Intel Corporation.  All rights reserved.

t.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

-out:t.exe
t.obj
Intel(R) C++ Compiler for 32-bit applications, Version 9.0    Build 
20051020Z Package ID: W_CC_C_9.0.025
Copyright (C) 1985-2005 Intel Corporation.  All rights reserved.

t.cpp
icl: error: could not write to argument file 
'c:\DOCUME~1\sebor\LOCALS~1\Temp\4922.arg'
icl: error: could not write to argument file 
'c:\DOCUME~1\sebor\LOCALS~1\Temp\4922.arg'
Command-line error: too many arguments on command line

compilation aborted for t.cpp (code 4)