2012-01-02 25 views
0

mach_override.cExpected declaration specifiers or '...' before string constantのエラーがあります。これは、次のコードの2行目のscplugin projectにあります。文字列定数の前に宣言指定子 '...'が必要です

asm(  
      ".text;" 
      ".align 2, 0x90;" 
      ".globl _atomic_mov64;" 
      "_atomic_mov64:;" 
      " pushl %ebp;" 
      " movl %esp, %ebp;" 
      " pushl %esi;" 
      " pushl %ebx;" 
      " pushl %ecx;" 
      " pushl %eax;" 
      " pushl %edx;" 

      // atomic push of value to an address 
      // we use cmpxchg8b, which compares content of an address with 
      // edx:eax. If they are equal, it atomically puts 64bit value 
      // ecx:ebx in address. 
      // We thus put contents of address in edx:eax to force ecx:ebx 
      // in address 
      " mov  8(%ebp), %esi;" // esi contains target address 
      " mov  12(%ebp), %ebx;" 
      " mov  16(%ebp), %ecx;" // ecx:ebx now contains value to put in target address 
      " mov  (%esi), %eax;" 
      " mov  4(%esi), %edx;" // edx:eax now contains value currently contained in target address 
      " lock; cmpxchg8b (%esi);" // atomic move. 

      // restore registers 
      " popl %edx;" 
      " popl %eax;" 
      " popl %ecx;" 
      " popl %ebx;" 
      " popl %esi;" 
      " popl %ebp;" 
      " ret" 
); 

Allow asm, inline typeofフラグが自分のビルド設定で設定されています。誰でも私を助けてくれますか?

答えて

0

(フラグ)で次のように変更します。

C language dialect = Compiler Default 
関連する問題