Ожидаемые спецификаторы объявления или '...' перед строковой константой - PullRequest
0 голосов
/ 02 января 2012

Я получаю Expected declaration specifiers or '...' before string constant ошибку в mach_override.c в проекте scplugin во второй строке кода ниже.

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 flagустановлено в моей настройке сборки.Может кто-нибудь, пожалуйста, помогите мне?

1 Ответ

0 голосов
/ 02 января 2012

Внести следующие изменения (во флаги):

C language dialect = Compiler Default 
...