[Firm] Probleme mit cparser

Moritz Kroll Moritz.Kroll at avira.com
Mon Feb 2 14:54:09 CET 2015


Hi Christoph,

wegen der Fehlermeldung nützt die Ignorier-Implementierung von __asm
aber wenig. Der COMPILATION_UNIT_AST-Handler wird nach dem Parsen nicht
aufgerufen, wenn der Parser Fehler gemeldet hat (siehe
c_driver.c:do_parsing).

Schöne Grüße
Moritz


On 02.02.2015 14:26, Christoph Mallon wrote:
> Am 02.02.15 11:24, schrieb Moritz Kroll:
>> Hier nochmal die Ausgabe von meiner msysgit-Bash (man beachte das erste
>> Fehlschlagen...):
>
> Das sieht sehr wirr aus.
> Kann bitte mal jemand in die Logs schauen?
>
>>     [source_annotation_attribute( SA_Parameter|SA_ReturnValue )]
>>     struct PostBoundAttribute
>>     {
>>         unsigned int Deref;
>>     };
>>
>> Ich finde, sowas muss man boykottieren ;)
>
> Das baue ich jetzt nicht ein. o_O
>
>> Jepp, hier ein Beispiel aus C:\Program Files (x86)\Microsoft
>> SDKs\Windows\v7.0A\include\winnt.h
>
> %nl -ba msc_asm.c
>      1        typedef unsigned long long ULONGLONG;
>      2        typedef unsigned long DWORD;
>      3
>      4        __inline ULONGLONG __stdcall Int64ShllMod32(ULONGLONG Value,
> DWORD ShiftCount)
>      5        {
>      6                __asm {
>      7                        mov     ecx, ShiftCount
>      8                        mov     eax, dword ptr [Value]
>      9                        mov     edx, dword ptr [Value+4]
>     10                        shld    edx, eax, cl
>     11                        shl     eax, cl
>     12                }
>     13                return 0;
>     14        }
> %cparser --print-ast --ms msc_asm.c
> msc_asm.c:6:2: error: 'asm { ... }' not supported
> 1 error(s), 0 warning(s)
> typedef long long unsigned int ULONGLONG;
> typedef long unsigned int DWORD;
> inline ULONGLONG __stdcall Int64ShllMod32(ULONGLONG Value, DWORD ShiftCount)
> {
>       asm("");
>       return 0;
> }
>
>
> Ist gepusht.
> Das kann zwar nicht alles, aber für asm {} sollte es reichen. (:
>
> Gruß
>       Christoph
>
>

--
Moritz Kroll
Software Developer & Researcher
Advanced Threat Research And Protection Systems
Email: moritz.kroll at avira.com

--
Avira Operations GmbH & Co. KG
Kaplaneiweg 1 | 88069 Tettnang | Deutschland / Germany
Telefon / Telephone: +49 7542-500 0
Telefax / Facsimile: +49 7542-500 3000

Registergericht: Amtsgericht Ulm, HRA 722586 | USt.-IdNr.: DE 815289569 | Pers. haftende Gesellschafterin: Avira OP GmbH | Firmensitz: Tettnang | Registergericht: Amtsgericht Ulm, HRB 726712 | Geschäftsführer: Travis Witteveen

Commercial Register: Amtsgericht Ulm, HRA 722586 | VAT-ID: DE 815289569 | Personally Liable Partner: Avira OP GmbH | Headquarters: Tettnang | Commercial Register: Amtsgericht Ulm, HRB 726712 | Chief Executive Officer (CEO): Travis Witteveen



More information about the Firm mailing list