[cfe-dev] clang
David Blaikie
dblaikie at gmail.com
Sun Nov 18 11:50:33 PST 2012
Kicking this back to the ML because I'm not as familiar with the c API
or python binding on top of it (& don't have the time to dig into it
further right now).
On Tue, Nov 13, 2012 at 2:24 AM, Janina <janina.siemer at gmx.de> wrote:
> Hi,
>
> You can find an example attached. Inside the folder, you will find the
> example for the If-Else Condition and the LibClang Code. I had execute the
> Libclang Code and the result write in the "libclang.txt" file. For example I
> had execute clang -cc1 -ast-dump and write it in the "ast-dump.txt" file.
>
> Regards
> Janina
>
>
>
>> -----Ursprüngliche Nachricht-----
>> Von: David Blaikie [mailto:dblaikie at gmail.com]
>> Gesendet: Montag, 12. November 2012 18:35
>> An: Janina; cfe-dev Developers
>> Betreff: Re: [cfe-dev] clang
>>
>> [+cfe-dev]
>>
>> On Mon, Nov 12, 2012 at 2:23 AM, Janina <janina.siemer at gmx.de> wrote:
>> > Hi,
>> >
>> >
>> > I use LibClang and if I read the ast, the following Example are in
>> the ast
>> > or not in the ast.
>> >
>> > This Example is in the ast:
>> > static STSRET StatusFktWert
>> > (
>> > VTYP A,
>> > STATUS16 B , /* aktueller Status
>> der PV
>> > */
>> > STATUS16 C , /* aktueller Status
>> der PV 2
>> > */
>> > STATUS32 D , /* Statusmaske mit
>> abzufragenden Bits
>> > */
>> > INFO32 *E /* Zg->
>> Ergebnis
>> > */
>> > );
>> >
>> >
>> > This Example is not in the ast:
>> > static STSRET StatusFktWert
>> > (
>> > VTYP aVtype, // PV type
>> > STATUS16 aPvState, // aktueller Status der PV
>> > STATUS16 aPvState2, // aktueller Status der PV 2
>> > STATUS32 aStateMask, // Statusmaske mit abzufragenden Bits
>> > INFO32* aResult, // Zg-> Ergebnis
>> > GETWERT GetWertAME, // Pointer to GetWertSM or SimGetWert
>> > SATZNR aRecnum // Record number
>> > );
>> > If I Use clang -cc1 -ast-dump this one is not there, too.
>> >
>> >
>> > This IF-Else Condition is not in the ast:
>> > if (ameld->status1.bit.TYP == ZWEI_BIT_ABME)
>> > *zustand = AUSSTELLUNG;
>> > else
>> > *zustand = 0;
>> >
>> > My speculation is, that the If-Condition is FAlSE, if I write
>> > if(1==1)..... the whole IF-Else Condition is in the ast.
>> >
>> > If I use clang -cc1 -ast-dump the If-Else Condition is there.
>>
>> Sorry, I'm still having trouble following your examples as they are
>> incomplete (& I'm not terribly familiar with libclang's behavior - but
>> I would be surprised if it differs so wildly from -ast-dump as you
>> describe). It would be helpful if you could provide complete examples
>> (the entire source files - reduced to the simplest complete example -
>> that you're using as input, and possibly a reduced (but
>> standalone/complete) example of the libclang program you're using to
>> navigate the AST).
>>
>> Perhaps you are navigating the CFG? (I don't know if libclang exposes
>> this - if it does, then you'll find that things that are trivially
>> compile-time unreachable won't appear in the CFG, this is by design)
>>
>> - David
>>
>> >
>> >
>> >
>> >
>> >> -----Ursprüngliche Nachricht-----
>> >> Von: David Blaikie [mailto:dblaikie at gmail.com]
>> >> Gesendet: Montag, 12. November 2012 03:29
>> >> An: Janina
>> >> Cc: cfe-dev Developers
>> >> Betreff: Re: [cfe-dev] clang
>> >>
>> >> On Sat, Nov 10, 2012 at 8:17 AM, Janina <janina.siemer at gmx.de>
>> wrote:
>> >> > Hi,
>> >> >
>> >> >
>> >> >
>> >> > if I build the ast from a C++ Code, some Nodes are not in the ast.
>> Is
>> >> it
>> >> > possible that clang can´t read every Element from a C++ Code?
>> >>
>> >> Could you show some complete examples of the issue you're
>> discussing?
>> >> (a simple, but complete, piece of code as well as the command(s) you
>> >> ran (you might want to try clang -cc1 -ast-dump as discussed here:
>> >> http://clang.llvm.org/docs/IntroductionToTheClangAST.html ) & the
>> >> output you got & the output you expected)
>> >>
>> >> >
>> >> >
>> >> >
>> >> > For example:
>> >> >
>> >> > Variable1->Variable2
>> >> >
>> >> > *Variable3
>> >> >
>> >> >
>> >> >
>> >> > Or like something other variants?
>> >> >
>> >> >
>> >> >
>> >> > Why do not the If/Else Condition get in the ast if the if-
>> Condition
>> >> is
>> >> > false?
>> >> >
>> >> > If the If-Condition is false, so the else is not in the ast too.
>> >> >
>> >> >
>> >> >
>> >> > Regards
>> >> >
>> >> > Janina
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > cfe-dev mailing list
>> >> > cfe-dev at cs.uiuc.edu
>> >> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>> >> >
>> >
More information about the cfe-dev
mailing list