Alexandre Julliard a écrit :
Jonathan Schleifer <[EMAIL PROTECTED]> writes:

Eric Pouech <[EMAIL PROTECTED]> wrote:

it seems now the major hurdle is that icc doesn't support
the inline conventions of GCC (and is likely C99 compliant in that
ICC supports gcc inline asm. But it doesn't support defining a symbol
twice.

What version are you using?  According to the man page this is
supposed to be fixed in icc 9.1.

it's fixed for C functions, but not when the function is declared in assembly
extern inline int foo(int a);
extern inline int foo(int a) {return a + 1;}
int foo(int a) {return a+1;}
extern inline int ffo(int a);
extern inline int ffo(int a) {return a + 1;}
int ffo(int a) {return a+1;}
__asm__( ".text\n\t"
        ".align 4\n\t"
        ".globl ffo\n\t"
        ".type ffo,@function\n"
        "ffo:\n\tret\n"
        "\n\t.previous" );

[EMAIL PROTECTED] wine-git]$ /opt2/intel/cc/9.1.047/bin/icc -c  ~/icc2.c
/home/eric/icc2.c(3): warning #290: function "foo" has already been defined
 int foo(int a) {return a+1;}
     ^

/home/eric/icc2.c(6): warning #290: function "ffo" has already been defined
 int ffo(int a) {return a+1;}
     ^

IPO: WARNING: File scope asm disables -ipo
/home/eric/tmp/icc5IgzlBas_.s: Assembler messages:
/home/eric/tmp/icc5IgzlBas_.s:40: Error: symbol `ffo' is already defined

(and embedding the asm code into a dummy function doesn't help either)

A+

--
Eric Pouech
"The problem with designing something completely foolproof is to underestimate the 
ingenuity of a complete idiot." (Douglas Adams)




Reply via email to